typeorm 0.3.12-dev.ae91c05 → 0.3.12-dev.defb409

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/browser/decorator/options/SpatialColumnOptions.d.ts +2 -1
  2. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  3. package/browser/driver/Driver.d.ts +1 -1
  4. package/browser/driver/Driver.js.map +1 -1
  5. package/browser/driver/DriverUtils.js +1 -1
  6. package/browser/driver/DriverUtils.js.map +1 -1
  7. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +2 -1
  8. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +1 -1
  9. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  10. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +5 -0
  11. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  12. package/browser/driver/cockroachdb/CockroachDriver.d.ts +19 -14
  13. package/browser/driver/cockroachdb/CockroachDriver.js +128 -13
  14. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  15. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +28 -0
  16. package/browser/driver/cockroachdb/CockroachQueryRunner.js +283 -11
  17. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  18. package/browser/driver/mongodb/MongoDriver.d.ts +5 -0
  19. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  20. package/browser/driver/mysql/MysqlDriver.d.ts +2 -1
  21. package/browser/driver/mysql/MysqlDriver.js +1 -1
  22. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  23. package/browser/driver/oracle/OracleDriver.d.ts +5 -0
  24. package/browser/driver/oracle/OracleDriver.js +4 -0
  25. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  26. package/browser/driver/oracle/OracleQueryRunner.js +15 -7
  27. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  28. package/browser/driver/postgres/PostgresDriver.d.ts +2 -1
  29. package/browser/driver/postgres/PostgresDriver.js +1 -1
  30. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  31. package/browser/driver/postgres/PostgresQueryRunner.js +11 -36
  32. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  33. package/browser/driver/sap/SapDriver.d.ts +5 -0
  34. package/browser/driver/sap/SapDriver.js +4 -0
  35. package/browser/driver/sap/SapDriver.js.map +1 -1
  36. package/browser/driver/spanner/SpannerDriver.d.ts +2 -1
  37. package/browser/driver/spanner/SpannerDriver.js +1 -1
  38. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  39. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +7 -0
  40. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  41. package/browser/driver/sqlite/SqliteDriver.js +5 -0
  42. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  43. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -1
  44. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  45. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  46. package/browser/driver/sqlserver/SqlServerDriver.d.ts +5 -0
  47. package/browser/driver/sqlserver/SqlServerDriver.js +4 -0
  48. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  49. package/browser/driver/types/GeoJsonTypes.d.ts +87 -0
  50. package/browser/driver/types/GeoJsonTypes.js +3 -0
  51. package/browser/driver/types/GeoJsonTypes.js.map +1 -0
  52. package/browser/driver/types/UpsertType.d.ts +1 -1
  53. package/browser/driver/types/UpsertType.js.map +1 -1
  54. package/browser/entity-manager/EntityManager.js +2 -0
  55. package/browser/entity-manager/EntityManager.js.map +1 -1
  56. package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +2 -2
  57. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  58. package/browser/index.d.ts +1 -0
  59. package/browser/index.js +1 -0
  60. package/browser/index.js.map +1 -1
  61. package/browser/query-builder/InsertOrUpdateOptions.d.ts +2 -0
  62. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  63. package/browser/query-builder/InsertQueryBuilder.d.ts +4 -4
  64. package/browser/query-builder/InsertQueryBuilder.js +80 -74
  65. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  66. package/browser/query-builder/QueryBuilder.d.ts +4 -0
  67. package/browser/query-builder/QueryBuilder.js +28 -8
  68. package/browser/query-builder/QueryBuilder.js.map +1 -1
  69. package/browser/query-builder/QueryExpressionMap.d.ts +7 -0
  70. package/browser/query-builder/QueryExpressionMap.js +4 -0
  71. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  72. package/browser/query-builder/SelectQueryBuilder.d.ts +4 -0
  73. package/browser/query-builder/SelectQueryBuilder.js +22 -1
  74. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  75. package/browser/query-builder/UpdateQueryBuilder.js +1 -2
  76. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  77. package/browser/repository/UpsertOptions.d.ts +7 -0
  78. package/browser/repository/UpsertOptions.js.map +1 -1
  79. package/decorator/options/SpatialColumnOptions.d.ts +2 -1
  80. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  81. package/driver/Driver.d.ts +1 -1
  82. package/driver/Driver.js.map +1 -1
  83. package/driver/DriverUtils.js +1 -1
  84. package/driver/DriverUtils.js.map +1 -1
  85. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +2 -1
  86. package/driver/aurora-mysql/AuroraMysqlDriver.js +1 -1
  87. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  88. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +5 -0
  89. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  90. package/driver/cockroachdb/CockroachDriver.d.ts +19 -14
  91. package/driver/cockroachdb/CockroachDriver.js +128 -13
  92. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  93. package/driver/cockroachdb/CockroachQueryRunner.d.ts +28 -0
  94. package/driver/cockroachdb/CockroachQueryRunner.js +283 -11
  95. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  96. package/driver/mongodb/MongoDriver.d.ts +5 -0
  97. package/driver/mongodb/MongoDriver.js.map +1 -1
  98. package/driver/mysql/MysqlDriver.d.ts +2 -1
  99. package/driver/mysql/MysqlDriver.js +1 -1
  100. package/driver/mysql/MysqlDriver.js.map +1 -1
  101. package/driver/oracle/OracleDriver.d.ts +5 -0
  102. package/driver/oracle/OracleDriver.js +4 -0
  103. package/driver/oracle/OracleDriver.js.map +1 -1
  104. package/driver/oracle/OracleQueryRunner.js +15 -7
  105. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  106. package/driver/postgres/PostgresDriver.d.ts +2 -1
  107. package/driver/postgres/PostgresDriver.js +1 -1
  108. package/driver/postgres/PostgresDriver.js.map +1 -1
  109. package/driver/postgres/PostgresQueryRunner.js +11 -36
  110. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  111. package/driver/sap/SapDriver.d.ts +5 -0
  112. package/driver/sap/SapDriver.js +4 -0
  113. package/driver/sap/SapDriver.js.map +1 -1
  114. package/driver/spanner/SpannerDriver.d.ts +2 -1
  115. package/driver/spanner/SpannerDriver.js +1 -1
  116. package/driver/spanner/SpannerDriver.js.map +1 -1
  117. package/driver/sqlite/SqliteConnectionOptions.d.ts +7 -0
  118. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  119. package/driver/sqlite/SqliteDriver.js +5 -0
  120. package/driver/sqlite/SqliteDriver.js.map +1 -1
  121. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -1
  122. package/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  123. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  124. package/driver/sqlserver/SqlServerDriver.d.ts +5 -0
  125. package/driver/sqlserver/SqlServerDriver.js +4 -0
  126. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  127. package/driver/types/GeoJsonTypes.d.ts +87 -0
  128. package/driver/types/GeoJsonTypes.js +4 -0
  129. package/driver/types/GeoJsonTypes.js.map +1 -0
  130. package/driver/types/UpsertType.d.ts +1 -1
  131. package/driver/types/UpsertType.js.map +1 -1
  132. package/entity-manager/EntityManager.js +2 -0
  133. package/entity-manager/EntityManager.js.map +1 -1
  134. package/find-options/mongodb/MongoFindOneOptions.d.ts +2 -2
  135. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  136. package/index.d.ts +1 -0
  137. package/index.js +1 -0
  138. package/index.js.map +1 -1
  139. package/package.json +1 -1
  140. package/query-builder/InsertOrUpdateOptions.d.ts +2 -0
  141. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  142. package/query-builder/InsertQueryBuilder.d.ts +4 -4
  143. package/query-builder/InsertQueryBuilder.js +80 -74
  144. package/query-builder/InsertQueryBuilder.js.map +1 -1
  145. package/query-builder/QueryBuilder.d.ts +4 -0
  146. package/query-builder/QueryBuilder.js +28 -8
  147. package/query-builder/QueryBuilder.js.map +1 -1
  148. package/query-builder/QueryExpressionMap.d.ts +7 -0
  149. package/query-builder/QueryExpressionMap.js +4 -0
  150. package/query-builder/QueryExpressionMap.js.map +1 -1
  151. package/query-builder/SelectQueryBuilder.d.ts +4 -0
  152. package/query-builder/SelectQueryBuilder.js +22 -1
  153. package/query-builder/SelectQueryBuilder.js.map +1 -1
  154. package/query-builder/UpdateQueryBuilder.js +1 -2
  155. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  156. package/repository/UpsertOptions.d.ts +7 -0
  157. package/repository/UpsertOptions.js.map +1 -1
package/package.json CHANGED
@@ -1 +1 @@
1
- { "name": "typeorm", "private": false, "version": "0.3.12-dev.ae91c05", "description": "Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.", "license": "MIT", "readmeFilename": "README.md", "author": { "name": "Umed Khudoiberdiev", "email": "pleerock.me@gmail.com" }, "engines": { "node": ">= 12.9.0" }, "exports": { ".": { "types": "./index.d.ts", "node": { "import": "./index.mjs", "require": "./index.js", "types": "./index.d.ts" }, "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", "types": "./index.d.ts", "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/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" }, "repository": { "type": "git", "url": "https://github.com/typeorm/typeorm.git" }, "bugs": { "url": "https://github.com/typeorm/typeorm/issues" }, "homepage": "https://typeorm.io", "tags": [ "orm", "typescript", "typescript-orm", "mysql", "mysql-orm", "postgresql", "postgresql-orm", "mariadb", "mariadb-orm", "spanner", "sqlite", "sqlite-orm", "sql-server", "sql-server-orm", "oracle", "oracle-orm", "cloud-spanner", "cloud-spanner-orm" ], "devDependencies": { "@types/app-root-path": "^1.2.4", "@types/chai": "^4.2.15", "@types/chai-as-promised": "^7.1.3", "@types/debug": "^4.1.5", "@types/js-yaml": "^4.0.0", "@types/mkdirp": "^1.0.1", "@types/mocha": "^8.2.1", "@types/node": "^14.14.31", "@types/rimraf": "^3.0.0", "@types/sha.js": "^2.4.0", "@types/sinon": "^9.0.10", "@types/source-map-support": "^0.5.3", "@types/uuid": "^8.3.4", "@types/xml2js": "^0.4.8", "@types/yargs": "^17.0.2", "better-sqlite3": "^8.0.0", "chai": "^4.3.0", "chai-as-promised": "^7.1.1", "class-transformer": "^0.4.0", "conventional-changelog-angular": "^5.0.12", "conventional-changelog-cli": "^2.1.1", "del": "^6.0.0", "gulp": "^4.0.2", "gulp-istanbul": "^1.1.3", "gulp-mocha": "^8.0.0", "gulp-rename": "^2.0.0", "gulp-replace": "^1.0.0", "gulp-shell": "^0.8.0", "gulp-sourcemaps": "^3.0.0", "gulp-typescript": "^6.0.0-alpha.1", "gulpclass": "^0.2.0", "husky": "^5.1.1", "mocha": "^8.3.0", "mongodb": "^3.6.4", "mssql": "^7.3.0", "mysql": "^2.18.1", "mysql2": "^2.2.5", "pg": "^8.5.1", "pg-query-stream": "^4.0.0", "prettier": "^2.5.1", "redis": "^3.1.1", "remap-istanbul": "^0.13.0", "rimraf": "^3.0.2", "sinon": "^9.2.4", "sinon-chai": "^3.5.0", "source-map-support": "^0.5.19", "sql.js": "^1.4.0", "sqlite3": "^5.0.11", "ts-node": "^10.7.0", "typeorm-aurora-data-api-driver": "^2.0.0", "typescript": "^4.8.2" }, "peerDependencies": { "@google-cloud/spanner": "^5.18.0", "@sap/hana-client": "^2.12.25", "better-sqlite3": "^7.1.2 || ^8.0.0", "hdb-pool": "^0.1.6", "ioredis": "^5.0.4", "mongodb": "^3.6.0", "mssql": "^7.3.0", "mysql2": "^2.2.5", "oracledb": "^5.1.0", "pg": "^8.5.1", "pg-native": "^3.0.0", "pg-query-stream": "^4.0.0", "redis": "^3.1.1 || ^4.0.0", "sql.js": "^1.4.0", "sqlite3": "^5.0.3", "ts-node": "^10.7.0", "typeorm-aurora-data-api-driver": "^2.0.0" }, "peerDependenciesMeta": { "@google-cloud/spanner": { "optional": true }, "@sap/hana-client": { "optional": true }, "better-sqlite3": { "optional": true }, "hdb-pool": { "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 } }, "dependencies": { "@sqltools/formatter": "^1.2.2", "app-root-path": "^3.0.0", "buffer": "^6.0.3", "chalk": "^4.1.0", "cli-highlight": "^2.1.11", "date-fns": "^2.28.0", "debug": "^4.3.3", "dotenv": "^16.0.0", "glob": "^7.2.0", "js-yaml": "^4.1.0", "mkdirp": "^1.0.4", "reflect-metadata": "^0.1.13", "sha.js": "^2.4.11", "tslib": "^2.3.1", "uuid": "^8.3.2", "xml2js": "^0.4.23", "yargs": "^17.3.1" }, "scripts": { "test": "rimraf ./build && tsc && mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test", "test-fast": "mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test", "compile": "rimraf ./build && tsc", "watch": "./node_modules/.bin/tsc -w", "package": "gulp package", "pack": "gulp pack", "lint": "prettier --check \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"", "format": "prettier --write \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 2" }, "bin": { "typeorm": "./cli.js", "typeorm-ts-node-commonjs": "./cli-ts-node-commonjs.js", "typeorm-ts-node-esm": "./cli-ts-node-esm.js" }, "funding": "https://opencollective.com/typeorm", "collective": { "type": "opencollective", "url": "https://opencollective.com/typeorm", "logo": "https://opencollective.com/opencollective/logo.txt" }, "nyc": { "all": true, "cache": false, "exclude": [ "**/*.d.ts" ], "extension": [ ".ts" ], "include": [ "build/compiled/src/**", "src/**" ], "reporter": "json" } }
1
+ { "name": "typeorm", "private": false, "version": "0.3.12-dev.defb409", "description": "Data-Mapper ORM for TypeScript, ES7, ES6, ES5. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, MongoDB databases.", "license": "MIT", "readmeFilename": "README.md", "author": { "name": "Umed Khudoiberdiev", "email": "pleerock.me@gmail.com" }, "engines": { "node": ">= 12.9.0" }, "exports": { ".": { "types": "./index.d.ts", "node": { "import": "./index.mjs", "require": "./index.js", "types": "./index.d.ts" }, "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", "types": "./index.d.ts", "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/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" }, "repository": { "type": "git", "url": "https://github.com/typeorm/typeorm.git" }, "bugs": { "url": "https://github.com/typeorm/typeorm/issues" }, "homepage": "https://typeorm.io", "tags": [ "orm", "typescript", "typescript-orm", "mysql", "mysql-orm", "postgresql", "postgresql-orm", "mariadb", "mariadb-orm", "spanner", "sqlite", "sqlite-orm", "sql-server", "sql-server-orm", "oracle", "oracle-orm", "cloud-spanner", "cloud-spanner-orm" ], "devDependencies": { "@types/app-root-path": "^1.2.4", "@types/chai": "^4.2.15", "@types/chai-as-promised": "^7.1.3", "@types/debug": "^4.1.5", "@types/js-yaml": "^4.0.0", "@types/mkdirp": "^1.0.1", "@types/mocha": "^8.2.1", "@types/node": "^14.14.31", "@types/rimraf": "^3.0.0", "@types/sha.js": "^2.4.0", "@types/sinon": "^9.0.10", "@types/source-map-support": "^0.5.3", "@types/uuid": "^8.3.4", "@types/xml2js": "^0.4.8", "@types/yargs": "^17.0.2", "better-sqlite3": "^8.0.0", "chai": "^4.3.0", "chai-as-promised": "^7.1.1", "class-transformer": "^0.4.0", "conventional-changelog-angular": "^5.0.12", "conventional-changelog-cli": "^2.1.1", "del": "^6.0.0", "gulp": "^4.0.2", "gulp-istanbul": "^1.1.3", "gulp-mocha": "^8.0.0", "gulp-rename": "^2.0.0", "gulp-replace": "^1.0.0", "gulp-shell": "^0.8.0", "gulp-sourcemaps": "^3.0.0", "gulp-typescript": "^6.0.0-alpha.1", "gulpclass": "^0.2.0", "husky": "^5.1.1", "mocha": "^8.3.0", "mongodb": "^3.6.4", "mssql": "^7.3.0", "mysql": "^2.18.1", "mysql2": "^2.2.5", "pg": "^8.5.1", "pg-query-stream": "^4.0.0", "prettier": "^2.5.1", "redis": "^3.1.1", "remap-istanbul": "^0.13.0", "rimraf": "^3.0.2", "sinon": "^9.2.4", "sinon-chai": "^3.5.0", "source-map-support": "^0.5.19", "sql.js": "^1.4.0", "sqlite3": "^5.0.11", "ts-node": "^10.7.0", "typeorm-aurora-data-api-driver": "^2.0.0", "typescript": "^4.8.2" }, "peerDependencies": { "@google-cloud/spanner": "^5.18.0", "@sap/hana-client": "^2.12.25", "better-sqlite3": "^7.1.2 || ^8.0.0", "hdb-pool": "^0.1.6", "ioredis": "^5.0.4", "mongodb": "^3.6.0", "mssql": "^7.3.0", "mysql2": "^2.2.5", "oracledb": "^5.1.0", "pg": "^8.5.1", "pg-native": "^3.0.0", "pg-query-stream": "^4.0.0", "redis": "^3.1.1 || ^4.0.0", "sql.js": "^1.4.0", "sqlite3": "^5.0.3", "ts-node": "^10.7.0", "typeorm-aurora-data-api-driver": "^2.0.0" }, "peerDependenciesMeta": { "@google-cloud/spanner": { "optional": true }, "@sap/hana-client": { "optional": true }, "better-sqlite3": { "optional": true }, "hdb-pool": { "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 } }, "dependencies": { "@sqltools/formatter": "^1.2.2", "app-root-path": "^3.0.0", "buffer": "^6.0.3", "chalk": "^4.1.0", "cli-highlight": "^2.1.11", "date-fns": "^2.28.0", "debug": "^4.3.3", "dotenv": "^16.0.0", "glob": "^7.2.0", "js-yaml": "^4.1.0", "mkdirp": "^1.0.4", "reflect-metadata": "^0.1.13", "sha.js": "^2.4.11", "tslib": "^2.3.1", "uuid": "^8.3.2", "xml2js": "^0.4.23", "yargs": "^17.3.1" }, "scripts": { "test": "rimraf ./build && tsc && mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test", "test-fast": "mocha --file ./build/compiled/test/utils/test-setup.js --bail --recursive --timeout 60000 ./build/compiled/test", "compile": "rimraf ./build && tsc", "watch": "./node_modules/.bin/tsc -w", "package": "gulp package", "pack": "gulp pack", "lint": "prettier --check \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"", "format": "prettier --write \"./src/**/*.ts\" \"./test/**/*.ts\" \"./sample/**/*.ts\"", "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 2" }, "bin": { "typeorm": "./cli.js", "typeorm-ts-node-commonjs": "./cli-ts-node-commonjs.js", "typeorm-ts-node-esm": "./cli-ts-node-esm.js" }, "funding": "https://opencollective.com/typeorm", "collective": { "type": "opencollective", "url": "https://opencollective.com/typeorm", "logo": "https://opencollective.com/opencollective/logo.txt" }, "nyc": { "all": true, "cache": false, "exclude": [ "**/*.d.ts" ], "extension": [ ".ts" ], "include": [ "build/compiled/src/**", "src/**" ], "reporter": "json" } }
@@ -1,3 +1,4 @@
1
+ import { UpsertType } from "../driver/types/UpsertType";
1
2
  export declare type InsertOrUpdateOptions = {
2
3
  /**
3
4
  * If true, postgres will skip the update if no values would be changed (reduces writes)
@@ -7,4 +8,5 @@ export declare type InsertOrUpdateOptions = {
7
8
  * If included, postgres will apply the index predicate to a conflict target (partial index)
8
9
  */
9
10
  indexPredicate?: string;
11
+ upsertType?: UpsertType;
10
12
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builder/InsertOrUpdateOptions.ts"],"names":[],"mappings":"","file":"InsertOrUpdateOptions.js","sourcesContent":["export type InsertOrUpdateOptions = {\n /**\n * If true, postgres will skip the update if no values would be changed (reduces writes)\n */\n skipUpdateIfNoValuesChanged?: boolean\n /**\n * If included, postgres will apply the index predicate to a conflict target (partial index)\n */\n indexPredicate?: string\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-builder/InsertOrUpdateOptions.ts"],"names":[],"mappings":"","file":"InsertOrUpdateOptions.js","sourcesContent":["import { UpsertType } from \"../driver/types/UpsertType\"\n\nexport type InsertOrUpdateOptions = {\n /**\n * If true, postgres will skip the update if no values would be changed (reduces writes)\n */\n skipUpdateIfNoValuesChanged?: boolean\n /**\n * If included, postgres will apply the index predicate to a conflict target (partial index)\n */\n indexPredicate?: string\n upsertType?: UpsertType\n}\n"],"sourceRoot":".."}
@@ -1,10 +1,10 @@
1
- import { QueryBuilder } from "./QueryBuilder";
2
- import { ObjectLiteral } from "../common/ObjectLiteral";
3
1
  import { EntityTarget } from "../common/EntityTarget";
4
- import { QueryDeepPartialEntity } from "./QueryPartialEntity";
5
- import { InsertResult } from "./result/InsertResult";
2
+ import { ObjectLiteral } from "../common/ObjectLiteral";
6
3
  import { ColumnMetadata } from "../metadata/ColumnMetadata";
7
4
  import { InsertOrUpdateOptions } from "./InsertOrUpdateOptions";
5
+ import { QueryBuilder } from "./QueryBuilder";
6
+ import { QueryDeepPartialEntity } from "./QueryPartialEntity";
7
+ import { InsertResult } from "./result/InsertResult";
8
8
  /**
9
9
  * Allows to build complex sql queries in a fashion way and execute those queries.
10
10
  */
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InsertQueryBuilder = void 0;
4
- const QueryBuilder_1 = require("./QueryBuilder");
5
- const InsertResult_1 = require("./result/InsertResult");
6
- const ReturningStatementNotSupportedError_1 = require("../error/ReturningStatementNotSupportedError");
7
- const InsertValuesMissingError_1 = require("../error/InsertValuesMissingError");
8
- const ReturningResultsEntityUpdator_1 = require("./ReturningResultsEntityUpdator");
9
- const BroadcasterResult_1 = require("../subscriber/BroadcasterResult");
10
- const error_1 = require("../error");
11
4
  const uuid_1 = require("uuid");
12
5
  const DriverUtils_1 = require("../driver/DriverUtils");
13
- const ObjectUtils_1 = require("../util/ObjectUtils");
6
+ const error_1 = require("../error");
7
+ const InsertValuesMissingError_1 = require("../error/InsertValuesMissingError");
8
+ const ReturningStatementNotSupportedError_1 = require("../error/ReturningStatementNotSupportedError");
9
+ const BroadcasterResult_1 = require("../subscriber/BroadcasterResult");
14
10
  const InstanceChecker_1 = require("../util/InstanceChecker");
11
+ const ObjectUtils_1 = require("../util/ObjectUtils");
12
+ const QueryBuilder_1 = require("./QueryBuilder");
13
+ const InsertResult_1 = require("./result/InsertResult");
14
+ const ReturningResultsEntityUpdator_1 = require("./ReturningResultsEntityUpdator");
15
15
  /**
16
16
  * Allows to build complex sql queries in a fashion way and execute those queries.
17
17
  */
@@ -224,6 +224,7 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
224
224
  columns: statementOrOverwrite === null || statementOrOverwrite === void 0 ? void 0 : statementOrOverwrite.columns,
225
225
  overwrite: statementOrOverwrite === null || statementOrOverwrite === void 0 ? void 0 : statementOrOverwrite.overwrite,
226
226
  skipUpdateIfNoValuesChanged: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.skipUpdateIfNoValuesChanged,
227
+ upsertType: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.upsertType,
227
228
  };
228
229
  return this;
229
230
  }
@@ -232,6 +233,7 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
232
233
  conflict: conflictTarget,
233
234
  skipUpdateIfNoValuesChanged: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.skipUpdateIfNoValuesChanged,
234
235
  indexPredicate: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.indexPredicate,
236
+ upsertType: orUpdateOptions === null || orUpdateOptions === void 0 ? void 0 : orUpdateOptions.upsertType,
235
237
  };
236
238
  return this;
237
239
  }
@@ -242,6 +244,7 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
242
244
  * Creates INSERT express used to perform insert query.
243
245
  */
244
246
  createInsertExpression() {
247
+ var _a, _b;
245
248
  const tableName = this.getTableName(this.getMainTableName());
246
249
  const valuesExpression = this.createValuesExpression(); // its important to get values before returning expression because oracle rely on native parameters and ordering of them is important
247
250
  const returningExpression = this.connection.driver.options.type === "oracle" &&
@@ -250,6 +253,9 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
250
253
  : this.createReturningExpression("insert"); // oracle doesnt support returning with multi-row insert
251
254
  const columnsExpression = this.createColumnNamesExpression();
252
255
  let query = "INSERT ";
256
+ if (((_a = this.expressionMap.onUpdate) === null || _a === void 0 ? void 0 : _a.upsertType) === "primary-key") {
257
+ query = "UPSERT ";
258
+ }
253
259
  if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver) ||
254
260
  this.connection.driver.options.type === "aurora-mysql") {
255
261
  query += `${this.expressionMap.onIgnore ? " IGNORE " : ""}`;
@@ -295,79 +301,79 @@ class InsertQueryBuilder extends QueryBuilder_1.QueryBuilder {
295
301
  query += ` DEFAULT VALUES`;
296
302
  }
297
303
  }
298
- if (this.connection.driver.supportedUpsertType ===
299
- "on-conflict-do-update") {
300
- if (this.expressionMap.onIgnore) {
301
- query += " ON CONFLICT DO NOTHING ";
302
- }
303
- else if (this.expressionMap.onConflict) {
304
- query += ` ON CONFLICT ${this.expressionMap.onConflict} `;
305
- }
306
- else if (this.expressionMap.onUpdate) {
307
- const { overwrite, columns, conflict, skipUpdateIfNoValuesChanged, indexPredicate, } = this.expressionMap.onUpdate;
308
- let conflictTarget = "ON CONFLICT";
309
- if (Array.isArray(conflict)) {
310
- conflictTarget += ` ( ${conflict
311
- .map((column) => this.escape(column))
312
- .join(", ")} )`;
313
- if (indexPredicate &&
314
- !DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
315
- throw new error_1.TypeORMError(`indexPredicate option is not supported by the current database driver`);
304
+ if (((_b = this.expressionMap.onUpdate) === null || _b === void 0 ? void 0 : _b.upsertType) !== "primary-key") {
305
+ if (this.connection.driver.supportedUpsertTypes.includes("on-conflict-do-update")) {
306
+ if (this.expressionMap.onIgnore) {
307
+ query += " ON CONFLICT DO NOTHING ";
308
+ }
309
+ else if (this.expressionMap.onConflict) {
310
+ query += ` ON CONFLICT ${this.expressionMap.onConflict} `;
311
+ }
312
+ else if (this.expressionMap.onUpdate) {
313
+ const { overwrite, columns, conflict, skipUpdateIfNoValuesChanged, indexPredicate, } = this.expressionMap.onUpdate;
314
+ let conflictTarget = "ON CONFLICT";
315
+ if (Array.isArray(conflict)) {
316
+ conflictTarget += ` ( ${conflict
317
+ .map((column) => this.escape(column))
318
+ .join(", ")} )`;
319
+ if (indexPredicate &&
320
+ !DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
321
+ throw new error_1.TypeORMError(`indexPredicate option is not supported by the current database driver`);
322
+ }
323
+ if (indexPredicate &&
324
+ DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
325
+ conflictTarget += ` WHERE ( ${this.escape(indexPredicate)} )`;
326
+ }
327
+ }
328
+ else if (conflict) {
329
+ conflictTarget += ` ON CONSTRAINT ${this.escape(conflict)}`;
316
330
  }
317
- if (indexPredicate &&
331
+ if (Array.isArray(overwrite)) {
332
+ query += ` ${conflictTarget} DO UPDATE SET `;
333
+ query += overwrite === null || overwrite === void 0 ? void 0 : overwrite.map((column) => `${this.escape(column)} = EXCLUDED.${this.escape(column)}`).join(", ");
334
+ query += " ";
335
+ }
336
+ else if (columns) {
337
+ query += ` ${conflictTarget} DO UPDATE SET `;
338
+ query += columns
339
+ .map((column) => `${this.escape(column)} = :${column}`)
340
+ .join(", ");
341
+ query += " ";
342
+ }
343
+ if (Array.isArray(overwrite) &&
344
+ skipUpdateIfNoValuesChanged &&
318
345
  DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
319
- conflictTarget += ` WHERE ( ${this.escape(indexPredicate)} )`;
346
+ query += ` WHERE (`;
347
+ query += overwrite
348
+ .map((column) => `${tableName}.${this.escape(column)} IS DISTINCT FROM EXCLUDED.${this.escape(column)}`)
349
+ .join(" OR ");
350
+ query += ") ";
320
351
  }
321
352
  }
322
- else if (conflict) {
323
- conflictTarget += ` ON CONSTRAINT ${this.escape(conflict)}`;
324
- }
325
- if (Array.isArray(overwrite)) {
326
- query += ` ${conflictTarget} DO UPDATE SET `;
327
- query += overwrite === null || overwrite === void 0 ? void 0 : overwrite.map((column) => `${this.escape(column)} = EXCLUDED.${this.escape(column)}`).join(", ");
328
- query += " ";
329
- }
330
- else if (columns) {
331
- query += ` ${conflictTarget} DO UPDATE SET `;
332
- query += columns
333
- .map((column) => `${this.escape(column)} = :${column}`)
334
- .join(", ");
335
- query += " ";
336
- }
337
- if (Array.isArray(overwrite) &&
338
- skipUpdateIfNoValuesChanged &&
339
- DriverUtils_1.DriverUtils.isPostgresFamily(this.connection.driver)) {
340
- query += ` WHERE (`;
341
- query += overwrite
342
- .map((column) => `${tableName}.${this.escape(column)} IS DISTINCT FROM EXCLUDED.${this.escape(column)}`)
343
- .join(" OR ");
344
- query += ") ";
345
- }
346
353
  }
347
- }
348
- else if (this.connection.driver.supportedUpsertType ===
349
- "on-duplicate-key-update") {
350
- if (this.expressionMap.onUpdate) {
351
- const { overwrite, columns } = this.expressionMap.onUpdate;
352
- if (Array.isArray(overwrite)) {
353
- query += " ON DUPLICATE KEY UPDATE ";
354
- query += overwrite
355
- .map((column) => `${this.escape(column)} = VALUES(${this.escape(column)})`)
356
- .join(", ");
357
- query += " ";
358
- }
359
- else if (Array.isArray(columns)) {
360
- query += " ON DUPLICATE KEY UPDATE ";
361
- query += columns
362
- .map((column) => `${this.escape(column)} = :${column}`)
363
- .join(", ");
364
- query += " ";
354
+ else if (this.connection.driver.supportedUpsertTypes.includes("on-duplicate-key-update")) {
355
+ if (this.expressionMap.onUpdate) {
356
+ const { overwrite, columns } = this.expressionMap.onUpdate;
357
+ if (Array.isArray(overwrite)) {
358
+ query += " ON DUPLICATE KEY UPDATE ";
359
+ query += overwrite
360
+ .map((column) => `${this.escape(column)} = VALUES(${this.escape(column)})`)
361
+ .join(", ");
362
+ query += " ";
363
+ }
364
+ else if (Array.isArray(columns)) {
365
+ query += " ON DUPLICATE KEY UPDATE ";
366
+ query += columns
367
+ .map((column) => `${this.escape(column)} = :${column}`)
368
+ .join(", ");
369
+ query += " ";
370
+ }
365
371
  }
366
372
  }
367
- }
368
- else {
369
- if (this.expressionMap.onUpdate) {
370
- throw new error_1.TypeORMError(`onUpdate is not supported by the current database driver`);
373
+ else {
374
+ if (this.expressionMap.onUpdate) {
375
+ throw new error_1.TypeORMError(`onUpdate is not supported by the current database driver`);
376
+ }
371
377
  }
372
378
  }
373
379
  // add RETURNING expression