typeorm/package.json
Park Jin Woong 17cf837ba9
feat(11528): add Redis 5.x support with backward compatibility wite peer dependency to allow (#11585)
* feat: add Redis 5 support to cache implementation

- Add version detection for Redis client to handle API differences
- Support Redis 5 Promise-based API while maintaining backward compatibility
- Update methods to use appropriate API based on Redis version
- Add tests for Redis 5 compatibility

Redis 5 introduced Promise-based API as default, replacing the callback-based
API. This change detects the Redis version and uses the appropriate API calls
to ensure compatibility with Redis 3, 4, and 5.

Closes #11528

* feat: add Redis 5 support to cache implementation

Implement automatic version detection for Redis client libraries to support
Redis 3, 4, and 5 seamlessly. The implementation uses runtime API testing
to determine the appropriate Redis client behavior without breaking existing
functionality.

Changes include:
  - Dynamic Redis version detection based on client API characteristics
  - Promise-based API support for Redis 5.x
  - Backward compatibility with Redis 3.x and 4.x callback-based APIs
  - Safe fallback mechanism defaulting to Redis 3 behavior
  - Updated peer dependency to include Redis 5.x versions

The cache implementation now automatically adapts to the installed Redis version, ensuring optimal performance and compatibility across all supported Redis client versions while maintaining full backward compatibility.

* fix: delete wrong migration guide

* feat: add package-lock.json

* refactor: optimize Redis client creation to reduce memory usage
Eliminate unnecessary Redis client recreation by using explicit tempClient
variable management, reducing potential client instances while maintaining
full Redis 3/4/5 compatibility and accurate version detection.

* refactor: improve Redis version detection to avoid cache pollution
Replace test key creation method with client method signature analysis
to prevent potential cache pollution and improve performance.

* style: apply Prettier formatting to RedisQueryResultCache.ts
2025-08-01 17:30:41 +02:00

268 lines
8.3 KiB
JSON

{
"name": "typeorm",
"version": "0.3.25",
"description": "Data-Mapper ORM for TypeScript and ES2021+. Supports MySQL/MariaDB, PostgreSQL, MS SQL Server, Oracle, SAP HANA, SQLite, MongoDB databases.",
"homepage": "https://typeorm.io",
"bugs": {
"url": "https://github.com/typeorm/typeorm/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/typeorm/typeorm.git"
},
"funding": "https://opencollective.com/typeorm",
"license": "MIT",
"author": {
"name": "Umed Khudoiberdiev",
"email": "pleerock.me@gmail.com"
},
"exports": {
".": {
"types": "./index.d.ts",
"node": {
"types": "./index.d.ts",
"import": "./index.mjs",
"require": "./index.js"
},
"browser": {
"require": "./index.js",
"import": "./browser/index.js",
"default": "./index.js"
}
},
"./browser": {
"types": "./index.d.ts",
"default": "./browser/index.js"
},
"./*.js": "./*.js",
"./*": {
"require": "./*.js",
"import": "./*"
}
},
"main": "./index.js",
"module": "./index.mjs",
"browser": {
"./browser/connection/ConnectionOptionsReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
"./browser/connection/options-reader/ConnectionOptionsXmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
"./browser/connection/options-reader/ConnectionOptionsYmlReader.js": "./browser/platform/BrowserConnectionOptionsReaderDummy.js",
"./browser/driver/aurora-data-api/AuroraDataApiDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/better-sqlite3/BetterSqlite3Driver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/cockroachdb/CockroachDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/mongodb/MongoDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/mongodb/MongoQueryRunner.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/mongodb/bson.typings.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/mongodb/typings.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/mysql/MysqlDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/oracle/OracleDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/postgres/PostgresDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/sap/SapDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/sqlite/SqliteDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/driver/sqlserver/SqlServerDriver.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/entity-manager/MongoEntityManager.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/logger/FileLogger.js": "./browser/platform/BrowserFileLoggerDummy.js",
"./browser/platform/PlatformTools.js": "./browser/platform/BrowserPlatformTools.js",
"./browser/repository/MongoRepository.js": "./browser/platform/BrowserDisabledDriversDummy.js",
"./browser/util/DirectoryExportedClassesLoader.js": "./browser/platform/BrowserDirectoryExportedClassesLoader.js",
"./index.js": "./browser/index.js",
"./index.mjs": "./browser/index.js"
},
"types": "./index.d.ts",
"bin": {
"typeorm": "./cli.js",
"typeorm-ts-node-commonjs": "./cli-ts-node-commonjs.js",
"typeorm-ts-node-esm": "./cli-ts-node-esm.js"
},
"scripts": {
"changelog": "standard-changelog",
"compile": "rimraf ./build && tsc",
"docs:dev": "cd docs && npm run start",
"format": "prettier --cache --write \"./**/*.ts\"",
"format:ci": "prettier --check \"./**/*.ts\"",
"lint": "eslint .",
"pack": "gulp pack",
"package": "gulp package",
"pre-commit": "lint-staged",
"prepare": "husky",
"publish:preview": "pkg-pr-new publish './build/package' --pnpm --template='./sample/playground'",
"test": "npm run compile && npm run test:fast --",
"test:ci": "mocha --bail",
"test:fast": "mocha",
"typecheck": "tsc --noEmit",
"watch": "tsc --watch"
},
"dependencies": {
"@sqltools/formatter": "^1.2.5",
"ansis": "^3.17.0",
"app-root-path": "^3.1.0",
"buffer": "^6.0.3",
"dayjs": "^1.11.13",
"debug": "^4.4.0",
"dedent": "^1.6.0",
"dotenv": "^16.4.7",
"glob": "^10.4.5",
"sha.js": "^2.4.11",
"sql-highlight": "^6.0.0",
"tslib": "^2.8.1",
"uuid": "^11.1.0",
"yargs": "^17.7.2"
},
"devDependencies": {
"@eslint/js": "^9.29.0",
"@sap/hana-client": "^2.25.22",
"@tsconfig/node16": "^16.1.4",
"@types/chai": "^4.3.20",
"@types/chai-as-promised": "^7.1.8",
"@types/debug": "^4.1.12",
"@types/gulp-rename": "^2.0.6",
"@types/gulp-sourcemaps": "^0.0.38",
"@types/mocha": "^10.0.10",
"@types/node": "^16.18.126",
"@types/sha.js": "^2.4.4",
"@types/sinon": "^10.0.20",
"@types/sinon-chai": "^4.0.0",
"@types/source-map-support": "^0.5.10",
"@types/yargs": "^17.0.33",
"better-sqlite3": "^8.7.0",
"chai": "^4.5.0",
"chai-as-promised": "^7.1.2",
"class-transformer": "^0.5.1",
"eslint": "^9.29.0",
"globals": "^16.2.0",
"gulp": "^4.0.2",
"gulp-rename": "^2.0.0",
"gulp-replace": "^1.1.4",
"gulp-shell": "^0.8.0",
"gulp-sourcemaps": "^3.0.0",
"gulp-typescript": "^6.0.0-alpha.1",
"gulpclass": "^0.2.0",
"husky": "^9.1.7",
"lint-staged": "^15.5.2",
"mocha": "^10.8.2",
"mongodb": "^6.15.0",
"mssql": "^11.0.1",
"mysql": "^2.18.1",
"mysql2": "^3.14.0",
"nyc": "^17.1.0",
"oracledb": "^6.8.0",
"pg": "^8.14.1",
"pg-query-stream": "^4.8.1",
"pkg-pr-new": "^0.0.43",
"prettier": "^2.8.8",
"redis": "^5.7.0",
"reflect-metadata": "^0.2.2",
"remap-istanbul": "^0.13.0",
"rimraf": "^5.0.10",
"sinon": "^15.2.0",
"sinon-chai": "^3.7.0",
"sort-package-json": "^2.15.1",
"source-map-support": "^0.5.21",
"sql.js": "^1.13.0",
"sqlite3": "^5.1.7",
"standard-changelog": "^6.0.0",
"ts-node": "^10.9.2",
"typescript": "^5.8.3",
"typescript-eslint": "^8.34.1"
},
"peerDependencies": {
"@google-cloud/spanner": "^5.18.0 || ^6.0.0 || ^7.0.0",
"@sap/hana-client": "^2.14.22",
"better-sqlite3": "^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0",
"ioredis": "^5.0.4",
"mongodb": "^5.8.0 || ^6.0.0",
"mssql": "^9.1.1 || ^10.0.1 || ^11.0.1",
"mysql2": "^2.2.5 || ^3.0.1",
"oracledb": "^6.3.0",
"pg": "^8.5.1",
"pg-native": "^3.0.0",
"pg-query-stream": "^4.0.0",
"redis": "^3.1.1 || ^4.0.0 || ^5.0.14",
"reflect-metadata": "^0.1.14 || ^0.2.0",
"sql.js": "^1.4.0",
"sqlite3": "^5.0.3",
"ts-node": "^10.7.0",
"typeorm-aurora-data-api-driver": "^2.0.0 || ^3.0.0"
},
"peerDependenciesMeta": {
"@google-cloud/spanner": {
"optional": true
},
"@sap/hana-client": {
"optional": true
},
"better-sqlite3": {
"optional": true
},
"ioredis": {
"optional": true
},
"mongodb": {
"optional": true
},
"mssql": {
"optional": true
},
"mysql2": {
"optional": true
},
"oracledb": {
"optional": true
},
"pg": {
"optional": true
},
"pg-native": {
"optional": true
},
"pg-query-stream": {
"optional": true
},
"redis": {
"optional": true
},
"sql.js": {
"optional": true
},
"sqlite3": {
"optional": true
},
"ts-node": {
"optional": true
},
"typeorm-aurora-data-api-driver": {
"optional": true
}
},
"engines": {
"node": ">=16.13.0"
},
"collective": {
"type": "opencollective",
"url": "https://opencollective.com/typeorm",
"logo": "https://opencollective.com/opencollective/logo.txt"
},
"readmeFilename": "README.md",
"tags": [
"orm",
"typescript",
"typescript-orm",
"mariadb",
"mariadb-orm",
"mysql",
"mysql-orm",
"oracle",
"oracle-orm",
"postgresql",
"postgresql-orm",
"sap-hana",
"sap-hana-orm",
"spanner",
"cloud-spanner",
"cloud-spanner-orm",
"sqlite",
"sqlite-orm",
"sql-server",
"sql-server-orm"
]
}