typeorm 0.2.25 → 0.2.29

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 (1014) hide show
  1. package/README.md +16 -7
  2. package/browser/cache/DbQueryResultCache.js +14 -14
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.js +19 -14
  5. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  6. package/browser/common/DeepPartial.d.ts +1 -1
  7. package/browser/common/DeepPartial.js.map +1 -1
  8. package/browser/common/EntityTarget.d.ts +9 -0
  9. package/browser/common/EntityTarget.js +3 -0
  10. package/browser/common/EntityTarget.js.map +1 -0
  11. package/browser/connection/Connection.d.ts +11 -10
  12. package/browser/connection/Connection.js +63 -40
  13. package/browser/connection/Connection.js.map +1 -1
  14. package/browser/connection/ConnectionMetadataBuilder.js +8 -8
  15. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  16. package/browser/connection/ConnectionOptions.d.ts +2 -1
  17. package/browser/connection/ConnectionOptions.js.map +1 -1
  18. package/browser/connection/ConnectionOptionsReader.js +48 -43
  19. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  20. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  21. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  22. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +4 -4
  24. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  25. package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  26. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  27. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  28. package/browser/decorator/Check.d.ts +2 -2
  29. package/browser/decorator/Check.js.map +1 -1
  30. package/browser/decorator/EntityRepository.d.ts +1 -1
  31. package/browser/decorator/EntityRepository.js.map +1 -1
  32. package/browser/decorator/Exclusion.d.ts +2 -2
  33. package/browser/decorator/Exclusion.js.map +1 -1
  34. package/browser/decorator/Generated.d.ts +1 -1
  35. package/browser/decorator/Generated.js.map +1 -1
  36. package/browser/decorator/Index.d.ts +7 -7
  37. package/browser/decorator/Index.js.map +1 -1
  38. package/browser/decorator/Unique.d.ts +4 -4
  39. package/browser/decorator/Unique.js +12 -1
  40. package/browser/decorator/Unique.js.map +1 -1
  41. package/browser/decorator/columns/Column.d.ts +12 -12
  42. package/browser/decorator/columns/Column.js.map +1 -1
  43. package/browser/decorator/columns/CreateDateColumn.d.ts +1 -1
  44. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  45. package/browser/decorator/columns/DeleteDateColumn.d.ts +1 -1
  46. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  47. package/browser/decorator/columns/ObjectIdColumn.d.ts +1 -1
  48. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  49. package/browser/decorator/columns/PrimaryColumn.d.ts +2 -2
  50. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  51. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  52. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  53. package/browser/decorator/columns/UpdateDateColumn.d.ts +1 -1
  54. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  55. package/browser/decorator/columns/VersionColumn.d.ts +1 -1
  56. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  57. package/browser/decorator/columns/ViewColumn.d.ts +1 -1
  58. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  59. package/browser/decorator/entity/ChildEntity.d.ts +1 -1
  60. package/browser/decorator/entity/ChildEntity.js +1 -1
  61. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  62. package/browser/decorator/entity/TableInheritance.d.ts +1 -1
  63. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  64. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
  65. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  66. package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
  67. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  68. package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
  69. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  70. package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
  71. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  72. package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
  73. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  74. package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
  75. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  76. package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
  77. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  78. package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
  79. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  80. package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
  81. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  82. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  83. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  84. package/browser/decorator/relations/JoinColumn.d.ts +3 -3
  85. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  86. package/browser/decorator/relations/JoinTable.d.ts +3 -3
  87. package/browser/decorator/relations/JoinTable.js.map +1 -1
  88. package/browser/decorator/relations/ManyToMany.d.ts +2 -2
  89. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  90. package/browser/decorator/relations/ManyToOne.d.ts +2 -2
  91. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  92. package/browser/decorator/relations/OneToMany.d.ts +3 -3
  93. package/browser/decorator/relations/OneToMany.js +2 -2
  94. package/browser/decorator/relations/OneToMany.js.map +1 -1
  95. package/browser/decorator/relations/OneToOne.d.ts +2 -2
  96. package/browser/decorator/relations/OneToOne.js.map +1 -1
  97. package/browser/decorator/relations/RelationCount.d.ts +1 -1
  98. package/browser/decorator/relations/RelationCount.js.map +1 -1
  99. package/browser/decorator/relations/RelationId.d.ts +1 -1
  100. package/browser/decorator/relations/RelationId.js.map +1 -1
  101. package/browser/decorator/transaction/Transaction.js +4 -4
  102. package/browser/decorator/transaction/Transaction.js.map +1 -1
  103. package/browser/decorator/transaction/TransactionManager.d.ts +1 -1
  104. package/browser/decorator/transaction/TransactionManager.js.map +1 -1
  105. package/browser/decorator/tree/Tree.d.ts +1 -1
  106. package/browser/decorator/tree/Tree.js.map +1 -1
  107. package/browser/decorator/tree/TreeChildren.d.ts +1 -1
  108. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  109. package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
  110. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  111. package/browser/decorator/tree/TreeParent.d.ts +1 -1
  112. package/browser/decorator/tree/TreeParent.js.map +1 -1
  113. package/browser/driver/Driver.d.ts +7 -2
  114. package/browser/driver/Driver.js.map +1 -1
  115. package/browser/driver/DriverFactory.js +4 -1
  116. package/browser/driver/DriverFactory.js.map +1 -1
  117. package/browser/driver/DriverUtils.d.ts +2 -2
  118. package/browser/driver/DriverUtils.js +27 -15
  119. package/browser/driver/DriverUtils.js.map +1 -1
  120. package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  121. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +2 -3
  122. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  123. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +3 -0
  124. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  125. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  126. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +14 -9
  127. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  128. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +5 -0
  129. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +283 -149
  130. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  131. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +6 -0
  132. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  133. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  134. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +99 -0
  135. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  136. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +4 -3
  137. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +66 -20
  138. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  139. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  140. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
  141. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  142. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  143. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +125 -0
  144. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  145. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  146. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +113 -0
  147. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  148. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  149. package/browser/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  150. package/browser/driver/cockroachdb/CockroachDriver.js +21 -16
  151. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  152. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +7 -1
  153. package/browser/driver/cockroachdb/CockroachQueryRunner.js +509 -211
  154. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  155. package/browser/driver/cordova/CordovaDriver.d.ts +2 -1
  156. package/browser/driver/cordova/CordovaDriver.js +4 -5
  157. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  158. package/browser/driver/cordova/CordovaQueryRunner.js +4 -4
  159. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  160. package/browser/driver/expo/ExpoDriver.d.ts +2 -1
  161. package/browser/driver/expo/ExpoDriver.js +4 -5
  162. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  163. package/browser/driver/expo/ExpoQueryRunner.js +82 -24
  164. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  165. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  166. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  167. package/browser/driver/mongodb/MongoDriver.d.ts +13 -4
  168. package/browser/driver/mongodb/MongoDriver.js +24 -18
  169. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  170. package/browser/driver/mongodb/MongoQueryRunner.d.ts +4 -3
  171. package/browser/driver/mongodb/MongoQueryRunner.js +175 -175
  172. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  173. package/browser/driver/mongodb/typings.js.map +1 -1
  174. package/browser/driver/mysql/MysqlDriver.d.ts +7 -2
  175. package/browser/driver/mysql/MysqlDriver.js +20 -13
  176. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  177. package/browser/driver/mysql/MysqlQueryRunner.d.ts +11 -1
  178. package/browser/driver/mysql/MysqlQueryRunner.js +351 -185
  179. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  180. package/browser/driver/nativescript/NativescriptDriver.d.ts +2 -1
  181. package/browser/driver/nativescript/NativescriptDriver.js +4 -5
  182. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  183. package/browser/driver/nativescript/NativescriptQueryRunner.js +2 -2
  184. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  185. package/browser/driver/oracle/OracleDriver.d.ts +6 -1
  186. package/browser/driver/oracle/OracleDriver.js +17 -12
  187. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  188. package/browser/driver/oracle/OracleQueryRunner.d.ts +3 -1
  189. package/browser/driver/oracle/OracleQueryRunner.js +247 -134
  190. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  191. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  192. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  193. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  194. package/browser/driver/postgres/PostgresDriver.d.ts +18 -55
  195. package/browser/driver/postgres/PostgresDriver.js +196 -206
  196. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  197. package/browser/driver/postgres/PostgresQueryRunner.d.ts +11 -1
  198. package/browser/driver/postgres/PostgresQueryRunner.js +517 -209
  199. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  200. package/browser/driver/react-native/ReactNativeDriver.d.ts +2 -1
  201. package/browser/driver/react-native/ReactNativeDriver.js +4 -5
  202. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  203. package/browser/driver/react-native/ReactNativeQueryRunner.js +4 -4
  204. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  205. package/browser/driver/sap/SapDriver.d.ts +6 -1
  206. package/browser/driver/sap/SapDriver.js +12 -7
  207. package/browser/driver/sap/SapDriver.js.map +1 -1
  208. package/browser/driver/sap/SapQueryRunner.d.ts +3 -1
  209. package/browser/driver/sap/SapQueryRunner.js +276 -160
  210. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  211. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  212. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  213. package/browser/driver/sqlite/SqliteDriver.d.ts +2 -1
  214. package/browser/driver/sqlite/SqliteDriver.js +31 -17
  215. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  216. package/browser/driver/sqlite/SqliteQueryRunner.js +37 -18
  217. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  218. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  219. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +36 -9
  220. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  221. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -0
  222. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +189 -127
  223. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  224. package/browser/driver/sqljs/SqljsDriver.d.ts +2 -1
  225. package/browser/driver/sqljs/SqljsDriver.js +14 -15
  226. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  227. package/browser/driver/sqljs/SqljsQueryRunner.js +7 -6
  228. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  229. package/browser/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  230. package/browser/driver/sqlserver/SqlServerDriver.js +13 -8
  231. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  232. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -1
  233. package/browser/driver/sqlserver/SqlServerQueryRunner.js +368 -230
  234. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  235. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  236. package/browser/driver/types/ColumnTypes.js.map +1 -1
  237. package/browser/driver/types/DatabaseType.d.ts +1 -1
  238. package/browser/driver/types/DatabaseType.js.map +1 -1
  239. package/browser/driver/types/ReplicationMode.d.ts +1 -0
  240. package/browser/driver/types/ReplicationMode.js +3 -0
  241. package/browser/driver/types/ReplicationMode.js.map +1 -0
  242. package/browser/entity-manager/EntityManager.d.ts +41 -256
  243. package/browser/entity-manager/EntityManager.js +32 -42
  244. package/browser/entity-manager/EntityManager.js.map +1 -1
  245. package/browser/entity-manager/MongoEntityManager.d.ts +46 -46
  246. package/browser/entity-manager/MongoEntityManager.js +31 -20
  247. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  248. package/browser/entity-manager/SqljsEntityManager.js +6 -6
  249. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  250. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  251. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  252. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  253. package/browser/entity-schema/EntitySchemaTransformer.js +22 -7
  254. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  255. package/browser/error/AlreadyHasActiveConnectionError.js +2 -2
  256. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  257. package/browser/error/CannotAttachTreeChildrenEntityError.js +2 -2
  258. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  259. package/browser/error/CannotConnectAlreadyConnectedError.js +2 -2
  260. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  261. package/browser/error/CannotCreateEntityIdMapError.js +2 -2
  262. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  263. package/browser/error/CannotDetermineEntityError.js +2 -2
  264. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  265. package/browser/error/CannotExecuteNotConnectedError.js +2 -2
  266. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  267. package/browser/error/CannotGetEntityManagerNotConnectedError.js +2 -2
  268. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  269. package/browser/error/CannotReflectMethodParameterTypeError.js +2 -2
  270. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  271. package/browser/error/CircularRelationsError.js +2 -2
  272. package/browser/error/CircularRelationsError.js.map +1 -1
  273. package/browser/error/ColumnTypeUndefinedError.js +2 -2
  274. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  275. package/browser/error/ConnectionIsNotSetError.js +2 -2
  276. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  277. package/browser/error/ConnectionNotFoundError.js +2 -2
  278. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  279. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +2 -2
  280. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  281. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +2 -2
  282. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  283. package/browser/error/CustomRepositoryNotFoundError.js +2 -2
  284. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  285. package/browser/error/DataTypeNotSupportedError.js +2 -2
  286. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  287. package/browser/error/DriverOptionNotSetError.js +2 -2
  288. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  289. package/browser/error/DriverPackageNotInstalledError.js +2 -2
  290. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  291. package/browser/error/EntityColumnNotFound.js +2 -2
  292. package/browser/error/EntityColumnNotFound.js.map +1 -1
  293. package/browser/error/EntityMetadataNotFoundError.d.ts +2 -2
  294. package/browser/error/EntityMetadataNotFoundError.js +5 -2
  295. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  296. package/browser/error/EntityNotFoundError.d.ts +2 -3
  297. package/browser/error/EntityNotFoundError.js +5 -2
  298. package/browser/error/EntityNotFoundError.js.map +1 -1
  299. package/browser/error/FindRelationsNotFoundError.js +4 -4
  300. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  301. package/browser/error/InitializedRelationError.js +2 -2
  302. package/browser/error/InitializedRelationError.js.map +1 -1
  303. package/browser/error/InsertValuesMissingError.js +2 -2
  304. package/browser/error/InsertValuesMissingError.js.map +1 -1
  305. package/browser/error/LimitOnUpdateNotSupportedError.js +2 -2
  306. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  307. package/browser/error/LockNotSupportedOnGivenDriverError.js +2 -2
  308. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  309. package/browser/error/MetadataAlreadyExistsError.js +2 -2
  310. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  311. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +2 -2
  312. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  313. package/browser/error/MissingDeleteDateColumnError.js +2 -2
  314. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  315. package/browser/error/MissingDriverError.js +3 -3
  316. package/browser/error/MissingDriverError.js.map +1 -1
  317. package/browser/error/MissingJoinColumnError.js +2 -2
  318. package/browser/error/MissingJoinColumnError.js.map +1 -1
  319. package/browser/error/MissingJoinTableError.js +2 -2
  320. package/browser/error/MissingJoinTableError.js.map +1 -1
  321. package/browser/error/MissingPrimaryColumnError.js +2 -2
  322. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  323. package/browser/error/MustBeEntityError.js +2 -2
  324. package/browser/error/MustBeEntityError.js.map +1 -1
  325. package/browser/error/NamingStrategyNotFoundError.js +2 -2
  326. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  327. package/browser/error/NoConnectionForRepositoryError.js +2 -2
  328. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  329. package/browser/error/NoConnectionOptionError.js +2 -2
  330. package/browser/error/NoConnectionOptionError.js.map +1 -1
  331. package/browser/error/NoNeedToReleaseEntityManagerError.js +2 -2
  332. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  333. package/browser/error/NoVersionOrUpdateDateColumnError.js +2 -2
  334. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  335. package/browser/error/OffsetWithoutLimitNotSupportedError.js +2 -2
  336. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  337. package/browser/error/OptimisticLockCanNotBeUsedError.js +2 -2
  338. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  339. package/browser/error/OptimisticLockVersionMismatchError.js +2 -2
  340. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  341. package/browser/error/PersistedEntityNotFoundError.js +2 -2
  342. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  343. package/browser/error/PessimisticLockTransactionRequiredError.js +2 -2
  344. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  345. package/browser/error/PrimaryColumnCannotBeNullableError.js +2 -2
  346. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  347. package/browser/error/QueryFailedError.js +3 -3
  348. package/browser/error/QueryFailedError.js.map +1 -1
  349. package/browser/error/QueryRunnerAlreadyReleasedError.js +2 -2
  350. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  351. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +2 -2
  352. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  353. package/browser/error/RepositoryNotFoundError.d.ts +2 -2
  354. package/browser/error/RepositoryNotFoundError.js +5 -2
  355. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  356. package/browser/error/RepositoryNotTreeError.d.ts +2 -2
  357. package/browser/error/RepositoryNotTreeError.js +11 -8
  358. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  359. package/browser/error/ReturningStatementNotSupportedError.js +2 -2
  360. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  361. package/browser/error/SubjectRemovedAndUpdatedError.js +2 -2
  362. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  363. package/browser/error/SubjectWithoutIdentifierError.js +2 -2
  364. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  365. package/browser/error/TransactionAlreadyStartedError.js +2 -2
  366. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  367. package/browser/error/TransactionNotStartedError.js +2 -2
  368. package/browser/error/TransactionNotStartedError.js.map +1 -1
  369. package/browser/error/TreeRepositoryNotSupportedError.js +2 -2
  370. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  371. package/browser/error/UpdateValuesMissingError.js +2 -2
  372. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  373. package/browser/error/UsingJoinColumnIsNotAllowedError.js +2 -2
  374. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  375. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +2 -2
  376. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  377. package/browser/error/UsingJoinTableIsNotAllowedError.js +2 -2
  378. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  379. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +2 -2
  380. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  381. package/browser/find-options/FindOneOptions.d.ts +4 -0
  382. package/browser/find-options/FindOneOptions.js.map +1 -1
  383. package/browser/find-options/FindOperator.d.ts +26 -4
  384. package/browser/find-options/FindOperator.js +49 -50
  385. package/browser/find-options/FindOperator.js.map +1 -1
  386. package/browser/find-options/FindOperatorType.d.ts +1 -1
  387. package/browser/find-options/FindOperatorType.js.map +1 -1
  388. package/browser/find-options/FindOptionsUtils.d.ts +2 -2
  389. package/browser/find-options/FindOptionsUtils.js +5 -1
  390. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  391. package/browser/find-options/operator/Any.d.ts +1 -1
  392. package/browser/find-options/operator/Any.js.map +1 -1
  393. package/browser/find-options/operator/Between.d.ts +1 -1
  394. package/browser/find-options/operator/Between.js.map +1 -1
  395. package/browser/find-options/operator/ILike.d.ts +6 -0
  396. package/browser/find-options/operator/ILike.js +10 -0
  397. package/browser/find-options/operator/ILike.js.map +1 -0
  398. package/browser/find-options/operator/In.d.ts +1 -1
  399. package/browser/find-options/operator/In.js.map +1 -1
  400. package/browser/find-options/operator/Raw.d.ts +14 -2
  401. package/browser/find-options/operator/Raw.js +5 -6
  402. package/browser/find-options/operator/Raw.js.map +1 -1
  403. package/browser/index.d.ts +10 -11
  404. package/browser/index.js +9 -15
  405. package/browser/index.js.map +1 -1
  406. package/browser/logger/DebugLogger.d.ts +0 -1
  407. package/browser/logger/DebugLogger.js +9 -9
  408. package/browser/logger/DebugLogger.js.map +1 -1
  409. package/browser/logger/FileLogger.d.ts +3 -1
  410. package/browser/logger/FileLogger.js +9 -3
  411. package/browser/logger/FileLogger.js.map +1 -1
  412. package/browser/logger/Logger.d.ts +1 -1
  413. package/browser/logger/Logger.js.map +1 -1
  414. package/browser/logger/LoggerOptions.d.ts +9 -0
  415. package/browser/logger/LoggerOptions.js.map +1 -1
  416. package/browser/metadata/ColumnMetadata.js +29 -19
  417. package/browser/metadata/ColumnMetadata.js.map +1 -1
  418. package/browser/metadata/EmbeddedMetadata.js +2 -2
  419. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  420. package/browser/metadata/EntityMetadata.d.ts +1 -0
  421. package/browser/metadata/EntityMetadata.js +13 -5
  422. package/browser/metadata/EntityMetadata.js.map +1 -1
  423. package/browser/metadata/RelationMetadata.js +7 -7
  424. package/browser/metadata/RelationMetadata.js.map +1 -1
  425. package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
  426. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  427. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  428. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  429. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  430. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  431. package/browser/metadata-builder/EntityMetadataBuilder.js +21 -15
  432. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  433. package/browser/metadata-builder/EntityMetadataValidator.js +8 -5
  434. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  435. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +3 -2
  436. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  437. package/browser/migration/MigrationExecutor.js +132 -103
  438. package/browser/migration/MigrationExecutor.js.map +1 -1
  439. package/browser/naming-strategy/DefaultNamingStrategy.js +6 -6
  440. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  441. package/browser/persistence/EntityPersistExecutor.js +65 -47
  442. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  443. package/browser/persistence/Subject.js +4 -3
  444. package/browser/persistence/Subject.js.map +1 -1
  445. package/browser/persistence/SubjectDatabaseEntityLoader.js +9 -8
  446. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  447. package/browser/persistence/SubjectExecutor.js +263 -206
  448. package/browser/persistence/SubjectExecutor.js.map +1 -1
  449. package/browser/persistence/SubjectTopoligicalSorter.js +6 -6
  450. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  451. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +2 -2
  452. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  453. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  454. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  455. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +5 -4
  456. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  457. package/browser/persistence/tree/NestedSetSubjectExecutor.js +3 -3
  458. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
  459. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +93 -0
  460. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
  461. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
  462. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +22 -0
  463. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
  464. package/browser/platform/BrowserDisabledDriversDummy.d.ts +32 -2
  465. package/browser/platform/BrowserDisabledDriversDummy.js +52 -2
  466. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  467. package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
  468. package/browser/platform/BrowserFileLoggerDummy.js +58 -0
  469. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
  470. package/browser/platform/BrowserPlatformTools.d.ts +74 -0
  471. package/browser/platform/BrowserPlatformTools.js +157 -0
  472. package/browser/platform/BrowserPlatformTools.js.map +1 -0
  473. package/browser/platform/PlatformTools.d.ts +15 -21
  474. package/browser/platform/PlatformTools.js +142 -81
  475. package/browser/platform/PlatformTools.js.map +1 -1
  476. package/browser/query-builder/Alias.js.map +1 -1
  477. package/browser/query-builder/DeleteQueryBuilder.d.ts +2 -3
  478. package/browser/query-builder/DeleteQueryBuilder.js +12 -6
  479. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  480. package/browser/query-builder/InsertQueryBuilder.d.ts +2 -3
  481. package/browser/query-builder/InsertQueryBuilder.js +49 -16
  482. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  483. package/browser/query-builder/JoinAttribute.js +2 -2
  484. package/browser/query-builder/JoinAttribute.js.map +1 -1
  485. package/browser/query-builder/QueryBuilder.d.ts +18 -15
  486. package/browser/query-builder/QueryBuilder.js +205 -55
  487. package/browser/query-builder/QueryBuilder.js.map +1 -1
  488. package/browser/query-builder/QueryBuilderUtils.js +2 -2
  489. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  490. package/browser/query-builder/QueryExpressionMap.d.ts +4 -0
  491. package/browser/query-builder/QueryExpressionMap.js +4 -4
  492. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  493. package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
  494. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  495. package/browser/query-builder/RelationIdLoader.js +5 -5
  496. package/browser/query-builder/RelationLoader.js +3 -3
  497. package/browser/query-builder/RelationLoader.js.map +1 -1
  498. package/browser/query-builder/RelationQueryBuilder.js +14 -14
  499. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  500. package/browser/query-builder/RelationRemover.js +7 -7
  501. package/browser/query-builder/RelationRemover.js.map +1 -1
  502. package/browser/query-builder/RelationUpdater.js +3 -3
  503. package/browser/query-builder/ReturningResultsEntityUpdator.js +30 -31
  504. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  505. package/browser/query-builder/SelectQueryBuilder.d.ts +9 -3
  506. package/browser/query-builder/SelectQueryBuilder.js +116 -68
  507. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  508. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  509. package/browser/query-builder/SoftDeleteQueryBuilder.js +6 -6
  510. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  511. package/browser/query-builder/UpdateQueryBuilder.js +13 -7
  512. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  513. package/browser/query-builder/relation-count/RelationCountAttribute.js +3 -3
  514. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  515. package/browser/query-builder/relation-count/RelationCountLoader.js +5 -5
  516. package/browser/query-builder/relation-id/RelationIdAttribute.js +2 -2
  517. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  518. package/browser/query-builder/relation-id/RelationIdLoader.js +6 -6
  519. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  520. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +4 -4
  521. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  522. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +9 -6
  523. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  524. package/browser/query-runner/BaseQueryRunner.d.ts +2 -5
  525. package/browser/query-runner/BaseQueryRunner.js +106 -56
  526. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  527. package/browser/query-runner/QueryRunner.d.ts +2 -1
  528. package/browser/query-runner/QueryRunner.js.map +1 -1
  529. package/browser/repository/AbstractRepository.js.map +1 -1
  530. package/browser/repository/BaseEntity.js +5 -5
  531. package/browser/repository/BaseEntity.js.map +1 -1
  532. package/browser/repository/MongoRepository.js +2 -2
  533. package/browser/repository/MongoRepository.js.map +1 -1
  534. package/browser/repository/Repository.js +3 -3
  535. package/browser/repository/Repository.js.map +1 -1
  536. package/browser/repository/TreeRepository.js +6 -6
  537. package/browser/repository/TreeRepository.js.map +1 -1
  538. package/browser/schema-builder/MongoSchemaBuilder.js +4 -4
  539. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  540. package/browser/schema-builder/RdbmsSchemaBuilder.js +924 -368
  541. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  542. package/browser/schema-builder/options/TableIndexOptions.d.ts +1 -1
  543. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  544. package/browser/schema-builder/table/TableCheck.js +2 -2
  545. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  546. package/browser/schema-builder/table/TableForeignKey.js +3 -3
  547. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  548. package/browser/schema-builder/table/TableIndex.js +2 -2
  549. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  550. package/browser/schema-builder/table/TableUnique.js +2 -2
  551. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  552. package/browser/schema-builder/view/View.d.ts +1 -2
  553. package/browser/schema-builder/view/View.js.map +1 -1
  554. package/browser/subscriber/Broadcaster.d.ts +24 -0
  555. package/browser/subscriber/Broadcaster.js +120 -0
  556. package/browser/subscriber/Broadcaster.js.map +1 -1
  557. package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
  558. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  559. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  560. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  561. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  562. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  563. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  564. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  565. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  566. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  567. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  568. package/browser/util/ApplyValueTransformers.js.map +1 -1
  569. package/browser/util/DateUtils.js +3 -9
  570. package/browser/util/DateUtils.js.map +1 -1
  571. package/browser/util/DirectoryExportedClassesLoader.js +6 -5
  572. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  573. package/browser/util/ObjectUtils.js +4 -4
  574. package/browser/util/ObjectUtils.js.map +1 -1
  575. package/browser/util/OrmUtils.js +5 -8
  576. package/browser/util/OrmUtils.js.map +1 -1
  577. package/cache/DbQueryResultCache.js +1 -1
  578. package/cache/DbQueryResultCache.js.map +1 -1
  579. package/cache/RedisQueryResultCache.js +6 -1
  580. package/cache/RedisQueryResultCache.js.map +1 -1
  581. package/commands/CacheClearCommand.js +4 -4
  582. package/commands/CacheClearCommand.js.map +1 -1
  583. package/commands/CommandUtils.d.ts +1 -1
  584. package/commands/CommandUtils.js +2 -2
  585. package/commands/CommandUtils.js.map +1 -1
  586. package/commands/EntityCreateCommand.js +9 -6
  587. package/commands/EntityCreateCommand.js.map +1 -1
  588. package/commands/InitCommand.js +15 -5
  589. package/commands/InitCommand.js.map +1 -1
  590. package/commands/MigrationCreateCommand.js +8 -5
  591. package/commands/MigrationCreateCommand.js.map +1 -1
  592. package/commands/MigrationGenerateCommand.d.ts +7 -1
  593. package/commands/MigrationGenerateCommand.js +53 -32
  594. package/commands/MigrationGenerateCommand.js.map +1 -1
  595. package/commands/MigrationRevertCommand.js +2 -2
  596. package/commands/MigrationRevertCommand.js.map +1 -1
  597. package/commands/MigrationRunCommand.js +2 -2
  598. package/commands/MigrationRunCommand.js.map +1 -1
  599. package/commands/MigrationShowCommand.js +2 -2
  600. package/commands/MigrationShowCommand.js.map +1 -1
  601. package/commands/QueryCommand.d.ts +2 -0
  602. package/commands/QueryCommand.js +16 -7
  603. package/commands/QueryCommand.js.map +1 -1
  604. package/commands/SchemaDropCommand.js +3 -3
  605. package/commands/SchemaDropCommand.js.map +1 -1
  606. package/commands/SchemaLogCommand.js +6 -6
  607. package/commands/SchemaLogCommand.js.map +1 -1
  608. package/commands/SchemaSyncCommand.js +3 -3
  609. package/commands/SchemaSyncCommand.js.map +1 -1
  610. package/commands/SubscriberCreateCommand.js +8 -5
  611. package/commands/SubscriberCreateCommand.js.map +1 -1
  612. package/commands/VersionCommand.js +2 -2
  613. package/commands/VersionCommand.js.map +1 -1
  614. package/common/DeepPartial.d.ts +1 -1
  615. package/common/DeepPartial.js.map +1 -1
  616. package/common/EntityTarget.d.ts +9 -0
  617. package/common/EntityTarget.js +4 -0
  618. package/common/EntityTarget.js.map +1 -0
  619. package/connection/Connection.d.ts +11 -10
  620. package/connection/Connection.js +45 -22
  621. package/connection/Connection.js.map +1 -1
  622. package/connection/ConnectionOptions.d.ts +2 -1
  623. package/connection/ConnectionOptions.js.map +1 -1
  624. package/connection/ConnectionOptionsReader.js +39 -34
  625. package/connection/ConnectionOptionsReader.js.map +1 -1
  626. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  627. package/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  628. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  629. package/connection/options-reader/ConnectionOptionsXmlReader.js +2 -2
  630. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  631. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  632. package/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  633. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  634. package/decorator/Check.d.ts +2 -2
  635. package/decorator/Check.js.map +1 -1
  636. package/decorator/EntityRepository.d.ts +1 -1
  637. package/decorator/EntityRepository.js.map +1 -1
  638. package/decorator/Exclusion.d.ts +2 -2
  639. package/decorator/Exclusion.js.map +1 -1
  640. package/decorator/Generated.d.ts +1 -1
  641. package/decorator/Generated.js.map +1 -1
  642. package/decorator/Index.d.ts +7 -7
  643. package/decorator/Index.js.map +1 -1
  644. package/decorator/Unique.d.ts +4 -4
  645. package/decorator/Unique.js +12 -1
  646. package/decorator/Unique.js.map +1 -1
  647. package/decorator/columns/Column.d.ts +12 -12
  648. package/decorator/columns/Column.js.map +1 -1
  649. package/decorator/columns/CreateDateColumn.d.ts +1 -1
  650. package/decorator/columns/CreateDateColumn.js.map +1 -1
  651. package/decorator/columns/DeleteDateColumn.d.ts +1 -1
  652. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  653. package/decorator/columns/ObjectIdColumn.d.ts +1 -1
  654. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  655. package/decorator/columns/PrimaryColumn.d.ts +2 -2
  656. package/decorator/columns/PrimaryColumn.js.map +1 -1
  657. package/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  658. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  659. package/decorator/columns/UpdateDateColumn.d.ts +1 -1
  660. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  661. package/decorator/columns/VersionColumn.d.ts +1 -1
  662. package/decorator/columns/VersionColumn.js.map +1 -1
  663. package/decorator/columns/ViewColumn.d.ts +1 -1
  664. package/decorator/columns/ViewColumn.js.map +1 -1
  665. package/decorator/entity/ChildEntity.d.ts +1 -1
  666. package/decorator/entity/ChildEntity.js +1 -1
  667. package/decorator/entity/ChildEntity.js.map +1 -1
  668. package/decorator/entity/TableInheritance.d.ts +1 -1
  669. package/decorator/entity/TableInheritance.js.map +1 -1
  670. package/decorator/entity-view/ViewEntity.d.ts +2 -2
  671. package/decorator/entity-view/ViewEntity.js.map +1 -1
  672. package/decorator/listeners/AfterInsert.d.ts +1 -1
  673. package/decorator/listeners/AfterInsert.js.map +1 -1
  674. package/decorator/listeners/AfterLoad.d.ts +1 -1
  675. package/decorator/listeners/AfterLoad.js.map +1 -1
  676. package/decorator/listeners/AfterRemove.d.ts +1 -1
  677. package/decorator/listeners/AfterRemove.js.map +1 -1
  678. package/decorator/listeners/AfterUpdate.d.ts +1 -1
  679. package/decorator/listeners/AfterUpdate.js.map +1 -1
  680. package/decorator/listeners/BeforeInsert.d.ts +1 -1
  681. package/decorator/listeners/BeforeInsert.js.map +1 -1
  682. package/decorator/listeners/BeforeRemove.d.ts +1 -1
  683. package/decorator/listeners/BeforeRemove.js.map +1 -1
  684. package/decorator/listeners/BeforeUpdate.d.ts +1 -1
  685. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  686. package/decorator/listeners/EventSubscriber.d.ts +1 -1
  687. package/decorator/listeners/EventSubscriber.js.map +1 -1
  688. package/decorator/options/ColumnOptions.js.map +1 -1
  689. package/decorator/options/TransactionOptions.js.map +1 -1
  690. package/decorator/relations/JoinColumn.d.ts +3 -3
  691. package/decorator/relations/JoinColumn.js.map +1 -1
  692. package/decorator/relations/JoinTable.d.ts +3 -3
  693. package/decorator/relations/JoinTable.js.map +1 -1
  694. package/decorator/relations/ManyToMany.d.ts +2 -2
  695. package/decorator/relations/ManyToMany.js.map +1 -1
  696. package/decorator/relations/ManyToOne.d.ts +2 -2
  697. package/decorator/relations/ManyToOne.js.map +1 -1
  698. package/decorator/relations/OneToMany.d.ts +3 -3
  699. package/decorator/relations/OneToMany.js +2 -2
  700. package/decorator/relations/OneToMany.js.map +1 -1
  701. package/decorator/relations/OneToOne.d.ts +2 -2
  702. package/decorator/relations/OneToOne.js.map +1 -1
  703. package/decorator/relations/RelationCount.d.ts +1 -1
  704. package/decorator/relations/RelationCount.js.map +1 -1
  705. package/decorator/relations/RelationId.d.ts +1 -1
  706. package/decorator/relations/RelationId.js.map +1 -1
  707. package/decorator/transaction/TransactionManager.d.ts +1 -1
  708. package/decorator/transaction/TransactionManager.js.map +1 -1
  709. package/decorator/tree/Tree.d.ts +1 -1
  710. package/decorator/tree/Tree.js.map +1 -1
  711. package/decorator/tree/TreeChildren.d.ts +1 -1
  712. package/decorator/tree/TreeChildren.js.map +1 -1
  713. package/decorator/tree/TreeLevelColumn.d.ts +1 -1
  714. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  715. package/decorator/tree/TreeParent.d.ts +1 -1
  716. package/decorator/tree/TreeParent.js.map +1 -1
  717. package/driver/Driver.d.ts +7 -2
  718. package/driver/Driver.js.map +1 -1
  719. package/driver/DriverFactory.js +5 -2
  720. package/driver/DriverFactory.js.map +1 -1
  721. package/driver/DriverUtils.d.ts +2 -2
  722. package/driver/DriverUtils.js +25 -13
  723. package/driver/DriverUtils.js.map +1 -1
  724. package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  725. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -1
  726. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  727. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +3 -0
  728. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  729. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  730. package/driver/aurora-data-api/AuroraDataApiDriver.js +7 -2
  731. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  732. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +4 -0
  733. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +159 -25
  734. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  735. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +6 -0
  736. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  737. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  738. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +101 -0
  739. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  740. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +4 -3
  741. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -7
  742. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  743. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  744. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
  745. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  746. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  747. package/driver/better-sqlite3/BetterSqlite3Driver.js +127 -0
  748. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  749. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  750. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +115 -0
  751. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  752. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  753. package/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  754. package/driver/cockroachdb/CockroachDriver.js +9 -4
  755. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  756. package/driver/cockroachdb/CockroachQueryRunner.d.ts +6 -1
  757. package/driver/cockroachdb/CockroachQueryRunner.js +392 -94
  758. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  759. package/driver/cordova/CordovaDriver.d.ts +2 -1
  760. package/driver/cordova/CordovaDriver.js +0 -1
  761. package/driver/cordova/CordovaDriver.js.map +1 -1
  762. package/driver/expo/ExpoDriver.d.ts +2 -1
  763. package/driver/expo/ExpoDriver.js +0 -1
  764. package/driver/expo/ExpoDriver.js.map +1 -1
  765. package/driver/expo/ExpoQueryRunner.js +72 -14
  766. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  767. package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  768. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  769. package/driver/mongodb/MongoDriver.d.ts +13 -4
  770. package/driver/mongodb/MongoDriver.js +21 -15
  771. package/driver/mongodb/MongoDriver.js.map +1 -1
  772. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  773. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  774. package/driver/mongodb/typings.js.map +1 -1
  775. package/driver/mysql/MysqlDriver.d.ts +7 -2
  776. package/driver/mysql/MysqlDriver.js +14 -7
  777. package/driver/mysql/MysqlDriver.js.map +1 -1
  778. package/driver/mysql/MysqlQueryRunner.d.ts +10 -1
  779. package/driver/mysql/MysqlQueryRunner.js +227 -61
  780. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  781. package/driver/nativescript/NativescriptDriver.d.ts +2 -1
  782. package/driver/nativescript/NativescriptDriver.js +0 -1
  783. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  784. package/driver/oracle/OracleDriver.d.ts +6 -1
  785. package/driver/oracle/OracleDriver.js +8 -3
  786. package/driver/oracle/OracleDriver.js.map +1 -1
  787. package/driver/oracle/OracleQueryRunner.d.ts +2 -1
  788. package/driver/oracle/OracleQueryRunner.js +139 -26
  789. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  790. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  791. package/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  792. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  793. package/driver/postgres/PostgresDriver.d.ts +18 -55
  794. package/driver/postgres/PostgresDriver.js +181 -191
  795. package/driver/postgres/PostgresDriver.js.map +1 -1
  796. package/driver/postgres/PostgresQueryRunner.d.ts +10 -1
  797. package/driver/postgres/PostgresQueryRunner.js +389 -81
  798. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  799. package/driver/react-native/ReactNativeDriver.d.ts +2 -1
  800. package/driver/react-native/ReactNativeDriver.js +0 -1
  801. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  802. package/driver/sap/SapDriver.d.ts +6 -1
  803. package/driver/sap/SapDriver.js +6 -1
  804. package/driver/sap/SapDriver.js.map +1 -1
  805. package/driver/sap/SapQueryRunner.d.ts +2 -1
  806. package/driver/sap/SapQueryRunner.js +143 -27
  807. package/driver/sap/SapQueryRunner.js.map +1 -1
  808. package/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  809. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  810. package/driver/sqlite/SqliteDriver.d.ts +2 -1
  811. package/driver/sqlite/SqliteDriver.js +25 -11
  812. package/driver/sqlite/SqliteDriver.js.map +1 -1
  813. package/driver/sqlite/SqliteQueryRunner.js +33 -14
  814. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  815. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  816. package/driver/sqlite-abstract/AbstractSqliteDriver.js +31 -4
  817. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  818. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +72 -10
  819. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  820. package/driver/sqljs/SqljsDriver.d.ts +2 -1
  821. package/driver/sqljs/SqljsDriver.js +0 -1
  822. package/driver/sqljs/SqljsDriver.js.map +1 -1
  823. package/driver/sqljs/SqljsQueryRunner.js +1 -0
  824. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  825. package/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  826. package/driver/sqlserver/SqlServerDriver.js +6 -1
  827. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  828. package/driver/sqlserver/SqlServerQueryRunner.d.ts +2 -1
  829. package/driver/sqlserver/SqlServerQueryRunner.js +224 -86
  830. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  831. package/driver/types/ColumnTypes.d.ts +1 -1
  832. package/driver/types/ColumnTypes.js.map +1 -1
  833. package/driver/types/DatabaseType.d.ts +1 -1
  834. package/driver/types/DatabaseType.js.map +1 -1
  835. package/driver/types/ReplicationMode.d.ts +1 -0
  836. package/driver/types/ReplicationMode.js +4 -0
  837. package/driver/types/ReplicationMode.js.map +1 -0
  838. package/entity-manager/EntityManager.d.ts +41 -256
  839. package/entity-manager/EntityManager.js +3 -13
  840. package/entity-manager/EntityManager.js.map +1 -1
  841. package/entity-manager/MongoEntityManager.d.ts +46 -46
  842. package/entity-manager/MongoEntityManager.js +14 -3
  843. package/entity-manager/MongoEntityManager.js.map +1 -1
  844. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  845. package/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  846. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  847. package/entity-schema/EntitySchemaTransformer.js +22 -7
  848. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  849. package/error/EntityMetadataNotFoundError.d.ts +2 -2
  850. package/error/EntityMetadataNotFoundError.js +3 -0
  851. package/error/EntityMetadataNotFoundError.js.map +1 -1
  852. package/error/EntityNotFoundError.d.ts +2 -3
  853. package/error/EntityNotFoundError.js +3 -0
  854. package/error/EntityNotFoundError.js.map +1 -1
  855. package/error/FindRelationsNotFoundError.js +2 -2
  856. package/error/FindRelationsNotFoundError.js.map +1 -1
  857. package/error/MissingDriverError.js +1 -1
  858. package/error/MissingDriverError.js.map +1 -1
  859. package/error/QueryFailedError.js +1 -1
  860. package/error/QueryFailedError.js.map +1 -1
  861. package/error/RepositoryNotFoundError.d.ts +2 -2
  862. package/error/RepositoryNotFoundError.js +3 -0
  863. package/error/RepositoryNotFoundError.js.map +1 -1
  864. package/error/RepositoryNotTreeError.d.ts +2 -2
  865. package/error/RepositoryNotTreeError.js +9 -6
  866. package/error/RepositoryNotTreeError.js.map +1 -1
  867. package/find-options/FindOneOptions.d.ts +4 -0
  868. package/find-options/FindOneOptions.js.map +1 -1
  869. package/find-options/FindOperator.d.ts +26 -4
  870. package/find-options/FindOperator.js +49 -50
  871. package/find-options/FindOperator.js.map +1 -1
  872. package/find-options/FindOperatorType.d.ts +1 -1
  873. package/find-options/FindOperatorType.js.map +1 -1
  874. package/find-options/FindOptionsUtils.d.ts +2 -2
  875. package/find-options/FindOptionsUtils.js +5 -1
  876. package/find-options/FindOptionsUtils.js.map +1 -1
  877. package/find-options/operator/Any.d.ts +1 -1
  878. package/find-options/operator/Any.js.map +1 -1
  879. package/find-options/operator/Between.d.ts +1 -1
  880. package/find-options/operator/Between.js.map +1 -1
  881. package/find-options/operator/ILike.d.ts +6 -0
  882. package/find-options/operator/ILike.js +13 -0
  883. package/find-options/operator/ILike.js.map +1 -0
  884. package/find-options/operator/In.d.ts +1 -1
  885. package/find-options/operator/In.js.map +1 -1
  886. package/find-options/operator/Raw.d.ts +14 -2
  887. package/find-options/operator/Raw.js +5 -6
  888. package/find-options/operator/Raw.js.map +1 -1
  889. package/index.d.ts +10 -11
  890. package/index.js +2 -14
  891. package/index.js.map +1 -1
  892. package/logger/DebugLogger.d.ts +0 -1
  893. package/logger/DebugLogger.js +10 -9
  894. package/logger/DebugLogger.js.map +1 -1
  895. package/logger/FileLogger.d.ts +3 -1
  896. package/logger/FileLogger.js +10 -3
  897. package/logger/FileLogger.js.map +1 -1
  898. package/logger/Logger.d.ts +1 -1
  899. package/logger/Logger.js.map +1 -1
  900. package/logger/LoggerOptions.d.ts +9 -0
  901. package/logger/LoggerOptions.js.map +1 -1
  902. package/metadata/ColumnMetadata.js +24 -14
  903. package/metadata/ColumnMetadata.js.map +1 -1
  904. package/metadata/EntityMetadata.d.ts +1 -0
  905. package/metadata/EntityMetadata.js +11 -3
  906. package/metadata/EntityMetadata.js.map +1 -1
  907. package/metadata/RelationMetadata.js +2 -2
  908. package/metadata/RelationMetadata.js.map +1 -1
  909. package/metadata/types/EventListenerTypes.d.ts +7 -7
  910. package/metadata/types/EventListenerTypes.js.map +1 -1
  911. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  912. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  913. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  914. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  915. package/metadata-builder/EntityMetadataBuilder.js +15 -9
  916. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  917. package/metadata-builder/EntityMetadataValidator.js +8 -5
  918. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  919. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
  920. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  921. package/migration/MigrationExecutor.js +103 -74
  922. package/migration/MigrationExecutor.js.map +1 -1
  923. package/package.json +72 -51
  924. package/persistence/EntityPersistExecutor.js +61 -43
  925. package/persistence/EntityPersistExecutor.js.map +1 -1
  926. package/persistence/Subject.js +2 -1
  927. package/persistence/Subject.js.map +1 -1
  928. package/persistence/SubjectDatabaseEntityLoader.js +2 -1
  929. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  930. package/persistence/SubjectExecutor.js +244 -187
  931. package/persistence/SubjectExecutor.js.map +1 -1
  932. package/persistence/tree/MaterializedPathSubjectExecutor.js +2 -1
  933. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  934. package/platform/PlatformTools.d.ts +7 -1
  935. package/platform/PlatformTools.js +42 -41
  936. package/platform/PlatformTools.js.map +1 -1
  937. package/query-builder/Alias.js.map +1 -1
  938. package/query-builder/DeleteQueryBuilder.d.ts +2 -3
  939. package/query-builder/DeleteQueryBuilder.js +7 -1
  940. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  941. package/query-builder/InsertQueryBuilder.d.ts +2 -3
  942. package/query-builder/InsertQueryBuilder.js +44 -11
  943. package/query-builder/InsertQueryBuilder.js.map +1 -1
  944. package/query-builder/QueryBuilder.d.ts +18 -15
  945. package/query-builder/QueryBuilder.js +198 -48
  946. package/query-builder/QueryBuilder.js.map +1 -1
  947. package/query-builder/QueryExpressionMap.d.ts +4 -0
  948. package/query-builder/QueryExpressionMap.js.map +1 -1
  949. package/query-builder/QueryPartialEntity.d.ts +1 -1
  950. package/query-builder/QueryPartialEntity.js.map +1 -1
  951. package/query-builder/ReturningResultsEntityUpdator.js +23 -24
  952. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  953. package/query-builder/SelectQueryBuilder.d.ts +8 -3
  954. package/query-builder/SelectQueryBuilder.js +80 -32
  955. package/query-builder/SelectQueryBuilder.js.map +1 -1
  956. package/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  957. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  958. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  959. package/query-builder/UpdateQueryBuilder.js +8 -2
  960. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  961. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
  962. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  963. package/query-runner/BaseQueryRunner.d.ts +2 -5
  964. package/query-runner/BaseQueryRunner.js +90 -40
  965. package/query-runner/BaseQueryRunner.js.map +1 -1
  966. package/query-runner/QueryRunner.d.ts +1 -1
  967. package/query-runner/QueryRunner.js.map +1 -1
  968. package/repository/AbstractRepository.js.map +1 -1
  969. package/repository/BaseEntity.js +1 -1
  970. package/repository/BaseEntity.js.map +1 -1
  971. package/repository/MongoRepository.js.map +1 -1
  972. package/repository/Repository.js +1 -1
  973. package/repository/Repository.js.map +1 -1
  974. package/repository/TreeRepository.js +2 -2
  975. package/repository/TreeRepository.js.map +1 -1
  976. package/schema-builder/MongoSchemaBuilder.js +1 -1
  977. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  978. package/schema-builder/RdbmsSchemaBuilder.js +875 -319
  979. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  980. package/schema-builder/options/TableIndexOptions.d.ts +1 -1
  981. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  982. package/schema-builder/view/View.d.ts +1 -2
  983. package/schema-builder/view/View.js.map +1 -1
  984. package/subscriber/Broadcaster.d.ts +24 -0
  985. package/subscriber/Broadcaster.js +120 -0
  986. package/subscriber/Broadcaster.js.map +1 -1
  987. package/subscriber/EntitySubscriberInterface.d.ts +27 -0
  988. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  989. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  990. package/subscriber/event/TransactionCommitEvent.js +4 -0
  991. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  992. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  993. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  994. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  995. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  996. package/subscriber/event/TransactionStartEvent.js +4 -0
  997. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  998. package/typeorm-class-transformer-shim.js +16 -2
  999. package/typeorm-model-shim.js +146 -111
  1000. package/util/ApplyValueTransformers.js.map +1 -1
  1001. package/util/DateUtils.js +1 -7
  1002. package/util/DateUtils.js.map +1 -1
  1003. package/util/DirectoryExportedClassesLoader.js +7 -5
  1004. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1005. package/util/ObjectUtils.js +2 -2
  1006. package/util/ObjectUtils.js.map +1 -1
  1007. package/util/OrmUtils.js +3 -6
  1008. package/util/OrmUtils.js.map +1 -1
  1009. package/browser/util/PromiseUtils.d.ts +0 -24
  1010. package/browser/util/PromiseUtils.js +0 -62
  1011. package/browser/util/PromiseUtils.js.map +0 -1
  1012. package/util/PromiseUtils.d.ts +0 -24
  1013. package/util/PromiseUtils.js +0 -64
  1014. package/util/PromiseUtils.js.map +0 -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();\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) || {};\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 await Promise.all(entities.map(async (entity, entityIndex) => {\n const entityId = metadata.getEntityIdMap(entity)!;\n\n // to select just inserted entity 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(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();\n\n this.queryRunner.manager.merge(metadata.target as any, generatedMaps[entityIndex], returningResult);\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":"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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":".."}
@@ -6,7 +6,7 @@ import { SelectQuery } from "./SelectQuery";
6
6
  import { EntityMetadata } from "../metadata/EntityMetadata";
7
7
  import { OrderByCondition } from "../find-options/OrderByCondition";
8
8
  import { QueryExpressionMap } from "./QueryExpressionMap";
9
- import { ObjectType } from "../common/ObjectType";
9
+ import { EntityTarget } from "../common/EntityTarget";
10
10
  import { QueryRunner } from "../query-runner/QueryRunner";
11
11
  import { WhereExpression } from "./WhereExpression";
12
12
  import { Brackets } from "./Brackets";
@@ -74,7 +74,7 @@ export declare class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> imp
74
74
  * Also sets a main string alias of the selection data.
75
75
  * Removes all previously set from-s.
76
76
  */
77
- from<T>(entityTarget: ObjectType<T> | string, aliasName: string): SelectQueryBuilder<T>;
77
+ from<T>(entityTarget: EntityTarget<T>, aliasName: string): SelectQueryBuilder<T>;
78
78
  /**
79
79
  * Specifies FROM which entity's table select/update/delete will be executed.
80
80
  * Also sets a main string alias of the selection data.
@@ -84,7 +84,7 @@ export declare class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> imp
84
84
  * Specifies FROM which entity's table select/update/delete will be executed.
85
85
  * Also sets a main string alias of the selection data.
86
86
  */
87
- addFrom<T>(entityTarget: ObjectType<T> | string, aliasName: string): SelectQueryBuilder<T>;
87
+ addFrom<T>(entityTarget: EntityTarget<T>, aliasName: string): SelectQueryBuilder<T>;
88
88
  /**
89
89
  * INNER JOINs (without selection) given subquery.
90
90
  * You also need to specify an alias of the joined data.
@@ -513,6 +513,10 @@ export declare class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> imp
513
513
  * Gets single entity returned by execution of generated query builder sql.
514
514
  */
515
515
  getOne(): Promise<Entity | undefined>;
516
+ /**
517
+ * Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error.
518
+ */
519
+ getOneOrFail(): Promise<Entity>;
516
520
  /**
517
521
  * Gets entities returned by execution of generated query builder sql.
518
522
  */
@@ -583,6 +587,7 @@ export declare class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> imp
583
587
  protected createHavingExpression(): string;
584
588
  protected buildEscapedEntityColumnSelects(aliasName: string, metadata: EntityMetadata): SelectQuery[];
585
589
  protected findEntityColumnSelects(aliasName: string, metadata: EntityMetadata): SelectQuery[];
590
+ private computeCountExpression;
586
591
  protected executeCountQuery(queryRunner: QueryRunner): Promise<number>;
587
592
  /**
588
593
  * Executes sql generated by query builder and returns object with raw results and entities created from them.
@@ -26,6 +26,8 @@ var BroadcasterResult_1 = require("../subscriber/BroadcasterResult");
26
26
  var ObjectUtils_1 = require("../util/ObjectUtils");
27
27
  var DriverUtils_1 = require("../driver/DriverUtils");
28
28
  var AuroraDataApiDriver_1 = require("../driver/aurora-data-api/AuroraDataApiDriver");
29
+ var CockroachDriver_1 = require("../driver/cockroachdb/CockroachDriver");
30
+ var EntityNotFoundError_1 = require("../error/EntityNotFoundError");
29
31
  /**
30
32
  * Allows to build complex sql queries in a fashion way and execute those queries.
31
33
  */
@@ -41,7 +43,8 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
41
43
  * Gets generated sql query without parameters being replaced.
42
44
  */
43
45
  SelectQueryBuilder.prototype.getQuery = function () {
44
- var sql = this.createSelectExpression();
46
+ var sql = this.createComment();
47
+ sql += this.createSelectExpression();
45
48
  sql += this.createJoinExpression();
46
49
  sql += this.createWhereExpression();
47
50
  sql += this.createGroupByExpression();
@@ -421,8 +424,8 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
421
424
  * calling this function will override previously set ORDER BY conditions.
422
425
  */
423
426
  SelectQueryBuilder.prototype.orderBy = function (sort, order, nulls) {
424
- if (order === void 0) { order = "ASC"; }
425
427
  var _a, _b;
428
+ if (order === void 0) { order = "ASC"; }
426
429
  if (order !== undefined && order !== "ASC" && order !== "DESC")
427
430
  throw new Error("SelectQueryBuilder.addOrderBy \"order\" can accept only \"ASC\" and \"DESC\" values.");
428
431
  if (nulls !== undefined && nulls !== "NULLS FIRST" && nulls !== "NULLS LAST")
@@ -677,6 +680,25 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
677
680
  });
678
681
  });
679
682
  };
683
+ /**
684
+ * Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error.
685
+ */
686
+ SelectQueryBuilder.prototype.getOneOrFail = function () {
687
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
688
+ var entity;
689
+ return tslib_1.__generator(this, function (_a) {
690
+ switch (_a.label) {
691
+ case 0: return [4 /*yield*/, this.getOne()];
692
+ case 1:
693
+ entity = _a.sent();
694
+ if (!entity) {
695
+ throw new EntityNotFoundError_1.EntityNotFoundError(this.expressionMap.mainAlias.target, this);
696
+ }
697
+ return [2 /*return*/, entity];
698
+ }
699
+ });
700
+ });
701
+ };
680
702
  /**
681
703
  * Gets entities returned by execution of generated query builder sql.
682
704
  */
@@ -1325,37 +1347,61 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1325
1347
  return metadata.columns.some(function (column) { return select.selection === aliasName + "." + column.propertyPath; });
1326
1348
  });
1327
1349
  };
1350
+ SelectQueryBuilder.prototype.computeCountExpression = function () {
1351
+ var _this = this;
1352
+ var mainAlias = this.expressionMap.mainAlias.name; // todo: will this work with "fromTableName"?
1353
+ var metadata = this.expressionMap.mainAlias.metadata;
1354
+ var primaryColumns = metadata.primaryColumns;
1355
+ var distinctAlias = this.escape(mainAlias);
1356
+ // If we aren't doing anything that will create a join, we can use a simpler `COUNT` instead
1357
+ // so we prevent poor query patterns in the most likely cases
1358
+ if (this.expressionMap.joinAttributes.length === 0 &&
1359
+ this.expressionMap.relationIdAttributes.length === 0 &&
1360
+ this.expressionMap.relationCountAttributes.length === 0) {
1361
+ return "COUNT(1)";
1362
+ }
1363
+ // For everything else, we'll need to do some hackery to get the correct count values.
1364
+ if (this.connection.driver instanceof CockroachDriver_1.CockroachDriver || this.connection.driver instanceof PostgresDriver_1.PostgresDriver) {
1365
+ // Postgres and CockroachDB can pass multiple parameters to the `DISTINCT` function
1366
+ // https://www.postgresql.org/docs/9.5/sql-select.html#SQL-DISTINCT
1367
+ return "COUNT(DISTINCT(" +
1368
+ primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(", ") +
1369
+ "))";
1370
+ }
1371
+ if (this.connection.driver instanceof MysqlDriver_1.MysqlDriver) {
1372
+ // MySQL & MariaDB can pass multiple parameters to the `DISTINCT` language construct
1373
+ // https://mariadb.com/kb/en/count-distinct/
1374
+ return "COUNT(DISTINCT " +
1375
+ primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(", ") +
1376
+ ")";
1377
+ }
1378
+ if (this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver) {
1379
+ // SQL Server has gotta be different from everyone else. They don't support
1380
+ // distinct counting multiple columns & they don't have the same operator
1381
+ // characteristic for concatenating, so we gotta use the `CONCAT` function.
1382
+ // However, If it's exactly 1 column we can omit the `CONCAT` for better performance.
1383
+ var columnsExpression = primaryColumns.map(function (primaryColumn) { return distinctAlias + "." + _this.escape(primaryColumn.databaseName); }).join(", '|;|', ");
1384
+ if (primaryColumns.length === 1) {
1385
+ return "COUNT(DISTINCT(" + columnsExpression + "))";
1386
+ }
1387
+ return "COUNT(DISTINCT(CONCAT(" + columnsExpression + ")))";
1388
+ }
1389
+ // If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.
1390
+ // Per the SQL spec, this is the canonical string concatenation mechanism which is most
1391
+ // likely to work across servers implementing the SQL standard.
1392
+ // Please note, if there is only one primary column that the concatenation does not occur in this
1393
+ // query and the query is a standard `COUNT DISTINCT` in that case.
1394
+ return "COUNT(DISTINCT(" +
1395
+ primaryColumns.map(function (c) { return distinctAlias + "." + _this.escape(c.databaseName); }).join(" || '|;|' || ") +
1396
+ "))";
1397
+ };
1328
1398
  SelectQueryBuilder.prototype.executeCountQuery = function (queryRunner) {
1329
1399
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1330
- var mainAlias, metadata, distinctAlias, countSql, results;
1331
- var _this = this;
1400
+ var countSql, results;
1332
1401
  return tslib_1.__generator(this, function (_a) {
1333
1402
  switch (_a.label) {
1334
1403
  case 0:
1335
- mainAlias = this.expressionMap.mainAlias.name;
1336
- metadata = this.expressionMap.mainAlias.metadata;
1337
- distinctAlias = this.escape(mainAlias);
1338
- countSql = "";
1339
- if (metadata.hasMultiplePrimaryKeys) {
1340
- if (this.connection.driver instanceof AbstractSqliteDriver_1.AbstractSqliteDriver) {
1341
- countSql = "COUNT(DISTINCT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1342
- var propertyName = _this.escape(primaryColumn.databaseName);
1343
- return distinctAlias + "." + propertyName;
1344
- }).join(" || ") + ")) as \"cnt\"";
1345
- }
1346
- else {
1347
- countSql = "COUNT(DISTINCT(CONCAT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1348
- var propertyName = _this.escape(primaryColumn.databaseName);
1349
- return distinctAlias + "." + propertyName;
1350
- }).join(", ") + "))) as \"cnt\"";
1351
- }
1352
- }
1353
- else {
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
- }
1404
+ countSql = this.computeCountExpression();
1359
1405
  return [4 /*yield*/, this.clone()
1360
1406
  .orderBy()
1361
1407
  .groupBy()
@@ -1363,7 +1409,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1363
1409
  .limit(undefined)
1364
1410
  .skip(undefined)
1365
1411
  .take(undefined)
1366
- .select(countSql)
1412
+ .select(countSql, "cnt")
1367
1413
  .setOption("disable-global-order")
1368
1414
  .loadRawResults(queryRunner)];
1369
1415
  case 1:
@@ -1380,7 +1426,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1380
1426
  */
1381
1427
  SelectQueryBuilder.prototype.executeEntitiesAndRawResults = function (queryRunner) {
1382
1428
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1383
- var metadata, relationIdLoader, relationCountLoader, relationIdMetadataTransformer, relationCountMetadataTransformer, rawResults, entities, _a, selects, orderBys_1, metadata_1, mainAliasName_1, querySelects, condition, parameters_1, ids, areAllNumbers, rawRelationIdResults, rawRelationCountResults, transformer, broadcastResult;
1429
+ var metadata, relationIdLoader, relationCountLoader, relationIdMetadataTransformer, relationCountMetadataTransformer, rawResults, entities, _a, selects, orderBys_1, metadata_1, mainAliasName_1, querySelects, condition, parameters_1, alias_1, ids, areAllNumbers, rawRelationIdResults, rawRelationCountResults, transformer, broadcastResult;
1384
1430
  var _this = this;
1385
1431
  return tslib_1.__generator(this, function (_b) {
1386
1432
  switch (_b.label) {
@@ -1410,7 +1456,8 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1410
1456
  var columnAlias = _this.escape(DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, primaryColumn.databaseName));
1411
1457
  if (!orderBys_1[columnAlias]) // make sure we aren't overriding user-defined order in inverse direction
1412
1458
  orderBys_1[columnAlias] = "ASC";
1413
- return distinctAlias + "." + columnAlias + " as \"ids_" + DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, primaryColumn.databaseName) + "\"";
1459
+ var alias = DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, "ids_" + mainAliasName_1, primaryColumn.databaseName);
1460
+ return distinctAlias + "." + columnAlias + " as \"" + alias + "\"";
1414
1461
  });
1415
1462
  return [4 /*yield*/, new SelectQueryBuilder(this.connection, queryRunner)
1416
1463
  .select("DISTINCT " + querySelects.join(", "))
@@ -1438,7 +1485,8 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1438
1485
  }).join(" OR ");
1439
1486
  }
1440
1487
  else {
1441
- ids = rawResults.map(function (result) { return result["ids_" + DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, metadata_1.primaryColumns[0].databaseName)]; });
1488
+ alias_1 = DriverUtils_1.DriverUtils.buildColumnAlias(this.connection.driver, "ids_" + mainAliasName_1, metadata_1.primaryColumns[0].databaseName);
1489
+ ids = rawResults.map(function (result) { return result[alias_1]; });
1442
1490
  areAllNumbers = ids.every(function (id) { return typeof id === "number"; });
1443
1491
  if (areAllNumbers) {
1444
1492
  // fixes #190. if all numbers then its safe to perform query without parameter