typeorm 1.0.0-beta.1 → 1.0.0-beta.2

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 (1249) hide show
  1. package/browser/cache/DbQueryResultCache.d.ts +7 -0
  2. package/browser/cache/DbQueryResultCache.js +12 -4
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.d.ts +7 -0
  5. package/browser/cache/RedisQueryResultCache.js +15 -10
  6. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  7. package/browser/cli-ts-node-esm.js +2 -2
  8. package/browser/cli-ts-node-esm.js.map +1 -1
  9. package/browser/common/RelationType.d.ts +2 -0
  10. package/browser/common/RelationType.js.map +1 -1
  11. package/browser/connection/ConnectionMetadataBuilder.d.ts +3 -0
  12. package/browser/connection/ConnectionMetadataBuilder.js +3 -0
  13. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  14. package/browser/connection/ConnectionOptionsReader.d.ts +5 -4
  15. package/browser/connection/ConnectionOptionsReader.js +14 -12
  16. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  17. package/browser/data-source/BaseDataSourceOptions.d.ts +8 -0
  18. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  19. package/browser/data-source/DataSource.d.ts +20 -1
  20. package/browser/data-source/DataSource.js +37 -15
  21. package/browser/data-source/DataSource.js.map +1 -1
  22. package/browser/decorator/Check.d.ts +2 -0
  23. package/browser/decorator/Check.js +2 -1
  24. package/browser/decorator/Check.js.map +1 -1
  25. package/browser/decorator/Exclusion.d.ts +2 -0
  26. package/browser/decorator/Exclusion.js +1 -0
  27. package/browser/decorator/Exclusion.js.map +1 -1
  28. package/browser/decorator/ForeignKey.d.ts +3 -0
  29. package/browser/decorator/ForeignKey.js +1 -0
  30. package/browser/decorator/ForeignKey.js.map +1 -1
  31. package/browser/decorator/Generated.d.ts +1 -0
  32. package/browser/decorator/Generated.js +1 -0
  33. package/browser/decorator/Generated.js.map +1 -1
  34. package/browser/decorator/Index.d.ts +7 -0
  35. package/browser/decorator/Index.js +13 -13
  36. package/browser/decorator/Index.js.map +1 -1
  37. package/browser/decorator/Unique.d.ts +4 -0
  38. package/browser/decorator/Unique.js +6 -6
  39. package/browser/decorator/Unique.js.map +1 -1
  40. package/browser/decorator/columns/Column.d.ts +11 -0
  41. package/browser/decorator/columns/Column.js +3 -3
  42. package/browser/decorator/columns/Column.js.map +1 -1
  43. package/browser/decorator/columns/CreateDateColumn.d.ts +1 -0
  44. package/browser/decorator/columns/CreateDateColumn.js +2 -1
  45. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  46. package/browser/decorator/columns/DeleteDateColumn.d.ts +1 -0
  47. package/browser/decorator/columns/DeleteDateColumn.js +2 -1
  48. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  49. package/browser/decorator/columns/ObjectIdColumn.d.ts +1 -0
  50. package/browser/decorator/columns/ObjectIdColumn.js +3 -4
  51. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  52. package/browser/decorator/columns/PrimaryColumn.d.ts +2 -0
  53. package/browser/decorator/columns/PrimaryColumn.js +2 -2
  54. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  55. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +4 -0
  56. package/browser/decorator/columns/PrimaryGeneratedColumn.js +1 -0
  57. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  58. package/browser/decorator/columns/UpdateDateColumn.d.ts +1 -0
  59. package/browser/decorator/columns/UpdateDateColumn.js +2 -1
  60. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  61. package/browser/decorator/columns/VersionColumn.d.ts +1 -0
  62. package/browser/decorator/columns/VersionColumn.js +2 -1
  63. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  64. package/browser/decorator/columns/ViewColumn.d.ts +1 -0
  65. package/browser/decorator/columns/ViewColumn.js +2 -1
  66. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  67. package/browser/decorator/columns/VirtualColumn.d.ts +2 -0
  68. package/browser/decorator/columns/VirtualColumn.js +1 -0
  69. package/browser/decorator/columns/VirtualColumn.js.map +1 -1
  70. package/browser/decorator/entity/ChildEntity.d.ts +1 -0
  71. package/browser/decorator/entity/ChildEntity.js +1 -0
  72. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  73. package/browser/decorator/entity/Entity.d.ts +2 -0
  74. package/browser/decorator/entity/Entity.js +7 -6
  75. package/browser/decorator/entity/Entity.js.map +1 -1
  76. package/browser/decorator/entity/TableInheritance.d.ts +1 -0
  77. package/browser/decorator/entity/TableInheritance.js +3 -2
  78. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  79. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -0
  80. package/browser/decorator/entity-view/ViewEntity.js +4 -3
  81. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  82. package/browser/decorator/options/ColumnOptions.d.ts +3 -0
  83. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  84. package/browser/decorator/options/EntityOptions.d.ts +1 -0
  85. package/browser/decorator/options/EntityOptions.js.map +1 -1
  86. package/browser/decorator/options/RelationOptions.d.ts +2 -0
  87. package/browser/decorator/options/RelationOptions.js.map +1 -1
  88. package/browser/decorator/options/VirtualColumnOptions.d.ts +1 -0
  89. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
  90. package/browser/decorator/relations/JoinColumn.d.ts +2 -0
  91. package/browser/decorator/relations/JoinColumn.js +2 -1
  92. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  93. package/browser/decorator/relations/JoinTable.d.ts +2 -0
  94. package/browser/decorator/relations/JoinTable.js +5 -4
  95. package/browser/decorator/relations/JoinTable.js.map +1 -1
  96. package/browser/decorator/relations/ManyToMany.d.ts +2 -0
  97. package/browser/decorator/relations/ManyToMany.js +2 -2
  98. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  99. package/browser/decorator/relations/ManyToOne.d.ts +2 -0
  100. package/browser/decorator/relations/ManyToOne.js +3 -3
  101. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  102. package/browser/decorator/relations/OneToMany.d.ts +1 -0
  103. package/browser/decorator/relations/OneToMany.js +3 -3
  104. package/browser/decorator/relations/OneToMany.js.map +1 -1
  105. package/browser/decorator/relations/OneToOne.d.ts +2 -0
  106. package/browser/decorator/relations/OneToOne.js +3 -3
  107. package/browser/decorator/relations/OneToOne.js.map +1 -1
  108. package/browser/decorator/relations/RelationId.d.ts +1 -0
  109. package/browser/decorator/relations/RelationId.js +1 -0
  110. package/browser/decorator/relations/RelationId.js.map +1 -1
  111. package/browser/decorator/tree/Tree.d.ts +1 -0
  112. package/browser/decorator/tree/Tree.js +1 -0
  113. package/browser/decorator/tree/Tree.js.map +1 -1
  114. package/browser/decorator/tree/TreeChildren.d.ts +1 -0
  115. package/browser/decorator/tree/TreeChildren.js +3 -3
  116. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  117. package/browser/decorator/tree/TreeParent.d.ts +1 -0
  118. package/browser/decorator/tree/TreeParent.js +3 -3
  119. package/browser/decorator/tree/TreeParent.js.map +1 -1
  120. package/browser/driver/Driver.d.ts +5 -0
  121. package/browser/driver/Driver.js.map +1 -1
  122. package/browser/driver/DriverFactory.d.ts +1 -0
  123. package/browser/driver/DriverFactory.js +1 -0
  124. package/browser/driver/DriverFactory.js.map +1 -1
  125. package/browser/driver/DriverUtils.d.ts +7 -0
  126. package/browser/driver/DriverUtils.js +34 -21
  127. package/browser/driver/DriverUtils.js.map +1 -1
  128. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -0
  129. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  130. package/browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts +1 -0
  131. package/browser/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -1
  132. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +37 -0
  133. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +53 -16
  134. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  135. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +64 -0
  136. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +90 -30
  137. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  138. package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +13 -0
  139. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +26 -5
  140. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  141. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +3 -0
  142. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +27 -1
  143. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  144. package/browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts +1 -0
  145. package/browser/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -1
  146. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +3 -0
  147. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +5 -3
  148. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  149. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +1 -0
  150. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
  151. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  152. package/browser/driver/capacitor/CapacitorDriver.d.ts +1 -0
  153. package/browser/driver/capacitor/CapacitorDriver.js +3 -3
  154. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  155. package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +2 -0
  156. package/browser/driver/capacitor/CapacitorQueryRunner.js +4 -2
  157. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  158. package/browser/driver/cockroachdb/CockroachDataSourceOptions.d.ts +1 -0
  159. package/browser/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -1
  160. package/browser/driver/cockroachdb/CockroachDriver.d.ts +35 -0
  161. package/browser/driver/cockroachdb/CockroachDriver.js +64 -29
  162. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  163. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +74 -0
  164. package/browser/driver/cockroachdb/CockroachQueryRunner.js +143 -119
  165. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  166. package/browser/driver/cordova/CordovaDriver.d.ts +6 -0
  167. package/browser/driver/cordova/CordovaDriver.js +14 -4
  168. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  169. package/browser/driver/cordova/CordovaQueryRunner.d.ts +2 -0
  170. package/browser/driver/cordova/CordovaQueryRunner.js +3 -1
  171. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  172. package/browser/driver/expo/ExpoDriver.js +1 -2
  173. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  174. package/browser/driver/mongodb/MongoDriver.d.ts +25 -0
  175. package/browser/driver/mongodb/MongoDriver.js +35 -6
  176. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  177. package/browser/driver/mongodb/MongoQueryRunner.d.ts +84 -0
  178. package/browser/driver/mongodb/MongoQueryRunner.js +102 -18
  179. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  180. package/browser/driver/mongodb/bson.typings.d.ts +1 -0
  181. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  182. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -0
  183. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  184. package/browser/driver/mysql/MysqlDataSourceOptions.d.ts +2 -0
  185. package/browser/driver/mysql/MysqlDataSourceOptions.js.map +1 -1
  186. package/browser/driver/mysql/MysqlDriver.d.ts +37 -0
  187. package/browser/driver/mysql/MysqlDriver.js +57 -17
  188. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  189. package/browser/driver/mysql/MysqlQueryRunner.d.ts +64 -0
  190. package/browser/driver/mysql/MysqlQueryRunner.js +140 -111
  191. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  192. package/browser/driver/nativescript/NativescriptDriver.d.ts +1 -0
  193. package/browser/driver/nativescript/NativescriptDriver.js +3 -4
  194. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  195. package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +2 -0
  196. package/browser/driver/nativescript/NativescriptQueryRunner.js +3 -1
  197. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  198. package/browser/driver/oracle/OracleDriver.d.ts +32 -0
  199. package/browser/driver/oracle/OracleDriver.js +48 -15
  200. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  201. package/browser/driver/oracle/OracleQueryRunner.d.ts +66 -0
  202. package/browser/driver/oracle/OracleQueryRunner.js +119 -83
  203. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  204. package/browser/driver/postgres/PostgresDataSourceOptions.d.ts +2 -0
  205. package/browser/driver/postgres/PostgresDataSourceOptions.js.map +1 -1
  206. package/browser/driver/postgres/PostgresDriver.d.ts +37 -0
  207. package/browser/driver/postgres/PostgresDriver.js +67 -31
  208. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  209. package/browser/driver/postgres/PostgresQueryRunner.d.ts +81 -0
  210. package/browser/driver/postgres/PostgresQueryRunner.js +152 -121
  211. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  212. package/browser/driver/react-native/ReactNativeDriver.d.ts +29 -0
  213. package/browser/driver/react-native/ReactNativeDriver.js +45 -12
  214. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  215. package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +2 -0
  216. package/browser/driver/react-native/ReactNativeQueryRunner.js +3 -1
  217. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  218. package/browser/driver/sap/SapDataSourceOptions.d.ts +1 -0
  219. package/browser/driver/sap/SapDataSourceOptions.js.map +1 -1
  220. package/browser/driver/sap/SapDriver.d.ts +30 -0
  221. package/browser/driver/sap/SapDriver.js +45 -11
  222. package/browser/driver/sap/SapDriver.js.map +1 -1
  223. package/browser/driver/sap/SapQueryRunner.d.ts +66 -0
  224. package/browser/driver/sap/SapQueryRunner.js +101 -56
  225. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  226. package/browser/driver/spanner/SpannerDataSourceOptions.d.ts +1 -0
  227. package/browser/driver/spanner/SpannerDataSourceOptions.js.map +1 -1
  228. package/browser/driver/spanner/SpannerDriver.d.ts +33 -0
  229. package/browser/driver/spanner/SpannerDriver.js +50 -10
  230. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  231. package/browser/driver/spanner/SpannerQueryRunner.d.ts +64 -0
  232. package/browser/driver/spanner/SpannerQueryRunner.js +89 -32
  233. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  234. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +30 -0
  235. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +43 -77
  236. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  237. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +59 -0
  238. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +89 -45
  239. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  240. package/browser/driver/sqljs/SqljsDriver.d.ts +5 -0
  241. package/browser/driver/sqljs/SqljsDriver.js +8 -4
  242. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  243. package/browser/driver/sqljs/SqljsQueryRunner.d.ts +1 -0
  244. package/browser/driver/sqljs/SqljsQueryRunner.js +1 -0
  245. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  246. package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
  247. package/browser/driver/sqlserver/MssqlParameter.js +1 -0
  248. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  249. package/browser/driver/sqlserver/SqlServerDataSourceOptions.d.ts +14 -5
  250. package/browser/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -1
  251. package/browser/driver/sqlserver/SqlServerDriver.d.ts +42 -0
  252. package/browser/driver/sqlserver/SqlServerDriver.js +100 -26
  253. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  254. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +76 -10
  255. package/browser/driver/sqlserver/SqlServerQueryRunner.js +160 -163
  256. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  257. package/browser/driver/types/IsolationLevel.d.ts +2 -1
  258. package/browser/driver/types/IsolationLevel.js +8 -0
  259. package/browser/driver/types/IsolationLevel.js.map +1 -1
  260. package/browser/driver/validate-isolation-level.d.ts +9 -0
  261. package/browser/driver/validate-isolation-level.js +23 -0
  262. package/browser/driver/validate-isolation-level.js.map +1 -0
  263. package/browser/entity-manager/EntityManager.d.ts +38 -1
  264. package/browser/entity-manager/EntityManager.js +58 -12
  265. package/browser/entity-manager/EntityManager.js.map +1 -1
  266. package/browser/entity-manager/EntityManagerFactory.d.ts +1 -0
  267. package/browser/entity-manager/EntityManagerFactory.js +1 -0
  268. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  269. package/browser/entity-manager/MongoEntityManager.d.ts +54 -1
  270. package/browser/entity-manager/MongoEntityManager.js +103 -12
  271. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  272. package/browser/entity-manager/SqljsEntityManager.d.ts +2 -0
  273. package/browser/entity-manager/SqljsEntityManager.js +2 -0
  274. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  275. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +1 -0
  276. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  277. package/browser/entity-schema/EntitySchemaOptions.d.ts +1 -0
  278. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  279. package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  280. package/browser/entity-schema/EntitySchemaTransformer.js +25 -26
  281. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  282. package/browser/error/InitializedRelationError.d.ts +1 -0
  283. package/browser/error/InitializedRelationError.js +1 -0
  284. package/browser/error/InitializedRelationError.js.map +1 -1
  285. package/browser/find-options/FindOptionsUtils.d.ts +7 -0
  286. package/browser/find-options/FindOptionsUtils.js +7 -0
  287. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  288. package/browser/find-options/OrderByCondition.d.ts +2 -1
  289. package/browser/find-options/OrderByCondition.js.map +1 -1
  290. package/browser/find-options/operator/Any.d.ts +4 -1
  291. package/browser/find-options/operator/Any.js +4 -1
  292. package/browser/find-options/operator/Any.js.map +1 -1
  293. package/browser/find-options/operator/ArrayContainedBy.d.ts +4 -1
  294. package/browser/find-options/operator/ArrayContainedBy.js +4 -1
  295. package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
  296. package/browser/find-options/operator/ArrayContains.d.ts +4 -1
  297. package/browser/find-options/operator/ArrayContains.js +4 -1
  298. package/browser/find-options/operator/ArrayContains.js.map +1 -1
  299. package/browser/find-options/operator/ArrayOverlap.d.ts +4 -1
  300. package/browser/find-options/operator/ArrayOverlap.js +4 -1
  301. package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
  302. package/browser/find-options/operator/Between.d.ts +4 -1
  303. package/browser/find-options/operator/Between.js +4 -1
  304. package/browser/find-options/operator/Between.js.map +1 -1
  305. package/browser/find-options/operator/Equal.d.ts +6 -3
  306. package/browser/find-options/operator/Equal.js +6 -3
  307. package/browser/find-options/operator/Equal.js.map +1 -1
  308. package/browser/find-options/operator/ILike.d.ts +4 -1
  309. package/browser/find-options/operator/ILike.js +4 -1
  310. package/browser/find-options/operator/ILike.js.map +1 -1
  311. package/browser/find-options/operator/In.d.ts +4 -1
  312. package/browser/find-options/operator/In.js +4 -1
  313. package/browser/find-options/operator/In.js.map +1 -1
  314. package/browser/find-options/operator/IsNull.d.ts +4 -1
  315. package/browser/find-options/operator/IsNull.js +4 -1
  316. package/browser/find-options/operator/IsNull.js.map +1 -1
  317. package/browser/find-options/operator/JsonContains.d.ts +4 -1
  318. package/browser/find-options/operator/JsonContains.js +4 -1
  319. package/browser/find-options/operator/JsonContains.js.map +1 -1
  320. package/browser/find-options/operator/LessThan.d.ts +4 -1
  321. package/browser/find-options/operator/LessThan.js +4 -1
  322. package/browser/find-options/operator/LessThan.js.map +1 -1
  323. package/browser/find-options/operator/LessThanOrEqual.d.ts +4 -1
  324. package/browser/find-options/operator/LessThanOrEqual.js +4 -1
  325. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  326. package/browser/find-options/operator/Like.d.ts +4 -1
  327. package/browser/find-options/operator/Like.js +4 -1
  328. package/browser/find-options/operator/Like.js.map +1 -1
  329. package/browser/find-options/operator/MoreThan.d.ts +4 -1
  330. package/browser/find-options/operator/MoreThan.js +4 -1
  331. package/browser/find-options/operator/MoreThan.js.map +1 -1
  332. package/browser/find-options/operator/MoreThanOrEqual.d.ts +4 -1
  333. package/browser/find-options/operator/MoreThanOrEqual.js +4 -1
  334. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  335. package/browser/find-options/operator/Not.d.ts +4 -1
  336. package/browser/find-options/operator/Not.js +4 -1
  337. package/browser/find-options/operator/Not.js.map +1 -1
  338. package/browser/find-options/operator/Raw.d.ts +12 -3
  339. package/browser/find-options/operator/Raw.js.map +1 -1
  340. package/browser/globals.js +1 -2
  341. package/browser/globals.js.map +1 -1
  342. package/browser/logger/AbstractLogger.d.ts +9 -0
  343. package/browser/logger/AbstractLogger.js +10 -2
  344. package/browser/logger/AbstractLogger.js.map +1 -1
  345. package/browser/logger/AdvancedConsoleLogger.d.ts +1 -0
  346. package/browser/logger/AdvancedConsoleLogger.js +1 -0
  347. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  348. package/browser/logger/DebugLogger.d.ts +2 -0
  349. package/browser/logger/DebugLogger.js +3 -1
  350. package/browser/logger/DebugLogger.js.map +1 -1
  351. package/browser/logger/FileLogger.d.ts +13 -2
  352. package/browser/logger/FileLogger.js +4 -5
  353. package/browser/logger/FileLogger.js.map +1 -1
  354. package/browser/logger/FormattedConsoleLogger.d.ts +1 -0
  355. package/browser/logger/FormattedConsoleLogger.js +1 -0
  356. package/browser/logger/FormattedConsoleLogger.js.map +1 -1
  357. package/browser/logger/LoggerFactory.d.ts +1 -0
  358. package/browser/logger/LoggerFactory.js +1 -0
  359. package/browser/logger/LoggerFactory.js.map +1 -1
  360. package/browser/logger/LoggerOptions.d.ts +0 -9
  361. package/browser/logger/LoggerOptions.js.map +1 -1
  362. package/browser/logger/SimpleConsoleLogger.d.ts +1 -0
  363. package/browser/logger/SimpleConsoleLogger.js +1 -0
  364. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  365. package/browser/metadata/CheckMetadata.d.ts +1 -0
  366. package/browser/metadata/CheckMetadata.js +4 -3
  367. package/browser/metadata/CheckMetadata.js.map +1 -1
  368. package/browser/metadata/ColumnMetadata.d.ts +8 -5
  369. package/browser/metadata/ColumnMetadata.js +17 -25
  370. package/browser/metadata/ColumnMetadata.js.map +1 -1
  371. package/browser/metadata/EmbeddedMetadata.d.ts +1 -0
  372. package/browser/metadata/EmbeddedMetadata.js +1 -0
  373. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  374. package/browser/metadata/EntityListenerMetadata.d.ts +3 -0
  375. package/browser/metadata/EntityListenerMetadata.js +3 -0
  376. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  377. package/browser/metadata/EntityMetadata.d.ts +25 -5
  378. package/browser/metadata/EntityMetadata.js +32 -12
  379. package/browser/metadata/EntityMetadata.js.map +1 -1
  380. package/browser/metadata/ExclusionMetadata.d.ts +1 -0
  381. package/browser/metadata/ExclusionMetadata.js +4 -3
  382. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  383. package/browser/metadata/ForeignKeyMetadata.d.ts +1 -0
  384. package/browser/metadata/ForeignKeyMetadata.js +6 -5
  385. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  386. package/browser/metadata/IndexMetadata.d.ts +1 -0
  387. package/browser/metadata/IndexMetadata.js +4 -3
  388. package/browser/metadata/IndexMetadata.js.map +1 -1
  389. package/browser/metadata/RelationIdMetadata.d.ts +1 -0
  390. package/browser/metadata/RelationIdMetadata.js +1 -0
  391. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  392. package/browser/metadata/RelationMetadata.d.ts +8 -0
  393. package/browser/metadata/RelationMetadata.js +15 -15
  394. package/browser/metadata/RelationMetadata.js.map +1 -1
  395. package/browser/metadata/UniqueMetadata.d.ts +1 -0
  396. package/browser/metadata/UniqueMetadata.js +4 -3
  397. package/browser/metadata/UniqueMetadata.js.map +1 -1
  398. package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
  399. package/browser/metadata-args/MetadataArgsStorage.js +4 -0
  400. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  401. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +1 -0
  402. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +7 -11
  403. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  404. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +7 -0
  405. package/browser/metadata-builder/EntityMetadataBuilder.js +11 -6
  406. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  407. package/browser/metadata-builder/EntityMetadataValidator.d.ts +4 -0
  408. package/browser/metadata-builder/EntityMetadataValidator.js +6 -43
  409. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  410. package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +3 -0
  411. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +39 -20
  412. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  413. package/browser/metadata-builder/MetadataUtils.d.ts +3 -0
  414. package/browser/metadata-builder/MetadataUtils.js +4 -1
  415. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  416. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -0
  417. package/browser/metadata-builder/RelationJoinColumnBuilder.js +17 -1
  418. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  419. package/browser/migration/MigrationExecutor.d.ts +9 -0
  420. package/browser/migration/MigrationExecutor.js +16 -7
  421. package/browser/migration/MigrationExecutor.js.map +1 -1
  422. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +3 -0
  423. package/browser/naming-strategy/DefaultNamingStrategy.js +13 -10
  424. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  425. package/browser/naming-strategy/NamingStrategyInterface.d.ts +2 -0
  426. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  427. package/browser/persistence/EntityPersistExecutor.js +2 -4
  428. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  429. package/browser/persistence/Subject.js +4 -6
  430. package/browser/persistence/Subject.js.map +1 -1
  431. package/browser/persistence/SubjectChangedColumnsComputer.d.ts +3 -0
  432. package/browser/persistence/SubjectChangedColumnsComputer.js +3 -0
  433. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  434. package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -0
  435. package/browser/persistence/SubjectDatabaseEntityLoader.js +3 -1
  436. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  437. package/browser/persistence/SubjectExecutor.d.ts +2 -0
  438. package/browser/persistence/SubjectExecutor.js +15 -27
  439. package/browser/persistence/SubjectExecutor.js.map +1 -1
  440. package/browser/persistence/SubjectTopologicalSorter.d.ts +4 -0
  441. package/browser/persistence/SubjectTopologicalSorter.js +4 -0
  442. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  443. package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +2 -0
  444. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +37 -11
  445. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  446. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +11 -8
  447. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +15 -13
  448. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  449. package/browser/persistence/subject-builder/OneToManySubjectBuilder.d.ts +9 -10
  450. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +30 -24
  451. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  452. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +9 -10
  453. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +9 -10
  454. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  455. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +4 -0
  456. package/browser/persistence/tree/ClosureSubjectExecutor.js +10 -8
  457. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  458. package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +2 -0
  459. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +8 -6
  460. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  461. package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +5 -0
  462. package/browser/persistence/tree/NestedSetSubjectExecutor.js +10 -5
  463. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  464. package/browser/platform/PlatformTools.d.ts +9 -0
  465. package/browser/platform/PlatformTools.js +10 -1
  466. package/browser/platform/PlatformTools.js.map +1 -1
  467. package/browser/query-builder/Alias.js +1 -1
  468. package/browser/query-builder/Alias.js.map +1 -1
  469. package/browser/query-builder/Brackets.d.ts +1 -0
  470. package/browser/query-builder/Brackets.js +1 -0
  471. package/browser/query-builder/Brackets.js.map +1 -1
  472. package/browser/query-builder/DeleteQueryBuilder.d.ts +7 -0
  473. package/browser/query-builder/DeleteQueryBuilder.js +9 -0
  474. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  475. package/browser/query-builder/InsertQueryBuilder.d.ts +9 -0
  476. package/browser/query-builder/InsertQueryBuilder.js +14 -8
  477. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  478. package/browser/query-builder/JoinAttribute.js +3 -3
  479. package/browser/query-builder/JoinAttribute.js.map +1 -1
  480. package/browser/query-builder/QueryBuilder.d.ts +25 -4
  481. package/browser/query-builder/QueryBuilder.js +58 -15
  482. package/browser/query-builder/QueryBuilder.js.map +1 -1
  483. package/browser/query-builder/QueryBuilderUtils.d.ts +1 -0
  484. package/browser/query-builder/QueryBuilderUtils.js +1 -0
  485. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  486. package/browser/query-builder/QueryExpressionMap.d.ts +5 -0
  487. package/browser/query-builder/QueryExpressionMap.js +4 -1
  488. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  489. package/browser/query-builder/RelationIdLoader.d.ts +6 -35
  490. package/browser/query-builder/RelationIdLoader.js +19 -43
  491. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  492. package/browser/query-builder/RelationLoader.d.ts +11 -2
  493. package/browser/query-builder/RelationLoader.js +20 -17
  494. package/browser/query-builder/RelationLoader.js.map +1 -1
  495. package/browser/query-builder/RelationQueryBuilder.d.ts +5 -0
  496. package/browser/query-builder/RelationQueryBuilder.js +5 -0
  497. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  498. package/browser/query-builder/RelationRemover.d.ts +1 -0
  499. package/browser/query-builder/RelationRemover.js +1 -0
  500. package/browser/query-builder/RelationRemover.js.map +1 -1
  501. package/browser/query-builder/RelationUpdater.d.ts +1 -0
  502. package/browser/query-builder/RelationUpdater.js +1 -0
  503. package/browser/query-builder/RelationUpdater.js.map +1 -1
  504. package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +2 -0
  505. package/browser/query-builder/ReturningResultsEntityUpdator.js +3 -1
  506. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  507. package/browser/query-builder/SelectQueryBuilder.d.ts +31 -8
  508. package/browser/query-builder/SelectQueryBuilder.js +98 -70
  509. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  510. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +11 -0
  511. package/browser/query-builder/SoftDeleteQueryBuilder.js +17 -0
  512. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  513. package/browser/query-builder/UpdateQueryBuilder.d.ts +11 -0
  514. package/browser/query-builder/UpdateQueryBuilder.js +18 -1
  515. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  516. package/browser/query-builder/relation-id/RelationIdAttribute.js +5 -5
  517. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  518. package/browser/query-builder/relation-id/RelationIdLoader.d.ts +2 -1
  519. package/browser/query-builder/relation-id/RelationIdLoader.js +6 -3
  520. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  521. package/browser/query-builder/transformer/DocumentToEntityTransformer.js +3 -16
  522. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  523. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +2 -4
  524. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  525. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +1 -0
  526. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
  527. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  528. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +6 -0
  529. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -7
  530. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  531. package/browser/query-runner/BaseQueryRunner.d.ts +21 -1
  532. package/browser/query-runner/BaseQueryRunner.js +36 -49
  533. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  534. package/browser/query-runner/QueryRunner.d.ts +5 -1
  535. package/browser/query-runner/QueryRunner.js.map +1 -1
  536. package/browser/repository/BaseEntity.d.ts +32 -0
  537. package/browser/repository/BaseEntity.js +36 -0
  538. package/browser/repository/BaseEntity.js.map +1 -1
  539. package/browser/repository/MongoRepository.d.ts +39 -0
  540. package/browser/repository/MongoRepository.js +41 -2
  541. package/browser/repository/MongoRepository.js.map +1 -1
  542. package/browser/repository/Repository.d.ts +37 -1
  543. package/browser/repository/Repository.js +43 -2
  544. package/browser/repository/Repository.js.map +1 -1
  545. package/browser/repository/TreeRepository.d.ts +11 -0
  546. package/browser/repository/TreeRepository.js +12 -1
  547. package/browser/repository/TreeRepository.js.map +1 -1
  548. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +6 -4
  549. package/browser/schema-builder/RdbmsSchemaBuilder.js +10 -13
  550. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  551. package/browser/schema-builder/table/Table.d.ts +17 -0
  552. package/browser/schema-builder/table/Table.js +19 -2
  553. package/browser/schema-builder/table/Table.js.map +1 -1
  554. package/browser/schema-builder/table/TableCheck.d.ts +1 -0
  555. package/browser/schema-builder/table/TableCheck.js +1 -0
  556. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  557. package/browser/schema-builder/table/TableColumn.js +7 -7
  558. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  559. package/browser/schema-builder/table/TableExclusion.d.ts +1 -0
  560. package/browser/schema-builder/table/TableExclusion.js +1 -0
  561. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  562. package/browser/schema-builder/table/TableForeignKey.d.ts +1 -0
  563. package/browser/schema-builder/table/TableForeignKey.js +1 -0
  564. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  565. package/browser/schema-builder/table/TableIndex.d.ts +1 -0
  566. package/browser/schema-builder/table/TableIndex.js +2 -1
  567. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  568. package/browser/schema-builder/table/TableUnique.d.ts +1 -0
  569. package/browser/schema-builder/table/TableUnique.js +1 -0
  570. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  571. package/browser/schema-builder/util/ViewUtils.d.ts +1 -0
  572. package/browser/schema-builder/util/ViewUtils.js +1 -0
  573. package/browser/schema-builder/util/ViewUtils.js.map +1 -1
  574. package/browser/schema-builder/view/View.d.ts +3 -0
  575. package/browser/schema-builder/view/View.js +3 -0
  576. package/browser/schema-builder/view/View.js.map +1 -1
  577. package/browser/subscriber/Broadcaster.d.ts +20 -0
  578. package/browser/subscriber/Broadcaster.js +25 -6
  579. package/browser/subscriber/Broadcaster.js.map +1 -1
  580. package/browser/subscriber/event/BaseEvent.d.ts +1 -0
  581. package/browser/subscriber/event/BaseEvent.js.map +1 -1
  582. package/browser/util/DateUtils.d.ts +15 -0
  583. package/browser/util/DateUtils.js +15 -0
  584. package/browser/util/DateUtils.js.map +1 -1
  585. package/browser/util/DepGraph.d.ts +10 -0
  586. package/browser/util/DepGraph.js +11 -0
  587. package/browser/util/DepGraph.js.map +1 -1
  588. package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -0
  589. package/browser/util/DirectoryExportedClassesLoader.js +1 -0
  590. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  591. package/browser/util/ObjectUtils.d.ts +6 -0
  592. package/browser/util/ObjectUtils.js +4 -0
  593. package/browser/util/ObjectUtils.js.map +1 -1
  594. package/browser/util/OrmUtils.d.ts +14 -0
  595. package/browser/util/OrmUtils.js +18 -6
  596. package/browser/util/OrmUtils.js.map +1 -1
  597. package/browser/util/PathUtils.d.ts +2 -0
  598. package/browser/util/PathUtils.js +2 -0
  599. package/browser/util/PathUtils.js.map +1 -1
  600. package/browser/util/RandomGenerator.d.ts +2 -0
  601. package/browser/util/RandomGenerator.js +2 -0
  602. package/browser/util/RandomGenerator.js.map +1 -1
  603. package/browser/util/StringUtils.d.ts +11 -4
  604. package/browser/util/StringUtils.js +15 -7
  605. package/browser/util/StringUtils.js.map +1 -1
  606. package/browser/util/TreeRepositoryUtils.js +2 -2
  607. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  608. package/cache/DbQueryResultCache.d.ts +7 -0
  609. package/cache/DbQueryResultCache.js +12 -4
  610. package/cache/DbQueryResultCache.js.map +1 -1
  611. package/cache/RedisQueryResultCache.d.ts +7 -0
  612. package/cache/RedisQueryResultCache.js +15 -10
  613. package/cache/RedisQueryResultCache.js.map +1 -1
  614. package/cli-ts-node-esm.js +2 -2
  615. package/cli-ts-node-esm.js.map +1 -1
  616. package/commands/CacheClearCommand.js +1 -1
  617. package/commands/CacheClearCommand.js.map +1 -1
  618. package/commands/CommandUtils.d.ts +4 -0
  619. package/commands/CommandUtils.js +4 -0
  620. package/commands/CommandUtils.js.map +1 -1
  621. package/commands/EntityCreateCommand.d.ts +1 -0
  622. package/commands/EntityCreateCommand.js +1 -0
  623. package/commands/EntityCreateCommand.js.map +1 -1
  624. package/commands/InitCommand.d.ts +10 -0
  625. package/commands/InitCommand.js +16 -9
  626. package/commands/InitCommand.js.map +1 -1
  627. package/commands/MigrationCreateCommand.d.ts +2 -0
  628. package/commands/MigrationCreateCommand.js +2 -0
  629. package/commands/MigrationCreateCommand.js.map +1 -1
  630. package/commands/MigrationGenerateCommand.d.ts +3 -0
  631. package/commands/MigrationGenerateCommand.js +4 -1
  632. package/commands/MigrationGenerateCommand.js.map +1 -1
  633. package/commands/MigrationRevertCommand.js +1 -1
  634. package/commands/MigrationRevertCommand.js.map +1 -1
  635. package/commands/MigrationRunCommand.js +1 -1
  636. package/commands/MigrationRunCommand.js.map +1 -1
  637. package/commands/MigrationShowCommand.js +1 -1
  638. package/commands/MigrationShowCommand.js.map +1 -1
  639. package/commands/QueryCommand.js +1 -1
  640. package/commands/QueryCommand.js.map +1 -1
  641. package/commands/SchemaDropCommand.js +1 -1
  642. package/commands/SchemaDropCommand.js.map +1 -1
  643. package/commands/SchemaSyncCommand.js +1 -1
  644. package/commands/SchemaSyncCommand.js.map +1 -1
  645. package/commands/SubscriberCreateCommand.d.ts +1 -0
  646. package/commands/SubscriberCreateCommand.js +1 -0
  647. package/commands/SubscriberCreateCommand.js.map +1 -1
  648. package/commands/VersionCommand.js +2 -2
  649. package/commands/VersionCommand.js.map +1 -1
  650. package/common/RelationType.d.ts +2 -0
  651. package/common/RelationType.js.map +1 -1
  652. package/connection/ConnectionMetadataBuilder.d.ts +3 -0
  653. package/connection/ConnectionMetadataBuilder.js +3 -0
  654. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  655. package/connection/ConnectionOptionsReader.d.ts +5 -4
  656. package/connection/ConnectionOptionsReader.js +14 -12
  657. package/connection/ConnectionOptionsReader.js.map +1 -1
  658. package/data-source/BaseDataSourceOptions.d.ts +8 -0
  659. package/data-source/BaseDataSourceOptions.js.map +1 -1
  660. package/data-source/DataSource.d.ts +20 -1
  661. package/data-source/DataSource.js +37 -15
  662. package/data-source/DataSource.js.map +1 -1
  663. package/decorator/Check.d.ts +2 -0
  664. package/decorator/Check.js +2 -1
  665. package/decorator/Check.js.map +1 -1
  666. package/decorator/Exclusion.d.ts +2 -0
  667. package/decorator/Exclusion.js +1 -0
  668. package/decorator/Exclusion.js.map +1 -1
  669. package/decorator/ForeignKey.d.ts +3 -0
  670. package/decorator/ForeignKey.js +1 -0
  671. package/decorator/ForeignKey.js.map +1 -1
  672. package/decorator/Generated.d.ts +1 -0
  673. package/decorator/Generated.js +1 -0
  674. package/decorator/Generated.js.map +1 -1
  675. package/decorator/Index.d.ts +7 -0
  676. package/decorator/Index.js +13 -13
  677. package/decorator/Index.js.map +1 -1
  678. package/decorator/Unique.d.ts +4 -0
  679. package/decorator/Unique.js +6 -6
  680. package/decorator/Unique.js.map +1 -1
  681. package/decorator/columns/Column.d.ts +11 -0
  682. package/decorator/columns/Column.js +3 -3
  683. package/decorator/columns/Column.js.map +1 -1
  684. package/decorator/columns/CreateDateColumn.d.ts +1 -0
  685. package/decorator/columns/CreateDateColumn.js +2 -1
  686. package/decorator/columns/CreateDateColumn.js.map +1 -1
  687. package/decorator/columns/DeleteDateColumn.d.ts +1 -0
  688. package/decorator/columns/DeleteDateColumn.js +2 -1
  689. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  690. package/decorator/columns/ObjectIdColumn.d.ts +1 -0
  691. package/decorator/columns/ObjectIdColumn.js +3 -4
  692. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  693. package/decorator/columns/PrimaryColumn.d.ts +2 -0
  694. package/decorator/columns/PrimaryColumn.js +2 -2
  695. package/decorator/columns/PrimaryColumn.js.map +1 -1
  696. package/decorator/columns/PrimaryGeneratedColumn.d.ts +4 -0
  697. package/decorator/columns/PrimaryGeneratedColumn.js +1 -0
  698. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  699. package/decorator/columns/UpdateDateColumn.d.ts +1 -0
  700. package/decorator/columns/UpdateDateColumn.js +2 -1
  701. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  702. package/decorator/columns/VersionColumn.d.ts +1 -0
  703. package/decorator/columns/VersionColumn.js +2 -1
  704. package/decorator/columns/VersionColumn.js.map +1 -1
  705. package/decorator/columns/ViewColumn.d.ts +1 -0
  706. package/decorator/columns/ViewColumn.js +2 -1
  707. package/decorator/columns/ViewColumn.js.map +1 -1
  708. package/decorator/columns/VirtualColumn.d.ts +2 -0
  709. package/decorator/columns/VirtualColumn.js +1 -0
  710. package/decorator/columns/VirtualColumn.js.map +1 -1
  711. package/decorator/entity/ChildEntity.d.ts +1 -0
  712. package/decorator/entity/ChildEntity.js +1 -0
  713. package/decorator/entity/ChildEntity.js.map +1 -1
  714. package/decorator/entity/Entity.d.ts +2 -0
  715. package/decorator/entity/Entity.js +7 -6
  716. package/decorator/entity/Entity.js.map +1 -1
  717. package/decorator/entity/TableInheritance.d.ts +1 -0
  718. package/decorator/entity/TableInheritance.js +3 -2
  719. package/decorator/entity/TableInheritance.js.map +1 -1
  720. package/decorator/entity-view/ViewEntity.d.ts +2 -0
  721. package/decorator/entity-view/ViewEntity.js +4 -3
  722. package/decorator/entity-view/ViewEntity.js.map +1 -1
  723. package/decorator/options/ColumnOptions.d.ts +3 -0
  724. package/decorator/options/ColumnOptions.js.map +1 -1
  725. package/decorator/options/EntityOptions.d.ts +1 -0
  726. package/decorator/options/EntityOptions.js.map +1 -1
  727. package/decorator/options/RelationOptions.d.ts +2 -0
  728. package/decorator/options/RelationOptions.js.map +1 -1
  729. package/decorator/options/VirtualColumnOptions.d.ts +1 -0
  730. package/decorator/options/VirtualColumnOptions.js.map +1 -1
  731. package/decorator/relations/JoinColumn.d.ts +2 -0
  732. package/decorator/relations/JoinColumn.js +2 -1
  733. package/decorator/relations/JoinColumn.js.map +1 -1
  734. package/decorator/relations/JoinTable.d.ts +2 -0
  735. package/decorator/relations/JoinTable.js +5 -4
  736. package/decorator/relations/JoinTable.js.map +1 -1
  737. package/decorator/relations/ManyToMany.d.ts +2 -0
  738. package/decorator/relations/ManyToMany.js +2 -2
  739. package/decorator/relations/ManyToMany.js.map +1 -1
  740. package/decorator/relations/ManyToOne.d.ts +2 -0
  741. package/decorator/relations/ManyToOne.js +3 -3
  742. package/decorator/relations/ManyToOne.js.map +1 -1
  743. package/decorator/relations/OneToMany.d.ts +1 -0
  744. package/decorator/relations/OneToMany.js +3 -3
  745. package/decorator/relations/OneToMany.js.map +1 -1
  746. package/decorator/relations/OneToOne.d.ts +2 -0
  747. package/decorator/relations/OneToOne.js +3 -3
  748. package/decorator/relations/OneToOne.js.map +1 -1
  749. package/decorator/relations/RelationId.d.ts +1 -0
  750. package/decorator/relations/RelationId.js +1 -0
  751. package/decorator/relations/RelationId.js.map +1 -1
  752. package/decorator/tree/Tree.d.ts +1 -0
  753. package/decorator/tree/Tree.js +1 -0
  754. package/decorator/tree/Tree.js.map +1 -1
  755. package/decorator/tree/TreeChildren.d.ts +1 -0
  756. package/decorator/tree/TreeChildren.js +3 -3
  757. package/decorator/tree/TreeChildren.js.map +1 -1
  758. package/decorator/tree/TreeParent.d.ts +1 -0
  759. package/decorator/tree/TreeParent.js +3 -3
  760. package/decorator/tree/TreeParent.js.map +1 -1
  761. package/driver/Driver.d.ts +5 -0
  762. package/driver/Driver.js.map +1 -1
  763. package/driver/DriverFactory.d.ts +1 -0
  764. package/driver/DriverFactory.js +1 -0
  765. package/driver/DriverFactory.js.map +1 -1
  766. package/driver/DriverUtils.d.ts +7 -0
  767. package/driver/DriverUtils.js +34 -21
  768. package/driver/DriverUtils.js.map +1 -1
  769. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -0
  770. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  771. package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.d.ts +1 -0
  772. package/driver/aurora-mysql/AuroraMysqlDataSourceOptions.js.map +1 -1
  773. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +37 -0
  774. package/driver/aurora-mysql/AuroraMysqlDriver.js +53 -16
  775. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  776. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +64 -0
  777. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +90 -30
  778. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  779. package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +13 -0
  780. package/driver/aurora-postgres/AuroraPostgresDriver.js +26 -5
  781. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  782. package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +3 -0
  783. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +27 -1
  784. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  785. package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.d.ts +1 -0
  786. package/driver/better-sqlite3/BetterSqlite3DataSourceOptions.js.map +1 -1
  787. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +3 -0
  788. package/driver/better-sqlite3/BetterSqlite3Driver.js +5 -3
  789. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  790. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +1 -0
  791. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
  792. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  793. package/driver/capacitor/CapacitorDriver.d.ts +1 -0
  794. package/driver/capacitor/CapacitorDriver.js +3 -3
  795. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  796. package/driver/capacitor/CapacitorQueryRunner.d.ts +2 -0
  797. package/driver/capacitor/CapacitorQueryRunner.js +4 -2
  798. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  799. package/driver/cockroachdb/CockroachDataSourceOptions.d.ts +1 -0
  800. package/driver/cockroachdb/CockroachDataSourceOptions.js.map +1 -1
  801. package/driver/cockroachdb/CockroachDriver.d.ts +35 -0
  802. package/driver/cockroachdb/CockroachDriver.js +64 -29
  803. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  804. package/driver/cockroachdb/CockroachQueryRunner.d.ts +74 -0
  805. package/driver/cockroachdb/CockroachQueryRunner.js +143 -119
  806. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  807. package/driver/cordova/CordovaDriver.d.ts +6 -0
  808. package/driver/cordova/CordovaDriver.js +14 -4
  809. package/driver/cordova/CordovaDriver.js.map +1 -1
  810. package/driver/cordova/CordovaQueryRunner.d.ts +2 -0
  811. package/driver/cordova/CordovaQueryRunner.js +3 -1
  812. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  813. package/driver/expo/ExpoDriver.js +1 -2
  814. package/driver/expo/ExpoDriver.js.map +1 -1
  815. package/driver/mongodb/MongoDriver.d.ts +25 -0
  816. package/driver/mongodb/MongoDriver.js +35 -6
  817. package/driver/mongodb/MongoDriver.js.map +1 -1
  818. package/driver/mongodb/MongoQueryRunner.d.ts +84 -0
  819. package/driver/mongodb/MongoQueryRunner.js +102 -18
  820. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  821. package/driver/mongodb/bson.typings.d.ts +1 -0
  822. package/driver/mongodb/bson.typings.js.map +1 -1
  823. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -0
  824. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  825. package/driver/mysql/MysqlDataSourceOptions.d.ts +2 -0
  826. package/driver/mysql/MysqlDataSourceOptions.js.map +1 -1
  827. package/driver/mysql/MysqlDriver.d.ts +37 -0
  828. package/driver/mysql/MysqlDriver.js +57 -17
  829. package/driver/mysql/MysqlDriver.js.map +1 -1
  830. package/driver/mysql/MysqlQueryRunner.d.ts +64 -0
  831. package/driver/mysql/MysqlQueryRunner.js +140 -111
  832. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  833. package/driver/nativescript/NativescriptDriver.d.ts +1 -0
  834. package/driver/nativescript/NativescriptDriver.js +3 -4
  835. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  836. package/driver/nativescript/NativescriptQueryRunner.d.ts +2 -0
  837. package/driver/nativescript/NativescriptQueryRunner.js +3 -1
  838. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  839. package/driver/oracle/OracleDriver.d.ts +32 -0
  840. package/driver/oracle/OracleDriver.js +48 -15
  841. package/driver/oracle/OracleDriver.js.map +1 -1
  842. package/driver/oracle/OracleQueryRunner.d.ts +66 -0
  843. package/driver/oracle/OracleQueryRunner.js +119 -83
  844. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  845. package/driver/postgres/PostgresDataSourceOptions.d.ts +2 -0
  846. package/driver/postgres/PostgresDataSourceOptions.js.map +1 -1
  847. package/driver/postgres/PostgresDriver.d.ts +37 -0
  848. package/driver/postgres/PostgresDriver.js +67 -31
  849. package/driver/postgres/PostgresDriver.js.map +1 -1
  850. package/driver/postgres/PostgresQueryRunner.d.ts +81 -0
  851. package/driver/postgres/PostgresQueryRunner.js +152 -121
  852. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  853. package/driver/react-native/ReactNativeDriver.d.ts +29 -0
  854. package/driver/react-native/ReactNativeDriver.js +45 -12
  855. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  856. package/driver/react-native/ReactNativeQueryRunner.d.ts +2 -0
  857. package/driver/react-native/ReactNativeQueryRunner.js +3 -1
  858. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  859. package/driver/sap/SapDataSourceOptions.d.ts +1 -0
  860. package/driver/sap/SapDataSourceOptions.js.map +1 -1
  861. package/driver/sap/SapDriver.d.ts +30 -0
  862. package/driver/sap/SapDriver.js +45 -11
  863. package/driver/sap/SapDriver.js.map +1 -1
  864. package/driver/sap/SapQueryRunner.d.ts +66 -0
  865. package/driver/sap/SapQueryRunner.js +101 -56
  866. package/driver/sap/SapQueryRunner.js.map +1 -1
  867. package/driver/spanner/SpannerDataSourceOptions.d.ts +1 -0
  868. package/driver/spanner/SpannerDataSourceOptions.js.map +1 -1
  869. package/driver/spanner/SpannerDriver.d.ts +33 -0
  870. package/driver/spanner/SpannerDriver.js +50 -10
  871. package/driver/spanner/SpannerDriver.js.map +1 -1
  872. package/driver/spanner/SpannerQueryRunner.d.ts +64 -0
  873. package/driver/spanner/SpannerQueryRunner.js +89 -32
  874. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  875. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +30 -0
  876. package/driver/sqlite-abstract/AbstractSqliteDriver.js +43 -77
  877. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  878. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +59 -0
  879. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +89 -45
  880. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  881. package/driver/sqljs/SqljsDriver.d.ts +5 -0
  882. package/driver/sqljs/SqljsDriver.js +8 -4
  883. package/driver/sqljs/SqljsDriver.js.map +1 -1
  884. package/driver/sqljs/SqljsQueryRunner.d.ts +1 -0
  885. package/driver/sqljs/SqljsQueryRunner.js +1 -0
  886. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  887. package/driver/sqlserver/MssqlParameter.d.ts +1 -0
  888. package/driver/sqlserver/MssqlParameter.js +1 -0
  889. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  890. package/driver/sqlserver/SqlServerDataSourceOptions.d.ts +14 -5
  891. package/driver/sqlserver/SqlServerDataSourceOptions.js.map +1 -1
  892. package/driver/sqlserver/SqlServerDriver.d.ts +42 -0
  893. package/driver/sqlserver/SqlServerDriver.js +100 -26
  894. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  895. package/driver/sqlserver/SqlServerQueryRunner.d.ts +76 -10
  896. package/driver/sqlserver/SqlServerQueryRunner.js +160 -163
  897. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  898. package/driver/types/IsolationLevel.d.ts +2 -1
  899. package/driver/types/IsolationLevel.js +8 -0
  900. package/driver/types/IsolationLevel.js.map +1 -1
  901. package/driver/validate-isolation-level.d.ts +9 -0
  902. package/driver/validate-isolation-level.js +23 -0
  903. package/driver/validate-isolation-level.js.map +1 -0
  904. package/entity-manager/EntityManager.d.ts +38 -1
  905. package/entity-manager/EntityManager.js +58 -12
  906. package/entity-manager/EntityManager.js.map +1 -1
  907. package/entity-manager/EntityManagerFactory.d.ts +1 -0
  908. package/entity-manager/EntityManagerFactory.js +1 -0
  909. package/entity-manager/EntityManagerFactory.js.map +1 -1
  910. package/entity-manager/MongoEntityManager.d.ts +54 -1
  911. package/entity-manager/MongoEntityManager.js +103 -12
  912. package/entity-manager/MongoEntityManager.js.map +1 -1
  913. package/entity-manager/SqljsEntityManager.d.ts +2 -0
  914. package/entity-manager/SqljsEntityManager.js +2 -0
  915. package/entity-manager/SqljsEntityManager.js.map +1 -1
  916. package/entity-schema/EntitySchemaColumnOptions.d.ts +1 -0
  917. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  918. package/entity-schema/EntitySchemaOptions.d.ts +1 -0
  919. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  920. package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  921. package/entity-schema/EntitySchemaTransformer.js +25 -26
  922. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  923. package/error/InitializedRelationError.d.ts +1 -0
  924. package/error/InitializedRelationError.js +1 -0
  925. package/error/InitializedRelationError.js.map +1 -1
  926. package/find-options/FindOptionsUtils.d.ts +7 -0
  927. package/find-options/FindOptionsUtils.js +7 -0
  928. package/find-options/FindOptionsUtils.js.map +1 -1
  929. package/find-options/OrderByCondition.d.ts +2 -1
  930. package/find-options/OrderByCondition.js.map +1 -1
  931. package/find-options/operator/Any.d.ts +4 -1
  932. package/find-options/operator/Any.js +4 -1
  933. package/find-options/operator/Any.js.map +1 -1
  934. package/find-options/operator/ArrayContainedBy.d.ts +4 -1
  935. package/find-options/operator/ArrayContainedBy.js +4 -1
  936. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  937. package/find-options/operator/ArrayContains.d.ts +4 -1
  938. package/find-options/operator/ArrayContains.js +4 -1
  939. package/find-options/operator/ArrayContains.js.map +1 -1
  940. package/find-options/operator/ArrayOverlap.d.ts +4 -1
  941. package/find-options/operator/ArrayOverlap.js +4 -1
  942. package/find-options/operator/ArrayOverlap.js.map +1 -1
  943. package/find-options/operator/Between.d.ts +4 -1
  944. package/find-options/operator/Between.js +4 -1
  945. package/find-options/operator/Between.js.map +1 -1
  946. package/find-options/operator/Equal.d.ts +6 -3
  947. package/find-options/operator/Equal.js +6 -3
  948. package/find-options/operator/Equal.js.map +1 -1
  949. package/find-options/operator/ILike.d.ts +4 -1
  950. package/find-options/operator/ILike.js +4 -1
  951. package/find-options/operator/ILike.js.map +1 -1
  952. package/find-options/operator/In.d.ts +4 -1
  953. package/find-options/operator/In.js +4 -1
  954. package/find-options/operator/In.js.map +1 -1
  955. package/find-options/operator/IsNull.d.ts +4 -1
  956. package/find-options/operator/IsNull.js +4 -1
  957. package/find-options/operator/IsNull.js.map +1 -1
  958. package/find-options/operator/JsonContains.d.ts +4 -1
  959. package/find-options/operator/JsonContains.js +4 -1
  960. package/find-options/operator/JsonContains.js.map +1 -1
  961. package/find-options/operator/LessThan.d.ts +4 -1
  962. package/find-options/operator/LessThan.js +4 -1
  963. package/find-options/operator/LessThan.js.map +1 -1
  964. package/find-options/operator/LessThanOrEqual.d.ts +4 -1
  965. package/find-options/operator/LessThanOrEqual.js +4 -1
  966. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  967. package/find-options/operator/Like.d.ts +4 -1
  968. package/find-options/operator/Like.js +4 -1
  969. package/find-options/operator/Like.js.map +1 -1
  970. package/find-options/operator/MoreThan.d.ts +4 -1
  971. package/find-options/operator/MoreThan.js +4 -1
  972. package/find-options/operator/MoreThan.js.map +1 -1
  973. package/find-options/operator/MoreThanOrEqual.d.ts +4 -1
  974. package/find-options/operator/MoreThanOrEqual.js +4 -1
  975. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  976. package/find-options/operator/Not.d.ts +4 -1
  977. package/find-options/operator/Not.js +4 -1
  978. package/find-options/operator/Not.js.map +1 -1
  979. package/find-options/operator/Raw.d.ts +12 -3
  980. package/find-options/operator/Raw.js.map +1 -1
  981. package/globals.js +1 -2
  982. package/globals.js.map +1 -1
  983. package/logger/AbstractLogger.d.ts +9 -0
  984. package/logger/AbstractLogger.js +10 -2
  985. package/logger/AbstractLogger.js.map +1 -1
  986. package/logger/AdvancedConsoleLogger.d.ts +1 -0
  987. package/logger/AdvancedConsoleLogger.js +1 -0
  988. package/logger/AdvancedConsoleLogger.js.map +1 -1
  989. package/logger/DebugLogger.d.ts +2 -0
  990. package/logger/DebugLogger.js +3 -1
  991. package/logger/DebugLogger.js.map +1 -1
  992. package/logger/FileLogger.d.ts +13 -2
  993. package/logger/FileLogger.js +4 -5
  994. package/logger/FileLogger.js.map +1 -1
  995. package/logger/FormattedConsoleLogger.d.ts +1 -0
  996. package/logger/FormattedConsoleLogger.js +1 -0
  997. package/logger/FormattedConsoleLogger.js.map +1 -1
  998. package/logger/LoggerFactory.d.ts +1 -0
  999. package/logger/LoggerFactory.js +1 -0
  1000. package/logger/LoggerFactory.js.map +1 -1
  1001. package/logger/LoggerOptions.d.ts +0 -9
  1002. package/logger/LoggerOptions.js.map +1 -1
  1003. package/logger/SimpleConsoleLogger.d.ts +1 -0
  1004. package/logger/SimpleConsoleLogger.js +1 -0
  1005. package/logger/SimpleConsoleLogger.js.map +1 -1
  1006. package/metadata/CheckMetadata.d.ts +1 -0
  1007. package/metadata/CheckMetadata.js +4 -3
  1008. package/metadata/CheckMetadata.js.map +1 -1
  1009. package/metadata/ColumnMetadata.d.ts +8 -5
  1010. package/metadata/ColumnMetadata.js +17 -25
  1011. package/metadata/ColumnMetadata.js.map +1 -1
  1012. package/metadata/EmbeddedMetadata.d.ts +1 -0
  1013. package/metadata/EmbeddedMetadata.js +1 -0
  1014. package/metadata/EmbeddedMetadata.js.map +1 -1
  1015. package/metadata/EntityListenerMetadata.d.ts +3 -0
  1016. package/metadata/EntityListenerMetadata.js +3 -0
  1017. package/metadata/EntityListenerMetadata.js.map +1 -1
  1018. package/metadata/EntityMetadata.d.ts +25 -5
  1019. package/metadata/EntityMetadata.js +32 -12
  1020. package/metadata/EntityMetadata.js.map +1 -1
  1021. package/metadata/ExclusionMetadata.d.ts +1 -0
  1022. package/metadata/ExclusionMetadata.js +4 -3
  1023. package/metadata/ExclusionMetadata.js.map +1 -1
  1024. package/metadata/ForeignKeyMetadata.d.ts +1 -0
  1025. package/metadata/ForeignKeyMetadata.js +6 -5
  1026. package/metadata/ForeignKeyMetadata.js.map +1 -1
  1027. package/metadata/IndexMetadata.d.ts +1 -0
  1028. package/metadata/IndexMetadata.js +4 -3
  1029. package/metadata/IndexMetadata.js.map +1 -1
  1030. package/metadata/RelationIdMetadata.d.ts +1 -0
  1031. package/metadata/RelationIdMetadata.js +1 -0
  1032. package/metadata/RelationIdMetadata.js.map +1 -1
  1033. package/metadata/RelationMetadata.d.ts +8 -0
  1034. package/metadata/RelationMetadata.js +15 -15
  1035. package/metadata/RelationMetadata.js.map +1 -1
  1036. package/metadata/UniqueMetadata.d.ts +1 -0
  1037. package/metadata/UniqueMetadata.js +4 -3
  1038. package/metadata/UniqueMetadata.js.map +1 -1
  1039. package/metadata-args/MetadataArgsStorage.d.ts +4 -0
  1040. package/metadata-args/MetadataArgsStorage.js +4 -0
  1041. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  1042. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +1 -0
  1043. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +7 -11
  1044. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  1045. package/metadata-builder/EntityMetadataBuilder.d.ts +7 -0
  1046. package/metadata-builder/EntityMetadataBuilder.js +11 -6
  1047. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  1048. package/metadata-builder/EntityMetadataValidator.d.ts +4 -0
  1049. package/metadata-builder/EntityMetadataValidator.js +6 -43
  1050. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  1051. package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +3 -0
  1052. package/metadata-builder/JunctionEntityMetadataBuilder.js +39 -20
  1053. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  1054. package/metadata-builder/MetadataUtils.d.ts +3 -0
  1055. package/metadata-builder/MetadataUtils.js +4 -1
  1056. package/metadata-builder/MetadataUtils.js.map +1 -1
  1057. package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -0
  1058. package/metadata-builder/RelationJoinColumnBuilder.js +17 -1
  1059. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  1060. package/migration/MigrationExecutor.d.ts +9 -0
  1061. package/migration/MigrationExecutor.js +16 -7
  1062. package/migration/MigrationExecutor.js.map +1 -1
  1063. package/naming-strategy/DefaultNamingStrategy.d.ts +3 -0
  1064. package/naming-strategy/DefaultNamingStrategy.js +13 -10
  1065. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  1066. package/naming-strategy/NamingStrategyInterface.d.ts +2 -0
  1067. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  1068. package/package.json +6 -2
  1069. package/persistence/EntityPersistExecutor.js +2 -4
  1070. package/persistence/EntityPersistExecutor.js.map +1 -1
  1071. package/persistence/Subject.js +4 -6
  1072. package/persistence/Subject.js.map +1 -1
  1073. package/persistence/SubjectChangedColumnsComputer.d.ts +3 -0
  1074. package/persistence/SubjectChangedColumnsComputer.js +3 -0
  1075. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  1076. package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -0
  1077. package/persistence/SubjectDatabaseEntityLoader.js +3 -1
  1078. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  1079. package/persistence/SubjectExecutor.d.ts +2 -0
  1080. package/persistence/SubjectExecutor.js +15 -27
  1081. package/persistence/SubjectExecutor.js.map +1 -1
  1082. package/persistence/SubjectTopologicalSorter.d.ts +4 -0
  1083. package/persistence/SubjectTopologicalSorter.js +4 -0
  1084. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  1085. package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +2 -0
  1086. package/persistence/subject-builder/CascadesSubjectBuilder.js +37 -11
  1087. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  1088. package/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +11 -8
  1089. package/persistence/subject-builder/ManyToManySubjectBuilder.js +15 -13
  1090. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  1091. package/persistence/subject-builder/OneToManySubjectBuilder.d.ts +9 -10
  1092. package/persistence/subject-builder/OneToManySubjectBuilder.js +30 -24
  1093. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1094. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +9 -10
  1095. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +9 -10
  1096. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1097. package/persistence/tree/ClosureSubjectExecutor.d.ts +4 -0
  1098. package/persistence/tree/ClosureSubjectExecutor.js +10 -8
  1099. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1100. package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +2 -0
  1101. package/persistence/tree/MaterializedPathSubjectExecutor.js +8 -6
  1102. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1103. package/persistence/tree/NestedSetSubjectExecutor.d.ts +5 -0
  1104. package/persistence/tree/NestedSetSubjectExecutor.js +10 -5
  1105. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1106. package/platform/PlatformTools.d.ts +9 -0
  1107. package/platform/PlatformTools.js +10 -1
  1108. package/platform/PlatformTools.js.map +1 -1
  1109. package/query-builder/Alias.js +1 -1
  1110. package/query-builder/Alias.js.map +1 -1
  1111. package/query-builder/Brackets.d.ts +1 -0
  1112. package/query-builder/Brackets.js +1 -0
  1113. package/query-builder/Brackets.js.map +1 -1
  1114. package/query-builder/DeleteQueryBuilder.d.ts +7 -0
  1115. package/query-builder/DeleteQueryBuilder.js +9 -0
  1116. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  1117. package/query-builder/InsertQueryBuilder.d.ts +9 -0
  1118. package/query-builder/InsertQueryBuilder.js +14 -8
  1119. package/query-builder/InsertQueryBuilder.js.map +1 -1
  1120. package/query-builder/JoinAttribute.js +3 -3
  1121. package/query-builder/JoinAttribute.js.map +1 -1
  1122. package/query-builder/QueryBuilder.d.ts +25 -4
  1123. package/query-builder/QueryBuilder.js +58 -15
  1124. package/query-builder/QueryBuilder.js.map +1 -1
  1125. package/query-builder/QueryBuilderUtils.d.ts +1 -0
  1126. package/query-builder/QueryBuilderUtils.js +1 -0
  1127. package/query-builder/QueryBuilderUtils.js.map +1 -1
  1128. package/query-builder/QueryExpressionMap.d.ts +5 -0
  1129. package/query-builder/QueryExpressionMap.js +4 -1
  1130. package/query-builder/QueryExpressionMap.js.map +1 -1
  1131. package/query-builder/RelationIdLoader.d.ts +6 -35
  1132. package/query-builder/RelationIdLoader.js +19 -43
  1133. package/query-builder/RelationIdLoader.js.map +1 -1
  1134. package/query-builder/RelationLoader.d.ts +11 -2
  1135. package/query-builder/RelationLoader.js +20 -17
  1136. package/query-builder/RelationLoader.js.map +1 -1
  1137. package/query-builder/RelationQueryBuilder.d.ts +5 -0
  1138. package/query-builder/RelationQueryBuilder.js +5 -0
  1139. package/query-builder/RelationQueryBuilder.js.map +1 -1
  1140. package/query-builder/RelationRemover.d.ts +1 -0
  1141. package/query-builder/RelationRemover.js +1 -0
  1142. package/query-builder/RelationRemover.js.map +1 -1
  1143. package/query-builder/RelationUpdater.d.ts +1 -0
  1144. package/query-builder/RelationUpdater.js +1 -0
  1145. package/query-builder/RelationUpdater.js.map +1 -1
  1146. package/query-builder/ReturningResultsEntityUpdator.d.ts +2 -0
  1147. package/query-builder/ReturningResultsEntityUpdator.js +3 -1
  1148. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1149. package/query-builder/SelectQueryBuilder.d.ts +31 -8
  1150. package/query-builder/SelectQueryBuilder.js +98 -70
  1151. package/query-builder/SelectQueryBuilder.js.map +1 -1
  1152. package/query-builder/SoftDeleteQueryBuilder.d.ts +11 -0
  1153. package/query-builder/SoftDeleteQueryBuilder.js +17 -0
  1154. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1155. package/query-builder/UpdateQueryBuilder.d.ts +11 -0
  1156. package/query-builder/UpdateQueryBuilder.js +18 -1
  1157. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  1158. package/query-builder/relation-id/RelationIdAttribute.js +5 -5
  1159. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1160. package/query-builder/relation-id/RelationIdLoader.d.ts +2 -1
  1161. package/query-builder/relation-id/RelationIdLoader.js +6 -3
  1162. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1163. package/query-builder/transformer/DocumentToEntityTransformer.js +3 -16
  1164. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1165. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +2 -4
  1166. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1167. package/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +1 -0
  1168. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
  1169. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1170. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +6 -0
  1171. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -7
  1172. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1173. package/query-runner/BaseQueryRunner.d.ts +21 -1
  1174. package/query-runner/BaseQueryRunner.js +36 -49
  1175. package/query-runner/BaseQueryRunner.js.map +1 -1
  1176. package/query-runner/QueryRunner.d.ts +5 -1
  1177. package/query-runner/QueryRunner.js.map +1 -1
  1178. package/repository/BaseEntity.d.ts +32 -0
  1179. package/repository/BaseEntity.js +36 -0
  1180. package/repository/BaseEntity.js.map +1 -1
  1181. package/repository/MongoRepository.d.ts +39 -0
  1182. package/repository/MongoRepository.js +41 -2
  1183. package/repository/MongoRepository.js.map +1 -1
  1184. package/repository/Repository.d.ts +37 -1
  1185. package/repository/Repository.js +43 -2
  1186. package/repository/Repository.js.map +1 -1
  1187. package/repository/TreeRepository.d.ts +11 -0
  1188. package/repository/TreeRepository.js +12 -1
  1189. package/repository/TreeRepository.js.map +1 -1
  1190. package/schema-builder/RdbmsSchemaBuilder.d.ts +6 -4
  1191. package/schema-builder/RdbmsSchemaBuilder.js +10 -13
  1192. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1193. package/schema-builder/table/Table.d.ts +17 -0
  1194. package/schema-builder/table/Table.js +19 -2
  1195. package/schema-builder/table/Table.js.map +1 -1
  1196. package/schema-builder/table/TableCheck.d.ts +1 -0
  1197. package/schema-builder/table/TableCheck.js +1 -0
  1198. package/schema-builder/table/TableCheck.js.map +1 -1
  1199. package/schema-builder/table/TableColumn.js +7 -7
  1200. package/schema-builder/table/TableColumn.js.map +1 -1
  1201. package/schema-builder/table/TableExclusion.d.ts +1 -0
  1202. package/schema-builder/table/TableExclusion.js +1 -0
  1203. package/schema-builder/table/TableExclusion.js.map +1 -1
  1204. package/schema-builder/table/TableForeignKey.d.ts +1 -0
  1205. package/schema-builder/table/TableForeignKey.js +1 -0
  1206. package/schema-builder/table/TableForeignKey.js.map +1 -1
  1207. package/schema-builder/table/TableIndex.d.ts +1 -0
  1208. package/schema-builder/table/TableIndex.js +2 -1
  1209. package/schema-builder/table/TableIndex.js.map +1 -1
  1210. package/schema-builder/table/TableUnique.d.ts +1 -0
  1211. package/schema-builder/table/TableUnique.js +1 -0
  1212. package/schema-builder/table/TableUnique.js.map +1 -1
  1213. package/schema-builder/util/ViewUtils.d.ts +1 -0
  1214. package/schema-builder/util/ViewUtils.js +1 -0
  1215. package/schema-builder/util/ViewUtils.js.map +1 -1
  1216. package/schema-builder/view/View.d.ts +3 -0
  1217. package/schema-builder/view/View.js +3 -0
  1218. package/schema-builder/view/View.js.map +1 -1
  1219. package/subscriber/Broadcaster.d.ts +20 -0
  1220. package/subscriber/Broadcaster.js +25 -6
  1221. package/subscriber/Broadcaster.js.map +1 -1
  1222. package/subscriber/event/BaseEvent.d.ts +1 -0
  1223. package/subscriber/event/BaseEvent.js.map +1 -1
  1224. package/util/DateUtils.d.ts +15 -0
  1225. package/util/DateUtils.js +15 -0
  1226. package/util/DateUtils.js.map +1 -1
  1227. package/util/DepGraph.d.ts +10 -0
  1228. package/util/DepGraph.js +11 -0
  1229. package/util/DepGraph.js.map +1 -1
  1230. package/util/DirectoryExportedClassesLoader.d.ts +1 -0
  1231. package/util/DirectoryExportedClassesLoader.js +1 -0
  1232. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1233. package/util/ObjectUtils.d.ts +6 -0
  1234. package/util/ObjectUtils.js +4 -0
  1235. package/util/ObjectUtils.js.map +1 -1
  1236. package/util/OrmUtils.d.ts +14 -0
  1237. package/util/OrmUtils.js +18 -6
  1238. package/util/OrmUtils.js.map +1 -1
  1239. package/util/PathUtils.d.ts +2 -0
  1240. package/util/PathUtils.js +2 -0
  1241. package/util/PathUtils.js.map +1 -1
  1242. package/util/RandomGenerator.d.ts +2 -0
  1243. package/util/RandomGenerator.js +2 -0
  1244. package/util/RandomGenerator.js.map +1 -1
  1245. package/util/StringUtils.d.ts +11 -4
  1246. package/util/StringUtils.js +15 -7
  1247. package/util/StringUtils.js.map +1 -1
  1248. package/util/TreeRepositoryUtils.js +2 -2
  1249. package/util/TreeRepositoryUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"EntityMetadataBuilder.js","sourceRoot":"../build/browser/src/","sources":["metadata-builder/EntityMetadataBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport { IndexMetadata } from \"../metadata/IndexMetadata\"\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\nimport { EmbeddedMetadata } from \"../metadata/EmbeddedMetadata\"\nimport type { MetadataArgsStorage } from \"../metadata-args/MetadataArgsStorage\"\nimport type { EmbeddedMetadataArgs } from \"../metadata-args/EmbeddedMetadataArgs\"\nimport { RelationIdMetadata } from \"../metadata/RelationIdMetadata\"\nimport { EventListenerTypes } from \"../metadata/types/EventListenerTypes\"\nimport { MetadataUtils } from \"./MetadataUtils\"\nimport type { TableMetadataArgs } from \"../metadata-args/TableMetadataArgs\"\nimport { JunctionEntityMetadataBuilder } from \"./JunctionEntityMetadataBuilder\"\nimport { ClosureJunctionEntityMetadataBuilder } from \"./ClosureJunctionEntityMetadataBuilder\"\nimport { RelationJoinColumnBuilder } from \"./RelationJoinColumnBuilder\"\nimport type { DataSource } from \"../data-source/DataSource\"\nimport { EntityListenerMetadata } from \"../metadata/EntityListenerMetadata\"\nimport { UniqueMetadata } from \"../metadata/UniqueMetadata\"\nimport { CheckMetadata } from \"../metadata/CheckMetadata\"\nimport { ExclusionMetadata } from \"../metadata/ExclusionMetadata\"\nimport { TypeORMError } from \"../error\"\nimport { DriverUtils } from \"../driver/DriverUtils\"\nimport { ForeignKeyMetadata } from \"../metadata/ForeignKeyMetadata\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\n\n/**\n * Builds EntityMetadata objects and all its sub-metadatas.\n */\nexport class EntityMetadataBuilder {\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Used to build entity metadatas of the junction entities.\n */\n protected junctionEntityMetadataBuilder: JunctionEntityMetadataBuilder\n\n /**\n * Used to build entity metadatas of the closure junction entities.\n */\n protected closureJunctionEntityMetadataBuilder: ClosureJunctionEntityMetadataBuilder\n\n /**\n * Used to build join columns of the relations.\n */\n protected relationJoinColumnBuilder: RelationJoinColumnBuilder\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n private dataSource: DataSource,\n private metadataArgsStorage: MetadataArgsStorage,\n ) {\n this.junctionEntityMetadataBuilder = new JunctionEntityMetadataBuilder(\n dataSource,\n )\n this.closureJunctionEntityMetadataBuilder =\n new ClosureJunctionEntityMetadataBuilder(dataSource)\n this.relationJoinColumnBuilder = new RelationJoinColumnBuilder(\n dataSource,\n )\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Builds a complete entity metadatas for the given entity classes.\n * @param entityClasses\n */\n build(entityClasses?: Function[]): EntityMetadata[] {\n // if entity classes to filter entities by are given then do filtering, otherwise use all\n const allTables = entityClasses\n ? this.metadataArgsStorage.filterTables(entityClasses)\n : this.metadataArgsStorage.tables\n\n // filter out table metadata args for those we really create entity metadatas and tables in the db\n const realTables = allTables.filter(\n (table) =>\n table.type === \"regular\" ||\n table.type === \"closure\" ||\n table.type === \"entity-child\" ||\n table.type === \"view\",\n )\n\n // create entity metadatas for a user defined entities (marked with @Entity decorator or loaded from entity schemas)\n const entityMetadatas = realTables.map((tableArgs) =>\n this.createEntityMetadata(tableArgs),\n )\n\n // compute parent entity metadatas for table inheritance\n entityMetadatas.forEach((entityMetadata) =>\n this.computeParentEntityMetadata(entityMetadatas, entityMetadata),\n )\n\n // after all metadatas created we set child entity metadatas for table inheritance\n entityMetadatas.forEach((metadata) => {\n metadata.childEntityMetadatas = entityMetadatas.filter(\n (childMetadata) => {\n return (\n typeof metadata.target === \"function\" &&\n typeof childMetadata.target === \"function\" &&\n MetadataUtils.isInherited(\n childMetadata.target,\n metadata.target,\n )\n )\n },\n )\n })\n\n // build entity metadata (step0), first for non-single-table-inherited entity metadatas (dependant)\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\n )\n .forEach((entityMetadata) => entityMetadata.build())\n\n // build entity metadata (step0), now for single-table-inherited entity metadatas (dependant)\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType === \"entity-child\",\n )\n .forEach((entityMetadata) => entityMetadata.build())\n\n // compute entity metadata columns, relations, etc. first for the regular, non-single-table-inherited entity metadatas\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\n )\n .forEach((entityMetadata) =>\n this.computeEntityMetadataStep1(\n entityMetadatas,\n entityMetadata,\n ),\n )\n\n // then do it for single table inheritance children (since they are depend on their parents to be built)\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType === \"entity-child\",\n )\n .forEach((entityMetadata) =>\n this.computeEntityMetadataStep1(\n entityMetadatas,\n entityMetadata,\n ),\n )\n\n // calculate entity metadata computed properties and all its sub-metadatas\n entityMetadatas.forEach((entityMetadata) =>\n this.computeEntityMetadataStep2(entityMetadata),\n )\n\n // calculate entity metadata's inverse properties\n entityMetadatas.forEach((entityMetadata) =>\n this.computeInverseProperties(entityMetadata, entityMetadatas),\n )\n\n // go through all entity metadatas and create foreign keys / junction entity metadatas for their relations\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\n )\n .forEach((entityMetadata) => {\n // create entity's relations join columns (for many-to-one and one-to-one owner)\n entityMetadata.relations\n .filter(\n (relation) =>\n relation.isOneToOne || relation.isManyToOne,\n )\n .forEach((relation) => {\n const joinColumns =\n this.metadataArgsStorage.filterJoinColumns(\n relation.target,\n relation.propertyName,\n )\n const { foreignKey, columns, uniqueConstraint } =\n this.relationJoinColumnBuilder.build(\n joinColumns,\n relation,\n ) // create a foreign key based on its metadata args\n if (foreignKey) {\n relation.registerForeignKeys(foreignKey) // push it to the relation and thus register there a join column\n entityMetadata.foreignKeys.push(foreignKey)\n }\n if (columns) {\n relation.registerJoinColumns(columns)\n }\n if (uniqueConstraint) {\n if (\n DriverUtils.isMySQLFamily(\n this.dataSource.driver,\n ) ||\n this.dataSource.driver.options.type ===\n \"aurora-mysql\" ||\n this.dataSource.driver.options.type ===\n \"mssql\" ||\n this.dataSource.driver.options.type === \"sap\" ||\n this.dataSource.driver.options.type ===\n \"spanner\"\n ) {\n const index = new IndexMetadata({\n entityMetadata:\n uniqueConstraint.entityMetadata,\n columns: uniqueConstraint.columns,\n args: {\n target: uniqueConstraint.target!,\n name: uniqueConstraint.name,\n unique: true,\n synchronize: true,\n },\n })\n\n if (\n this.dataSource.driver.options.type ===\n \"mssql\"\n ) {\n index.where = index.columns\n .map((column) => {\n return `${this.dataSource.driver.escape(\n column.databaseName,\n )} IS NOT NULL`\n })\n .join(\" AND \")\n }\n\n if (\n this.dataSource.driver.options.type ===\n \"spanner\"\n ) {\n index.isNullFiltered = true\n }\n\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.indices.push(\n index,\n )\n } else {\n relation.entityMetadata.ownIndices.push(\n index,\n )\n }\n this.computeEntityMetadataStep2(entityMetadata)\n } else {\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.uniques.push(\n uniqueConstraint,\n )\n } else {\n relation.entityMetadata.ownUniques.push(\n uniqueConstraint,\n )\n }\n this.computeEntityMetadataStep2(entityMetadata)\n }\n }\n\n if (\n foreignKey &&\n this.dataSource.driver.options.type ===\n \"cockroachdb\"\n ) {\n const index = new IndexMetadata({\n entityMetadata: relation.entityMetadata,\n columns: foreignKey.columns,\n args: {\n target: relation.entityMetadata.target!,\n synchronize: true,\n },\n })\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.indices.push(index)\n } else {\n relation.entityMetadata.ownIndices.push(index)\n }\n this.computeEntityMetadataStep2(entityMetadata)\n }\n })\n\n // create junction entity metadatas for entity many-to-many relations\n entityMetadata.relations\n .filter((relation) => relation.isManyToMany)\n .forEach((relation) => {\n const joinTable =\n this.metadataArgsStorage.findJoinTable(\n relation.target,\n relation.propertyName,\n )!\n if (!joinTable) return // no join table set - no need to do anything (it means this is many-to-many inverse side)\n\n // here we create a junction entity metadata for a new junction table of many-to-many relation\n const junctionEntityMetadata =\n this.junctionEntityMetadataBuilder.build(\n relation,\n joinTable,\n )\n relation.registerForeignKeys(\n ...junctionEntityMetadata.foreignKeys,\n )\n relation.registerJoinColumns(\n junctionEntityMetadata.ownIndices[0].columns,\n junctionEntityMetadata.ownIndices[1].columns,\n )\n relation.registerJunctionEntityMetadata(\n junctionEntityMetadata,\n )\n\n // compute new entity metadata properties and push it to entity metadatas pool\n this.computeEntityMetadataStep2(junctionEntityMetadata)\n this.computeInverseProperties(\n junctionEntityMetadata,\n entityMetadatas,\n )\n entityMetadatas.push(junctionEntityMetadata)\n })\n })\n\n // update entity metadata depend properties\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.relationsWithJoinColumns =\n entityMetadata.relations.filter(\n (relation) => relation.isWithJoinColumn,\n )\n entityMetadata.hasNonNullableRelations =\n entityMetadata.relationsWithJoinColumns.some(\n (relation) => !relation.isNullable || relation.isPrimary,\n )\n })\n\n // generate closure junction tables for all closure tables\n entityMetadatas\n .filter((metadata) => metadata.treeType === \"closure-table\")\n .forEach((entityMetadata) => {\n const closureJunctionEntityMetadata =\n this.closureJunctionEntityMetadataBuilder.build(\n entityMetadata,\n )\n entityMetadata.closureJunctionTable =\n closureJunctionEntityMetadata\n this.computeEntityMetadataStep2(closureJunctionEntityMetadata)\n this.computeInverseProperties(\n closureJunctionEntityMetadata,\n entityMetadatas,\n )\n entityMetadatas.push(closureJunctionEntityMetadata)\n })\n\n // generate keys for tables with single-table inheritance\n entityMetadatas\n .filter(\n (metadata) =>\n metadata.inheritancePattern === \"STI\" &&\n metadata.discriminatorColumn,\n )\n .forEach((entityMetadata) =>\n this.createKeysForTableInheritance(entityMetadata),\n )\n\n // build all indices (need to do it after relations and their join columns are built)\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.indices.forEach((index) =>\n index.build(this.dataSource.namingStrategy),\n )\n })\n\n // build all unique constraints (need to do it after relations and their join columns are built)\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.uniques.forEach((unique) =>\n unique.build(this.dataSource.namingStrategy),\n )\n })\n\n // build all check constraints\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.checks.forEach((check) =>\n check.build(this.dataSource.namingStrategy),\n )\n })\n\n // build all exclusion constraints\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.exclusions.forEach((exclusion) =>\n exclusion.build(this.dataSource.namingStrategy),\n )\n })\n\n // generate foreign keys for tables\n entityMetadatas.forEach((entityMetadata) =>\n this.createForeignKeys(entityMetadata, entityMetadatas),\n )\n\n // add lazy initializer for entity relations\n entityMetadatas\n .filter((metadata) => typeof metadata.target === \"function\")\n .forEach((entityMetadata) => {\n entityMetadata.relations\n .filter((relation) => relation.isLazy)\n .forEach((relation) => {\n this.dataSource.relationLoader.enableLazyLoad(\n relation,\n (entityMetadata.target as Function).prototype,\n )\n })\n })\n\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.columns.forEach((column) => {\n // const target = column.embeddedMetadata ? column.embeddedMetadata.type : column.target;\n const generated = this.metadataArgsStorage.findGenerated(\n column.target,\n column.propertyName,\n )\n if (generated) {\n column.isGenerated = true\n column.generationStrategy = generated.strategy\n if (generated.strategy === \"uuid\") {\n column.type = \"uuid\"\n } else if (generated.strategy === \"rowid\") {\n column.type = \"int\"\n } else {\n column.type = column.type || Number\n }\n column.build(this.dataSource)\n this.computeEntityMetadataStep2(entityMetadata)\n }\n })\n })\n\n return entityMetadatas\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates entity metadata from the given table args.\n * Creates column, relation, etc. metadatas for everything this entity metadata owns.\n * @param tableArgs\n */\n protected createEntityMetadata(\n tableArgs: TableMetadataArgs,\n ): EntityMetadata {\n // we take all \"inheritance tree\" from a target entity to collect all stored metadata args\n // (by decorators or inside entity schemas). For example for target Post < ContentModel < Unit\n // it will be an array of [Post, ContentModel, Unit] and we can then get all metadata args of those classes\n const inheritanceTree: any[] =\n typeof tableArgs.target === \"function\"\n ? MetadataUtils.getInheritanceTree(tableArgs.target)\n : [tableArgs.target] // todo: implement later here inheritance for string-targets\n\n const tableInheritance = this.metadataArgsStorage.findInheritanceType(\n tableArgs.target,\n )\n const tableTree = this.metadataArgsStorage.findTree(tableArgs.target)\n\n // if single table inheritance used, we need to copy all children columns in to parent table\n let singleTableChildrenTargets: any[]\n if (\n (tableInheritance && tableInheritance.pattern === \"STI\") ||\n tableArgs.type === \"entity-child\"\n ) {\n singleTableChildrenTargets = this.metadataArgsStorage\n .filterSingleTableChildren(tableArgs.target)\n .map((args) => args.target)\n .filter((target) => typeof target === \"function\")\n\n inheritanceTree.push(...singleTableChildrenTargets)\n }\n\n return new EntityMetadata({\n dataSource: this.dataSource,\n args: tableArgs,\n inheritanceTree: inheritanceTree,\n tableTree: tableTree,\n inheritancePattern: tableInheritance\n ? tableInheritance.pattern\n : undefined,\n })\n }\n\n protected computeParentEntityMetadata(\n allEntityMetadatas: EntityMetadata[],\n entityMetadata: EntityMetadata,\n ) {\n // after all metadatas created we set parent entity metadata for table inheritance\n if (entityMetadata.tableType === \"entity-child\") {\n entityMetadata.parentEntityMetadata = allEntityMetadatas.find(\n (allEntityMetadata) => {\n return (\n allEntityMetadata.inheritanceTree.indexOf(\n entityMetadata.target as Function,\n ) !== -1 &&\n allEntityMetadata.inheritancePattern === \"STI\"\n )\n },\n )!\n }\n }\n\n protected computeEntityMetadataStep1(\n allEntityMetadatas: EntityMetadata[],\n entityMetadata: EntityMetadata,\n ) {\n const entityInheritance = this.metadataArgsStorage.findInheritanceType(\n entityMetadata.target,\n )\n\n const discriminatorValue =\n this.metadataArgsStorage.findDiscriminatorValue(\n entityMetadata.target,\n )\n\n if (typeof discriminatorValue !== \"undefined\") {\n entityMetadata.discriminatorValue = discriminatorValue.value\n } else {\n entityMetadata.discriminatorValue = (\n entityMetadata.target as any\n ).name\n }\n\n // if single table inheritance is used, we need to mark all embedded columns as nullable\n entityMetadata.embeddeds = this.createEmbeddedsRecursively(\n entityMetadata,\n this.metadataArgsStorage.filterEmbeddeds(\n entityMetadata.inheritanceTree,\n ),\n ).map((embedded: EmbeddedMetadata): EmbeddedMetadata => {\n if (entityMetadata.inheritancePattern === \"STI\") {\n embedded.columns = embedded.columns.map(\n (column: ColumnMetadata): ColumnMetadata => {\n column.isNullable = true\n return column\n },\n )\n }\n return embedded\n })\n\n entityMetadata.ownColumns = this.metadataArgsStorage\n .filterColumns(entityMetadata.inheritanceTree)\n .map((args) => {\n // for single table children we reuse columns created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.ownColumns.find(\n (column) => column.propertyName === args.propertyName,\n )!\n\n // for multiple table inheritance we can override default column values\n if (\n entityMetadata.tableType === \"regular\" &&\n args.target !== entityMetadata.target\n ) {\n const childArgs = this.metadataArgsStorage.columns.find(\n (c) =>\n c.propertyName === args.propertyName &&\n c.target === entityMetadata.target,\n )\n if (childArgs && childArgs.options.default) {\n args.options.default = childArgs.options.default\n }\n }\n\n const column = new ColumnMetadata({\n entityMetadata,\n args,\n })\n\n // if single table inheritance used, we need to mark all inherit table columns as nullable\n const columnInSingleTableInheritedChild =\n allEntityMetadatas.find(\n (otherEntityMetadata) =>\n otherEntityMetadata.tableType === \"entity-child\" &&\n otherEntityMetadata.target === args.target,\n )\n if (columnInSingleTableInheritedChild) column.isNullable = true\n return column\n })\n\n // for table inheritance we need to add a discriminator column\n //\n if (entityInheritance && entityInheritance.column) {\n const discriminatorColumnName =\n entityInheritance.column && entityInheritance.column.name\n ? entityInheritance.column.name\n : \"type\"\n let discriminatorColumn = entityMetadata.ownColumns.find(\n (column) => column.propertyName === discriminatorColumnName,\n )\n if (!discriminatorColumn) {\n discriminatorColumn = new ColumnMetadata({\n entityMetadata,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: discriminatorColumnName,\n options: entityInheritance.column || {\n name: discriminatorColumnName,\n type: \"varchar\",\n nullable: false,\n },\n },\n })\n discriminatorColumn.isVirtual = true\n discriminatorColumn.isDiscriminator = true\n entityMetadata.ownColumns.push(discriminatorColumn)\n } else {\n discriminatorColumn.isDiscriminator = true\n }\n }\n\n // add discriminator column to the child entity metadatas\n // discriminator column will not be there automatically since we are creating it in the code above\n if (entityMetadata.tableType === \"entity-child\") {\n const discriminatorColumn =\n entityMetadata.parentEntityMetadata.ownColumns.find(\n (column) => column.isDiscriminator,\n )\n if (\n discriminatorColumn &&\n !entityMetadata.ownColumns.find(\n (column) => column === discriminatorColumn,\n )\n ) {\n entityMetadata.ownColumns.push(discriminatorColumn)\n }\n // also copy the inheritance pattern & tree metadata\n // this comes in handy when inheritance and trees are used together\n entityMetadata.inheritancePattern =\n entityMetadata.parentEntityMetadata.inheritancePattern\n if (\n !entityMetadata.treeType &&\n !!entityMetadata.parentEntityMetadata.treeType\n ) {\n entityMetadata.treeType =\n entityMetadata.parentEntityMetadata.treeType\n entityMetadata.treeOptions =\n entityMetadata.parentEntityMetadata.treeOptions\n entityMetadata.treeParentRelation =\n entityMetadata.parentEntityMetadata.treeParentRelation\n entityMetadata.treeLevelColumn =\n entityMetadata.parentEntityMetadata.treeLevelColumn\n }\n }\n\n const { namingStrategy } = this.dataSource\n\n // check if tree is used then we need to add extra columns for specific tree types\n if (entityMetadata.treeType === \"materialized-path\") {\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n entityMetadata,\n materializedPath: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: \"mpath\",\n options: /*tree.column || */ {\n name: namingStrategy.materializedPathColumnName,\n type: String,\n nullable: true,\n default: \"\",\n },\n },\n }),\n )\n } else if (entityMetadata.treeType === \"nested-set\") {\n const { left, right } = namingStrategy.nestedSetColumnNames\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n entityMetadata: entityMetadata,\n nestedSetLeft: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: left,\n options: /*tree.column || */ {\n name: left,\n type: Number,\n nullable: false,\n default: 1,\n },\n },\n }),\n )\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n entityMetadata,\n nestedSetRight: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: right,\n options: /*tree.column || */ {\n name: right,\n type: Number,\n nullable: false,\n default: 2,\n },\n },\n }),\n )\n }\n\n entityMetadata.ownRelations = this.metadataArgsStorage\n .filterRelations(entityMetadata.inheritanceTree)\n .map((args) => {\n // for single table children we reuse relations created for their parents\n if (entityMetadata.tableType === \"entity-child\") {\n const parentRelation =\n entityMetadata.parentEntityMetadata.ownRelations.find(\n (relation) =>\n relation.propertyName === args.propertyName,\n )!\n const type =\n typeof args.type === \"function\"\n ? (args.type as () => any)()\n : args.type\n if (parentRelation.type !== type) {\n const clone = Object.create(parentRelation)\n clone.type = type\n return clone\n }\n\n return parentRelation\n }\n\n return new RelationMetadata({ entityMetadata, args })\n })\n entityMetadata.relationIds = this.metadataArgsStorage\n .filterRelationIds(entityMetadata.inheritanceTree)\n .map((args) => {\n // for single table children we reuse relation ids created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.relationIds.find(\n (relationId) =>\n relationId.propertyName === args.propertyName,\n )!\n\n return new RelationIdMetadata({ entityMetadata, args })\n })\n entityMetadata.ownListeners = this.metadataArgsStorage\n .filterListeners(entityMetadata.inheritanceTree)\n .map((args) => {\n return new EntityListenerMetadata({\n entityMetadata: entityMetadata,\n args: args,\n })\n })\n entityMetadata.checks = this.metadataArgsStorage\n .filterChecks(entityMetadata.inheritanceTree)\n .map((args) => {\n return new CheckMetadata({ entityMetadata, args })\n })\n\n // Only PostgreSQL supports exclusion constraints.\n if (this.dataSource.driver.options.type === \"postgres\") {\n entityMetadata.exclusions = this.metadataArgsStorage\n .filterExclusions(entityMetadata.inheritanceTree)\n .map((args) => {\n return new ExclusionMetadata({ entityMetadata, args })\n })\n }\n\n if (this.dataSource.driver.options.type === \"cockroachdb\") {\n entityMetadata.ownIndices = this.metadataArgsStorage\n .filterIndices(entityMetadata.inheritanceTree)\n .filter((args) => !args.unique)\n .map((args) => {\n return new IndexMetadata({ entityMetadata, args })\n })\n\n const uniques = this.metadataArgsStorage\n .filterIndices(entityMetadata.inheritanceTree)\n .filter((args) => args.unique)\n .map((args) => {\n return new UniqueMetadata({\n entityMetadata: entityMetadata,\n args: {\n target: args.target,\n name: args.name,\n columns: args.columns,\n },\n })\n })\n entityMetadata.ownUniques.push(...uniques)\n } else {\n entityMetadata.ownIndices = this.metadataArgsStorage\n .filterIndices(entityMetadata.inheritanceTree)\n .map((args) => {\n return new IndexMetadata({ entityMetadata, args })\n })\n }\n\n // This drivers stores unique constraints as unique indices.\n if (\n DriverUtils.isMySQLFamily(this.dataSource.driver) ||\n this.dataSource.driver.options.type === \"aurora-mysql\" ||\n this.dataSource.driver.options.type === \"sap\" ||\n this.dataSource.driver.options.type === \"spanner\"\n ) {\n const indices = this.metadataArgsStorage\n .filterUniques(entityMetadata.inheritanceTree)\n .map((args) => {\n return new IndexMetadata({\n entityMetadata: entityMetadata,\n args: {\n target: args.target,\n name: args.name,\n columns: args.columns,\n unique: true,\n synchronize: true,\n },\n })\n })\n entityMetadata.ownIndices.push(...indices)\n } else {\n const uniques = this.metadataArgsStorage\n .filterUniques(entityMetadata.inheritanceTree)\n .map((args) => {\n return new UniqueMetadata({ entityMetadata, args })\n })\n entityMetadata.ownUniques.push(...uniques)\n }\n }\n\n /**\n * Creates from the given embedded metadata args real embedded metadatas with its columns and relations,\n * and does the same for all its sub-embeddeds (goes recursively).\n * @param entityMetadata\n * @param embeddedArgs\n */\n protected createEmbeddedsRecursively(\n entityMetadata: EntityMetadata,\n embeddedArgs: EmbeddedMetadataArgs[],\n ): EmbeddedMetadata[] {\n return embeddedArgs.map((embeddedArgs) => {\n const embeddedMetadata = new EmbeddedMetadata({\n entityMetadata: entityMetadata,\n args: embeddedArgs,\n })\n const targets: any[] =\n typeof embeddedMetadata.type === \"function\"\n ? MetadataUtils.getInheritanceTree(embeddedMetadata.type)\n : [embeddedMetadata.type] // todo: implement later here inheritance for string-targets\n\n embeddedMetadata.columns = this.metadataArgsStorage\n .filterColumns(targets)\n .map((args) => {\n return new ColumnMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.relations = this.metadataArgsStorage\n .filterRelations(targets)\n .map((args) => {\n return new RelationMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.listeners = this.metadataArgsStorage\n .filterListeners(targets)\n .map((args) => {\n return new EntityListenerMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.indices = this.metadataArgsStorage\n .filterIndices(targets)\n .map((args) => {\n return new IndexMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.uniques = this.metadataArgsStorage\n .filterUniques(targets)\n .map((args) => {\n return new UniqueMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.relationIds = this.metadataArgsStorage\n .filterRelationIds(targets)\n .map((args) => {\n return new RelationIdMetadata({ entityMetadata, args })\n })\n embeddedMetadata.embeddeds = this.createEmbeddedsRecursively(\n entityMetadata,\n this.metadataArgsStorage.filterEmbeddeds(targets),\n )\n embeddedMetadata.embeddeds.forEach((subEmbedded) => {\n subEmbedded.parentEmbeddedMetadata = embeddedMetadata\n })\n entityMetadata.allEmbeddeds.push(embeddedMetadata)\n return embeddedMetadata\n })\n }\n\n /**\n * Computes all entity metadata's computed properties, and all its sub-metadatas (relations, columns, embeds, etc).\n * @param entityMetadata\n */\n protected computeEntityMetadataStep2(entityMetadata: EntityMetadata) {\n entityMetadata.embeddeds.forEach((embedded) =>\n embedded.build(this.dataSource),\n )\n entityMetadata.embeddeds.forEach((embedded) => {\n embedded.columnsFromTree.forEach((column) =>\n column.build(this.dataSource),\n )\n embedded.relationsFromTree.forEach((relation) => relation.build())\n })\n entityMetadata.ownColumns.forEach((column) =>\n column.build(this.dataSource),\n )\n entityMetadata.ownRelations.forEach((relation) => relation.build())\n entityMetadata.relations = entityMetadata.embeddeds.reduce(\n (relations, embedded) =>\n relations.concat(embedded.relationsFromTree),\n entityMetadata.ownRelations,\n )\n entityMetadata.eagerRelations = entityMetadata.relations.filter(\n (relation) => relation.isEager,\n )\n entityMetadata.lazyRelations = entityMetadata.relations.filter(\n (relation) => relation.isLazy,\n )\n entityMetadata.oneToOneRelations = entityMetadata.relations.filter(\n (relation) => relation.isOneToOne,\n )\n entityMetadata.oneToManyRelations = entityMetadata.relations.filter(\n (relation) => relation.isOneToMany,\n )\n entityMetadata.manyToOneRelations = entityMetadata.relations.filter(\n (relation) => relation.isManyToOne,\n )\n entityMetadata.manyToManyRelations = entityMetadata.relations.filter(\n (relation) => relation.isManyToMany,\n )\n entityMetadata.ownerOneToOneRelations = entityMetadata.relations.filter(\n (relation) => relation.isOneToOneOwner,\n )\n entityMetadata.ownerManyToManyRelations =\n entityMetadata.relations.filter(\n (relation) => relation.isManyToManyOwner,\n )\n entityMetadata.treeParentRelation = entityMetadata.relations.find(\n (relation) => relation.isTreeParent,\n )\n entityMetadata.treeChildrenRelation = entityMetadata.relations.find(\n (relation) => relation.isTreeChildren,\n )\n entityMetadata.columns = entityMetadata.embeddeds.reduce(\n (columns, embedded) => columns.concat(embedded.columnsFromTree),\n entityMetadata.ownColumns,\n )\n entityMetadata.listeners = entityMetadata.embeddeds.reduce(\n (listeners, embedded) =>\n listeners.concat(embedded.listenersFromTree),\n entityMetadata.ownListeners,\n )\n entityMetadata.afterLoadListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_LOAD,\n )\n entityMetadata.afterInsertListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_INSERT,\n )\n entityMetadata.afterUpdateListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_UPDATE,\n )\n entityMetadata.afterRemoveListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_REMOVE,\n )\n entityMetadata.afterSoftRemoveListeners =\n entityMetadata.listeners.filter(\n (listener) =>\n listener.type === EventListenerTypes.AFTER_SOFT_REMOVE,\n )\n entityMetadata.afterRecoverListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_RECOVER,\n )\n entityMetadata.beforeInsertListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.BEFORE_INSERT,\n )\n entityMetadata.beforeUpdateListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.BEFORE_UPDATE,\n )\n entityMetadata.beforeRemoveListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.BEFORE_REMOVE,\n )\n entityMetadata.beforeSoftRemoveListeners =\n entityMetadata.listeners.filter(\n (listener) =>\n listener.type === EventListenerTypes.BEFORE_SOFT_REMOVE,\n )\n entityMetadata.beforeRecoverListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.BEFORE_RECOVER,\n )\n entityMetadata.indices = entityMetadata.embeddeds.reduce(\n (indices, embedded) => indices.concat(embedded.indicesFromTree),\n entityMetadata.ownIndices,\n )\n entityMetadata.uniques = entityMetadata.embeddeds.reduce(\n (uniques, embedded) => uniques.concat(embedded.uniquesFromTree),\n entityMetadata.ownUniques,\n )\n entityMetadata.primaryColumns = entityMetadata.columns.filter(\n (column) => column.isPrimary,\n )\n entityMetadata.nonVirtualColumns = entityMetadata.columns.filter(\n (column) => !column.isVirtual,\n )\n entityMetadata.ancestorColumns = entityMetadata.columns.filter(\n (column) => column.closureType === \"ancestor\",\n )\n entityMetadata.descendantColumns = entityMetadata.columns.filter(\n (column) => column.closureType === \"descendant\",\n )\n entityMetadata.hasMultiplePrimaryKeys =\n entityMetadata.primaryColumns.length > 1\n entityMetadata.generatedColumns = entityMetadata.columns.filter(\n (column) => column.isGenerated || column.isObjectId,\n )\n entityMetadata.hasUUIDGeneratedColumns =\n entityMetadata.columns.filter(\n (column) =>\n column.isGenerated || column.generationStrategy === \"uuid\",\n ).length > 0\n entityMetadata.createDateColumn = entityMetadata.columns.find(\n (column) => column.isCreateDate,\n )\n entityMetadata.updateDateColumn = entityMetadata.columns.find(\n (column) => column.isUpdateDate,\n )\n entityMetadata.deleteDateColumn = entityMetadata.columns.find(\n (column) => column.isDeleteDate,\n )\n entityMetadata.versionColumn = entityMetadata.columns.find(\n (column) => column.isVersion,\n )\n entityMetadata.discriminatorColumn = entityMetadata.columns.find(\n (column) => column.isDiscriminator,\n )\n entityMetadata.treeLevelColumn = entityMetadata.columns.find(\n (column) => column.isTreeLevel,\n )\n entityMetadata.nestedSetLeftColumn = entityMetadata.columns.find(\n (column) => column.isNestedSetLeft,\n )\n entityMetadata.nestedSetRightColumn = entityMetadata.columns.find(\n (column) => column.isNestedSetRight,\n )\n entityMetadata.materializedPathColumn = entityMetadata.columns.find(\n (column) => column.isMaterializedPath,\n )\n entityMetadata.objectIdColumn = entityMetadata.columns.find(\n (column) => column.isObjectId,\n )\n entityMetadata.foreignKeys.forEach((foreignKey) =>\n foreignKey.build(this.dataSource.namingStrategy),\n )\n entityMetadata.propertiesMap = entityMetadata.createPropertiesMap()\n entityMetadata.relationIds.forEach((relationId) => relationId.build())\n entityMetadata.embeddeds.forEach((embedded) => {\n embedded.relationIdsFromTree.forEach((relationId) =>\n relationId.build(),\n )\n })\n }\n\n /**\n * Computes entity metadata's relations inverse side properties.\n * @param entityMetadata\n * @param entityMetadatas\n */\n protected computeInverseProperties(\n entityMetadata: EntityMetadata,\n entityMetadatas: EntityMetadata[],\n ) {\n entityMetadata.relations.forEach((relation) => {\n // compute inverse side (related) entity metadatas for all relation metadatas\n const inverseEntityMetadata = entityMetadatas.find(\n (m) =>\n m.target === relation.type ||\n (typeof relation.type === \"string\" &&\n (m.targetName === relation.type ||\n m.givenTableName === relation.type)),\n )\n if (!inverseEntityMetadata)\n throw new TypeORMError(\n \"Entity metadata for \" +\n entityMetadata.name +\n \"#\" +\n relation.propertyPath +\n \" was not found. Check if you specified a correct entity object and if it's connected in the connection options.\",\n )\n\n relation.inverseEntityMetadata = inverseEntityMetadata\n relation.inverseSidePropertyPath =\n relation.buildInverseSidePropertyPath()\n\n // and compute inverse relation and mark if it has such\n relation.inverseRelation = inverseEntityMetadata.relations.find(\n (foundRelation) =>\n foundRelation.propertyPath ===\n relation.inverseSidePropertyPath,\n )\n })\n }\n\n /**\n * Creates indices for the table of single table inheritance.\n * @param entityMetadata\n */\n protected createKeysForTableInheritance(entityMetadata: EntityMetadata) {\n const isDiscriminatorColumnAlreadyIndexed = entityMetadata.indices.some(\n ({ givenColumnNames }) =>\n !!givenColumnNames &&\n Array.isArray(givenColumnNames) &&\n givenColumnNames.length === 1 &&\n givenColumnNames[0] ===\n entityMetadata.discriminatorColumn?.databaseName,\n )\n\n // If the discriminator column is already indexed, there is no need to\n // add another index on top of it.\n if (isDiscriminatorColumnAlreadyIndexed) {\n return\n }\n\n entityMetadata.indices.push(\n new IndexMetadata({\n entityMetadata: entityMetadata,\n columns: [entityMetadata.discriminatorColumn!],\n args: {\n target: entityMetadata.target,\n unique: false,\n },\n }),\n )\n }\n\n /**\n * Creates from the given foreign key metadata args real foreign key metadatas.\n * @param entityMetadata\n * @param entityMetadatas\n */\n protected createForeignKeys(\n entityMetadata: EntityMetadata,\n entityMetadatas: EntityMetadata[],\n ) {\n this.metadataArgsStorage\n .filterForeignKeys(entityMetadata.inheritanceTree)\n .forEach((foreignKeyArgs) => {\n const foreignKeyType =\n typeof foreignKeyArgs.type === \"function\"\n ? (foreignKeyArgs.type as () => any)()\n : foreignKeyArgs.type\n\n const referencedEntityMetadata = entityMetadatas.find((m) =>\n typeof foreignKeyType === \"string\"\n ? m.targetName === foreignKeyType ||\n m.givenTableName === foreignKeyType\n : InstanceChecker.isEntitySchema(foreignKeyType)\n ? m.target === foreignKeyType.options.name ||\n m.target === foreignKeyType.options.target\n : m.target === foreignKeyType,\n )\n\n if (!referencedEntityMetadata) {\n throw new TypeORMError(\n \"Entity metadata for \" +\n entityMetadata.name +\n (foreignKeyArgs.propertyName\n ? \"#\" + foreignKeyArgs.propertyName\n : \"\") +\n \" was not found. Check if you specified a correct entity object and if it's connected in the connection options.\",\n )\n }\n\n const columnNames = foreignKeyArgs.columnNames ?? []\n const referencedColumnNames =\n foreignKeyArgs.referencedColumnNames ?? []\n\n const columns: ColumnMetadata[] = []\n const referencedColumns: ColumnMetadata[] = []\n\n if (foreignKeyArgs.propertyName) {\n columnNames.push(foreignKeyArgs.propertyName)\n\n if (foreignKeyArgs.inverseSide) {\n if (typeof foreignKeyArgs.inverseSide === \"function\") {\n referencedColumnNames.push(\n foreignKeyArgs.inverseSide(\n referencedEntityMetadata.propertiesMap,\n ),\n )\n } else {\n referencedColumnNames.push(\n foreignKeyArgs.inverseSide,\n )\n }\n }\n }\n\n if (!referencedColumnNames.length) {\n referencedColumns.push(\n ...referencedEntityMetadata.primaryColumns,\n )\n }\n\n const columnNameToColumn = (\n columnName: string,\n entityMetadata: EntityMetadata,\n ): ColumnMetadata => {\n const column = entityMetadata.columns.find(\n (column) =>\n column.propertyName === columnName ||\n column.databaseName === columnName,\n )\n\n if (column) return column\n\n const foreignKeyName = foreignKeyArgs.name\n ? '\"' + foreignKeyArgs.name + '\" '\n : \"\"\n const entityName = entityMetadata.targetName\n throw new TypeORMError(\n `Foreign key constraint ${foreignKeyName}contains column that is missing in the entity (${entityName}): ${columnName}`,\n )\n }\n\n columns.push(\n ...columnNames.map((columnName) =>\n columnNameToColumn(columnName, entityMetadata),\n ),\n )\n\n referencedColumns.push(\n ...referencedColumnNames.map((columnName) =>\n columnNameToColumn(\n columnName,\n referencedEntityMetadata,\n ),\n ),\n )\n\n entityMetadata.foreignKeys.push(\n new ForeignKeyMetadata({\n entityMetadata,\n referencedEntityMetadata,\n namingStrategy: this.dataSource.namingStrategy,\n columns,\n referencedColumns,\n ...foreignKeyArgs,\n }),\n )\n })\n }\n}\n"]}
1
+ {"version":3,"file":"EntityMetadataBuilder.js","sourceRoot":"../build/browser/src/","sources":["metadata-builder/EntityMetadataBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport { IndexMetadata } from \"../metadata/IndexMetadata\"\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\nimport { EmbeddedMetadata } from \"../metadata/EmbeddedMetadata\"\nimport type { MetadataArgsStorage } from \"../metadata-args/MetadataArgsStorage\"\nimport type { EmbeddedMetadataArgs } from \"../metadata-args/EmbeddedMetadataArgs\"\nimport { RelationIdMetadata } from \"../metadata/RelationIdMetadata\"\nimport { EventListenerTypes } from \"../metadata/types/EventListenerTypes\"\nimport { MetadataUtils } from \"./MetadataUtils\"\nimport type { TableMetadataArgs } from \"../metadata-args/TableMetadataArgs\"\nimport { JunctionEntityMetadataBuilder } from \"./JunctionEntityMetadataBuilder\"\nimport { ClosureJunctionEntityMetadataBuilder } from \"./ClosureJunctionEntityMetadataBuilder\"\nimport { RelationJoinColumnBuilder } from \"./RelationJoinColumnBuilder\"\nimport type { DataSource } from \"../data-source/DataSource\"\nimport { EntityListenerMetadata } from \"../metadata/EntityListenerMetadata\"\nimport { UniqueMetadata } from \"../metadata/UniqueMetadata\"\nimport { CheckMetadata } from \"../metadata/CheckMetadata\"\nimport { ExclusionMetadata } from \"../metadata/ExclusionMetadata\"\nimport { TypeORMError } from \"../error\"\nimport { DriverUtils } from \"../driver/DriverUtils\"\nimport { ForeignKeyMetadata } from \"../metadata/ForeignKeyMetadata\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\n\n/**\n * Builds EntityMetadata objects and all its sub-metadatas.\n */\nexport class EntityMetadataBuilder {\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Used to build entity metadatas of the junction entities.\n */\n protected junctionEntityMetadataBuilder: JunctionEntityMetadataBuilder\n\n /**\n * Used to build entity metadatas of the closure junction entities.\n */\n protected closureJunctionEntityMetadataBuilder: ClosureJunctionEntityMetadataBuilder\n\n /**\n * Used to build join columns of the relations.\n */\n protected relationJoinColumnBuilder: RelationJoinColumnBuilder\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n private dataSource: DataSource,\n private metadataArgsStorage: MetadataArgsStorage,\n ) {\n this.junctionEntityMetadataBuilder = new JunctionEntityMetadataBuilder(\n dataSource,\n )\n this.closureJunctionEntityMetadataBuilder =\n new ClosureJunctionEntityMetadataBuilder(dataSource)\n this.relationJoinColumnBuilder = new RelationJoinColumnBuilder(\n dataSource,\n )\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Builds a complete entity metadatas for the given entity classes.\n *\n * @param entityClasses\n */\n build(entityClasses?: Function[]): EntityMetadata[] {\n // if entity classes to filter entities by are given then do filtering, otherwise use all\n const allTables = entityClasses\n ? this.metadataArgsStorage.filterTables(entityClasses)\n : this.metadataArgsStorage.tables\n\n // filter out table metadata args for those we really create entity metadatas and tables in the db\n const realTables = allTables.filter(\n (table) =>\n table.type === \"regular\" ||\n table.type === \"closure\" ||\n table.type === \"entity-child\" ||\n table.type === \"view\",\n )\n\n // create entity metadatas for a user defined entities (marked with @Entity decorator or loaded from entity schemas)\n const entityMetadatas = realTables.map((tableArgs) =>\n this.createEntityMetadata(tableArgs),\n )\n\n // compute parent entity metadatas for table inheritance\n entityMetadatas.forEach((entityMetadata) =>\n this.computeParentEntityMetadata(entityMetadatas, entityMetadata),\n )\n\n // after all metadatas created we set child entity metadatas for table inheritance\n entityMetadatas.forEach((metadata) => {\n metadata.childEntityMetadatas = entityMetadatas.filter(\n (childMetadata) => {\n return (\n typeof metadata.target === \"function\" &&\n typeof childMetadata.target === \"function\" &&\n MetadataUtils.isInherited(\n childMetadata.target,\n metadata.target,\n )\n )\n },\n )\n })\n\n // build entity metadata (step0), first for non-single-table-inherited entity metadatas (dependant)\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\n )\n .forEach((entityMetadata) => entityMetadata.build())\n\n // build entity metadata (step0), now for single-table-inherited entity metadatas (dependant)\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType === \"entity-child\",\n )\n .forEach((entityMetadata) => entityMetadata.build())\n\n // compute entity metadata columns, relations, etc. first for the regular, non-single-table-inherited entity metadatas\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\n )\n .forEach((entityMetadata) =>\n this.computeEntityMetadataStep1(\n entityMetadatas,\n entityMetadata,\n ),\n )\n\n // then do it for single table inheritance children (since they are depend on their parents to be built)\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType === \"entity-child\",\n )\n .forEach((entityMetadata) =>\n this.computeEntityMetadataStep1(\n entityMetadatas,\n entityMetadata,\n ),\n )\n\n // calculate entity metadata computed properties and all its sub-metadatas\n entityMetadatas.forEach((entityMetadata) =>\n this.computeEntityMetadataStep2(entityMetadata),\n )\n\n // calculate entity metadata's inverse properties\n entityMetadatas.forEach((entityMetadata) =>\n this.computeInverseProperties(entityMetadata, entityMetadatas),\n )\n\n // go through all entity metadatas and create foreign keys / junction entity metadatas for their relations\n entityMetadatas\n .filter(\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\n )\n .forEach((entityMetadata) => {\n // create entity's relations join columns (for many-to-one and one-to-one owner)\n entityMetadata.relations\n .filter(\n (relation) =>\n relation.isOneToOne || relation.isManyToOne,\n )\n .forEach((relation) => {\n const joinColumns =\n this.metadataArgsStorage.filterJoinColumns(\n relation.target,\n relation.propertyName,\n )\n const { foreignKey, columns, uniqueConstraint } =\n this.relationJoinColumnBuilder.build(\n joinColumns,\n relation,\n ) // create a foreign key based on its metadata args\n if (foreignKey) {\n relation.registerForeignKeys(foreignKey) // push it to the relation and thus register there a join column\n entityMetadata.foreignKeys.push(foreignKey)\n }\n if (columns) {\n relation.registerJoinColumns(columns)\n }\n if (uniqueConstraint) {\n if (\n DriverUtils.isMySQLFamily(\n this.dataSource.driver,\n ) ||\n this.dataSource.driver.options.type ===\n \"aurora-mysql\" ||\n this.dataSource.driver.options.type ===\n \"mssql\" ||\n this.dataSource.driver.options.type === \"sap\" ||\n this.dataSource.driver.options.type ===\n \"spanner\"\n ) {\n const index = new IndexMetadata({\n entityMetadata:\n uniqueConstraint.entityMetadata,\n columns: uniqueConstraint.columns,\n args: {\n target: uniqueConstraint.target!,\n name: uniqueConstraint.name,\n unique: true,\n synchronize: true,\n },\n })\n\n if (\n this.dataSource.driver.options.type ===\n \"mssql\"\n ) {\n index.where = index.columns\n .map((column) => {\n return `${this.dataSource.driver.escape(\n column.databaseName,\n )} IS NOT NULL`\n })\n .join(\" AND \")\n }\n\n if (\n this.dataSource.driver.options.type ===\n \"spanner\"\n ) {\n index.isNullFiltered = true\n }\n\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.indices.push(\n index,\n )\n } else {\n relation.entityMetadata.ownIndices.push(\n index,\n )\n }\n this.computeEntityMetadataStep2(entityMetadata)\n } else {\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.uniques.push(\n uniqueConstraint,\n )\n } else {\n relation.entityMetadata.ownUniques.push(\n uniqueConstraint,\n )\n }\n this.computeEntityMetadataStep2(entityMetadata)\n }\n }\n\n if (\n foreignKey &&\n this.dataSource.driver.options.type ===\n \"cockroachdb\"\n ) {\n const index = new IndexMetadata({\n entityMetadata: relation.entityMetadata,\n columns: foreignKey.columns,\n args: {\n target: relation.entityMetadata.target!,\n synchronize: true,\n },\n })\n if (relation.embeddedMetadata) {\n relation.embeddedMetadata.indices.push(index)\n } else {\n relation.entityMetadata.ownIndices.push(index)\n }\n this.computeEntityMetadataStep2(entityMetadata)\n }\n })\n\n // create junction entity metadatas for entity many-to-many relations\n entityMetadata.relations\n .filter((relation) => relation.isManyToMany)\n .forEach((relation) => {\n const joinTable =\n this.metadataArgsStorage.findJoinTable(\n relation.target,\n relation.propertyName,\n )!\n if (!joinTable) return // no join table set - no need to do anything (it means this is many-to-many inverse side)\n\n // here we create a junction entity metadata for a new junction table of many-to-many relation\n const junctionEntityMetadata =\n this.junctionEntityMetadataBuilder.build(\n relation,\n joinTable,\n )\n relation.registerForeignKeys(\n ...junctionEntityMetadata.foreignKeys,\n )\n relation.registerJoinColumns(\n junctionEntityMetadata.ownIndices[0].columns,\n junctionEntityMetadata.ownIndices[1].columns,\n )\n relation.registerJunctionEntityMetadata(\n junctionEntityMetadata,\n )\n\n // compute new entity metadata properties and push it to entity metadatas pool\n this.computeEntityMetadataStep2(junctionEntityMetadata)\n this.computeInverseProperties(\n junctionEntityMetadata,\n entityMetadatas,\n )\n entityMetadatas.push(junctionEntityMetadata)\n })\n })\n\n // update entity metadata depend properties\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.relationsWithJoinColumns =\n entityMetadata.relations.filter(\n (relation) => relation.isWithJoinColumn,\n )\n entityMetadata.hasNonNullableRelations =\n entityMetadata.relationsWithJoinColumns.some(\n (relation) => !relation.isNullable || relation.isPrimary,\n )\n })\n\n // generate closure junction tables for all closure tables\n entityMetadatas\n .filter((metadata) => metadata.treeType === \"closure-table\")\n .forEach((entityMetadata) => {\n const closureJunctionEntityMetadata =\n this.closureJunctionEntityMetadataBuilder.build(\n entityMetadata,\n )\n entityMetadata.closureJunctionTable =\n closureJunctionEntityMetadata\n this.computeEntityMetadataStep2(closureJunctionEntityMetadata)\n this.computeInverseProperties(\n closureJunctionEntityMetadata,\n entityMetadatas,\n )\n entityMetadatas.push(closureJunctionEntityMetadata)\n })\n\n // generate keys for tables with single-table inheritance\n entityMetadatas\n .filter(\n (metadata) =>\n metadata.inheritancePattern === \"STI\" &&\n metadata.discriminatorColumn,\n )\n .forEach((entityMetadata) =>\n this.createKeysForTableInheritance(entityMetadata),\n )\n\n // build all indices (need to do it after relations and their join columns are built)\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.indices.forEach((index) =>\n index.build(this.dataSource.namingStrategy),\n )\n })\n\n // build all unique constraints (need to do it after relations and their join columns are built)\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.uniques.forEach((unique) =>\n unique.build(this.dataSource.namingStrategy),\n )\n })\n\n // build all check constraints\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.checks.forEach((check) =>\n check.build(this.dataSource.namingStrategy),\n )\n })\n\n // build all exclusion constraints\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.exclusions.forEach((exclusion) =>\n exclusion.build(this.dataSource.namingStrategy),\n )\n })\n\n // generate foreign keys for tables\n entityMetadatas.forEach((entityMetadata) =>\n this.createForeignKeys(entityMetadata, entityMetadatas),\n )\n\n // add lazy initializer for entity relations\n entityMetadatas\n .filter((metadata) => typeof metadata.target === \"function\")\n .forEach((entityMetadata) => {\n entityMetadata.relations\n .filter((relation) => relation.isLazy)\n .forEach((relation) => {\n this.dataSource.relationLoader.enableLazyLoad(\n relation,\n (entityMetadata.target as Function).prototype,\n )\n })\n })\n\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.columns.forEach((column) => {\n // const target = column.embeddedMetadata ? column.embeddedMetadata.type : column.target;\n const generated = this.metadataArgsStorage.findGenerated(\n column.target,\n column.propertyName,\n )\n if (generated) {\n column.isGenerated = true\n column.generationStrategy = generated.strategy\n if (generated.strategy === \"uuid\") {\n column.type = \"uuid\"\n } else if (generated.strategy === \"rowid\") {\n column.type = \"int\"\n } else {\n column.type = column.type || Number\n }\n column.build(this.dataSource)\n this.computeEntityMetadataStep2(entityMetadata)\n }\n })\n })\n\n return entityMetadatas\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates entity metadata from the given table args.\n * Creates column, relation, etc. metadatas for everything this entity metadata owns.\n *\n * @param tableArgs\n */\n protected createEntityMetadata(\n tableArgs: TableMetadataArgs,\n ): EntityMetadata {\n // we take all \"inheritance tree\" from a target entity to collect all stored metadata args\n // (by decorators or inside entity schemas). For example for target Post < ContentModel < Unit\n // it will be an array of [Post, ContentModel, Unit] and we can then get all metadata args of those classes\n const inheritanceTree: any[] =\n typeof tableArgs.target === \"function\"\n ? MetadataUtils.getInheritanceTree(tableArgs.target)\n : [tableArgs.target] // todo: implement later here inheritance for string-targets\n\n const tableInheritance = this.metadataArgsStorage.findInheritanceType(\n tableArgs.target,\n )\n const tableTree = this.metadataArgsStorage.findTree(tableArgs.target)\n\n // if single table inheritance used, we need to copy all children columns in to parent table\n let singleTableChildrenTargets: any[]\n if (\n tableInheritance?.pattern === \"STI\" ||\n tableArgs.type === \"entity-child\"\n ) {\n singleTableChildrenTargets = this.metadataArgsStorage\n .filterSingleTableChildren(tableArgs.target)\n .map((args) => args.target)\n .filter((target) => typeof target === \"function\")\n\n inheritanceTree.push(...singleTableChildrenTargets)\n }\n\n return new EntityMetadata({\n dataSource: this.dataSource,\n args: tableArgs,\n inheritanceTree: inheritanceTree,\n tableTree: tableTree,\n inheritancePattern: tableInheritance\n ? tableInheritance.pattern\n : undefined,\n })\n }\n\n protected computeParentEntityMetadata(\n allEntityMetadatas: EntityMetadata[],\n entityMetadata: EntityMetadata,\n ) {\n // after all metadatas created we set parent entity metadata for table inheritance\n if (entityMetadata.tableType === \"entity-child\") {\n entityMetadata.parentEntityMetadata = allEntityMetadatas.find(\n (allEntityMetadata) => {\n return (\n allEntityMetadata.inheritanceTree.indexOf(\n entityMetadata.target as Function,\n ) !== -1 &&\n allEntityMetadata.inheritancePattern === \"STI\"\n )\n },\n )!\n }\n }\n\n protected computeEntityMetadataStep1(\n allEntityMetadatas: EntityMetadata[],\n entityMetadata: EntityMetadata,\n ) {\n const entityInheritance = this.metadataArgsStorage.findInheritanceType(\n entityMetadata.target,\n )\n\n const discriminatorValue =\n this.metadataArgsStorage.findDiscriminatorValue(\n entityMetadata.target,\n )\n\n if (typeof discriminatorValue !== \"undefined\") {\n entityMetadata.discriminatorValue = discriminatorValue.value\n } else {\n entityMetadata.discriminatorValue = (\n entityMetadata.target as any\n ).name\n }\n\n // if single table inheritance is used, we need to mark all embedded columns as nullable\n entityMetadata.embeddeds = this.createEmbeddedsRecursively(\n entityMetadata,\n this.metadataArgsStorage.filterEmbeddeds(\n entityMetadata.inheritanceTree,\n ),\n ).map((embedded: EmbeddedMetadata): EmbeddedMetadata => {\n if (entityMetadata.inheritancePattern === \"STI\") {\n embedded.columns = embedded.columns.map(\n (column: ColumnMetadata): ColumnMetadata => {\n column.isNullable = true\n return column\n },\n )\n }\n return embedded\n })\n\n entityMetadata.ownColumns = this.metadataArgsStorage\n .filterColumns(entityMetadata.inheritanceTree)\n .map((args) => {\n // for single table children we reuse columns created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.ownColumns.find(\n (column) => column.propertyName === args.propertyName,\n )!\n\n // for multiple table inheritance we can override default column values\n if (\n entityMetadata.tableType === \"regular\" &&\n args.target !== entityMetadata.target\n ) {\n const childArgs = this.metadataArgsStorage.columns.find(\n (c) =>\n c.propertyName === args.propertyName &&\n c.target === entityMetadata.target,\n )\n if (childArgs?.options.default) {\n args.options.default = childArgs.options.default\n }\n }\n\n const column = new ColumnMetadata({\n entityMetadata,\n args,\n })\n\n // if single table inheritance used, we need to mark all inherit table columns as nullable\n const columnInSingleTableInheritedChild =\n allEntityMetadatas.find(\n (otherEntityMetadata) =>\n otherEntityMetadata.tableType === \"entity-child\" &&\n otherEntityMetadata.target === args.target,\n )\n if (columnInSingleTableInheritedChild) column.isNullable = true\n return column\n })\n\n // for table inheritance we need to add a discriminator column\n //\n if (entityInheritance?.column) {\n const discriminatorColumnName =\n entityInheritance.column?.name ?? \"type\"\n let discriminatorColumn = entityMetadata.ownColumns.find(\n (column) => column.propertyName === discriminatorColumnName,\n )\n if (!discriminatorColumn) {\n discriminatorColumn = new ColumnMetadata({\n entityMetadata,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: discriminatorColumnName,\n options: entityInheritance.column || {\n name: discriminatorColumnName,\n type: \"varchar\",\n nullable: false,\n },\n },\n })\n discriminatorColumn.isVirtual = true\n discriminatorColumn.isDiscriminator = true\n entityMetadata.ownColumns.push(discriminatorColumn)\n } else {\n discriminatorColumn.isDiscriminator = true\n }\n }\n\n // add discriminator column to the child entity metadatas\n // discriminator column will not be there automatically since we are creating it in the code above\n if (entityMetadata.tableType === \"entity-child\") {\n const discriminatorColumn =\n entityMetadata.parentEntityMetadata.ownColumns.find(\n (column) => column.isDiscriminator,\n )\n if (\n discriminatorColumn &&\n !entityMetadata.ownColumns.find(\n (column) => column === discriminatorColumn,\n )\n ) {\n entityMetadata.ownColumns.push(discriminatorColumn)\n }\n // also copy the inheritance pattern & tree metadata\n // this comes in handy when inheritance and trees are used together\n entityMetadata.inheritancePattern =\n entityMetadata.parentEntityMetadata.inheritancePattern\n if (\n !entityMetadata.treeType &&\n !!entityMetadata.parentEntityMetadata.treeType\n ) {\n entityMetadata.treeType =\n entityMetadata.parentEntityMetadata.treeType\n entityMetadata.treeOptions =\n entityMetadata.parentEntityMetadata.treeOptions\n entityMetadata.treeParentRelation =\n entityMetadata.parentEntityMetadata.treeParentRelation\n entityMetadata.treeLevelColumn =\n entityMetadata.parentEntityMetadata.treeLevelColumn\n }\n }\n\n const { namingStrategy } = this.dataSource\n\n // check if tree is used then we need to add extra columns for specific tree types\n if (entityMetadata.treeType === \"materialized-path\") {\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n entityMetadata,\n materializedPath: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: \"mpath\",\n options: /*tree.column || */ {\n name: namingStrategy.materializedPathColumnName,\n type: String,\n nullable: true,\n default: \"\",\n },\n },\n }),\n )\n } else if (entityMetadata.treeType === \"nested-set\") {\n const { left, right } = namingStrategy.nestedSetColumnNames\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n entityMetadata: entityMetadata,\n nestedSetLeft: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: left,\n options: /*tree.column || */ {\n name: left,\n type: Number,\n nullable: false,\n default: 1,\n },\n },\n }),\n )\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n entityMetadata,\n nestedSetRight: true,\n args: {\n target: entityMetadata.target,\n mode: \"virtual\",\n propertyName: right,\n options: /*tree.column || */ {\n name: right,\n type: Number,\n nullable: false,\n default: 2,\n },\n },\n }),\n )\n }\n\n entityMetadata.ownRelations = this.metadataArgsStorage\n .filterRelations(entityMetadata.inheritanceTree)\n .map((args) => {\n // for single table children we reuse relations created for their parents\n if (entityMetadata.tableType === \"entity-child\") {\n const parentRelation =\n entityMetadata.parentEntityMetadata.ownRelations.find(\n (relation) =>\n relation.propertyName === args.propertyName,\n )!\n const type =\n typeof args.type === \"function\"\n ? (args.type as () => any)()\n : args.type\n if (parentRelation.type !== type) {\n const clone = Object.create(parentRelation)\n clone.type = type\n return clone\n }\n\n return parentRelation\n }\n\n return new RelationMetadata({ entityMetadata, args })\n })\n entityMetadata.relationIds = this.metadataArgsStorage\n .filterRelationIds(entityMetadata.inheritanceTree)\n .map((args) => {\n // for single table children we reuse relation ids created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.relationIds.find(\n (relationId) =>\n relationId.propertyName === args.propertyName,\n )!\n\n return new RelationIdMetadata({ entityMetadata, args })\n })\n entityMetadata.ownListeners = this.metadataArgsStorage\n .filterListeners(entityMetadata.inheritanceTree)\n .map((args) => {\n return new EntityListenerMetadata({\n entityMetadata: entityMetadata,\n args: args,\n })\n })\n entityMetadata.checks = this.metadataArgsStorage\n .filterChecks(entityMetadata.inheritanceTree)\n .map((args) => {\n return new CheckMetadata({ entityMetadata, args })\n })\n\n // Only PostgreSQL supports exclusion constraints.\n if (this.dataSource.driver.options.type === \"postgres\") {\n entityMetadata.exclusions = this.metadataArgsStorage\n .filterExclusions(entityMetadata.inheritanceTree)\n .map((args) => {\n return new ExclusionMetadata({ entityMetadata, args })\n })\n }\n\n if (this.dataSource.driver.options.type === \"cockroachdb\") {\n entityMetadata.ownIndices = this.metadataArgsStorage\n .filterIndices(entityMetadata.inheritanceTree)\n .filter((args) => !args.unique)\n .map((args) => {\n return new IndexMetadata({ entityMetadata, args })\n })\n\n const uniques = this.metadataArgsStorage\n .filterIndices(entityMetadata.inheritanceTree)\n .filter((args) => args.unique)\n .map((args) => {\n return new UniqueMetadata({\n entityMetadata: entityMetadata,\n args: {\n target: args.target,\n name: args.name,\n columns: args.columns,\n },\n })\n })\n entityMetadata.ownUniques.push(...uniques)\n } else {\n entityMetadata.ownIndices = this.metadataArgsStorage\n .filterIndices(entityMetadata.inheritanceTree)\n .map((args) => {\n return new IndexMetadata({ entityMetadata, args })\n })\n }\n\n // This drivers stores unique constraints as unique indices.\n if (\n DriverUtils.isMySQLFamily(this.dataSource.driver) ||\n this.dataSource.driver.options.type === \"aurora-mysql\" ||\n this.dataSource.driver.options.type === \"sap\" ||\n this.dataSource.driver.options.type === \"spanner\"\n ) {\n const indices = this.metadataArgsStorage\n .filterUniques(entityMetadata.inheritanceTree)\n .map((args) => {\n return new IndexMetadata({\n entityMetadata: entityMetadata,\n args: {\n target: args.target,\n name: args.name,\n columns: args.columns,\n unique: true,\n synchronize: true,\n },\n })\n })\n entityMetadata.ownIndices.push(...indices)\n } else {\n const uniques = this.metadataArgsStorage\n .filterUniques(entityMetadata.inheritanceTree)\n .map((args) => {\n return new UniqueMetadata({ entityMetadata, args })\n })\n entityMetadata.ownUniques.push(...uniques)\n }\n }\n\n /**\n * Creates from the given embedded metadata args real embedded metadatas with its columns and relations,\n * and does the same for all its sub-embeddeds (goes recursively).\n *\n * @param entityMetadata\n * @param embeddedArgs\n */\n protected createEmbeddedsRecursively(\n entityMetadata: EntityMetadata,\n embeddedArgs: EmbeddedMetadataArgs[],\n ): EmbeddedMetadata[] {\n return embeddedArgs.map((embeddedArgs) => {\n const embeddedMetadata = new EmbeddedMetadata({\n entityMetadata: entityMetadata,\n args: embeddedArgs,\n })\n const targets: any[] =\n typeof embeddedMetadata.type === \"function\"\n ? MetadataUtils.getInheritanceTree(embeddedMetadata.type)\n : [embeddedMetadata.type] // todo: implement later here inheritance for string-targets\n\n embeddedMetadata.columns = this.metadataArgsStorage\n .filterColumns(targets)\n .map((args) => {\n return new ColumnMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.relations = this.metadataArgsStorage\n .filterRelations(targets)\n .map((args) => {\n return new RelationMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.listeners = this.metadataArgsStorage\n .filterListeners(targets)\n .map((args) => {\n return new EntityListenerMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.indices = this.metadataArgsStorage\n .filterIndices(targets)\n .map((args) => {\n return new IndexMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.uniques = this.metadataArgsStorage\n .filterUniques(targets)\n .map((args) => {\n return new UniqueMetadata({\n entityMetadata,\n embeddedMetadata,\n args,\n })\n })\n embeddedMetadata.relationIds = this.metadataArgsStorage\n .filterRelationIds(targets)\n .map((args) => {\n return new RelationIdMetadata({ entityMetadata, args })\n })\n embeddedMetadata.embeddeds = this.createEmbeddedsRecursively(\n entityMetadata,\n this.metadataArgsStorage.filterEmbeddeds(targets),\n )\n embeddedMetadata.embeddeds.forEach((subEmbedded) => {\n subEmbedded.parentEmbeddedMetadata = embeddedMetadata\n })\n entityMetadata.allEmbeddeds.push(embeddedMetadata)\n return embeddedMetadata\n })\n }\n\n /**\n * Computes all entity metadata's computed properties, and all its sub-metadatas (relations, columns, embeds, etc).\n *\n * @param entityMetadata\n */\n protected computeEntityMetadataStep2(entityMetadata: EntityMetadata) {\n entityMetadata.embeddeds.forEach((embedded) =>\n embedded.build(this.dataSource),\n )\n entityMetadata.embeddeds.forEach((embedded) => {\n embedded.columnsFromTree.forEach((column) =>\n column.build(this.dataSource),\n )\n embedded.relationsFromTree.forEach((relation) => relation.build())\n })\n entityMetadata.ownColumns.forEach((column) =>\n column.build(this.dataSource),\n )\n entityMetadata.ownRelations.forEach((relation) => relation.build())\n entityMetadata.relations = entityMetadata.embeddeds.reduce(\n (relations, embedded) =>\n relations.concat(embedded.relationsFromTree),\n entityMetadata.ownRelations,\n )\n entityMetadata.eagerRelations = entityMetadata.relations.filter(\n (relation) => relation.isEager,\n )\n entityMetadata.lazyRelations = entityMetadata.relations.filter(\n (relation) => relation.isLazy,\n )\n entityMetadata.oneToOneRelations = entityMetadata.relations.filter(\n (relation) => relation.isOneToOne,\n )\n entityMetadata.oneToManyRelations = entityMetadata.relations.filter(\n (relation) => relation.isOneToMany,\n )\n entityMetadata.manyToOneRelations = entityMetadata.relations.filter(\n (relation) => relation.isManyToOne,\n )\n entityMetadata.manyToManyRelations = entityMetadata.relations.filter(\n (relation) => relation.isManyToMany,\n )\n entityMetadata.ownerOneToOneRelations = entityMetadata.relations.filter(\n (relation) => relation.isOneToOneOwner,\n )\n entityMetadata.ownerManyToManyRelations =\n entityMetadata.relations.filter(\n (relation) => relation.isManyToManyOwner,\n )\n entityMetadata.treeParentRelation = entityMetadata.relations.find(\n (relation) => relation.isTreeParent,\n )\n entityMetadata.treeChildrenRelation = entityMetadata.relations.find(\n (relation) => relation.isTreeChildren,\n )\n entityMetadata.columns = entityMetadata.embeddeds.reduce(\n (columns, embedded) => columns.concat(embedded.columnsFromTree),\n entityMetadata.ownColumns,\n )\n entityMetadata.listeners = entityMetadata.embeddeds.reduce(\n (listeners, embedded) =>\n listeners.concat(embedded.listenersFromTree),\n entityMetadata.ownListeners,\n )\n entityMetadata.afterLoadListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_LOAD,\n )\n entityMetadata.afterInsertListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_INSERT,\n )\n entityMetadata.afterUpdateListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_UPDATE,\n )\n entityMetadata.afterRemoveListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_REMOVE,\n )\n entityMetadata.afterSoftRemoveListeners =\n entityMetadata.listeners.filter(\n (listener) =>\n listener.type === EventListenerTypes.AFTER_SOFT_REMOVE,\n )\n entityMetadata.afterRecoverListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.AFTER_RECOVER,\n )\n entityMetadata.beforeInsertListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.BEFORE_INSERT,\n )\n entityMetadata.beforeUpdateListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.BEFORE_UPDATE,\n )\n entityMetadata.beforeRemoveListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.BEFORE_REMOVE,\n )\n entityMetadata.beforeSoftRemoveListeners =\n entityMetadata.listeners.filter(\n (listener) =>\n listener.type === EventListenerTypes.BEFORE_SOFT_REMOVE,\n )\n entityMetadata.beforeRecoverListeners = entityMetadata.listeners.filter(\n (listener) => listener.type === EventListenerTypes.BEFORE_RECOVER,\n )\n entityMetadata.indices = entityMetadata.embeddeds.reduce(\n (indices, embedded) => indices.concat(embedded.indicesFromTree),\n entityMetadata.ownIndices,\n )\n entityMetadata.uniques = entityMetadata.embeddeds.reduce(\n (uniques, embedded) => uniques.concat(embedded.uniquesFromTree),\n entityMetadata.ownUniques,\n )\n entityMetadata.primaryColumns = entityMetadata.columns.filter(\n (column) => column.isPrimary,\n )\n entityMetadata.nonVirtualColumns = entityMetadata.columns.filter(\n (column) => !column.isVirtual,\n )\n entityMetadata.ancestorColumns = entityMetadata.columns.filter(\n (column) => column.closureType === \"ancestor\",\n )\n entityMetadata.descendantColumns = entityMetadata.columns.filter(\n (column) => column.closureType === \"descendant\",\n )\n entityMetadata.hasMultiplePrimaryKeys =\n entityMetadata.primaryColumns.length > 1\n entityMetadata.generatedColumns = entityMetadata.columns.filter(\n (column) => column.isGenerated || column.isObjectId,\n )\n entityMetadata.hasUUIDGeneratedColumns =\n entityMetadata.columns.filter(\n (column) =>\n column.isGenerated || column.generationStrategy === \"uuid\",\n ).length > 0\n entityMetadata.createDateColumn = entityMetadata.columns.find(\n (column) => column.isCreateDate,\n )\n entityMetadata.updateDateColumn = entityMetadata.columns.find(\n (column) => column.isUpdateDate,\n )\n entityMetadata.deleteDateColumn = entityMetadata.columns.find(\n (column) => column.isDeleteDate,\n )\n entityMetadata.versionColumn = entityMetadata.columns.find(\n (column) => column.isVersion,\n )\n entityMetadata.discriminatorColumn = entityMetadata.columns.find(\n (column) => column.isDiscriminator,\n )\n entityMetadata.treeLevelColumn = entityMetadata.columns.find(\n (column) => column.isTreeLevel,\n )\n entityMetadata.nestedSetLeftColumn = entityMetadata.columns.find(\n (column) => column.isNestedSetLeft,\n )\n entityMetadata.nestedSetRightColumn = entityMetadata.columns.find(\n (column) => column.isNestedSetRight,\n )\n entityMetadata.materializedPathColumn = entityMetadata.columns.find(\n (column) => column.isMaterializedPath,\n )\n entityMetadata.objectIdColumn = entityMetadata.columns.find(\n (column) => column.isObjectId,\n )\n entityMetadata.foreignKeys.forEach((foreignKey) =>\n foreignKey.build(this.dataSource.namingStrategy),\n )\n entityMetadata.propertiesMap = entityMetadata.createPropertiesMap()\n entityMetadata.relationIds.forEach((relationId) => relationId.build())\n entityMetadata.embeddeds.forEach((embedded) => {\n embedded.relationIdsFromTree.forEach((relationId) =>\n relationId.build(),\n )\n })\n }\n\n /**\n * Computes entity metadata's relations inverse side properties.\n *\n * @param entityMetadata\n * @param entityMetadatas\n */\n protected computeInverseProperties(\n entityMetadata: EntityMetadata,\n entityMetadatas: EntityMetadata[],\n ) {\n entityMetadata.relations.forEach((relation) => {\n // compute inverse side (related) entity metadatas for all relation metadatas\n const inverseEntityMetadata = entityMetadatas.find(\n (m) =>\n m.target === relation.type ||\n (typeof relation.type === \"string\" &&\n (m.targetName === relation.type ||\n m.givenTableName === relation.type)),\n )\n if (!inverseEntityMetadata)\n throw new TypeORMError(\n \"Entity metadata for \" +\n entityMetadata.name +\n \"#\" +\n relation.propertyPath +\n \" was not found. Check if you specified a correct entity object and if it's connected in the connection options.\",\n )\n\n relation.inverseEntityMetadata = inverseEntityMetadata\n relation.inverseSidePropertyPath =\n relation.buildInverseSidePropertyPath()\n\n // and compute inverse relation and mark if it has such\n relation.inverseRelation = inverseEntityMetadata.relations.find(\n (foundRelation) =>\n foundRelation.propertyPath ===\n relation.inverseSidePropertyPath,\n )\n })\n }\n\n /**\n * Creates indices for the table of single table inheritance.\n *\n * @param entityMetadata\n */\n protected createKeysForTableInheritance(entityMetadata: EntityMetadata) {\n const isDiscriminatorColumnAlreadyIndexed = entityMetadata.indices.some(\n ({ givenColumnNames }) =>\n !!givenColumnNames &&\n Array.isArray(givenColumnNames) &&\n givenColumnNames.length === 1 &&\n givenColumnNames[0] ===\n entityMetadata.discriminatorColumn?.databaseName,\n )\n\n // If the discriminator column is already indexed, there is no need to\n // add another index on top of it.\n if (isDiscriminatorColumnAlreadyIndexed) {\n return\n }\n\n entityMetadata.indices.push(\n new IndexMetadata({\n entityMetadata: entityMetadata,\n columns: [entityMetadata.discriminatorColumn!],\n args: {\n target: entityMetadata.target,\n unique: false,\n },\n }),\n )\n }\n\n /**\n * Creates from the given foreign key metadata args real foreign key metadatas.\n *\n * @param entityMetadata\n * @param entityMetadatas\n */\n protected createForeignKeys(\n entityMetadata: EntityMetadata,\n entityMetadatas: EntityMetadata[],\n ) {\n this.metadataArgsStorage\n .filterForeignKeys(entityMetadata.inheritanceTree)\n .forEach((foreignKeyArgs) => {\n const foreignKeyType =\n typeof foreignKeyArgs.type === \"function\"\n ? (foreignKeyArgs.type as () => any)()\n : foreignKeyArgs.type\n\n const referencedEntityMetadata = entityMetadatas.find((m) =>\n typeof foreignKeyType === \"string\"\n ? m.targetName === foreignKeyType ||\n m.givenTableName === foreignKeyType\n : InstanceChecker.isEntitySchema(foreignKeyType)\n ? m.target === foreignKeyType.options.name ||\n m.target === foreignKeyType.options.target\n : m.target === foreignKeyType,\n )\n\n if (!referencedEntityMetadata) {\n throw new TypeORMError(\n \"Entity metadata for \" +\n entityMetadata.name +\n (foreignKeyArgs.propertyName\n ? \"#\" + foreignKeyArgs.propertyName\n : \"\") +\n \" was not found. Check if you specified a correct entity object and if it's connected in the connection options.\",\n )\n }\n\n const columnNames = foreignKeyArgs.columnNames ?? []\n const referencedColumnNames =\n foreignKeyArgs.referencedColumnNames ?? []\n\n const columns: ColumnMetadata[] = []\n const referencedColumns: ColumnMetadata[] = []\n\n if (foreignKeyArgs.propertyName) {\n columnNames.push(foreignKeyArgs.propertyName)\n\n if (foreignKeyArgs.inverseSide) {\n if (typeof foreignKeyArgs.inverseSide === \"function\") {\n referencedColumnNames.push(\n foreignKeyArgs.inverseSide(\n referencedEntityMetadata.propertiesMap,\n ),\n )\n } else {\n referencedColumnNames.push(\n foreignKeyArgs.inverseSide,\n )\n }\n }\n }\n\n if (!referencedColumnNames.length) {\n referencedColumns.push(\n ...referencedEntityMetadata.primaryColumns,\n )\n }\n\n const columnNameToColumn = (\n columnName: string,\n entityMetadata: EntityMetadata,\n ): ColumnMetadata => {\n const column = entityMetadata.columns.find(\n (column) =>\n column.propertyName === columnName ||\n column.databaseName === columnName,\n )\n\n if (column) return column\n\n const foreignKeyName = foreignKeyArgs.name\n ? '\"' + foreignKeyArgs.name + '\" '\n : \"\"\n const entityName = entityMetadata.targetName\n throw new TypeORMError(\n `Foreign key constraint ${foreignKeyName}contains column that is missing in the entity (${entityName}): ${columnName}`,\n )\n }\n\n columns.push(\n ...columnNames.map((columnName) =>\n columnNameToColumn(columnName, entityMetadata),\n ),\n )\n\n referencedColumns.push(\n ...referencedColumnNames.map((columnName) =>\n columnNameToColumn(\n columnName,\n referencedEntityMetadata,\n ),\n ),\n )\n\n entityMetadata.foreignKeys.push(\n new ForeignKeyMetadata({\n entityMetadata,\n referencedEntityMetadata,\n namingStrategy: this.dataSource.namingStrategy,\n columns,\n referencedColumns,\n ...foreignKeyArgs,\n }),\n )\n })\n }\n}\n"]}
@@ -6,12 +6,14 @@ import type { Driver } from "../driver/Driver";
6
6
  export declare class EntityMetadataValidator {
7
7
  /**
8
8
  * Validates all given entity metadatas.
9
+ *
9
10
  * @param entityMetadatas
10
11
  * @param driver
11
12
  */
12
13
  validateMany(entityMetadatas: EntityMetadata[], driver: Driver): void;
13
14
  /**
14
15
  * Validates given entity metadata.
16
+ *
15
17
  * @param entityMetadata
16
18
  * @param allEntityMetadatas
17
19
  * @param driver
@@ -19,11 +21,13 @@ export declare class EntityMetadataValidator {
19
21
  validate(entityMetadata: EntityMetadata, allEntityMetadatas: EntityMetadata[], driver: Driver): void;
20
22
  /**
21
23
  * Validates dependencies of the entity metadatas.
24
+ *
22
25
  * @param entityMetadatas
23
26
  */
24
27
  protected validateDependencies(entityMetadatas: EntityMetadata[]): void;
25
28
  /**
26
29
  * Validates eager relations to prevent circular dependency in them.
30
+ *
27
31
  * @param entityMetadatas
28
32
  */
29
33
  protected validateEagerRelations(entityMetadatas: EntityMetadata[]): void;
@@ -33,6 +33,7 @@ class EntityMetadataValidator {
33
33
  // -------------------------------------------------------------------------
34
34
  /**
35
35
  * Validates all given entity metadatas.
36
+ *
36
37
  * @param entityMetadatas
37
38
  * @param driver
38
39
  */
@@ -43,6 +44,7 @@ class EntityMetadataValidator {
43
44
  }
44
45
  /**
45
46
  * Validates given entity metadata.
47
+ *
46
48
  * @param entityMetadata
47
49
  * @param allEntityMetadatas
48
50
  * @param driver
@@ -152,45 +154,6 @@ class EntityMetadataValidator {
152
154
  !driver.supportedOnUpdateTypes.includes(relation.onUpdate)) {
153
155
  throw new error_1.TypeORMError(`OnUpdateType "${relation.onUpdate}" is not valid for ${driver.options.type}!`);
154
156
  }
155
- // check join tables:
156
- // using JoinTable is possible only on one side of the many-to-many relation
157
- // todo(dima): fix
158
- // if (relation.joinTable) {
159
- // if (!relation.isManyToMany)
160
- // throw new UsingJoinTableIsNotAllowedError(entityMetadata, relation);
161
- // // if there is inverse side of the relation, then check if it does not have join table too
162
- // if (relation.hasInverseSide && relation.inverseRelation.joinTable)
163
- // throw new UsingJoinTableOnlyOnOneSideAllowedError(entityMetadata, relation);
164
- // }
165
- // check join columns:
166
- // using JoinColumn is possible only on one side of the relation and on one-to-one, many-to-one relation types
167
- // first check if relation is one-to-one or many-to-one
168
- // todo(dima): fix
169
- /*if (relation.joinColumn) {
170
-
171
- // join column can be applied only on one-to-one and many-to-one relations
172
- if (!relation.isOneToOne && !relation.isManyToOne)
173
- throw new UsingJoinColumnIsNotAllowedError(entityMetadata, relation);
174
-
175
- // if there is inverse side of the relation, then check if it does not have join table too
176
- if (relation.hasInverseSide && relation.inverseRelation.joinColumn && relation.isOneToOne)
177
- throw new UsingJoinColumnOnlyOnOneSideAllowedError(entityMetadata, relation);
178
-
179
- // check if join column really has referenced column
180
- if (relation.joinColumn && !relation.joinColumn.referencedColumn)
181
- throw new TypeORMError(`Join column does not have referenced column set`);
182
-
183
- }
184
-
185
- // if its a one-to-one relation and JoinColumn is missing on both sides of the relation
186
- // or its one-side relation without JoinColumn we should give an error
187
- if (!relation.joinColumn && relation.isOneToOne && (!relation.hasInverseSide || !relation.inverseRelation.joinColumn))
188
- throw new MissingJoinColumnError(entityMetadata, relation);*/
189
- // if its a many-to-many relation and JoinTable is missing on both sides of the relation
190
- // or its one-side relation without JoinTable we should give an error
191
- // todo(dima): fix it
192
- // if (!relation.joinTable && relation.isManyToMany && (!relation.hasInverseSide || !relation.inverseRelation.joinTable))
193
- // throw new MissingJoinTableError(entityMetadata, relation);
194
157
  // todo: validate if its one-to-one and side which does not have join column MUST have inverse side
195
158
  // todo: validate if its many-to-many and side which does not have join table MUST have inverse side
196
159
  // todo: if there is a relation, and inverse side is specified only on one side, shall we give error
@@ -206,8 +169,7 @@ class EntityMetadataValidator {
206
169
  // make sure cascade remove is not set for both sides of relationships (can be set in OneToOne decorators)
207
170
  entityMetadata.relations.forEach((relation) => {
208
171
  const isCircularCascadeRemove = relation.isCascadeRemove &&
209
- relation.inverseRelation &&
210
- relation.inverseRelation.isCascadeRemove;
172
+ relation.inverseRelation?.isCascadeRemove;
211
173
  if (isCircularCascadeRemove)
212
174
  throw new error_1.TypeORMError(`Relation ${entityMetadata.name}#${relation.propertyName} and ${relation.inverseRelation.entityMetadata.name}#${relation.inverseRelation.propertyName} both has cascade remove set. ` +
213
175
  `This may lead to unexpected circular removals. Please set cascade remove only from one side of relationship.`);
@@ -215,6 +177,7 @@ class EntityMetadataValidator {
215
177
  }
216
178
  /**
217
179
  * Validates dependencies of the entity metadatas.
180
+ *
218
181
  * @param entityMetadatas
219
182
  */
220
183
  validateDependencies(entityMetadatas) {
@@ -238,13 +201,13 @@ class EntityMetadataValidator {
238
201
  }
239
202
  /**
240
203
  * Validates eager relations to prevent circular dependency in them.
204
+ *
241
205
  * @param entityMetadatas
242
206
  */
243
207
  validateEagerRelations(entityMetadatas) {
244
208
  entityMetadatas.forEach((entityMetadata) => {
245
209
  entityMetadata.eagerRelations.forEach((relation) => {
246
- if (relation.inverseRelation &&
247
- relation.inverseRelation.isEager)
210
+ if (relation.inverseRelation?.isEager)
248
211
  throw new error_1.TypeORMError(`Circular eager relations are disallowed. ` +
249
212
  `${entityMetadata.targetName}#${relation.propertyPath} contains "eager: true", and its inverse side ` +
250
213
  `${relation.inverseEntityMetadata.targetName}#${relation.inverseRelation.propertyPath} contains "eager: true" as well.` +