typeorm 0.3.0-rc.9 → 0.3.0

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