typeorm 0.3.29-dev.cc07c90 → 1.0.0-beta.1

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 (2906) hide show
  1. package/README.md +67 -74
  2. package/browser/cache/DbQueryResultCache.d.ts +17 -6
  3. package/browser/cache/DbQueryResultCache.js +46 -32
  4. package/browser/cache/DbQueryResultCache.js.map +1 -1
  5. package/browser/cache/QueryResultCache.d.ts +2 -2
  6. package/browser/cache/QueryResultCache.js +3 -3
  7. package/browser/cache/QueryResultCache.js.map +1 -1
  8. package/browser/cache/QueryResultCacheFactory.d.ts +4 -4
  9. package/browser/cache/QueryResultCacheFactory.js +17 -14
  10. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  11. package/browser/cache/QueryResultCacheOptions.js +3 -3
  12. package/browser/cache/QueryResultCacheOptions.js.map +1 -1
  13. package/browser/cache/RedisQueryResultCache.d.ts +18 -19
  14. package/browser/cache/RedisQueryResultCache.js +54 -130
  15. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  16. package/browser/cli-ts-node-commonjs.js +4 -3
  17. package/browser/cli-ts-node-commonjs.js.map +1 -1
  18. package/browser/cli-ts-node-esm.js +5 -4
  19. package/browser/cli-ts-node-esm.js.map +1 -1
  20. package/browser/common/DeepPartial.js +3 -3
  21. package/browser/common/DeepPartial.js.map +1 -1
  22. package/browser/common/EntityTarget.d.ts +2 -2
  23. package/browser/common/EntityTarget.js +3 -3
  24. package/browser/common/EntityTarget.js.map +1 -1
  25. package/browser/common/MixedList.js +3 -3
  26. package/browser/common/MixedList.js.map +1 -1
  27. package/browser/common/NonNever.d.ts +1 -1
  28. package/browser/common/NonNever.js +3 -3
  29. package/browser/common/NonNever.js.map +1 -1
  30. package/browser/common/ObjectLiteral.js +3 -3
  31. package/browser/common/ObjectLiteral.js.map +1 -1
  32. package/browser/common/ObjectType.js +3 -3
  33. package/browser/common/ObjectType.js.map +1 -1
  34. package/browser/common/PickKeysByType.js +3 -3
  35. package/browser/common/PickKeysByType.js.map +1 -1
  36. package/browser/common/PrimitiveCriteria.js +3 -3
  37. package/browser/common/PrimitiveCriteria.js.map +1 -1
  38. package/browser/common/RelationType.d.ts +5 -5
  39. package/browser/common/RelationType.js +3 -3
  40. package/browser/common/RelationType.js.map +1 -1
  41. package/browser/connection/ConnectionMetadataBuilder.d.ts +10 -7
  42. package/browser/connection/ConnectionMetadataBuilder.js +32 -27
  43. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  44. package/browser/connection/ConnectionOptionsReader.d.ts +3 -11
  45. package/browser/connection/ConnectionOptionsReader.js +43 -71
  46. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  47. package/browser/data-source/BaseDataSourceOptions.d.ts +13 -20
  48. package/browser/data-source/BaseDataSourceOptions.js +3 -3
  49. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  50. package/browser/data-source/DataSource.d.ts +50 -61
  51. package/browser/data-source/DataSource.js +107 -114
  52. package/browser/data-source/DataSource.js.map +1 -1
  53. package/browser/data-source/DataSourceOptions.d.ts +18 -19
  54. package/browser/data-source/DataSourceOptions.js +3 -3
  55. package/browser/data-source/DataSourceOptions.js.map +1 -1
  56. package/browser/data-source/index.d.ts +1 -1
  57. package/browser/data-source/index.js +5 -4
  58. package/browser/data-source/index.js.map +1 -1
  59. package/browser/decorator/Check.d.ts +3 -0
  60. package/browser/decorator/Check.js +11 -7
  61. package/browser/decorator/Check.js.map +1 -1
  62. package/browser/decorator/Exclusion.d.ts +8 -2
  63. package/browser/decorator/Exclusion.js +17 -9
  64. package/browser/decorator/Exclusion.js.map +1 -1
  65. package/browser/decorator/ForeignKey.d.ts +11 -2
  66. package/browser/decorator/ForeignKey.js +14 -8
  67. package/browser/decorator/ForeignKey.js.map +1 -1
  68. package/browser/decorator/Generated.d.ts +1 -0
  69. package/browser/decorator/Generated.js +8 -5
  70. package/browser/decorator/Generated.js.map +1 -1
  71. package/browser/decorator/Index.d.ts +17 -1
  72. package/browser/decorator/Index.js +14 -8
  73. package/browser/decorator/Index.js.map +1 -1
  74. package/browser/decorator/Unique.d.ts +11 -1
  75. package/browser/decorator/Unique.js +13 -8
  76. package/browser/decorator/Unique.js.map +1 -1
  77. package/browser/decorator/columns/Column.d.ts +31 -10
  78. package/browser/decorator/columns/Column.js +14 -10
  79. package/browser/decorator/columns/Column.js.map +1 -1
  80. package/browser/decorator/columns/CreateDateColumn.d.ts +2 -1
  81. package/browser/decorator/columns/CreateDateColumn.js +8 -5
  82. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  83. package/browser/decorator/columns/DeleteDateColumn.d.ts +2 -1
  84. package/browser/decorator/columns/DeleteDateColumn.js +8 -5
  85. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  86. package/browser/decorator/columns/ObjectIdColumn.d.ts +2 -1
  87. package/browser/decorator/columns/ObjectIdColumn.js +8 -5
  88. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  89. package/browser/decorator/columns/PrimaryColumn.d.ts +5 -2
  90. package/browser/decorator/columns/PrimaryColumn.js +14 -10
  91. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  92. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +10 -3
  93. package/browser/decorator/columns/PrimaryGeneratedColumn.js +13 -9
  94. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  95. package/browser/decorator/columns/UpdateDateColumn.d.ts +2 -1
  96. package/browser/decorator/columns/UpdateDateColumn.js +8 -5
  97. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  98. package/browser/decorator/columns/VersionColumn.d.ts +2 -1
  99. package/browser/decorator/columns/VersionColumn.js +8 -5
  100. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  101. package/browser/decorator/columns/ViewColumn.d.ts +2 -1
  102. package/browser/decorator/columns/ViewColumn.js +8 -5
  103. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  104. package/browser/decorator/columns/VirtualColumn.d.ts +5 -2
  105. package/browser/decorator/columns/VirtualColumn.js +11 -7
  106. package/browser/decorator/columns/VirtualColumn.js.map +1 -1
  107. package/browser/decorator/entity/ChildEntity.d.ts +1 -0
  108. package/browser/decorator/entity/ChildEntity.js +9 -6
  109. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  110. package/browser/decorator/entity/Entity.d.ts +4 -1
  111. package/browser/decorator/entity/Entity.js +11 -7
  112. package/browser/decorator/entity/Entity.js.map +1 -1
  113. package/browser/decorator/entity/TableInheritance.d.ts +4 -1
  114. package/browser/decorator/entity/TableInheritance.js +10 -5
  115. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  116. package/browser/decorator/entity-view/ViewEntity.d.ts +4 -1
  117. package/browser/decorator/entity-view/ViewEntity.js +11 -7
  118. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  119. package/browser/decorator/listeners/AfterInsert.js +9 -7
  120. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  121. package/browser/decorator/listeners/AfterLoad.js +9 -7
  122. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  123. package/browser/decorator/listeners/AfterRecover.js +9 -7
  124. package/browser/decorator/listeners/AfterRecover.js.map +1 -1
  125. package/browser/decorator/listeners/AfterRemove.js +9 -7
  126. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  127. package/browser/decorator/listeners/AfterSoftRemove.js +9 -7
  128. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
  129. package/browser/decorator/listeners/AfterUpdate.js +9 -7
  130. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  131. package/browser/decorator/listeners/BeforeInsert.js +9 -7
  132. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  133. package/browser/decorator/listeners/BeforeRecover.js +9 -7
  134. package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
  135. package/browser/decorator/listeners/BeforeRemove.js +9 -7
  136. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  137. package/browser/decorator/listeners/BeforeSoftRemove.js +9 -7
  138. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  139. package/browser/decorator/listeners/BeforeUpdate.js +9 -7
  140. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  141. package/browser/decorator/listeners/EventSubscriber.js +7 -5
  142. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  143. package/browser/decorator/options/ColumnCommonOptions.d.ts +2 -2
  144. package/browser/decorator/options/ColumnCommonOptions.js +3 -3
  145. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  146. package/browser/decorator/options/ColumnEmbeddedOptions.js +3 -3
  147. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  148. package/browser/decorator/options/ColumnEnumOptions.js +3 -3
  149. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  150. package/browser/decorator/options/ColumnHstoreOptions.js +3 -3
  151. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  152. package/browser/decorator/options/ColumnNumericOptions.d.ts +0 -16
  153. package/browser/decorator/options/ColumnNumericOptions.js +3 -3
  154. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  155. package/browser/decorator/options/ColumnOptions.d.ts +8 -33
  156. package/browser/decorator/options/ColumnOptions.js +3 -3
  157. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  158. package/browser/decorator/options/ColumnUnsignedOptions.d.ts +1 -20
  159. package/browser/decorator/options/ColumnUnsignedOptions.js +3 -3
  160. package/browser/decorator/options/ColumnUnsignedOptions.js.map +1 -1
  161. package/browser/decorator/options/ColumnWithLengthOptions.js +3 -3
  162. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  163. package/browser/decorator/options/EntityOptions.d.ts +1 -1
  164. package/browser/decorator/options/EntityOptions.js +3 -3
  165. package/browser/decorator/options/EntityOptions.js.map +1 -1
  166. package/browser/decorator/options/ExclusionOptions.d.ts +10 -0
  167. package/{connection/ConnectionOptions.js → browser/decorator/options/ExclusionOptions.js} +1 -2
  168. package/browser/decorator/options/ExclusionOptions.js.map +1 -0
  169. package/browser/decorator/options/ForeignKeyOptions.d.ts +3 -3
  170. package/browser/decorator/options/ForeignKeyOptions.js +3 -3
  171. package/browser/decorator/options/ForeignKeyOptions.js.map +1 -1
  172. package/browser/decorator/options/IndexOptions.d.ts +7 -0
  173. package/browser/decorator/options/IndexOptions.js +3 -3
  174. package/browser/decorator/options/IndexOptions.js.map +1 -1
  175. package/browser/decorator/options/JoinColumnOptions.js +3 -3
  176. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  177. package/browser/decorator/options/JoinTableMultipleColumnsOptions.d.ts +1 -1
  178. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +3 -3
  179. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  180. package/browser/decorator/options/JoinTableOptions.d.ts +1 -1
  181. package/browser/decorator/options/JoinTableOptions.js +3 -3
  182. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  183. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +1 -1
  184. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -3
  185. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  186. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +1 -9
  187. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +3 -3
  188. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  189. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +3 -3
  190. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  191. package/browser/decorator/options/RelationOptions.d.ts +3 -3
  192. package/browser/decorator/options/RelationOptions.js +3 -3
  193. package/browser/decorator/options/RelationOptions.js.map +1 -1
  194. package/browser/decorator/options/SpatialColumnOptions.d.ts +1 -1
  195. package/browser/decorator/options/SpatialColumnOptions.js +3 -3
  196. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  197. package/browser/decorator/options/TransactionOptions.d.ts +1 -1
  198. package/browser/decorator/options/TransactionOptions.js +3 -3
  199. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  200. package/browser/decorator/options/UniqueOptions.d.ts +1 -1
  201. package/browser/decorator/options/UniqueOptions.js +3 -3
  202. package/browser/decorator/options/UniqueOptions.js.map +1 -1
  203. package/browser/decorator/options/ValueTransformer.js +3 -3
  204. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  205. package/browser/decorator/options/ViewColumnOptions.d.ts +1 -1
  206. package/browser/decorator/options/ViewColumnOptions.js +3 -3
  207. package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
  208. package/browser/decorator/options/ViewEntityOptions.d.ts +3 -2
  209. package/browser/decorator/options/ViewEntityOptions.js +3 -3
  210. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  211. package/browser/decorator/options/VirtualColumnOptions.d.ts +3 -3
  212. package/browser/decorator/options/VirtualColumnOptions.js +3 -3
  213. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
  214. package/browser/decorator/relations/JoinColumn.d.ts +3 -1
  215. package/browser/decorator/relations/JoinColumn.js +8 -5
  216. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  217. package/browser/decorator/relations/JoinTable.d.ts +4 -2
  218. package/browser/decorator/relations/JoinTable.js +8 -5
  219. package/browser/decorator/relations/JoinTable.js.map +1 -1
  220. package/browser/decorator/relations/ManyToMany.d.ts +7 -2
  221. package/browser/decorator/relations/ManyToMany.js +12 -7
  222. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  223. package/browser/decorator/relations/ManyToOne.d.ts +7 -2
  224. package/browser/decorator/relations/ManyToOne.js +12 -7
  225. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  226. package/browser/decorator/relations/OneToMany.d.ts +5 -2
  227. package/browser/decorator/relations/OneToMany.js +10 -5
  228. package/browser/decorator/relations/OneToMany.js.map +1 -1
  229. package/browser/decorator/relations/OneToOne.d.ts +7 -2
  230. package/browser/decorator/relations/OneToOne.js +12 -7
  231. package/browser/decorator/relations/OneToOne.js.map +1 -1
  232. package/browser/decorator/relations/RelationId.d.ts +4 -2
  233. package/browser/decorator/relations/RelationId.js +10 -6
  234. package/browser/decorator/relations/RelationId.js.map +1 -1
  235. package/browser/decorator/tree/Tree.d.ts +6 -4
  236. package/browser/decorator/tree/Tree.js +11 -7
  237. package/browser/decorator/tree/Tree.js.map +1 -1
  238. package/browser/decorator/tree/TreeChildren.d.ts +2 -0
  239. package/browser/decorator/tree/TreeChildren.js +9 -5
  240. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  241. package/browser/decorator/tree/TreeLevelColumn.js +7 -5
  242. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  243. package/browser/decorator/tree/TreeParent.d.ts +3 -1
  244. package/browser/decorator/tree/TreeParent.js +9 -5
  245. package/browser/decorator/tree/TreeParent.js.map +1 -1
  246. package/browser/driver/Driver.d.ts +32 -21
  247. package/browser/driver/Driver.js +3 -3
  248. package/browser/driver/Driver.js.map +1 -1
  249. package/browser/driver/DriverFactory.d.ts +5 -3
  250. package/browser/driver/DriverFactory.js +61 -60
  251. package/browser/driver/DriverFactory.js.map +1 -1
  252. package/browser/driver/DriverUtils.d.ts +13 -11
  253. package/browser/driver/DriverUtils.js +28 -30
  254. package/browser/driver/DriverUtils.js.map +1 -1
  255. package/browser/driver/Query.js +6 -3
  256. package/browser/driver/Query.js.map +1 -1
  257. package/browser/driver/SqlInMemory.d.ts +1 -1
  258. package/browser/driver/SqlInMemory.js +6 -3
  259. package/browser/driver/SqlInMemory.js.map +1 -1
  260. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +0 -1
  261. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +3 -3
  262. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  263. package/{driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts → browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts} +4 -5
  264. package/{driver/cockroachdb/CockroachConnectionOptions.js → browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js} +1 -2
  265. package/browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -0
  266. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +66 -28
  267. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +113 -97
  268. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  269. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +168 -32
  270. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +404 -290
  271. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  272. package/{driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts → browser/driver/aurora-postgres/AuroraPostgresDataSourceOptions.d.ts} +2 -2
  273. package/browser/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js +3 -0
  274. package/browser/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js.map +1 -0
  275. package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +15 -13
  276. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +30 -20
  277. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  278. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +11 -9
  279. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +23 -14
  280. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  281. package/{driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts → browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts} +5 -3
  282. package/{driver/aurora-mysql/AuroraMysqlConnectionOptions.js → browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js} +1 -2
  283. package/browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -0
  284. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +13 -12
  285. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +35 -27
  286. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  287. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +4 -1
  288. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +35 -24
  289. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  290. package/browser/driver/capacitor/{CapacitorConnectionOptions.d.ts → CapacitorDataSourceOptions.d.ts} +2 -2
  291. package/{driver/cordova/CordovaConnectionOptions.js → browser/driver/capacitor/CapacitorDataSourceOptions.js} +1 -2
  292. package/browser/driver/capacitor/CapacitorDataSourceOptions.js.map +1 -0
  293. package/browser/driver/capacitor/CapacitorDriver.d.ts +7 -6
  294. package/browser/driver/capacitor/CapacitorDriver.js +14 -10
  295. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  296. package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +6 -2
  297. package/browser/driver/capacitor/CapacitorQueryRunner.js +23 -16
  298. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  299. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -1
  300. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +3 -3
  301. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  302. package/{driver/cockroachdb/CockroachConnectionOptions.d.ts → browser/driver/cockroachdb/CockroachDataSourceOptions.d.ts} +4 -4
  303. package/browser/driver/cockroachdb/CockroachDataSourceOptions.js +3 -0
  304. package/browser/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -0
  305. package/browser/driver/cockroachdb/CockroachDriver.d.ts +79 -27
  306. package/browser/driver/cockroachdb/CockroachDriver.js +168 -88
  307. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  308. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +203 -31
  309. package/browser/driver/cockroachdb/CockroachQueryRunner.js +582 -368
  310. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  311. package/browser/driver/cordova/{CordovaConnectionOptions.d.ts → CordovaDataSourceOptions.d.ts} +2 -2
  312. package/{driver/mongodb/MongoConnectionOptions.js → browser/driver/cordova/CordovaDataSourceOptions.js} +1 -2
  313. package/browser/driver/cordova/CordovaDataSourceOptions.js.map +1 -0
  314. package/browser/driver/cordova/CordovaDriver.d.ts +7 -6
  315. package/browser/driver/cordova/CordovaDriver.js +14 -12
  316. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  317. package/browser/driver/cordova/CordovaQueryRunner.d.ts +7 -35
  318. package/browser/driver/cordova/CordovaQueryRunner.js +31 -55
  319. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  320. package/browser/driver/expo/{ExpoConnectionOptions.d.ts → ExpoDataSourceOptions.d.ts} +2 -2
  321. package/{driver/sap/SapConnectionOptions.js → browser/driver/expo/ExpoDataSourceOptions.js} +1 -2
  322. package/browser/driver/expo/ExpoDataSourceOptions.js.map +1 -0
  323. package/browser/driver/expo/ExpoDriver.d.ts +6 -5
  324. package/browser/driver/expo/ExpoDriver.js +18 -8
  325. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  326. package/browser/driver/expo/ExpoQueryRunner.d.ts +1 -1
  327. package/browser/driver/expo/ExpoQueryRunner.js +21 -18
  328. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  329. package/{driver/mongodb/MongoConnectionOptions.d.ts → browser/driver/mongodb/MongoDataSourceOptions.d.ts} +7 -69
  330. package/{driver/expo/ExpoConnectionOptions.js → browser/driver/mongodb/MongoDataSourceOptions.js} +1 -2
  331. package/browser/driver/mongodb/MongoDataSourceOptions.js.map +1 -0
  332. package/browser/driver/mongodb/MongoDriver.d.ts +51 -23
  333. package/browser/driver/mongodb/MongoDriver.js +70 -58
  334. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  335. package/browser/driver/mongodb/MongoQueryRunner.d.ts +239 -83
  336. package/browser/driver/mongodb/MongoQueryRunner.js +303 -133
  337. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  338. package/browser/driver/mongodb/bson.typings.d.ts +604 -97
  339. package/browser/driver/mongodb/bson.typings.js +4 -3
  340. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  341. package/browser/driver/mongodb/typings.d.ts +3577 -1025
  342. package/browser/driver/mongodb/typings.js +24 -24
  343. package/browser/driver/mongodb/typings.js.map +1 -1
  344. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +0 -1
  345. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +3 -3
  346. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  347. package/{driver/mysql/MysqlConnectionOptions.d.ts → browser/driver/mysql/MysqlDataSourceOptions.d.ts} +6 -13
  348. package/browser/driver/mysql/MysqlDataSourceOptions.js +3 -0
  349. package/browser/driver/mysql/MysqlDataSourceOptions.js.map +1 -0
  350. package/browser/driver/mysql/MysqlDriver.d.ts +69 -37
  351. package/browser/driver/mysql/MysqlDriver.js +141 -251
  352. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  353. package/browser/driver/mysql/MysqlQueryRunner.d.ts +167 -33
  354. package/browser/driver/mysql/MysqlQueryRunner.js +448 -325
  355. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  356. package/{driver/nativescript/NativescriptConnectionOptions.d.ts → browser/driver/nativescript/NativescriptDataSourceOptions.d.ts} +2 -2
  357. package/browser/driver/nativescript/NativescriptDataSourceOptions.js +3 -0
  358. package/browser/driver/nativescript/NativescriptDataSourceOptions.js.map +1 -0
  359. package/browser/driver/nativescript/NativescriptDriver.d.ts +9 -8
  360. package/browser/driver/nativescript/NativescriptDriver.js +16 -13
  361. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  362. package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +7 -2
  363. package/browser/driver/nativescript/NativescriptQueryRunner.js +22 -14
  364. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  365. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +3 -3
  366. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  367. package/{driver/oracle/OracleConnectionOptions.d.ts → browser/driver/oracle/OracleDataSourceOptions.d.ts} +3 -3
  368. package/{connection/BaseConnectionOptions.js → browser/driver/oracle/OracleDataSourceOptions.js} +1 -2
  369. package/browser/driver/oracle/OracleDataSourceOptions.js.map +1 -0
  370. package/browser/driver/oracle/OracleDriver.d.ts +65 -28
  371. package/browser/driver/oracle/OracleDriver.js +96 -55
  372. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  373. package/browser/driver/oracle/OracleQueryRunner.d.ts +176 -29
  374. package/browser/driver/oracle/OracleQueryRunner.js +442 -267
  375. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  376. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  377. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +3 -3
  378. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  379. package/{driver/postgres/PostgresConnectionOptions.d.ts → browser/driver/postgres/PostgresDataSourceOptions.d.ts} +8 -5
  380. package/browser/driver/postgres/PostgresDataSourceOptions.js +3 -0
  381. package/browser/driver/postgres/PostgresDataSourceOptions.js.map +1 -0
  382. package/browser/driver/postgres/PostgresDriver.d.ts +85 -28
  383. package/browser/driver/postgres/PostgresDriver.js +244 -80
  384. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  385. package/browser/driver/postgres/PostgresQueryRunner.d.ts +225 -34
  386. package/browser/driver/postgres/PostgresQueryRunner.js +729 -447
  387. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  388. package/{driver/react-native/ReactNativeConnectionOptions.d.ts → browser/driver/react-native/ReactNativeDataSourceOptions.d.ts} +6 -2
  389. package/{driver/capacitor/CapacitorConnectionOptions.js → browser/driver/react-native/ReactNativeDataSourceOptions.js} +1 -2
  390. package/browser/driver/react-native/ReactNativeDataSourceOptions.js.map +1 -0
  391. package/browser/driver/react-native/ReactNativeDriver.d.ts +64 -24
  392. package/browser/driver/react-native/ReactNativeDriver.js +92 -50
  393. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  394. package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +7 -2
  395. package/browser/driver/react-native/ReactNativeQueryRunner.js +26 -18
  396. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  397. package/browser/driver/sap/SapConnectionCredentialsOptions.js +3 -3
  398. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  399. package/browser/driver/sap/{SapConnectionOptions.d.ts → SapDataSourceOptions.d.ts} +10 -37
  400. package/browser/driver/sap/SapDataSourceOptions.js +3 -0
  401. package/browser/driver/sap/SapDataSourceOptions.js.map +1 -0
  402. package/browser/driver/sap/SapDriver.d.ts +54 -17
  403. package/browser/driver/sap/SapDriver.js +97 -70
  404. package/browser/driver/sap/SapDriver.js.map +1 -1
  405. package/browser/driver/sap/SapQueryRunner.d.ts +179 -31
  406. package/browser/driver/sap/SapQueryRunner.js +488 -286
  407. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  408. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js +3 -3
  409. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  410. package/{driver/spanner/SpannerConnectionOptions.d.ts → browser/driver/spanner/SpannerDataSourceOptions.d.ts} +4 -4
  411. package/browser/driver/spanner/SpannerDataSourceOptions.js +3 -0
  412. package/browser/driver/spanner/SpannerDataSourceOptions.js.map +1 -0
  413. package/browser/driver/spanner/SpannerDriver.d.ts +61 -23
  414. package/browser/driver/spanner/SpannerDriver.js +82 -42
  415. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  416. package/browser/driver/spanner/SpannerQueryRunner.d.ts +170 -28
  417. package/browser/driver/spanner/SpannerQueryRunner.js +373 -201
  418. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  419. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +74 -23
  420. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +162 -53
  421. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  422. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +164 -30
  423. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +357 -193
  424. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  425. package/{driver/sqljs/SqljsConnectionOptions.d.ts → browser/driver/sqljs/SqljsDataSourceOptions.d.ts} +2 -2
  426. package/browser/driver/sqljs/SqljsDataSourceOptions.js +3 -0
  427. package/browser/driver/sqljs/SqljsDataSourceOptions.js.map +1 -0
  428. package/browser/driver/sqljs/SqljsDriver.d.ts +15 -8
  429. package/browser/driver/sqljs/SqljsDriver.js +44 -34
  430. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  431. package/browser/driver/sqljs/SqljsQueryRunner.d.ts +4 -1
  432. package/browser/driver/sqljs/SqljsQueryRunner.js +24 -18
  433. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  434. package/browser/driver/sqlserver/MssqlParameter.d.ts +0 -1
  435. package/browser/driver/sqlserver/MssqlParameter.js +6 -4
  436. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  437. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +8 -15
  438. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +3 -3
  439. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  440. package/browser/driver/sqlserver/{SqlServerConnectionOptions.d.ts → SqlServerDataSourceOptions.d.ts} +4 -4
  441. package/browser/driver/sqlserver/SqlServerDataSourceOptions.js +3 -0
  442. package/browser/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -0
  443. package/browser/driver/sqlserver/SqlServerDriver.d.ts +70 -28
  444. package/browser/driver/sqlserver/SqlServerDriver.js +115 -79
  445. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  446. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +190 -30
  447. package/browser/driver/sqlserver/SqlServerQueryRunner.js +576 -350
  448. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  449. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -3
  450. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  451. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +3 -3
  452. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  453. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -3
  454. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  455. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -3
  456. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  457. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -3
  458. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  459. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -3
  460. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  461. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -3
  462. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  463. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -3
  464. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  465. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  466. package/browser/driver/types/ColumnTypes.js +3 -3
  467. package/browser/driver/types/ColumnTypes.js.map +1 -1
  468. package/browser/driver/types/CteCapabilities.js +3 -3
  469. package/browser/driver/types/CteCapabilities.js.map +1 -1
  470. package/browser/driver/types/DataTypeDefaults.d.ts +0 -1
  471. package/browser/driver/types/DataTypeDefaults.js +3 -3
  472. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  473. package/browser/driver/types/DatabaseType.d.ts +1 -1
  474. package/browser/driver/types/DatabaseType.js +3 -3
  475. package/browser/driver/types/DatabaseType.js.map +1 -1
  476. package/browser/driver/types/GeoJsonTypes.js +3 -3
  477. package/browser/driver/types/GeoJsonTypes.js.map +1 -1
  478. package/browser/driver/types/IsolationLevel.js +3 -3
  479. package/browser/driver/types/IsolationLevel.js.map +1 -1
  480. package/browser/driver/types/MappedColumnTypes.d.ts +1 -1
  481. package/browser/driver/types/MappedColumnTypes.js +3 -3
  482. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  483. package/browser/driver/types/MetadataTableType.js +6 -4
  484. package/browser/driver/types/MetadataTableType.js.map +1 -1
  485. package/browser/driver/types/ReplicationMode.js +3 -3
  486. package/browser/driver/types/ReplicationMode.js.map +1 -1
  487. package/browser/driver/types/ReturningType.d.ts +1 -0
  488. package/{find-options/JoinOptions.js → browser/driver/types/ReturningType.js} +1 -2
  489. package/browser/driver/types/ReturningType.js.map +1 -0
  490. package/browser/driver/types/UpsertType.js +3 -3
  491. package/browser/driver/types/UpsertType.js.map +1 -1
  492. package/browser/entity-manager/EntityManager.d.ts +111 -57
  493. package/browser/entity-manager/EntityManager.js +245 -203
  494. package/browser/entity-manager/EntityManager.js.map +1 -1
  495. package/browser/entity-manager/EntityManagerFactory.d.ts +6 -3
  496. package/browser/entity-manager/EntityManagerFactory.js +18 -12
  497. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  498. package/browser/entity-manager/MongoEntityManager.d.ts +156 -30
  499. package/browser/entity-manager/MongoEntityManager.js +289 -112
  500. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  501. package/browser/entity-manager/SqljsEntityManager.d.ts +5 -3
  502. package/browser/entity-manager/SqljsEntityManager.js +12 -7
  503. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  504. package/browser/entity-schema/EntitySchema.d.ts +1 -1
  505. package/browser/entity-schema/EntitySchema.js +6 -3
  506. package/browser/entity-schema/EntitySchema.js.map +1 -1
  507. package/browser/entity-schema/EntitySchemaCheckOptions.js +3 -3
  508. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  509. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +2 -2
  510. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js +3 -3
  511. package/browser/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -1
  512. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +6 -26
  513. package/browser/entity-schema/EntitySchemaColumnOptions.js +3 -3
  514. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  515. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +1 -1
  516. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +6 -3
  517. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  518. package/browser/entity-schema/EntitySchemaEmbeddedError.js +7 -4
  519. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  520. package/browser/entity-schema/EntitySchemaExclusionOptions.d.ts +5 -0
  521. package/browser/entity-schema/EntitySchemaExclusionOptions.js +3 -3
  522. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  523. package/browser/entity-schema/EntitySchemaForeignKeyOptions.d.ts +2 -2
  524. package/browser/entity-schema/EntitySchemaForeignKeyOptions.js +3 -3
  525. package/browser/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -1
  526. package/browser/entity-schema/EntitySchemaIndexOptions.js +3 -3
  527. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  528. package/browser/entity-schema/EntitySchemaInheritanceOptions.d.ts +1 -1
  529. package/browser/entity-schema/EntitySchemaInheritanceOptions.js +3 -3
  530. package/browser/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  531. package/browser/entity-schema/EntitySchemaOptions.d.ts +16 -14
  532. package/browser/entity-schema/EntitySchemaOptions.js +6 -3
  533. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  534. package/browser/entity-schema/EntitySchemaRelationIdOptions.d.ts +1 -1
  535. package/browser/entity-schema/EntitySchemaRelationIdOptions.js +3 -3
  536. package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  537. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +8 -8
  538. package/browser/entity-schema/EntitySchemaRelationOptions.js +3 -3
  539. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  540. package/browser/entity-schema/EntitySchemaTransformer.d.ts +2 -1
  541. package/browser/entity-schema/EntitySchemaTransformer.js +12 -10
  542. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  543. package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +1 -1
  544. package/browser/entity-schema/EntitySchemaUniqueOptions.js +3 -3
  545. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  546. package/browser/error/AlreadyHasActiveConnectionError.js +7 -4
  547. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  548. package/browser/error/CannotAttachTreeChildrenEntityError.js +7 -4
  549. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  550. package/browser/error/CannotConnectAlreadyConnectedError.d.ts +1 -1
  551. package/browser/error/CannotConnectAlreadyConnectedError.js +9 -6
  552. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  553. package/browser/error/CannotCreateEntityIdMapError.d.ts +1 -1
  554. package/browser/error/CannotCreateEntityIdMapError.js +7 -4
  555. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  556. package/browser/error/CannotDetermineEntityError.js +7 -4
  557. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  558. package/browser/error/CannotExecuteNotConnectedError.d.ts +1 -1
  559. package/browser/error/CannotExecuteNotConnectedError.js +9 -6
  560. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  561. package/browser/error/CannotGetEntityManagerNotConnectedError.js +7 -4
  562. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  563. package/browser/error/CannotReflectMethodParameterTypeError.js +7 -4
  564. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  565. package/browser/error/CircularRelationsError.js +7 -4
  566. package/browser/error/CircularRelationsError.js.map +1 -1
  567. package/browser/error/ColumnTypeUndefinedError.js +7 -4
  568. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  569. package/browser/error/ConnectionIsNotSetError.js +7 -4
  570. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  571. package/browser/error/ConnectionNotFoundError.js +7 -4
  572. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  573. package/browser/error/DataTypeNotSupportedError.d.ts +3 -3
  574. package/browser/error/DataTypeNotSupportedError.js +7 -4
  575. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  576. package/browser/error/DriverOptionNotSetError.js +7 -4
  577. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  578. package/browser/error/DriverPackageNotInstalledError.js +7 -4
  579. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  580. package/browser/error/EntityMetadataNotFoundError.d.ts +1 -1
  581. package/browser/error/EntityMetadataNotFoundError.js +11 -8
  582. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  583. package/browser/error/EntityNotFoundError.d.ts +1 -1
  584. package/browser/error/EntityNotFoundError.js +11 -8
  585. package/browser/error/EntityNotFoundError.js.map +1 -1
  586. package/browser/error/EntityPropertyNotFoundError.d.ts +1 -1
  587. package/browser/error/EntityPropertyNotFoundError.js +7 -4
  588. package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
  589. package/browser/error/FindRelationsNotFoundError.js +7 -4
  590. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  591. package/browser/error/ForbiddenTransactionModeOverrideError.d.ts +1 -1
  592. package/browser/error/ForbiddenTransactionModeOverrideError.js +7 -4
  593. package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  594. package/browser/error/InitializedRelationError.d.ts +1 -2
  595. package/browser/error/InitializedRelationError.js +7 -5
  596. package/browser/error/InitializedRelationError.js.map +1 -1
  597. package/browser/error/InsertValuesMissingError.js +7 -4
  598. package/browser/error/InsertValuesMissingError.js.map +1 -1
  599. package/browser/error/LimitOnUpdateNotSupportedError.js +7 -4
  600. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  601. package/browser/error/LockNotSupportedOnGivenDriverError.js +7 -4
  602. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  603. package/browser/error/MetadataAlreadyExistsError.js +7 -4
  604. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  605. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +7 -4
  606. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  607. package/browser/error/MissingDeleteDateColumnError.d.ts +1 -1
  608. package/browser/error/MissingDeleteDateColumnError.js +7 -4
  609. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  610. package/browser/error/MissingDriverError.js +7 -4
  611. package/browser/error/MissingDriverError.js.map +1 -1
  612. package/browser/error/MissingJoinColumnError.d.ts +2 -2
  613. package/browser/error/MissingJoinColumnError.js +7 -4
  614. package/browser/error/MissingJoinColumnError.js.map +1 -1
  615. package/browser/error/MissingJoinTableError.d.ts +2 -2
  616. package/browser/error/MissingJoinTableError.js +7 -4
  617. package/browser/error/MissingJoinTableError.js.map +1 -1
  618. package/browser/error/MissingPrimaryColumnError.d.ts +1 -1
  619. package/browser/error/MissingPrimaryColumnError.js +7 -4
  620. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  621. package/browser/error/MustBeEntityError.js +7 -4
  622. package/browser/error/MustBeEntityError.js.map +1 -1
  623. package/browser/error/NestedSetMultipleRootError.js +7 -4
  624. package/browser/error/NestedSetMultipleRootError.js.map +1 -1
  625. package/browser/error/NoConnectionForRepositoryError.d.ts +1 -1
  626. package/browser/error/NoConnectionForRepositoryError.js +10 -7
  627. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  628. package/browser/error/NoConnectionOptionError.js +7 -4
  629. package/browser/error/NoConnectionOptionError.js.map +1 -1
  630. package/browser/error/NoNeedToReleaseEntityManagerError.js +7 -4
  631. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  632. package/browser/error/NoVersionOrUpdateDateColumnError.js +7 -4
  633. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  634. package/browser/error/OffsetWithoutLimitNotSupportedError.js +7 -4
  635. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  636. package/browser/error/OptimisticLockCanNotBeUsedError.js +7 -4
  637. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  638. package/browser/error/OptimisticLockVersionMismatchError.js +7 -4
  639. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  640. package/browser/error/PersistedEntityNotFoundError.js +7 -4
  641. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  642. package/browser/error/PessimisticLockTransactionRequiredError.js +7 -4
  643. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  644. package/browser/error/PrimaryColumnCannotBeNullableError.js +7 -4
  645. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  646. package/browser/error/QueryFailedError.js +9 -6
  647. package/browser/error/QueryFailedError.js.map +1 -1
  648. package/browser/error/QueryRunnerAlreadyReleasedError.js +7 -4
  649. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  650. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +7 -4
  651. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  652. package/browser/error/RepositoryNotTreeError.d.ts +1 -1
  653. package/browser/error/RepositoryNotTreeError.js +11 -8
  654. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  655. package/browser/error/ReturningStatementNotSupportedError.js +7 -4
  656. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  657. package/browser/error/SubjectRemovedAndUpdatedError.d.ts +1 -1
  658. package/browser/error/SubjectRemovedAndUpdatedError.js +7 -4
  659. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  660. package/browser/error/SubjectWithoutIdentifierError.d.ts +1 -1
  661. package/browser/error/SubjectWithoutIdentifierError.js +7 -4
  662. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  663. package/browser/error/TransactionAlreadyStartedError.js +7 -4
  664. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  665. package/browser/error/TransactionNotStartedError.js +7 -4
  666. package/browser/error/TransactionNotStartedError.js.map +1 -1
  667. package/browser/error/TreeRepositoryNotSupportedError.d.ts +1 -1
  668. package/browser/error/TreeRepositoryNotSupportedError.js +7 -4
  669. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  670. package/browser/error/TypeORMError.js +6 -3
  671. package/browser/error/TypeORMError.js.map +1 -1
  672. package/browser/error/UpdateValuesMissingError.js +7 -4
  673. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  674. package/browser/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -2
  675. package/browser/error/UsingJoinColumnIsNotAllowedError.js +7 -4
  676. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  677. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -2
  678. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +7 -4
  679. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  680. package/browser/error/UsingJoinTableIsNotAllowedError.d.ts +2 -2
  681. package/browser/error/UsingJoinTableIsNotAllowedError.js +7 -4
  682. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  683. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -2
  684. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +7 -4
  685. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  686. package/browser/error/index.d.ts +0 -3
  687. package/browser/error/index.js +62 -63
  688. package/browser/error/index.js.map +1 -1
  689. package/browser/find-options/EqualOperator.js +7 -4
  690. package/browser/find-options/EqualOperator.js.map +1 -1
  691. package/browser/find-options/FindManyOptions.d.ts +1 -1
  692. package/browser/find-options/FindManyOptions.js +3 -3
  693. package/browser/find-options/FindManyOptions.js.map +1 -1
  694. package/browser/find-options/FindOneOptions.d.ts +7 -14
  695. package/browser/find-options/FindOneOptions.js +3 -3
  696. package/browser/find-options/FindOneOptions.js.map +1 -1
  697. package/browser/find-options/FindOperator.d.ts +3 -3
  698. package/browser/find-options/FindOperator.js +16 -13
  699. package/browser/find-options/FindOperator.js.map +1 -1
  700. package/browser/find-options/FindOperatorType.js +3 -3
  701. package/browser/find-options/FindOperatorType.js.map +1 -1
  702. package/browser/find-options/FindOptionsOrder.d.ts +2 -2
  703. package/browser/find-options/FindOptionsOrder.js +3 -3
  704. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  705. package/browser/find-options/FindOptionsRelations.d.ts +2 -9
  706. package/browser/find-options/FindOptionsRelations.js +3 -3
  707. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  708. package/browser/find-options/FindOptionsSelect.d.ts +2 -9
  709. package/browser/find-options/FindOptionsSelect.js +3 -3
  710. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  711. package/browser/find-options/FindOptionsUtils.d.ts +46 -11
  712. package/browser/find-options/FindOptionsUtils.js +114 -28
  713. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  714. package/browser/find-options/FindOptionsWhere.d.ts +4 -4
  715. package/browser/find-options/FindOptionsWhere.js +3 -3
  716. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  717. package/browser/find-options/FindTreeOptions.js +3 -3
  718. package/browser/find-options/FindTreeOptions.js.map +1 -1
  719. package/browser/find-options/OrderByCondition.d.ts +0 -2
  720. package/browser/find-options/OrderByCondition.js +3 -3
  721. package/browser/find-options/OrderByCondition.js.map +1 -1
  722. package/browser/find-options/mongodb/MongoFindManyOptions.d.ts +1 -1
  723. package/browser/find-options/mongodb/MongoFindManyOptions.js +3 -3
  724. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  725. package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +2 -2
  726. package/browser/find-options/mongodb/MongoFindOneOptions.js +3 -3
  727. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  728. package/browser/find-options/operator/And.d.ts +4 -0
  729. package/browser/find-options/operator/And.js +11 -5
  730. package/browser/find-options/operator/And.js.map +1 -1
  731. package/browser/find-options/operator/Any.d.ts +1 -0
  732. package/browser/find-options/operator/Any.js +8 -5
  733. package/browser/find-options/operator/Any.js.map +1 -1
  734. package/browser/find-options/operator/ArrayContainedBy.d.ts +1 -0
  735. package/browser/find-options/operator/ArrayContainedBy.js +8 -5
  736. package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
  737. package/browser/find-options/operator/ArrayContains.d.ts +1 -0
  738. package/browser/find-options/operator/ArrayContains.js +8 -5
  739. package/browser/find-options/operator/ArrayContains.js.map +1 -1
  740. package/browser/find-options/operator/ArrayOverlap.d.ts +1 -0
  741. package/browser/find-options/operator/ArrayOverlap.js +8 -5
  742. package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
  743. package/browser/find-options/operator/Between.d.ts +2 -0
  744. package/browser/find-options/operator/Between.js +9 -5
  745. package/browser/find-options/operator/Between.js.map +1 -1
  746. package/browser/find-options/operator/Equal.d.ts +2 -1
  747. package/browser/find-options/operator/Equal.js +8 -5
  748. package/browser/find-options/operator/Equal.js.map +1 -1
  749. package/browser/find-options/operator/ILike.d.ts +1 -0
  750. package/browser/find-options/operator/ILike.js +8 -5
  751. package/browser/find-options/operator/ILike.js.map +1 -1
  752. package/browser/find-options/operator/In.d.ts +1 -0
  753. package/browser/find-options/operator/In.js +8 -5
  754. package/browser/find-options/operator/In.js.map +1 -1
  755. package/browser/find-options/operator/IsNull.js +7 -5
  756. package/browser/find-options/operator/IsNull.js.map +1 -1
  757. package/browser/find-options/operator/JsonContains.d.ts +1 -0
  758. package/browser/find-options/operator/JsonContains.js +8 -5
  759. package/browser/find-options/operator/JsonContains.js.map +1 -1
  760. package/browser/find-options/operator/LessThan.d.ts +1 -0
  761. package/browser/find-options/operator/LessThan.js +8 -5
  762. package/browser/find-options/operator/LessThan.js.map +1 -1
  763. package/browser/find-options/operator/LessThanOrEqual.d.ts +1 -0
  764. package/browser/find-options/operator/LessThanOrEqual.js +8 -5
  765. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  766. package/browser/find-options/operator/Like.d.ts +1 -0
  767. package/browser/find-options/operator/Like.js +8 -5
  768. package/browser/find-options/operator/Like.js.map +1 -1
  769. package/browser/find-options/operator/MoreThan.d.ts +1 -0
  770. package/browser/find-options/operator/MoreThan.js +8 -5
  771. package/browser/find-options/operator/MoreThan.js.map +1 -1
  772. package/browser/find-options/operator/MoreThanOrEqual.d.ts +1 -0
  773. package/browser/find-options/operator/MoreThanOrEqual.js +8 -5
  774. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  775. package/browser/find-options/operator/Not.d.ts +1 -0
  776. package/browser/find-options/operator/Not.js +8 -5
  777. package/browser/find-options/operator/Not.js.map +1 -1
  778. package/browser/find-options/operator/Or.d.ts +4 -0
  779. package/browser/find-options/operator/Or.js +11 -5
  780. package/browser/find-options/operator/Or.js.map +1 -1
  781. package/browser/find-options/operator/Raw.d.ts +5 -1
  782. package/browser/find-options/operator/Raw.js +8 -6
  783. package/browser/find-options/operator/Raw.js.map +1 -1
  784. package/browser/globals.d.ts +2 -114
  785. package/browser/globals.js +17 -163
  786. package/browser/globals.js.map +1 -1
  787. package/browser/index.d.ts +62 -69
  788. package/browser/index.js +141 -161
  789. package/browser/index.js.map +1 -1
  790. package/browser/logger/AbstractLogger.d.ts +26 -3
  791. package/browser/logger/AbstractLogger.js +32 -6
  792. package/browser/logger/AbstractLogger.js.map +1 -1
  793. package/browser/logger/AdvancedConsoleLogger.d.ts +5 -2
  794. package/browser/logger/AdvancedConsoleLogger.js +18 -12
  795. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  796. package/browser/logger/DebugLogger.d.ts +6 -2
  797. package/browser/logger/DebugLogger.js +21 -14
  798. package/browser/logger/DebugLogger.js.map +1 -1
  799. package/browser/logger/FileLogger.d.ts +7 -3
  800. package/browser/logger/FileLogger.js +17 -9
  801. package/browser/logger/FileLogger.js.map +1 -1
  802. package/browser/logger/FormattedConsoleLogger.d.ts +5 -2
  803. package/browser/logger/FormattedConsoleLogger.js +18 -12
  804. package/browser/logger/FormattedConsoleLogger.js.map +1 -1
  805. package/browser/logger/Logger.d.ts +1 -1
  806. package/browser/logger/Logger.js +3 -3
  807. package/browser/logger/Logger.js.map +1 -1
  808. package/browser/logger/LoggerFactory.d.ts +4 -2
  809. package/browser/logger/LoggerFactory.js +21 -16
  810. package/browser/logger/LoggerFactory.js.map +1 -1
  811. package/browser/logger/LoggerOptions.d.ts +1 -1
  812. package/browser/logger/LoggerOptions.js +3 -3
  813. package/browser/logger/LoggerOptions.js.map +1 -1
  814. package/browser/logger/SimpleConsoleLogger.d.ts +5 -2
  815. package/browser/logger/SimpleConsoleLogger.js +10 -4
  816. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  817. package/browser/metadata/CheckMetadata.d.ts +4 -3
  818. package/browser/metadata/CheckMetadata.js +7 -3
  819. package/browser/metadata/CheckMetadata.js.map +1 -1
  820. package/browser/metadata/ColumnMetadata.d.ts +24 -23
  821. package/browser/metadata/ColumnMetadata.js +85 -74
  822. package/browser/metadata/ColumnMetadata.js.map +1 -1
  823. package/browser/metadata/EmbeddedMetadata.d.ts +14 -22
  824. package/browser/metadata/EmbeddedMetadata.js +11 -18
  825. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  826. package/browser/metadata/EntityListenerMetadata.d.ts +9 -5
  827. package/browser/metadata/EntityListenerMetadata.js +10 -3
  828. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  829. package/browser/metadata/EntityMetadata.d.ts +60 -35
  830. package/browser/metadata/EntityMetadata.js +71 -57
  831. package/browser/metadata/EntityMetadata.js.map +1 -1
  832. package/browser/metadata/ExclusionMetadata.d.ts +9 -3
  833. package/browser/metadata/ExclusionMetadata.js +8 -3
  834. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  835. package/browser/metadata/ForeignKeyMetadata.d.ts +7 -6
  836. package/browser/metadata/ForeignKeyMetadata.js +7 -3
  837. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  838. package/browser/metadata/IndexMetadata.d.ts +13 -5
  839. package/browser/metadata/IndexMetadata.js +27 -10
  840. package/browser/metadata/IndexMetadata.js.map +1 -1
  841. package/browser/metadata/RelationIdMetadata.d.ts +6 -5
  842. package/browser/metadata/RelationIdMetadata.js +9 -5
  843. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  844. package/browser/metadata/RelationMetadata.d.ts +27 -16
  845. package/browser/metadata/RelationMetadata.js +29 -15
  846. package/browser/metadata/RelationMetadata.js.map +1 -1
  847. package/browser/metadata/UniqueMetadata.d.ts +7 -6
  848. package/browser/metadata/UniqueMetadata.js +19 -9
  849. package/browser/metadata/UniqueMetadata.js.map +1 -1
  850. package/browser/metadata/types/ClosureTreeOptions.d.ts +1 -1
  851. package/browser/metadata/types/ClosureTreeOptions.js +3 -3
  852. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
  853. package/browser/metadata/types/DeferrableType.js +3 -3
  854. package/browser/metadata/types/DeferrableType.js.map +1 -1
  855. package/browser/metadata/types/EventListenerTypes.js +17 -14
  856. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  857. package/browser/metadata/types/OnDeleteType.js +3 -3
  858. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  859. package/browser/metadata/types/OnUpdateType.js +3 -3
  860. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  861. package/browser/metadata/types/PropertyTypeInFunction.js +3 -3
  862. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  863. package/browser/metadata/types/RelationTypeInFunction.d.ts +1 -1
  864. package/browser/metadata/types/RelationTypeInFunction.js +3 -3
  865. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  866. package/browser/metadata/types/RelationTypes.js +3 -3
  867. package/browser/metadata/types/RelationTypes.js.map +1 -1
  868. package/browser/metadata/types/TableTypes.js +3 -3
  869. package/browser/metadata/types/TableTypes.js.map +1 -1
  870. package/browser/metadata/types/TreeTypes.js +3 -3
  871. package/browser/metadata/types/TreeTypes.js.map +1 -1
  872. package/browser/metadata-args/CheckMetadataArgs.js +3 -3
  873. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  874. package/browser/metadata-args/ColumnMetadataArgs.d.ts +2 -2
  875. package/browser/metadata-args/ColumnMetadataArgs.js +3 -3
  876. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  877. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +3 -3
  878. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  879. package/browser/metadata-args/EmbeddedMetadataArgs.js +3 -3
  880. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  881. package/browser/metadata-args/EntityListenerMetadataArgs.d.ts +1 -1
  882. package/browser/metadata-args/EntityListenerMetadataArgs.js +3 -3
  883. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  884. package/browser/metadata-args/EntitySubscriberMetadataArgs.js +3 -3
  885. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  886. package/browser/metadata-args/ExclusionMetadataArgs.d.ts +5 -0
  887. package/browser/metadata-args/ExclusionMetadataArgs.js +3 -3
  888. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  889. package/browser/metadata-args/ForeignKeyMetadataArgs.d.ts +5 -5
  890. package/browser/metadata-args/ForeignKeyMetadataArgs.js +3 -3
  891. package/browser/metadata-args/ForeignKeyMetadataArgs.js.map +1 -1
  892. package/browser/metadata-args/GeneratedMetadataArgs.js +3 -3
  893. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  894. package/browser/metadata-args/IndexMetadataArgs.d.ts +7 -0
  895. package/browser/metadata-args/IndexMetadataArgs.js +3 -3
  896. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  897. package/browser/metadata-args/InheritanceMetadataArgs.d.ts +1 -1
  898. package/browser/metadata-args/InheritanceMetadataArgs.js +3 -3
  899. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  900. package/browser/metadata-args/JoinColumnMetadataArgs.js +3 -3
  901. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  902. package/browser/metadata-args/JoinTableMetadataArgs.d.ts +1 -1
  903. package/browser/metadata-args/JoinTableMetadataArgs.js +3 -3
  904. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  905. package/browser/metadata-args/MetadataArgsStorage.d.ts +29 -27
  906. package/browser/metadata-args/MetadataArgsStorage.js +16 -10
  907. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  908. package/browser/metadata-args/NamingStrategyMetadataArgs.js +3 -3
  909. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  910. package/browser/metadata-args/RelationIdMetadataArgs.d.ts +1 -1
  911. package/browser/metadata-args/RelationIdMetadataArgs.js +3 -3
  912. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  913. package/browser/metadata-args/RelationMetadataArgs.d.ts +4 -4
  914. package/browser/metadata-args/RelationMetadataArgs.js +3 -3
  915. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  916. package/browser/metadata-args/TableMetadataArgs.d.ts +5 -4
  917. package/browser/metadata-args/TableMetadataArgs.js +3 -3
  918. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  919. package/browser/metadata-args/TransactionEntityMetadataArgs.d.ts +1 -1
  920. package/browser/metadata-args/TransactionEntityMetadataArgs.js +3 -3
  921. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  922. package/browser/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
  923. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +3 -3
  924. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  925. package/browser/metadata-args/TreeMetadataArgs.d.ts +2 -2
  926. package/browser/metadata-args/TreeMetadataArgs.js +3 -3
  927. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  928. package/browser/metadata-args/UniqueMetadataArgs.d.ts +1 -1
  929. package/browser/metadata-args/UniqueMetadataArgs.js +3 -3
  930. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  931. package/browser/metadata-args/types/ColumnMode.js +3 -3
  932. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  933. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +4 -3
  934. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +27 -28
  935. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  936. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +16 -6
  937. package/browser/metadata-builder/EntityMetadataBuilder.js +119 -126
  938. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  939. package/browser/metadata-builder/EntityMetadataValidator.d.ts +9 -2
  940. package/browser/metadata-builder/EntityMetadataValidator.js +42 -37
  941. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  942. package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +11 -5
  943. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +53 -52
  944. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  945. package/browser/metadata-builder/MetadataUtils.d.ts +5 -0
  946. package/browser/metadata-builder/MetadataUtils.js +11 -3
  947. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  948. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +24 -12
  949. package/browser/metadata-builder/RelationJoinColumnBuilder.js +46 -34
  950. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  951. package/browser/migration/Migration.d.ts +1 -1
  952. package/browser/migration/Migration.js +6 -3
  953. package/browser/migration/Migration.js.map +1 -1
  954. package/browser/migration/MigrationExecutor.d.ts +16 -9
  955. package/browser/migration/MigrationExecutor.js +95 -79
  956. package/browser/migration/MigrationExecutor.js.map +1 -1
  957. package/browser/migration/MigrationInterface.d.ts +1 -1
  958. package/browser/migration/MigrationInterface.js +3 -3
  959. package/browser/migration/MigrationInterface.js.map +1 -1
  960. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +5 -5
  961. package/browser/naming-strategy/DefaultNamingStrategy.js +24 -21
  962. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  963. package/browser/naming-strategy/LegacyOracleNamingStrategy.d.ts +1 -1
  964. package/browser/naming-strategy/LegacyOracleNamingStrategy.js +12 -9
  965. package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  966. package/browser/naming-strategy/NamingStrategyInterface.d.ts +3 -5
  967. package/browser/naming-strategy/NamingStrategyInterface.js +3 -3
  968. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  969. package/browser/persistence/EntityPersistExecutor.d.ts +7 -7
  970. package/browser/persistence/EntityPersistExecutor.js +32 -29
  971. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  972. package/browser/persistence/Subject.d.ts +5 -5
  973. package/browser/persistence/Subject.js +13 -9
  974. package/browser/persistence/Subject.js.map +1 -1
  975. package/browser/persistence/SubjectChangeMap.d.ts +3 -3
  976. package/browser/persistence/SubjectChangeMap.js +3 -3
  977. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  978. package/browser/persistence/SubjectChangedColumnsComputer.d.ts +5 -1
  979. package/browser/persistence/SubjectChangedColumnsComputer.js +48 -36
  980. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  981. package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +3 -2
  982. package/browser/persistence/SubjectDatabaseEntityLoader.js +15 -8
  983. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  984. package/browser/persistence/SubjectExecutor.d.ts +7 -4
  985. package/browser/persistence/SubjectExecutor.js +63 -49
  986. package/browser/persistence/SubjectExecutor.js.map +1 -1
  987. package/browser/persistence/SubjectTopologicalSorter.d.ts +6 -2
  988. package/browser/persistence/SubjectTopologicalSorter.js +23 -6
  989. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  990. package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +5 -1
  991. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +14 -7
  992. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  993. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +16 -6
  994. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +29 -16
  995. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  996. package/browser/persistence/subject-builder/OneToManySubjectBuilder.d.ts +14 -7
  997. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +26 -16
  998. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  999. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +14 -7
  1000. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +24 -14
  1001. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1002. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +6 -2
  1003. package/browser/persistence/tree/ClosureSubjectExecutor.js +24 -17
  1004. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1005. package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +4 -2
  1006. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +17 -11
  1007. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1008. package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +10 -4
  1009. package/browser/persistence/tree/NestedSetSubjectExecutor.js +25 -16
  1010. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1011. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +0 -11
  1012. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +10 -22
  1013. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -1
  1014. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +0 -4
  1015. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +5 -9
  1016. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -1
  1017. package/browser/platform/BrowserDisabledDriversDummy.d.ts +0 -6
  1018. package/browser/platform/BrowserDisabledDriversDummy.js +30 -21
  1019. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  1020. package/browser/platform/BrowserFileLoggerDummy.js +8 -4
  1021. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -1
  1022. package/browser/platform/BrowserPlatformTools.d.ts +7 -5
  1023. package/browser/platform/BrowserPlatformTools.js +16 -33
  1024. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  1025. package/browser/platform/PlatformTools.d.ts +12 -11
  1026. package/browser/platform/PlatformTools.js +62 -65
  1027. package/browser/platform/PlatformTools.js.map +1 -1
  1028. package/browser/query-builder/Alias.d.ts +1 -1
  1029. package/browser/query-builder/Alias.js +10 -7
  1030. package/browser/query-builder/Alias.js.map +1 -1
  1031. package/browser/query-builder/Brackets.d.ts +2 -1
  1032. package/browser/query-builder/Brackets.js +7 -3
  1033. package/browser/query-builder/Brackets.js.map +1 -1
  1034. package/browser/query-builder/DeleteQueryBuilder.d.ts +17 -6
  1035. package/browser/query-builder/DeleteQueryBuilder.js +29 -13
  1036. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  1037. package/browser/query-builder/InsertOrUpdateOptions.d.ts +3 -3
  1038. package/browser/query-builder/InsertOrUpdateOptions.js +3 -3
  1039. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  1040. package/browser/query-builder/InsertQueryBuilder.d.ts +34 -29
  1041. package/browser/query-builder/InsertQueryBuilder.js +320 -187
  1042. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  1043. package/browser/query-builder/JoinAttribute.d.ts +7 -7
  1044. package/browser/query-builder/JoinAttribute.js +25 -33
  1045. package/browser/query-builder/JoinAttribute.js.map +1 -1
  1046. package/browser/query-builder/JoinOptions.js +3 -3
  1047. package/browser/query-builder/JoinOptions.js.map +1 -1
  1048. package/browser/query-builder/NotBrackets.js +7 -4
  1049. package/browser/query-builder/NotBrackets.js.map +1 -1
  1050. package/browser/query-builder/QueryBuilder.d.ts +51 -33
  1051. package/browser/query-builder/QueryBuilder.js +120 -127
  1052. package/browser/query-builder/QueryBuilder.js.map +1 -1
  1053. package/browser/query-builder/QueryBuilderCte.js +3 -3
  1054. package/browser/query-builder/QueryBuilderCte.js.map +1 -1
  1055. package/browser/query-builder/QueryBuilderUtils.d.ts +1 -0
  1056. package/browser/query-builder/QueryBuilderUtils.js +7 -3
  1057. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  1058. package/browser/query-builder/QueryExpressionMap.d.ts +29 -30
  1059. package/browser/query-builder/QueryExpressionMap.js +36 -39
  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 +3 -3
  1063. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  1064. package/browser/query-builder/RelationIdLoader.d.ts +39 -11
  1065. package/browser/query-builder/RelationIdLoader.js +106 -65
  1066. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  1067. package/browser/query-builder/RelationLoader.d.ts +49 -14
  1068. package/browser/query-builder/RelationLoader.js +86 -28
  1069. package/browser/query-builder/RelationLoader.js.map +1 -1
  1070. package/browser/query-builder/RelationQueryBuilder.d.ts +7 -11
  1071. package/browser/query-builder/RelationQueryBuilder.js +33 -34
  1072. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  1073. package/browser/query-builder/RelationRemover.d.ts +3 -2
  1074. package/browser/query-builder/RelationRemover.js +12 -8
  1075. package/browser/query-builder/RelationRemover.js.map +1 -1
  1076. package/browser/query-builder/RelationUpdater.d.ts +3 -2
  1077. package/browser/query-builder/RelationUpdater.js +17 -13
  1078. package/browser/query-builder/RelationUpdater.js.map +1 -1
  1079. package/browser/query-builder/ReturningOption.d.ts +4 -0
  1080. package/browser/query-builder/ReturningOption.js +3 -0
  1081. package/browser/query-builder/ReturningOption.js.map +1 -0
  1082. package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +10 -6
  1083. package/browser/query-builder/ReturningResultsEntityUpdator.js +21 -14
  1084. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1085. package/browser/query-builder/SelectQuery.js +3 -3
  1086. package/browser/query-builder/SelectQuery.js.map +1 -1
  1087. package/browser/query-builder/SelectQueryBuilder.d.ts +71 -33
  1088. package/browser/query-builder/SelectQueryBuilder.js +418 -338
  1089. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  1090. package/browser/query-builder/SelectQueryBuilderOption.js +3 -3
  1091. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  1092. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +24 -7
  1093. package/browser/query-builder/SoftDeleteQueryBuilder.js +61 -31
  1094. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1095. package/browser/query-builder/UpdateQueryBuilder.d.ts +23 -7
  1096. package/browser/query-builder/UpdateQueryBuilder.js +75 -49
  1097. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  1098. package/browser/query-builder/WhereClause.js +3 -3
  1099. package/browser/query-builder/WhereClause.js.map +1 -1
  1100. package/browser/query-builder/WhereExpressionBuilder.d.ts +2 -7
  1101. package/browser/query-builder/WhereExpressionBuilder.js +3 -3
  1102. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  1103. package/browser/query-builder/index.d.ts +3 -0
  1104. package/browser/query-builder/index.js +21 -16
  1105. package/browser/query-builder/index.js.map +1 -1
  1106. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +4 -4
  1107. package/browser/query-builder/relation-id/RelationIdAttribute.js +17 -14
  1108. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1109. package/browser/query-builder/relation-id/RelationIdLoadResult.d.ts +1 -1
  1110. package/browser/query-builder/relation-id/RelationIdLoadResult.js +3 -3
  1111. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  1112. package/browser/query-builder/relation-id/RelationIdLoader.d.ts +6 -6
  1113. package/browser/query-builder/relation-id/RelationIdLoader.js +22 -19
  1114. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1115. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.d.ts +1 -1
  1116. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +8 -5
  1117. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1118. package/browser/query-builder/result/DeleteResult.d.ts +1 -1
  1119. package/browser/query-builder/result/DeleteResult.js +6 -3
  1120. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  1121. package/browser/query-builder/result/InsertResult.d.ts +2 -2
  1122. package/browser/query-builder/result/InsertResult.js +6 -3
  1123. package/browser/query-builder/result/InsertResult.js.map +1 -1
  1124. package/browser/query-builder/result/UpdateResult.d.ts +2 -2
  1125. package/browser/query-builder/result/UpdateResult.js +6 -3
  1126. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  1127. package/browser/query-builder/transformer/DocumentToEntityTransformer.d.ts +3 -3
  1128. package/browser/query-builder/transformer/DocumentToEntityTransformer.js +7 -74
  1129. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1130. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.d.ts +3 -3
  1131. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +22 -8
  1132. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1133. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +6 -2
  1134. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +13 -6
  1135. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1136. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +22 -11
  1137. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +57 -59
  1138. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1139. package/browser/query-runner/BaseQueryRunner.d.ts +79 -16
  1140. package/browser/query-runner/BaseQueryRunner.js +120 -54
  1141. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  1142. package/browser/query-runner/QueryLock.js +9 -4
  1143. package/browser/query-runner/QueryLock.js.map +1 -1
  1144. package/browser/query-runner/QueryResult.js +6 -3
  1145. package/browser/query-runner/QueryResult.js.map +1 -1
  1146. package/browser/query-runner/QueryRunner.d.ts +52 -56
  1147. package/browser/query-runner/QueryRunner.js +3 -3
  1148. package/browser/query-runner/QueryRunner.js.map +1 -1
  1149. package/browser/repository/BaseEntity.d.ts +64 -44
  1150. package/browser/repository/BaseEntity.js +61 -34
  1151. package/browser/repository/BaseEntity.js.map +1 -1
  1152. package/browser/repository/EntityId.d.ts +1 -1
  1153. package/browser/repository/EntityId.js +3 -3
  1154. package/browser/repository/EntityId.js.map +1 -1
  1155. package/browser/repository/FindTreesOptions.js +3 -3
  1156. package/browser/repository/FindTreesOptions.js.map +1 -1
  1157. package/browser/repository/MongoRepository.d.ts +79 -29
  1158. package/browser/repository/MongoRepository.js +80 -31
  1159. package/browser/repository/MongoRepository.js.map +1 -1
  1160. package/browser/repository/RemoveOptions.js +3 -3
  1161. package/browser/repository/RemoveOptions.js.map +1 -1
  1162. package/browser/repository/Repository.d.ts +75 -52
  1163. package/browser/repository/Repository.js +76 -50
  1164. package/browser/repository/Repository.js.map +1 -1
  1165. package/browser/repository/SaveOptions.js +3 -3
  1166. package/browser/repository/SaveOptions.js.map +1 -1
  1167. package/browser/repository/TreeRepository.d.ts +21 -4
  1168. package/browser/repository/TreeRepository.js +48 -28
  1169. package/browser/repository/TreeRepository.js.map +1 -1
  1170. package/browser/repository/UpdateOptions.d.ts +11 -0
  1171. package/browser/repository/UpdateOptions.js +3 -0
  1172. package/browser/repository/UpdateOptions.js.map +1 -0
  1173. package/browser/repository/UpsertOptions.d.ts +8 -2
  1174. package/browser/repository/UpsertOptions.js +3 -3
  1175. package/browser/repository/UpsertOptions.js.map +1 -1
  1176. package/browser/schema-builder/MongoSchemaBuilder.d.ts +4 -4
  1177. package/browser/schema-builder/MongoSchemaBuilder.js +12 -9
  1178. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1179. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +29 -9
  1180. package/browser/schema-builder/RdbmsSchemaBuilder.js +202 -180
  1181. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1182. package/browser/schema-builder/SchemaBuilder.d.ts +1 -1
  1183. package/browser/schema-builder/SchemaBuilder.js +3 -3
  1184. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  1185. package/browser/schema-builder/options/TableCheckOptions.js +3 -3
  1186. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  1187. package/browser/schema-builder/options/TableColumnOptions.d.ts +0 -10
  1188. package/browser/schema-builder/options/TableColumnOptions.js +3 -3
  1189. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  1190. package/browser/schema-builder/options/TableExclusionOptions.d.ts +5 -0
  1191. package/browser/schema-builder/options/TableExclusionOptions.js +3 -3
  1192. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  1193. package/browser/schema-builder/options/TableForeignKeyOptions.js +3 -3
  1194. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1195. package/browser/schema-builder/options/TableIndexOptions.d.ts +7 -0
  1196. package/browser/schema-builder/options/TableIndexOptions.js +3 -3
  1197. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  1198. package/browser/schema-builder/options/TableIndexTypes.d.ts +1 -0
  1199. package/browser/schema-builder/options/TableIndexTypes.js +3 -0
  1200. package/browser/schema-builder/options/TableIndexTypes.js.map +1 -0
  1201. package/browser/schema-builder/options/TableOptions.d.ts +6 -6
  1202. package/browser/schema-builder/options/TableOptions.js +3 -3
  1203. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  1204. package/browser/schema-builder/options/TableUniqueOptions.js +3 -3
  1205. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  1206. package/browser/schema-builder/options/ViewOptions.d.ts +3 -2
  1207. package/browser/schema-builder/options/ViewOptions.js +3 -3
  1208. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  1209. package/browser/schema-builder/table/Table.d.ts +23 -3
  1210. package/browser/schema-builder/table/Table.js +44 -21
  1211. package/browser/schema-builder/table/Table.js.map +1 -1
  1212. package/browser/schema-builder/table/TableCheck.d.ts +3 -2
  1213. package/browser/schema-builder/table/TableCheck.js +7 -3
  1214. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  1215. package/browser/schema-builder/table/TableColumn.d.ts +1 -11
  1216. package/browser/schema-builder/table/TableColumn.js +7 -13
  1217. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  1218. package/browser/schema-builder/table/TableExclusion.d.ts +8 -2
  1219. package/browser/schema-builder/table/TableExclusion.js +10 -3
  1220. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  1221. package/browser/schema-builder/table/TableForeignKey.d.ts +5 -3
  1222. package/browser/schema-builder/table/TableForeignKey.js +8 -3
  1223. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  1224. package/browser/schema-builder/table/TableIndex.d.ts +10 -2
  1225. package/browser/schema-builder/table/TableIndex.js +10 -3
  1226. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  1227. package/browser/schema-builder/table/TableUnique.d.ts +3 -2
  1228. package/browser/schema-builder/table/TableUnique.js +7 -3
  1229. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  1230. package/browser/schema-builder/util/TableUtils.d.ts +3 -3
  1231. package/browser/schema-builder/util/TableUtils.js +6 -5
  1232. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  1233. package/browser/schema-builder/util/ViewUtils.d.ts +3 -1
  1234. package/browser/schema-builder/util/ViewUtils.js +8 -3
  1235. package/browser/schema-builder/util/ViewUtils.js.map +1 -1
  1236. package/browser/schema-builder/view/View.d.ts +11 -3
  1237. package/browser/schema-builder/view/View.js +10 -3
  1238. package/browser/schema-builder/view/View.js.map +1 -1
  1239. package/browser/subscriber/Broadcaster.d.ts +76 -10
  1240. package/browser/subscriber/Broadcaster.js +157 -71
  1241. package/browser/subscriber/Broadcaster.js.map +1 -1
  1242. package/browser/subscriber/BroadcasterResult.js +6 -3
  1243. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  1244. package/browser/subscriber/EntitySubscriberInterface.d.ts +12 -12
  1245. package/browser/subscriber/EntitySubscriberInterface.js +3 -3
  1246. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  1247. package/browser/subscriber/event/BaseEvent.d.ts +27 -0
  1248. package/browser/subscriber/event/BaseEvent.js +3 -0
  1249. package/browser/subscriber/event/BaseEvent.js.map +1 -0
  1250. package/browser/subscriber/event/InsertEvent.d.ts +4 -20
  1251. package/browser/subscriber/event/InsertEvent.js +3 -3
  1252. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  1253. package/browser/subscriber/event/LoadEvent.d.ts +3 -19
  1254. package/browser/subscriber/event/LoadEvent.js +3 -3
  1255. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  1256. package/browser/subscriber/event/QueryEvent.d.ts +4 -20
  1257. package/browser/subscriber/event/QueryEvent.js +3 -3
  1258. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  1259. package/browser/subscriber/event/RecoverEvent.d.ts +1 -1
  1260. package/browser/subscriber/event/RecoverEvent.js +3 -3
  1261. package/browser/subscriber/event/RecoverEvent.js.map +1 -1
  1262. package/browser/subscriber/event/RemoveEvent.d.ts +3 -19
  1263. package/browser/subscriber/event/RemoveEvent.js +3 -3
  1264. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  1265. package/browser/subscriber/event/SoftRemoveEvent.d.ts +1 -1
  1266. package/browser/subscriber/event/SoftRemoveEvent.js +3 -3
  1267. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
  1268. package/browser/subscriber/event/TransactionCommitEvent.d.ts +2 -18
  1269. package/browser/subscriber/event/TransactionCommitEvent.js +3 -3
  1270. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
  1271. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +2 -18
  1272. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -3
  1273. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  1274. package/browser/subscriber/event/TransactionStartEvent.d.ts +2 -18
  1275. package/browser/subscriber/event/TransactionStartEvent.js +3 -3
  1276. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
  1277. package/browser/subscriber/event/UpdateEvent.d.ts +6 -22
  1278. package/browser/subscriber/event/UpdateEvent.js +3 -3
  1279. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  1280. package/browser/util/ApplyValueTransformers.d.ts +1 -1
  1281. package/browser/util/ApplyValueTransformers.js +11 -3
  1282. package/browser/util/ApplyValueTransformers.js.map +1 -1
  1283. package/browser/util/DateUtils.d.ts +36 -1
  1284. package/browser/util/DateUtils.js +63 -11
  1285. package/browser/util/DateUtils.js.map +1 -1
  1286. package/browser/util/DepGraph.d.ts +16 -0
  1287. package/browser/util/DepGraph.js +30 -12
  1288. package/browser/util/DepGraph.js.map +1 -1
  1289. package/browser/util/DirectoryExportedClassesLoader.d.ts +4 -5
  1290. package/browser/util/DirectoryExportedClassesLoader.js +23 -24
  1291. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  1292. package/browser/util/ImportUtils.d.ts +4 -0
  1293. package/browser/util/ImportUtils.js +28 -12
  1294. package/browser/util/ImportUtils.js.map +1 -1
  1295. package/browser/util/InstanceChecker.d.ts +2 -2
  1296. package/browser/util/InstanceChecker.js +6 -3
  1297. package/browser/util/InstanceChecker.js.map +1 -1
  1298. package/browser/util/ObjectUtils.d.ts +4 -1
  1299. package/browser/util/ObjectUtils.js +9 -3
  1300. package/browser/util/ObjectUtils.js.map +1 -1
  1301. package/browser/util/OrmUtils.d.ts +43 -4
  1302. package/browser/util/OrmUtils.js +119 -20
  1303. package/browser/util/OrmUtils.js.map +1 -1
  1304. package/browser/util/PathUtils.d.ts +6 -0
  1305. package/browser/util/PathUtils.js +17 -7
  1306. package/browser/util/PathUtils.js.map +1 -1
  1307. package/browser/util/RandomGenerator.d.ts +9 -0
  1308. package/browser/util/RandomGenerator.js +107 -69
  1309. package/browser/util/RandomGenerator.js.map +1 -1
  1310. package/browser/util/SqlTagUtils.d.ts +8 -1
  1311. package/browser/util/SqlTagUtils.js +15 -5
  1312. package/browser/util/SqlTagUtils.js.map +1 -1
  1313. package/browser/util/StringUtils.d.ts +13 -8
  1314. package/browser/util/StringUtils.js +50 -22
  1315. package/browser/util/StringUtils.js.map +1 -1
  1316. package/browser/util/TreeRepositoryUtils.d.ts +3 -3
  1317. package/browser/util/TreeRepositoryUtils.js +8 -5
  1318. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  1319. package/browser/util/Uint8ArrayUtils.d.ts +3 -0
  1320. package/browser/util/Uint8ArrayUtils.js +45 -0
  1321. package/browser/util/Uint8ArrayUtils.js.map +1 -0
  1322. package/browser/util/VersionUtils.js +10 -3
  1323. package/browser/util/VersionUtils.js.map +1 -1
  1324. package/browser/util/escapeRegExp.js +6 -3
  1325. package/browser/util/escapeRegExp.js.map +1 -1
  1326. package/cache/DbQueryResultCache.d.ts +17 -6
  1327. package/cache/DbQueryResultCache.js +31 -21
  1328. package/cache/DbQueryResultCache.js.map +1 -1
  1329. package/cache/QueryResultCache.d.ts +2 -2
  1330. package/cache/QueryResultCache.js +1 -2
  1331. package/cache/QueryResultCache.js.map +1 -1
  1332. package/cache/QueryResultCacheFactory.d.ts +4 -4
  1333. package/cache/QueryResultCacheFactory.js +8 -9
  1334. package/cache/QueryResultCacheFactory.js.map +1 -1
  1335. package/cache/QueryResultCacheOptions.js +1 -2
  1336. package/cache/QueryResultCacheOptions.js.map +1 -1
  1337. package/cache/RedisQueryResultCache.d.ts +18 -19
  1338. package/cache/RedisQueryResultCache.js +43 -123
  1339. package/cache/RedisQueryResultCache.js.map +1 -1
  1340. package/cli-ts-node-commonjs.js +1 -2
  1341. package/cli-ts-node-commonjs.js.map +1 -1
  1342. package/cli-ts-node-esm.js +1 -2
  1343. package/cli-ts-node-esm.js.map +1 -1
  1344. package/cli.js +19 -19
  1345. package/cli.js.map +1 -1
  1346. package/commands/CacheClearCommand.d.ts +1 -1
  1347. package/commands/CacheClearCommand.js +1 -2
  1348. package/commands/CacheClearCommand.js.map +1 -1
  1349. package/commands/CommandUtils.d.ts +7 -1
  1350. package/commands/CommandUtils.js +10 -4
  1351. package/commands/CommandUtils.js.map +1 -1
  1352. package/commands/EntityCreateCommand.d.ts +2 -1
  1353. package/commands/EntityCreateCommand.js +2 -2
  1354. package/commands/EntityCreateCommand.js.map +1 -1
  1355. package/commands/InitCommand.d.ts +19 -2
  1356. package/commands/InitCommand.js +115 -85
  1357. package/commands/InitCommand.js.map +1 -1
  1358. package/commands/MigrationCreateCommand.d.ts +6 -1
  1359. package/commands/MigrationCreateCommand.js +6 -2
  1360. package/commands/MigrationCreateCommand.js.map +1 -1
  1361. package/commands/MigrationGenerateCommand.d.ts +12 -1
  1362. package/commands/MigrationGenerateCommand.js +13 -3
  1363. package/commands/MigrationGenerateCommand.js.map +1 -1
  1364. package/commands/MigrationRevertCommand.d.ts +1 -1
  1365. package/commands/MigrationRevertCommand.js +1 -2
  1366. package/commands/MigrationRevertCommand.js.map +1 -1
  1367. package/commands/MigrationRunCommand.d.ts +1 -1
  1368. package/commands/MigrationRunCommand.js +5 -6
  1369. package/commands/MigrationRunCommand.js.map +1 -1
  1370. package/commands/MigrationShowCommand.d.ts +1 -1
  1371. package/commands/MigrationShowCommand.js +1 -2
  1372. package/commands/MigrationShowCommand.js.map +1 -1
  1373. package/commands/QueryCommand.d.ts +1 -1
  1374. package/commands/QueryCommand.js +1 -2
  1375. package/commands/QueryCommand.js.map +1 -1
  1376. package/commands/SchemaDropCommand.d.ts +1 -1
  1377. package/commands/SchemaDropCommand.js +1 -2
  1378. package/commands/SchemaDropCommand.js.map +1 -1
  1379. package/commands/SchemaLogCommand.d.ts +1 -1
  1380. package/commands/SchemaLogCommand.js +1 -2
  1381. package/commands/SchemaLogCommand.js.map +1 -1
  1382. package/commands/SchemaSyncCommand.d.ts +1 -1
  1383. package/commands/SchemaSyncCommand.js +1 -2
  1384. package/commands/SchemaSyncCommand.js.map +1 -1
  1385. package/commands/SubscriberCreateCommand.d.ts +2 -1
  1386. package/commands/SubscriberCreateCommand.js +2 -2
  1387. package/commands/SubscriberCreateCommand.js.map +1 -1
  1388. package/commands/VersionCommand.d.ts +1 -1
  1389. package/commands/VersionCommand.js +1 -2
  1390. package/commands/VersionCommand.js.map +1 -1
  1391. package/common/DeepPartial.js +1 -2
  1392. package/common/DeepPartial.js.map +1 -1
  1393. package/common/EntityTarget.d.ts +2 -2
  1394. package/common/EntityTarget.js +1 -2
  1395. package/common/EntityTarget.js.map +1 -1
  1396. package/common/MixedList.js +1 -2
  1397. package/common/MixedList.js.map +1 -1
  1398. package/common/NonNever.d.ts +1 -1
  1399. package/common/NonNever.js +1 -2
  1400. package/common/NonNever.js.map +1 -1
  1401. package/common/ObjectLiteral.js +1 -2
  1402. package/common/ObjectLiteral.js.map +1 -1
  1403. package/common/ObjectType.js +1 -2
  1404. package/common/ObjectType.js.map +1 -1
  1405. package/common/PickKeysByType.js +1 -2
  1406. package/common/PickKeysByType.js.map +1 -1
  1407. package/common/PrimitiveCriteria.js +1 -2
  1408. package/common/PrimitiveCriteria.js.map +1 -1
  1409. package/common/RelationType.d.ts +5 -5
  1410. package/common/RelationType.js +1 -2
  1411. package/common/RelationType.js.map +1 -1
  1412. package/connection/ConnectionMetadataBuilder.d.ts +10 -7
  1413. package/connection/ConnectionMetadataBuilder.js +13 -12
  1414. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  1415. package/connection/ConnectionOptionsReader.d.ts +3 -11
  1416. package/connection/ConnectionOptionsReader.js +26 -59
  1417. package/connection/ConnectionOptionsReader.js.map +1 -1
  1418. package/data-source/BaseDataSourceOptions.d.ts +13 -20
  1419. package/data-source/BaseDataSourceOptions.js +1 -2
  1420. package/data-source/BaseDataSourceOptions.js.map +1 -1
  1421. package/data-source/DataSource.d.ts +50 -61
  1422. package/data-source/DataSource.js +38 -49
  1423. package/data-source/DataSource.js.map +1 -1
  1424. package/data-source/DataSourceOptions.d.ts +18 -19
  1425. package/data-source/DataSourceOptions.js +1 -2
  1426. package/data-source/DataSourceOptions.js.map +1 -1
  1427. package/data-source/index.d.ts +1 -1
  1428. package/data-source/index.js +1 -3
  1429. package/data-source/index.js.map +1 -1
  1430. package/decorator/Check.d.ts +3 -0
  1431. package/decorator/Check.js +3 -2
  1432. package/decorator/Check.js.map +1 -1
  1433. package/decorator/Exclusion.d.ts +8 -2
  1434. package/decorator/Exclusion.js +10 -5
  1435. package/decorator/Exclusion.js.map +1 -1
  1436. package/decorator/ForeignKey.d.ts +11 -2
  1437. package/decorator/ForeignKey.js +5 -2
  1438. package/decorator/ForeignKey.js.map +1 -1
  1439. package/decorator/Generated.d.ts +1 -0
  1440. package/decorator/Generated.js +2 -2
  1441. package/decorator/Generated.js.map +1 -1
  1442. package/decorator/Index.d.ts +17 -1
  1443. package/decorator/Index.js +5 -2
  1444. package/decorator/Index.js.map +1 -1
  1445. package/decorator/Unique.d.ts +11 -1
  1446. package/decorator/Unique.js +4 -2
  1447. package/decorator/Unique.js.map +1 -1
  1448. package/decorator/columns/Column.d.ts +31 -10
  1449. package/decorator/columns/Column.js +3 -2
  1450. package/decorator/columns/Column.js.map +1 -1
  1451. package/decorator/columns/CreateDateColumn.d.ts +2 -1
  1452. package/decorator/columns/CreateDateColumn.js +2 -2
  1453. package/decorator/columns/CreateDateColumn.js.map +1 -1
  1454. package/decorator/columns/DeleteDateColumn.d.ts +2 -1
  1455. package/decorator/columns/DeleteDateColumn.js +2 -2
  1456. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  1457. package/decorator/columns/ObjectIdColumn.d.ts +2 -1
  1458. package/decorator/columns/ObjectIdColumn.js +2 -2
  1459. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  1460. package/decorator/columns/PrimaryColumn.d.ts +5 -2
  1461. package/decorator/columns/PrimaryColumn.js +3 -2
  1462. package/decorator/columns/PrimaryColumn.js.map +1 -1
  1463. package/decorator/columns/PrimaryGeneratedColumn.d.ts +10 -3
  1464. package/decorator/columns/PrimaryGeneratedColumn.js +3 -2
  1465. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  1466. package/decorator/columns/UpdateDateColumn.d.ts +2 -1
  1467. package/decorator/columns/UpdateDateColumn.js +2 -2
  1468. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  1469. package/decorator/columns/VersionColumn.d.ts +2 -1
  1470. package/decorator/columns/VersionColumn.js +2 -2
  1471. package/decorator/columns/VersionColumn.js.map +1 -1
  1472. package/decorator/columns/ViewColumn.d.ts +2 -1
  1473. package/decorator/columns/ViewColumn.js +2 -2
  1474. package/decorator/columns/ViewColumn.js.map +1 -1
  1475. package/decorator/columns/VirtualColumn.d.ts +5 -2
  1476. package/decorator/columns/VirtualColumn.js +3 -2
  1477. package/decorator/columns/VirtualColumn.js.map +1 -1
  1478. package/decorator/entity/ChildEntity.d.ts +1 -0
  1479. package/decorator/entity/ChildEntity.js +2 -2
  1480. package/decorator/entity/ChildEntity.js.map +1 -1
  1481. package/decorator/entity/Entity.d.ts +4 -1
  1482. package/decorator/entity/Entity.js +3 -2
  1483. package/decorator/entity/Entity.js.map +1 -1
  1484. package/decorator/entity/TableInheritance.d.ts +4 -1
  1485. package/decorator/entity/TableInheritance.js +4 -2
  1486. package/decorator/entity/TableInheritance.js.map +1 -1
  1487. package/decorator/entity-view/ViewEntity.d.ts +4 -1
  1488. package/decorator/entity-view/ViewEntity.js +3 -2
  1489. package/decorator/entity-view/ViewEntity.js.map +1 -1
  1490. package/decorator/listeners/AfterInsert.js +1 -2
  1491. package/decorator/listeners/AfterInsert.js.map +1 -1
  1492. package/decorator/listeners/AfterLoad.js +1 -2
  1493. package/decorator/listeners/AfterLoad.js.map +1 -1
  1494. package/decorator/listeners/AfterRecover.js +1 -2
  1495. package/decorator/listeners/AfterRecover.js.map +1 -1
  1496. package/decorator/listeners/AfterRemove.js +1 -2
  1497. package/decorator/listeners/AfterRemove.js.map +1 -1
  1498. package/decorator/listeners/AfterSoftRemove.js +1 -2
  1499. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  1500. package/decorator/listeners/AfterUpdate.js +1 -2
  1501. package/decorator/listeners/AfterUpdate.js.map +1 -1
  1502. package/decorator/listeners/BeforeInsert.js +1 -2
  1503. package/decorator/listeners/BeforeInsert.js.map +1 -1
  1504. package/decorator/listeners/BeforeRecover.js +1 -2
  1505. package/decorator/listeners/BeforeRecover.js.map +1 -1
  1506. package/decorator/listeners/BeforeRemove.js +1 -2
  1507. package/decorator/listeners/BeforeRemove.js.map +1 -1
  1508. package/decorator/listeners/BeforeSoftRemove.js +1 -2
  1509. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  1510. package/decorator/listeners/BeforeUpdate.js +1 -2
  1511. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  1512. package/decorator/listeners/EventSubscriber.js +1 -2
  1513. package/decorator/listeners/EventSubscriber.js.map +1 -1
  1514. package/decorator/options/ColumnCommonOptions.d.ts +2 -2
  1515. package/decorator/options/ColumnCommonOptions.js +1 -2
  1516. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  1517. package/decorator/options/ColumnEmbeddedOptions.js +1 -2
  1518. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  1519. package/decorator/options/ColumnEnumOptions.js +1 -2
  1520. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  1521. package/decorator/options/ColumnHstoreOptions.js +1 -2
  1522. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  1523. package/decorator/options/ColumnNumericOptions.d.ts +0 -16
  1524. package/decorator/options/ColumnNumericOptions.js +1 -2
  1525. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  1526. package/decorator/options/ColumnOptions.d.ts +8 -33
  1527. package/decorator/options/ColumnOptions.js +1 -2
  1528. package/decorator/options/ColumnOptions.js.map +1 -1
  1529. package/decorator/options/ColumnUnsignedOptions.d.ts +1 -20
  1530. package/decorator/options/ColumnUnsignedOptions.js +1 -2
  1531. package/decorator/options/ColumnUnsignedOptions.js.map +1 -1
  1532. package/decorator/options/ColumnWithLengthOptions.js +1 -2
  1533. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  1534. package/decorator/options/EntityOptions.d.ts +1 -1
  1535. package/decorator/options/EntityOptions.js +1 -2
  1536. package/decorator/options/EntityOptions.js.map +1 -1
  1537. package/decorator/options/ExclusionOptions.d.ts +10 -0
  1538. package/decorator/options/ExclusionOptions.js +3 -0
  1539. package/decorator/options/ExclusionOptions.js.map +1 -0
  1540. package/decorator/options/ForeignKeyOptions.d.ts +3 -3
  1541. package/decorator/options/ForeignKeyOptions.js +1 -2
  1542. package/decorator/options/ForeignKeyOptions.js.map +1 -1
  1543. package/decorator/options/IndexOptions.d.ts +7 -0
  1544. package/decorator/options/IndexOptions.js +1 -2
  1545. package/decorator/options/IndexOptions.js.map +1 -1
  1546. package/decorator/options/JoinColumnOptions.js +1 -2
  1547. package/decorator/options/JoinColumnOptions.js.map +1 -1
  1548. package/decorator/options/JoinTableMultipleColumnsOptions.d.ts +1 -1
  1549. package/decorator/options/JoinTableMultipleColumnsOptions.js +1 -2
  1550. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  1551. package/decorator/options/JoinTableOptions.d.ts +1 -1
  1552. package/decorator/options/JoinTableOptions.js +1 -2
  1553. package/decorator/options/JoinTableOptions.js.map +1 -1
  1554. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +1 -1
  1555. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +1 -2
  1556. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  1557. package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +1 -9
  1558. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -2
  1559. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  1560. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -2
  1561. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  1562. package/decorator/options/RelationOptions.d.ts +3 -3
  1563. package/decorator/options/RelationOptions.js +1 -2
  1564. package/decorator/options/RelationOptions.js.map +1 -1
  1565. package/decorator/options/SpatialColumnOptions.d.ts +1 -1
  1566. package/decorator/options/SpatialColumnOptions.js +1 -2
  1567. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  1568. package/decorator/options/TransactionOptions.d.ts +1 -1
  1569. package/decorator/options/TransactionOptions.js +1 -2
  1570. package/decorator/options/TransactionOptions.js.map +1 -1
  1571. package/decorator/options/UniqueOptions.d.ts +1 -1
  1572. package/decorator/options/UniqueOptions.js +1 -2
  1573. package/decorator/options/UniqueOptions.js.map +1 -1
  1574. package/decorator/options/ValueTransformer.js +1 -2
  1575. package/decorator/options/ValueTransformer.js.map +1 -1
  1576. package/decorator/options/ViewColumnOptions.d.ts +1 -1
  1577. package/decorator/options/ViewColumnOptions.js +1 -2
  1578. package/decorator/options/ViewColumnOptions.js.map +1 -1
  1579. package/decorator/options/ViewEntityOptions.d.ts +3 -2
  1580. package/decorator/options/ViewEntityOptions.js +1 -2
  1581. package/decorator/options/ViewEntityOptions.js.map +1 -1
  1582. package/decorator/options/VirtualColumnOptions.d.ts +3 -3
  1583. package/decorator/options/VirtualColumnOptions.js +1 -2
  1584. package/decorator/options/VirtualColumnOptions.js.map +1 -1
  1585. package/decorator/relations/JoinColumn.d.ts +3 -1
  1586. package/decorator/relations/JoinColumn.js +2 -2
  1587. package/decorator/relations/JoinColumn.js.map +1 -1
  1588. package/decorator/relations/JoinTable.d.ts +4 -2
  1589. package/decorator/relations/JoinTable.js +2 -2
  1590. package/decorator/relations/JoinTable.js.map +1 -1
  1591. package/decorator/relations/ManyToMany.d.ts +7 -2
  1592. package/decorator/relations/ManyToMany.js +4 -2
  1593. package/decorator/relations/ManyToMany.js.map +1 -1
  1594. package/decorator/relations/ManyToOne.d.ts +7 -2
  1595. package/decorator/relations/ManyToOne.js +4 -2
  1596. package/decorator/relations/ManyToOne.js.map +1 -1
  1597. package/decorator/relations/OneToMany.d.ts +5 -2
  1598. package/decorator/relations/OneToMany.js +4 -2
  1599. package/decorator/relations/OneToMany.js.map +1 -1
  1600. package/decorator/relations/OneToOne.d.ts +7 -2
  1601. package/decorator/relations/OneToOne.js +4 -2
  1602. package/decorator/relations/OneToOne.js.map +1 -1
  1603. package/decorator/relations/RelationId.d.ts +4 -2
  1604. package/decorator/relations/RelationId.js +4 -3
  1605. package/decorator/relations/RelationId.js.map +1 -1
  1606. package/decorator/tree/Tree.d.ts +6 -4
  1607. package/decorator/tree/Tree.js +5 -4
  1608. package/decorator/tree/Tree.js.map +1 -1
  1609. package/decorator/tree/TreeChildren.d.ts +2 -0
  1610. package/decorator/tree/TreeChildren.js +3 -2
  1611. package/decorator/tree/TreeChildren.js.map +1 -1
  1612. package/decorator/tree/TreeLevelColumn.js +1 -2
  1613. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  1614. package/decorator/tree/TreeParent.d.ts +3 -1
  1615. package/decorator/tree/TreeParent.js +3 -2
  1616. package/decorator/tree/TreeParent.js.map +1 -1
  1617. package/driver/Driver.d.ts +32 -21
  1618. package/driver/Driver.js +1 -2
  1619. package/driver/Driver.js.map +1 -1
  1620. package/driver/DriverFactory.d.ts +5 -3
  1621. package/driver/DriverFactory.js +48 -51
  1622. package/driver/DriverFactory.js.map +1 -1
  1623. package/driver/DriverUtils.d.ts +13 -11
  1624. package/driver/DriverUtils.js +18 -24
  1625. package/driver/DriverUtils.js.map +1 -1
  1626. package/driver/Query.js +1 -2
  1627. package/driver/Query.js.map +1 -1
  1628. package/driver/SqlInMemory.d.ts +1 -1
  1629. package/driver/SqlInMemory.js +1 -2
  1630. package/driver/SqlInMemory.js.map +1 -1
  1631. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +0 -1
  1632. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +1 -2
  1633. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  1634. package/{browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts → driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts} +4 -5
  1635. package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js +3 -0
  1636. package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -0
  1637. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +66 -28
  1638. package/driver/aurora-mysql/AuroraMysqlDriver.js +76 -64
  1639. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  1640. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +168 -32
  1641. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +245 -135
  1642. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  1643. package/{browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts → driver/aurora-postgres/AuroraPostgresDataSourceOptions.d.ts} +2 -2
  1644. package/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js +3 -0
  1645. package/driver/aurora-postgres/AuroraPostgresDataSourceOptions.js.map +1 -0
  1646. package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +15 -13
  1647. package/driver/aurora-postgres/AuroraPostgresDriver.js +17 -11
  1648. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  1649. package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +11 -9
  1650. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +7 -2
  1651. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  1652. package/{browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts → driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts} +5 -3
  1653. package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js +3 -0
  1654. package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -0
  1655. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +13 -12
  1656. package/driver/better-sqlite3/BetterSqlite3Driver.js +19 -16
  1657. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  1658. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +4 -1
  1659. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +23 -16
  1660. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  1661. package/driver/capacitor/{CapacitorConnectionOptions.d.ts → CapacitorDataSourceOptions.d.ts} +2 -2
  1662. package/driver/capacitor/CapacitorDataSourceOptions.js +3 -0
  1663. package/driver/capacitor/CapacitorDataSourceOptions.js.map +1 -0
  1664. package/driver/capacitor/CapacitorDriver.d.ts +7 -6
  1665. package/driver/capacitor/CapacitorDriver.js +5 -5
  1666. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  1667. package/driver/capacitor/CapacitorQueryRunner.d.ts +6 -2
  1668. package/driver/capacitor/CapacitorQueryRunner.js +11 -8
  1669. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  1670. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -1
  1671. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -2
  1672. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  1673. package/{browser/driver/cockroachdb/CockroachConnectionOptions.d.ts → driver/cockroachdb/CockroachDataSourceOptions.d.ts} +4 -4
  1674. package/driver/cockroachdb/CockroachDataSourceOptions.js +3 -0
  1675. package/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -0
  1676. package/driver/cockroachdb/CockroachDriver.d.ts +79 -27
  1677. package/driver/cockroachdb/CockroachDriver.js +121 -45
  1678. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  1679. package/driver/cockroachdb/CockroachQueryRunner.d.ts +203 -31
  1680. package/driver/cockroachdb/CockroachQueryRunner.js +370 -160
  1681. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  1682. package/driver/cordova/{CordovaConnectionOptions.d.ts → CordovaDataSourceOptions.d.ts} +2 -2
  1683. package/driver/cordova/CordovaDataSourceOptions.js +3 -0
  1684. package/driver/cordova/CordovaDataSourceOptions.js.map +1 -0
  1685. package/driver/cordova/CordovaDriver.d.ts +7 -6
  1686. package/driver/cordova/CordovaDriver.js +5 -7
  1687. package/driver/cordova/CordovaDriver.js.map +1 -1
  1688. package/driver/cordova/CordovaQueryRunner.d.ts +7 -35
  1689. package/driver/cordova/CordovaQueryRunner.js +11 -39
  1690. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  1691. package/driver/expo/{ExpoConnectionOptions.d.ts → ExpoDataSourceOptions.d.ts} +2 -2
  1692. package/driver/expo/ExpoDataSourceOptions.js +3 -0
  1693. package/driver/expo/ExpoDataSourceOptions.js.map +1 -0
  1694. package/driver/expo/ExpoDriver.d.ts +6 -5
  1695. package/driver/expo/ExpoDriver.js +10 -4
  1696. package/driver/expo/ExpoDriver.js.map +1 -1
  1697. package/driver/expo/ExpoQueryRunner.d.ts +1 -1
  1698. package/driver/expo/ExpoQueryRunner.js +5 -6
  1699. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  1700. package/{browser/driver/mongodb/MongoConnectionOptions.d.ts → driver/mongodb/MongoDataSourceOptions.d.ts} +7 -69
  1701. package/driver/mongodb/MongoDataSourceOptions.js +3 -0
  1702. package/driver/mongodb/MongoDataSourceOptions.js.map +1 -0
  1703. package/driver/mongodb/MongoDriver.d.ts +51 -23
  1704. package/driver/mongodb/MongoDriver.js +41 -33
  1705. package/driver/mongodb/MongoDriver.js.map +1 -1
  1706. package/driver/mongodb/MongoQueryRunner.d.ts +239 -83
  1707. package/driver/mongodb/MongoQueryRunner.js +234 -68
  1708. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  1709. package/driver/mongodb/bson.typings.d.ts +604 -97
  1710. package/driver/mongodb/bson.typings.js +2 -2
  1711. package/driver/mongodb/bson.typings.js.map +1 -1
  1712. package/driver/mongodb/typings.d.ts +3577 -1025
  1713. package/driver/mongodb/typings.js +3 -3
  1714. package/driver/mongodb/typings.js.map +1 -1
  1715. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +0 -1
  1716. package/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -2
  1717. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  1718. package/{browser/driver/mysql/MysqlConnectionOptions.d.ts → driver/mysql/MysqlDataSourceOptions.d.ts} +6 -13
  1719. package/driver/mysql/MysqlDataSourceOptions.js +3 -0
  1720. package/driver/mysql/MysqlDataSourceOptions.js.map +1 -0
  1721. package/driver/mysql/MysqlDriver.d.ts +69 -37
  1722. package/driver/mysql/MysqlDriver.js +91 -205
  1723. package/driver/mysql/MysqlDriver.js.map +1 -1
  1724. package/driver/mysql/MysqlQueryRunner.d.ts +167 -33
  1725. package/driver/mysql/MysqlQueryRunner.js +265 -146
  1726. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  1727. package/{browser/driver/nativescript/NativescriptConnectionOptions.d.ts → driver/nativescript/NativescriptDataSourceOptions.d.ts} +2 -2
  1728. package/driver/nativescript/NativescriptDataSourceOptions.js +3 -0
  1729. package/driver/nativescript/NativescriptDataSourceOptions.js.map +1 -0
  1730. package/driver/nativescript/NativescriptDriver.d.ts +9 -8
  1731. package/driver/nativescript/NativescriptDriver.js +7 -8
  1732. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  1733. package/driver/nativescript/NativescriptQueryRunner.d.ts +7 -2
  1734. package/driver/nativescript/NativescriptQueryRunner.js +8 -4
  1735. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  1736. package/driver/oracle/OracleConnectionCredentialsOptions.js +1 -2
  1737. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  1738. package/{browser/driver/oracle/OracleConnectionOptions.d.ts → driver/oracle/OracleDataSourceOptions.d.ts} +3 -3
  1739. package/driver/oracle/OracleDataSourceOptions.js +3 -0
  1740. package/driver/oracle/OracleDataSourceOptions.js.map +1 -0
  1741. package/driver/oracle/OracleDriver.d.ts +65 -28
  1742. package/driver/oracle/OracleDriver.js +60 -23
  1743. package/driver/oracle/OracleDriver.js.map +1 -1
  1744. package/driver/oracle/OracleQueryRunner.d.ts +176 -29
  1745. package/driver/oracle/OracleQueryRunner.js +271 -100
  1746. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  1747. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  1748. package/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -2
  1749. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  1750. package/{browser/driver/postgres/PostgresConnectionOptions.d.ts → driver/postgres/PostgresDataSourceOptions.d.ts} +8 -5
  1751. package/driver/postgres/PostgresDataSourceOptions.js +3 -0
  1752. package/driver/postgres/PostgresDataSourceOptions.js.map +1 -0
  1753. package/driver/postgres/PostgresDriver.d.ts +85 -28
  1754. package/driver/postgres/PostgresDriver.js +201 -41
  1755. package/driver/postgres/PostgresDriver.js.map +1 -1
  1756. package/driver/postgres/PostgresQueryRunner.d.ts +225 -34
  1757. package/driver/postgres/PostgresQueryRunner.js +497 -219
  1758. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  1759. package/{browser/driver/react-native/ReactNativeConnectionOptions.d.ts → driver/react-native/ReactNativeDataSourceOptions.d.ts} +6 -2
  1760. package/driver/react-native/ReactNativeDataSourceOptions.js +3 -0
  1761. package/driver/react-native/ReactNativeDataSourceOptions.js.map +1 -0
  1762. package/driver/react-native/ReactNativeDriver.d.ts +64 -24
  1763. package/driver/react-native/ReactNativeDriver.js +60 -22
  1764. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  1765. package/driver/react-native/ReactNativeQueryRunner.d.ts +7 -2
  1766. package/driver/react-native/ReactNativeQueryRunner.js +10 -6
  1767. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  1768. package/driver/sap/SapConnectionCredentialsOptions.js +1 -2
  1769. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  1770. package/driver/sap/{SapConnectionOptions.d.ts → SapDataSourceOptions.d.ts} +10 -37
  1771. package/driver/sap/SapDataSourceOptions.js +3 -0
  1772. package/driver/sap/SapDataSourceOptions.js.map +1 -0
  1773. package/driver/sap/SapDriver.d.ts +54 -17
  1774. package/driver/sap/SapDriver.js +48 -25
  1775. package/driver/sap/SapDriver.js.map +1 -1
  1776. package/driver/sap/SapQueryRunner.d.ts +179 -31
  1777. package/driver/sap/SapQueryRunner.js +316 -118
  1778. package/driver/sap/SapQueryRunner.js.map +1 -1
  1779. package/driver/spanner/SpannerConnectionCredentialsOptions.js +1 -2
  1780. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  1781. package/{browser/driver/spanner/SpannerConnectionOptions.d.ts → driver/spanner/SpannerDataSourceOptions.d.ts} +4 -4
  1782. package/driver/spanner/SpannerDataSourceOptions.js +3 -0
  1783. package/driver/spanner/SpannerDataSourceOptions.js.map +1 -0
  1784. package/driver/spanner/SpannerDriver.d.ts +61 -23
  1785. package/driver/spanner/SpannerDriver.js +57 -21
  1786. package/driver/spanner/SpannerDriver.js.map +1 -1
  1787. package/driver/spanner/SpannerQueryRunner.d.ts +170 -28
  1788. package/driver/spanner/SpannerQueryRunner.js +243 -75
  1789. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  1790. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +74 -23
  1791. package/driver/sqlite-abstract/AbstractSqliteDriver.js +131 -26
  1792. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  1793. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +164 -30
  1794. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +242 -82
  1795. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  1796. package/{browser/driver/sqljs/SqljsConnectionOptions.d.ts → driver/sqljs/SqljsDataSourceOptions.d.ts} +2 -2
  1797. package/driver/sqljs/SqljsDataSourceOptions.js +3 -0
  1798. package/driver/sqljs/SqljsDataSourceOptions.js.map +1 -0
  1799. package/driver/sqljs/SqljsDriver.d.ts +15 -8
  1800. package/driver/sqljs/SqljsDriver.js +17 -11
  1801. package/driver/sqljs/SqljsDriver.js.map +1 -1
  1802. package/driver/sqljs/SqljsQueryRunner.d.ts +4 -1
  1803. package/driver/sqljs/SqljsQueryRunner.js +8 -6
  1804. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  1805. package/driver/sqlserver/MssqlParameter.d.ts +0 -1
  1806. package/driver/sqlserver/MssqlParameter.js +1 -3
  1807. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  1808. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +8 -15
  1809. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -2
  1810. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  1811. package/driver/sqlserver/{SqlServerConnectionOptions.d.ts → SqlServerDataSourceOptions.d.ts} +4 -4
  1812. package/driver/sqlserver/SqlServerDataSourceOptions.js +3 -0
  1813. package/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -0
  1814. package/driver/sqlserver/SqlServerDriver.d.ts +70 -28
  1815. package/driver/sqlserver/SqlServerDriver.js +66 -34
  1816. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  1817. package/driver/sqlserver/SqlServerQueryRunner.d.ts +190 -30
  1818. package/driver/sqlserver/SqlServerQueryRunner.js +377 -155
  1819. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  1820. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +1 -2
  1821. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  1822. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +1 -2
  1823. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  1824. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +1 -2
  1825. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  1826. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +1 -2
  1827. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  1828. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +1 -2
  1829. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  1830. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +1 -2
  1831. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  1832. package/driver/sqlserver/authentication/DefaultAuthentication.js +1 -2
  1833. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  1834. package/driver/sqlserver/authentication/NtlmAuthentication.js +1 -2
  1835. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  1836. package/driver/types/ColumnTypes.d.ts +1 -1
  1837. package/driver/types/ColumnTypes.js +1 -2
  1838. package/driver/types/ColumnTypes.js.map +1 -1
  1839. package/driver/types/CteCapabilities.js +1 -2
  1840. package/driver/types/CteCapabilities.js.map +1 -1
  1841. package/driver/types/DataTypeDefaults.d.ts +0 -1
  1842. package/driver/types/DataTypeDefaults.js +1 -2
  1843. package/driver/types/DataTypeDefaults.js.map +1 -1
  1844. package/driver/types/DatabaseType.d.ts +1 -1
  1845. package/driver/types/DatabaseType.js +1 -2
  1846. package/driver/types/DatabaseType.js.map +1 -1
  1847. package/driver/types/GeoJsonTypes.js +1 -2
  1848. package/driver/types/GeoJsonTypes.js.map +1 -1
  1849. package/driver/types/IsolationLevel.js +1 -2
  1850. package/driver/types/IsolationLevel.js.map +1 -1
  1851. package/driver/types/MappedColumnTypes.d.ts +1 -1
  1852. package/driver/types/MappedColumnTypes.js +1 -2
  1853. package/driver/types/MappedColumnTypes.js.map +1 -1
  1854. package/driver/types/MetadataTableType.js +1 -2
  1855. package/driver/types/MetadataTableType.js.map +1 -1
  1856. package/driver/types/ReplicationMode.js +1 -2
  1857. package/driver/types/ReplicationMode.js.map +1 -1
  1858. package/driver/types/ReturningType.d.ts +1 -0
  1859. package/driver/types/ReturningType.js +3 -0
  1860. package/driver/types/ReturningType.js.map +1 -0
  1861. package/driver/types/UpsertType.js +1 -2
  1862. package/driver/types/UpsertType.js.map +1 -1
  1863. package/entity-manager/EntityManager.d.ts +111 -57
  1864. package/entity-manager/EntityManager.js +191 -153
  1865. package/entity-manager/EntityManager.js.map +1 -1
  1866. package/entity-manager/EntityManagerFactory.d.ts +6 -3
  1867. package/entity-manager/EntityManagerFactory.js +10 -8
  1868. package/entity-manager/EntityManagerFactory.js.map +1 -1
  1869. package/entity-manager/MongoEntityManager.d.ts +156 -30
  1870. package/entity-manager/MongoEntityManager.js +262 -89
  1871. package/entity-manager/MongoEntityManager.js.map +1 -1
  1872. package/entity-manager/SqljsEntityManager.d.ts +5 -3
  1873. package/entity-manager/SqljsEntityManager.js +6 -5
  1874. package/entity-manager/SqljsEntityManager.js.map +1 -1
  1875. package/entity-schema/EntitySchema.d.ts +1 -1
  1876. package/entity-schema/EntitySchema.js +1 -2
  1877. package/entity-schema/EntitySchema.js.map +1 -1
  1878. package/entity-schema/EntitySchemaCheckOptions.js +1 -2
  1879. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  1880. package/entity-schema/EntitySchemaColumnForeignKeyOptions.d.ts +2 -2
  1881. package/entity-schema/EntitySchemaColumnForeignKeyOptions.js +1 -2
  1882. package/entity-schema/EntitySchemaColumnForeignKeyOptions.js.map +1 -1
  1883. package/entity-schema/EntitySchemaColumnOptions.d.ts +6 -26
  1884. package/entity-schema/EntitySchemaColumnOptions.js +1 -2
  1885. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  1886. package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +1 -1
  1887. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +1 -2
  1888. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  1889. package/entity-schema/EntitySchemaEmbeddedError.js +1 -2
  1890. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  1891. package/entity-schema/EntitySchemaExclusionOptions.d.ts +5 -0
  1892. package/entity-schema/EntitySchemaExclusionOptions.js +1 -2
  1893. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  1894. package/entity-schema/EntitySchemaForeignKeyOptions.d.ts +2 -2
  1895. package/entity-schema/EntitySchemaForeignKeyOptions.js +1 -2
  1896. package/entity-schema/EntitySchemaForeignKeyOptions.js.map +1 -1
  1897. package/entity-schema/EntitySchemaIndexOptions.js +1 -2
  1898. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  1899. package/entity-schema/EntitySchemaInheritanceOptions.d.ts +1 -1
  1900. package/entity-schema/EntitySchemaInheritanceOptions.js +1 -2
  1901. package/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  1902. package/entity-schema/EntitySchemaOptions.d.ts +16 -14
  1903. package/entity-schema/EntitySchemaOptions.js +1 -2
  1904. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  1905. package/entity-schema/EntitySchemaRelationIdOptions.d.ts +1 -1
  1906. package/entity-schema/EntitySchemaRelationIdOptions.js +1 -2
  1907. package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  1908. package/entity-schema/EntitySchemaRelationOptions.d.ts +8 -8
  1909. package/entity-schema/EntitySchemaRelationOptions.js +1 -2
  1910. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  1911. package/entity-schema/EntitySchemaTransformer.d.ts +2 -1
  1912. package/entity-schema/EntitySchemaTransformer.js +3 -5
  1913. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  1914. package/entity-schema/EntitySchemaUniqueOptions.d.ts +1 -1
  1915. package/entity-schema/EntitySchemaUniqueOptions.js +1 -2
  1916. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  1917. package/error/AlreadyHasActiveConnectionError.js +1 -2
  1918. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  1919. package/error/CannotAttachTreeChildrenEntityError.js +1 -2
  1920. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  1921. package/error/CannotConnectAlreadyConnectedError.d.ts +1 -1
  1922. package/error/CannotConnectAlreadyConnectedError.js +3 -4
  1923. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  1924. package/error/CannotCreateEntityIdMapError.d.ts +1 -1
  1925. package/error/CannotCreateEntityIdMapError.js +1 -2
  1926. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  1927. package/error/CannotDetermineEntityError.js +1 -2
  1928. package/error/CannotDetermineEntityError.js.map +1 -1
  1929. package/error/CannotExecuteNotConnectedError.d.ts +1 -1
  1930. package/error/CannotExecuteNotConnectedError.js +3 -4
  1931. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  1932. package/error/CannotGetEntityManagerNotConnectedError.js +1 -2
  1933. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  1934. package/error/CannotReflectMethodParameterTypeError.js +1 -2
  1935. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  1936. package/error/CircularRelationsError.js +1 -2
  1937. package/error/CircularRelationsError.js.map +1 -1
  1938. package/error/ColumnTypeUndefinedError.js +1 -2
  1939. package/error/ColumnTypeUndefinedError.js.map +1 -1
  1940. package/error/ConnectionIsNotSetError.js +1 -2
  1941. package/error/ConnectionIsNotSetError.js.map +1 -1
  1942. package/error/ConnectionNotFoundError.js +1 -2
  1943. package/error/ConnectionNotFoundError.js.map +1 -1
  1944. package/error/DataTypeNotSupportedError.d.ts +3 -3
  1945. package/error/DataTypeNotSupportedError.js +1 -2
  1946. package/error/DataTypeNotSupportedError.js.map +1 -1
  1947. package/error/DriverOptionNotSetError.js +1 -2
  1948. package/error/DriverOptionNotSetError.js.map +1 -1
  1949. package/error/DriverPackageNotInstalledError.js +1 -2
  1950. package/error/DriverPackageNotInstalledError.js.map +1 -1
  1951. package/error/EntityMetadataNotFoundError.d.ts +1 -1
  1952. package/error/EntityMetadataNotFoundError.js +1 -2
  1953. package/error/EntityMetadataNotFoundError.js.map +1 -1
  1954. package/error/EntityNotFoundError.d.ts +1 -1
  1955. package/error/EntityNotFoundError.js +1 -2
  1956. package/error/EntityNotFoundError.js.map +1 -1
  1957. package/error/EntityPropertyNotFoundError.d.ts +1 -1
  1958. package/error/EntityPropertyNotFoundError.js +1 -2
  1959. package/error/EntityPropertyNotFoundError.js.map +1 -1
  1960. package/error/FindRelationsNotFoundError.js +1 -2
  1961. package/error/FindRelationsNotFoundError.js.map +1 -1
  1962. package/error/ForbiddenTransactionModeOverrideError.d.ts +1 -1
  1963. package/error/ForbiddenTransactionModeOverrideError.js +1 -2
  1964. package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  1965. package/error/InitializedRelationError.d.ts +1 -2
  1966. package/error/InitializedRelationError.js +1 -3
  1967. package/error/InitializedRelationError.js.map +1 -1
  1968. package/error/InsertValuesMissingError.js +1 -2
  1969. package/error/InsertValuesMissingError.js.map +1 -1
  1970. package/error/LimitOnUpdateNotSupportedError.js +1 -2
  1971. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  1972. package/error/LockNotSupportedOnGivenDriverError.js +1 -2
  1973. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  1974. package/error/MetadataAlreadyExistsError.js +1 -2
  1975. package/error/MetadataAlreadyExistsError.js.map +1 -1
  1976. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -2
  1977. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  1978. package/error/MissingDeleteDateColumnError.d.ts +1 -1
  1979. package/error/MissingDeleteDateColumnError.js +1 -2
  1980. package/error/MissingDeleteDateColumnError.js.map +1 -1
  1981. package/error/MissingDriverError.js +1 -2
  1982. package/error/MissingDriverError.js.map +1 -1
  1983. package/error/MissingJoinColumnError.d.ts +2 -2
  1984. package/error/MissingJoinColumnError.js +1 -2
  1985. package/error/MissingJoinColumnError.js.map +1 -1
  1986. package/error/MissingJoinTableError.d.ts +2 -2
  1987. package/error/MissingJoinTableError.js +1 -2
  1988. package/error/MissingJoinTableError.js.map +1 -1
  1989. package/error/MissingPrimaryColumnError.d.ts +1 -1
  1990. package/error/MissingPrimaryColumnError.js +1 -2
  1991. package/error/MissingPrimaryColumnError.js.map +1 -1
  1992. package/error/MustBeEntityError.js +1 -2
  1993. package/error/MustBeEntityError.js.map +1 -1
  1994. package/error/NestedSetMultipleRootError.js +1 -2
  1995. package/error/NestedSetMultipleRootError.js.map +1 -1
  1996. package/error/NoConnectionForRepositoryError.d.ts +1 -1
  1997. package/error/NoConnectionForRepositoryError.js +4 -5
  1998. package/error/NoConnectionForRepositoryError.js.map +1 -1
  1999. package/error/NoConnectionOptionError.js +1 -2
  2000. package/error/NoConnectionOptionError.js.map +1 -1
  2001. package/error/NoNeedToReleaseEntityManagerError.js +1 -2
  2002. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  2003. package/error/NoVersionOrUpdateDateColumnError.js +1 -2
  2004. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  2005. package/error/OffsetWithoutLimitNotSupportedError.js +1 -2
  2006. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  2007. package/error/OptimisticLockCanNotBeUsedError.js +1 -2
  2008. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  2009. package/error/OptimisticLockVersionMismatchError.js +1 -2
  2010. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  2011. package/error/PersistedEntityNotFoundError.js +1 -2
  2012. package/error/PersistedEntityNotFoundError.js.map +1 -1
  2013. package/error/PessimisticLockTransactionRequiredError.js +1 -2
  2014. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  2015. package/error/PrimaryColumnCannotBeNullableError.js +1 -2
  2016. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  2017. package/error/QueryFailedError.js +1 -2
  2018. package/error/QueryFailedError.js.map +1 -1
  2019. package/error/QueryRunnerAlreadyReleasedError.js +1 -2
  2020. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  2021. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -2
  2022. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  2023. package/error/RepositoryNotTreeError.d.ts +1 -1
  2024. package/error/RepositoryNotTreeError.js +1 -2
  2025. package/error/RepositoryNotTreeError.js.map +1 -1
  2026. package/error/ReturningStatementNotSupportedError.js +1 -2
  2027. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  2028. package/error/SubjectRemovedAndUpdatedError.d.ts +1 -1
  2029. package/error/SubjectRemovedAndUpdatedError.js +1 -2
  2030. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  2031. package/error/SubjectWithoutIdentifierError.d.ts +1 -1
  2032. package/error/SubjectWithoutIdentifierError.js +1 -2
  2033. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  2034. package/error/TransactionAlreadyStartedError.js +1 -2
  2035. package/error/TransactionAlreadyStartedError.js.map +1 -1
  2036. package/error/TransactionNotStartedError.js +1 -2
  2037. package/error/TransactionNotStartedError.js.map +1 -1
  2038. package/error/TreeRepositoryNotSupportedError.d.ts +1 -1
  2039. package/error/TreeRepositoryNotSupportedError.js +1 -2
  2040. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  2041. package/error/TypeORMError.js +1 -2
  2042. package/error/TypeORMError.js.map +1 -1
  2043. package/error/UpdateValuesMissingError.js +1 -2
  2044. package/error/UpdateValuesMissingError.js.map +1 -1
  2045. package/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -2
  2046. package/error/UsingJoinColumnIsNotAllowedError.js +1 -2
  2047. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  2048. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -2
  2049. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -2
  2050. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  2051. package/error/UsingJoinTableIsNotAllowedError.d.ts +2 -2
  2052. package/error/UsingJoinTableIsNotAllowedError.js +1 -2
  2053. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  2054. package/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -2
  2055. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -2
  2056. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  2057. package/error/index.d.ts +0 -3
  2058. package/error/index.js +1 -5
  2059. package/error/index.js.map +1 -1
  2060. package/find-options/EqualOperator.js +1 -2
  2061. package/find-options/EqualOperator.js.map +1 -1
  2062. package/find-options/FindManyOptions.d.ts +1 -1
  2063. package/find-options/FindManyOptions.js +1 -2
  2064. package/find-options/FindManyOptions.js.map +1 -1
  2065. package/find-options/FindOneOptions.d.ts +7 -14
  2066. package/find-options/FindOneOptions.js +1 -2
  2067. package/find-options/FindOneOptions.js.map +1 -1
  2068. package/find-options/FindOperator.d.ts +3 -3
  2069. package/find-options/FindOperator.js +1 -2
  2070. package/find-options/FindOperator.js.map +1 -1
  2071. package/find-options/FindOperatorType.js +1 -2
  2072. package/find-options/FindOperatorType.js.map +1 -1
  2073. package/find-options/FindOptionsOrder.d.ts +2 -2
  2074. package/find-options/FindOptionsOrder.js +1 -2
  2075. package/find-options/FindOptionsOrder.js.map +1 -1
  2076. package/find-options/FindOptionsRelations.d.ts +2 -9
  2077. package/find-options/FindOptionsRelations.js +1 -2
  2078. package/find-options/FindOptionsRelations.js.map +1 -1
  2079. package/find-options/FindOptionsSelect.d.ts +2 -9
  2080. package/find-options/FindOptionsSelect.js +1 -2
  2081. package/find-options/FindOptionsSelect.js.map +1 -1
  2082. package/find-options/FindOptionsUtils.d.ts +46 -11
  2083. package/find-options/FindOptionsUtils.js +104 -22
  2084. package/find-options/FindOptionsUtils.js.map +1 -1
  2085. package/find-options/FindOptionsWhere.d.ts +4 -4
  2086. package/find-options/FindOptionsWhere.js +1 -2
  2087. package/find-options/FindOptionsWhere.js.map +1 -1
  2088. package/find-options/FindTreeOptions.js +1 -2
  2089. package/find-options/FindTreeOptions.js.map +1 -1
  2090. package/find-options/OrderByCondition.d.ts +0 -2
  2091. package/find-options/OrderByCondition.js +1 -2
  2092. package/find-options/OrderByCondition.js.map +1 -1
  2093. package/find-options/mongodb/MongoFindManyOptions.d.ts +1 -1
  2094. package/find-options/mongodb/MongoFindManyOptions.js +1 -2
  2095. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  2096. package/find-options/mongodb/MongoFindOneOptions.d.ts +2 -2
  2097. package/find-options/mongodb/MongoFindOneOptions.js +1 -2
  2098. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  2099. package/find-options/operator/And.d.ts +4 -0
  2100. package/find-options/operator/And.js +5 -2
  2101. package/find-options/operator/And.js.map +1 -1
  2102. package/find-options/operator/Any.d.ts +1 -0
  2103. package/find-options/operator/Any.js +2 -2
  2104. package/find-options/operator/Any.js.map +1 -1
  2105. package/find-options/operator/ArrayContainedBy.d.ts +1 -0
  2106. package/find-options/operator/ArrayContainedBy.js +2 -2
  2107. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  2108. package/find-options/operator/ArrayContains.d.ts +1 -0
  2109. package/find-options/operator/ArrayContains.js +2 -2
  2110. package/find-options/operator/ArrayContains.js.map +1 -1
  2111. package/find-options/operator/ArrayOverlap.d.ts +1 -0
  2112. package/find-options/operator/ArrayOverlap.js +2 -2
  2113. package/find-options/operator/ArrayOverlap.js.map +1 -1
  2114. package/find-options/operator/Between.d.ts +2 -0
  2115. package/find-options/operator/Between.js +3 -2
  2116. package/find-options/operator/Between.js.map +1 -1
  2117. package/find-options/operator/Equal.d.ts +2 -1
  2118. package/find-options/operator/Equal.js +2 -2
  2119. package/find-options/operator/Equal.js.map +1 -1
  2120. package/find-options/operator/ILike.d.ts +1 -0
  2121. package/find-options/operator/ILike.js +2 -2
  2122. package/find-options/operator/ILike.js.map +1 -1
  2123. package/find-options/operator/In.d.ts +1 -0
  2124. package/find-options/operator/In.js +2 -2
  2125. package/find-options/operator/In.js.map +1 -1
  2126. package/find-options/operator/IsNull.js +1 -2
  2127. package/find-options/operator/IsNull.js.map +1 -1
  2128. package/find-options/operator/JsonContains.d.ts +1 -0
  2129. package/find-options/operator/JsonContains.js +2 -2
  2130. package/find-options/operator/JsonContains.js.map +1 -1
  2131. package/find-options/operator/LessThan.d.ts +1 -0
  2132. package/find-options/operator/LessThan.js +2 -2
  2133. package/find-options/operator/LessThan.js.map +1 -1
  2134. package/find-options/operator/LessThanOrEqual.d.ts +1 -0
  2135. package/find-options/operator/LessThanOrEqual.js +2 -2
  2136. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  2137. package/find-options/operator/Like.d.ts +1 -0
  2138. package/find-options/operator/Like.js +2 -2
  2139. package/find-options/operator/Like.js.map +1 -1
  2140. package/find-options/operator/MoreThan.d.ts +1 -0
  2141. package/find-options/operator/MoreThan.js +2 -2
  2142. package/find-options/operator/MoreThan.js.map +1 -1
  2143. package/find-options/operator/MoreThanOrEqual.d.ts +1 -0
  2144. package/find-options/operator/MoreThanOrEqual.js +2 -2
  2145. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  2146. package/find-options/operator/Not.d.ts +1 -0
  2147. package/find-options/operator/Not.js +2 -2
  2148. package/find-options/operator/Not.js.map +1 -1
  2149. package/find-options/operator/Or.d.ts +4 -0
  2150. package/find-options/operator/Or.js +5 -2
  2151. package/find-options/operator/Or.js.map +1 -1
  2152. package/find-options/operator/Raw.d.ts +5 -1
  2153. package/find-options/operator/Raw.js +1 -2
  2154. package/find-options/operator/Raw.js.map +1 -1
  2155. package/globals.d.ts +2 -114
  2156. package/globals.js +7 -169
  2157. package/globals.js.map +1 -1
  2158. package/index.d.ts +62 -69
  2159. package/index.js +2 -52
  2160. package/index.js.map +1 -1
  2161. package/index.mjs +0 -80
  2162. package/logger/AbstractLogger.d.ts +26 -3
  2163. package/logger/AbstractLogger.js +25 -3
  2164. package/logger/AbstractLogger.js.map +1 -1
  2165. package/logger/AdvancedConsoleLogger.d.ts +5 -2
  2166. package/logger/AdvancedConsoleLogger.js +4 -2
  2167. package/logger/AdvancedConsoleLogger.js.map +1 -1
  2168. package/logger/DebugLogger.d.ts +6 -2
  2169. package/logger/DebugLogger.js +5 -2
  2170. package/logger/DebugLogger.js.map +1 -1
  2171. package/logger/FileLogger.d.ts +7 -3
  2172. package/logger/FileLogger.js +5 -2
  2173. package/logger/FileLogger.js.map +1 -1
  2174. package/logger/FormattedConsoleLogger.d.ts +5 -2
  2175. package/logger/FormattedConsoleLogger.js +4 -2
  2176. package/logger/FormattedConsoleLogger.js.map +1 -1
  2177. package/logger/Logger.d.ts +1 -1
  2178. package/logger/Logger.js +1 -2
  2179. package/logger/Logger.js.map +1 -1
  2180. package/logger/LoggerFactory.d.ts +4 -2
  2181. package/logger/LoggerFactory.js +3 -2
  2182. package/logger/LoggerFactory.js.map +1 -1
  2183. package/logger/LoggerOptions.d.ts +1 -1
  2184. package/logger/LoggerOptions.js +1 -2
  2185. package/logger/LoggerOptions.js.map +1 -1
  2186. package/logger/SimpleConsoleLogger.d.ts +5 -2
  2187. package/logger/SimpleConsoleLogger.js +4 -2
  2188. package/logger/SimpleConsoleLogger.js.map +1 -1
  2189. package/metadata/CheckMetadata.d.ts +4 -3
  2190. package/metadata/CheckMetadata.js +2 -2
  2191. package/metadata/CheckMetadata.js.map +1 -1
  2192. package/metadata/ColumnMetadata.d.ts +24 -23
  2193. package/metadata/ColumnMetadata.js +64 -57
  2194. package/metadata/ColumnMetadata.js.map +1 -1
  2195. package/metadata/EmbeddedMetadata.d.ts +14 -22
  2196. package/metadata/EmbeddedMetadata.js +4 -15
  2197. package/metadata/EmbeddedMetadata.js.map +1 -1
  2198. package/metadata/EntityListenerMetadata.d.ts +9 -5
  2199. package/metadata/EntityListenerMetadata.js +5 -2
  2200. package/metadata/EntityListenerMetadata.js.map +1 -1
  2201. package/metadata/EntityMetadata.d.ts +60 -35
  2202. package/metadata/EntityMetadata.js +52 -42
  2203. package/metadata/EntityMetadata.js.map +1 -1
  2204. package/metadata/ExclusionMetadata.d.ts +9 -3
  2205. package/metadata/ExclusionMetadata.js +3 -2
  2206. package/metadata/ExclusionMetadata.js.map +1 -1
  2207. package/metadata/ForeignKeyMetadata.d.ts +7 -6
  2208. package/metadata/ForeignKeyMetadata.js +2 -2
  2209. package/metadata/ForeignKeyMetadata.js.map +1 -1
  2210. package/metadata/IndexMetadata.d.ts +13 -5
  2211. package/metadata/IndexMetadata.js +20 -7
  2212. package/metadata/IndexMetadata.js.map +1 -1
  2213. package/metadata/RelationIdMetadata.d.ts +6 -5
  2214. package/metadata/RelationIdMetadata.js +2 -2
  2215. package/metadata/RelationIdMetadata.js.map +1 -1
  2216. package/metadata/RelationMetadata.d.ts +27 -16
  2217. package/metadata/RelationMetadata.js +12 -2
  2218. package/metadata/RelationMetadata.js.map +1 -1
  2219. package/metadata/UniqueMetadata.d.ts +7 -6
  2220. package/metadata/UniqueMetadata.js +12 -6
  2221. package/metadata/UniqueMetadata.js.map +1 -1
  2222. package/metadata/types/ClosureTreeOptions.d.ts +1 -1
  2223. package/metadata/types/ClosureTreeOptions.js +1 -2
  2224. package/metadata/types/ClosureTreeOptions.js.map +1 -1
  2225. package/metadata/types/DeferrableType.js +1 -2
  2226. package/metadata/types/DeferrableType.js.map +1 -1
  2227. package/metadata/types/EventListenerTypes.js +12 -13
  2228. package/metadata/types/EventListenerTypes.js.map +1 -1
  2229. package/metadata/types/OnDeleteType.js +1 -2
  2230. package/metadata/types/OnDeleteType.js.map +1 -1
  2231. package/metadata/types/OnUpdateType.js +1 -2
  2232. package/metadata/types/OnUpdateType.js.map +1 -1
  2233. package/metadata/types/PropertyTypeInFunction.js +1 -2
  2234. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  2235. package/metadata/types/RelationTypeInFunction.d.ts +1 -1
  2236. package/metadata/types/RelationTypeInFunction.js +1 -2
  2237. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  2238. package/metadata/types/RelationTypes.js +1 -2
  2239. package/metadata/types/RelationTypes.js.map +1 -1
  2240. package/metadata/types/TableTypes.js +1 -2
  2241. package/metadata/types/TableTypes.js.map +1 -1
  2242. package/metadata/types/TreeTypes.js +1 -2
  2243. package/metadata/types/TreeTypes.js.map +1 -1
  2244. package/metadata-args/CheckMetadataArgs.js +1 -2
  2245. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  2246. package/metadata-args/ColumnMetadataArgs.d.ts +2 -2
  2247. package/metadata-args/ColumnMetadataArgs.js +1 -2
  2248. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  2249. package/metadata-args/DiscriminatorValueMetadataArgs.js +1 -2
  2250. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  2251. package/metadata-args/EmbeddedMetadataArgs.js +1 -2
  2252. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  2253. package/metadata-args/EntityListenerMetadataArgs.d.ts +1 -1
  2254. package/metadata-args/EntityListenerMetadataArgs.js +1 -2
  2255. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  2256. package/metadata-args/EntitySubscriberMetadataArgs.js +1 -2
  2257. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  2258. package/metadata-args/ExclusionMetadataArgs.d.ts +5 -0
  2259. package/metadata-args/ExclusionMetadataArgs.js +1 -2
  2260. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  2261. package/metadata-args/ForeignKeyMetadataArgs.d.ts +5 -5
  2262. package/metadata-args/ForeignKeyMetadataArgs.js +1 -2
  2263. package/metadata-args/ForeignKeyMetadataArgs.js.map +1 -1
  2264. package/metadata-args/GeneratedMetadataArgs.js +1 -2
  2265. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  2266. package/metadata-args/IndexMetadataArgs.d.ts +7 -0
  2267. package/metadata-args/IndexMetadataArgs.js +1 -2
  2268. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  2269. package/metadata-args/InheritanceMetadataArgs.d.ts +1 -1
  2270. package/metadata-args/InheritanceMetadataArgs.js +1 -2
  2271. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  2272. package/metadata-args/JoinColumnMetadataArgs.js +1 -2
  2273. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  2274. package/metadata-args/JoinTableMetadataArgs.d.ts +1 -1
  2275. package/metadata-args/JoinTableMetadataArgs.js +1 -2
  2276. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  2277. package/metadata-args/MetadataArgsStorage.d.ts +29 -27
  2278. package/metadata-args/MetadataArgsStorage.js +9 -7
  2279. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  2280. package/metadata-args/NamingStrategyMetadataArgs.js +1 -2
  2281. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  2282. package/metadata-args/RelationIdMetadataArgs.d.ts +1 -1
  2283. package/metadata-args/RelationIdMetadataArgs.js +1 -2
  2284. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  2285. package/metadata-args/RelationMetadataArgs.d.ts +4 -4
  2286. package/metadata-args/RelationMetadataArgs.js +1 -2
  2287. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  2288. package/metadata-args/TableMetadataArgs.d.ts +5 -4
  2289. package/metadata-args/TableMetadataArgs.js +1 -2
  2290. package/metadata-args/TableMetadataArgs.js.map +1 -1
  2291. package/metadata-args/TransactionEntityMetadataArgs.d.ts +1 -1
  2292. package/metadata-args/TransactionEntityMetadataArgs.js +1 -2
  2293. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  2294. package/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
  2295. package/metadata-args/TransactionRepositoryMetadataArgs.js +1 -2
  2296. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  2297. package/metadata-args/TreeMetadataArgs.d.ts +2 -2
  2298. package/metadata-args/TreeMetadataArgs.js +1 -2
  2299. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  2300. package/metadata-args/UniqueMetadataArgs.d.ts +1 -1
  2301. package/metadata-args/UniqueMetadataArgs.js +1 -2
  2302. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  2303. package/metadata-args/types/ColumnMode.js +1 -2
  2304. package/metadata-args/types/ColumnMode.js.map +1 -1
  2305. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +4 -3
  2306. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +10 -15
  2307. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  2308. package/metadata-builder/EntityMetadataBuilder.d.ts +16 -6
  2309. package/metadata-builder/EntityMetadataBuilder.js +50 -61
  2310. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  2311. package/metadata-builder/EntityMetadataValidator.d.ts +9 -2
  2312. package/metadata-builder/EntityMetadataValidator.js +8 -7
  2313. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  2314. package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +11 -5
  2315. package/metadata-builder/JunctionEntityMetadataBuilder.js +33 -36
  2316. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  2317. package/metadata-builder/MetadataUtils.d.ts +5 -0
  2318. package/metadata-builder/MetadataUtils.js +6 -2
  2319. package/metadata-builder/MetadataUtils.js.map +1 -1
  2320. package/metadata-builder/RelationJoinColumnBuilder.d.ts +24 -12
  2321. package/metadata-builder/RelationJoinColumnBuilder.js +30 -22
  2322. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  2323. package/migration/Migration.d.ts +1 -1
  2324. package/migration/Migration.js +1 -2
  2325. package/migration/Migration.js.map +1 -1
  2326. package/migration/MigrationExecutor.d.ts +16 -9
  2327. package/migration/MigrationExecutor.js +76 -64
  2328. package/migration/MigrationExecutor.js.map +1 -1
  2329. package/migration/MigrationInterface.d.ts +1 -1
  2330. package/migration/MigrationInterface.js +1 -2
  2331. package/migration/MigrationInterface.js.map +1 -1
  2332. package/naming-strategy/DefaultNamingStrategy.d.ts +5 -5
  2333. package/naming-strategy/DefaultNamingStrategy.js +4 -5
  2334. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  2335. package/naming-strategy/LegacyOracleNamingStrategy.d.ts +1 -1
  2336. package/naming-strategy/LegacyOracleNamingStrategy.js +1 -2
  2337. package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  2338. package/naming-strategy/NamingStrategyInterface.d.ts +3 -5
  2339. package/naming-strategy/NamingStrategyInterface.js +1 -2
  2340. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  2341. package/package.json +181 -1
  2342. package/persistence/EntityPersistExecutor.d.ts +7 -7
  2343. package/persistence/EntityPersistExecutor.js +6 -7
  2344. package/persistence/EntityPersistExecutor.js.map +1 -1
  2345. package/persistence/Subject.d.ts +5 -5
  2346. package/persistence/Subject.js +3 -3
  2347. package/persistence/Subject.js.map +1 -1
  2348. package/persistence/SubjectChangeMap.d.ts +3 -3
  2349. package/persistence/SubjectChangeMap.js +1 -2
  2350. package/persistence/SubjectChangeMap.js.map +1 -1
  2351. package/persistence/SubjectChangedColumnsComputer.d.ts +5 -1
  2352. package/persistence/SubjectChangedColumnsComputer.js +27 -19
  2353. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  2354. package/persistence/SubjectDatabaseEntityLoader.d.ts +3 -2
  2355. package/persistence/SubjectDatabaseEntityLoader.js +8 -5
  2356. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  2357. package/persistence/SubjectExecutor.d.ts +7 -4
  2358. package/persistence/SubjectExecutor.js +21 -11
  2359. package/persistence/SubjectExecutor.js.map +1 -1
  2360. package/persistence/SubjectTopologicalSorter.d.ts +6 -2
  2361. package/persistence/SubjectTopologicalSorter.js +15 -2
  2362. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  2363. package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +5 -1
  2364. package/persistence/subject-builder/CascadesSubjectBuilder.js +5 -2
  2365. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  2366. package/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +16 -6
  2367. package/persistence/subject-builder/ManyToManySubjectBuilder.js +15 -6
  2368. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  2369. package/persistence/subject-builder/OneToManySubjectBuilder.d.ts +14 -7
  2370. package/persistence/subject-builder/OneToManySubjectBuilder.js +14 -8
  2371. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  2372. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +14 -7
  2373. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +14 -8
  2374. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  2375. package/persistence/tree/ClosureSubjectExecutor.d.ts +6 -2
  2376. package/persistence/tree/ClosureSubjectExecutor.js +14 -11
  2377. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  2378. package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +4 -2
  2379. package/persistence/tree/MaterializedPathSubjectExecutor.js +5 -3
  2380. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  2381. package/persistence/tree/NestedSetSubjectExecutor.d.ts +10 -4
  2382. package/persistence/tree/NestedSetSubjectExecutor.js +13 -8
  2383. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  2384. package/platform/PlatformTools.d.ts +12 -11
  2385. package/platform/PlatformTools.js +17 -29
  2386. package/platform/PlatformTools.js.map +1 -1
  2387. package/query-builder/Alias.d.ts +1 -1
  2388. package/query-builder/Alias.js +1 -2
  2389. package/query-builder/Alias.js.map +1 -1
  2390. package/query-builder/Brackets.d.ts +2 -1
  2391. package/query-builder/Brackets.js +2 -2
  2392. package/query-builder/Brackets.js.map +1 -1
  2393. package/query-builder/DeleteQueryBuilder.d.ts +17 -6
  2394. package/query-builder/DeleteQueryBuilder.js +17 -5
  2395. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  2396. package/query-builder/InsertOrUpdateOptions.d.ts +3 -3
  2397. package/query-builder/InsertOrUpdateOptions.js +1 -2
  2398. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  2399. package/query-builder/InsertQueryBuilder.d.ts +34 -29
  2400. package/query-builder/InsertQueryBuilder.js +289 -160
  2401. package/query-builder/InsertQueryBuilder.js.map +1 -1
  2402. package/query-builder/JoinAttribute.d.ts +7 -7
  2403. package/query-builder/JoinAttribute.js +9 -21
  2404. package/query-builder/JoinAttribute.js.map +1 -1
  2405. package/query-builder/JoinOptions.js +1 -2
  2406. package/query-builder/JoinOptions.js.map +1 -1
  2407. package/query-builder/NotBrackets.js +1 -2
  2408. package/query-builder/NotBrackets.js.map +1 -1
  2409. package/query-builder/QueryBuilder.d.ts +51 -33
  2410. package/query-builder/QueryBuilder.js +81 -92
  2411. package/query-builder/QueryBuilder.js.map +1 -1
  2412. package/query-builder/QueryBuilderCte.js +1 -2
  2413. package/query-builder/QueryBuilderCte.js.map +1 -1
  2414. package/query-builder/QueryBuilderUtils.d.ts +1 -0
  2415. package/query-builder/QueryBuilderUtils.js +2 -2
  2416. package/query-builder/QueryBuilderUtils.js.map +1 -1
  2417. package/query-builder/QueryExpressionMap.d.ts +29 -30
  2418. package/query-builder/QueryExpressionMap.js +22 -29
  2419. package/query-builder/QueryExpressionMap.js.map +1 -1
  2420. package/query-builder/QueryPartialEntity.d.ts +1 -1
  2421. package/query-builder/QueryPartialEntity.js +1 -2
  2422. package/query-builder/QueryPartialEntity.js.map +1 -1
  2423. package/query-builder/RelationIdLoader.d.ts +39 -11
  2424. package/query-builder/RelationIdLoader.js +100 -63
  2425. package/query-builder/RelationIdLoader.js.map +1 -1
  2426. package/query-builder/RelationLoader.d.ts +49 -14
  2427. package/query-builder/RelationLoader.js +80 -26
  2428. package/query-builder/RelationLoader.js.map +1 -1
  2429. package/query-builder/RelationQueryBuilder.d.ts +7 -11
  2430. package/query-builder/RelationQueryBuilder.js +8 -13
  2431. package/query-builder/RelationQueryBuilder.js.map +1 -1
  2432. package/query-builder/RelationRemover.d.ts +3 -2
  2433. package/query-builder/RelationRemover.js +2 -2
  2434. package/query-builder/RelationRemover.js.map +1 -1
  2435. package/query-builder/RelationUpdater.d.ts +3 -2
  2436. package/query-builder/RelationUpdater.js +4 -4
  2437. package/query-builder/RelationUpdater.js.map +1 -1
  2438. package/query-builder/ReturningOption.d.ts +4 -0
  2439. package/query-builder/ReturningOption.js +3 -0
  2440. package/query-builder/ReturningOption.js.map +1 -0
  2441. package/query-builder/ReturningResultsEntityUpdator.d.ts +10 -6
  2442. package/query-builder/ReturningResultsEntityUpdator.js +13 -10
  2443. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  2444. package/query-builder/SelectQuery.js +1 -2
  2445. package/query-builder/SelectQuery.js.map +1 -1
  2446. package/query-builder/SelectQueryBuilder.d.ts +71 -33
  2447. package/query-builder/SelectQueryBuilder.js +337 -261
  2448. package/query-builder/SelectQueryBuilder.js.map +1 -1
  2449. package/query-builder/SelectQueryBuilderOption.js +1 -2
  2450. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  2451. package/query-builder/SoftDeleteQueryBuilder.d.ts +24 -7
  2452. package/query-builder/SoftDeleteQueryBuilder.js +35 -9
  2453. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  2454. package/query-builder/UpdateQueryBuilder.d.ts +23 -7
  2455. package/query-builder/UpdateQueryBuilder.js +52 -30
  2456. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  2457. package/query-builder/WhereClause.js +1 -2
  2458. package/query-builder/WhereClause.js.map +1 -1
  2459. package/query-builder/WhereExpressionBuilder.d.ts +2 -7
  2460. package/query-builder/WhereExpressionBuilder.js +1 -2
  2461. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  2462. package/query-builder/index.d.ts +3 -0
  2463. package/query-builder/index.js +4 -2
  2464. package/query-builder/index.js.map +1 -1
  2465. package/query-builder/relation-id/RelationIdAttribute.d.ts +4 -4
  2466. package/query-builder/relation-id/RelationIdAttribute.js +1 -2
  2467. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  2468. package/query-builder/relation-id/RelationIdLoadResult.d.ts +1 -1
  2469. package/query-builder/relation-id/RelationIdLoadResult.js +1 -2
  2470. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  2471. package/query-builder/relation-id/RelationIdLoader.d.ts +6 -6
  2472. package/query-builder/relation-id/RelationIdLoader.js +12 -13
  2473. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  2474. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.d.ts +1 -1
  2475. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +1 -2
  2476. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  2477. package/query-builder/result/DeleteResult.d.ts +1 -1
  2478. package/query-builder/result/DeleteResult.js +1 -2
  2479. package/query-builder/result/DeleteResult.js.map +1 -1
  2480. package/query-builder/result/InsertResult.d.ts +2 -2
  2481. package/query-builder/result/InsertResult.js +1 -2
  2482. package/query-builder/result/InsertResult.js.map +1 -1
  2483. package/query-builder/result/UpdateResult.d.ts +2 -2
  2484. package/query-builder/result/UpdateResult.js +1 -2
  2485. package/query-builder/result/UpdateResult.js.map +1 -1
  2486. package/query-builder/transformer/DocumentToEntityTransformer.d.ts +3 -3
  2487. package/query-builder/transformer/DocumentToEntityTransformer.js +2 -73
  2488. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  2489. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.d.ts +3 -3
  2490. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +17 -7
  2491. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  2492. package/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +6 -2
  2493. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +5 -2
  2494. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  2495. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +22 -11
  2496. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +47 -53
  2497. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  2498. package/query-runner/BaseQueryRunner.d.ts +79 -16
  2499. package/query-runner/BaseQueryRunner.js +96 -34
  2500. package/query-runner/BaseQueryRunner.js.map +1 -1
  2501. package/query-runner/QueryLock.js +4 -3
  2502. package/query-runner/QueryLock.js.map +1 -1
  2503. package/query-runner/QueryResult.js +1 -2
  2504. package/query-runner/QueryResult.js.map +1 -1
  2505. package/query-runner/QueryRunner.d.ts +52 -56
  2506. package/query-runner/QueryRunner.js +1 -2
  2507. package/query-runner/QueryRunner.js.map +1 -1
  2508. package/repository/BaseEntity.d.ts +64 -44
  2509. package/repository/BaseEntity.js +54 -31
  2510. package/repository/BaseEntity.js.map +1 -1
  2511. package/repository/EntityId.d.ts +1 -1
  2512. package/repository/EntityId.js +1 -2
  2513. package/repository/EntityId.js.map +1 -1
  2514. package/repository/FindTreesOptions.js +1 -2
  2515. package/repository/FindTreesOptions.js.map +1 -1
  2516. package/repository/MongoRepository.d.ts +79 -29
  2517. package/repository/MongoRepository.js +71 -26
  2518. package/repository/MongoRepository.js.map +1 -1
  2519. package/repository/RemoveOptions.js +1 -2
  2520. package/repository/RemoveOptions.js.map +1 -1
  2521. package/repository/Repository.d.ts +75 -52
  2522. package/repository/Repository.js +69 -47
  2523. package/repository/Repository.js.map +1 -1
  2524. package/repository/SaveOptions.js +1 -2
  2525. package/repository/SaveOptions.js.map +1 -1
  2526. package/repository/TreeRepository.d.ts +21 -4
  2527. package/repository/TreeRepository.js +27 -11
  2528. package/repository/TreeRepository.js.map +1 -1
  2529. package/repository/UpdateOptions.d.ts +11 -0
  2530. package/repository/UpdateOptions.js +3 -0
  2531. package/repository/UpdateOptions.js.map +1 -0
  2532. package/repository/UpsertOptions.d.ts +8 -2
  2533. package/repository/UpsertOptions.js +1 -2
  2534. package/repository/UpsertOptions.js.map +1 -1
  2535. package/schema-builder/MongoSchemaBuilder.d.ts +4 -4
  2536. package/schema-builder/MongoSchemaBuilder.js +5 -6
  2537. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  2538. package/schema-builder/RdbmsSchemaBuilder.d.ts +29 -9
  2539. package/schema-builder/RdbmsSchemaBuilder.js +176 -158
  2540. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  2541. package/schema-builder/SchemaBuilder.d.ts +1 -1
  2542. package/schema-builder/SchemaBuilder.js +1 -2
  2543. package/schema-builder/SchemaBuilder.js.map +1 -1
  2544. package/schema-builder/options/TableCheckOptions.js +1 -2
  2545. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  2546. package/schema-builder/options/TableColumnOptions.d.ts +0 -10
  2547. package/schema-builder/options/TableColumnOptions.js +1 -2
  2548. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  2549. package/schema-builder/options/TableExclusionOptions.d.ts +5 -0
  2550. package/schema-builder/options/TableExclusionOptions.js +1 -2
  2551. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  2552. package/schema-builder/options/TableForeignKeyOptions.js +1 -2
  2553. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  2554. package/schema-builder/options/TableIndexOptions.d.ts +7 -0
  2555. package/schema-builder/options/TableIndexOptions.js +1 -2
  2556. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  2557. package/schema-builder/options/TableIndexTypes.d.ts +1 -0
  2558. package/schema-builder/options/TableIndexTypes.js +3 -0
  2559. package/schema-builder/options/TableIndexTypes.js.map +1 -0
  2560. package/schema-builder/options/TableOptions.d.ts +6 -6
  2561. package/schema-builder/options/TableOptions.js +1 -2
  2562. package/schema-builder/options/TableOptions.js.map +1 -1
  2563. package/schema-builder/options/TableUniqueOptions.js +1 -2
  2564. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  2565. package/schema-builder/options/ViewOptions.d.ts +3 -2
  2566. package/schema-builder/options/ViewOptions.js +1 -2
  2567. package/schema-builder/options/ViewOptions.js.map +1 -1
  2568. package/schema-builder/table/Table.d.ts +23 -3
  2569. package/schema-builder/table/Table.js +21 -2
  2570. package/schema-builder/table/Table.js.map +1 -1
  2571. package/schema-builder/table/TableCheck.d.ts +3 -2
  2572. package/schema-builder/table/TableCheck.js +2 -2
  2573. package/schema-builder/table/TableCheck.js.map +1 -1
  2574. package/schema-builder/table/TableColumn.d.ts +1 -11
  2575. package/schema-builder/table/TableColumn.js +2 -12
  2576. package/schema-builder/table/TableColumn.js.map +1 -1
  2577. package/schema-builder/table/TableExclusion.d.ts +8 -2
  2578. package/schema-builder/table/TableExclusion.js +5 -2
  2579. package/schema-builder/table/TableExclusion.js.map +1 -1
  2580. package/schema-builder/table/TableForeignKey.d.ts +5 -3
  2581. package/schema-builder/table/TableForeignKey.js +3 -2
  2582. package/schema-builder/table/TableForeignKey.js.map +1 -1
  2583. package/schema-builder/table/TableIndex.d.ts +10 -2
  2584. package/schema-builder/table/TableIndex.js +5 -2
  2585. package/schema-builder/table/TableIndex.js.map +1 -1
  2586. package/schema-builder/table/TableUnique.d.ts +3 -2
  2587. package/schema-builder/table/TableUnique.js +2 -2
  2588. package/schema-builder/table/TableUnique.js.map +1 -1
  2589. package/schema-builder/util/TableUtils.d.ts +3 -3
  2590. package/schema-builder/util/TableUtils.js +1 -4
  2591. package/schema-builder/util/TableUtils.js.map +1 -1
  2592. package/schema-builder/util/ViewUtils.d.ts +3 -1
  2593. package/schema-builder/util/ViewUtils.js +3 -2
  2594. package/schema-builder/util/ViewUtils.js.map +1 -1
  2595. package/schema-builder/view/View.d.ts +11 -3
  2596. package/schema-builder/view/View.js +5 -2
  2597. package/schema-builder/view/View.js.map +1 -1
  2598. package/subscriber/Broadcaster.d.ts +76 -10
  2599. package/subscriber/Broadcaster.js +148 -66
  2600. package/subscriber/Broadcaster.js.map +1 -1
  2601. package/subscriber/BroadcasterResult.js +1 -2
  2602. package/subscriber/BroadcasterResult.js.map +1 -1
  2603. package/subscriber/EntitySubscriberInterface.d.ts +12 -12
  2604. package/subscriber/EntitySubscriberInterface.js +1 -2
  2605. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  2606. package/subscriber/event/BaseEvent.d.ts +27 -0
  2607. package/subscriber/event/BaseEvent.js +3 -0
  2608. package/subscriber/event/BaseEvent.js.map +1 -0
  2609. package/subscriber/event/InsertEvent.d.ts +4 -20
  2610. package/subscriber/event/InsertEvent.js +1 -2
  2611. package/subscriber/event/InsertEvent.js.map +1 -1
  2612. package/subscriber/event/LoadEvent.d.ts +3 -19
  2613. package/subscriber/event/LoadEvent.js +1 -2
  2614. package/subscriber/event/LoadEvent.js.map +1 -1
  2615. package/subscriber/event/QueryEvent.d.ts +4 -20
  2616. package/subscriber/event/QueryEvent.js +1 -2
  2617. package/subscriber/event/QueryEvent.js.map +1 -1
  2618. package/subscriber/event/RecoverEvent.d.ts +1 -1
  2619. package/subscriber/event/RecoverEvent.js +1 -2
  2620. package/subscriber/event/RecoverEvent.js.map +1 -1
  2621. package/subscriber/event/RemoveEvent.d.ts +3 -19
  2622. package/subscriber/event/RemoveEvent.js +1 -2
  2623. package/subscriber/event/RemoveEvent.js.map +1 -1
  2624. package/subscriber/event/SoftRemoveEvent.d.ts +1 -1
  2625. package/subscriber/event/SoftRemoveEvent.js +1 -2
  2626. package/subscriber/event/SoftRemoveEvent.js.map +1 -1
  2627. package/subscriber/event/TransactionCommitEvent.d.ts +2 -18
  2628. package/subscriber/event/TransactionCommitEvent.js +1 -2
  2629. package/subscriber/event/TransactionCommitEvent.js.map +1 -1
  2630. package/subscriber/event/TransactionRollbackEvent.d.ts +2 -18
  2631. package/subscriber/event/TransactionRollbackEvent.js +1 -2
  2632. package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  2633. package/subscriber/event/TransactionStartEvent.d.ts +2 -18
  2634. package/subscriber/event/TransactionStartEvent.js +1 -2
  2635. package/subscriber/event/TransactionStartEvent.js.map +1 -1
  2636. package/subscriber/event/UpdateEvent.d.ts +6 -22
  2637. package/subscriber/event/UpdateEvent.js +1 -2
  2638. package/subscriber/event/UpdateEvent.js.map +1 -1
  2639. package/typeorm-class-transformer-shim.js +0 -5
  2640. package/typeorm-model-shim.js +0 -10
  2641. package/util/ApplyValueTransformers.d.ts +1 -1
  2642. package/util/ApplyValueTransformers.js +6 -2
  2643. package/util/ApplyValueTransformers.js.map +1 -1
  2644. package/util/DateUtils.d.ts +36 -1
  2645. package/util/DateUtils.js +55 -8
  2646. package/util/DateUtils.js.map +1 -1
  2647. package/util/DepGraph.d.ts +16 -0
  2648. package/util/DepGraph.js +17 -3
  2649. package/util/DepGraph.js.map +1 -1
  2650. package/util/DirectoryExportedClassesLoader.d.ts +4 -5
  2651. package/util/DirectoryExportedClassesLoader.js +12 -18
  2652. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  2653. package/util/ImportUtils.d.ts +4 -0
  2654. package/util/ImportUtils.js +14 -2
  2655. package/util/ImportUtils.js.map +1 -1
  2656. package/util/InstanceChecker.d.ts +2 -2
  2657. package/util/InstanceChecker.js +1 -2
  2658. package/util/InstanceChecker.js.map +1 -1
  2659. package/util/ObjectUtils.d.ts +4 -1
  2660. package/util/ObjectUtils.js +4 -2
  2661. package/util/ObjectUtils.js.map +1 -1
  2662. package/util/OrmUtils.d.ts +43 -4
  2663. package/util/OrmUtils.js +114 -19
  2664. package/util/OrmUtils.js.map +1 -1
  2665. package/util/PathUtils.d.ts +6 -0
  2666. package/util/PathUtils.js +7 -2
  2667. package/util/PathUtils.js.map +1 -1
  2668. package/util/RandomGenerator.d.ts +9 -0
  2669. package/util/RandomGenerator.js +102 -68
  2670. package/util/RandomGenerator.js.map +1 -1
  2671. package/util/SqlTagUtils.d.ts +8 -1
  2672. package/util/SqlTagUtils.js +8 -2
  2673. package/util/SqlTagUtils.js.map +1 -1
  2674. package/util/StringUtils.d.ts +13 -8
  2675. package/util/StringUtils.js +36 -17
  2676. package/util/StringUtils.js.map +1 -1
  2677. package/util/TreeRepositoryUtils.d.ts +3 -3
  2678. package/util/TreeRepositoryUtils.js +3 -4
  2679. package/util/TreeRepositoryUtils.js.map +1 -1
  2680. package/util/Uint8ArrayUtils.d.ts +3 -0
  2681. package/util/Uint8ArrayUtils.js +45 -0
  2682. package/util/Uint8ArrayUtils.js.map +1 -0
  2683. package/util/VersionUtils.js +5 -2
  2684. package/util/VersionUtils.js.map +1 -1
  2685. package/util/escapeRegExp.js +1 -2
  2686. package/util/escapeRegExp.js.map +1 -1
  2687. package/browser/connection/BaseConnectionOptions.d.ts +0 -7
  2688. package/browser/connection/BaseConnectionOptions.js +0 -3
  2689. package/browser/connection/BaseConnectionOptions.js.map +0 -1
  2690. package/browser/connection/Connection.d.ts +0 -10
  2691. package/browser/connection/Connection.js +0 -12
  2692. package/browser/connection/Connection.js.map +0 -1
  2693. package/browser/connection/ConnectionManager.d.ts +0 -33
  2694. package/browser/connection/ConnectionManager.js +0 -62
  2695. package/browser/connection/ConnectionManager.js.map +0 -1
  2696. package/browser/connection/ConnectionOptions.d.ts +0 -9
  2697. package/browser/connection/ConnectionOptions.js +0 -3
  2698. package/browser/connection/ConnectionOptions.js.map +0 -1
  2699. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +0 -30
  2700. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +0 -107
  2701. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +0 -1
  2702. package/browser/container.d.ts +0 -39
  2703. package/browser/container.js +0 -56
  2704. package/browser/container.js.map +0 -1
  2705. package/browser/decorator/EntityRepository.d.ts +0 -9
  2706. package/browser/decorator/EntityRepository.js +0 -18
  2707. package/browser/decorator/EntityRepository.js.map +0 -1
  2708. package/browser/decorator/relations/RelationCount.d.ts +0 -8
  2709. package/browser/decorator/relations/RelationCount.js +0 -20
  2710. package/browser/decorator/relations/RelationCount.js.map +0 -1
  2711. package/browser/driver/aurora-mysql/AuroraMysqlConnection.d.ts +0 -13
  2712. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js +0 -15
  2713. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +0 -1
  2714. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +0 -3
  2715. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +0 -1
  2716. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +0 -3
  2717. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +0 -1
  2718. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +0 -3
  2719. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +0 -1
  2720. package/browser/driver/capacitor/CapacitorConnectionOptions.js +0 -3
  2721. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +0 -1
  2722. package/browser/driver/cockroachdb/CockroachConnectionOptions.js +0 -3
  2723. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +0 -1
  2724. package/browser/driver/cordova/CordovaConnectionOptions.js +0 -3
  2725. package/browser/driver/cordova/CordovaConnectionOptions.js.map +0 -1
  2726. package/browser/driver/expo/ExpoConnectionOptions.js +0 -3
  2727. package/browser/driver/expo/ExpoConnectionOptions.js.map +0 -1
  2728. package/browser/driver/expo/ExpoDriverFactory.d.ts +0 -9
  2729. package/browser/driver/expo/ExpoDriverFactory.js +0 -18
  2730. package/browser/driver/expo/ExpoDriverFactory.js.map +0 -1
  2731. package/browser/driver/expo/legacy/ExpoLegacyDriver.d.ts +0 -21
  2732. package/browser/driver/expo/legacy/ExpoLegacyDriver.js +0 -71
  2733. package/browser/driver/expo/legacy/ExpoLegacyDriver.js.map +0 -1
  2734. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.d.ts +0 -57
  2735. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js +0 -165
  2736. package/browser/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +0 -1
  2737. package/browser/driver/mongodb/MongoConnectionOptions.js +0 -3
  2738. package/browser/driver/mongodb/MongoConnectionOptions.js.map +0 -1
  2739. package/browser/driver/mysql/MysqlConnectionOptions.js +0 -3
  2740. package/browser/driver/mysql/MysqlConnectionOptions.js.map +0 -1
  2741. package/browser/driver/nativescript/NativescriptConnectionOptions.js +0 -3
  2742. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +0 -1
  2743. package/browser/driver/oracle/OracleConnectionOptions.js +0 -3
  2744. package/browser/driver/oracle/OracleConnectionOptions.js.map +0 -1
  2745. package/browser/driver/postgres/PostgresConnectionOptions.js +0 -3
  2746. package/browser/driver/postgres/PostgresConnectionOptions.js.map +0 -1
  2747. package/browser/driver/react-native/ReactNativeConnectionOptions.js +0 -3
  2748. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +0 -1
  2749. package/browser/driver/sap/SapConnectionOptions.js +0 -3
  2750. package/browser/driver/sap/SapConnectionOptions.js.map +0 -1
  2751. package/browser/driver/spanner/SpannerConnectionOptions.js +0 -3
  2752. package/browser/driver/spanner/SpannerConnectionOptions.js.map +0 -1
  2753. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +0 -55
  2754. package/browser/driver/sqlite/SqliteConnectionOptions.js +0 -3
  2755. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +0 -1
  2756. package/browser/driver/sqlite/SqliteDriver.d.ts +0 -59
  2757. package/browser/driver/sqlite/SqliteDriver.js +0 -169
  2758. package/browser/driver/sqlite/SqliteDriver.js.map +0 -1
  2759. package/browser/driver/sqlite/SqliteQueryRunner.d.ts +0 -27
  2760. package/browser/driver/sqlite/SqliteQueryRunner.js +0 -120
  2761. package/browser/driver/sqlite/SqliteQueryRunner.js.map +0 -1
  2762. package/browser/driver/sqljs/SqljsConnectionOptions.js +0 -3
  2763. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +0 -1
  2764. package/browser/driver/sqlserver/SqlServerConnectionOptions.js +0 -3
  2765. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +0 -1
  2766. package/browser/error/CustomRepositoryCannotInheritRepositoryError.d.ts +0 -7
  2767. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +0 -14
  2768. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +0 -1
  2769. package/browser/error/CustomRepositoryDoesNotHaveEntityError.d.ts +0 -7
  2770. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +0 -14
  2771. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +0 -1
  2772. package/browser/error/CustomRepositoryNotFoundError.d.ts +0 -7
  2773. package/browser/error/CustomRepositoryNotFoundError.js +0 -14
  2774. package/browser/error/CustomRepositoryNotFoundError.js.map +0 -1
  2775. package/browser/find-options/JoinOptions.d.ts +0 -76
  2776. package/browser/find-options/JoinOptions.js +0 -3
  2777. package/browser/find-options/JoinOptions.js.map +0 -1
  2778. package/browser/metadata/RelationCountMetadata.d.ts +0 -46
  2779. package/browser/metadata/RelationCountMetadata.js +0 -35
  2780. package/browser/metadata/RelationCountMetadata.js.map +0 -1
  2781. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +0 -14
  2782. package/browser/metadata-args/EntityRepositoryMetadataArgs.js +0 -3
  2783. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +0 -1
  2784. package/browser/metadata-args/RelationCountMetadataArgs.d.ts +0 -26
  2785. package/browser/metadata-args/RelationCountMetadataArgs.js +0 -3
  2786. package/browser/metadata-args/RelationCountMetadataArgs.js.map +0 -1
  2787. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +0 -53
  2788. package/browser/query-builder/relation-count/RelationCountAttribute.js +0 -76
  2789. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +0 -1
  2790. package/browser/query-builder/relation-count/RelationCountLoadResult.d.ts +0 -8
  2791. package/browser/query-builder/relation-count/RelationCountLoadResult.js +0 -3
  2792. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +0 -1
  2793. package/browser/query-builder/relation-count/RelationCountLoader.d.ts +0 -11
  2794. package/browser/query-builder/relation-count/RelationCountLoader.js +0 -164
  2795. package/browser/query-builder/relation-count/RelationCountLoader.js.map +0 -1
  2796. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.d.ts +0 -7
  2797. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +0 -51
  2798. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +0 -1
  2799. package/browser/repository/AbstractRepository.d.ts +0 -51
  2800. package/browser/repository/AbstractRepository.js +0 -88
  2801. package/browser/repository/AbstractRepository.js.map +0 -1
  2802. package/connection/BaseConnectionOptions.d.ts +0 -7
  2803. package/connection/BaseConnectionOptions.js.map +0 -1
  2804. package/connection/Connection.d.ts +0 -10
  2805. package/connection/Connection.js +0 -16
  2806. package/connection/Connection.js.map +0 -1
  2807. package/connection/ConnectionManager.d.ts +0 -33
  2808. package/connection/ConnectionManager.js +0 -66
  2809. package/connection/ConnectionManager.js.map +0 -1
  2810. package/connection/ConnectionOptions.d.ts +0 -9
  2811. package/connection/ConnectionOptions.js.map +0 -1
  2812. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +0 -30
  2813. package/connection/options-reader/ConnectionOptionsEnvReader.js +0 -111
  2814. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +0 -1
  2815. package/container.d.ts +0 -39
  2816. package/container.js +0 -60
  2817. package/container.js.map +0 -1
  2818. package/decorator/EntityRepository.d.ts +0 -9
  2819. package/decorator/EntityRepository.js +0 -21
  2820. package/decorator/EntityRepository.js.map +0 -1
  2821. package/decorator/relations/RelationCount.d.ts +0 -8
  2822. package/decorator/relations/RelationCount.js +0 -23
  2823. package/decorator/relations/RelationCount.js.map +0 -1
  2824. package/driver/aurora-mysql/AuroraMysqlConnection.d.ts +0 -13
  2825. package/driver/aurora-mysql/AuroraMysqlConnection.js +0 -19
  2826. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +0 -1
  2827. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +0 -1
  2828. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +0 -4
  2829. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +0 -1
  2830. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +0 -4
  2831. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +0 -1
  2832. package/driver/capacitor/CapacitorConnectionOptions.js.map +0 -1
  2833. package/driver/cockroachdb/CockroachConnectionOptions.js.map +0 -1
  2834. package/driver/cordova/CordovaConnectionOptions.js.map +0 -1
  2835. package/driver/expo/ExpoConnectionOptions.js.map +0 -1
  2836. package/driver/expo/ExpoDriverFactory.d.ts +0 -9
  2837. package/driver/expo/ExpoDriverFactory.js +0 -22
  2838. package/driver/expo/ExpoDriverFactory.js.map +0 -1
  2839. package/driver/expo/legacy/ExpoLegacyDriver.d.ts +0 -21
  2840. package/driver/expo/legacy/ExpoLegacyDriver.js +0 -75
  2841. package/driver/expo/legacy/ExpoLegacyDriver.js.map +0 -1
  2842. package/driver/expo/legacy/ExpoLegacyQueryRunner.d.ts +0 -57
  2843. package/driver/expo/legacy/ExpoLegacyQueryRunner.js +0 -169
  2844. package/driver/expo/legacy/ExpoLegacyQueryRunner.js.map +0 -1
  2845. package/driver/mongodb/MongoConnectionOptions.js.map +0 -1
  2846. package/driver/mysql/MysqlConnectionOptions.js +0 -4
  2847. package/driver/mysql/MysqlConnectionOptions.js.map +0 -1
  2848. package/driver/nativescript/NativescriptConnectionOptions.js +0 -4
  2849. package/driver/nativescript/NativescriptConnectionOptions.js.map +0 -1
  2850. package/driver/oracle/OracleConnectionOptions.js +0 -4
  2851. package/driver/oracle/OracleConnectionOptions.js.map +0 -1
  2852. package/driver/postgres/PostgresConnectionOptions.js +0 -4
  2853. package/driver/postgres/PostgresConnectionOptions.js.map +0 -1
  2854. package/driver/react-native/ReactNativeConnectionOptions.js +0 -4
  2855. package/driver/react-native/ReactNativeConnectionOptions.js.map +0 -1
  2856. package/driver/sap/SapConnectionOptions.js.map +0 -1
  2857. package/driver/spanner/SpannerConnectionOptions.js +0 -4
  2858. package/driver/spanner/SpannerConnectionOptions.js.map +0 -1
  2859. package/driver/sqlite/SqliteConnectionOptions.d.ts +0 -55
  2860. package/driver/sqlite/SqliteConnectionOptions.js +0 -4
  2861. package/driver/sqlite/SqliteConnectionOptions.js.map +0 -1
  2862. package/driver/sqlite/SqliteDriver.d.ts +0 -59
  2863. package/driver/sqlite/SqliteDriver.js +0 -174
  2864. package/driver/sqlite/SqliteDriver.js.map +0 -1
  2865. package/driver/sqlite/SqliteQueryRunner.d.ts +0 -27
  2866. package/driver/sqlite/SqliteQueryRunner.js +0 -124
  2867. package/driver/sqlite/SqliteQueryRunner.js.map +0 -1
  2868. package/driver/sqljs/SqljsConnectionOptions.js +0 -4
  2869. package/driver/sqljs/SqljsConnectionOptions.js.map +0 -1
  2870. package/driver/sqlserver/SqlServerConnectionOptions.js +0 -4
  2871. package/driver/sqlserver/SqlServerConnectionOptions.js.map +0 -1
  2872. package/error/CustomRepositoryCannotInheritRepositoryError.d.ts +0 -7
  2873. package/error/CustomRepositoryCannotInheritRepositoryError.js +0 -18
  2874. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +0 -1
  2875. package/error/CustomRepositoryDoesNotHaveEntityError.d.ts +0 -7
  2876. package/error/CustomRepositoryDoesNotHaveEntityError.js +0 -18
  2877. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +0 -1
  2878. package/error/CustomRepositoryNotFoundError.d.ts +0 -7
  2879. package/error/CustomRepositoryNotFoundError.js +0 -18
  2880. package/error/CustomRepositoryNotFoundError.js.map +0 -1
  2881. package/find-options/JoinOptions.d.ts +0 -76
  2882. package/find-options/JoinOptions.js.map +0 -1
  2883. package/metadata/RelationCountMetadata.d.ts +0 -46
  2884. package/metadata/RelationCountMetadata.js +0 -39
  2885. package/metadata/RelationCountMetadata.js.map +0 -1
  2886. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +0 -14
  2887. package/metadata-args/EntityRepositoryMetadataArgs.js +0 -4
  2888. package/metadata-args/EntityRepositoryMetadataArgs.js.map +0 -1
  2889. package/metadata-args/RelationCountMetadataArgs.d.ts +0 -26
  2890. package/metadata-args/RelationCountMetadataArgs.js +0 -4
  2891. package/metadata-args/RelationCountMetadataArgs.js.map +0 -1
  2892. package/query-builder/relation-count/RelationCountAttribute.d.ts +0 -53
  2893. package/query-builder/relation-count/RelationCountAttribute.js +0 -80
  2894. package/query-builder/relation-count/RelationCountAttribute.js.map +0 -1
  2895. package/query-builder/relation-count/RelationCountLoadResult.d.ts +0 -8
  2896. package/query-builder/relation-count/RelationCountLoadResult.js +0 -4
  2897. package/query-builder/relation-count/RelationCountLoadResult.js.map +0 -1
  2898. package/query-builder/relation-count/RelationCountLoader.d.ts +0 -11
  2899. package/query-builder/relation-count/RelationCountLoader.js +0 -168
  2900. package/query-builder/relation-count/RelationCountLoader.js.map +0 -1
  2901. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.d.ts +0 -7
  2902. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +0 -55
  2903. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +0 -1
  2904. package/repository/AbstractRepository.d.ts +0 -51
  2905. package/repository/AbstractRepository.js +0 -92
  2906. package/repository/AbstractRepository.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/persistence/SubjectTopologicalSorter.ts"],"names":[],"mappings":"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","file":"SubjectTopologicalSorter.js","sourcesContent":["import { Subject } from \"./Subject\"\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { TypeORMError } from \"../error\"\n\n/**\n * Orders insert or remove subjects in proper order (using topological sorting)\n * to make sure insert or remove operations are executed in a proper order.\n */\nexport class SubjectTopologicalSorter {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Insert subjects needs to be sorted.\n */\n subjects: Subject[]\n\n /**\n * Unique list of entity metadatas of this subject.\n */\n metadatas: EntityMetadata[]\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(subjects: Subject[]) {\n this.subjects = [...subjects] // copy subjects to prevent changing of sent array\n this.metadatas = this.getUniqueMetadatas(this.subjects)\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Sorts (orders) subjects in their topological order.\n */\n sort(direction: \"insert\" | \"delete\"): Subject[] {\n // if there are no metadatas it probably mean there is no subjects... we don't have to do anything here\n if (!this.metadatas.length) return this.subjects\n\n const sortedSubjects: Subject[] = []\n\n // first if we sort for deletion all junction subjects\n // junction subjects are subjects without entity and database entity set\n if (direction === \"delete\") {\n const junctionSubjects = this.subjects.filter(\n (subject) => !subject.entity && !subject.databaseEntity,\n )\n sortedSubjects.push(...junctionSubjects)\n this.removeAlreadySorted(junctionSubjects)\n }\n\n // next we always insert entities with non-nullable relations, sort them first\n const nonNullableDependencies = this.getNonNullableDependencies()\n let sortedNonNullableEntityTargets = this.toposort(\n nonNullableDependencies,\n )\n if (direction === \"insert\")\n sortedNonNullableEntityTargets =\n sortedNonNullableEntityTargets.reverse()\n\n // so we have a sorted entity targets\n // go thought each of them and find all subjects with sorted entity target\n // add those sorted targets and remove them from original array of targets\n sortedNonNullableEntityTargets.forEach((sortedEntityTarget) => {\n const entityTargetSubjects = this.subjects.filter(\n (subject) =>\n subject.metadata.targetName === sortedEntityTarget ||\n subject.metadata.inheritanceTree.some(\n (s) => s.name === sortedEntityTarget,\n ),\n )\n sortedSubjects.push(...entityTargetSubjects)\n this.removeAlreadySorted(entityTargetSubjects)\n })\n\n // next sort all other entities\n // same process as in above but with other entities\n const otherDependencies: string[][] = this.getDependencies()\n let sortedOtherEntityTargets = this.toposort(otherDependencies)\n if (direction === \"insert\")\n sortedOtherEntityTargets = sortedOtherEntityTargets.reverse()\n\n sortedOtherEntityTargets.forEach((sortedEntityTarget) => {\n const entityTargetSubjects = this.subjects.filter(\n (subject) => subject.metadata.targetName === sortedEntityTarget,\n )\n sortedSubjects.push(...entityTargetSubjects)\n this.removeAlreadySorted(entityTargetSubjects)\n })\n\n // if we have something left in the subjects add them as well\n sortedSubjects.push(...this.subjects)\n return sortedSubjects\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Removes already sorted subjects from this.subjects list of subjects.\n */\n protected removeAlreadySorted(subjects: Subject[]) {\n subjects.forEach((subject) => {\n this.subjects.splice(this.subjects.indexOf(subject), 1)\n })\n }\n\n /**\n * Extracts all unique metadatas from the given subjects.\n */\n protected getUniqueMetadatas(subjects: Subject[]) {\n const metadatas: EntityMetadata[] = []\n subjects.forEach((subject) => {\n if (metadatas.indexOf(subject.metadata) === -1)\n metadatas.push(subject.metadata)\n })\n return metadatas\n }\n\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n protected getNonNullableDependencies(): string[][] {\n return this.metadatas.reduce((dependencies, metadata) => {\n metadata.relationsWithJoinColumns.forEach((relation) => {\n if (relation.isNullable) return\n\n dependencies.push([\n metadata.targetName,\n relation.inverseEntityMetadata.targetName,\n ])\n })\n return dependencies\n }, [] as string[][])\n }\n\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n protected getDependencies(): string[][] {\n return this.metadatas.reduce((dependencies, metadata) => {\n metadata.relationsWithJoinColumns.forEach((relation) => {\n // if relation is self-referenced we skip it\n if (relation.inverseEntityMetadata === metadata) return\n\n dependencies.push([\n metadata.targetName,\n relation.inverseEntityMetadata.targetName,\n ])\n })\n return dependencies\n }, [] as string[][])\n }\n\n /**\n * Sorts given graph using topological sorting algorithm.\n *\n * Algorithm is kindly taken from https://github.com/marcelklehr/toposort repository.\n */\n protected toposort(edges: any[][]) {\n function uniqueNodes(arr: any[]) {\n const res = []\n for (let i = 0, len = arr.length; i < len; i++) {\n const edge: any = arr[i]\n if (res.indexOf(edge[0]) < 0) res.push(edge[0])\n if (res.indexOf(edge[1]) < 0) res.push(edge[1])\n }\n return res\n }\n\n const nodes = uniqueNodes(edges)\n let cursor = nodes.length,\n i = cursor\n const sorted = new Array(cursor),\n visited = new Set<number>()\n\n while (i--) {\n if (!visited.has(i)) visit(nodes[i], i, [])\n }\n\n function visit(node: any, i: number, predecessors: any[]) {\n if (predecessors.indexOf(node) >= 0) {\n throw new TypeORMError(\n \"Cyclic dependency: \" + JSON.stringify(node),\n ) // todo: better error\n }\n\n if (!~nodes.indexOf(node)) {\n throw new TypeORMError(\n \"Found unknown node. Make sure to provided all involved nodes. Unknown node: \" +\n JSON.stringify(node),\n )\n }\n\n if (visited.has(i)) return\n visited.add(i)\n\n // outgoing edges\n const outgoing = edges.filter(function (edge) {\n return edge[0] === node\n })\n if ((i = outgoing.length)) {\n const preds = predecessors.concat(node)\n do {\n const child = outgoing[--i][1]\n visit(child, nodes.indexOf(child), preds)\n } while (i)\n }\n\n sorted[--cursor] = node\n }\n\n return sorted\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"file":"SubjectTopologicalSorter.js","sourceRoot":"","sources":["../../../src/persistence/SubjectTopologicalSorter.ts"],"names":[],"mappings":";;;AAEA,oCAAuC;AAEvC;;;GAGG;AACH,MAAa,wBAAwB;IAejC,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,QAAmB;QAC3B,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA,CAAC,kDAAkD;QAChF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC3D,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;;OAGG;IACH,IAAI,CAAC,SAA8B;QAC/B,uGAAuG;QACvG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAA;QAEhD,MAAM,cAAc,GAAc,EAAE,CAAA;QAEpC,sDAAsD;QACtD,wEAAwE;QACxE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACzC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAC1D,CAAA;YACD,cAAc,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAA;YACxC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;QAC9C,CAAC;QAED,8EAA8E;QAC9E,MAAM,uBAAuB,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAA;QACjE,IAAI,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAC9C,uBAAuB,CAC1B,CAAA;QACD,IAAI,SAAS,KAAK,QAAQ;YACtB,8BAA8B;gBAC1B,8BAA8B,CAAC,OAAO,EAAE,CAAA;QAEhD,qCAAqC;QACrC,0EAA0E;QAC1E,0EAA0E;QAC1E,8BAA8B,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE;YAC1D,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC7C,CAAC,OAAO,EAAE,EAAE,CACR,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,kBAAkB;gBAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CACvC,CACR,CAAA;YACD,cAAc,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAA;YAC5C,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,+BAA+B;QAC/B,mDAAmD;QACnD,MAAM,iBAAiB,GAAe,IAAI,CAAC,eAAe,EAAE,CAAA;QAC5D,IAAI,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;QAC/D,IAAI,SAAS,KAAK,QAAQ;YACtB,wBAAwB,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAA;QAEjE,wBAAwB,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE;YACpD,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC7C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,KAAK,kBAAkB,CAClE,CAAA;YACD,cAAc,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAA;YAC5C,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;QAEF,6DAA6D;QAC7D,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrC,OAAO,cAAc,CAAA;IACzB,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;;OAGG;IACO,mBAAmB,CAAC,QAAmB;QAC7C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;;OAGG;IACO,kBAAkB,CAAC,QAAmB;QAC5C,MAAM,SAAS,GAAqB,EAAE,CAAA;QACtC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACzB,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC1C,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;QACF,OAAO,SAAS,CAAA;IACpB,CAAC;IAED;;;OAGG;IACO,0BAA0B;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE;YACpD,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnD,IAAI,QAAQ,CAAC,UAAU;oBAAE,OAAM;gBAE/B,YAAY,CAAC,IAAI,CAAC;oBACd,QAAQ,CAAC,UAAU;oBACnB,QAAQ,CAAC,qBAAqB,CAAC,UAAU;iBAC5C,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,OAAO,YAAY,CAAA;QACvB,CAAC,EAAE,EAAgB,CAAC,CAAA;IACxB,CAAC;IAED;;;OAGG;IACO,eAAe;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE;YACpD,QAAQ,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACnD,4CAA4C;gBAC5C,IAAI,QAAQ,CAAC,qBAAqB,KAAK,QAAQ;oBAAE,OAAM;gBAEvD,YAAY,CAAC,IAAI,CAAC;oBACd,QAAQ,CAAC,UAAU;oBACnB,QAAQ,CAAC,qBAAqB,CAAC,UAAU;iBAC5C,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,OAAO,YAAY,CAAA;QACvB,CAAC,EAAE,EAAgB,CAAC,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACO,QAAQ,CAAC,KAAc;QAC7B;;;WAGG;QACH,SAAS,WAAW,CAAC,GAAU;YAC3B,MAAM,GAAG,GAAG,EAAE,CAAA;YACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;gBACxB,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC/C,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YACnD,CAAC;YACD,OAAO,GAAG,CAAA;QACd,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,EACrB,CAAC,GAAG,MAAM,CAAA;QACd,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,EAC5B,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;QAE/B,OAAO,CAAC,EAAE,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAC/C,CAAC;QAED;;;;;WAKG;QACH,SAAS,KAAK,CAAC,IAAS,EAAE,CAAS,EAAE,YAAmB;YACpD,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,oBAAY,CAClB,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAC/C,CAAA,CAAC,qBAAqB;YAC3B,CAAC;YAED,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,oBAAY,CAClB,8EAA8E;oBAC1E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAC3B,CAAA;YACL,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAM;YAC1B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAEd,iBAAiB;YACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI;gBACxC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;YAC3B,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACvC,GAAG,CAAC;oBACA,MAAM,KAAK,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC9B,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;gBAC7C,CAAC,QAAQ,CAAC,EAAC;YACf,CAAC;YAED,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;QAC3B,CAAC;QAED,OAAO,MAAM,CAAA;IACjB,CAAC;CACJ;AAnOD,4DAmOC","sourcesContent":["import type { Subject } from \"./Subject\"\nimport type { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { TypeORMError } from \"../error\"\n\n/**\n * Orders insert or remove subjects in proper order (using topological sorting)\n * to make sure insert or remove operations are executed in a proper order.\n */\nexport class SubjectTopologicalSorter {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Insert subjects needs to be sorted.\n */\n subjects: Subject[]\n\n /**\n * Unique list of entity metadatas of this subject.\n */\n metadatas: EntityMetadata[]\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(subjects: Subject[]) {\n this.subjects = [...subjects] // copy subjects to prevent changing of sent array\n this.metadatas = this.getUniqueMetadatas(this.subjects)\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Sorts (orders) subjects in their topological order.\n * @param direction\n */\n sort(direction: \"insert\" | \"delete\"): Subject[] {\n // if there are no metadatas it probably mean there is no subjects... we don't have to do anything here\n if (!this.metadatas.length) return this.subjects\n\n const sortedSubjects: Subject[] = []\n\n // first if we sort for deletion all junction subjects\n // junction subjects are subjects without entity and database entity set\n if (direction === \"delete\") {\n const junctionSubjects = this.subjects.filter(\n (subject) => !subject.entity && !subject.databaseEntity,\n )\n sortedSubjects.push(...junctionSubjects)\n this.removeAlreadySorted(junctionSubjects)\n }\n\n // next we always insert entities with non-nullable relations, sort them first\n const nonNullableDependencies = this.getNonNullableDependencies()\n let sortedNonNullableEntityTargets = this.toposort(\n nonNullableDependencies,\n )\n if (direction === \"insert\")\n sortedNonNullableEntityTargets =\n sortedNonNullableEntityTargets.reverse()\n\n // so we have a sorted entity targets\n // go thought each of them and find all subjects with sorted entity target\n // add those sorted targets and remove them from original array of targets\n sortedNonNullableEntityTargets.forEach((sortedEntityTarget) => {\n const entityTargetSubjects = this.subjects.filter(\n (subject) =>\n subject.metadata.targetName === sortedEntityTarget ||\n subject.metadata.inheritanceTree.some(\n (s) => s.name === sortedEntityTarget,\n ),\n )\n sortedSubjects.push(...entityTargetSubjects)\n this.removeAlreadySorted(entityTargetSubjects)\n })\n\n // next sort all other entities\n // same process as in above but with other entities\n const otherDependencies: string[][] = this.getDependencies()\n let sortedOtherEntityTargets = this.toposort(otherDependencies)\n if (direction === \"insert\")\n sortedOtherEntityTargets = sortedOtherEntityTargets.reverse()\n\n sortedOtherEntityTargets.forEach((sortedEntityTarget) => {\n const entityTargetSubjects = this.subjects.filter(\n (subject) => subject.metadata.targetName === sortedEntityTarget,\n )\n sortedSubjects.push(...entityTargetSubjects)\n this.removeAlreadySorted(entityTargetSubjects)\n })\n\n // if we have something left in the subjects add them as well\n sortedSubjects.push(...this.subjects)\n return sortedSubjects\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Removes already sorted subjects from this.subjects list of subjects.\n * @param subjects\n */\n protected removeAlreadySorted(subjects: Subject[]) {\n subjects.forEach((subject) => {\n this.subjects.splice(this.subjects.indexOf(subject), 1)\n })\n }\n\n /**\n * Extracts all unique metadatas from the given subjects.\n * @param subjects\n */\n protected getUniqueMetadatas(subjects: Subject[]) {\n const metadatas: EntityMetadata[] = []\n subjects.forEach((subject) => {\n if (metadatas.indexOf(subject.metadata) === -1)\n metadatas.push(subject.metadata)\n })\n return metadatas\n }\n\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n protected getNonNullableDependencies(): string[][] {\n return this.metadatas.reduce((dependencies, metadata) => {\n metadata.relationsWithJoinColumns.forEach((relation) => {\n if (relation.isNullable) return\n\n dependencies.push([\n metadata.targetName,\n relation.inverseEntityMetadata.targetName,\n ])\n })\n return dependencies\n }, [] as string[][])\n }\n\n /**\n * Gets dependency tree for all entity metadatas with non-nullable relations.\n * We need to execute insertions first for entities which non-nullable relations.\n */\n protected getDependencies(): string[][] {\n return this.metadatas.reduce((dependencies, metadata) => {\n metadata.relationsWithJoinColumns.forEach((relation) => {\n // if relation is self-referenced we skip it\n if (relation.inverseEntityMetadata === metadata) return\n\n dependencies.push([\n metadata.targetName,\n relation.inverseEntityMetadata.targetName,\n ])\n })\n return dependencies\n }, [] as string[][])\n }\n\n /**\n * Sorts given graph using topological sorting algorithm.\n *\n * Algorithm is kindly taken from https://github.com/marcelklehr/toposort repository.\n * @param edges\n */\n protected toposort(edges: any[][]) {\n /**\n *\n * @param arr\n */\n function uniqueNodes(arr: any[]) {\n const res = []\n for (let i = 0, len = arr.length; i < len; i++) {\n const edge: any = arr[i]\n if (res.indexOf(edge[0]) < 0) res.push(edge[0])\n if (res.indexOf(edge[1]) < 0) res.push(edge[1])\n }\n return res\n }\n\n const nodes = uniqueNodes(edges)\n let cursor = nodes.length,\n i = cursor\n const sorted = new Array(cursor),\n visited = new Set<number>()\n\n while (i--) {\n if (!visited.has(i)) visit(nodes[i], i, [])\n }\n\n /**\n *\n * @param node\n * @param i\n * @param predecessors\n */\n function visit(node: any, i: number, predecessors: any[]) {\n if (predecessors.indexOf(node) >= 0) {\n throw new TypeORMError(\n \"Cyclic dependency: \" + JSON.stringify(node),\n ) // todo: better error\n }\n\n if (!~nodes.indexOf(node)) {\n throw new TypeORMError(\n \"Found unknown node. Make sure to provided all involved nodes. Unknown node: \" +\n JSON.stringify(node),\n )\n }\n\n if (visited.has(i)) return\n visited.add(i)\n\n // outgoing edges\n const outgoing = edges.filter(function (edge) {\n return edge[0] === node\n })\n if ((i = outgoing.length)) {\n const preds = predecessors.concat(node)\n do {\n const child = outgoing[--i][1]\n visit(child, nodes.indexOf(child), preds)\n } while (i)\n }\n\n sorted[--cursor] = node\n }\n\n return sorted\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Subject } from "../Subject";
2
- import { ObjectLiteral } from "../../common/ObjectLiteral";
2
+ import type { ObjectLiteral } from "../../common/ObjectLiteral";
3
3
  /**
4
4
  * Finds all cascade operations of the given subject and cascade operations of the found cascaded subjects,
5
5
  * e.g. builds a cascade tree and creates a subjects for them.
@@ -9,11 +9,15 @@ export declare class CascadesSubjectBuilder {
9
9
  constructor(allSubjects: Subject[]);
10
10
  /**
11
11
  * Builds a cascade subjects tree and pushes them in into the given array of subjects.
12
+ * @param subject
13
+ * @param operationType
12
14
  */
13
15
  build(subject: Subject, operationType: "save" | "remove" | "soft-remove" | "recover"): void;
14
16
  /**
15
17
  * Finds subject where entity like given subject's entity.
16
18
  * Comparison made by entity id.
19
+ * @param entityTarget
20
+ * @param entity
17
21
  */
18
22
  protected findByPersistEntityLike(entityTarget: Function | string, entity: ObjectLiteral): Subject | undefined;
19
23
  }
@@ -19,6 +19,8 @@ class CascadesSubjectBuilder {
19
19
  // ---------------------------------------------------------------------
20
20
  /**
21
21
  * Builds a cascade subjects tree and pushes them in into the given array of subjects.
22
+ * @param subject
23
+ * @param operationType
22
24
  */
23
25
  build(subject, operationType) {
24
26
  subject.metadata
@@ -90,6 +92,8 @@ class CascadesSubjectBuilder {
90
92
  /**
91
93
  * Finds subject where entity like given subject's entity.
92
94
  * Comparison made by entity id.
95
+ * @param entityTarget
96
+ * @param entity
93
97
  */
94
98
  findByPersistEntityLike(entityTarget, entity) {
95
99
  return this.allSubjects.find((subject) => {
@@ -103,5 +107,4 @@ class CascadesSubjectBuilder {
103
107
  }
104
108
  }
105
109
  exports.CascadesSubjectBuilder = CascadesSubjectBuilder;
106
-
107
- //# sourceMappingURL=CascadesSubjectBuilder.js.map
110
+ //# sourceMappingURL=CascadesSubjectBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/persistence/subject-builder/CascadesSubjectBuilder.ts"],"names":[],"mappings":"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","file":"CascadesSubjectBuilder.js","sourcesContent":["import { Subject } from \"../Subject\"\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\n\n/**\n * Finds all cascade operations of the given subject and cascade operations of the found cascaded subjects,\n * e.g. builds a cascade tree and creates a subjects for them.\n */\nexport class CascadesSubjectBuilder {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(protected allSubjects: Subject[]) {}\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds a cascade subjects tree and pushes them in into the given array of subjects.\n */\n build(\n subject: Subject,\n operationType: \"save\" | \"remove\" | \"soft-remove\" | \"recover\",\n ) {\n subject.metadata\n .extractRelationValuesFromEntity(\n subject.entity!,\n subject.metadata.relations,\n ) // todo: we can create EntityMetadata.cascadeRelations\n .forEach(([relation, relationEntity, relationEntityMetadata]) => {\n // we need only defined values and insert, update, soft-remove or recover cascades of the relation should be set\n if (\n relationEntity === undefined ||\n relationEntity === null ||\n (!relation.isCascadeInsert &&\n !relation.isCascadeUpdate &&\n !relation.isCascadeSoftRemove &&\n !relation.isCascadeRecover)\n )\n return\n\n // if relation entity is just a relation id set (for example post.tag = 1)\n // then we don't really need to check cascades since there is no object to insert or update\n if (!ObjectUtils.isObject(relationEntity)) return\n\n // if we already has this entity in list of operated subjects then skip it to avoid recursion\n const alreadyExistRelationEntitySubject =\n this.findByPersistEntityLike(\n relationEntityMetadata.target,\n relationEntity,\n )\n if (alreadyExistRelationEntitySubject) {\n if (\n alreadyExistRelationEntitySubject.canBeInserted ===\n false\n )\n // if its not marked for insertion yet\n alreadyExistRelationEntitySubject.canBeInserted =\n relation.isCascadeInsert === true &&\n operationType === \"save\"\n if (\n alreadyExistRelationEntitySubject.canBeUpdated === false\n )\n // if its not marked for update yet\n alreadyExistRelationEntitySubject.canBeUpdated =\n relation.isCascadeUpdate === true &&\n operationType === \"save\"\n if (\n alreadyExistRelationEntitySubject.canBeSoftRemoved ===\n false\n )\n // if its not marked for removal yet\n alreadyExistRelationEntitySubject.canBeSoftRemoved =\n relation.isCascadeSoftRemove === true &&\n operationType === \"soft-remove\"\n if (\n alreadyExistRelationEntitySubject.canBeRecovered ===\n false\n )\n // if its not marked for recovery yet\n alreadyExistRelationEntitySubject.canBeRecovered =\n relation.isCascadeRecover === true &&\n operationType === \"recover\"\n return\n }\n\n // mark subject with what we can do with it\n // and add to the array of subjects to load only if there is no same entity there already\n const relationEntitySubject = new Subject({\n metadata: relationEntityMetadata,\n parentSubject: subject,\n entity: relationEntity,\n canBeInserted:\n relation.isCascadeInsert === true &&\n operationType === \"save\",\n canBeUpdated:\n relation.isCascadeUpdate === true &&\n operationType === \"save\",\n canBeSoftRemoved:\n relation.isCascadeSoftRemove === true &&\n operationType === \"soft-remove\",\n canBeRecovered:\n relation.isCascadeRecover === true &&\n operationType === \"recover\",\n })\n this.allSubjects.push(relationEntitySubject)\n\n // go recursively and find other entities we need to insert/update\n this.build(relationEntitySubject, operationType)\n })\n }\n\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n\n /**\n * Finds subject where entity like given subject's entity.\n * Comparison made by entity id.\n */\n protected findByPersistEntityLike(\n entityTarget: Function | string,\n entity: ObjectLiteral,\n ): Subject | undefined {\n return this.allSubjects.find((subject) => {\n if (!subject.entity) return false\n\n if (subject.entity === entity) return true\n\n return (\n subject.metadata.target === entityTarget &&\n subject.metadata.compareEntities(\n subject.entityWithFulfilledIds!,\n entity,\n )\n )\n })\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"CascadesSubjectBuilder.js","sourceRoot":"","sources":["../../../../src/persistence/subject-builder/CascadesSubjectBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Subject } from \"../Subject\"\nimport type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\n\n/**\n * Finds all cascade operations of the given subject and cascade operations of the found cascaded subjects,\n * e.g. builds a cascade tree and creates a subjects for them.\n */\nexport class CascadesSubjectBuilder {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(protected allSubjects: Subject[]) {}\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds a cascade subjects tree and pushes them in into the given array of subjects.\n * @param subject\n * @param operationType\n */\n build(\n subject: Subject,\n operationType: \"save\" | \"remove\" | \"soft-remove\" | \"recover\",\n ) {\n subject.metadata\n .extractRelationValuesFromEntity(\n subject.entity!,\n subject.metadata.relations,\n ) // todo: we can create EntityMetadata.cascadeRelations\n .forEach(([relation, relationEntity, relationEntityMetadata]) => {\n // we need only defined values and insert, update, soft-remove or recover cascades of the relation should be set\n if (\n relationEntity === undefined ||\n relationEntity === null ||\n (!relation.isCascadeInsert &&\n !relation.isCascadeUpdate &&\n !relation.isCascadeSoftRemove &&\n !relation.isCascadeRecover)\n )\n return\n\n // if relation entity is just a relation id set (for example post.tag = 1)\n // then we don't really need to check cascades since there is no object to insert or update\n if (!ObjectUtils.isObject(relationEntity)) return\n\n // if we already has this entity in list of operated subjects then skip it to avoid recursion\n const alreadyExistRelationEntitySubject =\n this.findByPersistEntityLike(\n relationEntityMetadata.target,\n relationEntity,\n )\n if (alreadyExistRelationEntitySubject) {\n if (\n alreadyExistRelationEntitySubject.canBeInserted ===\n false\n )\n // if its not marked for insertion yet\n alreadyExistRelationEntitySubject.canBeInserted =\n relation.isCascadeInsert === true &&\n operationType === \"save\"\n if (\n alreadyExistRelationEntitySubject.canBeUpdated === false\n )\n // if its not marked for update yet\n alreadyExistRelationEntitySubject.canBeUpdated =\n relation.isCascadeUpdate === true &&\n operationType === \"save\"\n if (\n alreadyExistRelationEntitySubject.canBeSoftRemoved ===\n false\n )\n // if its not marked for removal yet\n alreadyExistRelationEntitySubject.canBeSoftRemoved =\n relation.isCascadeSoftRemove === true &&\n operationType === \"soft-remove\"\n if (\n alreadyExistRelationEntitySubject.canBeRecovered ===\n false\n )\n // if its not marked for recovery yet\n alreadyExistRelationEntitySubject.canBeRecovered =\n relation.isCascadeRecover === true &&\n operationType === \"recover\"\n return\n }\n\n // mark subject with what we can do with it\n // and add to the array of subjects to load only if there is no same entity there already\n const relationEntitySubject = new Subject({\n metadata: relationEntityMetadata,\n parentSubject: subject,\n entity: relationEntity,\n canBeInserted:\n relation.isCascadeInsert === true &&\n operationType === \"save\",\n canBeUpdated:\n relation.isCascadeUpdate === true &&\n operationType === \"save\",\n canBeSoftRemoved:\n relation.isCascadeSoftRemove === true &&\n operationType === \"soft-remove\",\n canBeRecovered:\n relation.isCascadeRecover === true &&\n operationType === \"recover\",\n })\n this.allSubjects.push(relationEntitySubject)\n\n // go recursively and find other entities we need to insert/update\n this.build(relationEntitySubject, operationType)\n })\n }\n\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n\n /**\n * Finds subject where entity like given subject's entity.\n * Comparison made by entity id.\n * @param entityTarget\n * @param entity\n */\n protected findByPersistEntityLike(\n entityTarget: Function | string,\n entity: ObjectLiteral,\n ): Subject | undefined {\n return this.allSubjects.find((subject) => {\n if (!subject.entity) return false\n\n if (subject.entity === entity) return true\n\n return (\n subject.metadata.target === entityTarget &&\n subject.metadata.compareEntities(\n subject.entityWithFulfilledIds!,\n entity,\n )\n )\n })\n }\n}\n"]}
@@ -1,13 +1,17 @@
1
1
  import { Subject } from "../Subject";
2
- import { ObjectLiteral } from "../../common/ObjectLiteral";
3
- import { RelationMetadata } from "../../metadata/RelationMetadata";
2
+ import type { ObjectLiteral } from "../../common/ObjectLiteral";
3
+ import type { RelationMetadata } from "../../metadata/RelationMetadata";
4
4
  /**
5
5
  * Builds operations needs to be executed for many-to-many relations of the given subjects.
6
6
  *
7
- * by example: post contains owner many-to-many relation with categories in the property called "categories", e.g.
8
- * @ManyToMany(type => Category, category => category.posts) categories: Category[]
9
- * If user adds categories into the post and saves post we need to bind them.
10
- * This operation requires updation of junction table.
7
+ * Example:
8
+ *
9
+ * `Post` owns a many-to-many relation with `Category` in the property called `categories`, e.g.:
10
+ *
11
+ * `@ManyToMany(type => Category, category => category.posts) categories: Category[]`
12
+ *
13
+ * If the user adds categories into the post and saves post we need to bind them.
14
+ * This operation requires updating the junction table.
11
15
  */
12
16
  export declare class ManyToManySubjectBuilder {
13
17
  protected subjects: Subject[];
@@ -18,17 +22,23 @@ export declare class ManyToManySubjectBuilder {
18
22
  build(): void;
19
23
  /**
20
24
  * Builds operations for removal of all many-to-many records of all many-to-many relations of the given subject.
25
+ * @param subject
21
26
  */
22
27
  buildForAllRemoval(subject: Subject): void;
23
28
  /**
24
29
  * Builds operations for a given subject and relation.
25
30
  *
26
31
  * by example: subject is "post" entity we are saving here and relation is "categories" inside it here.
32
+ * @param subject
33
+ * @param relation
27
34
  */
28
35
  protected buildForSubjectRelation(subject: Subject, relation: RelationMetadata): void;
29
36
  /**
30
37
  * Creates identifiers for junction table.
31
38
  * Example: { postId: 1, categoryId: 2 }
39
+ * @param subject
40
+ * @param relation
41
+ * @param relationId
32
42
  */
33
43
  protected buildJunctionIdentifier(subject: Subject, relation: RelationMetadata, relationId: ObjectLiteral): ObjectLiteral;
34
44
  }
@@ -6,10 +6,14 @@ const OrmUtils_1 = require("../../util/OrmUtils");
6
6
  /**
7
7
  * Builds operations needs to be executed for many-to-many relations of the given subjects.
8
8
  *
9
- * by example: post contains owner many-to-many relation with categories in the property called "categories", e.g.
10
- * @ManyToMany(type => Category, category => category.posts) categories: Category[]
11
- * If user adds categories into the post and saves post we need to bind them.
12
- * This operation requires updation of junction table.
9
+ * Example:
10
+ *
11
+ * `Post` owns a many-to-many relation with `Category` in the property called `categories`, e.g.:
12
+ *
13
+ * `@ManyToMany(type => Category, category => category.posts) categories: Category[]`
14
+ *
15
+ * If the user adds categories into the post and saves post we need to bind them.
16
+ * This operation requires updating the junction table.
13
17
  */
14
18
  class ManyToManySubjectBuilder {
15
19
  // ---------------------------------------------------------------------
@@ -40,6 +44,7 @@ class ManyToManySubjectBuilder {
40
44
  }
41
45
  /**
42
46
  * Builds operations for removal of all many-to-many records of all many-to-many relations of the given subject.
47
+ * @param subject
43
48
  */
44
49
  buildForAllRemoval(subject) {
45
50
  // if subject does not have a database entity then it means it does not exist in the database
@@ -76,6 +81,8 @@ class ManyToManySubjectBuilder {
76
81
  * Builds operations for a given subject and relation.
77
82
  *
78
83
  * by example: subject is "post" entity we are saving here and relation is "categories" inside it here.
84
+ * @param subject
85
+ * @param relation
79
86
  */
80
87
  buildForSubjectRelation(subject, relation) {
81
88
  // load from db all relation ids of inverse entities that are "bind" to the subject's entity
@@ -197,6 +204,9 @@ class ManyToManySubjectBuilder {
197
204
  /**
198
205
  * Creates identifiers for junction table.
199
206
  * Example: { postId: 1, categoryId: 2 }
207
+ * @param subject
208
+ * @param relation
209
+ * @param relationId
200
210
  */
201
211
  buildJunctionIdentifier(subject, relation, relationId) {
202
212
  const ownerEntityMap = relation.isOwning ? subject.entity : relationId;
@@ -214,5 +224,4 @@ class ManyToManySubjectBuilder {
214
224
  }
215
225
  }
216
226
  exports.ManyToManySubjectBuilder = ManyToManySubjectBuilder;
217
-
218
- //# sourceMappingURL=ManyToManySubjectBuilder.js.map
227
+ //# sourceMappingURL=ManyToManySubjectBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/persistence/subject-builder/ManyToManySubjectBuilder.ts"],"names":[],"mappings":"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","file":"ManyToManySubjectBuilder.js","sourcesContent":["import { Subject } from \"../Subject\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { RelationMetadata } from \"../../metadata/RelationMetadata\"\n\n/**\n * Builds operations needs to be executed for many-to-many relations of the given subjects.\n *\n * by example: post contains owner many-to-many relation with categories in the property called \"categories\", e.g.\n * @ManyToMany(type => Category, category => category.posts) categories: Category[]\n * If user adds categories into the post and saves post we need to bind them.\n * This operation requires updation of junction table.\n */\nexport class ManyToManySubjectBuilder {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(protected subjects: Subject[]) {}\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds operations for any changes in the many-to-many relations of the subjects.\n */\n build(): void {\n this.subjects.forEach((subject) => {\n // if subject doesn't have entity then no need to find something that should be inserted or removed\n if (!subject.entity) return\n\n // go through all persistence enabled many-to-many relations and build subject operations for them\n subject.metadata.manyToManyRelations.forEach((relation) => {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false) return\n\n this.buildForSubjectRelation(subject, relation)\n })\n })\n }\n\n /**\n * Builds operations for removal of all many-to-many records of all many-to-many relations of the given subject.\n */\n buildForAllRemoval(subject: Subject) {\n // if subject does not have a database entity then it means it does not exist in the database\n // if it does not exist in the database then we don't have anything for deletion\n if (!subject.databaseEntity) return\n\n // go through all persistence enabled many-to-many relations and build subject operations for them\n subject.metadata.manyToManyRelations.forEach((relation) => {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false) return\n\n // get all related entities (actually related entity relation ids) bind to this subject entity\n // by example: returns category ids of the post we are currently working with (subject.entity is post)\n const relatedEntityRelationIdsInDatabase: ObjectLiteral[] =\n relation.getEntityValue(subject.databaseEntity!)\n\n // go through all related entities and create a new junction subject for each row in junction table\n relatedEntityRelationIdsInDatabase.forEach((relationId) => {\n const junctionSubject = new Subject({\n metadata: relation.junctionEntityMetadata!,\n parentSubject: subject,\n mustBeRemoved: true,\n identifier: this.buildJunctionIdentifier(\n subject,\n relation,\n relationId,\n ),\n })\n\n // we use unshift because we need to perform those operations before post deletion is performed\n // but post deletion was already added as an subject\n // this is temporary solution, later we need to implement proper sorting of subjects before their removal\n this.subjects.push(junctionSubject)\n })\n })\n }\n\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds operations for a given subject and relation.\n *\n * by example: subject is \"post\" entity we are saving here and relation is \"categories\" inside it here.\n */\n protected buildForSubjectRelation(\n subject: Subject,\n relation: RelationMetadata,\n ) {\n // load from db all relation ids of inverse entities that are \"bind\" to the subject's entity\n // this way we gonna check which relation ids are missing and which are new (e.g. inserted or removed)\n let databaseRelatedEntityIds: ObjectLiteral[] = []\n\n // if subject don't have database entity it means all related entities in persisted subject are new and must be bind\n // and we don't need to remove something that is not exist\n if (subject.databaseEntity) {\n const databaseRelatedEntityValue = relation.getEntityValue(\n subject.databaseEntity,\n )\n if (databaseRelatedEntityValue) {\n databaseRelatedEntityIds = databaseRelatedEntityValue.map(\n (e: any) =>\n relation.inverseEntityMetadata.getEntityIdMap(e),\n )\n }\n }\n\n // extract entity's relation value\n // by example: categories inside our post (subject.entity is post)\n let relatedEntities: ObjectLiteral[] = relation.getEntityValue(\n subject.entity!,\n )\n if (relatedEntities === null)\n // if value set to null its equal if we set it to empty array - all items must be removed from the database\n relatedEntities = []\n if (!Array.isArray(relatedEntities)) return\n\n // from all related entities find only those which aren't found in the db - for them we will create operation subjects\n relatedEntities.forEach((relatedEntity) => {\n // by example: relatedEntity is category from categories saved with post\n\n // todo: check how it will work for entities which are saved by cascades, but aren't saved in the database yet\n\n // extract only relation id from the related entities, since we only need it for comparison\n // by example: extract from category only relation id (category id, or let's say category title, depend on join column options)\n let relatedEntityRelationIdMap =\n relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity)\n\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n const relatedEntitySubject = this.subjects.find((subject) => {\n return subject.entity === relatedEntity\n })\n\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relatedEntityRelationIdMap = relatedEntitySubject.identifier\n\n // if related entity relation id map is empty it means related entity is newly persisted\n if (!relatedEntityRelationIdMap) {\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if related entity does not have a subject then it means user tries to bind entity which wasn't saved\n // in this persistence because he didn't pass this entity for save or he did not set cascades\n // but without entity being inserted we cannot bind it in the relation operation, so we throw an exception here\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if (!relatedEntitySubject)\n // throw new TypeORMError(`Many-to-many relation \"${relation.entityMetadata.name}.${relation.propertyPath}\" contains ` +\n // `entities which do not exist in the database yet, thus they cannot be bind in the database. ` +\n // `Please setup cascade insertion or save entities before binding it.`);\n if (!relatedEntitySubject) return\n }\n\n // try to find related entity in the database\n // by example: find post's category in the database post's categories\n const relatedEntityExistInDatabase = databaseRelatedEntityIds.find(\n (databaseRelatedEntityRelationId) => {\n return OrmUtils.compareIds(\n databaseRelatedEntityRelationId,\n relatedEntityRelationIdMap,\n )\n },\n )\n\n // if entity is found then don't do anything - it means binding in junction table already exist, we don't need to add anything\n if (relatedEntityExistInDatabase) return\n\n const ownerValue = relation.isOwning\n ? subject\n : relatedEntitySubject || relatedEntity // by example: ownerEntityMap is post from subject here\n const inverseValue = relation.isOwning\n ? relatedEntitySubject || relatedEntity\n : subject // by example: inverseEntityMap is category from categories array here\n\n // create a new subject for insert operation of junction rows\n const junctionSubject = new Subject({\n metadata: relation.junctionEntityMetadata!,\n parentSubject: subject,\n canBeInserted: true,\n })\n this.subjects.push(junctionSubject)\n\n relation.junctionEntityMetadata!.ownerColumns.forEach((column) => {\n junctionSubject.changeMaps.push({\n column: column,\n value: ownerValue,\n // valueFactory: (value) => column.referencedColumn!.getEntityValue(value) // column.referencedColumn!.getEntityValue(ownerEntityMap),\n })\n })\n\n relation.junctionEntityMetadata!.inverseColumns.forEach(\n (column) => {\n junctionSubject.changeMaps.push({\n column: column,\n value: inverseValue,\n // valueFactory: (value) => column.referencedColumn!.getEntityValue(value) // column.referencedColumn!.getEntityValue(inverseEntityMap),\n })\n },\n )\n })\n\n // get all inverse entities relation ids that are \"bind\" to the currently persisted entity\n const changedInverseEntityRelationIds: ObjectLiteral[] = []\n relatedEntities.forEach((relatedEntity) => {\n // relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity)\n let relatedEntityRelationIdMap =\n relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity)\n\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n const relatedEntitySubject = this.subjects.find((subject) => {\n return subject.entity === relatedEntity\n })\n\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relatedEntityRelationIdMap = relatedEntitySubject.identifier\n\n if (\n relatedEntityRelationIdMap !== undefined &&\n relatedEntityRelationIdMap !== null\n )\n changedInverseEntityRelationIds.push(relatedEntityRelationIdMap)\n })\n\n // now from all entities in the persisted entity find only those which aren't found in the db\n const removedJunctionEntityIds = databaseRelatedEntityIds.filter(\n (existRelationId) => {\n return !changedInverseEntityRelationIds.find(\n (changedRelationId) => {\n return OrmUtils.compareIds(\n changedRelationId,\n existRelationId,\n )\n },\n )\n },\n )\n\n // finally create a new junction remove operations for missing related entities\n removedJunctionEntityIds.forEach((removedEntityRelationId) => {\n const junctionSubject = new Subject({\n metadata: relation.junctionEntityMetadata!,\n parentSubject: subject,\n mustBeRemoved: true,\n identifier: this.buildJunctionIdentifier(\n subject,\n relation,\n removedEntityRelationId,\n ),\n })\n this.subjects.push(junctionSubject)\n })\n }\n\n /**\n * Creates identifiers for junction table.\n * Example: { postId: 1, categoryId: 2 }\n */\n protected buildJunctionIdentifier(\n subject: Subject,\n relation: RelationMetadata,\n relationId: ObjectLiteral,\n ) {\n const ownerEntityMap = relation.isOwning ? subject.entity! : relationId\n const inverseEntityMap = relation.isOwning\n ? relationId\n : subject.entity!\n\n const identifier: ObjectLiteral = {}\n relation.junctionEntityMetadata!.ownerColumns.forEach((column) => {\n OrmUtils.mergeDeep(\n identifier,\n column.createValueMap(\n column.referencedColumn!.getEntityValue(ownerEntityMap),\n ),\n )\n })\n relation.junctionEntityMetadata!.inverseColumns.forEach((column) => {\n OrmUtils.mergeDeep(\n identifier,\n column.createValueMap(\n column.referencedColumn!.getEntityValue(inverseEntityMap),\n ),\n )\n })\n return identifier\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"ManyToManySubjectBuilder.js","sourceRoot":"","sources":["../../../../src/persistence/subject-builder/ManyToManySubjectBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Subject } from \"../Subject\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport type { RelationMetadata } from \"../../metadata/RelationMetadata\"\n\n/**\n * Builds operations needs to be executed for many-to-many relations of the given subjects.\n *\n * Example:\n *\n * `Post` owns a many-to-many relation with `Category` in the property called `categories`, e.g.:\n *\n * `@ManyToMany(type => Category, category => category.posts) categories: Category[]`\n *\n * If the user adds categories into the post and saves post we need to bind them.\n * This operation requires updating the junction table.\n */\nexport class ManyToManySubjectBuilder {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(protected subjects: Subject[]) {}\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds operations for any changes in the many-to-many relations of the subjects.\n */\n build(): void {\n this.subjects.forEach((subject) => {\n // if subject doesn't have entity then no need to find something that should be inserted or removed\n if (!subject.entity) return\n\n // go through all persistence enabled many-to-many relations and build subject operations for them\n subject.metadata.manyToManyRelations.forEach((relation) => {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false) return\n\n this.buildForSubjectRelation(subject, relation)\n })\n })\n }\n\n /**\n * Builds operations for removal of all many-to-many records of all many-to-many relations of the given subject.\n * @param subject\n */\n buildForAllRemoval(subject: Subject) {\n // if subject does not have a database entity then it means it does not exist in the database\n // if it does not exist in the database then we don't have anything for deletion\n if (!subject.databaseEntity) return\n\n // go through all persistence enabled many-to-many relations and build subject operations for them\n subject.metadata.manyToManyRelations.forEach((relation) => {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false) return\n\n // get all related entities (actually related entity relation ids) bind to this subject entity\n // by example: returns category ids of the post we are currently working with (subject.entity is post)\n const relatedEntityRelationIdsInDatabase: ObjectLiteral[] =\n relation.getEntityValue(subject.databaseEntity!)\n\n // go through all related entities and create a new junction subject for each row in junction table\n relatedEntityRelationIdsInDatabase.forEach((relationId) => {\n const junctionSubject = new Subject({\n metadata: relation.junctionEntityMetadata!,\n parentSubject: subject,\n mustBeRemoved: true,\n identifier: this.buildJunctionIdentifier(\n subject,\n relation,\n relationId,\n ),\n })\n\n // we use unshift because we need to perform those operations before post deletion is performed\n // but post deletion was already added as an subject\n // this is temporary solution, later we need to implement proper sorting of subjects before their removal\n this.subjects.push(junctionSubject)\n })\n })\n }\n\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds operations for a given subject and relation.\n *\n * by example: subject is \"post\" entity we are saving here and relation is \"categories\" inside it here.\n * @param subject\n * @param relation\n */\n protected buildForSubjectRelation(\n subject: Subject,\n relation: RelationMetadata,\n ) {\n // load from db all relation ids of inverse entities that are \"bind\" to the subject's entity\n // this way we gonna check which relation ids are missing and which are new (e.g. inserted or removed)\n let databaseRelatedEntityIds: ObjectLiteral[] = []\n\n // if subject don't have database entity it means all related entities in persisted subject are new and must be bind\n // and we don't need to remove something that is not exist\n if (subject.databaseEntity) {\n const databaseRelatedEntityValue = relation.getEntityValue(\n subject.databaseEntity,\n )\n if (databaseRelatedEntityValue) {\n databaseRelatedEntityIds = databaseRelatedEntityValue.map(\n (e: any) =>\n relation.inverseEntityMetadata.getEntityIdMap(e),\n )\n }\n }\n\n // extract entity's relation value\n // by example: categories inside our post (subject.entity is post)\n let relatedEntities: ObjectLiteral[] = relation.getEntityValue(\n subject.entity!,\n )\n if (relatedEntities === null)\n // if value set to null its equal if we set it to empty array - all items must be removed from the database\n relatedEntities = []\n if (!Array.isArray(relatedEntities)) return\n\n // from all related entities find only those which aren't found in the db - for them we will create operation subjects\n relatedEntities.forEach((relatedEntity) => {\n // by example: relatedEntity is category from categories saved with post\n\n // todo: check how it will work for entities which are saved by cascades, but aren't saved in the database yet\n\n // extract only relation id from the related entities, since we only need it for comparison\n // by example: extract from category only relation id (category id, or let's say category title, depend on join column options)\n let relatedEntityRelationIdMap =\n relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity)\n\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n const relatedEntitySubject = this.subjects.find((subject) => {\n return subject.entity === relatedEntity\n })\n\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relatedEntityRelationIdMap = relatedEntitySubject.identifier\n\n // if related entity relation id map is empty it means related entity is newly persisted\n if (!relatedEntityRelationIdMap) {\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if related entity does not have a subject then it means user tries to bind entity which wasn't saved\n // in this persistence because he didn't pass this entity for save or he did not set cascades\n // but without entity being inserted we cannot bind it in the relation operation, so we throw an exception here\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if (!relatedEntitySubject)\n // throw new TypeORMError(`Many-to-many relation \"${relation.entityMetadata.name}.${relation.propertyPath}\" contains ` +\n // `entities which do not exist in the database yet, thus they cannot be bind in the database. ` +\n // `Please setup cascade insertion or save entities before binding it.`);\n if (!relatedEntitySubject) return\n }\n\n // try to find related entity in the database\n // by example: find post's category in the database post's categories\n const relatedEntityExistInDatabase = databaseRelatedEntityIds.find(\n (databaseRelatedEntityRelationId) => {\n return OrmUtils.compareIds(\n databaseRelatedEntityRelationId,\n relatedEntityRelationIdMap,\n )\n },\n )\n\n // if entity is found then don't do anything - it means binding in junction table already exist, we don't need to add anything\n if (relatedEntityExistInDatabase) return\n\n const ownerValue = relation.isOwning\n ? subject\n : relatedEntitySubject || relatedEntity // by example: ownerEntityMap is post from subject here\n const inverseValue = relation.isOwning\n ? relatedEntitySubject || relatedEntity\n : subject // by example: inverseEntityMap is category from categories array here\n\n // create a new subject for insert operation of junction rows\n const junctionSubject = new Subject({\n metadata: relation.junctionEntityMetadata!,\n parentSubject: subject,\n canBeInserted: true,\n })\n this.subjects.push(junctionSubject)\n\n relation.junctionEntityMetadata!.ownerColumns.forEach((column) => {\n junctionSubject.changeMaps.push({\n column: column,\n value: ownerValue,\n // valueFactory: (value) => column.referencedColumn!.getEntityValue(value) // column.referencedColumn!.getEntityValue(ownerEntityMap),\n })\n })\n\n relation.junctionEntityMetadata!.inverseColumns.forEach(\n (column) => {\n junctionSubject.changeMaps.push({\n column: column,\n value: inverseValue,\n // valueFactory: (value) => column.referencedColumn!.getEntityValue(value) // column.referencedColumn!.getEntityValue(inverseEntityMap),\n })\n },\n )\n })\n\n // get all inverse entities relation ids that are \"bind\" to the currently persisted entity\n const changedInverseEntityRelationIds: ObjectLiteral[] = []\n relatedEntities.forEach((relatedEntity) => {\n // relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity)\n let relatedEntityRelationIdMap =\n relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity)\n\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n const relatedEntitySubject = this.subjects.find((subject) => {\n return subject.entity === relatedEntity\n })\n\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relatedEntityRelationIdMap = relatedEntitySubject.identifier\n\n if (\n relatedEntityRelationIdMap !== undefined &&\n relatedEntityRelationIdMap !== null\n )\n changedInverseEntityRelationIds.push(relatedEntityRelationIdMap)\n })\n\n // now from all entities in the persisted entity find only those which aren't found in the db\n const removedJunctionEntityIds = databaseRelatedEntityIds.filter(\n (existRelationId) => {\n return !changedInverseEntityRelationIds.find(\n (changedRelationId) => {\n return OrmUtils.compareIds(\n changedRelationId,\n existRelationId,\n )\n },\n )\n },\n )\n\n // finally create a new junction remove operations for missing related entities\n removedJunctionEntityIds.forEach((removedEntityRelationId) => {\n const junctionSubject = new Subject({\n metadata: relation.junctionEntityMetadata!,\n parentSubject: subject,\n mustBeRemoved: true,\n identifier: this.buildJunctionIdentifier(\n subject,\n relation,\n removedEntityRelationId,\n ),\n })\n this.subjects.push(junctionSubject)\n })\n }\n\n /**\n * Creates identifiers for junction table.\n * Example: { postId: 1, categoryId: 2 }\n * @param subject\n * @param relation\n * @param relationId\n */\n protected buildJunctionIdentifier(\n subject: Subject,\n relation: RelationMetadata,\n relationId: ObjectLiteral,\n ) {\n const ownerEntityMap = relation.isOwning ? subject.entity! : relationId\n const inverseEntityMap = relation.isOwning\n ? relationId\n : subject.entity!\n\n const identifier: ObjectLiteral = {}\n relation.junctionEntityMetadata!.ownerColumns.forEach((column) => {\n OrmUtils.mergeDeep(\n identifier,\n column.createValueMap(\n column.referencedColumn!.getEntityValue(ownerEntityMap),\n ),\n )\n })\n relation.junctionEntityMetadata!.inverseColumns.forEach((column) => {\n OrmUtils.mergeDeep(\n identifier,\n column.createValueMap(\n column.referencedColumn!.getEntityValue(inverseEntityMap),\n ),\n )\n })\n return identifier\n }\n}\n"]}
@@ -1,15 +1,20 @@
1
1
  import { Subject } from "../Subject";
2
- import { RelationMetadata } from "../../metadata/RelationMetadata";
2
+ import type { RelationMetadata } from "../../metadata/RelationMetadata";
3
3
  /**
4
4
  * Builds operations needs to be executed for one-to-many relations of the given subjects.
5
5
  *
6
- * by example: post contains one-to-many relation with category in the property called "categories", e.g.
7
- * @OneToMany(type => Category, category => category.post) categories: Category[]
8
- * If user adds categories into the post and saves post we need to bind them.
9
- * This operation requires updation of category table since its owner of the relation and contains a join column.
6
+ * Example:
10
7
  *
11
- * note: this class shares lot of things with OneToOneInverseSideOperationBuilder, so when you change this class
12
- * make sure to reflect changes there as well.
8
+ * `Post` contains one-to-many relation with `Category` in the property called `categories`, e.g.:
9
+ *
10
+ * `@OneToMany(type => Category, category => category.post) categories: Category[]`
11
+ *
12
+ * If user adds categories into the post and saves post we need to bind them.
13
+ * This operation requires updating the category table since it's the owner of
14
+ * the relation and contains a join column.
15
+ *
16
+ * Note: this class shares lot of things with OneToOneInverseSideOperationBuilder,
17
+ * so when you change this class make sure to reflect changes there as well.
13
18
  */
14
19
  export declare class OneToManySubjectBuilder {
15
20
  protected subjects: Subject[];
@@ -22,6 +27,8 @@ export declare class OneToManySubjectBuilder {
22
27
  * Builds operations for a given subject and relation.
23
28
  *
24
29
  * by example: subject is "post" entity we are saving here and relation is "categories" inside it here.
30
+ * @param subject
31
+ * @param relation
25
32
  */
26
33
  protected buildForSubjectRelation(subject: Subject, relation: RelationMetadata): void;
27
34
  }
@@ -7,13 +7,18 @@ const EntityMetadata_1 = require("../../metadata/EntityMetadata");
7
7
  /**
8
8
  * Builds operations needs to be executed for one-to-many relations of the given subjects.
9
9
  *
10
- * by example: post contains one-to-many relation with category in the property called "categories", e.g.
11
- * @OneToMany(type => Category, category => category.post) categories: Category[]
12
- * If user adds categories into the post and saves post we need to bind them.
13
- * This operation requires updation of category table since its owner of the relation and contains a join column.
10
+ * Example:
14
11
  *
15
- * note: this class shares lot of things with OneToOneInverseSideOperationBuilder, so when you change this class
16
- * make sure to reflect changes there as well.
12
+ * `Post` contains one-to-many relation with `Category` in the property called `categories`, e.g.:
13
+ *
14
+ * `@OneToMany(type => Category, category => category.post) categories: Category[]`
15
+ *
16
+ * If user adds categories into the post and saves post we need to bind them.
17
+ * This operation requires updating the category table since it's the owner of
18
+ * the relation and contains a join column.
19
+ *
20
+ * Note: this class shares lot of things with OneToOneInverseSideOperationBuilder,
21
+ * so when you change this class make sure to reflect changes there as well.
17
22
  */
18
23
  class OneToManySubjectBuilder {
19
24
  // ---------------------------------------------------------------------
@@ -45,6 +50,8 @@ class OneToManySubjectBuilder {
45
50
  * Builds operations for a given subject and relation.
46
51
  *
47
52
  * by example: subject is "post" entity we are saving here and relation is "categories" inside it here.
53
+ * @param subject
54
+ * @param relation
48
55
  */
49
56
  buildForSubjectRelation(subject, relation) {
50
57
  // prepare objects (relation id maps) for the database entity
@@ -177,5 +184,4 @@ class OneToManySubjectBuilder {
177
184
  }
178
185
  }
179
186
  exports.OneToManySubjectBuilder = OneToManySubjectBuilder;
180
-
181
- //# sourceMappingURL=OneToManySubjectBuilder.js.map
187
+ //# sourceMappingURL=OneToManySubjectBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/persistence/subject-builder/OneToManySubjectBuilder.ts"],"names":[],"mappings":"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","file":"OneToManySubjectBuilder.js","sourcesContent":["import { Subject } from \"../Subject\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport { RelationMetadata } from \"../../metadata/RelationMetadata\"\n\n/**\n * Builds operations needs to be executed for one-to-many relations of the given subjects.\n *\n * by example: post contains one-to-many relation with category in the property called \"categories\", e.g.\n * @OneToMany(type => Category, category => category.post) categories: Category[]\n * If user adds categories into the post and saves post we need to bind them.\n * This operation requires updation of category table since its owner of the relation and contains a join column.\n *\n * note: this class shares lot of things with OneToOneInverseSideOperationBuilder, so when you change this class\n * make sure to reflect changes there as well.\n */\nexport class OneToManySubjectBuilder {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(protected subjects: Subject[]) {}\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds all required operations.\n */\n build(): void {\n this.subjects.forEach((subject) => {\n subject.metadata.oneToManyRelations.forEach((relation) => {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false) return\n\n this.buildForSubjectRelation(subject, relation)\n })\n })\n }\n\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds operations for a given subject and relation.\n *\n * by example: subject is \"post\" entity we are saving here and relation is \"categories\" inside it here.\n */\n protected buildForSubjectRelation(\n subject: Subject,\n relation: RelationMetadata,\n ) {\n // prepare objects (relation id maps) for the database entity\n // by example: since subject is a post, we are expecting to get all post's categories saved in the database here,\n // particularly their relation ids, e.g. category ids stored in the database\n\n // in most cases relatedEntityDatabaseValues will contain only the entity key properties.\n // this is because subject.databaseEntity contains relations with loaded relation ids only.\n // however if the entity uses the afterLoad hook to calculate any properties, the fetched \"key object\" might include ADDITIONAL properties.\n // to handle such situations, we pass the data to relation.inverseEntityMetadata.getEntityIdMap to extract the key without any other properties.\n\n let relatedEntityDatabaseRelationIds: ObjectLiteral[] = []\n if (subject.databaseEntity) {\n // related entities in the database can exist only if this entity (post) is saved\n const relatedEntityDatabaseRelation: ObjectLiteral[] | undefined =\n relation.getEntityValue(subject.databaseEntity)\n if (relatedEntityDatabaseRelation) {\n relatedEntityDatabaseRelationIds =\n relatedEntityDatabaseRelation.map(\n (entity) =>\n relation.inverseEntityMetadata.getEntityIdMap(\n entity,\n )!,\n )\n }\n }\n\n // get related entities of persisted entity\n // by example: get categories from the passed to persist post entity\n let relatedEntities: ObjectLiteral[] = relation.getEntityValue(\n subject.entity!,\n )\n if (relatedEntities === null)\n // we treat relations set to null as removed, so we don't skip it\n relatedEntities = [] as ObjectLiteral[]\n if (relatedEntities === undefined)\n // if relation is undefined then nothing to update\n return\n\n // extract only relation ids from the related entities, since we only need them for comparison\n // by example: extract from categories only relation ids (category id, or let's say category title, depend on join column options)\n const relatedPersistedEntityRelationIds: ObjectLiteral[] = []\n relatedEntities.forEach((relatedEntity) => {\n // by example: relatedEntity is a category here\n let relationIdMap =\n relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity) // by example: relationIdMap is category.id map here, e.g. { id: ... }\n\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n let relatedEntitySubject = this.subjects.find((subject) => {\n return subject.entity === relatedEntity\n })\n\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relationIdMap = relatedEntitySubject.identifier\n\n // if relationIdMap is undefined then it means user binds object which is not saved in the database yet\n // by example: if post contains categories which does not have ids yet (because they are new)\n // it means they are always newly inserted and relation update operation always must be created for them\n // it does not make sense to perform difference operation for them for both add and remove actions\n if (!relationIdMap) {\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if (!relatedEntitySubject)\n // throw new TypeORMError(`One-to-many relation \"${relation.entityMetadata.name}.${relation.propertyPath}\" contains ` +\n // `entities which do not exist in the database yet, thus they cannot be bind in the database. ` +\n // `Please setup cascade insertion or save entities before binding it.`);\n if (!relatedEntitySubject) return\n\n // okay, so related subject exist and its marked for insertion, then add a new change map\n // by example: this will tell category to insert into its post relation our post we are working with\n // relatedEntitySubject is newly inserted CategorySubject\n // relation.inverseRelation is ManyToOne relation inside Category\n // subject is Post needs to be inserted into Category\n relatedEntitySubject.changeMaps.push({\n relation: relation.inverseRelation!,\n value: subject,\n })\n\n return\n }\n\n // check if this binding really exist in the database\n // by example: find our category if its already bind in the database\n const relationIdInDatabaseSubjectRelation =\n relatedEntityDatabaseRelationIds.find(\n (relatedDatabaseEntityRelationId) => {\n return OrmUtils.compareIds(\n relationIdMap,\n relatedDatabaseEntityRelationId,\n )\n },\n )\n\n // if relationIdMap DOES NOT exist in the subject's relation in the database it means its a new relation and we need to \"bind\" them\n // by example: this will tell category to insert into its post relation our post we are working with\n // relatedEntitySubject is newly inserted CategorySubject\n // relation.inverseRelation is ManyToOne relation inside Category\n // subject is Post needs to be inserted into Category\n if (!relationIdInDatabaseSubjectRelation) {\n // if there is no relatedEntitySubject then it means \"category\" wasn't persisted,\n // but since we are going to update \"category\" table (since its an owning side of relation with join column)\n // we create a new subject here:\n if (!relatedEntitySubject) {\n relatedEntitySubject = new Subject({\n metadata: relation.inverseEntityMetadata,\n parentSubject: subject,\n canBeUpdated: true,\n identifier: relationIdMap,\n })\n this.subjects.push(relatedEntitySubject)\n }\n\n relatedEntitySubject.changeMaps.push({\n relation: relation.inverseRelation!,\n value: subject,\n })\n }\n\n // if related entity has relation id then we add it to the list of relation ids\n // this list will be used later to compare with database relation ids to find a difference\n // what exist in this array and does not exist in the database are newly inserted relations\n // what does not exist in this array, but exist in the database are removed relations\n // removed relations are set to null from inverse side of relation\n relatedPersistedEntityRelationIds.push(relationIdMap)\n })\n\n // find what related entities were added and what were removed based on difference between what we save and what database has\n if (relation.inverseRelation?.orphanedRowAction !== \"disable\") {\n EntityMetadata.difference(\n relatedEntityDatabaseRelationIds,\n relatedPersistedEntityRelationIds,\n ).forEach((removedRelatedEntityRelationId) => {\n // by example: removedRelatedEntityRelationId is category that was bind in the database before, but now its unbind\n\n // todo: probably we can improve this in the future by finding entity with column those values,\n // todo: maybe it was already in persistence process. This is possible due to unique requirements of join columns\n // we create a new subject which operations will be executed in subject operation executor\n const removedRelatedEntitySubject = new Subject({\n metadata: relation.inverseEntityMetadata,\n parentSubject: subject,\n identifier: removedRelatedEntityRelationId,\n })\n\n if (\n !relation.inverseRelation ||\n relation.inverseRelation.orphanedRowAction === \"nullify\"\n ) {\n removedRelatedEntitySubject.canBeUpdated = true\n removedRelatedEntitySubject.changeMaps = [\n {\n relation: relation.inverseRelation!,\n value: null,\n },\n ]\n } else if (\n relation.inverseRelation.orphanedRowAction === \"delete\"\n ) {\n removedRelatedEntitySubject.mustBeRemoved = true\n } else if (\n relation.inverseRelation.orphanedRowAction === \"soft-delete\"\n ) {\n removedRelatedEntitySubject.canBeSoftRemoved = true\n }\n\n this.subjects.push(removedRelatedEntitySubject)\n })\n }\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"file":"OneToManySubjectBuilder.js","sourceRoot":"","sources":["../../../../src/persistence/subject-builder/OneToManySubjectBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Subject } from \"../Subject\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport type { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport type { RelationMetadata } from \"../../metadata/RelationMetadata\"\n\n/**\n * Builds operations needs to be executed for one-to-many relations of the given subjects.\n *\n * Example:\n *\n * `Post` contains one-to-many relation with `Category` in the property called `categories`, e.g.:\n *\n * `@OneToMany(type => Category, category => category.post) categories: Category[]`\n *\n * If user adds categories into the post and saves post we need to bind them.\n * This operation requires updating the category table since it's the owner of\n * the relation and contains a join column.\n *\n * Note: this class shares lot of things with OneToOneInverseSideOperationBuilder,\n * so when you change this class make sure to reflect changes there as well.\n */\nexport class OneToManySubjectBuilder {\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(protected subjects: Subject[]) {}\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds all required operations.\n */\n build(): void {\n this.subjects.forEach((subject) => {\n subject.metadata.oneToManyRelations.forEach((relation) => {\n // skip relations for which persistence is disabled\n if (relation.persistenceEnabled === false) return\n\n this.buildForSubjectRelation(subject, relation)\n })\n })\n }\n\n // ---------------------------------------------------------------------\n // Protected Methods\n // ---------------------------------------------------------------------\n\n /**\n * Builds operations for a given subject and relation.\n *\n * by example: subject is \"post\" entity we are saving here and relation is \"categories\" inside it here.\n * @param subject\n * @param relation\n */\n protected buildForSubjectRelation(\n subject: Subject,\n relation: RelationMetadata,\n ) {\n // prepare objects (relation id maps) for the database entity\n // by example: since subject is a post, we are expecting to get all post's categories saved in the database here,\n // particularly their relation ids, e.g. category ids stored in the database\n\n // in most cases relatedEntityDatabaseValues will contain only the entity key properties.\n // this is because subject.databaseEntity contains relations with loaded relation ids only.\n // however if the entity uses the afterLoad hook to calculate any properties, the fetched \"key object\" might include ADDITIONAL properties.\n // to handle such situations, we pass the data to relation.inverseEntityMetadata.getEntityIdMap to extract the key without any other properties.\n\n let relatedEntityDatabaseRelationIds: ObjectLiteral[] = []\n if (subject.databaseEntity) {\n // related entities in the database can exist only if this entity (post) is saved\n const relatedEntityDatabaseRelation: ObjectLiteral[] | undefined =\n relation.getEntityValue(subject.databaseEntity)\n if (relatedEntityDatabaseRelation) {\n relatedEntityDatabaseRelationIds =\n relatedEntityDatabaseRelation.map(\n (entity) =>\n relation.inverseEntityMetadata.getEntityIdMap(\n entity,\n )!,\n )\n }\n }\n\n // get related entities of persisted entity\n // by example: get categories from the passed to persist post entity\n let relatedEntities: ObjectLiteral[] = relation.getEntityValue(\n subject.entity!,\n )\n if (relatedEntities === null)\n // we treat relations set to null as removed, so we don't skip it\n relatedEntities = [] as ObjectLiteral[]\n if (relatedEntities === undefined)\n // if relation is undefined then nothing to update\n return\n\n // extract only relation ids from the related entities, since we only need them for comparison\n // by example: extract from categories only relation ids (category id, or let's say category title, depend on join column options)\n const relatedPersistedEntityRelationIds: ObjectLiteral[] = []\n relatedEntities.forEach((relatedEntity) => {\n // by example: relatedEntity is a category here\n let relationIdMap =\n relation.inverseEntityMetadata!.getEntityIdMap(relatedEntity) // by example: relationIdMap is category.id map here, e.g. { id: ... }\n\n // try to find a subject of this related entity, maybe it was loaded or was marked for persistence\n let relatedEntitySubject = this.subjects.find((subject) => {\n return subject.entity === relatedEntity\n })\n\n // if subject with entity was found take subject identifier as relation id map since it may contain extra properties resolved\n if (relatedEntitySubject)\n relationIdMap = relatedEntitySubject.identifier\n\n // if relationIdMap is undefined then it means user binds object which is not saved in the database yet\n // by example: if post contains categories which does not have ids yet (because they are new)\n // it means they are always newly inserted and relation update operation always must be created for them\n // it does not make sense to perform difference operation for them for both add and remove actions\n if (!relationIdMap) {\n // we decided to remove this error because it brings complications when saving object with non-saved entities\n // if (!relatedEntitySubject)\n // throw new TypeORMError(`One-to-many relation \"${relation.entityMetadata.name}.${relation.propertyPath}\" contains ` +\n // `entities which do not exist in the database yet, thus they cannot be bind in the database. ` +\n // `Please setup cascade insertion or save entities before binding it.`);\n if (!relatedEntitySubject) return\n\n // okay, so related subject exist and its marked for insertion, then add a new change map\n // by example: this will tell category to insert into its post relation our post we are working with\n // relatedEntitySubject is newly inserted CategorySubject\n // relation.inverseRelation is ManyToOne relation inside Category\n // subject is Post needs to be inserted into Category\n relatedEntitySubject.changeMaps.push({\n relation: relation.inverseRelation!,\n value: subject,\n })\n\n return\n }\n\n // check if this binding really exist in the database\n // by example: find our category if its already bind in the database\n const relationIdInDatabaseSubjectRelation =\n relatedEntityDatabaseRelationIds.find(\n (relatedDatabaseEntityRelationId) => {\n return OrmUtils.compareIds(\n relationIdMap,\n relatedDatabaseEntityRelationId,\n )\n },\n )\n\n // if relationIdMap DOES NOT exist in the subject's relation in the database it means its a new relation and we need to \"bind\" them\n // by example: this will tell category to insert into its post relation our post we are working with\n // relatedEntitySubject is newly inserted CategorySubject\n // relation.inverseRelation is ManyToOne relation inside Category\n // subject is Post needs to be inserted into Category\n if (!relationIdInDatabaseSubjectRelation) {\n // if there is no relatedEntitySubject then it means \"category\" wasn't persisted,\n // but since we are going to update \"category\" table (since its an owning side of relation with join column)\n // we create a new subject here:\n if (!relatedEntitySubject) {\n relatedEntitySubject = new Subject({\n metadata: relation.inverseEntityMetadata,\n parentSubject: subject,\n canBeUpdated: true,\n identifier: relationIdMap,\n })\n this.subjects.push(relatedEntitySubject)\n }\n\n relatedEntitySubject.changeMaps.push({\n relation: relation.inverseRelation!,\n value: subject,\n })\n }\n\n // if related entity has relation id then we add it to the list of relation ids\n // this list will be used later to compare with database relation ids to find a difference\n // what exist in this array and does not exist in the database are newly inserted relations\n // what does not exist in this array, but exist in the database are removed relations\n // removed relations are set to null from inverse side of relation\n relatedPersistedEntityRelationIds.push(relationIdMap)\n })\n\n // find what related entities were added and what were removed based on difference between what we save and what database has\n if (relation.inverseRelation?.orphanedRowAction !== \"disable\") {\n EntityMetadata.difference(\n relatedEntityDatabaseRelationIds,\n relatedPersistedEntityRelationIds,\n ).forEach((removedRelatedEntityRelationId) => {\n // by example: removedRelatedEntityRelationId is category that was bind in the database before, but now its unbind\n\n // todo: probably we can improve this in the future by finding entity with column those values,\n // todo: maybe it was already in persistence process. This is possible due to unique requirements of join columns\n // we create a new subject which operations will be executed in subject operation executor\n const removedRelatedEntitySubject = new Subject({\n metadata: relation.inverseEntityMetadata,\n parentSubject: subject,\n identifier: removedRelatedEntityRelationId,\n })\n\n if (\n !relation.inverseRelation ||\n relation.inverseRelation.orphanedRowAction === \"nullify\"\n ) {\n removedRelatedEntitySubject.canBeUpdated = true\n removedRelatedEntitySubject.changeMaps = [\n {\n relation: relation.inverseRelation!,\n value: null,\n },\n ]\n } else if (\n relation.inverseRelation.orphanedRowAction === \"delete\"\n ) {\n removedRelatedEntitySubject.mustBeRemoved = true\n } else if (\n relation.inverseRelation.orphanedRowAction === \"soft-delete\"\n ) {\n removedRelatedEntitySubject.canBeSoftRemoved = true\n }\n\n this.subjects.push(removedRelatedEntitySubject)\n })\n }\n }\n}\n"]}
@@ -1,15 +1,20 @@
1
1
  import { Subject } from "../Subject";
2
- import { RelationMetadata } from "../../metadata/RelationMetadata";
2
+ import type { RelationMetadata } from "../../metadata/RelationMetadata";
3
3
  /**
4
4
  * Builds operations needs to be executed for one-to-one non-owner relations of the given subjects.
5
5
  *
6
- * by example: post contains one-to-one non-owner relation with category in the property called "category", e.g.
7
- * @OneToOne(type => Category, category => category.post) category: Category
8
- * If user sets a category into the post and saves post we need to bind them.
9
- * This operation requires updation of category table since its owner of the relation and contains a join column.
6
+ * Example:
10
7
  *
11
- * note: this class shares lot of things with OneToManyUpdateBuilder, so when you change this class
12
- * make sure to reflect changes there as well.
8
+ * `Post` contains one-to-one non-owner relation with `Category` in the property called `category`, e.g.:
9
+ *
10
+ * `@OneToOne(type => Category, category => category.post) category: Category`
11
+ *
12
+ * If user sets a category into the post and saves post we need to bind them.
13
+ * This operation requires updating the category table since it's the owner of
14
+ * the relation and contains a join column.
15
+ *
16
+ * Note: this class shares lot of things with `OneToManyUpdateBuilder`, so when
17
+ * you change this class make sure to reflect changes there as well.
13
18
  */
14
19
  export declare class OneToOneInverseSideSubjectBuilder {
15
20
  protected subjects: Subject[];
@@ -22,6 +27,8 @@ export declare class OneToOneInverseSideSubjectBuilder {
22
27
  * Builds operations for a given subject and relation.
23
28
  *
24
29
  * by example: subject is "post" entity we are saving here and relation is "category" inside it here.
30
+ * @param subject
31
+ * @param relation
25
32
  */
26
33
  protected buildForSubjectRelation(subject: Subject, relation: RelationMetadata): void;
27
34
  }
@@ -6,13 +6,18 @@ const OrmUtils_1 = require("../../util/OrmUtils");
6
6
  /**
7
7
  * Builds operations needs to be executed for one-to-one non-owner relations of the given subjects.
8
8
  *
9
- * by example: post contains one-to-one non-owner relation with category in the property called "category", e.g.
10
- * @OneToOne(type => Category, category => category.post) category: Category
11
- * If user sets a category into the post and saves post we need to bind them.
12
- * This operation requires updation of category table since its owner of the relation and contains a join column.
9
+ * Example:
13
10
  *
14
- * note: this class shares lot of things with OneToManyUpdateBuilder, so when you change this class
15
- * make sure to reflect changes there as well.
11
+ * `Post` contains one-to-one non-owner relation with `Category` in the property called `category`, e.g.:
12
+ *
13
+ * `@OneToOne(type => Category, category => category.post) category: Category`
14
+ *
15
+ * If user sets a category into the post and saves post we need to bind them.
16
+ * This operation requires updating the category table since it's the owner of
17
+ * the relation and contains a join column.
18
+ *
19
+ * Note: this class shares lot of things with `OneToManyUpdateBuilder`, so when
20
+ * you change this class make sure to reflect changes there as well.
16
21
  */
17
22
  class OneToOneInverseSideSubjectBuilder {
18
23
  // ---------------------------------------------------------------------
@@ -45,6 +50,8 @@ class OneToOneInverseSideSubjectBuilder {
45
50
  * Builds operations for a given subject and relation.
46
51
  *
47
52
  * by example: subject is "post" entity we are saving here and relation is "category" inside it here.
53
+ * @param subject
54
+ * @param relation
48
55
  */
49
56
  buildForSubjectRelation(subject, relation) {
50
57
  // prepare objects (relation id map) for the database entity
@@ -151,5 +158,4 @@ class OneToOneInverseSideSubjectBuilder {
151
158
  }
152
159
  }
153
160
  exports.OneToOneInverseSideSubjectBuilder = OneToOneInverseSideSubjectBuilder;
154
-
155
- //# sourceMappingURL=OneToOneInverseSideSubjectBuilder.js.map
161
+ //# sourceMappingURL=OneToOneInverseSideSubjectBuilder.js.map