typeorm 0.2.28 → 0.2.32

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 (1178) hide show
  1. package/README.md +54 -49
  2. package/browser/cache/QueryResultCache.js +1 -1
  3. package/browser/cache/QueryResultCacheOptions.js +1 -1
  4. package/browser/common/DeepPartial.js +1 -1
  5. package/browser/common/EntityFieldsNames.d.ts +6 -0
  6. package/browser/common/EntityFieldsNames.js +3 -0
  7. package/browser/common/EntityFieldsNames.js.map +1 -0
  8. package/browser/common/EntityTarget.js +1 -1
  9. package/browser/common/ObjectLiteral.js +1 -1
  10. package/browser/common/ObjectType.js +1 -1
  11. package/browser/connection/BaseConnectionOptions.js +1 -1
  12. package/browser/connection/Connection.d.ts +2 -2
  13. package/browser/connection/Connection.js +4 -2
  14. package/browser/connection/Connection.js.map +1 -1
  15. package/browser/connection/ConnectionMetadataBuilder.js +5 -5
  16. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  17. package/browser/connection/ConnectionOptions.js +1 -1
  18. package/browser/connection/ConnectionOptionsReader.d.ts +3 -3
  19. package/browser/connection/ConnectionOptionsReader.js +30 -30
  20. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  21. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
  22. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +1 -1
  24. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  25. package/browser/decorator/columns/PrimaryColumn.d.ts +9 -2
  26. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  27. package/browser/decorator/entity/ChildEntity.js +1 -1
  28. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  29. package/browser/decorator/options/ColumnCommonOptions.js +1 -1
  30. package/browser/decorator/options/ColumnEmbeddedOptions.js +1 -1
  31. package/browser/decorator/options/ColumnEnumOptions.js +1 -1
  32. package/browser/decorator/options/ColumnHstoreOptions.js +1 -1
  33. package/browser/decorator/options/ColumnNumericOptions.js +1 -1
  34. package/browser/decorator/options/ColumnOptions.js +1 -1
  35. package/browser/decorator/options/ColumnWithLengthOptions.js +1 -1
  36. package/browser/decorator/options/ColumnWithWidthOptions.js +1 -1
  37. package/browser/decorator/options/EntityOptions.js +1 -1
  38. package/browser/decorator/options/IndexOptions.js +1 -1
  39. package/browser/decorator/options/JoinColumnOptions.js +1 -1
  40. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +1 -1
  41. package/browser/decorator/options/JoinTableOptions.js +1 -1
  42. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -1
  43. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -1
  44. package/browser/decorator/options/RelationOptions.d.ts +10 -0
  45. package/browser/decorator/options/RelationOptions.js +1 -1
  46. package/browser/decorator/options/RelationOptions.js.map +1 -1
  47. package/browser/decorator/options/SpatialColumnOptions.js +1 -1
  48. package/browser/decorator/options/TransactionOptions.js +1 -1
  49. package/browser/decorator/options/ValueTransformer.js +1 -1
  50. package/browser/decorator/options/ViewColumnOptions.js +1 -1
  51. package/browser/decorator/options/ViewEntityOptions.js +1 -1
  52. package/browser/decorator/relations/ManyToOne.d.ts +6 -6
  53. package/browser/decorator/relations/ManyToOne.js +5 -5
  54. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  55. package/browser/decorator/relations/OneToMany.d.ts +3 -2
  56. package/browser/decorator/relations/OneToMany.js +4 -3
  57. package/browser/decorator/relations/OneToMany.js.map +1 -1
  58. package/browser/decorator/transaction/Transaction.d.ts +1 -1
  59. package/browser/decorator/transaction/Transaction.js +6 -6
  60. package/browser/decorator/transaction/Transaction.js.map +1 -1
  61. package/browser/decorator/tree/Tree.d.ts +2 -1
  62. package/browser/decorator/tree/Tree.js +3 -2
  63. package/browser/decorator/tree/Tree.js.map +1 -1
  64. package/browser/driver/Driver.d.ts +1 -1
  65. package/browser/driver/Driver.js +1 -1
  66. package/browser/driver/Driver.js.map +1 -1
  67. package/browser/driver/DriverFactory.js.map +1 -1
  68. package/browser/driver/DriverUtils.d.ts +10 -0
  69. package/browser/driver/DriverUtils.js +99 -12
  70. package/browser/driver/DriverUtils.js.map +1 -1
  71. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js +1 -1
  72. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +1 -0
  73. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js +1 -1
  74. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  75. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +3 -3
  76. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +15 -6
  77. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  78. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +6 -1
  79. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +72 -11
  80. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  81. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +2 -0
  82. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +1 -1
  83. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  84. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +10 -1
  85. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +26 -2
  86. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  87. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
  88. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +59 -11
  89. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  90. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +1 -1
  91. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -1
  92. package/browser/driver/cockroachdb/CockroachConnectionOptions.js +1 -1
  93. package/browser/driver/cockroachdb/CockroachDriver.d.ts +1 -1
  94. package/browser/driver/cockroachdb/CockroachDriver.js +6 -9
  95. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  96. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  97. package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
  98. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  99. package/browser/driver/cordova/CordovaConnectionOptions.js +1 -1
  100. package/browser/driver/expo/ExpoConnectionOptions.js +1 -1
  101. package/browser/driver/expo/ExpoQueryRunner.js +72 -14
  102. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  103. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +8 -0
  104. package/browser/driver/mongodb/MongoConnectionOptions.js +1 -1
  105. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  106. package/browser/driver/mongodb/MongoDriver.d.ts +8 -4
  107. package/browser/driver/mongodb/MongoDriver.js +26 -14
  108. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  109. package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  110. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  111. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  112. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -1
  113. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  114. package/browser/driver/mysql/MysqlConnectionOptions.js +1 -1
  115. package/browser/driver/mysql/MysqlDriver.d.ts +2 -2
  116. package/browser/driver/mysql/MysqlDriver.js +15 -14
  117. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  118. package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  119. package/browser/driver/mysql/MysqlQueryRunner.js +118 -43
  120. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  121. package/browser/driver/nativescript/NativescriptConnectionOptions.js +1 -1
  122. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +1 -1
  123. package/browser/driver/oracle/OracleConnectionOptions.d.ts +4 -0
  124. package/browser/driver/oracle/OracleConnectionOptions.js +1 -1
  125. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  126. package/browser/driver/oracle/OracleDriver.d.ts +1 -1
  127. package/browser/driver/oracle/OracleDriver.js +28 -3
  128. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  129. package/browser/driver/oracle/OracleQueryRunner.js +53 -7
  130. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  131. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -1
  132. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
  133. package/browser/driver/postgres/PostgresConnectionOptions.js +1 -1
  134. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  135. package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
  136. package/browser/driver/postgres/PostgresDriver.js +63 -29
  137. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  138. package/browser/driver/postgres/PostgresQueryRunner.d.ts +9 -1
  139. package/browser/driver/postgres/PostgresQueryRunner.js +335 -211
  140. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  141. package/browser/driver/react-native/ReactNativeConnectionOptions.js +1 -1
  142. package/browser/driver/react-native/ReactNativeDriver.js +1 -2
  143. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  144. package/browser/driver/sap/SapConnectionCredentialsOptions.js +1 -1
  145. package/browser/driver/sap/SapConnectionOptions.js +1 -1
  146. package/browser/driver/sap/SapDriver.d.ts +1 -1
  147. package/browser/driver/sap/SapDriver.js.map +1 -1
  148. package/browser/driver/sap/SapQueryRunner.js +58 -10
  149. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  150. package/browser/driver/sqlite/SqliteConnectionOptions.js +1 -1
  151. package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
  152. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  153. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +1 -1
  154. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -1
  155. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  156. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -8
  157. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  158. package/browser/driver/sqljs/SqljsConnectionOptions.js +1 -1
  159. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  160. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -1
  161. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  162. package/browser/driver/sqlserver/SqlServerConnectionOptions.js +1 -1
  163. package/browser/driver/sqlserver/SqlServerDriver.d.ts +2 -2
  164. package/browser/driver/sqlserver/SqlServerDriver.js +33 -8
  165. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  166. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -0
  167. package/browser/driver/sqlserver/SqlServerQueryRunner.js +166 -86
  168. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  169. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  170. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
  171. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  172. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  173. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
  174. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  175. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  176. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
  177. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  178. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  179. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
  180. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  181. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  182. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
  183. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  184. package/browser/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  185. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
  186. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  187. package/browser/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  188. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
  189. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  190. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  191. package/browser/driver/types/ColumnTypes.js +1 -1
  192. package/browser/driver/types/ColumnTypes.js.map +1 -1
  193. package/browser/driver/types/DataTypeDefaults.js +1 -1
  194. package/browser/driver/types/DatabaseType.js +1 -1
  195. package/browser/driver/types/IsolationLevel.js +1 -1
  196. package/browser/driver/types/MappedColumnTypes.js +1 -1
  197. package/browser/driver/types/ReplicationMode.js +1 -1
  198. package/browser/entity-manager/EntityManager.d.ts +16 -2
  199. package/browser/entity-manager/EntityManager.js +5 -16
  200. package/browser/entity-manager/EntityManager.js.map +1 -1
  201. package/browser/entity-manager/MongoEntityManager.d.ts +1 -4
  202. package/browser/entity-manager/MongoEntityManager.js +53 -48
  203. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  204. package/browser/entity-schema/EntitySchemaCheckOptions.js +1 -1
  205. package/browser/entity-schema/EntitySchemaColumnOptions.js +1 -1
  206. package/browser/entity-schema/EntitySchemaExclusionOptions.js +1 -1
  207. package/browser/entity-schema/EntitySchemaIndexOptions.js +1 -1
  208. package/browser/entity-schema/EntitySchemaRelationOptions.js +1 -1
  209. package/browser/entity-schema/EntitySchemaUniqueOptions.js +1 -1
  210. package/browser/error/index.d.ts +61 -0
  211. package/browser/error/index.js +63 -0
  212. package/browser/error/index.js.map +1 -0
  213. package/browser/find-options/FindConditions.js +1 -1
  214. package/browser/find-options/FindManyOptions.js +1 -1
  215. package/browser/find-options/FindOneOptions.d.ts +10 -2
  216. package/browser/find-options/FindOneOptions.js +1 -1
  217. package/browser/find-options/FindOneOptions.js.map +1 -1
  218. package/browser/find-options/FindOperator.d.ts +25 -6
  219. package/browser/find-options/FindOperator.js +32 -6
  220. package/browser/find-options/FindOperator.js.map +1 -1
  221. package/browser/find-options/FindOperatorType.d.ts +1 -1
  222. package/browser/find-options/FindOperatorType.js +1 -1
  223. package/browser/find-options/FindOperatorType.js.map +1 -1
  224. package/browser/find-options/FindOptionsUtils.js +15 -2
  225. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  226. package/browser/find-options/JoinOptions.d.ts +16 -4
  227. package/browser/find-options/JoinOptions.js +1 -1
  228. package/browser/find-options/JoinOptions.js.map +1 -1
  229. package/browser/find-options/OrderByCondition.js +1 -1
  230. package/browser/find-options/operator/ILike.d.ts +6 -0
  231. package/browser/find-options/operator/ILike.js +10 -0
  232. package/browser/find-options/operator/ILike.js.map +1 -0
  233. package/browser/find-options/operator/Raw.d.ts +14 -2
  234. package/browser/find-options/operator/Raw.js +5 -6
  235. package/browser/find-options/operator/Raw.js.map +1 -1
  236. package/browser/index.d.ts +3 -1
  237. package/browser/index.js +25 -1
  238. package/browser/index.js.map +1 -1
  239. package/browser/logger/AdvancedConsoleLogger.d.ts +2 -1
  240. package/browser/logger/FileLogger.d.ts +2 -2
  241. package/browser/logger/Logger.d.ts +1 -1
  242. package/browser/logger/Logger.js +1 -1
  243. package/browser/logger/Logger.js.map +1 -1
  244. package/browser/logger/LoggerOptions.js +1 -1
  245. package/browser/logger/SimpleConsoleLogger.d.ts +2 -1
  246. package/browser/metadata/ColumnMetadata.d.ts +1 -1
  247. package/browser/metadata/ColumnMetadata.js +23 -15
  248. package/browser/metadata/ColumnMetadata.js.map +1 -1
  249. package/browser/metadata/EmbeddedMetadata.js +2 -2
  250. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  251. package/browser/metadata/EntityMetadata.d.ts +5 -0
  252. package/browser/metadata/EntityMetadata.js +3 -2
  253. package/browser/metadata/EntityMetadata.js.map +1 -1
  254. package/browser/metadata/RelationMetadata.d.ts +15 -0
  255. package/browser/metadata/RelationMetadata.js +23 -7
  256. package/browser/metadata/RelationMetadata.js.map +1 -1
  257. package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
  258. package/browser/metadata/types/ClosureTreeOptions.js +3 -0
  259. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
  260. package/browser/metadata/types/DeferrableType.js +1 -1
  261. package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
  262. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  263. package/browser/metadata/types/OnDeleteType.js +1 -1
  264. package/browser/metadata/types/OnUpdateType.js +1 -1
  265. package/browser/metadata/types/PropertyTypeInFunction.js +1 -1
  266. package/browser/metadata/types/RelationTypeInFunction.js +1 -1
  267. package/browser/metadata/types/RelationTypes.js +1 -1
  268. package/browser/metadata/types/TableTypes.js +1 -1
  269. package/browser/metadata/types/TreeTypes.js +1 -1
  270. package/browser/metadata-args/CheckMetadataArgs.js +1 -1
  271. package/browser/metadata-args/ColumnMetadataArgs.js +1 -1
  272. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +1 -1
  273. package/browser/metadata-args/EmbeddedMetadataArgs.js +1 -1
  274. package/browser/metadata-args/EntityListenerMetadataArgs.js +1 -1
  275. package/browser/metadata-args/EntityRepositoryMetadataArgs.js +1 -1
  276. package/browser/metadata-args/EntitySubscriberMetadataArgs.js +1 -1
  277. package/browser/metadata-args/ExclusionMetadataArgs.js +1 -1
  278. package/browser/metadata-args/GeneratedMetadataArgs.js +1 -1
  279. package/browser/metadata-args/IndexMetadataArgs.js +1 -1
  280. package/browser/metadata-args/InheritanceMetadataArgs.js +1 -1
  281. package/browser/metadata-args/JoinColumnMetadataArgs.js +1 -1
  282. package/browser/metadata-args/JoinTableMetadataArgs.js +1 -1
  283. package/browser/metadata-args/NamingStrategyMetadataArgs.js +1 -1
  284. package/browser/metadata-args/RelationCountMetadataArgs.js +1 -1
  285. package/browser/metadata-args/RelationIdMetadataArgs.js +1 -1
  286. package/browser/metadata-args/RelationMetadataArgs.js +1 -1
  287. package/browser/metadata-args/TableMetadataArgs.js +1 -1
  288. package/browser/metadata-args/TransactionEntityMetadataArgs.js +1 -1
  289. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +1 -1
  290. package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
  291. package/browser/metadata-args/TreeMetadataArgs.js +1 -1
  292. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  293. package/browser/metadata-args/UniqueMetadataArgs.js +1 -1
  294. package/browser/metadata-args/types/ColumnMode.js +1 -1
  295. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +5 -3
  296. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  297. package/browser/metadata-builder/EntityMetadataBuilder.js +26 -16
  298. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  299. package/browser/metadata-builder/EntityMetadataValidator.js +10 -5
  300. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  301. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +8 -4
  302. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  303. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
  304. package/browser/metadata-builder/RelationJoinColumnBuilder.js +8 -6
  305. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  306. package/browser/migration/MigrationExecutor.js +5 -5
  307. package/browser/migration/MigrationInterface.js +1 -1
  308. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +1 -1
  309. package/browser/naming-strategy/DefaultNamingStrategy.js +9 -8
  310. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  311. package/browser/naming-strategy/NamingStrategyInterface.d.ts +6 -1
  312. package/browser/naming-strategy/NamingStrategyInterface.js +1 -1
  313. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  314. package/browser/persistence/EntityPersistExecutor.js +55 -52
  315. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  316. package/browser/persistence/Subject.d.ts +4 -4
  317. package/browser/persistence/Subject.js +8 -7
  318. package/browser/persistence/Subject.js.map +1 -1
  319. package/browser/persistence/SubjectChangeMap.js +1 -1
  320. package/browser/persistence/SubjectChangedColumnsComputer.js +3 -1
  321. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  322. package/browser/persistence/SubjectDatabaseEntityLoader.js +2 -2
  323. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  324. package/browser/persistence/SubjectExecutor.js +30 -26
  325. package/browser/persistence/SubjectExecutor.js.map +1 -1
  326. package/browser/persistence/SubjectTopoligicalSorter.js +6 -6
  327. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  328. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  329. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -0
  330. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  331. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +9 -4
  332. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  333. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
  334. package/browser/persistence/tree/ClosureSubjectExecutor.js +7 -7
  335. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  336. package/browser/query-builder/Alias.d.ts +4 -3
  337. package/browser/query-builder/Alias.js +3 -3
  338. package/browser/query-builder/DeleteQueryBuilder.js +7 -2
  339. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  340. package/browser/query-builder/InsertQueryBuilder.d.ts +6 -0
  341. package/browser/query-builder/InsertQueryBuilder.js +63 -14
  342. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  343. package/browser/query-builder/JoinAttribute.d.ts +10 -10
  344. package/browser/query-builder/JoinAttribute.js +10 -10
  345. package/browser/query-builder/JoinOptions.js +1 -1
  346. package/browser/query-builder/QueryBuilder.d.ts +8 -1
  347. package/browser/query-builder/QueryBuilder.js +172 -37
  348. package/browser/query-builder/QueryBuilder.js.map +1 -1
  349. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  350. package/browser/query-builder/QueryExpressionMap.d.ts +10 -2
  351. package/browser/query-builder/QueryExpressionMap.js +4 -2
  352. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  353. package/browser/query-builder/QueryPartialEntity.js +1 -1
  354. package/browser/query-builder/RelationLoader.js +4 -4
  355. package/browser/query-builder/RelationLoader.js.map +1 -1
  356. package/browser/query-builder/RelationQueryBuilder.js +1 -1
  357. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  358. package/browser/query-builder/RelationRemover.js +11 -11
  359. package/browser/query-builder/RelationRemover.js.map +1 -1
  360. package/browser/query-builder/SelectQuery.js +1 -1
  361. package/browser/query-builder/SelectQueryBuilder.d.ts +7 -6
  362. package/browser/query-builder/SelectQueryBuilder.js +129 -67
  363. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  364. package/browser/query-builder/SelectQueryBuilderOption.js +1 -1
  365. package/browser/query-builder/UpdateQueryBuilder.js +6 -1
  366. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  367. package/browser/query-builder/WhereExpression.js +1 -1
  368. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  369. package/browser/query-builder/relation-count/RelationCountAttribute.js +7 -7
  370. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  371. package/browser/query-builder/relation-count/RelationCountLoadResult.js +1 -1
  372. package/browser/query-builder/relation-count/RelationCountLoader.js +2 -1
  373. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  374. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  375. package/browser/query-builder/relation-id/RelationIdAttribute.js +8 -8
  376. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  377. package/browser/query-builder/relation-id/RelationIdLoadResult.js +1 -1
  378. package/browser/query-builder/relation-id/RelationIdLoader.js +62 -12
  379. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  380. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  381. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  382. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +10 -7
  383. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  384. package/browser/query-runner/BaseQueryRunner.js +3 -3
  385. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  386. package/browser/query-runner/QueryRunner.d.ts +1 -1
  387. package/browser/query-runner/QueryRunner.js +1 -1
  388. package/browser/query-runner/QueryRunner.js.map +1 -1
  389. package/browser/repository/AbstractRepository.d.ts +2 -2
  390. package/browser/repository/AbstractRepository.js +2 -2
  391. package/browser/repository/BaseEntity.d.ts +1 -1
  392. package/browser/repository/BaseEntity.js +3 -3
  393. package/browser/repository/BaseEntity.js.map +1 -1
  394. package/browser/repository/EntityId.js +1 -1
  395. package/browser/repository/RemoveOptions.js +1 -1
  396. package/browser/repository/Repository.d.ts +4 -4
  397. package/browser/repository/Repository.js +3 -3
  398. package/browser/repository/Repository.js.map +1 -1
  399. package/browser/repository/SaveOptions.js +1 -1
  400. package/browser/repository/TreeRepository.js +3 -3
  401. package/browser/repository/TreeRepository.js.map +1 -1
  402. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
  403. package/browser/schema-builder/RdbmsSchemaBuilder.js +80 -79
  404. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  405. package/browser/schema-builder/SchemaBuilder.js +1 -1
  406. package/browser/schema-builder/options/TableCheckOptions.js +1 -1
  407. package/browser/schema-builder/options/TableColumnOptions.js +1 -1
  408. package/browser/schema-builder/options/TableExclusionOptions.js +1 -1
  409. package/browser/schema-builder/options/TableForeignKeyOptions.js +1 -1
  410. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  411. package/browser/schema-builder/options/TableIndexOptions.js +1 -1
  412. package/browser/schema-builder/options/TableOptions.js +1 -1
  413. package/browser/schema-builder/options/TableUniqueOptions.js +1 -1
  414. package/browser/schema-builder/options/ViewOptions.js +1 -1
  415. package/browser/schema-builder/table/Table.d.ts +1 -1
  416. package/browser/schema-builder/table/Table.js +1 -1
  417. package/browser/schema-builder/table/TableCheck.js +2 -2
  418. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  419. package/browser/schema-builder/table/TableForeignKey.js +3 -3
  420. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  421. package/browser/schema-builder/table/TableIndex.js +2 -2
  422. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  423. package/browser/schema-builder/table/TableUnique.js +2 -2
  424. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  425. package/browser/subscriber/Broadcaster.d.ts +24 -0
  426. package/browser/subscriber/Broadcaster.js +120 -0
  427. package/browser/subscriber/Broadcaster.js.map +1 -1
  428. package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
  429. package/browser/subscriber/EntitySubscriberInterface.js +1 -1
  430. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  431. package/browser/subscriber/event/InsertEvent.js +1 -1
  432. package/browser/subscriber/event/LoadEvent.js +1 -1
  433. package/browser/subscriber/event/RemoveEvent.js +1 -1
  434. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  435. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  436. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  437. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  438. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  439. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  440. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  441. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  442. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  443. package/browser/subscriber/event/UpdateEvent.js +1 -1
  444. package/browser/util/DateUtils.d.ts +1 -1
  445. package/browser/util/DateUtils.js +1 -7
  446. package/browser/util/DateUtils.js.map +1 -1
  447. package/browser/util/OrmUtils.d.ts +1 -1
  448. package/browser/util/OrmUtils.js +2 -2
  449. package/browser/util/OrmUtils.js.map +1 -1
  450. package/browser/util/StringUtils.js.map +1 -1
  451. package/cache/DbQueryResultCache.js +1 -0
  452. package/cache/DbQueryResultCache.js.map +1 -1
  453. package/cache/QueryResultCacheFactory.js +1 -0
  454. package/cache/QueryResultCacheFactory.js.map +1 -1
  455. package/cache/RedisQueryResultCache.js +1 -0
  456. package/cache/RedisQueryResultCache.js.map +1 -1
  457. package/cli.js +2 -2
  458. package/cli.js.map +1 -1
  459. package/commands/CacheClearCommand.js +1 -0
  460. package/commands/CacheClearCommand.js.map +1 -1
  461. package/commands/CommandUtils.js +1 -0
  462. package/commands/CommandUtils.js.map +1 -1
  463. package/commands/EntityCreateCommand.js +6 -2
  464. package/commands/EntityCreateCommand.js.map +1 -1
  465. package/commands/InitCommand.d.ts +3 -0
  466. package/commands/InitCommand.js +37 -6
  467. package/commands/InitCommand.js.map +1 -1
  468. package/commands/MigrationCreateCommand.d.ts +6 -0
  469. package/commands/MigrationCreateCommand.js +23 -4
  470. package/commands/MigrationCreateCommand.js.map +1 -1
  471. package/commands/MigrationGenerateCommand.d.ts +10 -0
  472. package/commands/MigrationGenerateCommand.js +72 -34
  473. package/commands/MigrationGenerateCommand.js.map +1 -1
  474. package/commands/MigrationRevertCommand.js +1 -0
  475. package/commands/MigrationRevertCommand.js.map +1 -1
  476. package/commands/MigrationRunCommand.js +1 -0
  477. package/commands/MigrationRunCommand.js.map +1 -1
  478. package/commands/MigrationShowCommand.js +1 -0
  479. package/commands/MigrationShowCommand.js.map +1 -1
  480. package/commands/QueryCommand.d.ts +2 -0
  481. package/commands/QueryCommand.js +17 -6
  482. package/commands/QueryCommand.js.map +1 -1
  483. package/commands/SchemaDropCommand.js +1 -0
  484. package/commands/SchemaDropCommand.js.map +1 -1
  485. package/commands/SchemaLogCommand.js +1 -0
  486. package/commands/SchemaLogCommand.js.map +1 -1
  487. package/commands/SchemaSyncCommand.js +1 -0
  488. package/commands/SchemaSyncCommand.js.map +1 -1
  489. package/commands/SubscriberCreateCommand.js +6 -2
  490. package/commands/SubscriberCreateCommand.js.map +1 -1
  491. package/commands/VersionCommand.js +1 -0
  492. package/commands/VersionCommand.js.map +1 -1
  493. package/common/EntityFieldsNames.d.ts +6 -0
  494. package/common/EntityFieldsNames.js +4 -0
  495. package/common/EntityFieldsNames.js.map +1 -0
  496. package/connection/Connection.d.ts +2 -2
  497. package/connection/Connection.js +5 -2
  498. package/connection/Connection.js.map +1 -1
  499. package/connection/ConnectionManager.js +1 -0
  500. package/connection/ConnectionManager.js.map +1 -1
  501. package/connection/ConnectionMetadataBuilder.js +5 -4
  502. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  503. package/connection/ConnectionOptionsReader.d.ts +3 -3
  504. package/connection/ConnectionOptionsReader.js +31 -30
  505. package/connection/ConnectionOptionsReader.js.map +1 -1
  506. package/connection/options-reader/ConnectionOptionsEnvReader.js +2 -1
  507. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  508. package/connection/options-reader/ConnectionOptionsXmlReader.js +1 -0
  509. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  510. package/connection/options-reader/ConnectionOptionsYmlReader.js +2 -1
  511. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  512. package/container.js +1 -0
  513. package/container.js.map +1 -1
  514. package/decorator/Check.js +1 -0
  515. package/decorator/Check.js.map +1 -1
  516. package/decorator/EntityRepository.js +1 -0
  517. package/decorator/EntityRepository.js.map +1 -1
  518. package/decorator/Exclusion.js +1 -0
  519. package/decorator/Exclusion.js.map +1 -1
  520. package/decorator/Generated.js +1 -0
  521. package/decorator/Generated.js.map +1 -1
  522. package/decorator/Index.js +1 -0
  523. package/decorator/Index.js.map +1 -1
  524. package/decorator/Unique.js +1 -0
  525. package/decorator/Unique.js.map +1 -1
  526. package/decorator/columns/Column.js +1 -0
  527. package/decorator/columns/Column.js.map +1 -1
  528. package/decorator/columns/CreateDateColumn.js +1 -0
  529. package/decorator/columns/CreateDateColumn.js.map +1 -1
  530. package/decorator/columns/DeleteDateColumn.js +1 -0
  531. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  532. package/decorator/columns/ObjectIdColumn.js +1 -0
  533. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  534. package/decorator/columns/PrimaryColumn.d.ts +9 -2
  535. package/decorator/columns/PrimaryColumn.js +1 -0
  536. package/decorator/columns/PrimaryColumn.js.map +1 -1
  537. package/decorator/columns/PrimaryGeneratedColumn.js +1 -0
  538. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  539. package/decorator/columns/UpdateDateColumn.js +1 -0
  540. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  541. package/decorator/columns/VersionColumn.js +1 -0
  542. package/decorator/columns/VersionColumn.js.map +1 -1
  543. package/decorator/columns/ViewColumn.js +1 -0
  544. package/decorator/columns/ViewColumn.js.map +1 -1
  545. package/decorator/entity/ChildEntity.js +2 -1
  546. package/decorator/entity/ChildEntity.js.map +1 -1
  547. package/decorator/entity/Entity.js +1 -0
  548. package/decorator/entity/Entity.js.map +1 -1
  549. package/decorator/entity/TableInheritance.js +1 -0
  550. package/decorator/entity/TableInheritance.js.map +1 -1
  551. package/decorator/entity-view/ViewEntity.js +1 -0
  552. package/decorator/entity-view/ViewEntity.js.map +1 -1
  553. package/decorator/listeners/AfterInsert.js +1 -0
  554. package/decorator/listeners/AfterInsert.js.map +1 -1
  555. package/decorator/listeners/AfterLoad.js +1 -0
  556. package/decorator/listeners/AfterLoad.js.map +1 -1
  557. package/decorator/listeners/AfterRemove.js +1 -0
  558. package/decorator/listeners/AfterRemove.js.map +1 -1
  559. package/decorator/listeners/AfterUpdate.js +1 -0
  560. package/decorator/listeners/AfterUpdate.js.map +1 -1
  561. package/decorator/listeners/BeforeInsert.js +1 -0
  562. package/decorator/listeners/BeforeInsert.js.map +1 -1
  563. package/decorator/listeners/BeforeRemove.js +1 -0
  564. package/decorator/listeners/BeforeRemove.js.map +1 -1
  565. package/decorator/listeners/BeforeUpdate.js +1 -0
  566. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  567. package/decorator/listeners/EventSubscriber.js +1 -0
  568. package/decorator/listeners/EventSubscriber.js.map +1 -1
  569. package/decorator/options/RelationOptions.d.ts +10 -0
  570. package/decorator/options/RelationOptions.js.map +1 -1
  571. package/decorator/relations/JoinColumn.js +1 -0
  572. package/decorator/relations/JoinColumn.js.map +1 -1
  573. package/decorator/relations/JoinTable.js +1 -0
  574. package/decorator/relations/JoinTable.js.map +1 -1
  575. package/decorator/relations/ManyToMany.js +1 -0
  576. package/decorator/relations/ManyToMany.js.map +1 -1
  577. package/decorator/relations/ManyToOne.d.ts +6 -6
  578. package/decorator/relations/ManyToOne.js +6 -5
  579. package/decorator/relations/ManyToOne.js.map +1 -1
  580. package/decorator/relations/OneToMany.d.ts +3 -2
  581. package/decorator/relations/OneToMany.js +5 -3
  582. package/decorator/relations/OneToMany.js.map +1 -1
  583. package/decorator/relations/OneToOne.js +1 -0
  584. package/decorator/relations/OneToOne.js.map +1 -1
  585. package/decorator/relations/RelationCount.js +1 -0
  586. package/decorator/relations/RelationCount.js.map +1 -1
  587. package/decorator/relations/RelationId.js +1 -0
  588. package/decorator/relations/RelationId.js.map +1 -1
  589. package/decorator/transaction/Transaction.d.ts +1 -1
  590. package/decorator/transaction/Transaction.js +6 -5
  591. package/decorator/transaction/Transaction.js.map +1 -1
  592. package/decorator/transaction/TransactionManager.js +1 -0
  593. package/decorator/transaction/TransactionManager.js.map +1 -1
  594. package/decorator/transaction/TransactionRepository.js +1 -0
  595. package/decorator/transaction/TransactionRepository.js.map +1 -1
  596. package/decorator/tree/Tree.d.ts +2 -1
  597. package/decorator/tree/Tree.js +4 -2
  598. package/decorator/tree/Tree.js.map +1 -1
  599. package/decorator/tree/TreeChildren.js +1 -0
  600. package/decorator/tree/TreeChildren.js.map +1 -1
  601. package/decorator/tree/TreeLevelColumn.js +1 -0
  602. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  603. package/decorator/tree/TreeParent.js +1 -0
  604. package/decorator/tree/TreeParent.js.map +1 -1
  605. package/driver/Driver.d.ts +1 -1
  606. package/driver/Driver.js.map +1 -1
  607. package/driver/DriverFactory.js +1 -0
  608. package/driver/DriverFactory.js.map +1 -1
  609. package/driver/DriverUtils.d.ts +10 -0
  610. package/driver/DriverUtils.js +99 -11
  611. package/driver/DriverUtils.js.map +1 -1
  612. package/driver/Query.js +1 -0
  613. package/driver/Query.js.map +1 -1
  614. package/driver/SqlInMemory.js +1 -0
  615. package/driver/SqlInMemory.js.map +1 -1
  616. package/driver/aurora-data-api/AuroraDataApiConnection.js +1 -0
  617. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  618. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +1 -0
  619. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  620. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +3 -3
  621. package/driver/aurora-data-api/AuroraDataApiDriver.js +16 -6
  622. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  623. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +6 -1
  624. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +73 -11
  625. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  626. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +2 -0
  627. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  628. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +10 -1
  629. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +27 -2
  630. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  631. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
  632. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +60 -11
  633. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  634. package/driver/better-sqlite3/BetterSqlite3Driver.js +1 -0
  635. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  636. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
  637. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  638. package/driver/cockroachdb/CockroachDriver.d.ts +1 -1
  639. package/driver/cockroachdb/CockroachDriver.js +6 -8
  640. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  641. package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  642. package/driver/cockroachdb/CockroachQueryRunner.js +113 -42
  643. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  644. package/driver/cordova/CordovaDriver.js +1 -0
  645. package/driver/cordova/CordovaDriver.js.map +1 -1
  646. package/driver/cordova/CordovaQueryRunner.js +1 -0
  647. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  648. package/driver/expo/ExpoDriver.js +1 -0
  649. package/driver/expo/ExpoDriver.js.map +1 -1
  650. package/driver/expo/ExpoQueryRunner.js +73 -14
  651. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  652. package/driver/mongodb/MongoConnectionOptions.d.ts +8 -0
  653. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  654. package/driver/mongodb/MongoDriver.d.ts +8 -4
  655. package/driver/mongodb/MongoDriver.js +27 -14
  656. package/driver/mongodb/MongoDriver.js.map +1 -1
  657. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  658. package/driver/mongodb/MongoQueryRunner.js +1 -0
  659. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  660. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  661. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  662. package/driver/mysql/MysqlDriver.d.ts +2 -2
  663. package/driver/mysql/MysqlDriver.js +16 -14
  664. package/driver/mysql/MysqlDriver.js.map +1 -1
  665. package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  666. package/driver/mysql/MysqlQueryRunner.js +119 -43
  667. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  668. package/driver/nativescript/NativescriptDriver.js +1 -0
  669. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  670. package/driver/nativescript/NativescriptQueryRunner.js +1 -0
  671. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  672. package/driver/oracle/OracleConnectionOptions.d.ts +4 -0
  673. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  674. package/driver/oracle/OracleDriver.d.ts +1 -1
  675. package/driver/oracle/OracleDriver.js +29 -3
  676. package/driver/oracle/OracleDriver.js.map +1 -1
  677. package/driver/oracle/OracleQueryRunner.js +54 -7
  678. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  679. package/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
  680. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  681. package/driver/postgres/PostgresDriver.d.ts +2 -2
  682. package/driver/postgres/PostgresDriver.js +63 -28
  683. package/driver/postgres/PostgresDriver.js.map +1 -1
  684. package/driver/postgres/PostgresQueryRunner.d.ts +9 -1
  685. package/driver/postgres/PostgresQueryRunner.js +337 -211
  686. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  687. package/driver/react-native/ReactNativeDriver.js +2 -2
  688. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  689. package/driver/react-native/ReactNativeQueryRunner.js +1 -0
  690. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  691. package/driver/sap/SapDriver.d.ts +1 -1
  692. package/driver/sap/SapDriver.js +1 -0
  693. package/driver/sap/SapDriver.js.map +1 -1
  694. package/driver/sap/SapQueryRunner.js +58 -9
  695. package/driver/sap/SapQueryRunner.js.map +1 -1
  696. package/driver/sqlite/SqliteDriver.js +1 -0
  697. package/driver/sqlite/SqliteDriver.js.map +1 -1
  698. package/driver/sqlite/SqliteQueryRunner.js +5 -0
  699. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  700. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +1 -1
  701. package/driver/sqlite-abstract/AbstractSqliteDriver.js +5 -1
  702. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  703. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +56 -8
  704. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  705. package/driver/sqljs/SqljsDriver.js +1 -0
  706. package/driver/sqljs/SqljsDriver.js.map +1 -1
  707. package/driver/sqljs/SqljsQueryRunner.js +1 -0
  708. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  709. package/driver/sqlserver/MssqlParameter.js +1 -0
  710. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  711. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  712. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  713. package/driver/sqlserver/SqlServerDriver.d.ts +2 -2
  714. package/driver/sqlserver/SqlServerDriver.js +34 -8
  715. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  716. package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -0
  717. package/driver/sqlserver/SqlServerQueryRunner.js +166 -85
  718. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  719. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  720. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +4 -0
  721. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  722. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  723. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +4 -0
  724. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  725. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  726. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +4 -0
  727. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  728. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  729. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +4 -0
  730. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  731. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  732. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +4 -0
  733. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  734. package/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  735. package/driver/sqlserver/authentication/DefaultAuthentication.js +4 -0
  736. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  737. package/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  738. package/driver/sqlserver/authentication/NtlmAuthentication.js +4 -0
  739. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  740. package/driver/types/ColumnTypes.d.ts +1 -1
  741. package/driver/types/ColumnTypes.js.map +1 -1
  742. package/entity-manager/EntityManager.d.ts +16 -2
  743. package/entity-manager/EntityManager.js +6 -16
  744. package/entity-manager/EntityManager.js.map +1 -1
  745. package/entity-manager/EntityManagerFactory.js +1 -0
  746. package/entity-manager/EntityManagerFactory.js.map +1 -1
  747. package/entity-manager/MongoEntityManager.d.ts +1 -4
  748. package/entity-manager/MongoEntityManager.js +54 -48
  749. package/entity-manager/MongoEntityManager.js.map +1 -1
  750. package/entity-manager/SqljsEntityManager.js +1 -0
  751. package/entity-manager/SqljsEntityManager.js.map +1 -1
  752. package/entity-schema/EntitySchema.js +1 -0
  753. package/entity-schema/EntitySchema.js.map +1 -1
  754. package/entity-schema/EntitySchemaOptions.js +1 -0
  755. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  756. package/entity-schema/EntitySchemaTransformer.js +1 -0
  757. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  758. package/error/AlreadyHasActiveConnectionError.js +1 -0
  759. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  760. package/error/CannotAttachTreeChildrenEntityError.js +1 -0
  761. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  762. package/error/CannotConnectAlreadyConnectedError.js +1 -0
  763. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  764. package/error/CannotCreateEntityIdMapError.js +1 -0
  765. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  766. package/error/CannotDetermineEntityError.js +1 -0
  767. package/error/CannotDetermineEntityError.js.map +1 -1
  768. package/error/CannotExecuteNotConnectedError.js +1 -0
  769. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  770. package/error/CannotGetEntityManagerNotConnectedError.js +1 -0
  771. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  772. package/error/CannotReflectMethodParameterTypeError.js +1 -0
  773. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  774. package/error/CircularRelationsError.js +1 -0
  775. package/error/CircularRelationsError.js.map +1 -1
  776. package/error/ColumnTypeUndefinedError.js +1 -0
  777. package/error/ColumnTypeUndefinedError.js.map +1 -1
  778. package/error/ConnectionIsNotSetError.js +1 -0
  779. package/error/ConnectionIsNotSetError.js.map +1 -1
  780. package/error/ConnectionNotFoundError.js +1 -0
  781. package/error/ConnectionNotFoundError.js.map +1 -1
  782. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -0
  783. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  784. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -0
  785. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  786. package/error/CustomRepositoryNotFoundError.js +1 -0
  787. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  788. package/error/DataTypeNotSupportedError.js +1 -0
  789. package/error/DataTypeNotSupportedError.js.map +1 -1
  790. package/error/DriverOptionNotSetError.js +1 -0
  791. package/error/DriverOptionNotSetError.js.map +1 -1
  792. package/error/DriverPackageNotInstalledError.js +1 -0
  793. package/error/DriverPackageNotInstalledError.js.map +1 -1
  794. package/error/EntityColumnNotFound.js +1 -0
  795. package/error/EntityColumnNotFound.js.map +1 -1
  796. package/error/EntityMetadataNotFoundError.js +1 -0
  797. package/error/EntityMetadataNotFoundError.js.map +1 -1
  798. package/error/EntityNotFoundError.js +1 -0
  799. package/error/EntityNotFoundError.js.map +1 -1
  800. package/error/FindRelationsNotFoundError.js +1 -0
  801. package/error/FindRelationsNotFoundError.js.map +1 -1
  802. package/error/InitializedRelationError.js +1 -0
  803. package/error/InitializedRelationError.js.map +1 -1
  804. package/error/InsertValuesMissingError.js +1 -0
  805. package/error/InsertValuesMissingError.js.map +1 -1
  806. package/error/LimitOnUpdateNotSupportedError.js +1 -0
  807. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  808. package/error/LockNotSupportedOnGivenDriverError.js +1 -0
  809. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  810. package/error/MetadataAlreadyExistsError.js +1 -0
  811. package/error/MetadataAlreadyExistsError.js.map +1 -1
  812. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -0
  813. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  814. package/error/MissingDeleteDateColumnError.js +1 -0
  815. package/error/MissingDeleteDateColumnError.js.map +1 -1
  816. package/error/MissingDriverError.js +1 -0
  817. package/error/MissingDriverError.js.map +1 -1
  818. package/error/MissingJoinColumnError.js +1 -0
  819. package/error/MissingJoinColumnError.js.map +1 -1
  820. package/error/MissingJoinTableError.js +1 -0
  821. package/error/MissingJoinTableError.js.map +1 -1
  822. package/error/MissingPrimaryColumnError.js +1 -0
  823. package/error/MissingPrimaryColumnError.js.map +1 -1
  824. package/error/MustBeEntityError.js +1 -0
  825. package/error/MustBeEntityError.js.map +1 -1
  826. package/error/NamingStrategyNotFoundError.js +1 -0
  827. package/error/NamingStrategyNotFoundError.js.map +1 -1
  828. package/error/NoConnectionForRepositoryError.js +1 -0
  829. package/error/NoConnectionForRepositoryError.js.map +1 -1
  830. package/error/NoConnectionOptionError.js +1 -0
  831. package/error/NoConnectionOptionError.js.map +1 -1
  832. package/error/NoNeedToReleaseEntityManagerError.js +1 -0
  833. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  834. package/error/NoVersionOrUpdateDateColumnError.js +1 -0
  835. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  836. package/error/OffsetWithoutLimitNotSupportedError.js +1 -0
  837. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  838. package/error/OptimisticLockCanNotBeUsedError.js +1 -0
  839. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  840. package/error/OptimisticLockVersionMismatchError.js +1 -0
  841. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  842. package/error/PersistedEntityNotFoundError.js +1 -0
  843. package/error/PersistedEntityNotFoundError.js.map +1 -1
  844. package/error/PessimisticLockTransactionRequiredError.js +1 -0
  845. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  846. package/error/PrimaryColumnCannotBeNullableError.js +1 -0
  847. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  848. package/error/QueryFailedError.js +1 -0
  849. package/error/QueryFailedError.js.map +1 -1
  850. package/error/QueryRunnerAlreadyReleasedError.js +1 -0
  851. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  852. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -0
  853. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  854. package/error/RepositoryNotFoundError.js +1 -0
  855. package/error/RepositoryNotFoundError.js.map +1 -1
  856. package/error/RepositoryNotTreeError.js +1 -0
  857. package/error/RepositoryNotTreeError.js.map +1 -1
  858. package/error/ReturningStatementNotSupportedError.js +1 -0
  859. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  860. package/error/SubjectRemovedAndUpdatedError.js +1 -0
  861. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  862. package/error/SubjectWithoutIdentifierError.js +1 -0
  863. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  864. package/error/TransactionAlreadyStartedError.js +1 -0
  865. package/error/TransactionAlreadyStartedError.js.map +1 -1
  866. package/error/TransactionNotStartedError.js +1 -0
  867. package/error/TransactionNotStartedError.js.map +1 -1
  868. package/error/TreeRepositoryNotSupportedError.js +1 -0
  869. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  870. package/error/UpdateValuesMissingError.js +1 -0
  871. package/error/UpdateValuesMissingError.js.map +1 -1
  872. package/error/UsingJoinColumnIsNotAllowedError.js +1 -0
  873. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  874. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -0
  875. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  876. package/error/UsingJoinTableIsNotAllowedError.js +1 -0
  877. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  878. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -0
  879. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  880. package/error/index.d.ts +61 -0
  881. package/error/index.js +66 -0
  882. package/error/index.js.map +1 -0
  883. package/find-options/FindOneOptions.d.ts +10 -2
  884. package/find-options/FindOneOptions.js.map +1 -1
  885. package/find-options/FindOperator.d.ts +25 -6
  886. package/find-options/FindOperator.js +33 -6
  887. package/find-options/FindOperator.js.map +1 -1
  888. package/find-options/FindOperatorType.d.ts +1 -1
  889. package/find-options/FindOperatorType.js.map +1 -1
  890. package/find-options/FindOptionsUtils.js +16 -2
  891. package/find-options/FindOptionsUtils.js.map +1 -1
  892. package/find-options/JoinOptions.d.ts +16 -4
  893. package/find-options/JoinOptions.js.map +1 -1
  894. package/find-options/operator/Any.js +1 -0
  895. package/find-options/operator/Any.js.map +1 -1
  896. package/find-options/operator/Between.js +1 -0
  897. package/find-options/operator/Between.js.map +1 -1
  898. package/find-options/operator/Equal.js +1 -0
  899. package/find-options/operator/Equal.js.map +1 -1
  900. package/find-options/operator/ILike.d.ts +6 -0
  901. package/find-options/operator/ILike.js +14 -0
  902. package/find-options/operator/ILike.js.map +1 -0
  903. package/find-options/operator/In.js +1 -0
  904. package/find-options/operator/In.js.map +1 -1
  905. package/find-options/operator/IsNull.js +1 -0
  906. package/find-options/operator/IsNull.js.map +1 -1
  907. package/find-options/operator/LessThan.js +1 -0
  908. package/find-options/operator/LessThan.js.map +1 -1
  909. package/find-options/operator/LessThanOrEqual.js +1 -0
  910. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  911. package/find-options/operator/Like.js +1 -0
  912. package/find-options/operator/Like.js.map +1 -1
  913. package/find-options/operator/MoreThan.js +1 -0
  914. package/find-options/operator/MoreThan.js.map +1 -1
  915. package/find-options/operator/MoreThanOrEqual.js +1 -0
  916. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  917. package/find-options/operator/Not.js +1 -0
  918. package/find-options/operator/Not.js.map +1 -1
  919. package/find-options/operator/Raw.d.ts +14 -2
  920. package/find-options/operator/Raw.js +6 -6
  921. package/find-options/operator/Raw.js.map +1 -1
  922. package/index.d.ts +3 -1
  923. package/index.js +44 -19
  924. package/index.js.map +1 -1
  925. package/logger/AdvancedConsoleLogger.d.ts +2 -1
  926. package/logger/AdvancedConsoleLogger.js +1 -0
  927. package/logger/AdvancedConsoleLogger.js.map +1 -1
  928. package/logger/DebugLogger.js +1 -0
  929. package/logger/DebugLogger.js.map +1 -1
  930. package/logger/FileLogger.d.ts +2 -2
  931. package/logger/FileLogger.js +1 -0
  932. package/logger/FileLogger.js.map +1 -1
  933. package/logger/Logger.d.ts +1 -1
  934. package/logger/Logger.js.map +1 -1
  935. package/logger/LoggerFactory.js +1 -0
  936. package/logger/LoggerFactory.js.map +1 -1
  937. package/logger/SimpleConsoleLogger.d.ts +2 -1
  938. package/logger/SimpleConsoleLogger.js +1 -0
  939. package/logger/SimpleConsoleLogger.js.map +1 -1
  940. package/metadata/CheckMetadata.js +1 -0
  941. package/metadata/CheckMetadata.js.map +1 -1
  942. package/metadata/ColumnMetadata.d.ts +1 -1
  943. package/metadata/ColumnMetadata.js +23 -14
  944. package/metadata/ColumnMetadata.js.map +1 -1
  945. package/metadata/EmbeddedMetadata.js +2 -1
  946. package/metadata/EmbeddedMetadata.js.map +1 -1
  947. package/metadata/EntityListenerMetadata.js +1 -0
  948. package/metadata/EntityListenerMetadata.js.map +1 -1
  949. package/metadata/EntityMetadata.d.ts +5 -0
  950. package/metadata/EntityMetadata.js +3 -1
  951. package/metadata/EntityMetadata.js.map +1 -1
  952. package/metadata/ExclusionMetadata.js +1 -0
  953. package/metadata/ExclusionMetadata.js.map +1 -1
  954. package/metadata/ForeignKeyMetadata.js +1 -0
  955. package/metadata/ForeignKeyMetadata.js.map +1 -1
  956. package/metadata/IndexMetadata.js +1 -0
  957. package/metadata/IndexMetadata.js.map +1 -1
  958. package/metadata/RelationCountMetadata.js +1 -0
  959. package/metadata/RelationCountMetadata.js.map +1 -1
  960. package/metadata/RelationIdMetadata.js +1 -0
  961. package/metadata/RelationIdMetadata.js.map +1 -1
  962. package/metadata/RelationMetadata.d.ts +15 -0
  963. package/metadata/RelationMetadata.js +23 -6
  964. package/metadata/RelationMetadata.js.map +1 -1
  965. package/metadata/UniqueMetadata.js +1 -0
  966. package/metadata/UniqueMetadata.js.map +1 -1
  967. package/metadata/types/ClosureTreeOptions.d.ts +10 -0
  968. package/metadata/types/ClosureTreeOptions.js +4 -0
  969. package/metadata/types/ClosureTreeOptions.js.map +1 -0
  970. package/metadata/types/EventListenerTypes.d.ts +7 -7
  971. package/metadata/types/EventListenerTypes.js +1 -0
  972. package/metadata/types/EventListenerTypes.js.map +1 -1
  973. package/metadata-args/MetadataArgsStorage.js +1 -0
  974. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  975. package/metadata-args/TreeMetadataArgs.d.ts +5 -0
  976. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  977. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +6 -3
  978. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  979. package/metadata-builder/EntityMetadataBuilder.js +26 -15
  980. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  981. package/metadata-builder/EntityMetadataValidator.js +11 -5
  982. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  983. package/metadata-builder/JunctionEntityMetadataBuilder.js +8 -3
  984. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  985. package/metadata-builder/MetadataUtils.js +1 -0
  986. package/metadata-builder/MetadataUtils.js.map +1 -1
  987. package/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
  988. package/metadata-builder/RelationJoinColumnBuilder.js +9 -6
  989. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  990. package/migration/Migration.js +1 -0
  991. package/migration/Migration.js.map +1 -1
  992. package/migration/MigrationExecutor.js +6 -5
  993. package/migration/MigrationExecutor.js.map +1 -1
  994. package/naming-strategy/DefaultNamingStrategy.d.ts +1 -1
  995. package/naming-strategy/DefaultNamingStrategy.js +9 -7
  996. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  997. package/naming-strategy/NamingStrategyInterface.d.ts +6 -1
  998. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  999. package/package.json +46 -43
  1000. package/persistence/EntityPersistExecutor.js +56 -52
  1001. package/persistence/EntityPersistExecutor.js.map +1 -1
  1002. package/persistence/Subject.d.ts +4 -4
  1003. package/persistence/Subject.js +8 -6
  1004. package/persistence/Subject.js.map +1 -1
  1005. package/persistence/SubjectChangedColumnsComputer.js +4 -1
  1006. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  1007. package/persistence/SubjectDatabaseEntityLoader.js +2 -1
  1008. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  1009. package/persistence/SubjectExecutor.js +31 -26
  1010. package/persistence/SubjectExecutor.js.map +1 -1
  1011. package/persistence/SubjectTopoligicalSorter.js +6 -5
  1012. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  1013. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -0
  1014. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  1015. package/persistence/subject-builder/ManyToManySubjectBuilder.js +3 -0
  1016. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  1017. package/persistence/subject-builder/OneToManySubjectBuilder.js +10 -4
  1018. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1019. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -0
  1020. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1021. package/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
  1022. package/persistence/tree/ClosureSubjectExecutor.js +7 -6
  1023. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1024. package/persistence/tree/MaterializedPathSubjectExecutor.js +1 -0
  1025. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1026. package/persistence/tree/NestedSetSubjectExecutor.js +1 -0
  1027. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1028. package/platform/PlatformTools.js +5 -4
  1029. package/platform/PlatformTools.js.map +1 -1
  1030. package/query-builder/Alias.d.ts +4 -3
  1031. package/query-builder/Alias.js +4 -3
  1032. package/query-builder/Alias.js.map +1 -1
  1033. package/query-builder/Brackets.js +1 -0
  1034. package/query-builder/Brackets.js.map +1 -1
  1035. package/query-builder/DeleteQueryBuilder.js +8 -2
  1036. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  1037. package/query-builder/InsertQueryBuilder.d.ts +6 -0
  1038. package/query-builder/InsertQueryBuilder.js +64 -14
  1039. package/query-builder/InsertQueryBuilder.js.map +1 -1
  1040. package/query-builder/JoinAttribute.d.ts +10 -10
  1041. package/query-builder/JoinAttribute.js +11 -10
  1042. package/query-builder/JoinAttribute.js.map +1 -1
  1043. package/query-builder/QueryBuilder.d.ts +8 -1
  1044. package/query-builder/QueryBuilder.js +172 -36
  1045. package/query-builder/QueryBuilder.js.map +1 -1
  1046. package/query-builder/QueryBuilderUtils.js +1 -0
  1047. package/query-builder/QueryBuilderUtils.js.map +1 -1
  1048. package/query-builder/QueryExpressionMap.d.ts +10 -2
  1049. package/query-builder/QueryExpressionMap.js +5 -2
  1050. package/query-builder/QueryExpressionMap.js.map +1 -1
  1051. package/query-builder/RelationIdLoader.js +1 -0
  1052. package/query-builder/RelationIdLoader.js.map +1 -1
  1053. package/query-builder/RelationLoader.js +4 -3
  1054. package/query-builder/RelationLoader.js.map +1 -1
  1055. package/query-builder/RelationQueryBuilder.js +2 -1
  1056. package/query-builder/RelationQueryBuilder.js.map +1 -1
  1057. package/query-builder/RelationRemover.js +11 -10
  1058. package/query-builder/RelationRemover.js.map +1 -1
  1059. package/query-builder/RelationUpdater.js +1 -0
  1060. package/query-builder/RelationUpdater.js.map +1 -1
  1061. package/query-builder/ReturningResultsEntityUpdator.js +1 -0
  1062. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1063. package/query-builder/SelectQueryBuilder.d.ts +7 -6
  1064. package/query-builder/SelectQueryBuilder.js +129 -66
  1065. package/query-builder/SelectQueryBuilder.js.map +1 -1
  1066. package/query-builder/SoftDeleteQueryBuilder.js +1 -0
  1067. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1068. package/query-builder/UpdateQueryBuilder.js +7 -1
  1069. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  1070. package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  1071. package/query-builder/relation-count/RelationCountAttribute.js +8 -7
  1072. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1073. package/query-builder/relation-count/RelationCountLoader.js +3 -1
  1074. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1075. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +1 -0
  1076. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1077. package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  1078. package/query-builder/relation-id/RelationIdAttribute.js +9 -8
  1079. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1080. package/query-builder/relation-id/RelationIdLoader.js +62 -11
  1081. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1082. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +1 -0
  1083. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1084. package/query-builder/result/DeleteResult.js +1 -0
  1085. package/query-builder/result/DeleteResult.js.map +1 -1
  1086. package/query-builder/result/InsertResult.js +1 -0
  1087. package/query-builder/result/InsertResult.js.map +1 -1
  1088. package/query-builder/result/UpdateResult.js +1 -0
  1089. package/query-builder/result/UpdateResult.js.map +1 -1
  1090. package/query-builder/transformer/DocumentToEntityTransformer.js +1 -0
  1091. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1092. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +4 -3
  1093. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1094. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
  1095. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1096. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +10 -6
  1097. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1098. package/query-runner/BaseQueryRunner.js +3 -2
  1099. package/query-runner/BaseQueryRunner.js.map +1 -1
  1100. package/query-runner/QueryRunner.d.ts +1 -1
  1101. package/query-runner/QueryRunner.js.map +1 -1
  1102. package/repository/AbstractRepository.d.ts +2 -2
  1103. package/repository/AbstractRepository.js +3 -2
  1104. package/repository/AbstractRepository.js.map +1 -1
  1105. package/repository/BaseEntity.d.ts +1 -1
  1106. package/repository/BaseEntity.js +3 -2
  1107. package/repository/BaseEntity.js.map +1 -1
  1108. package/repository/MongoRepository.js +1 -0
  1109. package/repository/MongoRepository.js.map +1 -1
  1110. package/repository/Repository.d.ts +4 -4
  1111. package/repository/Repository.js +3 -2
  1112. package/repository/Repository.js.map +1 -1
  1113. package/repository/RepositoryFactory.js +1 -0
  1114. package/repository/RepositoryFactory.js.map +1 -1
  1115. package/repository/TreeRepository.js +4 -3
  1116. package/repository/TreeRepository.js.map +1 -1
  1117. package/schema-builder/MongoSchemaBuilder.js +1 -0
  1118. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1119. package/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
  1120. package/schema-builder/RdbmsSchemaBuilder.js +81 -79
  1121. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1122. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1123. package/schema-builder/table/Table.d.ts +1 -1
  1124. package/schema-builder/table/Table.js +2 -1
  1125. package/schema-builder/table/Table.js.map +1 -1
  1126. package/schema-builder/table/TableCheck.js +2 -1
  1127. package/schema-builder/table/TableCheck.js.map +1 -1
  1128. package/schema-builder/table/TableColumn.js +1 -0
  1129. package/schema-builder/table/TableColumn.js.map +1 -1
  1130. package/schema-builder/table/TableExclusion.js +1 -0
  1131. package/schema-builder/table/TableExclusion.js.map +1 -1
  1132. package/schema-builder/table/TableForeignKey.js +3 -2
  1133. package/schema-builder/table/TableForeignKey.js.map +1 -1
  1134. package/schema-builder/table/TableIndex.js +2 -1
  1135. package/schema-builder/table/TableIndex.js.map +1 -1
  1136. package/schema-builder/table/TableUnique.js +2 -1
  1137. package/schema-builder/table/TableUnique.js.map +1 -1
  1138. package/schema-builder/util/TableUtils.js +1 -0
  1139. package/schema-builder/util/TableUtils.js.map +1 -1
  1140. package/schema-builder/view/View.js +1 -0
  1141. package/schema-builder/view/View.js.map +1 -1
  1142. package/subscriber/Broadcaster.d.ts +24 -0
  1143. package/subscriber/Broadcaster.js +121 -0
  1144. package/subscriber/Broadcaster.js.map +1 -1
  1145. package/subscriber/BroadcasterResult.js +1 -0
  1146. package/subscriber/BroadcasterResult.js.map +1 -1
  1147. package/subscriber/EntitySubscriberInterface.d.ts +27 -0
  1148. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1149. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  1150. package/subscriber/event/TransactionCommitEvent.js +4 -0
  1151. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  1152. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  1153. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  1154. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  1155. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  1156. package/subscriber/event/TransactionStartEvent.js +4 -0
  1157. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  1158. package/typeorm-model-shim.js +145 -128
  1159. package/util/ApplyValueTransformers.js +1 -0
  1160. package/util/ApplyValueTransformers.js.map +1 -1
  1161. package/util/DateUtils.d.ts +1 -1
  1162. package/util/DateUtils.js +2 -7
  1163. package/util/DateUtils.js.map +1 -1
  1164. package/util/DepGraph.js +1 -0
  1165. package/util/DepGraph.js.map +1 -1
  1166. package/util/DirectoryExportedClassesLoader.js +1 -0
  1167. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1168. package/util/ObjectUtils.js +1 -0
  1169. package/util/ObjectUtils.js.map +1 -1
  1170. package/util/OrmUtils.d.ts +1 -1
  1171. package/util/OrmUtils.js +2 -1
  1172. package/util/OrmUtils.js.map +1 -1
  1173. package/util/RandomGenerator.js +1 -0
  1174. package/util/RandomGenerator.js.map +1 -1
  1175. package/util/StringUtils.js +1 -0
  1176. package/util/StringUtils.js.map +1 -1
  1177. package/util/VersionUtils.js +1 -0
  1178. package/util/VersionUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builder/ReturningResultsEntityUpdator.ts"],"names":[],"mappings":"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","file":"ReturningResultsEntityUpdator.js","sourcesContent":["import {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {OrmUtils} from \"../util/OrmUtils\";\nimport {QueryExpressionMap} from \"./QueryExpressionMap\";\nimport {ColumnMetadata} from \"../metadata/ColumnMetadata\";\nimport {UpdateResult} from \"./result/UpdateResult\";\nimport {InsertResult} from \"./result/InsertResult\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\n\n/**\n * Updates entity with returning results in the entity insert and update operations.\n */\nexport class ReturningResultsEntityUpdator {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner,\n protected expressionMap: QueryExpressionMap) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Updates entities with a special columns after updation query execution.\n */\n async update(updateResult: UpdateResult, entities: ObjectLiteral[]): Promise<void> {\n const metadata = this.expressionMap.mainAlias!.metadata;\n\n await Promise.all(entities.map(async (entity, entityIndex) => {\n\n // if database supports returning/output statement then we already should have updating values in the raw data returned by insert query\n if (this.queryRunner.connection.driver.isReturningSqlSupported()) {\n if (this.queryRunner.connection.driver instanceof OracleDriver && Array.isArray(updateResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n updateResult.raw = updateResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {\n newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {} as ObjectLiteral);\n }\n const result = Array.isArray(updateResult.raw) ? updateResult.raw[entityIndex] : updateResult.raw;\n const returningColumns = this.queryRunner.connection.driver.createGeneratedMap(metadata, result);\n if (returningColumns) {\n this.queryRunner.manager.merge(metadata.target as any, entity, returningColumns);\n updateResult.generatedMaps.push(returningColumns);\n }\n\n } else {\n\n // for driver which do not support returning/output statement we need to perform separate query and load what we need\n const updationColumns = this.getUpdationReturningColumns();\n if (updationColumns.length > 0) {\n\n // get entity id by which we will get needed data\n const entityId = this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity);\n if (!entityId)\n throw new Error(`Cannot update entity because entity id is not set in the entity.`);\n\n // execute query to get needed data\n const loadedReturningColumns = await this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .addSelect(this.getUpdationReturningColumns().map(column => metadata.targetName + \".\" + column.propertyPath))\n .from(metadata.target, metadata.targetName)\n .where(entityId)\n .setOption(\"create-pojo\") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process\n .getOne() as any;\n\n if (loadedReturningColumns) {\n this.queryRunner.manager.merge(metadata.target as any, entity, loadedReturningColumns);\n updateResult.generatedMaps.push(loadedReturningColumns);\n }\n }\n }\n }));\n }\n\n /**\n * Updates entities with a special columns after insertion query execution.\n */\n async insert(insertResult: InsertResult, entities: ObjectLiteral[]): Promise<void> {\n const metadata = this.expressionMap.mainAlias!.metadata;\n const insertionColumns = this.getInsertionReturningColumns();\n\n const generatedMaps = entities.map((entity, entityIndex) => {\n if (this.queryRunner.connection.driver instanceof OracleDriver && Array.isArray(insertResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n insertResult.raw = insertResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {\n newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {} as ObjectLiteral);\n }\n // get all values generated by a database for us\n const result = Array.isArray(insertResult.raw) ? insertResult.raw[entityIndex] : insertResult.raw;\n const generatedMap = this.queryRunner.connection.driver.createGeneratedMap(metadata, result, entityIndex, entities.length) || {};\n\n // if database does not support uuid generation we need to get uuid values\n // generated by orm and set them to the generatedMap\n if (this.queryRunner.connection.driver.isUUIDGenerationSupported() === false) {\n metadata.generatedColumns.forEach(generatedColumn => {\n if (generatedColumn.generationStrategy === \"uuid\") {\n // uuid can be defined by user in a model, that's why first we get it\n let uuid = generatedColumn.getEntityValue(entity);\n if (!uuid) // if it was not defined by a user then InsertQueryBuilder generates it by its own, get this generated uuid value\n uuid = this.expressionMap.nativeParameters[\"uuid_\" + generatedColumn.databaseName + entityIndex];\n\n OrmUtils.mergeDeep(generatedMap, generatedColumn.createValueMap(uuid));\n }\n });\n }\n\n this.queryRunner.manager.merge(metadata.target as any, entity, generatedMap); // todo: this should not be here, but problem with below line\n return generatedMap;\n });\n\n // for postgres and mssql we use returning/output statement to get values of inserted default and generated values\n // for other drivers we have to re-select this data from the database\n if (this.queryRunner.connection.driver.isReturningSqlSupported() === false && insertionColumns.length > 0) {\n const entityIds = entities.map((entity) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n\n // We have to check for an empty `entityId` - if we don't, the query against the database\n // effectively drops the `where` clause entirely and the first record will be returned -\n // not what we want at all.\n if (!entityId)\n throw new Error(`Cannot update entity because entity id is not set in the entity.`);\n\n return entityId;\n });\n\n // to select just inserted entities we need a criteria to select by.\n // for newly inserted entities in drivers which do not support returning statement\n // row identifier can only be an increment column\n // (since its the only thing that can be generated by those databases)\n // or (and) other primary key which is defined by a user and inserted value has it\n\n const returningResult: any = await this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .addSelect(insertionColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .from(metadata.target, metadata.targetName)\n .where(entityIds)\n .setOption(\"create-pojo\") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process\n .getMany();\n\n entities.forEach((entity, entityIndex) => {\n this.queryRunner.manager.merge(metadata.target as any, generatedMaps[entityIndex], returningResult[entityIndex]);\n });\n }\n\n entities.forEach((entity, entityIndex) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n insertResult.identifiers.push(entityId);\n insertResult.generatedMaps.push(generatedMaps[entityIndex]);\n this.queryRunner.manager.merge(this.expressionMap.mainAlias!.metadata.target as any, entity, generatedMaps[entityIndex], generatedMaps[entityIndex]); // todo: why twice?!\n });\n }\n\n /**\n * Columns we need to be returned from the database when we insert entity.\n */\n getInsertionReturningColumns(): ColumnMetadata[] {\n\n // for databases which support returning statement we need to return extra columns like id\n // for other databases we don't need to return id column since its returned by a driver already\n const needToCheckGenerated = this.queryRunner.connection.driver.isReturningSqlSupported();\n\n // filter out the columns of which we need database inserted values to update our entity\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.default !== undefined ||\n (needToCheckGenerated && column.isGenerated) ||\n column.isCreateDate ||\n column.isUpdateDate ||\n column.isDeleteDate ||\n column.isVersion;\n });\n }\n\n /**\n * Columns we need to be returned from the database when we update entity.\n */\n getUpdationReturningColumns(): ColumnMetadata[] {\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.isUpdateDate || column.isVersion;\n });\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-builder/ReturningResultsEntityUpdator.ts"],"names":[],"mappings":";;;;AAEA,6CAA0C;AAK1C,8DAA2D;AAE3D;;GAEG;AACH;IAEI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,uCAAsB,WAAwB,EACxB,aAAiC;QADjC,gBAAW,GAAX,WAAW,CAAa;QACxB,kBAAa,GAAb,aAAa,CAAoB;IACvD,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,8CAAM,GAAZ,UAAa,YAA0B,EAAE,QAAyB;;;;;;;wBACxD,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,CAAC;wBAExD,qBAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAO,MAAM,EAAE,WAAW;;;;;;iDAGjD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAA5D,wBAA4D;4CAC5D,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,YAAY,2BAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gDACtJ,YAAY,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,UAAC,MAAM,EAAE,OAAO,EAAE,YAAY;oDACrE,MAAM,CAAC,KAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oDACzF,OAAO,MAAM,CAAC;gDAClB,CAAC,EAAE,EAAmB,CAAC,CAAC;6CAC3B;4CACK,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;4CAC5F,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;4CACjG,IAAI,gBAAgB,EAAE;gDAClB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAa,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;gDACjF,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;6CACrD;;;4CAKK,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;iDACvD,CAAA,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA,EAA1B,wBAA0B;4CAGpB,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;4CAC/E,IAAI,CAAC,QAAQ;gDACT,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;4CAGzD,qBAAM,IAAI,CAAC,WAAW,CAAC,OAAO;qDACxD,kBAAkB,EAAE;qDACpB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,QAAQ,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,EAA/C,CAA+C,CAAC,CAAC;qDAC9F,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,QAAQ,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,EAA/C,CAA+C,CAAC,CAAC;qDAC5G,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;qDAC1C,KAAK,CAAC,QAAQ,CAAC;qDACf,SAAS,CAAC,aAAa,CAAC,CAAC,8IAA8I;qDACvK,MAAM,EAAE,EAAA;;4CAPP,sBAAsB,GAAG,SAOX;4CAEpB,IAAI,sBAAsB,EAAE;gDACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAa,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;gDACvF,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;6CAC3D;;;;;iCAGZ,CAAC,CAAC,EAAA;;wBA5CH,SA4CG,CAAC;;;;;KACP;IAED;;OAEG;IACG,8CAAM,GAAZ,UAAa,YAA0B,EAAE,QAAyB;;;;;;;wBACxD,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,CAAC;wBAClD,gBAAgB,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;wBAEvD,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,WAAW;4BACnD,IAAI,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,YAAY,2BAAY,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;gCACtJ,YAAY,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,UAAC,MAAM,EAAE,OAAO,EAAE,YAAY;oCACrE,MAAM,CAAC,KAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oCACzF,OAAO,MAAM,CAAC;gCAClB,CAAC,EAAE,EAAmB,CAAC,CAAC;6BAC3B;4BACD,gDAAgD;4BAChD,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;4BAClG,IAAM,YAAY,GAAG,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;4BAEjI,0EAA0E;4BAC1E,oDAAoD;4BACpD,IAAI,KAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,yBAAyB,EAAE,KAAK,KAAK,EAAE;gCAC1E,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAA,eAAe;oCAC7C,IAAI,eAAe,CAAC,kBAAkB,KAAK,MAAM,EAAE;wCAC/C,qEAAqE;wCACrE,IAAI,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wCAClD,IAAI,CAAC,IAAI,EAAE,iHAAiH;4CACxH,IAAI,GAAG,KAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,GAAG,eAAe,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;wCAErG,mBAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;qCAC1E;gCACL,CAAC,CAAC,CAAC;6BACN;4BAED,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,6DAA6D;4BAC3I,OAAO,YAAY,CAAC;wBACxB,CAAC,CAAC,CAAC;6BAIC,CAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,EAAE,KAAK,KAAK,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAA,EAArG,wBAAqG;wBAC/F,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,MAAM;4BAClC,IAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC;4BAElD,yFAAyF;4BACzF,wFAAwF;4BACxF,2BAA2B;4BAC3B,IAAI,CAAC,QAAQ;gCACT,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;4BAExF,OAAO,QAAQ,CAAC;wBACpB,CAAC,CAAC,CAAC;wBAQ0B,qBAAM,IAAI,CAAC,WAAW,CAAC,OAAO;iCACtD,kBAAkB,EAAE;iCACpB,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,QAAQ,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,EAA/C,CAA+C,CAAC,CAAC;iCAC9F,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,QAAQ,CAAC,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC,YAAY,EAA/C,CAA+C,CAAC,CAAC;iCAC1F,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;iCAC1C,KAAK,CAAC,SAAS,CAAC;iCAChB,SAAS,CAAC,aAAa,CAAC,CAAC,8IAA8I;iCACvK,OAAO,EAAE,EAAA;;wBAPR,oBAAuB,SAOf;wBAEd,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM,EAAE,WAAW;4BACjC,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAa,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,iBAAe,CAAC,WAAW,CAAC,CAAC,CAAC;wBACrH,CAAC,CAAC,CAAC;;;wBAGP,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM,EAAE,WAAW;4BACjC,IAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC;4BAClD,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACxC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;4BAC5D,KAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,CAAC,MAAa,EAAE,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,oBAAoB;wBAC9K,CAAC,CAAC,CAAC;;;;;KACN;IAED;;OAEG;IACH,oEAA4B,GAA5B;QAEI,0FAA0F;QAC1F,+FAA+F;QAC/F,IAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAE1F,wFAAwF;QACxF,OAAO,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM;YAC/D,OAAQ,MAAM,CAAC,OAAO,KAAK,SAAS;gBAC5B,CAAC,oBAAoB,IAAI,MAAM,CAAC,WAAW,CAAC;gBAC5C,MAAM,CAAC,YAAY;gBACnB,MAAM,CAAC,YAAY;gBACnB,MAAM,CAAC,YAAY;gBACnB,MAAM,CAAC,SAAS,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,mEAA2B,GAA3B;QACI,OAAO,IAAI,CAAC,aAAa,CAAC,SAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM;YAC/D,OAAO,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC;IAEL,oCAAC;AAAD,CAhLA,AAgLC,IAAA;AAhLY,sEAA6B","file":"ReturningResultsEntityUpdator.js","sourcesContent":["import {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {OrmUtils} from \"../util/OrmUtils\";\nimport {QueryExpressionMap} from \"./QueryExpressionMap\";\nimport {ColumnMetadata} from \"../metadata/ColumnMetadata\";\nimport {UpdateResult} from \"./result/UpdateResult\";\nimport {InsertResult} from \"./result/InsertResult\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\n\n/**\n * Updates entity with returning results in the entity insert and update operations.\n */\nexport class ReturningResultsEntityUpdator {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected queryRunner: QueryRunner,\n protected expressionMap: QueryExpressionMap) {\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Updates entities with a special columns after updation query execution.\n */\n async update(updateResult: UpdateResult, entities: ObjectLiteral[]): Promise<void> {\n const metadata = this.expressionMap.mainAlias!.metadata;\n\n await Promise.all(entities.map(async (entity, entityIndex) => {\n\n // if database supports returning/output statement then we already should have updating values in the raw data returned by insert query\n if (this.queryRunner.connection.driver.isReturningSqlSupported()) {\n if (this.queryRunner.connection.driver instanceof OracleDriver && Array.isArray(updateResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n updateResult.raw = updateResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {\n newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {} as ObjectLiteral);\n }\n const result = Array.isArray(updateResult.raw) ? updateResult.raw[entityIndex] : updateResult.raw;\n const returningColumns = this.queryRunner.connection.driver.createGeneratedMap(metadata, result);\n if (returningColumns) {\n this.queryRunner.manager.merge(metadata.target as any, entity, returningColumns);\n updateResult.generatedMaps.push(returningColumns);\n }\n\n } else {\n\n // for driver which do not support returning/output statement we need to perform separate query and load what we need\n const updationColumns = this.getUpdationReturningColumns();\n if (updationColumns.length > 0) {\n\n // get entity id by which we will get needed data\n const entityId = this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity);\n if (!entityId)\n throw new Error(`Cannot update entity because entity id is not set in the entity.`);\n\n // execute query to get needed data\n const loadedReturningColumns = await this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .addSelect(this.getUpdationReturningColumns().map(column => metadata.targetName + \".\" + column.propertyPath))\n .from(metadata.target, metadata.targetName)\n .where(entityId)\n .setOption(\"create-pojo\") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process\n .getOne() as any;\n\n if (loadedReturningColumns) {\n this.queryRunner.manager.merge(metadata.target as any, entity, loadedReturningColumns);\n updateResult.generatedMaps.push(loadedReturningColumns);\n }\n }\n }\n }));\n }\n\n /**\n * Updates entities with a special columns after insertion query execution.\n */\n async insert(insertResult: InsertResult, entities: ObjectLiteral[]): Promise<void> {\n const metadata = this.expressionMap.mainAlias!.metadata;\n const insertionColumns = this.getInsertionReturningColumns();\n\n const generatedMaps = entities.map((entity, entityIndex) => {\n if (this.queryRunner.connection.driver instanceof OracleDriver && Array.isArray(insertResult.raw) && this.expressionMap.extraReturningColumns.length > 0) {\n insertResult.raw = insertResult.raw.reduce((newRaw, rawItem, rawItemIndex) => {\n newRaw[this.expressionMap.extraReturningColumns[rawItemIndex].databaseName] = rawItem[0];\n return newRaw;\n }, {} as ObjectLiteral);\n }\n // get all values generated by a database for us\n const result = Array.isArray(insertResult.raw) ? insertResult.raw[entityIndex] : insertResult.raw;\n const generatedMap = this.queryRunner.connection.driver.createGeneratedMap(metadata, result, entityIndex, entities.length) || {};\n\n // if database does not support uuid generation we need to get uuid values\n // generated by orm and set them to the generatedMap\n if (this.queryRunner.connection.driver.isUUIDGenerationSupported() === false) {\n metadata.generatedColumns.forEach(generatedColumn => {\n if (generatedColumn.generationStrategy === \"uuid\") {\n // uuid can be defined by user in a model, that's why first we get it\n let uuid = generatedColumn.getEntityValue(entity);\n if (!uuid) // if it was not defined by a user then InsertQueryBuilder generates it by its own, get this generated uuid value\n uuid = this.expressionMap.nativeParameters[\"uuid_\" + generatedColumn.databaseName + entityIndex];\n\n OrmUtils.mergeDeep(generatedMap, generatedColumn.createValueMap(uuid));\n }\n });\n }\n\n this.queryRunner.manager.merge(metadata.target as any, entity, generatedMap); // todo: this should not be here, but problem with below line\n return generatedMap;\n });\n\n // for postgres and mssql we use returning/output statement to get values of inserted default and generated values\n // for other drivers we have to re-select this data from the database\n if (this.queryRunner.connection.driver.isReturningSqlSupported() === false && insertionColumns.length > 0) {\n const entityIds = entities.map((entity) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n\n // We have to check for an empty `entityId` - if we don't, the query against the database\n // effectively drops the `where` clause entirely and the first record will be returned -\n // not what we want at all.\n if (!entityId)\n throw new Error(`Cannot update entity because entity id is not set in the entity.`);\n\n return entityId;\n });\n\n // to select just inserted entities we need a criteria to select by.\n // for newly inserted entities in drivers which do not support returning statement\n // row identifier can only be an increment column\n // (since its the only thing that can be generated by those databases)\n // or (and) other primary key which is defined by a user and inserted value has it\n\n const returningResult: any = await this.queryRunner.manager\n .createQueryBuilder()\n .select(metadata.primaryColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .addSelect(insertionColumns.map(column => metadata.targetName + \".\" + column.propertyPath))\n .from(metadata.target, metadata.targetName)\n .where(entityIds)\n .setOption(\"create-pojo\") // use POJO because created object can contain default values, e.g. property = null and those properties maight be overridden by merge process\n .getMany();\n\n entities.forEach((entity, entityIndex) => {\n this.queryRunner.manager.merge(metadata.target as any, generatedMaps[entityIndex], returningResult[entityIndex]);\n });\n }\n\n entities.forEach((entity, entityIndex) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n insertResult.identifiers.push(entityId);\n insertResult.generatedMaps.push(generatedMaps[entityIndex]);\n this.queryRunner.manager.merge(this.expressionMap.mainAlias!.metadata.target as any, entity, generatedMaps[entityIndex], generatedMaps[entityIndex]); // todo: why twice?!\n });\n }\n\n /**\n * Columns we need to be returned from the database when we insert entity.\n */\n getInsertionReturningColumns(): ColumnMetadata[] {\n\n // for databases which support returning statement we need to return extra columns like id\n // for other databases we don't need to return id column since its returned by a driver already\n const needToCheckGenerated = this.queryRunner.connection.driver.isReturningSqlSupported();\n\n // filter out the columns of which we need database inserted values to update our entity\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.default !== undefined ||\n (needToCheckGenerated && column.isGenerated) ||\n column.isCreateDate ||\n column.isUpdateDate ||\n column.isDeleteDate ||\n column.isVersion;\n });\n }\n\n /**\n * Columns we need to be returned from the database when we update entity.\n */\n getUpdationReturningColumns(): ColumnMetadata[] {\n return this.expressionMap.mainAlias!.metadata.columns.filter(column => {\n return column.isUpdateDate || column.isVersion;\n });\n }\n\n}\n"],"sourceRoot":".."}
@@ -481,15 +481,11 @@ export declare class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> imp
481
481
  /**
482
482
  * Sets locking mode.
483
483
  */
484
- setLock(lockMode: "optimistic", lockVersion: number): this;
484
+ setLock(lockMode: "optimistic", lockVersion: number | Date): this;
485
485
  /**
486
486
  * Sets locking mode.
487
487
  */
488
- setLock(lockMode: "optimistic", lockVersion: Date): this;
489
- /**
490
- * Sets locking mode.
491
- */
492
- setLock(lockMode: "pessimistic_read" | "pessimistic_write" | "dirty_read" | "pessimistic_partial_write" | "pessimistic_write_or_fail" | "for_no_key_update"): this;
488
+ setLock(lockMode: "pessimistic_read" | "pessimistic_write" | "dirty_read" | "pessimistic_partial_write" | "pessimistic_write_or_fail" | "for_no_key_update", lockVersion?: undefined, lockTables?: string[]): this;
493
489
  /**
494
490
  * Disables the global condition of "non-deleted" for the entity with delete date columns.
495
491
  */
@@ -513,6 +509,10 @@ export declare class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> imp
513
509
  * Gets single entity returned by execution of generated query builder sql.
514
510
  */
515
511
  getOne(): Promise<Entity | undefined>;
512
+ /**
513
+ * Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error.
514
+ */
515
+ getOneOrFail(): Promise<Entity>;
516
516
  /**
517
517
  * Gets entities returned by execution of generated query builder sql.
518
518
  */
@@ -583,6 +583,7 @@ export declare class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> imp
583
583
  protected createHavingExpression(): string;
584
584
  protected buildEscapedEntityColumnSelects(aliasName: string, metadata: EntityMetadata): SelectQuery[];
585
585
  protected findEntityColumnSelects(aliasName: string, metadata: EntityMetadata): SelectQuery[];
586
+ private computeCountExpression;
586
587
  protected executeCountQuery(queryRunner: QueryRunner): Promise<number>;
587
588
  /**
588
589
  * Executes sql generated by query builder and returns object with raw results and entities created from them.
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SelectQueryBuilder = void 0;
3
4
  var tslib_1 = require("tslib");
4
5
  var SapDriver_1 = require("../driver/sap/SapDriver");
5
6
  var RawSqlResultsToEntityTransformer_1 = require("./transformer/RawSqlResultsToEntityTransformer");
@@ -27,6 +28,7 @@ var ObjectUtils_1 = require("../util/ObjectUtils");
27
28
  var DriverUtils_1 = require("../driver/DriverUtils");
28
29
  var AuroraDataApiDriver_1 = require("../driver/aurora-data-api/AuroraDataApiDriver");
29
30
  var CockroachDriver_1 = require("../driver/cockroachdb/CockroachDriver");
31
+ var EntityNotFoundError_1 = require("../error/EntityNotFoundError");
30
32
  /**
31
33
  * Allows to build complex sql queries in a fashion way and execute those queries.
32
34
  */
@@ -42,7 +44,8 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
42
44
  * Gets generated sql query without parameters being replaced.
43
45
  */
44
46
  SelectQueryBuilder.prototype.getQuery = function () {
45
- var sql = this.createSelectExpression();
47
+ var sql = this.createComment();
48
+ sql += this.createSelectExpression();
46
49
  sql += this.createJoinExpression();
47
50
  sql += this.createWhereExpression();
48
51
  sql += this.createGroupByExpression();
@@ -508,9 +511,10 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
508
511
  /**
509
512
  * Sets locking mode.
510
513
  */
511
- SelectQueryBuilder.prototype.setLock = function (lockMode, lockVersion) {
514
+ SelectQueryBuilder.prototype.setLock = function (lockMode, lockVersion, lockTables) {
512
515
  this.expressionMap.lockMode = lockMode;
513
516
  this.expressionMap.lockVersion = lockVersion;
517
+ this.expressionMap.lockTables = lockTables;
514
518
  return this;
515
519
  };
516
520
  /**
@@ -678,6 +682,25 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
678
682
  });
679
683
  });
680
684
  };
685
+ /**
686
+ * Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error.
687
+ */
688
+ SelectQueryBuilder.prototype.getOneOrFail = function () {
689
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
690
+ var entity;
691
+ return tslib_1.__generator(this, function (_a) {
692
+ switch (_a.label) {
693
+ case 0: return [4 /*yield*/, this.getOne()];
694
+ case 1:
695
+ entity = _a.sent();
696
+ if (!entity) {
697
+ throw new EntityNotFoundError_1.EntityNotFoundError(this.expressionMap.mainAlias.target, this);
698
+ }
699
+ return [2 /*return*/, entity];
700
+ }
701
+ });
702
+ });
703
+ };
681
704
  /**
682
705
  * Gets entities returned by execution of generated query builder sql.
683
706
  */
@@ -838,7 +861,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
838
861
  transactionStartedByUs = false;
839
862
  _b.label = 1;
840
863
  case 1:
841
- _b.trys.push([1, 6, 11, 14]);
864
+ _b.trys.push([1, 6, , 11]);
842
865
  if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];
843
866
  return [4 /*yield*/, queryRunner.startTransaction()];
844
867
  case 2:
@@ -872,14 +895,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
872
895
  rollbackError_5 = _b.sent();
873
896
  return [3 /*break*/, 10];
874
897
  case 10: throw error_5;
875
- case 11:
876
- if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 13];
877
- return [4 /*yield*/, queryRunner.release()];
878
- case 12:
879
- _b.sent();
880
- _b.label = 13;
881
- case 13: return [7 /*endfinally*/];
882
- case 14: return [2 /*return*/];
898
+ case 11: return [2 /*return*/];
883
899
  }
884
900
  });
885
901
  });
@@ -925,6 +941,10 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
925
941
  // joinAttribute.junctionAlias = joinAttribute.relation.isOwning ? parentAlias + "_" + destinationTableAlias : destinationTableAlias + "_" + parentAlias;
926
942
  this.expressionMap.joinAttributes.push(joinAttribute);
927
943
  if (joinAttribute.metadata) {
944
+ if (joinAttribute.metadata.deleteDateColumn && !this.expressionMap.withDeleted) {
945
+ var conditionDeleteColumn = aliasName + "." + joinAttribute.metadata.deleteDateColumn.propertyName + " IS NULL";
946
+ joinAttribute.condition += joinAttribute.condition ? " AND " + conditionDeleteColumn : "" + conditionDeleteColumn;
947
+ }
928
948
  // todo: find and set metadata right there?
929
949
  joinAttribute.alias = this.expressionMap.createAlias({
930
950
  type: "join",
@@ -970,15 +990,15 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
970
990
  var excludedSelects = [];
971
991
  if (this.expressionMap.mainAlias.hasMetadata) {
972
992
  var metadata = this.expressionMap.mainAlias.metadata;
973
- allSelects.push.apply(allSelects, tslib_1.__spread(this.buildEscapedEntityColumnSelects(this.expressionMap.mainAlias.name, metadata)));
974
- excludedSelects.push.apply(excludedSelects, tslib_1.__spread(this.findEntityColumnSelects(this.expressionMap.mainAlias.name, metadata)));
993
+ allSelects.push.apply(allSelects, tslib_1.__spreadArray([], tslib_1.__read(this.buildEscapedEntityColumnSelects(this.expressionMap.mainAlias.name, metadata))));
994
+ excludedSelects.push.apply(excludedSelects, tslib_1.__spreadArray([], tslib_1.__read(this.findEntityColumnSelects(this.expressionMap.mainAlias.name, metadata))));
975
995
  }
976
996
  // add selects from joins
977
997
  this.expressionMap.joinAttributes
978
998
  .forEach(function (join) {
979
999
  if (join.metadata) {
980
- allSelects.push.apply(allSelects, tslib_1.__spread(_this.buildEscapedEntityColumnSelects(join.alias.name, join.metadata)));
981
- excludedSelects.push.apply(excludedSelects, tslib_1.__spread(_this.findEntityColumnSelects(join.alias.name, join.metadata)));
1000
+ allSelects.push.apply(allSelects, tslib_1.__spreadArray([], tslib_1.__read(_this.buildEscapedEntityColumnSelects(join.alias.name, join.metadata))));
1001
+ excludedSelects.push.apply(excludedSelects, tslib_1.__spreadArray([], tslib_1.__read(_this.findEntityColumnSelects(join.alias.name, join.metadata))));
982
1002
  }
983
1003
  else {
984
1004
  var hasMainAlias = _this.expressionMap.selects.some(function (select) { return select.selection === join.alias.name; });
@@ -1076,6 +1096,9 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1076
1096
  else if (relation.isOneToMany || relation.isOneToOneNotOwner) {
1077
1097
  // JOIN `post` `post` ON `post`.`categoryId` = `category`.`id`
1078
1098
  var condition = relation.inverseRelation.joinColumns.map(function (joinColumn) {
1099
+ if (relation.inverseEntityMetadata.tableType === "entity-child" && relation.inverseEntityMetadata.discriminatorColumn) {
1100
+ appendedCondition += " AND " + destinationTableAlias + "." + relation.inverseEntityMetadata.discriminatorColumn.databaseName + "='" + relation.inverseEntityMetadata.discriminatorValue + "'";
1101
+ }
1079
1102
  return destinationTableAlias + "." + relation.inverseRelation.propertyPath + "." + joinColumn.referencedColumn.propertyPath + "=" +
1080
1103
  parentAlias + "." + joinColumn.referencedColumn.propertyPath;
1081
1104
  }).join(" AND ");
@@ -1205,13 +1228,23 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1205
1228
  */
1206
1229
  SelectQueryBuilder.prototype.createLockExpression = function () {
1207
1230
  var driver = this.connection.driver;
1231
+ var lockTablesClause = "";
1232
+ if (this.expressionMap.lockTables) {
1233
+ if (!(driver instanceof PostgresDriver_1.PostgresDriver)) {
1234
+ throw new Error("Lock tables not supported in selected driver");
1235
+ }
1236
+ if (this.expressionMap.lockTables.length < 1) {
1237
+ throw new Error("lockTables cannot be an empty array");
1238
+ }
1239
+ lockTablesClause = " OF " + this.expressionMap.lockTables.join(", ");
1240
+ }
1208
1241
  switch (this.expressionMap.lockMode) {
1209
1242
  case "pessimistic_read":
1210
1243
  if (driver instanceof MysqlDriver_1.MysqlDriver || driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver) {
1211
1244
  return " LOCK IN SHARE MODE";
1212
1245
  }
1213
1246
  else if (driver instanceof PostgresDriver_1.PostgresDriver) {
1214
- return " FOR SHARE";
1247
+ return " FOR SHARE" + lockTablesClause;
1215
1248
  }
1216
1249
  else if (driver instanceof OracleDriver_1.OracleDriver) {
1217
1250
  return " FOR UPDATE";
@@ -1223,9 +1256,12 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1223
1256
  throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
1224
1257
  }
1225
1258
  case "pessimistic_write":
1226
- if (driver instanceof MysqlDriver_1.MysqlDriver || driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver || driver instanceof PostgresDriver_1.PostgresDriver || driver instanceof OracleDriver_1.OracleDriver) {
1259
+ if (driver instanceof MysqlDriver_1.MysqlDriver || driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver || driver instanceof OracleDriver_1.OracleDriver) {
1227
1260
  return " FOR UPDATE";
1228
1261
  }
1262
+ else if (driver instanceof PostgresDriver_1.PostgresDriver) {
1263
+ return " FOR UPDATE" + lockTablesClause;
1264
+ }
1229
1265
  else if (driver instanceof SqlServerDriver_1.SqlServerDriver) {
1230
1266
  return "";
1231
1267
  }
@@ -1234,6 +1270,9 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1234
1270
  }
1235
1271
  case "pessimistic_partial_write":
1236
1272
  if (driver instanceof PostgresDriver_1.PostgresDriver) {
1273
+ return " FOR UPDATE" + lockTablesClause + " SKIP LOCKED";
1274
+ }
1275
+ else if (driver instanceof MysqlDriver_1.MysqlDriver) {
1237
1276
  return " FOR UPDATE SKIP LOCKED";
1238
1277
  }
1239
1278
  else {
@@ -1241,6 +1280,9 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1241
1280
  }
1242
1281
  case "pessimistic_write_or_fail":
1243
1282
  if (driver instanceof PostgresDriver_1.PostgresDriver) {
1283
+ return " FOR UPDATE" + lockTablesClause + " NOWAIT";
1284
+ }
1285
+ else if (driver instanceof MysqlDriver_1.MysqlDriver) {
1244
1286
  return " FOR UPDATE NOWAIT";
1245
1287
  }
1246
1288
  else {
@@ -1248,7 +1290,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1248
1290
  }
1249
1291
  case "for_no_key_update":
1250
1292
  if (driver instanceof PostgresDriver_1.PostgresDriver) {
1251
- return " FOR NO KEY UPDATE";
1293
+ return " FOR NO KEY UPDATE" + lockTablesClause;
1252
1294
  }
1253
1295
  else {
1254
1296
  throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
@@ -1283,18 +1325,18 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1283
1325
  var hasMainAlias = this.expressionMap.selects.some(function (select) { return select.selection === aliasName; });
1284
1326
  var columns = [];
1285
1327
  if (hasMainAlias) {
1286
- columns.push.apply(columns, tslib_1.__spread(metadata.columns.filter(function (column) { return column.isSelect === true; })));
1328
+ columns.push.apply(columns, tslib_1.__spreadArray([], tslib_1.__read(metadata.columns.filter(function (column) { return column.isSelect === true; }))));
1287
1329
  }
1288
- columns.push.apply(columns, tslib_1.__spread(metadata.columns.filter(function (column) {
1330
+ columns.push.apply(columns, tslib_1.__spreadArray([], tslib_1.__read(metadata.columns.filter(function (column) {
1289
1331
  return _this.expressionMap.selects.some(function (select) { return select.selection === aliasName + "." + column.propertyPath; });
1290
- })));
1332
+ }))));
1291
1333
  // if user used partial selection and did not select some primary columns which are required to be selected
1292
1334
  // we select those primary columns and mark them as "virtual". Later virtual column values will be removed from final entity
1293
1335
  // to make entity contain exactly what user selected
1294
1336
  if (columns.length === 0) // however not in the case when nothing (even partial) was selected from this target (for example joins without selection)
1295
1337
  return [];
1296
1338
  var nonSelectedPrimaryColumns = this.expressionMap.queryEntity ? metadata.primaryColumns.filter(function (primaryColumn) { return columns.indexOf(primaryColumn) === -1; }) : [];
1297
- var allColumns = tslib_1.__spread(columns, nonSelectedPrimaryColumns);
1339
+ var allColumns = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(columns)), tslib_1.__read(nonSelectedPrimaryColumns));
1298
1340
  return allColumns.map(function (column) {
1299
1341
  var selection = _this.expressionMap.selects.find(function (select) { return select.selection === aliasName + "." + column.propertyPath; });
1300
1342
  var selectionPath = _this.escape(aliasName) + "." + _this.escape(column.databaseName);
@@ -1306,7 +1348,12 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1306
1348
  }
1307
1349
  if (_this.connection.driver instanceof PostgresDriver_1.PostgresDriver)
1308
1350
  // cast to JSON to trigger parsing in the driver
1309
- selectionPath = "ST_AsGeoJSON(" + selectionPath + ")::json";
1351
+ if (column.precision) {
1352
+ selectionPath = "ST_AsGeoJSON(" + selectionPath + ", " + column.precision + ")::json";
1353
+ }
1354
+ else {
1355
+ selectionPath = "ST_AsGeoJSON(" + selectionPath + ")::json";
1356
+ }
1310
1357
  if (_this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver)
1311
1358
  selectionPath = selectionPath + ".ToString()";
1312
1359
  }
@@ -1326,49 +1373,61 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1326
1373
  return metadata.columns.some(function (column) { return select.selection === aliasName + "." + column.propertyPath; });
1327
1374
  });
1328
1375
  };
1376
+ SelectQueryBuilder.prototype.computeCountExpression = function () {
1377
+ var _this = this;
1378
+ var mainAlias = this.expressionMap.mainAlias.name; // todo: will this work with "fromTableName"?
1379
+ var metadata = this.expressionMap.mainAlias.metadata;
1380
+ var primaryColumns = metadata.primaryColumns;
1381
+ var distinctAlias = this.escape(mainAlias);
1382
+ // If we aren't doing anything that will create a join, we can use a simpler `COUNT` instead
1383
+ // so we prevent poor query patterns in the most likely cases
1384
+ if (this.expressionMap.joinAttributes.length === 0 &&
1385
+ this.expressionMap.relationIdAttributes.length === 0 &&
1386
+ this.expressionMap.relationCountAttributes.length === 0) {
1387
+ return "COUNT(1)";
1388
+ }
1389
+ // For everything else, we'll need to do some hackery to get the correct count values.
1390
+ if (this.connection.driver instanceof CockroachDriver_1.CockroachDriver || this.connection.driver instanceof PostgresDriver_1.PostgresDriver) {
1391
+ // Postgres and CockroachDB can pass multiple parameters to the `DISTINCT` function
1392
+ // https://www.postgresql.org/docs/9.5/sql-select.html#SQL-DISTINCT
1393
+ return "COUNT(DISTINCT(" +
1394
+ primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(", ") +
1395
+ "))";
1396
+ }
1397
+ if (this.connection.driver instanceof MysqlDriver_1.MysqlDriver) {
1398
+ // MySQL & MariaDB can pass multiple parameters to the `DISTINCT` language construct
1399
+ // https://mariadb.com/kb/en/count-distinct/
1400
+ return "COUNT(DISTINCT " +
1401
+ primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(", ") +
1402
+ ")";
1403
+ }
1404
+ if (this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver) {
1405
+ // SQL Server has gotta be different from everyone else. They don't support
1406
+ // distinct counting multiple columns & they don't have the same operator
1407
+ // characteristic for concatenating, so we gotta use the `CONCAT` function.
1408
+ // However, If it's exactly 1 column we can omit the `CONCAT` for better performance.
1409
+ var columnsExpression = primaryColumns.map(function (primaryColumn) { return distinctAlias + "." + _this.escape(primaryColumn.databaseName); }).join(", '|;|', ");
1410
+ if (primaryColumns.length === 1) {
1411
+ return "COUNT(DISTINCT(" + columnsExpression + "))";
1412
+ }
1413
+ return "COUNT(DISTINCT(CONCAT(" + columnsExpression + ")))";
1414
+ }
1415
+ // If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.
1416
+ // Per the SQL spec, this is the canonical string concatenation mechanism which is most
1417
+ // likely to work across servers implementing the SQL standard.
1418
+ // Please note, if there is only one primary column that the concatenation does not occur in this
1419
+ // query and the query is a standard `COUNT DISTINCT` in that case.
1420
+ return "COUNT(DISTINCT(" +
1421
+ primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(" || '|;|' || ") +
1422
+ "))";
1423
+ };
1329
1424
  SelectQueryBuilder.prototype.executeCountQuery = function (queryRunner) {
1330
1425
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1331
- var mainAlias, metadata, distinctAlias, countSql, results;
1332
- var _this = this;
1426
+ var countSql, results;
1333
1427
  return tslib_1.__generator(this, function (_a) {
1334
1428
  switch (_a.label) {
1335
1429
  case 0:
1336
- mainAlias = this.expressionMap.mainAlias.name;
1337
- metadata = this.expressionMap.mainAlias.metadata;
1338
- distinctAlias = this.escape(mainAlias);
1339
- countSql = "";
1340
- if (metadata.hasMultiplePrimaryKeys) {
1341
- if (this.connection.driver instanceof AbstractSqliteDriver_1.AbstractSqliteDriver) {
1342
- countSql = "COUNT(DISTINCT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1343
- var propertyName = _this.escape(primaryColumn.databaseName);
1344
- return distinctAlias + "." + propertyName;
1345
- }).join(" || ") + ")) as \"cnt\"";
1346
- }
1347
- else if (this.connection.driver instanceof CockroachDriver_1.CockroachDriver) {
1348
- countSql = "COUNT(DISTINCT(CONCAT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1349
- var propertyName = _this.escape(primaryColumn.databaseName);
1350
- return distinctAlias + "." + propertyName + "::text";
1351
- }).join(", ") + "))) as \"cnt\"";
1352
- }
1353
- else if (this.connection.driver instanceof OracleDriver_1.OracleDriver) {
1354
- countSql = "COUNT(DISTINCT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1355
- var propertyName = _this.escape(primaryColumn.databaseName);
1356
- return distinctAlias + "." + propertyName;
1357
- }).join(" || ") + ")) as \"cnt\"";
1358
- }
1359
- else {
1360
- countSql = "COUNT(DISTINCT(CONCAT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1361
- var propertyName = _this.escape(primaryColumn.databaseName);
1362
- return distinctAlias + "." + propertyName;
1363
- }).join(", ") + "))) as \"cnt\"";
1364
- }
1365
- }
1366
- else {
1367
- countSql = "COUNT(DISTINCT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1368
- var propertyName = _this.escape(primaryColumn.databaseName);
1369
- return distinctAlias + "." + propertyName;
1370
- }).join(", ") + ")) as \"cnt\"";
1371
- }
1430
+ countSql = this.computeCountExpression();
1372
1431
  return [4 /*yield*/, this.clone()
1373
1432
  .orderBy()
1374
1433
  .groupBy()
@@ -1376,7 +1435,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1376
1435
  .limit(undefined)
1377
1436
  .skip(undefined)
1378
1437
  .take(undefined)
1379
- .select(countSql)
1438
+ .select(countSql, "cnt")
1380
1439
  .setOption("disable-global-order")
1381
1440
  .loadRawResults(queryRunner)];
1382
1441
  case 1:
@@ -1509,9 +1568,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1509
1568
  var selectString = Object.keys(orderBys)
1510
1569
  .map(function (orderCriteria) {
1511
1570
  if (orderCriteria.indexOf(".") !== -1) {
1512
- var _a = tslib_1.__read(orderCriteria.split("."), 2), aliasName = _a[0], propertyPath = _a[1];
1571
+ var criteriaParts = orderCriteria.split(".");
1572
+ var aliasName = criteriaParts[0];
1573
+ var propertyPath = criteriaParts.slice(1).join(".");
1513
1574
  var alias = _this.expressionMap.findAliasByName(aliasName);
1514
- var column = alias.metadata.findColumnWithPropertyName(propertyPath);
1575
+ var column = alias.metadata.findColumnWithPropertyPath(propertyPath);
1515
1576
  return _this.escape(parentAlias) + "." + _this.escape(DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, aliasName, column.databaseName));
1516
1577
  }
1517
1578
  else {
@@ -1524,9 +1585,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1524
1585
  var orderByObject = {};
1525
1586
  Object.keys(orderBys).forEach(function (orderCriteria) {
1526
1587
  if (orderCriteria.indexOf(".") !== -1) {
1527
- var _a = tslib_1.__read(orderCriteria.split("."), 2), aliasName = _a[0], propertyPath = _a[1];
1588
+ var criteriaParts = orderCriteria.split(".");
1589
+ var aliasName = criteriaParts[0];
1590
+ var propertyPath = criteriaParts.slice(1).join(".");
1528
1591
  var alias = _this.expressionMap.findAliasByName(aliasName);
1529
- var column = alias.metadata.findColumnWithPropertyName(propertyPath);
1592
+ var column = alias.metadata.findColumnWithPropertyPath(propertyPath);
1530
1593
  orderByObject[_this.escape(parentAlias) + "." + _this.escape(DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, aliasName, column.databaseName))] = orderBys[orderCriteria];
1531
1594
  }
1532
1595
  else {