typeorm 0.3.12-dev.8668c29 → 0.3.12-dev.8731858

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 (192) hide show
  1. package/browser/data-source/DataSource.js +1 -1
  2. package/browser/data-source/DataSource.js.map +1 -1
  3. package/browser/decorator/options/SpatialColumnOptions.d.ts +2 -1
  4. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  5. package/browser/driver/Driver.d.ts +1 -1
  6. package/browser/driver/Driver.js.map +1 -1
  7. package/browser/driver/DriverUtils.js +1 -1
  8. package/browser/driver/DriverUtils.js.map +1 -1
  9. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +2 -1
  10. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +1 -1
  11. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  12. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +6 -0
  13. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  14. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +3 -1
  15. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  16. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +5 -0
  17. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  18. package/browser/driver/cockroachdb/CockroachDriver.d.ts +19 -14
  19. package/browser/driver/cockroachdb/CockroachDriver.js +128 -13
  20. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  21. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +28 -0
  22. package/browser/driver/cockroachdb/CockroachQueryRunner.js +283 -11
  23. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  24. package/browser/driver/mongodb/MongoDriver.d.ts +5 -0
  25. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  26. package/browser/driver/mysql/MysqlDriver.d.ts +2 -1
  27. package/browser/driver/mysql/MysqlDriver.js +1 -1
  28. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  29. package/browser/driver/oracle/OracleDriver.d.ts +5 -0
  30. package/browser/driver/oracle/OracleDriver.js +4 -0
  31. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  32. package/browser/driver/oracle/OracleQueryRunner.js +15 -7
  33. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  34. package/browser/driver/postgres/PostgresDriver.d.ts +2 -1
  35. package/browser/driver/postgres/PostgresDriver.js +1 -1
  36. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  37. package/browser/driver/postgres/PostgresQueryRunner.js +11 -36
  38. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  39. package/browser/driver/sap/SapDriver.d.ts +5 -0
  40. package/browser/driver/sap/SapDriver.js +4 -0
  41. package/browser/driver/sap/SapDriver.js.map +1 -1
  42. package/browser/driver/spanner/SpannerDriver.d.ts +2 -1
  43. package/browser/driver/spanner/SpannerDriver.js +1 -1
  44. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  45. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -1
  46. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +13 -1
  47. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  48. package/browser/driver/sqlserver/SqlServerDriver.d.ts +5 -0
  49. package/browser/driver/sqlserver/SqlServerDriver.js +4 -0
  50. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  51. package/browser/driver/types/GeoJsonTypes.d.ts +87 -0
  52. package/browser/driver/types/GeoJsonTypes.js +3 -0
  53. package/browser/driver/types/GeoJsonTypes.js.map +1 -0
  54. package/browser/driver/types/UpsertType.d.ts +1 -1
  55. package/browser/driver/types/UpsertType.js.map +1 -1
  56. package/browser/entity-manager/EntityManager.js +2 -0
  57. package/browser/entity-manager/EntityManager.js.map +1 -1
  58. package/browser/find-options/FindOperatorType.d.ts +1 -1
  59. package/browser/find-options/FindOperatorType.js.map +1 -1
  60. package/browser/find-options/FindOptionsWhere.d.ts +5 -1
  61. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  62. package/browser/find-options/operator/JsonContains.d.ts +6 -0
  63. package/browser/find-options/operator/JsonContains.js +10 -0
  64. package/browser/find-options/operator/JsonContains.js.map +1 -0
  65. package/browser/index.d.ts +3 -0
  66. package/browser/index.js +3 -0
  67. package/browser/index.js.map +1 -1
  68. package/browser/metadata-builder/RelationJoinColumnBuilder.js +2 -1
  69. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  70. package/browser/migration/MigrationExecutor.js +1 -1
  71. package/browser/migration/MigrationExecutor.js.map +1 -1
  72. package/browser/naming-strategy/LegacyOracleNamingStrategy.d.ts +21 -0
  73. package/browser/naming-strategy/LegacyOracleNamingStrategy.js +46 -0
  74. package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -0
  75. package/browser/platform/BrowserPlatformTools.js +2 -2
  76. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  77. package/browser/query-builder/InsertOrUpdateOptions.d.ts +2 -0
  78. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  79. package/browser/query-builder/InsertQueryBuilder.d.ts +4 -4
  80. package/browser/query-builder/InsertQueryBuilder.js +80 -74
  81. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  82. package/browser/query-builder/QueryBuilder.d.ts +4 -0
  83. package/browser/query-builder/QueryBuilder.js +30 -8
  84. package/browser/query-builder/QueryBuilder.js.map +1 -1
  85. package/browser/query-builder/QueryExpressionMap.d.ts +7 -0
  86. package/browser/query-builder/QueryExpressionMap.js +4 -0
  87. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  88. package/browser/query-builder/SelectQueryBuilder.d.ts +5 -1
  89. package/browser/query-builder/SelectQueryBuilder.js +30 -5
  90. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  91. package/browser/query-builder/UpdateQueryBuilder.js +1 -2
  92. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  93. package/browser/query-builder/WhereClause.d.ts +1 -1
  94. package/browser/query-builder/WhereClause.js.map +1 -1
  95. package/browser/repository/UpsertOptions.d.ts +7 -0
  96. package/browser/repository/UpsertOptions.js.map +1 -1
  97. package/data-source/DataSource.js +1 -1
  98. package/data-source/DataSource.js.map +1 -1
  99. package/decorator/options/SpatialColumnOptions.d.ts +2 -1
  100. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  101. package/driver/Driver.d.ts +1 -1
  102. package/driver/Driver.js.map +1 -1
  103. package/driver/DriverUtils.js +1 -1
  104. package/driver/DriverUtils.js.map +1 -1
  105. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +2 -1
  106. package/driver/aurora-mysql/AuroraMysqlDriver.js +1 -1
  107. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  108. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +6 -0
  109. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  110. package/driver/better-sqlite3/BetterSqlite3Driver.js +3 -1
  111. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  112. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +5 -0
  113. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  114. package/driver/cockroachdb/CockroachDriver.d.ts +19 -14
  115. package/driver/cockroachdb/CockroachDriver.js +128 -13
  116. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  117. package/driver/cockroachdb/CockroachQueryRunner.d.ts +28 -0
  118. package/driver/cockroachdb/CockroachQueryRunner.js +283 -11
  119. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  120. package/driver/mongodb/MongoDriver.d.ts +5 -0
  121. package/driver/mongodb/MongoDriver.js.map +1 -1
  122. package/driver/mysql/MysqlDriver.d.ts +2 -1
  123. package/driver/mysql/MysqlDriver.js +1 -1
  124. package/driver/mysql/MysqlDriver.js.map +1 -1
  125. package/driver/oracle/OracleDriver.d.ts +5 -0
  126. package/driver/oracle/OracleDriver.js +4 -0
  127. package/driver/oracle/OracleDriver.js.map +1 -1
  128. package/driver/oracle/OracleQueryRunner.js +15 -7
  129. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  130. package/driver/postgres/PostgresDriver.d.ts +2 -1
  131. package/driver/postgres/PostgresDriver.js +1 -1
  132. package/driver/postgres/PostgresDriver.js.map +1 -1
  133. package/driver/postgres/PostgresQueryRunner.js +11 -36
  134. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  135. package/driver/sap/SapDriver.d.ts +5 -0
  136. package/driver/sap/SapDriver.js +4 -0
  137. package/driver/sap/SapDriver.js.map +1 -1
  138. package/driver/spanner/SpannerDriver.d.ts +2 -1
  139. package/driver/spanner/SpannerDriver.js +1 -1
  140. package/driver/spanner/SpannerDriver.js.map +1 -1
  141. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +2 -1
  142. package/driver/sqlite-abstract/AbstractSqliteDriver.js +13 -1
  143. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  144. package/driver/sqlserver/SqlServerDriver.d.ts +5 -0
  145. package/driver/sqlserver/SqlServerDriver.js +4 -0
  146. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  147. package/driver/types/GeoJsonTypes.d.ts +87 -0
  148. package/driver/types/GeoJsonTypes.js +4 -0
  149. package/driver/types/GeoJsonTypes.js.map +1 -0
  150. package/driver/types/UpsertType.d.ts +1 -1
  151. package/driver/types/UpsertType.js.map +1 -1
  152. package/entity-manager/EntityManager.js +2 -0
  153. package/entity-manager/EntityManager.js.map +1 -1
  154. package/find-options/FindOperatorType.d.ts +1 -1
  155. package/find-options/FindOperatorType.js.map +1 -1
  156. package/find-options/FindOptionsWhere.d.ts +5 -1
  157. package/find-options/FindOptionsWhere.js.map +1 -1
  158. package/find-options/operator/JsonContains.d.ts +6 -0
  159. package/find-options/operator/JsonContains.js +14 -0
  160. package/find-options/operator/JsonContains.js.map +1 -0
  161. package/index.d.ts +3 -0
  162. package/index.js +5 -1
  163. package/index.js.map +1 -1
  164. package/index.mjs +4 -0
  165. package/metadata-builder/RelationJoinColumnBuilder.js +2 -1
  166. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  167. package/migration/MigrationExecutor.js +1 -1
  168. package/migration/MigrationExecutor.js.map +1 -1
  169. package/naming-strategy/LegacyOracleNamingStrategy.d.ts +21 -0
  170. package/naming-strategy/LegacyOracleNamingStrategy.js +50 -0
  171. package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -0
  172. package/package.json +1 -1
  173. package/query-builder/InsertOrUpdateOptions.d.ts +2 -0
  174. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  175. package/query-builder/InsertQueryBuilder.d.ts +4 -4
  176. package/query-builder/InsertQueryBuilder.js +80 -74
  177. package/query-builder/InsertQueryBuilder.js.map +1 -1
  178. package/query-builder/QueryBuilder.d.ts +4 -0
  179. package/query-builder/QueryBuilder.js +30 -8
  180. package/query-builder/QueryBuilder.js.map +1 -1
  181. package/query-builder/QueryExpressionMap.d.ts +7 -0
  182. package/query-builder/QueryExpressionMap.js +4 -0
  183. package/query-builder/QueryExpressionMap.js.map +1 -1
  184. package/query-builder/SelectQueryBuilder.d.ts +5 -1
  185. package/query-builder/SelectQueryBuilder.js +30 -5
  186. package/query-builder/SelectQueryBuilder.js.map +1 -1
  187. package/query-builder/UpdateQueryBuilder.js +1 -2
  188. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  189. package/query-builder/WhereClause.d.ts +1 -1
  190. package/query-builder/WhereClause.js.map +1 -1
  191. package/repository/UpsertOptions.d.ts +7 -0
  192. package/repository/UpsertOptions.js.map +1 -1
package/package.json CHANGED
@@ -1 +1 @@
1
- { "name": "typeorm", "private": false, "version": "0.3.12-dev.8668c29", "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.8731858", "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 || ^3.0.1", "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