typeorm 0.3.0-rc.8 → 0.3.1-dev.941b584

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 (2670) hide show
  1. package/README.md +175 -119
  2. package/browser/cache/DbQueryResultCache.d.ts +6 -4
  3. package/browser/cache/DbQueryResultCache.js +180 -187
  4. package/browser/cache/DbQueryResultCache.js.map +1 -1
  5. package/browser/cache/QueryResultCache.js +1 -1
  6. package/browser/cache/QueryResultCache.js.map +1 -1
  7. package/browser/cache/QueryResultCacheFactory.d.ts +3 -3
  8. package/browser/cache/QueryResultCacheFactory.js +19 -15
  9. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  10. package/browser/cache/QueryResultCacheOptions.js +1 -1
  11. package/browser/cache/QueryResultCacheOptions.js.map +1 -1
  12. package/browser/cache/RedisQueryResultCache.d.ts +3 -3
  13. package/browser/cache/RedisQueryResultCache.js +104 -127
  14. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  15. package/browser/common/DeepPartial.d.ts +3 -3
  16. package/browser/common/DeepPartial.js +1 -1
  17. package/browser/common/DeepPartial.js.map +1 -1
  18. package/browser/common/EntityTarget.d.ts +9 -0
  19. package/browser/common/EntityTarget.js +3 -0
  20. package/browser/common/EntityTarget.js.map +1 -0
  21. package/browser/common/MixedList.d.ts +8 -0
  22. package/browser/common/MixedList.js +3 -0
  23. package/browser/common/MixedList.js.map +1 -0
  24. package/browser/common/NonNever.d.ts +6 -0
  25. package/browser/common/NonNever.js +3 -0
  26. package/browser/common/NonNever.js.map +1 -0
  27. package/browser/common/ObjectLiteral.js +1 -1
  28. package/browser/common/ObjectLiteral.js.map +1 -1
  29. package/browser/common/ObjectType.js +1 -1
  30. package/browser/common/ObjectType.js.map +1 -1
  31. package/browser/common/RelationType.d.ts +14 -0
  32. package/browser/common/RelationType.js +3 -0
  33. package/browser/common/RelationType.js.map +1 -0
  34. package/browser/connection/BaseConnectionOptions.d.ts +4 -144
  35. package/browser/connection/BaseConnectionOptions.js +1 -1
  36. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  37. package/browser/connection/Connection.d.ts +4 -219
  38. package/browser/connection/Connection.js +5 -532
  39. package/browser/connection/Connection.js.map +1 -1
  40. package/browser/connection/ConnectionManager.d.ts +11 -5
  41. package/browser/connection/ConnectionManager.js +26 -26
  42. package/browser/connection/ConnectionManager.js.map +1 -1
  43. package/browser/connection/ConnectionMetadataBuilder.d.ts +6 -6
  44. package/browser/connection/ConnectionMetadataBuilder.js +37 -31
  45. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  46. package/browser/connection/ConnectionOptions.d.ts +4 -14
  47. package/browser/connection/ConnectionOptions.js +1 -1
  48. package/browser/connection/ConnectionOptions.js.map +1 -1
  49. package/browser/connection/ConnectionOptionsReader.d.ts +8 -8
  50. package/browser/connection/ConnectionOptionsReader.js +145 -169
  51. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  52. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
  53. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +68 -49
  54. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  55. package/browser/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
  56. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +46 -42
  57. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  58. package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
  59. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +14 -11
  60. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  61. package/browser/container.d.ts +12 -0
  62. package/browser/container.js +19 -11
  63. package/browser/container.js.map +1 -1
  64. package/browser/data-source/BaseDataSourceOptions.d.ts +179 -0
  65. package/browser/data-source/BaseDataSourceOptions.js +3 -0
  66. package/browser/data-source/BaseDataSourceOptions.js.map +1 -0
  67. package/browser/data-source/DataSource.d.ts +246 -0
  68. package/browser/data-source/DataSource.js +448 -0
  69. package/browser/data-source/DataSource.js.map +1 -0
  70. package/browser/data-source/DataSourceOptions.d.ts +21 -0
  71. package/browser/data-source/DataSourceOptions.js +3 -0
  72. package/browser/data-source/DataSourceOptions.js.map +1 -0
  73. package/browser/data-source/index.d.ts +2 -0
  74. package/browser/data-source/index.js +4 -0
  75. package/browser/data-source/index.js.map +1 -0
  76. package/browser/decorator/Check.d.ts +2 -2
  77. package/browser/decorator/Check.js +9 -6
  78. package/browser/decorator/Check.js.map +1 -1
  79. package/browser/decorator/EntityRepository.d.ts +3 -1
  80. package/browser/decorator/EntityRepository.js +3 -1
  81. package/browser/decorator/EntityRepository.js.map +1 -1
  82. package/browser/decorator/Exclusion.d.ts +2 -2
  83. package/browser/decorator/Exclusion.js +9 -6
  84. package/browser/decorator/Exclusion.js.map +1 -1
  85. package/browser/decorator/Generated.d.ts +1 -1
  86. package/browser/decorator/Generated.js +3 -4
  87. package/browser/decorator/Generated.js.map +1 -1
  88. package/browser/decorator/Index.d.ts +10 -10
  89. package/browser/decorator/Index.js +28 -8
  90. package/browser/decorator/Index.js.map +1 -1
  91. package/browser/decorator/Unique.d.ts +7 -6
  92. package/browser/decorator/Unique.js +36 -7
  93. package/browser/decorator/Unique.js.map +1 -1
  94. package/browser/decorator/columns/Column.d.ts +13 -13
  95. package/browser/decorator/columns/Column.js +24 -12
  96. package/browser/decorator/columns/Column.js.map +1 -1
  97. package/browser/decorator/columns/CreateDateColumn.d.ts +2 -2
  98. package/browser/decorator/columns/CreateDateColumn.js +2 -2
  99. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  100. package/browser/decorator/columns/DeleteDateColumn.d.ts +6 -0
  101. package/browser/decorator/columns/DeleteDateColumn.js +17 -0
  102. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -0
  103. package/browser/decorator/columns/ObjectIdColumn.d.ts +2 -2
  104. package/browser/decorator/columns/ObjectIdColumn.js +2 -2
  105. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  106. package/browser/decorator/columns/PrimaryColumn.d.ts +11 -3
  107. package/browser/decorator/columns/PrimaryColumn.js +9 -5
  108. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  109. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
  110. package/browser/decorator/columns/PrimaryGeneratedColumn.js +9 -8
  111. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  112. package/browser/decorator/columns/UpdateDateColumn.d.ts +2 -2
  113. package/browser/decorator/columns/UpdateDateColumn.js +2 -2
  114. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  115. package/browser/decorator/columns/VersionColumn.d.ts +2 -2
  116. package/browser/decorator/columns/VersionColumn.js +2 -2
  117. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  118. package/browser/decorator/columns/ViewColumn.d.ts +2 -1
  119. package/browser/decorator/columns/ViewColumn.js +3 -3
  120. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  121. package/browser/decorator/entity/ChildEntity.d.ts +1 -1
  122. package/browser/decorator/entity/ChildEntity.js +3 -3
  123. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  124. package/browser/decorator/entity/Entity.d.ts +3 -3
  125. package/browser/decorator/entity/Entity.js +7 -4
  126. package/browser/decorator/entity/Entity.js.map +1 -1
  127. package/browser/decorator/entity/TableInheritance.d.ts +2 -2
  128. package/browser/decorator/entity/TableInheritance.js +6 -2
  129. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  130. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
  131. package/browser/decorator/entity-view/ViewEntity.js +10 -4
  132. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  133. package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
  134. package/browser/decorator/listeners/AfterInsert.js +2 -2
  135. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  136. package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
  137. package/browser/decorator/listeners/AfterLoad.js +2 -2
  138. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  139. package/browser/decorator/listeners/AfterRecover.d.ts +4 -0
  140. package/browser/decorator/listeners/AfterRecover.js +16 -0
  141. package/browser/decorator/listeners/AfterRecover.js.map +1 -0
  142. package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
  143. package/browser/decorator/listeners/AfterRemove.js +2 -2
  144. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  145. package/browser/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  146. package/browser/decorator/listeners/AfterSoftRemove.js +16 -0
  147. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -0
  148. package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
  149. package/browser/decorator/listeners/AfterUpdate.js +2 -2
  150. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  151. package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
  152. package/browser/decorator/listeners/BeforeInsert.js +2 -2
  153. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  154. package/browser/decorator/listeners/BeforeRecover.d.ts +4 -0
  155. package/browser/decorator/listeners/BeforeRecover.js +16 -0
  156. package/browser/decorator/listeners/BeforeRecover.js.map +1 -0
  157. package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
  158. package/browser/decorator/listeners/BeforeRemove.js +2 -2
  159. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  160. package/browser/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  161. package/browser/decorator/listeners/BeforeSoftRemove.js +16 -0
  162. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  163. package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
  164. package/browser/decorator/listeners/BeforeUpdate.js +2 -2
  165. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  166. package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
  167. package/browser/decorator/listeners/EventSubscriber.js +2 -2
  168. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  169. package/browser/decorator/options/ColumnCommonOptions.d.ts +1 -1
  170. package/browser/decorator/options/ColumnCommonOptions.js +1 -1
  171. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  172. package/browser/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
  173. package/browser/decorator/options/ColumnEmbeddedOptions.js +1 -1
  174. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  175. package/browser/decorator/options/ColumnEnumOptions.js +1 -1
  176. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  177. package/browser/decorator/options/ColumnHstoreOptions.js +1 -1
  178. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  179. package/browser/decorator/options/ColumnNumericOptions.js +1 -1
  180. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  181. package/browser/decorator/options/ColumnOptions.d.ts +5 -1
  182. package/browser/decorator/options/ColumnOptions.js +1 -1
  183. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  184. package/browser/decorator/options/ColumnWithLengthOptions.js +1 -1
  185. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  186. package/browser/decorator/options/ColumnWithWidthOptions.js +1 -1
  187. package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  188. package/browser/decorator/options/EntityOptions.js +1 -1
  189. package/browser/decorator/options/EntityOptions.js.map +1 -1
  190. package/browser/decorator/options/IndexOptions.d.ts +5 -0
  191. package/browser/decorator/options/IndexOptions.js +1 -1
  192. package/browser/decorator/options/IndexOptions.js.map +1 -1
  193. package/browser/decorator/options/JoinColumnOptions.js +1 -1
  194. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  195. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +1 -1
  196. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  197. package/browser/decorator/options/JoinTableOptions.js +1 -1
  198. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  199. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  200. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
  201. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  202. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -1
  203. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  204. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -1
  205. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  206. package/browser/decorator/options/RelationOptions.d.ts +12 -2
  207. package/browser/decorator/options/RelationOptions.js +1 -1
  208. package/browser/decorator/options/RelationOptions.js.map +1 -1
  209. package/browser/decorator/options/SpatialColumnOptions.js +1 -1
  210. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  211. package/browser/decorator/options/TransactionOptions.js +1 -1
  212. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  213. package/browser/decorator/options/UniqueOptions.d.ts +10 -0
  214. package/browser/decorator/options/UniqueOptions.js +3 -0
  215. package/browser/decorator/options/UniqueOptions.js.map +1 -0
  216. package/browser/decorator/options/ValueTransformer.js +1 -1
  217. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  218. package/browser/decorator/options/ViewColumnOptions.d.ts +15 -0
  219. package/browser/decorator/options/ViewColumnOptions.js +3 -0
  220. package/browser/decorator/options/ViewColumnOptions.js.map +1 -0
  221. package/browser/decorator/options/ViewEntityOptions.d.ts +7 -2
  222. package/browser/decorator/options/ViewEntityOptions.js +1 -1
  223. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  224. package/browser/decorator/relations/JoinColumn.d.ts +4 -4
  225. package/browser/decorator/relations/JoinColumn.js +6 -4
  226. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  227. package/browser/decorator/relations/JoinTable.d.ts +4 -4
  228. package/browser/decorator/relations/JoinTable.js +13 -4
  229. package/browser/decorator/relations/JoinTable.js.map +1 -1
  230. package/browser/decorator/relations/ManyToMany.d.ts +4 -3
  231. package/browser/decorator/relations/ManyToMany.js +12 -8
  232. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  233. package/browser/decorator/relations/ManyToOne.d.ts +10 -9
  234. package/browser/decorator/relations/ManyToOne.js +17 -13
  235. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  236. package/browser/decorator/relations/OneToMany.d.ts +6 -4
  237. package/browser/decorator/relations/OneToMany.js +13 -9
  238. package/browser/decorator/relations/OneToMany.js.map +1 -1
  239. package/browser/decorator/relations/OneToOne.d.ts +4 -3
  240. package/browser/decorator/relations/OneToOne.js +12 -8
  241. package/browser/decorator/relations/OneToOne.js.map +1 -1
  242. package/browser/decorator/relations/RelationCount.d.ts +2 -2
  243. package/browser/decorator/relations/RelationCount.js +2 -2
  244. package/browser/decorator/relations/RelationCount.js.map +1 -1
  245. package/browser/decorator/relations/RelationId.d.ts +2 -2
  246. package/browser/decorator/relations/RelationId.js +2 -2
  247. package/browser/decorator/relations/RelationId.js.map +1 -1
  248. package/browser/decorator/tree/Tree.d.ts +2 -1
  249. package/browser/decorator/tree/Tree.js +4 -3
  250. package/browser/decorator/tree/Tree.js.map +1 -1
  251. package/browser/decorator/tree/TreeChildren.d.ts +2 -2
  252. package/browser/decorator/tree/TreeChildren.js +11 -6
  253. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  254. package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
  255. package/browser/decorator/tree/TreeLevelColumn.js +2 -2
  256. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  257. package/browser/decorator/tree/TreeParent.d.ts +4 -1
  258. package/browser/decorator/tree/TreeParent.js +13 -6
  259. package/browser/decorator/tree/TreeParent.js.map +1 -1
  260. package/browser/driver/Driver.d.ts +39 -9
  261. package/browser/driver/Driver.js +1 -1
  262. package/browser/driver/Driver.js.map +1 -1
  263. package/browser/driver/DriverFactory.d.ts +2 -2
  264. package/browser/driver/DriverFactory.js +40 -13
  265. package/browser/driver/DriverFactory.js.map +1 -1
  266. package/browser/driver/DriverUtils.d.ts +39 -10
  267. package/browser/driver/DriverUtils.js +179 -55
  268. package/browser/driver/DriverUtils.js.map +1 -1
  269. package/browser/driver/Query.d.ts +1 -0
  270. package/browser/driver/Query.js +4 -5
  271. package/browser/driver/Query.js.map +1 -1
  272. package/browser/driver/SqlInMemory.js +3 -5
  273. package/browser/driver/SqlInMemory.js.map +1 -1
  274. package/browser/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
  275. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js +15 -0
  276. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
  277. package/browser/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
  278. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +3 -0
  279. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
  280. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
  281. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +3 -0
  282. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
  283. package/browser/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
  284. package/browser/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +322 -211
  285. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
  286. package/{driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +27 -18
  287. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1677 -0
  288. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
  289. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
  290. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +3 -0
  291. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
  292. package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
  293. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +99 -0
  294. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
  295. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
  296. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +135 -0
  297. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
  298. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
  299. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
  300. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  301. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
  302. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +149 -0
  303. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  304. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
  305. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +124 -0
  306. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  307. package/browser/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
  308. package/browser/driver/capacitor/CapacitorConnectionOptions.js +3 -0
  309. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
  310. package/browser/driver/capacitor/CapacitorDriver.d.ts +27 -0
  311. package/browser/driver/capacitor/CapacitorDriver.js +79 -0
  312. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -0
  313. package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
  314. package/browser/driver/capacitor/CapacitorQueryRunner.js +94 -0
  315. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
  316. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -1
  317. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  318. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
  319. package/browser/driver/cockroachdb/CockroachConnectionOptions.js +1 -1
  320. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  321. package/browser/driver/cockroachdb/CockroachDriver.d.ts +49 -8
  322. package/browser/driver/cockroachdb/CockroachDriver.js +321 -263
  323. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  324. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +22 -18
  325. package/browser/driver/cockroachdb/CockroachQueryRunner.js +1576 -2026
  326. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  327. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
  328. package/browser/driver/cordova/CordovaConnectionOptions.js +1 -1
  329. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  330. package/browser/driver/cordova/CordovaDriver.d.ts +5 -4
  331. package/browser/driver/cordova/CordovaDriver.js +33 -49
  332. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  333. package/browser/driver/cordova/CordovaQueryRunner.d.ts +27 -1
  334. package/browser/driver/cordova/CordovaQueryRunner.js +100 -53
  335. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  336. package/browser/driver/expo/ExpoConnectionOptions.d.ts +6 -2
  337. package/browser/driver/expo/ExpoConnectionOptions.js +1 -1
  338. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  339. package/browser/driver/expo/ExpoDriver.d.ts +4 -7
  340. package/browser/driver/expo/ExpoDriver.js +32 -53
  341. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  342. package/browser/driver/expo/ExpoQueryRunner.d.ts +9 -1
  343. package/browser/driver/expo/ExpoQueryRunner.js +123 -94
  344. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  345. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
  346. package/browser/driver/mongodb/MongoConnectionOptions.js +1 -1
  347. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  348. package/browser/driver/mongodb/MongoDriver.d.ts +36 -12
  349. package/browser/driver/mongodb/MongoDriver.js +145 -99
  350. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  351. package/browser/driver/mongodb/MongoQueryRunner.d.ts +27 -8
  352. package/browser/driver/mongodb/MongoQueryRunner.js +330 -748
  353. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  354. package/browser/driver/mongodb/typings.d.ts +12 -11
  355. package/browser/driver/mongodb/typings.js.map +1 -1
  356. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  357. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -1
  358. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  359. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
  360. package/browser/driver/mysql/MysqlConnectionOptions.js +1 -1
  361. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  362. package/browser/driver/mysql/MysqlDriver.d.ts +48 -11
  363. package/browser/driver/mysql/MysqlDriver.js +440 -271
  364. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  365. package/browser/driver/mysql/MysqlQueryRunner.d.ts +25 -15
  366. package/browser/driver/mysql/MysqlQueryRunner.js +1552 -1751
  367. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  368. package/browser/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
  369. package/browser/driver/nativescript/NativescriptConnectionOptions.js +1 -1
  370. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  371. package/browser/driver/nativescript/NativescriptDriver.d.ts +5 -4
  372. package/browser/driver/nativescript/NativescriptDriver.js +36 -43
  373. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  374. package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
  375. package/browser/driver/nativescript/NativescriptQueryRunner.js +54 -39
  376. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  377. package/browser/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
  378. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +1 -1
  379. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  380. package/browser/driver/oracle/OracleConnectionOptions.d.ts +11 -2
  381. package/browser/driver/oracle/OracleConnectionOptions.js +1 -1
  382. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  383. package/browser/driver/oracle/OracleDriver.d.ts +31 -7
  384. package/browser/driver/oracle/OracleDriver.js +328 -234
  385. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  386. package/browser/driver/oracle/OracleQueryRunner.d.ts +23 -9
  387. package/browser/driver/oracle/OracleQueryRunner.js +1346 -1670
  388. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  389. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  390. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -1
  391. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  392. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
  393. package/browser/driver/postgres/PostgresConnectionOptions.js +1 -1
  394. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  395. package/browser/driver/postgres/PostgresDriver.d.ts +81 -19
  396. package/browser/driver/postgres/PostgresDriver.js +618 -439
  397. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  398. package/browser/driver/postgres/PostgresQueryRunner.d.ts +48 -26
  399. package/browser/driver/postgres/PostgresQueryRunner.js +2128 -2286
  400. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  401. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
  402. package/browser/driver/react-native/ReactNativeConnectionOptions.js +1 -1
  403. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  404. package/browser/driver/react-native/ReactNativeDriver.d.ts +4 -3
  405. package/browser/driver/react-native/ReactNativeDriver.js +31 -42
  406. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  407. package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
  408. package/browser/driver/react-native/ReactNativeQueryRunner.js +62 -53
  409. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  410. package/browser/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
  411. package/browser/driver/sap/SapConnectionCredentialsOptions.js +3 -0
  412. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
  413. package/browser/driver/sap/SapConnectionOptions.d.ts +59 -0
  414. package/browser/driver/sap/SapConnectionOptions.js +3 -0
  415. package/browser/driver/sap/SapConnectionOptions.js.map +1 -0
  416. package/browser/driver/sap/SapDriver.d.ts +214 -0
  417. package/browser/driver/sap/SapDriver.js +641 -0
  418. package/browser/driver/sap/SapDriver.js.map +1 -0
  419. package/browser/driver/sap/SapQueryRunner.d.ts +342 -0
  420. package/browser/driver/sap/SapQueryRunner.js +1987 -0
  421. package/browser/driver/sap/SapQueryRunner.js.map +1 -0
  422. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
  423. package/browser/driver/sqlite/SqliteConnectionOptions.js +1 -1
  424. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  425. package/browser/driver/sqlite/SqliteDriver.d.ts +18 -4
  426. package/browser/driver/sqlite/SqliteDriver.js +104 -83
  427. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  428. package/browser/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
  429. package/browser/driver/sqlite/SqliteQueryRunner.js +83 -68
  430. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  431. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
  432. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +254 -139
  433. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  434. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +25 -5
  435. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1022 -1441
  436. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  437. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
  438. package/browser/driver/sqljs/SqljsConnectionOptions.js +1 -1
  439. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  440. package/browser/driver/sqljs/SqljsDriver.d.ts +4 -3
  441. package/browser/driver/sqljs/SqljsDriver.js +153 -227
  442. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  443. package/browser/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
  444. package/browser/driver/sqljs/SqljsQueryRunner.js +84 -61
  445. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  446. package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
  447. package/browser/driver/sqlserver/MssqlParameter.js +4 -9
  448. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  449. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  450. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -1
  451. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  452. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
  453. package/browser/driver/sqlserver/SqlServerConnectionOptions.js +1 -1
  454. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  455. package/browser/driver/sqlserver/SqlServerDriver.d.ts +43 -9
  456. package/browser/driver/sqlserver/SqlServerDriver.js +355 -253
  457. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  458. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +19 -28
  459. package/browser/driver/sqlserver/SqlServerQueryRunner.js +1810 -2309
  460. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  461. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  462. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
  463. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  464. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  465. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
  466. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  467. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  468. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
  469. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  470. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  471. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
  472. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  473. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  474. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
  475. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  476. package/browser/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  477. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
  478. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  479. package/browser/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  480. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
  481. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  482. package/browser/driver/types/ColumnTypes.d.ts +5 -5
  483. package/browser/driver/types/ColumnTypes.js +1 -1
  484. package/browser/driver/types/ColumnTypes.js.map +1 -1
  485. package/browser/driver/types/DataTypeDefaults.js +1 -1
  486. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  487. package/browser/driver/types/DatabaseType.d.ts +1 -1
  488. package/browser/driver/types/DatabaseType.js +1 -1
  489. package/browser/driver/types/DatabaseType.js.map +1 -1
  490. package/browser/driver/types/IsolationLevel.js +1 -1
  491. package/browser/driver/types/IsolationLevel.js.map +1 -1
  492. package/browser/driver/types/MappedColumnTypes.d.ts +12 -0
  493. package/browser/driver/types/MappedColumnTypes.js +1 -1
  494. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  495. package/browser/driver/types/MetadataTableType.d.ts +5 -0
  496. package/browser/driver/types/MetadataTableType.js +8 -0
  497. package/browser/driver/types/MetadataTableType.js.map +1 -0
  498. package/browser/driver/types/ReplicationMode.d.ts +1 -0
  499. package/browser/driver/types/ReplicationMode.js +3 -0
  500. package/browser/driver/types/ReplicationMode.js.map +1 -0
  501. package/browser/driver/types/UpsertType.d.ts +1 -0
  502. package/browser/driver/types/UpsertType.js +3 -0
  503. package/browser/driver/types/UpsertType.js.map +1 -0
  504. package/browser/entity-manager/EntityManager.d.ts +143 -286
  505. package/browser/entity-manager/EntityManager.js +531 -439
  506. package/browser/entity-manager/EntityManager.js.map +1 -1
  507. package/browser/entity-manager/EntityManagerFactory.d.ts +2 -2
  508. package/browser/entity-manager/EntityManagerFactory.js +6 -12
  509. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  510. package/browser/entity-manager/MongoEntityManager.d.ts +101 -64
  511. package/browser/entity-manager/MongoEntityManager.js +499 -467
  512. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  513. package/browser/entity-manager/SqljsEntityManager.d.ts +3 -2
  514. package/browser/entity-manager/SqljsEntityManager.js +14 -36
  515. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  516. package/browser/entity-schema/EntitySchema.d.ts +1 -0
  517. package/browser/entity-schema/EntitySchema.js +4 -5
  518. package/browser/entity-schema/EntitySchema.js.map +1 -1
  519. package/browser/entity-schema/EntitySchemaCheckOptions.js +1 -1
  520. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  521. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
  522. package/browser/entity-schema/EntitySchemaColumnOptions.js +1 -1
  523. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  524. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  525. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +4 -0
  526. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  527. package/browser/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  528. package/browser/entity-schema/EntitySchemaEmbeddedError.js +14 -0
  529. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  530. package/browser/entity-schema/EntitySchemaExclusionOptions.js +1 -1
  531. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  532. package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
  533. package/browser/entity-schema/EntitySchemaIndexOptions.js +1 -1
  534. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  535. package/browser/entity-schema/EntitySchemaOptions.d.ts +22 -10
  536. package/browser/entity-schema/EntitySchemaOptions.js +2 -6
  537. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  538. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
  539. package/browser/entity-schema/EntitySchemaRelationOptions.js +1 -1
  540. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  541. package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  542. package/browser/entity-schema/EntitySchemaTransformer.js +228 -183
  543. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  544. package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
  545. package/browser/entity-schema/EntitySchemaUniqueOptions.js +1 -1
  546. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  547. package/browser/error/AlreadyHasActiveConnectionError.d.ts +2 -2
  548. package/browser/error/AlreadyHasActiveConnectionError.js +6 -13
  549. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  550. package/browser/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
  551. package/browser/error/CannotAttachTreeChildrenEntityError.js +7 -13
  552. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  553. package/browser/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
  554. package/browser/error/CannotConnectAlreadyConnectedError.js +5 -12
  555. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  556. package/browser/error/CannotCreateEntityIdMapError.d.ts +2 -2
  557. package/browser/error/CannotCreateEntityIdMapError.js +7 -13
  558. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  559. package/browser/error/CannotDetermineEntityError.d.ts +2 -2
  560. package/browser/error/CannotDetermineEntityError.js +6 -12
  561. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  562. package/browser/error/CannotExecuteNotConnectedError.d.ts +2 -2
  563. package/browser/error/CannotExecuteNotConnectedError.js +5 -12
  564. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  565. package/browser/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
  566. package/browser/error/CannotGetEntityManagerNotConnectedError.js +5 -12
  567. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  568. package/browser/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
  569. package/browser/error/CannotReflectMethodParameterTypeError.js +7 -14
  570. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  571. package/browser/error/CircularRelationsError.d.ts +2 -2
  572. package/browser/error/CircularRelationsError.js +6 -12
  573. package/browser/error/CircularRelationsError.js.map +1 -1
  574. package/browser/error/ColumnTypeUndefinedError.d.ts +2 -2
  575. package/browser/error/ColumnTypeUndefinedError.js +8 -15
  576. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  577. package/browser/error/ConnectionIsNotSetError.d.ts +2 -2
  578. package/browser/error/ConnectionIsNotSetError.js +5 -12
  579. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  580. package/browser/error/ConnectionNotFoundError.d.ts +2 -2
  581. package/browser/error/ConnectionNotFoundError.js +5 -12
  582. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  583. package/browser/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
  584. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +8 -13
  585. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  586. package/browser/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
  587. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +8 -13
  588. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  589. package/browser/error/CustomRepositoryNotFoundError.d.ts +2 -2
  590. package/browser/error/CustomRepositoryNotFoundError.js +8 -13
  591. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  592. package/browser/error/DataTypeNotSupportedError.d.ts +2 -2
  593. package/browser/error/DataTypeNotSupportedError.js +7 -13
  594. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  595. package/browser/error/DriverOptionNotSetError.d.ts +2 -2
  596. package/browser/error/DriverOptionNotSetError.js +6 -12
  597. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  598. package/browser/error/DriverPackageNotInstalledError.d.ts +2 -2
  599. package/browser/error/DriverPackageNotInstalledError.js +6 -12
  600. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  601. package/browser/error/EntityMetadataNotFoundError.d.ts +5 -6
  602. package/browser/error/EntityMetadataNotFoundError.js +17 -20
  603. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  604. package/browser/error/EntityNotFoundError.d.ts +5 -5
  605. package/browser/error/EntityNotFoundError.js +21 -22
  606. package/browser/error/EntityNotFoundError.js.map +1 -1
  607. package/browser/error/EntityPropertyNotFoundError.d.ts +8 -0
  608. package/browser/error/EntityPropertyNotFoundError.js +13 -0
  609. package/browser/error/EntityPropertyNotFoundError.js.map +1 -0
  610. package/browser/error/FindRelationsNotFoundError.d.ts +7 -0
  611. package/browser/error/FindRelationsNotFoundError.js +19 -0
  612. package/browser/error/FindRelationsNotFoundError.js.map +1 -0
  613. package/browser/error/InitializedRelationError.d.ts +2 -1
  614. package/browser/error/InitializedRelationError.js +7 -13
  615. package/browser/error/InitializedRelationError.js.map +1 -1
  616. package/browser/error/InsertValuesMissingError.d.ts +2 -2
  617. package/browser/error/InsertValuesMissingError.js +6 -12
  618. package/browser/error/InsertValuesMissingError.js.map +1 -1
  619. package/browser/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
  620. package/browser/error/LimitOnUpdateNotSupportedError.js +6 -13
  621. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  622. package/browser/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
  623. package/browser/error/LockNotSupportedOnGivenDriverError.js +5 -12
  624. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  625. package/browser/error/MetadataAlreadyExistsError.d.ts +2 -4
  626. package/browser/error/MetadataAlreadyExistsError.js +11 -16
  627. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  628. package/browser/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
  629. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +9 -15
  630. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  631. package/browser/error/MissingDeleteDateColumnError.d.ts +5 -0
  632. package/browser/error/MissingDeleteDateColumnError.js +8 -0
  633. package/browser/error/MissingDeleteDateColumnError.js.map +1 -0
  634. package/browser/error/MissingDriverError.d.ts +3 -3
  635. package/browser/error/MissingDriverError.js +6 -12
  636. package/browser/error/MissingDriverError.js.map +1 -1
  637. package/browser/error/MissingJoinColumnError.d.ts +2 -4
  638. package/browser/error/MissingJoinColumnError.js +12 -18
  639. package/browser/error/MissingJoinColumnError.js.map +1 -1
  640. package/browser/error/MissingJoinTableError.d.ts +2 -4
  641. package/browser/error/MissingJoinTableError.js +12 -18
  642. package/browser/error/MissingJoinTableError.js.map +1 -1
  643. package/browser/error/MissingPrimaryColumnError.d.ts +2 -4
  644. package/browser/error/MissingPrimaryColumnError.js +6 -15
  645. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  646. package/browser/error/MustBeEntityError.d.ts +2 -2
  647. package/browser/error/MustBeEntityError.js +5 -12
  648. package/browser/error/MustBeEntityError.js.map +1 -1
  649. package/browser/error/NamingStrategyNotFoundError.d.ts +2 -2
  650. package/browser/error/NamingStrategyNotFoundError.js +11 -14
  651. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  652. package/browser/error/NestedSetMultipleRootError.d.ts +4 -0
  653. package/browser/error/NestedSetMultipleRootError.js +8 -0
  654. package/browser/error/NestedSetMultipleRootError.js.map +1 -0
  655. package/browser/error/NoConnectionForRepositoryError.d.ts +2 -2
  656. package/browser/error/NoConnectionForRepositoryError.js +6 -13
  657. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  658. package/browser/error/NoConnectionOptionError.d.ts +2 -1
  659. package/browser/error/NoConnectionOptionError.js +6 -11
  660. package/browser/error/NoConnectionOptionError.js.map +1 -1
  661. package/browser/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
  662. package/browser/error/NoNeedToReleaseEntityManagerError.js +7 -14
  663. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  664. package/browser/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
  665. package/browser/error/NoVersionOrUpdateDateColumnError.js +5 -12
  666. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  667. package/browser/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
  668. package/browser/error/OffsetWithoutLimitNotSupportedError.js +8 -13
  669. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  670. package/browser/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
  671. package/browser/error/OptimisticLockCanNotBeUsedError.js +5 -12
  672. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  673. package/browser/error/OptimisticLockVersionMismatchError.d.ts +2 -2
  674. package/browser/error/OptimisticLockVersionMismatchError.js +5 -12
  675. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  676. package/browser/error/PersistedEntityNotFoundError.d.ts +2 -2
  677. package/browser/error/PersistedEntityNotFoundError.js +5 -12
  678. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  679. package/browser/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
  680. package/browser/error/PessimisticLockTransactionRequiredError.js +5 -12
  681. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  682. package/browser/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
  683. package/browser/error/PrimaryColumnCannotBeNullableError.js +6 -13
  684. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  685. package/browser/error/QueryFailedError.d.ts +6 -2
  686. package/browser/error/QueryFailedError.js +18 -14
  687. package/browser/error/QueryFailedError.js.map +1 -1
  688. package/browser/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
  689. package/browser/error/QueryRunnerAlreadyReleasedError.js +5 -14
  690. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  691. package/browser/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
  692. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +6 -12
  693. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  694. package/browser/error/RepositoryNotFoundError.d.ts +4 -4
  695. package/browser/error/RepositoryNotFoundError.js +16 -16
  696. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  697. package/browser/error/RepositoryNotTreeError.d.ts +4 -4
  698. package/browser/error/RepositoryNotTreeError.js +18 -19
  699. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  700. package/browser/error/ReturningStatementNotSupportedError.d.ts +2 -2
  701. package/browser/error/ReturningStatementNotSupportedError.js +5 -12
  702. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  703. package/browser/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
  704. package/browser/error/SubjectRemovedAndUpdatedError.js +6 -13
  705. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  706. package/browser/error/SubjectWithoutIdentifierError.d.ts +2 -2
  707. package/browser/error/SubjectWithoutIdentifierError.js +5 -13
  708. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  709. package/browser/error/TransactionAlreadyStartedError.d.ts +2 -2
  710. package/browser/error/TransactionAlreadyStartedError.js +5 -12
  711. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  712. package/browser/error/TransactionNotStartedError.d.ts +2 -2
  713. package/browser/error/TransactionNotStartedError.js +5 -12
  714. package/browser/error/TransactionNotStartedError.js.map +1 -1
  715. package/browser/error/TreeRepositoryNotSupportedError.d.ts +2 -2
  716. package/browser/error/TreeRepositoryNotSupportedError.js +5 -12
  717. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  718. package/browser/error/TypeORMError.d.ts +4 -0
  719. package/browser/error/TypeORMError.js +19 -0
  720. package/browser/error/TypeORMError.js.map +1 -0
  721. package/browser/error/UpdateValuesMissingError.d.ts +2 -5
  722. package/browser/error/UpdateValuesMissingError.js +5 -15
  723. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  724. package/browser/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
  725. package/browser/error/UsingJoinColumnIsNotAllowedError.js +6 -15
  726. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  727. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
  728. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +7 -16
  729. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  730. package/browser/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
  731. package/browser/error/UsingJoinTableIsNotAllowedError.js +7 -16
  732. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  733. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
  734. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +7 -16
  735. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  736. package/browser/error/index.d.ts +62 -0
  737. package/browser/error/index.js +64 -0
  738. package/browser/error/index.js.map +1 -0
  739. package/browser/find-options/EqualOperator.d.ts +5 -0
  740. package/browser/find-options/EqualOperator.js +9 -0
  741. package/browser/find-options/EqualOperator.js.map +1 -0
  742. package/browser/find-options/FindManyOptions.d.ts +14 -0
  743. package/browser/find-options/FindManyOptions.js +3 -0
  744. package/browser/find-options/FindManyOptions.js.map +1 -0
  745. package/browser/find-options/FindOneOptions.d.ts +86 -0
  746. package/browser/find-options/FindOneOptions.js +3 -0
  747. package/browser/find-options/FindOneOptions.js.map +1 -0
  748. package/browser/find-options/FindOperator.d.ts +31 -8
  749. package/browser/find-options/FindOperator.js +64 -97
  750. package/browser/find-options/FindOperator.js.map +1 -1
  751. package/browser/find-options/FindOperatorType.d.ts +1 -1
  752. package/browser/find-options/FindOperatorType.js +1 -1
  753. package/browser/find-options/FindOperatorType.js.map +1 -1
  754. package/browser/find-options/FindOptionsOrder.d.ts +19 -0
  755. package/browser/find-options/FindOptionsOrder.js +3 -0
  756. package/browser/find-options/FindOptionsOrder.js.map +1 -0
  757. package/browser/find-options/FindOptionsRelations.d.ts +19 -0
  758. package/browser/find-options/FindOptionsRelations.js +3 -0
  759. package/browser/find-options/FindOptionsRelations.js.map +1 -0
  760. package/browser/find-options/FindOptionsSelect.d.ts +19 -0
  761. package/browser/find-options/FindOptionsSelect.js +3 -0
  762. package/browser/find-options/FindOptionsSelect.js.map +1 -0
  763. package/browser/find-options/FindOptionsUtils.d.ts +180 -6
  764. package/browser/find-options/FindOptionsUtils.js +299 -94
  765. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  766. package/browser/find-options/FindOptionsWhere.d.ts +14 -0
  767. package/browser/find-options/FindOptionsWhere.js +3 -0
  768. package/browser/find-options/FindOptionsWhere.js.map +1 -0
  769. package/browser/find-options/FindTreeOptions.d.ts +13 -0
  770. package/browser/find-options/FindTreeOptions.js +3 -0
  771. package/browser/find-options/FindTreeOptions.js.map +1 -0
  772. package/browser/find-options/JoinOptions.d.ts +76 -0
  773. package/browser/find-options/JoinOptions.js +3 -0
  774. package/browser/find-options/JoinOptions.js.map +1 -0
  775. package/browser/find-options/OrderByCondition.js +1 -1
  776. package/browser/find-options/OrderByCondition.js.map +1 -1
  777. package/browser/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
  778. package/browser/find-options/mongodb/MongoFindManyOptions.js +3 -0
  779. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
  780. package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
  781. package/browser/find-options/mongodb/MongoFindOneOptions.js +3 -0
  782. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
  783. package/browser/find-options/operator/Any.d.ts +1 -1
  784. package/browser/find-options/operator/Any.js.map +1 -1
  785. package/browser/find-options/operator/Between.d.ts +1 -1
  786. package/browser/find-options/operator/Between.js.map +1 -1
  787. package/browser/find-options/operator/Equal.d.ts +7 -2
  788. package/browser/find-options/operator/Equal.js +7 -3
  789. package/browser/find-options/operator/Equal.js.map +1 -1
  790. package/browser/find-options/operator/ILike.d.ts +1 -1
  791. package/browser/find-options/operator/ILike.js +1 -1
  792. package/browser/find-options/operator/ILike.js.map +1 -1
  793. package/browser/find-options/operator/In.d.ts +1 -1
  794. package/browser/find-options/operator/In.js.map +1 -1
  795. package/browser/find-options/operator/IsNull.js.map +1 -1
  796. package/browser/find-options/operator/LessThan.js.map +1 -1
  797. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  798. package/browser/find-options/operator/Like.d.ts +1 -1
  799. package/browser/find-options/operator/Like.js +1 -1
  800. package/browser/find-options/operator/Like.js.map +1 -1
  801. package/browser/find-options/operator/MoreThan.js.map +1 -1
  802. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  803. package/browser/find-options/operator/Not.d.ts +1 -1
  804. package/browser/find-options/operator/Not.js +1 -1
  805. package/browser/find-options/operator/Not.js.map +1 -1
  806. package/browser/find-options/operator/Raw.d.ts +14 -2
  807. package/browser/find-options/operator/Raw.js +5 -6
  808. package/browser/find-options/operator/Raw.js.map +1 -1
  809. package/browser/globals.d.ts +117 -0
  810. package/browser/globals.js +166 -0
  811. package/browser/globals.js.map +1 -0
  812. package/browser/index.d.ts +45 -114
  813. package/browser/index.js +57 -191
  814. package/browser/index.js.map +1 -1
  815. package/browser/logger/AdvancedConsoleLogger.d.ts +2 -1
  816. package/browser/logger/AdvancedConsoleLogger.js +55 -33
  817. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  818. package/browser/logger/DebugLogger.d.ts +1 -2
  819. package/browser/logger/DebugLogger.js +24 -26
  820. package/browser/logger/DebugLogger.js.map +1 -1
  821. package/browser/logger/FileLogger.d.ts +3 -1
  822. package/browser/logger/FileLogger.js +65 -40
  823. package/browser/logger/FileLogger.js.map +1 -1
  824. package/browser/logger/Logger.d.ts +1 -1
  825. package/browser/logger/Logger.js +1 -1
  826. package/browser/logger/Logger.js.map +1 -1
  827. package/browser/logger/LoggerFactory.js +6 -9
  828. package/browser/logger/LoggerFactory.js.map +1 -1
  829. package/browser/logger/LoggerOptions.d.ts +9 -0
  830. package/browser/logger/LoggerOptions.js +1 -1
  831. package/browser/logger/LoggerOptions.js.map +1 -1
  832. package/browser/logger/SimpleConsoleLogger.d.ts +2 -1
  833. package/browser/logger/SimpleConsoleLogger.js +55 -33
  834. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  835. package/browser/metadata/CheckMetadata.js +8 -8
  836. package/browser/metadata/CheckMetadata.js.map +1 -1
  837. package/browser/metadata/ColumnMetadata.d.ts +16 -7
  838. package/browser/metadata/ColumnMetadata.js +240 -126
  839. package/browser/metadata/ColumnMetadata.js.map +1 -1
  840. package/browser/metadata/EmbeddedMetadata.d.ts +12 -5
  841. package/browser/metadata/EmbeddedMetadata.js +77 -51
  842. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  843. package/browser/metadata/EntityListenerMetadata.js +21 -15
  844. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  845. package/browser/metadata/EntityMetadata.d.ts +65 -22
  846. package/browser/metadata/EntityMetadata.js +250 -160
  847. package/browser/metadata/EntityMetadata.js.map +1 -1
  848. package/browser/metadata/ExclusionMetadata.js +8 -8
  849. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  850. package/browser/metadata/ForeignKeyMetadata.js +8 -10
  851. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  852. package/browser/metadata/IndexMetadata.d.ts +7 -2
  853. package/browser/metadata/IndexMetadata.js +44 -34
  854. package/browser/metadata/IndexMetadata.js.map +1 -1
  855. package/browser/metadata/RelationCountMetadata.js +11 -10
  856. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  857. package/browser/metadata/RelationIdMetadata.js +21 -19
  858. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  859. package/browser/metadata/RelationMetadata.d.ts +28 -5
  860. package/browser/metadata/RelationMetadata.js +160 -79
  861. package/browser/metadata/RelationMetadata.js.map +1 -1
  862. package/browser/metadata/UniqueMetadata.d.ts +7 -2
  863. package/browser/metadata/UniqueMetadata.js +40 -32
  864. package/browser/metadata/UniqueMetadata.js.map +1 -1
  865. package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
  866. package/browser/metadata/types/ClosureTreeOptions.js +3 -0
  867. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
  868. package/browser/metadata/types/DeferrableType.js +1 -1
  869. package/browser/metadata/types/DeferrableType.js.map +1 -1
  870. package/browser/metadata/types/EventListenerTypes.d.ts +12 -8
  871. package/browser/metadata/types/EventListenerTypes.js +13 -13
  872. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  873. package/browser/metadata/types/OnDeleteType.js +1 -1
  874. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  875. package/browser/metadata/types/OnUpdateType.js +1 -1
  876. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  877. package/browser/metadata/types/PropertyTypeInFunction.js +1 -1
  878. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  879. package/browser/metadata/types/RelationTypeInFunction.d.ts +2 -1
  880. package/browser/metadata/types/RelationTypeInFunction.js +1 -1
  881. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  882. package/browser/metadata/types/RelationTypes.js +1 -1
  883. package/browser/metadata/types/RelationTypes.js.map +1 -1
  884. package/browser/metadata/types/TableTypes.d.ts +1 -1
  885. package/browser/metadata/types/TableTypes.js +1 -1
  886. package/browser/metadata/types/TableTypes.js.map +1 -1
  887. package/browser/metadata/types/TreeTypes.js +1 -1
  888. package/browser/metadata/types/TreeTypes.js.map +1 -1
  889. package/browser/metadata-args/CheckMetadataArgs.js +1 -1
  890. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  891. package/browser/metadata-args/ColumnMetadataArgs.js +1 -1
  892. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  893. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +1 -1
  894. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  895. package/browser/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  896. package/browser/metadata-args/EmbeddedMetadataArgs.js +1 -1
  897. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  898. package/browser/metadata-args/EntityListenerMetadataArgs.js +1 -1
  899. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  900. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  901. package/browser/metadata-args/EntityRepositoryMetadataArgs.js +1 -1
  902. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  903. package/browser/metadata-args/EntitySubscriberMetadataArgs.js +1 -1
  904. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  905. package/browser/metadata-args/ExclusionMetadataArgs.js +1 -1
  906. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  907. package/browser/metadata-args/GeneratedMetadataArgs.js +1 -1
  908. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  909. package/browser/metadata-args/IndexMetadataArgs.d.ts +7 -2
  910. package/browser/metadata-args/IndexMetadataArgs.js +1 -1
  911. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  912. package/browser/metadata-args/InheritanceMetadataArgs.js +1 -1
  913. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  914. package/browser/metadata-args/JoinColumnMetadataArgs.js +1 -1
  915. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  916. package/browser/metadata-args/JoinTableMetadataArgs.js +1 -1
  917. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  918. package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
  919. package/browser/metadata-args/MetadataArgsStorage.js +145 -95
  920. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  921. package/browser/metadata-args/NamingStrategyMetadataArgs.js +1 -1
  922. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  923. package/browser/metadata-args/RelationCountMetadataArgs.js +1 -1
  924. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  925. package/browser/metadata-args/RelationIdMetadataArgs.js +1 -1
  926. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  927. package/browser/metadata-args/RelationMetadataArgs.js +1 -1
  928. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  929. package/browser/metadata-args/TableMetadataArgs.d.ts +9 -5
  930. package/browser/metadata-args/TableMetadataArgs.js +1 -1
  931. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  932. package/browser/metadata-args/TransactionEntityMetadataArgs.js +1 -1
  933. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  934. package/browser/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
  935. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +1 -1
  936. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  937. package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
  938. package/browser/metadata-args/TreeMetadataArgs.js +1 -1
  939. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  940. package/browser/metadata-args/UniqueMetadataArgs.d.ts +7 -2
  941. package/browser/metadata-args/UniqueMetadataArgs.js +1 -1
  942. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  943. package/browser/metadata-args/types/ColumnMode.d.ts +1 -1
  944. package/browser/metadata-args/types/ColumnMode.js +1 -1
  945. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  946. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
  947. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +47 -30
  948. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  949. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
  950. package/browser/metadata-builder/EntityMetadataBuilder.js +396 -267
  951. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  952. package/browser/metadata-builder/EntityMetadataValidator.js +78 -68
  953. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  954. package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
  955. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +144 -92
  956. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  957. package/browser/metadata-builder/MetadataUtils.js +12 -16
  958. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  959. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
  960. package/browser/metadata-builder/RelationJoinColumnBuilder.js +69 -50
  961. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  962. package/browser/migration/Migration.js +3 -5
  963. package/browser/migration/Migration.js.map +1 -1
  964. package/browser/migration/MigrationExecutor.d.ts +6 -4
  965. package/browser/migration/MigrationExecutor.js +379 -535
  966. package/browser/migration/MigrationExecutor.js.map +1 -1
  967. package/browser/migration/MigrationInterface.js +1 -1
  968. package/browser/migration/MigrationInterface.js.map +1 -1
  969. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
  970. package/browser/naming-strategy/DefaultNamingStrategy.js +90 -80
  971. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  972. package/browser/naming-strategy/NamingStrategyInterface.d.ts +17 -1
  973. package/browser/naming-strategy/NamingStrategyInterface.js +1 -1
  974. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  975. package/browser/persistence/EntityPersistExecutor.d.ts +4 -4
  976. package/browser/persistence/EntityPersistExecutor.js +126 -151
  977. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  978. package/browser/persistence/Subject.d.ts +27 -3
  979. package/browser/persistence/Subject.js +103 -67
  980. package/browser/persistence/Subject.js.map +1 -1
  981. package/browser/persistence/SubjectChangeMap.js +1 -1
  982. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  983. package/browser/persistence/SubjectChangedColumnsComputer.js +74 -52
  984. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  985. package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
  986. package/browser/persistence/SubjectDatabaseEntityLoader.js +97 -114
  987. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  988. package/browser/persistence/SubjectExecutor.d.ts +19 -2
  989. package/browser/persistence/SubjectExecutor.js +584 -419
  990. package/browser/persistence/SubjectExecutor.js.map +1 -1
  991. package/browser/persistence/SubjectTopoligicalSorter.js +63 -59
  992. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  993. package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  994. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +53 -28
  995. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  996. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +64 -59
  997. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  998. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +60 -43
  999. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1000. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +32 -29
  1001. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1002. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
  1003. package/browser/persistence/tree/ClosureSubjectExecutor.js +213 -89
  1004. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1005. package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
  1006. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +89 -48
  1007. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1008. package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
  1009. package/browser/persistence/tree/NestedSetSubjectExecutor.js +243 -62
  1010. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1011. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
  1012. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +52 -0
  1013. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
  1014. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
  1015. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +20 -0
  1016. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
  1017. package/browser/platform/BrowserDisabledDriversDummy.d.ts +38 -2
  1018. package/browser/platform/BrowserDisabledDriversDummy.js +54 -50
  1019. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  1020. package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
  1021. package/browser/platform/BrowserFileLoggerDummy.js +47 -0
  1022. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
  1023. package/browser/platform/BrowserPlatformTools.d.ts +74 -0
  1024. package/browser/platform/BrowserPlatformTools.js +141 -0
  1025. package/browser/platform/BrowserPlatformTools.js.map +1 -0
  1026. package/browser/platform/PlatformTools.d.ts +16 -21
  1027. package/browser/platform/PlatformTools.js +174 -117
  1028. package/browser/platform/PlatformTools.js.map +1 -1
  1029. package/browser/query-builder/Alias.d.ts +4 -3
  1030. package/browser/query-builder/Alias.js +18 -31
  1031. package/browser/query-builder/Alias.js.map +1 -1
  1032. package/browser/query-builder/Brackets.d.ts +4 -3
  1033. package/browser/query-builder/Brackets.js +4 -5
  1034. package/browser/query-builder/Brackets.js.map +1 -1
  1035. package/browser/query-builder/DeleteQueryBuilder.d.ts +13 -11
  1036. package/browser/query-builder/DeleteQueryBuilder.js +109 -166
  1037. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  1038. package/browser/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  1039. package/browser/query-builder/InsertOrUpdateOptions.js +3 -0
  1040. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -0
  1041. package/browser/query-builder/InsertQueryBuilder.d.ts +15 -5
  1042. package/browser/query-builder/InsertQueryBuilder.js +453 -293
  1043. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  1044. package/browser/query-builder/JoinAttribute.d.ts +12 -12
  1045. package/browser/query-builder/JoinAttribute.js +140 -189
  1046. package/browser/query-builder/JoinAttribute.js.map +1 -1
  1047. package/browser/query-builder/JoinOptions.js +1 -1
  1048. package/browser/query-builder/JoinOptions.js.map +1 -1
  1049. package/browser/query-builder/NotBrackets.d.ts +8 -0
  1050. package/browser/query-builder/NotBrackets.js +13 -0
  1051. package/browser/query-builder/NotBrackets.js.map +1 -0
  1052. package/browser/query-builder/QueryBuilder.d.ts +55 -32
  1053. package/browser/query-builder/QueryBuilder.js +698 -375
  1054. package/browser/query-builder/QueryBuilder.js.map +1 -1
  1055. package/browser/query-builder/QueryBuilderUtils.d.ts +0 -1
  1056. package/browser/query-builder/QueryBuilderUtils.js +5 -16
  1057. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  1058. package/browser/query-builder/QueryExpressionMap.d.ts +51 -29
  1059. package/browser/query-builder/QueryExpressionMap.js +92 -85
  1060. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  1061. package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
  1062. package/browser/query-builder/QueryPartialEntity.js +1 -1
  1063. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  1064. package/browser/query-builder/RelationIdLoader.d.ts +10 -12
  1065. package/browser/query-builder/RelationIdLoader.js +306 -185
  1066. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  1067. package/browser/query-builder/RelationLoader.d.ts +6 -3
  1068. package/browser/query-builder/RelationLoader.js +181 -146
  1069. package/browser/query-builder/RelationLoader.js.map +1 -1
  1070. package/browser/query-builder/RelationQueryBuilder.d.ts +2 -1
  1071. package/browser/query-builder/RelationQueryBuilder.js +81 -112
  1072. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  1073. package/browser/query-builder/RelationRemover.js +119 -84
  1074. package/browser/query-builder/RelationRemover.js.map +1 -1
  1075. package/browser/query-builder/RelationUpdater.js +128 -128
  1076. package/browser/query-builder/RelationUpdater.js.map +1 -1
  1077. package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
  1078. package/browser/query-builder/ReturningResultsEntityUpdator.js +135 -155
  1079. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1080. package/browser/query-builder/SelectQuery.js +1 -1
  1081. package/browser/query-builder/SelectQuery.js.map +1 -1
  1082. package/browser/query-builder/SelectQueryBuilder.d.ts +65 -50
  1083. package/browser/query-builder/SelectQueryBuilder.js +1642 -1291
  1084. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  1085. package/browser/query-builder/SelectQueryBuilderOption.js +1 -1
  1086. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  1087. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
  1088. package/browser/query-builder/SoftDeleteQueryBuilder.js +363 -0
  1089. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
  1090. package/browser/query-builder/UpdateQueryBuilder.d.ts +11 -8
  1091. package/browser/query-builder/UpdateQueryBuilder.js +276 -299
  1092. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  1093. package/browser/query-builder/WhereClause.d.ts +16 -0
  1094. package/browser/query-builder/WhereClause.js +3 -0
  1095. package/browser/query-builder/WhereClause.js.map +1 -0
  1096. package/browser/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
  1097. package/browser/query-builder/WhereExpressionBuilder.js +3 -0
  1098. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -0
  1099. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  1100. package/browser/query-builder/relation-count/RelationCountAttribute.js +66 -96
  1101. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1102. package/browser/query-builder/relation-count/RelationCountLoadResult.js +1 -1
  1103. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  1104. package/browser/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
  1105. package/browser/query-builder/relation-count/RelationCountLoader.js +150 -101
  1106. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1107. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +15 -18
  1108. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1109. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  1110. package/browser/query-builder/relation-id/RelationIdAttribute.js +67 -101
  1111. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1112. package/browser/query-builder/relation-id/RelationIdLoadResult.js +1 -1
  1113. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  1114. package/browser/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
  1115. package/browser/query-builder/relation-id/RelationIdLoader.js +255 -148
  1116. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1117. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +15 -18
  1118. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1119. package/browser/query-builder/result/DeleteResult.d.ts +3 -1
  1120. package/browser/query-builder/result/DeleteResult.js +7 -5
  1121. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  1122. package/browser/query-builder/result/InsertResult.d.ts +2 -0
  1123. package/browser/query-builder/result/InsertResult.js +8 -5
  1124. package/browser/query-builder/result/InsertResult.js.map +1 -1
  1125. package/browser/query-builder/result/UpdateResult.d.ts +2 -0
  1126. package/browser/query-builder/result/UpdateResult.js +9 -5
  1127. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  1128. package/browser/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
  1129. package/browser/query-builder/transformer/DocumentToEntityTransformer.js +48 -35
  1130. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1131. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +74 -101
  1132. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1133. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +25 -27
  1134. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1135. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
  1136. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +228 -159
  1137. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1138. package/browser/query-runner/BaseQueryRunner.d.ts +49 -12
  1139. package/browser/query-runner/BaseQueryRunner.js +240 -247
  1140. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  1141. package/browser/query-runner/QueryLock.d.ts +4 -0
  1142. package/browser/query-runner/QueryLock.js +24 -0
  1143. package/browser/query-runner/QueryLock.js.map +1 -0
  1144. package/browser/query-runner/QueryResult.d.ts +17 -0
  1145. package/browser/query-runner/QueryResult.js +13 -0
  1146. package/browser/query-runner/QueryResult.js.map +1 -0
  1147. package/browser/query-runner/QueryRunner.d.ts +37 -8
  1148. package/browser/query-runner/QueryRunner.js +1 -1
  1149. package/browser/query-runner/QueryRunner.js.map +1 -1
  1150. package/browser/repository/AbstractRepository.d.ts +5 -5
  1151. package/browser/repository/AbstractRepository.js +47 -54
  1152. package/browser/repository/AbstractRepository.js.map +1 -1
  1153. package/browser/repository/BaseEntity.d.ts +69 -81
  1154. package/browser/repository/BaseEntity.js +169 -131
  1155. package/browser/repository/BaseEntity.js.map +1 -1
  1156. package/browser/repository/EntityId.js +1 -1
  1157. package/browser/repository/EntityId.js.map +1 -1
  1158. package/browser/repository/FindTreesOptions.d.ts +9 -0
  1159. package/browser/repository/FindTreesOptions.js +3 -0
  1160. package/browser/repository/FindTreesOptions.js.map +1 -0
  1161. package/browser/repository/MongoRepository.d.ts +55 -9
  1162. package/browser/repository/MongoRepository.js +330 -1
  1163. package/browser/repository/MongoRepository.js.map +1 -1
  1164. package/browser/repository/RemoveOptions.js +1 -1
  1165. package/browser/repository/RemoveOptions.js.map +1 -1
  1166. package/browser/repository/Repository.d.ts +133 -96
  1167. package/browser/repository/Repository.js +288 -1
  1168. package/browser/repository/Repository.js.map +1 -1
  1169. package/browser/repository/SaveOptions.d.ts +1 -1
  1170. package/browser/repository/SaveOptions.js +1 -1
  1171. package/browser/repository/SaveOptions.js.map +1 -1
  1172. package/browser/repository/TreeRepository.d.ts +14 -9
  1173. package/browser/repository/TreeRepository.js +263 -1
  1174. package/browser/repository/TreeRepository.js.map +1 -1
  1175. package/browser/repository/UpsertOptions.d.ts +10 -0
  1176. package/browser/repository/UpsertOptions.js +3 -0
  1177. package/browser/repository/UpsertOptions.js.map +1 -0
  1178. package/browser/schema-builder/MongoSchemaBuilder.d.ts +3 -3
  1179. package/browser/schema-builder/MongoSchemaBuilder.js +28 -42
  1180. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1181. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
  1182. package/browser/schema-builder/RdbmsSchemaBuilder.js +693 -1057
  1183. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1184. package/browser/schema-builder/SchemaBuilder.js +1 -1
  1185. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  1186. package/browser/schema-builder/options/TableCheckOptions.js +1 -1
  1187. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  1188. package/browser/schema-builder/options/TableColumnOptions.d.ts +6 -2
  1189. package/browser/schema-builder/options/TableColumnOptions.js +1 -1
  1190. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  1191. package/browser/schema-builder/options/TableExclusionOptions.js +1 -1
  1192. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  1193. package/browser/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
  1194. package/browser/schema-builder/options/TableForeignKeyOptions.js +1 -1
  1195. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1196. package/browser/schema-builder/options/TableIndexOptions.d.ts +6 -1
  1197. package/browser/schema-builder/options/TableIndexOptions.js +1 -1
  1198. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  1199. package/browser/schema-builder/options/TableOptions.d.ts +8 -0
  1200. package/browser/schema-builder/options/TableOptions.js +1 -1
  1201. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  1202. package/browser/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  1203. package/browser/schema-builder/options/TableUniqueOptions.js +1 -1
  1204. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  1205. package/browser/schema-builder/options/ViewOptions.d.ts +10 -2
  1206. package/browser/schema-builder/options/ViewOptions.js +1 -1
  1207. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  1208. package/browser/schema-builder/table/Table.d.ts +13 -3
  1209. package/browser/schema-builder/table/Table.js +109 -97
  1210. package/browser/schema-builder/table/Table.js.map +1 -1
  1211. package/browser/schema-builder/table/TableCheck.d.ts +1 -0
  1212. package/browser/schema-builder/table/TableCheck.js +10 -12
  1213. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  1214. package/browser/schema-builder/table/TableColumn.d.ts +7 -2
  1215. package/browser/schema-builder/table/TableColumn.js +10 -9
  1216. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  1217. package/browser/schema-builder/table/TableExclusion.d.ts +1 -0
  1218. package/browser/schema-builder/table/TableExclusion.js +9 -10
  1219. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  1220. package/browser/schema-builder/table/TableForeignKey.d.ts +11 -1
  1221. package/browser/schema-builder/table/TableForeignKey.js +16 -12
  1222. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  1223. package/browser/schema-builder/table/TableIndex.d.ts +6 -0
  1224. package/browser/schema-builder/table/TableIndex.js +15 -14
  1225. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  1226. package/browser/schema-builder/table/TableUnique.d.ts +6 -0
  1227. package/browser/schema-builder/table/TableUnique.js +13 -12
  1228. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  1229. package/browser/schema-builder/util/TableUtils.js +10 -11
  1230. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  1231. package/browser/schema-builder/util/ViewUtils.d.ts +7 -0
  1232. package/browser/schema-builder/util/ViewUtils.js +23 -0
  1233. package/browser/schema-builder/util/ViewUtils.js.map +1 -0
  1234. package/browser/schema-builder/view/View.d.ts +12 -5
  1235. package/browser/schema-builder/view/View.js +16 -11
  1236. package/browser/schema-builder/view/View.js.map +1 -1
  1237. package/browser/subscriber/Broadcaster.d.ts +87 -2
  1238. package/browser/subscriber/Broadcaster.js +412 -119
  1239. package/browser/subscriber/Broadcaster.js.map +1 -1
  1240. package/browser/subscriber/BroadcasterResult.d.ts +4 -0
  1241. package/browser/subscriber/BroadcasterResult.js +12 -5
  1242. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  1243. package/browser/subscriber/EntitySubscriberInterface.d.ts +45 -0
  1244. package/browser/subscriber/EntitySubscriberInterface.js +1 -1
  1245. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  1246. package/browser/subscriber/event/InsertEvent.d.ts +7 -7
  1247. package/browser/subscriber/event/InsertEvent.js +1 -1
  1248. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  1249. package/browser/subscriber/event/LoadEvent.d.ts +2 -2
  1250. package/browser/subscriber/event/LoadEvent.js +1 -1
  1251. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  1252. package/browser/subscriber/event/RecoverEvent.d.ts +6 -0
  1253. package/browser/subscriber/event/RecoverEvent.js +3 -0
  1254. package/browser/subscriber/event/RecoverEvent.js.map +1 -0
  1255. package/browser/subscriber/event/RemoveEvent.d.ts +7 -7
  1256. package/browser/subscriber/event/RemoveEvent.js +1 -1
  1257. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  1258. package/browser/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  1259. package/browser/subscriber/event/SoftRemoveEvent.js +3 -0
  1260. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -0
  1261. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  1262. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  1263. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  1264. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  1265. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  1266. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  1267. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  1268. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  1269. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  1270. package/browser/subscriber/event/UpdateEvent.d.ts +5 -4
  1271. package/browser/subscriber/event/UpdateEvent.js +1 -1
  1272. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  1273. package/browser/util/ApplyValueTransformers.js +13 -29
  1274. package/browser/util/ApplyValueTransformers.js.map +1 -1
  1275. package/browser/util/DateUtils.d.ts +2 -2
  1276. package/browser/util/DateUtils.js +110 -83
  1277. package/browser/util/DateUtils.js.map +1 -1
  1278. package/browser/util/DepGraph.js +50 -50
  1279. package/browser/util/DepGraph.js.map +1 -1
  1280. package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
  1281. package/browser/util/DirectoryExportedClassesLoader.js +32 -25
  1282. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  1283. package/browser/util/ImportUtils.d.ts +1 -0
  1284. package/browser/util/ImportUtils.js +74 -0
  1285. package/browser/util/ImportUtils.js.map +1 -0
  1286. package/browser/util/InstanceChecker.d.ts +61 -0
  1287. package/browser/util/InstanceChecker.js +103 -0
  1288. package/browser/util/InstanceChecker.js.map +1 -0
  1289. package/browser/util/ObjectUtils.d.ts +17 -6
  1290. package/browser/util/ObjectUtils.js +26 -36
  1291. package/browser/util/ObjectUtils.js.map +1 -1
  1292. package/browser/util/OrmUtils.d.ts +16 -8
  1293. package/browser/util/OrmUtils.js +198 -98
  1294. package/browser/util/OrmUtils.js.map +1 -1
  1295. package/browser/util/PathUtils.d.ts +10 -0
  1296. package/browser/util/PathUtils.js +28 -0
  1297. package/browser/util/PathUtils.js.map +1 -0
  1298. package/browser/util/RandomGenerator.d.ts +0 -4
  1299. package/browser/util/RandomGenerator.js +61 -52
  1300. package/browser/util/RandomGenerator.js.map +1 -1
  1301. package/browser/util/StringUtils.d.ts +13 -3
  1302. package/browser/util/StringUtils.js +42 -19
  1303. package/browser/util/StringUtils.js.map +1 -1
  1304. package/browser/util/TreeRepositoryUtils.d.ts +23 -0
  1305. package/browser/util/TreeRepositoryUtils.js +56 -0
  1306. package/browser/util/TreeRepositoryUtils.js.map +1 -0
  1307. package/browser/util/VersionUtils.js +11 -16
  1308. package/browser/util/VersionUtils.js.map +1 -1
  1309. package/cache/DbQueryResultCache.d.ts +6 -4
  1310. package/cache/DbQueryResultCache.js +182 -187
  1311. package/cache/DbQueryResultCache.js.map +1 -1
  1312. package/cache/QueryResultCache.js.map +1 -1
  1313. package/cache/QueryResultCacheFactory.d.ts +3 -3
  1314. package/cache/QueryResultCacheFactory.js +22 -16
  1315. package/cache/QueryResultCacheFactory.js.map +1 -1
  1316. package/cache/QueryResultCacheOptions.js.map +1 -1
  1317. package/cache/RedisQueryResultCache.d.ts +3 -3
  1318. package/cache/RedisQueryResultCache.js +106 -127
  1319. package/cache/RedisQueryResultCache.js.map +1 -1
  1320. package/cli.js +18 -23
  1321. package/cli.js.map +1 -1
  1322. package/commands/CacheClearCommand.d.ts +1 -3
  1323. package/commands/CacheClearCommand.js +42 -77
  1324. package/commands/CacheClearCommand.js.map +1 -1
  1325. package/commands/CommandUtils.d.ts +7 -1
  1326. package/commands/CommandUtils.js +63 -42
  1327. package/commands/CommandUtils.js.map +1 -1
  1328. package/commands/EntityCreateCommand.d.ts +0 -9
  1329. package/commands/EntityCreateCommand.js +38 -84
  1330. package/commands/EntityCreateCommand.js.map +1 -1
  1331. package/commands/InitCommand.d.ts +12 -9
  1332. package/commands/InitCommand.js +463 -233
  1333. package/commands/InitCommand.js.map +1 -1
  1334. package/commands/MigrationCreateCommand.d.ts +6 -7
  1335. package/commands/MigrationCreateCommand.js +72 -83
  1336. package/commands/MigrationCreateCommand.js.map +1 -1
  1337. package/commands/MigrationGenerateCommand.d.ts +20 -5
  1338. package/commands/MigrationGenerateCommand.js +187 -142
  1339. package/commands/MigrationGenerateCommand.js.map +1 -1
  1340. package/commands/MigrationRevertCommand.d.ts +1 -4
  1341. package/commands/MigrationRevertCommand.js +55 -91
  1342. package/commands/MigrationRevertCommand.js.map +1 -1
  1343. package/commands/MigrationRunCommand.d.ts +1 -4
  1344. package/commands/MigrationRunCommand.js +57 -94
  1345. package/commands/MigrationRunCommand.js.map +1 -1
  1346. package/commands/MigrationShowCommand.d.ts +2 -4
  1347. package/commands/MigrationShowCommand.js +38 -74
  1348. package/commands/MigrationShowCommand.js.map +1 -1
  1349. package/commands/QueryCommand.d.ts +3 -3
  1350. package/commands/QueryCommand.js +58 -86
  1351. package/commands/QueryCommand.js.map +1 -1
  1352. package/commands/SchemaDropCommand.d.ts +2 -4
  1353. package/commands/SchemaDropCommand.js +39 -72
  1354. package/commands/SchemaDropCommand.js.map +1 -1
  1355. package/commands/SchemaLogCommand.d.ts +1 -3
  1356. package/commands/SchemaLogCommand.js +62 -81
  1357. package/commands/SchemaLogCommand.js.map +1 -1
  1358. package/commands/SchemaSyncCommand.d.ts +1 -3
  1359. package/commands/SchemaSyncCommand.js +37 -70
  1360. package/commands/SchemaSyncCommand.js.map +1 -1
  1361. package/commands/SubscriberCreateCommand.d.ts +0 -9
  1362. package/commands/SubscriberCreateCommand.js +38 -78
  1363. package/commands/SubscriberCreateCommand.js.map +1 -1
  1364. package/commands/VersionCommand.js +39 -46
  1365. package/commands/VersionCommand.js.map +1 -1
  1366. package/common/DeepPartial.d.ts +3 -3
  1367. package/common/DeepPartial.js.map +1 -1
  1368. package/common/EntityTarget.d.ts +9 -0
  1369. package/{query-builder/WhereExpression.js → common/EntityTarget.js} +1 -1
  1370. package/common/EntityTarget.js.map +1 -0
  1371. package/common/MixedList.d.ts +8 -0
  1372. package/{find-options/FindOptions.js → common/MixedList.js} +1 -1
  1373. package/common/MixedList.js.map +1 -0
  1374. package/common/NonNever.d.ts +6 -0
  1375. package/{entity-factory/EntityFactoryInterface.js → common/NonNever.js} +1 -1
  1376. package/common/NonNever.js.map +1 -0
  1377. package/common/ObjectLiteral.js.map +1 -1
  1378. package/common/ObjectType.js.map +1 -1
  1379. package/common/RelationType.d.ts +14 -0
  1380. package/{driver/aurora-data-api/AuroraDataApiConnectionOptions.js → common/RelationType.js} +1 -1
  1381. package/common/RelationType.js.map +1 -0
  1382. package/connection/BaseConnectionOptions.d.ts +4 -144
  1383. package/connection/BaseConnectionOptions.js.map +1 -1
  1384. package/connection/Connection.d.ts +4 -219
  1385. package/connection/Connection.js +6 -531
  1386. package/connection/Connection.js.map +1 -1
  1387. package/connection/ConnectionManager.d.ts +11 -5
  1388. package/connection/ConnectionManager.js +29 -27
  1389. package/connection/ConnectionManager.js.map +1 -1
  1390. package/connection/ConnectionMetadataBuilder.d.ts +6 -6
  1391. package/connection/ConnectionMetadataBuilder.js +44 -36
  1392. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  1393. package/connection/ConnectionOptions.d.ts +4 -14
  1394. package/connection/ConnectionOptions.js.map +1 -1
  1395. package/connection/ConnectionOptionsReader.d.ts +8 -8
  1396. package/connection/ConnectionOptionsReader.js +151 -172
  1397. package/connection/ConnectionOptionsReader.js.map +1 -1
  1398. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
  1399. package/connection/options-reader/ConnectionOptionsEnvReader.js +71 -50
  1400. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  1401. package/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
  1402. package/connection/options-reader/ConnectionOptionsXmlReader.js +48 -42
  1403. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  1404. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
  1405. package/connection/options-reader/ConnectionOptionsYmlReader.js +17 -11
  1406. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  1407. package/container.d.ts +12 -0
  1408. package/container.js +20 -11
  1409. package/container.js.map +1 -1
  1410. package/data-source/BaseDataSourceOptions.d.ts +179 -0
  1411. package/data-source/BaseDataSourceOptions.js +4 -0
  1412. package/data-source/BaseDataSourceOptions.js.map +1 -0
  1413. package/data-source/DataSource.d.ts +246 -0
  1414. package/data-source/DataSource.js +452 -0
  1415. package/data-source/DataSource.js.map +1 -0
  1416. package/data-source/DataSourceOptions.d.ts +21 -0
  1417. package/data-source/DataSourceOptions.js +4 -0
  1418. package/data-source/DataSourceOptions.js.map +1 -0
  1419. package/data-source/index.d.ts +2 -0
  1420. package/data-source/index.js +7 -0
  1421. package/data-source/index.js.map +1 -0
  1422. package/decorator/Check.d.ts +2 -2
  1423. package/decorator/Check.js +11 -7
  1424. package/decorator/Check.js.map +1 -1
  1425. package/decorator/EntityRepository.d.ts +3 -1
  1426. package/decorator/EntityRepository.js +5 -2
  1427. package/decorator/EntityRepository.js.map +1 -1
  1428. package/decorator/Exclusion.d.ts +2 -2
  1429. package/decorator/Exclusion.js +11 -7
  1430. package/decorator/Exclusion.js.map +1 -1
  1431. package/decorator/Generated.d.ts +1 -1
  1432. package/decorator/Generated.js +5 -5
  1433. package/decorator/Generated.js.map +1 -1
  1434. package/decorator/Index.d.ts +10 -10
  1435. package/decorator/Index.js +30 -9
  1436. package/decorator/Index.js.map +1 -1
  1437. package/decorator/Unique.d.ts +7 -6
  1438. package/decorator/Unique.js +38 -8
  1439. package/decorator/Unique.js.map +1 -1
  1440. package/decorator/columns/Column.d.ts +13 -13
  1441. package/decorator/columns/Column.js +29 -16
  1442. package/decorator/columns/Column.js.map +1 -1
  1443. package/decorator/columns/CreateDateColumn.d.ts +2 -2
  1444. package/decorator/columns/CreateDateColumn.js +4 -3
  1445. package/decorator/columns/CreateDateColumn.js.map +1 -1
  1446. package/decorator/columns/DeleteDateColumn.d.ts +6 -0
  1447. package/decorator/columns/DeleteDateColumn.js +21 -0
  1448. package/decorator/columns/DeleteDateColumn.js.map +1 -0
  1449. package/decorator/columns/ObjectIdColumn.d.ts +2 -2
  1450. package/decorator/columns/ObjectIdColumn.js +4 -3
  1451. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  1452. package/decorator/columns/PrimaryColumn.d.ts +11 -3
  1453. package/decorator/columns/PrimaryColumn.js +14 -9
  1454. package/decorator/columns/PrimaryColumn.js.map +1 -1
  1455. package/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
  1456. package/decorator/columns/PrimaryGeneratedColumn.js +12 -10
  1457. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  1458. package/decorator/columns/UpdateDateColumn.d.ts +2 -2
  1459. package/decorator/columns/UpdateDateColumn.js +4 -3
  1460. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  1461. package/decorator/columns/VersionColumn.d.ts +2 -2
  1462. package/decorator/columns/VersionColumn.js +4 -3
  1463. package/decorator/columns/VersionColumn.js.map +1 -1
  1464. package/decorator/columns/ViewColumn.d.ts +2 -1
  1465. package/decorator/columns/ViewColumn.js +5 -4
  1466. package/decorator/columns/ViewColumn.js.map +1 -1
  1467. package/decorator/entity/ChildEntity.d.ts +1 -1
  1468. package/decorator/entity/ChildEntity.js +6 -5
  1469. package/decorator/entity/ChildEntity.js.map +1 -1
  1470. package/decorator/entity/Entity.d.ts +3 -3
  1471. package/decorator/entity/Entity.js +9 -5
  1472. package/decorator/entity/Entity.js.map +1 -1
  1473. package/decorator/entity/TableInheritance.d.ts +2 -2
  1474. package/decorator/entity/TableInheritance.js +8 -3
  1475. package/decorator/entity/TableInheritance.js.map +1 -1
  1476. package/decorator/entity-view/ViewEntity.d.ts +2 -2
  1477. package/decorator/entity-view/ViewEntity.js +12 -5
  1478. package/decorator/entity-view/ViewEntity.js.map +1 -1
  1479. package/decorator/listeners/AfterInsert.d.ts +1 -1
  1480. package/decorator/listeners/AfterInsert.js +5 -4
  1481. package/decorator/listeners/AfterInsert.js.map +1 -1
  1482. package/decorator/listeners/AfterLoad.d.ts +1 -1
  1483. package/decorator/listeners/AfterLoad.js +5 -4
  1484. package/decorator/listeners/AfterLoad.js.map +1 -1
  1485. package/decorator/listeners/AfterRecover.d.ts +4 -0
  1486. package/decorator/listeners/AfterRecover.js +20 -0
  1487. package/decorator/listeners/AfterRecover.js.map +1 -0
  1488. package/decorator/listeners/AfterRemove.d.ts +1 -1
  1489. package/decorator/listeners/AfterRemove.js +5 -4
  1490. package/decorator/listeners/AfterRemove.js.map +1 -1
  1491. package/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  1492. package/decorator/listeners/AfterSoftRemove.js +20 -0
  1493. package/decorator/listeners/AfterSoftRemove.js.map +1 -0
  1494. package/decorator/listeners/AfterUpdate.d.ts +1 -1
  1495. package/decorator/listeners/AfterUpdate.js +5 -4
  1496. package/decorator/listeners/AfterUpdate.js.map +1 -1
  1497. package/decorator/listeners/BeforeInsert.d.ts +1 -1
  1498. package/decorator/listeners/BeforeInsert.js +5 -4
  1499. package/decorator/listeners/BeforeInsert.js.map +1 -1
  1500. package/decorator/listeners/BeforeRecover.d.ts +4 -0
  1501. package/decorator/listeners/BeforeRecover.js +20 -0
  1502. package/decorator/listeners/BeforeRecover.js.map +1 -0
  1503. package/decorator/listeners/BeforeRemove.d.ts +1 -1
  1504. package/decorator/listeners/BeforeRemove.js +5 -4
  1505. package/decorator/listeners/BeforeRemove.js.map +1 -1
  1506. package/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  1507. package/decorator/listeners/BeforeSoftRemove.js +20 -0
  1508. package/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  1509. package/decorator/listeners/BeforeUpdate.d.ts +1 -1
  1510. package/decorator/listeners/BeforeUpdate.js +5 -4
  1511. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  1512. package/decorator/listeners/EventSubscriber.d.ts +1 -1
  1513. package/decorator/listeners/EventSubscriber.js +4 -3
  1514. package/decorator/listeners/EventSubscriber.js.map +1 -1
  1515. package/decorator/options/ColumnCommonOptions.d.ts +1 -1
  1516. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  1517. package/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
  1518. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  1519. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  1520. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  1521. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  1522. package/decorator/options/ColumnOptions.d.ts +5 -1
  1523. package/decorator/options/ColumnOptions.js.map +1 -1
  1524. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  1525. package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  1526. package/decorator/options/EntityOptions.js.map +1 -1
  1527. package/decorator/options/IndexOptions.d.ts +5 -0
  1528. package/decorator/options/IndexOptions.js.map +1 -1
  1529. package/decorator/options/JoinColumnOptions.js.map +1 -1
  1530. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  1531. package/decorator/options/JoinTableOptions.js.map +1 -1
  1532. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  1533. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +4 -0
  1534. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  1535. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  1536. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  1537. package/decorator/options/RelationOptions.d.ts +12 -2
  1538. package/decorator/options/RelationOptions.js.map +1 -1
  1539. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  1540. package/decorator/options/TransactionOptions.js.map +1 -1
  1541. package/decorator/options/UniqueOptions.d.ts +10 -0
  1542. package/decorator/options/UniqueOptions.js +4 -0
  1543. package/decorator/options/UniqueOptions.js.map +1 -0
  1544. package/decorator/options/ValueTransformer.js.map +1 -1
  1545. package/decorator/options/ViewColumnOptions.d.ts +15 -0
  1546. package/decorator/options/ViewColumnOptions.js +4 -0
  1547. package/decorator/options/ViewColumnOptions.js.map +1 -0
  1548. package/decorator/options/ViewEntityOptions.d.ts +7 -2
  1549. package/decorator/options/ViewEntityOptions.js.map +1 -1
  1550. package/decorator/relations/JoinColumn.d.ts +4 -4
  1551. package/decorator/relations/JoinColumn.js +8 -5
  1552. package/decorator/relations/JoinColumn.js.map +1 -1
  1553. package/decorator/relations/JoinTable.d.ts +4 -4
  1554. package/decorator/relations/JoinTable.js +15 -5
  1555. package/decorator/relations/JoinTable.js.map +1 -1
  1556. package/decorator/relations/ManyToMany.d.ts +4 -3
  1557. package/decorator/relations/ManyToMany.js +14 -9
  1558. package/decorator/relations/ManyToMany.js.map +1 -1
  1559. package/decorator/relations/ManyToOne.d.ts +10 -9
  1560. package/decorator/relations/ManyToOne.js +19 -14
  1561. package/decorator/relations/ManyToOne.js.map +1 -1
  1562. package/decorator/relations/OneToMany.d.ts +6 -4
  1563. package/decorator/relations/OneToMany.js +15 -10
  1564. package/decorator/relations/OneToMany.js.map +1 -1
  1565. package/decorator/relations/OneToOne.d.ts +4 -3
  1566. package/decorator/relations/OneToOne.js +14 -9
  1567. package/decorator/relations/OneToOne.js.map +1 -1
  1568. package/decorator/relations/RelationCount.d.ts +2 -2
  1569. package/decorator/relations/RelationCount.js +4 -3
  1570. package/decorator/relations/RelationCount.js.map +1 -1
  1571. package/decorator/relations/RelationId.d.ts +2 -2
  1572. package/decorator/relations/RelationId.js +4 -3
  1573. package/decorator/relations/RelationId.js.map +1 -1
  1574. package/decorator/tree/Tree.d.ts +2 -1
  1575. package/decorator/tree/Tree.js +6 -4
  1576. package/decorator/tree/Tree.js.map +1 -1
  1577. package/decorator/tree/TreeChildren.d.ts +2 -2
  1578. package/decorator/tree/TreeChildren.js +13 -7
  1579. package/decorator/tree/TreeChildren.js.map +1 -1
  1580. package/decorator/tree/TreeLevelColumn.d.ts +1 -1
  1581. package/decorator/tree/TreeLevelColumn.js +4 -3
  1582. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  1583. package/decorator/tree/TreeParent.d.ts +4 -1
  1584. package/decorator/tree/TreeParent.js +15 -7
  1585. package/decorator/tree/TreeParent.js.map +1 -1
  1586. package/driver/Driver.d.ts +39 -9
  1587. package/driver/Driver.js.map +1 -1
  1588. package/driver/DriverFactory.d.ts +2 -2
  1589. package/driver/DriverFactory.js +54 -25
  1590. package/driver/DriverFactory.js.map +1 -1
  1591. package/driver/DriverUtils.d.ts +39 -10
  1592. package/driver/DriverUtils.js +180 -54
  1593. package/driver/DriverUtils.js.map +1 -1
  1594. package/driver/Query.d.ts +1 -0
  1595. package/driver/Query.js +5 -4
  1596. package/driver/Query.js.map +1 -1
  1597. package/driver/SqlInMemory.js +4 -4
  1598. package/driver/SqlInMemory.js.map +1 -1
  1599. package/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
  1600. package/driver/aurora-mysql/AuroraMysqlConnection.js +19 -0
  1601. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
  1602. package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
  1603. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +4 -0
  1604. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
  1605. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
  1606. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +4 -0
  1607. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
  1608. package/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
  1609. package/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +330 -217
  1610. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
  1611. package/{browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +28 -18
  1612. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1681 -0
  1613. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
  1614. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
  1615. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +4 -0
  1616. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
  1617. package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
  1618. package/driver/aurora-postgres/AuroraPostgresDriver.js +103 -0
  1619. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
  1620. package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
  1621. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +139 -0
  1622. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
  1623. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
  1624. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
  1625. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  1626. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
  1627. package/driver/better-sqlite3/BetterSqlite3Driver.js +154 -0
  1628. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  1629. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
  1630. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +128 -0
  1631. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  1632. package/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
  1633. package/driver/capacitor/CapacitorConnectionOptions.js +4 -0
  1634. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
  1635. package/driver/capacitor/CapacitorDriver.d.ts +27 -0
  1636. package/driver/capacitor/CapacitorDriver.js +83 -0
  1637. package/driver/capacitor/CapacitorDriver.js.map +1 -0
  1638. package/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
  1639. package/driver/capacitor/CapacitorQueryRunner.js +98 -0
  1640. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
  1641. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  1642. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
  1643. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  1644. package/driver/cockroachdb/CockroachDriver.d.ts +49 -8
  1645. package/driver/cockroachdb/CockroachDriver.js +331 -271
  1646. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  1647. package/driver/cockroachdb/CockroachQueryRunner.d.ts +21 -18
  1648. package/driver/cockroachdb/CockroachQueryRunner.js +1592 -2040
  1649. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  1650. package/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
  1651. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  1652. package/driver/cordova/CordovaDriver.d.ts +5 -4
  1653. package/driver/cordova/CordovaDriver.js +38 -52
  1654. package/driver/cordova/CordovaDriver.js.map +1 -1
  1655. package/driver/cordova/CordovaQueryRunner.d.ts +27 -1
  1656. package/driver/cordova/CordovaQueryRunner.js +105 -56
  1657. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  1658. package/driver/expo/ExpoConnectionOptions.d.ts +6 -2
  1659. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  1660. package/driver/expo/ExpoDriver.d.ts +4 -7
  1661. package/driver/expo/ExpoDriver.js +36 -55
  1662. package/driver/expo/ExpoDriver.js.map +1 -1
  1663. package/driver/expo/ExpoQueryRunner.d.ts +9 -1
  1664. package/driver/expo/ExpoQueryRunner.js +129 -98
  1665. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  1666. package/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
  1667. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  1668. package/driver/mongodb/MongoDriver.d.ts +36 -12
  1669. package/driver/mongodb/MongoDriver.js +153 -105
  1670. package/driver/mongodb/MongoDriver.js.map +1 -1
  1671. package/driver/mongodb/MongoQueryRunner.d.ts +26 -8
  1672. package/driver/mongodb/MongoQueryRunner.js +332 -748
  1673. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  1674. package/driver/mongodb/typings.d.ts +12 -11
  1675. package/driver/mongodb/typings.js +1 -1
  1676. package/driver/mongodb/typings.js.map +1 -1
  1677. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  1678. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  1679. package/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
  1680. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  1681. package/driver/mysql/MysqlDriver.d.ts +48 -11
  1682. package/driver/mysql/MysqlDriver.js +450 -279
  1683. package/driver/mysql/MysqlDriver.js.map +1 -1
  1684. package/driver/mysql/MysqlQueryRunner.d.ts +24 -15
  1685. package/driver/mysql/MysqlQueryRunner.js +1567 -1764
  1686. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  1687. package/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
  1688. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  1689. package/driver/nativescript/NativescriptDriver.d.ts +5 -4
  1690. package/driver/nativescript/NativescriptDriver.js +41 -46
  1691. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  1692. package/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
  1693. package/driver/nativescript/NativescriptQueryRunner.js +59 -42
  1694. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  1695. package/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
  1696. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  1697. package/driver/oracle/OracleConnectionOptions.d.ts +11 -2
  1698. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  1699. package/driver/oracle/OracleDriver.d.ts +31 -7
  1700. package/driver/oracle/OracleDriver.js +338 -242
  1701. package/driver/oracle/OracleDriver.js.map +1 -1
  1702. package/driver/oracle/OracleQueryRunner.d.ts +22 -9
  1703. package/driver/oracle/OracleQueryRunner.js +1361 -1683
  1704. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  1705. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  1706. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  1707. package/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
  1708. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  1709. package/driver/postgres/PostgresDriver.d.ts +81 -19
  1710. package/driver/postgres/PostgresDriver.js +624 -443
  1711. package/driver/postgres/PostgresDriver.js.map +1 -1
  1712. package/driver/postgres/PostgresQueryRunner.d.ts +47 -26
  1713. package/driver/postgres/PostgresQueryRunner.js +2144 -2300
  1714. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  1715. package/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
  1716. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  1717. package/driver/react-native/ReactNativeDriver.d.ts +4 -3
  1718. package/driver/react-native/ReactNativeDriver.js +36 -45
  1719. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  1720. package/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
  1721. package/driver/react-native/ReactNativeQueryRunner.js +67 -56
  1722. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  1723. package/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
  1724. package/driver/sap/SapConnectionCredentialsOptions.js +4 -0
  1725. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
  1726. package/driver/sap/SapConnectionOptions.d.ts +59 -0
  1727. package/driver/sap/SapConnectionOptions.js +4 -0
  1728. package/driver/sap/SapConnectionOptions.js.map +1 -0
  1729. package/driver/sap/SapDriver.d.ts +214 -0
  1730. package/driver/sap/SapDriver.js +645 -0
  1731. package/driver/sap/SapDriver.js.map +1 -0
  1732. package/driver/sap/SapQueryRunner.d.ts +342 -0
  1733. package/driver/sap/SapQueryRunner.js +1991 -0
  1734. package/driver/sap/SapQueryRunner.js.map +1 -0
  1735. package/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
  1736. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  1737. package/driver/sqlite/SqliteDriver.d.ts +18 -4
  1738. package/driver/sqlite/SqliteDriver.js +111 -87
  1739. package/driver/sqlite/SqliteDriver.js.map +1 -1
  1740. package/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
  1741. package/driver/sqlite/SqliteQueryRunner.js +88 -71
  1742. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  1743. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
  1744. package/driver/sqlite-abstract/AbstractSqliteDriver.js +259 -142
  1745. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  1746. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +24 -5
  1747. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1034 -1451
  1748. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  1749. package/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
  1750. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  1751. package/driver/sqljs/SqljsDriver.d.ts +4 -3
  1752. package/driver/sqljs/SqljsDriver.js +160 -232
  1753. package/driver/sqljs/SqljsDriver.js.map +1 -1
  1754. package/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
  1755. package/driver/sqljs/SqljsQueryRunner.js +89 -64
  1756. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  1757. package/driver/sqlserver/MssqlParameter.d.ts +1 -0
  1758. package/driver/sqlserver/MssqlParameter.js +5 -8
  1759. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  1760. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  1761. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  1762. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
  1763. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  1764. package/driver/sqlserver/SqlServerDriver.d.ts +43 -9
  1765. package/driver/sqlserver/SqlServerDriver.js +366 -262
  1766. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  1767. package/driver/sqlserver/SqlServerQueryRunner.d.ts +18 -28
  1768. package/driver/sqlserver/SqlServerQueryRunner.js +1825 -2322
  1769. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  1770. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  1771. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +4 -0
  1772. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  1773. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  1774. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +4 -0
  1775. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  1776. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  1777. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +4 -0
  1778. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  1779. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  1780. package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js → sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js} +1 -1
  1781. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  1782. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  1783. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +4 -0
  1784. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  1785. package/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  1786. package/driver/sqlserver/authentication/DefaultAuthentication.js +4 -0
  1787. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  1788. package/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  1789. package/driver/sqlserver/authentication/NtlmAuthentication.js +4 -0
  1790. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  1791. package/driver/types/ColumnTypes.d.ts +5 -5
  1792. package/driver/types/ColumnTypes.js.map +1 -1
  1793. package/driver/types/DataTypeDefaults.js.map +1 -1
  1794. package/driver/types/DatabaseType.d.ts +1 -1
  1795. package/driver/types/DatabaseType.js.map +1 -1
  1796. package/driver/types/IsolationLevel.js.map +1 -1
  1797. package/driver/types/MappedColumnTypes.d.ts +12 -0
  1798. package/driver/types/MappedColumnTypes.js.map +1 -1
  1799. package/driver/types/MetadataTableType.d.ts +5 -0
  1800. package/driver/types/MetadataTableType.js +11 -0
  1801. package/driver/types/MetadataTableType.js.map +1 -0
  1802. package/driver/types/ReplicationMode.d.ts +1 -0
  1803. package/driver/types/ReplicationMode.js +4 -0
  1804. package/driver/types/ReplicationMode.js.map +1 -0
  1805. package/driver/types/UpsertType.d.ts +1 -0
  1806. package/driver/types/UpsertType.js +4 -0
  1807. package/driver/types/UpsertType.js.map +1 -0
  1808. package/entity-manager/EntityManager.d.ts +143 -286
  1809. package/entity-manager/EntityManager.js +541 -447
  1810. package/entity-manager/EntityManager.js.map +1 -1
  1811. package/entity-manager/EntityManagerFactory.d.ts +2 -2
  1812. package/entity-manager/EntityManagerFactory.js +10 -14
  1813. package/entity-manager/EntityManagerFactory.js.map +1 -1
  1814. package/entity-manager/MongoEntityManager.d.ts +101 -64
  1815. package/entity-manager/MongoEntityManager.js +507 -473
  1816. package/entity-manager/MongoEntityManager.js.map +1 -1
  1817. package/entity-manager/SqljsEntityManager.d.ts +3 -2
  1818. package/entity-manager/SqljsEntityManager.js +16 -36
  1819. package/entity-manager/SqljsEntityManager.js.map +1 -1
  1820. package/entity-schema/EntitySchema.d.ts +1 -0
  1821. package/entity-schema/EntitySchema.js +5 -4
  1822. package/entity-schema/EntitySchema.js.map +1 -1
  1823. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  1824. package/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
  1825. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  1826. package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  1827. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +8 -0
  1828. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  1829. package/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  1830. package/entity-schema/EntitySchemaEmbeddedError.js +18 -0
  1831. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  1832. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  1833. package/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
  1834. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  1835. package/entity-schema/EntitySchemaOptions.d.ts +22 -10
  1836. package/entity-schema/EntitySchemaOptions.js +3 -5
  1837. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  1838. package/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
  1839. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  1840. package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  1841. package/entity-schema/EntitySchemaTransformer.js +230 -183
  1842. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  1843. package/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
  1844. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  1845. package/error/AlreadyHasActiveConnectionError.d.ts +2 -2
  1846. package/error/AlreadyHasActiveConnectionError.js +7 -12
  1847. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  1848. package/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
  1849. package/error/CannotAttachTreeChildrenEntityError.js +8 -12
  1850. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  1851. package/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
  1852. package/error/CannotConnectAlreadyConnectedError.js +6 -11
  1853. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  1854. package/error/CannotCreateEntityIdMapError.d.ts +2 -2
  1855. package/error/CannotCreateEntityIdMapError.js +8 -12
  1856. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  1857. package/error/CannotDetermineEntityError.d.ts +2 -2
  1858. package/error/CannotDetermineEntityError.js +7 -11
  1859. package/error/CannotDetermineEntityError.js.map +1 -1
  1860. package/error/CannotExecuteNotConnectedError.d.ts +2 -2
  1861. package/error/CannotExecuteNotConnectedError.js +6 -11
  1862. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  1863. package/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
  1864. package/error/CannotGetEntityManagerNotConnectedError.js +6 -11
  1865. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  1866. package/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
  1867. package/error/CannotReflectMethodParameterTypeError.js +8 -13
  1868. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  1869. package/error/CircularRelationsError.d.ts +2 -2
  1870. package/error/CircularRelationsError.js +7 -11
  1871. package/error/CircularRelationsError.js.map +1 -1
  1872. package/error/ColumnTypeUndefinedError.d.ts +2 -2
  1873. package/error/ColumnTypeUndefinedError.js +9 -14
  1874. package/error/ColumnTypeUndefinedError.js.map +1 -1
  1875. package/error/ConnectionIsNotSetError.d.ts +2 -2
  1876. package/error/ConnectionIsNotSetError.js +6 -11
  1877. package/error/ConnectionIsNotSetError.js.map +1 -1
  1878. package/error/ConnectionNotFoundError.d.ts +2 -2
  1879. package/error/ConnectionNotFoundError.js +6 -11
  1880. package/error/ConnectionNotFoundError.js.map +1 -1
  1881. package/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
  1882. package/error/CustomRepositoryCannotInheritRepositoryError.js +9 -12
  1883. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  1884. package/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
  1885. package/error/CustomRepositoryDoesNotHaveEntityError.js +9 -12
  1886. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  1887. package/error/CustomRepositoryNotFoundError.d.ts +2 -2
  1888. package/error/CustomRepositoryNotFoundError.js +9 -12
  1889. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  1890. package/error/DataTypeNotSupportedError.d.ts +2 -2
  1891. package/error/DataTypeNotSupportedError.js +8 -12
  1892. package/error/DataTypeNotSupportedError.js.map +1 -1
  1893. package/error/DriverOptionNotSetError.d.ts +2 -2
  1894. package/error/DriverOptionNotSetError.js +7 -11
  1895. package/error/DriverOptionNotSetError.js.map +1 -1
  1896. package/error/DriverPackageNotInstalledError.d.ts +2 -2
  1897. package/error/DriverPackageNotInstalledError.js +7 -11
  1898. package/error/DriverPackageNotInstalledError.js.map +1 -1
  1899. package/error/EntityMetadataNotFoundError.d.ts +5 -6
  1900. package/error/EntityMetadataNotFoundError.js +18 -19
  1901. package/error/EntityMetadataNotFoundError.js.map +1 -1
  1902. package/error/EntityNotFoundError.d.ts +5 -5
  1903. package/error/EntityNotFoundError.js +22 -21
  1904. package/error/EntityNotFoundError.js.map +1 -1
  1905. package/error/EntityPropertyNotFoundError.d.ts +8 -0
  1906. package/error/EntityPropertyNotFoundError.js +17 -0
  1907. package/error/EntityPropertyNotFoundError.js.map +1 -0
  1908. package/error/FindRelationsNotFoundError.d.ts +7 -0
  1909. package/error/FindRelationsNotFoundError.js +23 -0
  1910. package/error/FindRelationsNotFoundError.js.map +1 -0
  1911. package/error/InitializedRelationError.d.ts +2 -1
  1912. package/error/InitializedRelationError.js +8 -12
  1913. package/error/InitializedRelationError.js.map +1 -1
  1914. package/error/InsertValuesMissingError.d.ts +2 -2
  1915. package/error/InsertValuesMissingError.js +7 -11
  1916. package/error/InsertValuesMissingError.js.map +1 -1
  1917. package/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
  1918. package/error/LimitOnUpdateNotSupportedError.js +7 -12
  1919. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  1920. package/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
  1921. package/error/LockNotSupportedOnGivenDriverError.js +6 -11
  1922. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  1923. package/error/MetadataAlreadyExistsError.d.ts +2 -4
  1924. package/error/MetadataAlreadyExistsError.js +12 -15
  1925. package/error/MetadataAlreadyExistsError.js.map +1 -1
  1926. package/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
  1927. package/error/MetadataWithSuchNameAlreadyExistsError.js +10 -14
  1928. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  1929. package/error/MissingDeleteDateColumnError.d.ts +5 -0
  1930. package/error/MissingDeleteDateColumnError.js +12 -0
  1931. package/error/MissingDeleteDateColumnError.js.map +1 -0
  1932. package/error/MissingDriverError.d.ts +3 -3
  1933. package/error/MissingDriverError.js +7 -11
  1934. package/error/MissingDriverError.js.map +1 -1
  1935. package/error/MissingJoinColumnError.d.ts +2 -4
  1936. package/error/MissingJoinColumnError.js +13 -17
  1937. package/error/MissingJoinColumnError.js.map +1 -1
  1938. package/error/MissingJoinTableError.d.ts +2 -4
  1939. package/error/MissingJoinTableError.js +13 -17
  1940. package/error/MissingJoinTableError.js.map +1 -1
  1941. package/error/MissingPrimaryColumnError.d.ts +2 -4
  1942. package/error/MissingPrimaryColumnError.js +7 -14
  1943. package/error/MissingPrimaryColumnError.js.map +1 -1
  1944. package/error/MustBeEntityError.d.ts +2 -2
  1945. package/error/MustBeEntityError.js +6 -11
  1946. package/error/MustBeEntityError.js.map +1 -1
  1947. package/error/NamingStrategyNotFoundError.d.ts +2 -2
  1948. package/error/NamingStrategyNotFoundError.js +12 -13
  1949. package/error/NamingStrategyNotFoundError.js.map +1 -1
  1950. package/error/NestedSetMultipleRootError.d.ts +4 -0
  1951. package/error/NestedSetMultipleRootError.js +12 -0
  1952. package/error/NestedSetMultipleRootError.js.map +1 -0
  1953. package/error/NoConnectionForRepositoryError.d.ts +2 -2
  1954. package/error/NoConnectionForRepositoryError.js +7 -12
  1955. package/error/NoConnectionForRepositoryError.js.map +1 -1
  1956. package/error/NoConnectionOptionError.d.ts +2 -1
  1957. package/error/NoConnectionOptionError.js +7 -10
  1958. package/error/NoConnectionOptionError.js.map +1 -1
  1959. package/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
  1960. package/error/NoNeedToReleaseEntityManagerError.js +8 -13
  1961. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  1962. package/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
  1963. package/error/NoVersionOrUpdateDateColumnError.js +6 -11
  1964. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  1965. package/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
  1966. package/error/OffsetWithoutLimitNotSupportedError.js +9 -12
  1967. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  1968. package/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
  1969. package/error/OptimisticLockCanNotBeUsedError.js +6 -11
  1970. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  1971. package/error/OptimisticLockVersionMismatchError.d.ts +2 -2
  1972. package/error/OptimisticLockVersionMismatchError.js +6 -11
  1973. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  1974. package/error/PersistedEntityNotFoundError.d.ts +2 -2
  1975. package/error/PersistedEntityNotFoundError.js +6 -11
  1976. package/error/PersistedEntityNotFoundError.js.map +1 -1
  1977. package/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
  1978. package/error/PessimisticLockTransactionRequiredError.js +6 -11
  1979. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  1980. package/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
  1981. package/error/PrimaryColumnCannotBeNullableError.js +7 -12
  1982. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  1983. package/error/QueryFailedError.d.ts +6 -2
  1984. package/error/QueryFailedError.js +20 -14
  1985. package/error/QueryFailedError.js.map +1 -1
  1986. package/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
  1987. package/error/QueryRunnerAlreadyReleasedError.js +6 -13
  1988. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  1989. package/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
  1990. package/error/QueryRunnerProviderAlreadyReleasedError.js +7 -11
  1991. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  1992. package/error/RepositoryNotFoundError.d.ts +4 -4
  1993. package/error/RepositoryNotFoundError.js +17 -15
  1994. package/error/RepositoryNotFoundError.js.map +1 -1
  1995. package/error/RepositoryNotTreeError.d.ts +4 -4
  1996. package/error/RepositoryNotTreeError.js +19 -18
  1997. package/error/RepositoryNotTreeError.js.map +1 -1
  1998. package/error/ReturningStatementNotSupportedError.d.ts +2 -2
  1999. package/error/ReturningStatementNotSupportedError.js +6 -11
  2000. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  2001. package/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
  2002. package/error/SubjectRemovedAndUpdatedError.js +7 -12
  2003. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  2004. package/error/SubjectWithoutIdentifierError.d.ts +2 -2
  2005. package/error/SubjectWithoutIdentifierError.js +6 -12
  2006. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  2007. package/error/TransactionAlreadyStartedError.d.ts +2 -2
  2008. package/error/TransactionAlreadyStartedError.js +6 -11
  2009. package/error/TransactionAlreadyStartedError.js.map +1 -1
  2010. package/error/TransactionNotStartedError.d.ts +2 -2
  2011. package/error/TransactionNotStartedError.js +6 -11
  2012. package/error/TransactionNotStartedError.js.map +1 -1
  2013. package/error/TreeRepositoryNotSupportedError.d.ts +2 -2
  2014. package/error/TreeRepositoryNotSupportedError.js +6 -11
  2015. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  2016. package/error/TypeORMError.d.ts +4 -0
  2017. package/error/TypeORMError.js +23 -0
  2018. package/error/TypeORMError.js.map +1 -0
  2019. package/error/UpdateValuesMissingError.d.ts +2 -5
  2020. package/error/UpdateValuesMissingError.js +6 -14
  2021. package/error/UpdateValuesMissingError.js.map +1 -1
  2022. package/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
  2023. package/error/UsingJoinColumnIsNotAllowedError.js +7 -14
  2024. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  2025. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
  2026. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +8 -15
  2027. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  2028. package/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
  2029. package/error/UsingJoinTableIsNotAllowedError.js +8 -15
  2030. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  2031. package/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
  2032. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +8 -15
  2033. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  2034. package/error/index.d.ts +62 -0
  2035. package/error/index.js +67 -0
  2036. package/error/index.js.map +1 -0
  2037. package/find-options/EqualOperator.d.ts +5 -0
  2038. package/find-options/EqualOperator.js +13 -0
  2039. package/find-options/EqualOperator.js.map +1 -0
  2040. package/find-options/FindManyOptions.d.ts +14 -0
  2041. package/find-options/FindManyOptions.js +4 -0
  2042. package/find-options/FindManyOptions.js.map +1 -0
  2043. package/find-options/FindOneOptions.d.ts +86 -0
  2044. package/find-options/FindOneOptions.js +4 -0
  2045. package/find-options/FindOneOptions.js.map +1 -0
  2046. package/find-options/FindOperator.d.ts +31 -8
  2047. package/find-options/FindOperator.js +65 -96
  2048. package/find-options/FindOperator.js.map +1 -1
  2049. package/find-options/FindOperatorType.d.ts +1 -1
  2050. package/find-options/FindOperatorType.js.map +1 -1
  2051. package/find-options/FindOptionsOrder.d.ts +19 -0
  2052. package/find-options/FindOptionsOrder.js +4 -0
  2053. package/find-options/FindOptionsOrder.js.map +1 -0
  2054. package/find-options/FindOptionsRelations.d.ts +19 -0
  2055. package/find-options/FindOptionsRelations.js +4 -0
  2056. package/find-options/FindOptionsRelations.js.map +1 -0
  2057. package/find-options/FindOptionsSelect.d.ts +19 -0
  2058. package/find-options/FindOptionsSelect.js +4 -0
  2059. package/find-options/FindOptionsSelect.js.map +1 -0
  2060. package/find-options/FindOptionsUtils.d.ts +180 -6
  2061. package/find-options/FindOptionsUtils.js +301 -95
  2062. package/find-options/FindOptionsUtils.js.map +1 -1
  2063. package/find-options/FindOptionsWhere.d.ts +14 -0
  2064. package/find-options/FindOptionsWhere.js +4 -0
  2065. package/find-options/FindOptionsWhere.js.map +1 -0
  2066. package/find-options/FindTreeOptions.d.ts +13 -0
  2067. package/find-options/FindTreeOptions.js +4 -0
  2068. package/find-options/FindTreeOptions.js.map +1 -0
  2069. package/find-options/JoinOptions.d.ts +76 -0
  2070. package/find-options/JoinOptions.js +4 -0
  2071. package/find-options/JoinOptions.js.map +1 -0
  2072. package/find-options/OrderByCondition.js.map +1 -1
  2073. package/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
  2074. package/find-options/mongodb/MongoFindManyOptions.js +4 -0
  2075. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
  2076. package/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
  2077. package/find-options/mongodb/MongoFindOneOptions.js +4 -0
  2078. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
  2079. package/find-options/operator/Any.d.ts +1 -1
  2080. package/find-options/operator/Any.js +2 -1
  2081. package/find-options/operator/Any.js.map +1 -1
  2082. package/find-options/operator/Between.d.ts +1 -1
  2083. package/find-options/operator/Between.js +2 -1
  2084. package/find-options/operator/Between.js.map +1 -1
  2085. package/find-options/operator/Equal.d.ts +7 -2
  2086. package/find-options/operator/Equal.js +8 -3
  2087. package/find-options/operator/Equal.js.map +1 -1
  2088. package/find-options/operator/ILike.d.ts +1 -1
  2089. package/find-options/operator/ILike.js +3 -2
  2090. package/find-options/operator/ILike.js.map +1 -1
  2091. package/find-options/operator/In.d.ts +1 -1
  2092. package/find-options/operator/In.js +2 -1
  2093. package/find-options/operator/In.js.map +1 -1
  2094. package/find-options/operator/IsNull.js +2 -1
  2095. package/find-options/operator/IsNull.js.map +1 -1
  2096. package/find-options/operator/LessThan.js +2 -1
  2097. package/find-options/operator/LessThan.js.map +1 -1
  2098. package/find-options/operator/LessThanOrEqual.js +2 -1
  2099. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  2100. package/find-options/operator/Like.d.ts +1 -1
  2101. package/find-options/operator/Like.js +3 -2
  2102. package/find-options/operator/Like.js.map +1 -1
  2103. package/find-options/operator/MoreThan.js +2 -1
  2104. package/find-options/operator/MoreThan.js.map +1 -1
  2105. package/find-options/operator/MoreThanOrEqual.js +2 -1
  2106. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  2107. package/find-options/operator/Not.d.ts +1 -1
  2108. package/find-options/operator/Not.js +3 -2
  2109. package/find-options/operator/Not.js.map +1 -1
  2110. package/find-options/operator/Raw.d.ts +14 -2
  2111. package/find-options/operator/Raw.js +7 -7
  2112. package/find-options/operator/Raw.js.map +1 -1
  2113. package/globals.d.ts +117 -0
  2114. package/globals.js +183 -0
  2115. package/globals.js.map +1 -0
  2116. package/index.d.ts +45 -114
  2117. package/index.js +86 -230
  2118. package/index.js.map +1 -1
  2119. package/index.mjs +366 -0
  2120. package/logger/AdvancedConsoleLogger.d.ts +2 -1
  2121. package/logger/AdvancedConsoleLogger.js +57 -33
  2122. package/logger/AdvancedConsoleLogger.js.map +1 -1
  2123. package/logger/DebugLogger.d.ts +1 -2
  2124. package/logger/DebugLogger.js +27 -26
  2125. package/logger/DebugLogger.js.map +1 -1
  2126. package/logger/FileLogger.d.ts +3 -1
  2127. package/logger/FileLogger.js +68 -40
  2128. package/logger/FileLogger.js.map +1 -1
  2129. package/logger/Logger.d.ts +1 -1
  2130. package/logger/Logger.js.map +1 -1
  2131. package/logger/LoggerFactory.js +11 -12
  2132. package/logger/LoggerFactory.js.map +1 -1
  2133. package/logger/LoggerOptions.d.ts +9 -0
  2134. package/logger/LoggerOptions.js.map +1 -1
  2135. package/logger/SimpleConsoleLogger.d.ts +2 -1
  2136. package/logger/SimpleConsoleLogger.js +56 -32
  2137. package/logger/SimpleConsoleLogger.js.map +1 -1
  2138. package/metadata/CheckMetadata.js +9 -7
  2139. package/metadata/CheckMetadata.js.map +1 -1
  2140. package/metadata/ColumnMetadata.d.ts +16 -7
  2141. package/metadata/ColumnMetadata.js +243 -127
  2142. package/metadata/ColumnMetadata.js.map +1 -1
  2143. package/metadata/EmbeddedMetadata.d.ts +12 -5
  2144. package/metadata/EmbeddedMetadata.js +78 -50
  2145. package/metadata/EmbeddedMetadata.js.map +1 -1
  2146. package/metadata/EntityListenerMetadata.js +22 -14
  2147. package/metadata/EntityListenerMetadata.js.map +1 -1
  2148. package/metadata/EntityMetadata.d.ts +65 -22
  2149. package/metadata/EntityMetadata.js +255 -163
  2150. package/metadata/EntityMetadata.js.map +1 -1
  2151. package/metadata/ExclusionMetadata.js +9 -7
  2152. package/metadata/ExclusionMetadata.js.map +1 -1
  2153. package/metadata/ForeignKeyMetadata.js +9 -9
  2154. package/metadata/ForeignKeyMetadata.js.map +1 -1
  2155. package/metadata/IndexMetadata.d.ts +7 -2
  2156. package/metadata/IndexMetadata.js +45 -33
  2157. package/metadata/IndexMetadata.js.map +1 -1
  2158. package/metadata/RelationCountMetadata.js +12 -9
  2159. package/metadata/RelationCountMetadata.js.map +1 -1
  2160. package/metadata/RelationIdMetadata.js +22 -18
  2161. package/metadata/RelationIdMetadata.js.map +1 -1
  2162. package/metadata/RelationMetadata.d.ts +28 -5
  2163. package/metadata/RelationMetadata.js +162 -79
  2164. package/metadata/RelationMetadata.js.map +1 -1
  2165. package/metadata/UniqueMetadata.d.ts +7 -2
  2166. package/metadata/UniqueMetadata.js +41 -31
  2167. package/metadata/UniqueMetadata.js.map +1 -1
  2168. package/metadata/types/ClosureTreeOptions.d.ts +10 -0
  2169. package/metadata/types/ClosureTreeOptions.js +4 -0
  2170. package/metadata/types/ClosureTreeOptions.js.map +1 -0
  2171. package/metadata/types/DeferrableType.js.map +1 -1
  2172. package/metadata/types/EventListenerTypes.d.ts +12 -8
  2173. package/metadata/types/EventListenerTypes.js +14 -12
  2174. package/metadata/types/EventListenerTypes.js.map +1 -1
  2175. package/metadata/types/OnDeleteType.js.map +1 -1
  2176. package/metadata/types/OnUpdateType.js.map +1 -1
  2177. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  2178. package/metadata/types/RelationTypeInFunction.d.ts +2 -1
  2179. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  2180. package/metadata/types/RelationTypes.js.map +1 -1
  2181. package/metadata/types/TableTypes.d.ts +1 -1
  2182. package/metadata/types/TableTypes.js.map +1 -1
  2183. package/metadata/types/TreeTypes.js.map +1 -1
  2184. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  2185. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  2186. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  2187. package/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  2188. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  2189. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  2190. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  2191. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  2192. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  2193. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  2194. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  2195. package/metadata-args/IndexMetadataArgs.d.ts +7 -2
  2196. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  2197. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  2198. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  2199. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  2200. package/metadata-args/MetadataArgsStorage.d.ts +4 -0
  2201. package/metadata-args/MetadataArgsStorage.js +147 -95
  2202. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  2203. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  2204. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  2205. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  2206. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  2207. package/metadata-args/TableMetadataArgs.d.ts +9 -5
  2208. package/metadata-args/TableMetadataArgs.js.map +1 -1
  2209. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  2210. package/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
  2211. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  2212. package/metadata-args/TreeMetadataArgs.d.ts +5 -0
  2213. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  2214. package/metadata-args/UniqueMetadataArgs.d.ts +7 -2
  2215. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  2216. package/metadata-args/types/ColumnMode.d.ts +1 -1
  2217. package/metadata-args/types/ColumnMode.js.map +1 -1
  2218. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
  2219. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +52 -33
  2220. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  2221. package/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
  2222. package/metadata-builder/EntityMetadataBuilder.js +412 -281
  2223. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  2224. package/metadata-builder/EntityMetadataValidator.js +85 -73
  2225. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  2226. package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
  2227. package/metadata-builder/JunctionEntityMetadataBuilder.js +149 -95
  2228. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  2229. package/metadata-builder/MetadataUtils.js +13 -15
  2230. package/metadata-builder/MetadataUtils.js.map +1 -1
  2231. package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
  2232. package/metadata-builder/RelationJoinColumnBuilder.js +73 -52
  2233. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  2234. package/migration/Migration.js +4 -4
  2235. package/migration/Migration.js.map +1 -1
  2236. package/migration/MigrationExecutor.d.ts +6 -4
  2237. package/migration/MigrationExecutor.js +383 -537
  2238. package/migration/MigrationExecutor.js.map +1 -1
  2239. package/migration/MigrationInterface.js.map +1 -1
  2240. package/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
  2241. package/naming-strategy/DefaultNamingStrategy.js +96 -84
  2242. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  2243. package/naming-strategy/NamingStrategyInterface.d.ts +17 -1
  2244. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  2245. package/package.json +1 -151
  2246. package/persistence/EntityPersistExecutor.d.ts +4 -4
  2247. package/persistence/EntityPersistExecutor.js +137 -160
  2248. package/persistence/EntityPersistExecutor.js.map +1 -1
  2249. package/persistence/Subject.d.ts +27 -3
  2250. package/persistence/Subject.js +105 -67
  2251. package/persistence/Subject.js.map +1 -1
  2252. package/persistence/SubjectChangeMap.js.map +1 -1
  2253. package/persistence/SubjectChangedColumnsComputer.js +77 -53
  2254. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  2255. package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
  2256. package/persistence/SubjectDatabaseEntityLoader.js +98 -113
  2257. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  2258. package/persistence/SubjectExecutor.d.ts +19 -2
  2259. package/persistence/SubjectExecutor.js +594 -427
  2260. package/persistence/SubjectExecutor.js.map +1 -1
  2261. package/persistence/SubjectTopoligicalSorter.js +64 -58
  2262. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  2263. package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  2264. package/persistence/subject-builder/CascadesSubjectBuilder.js +55 -28
  2265. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  2266. package/persistence/subject-builder/ManyToManySubjectBuilder.js +67 -60
  2267. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  2268. package/persistence/subject-builder/OneToManySubjectBuilder.js +64 -45
  2269. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  2270. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +35 -30
  2271. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  2272. package/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
  2273. package/persistence/tree/ClosureSubjectExecutor.js +215 -89
  2274. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  2275. package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
  2276. package/persistence/tree/MaterializedPathSubjectExecutor.js +90 -47
  2277. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  2278. package/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
  2279. package/persistence/tree/NestedSetSubjectExecutor.js +245 -62
  2280. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  2281. package/platform/PlatformTools.d.ts +8 -1
  2282. package/platform/PlatformTools.js +123 -118
  2283. package/platform/PlatformTools.js.map +1 -1
  2284. package/query-builder/Alias.d.ts +4 -3
  2285. package/query-builder/Alias.js +20 -31
  2286. package/query-builder/Alias.js.map +1 -1
  2287. package/query-builder/Brackets.d.ts +4 -3
  2288. package/query-builder/Brackets.js +5 -4
  2289. package/query-builder/Brackets.js.map +1 -1
  2290. package/query-builder/DeleteQueryBuilder.d.ts +13 -11
  2291. package/query-builder/DeleteQueryBuilder.js +113 -168
  2292. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  2293. package/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  2294. package/query-builder/InsertOrUpdateOptions.js +4 -0
  2295. package/query-builder/InsertOrUpdateOptions.js.map +1 -0
  2296. package/query-builder/InsertQueryBuilder.d.ts +15 -5
  2297. package/query-builder/InsertQueryBuilder.js +460 -298
  2298. package/query-builder/InsertQueryBuilder.js.map +1 -1
  2299. package/query-builder/JoinAttribute.d.ts +12 -12
  2300. package/query-builder/JoinAttribute.js +143 -190
  2301. package/query-builder/JoinAttribute.js.map +1 -1
  2302. package/query-builder/JoinOptions.js.map +1 -1
  2303. package/query-builder/NotBrackets.d.ts +8 -0
  2304. package/query-builder/NotBrackets.js +17 -0
  2305. package/query-builder/NotBrackets.js.map +1 -0
  2306. package/query-builder/QueryBuilder.d.ts +55 -32
  2307. package/query-builder/QueryBuilder.js +703 -378
  2308. package/query-builder/QueryBuilder.js.map +1 -1
  2309. package/query-builder/QueryBuilderUtils.d.ts +0 -1
  2310. package/query-builder/QueryBuilderUtils.js +6 -15
  2311. package/query-builder/QueryBuilderUtils.js.map +1 -1
  2312. package/query-builder/QueryExpressionMap.d.ts +51 -29
  2313. package/query-builder/QueryExpressionMap.js +97 -88
  2314. package/query-builder/QueryExpressionMap.js.map +1 -1
  2315. package/query-builder/QueryPartialEntity.d.ts +1 -1
  2316. package/query-builder/QueryPartialEntity.js.map +1 -1
  2317. package/query-builder/RelationIdLoader.d.ts +10 -12
  2318. package/query-builder/RelationIdLoader.js +307 -184
  2319. package/query-builder/RelationIdLoader.js.map +1 -1
  2320. package/query-builder/RelationLoader.d.ts +6 -3
  2321. package/query-builder/RelationLoader.js +182 -145
  2322. package/query-builder/RelationLoader.js.map +1 -1
  2323. package/query-builder/RelationQueryBuilder.d.ts +2 -1
  2324. package/query-builder/RelationQueryBuilder.js +85 -114
  2325. package/query-builder/RelationQueryBuilder.js.map +1 -1
  2326. package/query-builder/RelationRemover.js +120 -83
  2327. package/query-builder/RelationRemover.js.map +1 -1
  2328. package/query-builder/RelationUpdater.js +129 -127
  2329. package/query-builder/RelationUpdater.js.map +1 -1
  2330. package/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
  2331. package/query-builder/ReturningResultsEntityUpdator.js +136 -154
  2332. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  2333. package/query-builder/SelectQuery.js.map +1 -1
  2334. package/query-builder/SelectQueryBuilder.d.ts +64 -50
  2335. package/query-builder/SelectQueryBuilder.js +1661 -1308
  2336. package/query-builder/SelectQueryBuilder.js.map +1 -1
  2337. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  2338. package/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
  2339. package/query-builder/SoftDeleteQueryBuilder.js +367 -0
  2340. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
  2341. package/query-builder/UpdateQueryBuilder.d.ts +11 -8
  2342. package/query-builder/UpdateQueryBuilder.js +283 -304
  2343. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  2344. package/query-builder/WhereClause.d.ts +16 -0
  2345. package/query-builder/WhereClause.js +4 -0
  2346. package/query-builder/WhereClause.js.map +1 -0
  2347. package/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
  2348. package/query-builder/WhereExpressionBuilder.js +4 -0
  2349. package/query-builder/WhereExpressionBuilder.js.map +1 -0
  2350. package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  2351. package/query-builder/relation-count/RelationCountAttribute.js +69 -97
  2352. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  2353. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  2354. package/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
  2355. package/query-builder/relation-count/RelationCountLoader.js +151 -100
  2356. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  2357. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +17 -18
  2358. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  2359. package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  2360. package/query-builder/relation-id/RelationIdAttribute.js +70 -102
  2361. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  2362. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  2363. package/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
  2364. package/query-builder/relation-id/RelationIdLoader.js +257 -148
  2365. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  2366. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +17 -18
  2367. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  2368. package/query-builder/result/DeleteResult.d.ts +3 -1
  2369. package/query-builder/result/DeleteResult.js +8 -4
  2370. package/query-builder/result/DeleteResult.js.map +1 -1
  2371. package/query-builder/result/InsertResult.d.ts +2 -0
  2372. package/query-builder/result/InsertResult.js +9 -4
  2373. package/query-builder/result/InsertResult.js.map +1 -1
  2374. package/query-builder/result/UpdateResult.d.ts +2 -0
  2375. package/query-builder/result/UpdateResult.js +10 -4
  2376. package/query-builder/result/UpdateResult.js.map +1 -1
  2377. package/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
  2378. package/query-builder/transformer/DocumentToEntityTransformer.js +49 -34
  2379. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  2380. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +75 -100
  2381. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  2382. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +26 -26
  2383. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  2384. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
  2385. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +231 -160
  2386. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  2387. package/query-runner/BaseQueryRunner.d.ts +49 -12
  2388. package/query-runner/BaseQueryRunner.js +243 -248
  2389. package/query-runner/BaseQueryRunner.js.map +1 -1
  2390. package/query-runner/QueryLock.d.ts +4 -0
  2391. package/query-runner/QueryLock.js +28 -0
  2392. package/query-runner/QueryLock.js.map +1 -0
  2393. package/query-runner/QueryResult.d.ts +17 -0
  2394. package/query-runner/QueryResult.js +17 -0
  2395. package/query-runner/QueryResult.js.map +1 -0
  2396. package/query-runner/QueryRunner.d.ts +36 -8
  2397. package/query-runner/QueryRunner.js.map +1 -1
  2398. package/repository/AbstractRepository.d.ts +5 -5
  2399. package/repository/AbstractRepository.js +50 -55
  2400. package/repository/AbstractRepository.js.map +1 -1
  2401. package/repository/BaseEntity.d.ts +69 -81
  2402. package/repository/BaseEntity.js +171 -131
  2403. package/repository/BaseEntity.js.map +1 -1
  2404. package/repository/EntityId.js.map +1 -1
  2405. package/repository/FindTreesOptions.d.ts +9 -0
  2406. package/repository/FindTreesOptions.js +4 -0
  2407. package/repository/FindTreesOptions.js.map +1 -0
  2408. package/repository/MongoRepository.d.ts +55 -9
  2409. package/repository/MongoRepository.js +332 -0
  2410. package/repository/MongoRepository.js.map +1 -1
  2411. package/repository/RemoveOptions.js.map +1 -1
  2412. package/repository/Repository.d.ts +133 -96
  2413. package/repository/Repository.js +290 -0
  2414. package/repository/Repository.js.map +1 -1
  2415. package/repository/SaveOptions.d.ts +1 -1
  2416. package/repository/SaveOptions.js.map +1 -1
  2417. package/repository/TreeRepository.d.ts +14 -9
  2418. package/repository/TreeRepository.js +265 -0
  2419. package/repository/TreeRepository.js.map +1 -1
  2420. package/repository/UpsertOptions.d.ts +10 -0
  2421. package/repository/UpsertOptions.js +4 -0
  2422. package/repository/UpsertOptions.js.map +1 -0
  2423. package/schema-builder/MongoSchemaBuilder.d.ts +3 -3
  2424. package/schema-builder/MongoSchemaBuilder.js +30 -42
  2425. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  2426. package/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
  2427. package/schema-builder/RdbmsSchemaBuilder.js +703 -1065
  2428. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  2429. package/schema-builder/SchemaBuilder.js.map +1 -1
  2430. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  2431. package/schema-builder/options/TableColumnOptions.d.ts +6 -2
  2432. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  2433. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  2434. package/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
  2435. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  2436. package/schema-builder/options/TableIndexOptions.d.ts +6 -1
  2437. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  2438. package/schema-builder/options/TableOptions.d.ts +8 -0
  2439. package/schema-builder/options/TableOptions.js.map +1 -1
  2440. package/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  2441. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  2442. package/schema-builder/options/ViewOptions.d.ts +10 -2
  2443. package/schema-builder/options/ViewOptions.js.map +1 -1
  2444. package/schema-builder/table/Table.d.ts +13 -3
  2445. package/schema-builder/table/Table.js +117 -103
  2446. package/schema-builder/table/Table.js.map +1 -1
  2447. package/schema-builder/table/TableCheck.d.ts +1 -0
  2448. package/schema-builder/table/TableCheck.js +11 -11
  2449. package/schema-builder/table/TableCheck.js.map +1 -1
  2450. package/schema-builder/table/TableColumn.d.ts +7 -2
  2451. package/schema-builder/table/TableColumn.js +11 -8
  2452. package/schema-builder/table/TableColumn.js.map +1 -1
  2453. package/schema-builder/table/TableExclusion.d.ts +1 -0
  2454. package/schema-builder/table/TableExclusion.js +10 -9
  2455. package/schema-builder/table/TableExclusion.js.map +1 -1
  2456. package/schema-builder/table/TableForeignKey.d.ts +11 -1
  2457. package/schema-builder/table/TableForeignKey.js +17 -11
  2458. package/schema-builder/table/TableForeignKey.js.map +1 -1
  2459. package/schema-builder/table/TableIndex.d.ts +6 -0
  2460. package/schema-builder/table/TableIndex.js +16 -13
  2461. package/schema-builder/table/TableIndex.js.map +1 -1
  2462. package/schema-builder/table/TableUnique.d.ts +6 -0
  2463. package/schema-builder/table/TableUnique.js +14 -11
  2464. package/schema-builder/table/TableUnique.js.map +1 -1
  2465. package/schema-builder/util/TableUtils.js +11 -10
  2466. package/schema-builder/util/TableUtils.js.map +1 -1
  2467. package/schema-builder/util/ViewUtils.d.ts +7 -0
  2468. package/schema-builder/util/ViewUtils.js +27 -0
  2469. package/schema-builder/util/ViewUtils.js.map +1 -0
  2470. package/schema-builder/view/View.d.ts +12 -5
  2471. package/schema-builder/view/View.js +17 -10
  2472. package/schema-builder/view/View.js.map +1 -1
  2473. package/subscriber/Broadcaster.d.ts +87 -2
  2474. package/subscriber/Broadcaster.js +413 -118
  2475. package/subscriber/Broadcaster.js.map +1 -1
  2476. package/subscriber/BroadcasterResult.d.ts +4 -0
  2477. package/subscriber/BroadcasterResult.js +13 -4
  2478. package/subscriber/BroadcasterResult.js.map +1 -1
  2479. package/subscriber/EntitySubscriberInterface.d.ts +45 -0
  2480. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  2481. package/subscriber/event/InsertEvent.d.ts +7 -7
  2482. package/subscriber/event/InsertEvent.js.map +1 -1
  2483. package/subscriber/event/LoadEvent.d.ts +2 -2
  2484. package/subscriber/event/LoadEvent.js.map +1 -1
  2485. package/subscriber/event/RecoverEvent.d.ts +6 -0
  2486. package/subscriber/event/RecoverEvent.js +4 -0
  2487. package/subscriber/event/RecoverEvent.js.map +1 -0
  2488. package/subscriber/event/RemoveEvent.d.ts +7 -7
  2489. package/subscriber/event/RemoveEvent.js.map +1 -1
  2490. package/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  2491. package/subscriber/event/SoftRemoveEvent.js +4 -0
  2492. package/subscriber/event/SoftRemoveEvent.js.map +1 -0
  2493. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  2494. package/subscriber/event/TransactionCommitEvent.js +4 -0
  2495. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  2496. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  2497. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  2498. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  2499. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  2500. package/subscriber/event/TransactionStartEvent.js +4 -0
  2501. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  2502. package/subscriber/event/UpdateEvent.d.ts +5 -4
  2503. package/subscriber/event/UpdateEvent.js.map +1 -1
  2504. package/typeorm-class-transformer-shim.js +41 -7
  2505. package/typeorm-model-shim.js +166 -111
  2506. package/util/ApplyValueTransformers.js +14 -28
  2507. package/util/ApplyValueTransformers.js.map +1 -1
  2508. package/util/DateUtils.d.ts +2 -2
  2509. package/util/DateUtils.js +111 -82
  2510. package/util/DateUtils.js.map +1 -1
  2511. package/util/DepGraph.js +51 -49
  2512. package/util/DepGraph.js.map +1 -1
  2513. package/util/DirectoryExportedClassesLoader.d.ts +1 -1
  2514. package/util/DirectoryExportedClassesLoader.js +35 -26
  2515. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  2516. package/util/ImportUtils.d.ts +1 -0
  2517. package/util/ImportUtils.js +79 -0
  2518. package/util/ImportUtils.js.map +1 -0
  2519. package/util/InstanceChecker.d.ts +61 -0
  2520. package/util/InstanceChecker.js +107 -0
  2521. package/util/InstanceChecker.js.map +1 -0
  2522. package/util/ObjectUtils.d.ts +17 -6
  2523. package/util/ObjectUtils.js +27 -35
  2524. package/util/ObjectUtils.js.map +1 -1
  2525. package/util/OrmUtils.d.ts +16 -8
  2526. package/util/OrmUtils.js +199 -97
  2527. package/util/OrmUtils.js.map +1 -1
  2528. package/util/PathUtils.d.ts +10 -0
  2529. package/util/PathUtils.js +34 -0
  2530. package/util/PathUtils.js.map +1 -0
  2531. package/util/RandomGenerator.d.ts +0 -4
  2532. package/util/RandomGenerator.js +62 -51
  2533. package/util/RandomGenerator.js.map +1 -1
  2534. package/util/StringUtils.d.ts +13 -3
  2535. package/util/StringUtils.js +45 -19
  2536. package/util/StringUtils.js.map +1 -1
  2537. package/util/TreeRepositoryUtils.d.ts +23 -0
  2538. package/util/TreeRepositoryUtils.js +60 -0
  2539. package/util/TreeRepositoryUtils.js.map +1 -0
  2540. package/util/VersionUtils.js +12 -15
  2541. package/util/VersionUtils.js.map +1 -1
  2542. package/browser/decorator/transaction/Transaction.d.ts +0 -16
  2543. package/browser/decorator/transaction/Transaction.js +0 -85
  2544. package/browser/decorator/transaction/Transaction.js.map +0 -1
  2545. package/browser/decorator/transaction/TransactionManager.d.ts +0 -4
  2546. package/browser/decorator/transaction/TransactionManager.js +0 -15
  2547. package/browser/decorator/transaction/TransactionManager.js.map +0 -1
  2548. package/browser/decorator/transaction/TransactionRepository.d.ts +0 -6
  2549. package/browser/decorator/transaction/TransactionRepository.js +0 -28
  2550. package/browser/decorator/transaction/TransactionRepository.js.map +0 -1
  2551. package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
  2552. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +0 -21
  2553. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
  2554. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js +0 -3
  2555. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
  2556. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
  2557. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js +0 -3
  2558. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
  2559. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
  2560. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2015
  2561. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
  2562. package/browser/entity-factory/DefaultEntityFactory.d.ts +0 -7
  2563. package/browser/entity-factory/DefaultEntityFactory.js +0 -16
  2564. package/browser/entity-factory/DefaultEntityFactory.js.map +0 -1
  2565. package/browser/entity-factory/EntityFactoryInterface.d.ts +0 -11
  2566. package/browser/entity-factory/EntityFactoryInterface.js +0 -3
  2567. package/browser/entity-factory/EntityFactoryInterface.js.map +0 -1
  2568. package/browser/entity-factory/OldEntityFactory.d.ts +0 -7
  2569. package/browser/entity-factory/OldEntityFactory.js +0 -14
  2570. package/browser/entity-factory/OldEntityFactory.js.map +0 -1
  2571. package/browser/error/EntityColumnNotFound.d.ts +0 -7
  2572. package/browser/error/EntityColumnNotFound.js +0 -18
  2573. package/browser/error/EntityColumnNotFound.js.map +0 -1
  2574. package/browser/error/FindCriteriaNotFoundError.d.ts +0 -7
  2575. package/browser/error/FindCriteriaNotFoundError.js +0 -17
  2576. package/browser/error/FindCriteriaNotFoundError.js.map +0 -1
  2577. package/browser/find-options/FindOptions.d.ts +0 -171
  2578. package/browser/find-options/FindOptions.js +0 -3
  2579. package/browser/find-options/FindOptions.js.map +0 -1
  2580. package/browser/find-options/operator/If.d.ts +0 -8
  2581. package/browser/find-options/operator/If.js +0 -21
  2582. package/browser/find-options/operator/If.js.map +0 -1
  2583. package/browser/find-options/operator/Switch.d.ts +0 -16
  2584. package/browser/find-options/operator/Switch.js +0 -17
  2585. package/browser/find-options/operator/Switch.js.map +0 -1
  2586. package/browser/observer/ObserverExecutor.d.ts +0 -18
  2587. package/browser/observer/ObserverExecutor.js +0 -404
  2588. package/browser/observer/ObserverExecutor.js.map +0 -1
  2589. package/browser/observer/QueryObserver.d.ts +0 -28
  2590. package/browser/observer/QueryObserver.js +0 -120
  2591. package/browser/observer/QueryObserver.js.map +0 -1
  2592. package/browser/query-builder/WhereExpression.js +0 -3
  2593. package/browser/query-builder/WhereExpression.js.map +0 -1
  2594. package/browser/repository/LiteralMongoRepository.d.ts +0 -11
  2595. package/browser/repository/LiteralMongoRepository.js +0 -138
  2596. package/browser/repository/LiteralMongoRepository.js.map +0 -1
  2597. package/browser/repository/LiteralRepository.d.ts +0 -12
  2598. package/browser/repository/LiteralRepository.js +0 -201
  2599. package/browser/repository/LiteralRepository.js.map +0 -1
  2600. package/browser/repository/LiteralTreeRepository.d.ts +0 -9
  2601. package/browser/repository/LiteralTreeRepository.js +0 -224
  2602. package/browser/repository/LiteralTreeRepository.js.map +0 -1
  2603. package/browser/repository/RepositoryFactory.d.ts +0 -13
  2604. package/browser/repository/RepositoryFactory.js +0 -50
  2605. package/browser/repository/RepositoryFactory.js.map +0 -1
  2606. package/browser/util/PromiseUtils.d.ts +0 -24
  2607. package/browser/util/PromiseUtils.js +0 -62
  2608. package/browser/util/PromiseUtils.js.map +0 -1
  2609. package/decorator/transaction/Transaction.d.ts +0 -16
  2610. package/decorator/transaction/Transaction.js +0 -88
  2611. package/decorator/transaction/Transaction.js.map +0 -1
  2612. package/decorator/transaction/TransactionManager.d.ts +0 -4
  2613. package/decorator/transaction/TransactionManager.js +0 -18
  2614. package/decorator/transaction/TransactionManager.js.map +0 -1
  2615. package/decorator/transaction/TransactionRepository.d.ts +0 -6
  2616. package/decorator/transaction/TransactionRepository.js +0 -31
  2617. package/decorator/transaction/TransactionRepository.js.map +0 -1
  2618. package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
  2619. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -23
  2620. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
  2621. package/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
  2622. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
  2623. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
  2624. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
  2625. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2017
  2626. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
  2627. package/entity-factory/DefaultEntityFactory.d.ts +0 -7
  2628. package/entity-factory/DefaultEntityFactory.js +0 -18
  2629. package/entity-factory/DefaultEntityFactory.js.map +0 -1
  2630. package/entity-factory/EntityFactoryInterface.d.ts +0 -11
  2631. package/entity-factory/EntityFactoryInterface.js.map +0 -1
  2632. package/entity-factory/OldEntityFactory.d.ts +0 -7
  2633. package/entity-factory/OldEntityFactory.js +0 -16
  2634. package/entity-factory/OldEntityFactory.js.map +0 -1
  2635. package/error/EntityColumnNotFound.d.ts +0 -7
  2636. package/error/EntityColumnNotFound.js +0 -20
  2637. package/error/EntityColumnNotFound.js.map +0 -1
  2638. package/error/FindCriteriaNotFoundError.d.ts +0 -7
  2639. package/error/FindCriteriaNotFoundError.js +0 -19
  2640. package/error/FindCriteriaNotFoundError.js.map +0 -1
  2641. package/find-options/FindOptions.d.ts +0 -171
  2642. package/find-options/FindOptions.js.map +0 -1
  2643. package/find-options/operator/If.d.ts +0 -8
  2644. package/find-options/operator/If.js +0 -24
  2645. package/find-options/operator/If.js.map +0 -1
  2646. package/find-options/operator/Switch.d.ts +0 -16
  2647. package/find-options/operator/Switch.js +0 -20
  2648. package/find-options/operator/Switch.js.map +0 -1
  2649. package/observer/ObserverExecutor.d.ts +0 -18
  2650. package/observer/ObserverExecutor.js +0 -406
  2651. package/observer/ObserverExecutor.js.map +0 -1
  2652. package/observer/QueryObserver.d.ts +0 -28
  2653. package/observer/QueryObserver.js +0 -122
  2654. package/observer/QueryObserver.js.map +0 -1
  2655. package/query-builder/WhereExpression.js.map +0 -1
  2656. package/repository/LiteralMongoRepository.d.ts +0 -11
  2657. package/repository/LiteralMongoRepository.js +0 -141
  2658. package/repository/LiteralMongoRepository.js.map +0 -1
  2659. package/repository/LiteralRepository.d.ts +0 -12
  2660. package/repository/LiteralRepository.js +0 -204
  2661. package/repository/LiteralRepository.js.map +0 -1
  2662. package/repository/LiteralTreeRepository.d.ts +0 -9
  2663. package/repository/LiteralTreeRepository.js +0 -227
  2664. package/repository/LiteralTreeRepository.js.map +0 -1
  2665. package/repository/RepositoryFactory.d.ts +0 -13
  2666. package/repository/RepositoryFactory.js +0 -52
  2667. package/repository/RepositoryFactory.js.map +0 -1
  2668. package/util/PromiseUtils.d.ts +0 -24
  2669. package/util/PromiseUtils.js +0 -64
  2670. package/util/PromiseUtils.js.map +0 -1
@@ -1,72 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var FindOptionsUtils_1 = require("../find-options/FindOptionsUtils");
5
- var ObserverExecutor_1 = require("../observer/ObserverExecutor");
6
- var QueryBuilderUtils_1 = require("./QueryBuilderUtils");
7
- var RawSqlResultsToEntityTransformer_1 = require("./transformer/RawSqlResultsToEntityTransformer");
8
- var SqlServerDriver_1 = require("../driver/sqlserver/SqlServerDriver");
9
- var PessimisticLockTransactionRequiredError_1 = require("../error/PessimisticLockTransactionRequiredError");
10
- var NoVersionOrUpdateDateColumnError_1 = require("../error/NoVersionOrUpdateDateColumnError");
11
- var OptimisticLockVersionMismatchError_1 = require("../error/OptimisticLockVersionMismatchError");
12
- var OptimisticLockCanNotBeUsedError_1 = require("../error/OptimisticLockCanNotBeUsedError");
13
- var JoinAttribute_1 = require("./JoinAttribute");
14
- var RelationIdAttribute_1 = require("./relation-id/RelationIdAttribute");
15
- var RelationCountAttribute_1 = require("./relation-count/RelationCountAttribute");
16
- var RelationIdLoader_1 = require("./relation-id/RelationIdLoader");
17
- var RelationIdMetadataToAttributeTransformer_1 = require("./relation-id/RelationIdMetadataToAttributeTransformer");
18
- var RelationCountLoader_1 = require("./relation-count/RelationCountLoader");
19
- var RelationCountMetadataToAttributeTransformer_1 = require("./relation-count/RelationCountMetadataToAttributeTransformer");
20
- var QueryBuilder_1 = require("./QueryBuilder");
21
- var LockNotSupportedOnGivenDriverError_1 = require("../error/LockNotSupportedOnGivenDriverError");
22
- var MysqlDriver_1 = require("../driver/mysql/MysqlDriver");
23
- var PostgresDriver_1 = require("../driver/postgres/PostgresDriver");
24
- var OracleDriver_1 = require("../driver/oracle/OracleDriver");
25
- var Brackets_1 = require("./Brackets");
26
- var AbstractSqliteDriver_1 = require("../driver/sqlite-abstract/AbstractSqliteDriver");
27
- var OffsetWithoutLimitNotSupportedError_1 = require("../error/OffsetWithoutLimitNotSupportedError");
28
- var BroadcasterResult_1 = require("../subscriber/BroadcasterResult");
29
- var FindCriteriaNotFoundError_1 = require("../error/FindCriteriaNotFoundError");
30
- var FindOperator_1 = require("../find-options/FindOperator");
31
- var OrmUtils_1 = require("../util/OrmUtils");
32
- var ObjectUtils_1 = require("../util/ObjectUtils");
33
- var DriverUtils_1 = require("../driver/DriverUtils");
34
- var AuroraDataApiDriver_1 = require("../driver/aurora-data-api/AuroraDataApiDriver");
35
- var ApplyValueTransformers_1 = require("../util/ApplyValueTransformers");
3
+ exports.SelectQueryBuilder = void 0;
4
+ const RawSqlResultsToEntityTransformer_1 = require("./transformer/RawSqlResultsToEntityTransformer");
5
+ const PessimisticLockTransactionRequiredError_1 = require("../error/PessimisticLockTransactionRequiredError");
6
+ const NoVersionOrUpdateDateColumnError_1 = require("../error/NoVersionOrUpdateDateColumnError");
7
+ const OptimisticLockVersionMismatchError_1 = require("../error/OptimisticLockVersionMismatchError");
8
+ const OptimisticLockCanNotBeUsedError_1 = require("../error/OptimisticLockCanNotBeUsedError");
9
+ const JoinAttribute_1 = require("./JoinAttribute");
10
+ const RelationIdAttribute_1 = require("./relation-id/RelationIdAttribute");
11
+ const RelationCountAttribute_1 = require("./relation-count/RelationCountAttribute");
12
+ const RelationIdLoader_1 = require("./relation-id/RelationIdLoader");
13
+ const RelationIdMetadataToAttributeTransformer_1 = require("./relation-id/RelationIdMetadataToAttributeTransformer");
14
+ const RelationCountLoader_1 = require("./relation-count/RelationCountLoader");
15
+ const RelationCountMetadataToAttributeTransformer_1 = require("./relation-count/RelationCountMetadataToAttributeTransformer");
16
+ const QueryBuilder_1 = require("./QueryBuilder");
17
+ const LockNotSupportedOnGivenDriverError_1 = require("../error/LockNotSupportedOnGivenDriverError");
18
+ const OffsetWithoutLimitNotSupportedError_1 = require("../error/OffsetWithoutLimitNotSupportedError");
19
+ const ObjectUtils_1 = require("../util/ObjectUtils");
20
+ const DriverUtils_1 = require("../driver/DriverUtils");
21
+ const EntityNotFoundError_1 = require("../error/EntityNotFoundError");
22
+ const error_1 = require("../error");
23
+ const FindOptionsUtils_1 = require("../find-options/FindOptionsUtils");
24
+ const ApplyValueTransformers_1 = require("../util/ApplyValueTransformers");
25
+ const OrmUtils_1 = require("../util/OrmUtils");
26
+ const EntityPropertyNotFoundError_1 = require("../error/EntityPropertyNotFoundError");
27
+ const InstanceChecker_1 = require("../util/InstanceChecker");
36
28
  /**
37
29
  * Allows to build complex sql queries in a fashion way and execute those queries.
38
30
  */
39
- var SelectQueryBuilder = /** @class */ (function (_super) {
40
- tslib_1.__extends(SelectQueryBuilder, _super);
41
- // -------------------------------------------------------------------------
42
- // Constructor
43
- // -------------------------------------------------------------------------
44
- /**
45
- * QueryBuilder can be initialized from given Connection and QueryRunner objects or from given other QueryBuilder.
46
- */
47
- function SelectQueryBuilder(connectionOrQueryBuilder, queryRunner) {
48
- var _this =
49
- // TODO: Proper clone of findOptions field(deep, no as any)
50
- _super.call(this, connectionOrQueryBuilder, queryRunner) || this;
51
- _this.findOptions = {};
52
- _this.selects = [];
53
- _this.joins = [];
54
- _this.conditions = "";
55
- _this.orderBys = [];
56
- _this.relationMetadatas = [];
57
- if (connectionOrQueryBuilder instanceof QueryBuilder_1.QueryBuilder) {
58
- _this.findOptions = connectionOrQueryBuilder.findOptions;
59
- }
60
- return _this;
31
+ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
32
+ constructor() {
33
+ super(...arguments);
34
+ this["@instanceof"] = Symbol.for("SelectQueryBuilder");
35
+ this.findOptions = {};
36
+ this.selects = [];
37
+ this.joins = [];
38
+ this.conditions = "";
39
+ this.orderBys = [];
40
+ this.relationMetadatas = [];
61
41
  }
62
42
  // -------------------------------------------------------------------------
63
43
  // Public Implemented Methods
64
44
  // -------------------------------------------------------------------------
65
45
  /**
66
- * Gets generated sql query without parameters being replaced.
46
+ * Gets generated SQL query without parameters being replaced.
67
47
  */
68
- SelectQueryBuilder.prototype.getQuery = function () {
69
- var sql = this.createSelectExpression();
48
+ getQuery() {
49
+ let sql = this.createComment();
50
+ sql += this.createSelectExpression();
70
51
  sql += this.createJoinExpression();
71
52
  sql += this.createWhereExpression();
72
53
  sql += this.createGroupByExpression();
@@ -78,155 +59,155 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
78
59
  if (this.expressionMap.subQuery)
79
60
  sql = "(" + sql + ")";
80
61
  return sql;
81
- };
62
+ }
82
63
  // -------------------------------------------------------------------------
83
64
  // Public Methods
84
65
  // -------------------------------------------------------------------------
66
+ setFindOptions(findOptions) {
67
+ this.findOptions = findOptions;
68
+ this.applyFindOptions();
69
+ return this;
70
+ }
85
71
  /**
86
72
  * Creates a subquery - query that can be used inside other queries.
87
73
  */
88
- SelectQueryBuilder.prototype.subQuery = function () {
89
- var qb = this.createQueryBuilder();
74
+ subQuery() {
75
+ const qb = this.createQueryBuilder();
90
76
  qb.expressionMap.subQuery = true;
91
- qb.expressionMap.parentQueryBuilder = this;
77
+ qb.parentQueryBuilder = this;
92
78
  return qb;
93
- };
94
- SelectQueryBuilder.prototype.setFindOptions = function (findOptions) {
95
- var normalizedFindOptions = FindOptionsUtils_1.normalizeFindOptions(findOptions);
96
- this.findOptions = {
97
- select: normalizedFindOptions.select,
98
- where: normalizedFindOptions.where,
99
- relations: normalizedFindOptions.relations,
100
- order: normalizedFindOptions.order,
101
- skip: normalizedFindOptions.skip,
102
- take: normalizedFindOptions.take,
103
- pagination: normalizedFindOptions.options && normalizedFindOptions.options.pagination,
104
- loadRelationIds: normalizedFindOptions.options && normalizedFindOptions.options.loadRelationIds
105
- };
106
- this.applyFindOptionsOrmOptions(normalizedFindOptions);
107
- return this;
108
- };
79
+ }
109
80
  /**
110
81
  * Creates SELECT query and selects given data.
111
82
  * Replaces all previous selections if they exist.
112
83
  */
113
- SelectQueryBuilder.prototype.select = function (selection, selectionAliasName) {
84
+ select(selection, selectionAliasName) {
114
85
  this.expressionMap.queryType = "select";
115
- if (selection instanceof Array) {
116
- this.expressionMap.selects = selection.map(function (selection) { return ({ selection: selection }); });
86
+ if (Array.isArray(selection)) {
87
+ this.expressionMap.selects = selection.map((selection) => ({
88
+ selection: selection,
89
+ }));
117
90
  }
118
- else if (selection instanceof Function) {
119
- var subQueryBuilder = selection(this.subQuery());
91
+ else if (typeof selection === "function") {
92
+ const subQueryBuilder = selection(this.subQuery());
120
93
  this.setParameters(subQueryBuilder.getParameters());
121
- this.expressionMap.selects.push({ selection: subQueryBuilder.getQuery(), aliasName: selectionAliasName });
122
- }
123
- else if (selection && typeof selection === "object") {
124
- this.findOptions.select = selection;
94
+ this.expressionMap.selects.push({
95
+ selection: subQueryBuilder.getQuery(),
96
+ aliasName: selectionAliasName,
97
+ });
125
98
  }
126
99
  else if (selection) {
127
- this.expressionMap.selects = [{ selection: selection, aliasName: selectionAliasName }];
100
+ this.expressionMap.selects = [
101
+ { selection: selection, aliasName: selectionAliasName },
102
+ ];
128
103
  }
129
104
  return this;
130
- };
105
+ }
131
106
  /**
132
107
  * Adds new selection to the SELECT query.
133
108
  */
134
- SelectQueryBuilder.prototype.addSelect = function (selection, selectionAliasName) {
109
+ addSelect(selection, selectionAliasName) {
135
110
  if (!selection)
136
111
  return this;
137
- if (selection instanceof Array) {
138
- this.expressionMap.selects = this.expressionMap.selects.concat(selection.map(function (selection) { return ({ selection: selection }); }));
112
+ if (Array.isArray(selection)) {
113
+ this.expressionMap.selects = this.expressionMap.selects.concat(selection.map((selection) => ({ selection: selection })));
139
114
  }
140
- else if (selection instanceof Function) {
141
- var subQueryBuilder = selection(this.subQuery());
115
+ else if (typeof selection === "function") {
116
+ const subQueryBuilder = selection(this.subQuery());
142
117
  this.setParameters(subQueryBuilder.getParameters());
143
- this.expressionMap.selects.push({ selection: subQueryBuilder.getQuery(), aliasName: selectionAliasName });
144
- }
145
- else if (selection && typeof selection === "object") {
146
- this.findOptions.select = Object.assign(this.findOptions.select, selection);
118
+ this.expressionMap.selects.push({
119
+ selection: subQueryBuilder.getQuery(),
120
+ aliasName: selectionAliasName,
121
+ });
147
122
  }
148
123
  else if (selection) {
149
- this.expressionMap.selects.push({ selection: selection, aliasName: selectionAliasName });
124
+ this.expressionMap.selects.push({
125
+ selection: selection,
126
+ aliasName: selectionAliasName,
127
+ });
150
128
  }
151
129
  return this;
152
- };
130
+ }
131
+ /**
132
+ * Set max execution time.
133
+ * @param milliseconds
134
+ */
135
+ maxExecutionTime(milliseconds) {
136
+ this.expressionMap.maxExecutionTime = milliseconds;
137
+ return this;
138
+ }
153
139
  /**
154
140
  * Sets whether the selection is DISTINCT.
155
141
  */
156
- SelectQueryBuilder.prototype.distinct = function (distinct) {
157
- if (distinct === void 0) { distinct = true; }
142
+ distinct(distinct = true) {
158
143
  this.expressionMap.selectDistinct = distinct;
159
144
  return this;
160
- };
145
+ }
161
146
  /**
162
147
  * Sets the distinct on clause for Postgres.
163
148
  */
164
- SelectQueryBuilder.prototype.distinctOn = function (distinctOn) {
149
+ distinctOn(distinctOn) {
165
150
  this.expressionMap.selectDistinctOn = distinctOn;
166
151
  return this;
167
- };
152
+ }
168
153
  /**
169
154
  * Specifies FROM which entity's table select/update/delete will be executed.
170
155
  * Also sets a main string alias of the selection data.
171
156
  * Removes all previously set from-s.
172
157
  */
173
- SelectQueryBuilder.prototype.from = function (entityTarget, aliasName) {
174
- var mainAlias = this.createFromAlias(entityTarget, aliasName);
158
+ from(entityTarget, aliasName) {
159
+ const mainAlias = this.createFromAlias(entityTarget, aliasName);
175
160
  this.expressionMap.setMainAlias(mainAlias);
176
161
  return this;
177
- };
162
+ }
178
163
  /**
179
164
  * Specifies FROM which entity's table select/update/delete will be executed.
180
165
  * Also sets a main string alias of the selection data.
181
166
  */
182
- SelectQueryBuilder.prototype.addFrom = function (entityTarget, aliasName) {
183
- var alias = this.createFromAlias(entityTarget, aliasName);
167
+ addFrom(entityTarget, aliasName) {
168
+ const alias = this.createFromAlias(entityTarget, aliasName);
184
169
  if (!this.expressionMap.mainAlias)
185
170
  this.expressionMap.setMainAlias(alias);
186
171
  return this;
187
- };
172
+ }
188
173
  /**
189
174
  * INNER JOINs (without selection).
190
175
  * You also need to specify an alias of the joined data.
191
176
  * Optionally, you can add condition and parameters used in condition.
192
177
  */
193
- SelectQueryBuilder.prototype.innerJoin = function (entityOrProperty, alias, condition, parameters) {
194
- if (condition === void 0) { condition = ""; }
178
+ innerJoin(entityOrProperty, alias, condition, parameters) {
195
179
  this.join("INNER", entityOrProperty, alias, condition, parameters);
196
180
  return this;
197
- };
181
+ }
198
182
  /**
199
183
  * LEFT JOINs (without selection).
200
184
  * You also need to specify an alias of the joined data.
201
185
  * Optionally, you can add condition and parameters used in condition.
202
186
  */
203
- SelectQueryBuilder.prototype.leftJoin = function (entityOrProperty, alias, condition, parameters) {
204
- if (condition === void 0) { condition = ""; }
187
+ leftJoin(entityOrProperty, alias, condition, parameters) {
205
188
  this.join("LEFT", entityOrProperty, alias, condition, parameters);
206
189
  return this;
207
- };
190
+ }
208
191
  /**
209
192
  * INNER JOINs and adds all selection properties to SELECT.
210
193
  * You also need to specify an alias of the joined data.
211
194
  * Optionally, you can add condition and parameters used in condition.
212
195
  */
213
- SelectQueryBuilder.prototype.innerJoinAndSelect = function (entityOrProperty, alias, condition, parameters) {
214
- if (condition === void 0) { condition = ""; }
196
+ innerJoinAndSelect(entityOrProperty, alias, condition, parameters) {
215
197
  this.addSelect(alias);
216
198
  this.innerJoin(entityOrProperty, alias, condition, parameters);
217
199
  return this;
218
- };
200
+ }
219
201
  /**
220
202
  * LEFT JOINs and adds all selection properties to SELECT.
221
203
  * You also need to specify an alias of the joined data.
222
204
  * Optionally, you can add condition and parameters used in condition.
223
205
  */
224
- SelectQueryBuilder.prototype.leftJoinAndSelect = function (entityOrProperty, alias, condition, parameters) {
225
- if (condition === void 0) { condition = ""; }
206
+ leftJoinAndSelect(entityOrProperty, alias, condition, parameters) {
226
207
  this.addSelect(alias);
227
208
  this.leftJoin(entityOrProperty, alias, condition, parameters);
228
209
  return this;
229
- };
210
+ }
230
211
  /**
231
212
  * INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
232
213
  * This is extremely useful when you want to select some data and map it to some virtual property.
@@ -234,12 +215,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
234
215
  * You also need to specify an alias of the joined data.
235
216
  * Optionally, you can add condition and parameters used in condition.
236
217
  */
237
- SelectQueryBuilder.prototype.innerJoinAndMapMany = function (mapToProperty, entityOrProperty, alias, condition, parameters) {
238
- if (condition === void 0) { condition = ""; }
218
+ innerJoinAndMapMany(mapToProperty, entityOrProperty, alias, condition, parameters) {
239
219
  this.addSelect(alias);
240
220
  this.join("INNER", entityOrProperty, alias, condition, parameters, mapToProperty, true);
241
221
  return this;
242
- };
222
+ }
243
223
  /**
244
224
  * INNER JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
245
225
  * This is extremely useful when you want to select some data and map it to some virtual property.
@@ -247,12 +227,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
247
227
  * You also need to specify an alias of the joined data.
248
228
  * Optionally, you can add condition and parameters used in condition.
249
229
  */
250
- SelectQueryBuilder.prototype.innerJoinAndMapOne = function (mapToProperty, entityOrProperty, alias, condition, parameters) {
251
- if (condition === void 0) { condition = ""; }
230
+ innerJoinAndMapOne(mapToProperty, entityOrProperty, alias, condition, parameters) {
252
231
  this.addSelect(alias);
253
232
  this.join("INNER", entityOrProperty, alias, condition, parameters, mapToProperty, false);
254
233
  return this;
255
- };
234
+ }
256
235
  /**
257
236
  * LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
258
237
  * This is extremely useful when you want to select some data and map it to some virtual property.
@@ -260,12 +239,11 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
260
239
  * You also need to specify an alias of the joined data.
261
240
  * Optionally, you can add condition and parameters used in condition.
262
241
  */
263
- SelectQueryBuilder.prototype.leftJoinAndMapMany = function (mapToProperty, entityOrProperty, alias, condition, parameters) {
264
- if (condition === void 0) { condition = ""; }
242
+ leftJoinAndMapMany(mapToProperty, entityOrProperty, alias, condition, parameters) {
265
243
  this.addSelect(alias);
266
244
  this.join("LEFT", entityOrProperty, alias, condition, parameters, mapToProperty, true);
267
245
  return this;
268
- };
246
+ }
269
247
  /**
270
248
  * LEFT JOINs, SELECTs the data returned by a join and MAPs all that data to some entity's property.
271
249
  * This is extremely useful when you want to select some data and map it to some virtual property.
@@ -273,23 +251,23 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
273
251
  * You also need to specify an alias of the joined data.
274
252
  * Optionally, you can add condition and parameters used in condition.
275
253
  */
276
- SelectQueryBuilder.prototype.leftJoinAndMapOne = function (mapToProperty, entityOrProperty, alias, condition, parameters) {
277
- if (condition === void 0) { condition = ""; }
254
+ leftJoinAndMapOne(mapToProperty, entityOrProperty, alias, condition, parameters) {
278
255
  this.addSelect(alias);
279
256
  this.join("LEFT", entityOrProperty, alias, condition, parameters, mapToProperty, false);
280
257
  return this;
281
- };
258
+ }
282
259
  /**
283
260
  * LEFT JOINs relation id and maps it into some entity's property.
284
261
  * Optionally, you can add condition and parameters used in condition.
285
262
  */
286
- SelectQueryBuilder.prototype.loadRelationIdAndMap = function (mapToProperty, relationName, aliasNameOrOptions, queryBuilderFactory) {
287
- var relationIdAttribute = new RelationIdAttribute_1.RelationIdAttribute(this.expressionMap);
263
+ loadRelationIdAndMap(mapToProperty, relationName, aliasNameOrOptions, queryBuilderFactory) {
264
+ const relationIdAttribute = new RelationIdAttribute_1.RelationIdAttribute(this.expressionMap);
288
265
  relationIdAttribute.mapToProperty = mapToProperty;
289
266
  relationIdAttribute.relationName = relationName;
290
267
  if (typeof aliasNameOrOptions === "string")
291
268
  relationIdAttribute.alias = aliasNameOrOptions;
292
- if (aliasNameOrOptions instanceof Object && aliasNameOrOptions.disableMixedMap)
269
+ if (typeof aliasNameOrOptions === "object" &&
270
+ aliasNameOrOptions.disableMixedMap)
293
271
  relationIdAttribute.disableMixedMap = true;
294
272
  relationIdAttribute.queryBuilderFactory = queryBuilderFactory;
295
273
  this.expressionMap.relationIdAttributes.push(relationIdAttribute);
@@ -297,17 +275,17 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
297
275
  this.expressionMap.createAlias({
298
276
  type: "other",
299
277
  name: relationIdAttribute.junctionAlias,
300
- metadata: relationIdAttribute.relation.junctionEntityMetadata
278
+ metadata: relationIdAttribute.relation.junctionEntityMetadata,
301
279
  });
302
280
  }
303
281
  return this;
304
- };
282
+ }
305
283
  /**
306
284
  * Counts number of entities of entity's relation and maps the value into some entity's property.
307
285
  * Optionally, you can add condition and parameters used in condition.
308
286
  */
309
- SelectQueryBuilder.prototype.loadRelationCountAndMap = function (mapToProperty, relationName, aliasName, queryBuilderFactory) {
310
- var relationCountAttribute = new RelationCountAttribute_1.RelationCountAttribute(this.expressionMap);
287
+ loadRelationCountAndMap(mapToProperty, relationName, aliasName, queryBuilderFactory) {
288
+ const relationCountAttribute = new RelationCountAttribute_1.RelationCountAttribute(this.expressionMap);
311
289
  relationCountAttribute.mapToProperty = mapToProperty;
312
290
  relationCountAttribute.relationName = relationName;
313
291
  relationCountAttribute.alias = aliasName;
@@ -315,81 +293,80 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
315
293
  this.expressionMap.relationCountAttributes.push(relationCountAttribute);
316
294
  this.expressionMap.createAlias({
317
295
  type: "other",
318
- name: relationCountAttribute.junctionAlias
296
+ name: relationCountAttribute.junctionAlias,
319
297
  });
320
298
  if (relationCountAttribute.relation.junctionEntityMetadata) {
321
299
  this.expressionMap.createAlias({
322
300
  type: "other",
323
301
  name: relationCountAttribute.junctionAlias,
324
- metadata: relationCountAttribute.relation.junctionEntityMetadata
302
+ metadata: relationCountAttribute.relation.junctionEntityMetadata,
325
303
  });
326
304
  }
327
305
  return this;
328
- };
306
+ }
329
307
  /**
330
308
  * Loads all relation ids for all relations of the selected entity.
331
309
  * All relation ids will be mapped to relation property themself.
332
310
  * If array of strings is given then loads only relation ids of the given properties.
333
311
  */
334
- SelectQueryBuilder.prototype.loadAllRelationIds = function (options) {
335
- var _this = this;
336
- this.expressionMap.mainAlias.metadata.relations.forEach(function (relation) {
337
- if (options !== undefined && options.relations !== undefined && options.relations.indexOf(relation.propertyPath) === -1)
312
+ loadAllRelationIds(options) {
313
+ // todo: add skip relations
314
+ this.expressionMap.mainAlias.metadata.relations.forEach((relation) => {
315
+ if (options !== undefined &&
316
+ options.relations !== undefined &&
317
+ options.relations.indexOf(relation.propertyPath) === -1)
338
318
  return;
339
- _this.loadRelationIdAndMap(_this.expressionMap.mainAlias.name + "." + relation.propertyPath, _this.expressionMap.mainAlias.name + "." + relation.propertyPath, options);
319
+ this.loadRelationIdAndMap(this.expressionMap.mainAlias.name +
320
+ "." +
321
+ relation.propertyPath, this.expressionMap.mainAlias.name +
322
+ "." +
323
+ relation.propertyPath, options);
340
324
  });
341
325
  return this;
342
- };
326
+ }
343
327
  /**
344
328
  * Sets WHERE condition in the query builder.
345
329
  * If you had previously WHERE expression defined,
346
330
  * calling this function will override previously set WHERE conditions.
347
331
  * Additionally you can add parameters used in where expression.
348
332
  */
349
- SelectQueryBuilder.prototype.where = function (where, parameters) {
333
+ where(where, parameters) {
350
334
  this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions
351
- if (where && typeof where === "object" && !(where instanceof Brackets_1.Brackets)) {
352
- this.findOptions.where = where;
353
- }
354
- else {
355
- var condition = this.computeWhereParameter(where);
356
- if (condition)
357
- this.expressionMap.wheres = [{ type: "simple", condition: condition }];
358
- }
335
+ const condition = this.getWhereCondition(where);
336
+ if (condition)
337
+ this.expressionMap.wheres = [
338
+ { type: "simple", condition: condition },
339
+ ];
359
340
  if (parameters)
360
341
  this.setParameters(parameters);
361
342
  return this;
362
- };
343
+ }
363
344
  /**
364
345
  * Adds new AND WHERE condition in the query builder.
365
346
  * Additionally you can add parameters used in where expression.
366
347
  */
367
- SelectQueryBuilder.prototype.andWhere = function (where, parameters) {
368
- if (where && typeof where === "object" && !(where instanceof Brackets_1.Brackets)) {
369
- this.findOptions.where = where; // todo: implement "AND"
370
- }
371
- else {
372
- this.expressionMap.wheres.push({ type: "and", condition: this.computeWhereParameter(where) });
373
- }
348
+ andWhere(where, parameters) {
349
+ this.expressionMap.wheres.push({
350
+ type: "and",
351
+ condition: this.getWhereCondition(where),
352
+ });
374
353
  if (parameters)
375
354
  this.setParameters(parameters);
376
355
  return this;
377
- };
356
+ }
378
357
  /**
379
358
  * Adds new OR WHERE condition in the query builder.
380
359
  * Additionally you can add parameters used in where expression.
381
360
  */
382
- SelectQueryBuilder.prototype.orWhere = function (where, parameters) {
383
- if (where && typeof where === "object" && !(where instanceof Brackets_1.Brackets)) {
384
- this.findOptions.where = where; // todo: implement "OR"
385
- }
386
- else {
387
- this.expressionMap.wheres.push({ type: "or", condition: this.computeWhereParameter(where) });
388
- }
361
+ orWhere(where, parameters) {
362
+ this.expressionMap.wheres.push({
363
+ type: "or",
364
+ condition: this.getWhereCondition(where),
365
+ });
389
366
  if (parameters)
390
367
  this.setParameters(parameters);
391
368
  return this;
392
- };
369
+ }
393
370
  /**
394
371
  * Adds new AND WHERE with conditions for the given ids.
395
372
  *
@@ -398,9 +375,9 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
398
375
  * If you have multiple primary keys you need to pass object with property names and values specified,
399
376
  * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
400
377
  */
401
- SelectQueryBuilder.prototype.whereInIds = function (ids) {
402
- return this.where(this.createWhereIdsExpression(ids));
403
- };
378
+ whereInIds(ids) {
379
+ return this.where(this.getWhereInIdsCondition(ids));
380
+ }
404
381
  /**
405
382
  * Adds new AND WHERE with conditions for the given ids.
406
383
  *
@@ -409,9 +386,9 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
409
386
  * If you have multiple primary keys you need to pass object with property names and values specified,
410
387
  * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
411
388
  */
412
- SelectQueryBuilder.prototype.andWhereInIds = function (ids) {
413
- return this.andWhere(this.createWhereIdsExpression(ids));
414
- };
389
+ andWhereInIds(ids) {
390
+ return this.andWhere(this.getWhereInIdsCondition(ids));
391
+ }
415
392
  /**
416
393
  * Adds new OR WHERE with conditions for the given ids.
417
394
  *
@@ -420,47 +397,47 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
420
397
  * If you have multiple primary keys you need to pass object with property names and values specified,
421
398
  * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]
422
399
  */
423
- SelectQueryBuilder.prototype.orWhereInIds = function (ids) {
424
- return this.orWhere(this.createWhereIdsExpression(ids));
425
- };
400
+ orWhereInIds(ids) {
401
+ return this.orWhere(this.getWhereInIdsCondition(ids));
402
+ }
426
403
  /**
427
404
  * Sets HAVING condition in the query builder.
428
405
  * If you had previously HAVING expression defined,
429
406
  * calling this function will override previously set HAVING conditions.
430
407
  * Additionally you can add parameters used in where expression.
431
408
  */
432
- SelectQueryBuilder.prototype.having = function (having, parameters) {
409
+ having(having, parameters) {
433
410
  this.expressionMap.havings.push({ type: "simple", condition: having });
434
411
  if (parameters)
435
412
  this.setParameters(parameters);
436
413
  return this;
437
- };
414
+ }
438
415
  /**
439
416
  * Adds new AND HAVING condition in the query builder.
440
417
  * Additionally you can add parameters used in where expression.
441
418
  */
442
- SelectQueryBuilder.prototype.andHaving = function (having, parameters) {
419
+ andHaving(having, parameters) {
443
420
  this.expressionMap.havings.push({ type: "and", condition: having });
444
421
  if (parameters)
445
422
  this.setParameters(parameters);
446
423
  return this;
447
- };
424
+ }
448
425
  /**
449
426
  * Adds new OR HAVING condition in the query builder.
450
427
  * Additionally you can add parameters used in where expression.
451
428
  */
452
- SelectQueryBuilder.prototype.orHaving = function (having, parameters) {
429
+ orHaving(having, parameters) {
453
430
  this.expressionMap.havings.push({ type: "or", condition: having });
454
431
  if (parameters)
455
432
  this.setParameters(parameters);
456
433
  return this;
457
- };
434
+ }
458
435
  /**
459
436
  * Sets GROUP BY condition in the query builder.
460
437
  * If you had previously GROUP BY expression defined,
461
438
  * calling this function will override previously set GROUP BY conditions.
462
439
  */
463
- SelectQueryBuilder.prototype.groupBy = function (groupBy) {
440
+ groupBy(groupBy) {
464
441
  if (groupBy) {
465
442
  this.expressionMap.groupBys = [groupBy];
466
443
  }
@@ -468,36 +445,38 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
468
445
  this.expressionMap.groupBys = [];
469
446
  }
470
447
  return this;
471
- };
448
+ }
472
449
  /**
473
450
  * Adds GROUP BY condition in the query builder.
474
451
  */
475
- SelectQueryBuilder.prototype.addGroupBy = function (groupBy) {
452
+ addGroupBy(groupBy) {
476
453
  this.expressionMap.groupBys.push(groupBy);
477
454
  return this;
478
- };
455
+ }
479
456
  /**
480
457
  * Sets ORDER BY condition in the query builder.
481
458
  * If you had previously ORDER BY expression defined,
482
459
  * calling this function will override previously set ORDER BY conditions.
483
460
  */
484
- SelectQueryBuilder.prototype.orderBy = function (sort, order, nulls) {
485
- if (order === void 0) { order = "ASC"; }
486
- var _a, _b;
461
+ orderBy(sort, order = "ASC", nulls) {
487
462
  if (order !== undefined && order !== "ASC" && order !== "DESC")
488
- throw new Error("SelectQueryBuilder.addOrderBy \"order\" can accept only \"ASC\" and \"DESC\" values.");
489
- if (nulls !== undefined && nulls !== "NULLS FIRST" && nulls !== "NULLS LAST")
490
- throw new Error("SelectQueryBuilder.addOrderBy \"nulls\" can accept only \"NULLS FIRST\" and \"NULLS LAST\" values.");
463
+ throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "order" can accept only "ASC" and "DESC" values.`);
464
+ if (nulls !== undefined &&
465
+ nulls !== "NULLS FIRST" &&
466
+ nulls !== "NULLS LAST")
467
+ throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "nulls" can accept only "NULLS FIRST" and "NULLS LAST" values.`);
491
468
  if (sort) {
492
- if (sort instanceof Object) {
469
+ if (typeof sort === "object") {
493
470
  this.expressionMap.orderBys = sort;
494
471
  }
495
472
  else {
496
473
  if (nulls) {
497
- this.expressionMap.orderBys = (_a = {}, _a[sort] = { order: order, nulls: nulls }, _a);
474
+ this.expressionMap.orderBys = {
475
+ [sort]: { order, nulls },
476
+ };
498
477
  }
499
478
  else {
500
- this.expressionMap.orderBys = (_b = {}, _b[sort] = order, _b);
479
+ this.expressionMap.orderBys = { [sort]: order };
501
480
  }
502
481
  }
503
482
  }
@@ -505,467 +484,355 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
505
484
  this.expressionMap.orderBys = {};
506
485
  }
507
486
  return this;
508
- };
487
+ }
509
488
  /**
510
489
  * Adds ORDER BY condition in the query builder.
511
490
  */
512
- SelectQueryBuilder.prototype.addOrderBy = function (sort, order, nulls) {
513
- if (order === void 0) { order = "ASC"; }
491
+ addOrderBy(sort, order = "ASC", nulls) {
514
492
  if (order !== undefined && order !== "ASC" && order !== "DESC")
515
- throw new Error("SelectQueryBuilder.addOrderBy \"order\" can accept only \"ASC\" and \"DESC\" values.");
516
- if (nulls !== undefined && nulls !== "NULLS FIRST" && nulls !== "NULLS LAST")
517
- throw new Error("SelectQueryBuilder.addOrderBy \"nulls\" can accept only \"NULLS FIRST\" and \"NULLS LAST\" values.");
493
+ throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "order" can accept only "ASC" and "DESC" values.`);
494
+ if (nulls !== undefined &&
495
+ nulls !== "NULLS FIRST" &&
496
+ nulls !== "NULLS LAST")
497
+ throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "nulls" can accept only "NULLS FIRST" and "NULLS LAST" values.`);
518
498
  if (nulls) {
519
- this.expressionMap.orderBys[sort] = { order: order, nulls: nulls };
499
+ this.expressionMap.orderBys[sort] = { order, nulls };
520
500
  }
521
501
  else {
522
502
  this.expressionMap.orderBys[sort] = order;
523
503
  }
524
504
  return this;
525
- };
505
+ }
526
506
  /**
527
507
  * Set's LIMIT - maximum number of rows to be selected.
528
508
  * NOTE that it may not work as you expect if you are using joins.
529
509
  * If you want to implement pagination, and you are having join in your query,
530
510
  * then use instead take method instead.
531
511
  */
532
- SelectQueryBuilder.prototype.limit = function (limit) {
512
+ limit(limit) {
533
513
  this.expressionMap.limit = this.normalizeNumber(limit);
534
- if (this.expressionMap.limit !== undefined && isNaN(this.expressionMap.limit))
535
- throw new Error("Provided \"limit\" value is not a number. Please provide a numeric value.");
514
+ if (this.expressionMap.limit !== undefined &&
515
+ isNaN(this.expressionMap.limit))
516
+ throw new error_1.TypeORMError(`Provided "limit" value is not a number. Please provide a numeric value.`);
536
517
  return this;
537
- };
518
+ }
538
519
  /**
539
520
  * Set's OFFSET - selection offset.
540
521
  * NOTE that it may not work as you expect if you are using joins.
541
522
  * If you want to implement pagination, and you are having join in your query,
542
523
  * then use instead skip method instead.
543
524
  */
544
- SelectQueryBuilder.prototype.offset = function (offset) {
525
+ offset(offset) {
545
526
  this.expressionMap.offset = this.normalizeNumber(offset);
546
- if (this.expressionMap.offset !== undefined && isNaN(this.expressionMap.offset))
547
- throw new Error("Provided \"offset\" value is not a number. Please provide a numeric value.");
527
+ if (this.expressionMap.offset !== undefined &&
528
+ isNaN(this.expressionMap.offset))
529
+ throw new error_1.TypeORMError(`Provided "offset" value is not a number. Please provide a numeric value.`);
548
530
  return this;
549
- };
531
+ }
550
532
  /**
551
533
  * Sets maximal number of entities to take.
552
534
  */
553
- SelectQueryBuilder.prototype.take = function (take) {
535
+ take(take) {
554
536
  this.expressionMap.take = this.normalizeNumber(take);
555
- if (this.expressionMap.take !== undefined && isNaN(this.expressionMap.take))
556
- throw new Error("Provided \"take\" value is not a number. Please provide a numeric value.");
537
+ if (this.expressionMap.take !== undefined &&
538
+ isNaN(this.expressionMap.take))
539
+ throw new error_1.TypeORMError(`Provided "take" value is not a number. Please provide a numeric value.`);
557
540
  return this;
558
- };
541
+ }
559
542
  /**
560
543
  * Sets number of entities to skip.
561
544
  */
562
- SelectQueryBuilder.prototype.skip = function (skip) {
545
+ skip(skip) {
563
546
  this.expressionMap.skip = this.normalizeNumber(skip);
564
- if (this.expressionMap.skip !== undefined && isNaN(this.expressionMap.skip))
565
- throw new Error("Provided \"skip\" value is not a number. Please provide a numeric value.");
547
+ if (this.expressionMap.skip !== undefined &&
548
+ isNaN(this.expressionMap.skip))
549
+ throw new error_1.TypeORMError(`Provided "skip" value is not a number. Please provide a numeric value.`);
550
+ return this;
551
+ }
552
+ /**
553
+ * Set certain index to be used by the query.
554
+ *
555
+ * @param index Name of index to be used.
556
+ */
557
+ useIndex(index) {
558
+ this.expressionMap.useIndex = index;
566
559
  return this;
567
- };
560
+ }
568
561
  /**
569
562
  * Sets locking mode.
570
563
  */
571
- SelectQueryBuilder.prototype.setLock = function (lockMode, lockVersion) {
564
+ setLock(lockMode, lockVersion, lockTables) {
572
565
  this.expressionMap.lockMode = lockMode;
573
566
  this.expressionMap.lockVersion = lockVersion;
567
+ this.expressionMap.lockTables = lockTables;
574
568
  return this;
575
- };
569
+ }
570
+ /**
571
+ * Disables the global condition of "non-deleted" for the entity with delete date columns.
572
+ */
573
+ withDeleted() {
574
+ this.expressionMap.withDeleted = true;
575
+ return this;
576
+ }
576
577
  /**
577
578
  * Gets first raw result returned by execution of generated query builder sql.
578
579
  */
579
- SelectQueryBuilder.prototype.getRawOne = function () {
580
- return tslib_1.__awaiter(this, void 0, void 0, function () {
581
- return tslib_1.__generator(this, function (_a) {
582
- switch (_a.label) {
583
- case 0: return [4 /*yield*/, this.getRawMany()];
584
- case 1: return [2 /*return*/, (_a.sent())[0]];
585
- }
586
- });
587
- });
588
- };
580
+ async getRawOne() {
581
+ return (await this.getRawMany())[0];
582
+ }
589
583
  /**
590
584
  * Gets all raw results returned by execution of generated query builder sql.
591
585
  */
592
- SelectQueryBuilder.prototype.getRawMany = function () {
593
- return tslib_1.__awaiter(this, void 0, void 0, function () {
594
- var queryRunner, transactionStartedByUs, results, error_1, rollbackError_1;
595
- return tslib_1.__generator(this, function (_a) {
596
- switch (_a.label) {
597
- case 0:
598
- if (this.expressionMap.lockMode === "optimistic")
599
- throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
600
- this.expressionMap.queryEntity = false;
601
- queryRunner = this.obtainQueryRunner();
602
- transactionStartedByUs = false;
603
- _a.label = 1;
604
- case 1:
605
- _a.trys.push([1, 8, 13, 16]);
606
- if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];
607
- return [4 /*yield*/, queryRunner.startTransaction()];
608
- case 2:
609
- _a.sent();
610
- transactionStartedByUs = true;
611
- _a.label = 3;
612
- case 3:
613
- this.applyFindOptions();
614
- return [4 /*yield*/, this.loadRawResults(queryRunner)];
615
- case 4:
616
- results = _a.sent();
617
- if (!transactionStartedByUs) return [3 /*break*/, 7];
618
- return [4 /*yield*/, queryRunner.commitTransaction()];
619
- case 5:
620
- _a.sent();
621
- if (!this.expressionMap.callObservers) return [3 /*break*/, 7];
622
- return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
623
- case 6:
624
- _a.sent();
625
- _a.label = 7;
626
- case 7: return [2 /*return*/, results];
627
- case 8:
628
- error_1 = _a.sent();
629
- if (!transactionStartedByUs) return [3 /*break*/, 12];
630
- _a.label = 9;
631
- case 9:
632
- _a.trys.push([9, 11, , 12]);
633
- return [4 /*yield*/, queryRunner.rollbackTransaction()];
634
- case 10:
635
- _a.sent();
636
- return [3 /*break*/, 12];
637
- case 11:
638
- rollbackError_1 = _a.sent();
639
- return [3 /*break*/, 12];
640
- case 12: throw error_1;
641
- case 13:
642
- if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 15];
643
- return [4 /*yield*/, queryRunner.release()];
644
- case 14:
645
- _a.sent();
646
- _a.label = 15;
647
- case 15: return [7 /*endfinally*/];
648
- case 16: return [2 /*return*/];
586
+ async getRawMany() {
587
+ if (this.expressionMap.lockMode === "optimistic")
588
+ throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
589
+ this.expressionMap.queryEntity = false;
590
+ const queryRunner = this.obtainQueryRunner();
591
+ let transactionStartedByUs = false;
592
+ try {
593
+ // start transaction if it was enabled
594
+ if (this.expressionMap.useTransaction === true &&
595
+ queryRunner.isTransactionActive === false) {
596
+ await queryRunner.startTransaction();
597
+ transactionStartedByUs = true;
598
+ }
599
+ const results = await this.loadRawResults(queryRunner);
600
+ // close transaction if we started it
601
+ if (transactionStartedByUs) {
602
+ await queryRunner.commitTransaction();
603
+ }
604
+ return results;
605
+ }
606
+ catch (error) {
607
+ // rollback transaction if we started it
608
+ if (transactionStartedByUs) {
609
+ try {
610
+ await queryRunner.rollbackTransaction();
649
611
  }
650
- });
651
- });
652
- };
612
+ catch (rollbackError) { }
613
+ }
614
+ throw error;
615
+ }
616
+ finally {
617
+ if (queryRunner !== this.queryRunner) {
618
+ // means we created our own query runner
619
+ await queryRunner.release();
620
+ }
621
+ }
622
+ }
653
623
  /**
654
624
  * Executes sql generated by query builder and returns object with raw results and entities created from them.
655
625
  */
656
- SelectQueryBuilder.prototype.getRawAndEntities = function () {
657
- return tslib_1.__awaiter(this, void 0, void 0, function () {
658
- var queryRunner, transactionStartedByUs, results, error_2, rollbackError_2;
659
- return tslib_1.__generator(this, function (_a) {
660
- switch (_a.label) {
661
- case 0:
662
- queryRunner = this.obtainQueryRunner();
663
- transactionStartedByUs = false;
664
- _a.label = 1;
665
- case 1:
666
- _a.trys.push([1, 8, 13, 16]);
667
- if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];
668
- return [4 /*yield*/, queryRunner.startTransaction()];
669
- case 2:
670
- _a.sent();
671
- transactionStartedByUs = true;
672
- _a.label = 3;
673
- case 3:
674
- this.expressionMap.queryEntity = true;
675
- this.applyFindOptions();
676
- return [4 /*yield*/, this.executeEntitiesAndRawResults(queryRunner)];
677
- case 4:
678
- results = _a.sent();
679
- if (!transactionStartedByUs) return [3 /*break*/, 7];
680
- return [4 /*yield*/, queryRunner.commitTransaction()];
681
- case 5:
682
- _a.sent();
683
- if (!this.expressionMap.callObservers) return [3 /*break*/, 7];
684
- return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
685
- case 6:
686
- _a.sent();
687
- _a.label = 7;
688
- case 7: return [2 /*return*/, results];
689
- case 8:
690
- error_2 = _a.sent();
691
- if (!transactionStartedByUs) return [3 /*break*/, 12];
692
- _a.label = 9;
693
- case 9:
694
- _a.trys.push([9, 11, , 12]);
695
- return [4 /*yield*/, queryRunner.rollbackTransaction()];
696
- case 10:
697
- _a.sent();
698
- return [3 /*break*/, 12];
699
- case 11:
700
- rollbackError_2 = _a.sent();
701
- return [3 /*break*/, 12];
702
- case 12: throw error_2;
703
- case 13:
704
- if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 15];
705
- return [4 /*yield*/, queryRunner.release()];
706
- case 14:
707
- _a.sent();
708
- _a.label = 15;
709
- case 15: return [7 /*endfinally*/];
710
- case 16: return [2 /*return*/];
626
+ async getRawAndEntities() {
627
+ const queryRunner = this.obtainQueryRunner();
628
+ let transactionStartedByUs = false;
629
+ try {
630
+ // start transaction if it was enabled
631
+ if (this.expressionMap.useTransaction === true &&
632
+ queryRunner.isTransactionActive === false) {
633
+ await queryRunner.startTransaction();
634
+ transactionStartedByUs = true;
635
+ }
636
+ this.expressionMap.queryEntity = true;
637
+ const results = await this.executeEntitiesAndRawResults(queryRunner);
638
+ // close transaction if we started it
639
+ if (transactionStartedByUs) {
640
+ await queryRunner.commitTransaction();
641
+ }
642
+ return results;
643
+ }
644
+ catch (error) {
645
+ // rollback transaction if we started it
646
+ if (transactionStartedByUs) {
647
+ try {
648
+ await queryRunner.rollbackTransaction();
711
649
  }
712
- });
713
- });
714
- };
650
+ catch (rollbackError) { }
651
+ }
652
+ throw error;
653
+ }
654
+ finally {
655
+ if (queryRunner !== this.queryRunner)
656
+ // means we created our own query runner
657
+ await queryRunner.release();
658
+ }
659
+ }
715
660
  /**
716
661
  * Gets single entity returned by execution of generated query builder sql.
717
662
  */
718
- SelectQueryBuilder.prototype.getOne = function () {
719
- return tslib_1.__awaiter(this, void 0, void 0, function () {
720
- var results, result, metadata, actualVersion, actualVersion;
721
- return tslib_1.__generator(this, function (_a) {
722
- switch (_a.label) {
723
- case 0: return [4 /*yield*/, this.getRawAndEntities()];
724
- case 1:
725
- results = _a.sent();
726
- result = results.entities[0];
727
- if (result && this.expressionMap.lockMode === "optimistic" && this.expressionMap.lockVersion) {
728
- metadata = this.expressionMap.mainAlias.metadata;
729
- if (this.expressionMap.lockVersion instanceof Date) {
730
- actualVersion = metadata.updateDateColumn.getEntityValue(result);
731
- if (actualVersion.getTime() !== this.expressionMap.lockVersion.getTime())
732
- throw new OptimisticLockVersionMismatchError_1.OptimisticLockVersionMismatchError(metadata.name, this.expressionMap.lockVersion, actualVersion);
733
- }
734
- else {
735
- actualVersion = metadata.versionColumn.getEntityValue(result);
736
- if (actualVersion !== this.expressionMap.lockVersion)
737
- throw new OptimisticLockVersionMismatchError_1.OptimisticLockVersionMismatchError(metadata.name, this.expressionMap.lockVersion, actualVersion);
738
- }
739
- }
740
- return [2 /*return*/, result];
741
- }
742
- });
743
- });
744
- };
663
+ async getOne() {
664
+ const results = await this.getRawAndEntities();
665
+ const result = results.entities[0];
666
+ if (result &&
667
+ this.expressionMap.lockMode === "optimistic" &&
668
+ this.expressionMap.lockVersion) {
669
+ const metadata = this.expressionMap.mainAlias.metadata;
670
+ if (this.expressionMap.lockVersion instanceof Date) {
671
+ const actualVersion = metadata.updateDateColumn.getEntityValue(result); // what if columns arent set?
672
+ if (actualVersion.getTime() !==
673
+ this.expressionMap.lockVersion.getTime())
674
+ throw new OptimisticLockVersionMismatchError_1.OptimisticLockVersionMismatchError(metadata.name, this.expressionMap.lockVersion, actualVersion);
675
+ }
676
+ else {
677
+ const actualVersion = metadata.versionColumn.getEntityValue(result); // what if columns arent set?
678
+ if (actualVersion !== this.expressionMap.lockVersion)
679
+ throw new OptimisticLockVersionMismatchError_1.OptimisticLockVersionMismatchError(metadata.name, this.expressionMap.lockVersion, actualVersion);
680
+ }
681
+ }
682
+ if (result === undefined) {
683
+ return null;
684
+ }
685
+ return result;
686
+ }
687
+ /**
688
+ * Gets the first entity returned by execution of generated query builder sql or rejects the returned promise on error.
689
+ */
690
+ async getOneOrFail() {
691
+ const entity = await this.getOne();
692
+ if (!entity) {
693
+ throw new EntityNotFoundError_1.EntityNotFoundError(this.expressionMap.mainAlias.target, this);
694
+ }
695
+ return entity;
696
+ }
745
697
  /**
746
698
  * Gets entities returned by execution of generated query builder sql.
747
699
  */
748
- SelectQueryBuilder.prototype.getMany = function () {
749
- return tslib_1.__awaiter(this, void 0, void 0, function () {
750
- var results;
751
- return tslib_1.__generator(this, function (_a) {
752
- switch (_a.label) {
753
- case 0:
754
- if (this.expressionMap.lockMode === "optimistic")
755
- throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
756
- return [4 /*yield*/, this.getRawAndEntities()];
757
- case 1:
758
- results = _a.sent();
759
- return [2 /*return*/, results.entities];
760
- }
761
- });
762
- });
763
- };
700
+ async getMany() {
701
+ if (this.expressionMap.lockMode === "optimistic")
702
+ throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
703
+ const results = await this.getRawAndEntities();
704
+ return results.entities;
705
+ }
764
706
  /**
765
707
  * Gets count - number of entities selected by sql generated by this query builder.
766
708
  * Count excludes all limitations set by setFirstResult and setMaxResults methods call.
767
709
  */
768
- SelectQueryBuilder.prototype.getCount = function () {
769
- return tslib_1.__awaiter(this, void 0, void 0, function () {
770
- var queryRunner, transactionStartedByUs, results, error_3, rollbackError_3;
771
- return tslib_1.__generator(this, function (_a) {
772
- switch (_a.label) {
773
- case 0:
774
- if (this.expressionMap.lockMode === "optimistic")
775
- throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
776
- queryRunner = this.obtainQueryRunner();
777
- transactionStartedByUs = false;
778
- _a.label = 1;
779
- case 1:
780
- _a.trys.push([1, 8, 13, 16]);
781
- if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];
782
- return [4 /*yield*/, queryRunner.startTransaction()];
783
- case 2:
784
- _a.sent();
785
- transactionStartedByUs = true;
786
- _a.label = 3;
787
- case 3:
788
- this.expressionMap.queryEntity = false;
789
- this.applyFindOptions();
790
- return [4 /*yield*/, this.executeCountQuery(queryRunner)];
791
- case 4:
792
- results = _a.sent();
793
- if (!transactionStartedByUs) return [3 /*break*/, 7];
794
- return [4 /*yield*/, queryRunner.commitTransaction()];
795
- case 5:
796
- _a.sent();
797
- if (!this.expressionMap.callObservers) return [3 /*break*/, 7];
798
- return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
799
- case 6:
800
- _a.sent();
801
- _a.label = 7;
802
- case 7: return [2 /*return*/, results];
803
- case 8:
804
- error_3 = _a.sent();
805
- if (!transactionStartedByUs) return [3 /*break*/, 12];
806
- _a.label = 9;
807
- case 9:
808
- _a.trys.push([9, 11, , 12]);
809
- return [4 /*yield*/, queryRunner.rollbackTransaction()];
810
- case 10:
811
- _a.sent();
812
- return [3 /*break*/, 12];
813
- case 11:
814
- rollbackError_3 = _a.sent();
815
- return [3 /*break*/, 12];
816
- case 12: throw error_3;
817
- case 13:
818
- if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 15];
819
- return [4 /*yield*/, queryRunner.release()];
820
- case 14:
821
- _a.sent();
822
- _a.label = 15;
823
- case 15: return [7 /*endfinally*/];
824
- case 16: return [2 /*return*/];
710
+ async getCount() {
711
+ if (this.expressionMap.lockMode === "optimistic")
712
+ throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
713
+ const queryRunner = this.obtainQueryRunner();
714
+ let transactionStartedByUs = false;
715
+ try {
716
+ // start transaction if it was enabled
717
+ if (this.expressionMap.useTransaction === true &&
718
+ queryRunner.isTransactionActive === false) {
719
+ await queryRunner.startTransaction();
720
+ transactionStartedByUs = true;
721
+ }
722
+ this.expressionMap.queryEntity = false;
723
+ const results = await this.executeCountQuery(queryRunner);
724
+ // close transaction if we started it
725
+ if (transactionStartedByUs) {
726
+ await queryRunner.commitTransaction();
727
+ }
728
+ return results;
729
+ }
730
+ catch (error) {
731
+ // rollback transaction if we started it
732
+ if (transactionStartedByUs) {
733
+ try {
734
+ await queryRunner.rollbackTransaction();
825
735
  }
826
- });
827
- });
828
- };
736
+ catch (rollbackError) { }
737
+ }
738
+ throw error;
739
+ }
740
+ finally {
741
+ if (queryRunner !== this.queryRunner)
742
+ // means we created our own query runner
743
+ await queryRunner.release();
744
+ }
745
+ }
829
746
  /**
830
747
  * Executes built SQL query and returns entities and overall entities count (without limitation).
831
748
  * This method is useful to build pagination.
832
749
  */
833
- SelectQueryBuilder.prototype.getManyAndCount = function () {
834
- return tslib_1.__awaiter(this, void 0, void 0, function () {
835
- var queryRunner, transactionStartedByUs, entitiesAndRaw, count, results, error_4, rollbackError_4;
836
- return tslib_1.__generator(this, function (_a) {
837
- switch (_a.label) {
838
- case 0:
839
- if (this.expressionMap.lockMode === "optimistic")
840
- throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
841
- queryRunner = this.obtainQueryRunner();
842
- transactionStartedByUs = false;
843
- _a.label = 1;
844
- case 1:
845
- _a.trys.push([1, 9, 14, 17]);
846
- if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];
847
- return [4 /*yield*/, queryRunner.startTransaction()];
848
- case 2:
849
- _a.sent();
850
- transactionStartedByUs = true;
851
- _a.label = 3;
852
- case 3:
853
- this.applyFindOptions();
854
- this.expressionMap.queryEntity = true;
855
- return [4 /*yield*/, this.executeEntitiesAndRawResults(queryRunner)];
856
- case 4:
857
- entitiesAndRaw = _a.sent();
858
- this.expressionMap.queryEntity = false;
859
- return [4 /*yield*/, this.executeCountQuery(queryRunner)];
860
- case 5:
861
- count = _a.sent();
862
- results = [entitiesAndRaw.entities, count];
863
- if (!transactionStartedByUs) return [3 /*break*/, 8];
864
- return [4 /*yield*/, queryRunner.commitTransaction()];
865
- case 6:
866
- _a.sent();
867
- if (!this.expressionMap.callObservers) return [3 /*break*/, 8];
868
- return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
869
- case 7:
870
- _a.sent();
871
- _a.label = 8;
872
- case 8: return [2 /*return*/, results];
873
- case 9:
874
- error_4 = _a.sent();
875
- if (!transactionStartedByUs) return [3 /*break*/, 13];
876
- _a.label = 10;
877
- case 10:
878
- _a.trys.push([10, 12, , 13]);
879
- return [4 /*yield*/, queryRunner.rollbackTransaction()];
880
- case 11:
881
- _a.sent();
882
- return [3 /*break*/, 13];
883
- case 12:
884
- rollbackError_4 = _a.sent();
885
- return [3 /*break*/, 13];
886
- case 13: throw error_4;
887
- case 14:
888
- if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 16];
889
- return [4 /*yield*/, queryRunner.release()];
890
- case 15:
891
- _a.sent();
892
- _a.label = 16;
893
- case 16: return [7 /*endfinally*/];
894
- case 17: return [2 /*return*/];
750
+ async getManyAndCount() {
751
+ if (this.expressionMap.lockMode === "optimistic")
752
+ throw new OptimisticLockCanNotBeUsedError_1.OptimisticLockCanNotBeUsedError();
753
+ const queryRunner = this.obtainQueryRunner();
754
+ let transactionStartedByUs = false;
755
+ try {
756
+ // start transaction if it was enabled
757
+ if (this.expressionMap.useTransaction === true &&
758
+ queryRunner.isTransactionActive === false) {
759
+ await queryRunner.startTransaction();
760
+ transactionStartedByUs = true;
761
+ }
762
+ this.expressionMap.queryEntity = true;
763
+ const entitiesAndRaw = await this.executeEntitiesAndRawResults(queryRunner);
764
+ this.expressionMap.queryEntity = false;
765
+ const cacheId = this.expressionMap.cacheId;
766
+ // Creates a new cacheId for the count query, or it will retreive the above query results
767
+ // and count will return 0.
768
+ this.expressionMap.cacheId = cacheId ? `${cacheId}-count` : cacheId;
769
+ const count = await this.executeCountQuery(queryRunner);
770
+ const results = [entitiesAndRaw.entities, count];
771
+ // close transaction if we started it
772
+ if (transactionStartedByUs) {
773
+ await queryRunner.commitTransaction();
774
+ }
775
+ return results;
776
+ }
777
+ catch (error) {
778
+ // rollback transaction if we started it
779
+ if (transactionStartedByUs) {
780
+ try {
781
+ await queryRunner.rollbackTransaction();
895
782
  }
896
- });
897
- });
898
- };
783
+ catch (rollbackError) { }
784
+ }
785
+ throw error;
786
+ }
787
+ finally {
788
+ if (queryRunner !== this.queryRunner)
789
+ // means we created our own query runner
790
+ await queryRunner.release();
791
+ }
792
+ }
899
793
  /**
900
794
  * Executes built SQL query and returns raw data stream.
901
795
  */
902
- SelectQueryBuilder.prototype.stream = function () {
903
- return tslib_1.__awaiter(this, void 0, void 0, function () {
904
- var _a, sql, parameters, queryRunner, transactionStartedByUs, releaseFn, results, error_5, rollbackError_5;
905
- var _this = this;
906
- return tslib_1.__generator(this, function (_b) {
907
- switch (_b.label) {
908
- case 0:
909
- this.expressionMap.queryEntity = false;
910
- _a = tslib_1.__read(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1];
911
- queryRunner = this.obtainQueryRunner();
912
- transactionStartedByUs = false;
913
- _b.label = 1;
914
- case 1:
915
- _b.trys.push([1, 7, 12, 15]);
916
- if (!(this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false)) return [3 /*break*/, 3];
917
- return [4 /*yield*/, queryRunner.startTransaction()];
918
- case 2:
919
- _b.sent();
920
- transactionStartedByUs = true;
921
- _b.label = 3;
922
- case 3:
923
- releaseFn = function () {
924
- if (queryRunner !== _this.queryRunner) // means we created our own query runner
925
- return queryRunner.release();
926
- return;
927
- };
928
- results = queryRunner.stream(sql, parameters, releaseFn, releaseFn);
929
- if (!transactionStartedByUs) return [3 /*break*/, 6];
930
- return [4 /*yield*/, queryRunner.commitTransaction()];
931
- case 4:
932
- _b.sent();
933
- if (!this.expressionMap.callObservers) return [3 /*break*/, 6];
934
- return [4 /*yield*/, new ObserverExecutor_1.ObserverExecutor(this.connection.observers).execute()];
935
- case 5:
936
- _b.sent();
937
- _b.label = 6;
938
- case 6: return [2 /*return*/, results];
939
- case 7:
940
- error_5 = _b.sent();
941
- if (!transactionStartedByUs) return [3 /*break*/, 11];
942
- _b.label = 8;
943
- case 8:
944
- _b.trys.push([8, 10, , 11]);
945
- return [4 /*yield*/, queryRunner.rollbackTransaction()];
946
- case 9:
947
- _b.sent();
948
- return [3 /*break*/, 11];
949
- case 10:
950
- rollbackError_5 = _b.sent();
951
- return [3 /*break*/, 11];
952
- case 11: throw error_5;
953
- case 12:
954
- if (!(queryRunner !== this.queryRunner)) return [3 /*break*/, 14];
955
- return [4 /*yield*/, queryRunner.release()];
956
- case 13:
957
- _b.sent();
958
- _b.label = 14;
959
- case 14: return [7 /*endfinally*/];
960
- case 15: return [2 /*return*/];
796
+ async stream() {
797
+ this.expressionMap.queryEntity = false;
798
+ const [sql, parameters] = this.getQueryAndParameters();
799
+ const queryRunner = this.obtainQueryRunner();
800
+ let transactionStartedByUs = false;
801
+ try {
802
+ // start transaction if it was enabled
803
+ if (this.expressionMap.useTransaction === true &&
804
+ queryRunner.isTransactionActive === false) {
805
+ await queryRunner.startTransaction();
806
+ transactionStartedByUs = true;
807
+ }
808
+ const releaseFn = () => {
809
+ if (queryRunner !== this.queryRunner)
810
+ // means we created our own query runner
811
+ return queryRunner.release();
812
+ return;
813
+ };
814
+ const results = queryRunner.stream(sql, parameters, releaseFn, releaseFn);
815
+ // close transaction if we started it
816
+ if (transactionStartedByUs) {
817
+ await queryRunner.commitTransaction();
818
+ }
819
+ return results;
820
+ }
821
+ catch (error) {
822
+ // rollback transaction if we started it
823
+ if (transactionStartedByUs) {
824
+ try {
825
+ await queryRunner.rollbackTransaction();
961
826
  }
962
- });
963
- });
964
- };
827
+ catch (rollbackError) { }
828
+ }
829
+ throw error;
830
+ }
831
+ }
965
832
  /**
966
833
  * Enables or disables query result caching.
967
834
  */
968
- SelectQueryBuilder.prototype.cache = function (enabledOrMillisecondsOrId, maybeMilliseconds) {
835
+ cache(enabledOrMillisecondsOrId, maybeMilliseconds) {
969
836
  if (typeof enabledOrMillisecondsOrId === "boolean") {
970
837
  this.expressionMap.cache = enabledOrMillisecondsOrId;
971
838
  }
@@ -973,7 +840,8 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
973
840
  this.expressionMap.cache = true;
974
841
  this.expressionMap.cacheDuration = enabledOrMillisecondsOrId;
975
842
  }
976
- else if (typeof enabledOrMillisecondsOrId === "string" || typeof enabledOrMillisecondsOrId === "number") {
843
+ else if (typeof enabledOrMillisecondsOrId === "string" ||
844
+ typeof enabledOrMillisecondsOrId === "number") {
977
845
  this.expressionMap.cache = true;
978
846
  this.expressionMap.cacheId = enabledOrMillisecondsOrId;
979
847
  }
@@ -981,154 +849,173 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
981
849
  this.expressionMap.cacheDuration = maybeMilliseconds;
982
850
  }
983
851
  return this;
984
- };
852
+ }
985
853
  /**
986
854
  * Sets extra options that can be used to configure how query builder works.
987
855
  */
988
- SelectQueryBuilder.prototype.setOption = function (option) {
856
+ setOption(option) {
989
857
  this.expressionMap.options.push(option);
990
858
  return this;
991
- };
992
- /**
993
- * Disables eager relations.
994
- */
995
- SelectQueryBuilder.prototype.disableEagerRelations = function (disabled) {
996
- if (disabled === void 0) { disabled = true; }
997
- this.expressionMap.eagerRelations = disabled === true ? false : true;
998
- return this;
999
- };
859
+ }
1000
860
  // -------------------------------------------------------------------------
1001
861
  // Protected Methods
1002
862
  // -------------------------------------------------------------------------
1003
- SelectQueryBuilder.prototype.join = function (direction, entityOrProperty, aliasName, condition, parameters, mapToProperty, isMappingMany) {
863
+ join(direction, entityOrProperty, aliasName, condition, parameters, mapToProperty, isMappingMany) {
1004
864
  this.setParameters(parameters || {});
1005
- var joinAttribute = new JoinAttribute_1.JoinAttribute(this.connection, this.expressionMap);
865
+ const joinAttribute = new JoinAttribute_1.JoinAttribute(this.connection, this.expressionMap);
1006
866
  joinAttribute.direction = direction;
1007
867
  joinAttribute.mapToProperty = mapToProperty;
1008
868
  joinAttribute.isMappingMany = isMappingMany;
1009
869
  joinAttribute.entityOrProperty = entityOrProperty; // relationName
1010
- joinAttribute.condition = condition; // joinInverseSideCondition
870
+ joinAttribute.condition = condition ? condition : undefined; // joinInverseSideCondition
1011
871
  // joinAttribute.junctionAlias = joinAttribute.relation.isOwning ? parentAlias + "_" + destinationTableAlias : destinationTableAlias + "_" + parentAlias;
1012
872
  this.expressionMap.joinAttributes.push(joinAttribute);
1013
873
  if (joinAttribute.metadata) {
874
+ if (joinAttribute.metadata.deleteDateColumn &&
875
+ !this.expressionMap.withDeleted) {
876
+ const conditionDeleteColumn = `${aliasName}.${joinAttribute.metadata.deleteDateColumn.propertyName} IS NULL`;
877
+ joinAttribute.condition = joinAttribute.condition
878
+ ? ` ${joinAttribute.condition} AND ${conditionDeleteColumn}`
879
+ : `${conditionDeleteColumn}`;
880
+ }
1014
881
  // todo: find and set metadata right there?
1015
882
  joinAttribute.alias = this.expressionMap.createAlias({
1016
883
  type: "join",
1017
884
  name: aliasName,
1018
- metadata: joinAttribute.metadata
885
+ metadata: joinAttribute.metadata,
1019
886
  });
1020
- if (joinAttribute.relation && joinAttribute.relation.junctionEntityMetadata) {
887
+ if (joinAttribute.relation &&
888
+ joinAttribute.relation.junctionEntityMetadata) {
1021
889
  this.expressionMap.createAlias({
1022
890
  type: "join",
1023
891
  name: joinAttribute.junctionAlias,
1024
- metadata: joinAttribute.relation.junctionEntityMetadata
892
+ metadata: joinAttribute.relation.junctionEntityMetadata,
1025
893
  });
1026
894
  }
1027
895
  }
1028
896
  else {
1029
- var subQuery = "";
1030
- if (entityOrProperty instanceof Function) {
1031
- var subQueryBuilder = entityOrProperty(this.subQuery());
897
+ let subQuery = "";
898
+ if (typeof entityOrProperty === "function") {
899
+ const subQueryBuilder = entityOrProperty(this.subQuery());
1032
900
  this.setParameters(subQueryBuilder.getParameters());
1033
901
  subQuery = subQueryBuilder.getQuery();
1034
902
  }
1035
903
  else {
1036
904
  subQuery = entityOrProperty;
1037
905
  }
1038
- var isSubQuery = entityOrProperty instanceof Function || entityOrProperty.substr(0, 1) === "(" && entityOrProperty.substr(-1) === ")";
906
+ const isSubQuery = typeof entityOrProperty === "function" ||
907
+ (entityOrProperty.substr(0, 1) === "(" &&
908
+ entityOrProperty.substr(-1) === ")");
1039
909
  joinAttribute.alias = this.expressionMap.createAlias({
1040
910
  type: "join",
1041
911
  name: aliasName,
1042
- tablePath: isSubQuery === false ? entityOrProperty : undefined,
912
+ tablePath: isSubQuery === false
913
+ ? entityOrProperty
914
+ : undefined,
1043
915
  subQuery: isSubQuery === true ? subQuery : undefined,
1044
916
  });
1045
917
  }
1046
- };
918
+ }
1047
919
  /**
1048
920
  * Creates "SELECT FROM" part of SQL query.
1049
921
  */
1050
- SelectQueryBuilder.prototype.createSelectExpression = function () {
1051
- var _this = this;
922
+ createSelectExpression() {
1052
923
  if (!this.expressionMap.mainAlias)
1053
- throw new Error("Cannot build query because main alias is not set (call qb#from method)");
924
+ throw new error_1.TypeORMError("Cannot build query because main alias is not set (call qb#from method)");
1054
925
  // todo throw exception if selects or from is missing
1055
- var allSelects = [];
1056
- var excludedSelects = [];
926
+ const allSelects = [];
927
+ const excludedSelects = [];
1057
928
  if (this.expressionMap.mainAlias.hasMetadata) {
1058
- var metadata = this.expressionMap.mainAlias.metadata;
1059
- allSelects.push.apply(allSelects, tslib_1.__spread(this.buildEscapedEntityColumnSelects(this.expressionMap.mainAlias.name, metadata)));
1060
- excludedSelects.push.apply(excludedSelects, tslib_1.__spread(this.findEntityColumnSelects(this.expressionMap.mainAlias.name, metadata)));
929
+ const metadata = this.expressionMap.mainAlias.metadata;
930
+ allSelects.push(...this.buildEscapedEntityColumnSelects(this.expressionMap.mainAlias.name, metadata));
931
+ excludedSelects.push(...this.findEntityColumnSelects(this.expressionMap.mainAlias.name, metadata));
1061
932
  }
1062
933
  // add selects from joins
1063
- this.expressionMap.joinAttributes
1064
- .forEach(function (join) {
934
+ this.expressionMap.joinAttributes.forEach((join) => {
1065
935
  if (join.metadata) {
1066
- allSelects.push.apply(allSelects, tslib_1.__spread(_this.buildEscapedEntityColumnSelects(join.alias.name, join.metadata)));
1067
- excludedSelects.push.apply(excludedSelects, tslib_1.__spread(_this.findEntityColumnSelects(join.alias.name, join.metadata)));
936
+ allSelects.push(...this.buildEscapedEntityColumnSelects(join.alias.name, join.metadata));
937
+ excludedSelects.push(...this.findEntityColumnSelects(join.alias.name, join.metadata));
1068
938
  }
1069
939
  else {
1070
- var hasMainAlias = _this.expressionMap.selects.some(function (select) { return select.selection === join.alias.name; });
940
+ const hasMainAlias = this.expressionMap.selects.some((select) => select.selection === join.alias.name);
1071
941
  if (hasMainAlias) {
1072
- allSelects.push({ selection: _this.escape(join.alias.name) + ".*" });
1073
- var excludedSelect = _this.expressionMap.selects.find(function (select) { return select.selection === join.alias.name; });
942
+ allSelects.push({
943
+ selection: this.escape(join.alias.name) + ".*",
944
+ });
945
+ const excludedSelect = this.expressionMap.selects.find((select) => select.selection === join.alias.name);
1074
946
  excludedSelects.push(excludedSelect);
1075
947
  }
1076
948
  }
1077
949
  });
1078
950
  // add all other selects
1079
951
  this.expressionMap.selects
1080
- .filter(function (select) { return excludedSelects.indexOf(select) === -1; })
1081
- .forEach(function (select) { return allSelects.push({ selection: _this.replacePropertyNames(select.selection), aliasName: select.aliasName }); });
952
+ .filter((select) => excludedSelects.indexOf(select) === -1)
953
+ .forEach((select) => allSelects.push({
954
+ selection: this.replacePropertyNames(select.selection),
955
+ aliasName: select.aliasName,
956
+ }));
1082
957
  // if still selection is empty, then simply set it to all (*)
1083
958
  if (allSelects.length === 0)
1084
959
  allSelects.push({ selection: "*" });
1085
- var lock = "";
1086
- if (this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver) {
1087
- switch (this.expressionMap.lockMode) {
1088
- case "pessimistic_read":
1089
- lock = " WITH (HOLDLOCK, ROWLOCK)";
1090
- break;
1091
- case "pessimistic_write":
1092
- lock = " WITH (UPDLOCK, ROWLOCK)";
1093
- break;
1094
- case "dirty_read":
1095
- lock = " WITH (NOLOCK)";
1096
- break;
960
+ // Use certain index
961
+ let useIndex = "";
962
+ if (this.expressionMap.useIndex) {
963
+ if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver)) {
964
+ useIndex = ` USE INDEX (${this.expressionMap.useIndex})`;
1097
965
  }
1098
966
  }
1099
967
  // create a selection query
1100
- var froms = this.expressionMap.aliases
1101
- .filter(function (alias) { return alias.type === "from" && (alias.tablePath || alias.subQuery); })
1102
- .map(function (alias) {
968
+ const froms = this.expressionMap.aliases
969
+ .filter((alias) => alias.type === "from" &&
970
+ (alias.tablePath || alias.subQuery))
971
+ .map((alias) => {
1103
972
  if (alias.subQuery)
1104
- return alias.subQuery + " " + _this.escape(alias.name);
1105
- return _this.getTableName(alias.tablePath) + " " + _this.escape(alias.name);
973
+ return alias.subQuery + " " + this.escape(alias.name);
974
+ return (this.getTableName(alias.tablePath) +
975
+ " " +
976
+ this.escape(alias.name));
1106
977
  });
1107
- var select = this.createSelectDistinctExpression();
1108
- var selection = allSelects.map(function (select) { return select.selection + (select.aliasName ? " AS " + _this.escape(select.aliasName) : ""); }).join(", ");
1109
- return select + selection + " FROM " + froms.join(", ") + lock;
1110
- };
978
+ const select = this.createSelectDistinctExpression();
979
+ const selection = allSelects
980
+ .map((select) => select.selection +
981
+ (select.aliasName
982
+ ? " AS " + this.escape(select.aliasName)
983
+ : ""))
984
+ .join(", ");
985
+ return (select +
986
+ selection +
987
+ " FROM " +
988
+ froms.join(", ") +
989
+ this.createTableLockExpression() +
990
+ useIndex);
991
+ }
1111
992
  /**
1112
993
  * Creates select | select distinct part of SQL query.
1113
994
  */
1114
- SelectQueryBuilder.prototype.createSelectDistinctExpression = function () {
1115
- var _this = this;
1116
- var _a = this.expressionMap, selectDistinct = _a.selectDistinct, selectDistinctOn = _a.selectDistinctOn;
1117
- var driver = this.connection.driver;
1118
- var select = "SELECT ";
1119
- if (driver instanceof PostgresDriver_1.PostgresDriver && selectDistinctOn.length > 0) {
1120
- var selectDistinctOnMap = selectDistinctOn.map(function (on) { return _this.replacePropertyNames(on); }).join(", ");
1121
- select = "SELECT DISTINCT ON (" + selectDistinctOnMap + ") ";
995
+ createSelectDistinctExpression() {
996
+ const { selectDistinct, selectDistinctOn, maxExecutionTime } = this.expressionMap;
997
+ const { driver } = this.connection;
998
+ let select = "SELECT ";
999
+ if (maxExecutionTime > 0) {
1000
+ if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
1001
+ select += `/*+ MAX_EXECUTION_TIME(${this.expressionMap.maxExecutionTime}) */ `;
1002
+ }
1003
+ }
1004
+ if (driver.options.type === "postgres" && selectDistinctOn.length > 0) {
1005
+ const selectDistinctOnMap = selectDistinctOn
1006
+ .map((on) => this.replacePropertyNames(on))
1007
+ .join(", ");
1008
+ select = `SELECT DISTINCT ON (${selectDistinctOnMap}) `;
1122
1009
  }
1123
1010
  else if (selectDistinct) {
1124
1011
  select = "SELECT DISTINCT ";
1125
1012
  }
1126
1013
  return select;
1127
- };
1014
+ }
1128
1015
  /**
1129
1016
  * Creates "JOIN" part of SQL query.
1130
1017
  */
1131
- SelectQueryBuilder.prototype.createJoinExpression = function () {
1018
+ createJoinExpression() {
1132
1019
  // examples:
1133
1020
  // select from owning side
1134
1021
  // qb.select("post")
@@ -1136,131 +1023,256 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1136
1023
  // select from non-owning side
1137
1024
  // qb.select("category")
1138
1025
  // .leftJoinAndSelect("category.post", "post");
1139
- var _this = this;
1140
- var joins = this.expressionMap.joinAttributes.map(function (joinAttr) {
1141
- var relation = joinAttr.relation;
1142
- var destinationTableName = joinAttr.tablePath;
1143
- var destinationTableAlias = joinAttr.alias.name;
1144
- var appendedCondition = joinAttr.condition ? " AND (" + joinAttr.condition + ")" : "";
1145
- var parentAlias = joinAttr.parentAlias;
1026
+ const joins = this.expressionMap.joinAttributes.map((joinAttr) => {
1027
+ const relation = joinAttr.relation;
1028
+ const destinationTableName = joinAttr.tablePath;
1029
+ const destinationTableAlias = joinAttr.alias.name;
1030
+ let appendedCondition = joinAttr.condition
1031
+ ? " AND (" + joinAttr.condition + ")"
1032
+ : "";
1033
+ const parentAlias = joinAttr.parentAlias;
1146
1034
  // if join was build without relation (e.g. without "post.category") then it means that we have direct
1147
1035
  // table to join, without junction table involved. This means we simply join direct table.
1148
1036
  if (!parentAlias || !relation) {
1149
- var destinationJoin = joinAttr.alias.subQuery ? joinAttr.alias.subQuery : _this.getTableName(destinationTableName);
1150
- return " " + joinAttr.direction + " JOIN " + destinationJoin + " " + _this.escape(destinationTableAlias) +
1151
- (joinAttr.condition ? " ON " + _this.replacePropertyNames(joinAttr.condition) : "");
1037
+ const destinationJoin = joinAttr.alias.subQuery
1038
+ ? joinAttr.alias.subQuery
1039
+ : this.getTableName(destinationTableName);
1040
+ return (" " +
1041
+ joinAttr.direction +
1042
+ " JOIN " +
1043
+ destinationJoin +
1044
+ " " +
1045
+ this.escape(destinationTableAlias) +
1046
+ this.createTableLockExpression() +
1047
+ (joinAttr.condition
1048
+ ? " ON " + this.replacePropertyNames(joinAttr.condition)
1049
+ : ""));
1152
1050
  }
1153
1051
  // if real entity relation is involved
1154
1052
  if (relation.isManyToOne || relation.isOneToOneOwner) {
1155
1053
  // JOIN `category` `category` ON `category`.`id` = `post`.`categoryId`
1156
- var condition = relation.joinColumns.map(function (joinColumn) {
1157
- return destinationTableAlias + "." + joinColumn.referencedColumn.propertyPath + "=" +
1158
- parentAlias + "." + relation.propertyPath + "." + joinColumn.referencedColumn.propertyPath;
1159
- }).join(" AND ");
1160
- return " " + joinAttr.direction + " JOIN " + _this.getTableName(destinationTableName) + " " + _this.escape(destinationTableAlias) + " ON " + _this.replacePropertyNames(condition + appendedCondition);
1054
+ const condition = relation.joinColumns
1055
+ .map((joinColumn) => {
1056
+ return (destinationTableAlias +
1057
+ "." +
1058
+ joinColumn.referencedColumn.propertyPath +
1059
+ "=" +
1060
+ parentAlias +
1061
+ "." +
1062
+ relation.propertyPath +
1063
+ "." +
1064
+ joinColumn.referencedColumn.propertyPath);
1065
+ })
1066
+ .join(" AND ");
1067
+ return (" " +
1068
+ joinAttr.direction +
1069
+ " JOIN " +
1070
+ this.getTableName(destinationTableName) +
1071
+ " " +
1072
+ this.escape(destinationTableAlias) +
1073
+ this.createTableLockExpression() +
1074
+ " ON " +
1075
+ this.replacePropertyNames(condition + appendedCondition));
1161
1076
  }
1162
1077
  else if (relation.isOneToMany || relation.isOneToOneNotOwner) {
1163
1078
  // JOIN `post` `post` ON `post`.`categoryId` = `category`.`id`
1164
- var condition = relation.inverseRelation.joinColumns.map(function (joinColumn) {
1165
- return destinationTableAlias + "." + relation.inverseRelation.propertyPath + "." + joinColumn.referencedColumn.propertyPath + "=" +
1166
- parentAlias + "." + joinColumn.referencedColumn.propertyPath;
1167
- }).join(" AND ");
1168
- return " " + joinAttr.direction + " JOIN " + _this.getTableName(destinationTableName) + " " + _this.escape(destinationTableAlias) + " ON " + _this.replacePropertyNames(condition + appendedCondition);
1169
- }
1170
- else { // means many-to-many
1171
- var junctionTableName = relation.junctionEntityMetadata.tablePath;
1172
- var junctionAlias_1 = joinAttr.junctionAlias;
1173
- var junctionCondition = "", destinationCondition = "";
1079
+ const condition = relation
1080
+ .inverseRelation.joinColumns.map((joinColumn) => {
1081
+ if (relation.inverseEntityMetadata.tableType ===
1082
+ "entity-child" &&
1083
+ relation.inverseEntityMetadata.discriminatorColumn) {
1084
+ appendedCondition +=
1085
+ " AND " +
1086
+ destinationTableAlias +
1087
+ "." +
1088
+ relation.inverseEntityMetadata
1089
+ .discriminatorColumn.databaseName +
1090
+ "='" +
1091
+ relation.inverseEntityMetadata
1092
+ .discriminatorValue +
1093
+ "'";
1094
+ }
1095
+ return (destinationTableAlias +
1096
+ "." +
1097
+ relation.inverseRelation.propertyPath +
1098
+ "." +
1099
+ joinColumn.referencedColumn.propertyPath +
1100
+ "=" +
1101
+ parentAlias +
1102
+ "." +
1103
+ joinColumn.referencedColumn.propertyPath);
1104
+ })
1105
+ .join(" AND ");
1106
+ return (" " +
1107
+ joinAttr.direction +
1108
+ " JOIN " +
1109
+ this.getTableName(destinationTableName) +
1110
+ " " +
1111
+ this.escape(destinationTableAlias) +
1112
+ this.createTableLockExpression() +
1113
+ " ON " +
1114
+ this.replacePropertyNames(condition + appendedCondition));
1115
+ }
1116
+ else {
1117
+ // means many-to-many
1118
+ const junctionTableName = relation.junctionEntityMetadata.tablePath;
1119
+ const junctionAlias = joinAttr.junctionAlias;
1120
+ let junctionCondition = "", destinationCondition = "";
1174
1121
  if (relation.isOwning) {
1175
- junctionCondition = relation.joinColumns.map(function (joinColumn) {
1122
+ junctionCondition = relation.joinColumns
1123
+ .map((joinColumn) => {
1176
1124
  // `post_category`.`postId` = `post`.`id`
1177
- return junctionAlias_1 + "." + joinColumn.propertyPath + "=" + parentAlias + "." + joinColumn.referencedColumn.propertyPath;
1178
- }).join(" AND ");
1179
- destinationCondition = relation.inverseJoinColumns.map(function (joinColumn) {
1125
+ return (junctionAlias +
1126
+ "." +
1127
+ joinColumn.propertyPath +
1128
+ "=" +
1129
+ parentAlias +
1130
+ "." +
1131
+ joinColumn.referencedColumn.propertyPath);
1132
+ })
1133
+ .join(" AND ");
1134
+ destinationCondition = relation.inverseJoinColumns
1135
+ .map((joinColumn) => {
1180
1136
  // `category`.`id` = `post_category`.`categoryId`
1181
- return destinationTableAlias + "." + joinColumn.referencedColumn.propertyPath + "=" + junctionAlias_1 + "." + joinColumn.propertyPath;
1182
- }).join(" AND ");
1137
+ return (destinationTableAlias +
1138
+ "." +
1139
+ joinColumn.referencedColumn.propertyPath +
1140
+ "=" +
1141
+ junctionAlias +
1142
+ "." +
1143
+ joinColumn.propertyPath);
1144
+ })
1145
+ .join(" AND ");
1183
1146
  }
1184
1147
  else {
1185
- junctionCondition = relation.inverseRelation.inverseJoinColumns.map(function (joinColumn) {
1148
+ junctionCondition = relation
1149
+ .inverseRelation.inverseJoinColumns.map((joinColumn) => {
1186
1150
  // `post_category`.`categoryId` = `category`.`id`
1187
- return junctionAlias_1 + "." + joinColumn.propertyPath + "=" + parentAlias + "." + joinColumn.referencedColumn.propertyPath;
1188
- }).join(" AND ");
1189
- destinationCondition = relation.inverseRelation.joinColumns.map(function (joinColumn) {
1151
+ return (junctionAlias +
1152
+ "." +
1153
+ joinColumn.propertyPath +
1154
+ "=" +
1155
+ parentAlias +
1156
+ "." +
1157
+ joinColumn.referencedColumn.propertyPath);
1158
+ })
1159
+ .join(" AND ");
1160
+ destinationCondition = relation
1161
+ .inverseRelation.joinColumns.map((joinColumn) => {
1190
1162
  // `post`.`id` = `post_category`.`postId`
1191
- return destinationTableAlias + "." + joinColumn.referencedColumn.propertyPath + "=" + junctionAlias_1 + "." + joinColumn.propertyPath;
1192
- }).join(" AND ");
1163
+ return (destinationTableAlias +
1164
+ "." +
1165
+ joinColumn.referencedColumn.propertyPath +
1166
+ "=" +
1167
+ junctionAlias +
1168
+ "." +
1169
+ joinColumn.propertyPath);
1170
+ })
1171
+ .join(" AND ");
1193
1172
  }
1194
- return " " + joinAttr.direction + " JOIN " + _this.getTableName(junctionTableName) + " " + _this.escape(junctionAlias_1) + " ON " + _this.replacePropertyNames(junctionCondition) +
1195
- " " + joinAttr.direction + " JOIN " + _this.getTableName(destinationTableName) + " " + _this.escape(destinationTableAlias) + " ON " + _this.replacePropertyNames(destinationCondition + appendedCondition);
1173
+ return (" " +
1174
+ joinAttr.direction +
1175
+ " JOIN " +
1176
+ this.getTableName(junctionTableName) +
1177
+ " " +
1178
+ this.escape(junctionAlias) +
1179
+ this.createTableLockExpression() +
1180
+ " ON " +
1181
+ this.replacePropertyNames(junctionCondition) +
1182
+ " " +
1183
+ joinAttr.direction +
1184
+ " JOIN " +
1185
+ this.getTableName(destinationTableName) +
1186
+ " " +
1187
+ this.escape(destinationTableAlias) +
1188
+ this.createTableLockExpression() +
1189
+ " ON " +
1190
+ this.replacePropertyNames(destinationCondition + appendedCondition));
1196
1191
  }
1197
1192
  });
1198
1193
  return joins.join(" ");
1199
- };
1194
+ }
1200
1195
  /**
1201
1196
  * Creates "GROUP BY" part of SQL query.
1202
1197
  */
1203
- SelectQueryBuilder.prototype.createGroupByExpression = function () {
1198
+ createGroupByExpression() {
1204
1199
  if (!this.expressionMap.groupBys || !this.expressionMap.groupBys.length)
1205
1200
  return "";
1206
- return " GROUP BY " + this.replacePropertyNames(this.expressionMap.groupBys.join(", "));
1207
- };
1201
+ return (" GROUP BY " +
1202
+ this.replacePropertyNames(this.expressionMap.groupBys.join(", ")));
1203
+ }
1208
1204
  /**
1209
1205
  * Creates "ORDER BY" part of SQL query.
1210
1206
  */
1211
- SelectQueryBuilder.prototype.createOrderByExpression = function () {
1212
- var _this = this;
1213
- var orderBys = this.expressionMap.allOrderBys;
1207
+ createOrderByExpression() {
1208
+ const orderBys = this.expressionMap.allOrderBys;
1214
1209
  if (Object.keys(orderBys).length > 0)
1215
- return " ORDER BY " + Object.keys(orderBys)
1216
- .map(function (columnName) {
1217
- if (typeof orderBys[columnName] === "string") {
1218
- return _this.replacePropertyNames(columnName) + " " + orderBys[columnName];
1219
- }
1220
- else {
1221
- return _this.replacePropertyNames(columnName) + " " + orderBys[columnName].order + " " + orderBys[columnName].nulls;
1222
- }
1223
- })
1224
- .join(", ");
1210
+ return (" ORDER BY " +
1211
+ Object.keys(orderBys)
1212
+ .map((columnName) => {
1213
+ if (typeof orderBys[columnName] === "string") {
1214
+ return (this.replacePropertyNames(columnName) +
1215
+ " " +
1216
+ orderBys[columnName]);
1217
+ }
1218
+ else {
1219
+ return (this.replacePropertyNames(columnName) +
1220
+ " " +
1221
+ orderBys[columnName].order +
1222
+ " " +
1223
+ orderBys[columnName].nulls);
1224
+ }
1225
+ })
1226
+ .join(", "));
1225
1227
  return "";
1226
- };
1228
+ }
1227
1229
  /**
1228
1230
  * Creates "LIMIT" and "OFFSET" parts of SQL query.
1229
1231
  */
1230
- SelectQueryBuilder.prototype.createLimitOffsetExpression = function () {
1232
+ createLimitOffsetExpression() {
1231
1233
  // in the case if nothing is joined in the query builder we don't need to make two requests to get paginated results
1232
1234
  // we can use regular limit / offset, that's why we add offset and limit construction here based on skip and take values
1233
- var offset = this.expressionMap.offset, limit = this.expressionMap.limit;
1234
- if (!offset && !limit && this.expressionMap.joinAttributes.length === 0) {
1235
+ let offset = this.expressionMap.offset, limit = this.expressionMap.limit;
1236
+ if (!offset &&
1237
+ !limit &&
1238
+ this.expressionMap.joinAttributes.length === 0) {
1235
1239
  offset = this.expressionMap.skip;
1236
1240
  limit = this.expressionMap.take;
1237
1241
  }
1238
- if (this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver) {
1242
+ if (this.connection.driver.options.type === "mssql") {
1239
1243
  // Due to a limitation in SQL Server's parser implementation it does not support using
1240
1244
  // OFFSET or FETCH NEXT without an ORDER BY clause being provided. In cases where the
1241
1245
  // user does not request one we insert a dummy ORDER BY that does nothing and should
1242
1246
  // have no effect on the query planner or on the order of the results returned.
1243
1247
  // https://dba.stackexchange.com/a/193799
1244
- var prefix = "";
1245
- if ((limit || offset) && Object.keys(this.expressionMap.allOrderBys).length <= 0) {
1248
+ let prefix = "";
1249
+ if ((limit || offset) &&
1250
+ Object.keys(this.expressionMap.allOrderBys).length <= 0) {
1246
1251
  prefix = " ORDER BY (SELECT NULL)";
1247
1252
  }
1248
1253
  if (limit && offset)
1249
- return prefix + " OFFSET " + offset + " ROWS FETCH NEXT " + limit + " ROWS ONLY";
1254
+ return (prefix +
1255
+ " OFFSET " +
1256
+ offset +
1257
+ " ROWS FETCH NEXT " +
1258
+ limit +
1259
+ " ROWS ONLY");
1250
1260
  if (limit)
1251
- return prefix + " OFFSET 0 ROWS FETCH NEXT " + limit + " ROWS ONLY";
1261
+ return (prefix + " OFFSET 0 ROWS FETCH NEXT " + limit + " ROWS ONLY");
1252
1262
  if (offset)
1253
1263
  return prefix + " OFFSET " + offset + " ROWS";
1254
1264
  }
1255
- else if (this.connection.driver instanceof MysqlDriver_1.MysqlDriver || this.connection.driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver) {
1265
+ else if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver) ||
1266
+ this.connection.driver.options.type === "aurora-mysql" ||
1267
+ this.connection.driver.options.type === "sap") {
1256
1268
  if (limit && offset)
1257
1269
  return " LIMIT " + limit + " OFFSET " + offset;
1258
1270
  if (limit)
1259
1271
  return " LIMIT " + limit;
1260
1272
  if (offset)
1261
- throw new OffsetWithoutLimitNotSupportedError_1.OffsetWithoutLimitNotSupportedError("MySQL");
1273
+ throw new OffsetWithoutLimitNotSupportedError_1.OffsetWithoutLimitNotSupportedError();
1262
1274
  }
1263
- else if (this.connection.driver instanceof AbstractSqliteDriver_1.AbstractSqliteDriver) {
1275
+ else if (DriverUtils_1.DriverUtils.isSQLiteFamily(this.connection.driver)) {
1264
1276
  if (limit && offset)
1265
1277
  return " LIMIT " + limit + " OFFSET " + offset;
1266
1278
  if (limit)
@@ -1268,9 +1280,13 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1268
1280
  if (offset)
1269
1281
  return " LIMIT -1 OFFSET " + offset;
1270
1282
  }
1271
- else if (this.connection.driver instanceof OracleDriver_1.OracleDriver) {
1283
+ else if (this.connection.driver.options.type === "oracle") {
1272
1284
  if (limit && offset)
1273
- return " OFFSET " + offset + " ROWS FETCH NEXT " + limit + " ROWS ONLY";
1285
+ return (" OFFSET " +
1286
+ offset +
1287
+ " ROWS FETCH NEXT " +
1288
+ limit +
1289
+ " ROWS ONLY");
1274
1290
  if (limit)
1275
1291
  return " FETCH NEXT " + limit + " ROWS ONLY";
1276
1292
  if (offset)
@@ -1285,465 +1301,667 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1285
1301
  return " OFFSET " + offset;
1286
1302
  }
1287
1303
  return "";
1288
- };
1304
+ }
1305
+ /**
1306
+ * Creates "LOCK" part of SELECT Query after table Clause
1307
+ * ex.
1308
+ * SELECT 1
1309
+ * FROM USER U WITH (NOLOCK)
1310
+ * JOIN ORDER O WITH (NOLOCK)
1311
+ * ON U.ID=O.OrderID
1312
+ */
1313
+ createTableLockExpression() {
1314
+ if (this.connection.driver.options.type === "mssql") {
1315
+ switch (this.expressionMap.lockMode) {
1316
+ case "pessimistic_read":
1317
+ return " WITH (HOLDLOCK, ROWLOCK)";
1318
+ case "pessimistic_write":
1319
+ return " WITH (UPDLOCK, ROWLOCK)";
1320
+ case "dirty_read":
1321
+ return " WITH (NOLOCK)";
1322
+ }
1323
+ }
1324
+ return "";
1325
+ }
1289
1326
  /**
1290
1327
  * Creates "LOCK" part of SQL query.
1291
1328
  */
1292
- SelectQueryBuilder.prototype.createLockExpression = function () {
1293
- var driver = this.connection.driver;
1329
+ createLockExpression() {
1330
+ const driver = this.connection.driver;
1331
+ let lockTablesClause = "";
1332
+ if (this.expressionMap.lockTables) {
1333
+ if (!(driver.options.type === "postgres" ||
1334
+ driver.options.type === "cockroachdb")) {
1335
+ throw new error_1.TypeORMError("Lock tables not supported in selected driver");
1336
+ }
1337
+ if (this.expressionMap.lockTables.length < 1) {
1338
+ throw new error_1.TypeORMError("lockTables cannot be an empty array");
1339
+ }
1340
+ lockTablesClause = " OF " + this.expressionMap.lockTables.join(", ");
1341
+ }
1294
1342
  switch (this.expressionMap.lockMode) {
1295
1343
  case "pessimistic_read":
1296
- if (driver instanceof MysqlDriver_1.MysqlDriver || driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver) {
1344
+ if (DriverUtils_1.DriverUtils.isMySQLFamily(driver) ||
1345
+ driver.options.type === "aurora-mysql") {
1297
1346
  return " LOCK IN SHARE MODE";
1298
1347
  }
1299
- else if (driver instanceof PostgresDriver_1.PostgresDriver) {
1300
- return " FOR SHARE";
1348
+ else if (driver.options.type === "postgres") {
1349
+ return " FOR SHARE" + lockTablesClause;
1301
1350
  }
1302
- else if (driver instanceof OracleDriver_1.OracleDriver) {
1351
+ else if (driver.options.type === "oracle") {
1303
1352
  return " FOR UPDATE";
1304
1353
  }
1305
- else if (driver instanceof SqlServerDriver_1.SqlServerDriver) {
1354
+ else if (driver.options.type === "mssql") {
1306
1355
  return "";
1307
1356
  }
1308
1357
  else {
1309
1358
  throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
1310
1359
  }
1311
1360
  case "pessimistic_write":
1312
- if (driver instanceof MysqlDriver_1.MysqlDriver || driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver || driver instanceof PostgresDriver_1.PostgresDriver || driver instanceof OracleDriver_1.OracleDriver) {
1361
+ if (DriverUtils_1.DriverUtils.isMySQLFamily(driver) ||
1362
+ driver.options.type === "aurora-mysql" ||
1363
+ driver.options.type === "oracle") {
1313
1364
  return " FOR UPDATE";
1314
1365
  }
1315
- else if (driver instanceof SqlServerDriver_1.SqlServerDriver) {
1366
+ else if (driver.options.type === "postgres" ||
1367
+ driver.options.type === "cockroachdb") {
1368
+ return " FOR UPDATE" + lockTablesClause;
1369
+ }
1370
+ else if (driver.options.type === "mssql") {
1316
1371
  return "";
1317
1372
  }
1318
1373
  else {
1319
1374
  throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
1320
1375
  }
1376
+ case "pessimistic_partial_write":
1377
+ if (driver.options.type === "postgres") {
1378
+ return " FOR UPDATE" + lockTablesClause + " SKIP LOCKED";
1379
+ }
1380
+ else if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
1381
+ return " FOR UPDATE SKIP LOCKED";
1382
+ }
1383
+ else {
1384
+ throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
1385
+ }
1386
+ case "pessimistic_write_or_fail":
1387
+ if (driver.options.type === "postgres" ||
1388
+ driver.options.type === "cockroachdb") {
1389
+ return " FOR UPDATE" + lockTablesClause + " NOWAIT";
1390
+ }
1391
+ else if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
1392
+ return " FOR UPDATE NOWAIT";
1393
+ }
1394
+ else {
1395
+ throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
1396
+ }
1397
+ case "for_no_key_update":
1398
+ if (driver.options.type === "postgres" ||
1399
+ driver.options.type === "cockroachdb") {
1400
+ return " FOR NO KEY UPDATE" + lockTablesClause;
1401
+ }
1402
+ else {
1403
+ throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
1404
+ }
1321
1405
  default:
1322
1406
  return "";
1323
1407
  }
1324
- };
1408
+ }
1325
1409
  /**
1326
1410
  * Creates "HAVING" part of SQL query.
1327
1411
  */
1328
- SelectQueryBuilder.prototype.createHavingExpression = function () {
1329
- var _this = this;
1412
+ createHavingExpression() {
1330
1413
  if (!this.expressionMap.havings || !this.expressionMap.havings.length)
1331
1414
  return "";
1332
- var conditions = this.expressionMap.havings.map(function (having, index) {
1415
+ const conditions = this.expressionMap.havings
1416
+ .map((having, index) => {
1333
1417
  switch (having.type) {
1334
1418
  case "and":
1335
- return (index > 0 ? "AND " : "") + _this.replacePropertyNames(having.condition);
1419
+ return ((index > 0 ? "AND " : "") +
1420
+ this.replacePropertyNames(having.condition));
1336
1421
  case "or":
1337
- return (index > 0 ? "OR " : "") + _this.replacePropertyNames(having.condition);
1422
+ return ((index > 0 ? "OR " : "") +
1423
+ this.replacePropertyNames(having.condition));
1338
1424
  default:
1339
- return _this.replacePropertyNames(having.condition);
1425
+ return this.replacePropertyNames(having.condition);
1340
1426
  }
1341
- }).join(" ");
1427
+ })
1428
+ .join(" ");
1342
1429
  if (!conditions.length)
1343
1430
  return "";
1344
1431
  return " HAVING " + conditions;
1345
- };
1346
- SelectQueryBuilder.prototype.buildEscapedEntityColumnSelects = function (aliasName, metadata) {
1347
- var _this = this;
1348
- var hasMainAlias = this.expressionMap.selects.some(function (select) { return select.selection === aliasName; });
1349
- var columns = [];
1432
+ }
1433
+ buildEscapedEntityColumnSelects(aliasName, metadata) {
1434
+ const hasMainAlias = this.expressionMap.selects.some((select) => select.selection === aliasName);
1435
+ const columns = [];
1350
1436
  if (hasMainAlias) {
1351
- columns.push.apply(columns, tslib_1.__spread(metadata.columns.filter(function (column) { return column.isSelect === true; })));
1437
+ columns.push(...metadata.columns.filter((column) => column.isSelect === true));
1352
1438
  }
1353
- columns.push.apply(columns, tslib_1.__spread(metadata.columns.filter(function (column) {
1354
- return _this.expressionMap.selects.some(function (select) { return select.selection === aliasName + "." + column.propertyPath; });
1355
- })));
1439
+ columns.push(...metadata.columns.filter((column) => {
1440
+ return this.expressionMap.selects.some((select) => select.selection ===
1441
+ aliasName + "." + column.propertyPath);
1442
+ }));
1356
1443
  // if user used partial selection and did not select some primary columns which are required to be selected
1357
1444
  // we select those primary columns and mark them as "virtual". Later virtual column values will be removed from final entity
1358
1445
  // to make entity contain exactly what user selected
1359
- if (columns.length === 0) // however not in the case when nothing (even partial) was selected from this target (for example joins without selection)
1446
+ if (columns.length === 0)
1447
+ // however not in the case when nothing (even partial) was selected from this target (for example joins without selection)
1360
1448
  return [];
1361
- var nonSelectedPrimaryColumns = this.expressionMap.queryEntity ? metadata.primaryColumns.filter(function (primaryColumn) { return columns.indexOf(primaryColumn) === -1; }) : [];
1362
- var allColumns = tslib_1.__spread(columns, nonSelectedPrimaryColumns);
1363
- return allColumns.map(function (column) {
1364
- var selection = _this.expressionMap.selects.find(function (select) { return select.selection === aliasName + "." + column.propertyPath; });
1365
- var selectionPath = _this.escape(aliasName) + "." + _this.escape(column.databaseName);
1366
- if (_this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {
1367
- if (_this.connection.driver instanceof MysqlDriver_1.MysqlDriver || _this.connection.driver instanceof AuroraDataApiDriver_1.AuroraDataApiDriver) {
1368
- var useLegacy = _this.connection.driver.options.legacySpatialSupport;
1369
- var asText = useLegacy ? "AsText" : "ST_AsText";
1370
- selectionPath = asText + "(" + selectionPath + ")";
1449
+ const nonSelectedPrimaryColumns = this.expressionMap.queryEntity
1450
+ ? metadata.primaryColumns.filter((primaryColumn) => columns.indexOf(primaryColumn) === -1)
1451
+ : [];
1452
+ const allColumns = [...columns, ...nonSelectedPrimaryColumns];
1453
+ const finalSelects = [];
1454
+ allColumns.forEach((column) => {
1455
+ let selectionPath = this.escape(aliasName) + "." + this.escape(column.databaseName);
1456
+ if (this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {
1457
+ if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver) ||
1458
+ this.connection.driver.options.type === "aurora-mysql") {
1459
+ const useLegacy = this.connection.driver.options.legacySpatialSupport;
1460
+ const asText = useLegacy ? "AsText" : "ST_AsText";
1461
+ selectionPath = `${asText}(${selectionPath})`;
1371
1462
  }
1372
- if (_this.connection.driver instanceof PostgresDriver_1.PostgresDriver)
1373
- // cast to JSON to trigger parsing in the driver
1374
- selectionPath = "ST_AsGeoJSON(" + selectionPath + ")::json";
1375
- if (_this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver)
1376
- selectionPath = selectionPath + ".ToString()";
1377
- }
1378
- return {
1379
- selection: selectionPath,
1380
- aliasName: selection && selection.aliasName ? selection.aliasName : DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, aliasName, column.databaseName),
1381
- // todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later!
1382
- virtual: selection ? selection.virtual === true : (hasMainAlias ? false : true),
1383
- };
1463
+ if (this.connection.driver.options.type === "postgres")
1464
+ if (column.precision) {
1465
+ // cast to JSON to trigger parsing in the driver
1466
+ selectionPath = `ST_AsGeoJSON(${selectionPath}, ${column.precision})::json`;
1467
+ }
1468
+ else {
1469
+ selectionPath = `ST_AsGeoJSON(${selectionPath})::json`;
1470
+ }
1471
+ if (this.connection.driver.options.type === "mssql")
1472
+ selectionPath = `${selectionPath}.ToString()`;
1473
+ }
1474
+ const selections = this.expressionMap.selects.filter((select) => select.selection === aliasName + "." + column.propertyPath);
1475
+ if (selections.length) {
1476
+ selections.forEach((selection) => {
1477
+ finalSelects.push({
1478
+ selection: selectionPath,
1479
+ aliasName: selection.aliasName
1480
+ ? selection.aliasName
1481
+ : DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, aliasName, column.databaseName),
1482
+ // todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later!
1483
+ virtual: selection.virtual,
1484
+ });
1485
+ });
1486
+ }
1487
+ else {
1488
+ finalSelects.push({
1489
+ selection: selectionPath,
1490
+ aliasName: DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, aliasName, column.databaseName),
1491
+ // todo: need to keep in mind that custom selection.aliasName breaks hydrator. fix it later!
1492
+ virtual: hasMainAlias,
1493
+ });
1494
+ }
1384
1495
  });
1385
- };
1386
- SelectQueryBuilder.prototype.findEntityColumnSelects = function (aliasName, metadata) {
1387
- var mainSelect = this.expressionMap.selects.find(function (select) { return select.selection === aliasName; });
1496
+ return finalSelects;
1497
+ }
1498
+ findEntityColumnSelects(aliasName, metadata) {
1499
+ const mainSelect = this.expressionMap.selects.find((select) => select.selection === aliasName);
1388
1500
  if (mainSelect)
1389
1501
  return [mainSelect];
1390
- return this.expressionMap.selects.filter(function (select) {
1391
- return metadata.columns.some(function (column) { return select.selection === aliasName + "." + column.propertyPath; });
1502
+ return this.expressionMap.selects.filter((select) => {
1503
+ return metadata.columns.some((column) => select.selection === aliasName + "." + column.propertyPath);
1392
1504
  });
1393
- };
1394
- SelectQueryBuilder.prototype.applyFindOptions = function () {
1395
- var _this = this;
1396
- if (this.expressionMap.mainAlias.hasMetadata) {
1397
- if (this.findOptions.select)
1398
- this.buildSelect(this.findOptions.select, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
1399
- if (this.findOptions.where)
1505
+ }
1506
+ computeCountExpression() {
1507
+ const mainAlias = this.expressionMap.mainAlias.name; // todo: will this work with "fromTableName"?
1508
+ const metadata = this.expressionMap.mainAlias.metadata;
1509
+ const primaryColumns = metadata.primaryColumns;
1510
+ const distinctAlias = this.escape(mainAlias);
1511
+ // If we aren't doing anything that will create a join, we can use a simpler `COUNT` instead
1512
+ // so we prevent poor query patterns in the most likely cases
1513
+ if (this.expressionMap.joinAttributes.length === 0 &&
1514
+ this.expressionMap.relationIdAttributes.length === 0 &&
1515
+ this.expressionMap.relationCountAttributes.length === 0) {
1516
+ return "COUNT(1)";
1517
+ }
1518
+ // For everything else, we'll need to do some hackery to get the correct count values.
1519
+ if (this.connection.driver.options.type === "cockroachdb" ||
1520
+ this.connection.driver.options.type === "postgres") {
1521
+ // Postgres and CockroachDB can pass multiple parameters to the `DISTINCT` function
1522
+ // https://www.postgresql.org/docs/9.5/sql-select.html#SQL-DISTINCT
1523
+ return ("COUNT(DISTINCT(" +
1524
+ primaryColumns
1525
+ .map((c) => `${distinctAlias}.${this.escape(c.databaseName)}`)
1526
+ .join(", ") +
1527
+ "))");
1528
+ }
1529
+ if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver)) {
1530
+ // MySQL & MariaDB can pass multiple parameters to the `DISTINCT` language construct
1531
+ // https://mariadb.com/kb/en/count-distinct/
1532
+ return ("COUNT(DISTINCT " +
1533
+ primaryColumns
1534
+ .map((c) => `${distinctAlias}.${this.escape(c.databaseName)}`)
1535
+ .join(", ") +
1536
+ ")");
1537
+ }
1538
+ if (this.connection.driver.options.type === "mssql") {
1539
+ // SQL Server has gotta be different from everyone else. They don't support
1540
+ // distinct counting multiple columns & they don't have the same operator
1541
+ // characteristic for concatenating, so we gotta use the `CONCAT` function.
1542
+ // However, If it's exactly 1 column we can omit the `CONCAT` for better performance.
1543
+ const columnsExpression = primaryColumns
1544
+ .map((primaryColumn) => `${distinctAlias}.${this.escape(primaryColumn.databaseName)}`)
1545
+ .join(", '|;|', ");
1546
+ if (primaryColumns.length === 1) {
1547
+ return `COUNT(DISTINCT(${columnsExpression}))`;
1548
+ }
1549
+ return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
1550
+ }
1551
+ // If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.
1552
+ // Per the SQL spec, this is the canonical string concatenation mechanism which is most
1553
+ // likely to work across servers implementing the SQL standard.
1554
+ // Please note, if there is only one primary column that the concatenation does not occur in this
1555
+ // query and the query is a standard `COUNT DISTINCT` in that case.
1556
+ return (`COUNT(DISTINCT(` +
1557
+ primaryColumns
1558
+ .map((c) => `${distinctAlias}.${this.escape(c.databaseName)}`)
1559
+ .join(" || '|;|' || ") +
1560
+ "))");
1561
+ }
1562
+ async executeCountQuery(queryRunner) {
1563
+ const countSql = this.computeCountExpression();
1564
+ const results = await this.clone()
1565
+ .orderBy()
1566
+ .groupBy()
1567
+ .offset(undefined)
1568
+ .limit(undefined)
1569
+ .skip(undefined)
1570
+ .take(undefined)
1571
+ .select(countSql, "cnt")
1572
+ .setOption("disable-global-order")
1573
+ .loadRawResults(queryRunner);
1574
+ if (!results || !results[0] || !results[0]["cnt"])
1575
+ return 0;
1576
+ return parseInt(results[0]["cnt"]);
1577
+ }
1578
+ applyFindOptions() {
1579
+ // todo: convert relations: string[] to object map to simplify code
1580
+ // todo: same with selects
1581
+ if (this.expressionMap.mainAlias.metadata) {
1582
+ if (this.findOptions.relationLoadStrategy) {
1583
+ this.expressionMap.relationLoadStrategy =
1584
+ this.findOptions.relationLoadStrategy;
1585
+ }
1586
+ if (this.findOptions.comment) {
1587
+ this.comment(this.findOptions.comment);
1588
+ }
1589
+ if (this.findOptions.withDeleted) {
1590
+ this.withDeleted();
1591
+ }
1592
+ if (this.findOptions.select) {
1593
+ const select = Array.isArray(this.findOptions.select)
1594
+ ? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(this.findOptions.select)
1595
+ : this.findOptions.select;
1596
+ this.buildSelect(select, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
1597
+ }
1598
+ if (this.selects.length) {
1599
+ this.select(this.selects);
1600
+ }
1601
+ this.selects = [];
1602
+ if (this.findOptions.relations) {
1603
+ const relations = Array.isArray(this.findOptions.relations)
1604
+ ? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(this.findOptions.relations)
1605
+ : this.findOptions.relations;
1606
+ this.buildRelations(relations, typeof this.findOptions.select === "object"
1607
+ ? this.findOptions.select
1608
+ : undefined, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
1609
+ if (this.findOptions.loadEagerRelations !== false &&
1610
+ this.expressionMap.relationLoadStrategy === "join") {
1611
+ this.buildEagerRelations(relations, typeof this.findOptions.select === "object"
1612
+ ? this.findOptions
1613
+ .select
1614
+ : undefined, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
1615
+ }
1616
+ }
1617
+ if (this.selects.length) {
1618
+ console.log("adding following selects: ", this.selects);
1619
+ this.addSelect(this.selects);
1620
+ }
1621
+ if (this.findOptions.where) {
1400
1622
  this.conditions = this.buildWhere(this.findOptions.where, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
1401
- if (this.findOptions.order)
1623
+ if (this.conditions.length)
1624
+ this.andWhere(this.conditions.substr(0, 1) !== "("
1625
+ ? "(" + this.conditions + ")"
1626
+ : this.conditions); // temporary and where and braces
1627
+ }
1628
+ if (this.findOptions.order) {
1402
1629
  this.buildOrder(this.findOptions.order, this.expressionMap.mainAlias.metadata, this.expressionMap.mainAlias.name);
1403
- if (this.findOptions.relations)
1404
- this.buildRelations(this.findOptions.relations, this.expressionMap.mainAlias.metadata);
1405
- if (this.selects.length)
1406
- this.select(this.selects);
1630
+ }
1407
1631
  // apply joins
1408
1632
  if (this.joins.length) {
1409
- this.joins.forEach(function (join) {
1410
- if (join.select) {
1633
+ this.joins.forEach((join) => {
1634
+ if (join.select && !join.selection) {
1635
+ // if (join.selection) {
1636
+ //
1637
+ // } else {
1411
1638
  if (join.type === "inner") {
1412
- _this.innerJoinAndSelect(join.parentAlias + "." + join.relationMetadata.propertyPath, join.alias);
1639
+ this.innerJoinAndSelect(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
1413
1640
  }
1414
1641
  else {
1415
- _this.leftJoinAndSelect(join.parentAlias + "." + join.relationMetadata.propertyPath, join.alias);
1642
+ this.leftJoinAndSelect(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
1416
1643
  }
1644
+ // }
1417
1645
  }
1418
1646
  else {
1419
1647
  if (join.type === "inner") {
1420
- _this.innerJoin(join.parentAlias + "." + join.relationMetadata.propertyPath, join.alias);
1648
+ this.innerJoin(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
1421
1649
  }
1422
1650
  else {
1423
- _this.leftJoin(join.parentAlias + "." + join.relationMetadata.propertyPath, join.alias);
1651
+ this.leftJoin(`${join.parentAlias}.${join.relationMetadata.propertyPath}`, join.alias);
1424
1652
  }
1425
1653
  }
1654
+ // if (join.select) {
1655
+ // if (this.findOptions.loadEagerRelations !== false) {
1656
+ // FindOptionsUtils.joinEagerRelations(
1657
+ // this,
1658
+ // join.alias,
1659
+ // join.relationMetadata.inverseEntityMetadata
1660
+ // );
1661
+ // }
1662
+ // }
1426
1663
  });
1427
1664
  }
1428
- if (this.conditions.length)
1429
- this.andWhere(this.conditions.substr(0, 1) !== "(" ? "(" + this.conditions + ")" : this.conditions); // temporary and where and braces
1665
+ // if (this.conditions.length) {
1666
+ // this.where(this.conditions.join(" AND "));
1667
+ // }
1430
1668
  // apply offset
1431
1669
  if (this.findOptions.skip !== undefined) {
1432
- if (this.findOptions.pagination === false) {
1433
- this.offset(this.findOptions.skip);
1434
- }
1435
- else {
1436
- this.skip(this.findOptions.skip);
1437
- }
1670
+ // if (this.findOptions.options && this.findOptions.options.pagination === false) {
1671
+ // this.offset(this.findOptions.skip);
1672
+ // } else {
1673
+ this.skip(this.findOptions.skip);
1674
+ // }
1438
1675
  }
1439
1676
  // apply limit
1440
1677
  if (this.findOptions.take !== undefined) {
1441
- if (this.findOptions.pagination === false) {
1442
- this.limit(this.findOptions.take);
1443
- }
1444
- else {
1445
- this.take(this.findOptions.take);
1446
- }
1678
+ // if (this.findOptions.options && this.findOptions.options.pagination === false) {
1679
+ // this.limit(this.findOptions.take);
1680
+ // } else {
1681
+ this.take(this.findOptions.take);
1682
+ // }
1447
1683
  }
1448
- if (this.orderBys.length) {
1449
- this.orderBys.forEach(function (orderBy) {
1450
- _this.addOrderBy(orderBy.alias, orderBy.direction, orderBy.nulls);
1451
- });
1684
+ // apply caching options
1685
+ if (typeof this.findOptions.cache === "number") {
1686
+ this.cache(this.findOptions.cache);
1452
1687
  }
1453
- if (this.expressionMap.eagerRelations === true) {
1454
- var manuallyJoinedRelations_1 = this.expressionMap.joinAttributes
1455
- .filter(function (join) { return join.relationPropertyPath; })
1456
- .map(function (join) { return join.parentAlias + "." + join.relationPropertyPath; });
1457
- var joinEagerRelations_1 = function (alias, metadata) {
1458
- metadata.eagerRelations.forEach(function (relation) {
1459
- var relationAlias = _this.connection.namingStrategy.eagerJoinRelationAlias(alias, relation.propertyPath);
1460
- var path = alias + "." + relation.propertyPath;
1461
- if (manuallyJoinedRelations_1.indexOf(path) === -1) {
1462
- // This alias+propertyPath was already joined manually
1463
- _this.leftJoinAndSelect(path, relationAlias);
1464
- }
1465
- joinEagerRelations_1(relationAlias, relation.inverseEntityMetadata);
1688
+ else if (typeof this.findOptions.cache === "boolean") {
1689
+ this.cache(this.findOptions.cache);
1690
+ }
1691
+ else if (typeof this.findOptions.cache === "object") {
1692
+ this.cache(this.findOptions.cache.id, this.findOptions.cache.milliseconds);
1693
+ }
1694
+ if (this.findOptions.join) {
1695
+ if (this.findOptions.join.leftJoin)
1696
+ Object.keys(this.findOptions.join.leftJoin).forEach((key) => {
1697
+ this.leftJoin(this.findOptions.join.leftJoin[key], key);
1698
+ });
1699
+ if (this.findOptions.join.innerJoin)
1700
+ Object.keys(this.findOptions.join.innerJoin).forEach((key) => {
1701
+ this.innerJoin(this.findOptions.join.innerJoin[key], key);
1702
+ });
1703
+ if (this.findOptions.join.leftJoinAndSelect)
1704
+ Object.keys(this.findOptions.join.leftJoinAndSelect).forEach((key) => {
1705
+ this.leftJoinAndSelect(this.findOptions.join.leftJoinAndSelect[key], key);
1706
+ });
1707
+ if (this.findOptions.join.innerJoinAndSelect)
1708
+ Object.keys(this.findOptions.join.innerJoinAndSelect).forEach((key) => {
1709
+ this.innerJoinAndSelect(this.findOptions.join.innerJoinAndSelect[key], key);
1466
1710
  });
1467
- };
1468
- joinEagerRelations_1(this.expressionMap.mainAlias.name, this.expressionMap.mainAlias.metadata);
1711
+ }
1712
+ if (this.findOptions.lock) {
1713
+ if (this.findOptions.lock.mode === "optimistic") {
1714
+ this.setLock(this.findOptions.lock.mode, this.findOptions.lock.version);
1715
+ }
1716
+ else if (this.findOptions.lock.mode === "pessimistic_read" ||
1717
+ this.findOptions.lock.mode === "pessimistic_write" ||
1718
+ this.findOptions.lock.mode === "dirty_read" ||
1719
+ this.findOptions.lock.mode ===
1720
+ "pessimistic_partial_write" ||
1721
+ this.findOptions.lock.mode ===
1722
+ "pessimistic_write_or_fail" ||
1723
+ this.findOptions.lock.mode === "for_no_key_update") {
1724
+ const tableNames = this.findOptions.lock.tables
1725
+ ? this.findOptions.lock.tables.map((table) => {
1726
+ const tableAlias = this.expressionMap.aliases.find((alias) => {
1727
+ return (alias.metadata
1728
+ .tableNameWithoutPrefix === table);
1729
+ });
1730
+ if (!tableAlias) {
1731
+ throw new error_1.TypeORMError(`"${table}" is not part of this query`);
1732
+ }
1733
+ return this.escape(tableAlias.name);
1734
+ })
1735
+ : undefined;
1736
+ this.setLock(this.findOptions.lock.mode, undefined, tableNames);
1737
+ }
1469
1738
  }
1470
1739
  if (this.findOptions.loadRelationIds === true) {
1471
1740
  this.loadAllRelationIds();
1472
1741
  }
1473
- else if (this.findOptions.loadRelationIds instanceof Object) {
1742
+ else if (typeof this.findOptions.loadRelationIds === "object") {
1474
1743
  this.loadAllRelationIds(this.findOptions.loadRelationIds);
1475
1744
  }
1476
- }
1477
- };
1478
- SelectQueryBuilder.prototype.applyFindOptionsOrmOptions = function (findOptions) {
1479
- if (this.expressionMap.mainAlias.metadata) {
1480
- // apply caching options
1481
- if (typeof findOptions.cache === "number") {
1482
- this.cache(findOptions.cache);
1483
- }
1484
- else if (typeof findOptions.cache === "boolean") {
1485
- this.cache(findOptions.cache);
1745
+ if (this.findOptions.loadEagerRelations !== false) {
1746
+ FindOptionsUtils_1.FindOptionsUtils.joinEagerRelations(this, this.expressionMap.mainAlias.name, this.expressionMap.mainAlias.metadata);
1486
1747
  }
1487
- else if (typeof findOptions.cache === "object") {
1488
- this.cache(findOptions.cache.id, findOptions.cache.milliseconds);
1748
+ if (this.findOptions.transaction === true) {
1749
+ this.expressionMap.useTransaction = true;
1489
1750
  }
1490
- if (findOptions.options) {
1491
- if (findOptions.options.listeners === false)
1492
- this.callListeners(false);
1493
- if (findOptions.options.observers === false)
1494
- this.callObservers(false);
1495
- }
1496
- if (findOptions.lock) {
1497
- if (findOptions.lock.mode === "optimistic") {
1498
- this.setLock(findOptions.lock.mode, findOptions.lock.version);
1751
+ // if (this.orderBys.length) {
1752
+ // this.orderBys.forEach(orderBy => {
1753
+ // this.addOrderBy(orderBy.alias, orderBy.direction, orderBy.nulls);
1754
+ // });
1755
+ // }
1756
+ // todo
1757
+ // if (this.options.options && this.options.options.eagerRelations) {
1758
+ // this.queryBuilder
1759
+ // }
1760
+ // todo
1761
+ // if (this.findOptions.options && this.findOptions.listeners === false) {
1762
+ // this.callListeners(false);
1763
+ // }
1764
+ }
1765
+ }
1766
+ /**
1767
+ * Executes sql generated by query builder and returns object with raw results and entities created from them.
1768
+ */
1769
+ async executeEntitiesAndRawResults(queryRunner) {
1770
+ if (!this.expressionMap.mainAlias)
1771
+ throw new error_1.TypeORMError(`Alias is not set. Use "from" method to set an alias.`);
1772
+ if ((this.expressionMap.lockMode === "pessimistic_read" ||
1773
+ this.expressionMap.lockMode === "pessimistic_write" ||
1774
+ this.expressionMap.lockMode === "pessimistic_partial_write" ||
1775
+ this.expressionMap.lockMode === "pessimistic_write_or_fail" ||
1776
+ this.expressionMap.lockMode === "for_no_key_update") &&
1777
+ !queryRunner.isTransactionActive)
1778
+ throw new PessimisticLockTransactionRequiredError_1.PessimisticLockTransactionRequiredError();
1779
+ if (this.expressionMap.lockMode === "optimistic") {
1780
+ const metadata = this.expressionMap.mainAlias.metadata;
1781
+ if (!metadata.versionColumn && !metadata.updateDateColumn)
1782
+ throw new NoVersionOrUpdateDateColumnError_1.NoVersionOrUpdateDateColumnError(metadata.name);
1783
+ }
1784
+ const relationIdLoader = new RelationIdLoader_1.RelationIdLoader(this.connection, queryRunner, this.expressionMap.relationIdAttributes);
1785
+ const relationCountLoader = new RelationCountLoader_1.RelationCountLoader(this.connection, queryRunner, this.expressionMap.relationCountAttributes);
1786
+ const relationIdMetadataTransformer = new RelationIdMetadataToAttributeTransformer_1.RelationIdMetadataToAttributeTransformer(this.expressionMap);
1787
+ relationIdMetadataTransformer.transform();
1788
+ const relationCountMetadataTransformer = new RelationCountMetadataToAttributeTransformer_1.RelationCountMetadataToAttributeTransformer(this.expressionMap);
1789
+ relationCountMetadataTransformer.transform();
1790
+ let rawResults = [], entities = [];
1791
+ // for pagination enabled (e.g. skip and take) its much more complicated - its a special process
1792
+ // where we make two queries to find the data we need
1793
+ // first query find ids in skip and take range
1794
+ // and second query loads the actual data in given ids range
1795
+ if ((this.expressionMap.skip || this.expressionMap.take) &&
1796
+ this.expressionMap.joinAttributes.length > 0) {
1797
+ // we are skipping order by here because its not working in subqueries anyway
1798
+ // to make order by working we need to apply it on a distinct query
1799
+ const [selects, orderBys] = this.createOrderByCombinedWithSelectExpression("distinctAlias");
1800
+ const metadata = this.expressionMap.mainAlias.metadata;
1801
+ const mainAliasName = this.expressionMap.mainAlias.name;
1802
+ const querySelects = metadata.primaryColumns.map((primaryColumn) => {
1803
+ const distinctAlias = this.escape("distinctAlias");
1804
+ const columnAlias = this.escape(DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, mainAliasName, primaryColumn.databaseName));
1805
+ if (!orderBys[columnAlias])
1806
+ // make sure we aren't overriding user-defined order in inverse direction
1807
+ orderBys[columnAlias] = "ASC";
1808
+ const alias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, "ids_" + mainAliasName, primaryColumn.databaseName);
1809
+ return `${distinctAlias}.${columnAlias} as "${alias}"`;
1810
+ });
1811
+ rawResults = await new SelectQueryBuilder(this.connection, queryRunner)
1812
+ .select(`DISTINCT ${querySelects.join(", ")}`)
1813
+ .addSelect(selects)
1814
+ .from(`(${this.clone().orderBy().getQuery()})`, "distinctAlias")
1815
+ .offset(this.expressionMap.skip)
1816
+ .limit(this.expressionMap.take)
1817
+ .orderBy(orderBys)
1818
+ .cache(this.expressionMap.cache
1819
+ ? this.expressionMap.cache
1820
+ : this.expressionMap.cacheId, this.expressionMap.cacheDuration)
1821
+ .setParameters(this.getParameters())
1822
+ .setNativeParameters(this.expressionMap.nativeParameters)
1823
+ .getRawMany();
1824
+ if (rawResults.length > 0) {
1825
+ let condition = "";
1826
+ const parameters = {};
1827
+ if (metadata.hasMultiplePrimaryKeys) {
1828
+ condition = rawResults
1829
+ .map((result, index) => {
1830
+ return metadata.primaryColumns
1831
+ .map((primaryColumn) => {
1832
+ const paramKey = `orm_distinct_ids_${index}_${primaryColumn.databaseName}`;
1833
+ parameters[paramKey] =
1834
+ result[`ids_${mainAliasName}_${primaryColumn.databaseName}`];
1835
+ return `${mainAliasName}.${primaryColumn.propertyPath}=:${paramKey}`;
1836
+ })
1837
+ .join(" AND ");
1838
+ })
1839
+ .join(" OR ");
1499
1840
  }
1500
1841
  else {
1501
- this.setLock(findOptions.lock.mode);
1842
+ const alias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, "ids_" + mainAliasName, metadata.primaryColumns[0].databaseName);
1843
+ const ids = rawResults.map((result) => result[alias]);
1844
+ const areAllNumbers = ids.every((id) => typeof id === "number");
1845
+ if (areAllNumbers) {
1846
+ // fixes #190. if all numbers then its safe to perform query without parameter
1847
+ condition = `${mainAliasName}.${metadata.primaryColumns[0].propertyPath} IN (${ids.join(", ")})`;
1848
+ }
1849
+ else {
1850
+ parameters["orm_distinct_ids"] = ids;
1851
+ condition =
1852
+ mainAliasName +
1853
+ "." +
1854
+ metadata.primaryColumns[0].propertyPath +
1855
+ " IN (:...orm_distinct_ids)";
1856
+ }
1502
1857
  }
1858
+ rawResults = await this.clone()
1859
+ .mergeExpressionMap({
1860
+ extraAppendedAndWhereCondition: condition,
1861
+ })
1862
+ .setParameters(parameters)
1863
+ .loadRawResults(queryRunner);
1503
1864
  }
1504
- if (findOptions.options && findOptions.options.eagerRelations !== undefined) {
1505
- this.expressionMap.eagerRelations = findOptions.options.eagerRelations;
1506
- }
1507
- }
1508
- };
1509
- SelectQueryBuilder.prototype.executeCountQuery = function (queryRunner) {
1510
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1511
- var mainAlias, metadata, distinctAlias, countSql, results;
1512
- var _this = this;
1513
- return tslib_1.__generator(this, function (_a) {
1514
- switch (_a.label) {
1515
- case 0:
1516
- mainAlias = this.expressionMap.mainAlias.name;
1517
- metadata = this.expressionMap.mainAlias.metadata;
1518
- distinctAlias = this.escape(mainAlias);
1519
- countSql = "";
1520
- if (metadata.hasMultiplePrimaryKeys) {
1521
- if (this.connection.driver instanceof AbstractSqliteDriver_1.AbstractSqliteDriver) {
1522
- countSql = "COUNT(DISTINCT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1523
- var propertyName = _this.escape(primaryColumn.databaseName);
1524
- return distinctAlias + "." + propertyName;
1525
- }).join(" || ") + ")) as \"cnt\"";
1526
- }
1527
- else {
1528
- countSql = "COUNT(DISTINCT(CONCAT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1529
- var propertyName = _this.escape(primaryColumn.databaseName);
1530
- return distinctAlias + "." + propertyName;
1531
- }).join(", ") + "))) as \"cnt\"";
1532
- }
1533
- }
1534
- else {
1535
- countSql = "COUNT(DISTINCT(" + metadata.primaryColumns.map(function (primaryColumn, index) {
1536
- var propertyName = _this.escape(primaryColumn.databaseName);
1537
- return distinctAlias + "." + propertyName;
1538
- }).join(", ") + ")) as \"cnt\"";
1539
- }
1540
- return [4 /*yield*/, this.clone()
1541
- .orderBy()
1542
- .groupBy()
1543
- .offset(undefined)
1544
- .limit(undefined)
1545
- .skip(undefined)
1546
- .take(undefined)
1547
- .select(countSql)
1548
- .setOption("disable-global-order")
1549
- // .setFindOptions({ where: this.findOptions.where })
1550
- .loadRawResults(queryRunner)];
1551
- case 1:
1552
- results = _a.sent();
1553
- if (!results || !results[0] || !results[0]["cnt"])
1554
- return [2 /*return*/, 0];
1555
- return [2 /*return*/, parseInt(results[0]["cnt"])];
1556
- }
1557
- });
1558
- });
1559
- };
1560
- /**
1561
- * Executes sql generated by query builder and returns object with raw results and entities created from them.
1562
- */
1563
- SelectQueryBuilder.prototype.executeEntitiesAndRawResults = function (queryRunner) {
1564
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1565
- var cloneQb1, cloneQb2, metadata, relationIdLoader, relationCountLoader, relationIdMetadataTransformer, relationCountMetadataTransformer, rawResults, entities, _a, selects, orderBys_1, metadata_1, mainAliasName_1, querySelects, clonnedQb, condition, parameters_1, ids, areAllNumbers, rawRelationIdResults, rawRelationCountResults, transformer, broadcastResult;
1566
- var _this = this;
1567
- return tslib_1.__generator(this, function (_b) {
1568
- switch (_b.label) {
1569
- case 0:
1570
- if (!this.expressionMap.mainAlias)
1571
- throw new Error("Alias is not set. Use \"from\" method to set an alias.");
1572
- cloneQb1 = this.clone();
1573
- cloneQb2 = this.clone();
1574
- if ((this.expressionMap.lockMode === "pessimistic_read" || this.expressionMap.lockMode === "pessimistic_write") && !queryRunner.isTransactionActive)
1575
- throw new PessimisticLockTransactionRequiredError_1.PessimisticLockTransactionRequiredError();
1576
- if (this.expressionMap.lockMode === "optimistic") {
1577
- metadata = this.expressionMap.mainAlias.metadata;
1578
- if (!metadata.versionColumn && !metadata.updateDateColumn)
1579
- throw new NoVersionOrUpdateDateColumnError_1.NoVersionOrUpdateDateColumnError(metadata.name);
1580
- }
1581
- relationIdLoader = new RelationIdLoader_1.RelationIdLoader(this.connection, queryRunner, this.expressionMap.relationIdAttributes);
1582
- relationCountLoader = new RelationCountLoader_1.RelationCountLoader(this.connection, queryRunner, this.expressionMap.relationCountAttributes);
1583
- relationIdMetadataTransformer = new RelationIdMetadataToAttributeTransformer_1.RelationIdMetadataToAttributeTransformer(this.expressionMap);
1584
- relationIdMetadataTransformer.transform();
1585
- relationCountMetadataTransformer = new RelationCountMetadataToAttributeTransformer_1.RelationCountMetadataToAttributeTransformer(this.expressionMap);
1586
- relationCountMetadataTransformer.transform();
1587
- rawResults = [], entities = [];
1588
- if (!((this.expressionMap.skip || this.expressionMap.take) && this.expressionMap.joinAttributes.length > 0)) return [3 /*break*/, 4];
1589
- _a = tslib_1.__read(this.createOrderByCombinedWithSelectExpression("distinctAlias"), 2), selects = _a[0], orderBys_1 = _a[1];
1590
- metadata_1 = this.expressionMap.mainAlias.metadata;
1591
- mainAliasName_1 = this.expressionMap.mainAlias.name;
1592
- querySelects = metadata_1.primaryColumns.map(function (primaryColumn) {
1593
- var distinctAlias = _this.escape("distinctAlias");
1594
- var columnAlias = _this.escape(DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, primaryColumn.databaseName));
1595
- if (!orderBys_1[columnAlias]) // make sure we aren't overriding user-defined order in inverse direction
1596
- orderBys_1[columnAlias] = "ASC";
1597
- return distinctAlias + "." + columnAlias + " as \"ids_" + DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, primaryColumn.databaseName) + "\"";
1598
- });
1599
- clonnedQb = cloneQb1
1600
- // .setFindOptions({
1601
- // select: this.findOptions.select,
1602
- // relations: this.findOptions.relations,
1603
- // options: this.findOptions.options,
1604
- // where: this.findOptions.where
1605
- // })
1606
- .orderBy();
1607
- return [4 /*yield*/, new SelectQueryBuilder(this.connection, queryRunner)
1608
- .select("DISTINCT " + querySelects.join(", "))
1609
- .addSelect(selects)
1610
- .from("(" + clonnedQb.getQuery() + ")", "distinctAlias")
1611
- .offset(this.expressionMap.skip)
1612
- .limit(this.expressionMap.take)
1613
- .orderBy(orderBys_1)
1614
- .cache(this.expressionMap.cache ? this.expressionMap.cache : this.expressionMap.cacheId, this.expressionMap.cacheDuration)
1615
- .setParameters(this.getParameters())
1616
- .setNativeParameters(this.expressionMap.nativeParameters)
1617
- .getRawMany()];
1618
- case 1:
1619
- rawResults = _b.sent();
1620
- if (!(rawResults.length > 0)) return [3 /*break*/, 3];
1621
- condition = "";
1622
- parameters_1 = {};
1623
- if (metadata_1.hasMultiplePrimaryKeys) {
1624
- condition = rawResults.map(function (result, index) {
1625
- return metadata_1.primaryColumns.map(function (primaryColumn) {
1626
- parameters_1["ids_" + index + "_" + primaryColumn.databaseName] = result["ids_" + mainAliasName_1 + "_" + primaryColumn.databaseName];
1627
- return mainAliasName_1 + "." + primaryColumn.propertyPath + "=:ids_" + index + "_" + primaryColumn.databaseName;
1628
- }).join(" AND ");
1629
- }).join(" OR ");
1630
- }
1631
- else {
1632
- ids = rawResults.map(function (result) { return result["ids_" + DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, mainAliasName_1, metadata_1.primaryColumns[0].databaseName)]; });
1633
- areAllNumbers = ids.every(function (id) { return typeof id === "number"; });
1634
- if (areAllNumbers) {
1635
- // fixes #190. if all numbers then its safe to perform query without parameter
1636
- condition = mainAliasName_1 + "." + metadata_1.primaryColumns[0].propertyPath + " IN (" + ids.join(", ") + ")";
1637
- }
1638
- else {
1639
- parameters_1["ids"] = ids;
1640
- condition = mainAliasName_1 + "." + metadata_1.primaryColumns[0].propertyPath + " IN (:...ids)";
1641
- }
1865
+ }
1866
+ else {
1867
+ rawResults = await this.loadRawResults(queryRunner);
1868
+ }
1869
+ if (rawResults.length > 0) {
1870
+ // transform raw results into entities
1871
+ const rawRelationIdResults = await relationIdLoader.load(rawResults);
1872
+ const rawRelationCountResults = await relationCountLoader.load(rawResults);
1873
+ const transformer = new RawSqlResultsToEntityTransformer_1.RawSqlResultsToEntityTransformer(this.expressionMap, this.connection.driver, rawRelationIdResults, rawRelationCountResults, this.queryRunner);
1874
+ entities = transformer.transform(rawResults, this.expressionMap.mainAlias);
1875
+ // broadcast all "after load" events
1876
+ if (this.expressionMap.callListeners === true &&
1877
+ this.expressionMap.mainAlias.hasMetadata) {
1878
+ await queryRunner.broadcaster.broadcast("Load", this.expressionMap.mainAlias.metadata, entities);
1879
+ }
1880
+ }
1881
+ if (this.expressionMap.relationLoadStrategy === "query") {
1882
+ await Promise.all(this.relationMetadatas.map(async (relation) => {
1883
+ const relationTarget = relation.inverseEntityMetadata.target;
1884
+ const relationAlias = relation.inverseEntityMetadata.targetName;
1885
+ const select = Array.isArray(this.findOptions.select)
1886
+ ? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(this.findOptions.select)
1887
+ : this.findOptions.select;
1888
+ const relations = Array.isArray(this.findOptions.relations)
1889
+ ? OrmUtils_1.OrmUtils.propertyPathsToTruthyObject(this.findOptions.relations)
1890
+ : this.findOptions.relations;
1891
+ const queryBuilder = this.createQueryBuilder()
1892
+ .select(relationAlias)
1893
+ .from(relationTarget, relationAlias)
1894
+ .setFindOptions({
1895
+ select: select
1896
+ ? OrmUtils_1.OrmUtils.deepValue(select, relation.propertyPath)
1897
+ : undefined,
1898
+ order: this.findOptions.order
1899
+ ? OrmUtils_1.OrmUtils.deepValue(this.findOptions.order, relation.propertyPath)
1900
+ : undefined,
1901
+ relations: relations
1902
+ ? OrmUtils_1.OrmUtils.deepValue(relations, relation.propertyPath)
1903
+ : undefined,
1904
+ withDeleted: this.findOptions.withDeleted,
1905
+ relationLoadStrategy: this.findOptions.relationLoadStrategy,
1906
+ });
1907
+ if (entities.length > 0) {
1908
+ const relatedEntityGroups = await this.connection.relationIdLoader.loadManyToManyRelationIdsAndGroup(relation, entities, undefined, queryBuilder);
1909
+ entities.forEach((entity) => {
1910
+ const relatedEntityGroup = relatedEntityGroups.find((group) => group.entity === entity);
1911
+ if (relatedEntityGroup) {
1912
+ const value = relatedEntityGroup.related === undefined
1913
+ ? null
1914
+ : relatedEntityGroup.related;
1915
+ relation.setEntityValue(entity, value);
1642
1916
  }
1643
- return [4 /*yield*/, cloneQb2
1644
- // .setFindOptions(this.findOptions)
1645
- .mergeExpressionMap({ extraAppendedAndWhereCondition: condition })
1646
- .setParameters(parameters_1)
1647
- .loadRawResults(queryRunner)];
1648
- case 2:
1649
- rawResults = _b.sent();
1650
- _b.label = 3;
1651
- case 3: return [3 /*break*/, 6];
1652
- case 4: return [4 /*yield*/, this.loadRawResults(queryRunner)];
1653
- case 5:
1654
- // console.time("load raw results");
1655
- rawResults = _b.sent();
1656
- _b.label = 6;
1657
- case 6:
1658
- if (!(rawResults.length > 0)) return [3 /*break*/, 10];
1659
- return [4 /*yield*/, relationIdLoader.load(rawResults)];
1660
- case 7:
1661
- rawRelationIdResults = _b.sent();
1662
- return [4 /*yield*/, relationCountLoader.load(rawResults)];
1663
- case 8:
1664
- rawRelationCountResults = _b.sent();
1665
- transformer = new RawSqlResultsToEntityTransformer_1.RawSqlResultsToEntityTransformer(this.expressionMap, this.connection.driver, rawRelationIdResults, rawRelationCountResults, this.queryRunner);
1666
- // console.time("transforming entities");
1667
- entities = transformer.transform(rawResults, this.expressionMap.mainAlias);
1668
- if (!(this.expressionMap.callListeners === true && this.expressionMap.mainAlias.hasMetadata)) return [3 /*break*/, 10];
1669
- broadcastResult = new BroadcasterResult_1.BroadcasterResult();
1670
- queryRunner.broadcaster.broadcastLoadEventsForAll(broadcastResult, this.expressionMap.mainAlias.metadata, entities);
1671
- if (!(broadcastResult.promises.length > 0)) return [3 /*break*/, 10];
1672
- return [4 /*yield*/, Promise.all(broadcastResult.promises)];
1673
- case 9:
1674
- _b.sent();
1675
- _b.label = 10;
1676
- case 10: return [4 /*yield*/, Promise.all(this.relationMetadatas.map(function (relation) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
1677
- var relationTarget, relationAlias, queryBuilder, relatedEntityGroups_1;
1678
- return tslib_1.__generator(this, function (_a) {
1679
- switch (_a.label) {
1680
- case 0:
1681
- relationTarget = relation.inverseEntityMetadata.target;
1682
- relationAlias = relation.inverseEntityMetadata.targetName;
1683
- queryBuilder = this.createQueryBuilder()
1684
- .select(relationAlias)
1685
- .from(relationTarget, relationAlias)
1686
- .setFindOptions({
1687
- select: this.findOptions.select && typeof this.findOptions.select === "object" ? OrmUtils_1.OrmUtils.deepValue(this.findOptions.select, relation.propertyPath) : undefined,
1688
- order: this.findOptions.order ? OrmUtils_1.OrmUtils.deepValue(this.findOptions.order, relation.propertyPath) : undefined,
1689
- relations: this.findOptions.relations && typeof this.findOptions.relations === "object" ? OrmUtils_1.OrmUtils.deepValue(this.findOptions.relations, relation.propertyPath) : undefined,
1690
- });
1691
- if (!(entities.length > 0)) return [3 /*break*/, 2];
1692
- return [4 /*yield*/, this.connection.relationIdLoader.loadManyToManyRelationIdsAndGroup(relation, entities, undefined, queryBuilder)];
1693
- case 1:
1694
- relatedEntityGroups_1 = _a.sent();
1695
- entities.forEach(function (entity) {
1696
- var relatedEntityGroup = relatedEntityGroups_1.find(function (group) { return group.entity === entity; });
1697
- if (relatedEntityGroup) {
1698
- var value = relatedEntityGroup.related === undefined ? null : relatedEntityGroup.related;
1699
- relation.setEntityValue(entity, value);
1700
- }
1701
- });
1702
- _a.label = 2;
1703
- case 2: return [2 /*return*/];
1704
- }
1705
- });
1706
- }); }))];
1707
- case 11:
1708
- _b.sent();
1709
- return [2 /*return*/, {
1710
- raw: rawResults,
1711
- entities: entities,
1712
- }];
1917
+ });
1713
1918
  }
1714
- });
1715
- });
1716
- };
1717
- SelectQueryBuilder.prototype.createOrderByCombinedWithSelectExpression = function (parentAlias) {
1718
- var _this = this;
1919
+ }));
1920
+ }
1921
+ return {
1922
+ raw: rawResults,
1923
+ entities: entities,
1924
+ };
1925
+ }
1926
+ createOrderByCombinedWithSelectExpression(parentAlias) {
1719
1927
  // if table has a default order then apply it
1720
- var orderBys = this.expressionMap.allOrderBys;
1721
- var selectString = Object.keys(orderBys)
1722
- .map(function (orderCriteria) {
1928
+ const orderBys = this.expressionMap.allOrderBys;
1929
+ const selectString = Object.keys(orderBys)
1930
+ .map((orderCriteria) => {
1723
1931
  if (orderCriteria.indexOf(".") !== -1) {
1724
- var _a = tslib_1.__read(QueryBuilderUtils_1.QueryBuilderUtils.extractAliasAndPropertyPath(orderCriteria), 2), aliasName = _a[0], propertyPath = _a[1];
1725
- var alias = _this.expressionMap.findAliasByName(aliasName);
1726
- var column = alias.metadata.findColumnWithPropertyPath(propertyPath);
1727
- return _this.escape(parentAlias) + "." + _this.escape(DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, aliasName, column.databaseName));
1932
+ const criteriaParts = orderCriteria.split(".");
1933
+ const aliasName = criteriaParts[0];
1934
+ const propertyPath = criteriaParts.slice(1).join(".");
1935
+ const alias = this.expressionMap.findAliasByName(aliasName);
1936
+ const column = alias.metadata.findColumnWithPropertyPath(propertyPath);
1937
+ return (this.escape(parentAlias) +
1938
+ "." +
1939
+ this.escape(DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, aliasName, column.databaseName)));
1728
1940
  }
1729
1941
  else {
1730
- if (_this.expressionMap.selects.find(function (select) { return select.selection === orderCriteria || select.aliasName === orderCriteria; }))
1731
- return _this.escape(parentAlias) + "." + orderCriteria;
1942
+ if (this.expressionMap.selects.find((select) => select.selection === orderCriteria ||
1943
+ select.aliasName === orderCriteria))
1944
+ return this.escape(parentAlias) + "." + orderCriteria;
1732
1945
  return "";
1733
1946
  }
1734
1947
  })
1735
1948
  .join(", ");
1736
- var orderByObject = {};
1737
- Object.keys(orderBys).forEach(function (orderCriteria) {
1949
+ const orderByObject = {};
1950
+ Object.keys(orderBys).forEach((orderCriteria) => {
1738
1951
  if (orderCriteria.indexOf(".") !== -1) {
1739
- var _a = tslib_1.__read(QueryBuilderUtils_1.QueryBuilderUtils.extractAliasAndPropertyPath(orderCriteria), 2), aliasName = _a[0], propertyPath = _a[1];
1740
- var alias = _this.expressionMap.findAliasByName(aliasName);
1741
- var column = alias.metadata.findColumnWithPropertyPath(propertyPath);
1742
- orderByObject[_this.escape(parentAlias) + "." + _this.escape(DriverUtils_1.DriverUtils.buildColumnAlias(_this.connection.driver, aliasName, column.databaseName))] = orderBys[orderCriteria];
1952
+ const criteriaParts = orderCriteria.split(".");
1953
+ const aliasName = criteriaParts[0];
1954
+ const propertyPath = criteriaParts.slice(1).join(".");
1955
+ const alias = this.expressionMap.findAliasByName(aliasName);
1956
+ const column = alias.metadata.findColumnWithPropertyPath(propertyPath);
1957
+ orderByObject[this.escape(parentAlias) +
1958
+ "." +
1959
+ this.escape(DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, aliasName, column.databaseName))] = orderBys[orderCriteria];
1743
1960
  }
1744
1961
  else {
1745
- if (_this.expressionMap.selects.find(function (select) { return select.selection === orderCriteria || select.aliasName === orderCriteria; })) {
1746
- orderByObject[_this.escape(parentAlias) + "." + orderCriteria] = orderBys[orderCriteria];
1962
+ if (this.expressionMap.selects.find((select) => select.selection === orderCriteria ||
1963
+ select.aliasName === orderCriteria)) {
1964
+ orderByObject[this.escape(parentAlias) + "." + orderCriteria] = orderBys[orderCriteria];
1747
1965
  }
1748
1966
  else {
1749
1967
  orderByObject[orderCriteria] = orderBys[orderCriteria];
@@ -1751,317 +1969,452 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
1751
1969
  }
1752
1970
  });
1753
1971
  return [selectString, orderByObject];
1754
- };
1972
+ }
1755
1973
  /**
1756
1974
  * Loads raw results from the database.
1757
1975
  */
1758
- SelectQueryBuilder.prototype.loadRawResults = function (queryRunner) {
1759
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1760
- var _a, sql, parameters, queryId, cacheOptions, savedQueryResultCacheOptions, results;
1761
- return tslib_1.__generator(this, function (_b) {
1762
- switch (_b.label) {
1763
- case 0:
1764
- _a = tslib_1.__read(this.getQueryAndParameters(), 2), sql = _a[0], parameters = _a[1];
1765
- queryId = sql + " -- PARAMETERS: " + JSON.stringify(parameters);
1766
- cacheOptions = typeof this.connection.options.cache === "object" ? this.connection.options.cache : {};
1767
- savedQueryResultCacheOptions = undefined;
1768
- if (!(this.connection.queryResultCache && (this.expressionMap.cache || cacheOptions.alwaysEnabled))) return [3 /*break*/, 2];
1769
- return [4 /*yield*/, this.connection.queryResultCache.getFromCache({
1770
- identifier: this.expressionMap.cacheId,
1771
- query: queryId,
1772
- duration: this.expressionMap.cacheDuration || cacheOptions.duration || 1000
1773
- }, queryRunner)];
1774
- case 1:
1775
- savedQueryResultCacheOptions = _b.sent();
1776
- if (savedQueryResultCacheOptions && !this.connection.queryResultCache.isExpired(savedQueryResultCacheOptions))
1777
- return [2 /*return*/, JSON.parse(savedQueryResultCacheOptions.result)];
1778
- _b.label = 2;
1779
- case 2: return [4 /*yield*/, queryRunner.query(sql, parameters)];
1780
- case 3:
1781
- results = _b.sent();
1782
- if (!(this.connection.queryResultCache && (this.expressionMap.cache || cacheOptions.alwaysEnabled))) return [3 /*break*/, 5];
1783
- return [4 /*yield*/, this.connection.queryResultCache.storeInCache({
1784
- identifier: this.expressionMap.cacheId,
1785
- query: queryId,
1786
- time: new Date().getTime(),
1787
- duration: this.expressionMap.cacheDuration || cacheOptions.duration || 1000,
1788
- result: JSON.stringify(results)
1789
- }, savedQueryResultCacheOptions, queryRunner)];
1790
- case 4:
1791
- _b.sent();
1792
- _b.label = 5;
1793
- case 5: return [2 /*return*/, results];
1976
+ async loadRawResults(queryRunner) {
1977
+ const [sql, parameters] = this.getQueryAndParameters();
1978
+ const queryId = sql + " -- PARAMETERS: " + JSON.stringify(parameters);
1979
+ const cacheOptions = typeof this.connection.options.cache === "object"
1980
+ ? this.connection.options.cache
1981
+ : {};
1982
+ let savedQueryResultCacheOptions = undefined;
1983
+ let cacheError = false;
1984
+ if (this.connection.queryResultCache &&
1985
+ (this.expressionMap.cache || cacheOptions.alwaysEnabled)) {
1986
+ try {
1987
+ savedQueryResultCacheOptions =
1988
+ await this.connection.queryResultCache.getFromCache({
1989
+ identifier: this.expressionMap.cacheId,
1990
+ query: queryId,
1991
+ duration: this.expressionMap.cacheDuration ||
1992
+ cacheOptions.duration ||
1993
+ 1000,
1994
+ }, queryRunner);
1995
+ if (savedQueryResultCacheOptions &&
1996
+ !this.connection.queryResultCache.isExpired(savedQueryResultCacheOptions)) {
1997
+ return JSON.parse(savedQueryResultCacheOptions.result);
1794
1998
  }
1795
- });
1796
- });
1797
- };
1999
+ }
2000
+ catch (error) {
2001
+ if (!cacheOptions.ignoreErrors) {
2002
+ throw error;
2003
+ }
2004
+ cacheError = true;
2005
+ }
2006
+ }
2007
+ const results = await queryRunner.query(sql, parameters, true);
2008
+ if (!cacheError &&
2009
+ this.connection.queryResultCache &&
2010
+ (this.expressionMap.cache || cacheOptions.alwaysEnabled)) {
2011
+ try {
2012
+ await this.connection.queryResultCache.storeInCache({
2013
+ identifier: this.expressionMap.cacheId,
2014
+ query: queryId,
2015
+ time: new Date().getTime(),
2016
+ duration: this.expressionMap.cacheDuration ||
2017
+ cacheOptions.duration ||
2018
+ 1000,
2019
+ result: JSON.stringify(results.records),
2020
+ }, savedQueryResultCacheOptions, queryRunner);
2021
+ }
2022
+ catch (error) {
2023
+ if (!cacheOptions.ignoreErrors) {
2024
+ throw error;
2025
+ }
2026
+ }
2027
+ }
2028
+ return results.records;
2029
+ }
1798
2030
  /**
1799
2031
  * Merges into expression map given expression map properties.
1800
2032
  */
1801
- SelectQueryBuilder.prototype.mergeExpressionMap = function (expressionMap) {
2033
+ mergeExpressionMap(expressionMap) {
1802
2034
  ObjectUtils_1.ObjectUtils.assign(this.expressionMap, expressionMap);
1803
2035
  return this;
1804
- };
2036
+ }
1805
2037
  /**
1806
2038
  * Normalizes a give number - converts to int if possible.
1807
2039
  */
1808
- SelectQueryBuilder.prototype.normalizeNumber = function (num) {
2040
+ normalizeNumber(num) {
1809
2041
  if (typeof num === "number" || num === undefined || num === null)
1810
2042
  return num;
1811
2043
  return Number(num);
1812
- };
2044
+ }
1813
2045
  /**
1814
2046
  * Creates a query builder used to execute sql queries inside this query builder.
1815
2047
  */
1816
- SelectQueryBuilder.prototype.obtainQueryRunner = function () {
2048
+ obtainQueryRunner() {
1817
2049
  return this.queryRunner || this.connection.createQueryRunner("slave");
1818
- };
1819
- SelectQueryBuilder.prototype.buildSelect = function (select, metadata, alias, embedPrefix) {
1820
- var _this = this;
1821
- if (select instanceof Array) {
1822
- select.forEach(function (select) {
1823
- _this.selects.push(_this.expressionMap.mainAlias.name + "." + select);
1824
- });
1825
- }
1826
- else {
1827
- for (var key in select) {
1828
- if (select[key] === undefined)
1829
- continue;
1830
- var propertyPath = embedPrefix ? embedPrefix + "." + key : key;
1831
- var column = metadata.findColumnWithPropertyPathStrict(propertyPath);
1832
- var embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
1833
- var relation = metadata.findRelationWithPropertyPath(propertyPath);
1834
- if (!embed && !column && !relation)
1835
- throw new FindCriteriaNotFoundError_1.FindCriteriaNotFoundError(propertyPath, metadata);
1836
- if (column) {
1837
- this.selects.push(alias + "." + propertyPath);
1838
- }
1839
- else if (embed) {
1840
- this.buildSelect(select[key], metadata, alias, propertyPath);
1841
- // } else if (relation) {
1842
- // const joinAlias = alias + "_" + relation.propertyName;
1843
- // const existJoin = this.joins.find(join => join.alias === joinAlias);
1844
- // if (!existJoin) {
1845
- // this.joins.push({
1846
- // type: "left",
1847
- // select: false,
1848
- // alias: joinAlias,
1849
- // parentAlias: alias,
1850
- // relationMetadata: relation
1851
- // });
1852
- // }
1853
- // this.buildOrder(select[key] as FindOptionsOrder<any>, relation.inverseEntityMetadata, joinAlias);
1854
- }
2050
+ }
2051
+ buildSelect(select, metadata, alias, embedPrefix) {
2052
+ for (let key in select) {
2053
+ if (select[key] === undefined)
2054
+ continue;
2055
+ const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
2056
+ const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
2057
+ const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
2058
+ const relation = metadata.findRelationWithPropertyPath(propertyPath);
2059
+ if (!embed && !column && !relation)
2060
+ throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
2061
+ if (column) {
2062
+ this.selects.push(alias + "." + propertyPath);
2063
+ // this.addSelect(alias + "." + propertyPath);
2064
+ }
2065
+ else if (embed) {
2066
+ this.buildSelect(select[key], metadata, alias, key);
2067
+ // } else if (relation) {
2068
+ // const joinAlias = alias + "_" + relation.propertyName;
2069
+ // const existJoin = this.joins.find(join => join.alias === joinAlias);
2070
+ // if (!existJoin) {
2071
+ // this.joins.push({
2072
+ // type: "left",
2073
+ // select: false,
2074
+ // alias: joinAlias,
2075
+ // parentAlias: alias,
2076
+ // relationMetadata: relation
2077
+ // });
2078
+ // }
2079
+ // this.buildOrder(select[key] as FindOptionsOrder<any>, relation.inverseEntityMetadata, joinAlias);
1855
2080
  }
1856
2081
  }
1857
- };
1858
- SelectQueryBuilder.prototype.buildRelations = function (relations, metadata, embedPrefix) {
1859
- var _this = this;
2082
+ }
2083
+ buildRelations(relations, selection, metadata, alias, embedPrefix) {
1860
2084
  if (!relations)
1861
2085
  return;
1862
- if (relations instanceof Array) {
1863
- relations.forEach(function (relationName) {
1864
- var propertyPath = embedPrefix ? embedPrefix + "." + relationName : relationName;
1865
- var relation = metadata.findRelationWithPropertyPath(propertyPath);
1866
- if (!relation)
1867
- throw new FindCriteriaNotFoundError_1.FindCriteriaNotFoundError(propertyPath, metadata);
1868
- _this.relationMetadatas.push(relation);
1869
- });
1870
- }
1871
- else {
1872
- Object.keys(relations).forEach(function (relationName) {
1873
- var relationValue = relations[relationName];
1874
- if (relationValue === true || relationValue instanceof Object) {
1875
- var propertyPath = embedPrefix ? embedPrefix + "." + relationName : relationName;
1876
- var embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
1877
- var relation = metadata.findRelationWithPropertyPath(propertyPath);
1878
- if (!embed && !relation)
1879
- throw new FindCriteriaNotFoundError_1.FindCriteriaNotFoundError(propertyPath, metadata);
1880
- if (embed) {
1881
- _this.buildRelations(relationValue, metadata, propertyPath);
2086
+ Object.keys(relations).forEach((relationName) => {
2087
+ const relationValue = relations[relationName];
2088
+ const propertyPath = embedPrefix
2089
+ ? embedPrefix + "." + relationName
2090
+ : relationName;
2091
+ const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
2092
+ const relation = metadata.findRelationWithPropertyPath(propertyPath);
2093
+ if (!embed && !relation)
2094
+ throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
2095
+ if (embed) {
2096
+ this.buildRelations(relationValue, typeof selection === "object"
2097
+ ? OrmUtils_1.OrmUtils.deepValue(selection, embed.propertyPath)
2098
+ : undefined, metadata, alias, propertyPath);
2099
+ }
2100
+ else if (relation) {
2101
+ let joinAlias = alias + "_" + propertyPath.replace(".", "_");
2102
+ joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, alias, joinAlias);
2103
+ if (relationValue === true ||
2104
+ typeof relationValue === "object") {
2105
+ if (this.expressionMap.relationLoadStrategy === "query") {
2106
+ this.relationMetadatas.push(relation);
1882
2107
  }
1883
2108
  else {
1884
- _this.relationMetadatas.push(relation);
2109
+ // join
2110
+ this.joins.push({
2111
+ type: "left",
2112
+ select: true,
2113
+ selection: selection &&
2114
+ typeof selection[relationName] === "object"
2115
+ ? selection[relationName]
2116
+ : undefined,
2117
+ alias: joinAlias,
2118
+ parentAlias: alias,
2119
+ relationMetadata: relation,
2120
+ });
2121
+ if (selection &&
2122
+ typeof selection[relationName] === "object") {
2123
+ console.log("sub selection", relationName);
2124
+ this.buildSelect(selection[relationName], relation.inverseEntityMetadata, joinAlias);
2125
+ }
1885
2126
  }
1886
2127
  }
1887
- });
1888
- }
1889
- };
1890
- SelectQueryBuilder.prototype.buildOrder = function (order, metadata, alias, embedPrefix) {
1891
- var _loop_1 = function (key) {
2128
+ if (typeof relationValue === "object" &&
2129
+ this.expressionMap.relationLoadStrategy === "join") {
2130
+ this.buildRelations(relationValue, typeof selection === "object"
2131
+ ? OrmUtils_1.OrmUtils.deepValue(selection, relation.propertyPath)
2132
+ : undefined, relation.inverseEntityMetadata, joinAlias, undefined);
2133
+ }
2134
+ }
2135
+ });
2136
+ }
2137
+ buildEagerRelations(relations, selection, metadata, alias, embedPrefix) {
2138
+ if (!relations)
2139
+ return;
2140
+ Object.keys(relations).forEach((relationName) => {
2141
+ const relationValue = relations[relationName];
2142
+ const propertyPath = embedPrefix
2143
+ ? embedPrefix + "." + relationName
2144
+ : relationName;
2145
+ const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
2146
+ const relation = metadata.findRelationWithPropertyPath(propertyPath);
2147
+ if (!embed && !relation)
2148
+ throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
2149
+ if (embed) {
2150
+ this.buildEagerRelations(relationValue, typeof selection === "object"
2151
+ ? OrmUtils_1.OrmUtils.deepValue(selection, embed.propertyPath)
2152
+ : undefined, metadata, alias, propertyPath);
2153
+ }
2154
+ else if (relation) {
2155
+ let joinAlias = alias + "_" + propertyPath.replace(".", "_");
2156
+ joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, alias, joinAlias);
2157
+ if (relationValue === true ||
2158
+ typeof relationValue === "object") {
2159
+ relation.inverseEntityMetadata.eagerRelations.forEach((eagerRelation) => {
2160
+ let eagerRelationJoinAlias = joinAlias +
2161
+ "_" +
2162
+ eagerRelation.propertyPath.replace(".", "_");
2163
+ eagerRelationJoinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, joinAlias, eagerRelationJoinAlias);
2164
+ const existJoin = this.joins.find((join) => join.alias === eagerRelationJoinAlias);
2165
+ if (!existJoin) {
2166
+ this.joins.push({
2167
+ type: "left",
2168
+ select: true,
2169
+ alias: eagerRelationJoinAlias,
2170
+ parentAlias: joinAlias,
2171
+ selection: undefined,
2172
+ relationMetadata: eagerRelation,
2173
+ });
2174
+ }
2175
+ if (selection &&
2176
+ typeof selection[relationName] === "object") {
2177
+ this.buildSelect(selection[relationName], relation.inverseEntityMetadata, joinAlias);
2178
+ }
2179
+ });
2180
+ }
2181
+ if (typeof relationValue === "object") {
2182
+ this.buildEagerRelations(relationValue, typeof selection === "object"
2183
+ ? OrmUtils_1.OrmUtils.deepValue(selection, relation.propertyPath)
2184
+ : undefined, relation.inverseEntityMetadata, joinAlias, undefined);
2185
+ }
2186
+ }
2187
+ });
2188
+ }
2189
+ buildOrder(order, metadata, alias, embedPrefix) {
2190
+ for (let key in order) {
1892
2191
  if (order[key] === undefined)
1893
- return "continue";
1894
- var propertyPath = embedPrefix ? embedPrefix + "." + key : key;
1895
- var column = metadata.findColumnWithPropertyPathStrict(propertyPath);
1896
- var embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
1897
- var relation = metadata.findRelationWithPropertyPath(propertyPath);
2192
+ continue;
2193
+ const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
2194
+ const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
2195
+ const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
2196
+ const relation = metadata.findRelationWithPropertyPath(propertyPath);
1898
2197
  if (!embed && !column && !relation)
1899
- throw new FindCriteriaNotFoundError_1.FindCriteriaNotFoundError(propertyPath, metadata);
2198
+ throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
1900
2199
  if (column) {
1901
- var direction = order[key] instanceof Object ? order[key].direction : order[key];
1902
- direction = direction === "DESC" || direction === "desc" || direction === -1 ? "DESC" : "ASC";
1903
- var nulls = order[key] instanceof Object ? order[key].nulls : undefined;
1904
- nulls = nulls === "first" ? "NULLS FIRST" : nulls === "last" ? "NULLS LAST" : undefined;
1905
- this_1.orderBys.push({ alias: alias + "." + propertyPath, direction: direction, nulls: nulls }); // `${alias}.${propertyPath} = :${paramName}`);
2200
+ let direction = typeof order[key] === "object"
2201
+ ? order[key].direction
2202
+ : order[key];
2203
+ direction =
2204
+ direction === "DESC" ||
2205
+ direction === "desc" ||
2206
+ direction === -1
2207
+ ? "DESC"
2208
+ : "ASC";
2209
+ let nulls = typeof order[key] === "object"
2210
+ ? order[key].nulls
2211
+ : undefined;
2212
+ nulls =
2213
+ nulls === "first"
2214
+ ? "NULLS FIRST"
2215
+ : nulls === "last"
2216
+ ? "NULLS LAST"
2217
+ : undefined;
2218
+ this.addOrderBy(`${alias}.${propertyPath}`, direction, nulls);
2219
+ // this.orderBys.push({ alias: alias + "." + propertyPath, direction, nulls });
1906
2220
  }
1907
2221
  else if (embed) {
1908
- this_1.buildOrder(order[key], metadata, alias, propertyPath);
2222
+ this.buildOrder(order[key], metadata, alias, propertyPath);
1909
2223
  }
1910
2224
  else if (relation) {
1911
- var joinAlias_1 = alias + "_" + relation.propertyName;
1912
- var existJoin = this_1.joins.find(function (join) { return join.alias === joinAlias_1; });
2225
+ let joinAlias = alias + "_" + propertyPath.replace(".", "_");
2226
+ joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, alias, joinAlias);
2227
+ // console.log("joinAlias", joinAlias, joinAlias.length, this.connection.driver.maxAliasLength)
2228
+ // todo: use expressionMap.joinAttributes, and create a new one using
2229
+ // const joinAttribute = new JoinAttribute(this.connection, this.expressionMap);
2230
+ const existJoin = this.joins.find((join) => join.alias === joinAlias);
1913
2231
  if (!existJoin) {
1914
- this_1.joins.push({
2232
+ this.joins.push({
1915
2233
  type: "left",
1916
2234
  select: false,
1917
- alias: joinAlias_1,
2235
+ alias: joinAlias,
1918
2236
  parentAlias: alias,
1919
- relationMetadata: relation
2237
+ selection: undefined,
2238
+ relationMetadata: relation,
1920
2239
  });
1921
2240
  }
1922
- this_1.buildOrder(order[key], relation.inverseEntityMetadata, joinAlias_1);
2241
+ this.buildOrder(order[key], relation.inverseEntityMetadata, joinAlias);
1923
2242
  }
1924
- };
1925
- var this_1 = this;
1926
- for (var key in order) {
1927
- _loop_1(key);
1928
- }
1929
- };
1930
- SelectQueryBuilder.prototype.buildWhere = function (where, metadata, alias, embedPrefix) {
1931
- var _this = this;
1932
- var condition = "";
1933
- var parameterIndex = Object.keys(this.expressionMap.nativeParameters).length;
1934
- if (where instanceof Array) {
1935
- condition = ("(" + where.map(function (whereItem) {
1936
- return _this.buildWhere(whereItem, metadata, alias, embedPrefix);
1937
- }).filter(function (condition) { return !!condition; }).map(function (condition) { return "(" + condition + ")"; }).join(" OR ") + ")");
2243
+ }
2244
+ }
2245
+ buildWhere(where, metadata, alias, embedPrefix) {
2246
+ let condition = "";
2247
+ // let parameterIndex = Object.keys(this.expressionMap.nativeParameters).length;
2248
+ if (Array.isArray(where)) {
2249
+ condition =
2250
+ "(" +
2251
+ where
2252
+ .map((whereItem) => {
2253
+ return this.buildWhere(whereItem, metadata, alias, embedPrefix);
2254
+ })
2255
+ .filter((condition) => !!condition)
2256
+ .map((condition) => "(" + condition + ")")
2257
+ .join(" OR ") +
2258
+ ")";
1938
2259
  }
1939
2260
  else {
1940
- var andConditions = [];
1941
- var _loop_2 = function (key) {
1942
- if (where[key] === undefined)
1943
- return "continue";
1944
- var propertyPath = embedPrefix ? embedPrefix + "." + key : key;
1945
- var column = metadata.findColumnWithPropertyPathStrict(propertyPath);
1946
- var embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
1947
- var relation = metadata.findRelationWithPropertyPath(propertyPath);
2261
+ let andConditions = [];
2262
+ for (let key in where) {
2263
+ if (where[key] === undefined || where[key] === null)
2264
+ continue;
2265
+ const propertyPath = embedPrefix ? embedPrefix + "." + key : key;
2266
+ const column = metadata.findColumnWithPropertyPathStrict(propertyPath);
2267
+ const embed = metadata.findEmbeddedWithPropertyPath(propertyPath);
2268
+ const relation = metadata.findRelationWithPropertyPath(propertyPath);
1948
2269
  if (!embed && !column && !relation)
1949
- throw new FindCriteriaNotFoundError_1.FindCriteriaNotFoundError(propertyPath, metadata);
2270
+ throw new EntityPropertyNotFoundError_1.EntityPropertyNotFoundError(propertyPath, metadata);
1950
2271
  if (column) {
1951
- var aliasPath = alias + "." + propertyPath;
1952
- var parameterName_1 = alias + "_" + propertyPath.split(".").join("_") + "_" + parameterIndex;
1953
- var parameterValue = column.transformer ? ApplyValueTransformers_1.ApplyValueTransformers.transformTo(column.transformer, where[key]) : where[key];
1954
- if (parameterValue === null) {
1955
- andConditions.push(aliasPath + " IS NULL");
2272
+ const aliasPath = `${alias}.${propertyPath}`;
2273
+ // const parameterName = alias + "_" + propertyPath.split(".").join("_") + "_" + parameterIndex;
2274
+ // todo: we need to handle other operators as well?
2275
+ let parameterValue = where[key];
2276
+ if (InstanceChecker_1.InstanceChecker.isEqualOperator(where[key])) {
2277
+ parameterValue = where[key].value;
1956
2278
  }
1957
- else if (parameterValue instanceof FindOperator_1.FindOperator) {
1958
- var parameters_2 = [];
1959
- if (parameterValue.useParameter) {
1960
- var realParameterValues = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value];
1961
- realParameterValues.forEach(function (realParameterValue, realParameterValueIndex) {
1962
- // don't create parameters for number to prevent max number of variables issues as much as possible
1963
- if (typeof realParameterValue === "number") {
1964
- parameters_2.push(realParameterValue);
1965
- }
1966
- else {
1967
- _this.expressionMap.nativeParameters[parameterName_1 + realParameterValueIndex] = realParameterValue;
1968
- parameterIndex++;
1969
- parameters_2.push(_this.connection.driver.createParameter(parameterName_1 + realParameterValueIndex, parameterIndex - 1));
1970
- }
1971
- });
1972
- }
1973
- andConditions.push(parameterValue.toSql(this_2.connection, aliasPath, parameters_2));
1974
- }
1975
- else {
1976
- this_2.expressionMap.nativeParameters[parameterName_1] = parameterValue;
1977
- parameterIndex++;
1978
- var parameter = this_2.connection.driver.createParameter(parameterName_1, parameterIndex - 1);
1979
- andConditions.push(aliasPath + " = " + parameter);
2279
+ if (column.transformer) {
2280
+ parameterValue = ApplyValueTransformers_1.ApplyValueTransformers.transformTo(column.transformer, parameterValue);
1980
2281
  }
2282
+ // if (parameterValue === null) {
2283
+ // andConditions.push(`${aliasPath} IS NULL`);
2284
+ //
2285
+ // } else if (parameterValue instanceof FindOperator) {
2286
+ // // let parameters: any[] = [];
2287
+ // // if (parameterValue.useParameter) {
2288
+ // // const realParameterValues: any[] = parameterValue.multipleParameters ? parameterValue.value : [parameterValue.value];
2289
+ // // realParameterValues.forEach((realParameterValue, realParameterValueIndex) => {
2290
+ // //
2291
+ // // // don't create parameters for number to prevent max number of variables issues as much as possible
2292
+ // // if (typeof realParameterValue === "number") {
2293
+ // // parameters.push(realParameterValue);
2294
+ // //
2295
+ // // } else {
2296
+ // // this.expressionMap.nativeParameters[parameterName + realParameterValueIndex] = realParameterValue;
2297
+ // // parameterIndex++;
2298
+ // // parameters.push(this.connection.driver.createParameter(parameterName + realParameterValueIndex, parameterIndex - 1));
2299
+ // // }
2300
+ // // });
2301
+ // // }
2302
+ // andConditions.push(
2303
+ // this.createWhereConditionExpression(this.getWherePredicateCondition(aliasPath, parameterValue))
2304
+ // // parameterValue.toSql(this.connection, aliasPath, parameters));
2305
+ // )
2306
+ //
2307
+ // } else {
2308
+ // this.expressionMap.nativeParameters[parameterName] = parameterValue;
2309
+ // parameterIndex++;
2310
+ // const parameter = this.connection.driver.createParameter(parameterName, parameterIndex - 1);
2311
+ // andConditions.push(`${aliasPath} = ${parameter}`);
2312
+ // }
2313
+ andConditions.push(this.createWhereConditionExpression(this.getWherePredicateCondition(aliasPath, parameterValue)));
1981
2314
  // this.conditions.push(`${alias}.${propertyPath} = :${paramName}`);
1982
2315
  // this.expressionMap.parameters[paramName] = where[key]; // todo: handle functions and other edge cases
1983
2316
  }
1984
2317
  else if (embed) {
1985
- var condition_1 = this_2.buildWhere(where[key], metadata, alias, propertyPath);
1986
- if (condition_1)
1987
- andConditions.push(condition_1);
2318
+ const condition = this.buildWhere(where[key], metadata, alias, propertyPath);
2319
+ if (condition)
2320
+ andConditions.push(condition);
1988
2321
  }
1989
2322
  else if (relation) {
1990
2323
  // if all properties of where are undefined we don't need to join anything
1991
2324
  // this can happen when user defines map with conditional queries inside
1992
- if (where[key] instanceof Object) {
1993
- var allAllUndefined = Object.keys(where[key]).every(function (k) { return where[key][k] === undefined; });
2325
+ if (typeof where[key] === "object") {
2326
+ const allAllUndefined = Object.keys(where[key]).every((k) => where[key][k] === undefined);
1994
2327
  if (allAllUndefined) {
1995
- return "continue";
2328
+ continue;
1996
2329
  }
1997
2330
  }
1998
- if (where[key] instanceof FindOperator_1.FindOperator) {
1999
- if (where[key].type === "moreThan" || where[key].type === "lessThan") {
2000
- var sqlOperator = where[key].type === "moreThan" ? ">" : "<";
2331
+ if (InstanceChecker_1.InstanceChecker.isFindOperator(where[key])) {
2332
+ if (where[key].type === "moreThan" ||
2333
+ where[key].type === "lessThan") {
2334
+ const sqlOperator = where[key].type === "moreThan" ? ">" : "<";
2001
2335
  // basically relation count functionality
2002
- var qb = this_2.subQuery();
2336
+ const qb = this.subQuery();
2003
2337
  if (relation.isManyToManyOwner) {
2004
2338
  qb.select("COUNT(*)")
2005
2339
  .from(relation.joinTableName, relation.joinTableName)
2006
- .where(relation.joinColumns.map(function (column) {
2007
- return relation.joinTableName + "." + column.propertyName + " = " + alias + "." + column.referencedColumn.propertyName;
2008
- }).join(" AND "));
2340
+ .where(relation.joinColumns
2341
+ .map((column) => {
2342
+ return `${relation.joinTableName}.${column.propertyName} = ${alias}.${column.referencedColumn
2343
+ .propertyName}`;
2344
+ })
2345
+ .join(" AND "));
2009
2346
  }
2010
2347
  else if (relation.isManyToManyNotOwner) {
2011
2348
  qb.select("COUNT(*)")
2012
2349
  .from(relation.inverseRelation.joinTableName, relation.inverseRelation.joinTableName)
2013
- .where(relation.inverseRelation.inverseJoinColumns.map(function (column) {
2014
- return relation.inverseRelation.joinTableName + "." + column.propertyName + " = " + alias + "." + column.referencedColumn.propertyName;
2015
- }).join(" AND "));
2350
+ .where(relation
2351
+ .inverseRelation.inverseJoinColumns.map((column) => {
2352
+ return `${relation.inverseRelation
2353
+ .joinTableName}.${column.propertyName} = ${alias}.${column.referencedColumn
2354
+ .propertyName}`;
2355
+ })
2356
+ .join(" AND "));
2016
2357
  }
2017
2358
  else if (relation.isOneToMany) {
2018
2359
  qb.select("COUNT(*)")
2019
- .from(relation.inverseEntityMetadata.target, relation.inverseEntityMetadata.tableName)
2020
- .where(relation.inverseRelation.joinColumns.map(function (column) {
2021
- return relation.inverseEntityMetadata.tableName + "." + column.propertyName + " = " + alias + "." + column.referencedColumn.propertyName;
2022
- }).join(" AND "));
2360
+ .from(relation.inverseEntityMetadata.target, relation.inverseEntityMetadata
2361
+ .tableName)
2362
+ .where(relation
2363
+ .inverseRelation.joinColumns.map((column) => {
2364
+ return `${relation
2365
+ .inverseEntityMetadata
2366
+ .tableName}.${column.propertyName} = ${alias}.${column.referencedColumn
2367
+ .propertyName}`;
2368
+ })
2369
+ .join(" AND "));
2023
2370
  }
2024
2371
  else {
2025
- throw new Error("This relation isn't supported by given find operator");
2372
+ throw new Error(`This relation isn't supported by given find operator`);
2026
2373
  }
2027
2374
  // this
2028
2375
  // .addSelect(qb.getSql(), relation.propertyAliasName + "_cnt")
2029
2376
  // .andWhere(this.escape(relation.propertyAliasName + "_cnt") + " " + sqlOperator + " " + parseInt(where[key].value));
2030
- this_2.andWhere((qb.getSql()) + " " + sqlOperator + " " + parseInt(where[key].value));
2377
+ this.andWhere(qb.getSql() +
2378
+ " " +
2379
+ sqlOperator +
2380
+ " " +
2381
+ parseInt(where[key].value));
2031
2382
  }
2032
2383
  }
2033
2384
  else {
2034
- var joinAlias_2 = alias + "_" + relation.propertyName;
2035
- var existJoin = this_2.joins.find(function (join) { return join.alias === joinAlias_2; });
2385
+ // const joinAlias = alias + "_" + relation.propertyName;
2386
+ let joinAlias = alias +
2387
+ "_" +
2388
+ relation.propertyPath.replace(".", "_");
2389
+ joinAlias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, { joiner: "__" }, alias, joinAlias);
2390
+ const existJoin = this.joins.find((join) => join.alias === joinAlias);
2036
2391
  if (!existJoin) {
2037
- this_2.joins.push({
2392
+ this.joins.push({
2038
2393
  type: "inner",
2039
2394
  select: false,
2040
- alias: joinAlias_2,
2395
+ selection: undefined,
2396
+ alias: joinAlias,
2041
2397
  parentAlias: alias,
2042
- relationMetadata: relation
2398
+ relationMetadata: relation,
2043
2399
  });
2044
2400
  }
2045
2401
  else {
2046
2402
  if (existJoin.type === "left")
2047
2403
  existJoin.type = "inner";
2048
2404
  }
2049
- var condition_2 = this_2.buildWhere(where[key], relation.inverseEntityMetadata, joinAlias_2);
2050
- if (condition_2)
2051
- andConditions.push(condition_2);
2405
+ const condition = this.buildWhere(where[key], relation.inverseEntityMetadata, joinAlias);
2406
+ if (condition) {
2407
+ andConditions.push(condition);
2408
+ // parameterIndex = Object.keys(this.expressionMap.nativeParameters).length;
2409
+ }
2052
2410
  }
2053
2411
  }
2054
- };
2055
- var this_2 = this;
2056
- for (var key in where) {
2057
- _loop_2(key);
2058
2412
  }
2059
2413
  condition = andConditions.join(" AND ");
2060
2414
  }
2061
2415
  return condition;
2062
- };
2063
- return SelectQueryBuilder;
2064
- }(QueryBuilder_1.QueryBuilder));
2416
+ }
2417
+ }
2065
2418
  exports.SelectQueryBuilder = SelectQueryBuilder;
2066
2419
 
2067
2420
  //# sourceMappingURL=SelectQueryBuilder.js.map