typeorm 0.3.21-dev.fdbb013 → 0.3.21

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 (1213) hide show
  1. package/README.md +1315 -1325
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/cache/QueryResultCache.d.ts +4 -2
  4. package/browser/cache/QueryResultCache.js.map +1 -1
  5. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  6. package/browser/cache/QueryResultCacheOptions.js.map +1 -1
  7. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  8. package/browser/cli-ts-node-commonjs.js.map +1 -1
  9. package/browser/cli-ts-node-esm.js.map +1 -1
  10. package/browser/common/DeepPartial.js.map +1 -1
  11. package/browser/common/EntityTarget.js.map +1 -1
  12. package/browser/common/MixedList.js.map +1 -1
  13. package/browser/common/NonNever.js.map +1 -1
  14. package/browser/common/ObjectLiteral.js.map +1 -1
  15. package/browser/common/ObjectType.js.map +1 -1
  16. package/browser/common/PickKeysByType.js.map +1 -1
  17. package/browser/common/RelationType.js.map +1 -1
  18. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  19. package/browser/connection/Connection.js.map +1 -1
  20. package/browser/connection/ConnectionManager.js.map +1 -1
  21. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  22. package/browser/connection/ConnectionOptions.js.map +1 -1
  23. package/browser/connection/ConnectionOptionsReader.d.ts +4 -4
  24. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  25. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  26. package/browser/container.js.map +1 -1
  27. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  28. package/browser/data-source/DataSource.d.ts +2 -0
  29. package/browser/data-source/DataSource.js +2 -0
  30. package/browser/data-source/DataSource.js.map +1 -1
  31. package/browser/data-source/DataSourceOptions.js.map +1 -1
  32. package/browser/data-source/index.js.map +1 -1
  33. package/browser/decorator/Check.js.map +1 -1
  34. package/browser/decorator/EntityRepository.js.map +1 -1
  35. package/browser/decorator/Exclusion.js.map +1 -1
  36. package/browser/decorator/Generated.js.map +1 -1
  37. package/browser/decorator/Index.js.map +1 -1
  38. package/browser/decorator/Unique.js.map +1 -1
  39. package/browser/decorator/columns/Column.js.map +1 -1
  40. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  41. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  42. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  43. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  44. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  45. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  46. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  47. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  48. package/browser/decorator/columns/VirtualColumn.js.map +1 -1
  49. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  50. package/browser/decorator/entity/Entity.js.map +1 -1
  51. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  52. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  53. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  54. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  55. package/browser/decorator/listeners/AfterRecover.js.map +1 -1
  56. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  57. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
  58. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  59. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  60. package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
  61. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  62. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  63. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  64. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  65. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  66. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  67. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  68. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  69. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  70. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  71. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  72. package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  73. package/browser/decorator/options/EntityOptions.js.map +1 -1
  74. package/browser/decorator/options/IndexOptions.js.map +1 -1
  75. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  76. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  77. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  78. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  79. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  80. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  81. package/browser/decorator/options/RelationOptions.js.map +1 -1
  82. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  83. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  84. package/browser/decorator/options/UniqueOptions.js.map +1 -1
  85. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  86. package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
  87. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  88. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
  89. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  90. package/browser/decorator/relations/JoinTable.js.map +1 -1
  91. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  92. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  93. package/browser/decorator/relations/OneToMany.js.map +1 -1
  94. package/browser/decorator/relations/OneToOne.d.ts +4 -4
  95. package/browser/decorator/relations/OneToOne.js +2 -2
  96. package/browser/decorator/relations/OneToOne.js.map +1 -1
  97. package/browser/decorator/relations/RelationCount.js.map +1 -1
  98. package/browser/decorator/relations/RelationId.js.map +1 -1
  99. package/browser/decorator/tree/Tree.js.map +1 -1
  100. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  101. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  102. package/browser/decorator/tree/TreeParent.js.map +1 -1
  103. package/browser/driver/Driver.js.map +1 -1
  104. package/browser/driver/DriverFactory.js.map +1 -1
  105. package/browser/driver/DriverUtils.js.map +1 -1
  106. package/browser/driver/Query.js.map +1 -1
  107. package/browser/driver/SqlInMemory.js.map +1 -1
  108. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  109. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -1
  110. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  111. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  112. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  113. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +0 -1
  114. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  115. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  116. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  117. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  118. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  119. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +2 -2
  120. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  121. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +4 -0
  122. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  123. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  124. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  125. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  126. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -2
  127. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  128. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +1 -1
  129. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  130. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  131. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +0 -1
  132. package/browser/driver/cockroachdb/CockroachQueryRunner.js +5 -3
  133. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  134. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  135. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  136. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  137. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  138. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  139. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  140. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +1 -2
  141. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  142. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  143. package/browser/driver/mongodb/MongoQueryRunner.d.ts +0 -1
  144. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  145. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  146. package/browser/driver/mongodb/typings.d.ts +0 -8
  147. package/browser/driver/mongodb/typings.js +0 -1
  148. package/browser/driver/mongodb/typings.js.map +1 -1
  149. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -1
  150. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  151. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +1 -1
  152. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  153. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  154. package/browser/driver/mysql/MysqlQueryRunner.d.ts +0 -1
  155. package/browser/driver/mysql/MysqlQueryRunner.js +71 -71
  156. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  157. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  158. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  159. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  160. package/browser/driver/oracle/OracleConnectionCredentialsOptions.d.ts +1 -1
  161. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  162. package/browser/driver/oracle/OracleConnectionOptions.d.ts +1 -1
  163. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  164. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  165. package/browser/driver/oracle/OracleQueryRunner.d.ts +0 -1
  166. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  167. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -2
  168. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  169. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +1 -1
  170. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  171. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  172. package/browser/driver/postgres/PostgresQueryRunner.d.ts +0 -1
  173. package/browser/driver/postgres/PostgresQueryRunner.js +5 -1
  174. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  175. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  176. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  177. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  178. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  179. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  180. package/browser/driver/sap/SapDriver.js.map +1 -1
  181. package/browser/driver/sap/SapQueryRunner.d.ts +0 -1
  182. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  183. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +1 -1
  184. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  185. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +1 -1
  186. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  187. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  188. package/browser/driver/spanner/SpannerQueryRunner.d.ts +0 -1
  189. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  190. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  191. package/browser/driver/sqlite/SqliteDriver.js +2 -2
  192. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  193. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  194. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  195. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +0 -1
  196. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  197. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  198. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  199. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  200. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  201. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +1 -1
  202. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  203. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +1 -1
  204. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  205. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  206. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +0 -1
  207. package/browser/driver/sqlserver/SqlServerQueryRunner.js +26 -26
  208. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  209. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  210. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  211. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  212. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  213. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  214. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  215. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  216. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  217. package/browser/driver/types/ColumnTypes.js.map +1 -1
  218. package/browser/driver/types/CteCapabilities.js.map +1 -1
  219. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  220. package/browser/driver/types/DatabaseType.js.map +1 -1
  221. package/browser/driver/types/GeoJsonTypes.js.map +1 -1
  222. package/browser/driver/types/IsolationLevel.js.map +1 -1
  223. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  224. package/browser/driver/types/MetadataTableType.js.map +1 -1
  225. package/browser/driver/types/ReplicationMode.js.map +1 -1
  226. package/browser/driver/types/UpsertType.js.map +1 -1
  227. package/browser/entity-manager/EntityManager.d.ts +2 -0
  228. package/browser/entity-manager/EntityManager.js +4 -2
  229. package/browser/entity-manager/EntityManager.js.map +1 -1
  230. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  231. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  232. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  233. package/browser/entity-schema/EntitySchema.js.map +1 -1
  234. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  235. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  236. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  237. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  238. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  239. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  240. package/browser/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  241. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  242. package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  243. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  244. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  245. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  246. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  247. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  248. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  249. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  250. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  251. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  252. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  253. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  254. package/browser/error/CircularRelationsError.js.map +1 -1
  255. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  256. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  257. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  258. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  259. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  260. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  261. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  262. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  263. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  264. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  265. package/browser/error/EntityNotFoundError.js.map +1 -1
  266. package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
  267. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  268. package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  269. package/browser/error/InitializedRelationError.js.map +1 -1
  270. package/browser/error/InsertValuesMissingError.js.map +1 -1
  271. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  272. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  273. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  274. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  275. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  276. package/browser/error/MissingDriverError.js.map +1 -1
  277. package/browser/error/MissingJoinColumnError.js.map +1 -1
  278. package/browser/error/MissingJoinTableError.js.map +1 -1
  279. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  280. package/browser/error/MustBeEntityError.js.map +1 -1
  281. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  282. package/browser/error/NestedSetMultipleRootError.js.map +1 -1
  283. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  284. package/browser/error/NoConnectionOptionError.js.map +1 -1
  285. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  286. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  287. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  288. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  289. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  290. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  291. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  292. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  293. package/browser/error/QueryFailedError.js.map +1 -1
  294. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  295. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  296. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  297. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  298. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  299. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  300. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  301. package/browser/error/TransactionNotStartedError.js.map +1 -1
  302. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  303. package/browser/error/TypeORMError.js.map +1 -1
  304. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  305. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  306. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  307. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  308. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  309. package/browser/error/index.js.map +1 -1
  310. package/browser/find-options/EqualOperator.js.map +1 -1
  311. package/browser/find-options/FindManyOptions.js.map +1 -1
  312. package/browser/find-options/FindOneOptions.js.map +1 -1
  313. package/browser/find-options/FindOperator.js.map +1 -1
  314. package/browser/find-options/FindOperatorType.js.map +1 -1
  315. package/browser/find-options/FindOptionsOrder.d.ts +0 -1
  316. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  317. package/browser/find-options/FindOptionsRelations.d.ts +0 -1
  318. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  319. package/browser/find-options/FindOptionsSelect.d.ts +0 -1
  320. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  321. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  322. package/browser/find-options/FindOptionsWhere.d.ts +0 -1
  323. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  324. package/browser/find-options/FindTreeOptions.js.map +1 -1
  325. package/browser/find-options/JoinOptions.js.map +1 -1
  326. package/browser/find-options/OrderByCondition.js.map +1 -1
  327. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  328. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  329. package/browser/find-options/operator/And.js.map +1 -1
  330. package/browser/find-options/operator/Any.js.map +1 -1
  331. package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
  332. package/browser/find-options/operator/ArrayContains.js.map +1 -1
  333. package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
  334. package/browser/find-options/operator/Between.js.map +1 -1
  335. package/browser/find-options/operator/Equal.js.map +1 -1
  336. package/browser/find-options/operator/ILike.js.map +1 -1
  337. package/browser/find-options/operator/In.js.map +1 -1
  338. package/browser/find-options/operator/IsNull.js.map +1 -1
  339. package/browser/find-options/operator/JsonContains.js.map +1 -1
  340. package/browser/find-options/operator/LessThan.js.map +1 -1
  341. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  342. package/browser/find-options/operator/Like.js.map +1 -1
  343. package/browser/find-options/operator/MoreThan.js.map +1 -1
  344. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  345. package/browser/find-options/operator/Not.js.map +1 -1
  346. package/browser/find-options/operator/Or.js.map +1 -1
  347. package/browser/find-options/operator/Raw.js.map +1 -1
  348. package/browser/globals.js.map +1 -1
  349. package/browser/index.js.map +1 -1
  350. package/browser/logger/AbstractLogger.js.map +1 -1
  351. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  352. package/browser/logger/DebugLogger.js.map +1 -1
  353. package/browser/logger/FileLogger.js.map +1 -1
  354. package/browser/logger/Logger.js.map +1 -1
  355. package/browser/logger/LoggerFactory.js.map +1 -1
  356. package/browser/logger/LoggerOptions.js.map +1 -1
  357. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  358. package/browser/metadata/CheckMetadata.js.map +1 -1
  359. package/browser/metadata/ColumnMetadata.js.map +1 -1
  360. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  361. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  362. package/browser/metadata/EntityMetadata.js.map +1 -1
  363. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  364. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  365. package/browser/metadata/IndexMetadata.js.map +1 -1
  366. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  367. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  368. package/browser/metadata/RelationMetadata.js.map +1 -1
  369. package/browser/metadata/UniqueMetadata.js.map +1 -1
  370. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
  371. package/browser/metadata/types/DeferrableType.js.map +1 -1
  372. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  373. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  374. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  375. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  376. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  377. package/browser/metadata/types/RelationTypes.js.map +1 -1
  378. package/browser/metadata/types/TableTypes.js.map +1 -1
  379. package/browser/metadata/types/TreeTypes.js.map +1 -1
  380. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  381. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  382. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  383. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  384. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  385. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  386. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  387. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  388. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  389. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  390. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  391. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  392. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  393. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  394. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  395. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  396. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  397. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  398. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  399. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  400. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  401. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  402. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  403. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  404. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  405. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  406. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  407. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  408. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  409. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  410. package/browser/migration/Migration.js.map +1 -1
  411. package/browser/migration/MigrationExecutor.js.map +1 -1
  412. package/browser/migration/MigrationInterface.js.map +1 -1
  413. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  414. package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  415. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  416. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  417. package/browser/persistence/Subject.js.map +1 -1
  418. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  419. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  420. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  421. package/browser/persistence/SubjectExecutor.js +3 -3
  422. package/browser/persistence/SubjectExecutor.js.map +1 -1
  423. package/browser/persistence/{SubjectTopoligicalSorter.d.ts → SubjectTopologicalSorter.d.ts} +1 -1
  424. package/browser/persistence/{SubjectTopoligicalSorter.js → SubjectTopologicalSorter.js} +2 -2
  425. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -0
  426. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  427. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  428. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  429. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  430. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  431. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  432. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  433. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -1
  434. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -1
  435. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  436. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -1
  437. package/browser/platform/BrowserPlatformTools.d.ts +2 -6
  438. package/browser/platform/BrowserPlatformTools.js +2 -8
  439. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  440. package/browser/platform/PlatformTools.d.ts +2 -10
  441. package/browser/platform/PlatformTools.js +28 -36
  442. package/browser/platform/PlatformTools.js.map +1 -1
  443. package/browser/query-builder/Alias.js.map +1 -1
  444. package/browser/query-builder/Brackets.js.map +1 -1
  445. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  446. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  447. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  448. package/browser/query-builder/JoinAttribute.js.map +1 -1
  449. package/browser/query-builder/JoinOptions.js.map +1 -1
  450. package/browser/query-builder/NotBrackets.js.map +1 -1
  451. package/browser/query-builder/QueryBuilder.js +2 -3
  452. package/browser/query-builder/QueryBuilder.js.map +1 -1
  453. package/browser/query-builder/QueryBuilderCte.js.map +1 -1
  454. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  455. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  456. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  457. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  458. package/browser/query-builder/RelationLoader.js.map +1 -1
  459. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  460. package/browser/query-builder/RelationRemover.js.map +1 -1
  461. package/browser/query-builder/RelationUpdater.js.map +1 -1
  462. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  463. package/browser/query-builder/SelectQuery.js.map +1 -1
  464. package/browser/query-builder/SelectQueryBuilder.d.ts +0 -1
  465. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  466. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  467. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  468. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  469. package/browser/query-builder/WhereClause.js.map +1 -1
  470. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  471. package/browser/query-builder/index.js.map +1 -1
  472. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  473. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  474. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  475. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  476. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  477. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  478. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  479. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  480. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  481. package/browser/query-builder/result/InsertResult.js.map +1 -1
  482. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  483. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  484. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  485. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  486. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  487. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +95 -61
  488. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  489. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  490. package/browser/query-runner/QueryLock.js.map +1 -1
  491. package/browser/query-runner/QueryResult.js.map +1 -1
  492. package/browser/query-runner/QueryRunner.d.ts +0 -1
  493. package/browser/query-runner/QueryRunner.js.map +1 -1
  494. package/browser/repository/AbstractRepository.js.map +1 -1
  495. package/browser/repository/BaseEntity.js.map +1 -1
  496. package/browser/repository/EntityId.js.map +1 -1
  497. package/browser/repository/FindTreesOptions.js.map +1 -1
  498. package/browser/repository/MongoRepository.js.map +1 -1
  499. package/browser/repository/RemoveOptions.js.map +1 -1
  500. package/browser/repository/Repository.d.ts +2 -0
  501. package/browser/repository/Repository.js +2 -0
  502. package/browser/repository/Repository.js.map +1 -1
  503. package/browser/repository/SaveOptions.js.map +1 -1
  504. package/browser/repository/TreeRepository.js.map +1 -1
  505. package/browser/repository/UpsertOptions.js.map +1 -1
  506. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  507. package/browser/schema-builder/RdbmsSchemaBuilder.js +1 -1
  508. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  509. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  510. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  511. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  512. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  513. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  514. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  515. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  516. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  517. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  518. package/browser/schema-builder/table/Table.js.map +1 -1
  519. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  520. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  521. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  522. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  523. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  524. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  525. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  526. package/browser/schema-builder/util/ViewUtils.js.map +1 -1
  527. package/browser/schema-builder/view/View.js.map +1 -1
  528. package/browser/subscriber/Broadcaster.js.map +1 -1
  529. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  530. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  531. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  532. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  533. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  534. package/browser/subscriber/event/RecoverEvent.js.map +1 -1
  535. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  536. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
  537. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
  538. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  539. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
  540. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  541. package/browser/util/ApplyValueTransformers.js.map +1 -1
  542. package/browser/util/DateUtils.js.map +1 -1
  543. package/browser/util/DepGraph.js.map +1 -1
  544. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  545. package/browser/util/ImportUtils.js +22 -34
  546. package/browser/util/ImportUtils.js.map +1 -1
  547. package/browser/util/InstanceChecker.js.map +1 -1
  548. package/browser/util/ObjectUtils.js.map +1 -1
  549. package/browser/util/OrmUtils.js.map +1 -1
  550. package/browser/util/PathUtils.js.map +1 -1
  551. package/browser/util/RandomGenerator.js.map +1 -1
  552. package/browser/util/StringUtils.js.map +1 -1
  553. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  554. package/browser/util/VersionUtils.js.map +1 -1
  555. package/browser/util/escapeRegExp.js.map +1 -1
  556. package/cache/DbQueryResultCache.js.map +1 -1
  557. package/cache/QueryResultCache.d.ts +4 -2
  558. package/cache/QueryResultCache.js.map +1 -1
  559. package/cache/QueryResultCacheFactory.js.map +1 -1
  560. package/cache/QueryResultCacheOptions.js.map +1 -1
  561. package/cache/RedisQueryResultCache.js.map +1 -1
  562. package/cli-ts-node-commonjs.js.map +1 -1
  563. package/cli-ts-node-esm.js.map +1 -1
  564. package/cli.js.map +1 -1
  565. package/commands/CacheClearCommand.d.ts +1 -1
  566. package/commands/CacheClearCommand.js +3 -3
  567. package/commands/CacheClearCommand.js.map +1 -1
  568. package/commands/CommandUtils.d.ts +1 -1
  569. package/commands/CommandUtils.js +18 -16
  570. package/commands/CommandUtils.js.map +1 -1
  571. package/commands/EntityCreateCommand.d.ts +1 -1
  572. package/commands/EntityCreateCommand.js +13 -13
  573. package/commands/EntityCreateCommand.js.map +1 -1
  574. package/commands/InitCommand.d.ts +1 -1
  575. package/commands/InitCommand.js +311 -311
  576. package/commands/InitCommand.js.map +1 -1
  577. package/commands/MigrationCreateCommand.d.ts +1 -1
  578. package/commands/MigrationCreateCommand.js +27 -27
  579. package/commands/MigrationCreateCommand.js.map +1 -1
  580. package/commands/MigrationGenerateCommand.d.ts +1 -1
  581. package/commands/MigrationGenerateCommand.js +48 -48
  582. package/commands/MigrationGenerateCommand.js.map +1 -1
  583. package/commands/MigrationRevertCommand.js.map +1 -1
  584. package/commands/MigrationRunCommand.js.map +1 -1
  585. package/commands/MigrationShowCommand.js.map +1 -1
  586. package/commands/QueryCommand.d.ts +1 -1
  587. package/commands/QueryCommand.js +10 -7
  588. package/commands/QueryCommand.js.map +1 -1
  589. package/commands/SchemaDropCommand.d.ts +1 -1
  590. package/commands/SchemaDropCommand.js +3 -3
  591. package/commands/SchemaDropCommand.js.map +1 -1
  592. package/commands/SchemaLogCommand.d.ts +1 -1
  593. package/commands/SchemaLogCommand.js +12 -18
  594. package/commands/SchemaLogCommand.js.map +1 -1
  595. package/commands/SchemaSyncCommand.d.ts +1 -1
  596. package/commands/SchemaSyncCommand.js +3 -3
  597. package/commands/SchemaSyncCommand.js.map +1 -1
  598. package/commands/SubscriberCreateCommand.d.ts +1 -1
  599. package/commands/SubscriberCreateCommand.js +11 -11
  600. package/commands/SubscriberCreateCommand.js.map +1 -1
  601. package/commands/VersionCommand.js.map +1 -1
  602. package/common/DeepPartial.js.map +1 -1
  603. package/common/EntityTarget.js.map +1 -1
  604. package/common/MixedList.js.map +1 -1
  605. package/common/NonNever.js.map +1 -1
  606. package/common/ObjectLiteral.js.map +1 -1
  607. package/common/ObjectType.js.map +1 -1
  608. package/common/PickKeysByType.js.map +1 -1
  609. package/common/RelationType.js.map +1 -1
  610. package/connection/BaseConnectionOptions.js.map +1 -1
  611. package/connection/Connection.js.map +1 -1
  612. package/connection/ConnectionManager.js.map +1 -1
  613. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  614. package/connection/ConnectionOptions.js.map +1 -1
  615. package/connection/ConnectionOptionsReader.d.ts +4 -4
  616. package/connection/ConnectionOptionsReader.js.map +1 -1
  617. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  618. package/container.js +2 -3
  619. package/container.js.map +1 -1
  620. package/data-source/BaseDataSourceOptions.js.map +1 -1
  621. package/data-source/DataSource.d.ts +2 -0
  622. package/data-source/DataSource.js +2 -0
  623. package/data-source/DataSource.js.map +1 -1
  624. package/data-source/DataSourceOptions.js.map +1 -1
  625. package/data-source/index.js.map +1 -1
  626. package/decorator/Check.js +1 -2
  627. package/decorator/Check.js.map +1 -1
  628. package/decorator/EntityRepository.js +1 -2
  629. package/decorator/EntityRepository.js.map +1 -1
  630. package/decorator/Exclusion.js +1 -2
  631. package/decorator/Exclusion.js.map +1 -1
  632. package/decorator/Generated.js +1 -2
  633. package/decorator/Generated.js.map +1 -1
  634. package/decorator/Index.js +1 -2
  635. package/decorator/Index.js.map +1 -1
  636. package/decorator/Unique.js +1 -2
  637. package/decorator/Unique.js.map +1 -1
  638. package/decorator/columns/Column.js +1 -2
  639. package/decorator/columns/Column.js.map +1 -1
  640. package/decorator/columns/CreateDateColumn.js +1 -2
  641. package/decorator/columns/CreateDateColumn.js.map +1 -1
  642. package/decorator/columns/DeleteDateColumn.js +1 -2
  643. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  644. package/decorator/columns/ObjectIdColumn.js +1 -2
  645. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  646. package/decorator/columns/PrimaryColumn.js +1 -2
  647. package/decorator/columns/PrimaryColumn.js.map +1 -1
  648. package/decorator/columns/PrimaryGeneratedColumn.js +1 -2
  649. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  650. package/decorator/columns/UpdateDateColumn.js +1 -2
  651. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  652. package/decorator/columns/VersionColumn.js +1 -2
  653. package/decorator/columns/VersionColumn.js.map +1 -1
  654. package/decorator/columns/ViewColumn.js +1 -2
  655. package/decorator/columns/ViewColumn.js.map +1 -1
  656. package/decorator/columns/VirtualColumn.js +1 -2
  657. package/decorator/columns/VirtualColumn.js.map +1 -1
  658. package/decorator/entity/ChildEntity.js +1 -2
  659. package/decorator/entity/ChildEntity.js.map +1 -1
  660. package/decorator/entity/Entity.js +1 -2
  661. package/decorator/entity/Entity.js.map +1 -1
  662. package/decorator/entity/TableInheritance.js +1 -2
  663. package/decorator/entity/TableInheritance.js.map +1 -1
  664. package/decorator/entity-view/ViewEntity.js +1 -2
  665. package/decorator/entity-view/ViewEntity.js.map +1 -1
  666. package/decorator/listeners/AfterInsert.js +1 -2
  667. package/decorator/listeners/AfterInsert.js.map +1 -1
  668. package/decorator/listeners/AfterLoad.js +1 -2
  669. package/decorator/listeners/AfterLoad.js.map +1 -1
  670. package/decorator/listeners/AfterRecover.js +1 -2
  671. package/decorator/listeners/AfterRecover.js.map +1 -1
  672. package/decorator/listeners/AfterRemove.js +1 -2
  673. package/decorator/listeners/AfterRemove.js.map +1 -1
  674. package/decorator/listeners/AfterSoftRemove.js +1 -2
  675. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  676. package/decorator/listeners/AfterUpdate.js +1 -2
  677. package/decorator/listeners/AfterUpdate.js.map +1 -1
  678. package/decorator/listeners/BeforeInsert.js +1 -2
  679. package/decorator/listeners/BeforeInsert.js.map +1 -1
  680. package/decorator/listeners/BeforeRecover.js +1 -2
  681. package/decorator/listeners/BeforeRecover.js.map +1 -1
  682. package/decorator/listeners/BeforeRemove.js +1 -2
  683. package/decorator/listeners/BeforeRemove.js.map +1 -1
  684. package/decorator/listeners/BeforeSoftRemove.js +1 -2
  685. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  686. package/decorator/listeners/BeforeUpdate.js +1 -2
  687. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  688. package/decorator/listeners/EventSubscriber.js +1 -2
  689. package/decorator/listeners/EventSubscriber.js.map +1 -1
  690. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  691. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  692. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  693. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  694. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  695. package/decorator/options/ColumnOptions.js.map +1 -1
  696. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  697. package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  698. package/decorator/options/EntityOptions.js.map +1 -1
  699. package/decorator/options/IndexOptions.js.map +1 -1
  700. package/decorator/options/JoinColumnOptions.js.map +1 -1
  701. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  702. package/decorator/options/JoinTableOptions.js.map +1 -1
  703. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  704. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  705. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  706. package/decorator/options/RelationOptions.js.map +1 -1
  707. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  708. package/decorator/options/TransactionOptions.js.map +1 -1
  709. package/decorator/options/UniqueOptions.js.map +1 -1
  710. package/decorator/options/ValueTransformer.js.map +1 -1
  711. package/decorator/options/ViewColumnOptions.js.map +1 -1
  712. package/decorator/options/ViewEntityOptions.js.map +1 -1
  713. package/decorator/options/VirtualColumnOptions.js.map +1 -1
  714. package/decorator/relations/JoinColumn.js +1 -2
  715. package/decorator/relations/JoinColumn.js.map +1 -1
  716. package/decorator/relations/JoinTable.js +1 -2
  717. package/decorator/relations/JoinTable.js.map +1 -1
  718. package/decorator/relations/ManyToMany.js +1 -2
  719. package/decorator/relations/ManyToMany.js.map +1 -1
  720. package/decorator/relations/ManyToOne.js +1 -2
  721. package/decorator/relations/ManyToOne.js.map +1 -1
  722. package/decorator/relations/OneToMany.js +1 -2
  723. package/decorator/relations/OneToMany.js.map +1 -1
  724. package/decorator/relations/OneToOne.d.ts +4 -4
  725. package/decorator/relations/OneToOne.js +3 -4
  726. package/decorator/relations/OneToOne.js.map +1 -1
  727. package/decorator/relations/RelationCount.js +1 -2
  728. package/decorator/relations/RelationCount.js.map +1 -1
  729. package/decorator/relations/RelationId.js +1 -2
  730. package/decorator/relations/RelationId.js.map +1 -1
  731. package/decorator/tree/Tree.js +1 -2
  732. package/decorator/tree/Tree.js.map +1 -1
  733. package/decorator/tree/TreeChildren.js +1 -2
  734. package/decorator/tree/TreeChildren.js.map +1 -1
  735. package/decorator/tree/TreeLevelColumn.js +1 -2
  736. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  737. package/decorator/tree/TreeParent.js +1 -2
  738. package/decorator/tree/TreeParent.js.map +1 -1
  739. package/driver/Driver.js.map +1 -1
  740. package/driver/DriverFactory.js.map +1 -1
  741. package/driver/DriverUtils.js.map +1 -1
  742. package/driver/Query.js.map +1 -1
  743. package/driver/SqlInMemory.js.map +1 -1
  744. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  745. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +1 -1
  746. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  747. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  748. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  749. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +0 -1
  750. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  751. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  752. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  753. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  754. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  755. package/driver/better-sqlite3/BetterSqlite3Driver.js +2 -2
  756. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  757. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +4 -0
  758. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  759. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  760. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  761. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  762. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -2
  763. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  764. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +1 -1
  765. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  766. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  767. package/driver/cockroachdb/CockroachQueryRunner.d.ts +0 -1
  768. package/driver/cockroachdb/CockroachQueryRunner.js +5 -3
  769. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  770. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  771. package/driver/cordova/CordovaDriver.js.map +1 -1
  772. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  773. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  774. package/driver/expo/ExpoDriver.js.map +1 -1
  775. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  776. package/driver/mongodb/MongoConnectionOptions.d.ts +1 -2
  777. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  778. package/driver/mongodb/MongoDriver.js.map +1 -1
  779. package/driver/mongodb/MongoQueryRunner.d.ts +0 -1
  780. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  781. package/driver/mongodb/bson.typings.js.map +1 -1
  782. package/driver/mongodb/typings.d.ts +0 -8
  783. package/driver/mongodb/typings.js +0 -1
  784. package/driver/mongodb/typings.js.map +1 -1
  785. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +1 -1
  786. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  787. package/driver/mysql/MysqlConnectionOptions.d.ts +1 -1
  788. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  789. package/driver/mysql/MysqlDriver.js.map +1 -1
  790. package/driver/mysql/MysqlQueryRunner.d.ts +0 -1
  791. package/driver/mysql/MysqlQueryRunner.js +71 -71
  792. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  793. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  794. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  795. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  796. package/driver/oracle/OracleConnectionCredentialsOptions.d.ts +1 -1
  797. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  798. package/driver/oracle/OracleConnectionOptions.d.ts +1 -1
  799. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  800. package/driver/oracle/OracleDriver.js.map +1 -1
  801. package/driver/oracle/OracleQueryRunner.d.ts +0 -1
  802. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  803. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -2
  804. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  805. package/driver/postgres/PostgresConnectionOptions.d.ts +1 -1
  806. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  807. package/driver/postgres/PostgresDriver.js.map +1 -1
  808. package/driver/postgres/PostgresQueryRunner.d.ts +0 -1
  809. package/driver/postgres/PostgresQueryRunner.js +5 -1
  810. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  811. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  812. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  813. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  814. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  815. package/driver/sap/SapConnectionOptions.js.map +1 -1
  816. package/driver/sap/SapDriver.js.map +1 -1
  817. package/driver/sap/SapQueryRunner.d.ts +0 -1
  818. package/driver/sap/SapQueryRunner.js.map +1 -1
  819. package/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +1 -1
  820. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  821. package/driver/spanner/SpannerConnectionOptions.d.ts +1 -1
  822. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  823. package/driver/spanner/SpannerDriver.js.map +1 -1
  824. package/driver/spanner/SpannerQueryRunner.d.ts +0 -1
  825. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  826. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  827. package/driver/sqlite/SqliteDriver.js +2 -2
  828. package/driver/sqlite/SqliteDriver.js.map +1 -1
  829. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  830. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  831. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +0 -1
  832. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  833. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  834. package/driver/sqljs/SqljsDriver.js.map +1 -1
  835. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  836. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  837. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +1 -1
  838. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  839. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +1 -1
  840. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  841. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  842. package/driver/sqlserver/SqlServerQueryRunner.d.ts +0 -1
  843. package/driver/sqlserver/SqlServerQueryRunner.js +26 -26
  844. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  845. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  846. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  847. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  848. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  849. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  850. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  851. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  852. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  853. package/driver/types/ColumnTypes.js.map +1 -1
  854. package/driver/types/CteCapabilities.js.map +1 -1
  855. package/driver/types/DataTypeDefaults.js.map +1 -1
  856. package/driver/types/DatabaseType.js.map +1 -1
  857. package/driver/types/GeoJsonTypes.js.map +1 -1
  858. package/driver/types/IsolationLevel.js.map +1 -1
  859. package/driver/types/MappedColumnTypes.js.map +1 -1
  860. package/driver/types/MetadataTableType.js.map +1 -1
  861. package/driver/types/ReplicationMode.js.map +1 -1
  862. package/driver/types/UpsertType.js.map +1 -1
  863. package/entity-manager/EntityManager.d.ts +2 -0
  864. package/entity-manager/EntityManager.js +4 -2
  865. package/entity-manager/EntityManager.js.map +1 -1
  866. package/entity-manager/EntityManagerFactory.js.map +1 -1
  867. package/entity-manager/MongoEntityManager.js.map +1 -1
  868. package/entity-manager/SqljsEntityManager.js.map +1 -1
  869. package/entity-schema/EntitySchema.js.map +1 -1
  870. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  871. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  872. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  873. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  874. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  875. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  876. package/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  877. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  878. package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  879. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  880. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  881. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  882. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  883. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  884. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  885. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  886. package/error/CannotDetermineEntityError.js.map +1 -1
  887. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  888. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  889. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  890. package/error/CircularRelationsError.js.map +1 -1
  891. package/error/ColumnTypeUndefinedError.js.map +1 -1
  892. package/error/ConnectionIsNotSetError.js.map +1 -1
  893. package/error/ConnectionNotFoundError.js.map +1 -1
  894. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  895. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  896. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  897. package/error/DataTypeNotSupportedError.js.map +1 -1
  898. package/error/DriverOptionNotSetError.js.map +1 -1
  899. package/error/DriverPackageNotInstalledError.js.map +1 -1
  900. package/error/EntityMetadataNotFoundError.js.map +1 -1
  901. package/error/EntityNotFoundError.js.map +1 -1
  902. package/error/EntityPropertyNotFoundError.js.map +1 -1
  903. package/error/FindRelationsNotFoundError.js.map +1 -1
  904. package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  905. package/error/InitializedRelationError.js.map +1 -1
  906. package/error/InsertValuesMissingError.js.map +1 -1
  907. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  908. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  909. package/error/MetadataAlreadyExistsError.js.map +1 -1
  910. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  911. package/error/MissingDeleteDateColumnError.js.map +1 -1
  912. package/error/MissingDriverError.js.map +1 -1
  913. package/error/MissingJoinColumnError.js.map +1 -1
  914. package/error/MissingJoinTableError.js.map +1 -1
  915. package/error/MissingPrimaryColumnError.js.map +1 -1
  916. package/error/MustBeEntityError.js.map +1 -1
  917. package/error/NamingStrategyNotFoundError.js.map +1 -1
  918. package/error/NestedSetMultipleRootError.js.map +1 -1
  919. package/error/NoConnectionForRepositoryError.js.map +1 -1
  920. package/error/NoConnectionOptionError.js.map +1 -1
  921. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  922. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  923. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  924. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  925. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  926. package/error/PersistedEntityNotFoundError.js.map +1 -1
  927. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  928. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  929. package/error/QueryFailedError.js.map +1 -1
  930. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  931. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  932. package/error/RepositoryNotTreeError.js.map +1 -1
  933. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  934. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  935. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  936. package/error/TransactionAlreadyStartedError.js.map +1 -1
  937. package/error/TransactionNotStartedError.js.map +1 -1
  938. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  939. package/error/TypeORMError.js.map +1 -1
  940. package/error/UpdateValuesMissingError.js.map +1 -1
  941. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  942. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  943. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  944. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  945. package/error/index.js.map +1 -1
  946. package/find-options/EqualOperator.js.map +1 -1
  947. package/find-options/FindManyOptions.js.map +1 -1
  948. package/find-options/FindOneOptions.js.map +1 -1
  949. package/find-options/FindOperator.js.map +1 -1
  950. package/find-options/FindOperatorType.js.map +1 -1
  951. package/find-options/FindOptionsOrder.d.ts +0 -1
  952. package/find-options/FindOptionsOrder.js.map +1 -1
  953. package/find-options/FindOptionsRelations.d.ts +0 -1
  954. package/find-options/FindOptionsRelations.js.map +1 -1
  955. package/find-options/FindOptionsSelect.d.ts +0 -1
  956. package/find-options/FindOptionsSelect.js.map +1 -1
  957. package/find-options/FindOptionsUtils.js.map +1 -1
  958. package/find-options/FindOptionsWhere.d.ts +0 -1
  959. package/find-options/FindOptionsWhere.js.map +1 -1
  960. package/find-options/FindTreeOptions.js.map +1 -1
  961. package/find-options/JoinOptions.js.map +1 -1
  962. package/find-options/OrderByCondition.js.map +1 -1
  963. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  964. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  965. package/find-options/operator/And.js +1 -2
  966. package/find-options/operator/And.js.map +1 -1
  967. package/find-options/operator/Any.js +1 -2
  968. package/find-options/operator/Any.js.map +1 -1
  969. package/find-options/operator/ArrayContainedBy.js +1 -2
  970. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  971. package/find-options/operator/ArrayContains.js +1 -2
  972. package/find-options/operator/ArrayContains.js.map +1 -1
  973. package/find-options/operator/ArrayOverlap.js +1 -2
  974. package/find-options/operator/ArrayOverlap.js.map +1 -1
  975. package/find-options/operator/Between.js +1 -2
  976. package/find-options/operator/Between.js.map +1 -1
  977. package/find-options/operator/Equal.js +1 -2
  978. package/find-options/operator/Equal.js.map +1 -1
  979. package/find-options/operator/ILike.js +1 -2
  980. package/find-options/operator/ILike.js.map +1 -1
  981. package/find-options/operator/In.js +1 -2
  982. package/find-options/operator/In.js.map +1 -1
  983. package/find-options/operator/IsNull.js +1 -2
  984. package/find-options/operator/IsNull.js.map +1 -1
  985. package/find-options/operator/JsonContains.js +1 -2
  986. package/find-options/operator/JsonContains.js.map +1 -1
  987. package/find-options/operator/LessThan.js +1 -2
  988. package/find-options/operator/LessThan.js.map +1 -1
  989. package/find-options/operator/LessThanOrEqual.js +1 -2
  990. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  991. package/find-options/operator/Like.js +1 -2
  992. package/find-options/operator/Like.js.map +1 -1
  993. package/find-options/operator/MoreThan.js +1 -2
  994. package/find-options/operator/MoreThan.js.map +1 -1
  995. package/find-options/operator/MoreThanOrEqual.js +1 -2
  996. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  997. package/find-options/operator/Not.js +1 -2
  998. package/find-options/operator/Not.js.map +1 -1
  999. package/find-options/operator/Or.js +1 -2
  1000. package/find-options/operator/Or.js.map +1 -1
  1001. package/find-options/operator/Raw.js +1 -2
  1002. package/find-options/operator/Raw.js.map +1 -1
  1003. package/globals.js +14 -15
  1004. package/globals.js.map +1 -1
  1005. package/index.js.map +1 -1
  1006. package/logger/AbstractLogger.js.map +1 -1
  1007. package/logger/AdvancedConsoleLogger.js.map +1 -1
  1008. package/logger/DebugLogger.js.map +1 -1
  1009. package/logger/FileLogger.js.map +1 -1
  1010. package/logger/Logger.js.map +1 -1
  1011. package/logger/LoggerFactory.js.map +1 -1
  1012. package/logger/LoggerOptions.js.map +1 -1
  1013. package/logger/SimpleConsoleLogger.js.map +1 -1
  1014. package/metadata/CheckMetadata.js.map +1 -1
  1015. package/metadata/ColumnMetadata.js.map +1 -1
  1016. package/metadata/EmbeddedMetadata.js.map +1 -1
  1017. package/metadata/EntityListenerMetadata.js.map +1 -1
  1018. package/metadata/EntityMetadata.js.map +1 -1
  1019. package/metadata/ExclusionMetadata.js.map +1 -1
  1020. package/metadata/ForeignKeyMetadata.js.map +1 -1
  1021. package/metadata/IndexMetadata.js.map +1 -1
  1022. package/metadata/RelationCountMetadata.js.map +1 -1
  1023. package/metadata/RelationIdMetadata.js.map +1 -1
  1024. package/metadata/RelationMetadata.js.map +1 -1
  1025. package/metadata/UniqueMetadata.js.map +1 -1
  1026. package/metadata/types/ClosureTreeOptions.js.map +1 -1
  1027. package/metadata/types/DeferrableType.js.map +1 -1
  1028. package/metadata/types/EventListenerTypes.js.map +1 -1
  1029. package/metadata/types/OnDeleteType.js.map +1 -1
  1030. package/metadata/types/OnUpdateType.js.map +1 -1
  1031. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  1032. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  1033. package/metadata/types/RelationTypes.js.map +1 -1
  1034. package/metadata/types/TableTypes.js.map +1 -1
  1035. package/metadata/types/TreeTypes.js.map +1 -1
  1036. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  1037. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  1038. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  1039. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  1040. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  1041. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  1042. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  1043. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  1044. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  1045. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  1046. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  1047. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  1048. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  1049. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  1050. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  1051. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  1052. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  1053. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  1054. package/metadata-args/TableMetadataArgs.js.map +1 -1
  1055. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  1056. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  1057. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  1058. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  1059. package/metadata-args/types/ColumnMode.js.map +1 -1
  1060. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  1061. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  1062. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  1063. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  1064. package/metadata-builder/MetadataUtils.js.map +1 -1
  1065. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  1066. package/migration/Migration.js.map +1 -1
  1067. package/migration/MigrationExecutor.js.map +1 -1
  1068. package/migration/MigrationInterface.js.map +1 -1
  1069. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  1070. package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  1071. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  1072. package/package.json +260 -1
  1073. package/persistence/EntityPersistExecutor.js.map +1 -1
  1074. package/persistence/Subject.js.map +1 -1
  1075. package/persistence/SubjectChangeMap.js.map +1 -1
  1076. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  1077. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  1078. package/persistence/SubjectExecutor.js +3 -3
  1079. package/persistence/SubjectExecutor.js.map +1 -1
  1080. package/persistence/{SubjectTopoligicalSorter.d.ts → SubjectTopologicalSorter.d.ts} +1 -1
  1081. package/persistence/{SubjectTopoligicalSorter.js → SubjectTopologicalSorter.js} +4 -4
  1082. package/persistence/SubjectTopologicalSorter.js.map +1 -0
  1083. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  1084. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  1085. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1086. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1087. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1088. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1089. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1090. package/platform/PlatformTools.d.ts +2 -10
  1091. package/platform/PlatformTools.js +37 -45
  1092. package/platform/PlatformTools.js.map +1 -1
  1093. package/query-builder/Alias.js.map +1 -1
  1094. package/query-builder/Brackets.js.map +1 -1
  1095. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  1096. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  1097. package/query-builder/InsertQueryBuilder.js.map +1 -1
  1098. package/query-builder/JoinAttribute.js.map +1 -1
  1099. package/query-builder/JoinOptions.js.map +1 -1
  1100. package/query-builder/NotBrackets.js.map +1 -1
  1101. package/query-builder/QueryBuilder.js +2 -3
  1102. package/query-builder/QueryBuilder.js.map +1 -1
  1103. package/query-builder/QueryBuilderCte.js.map +1 -1
  1104. package/query-builder/QueryBuilderUtils.js.map +1 -1
  1105. package/query-builder/QueryExpressionMap.js.map +1 -1
  1106. package/query-builder/QueryPartialEntity.js.map +1 -1
  1107. package/query-builder/RelationIdLoader.js.map +1 -1
  1108. package/query-builder/RelationLoader.js.map +1 -1
  1109. package/query-builder/RelationQueryBuilder.js.map +1 -1
  1110. package/query-builder/RelationRemover.js.map +1 -1
  1111. package/query-builder/RelationUpdater.js.map +1 -1
  1112. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1113. package/query-builder/SelectQuery.js.map +1 -1
  1114. package/query-builder/SelectQueryBuilder.d.ts +0 -1
  1115. package/query-builder/SelectQueryBuilder.js.map +1 -1
  1116. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  1117. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1118. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  1119. package/query-builder/WhereClause.js.map +1 -1
  1120. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  1121. package/query-builder/index.js +1 -2
  1122. package/query-builder/index.js.map +1 -1
  1123. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1124. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  1125. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1126. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1127. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1128. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  1129. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1130. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1131. package/query-builder/result/DeleteResult.js.map +1 -1
  1132. package/query-builder/result/InsertResult.js.map +1 -1
  1133. package/query-builder/result/UpdateResult.js.map +1 -1
  1134. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1135. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1136. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1137. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  1138. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +95 -61
  1139. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1140. package/query-runner/BaseQueryRunner.js.map +1 -1
  1141. package/query-runner/QueryLock.js.map +1 -1
  1142. package/query-runner/QueryResult.js.map +1 -1
  1143. package/query-runner/QueryRunner.d.ts +0 -1
  1144. package/query-runner/QueryRunner.js.map +1 -1
  1145. package/repository/AbstractRepository.js.map +1 -1
  1146. package/repository/BaseEntity.js.map +1 -1
  1147. package/repository/EntityId.js.map +1 -1
  1148. package/repository/FindTreesOptions.js.map +1 -1
  1149. package/repository/MongoRepository.js.map +1 -1
  1150. package/repository/RemoveOptions.js.map +1 -1
  1151. package/repository/Repository.d.ts +2 -0
  1152. package/repository/Repository.js +2 -0
  1153. package/repository/Repository.js.map +1 -1
  1154. package/repository/SaveOptions.js.map +1 -1
  1155. package/repository/TreeRepository.js.map +1 -1
  1156. package/repository/UpsertOptions.js.map +1 -1
  1157. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1158. package/schema-builder/RdbmsSchemaBuilder.js +1 -1
  1159. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1160. package/schema-builder/SchemaBuilder.js.map +1 -1
  1161. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  1162. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  1163. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  1164. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1165. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  1166. package/schema-builder/options/TableOptions.js.map +1 -1
  1167. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  1168. package/schema-builder/options/ViewOptions.js.map +1 -1
  1169. package/schema-builder/table/Table.js.map +1 -1
  1170. package/schema-builder/table/TableCheck.js.map +1 -1
  1171. package/schema-builder/table/TableColumn.js.map +1 -1
  1172. package/schema-builder/table/TableExclusion.js.map +1 -1
  1173. package/schema-builder/table/TableForeignKey.js.map +1 -1
  1174. package/schema-builder/table/TableIndex.js.map +1 -1
  1175. package/schema-builder/table/TableUnique.js.map +1 -1
  1176. package/schema-builder/util/TableUtils.js.map +1 -1
  1177. package/schema-builder/util/ViewUtils.js.map +1 -1
  1178. package/schema-builder/view/View.js.map +1 -1
  1179. package/subscriber/Broadcaster.js.map +1 -1
  1180. package/subscriber/BroadcasterResult.js.map +1 -1
  1181. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1182. package/subscriber/event/InsertEvent.js.map +1 -1
  1183. package/subscriber/event/LoadEvent.js.map +1 -1
  1184. package/subscriber/event/QueryEvent.js.map +1 -1
  1185. package/subscriber/event/RecoverEvent.js.map +1 -1
  1186. package/subscriber/event/RemoveEvent.js.map +1 -1
  1187. package/subscriber/event/SoftRemoveEvent.js.map +1 -1
  1188. package/subscriber/event/TransactionCommitEvent.js.map +1 -1
  1189. package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  1190. package/subscriber/event/TransactionStartEvent.js.map +1 -1
  1191. package/subscriber/event/UpdateEvent.js.map +1 -1
  1192. package/typeorm-class-transformer-shim.js +271 -271
  1193. package/typeorm-model-shim.js +295 -295
  1194. package/util/ApplyValueTransformers.js.map +1 -1
  1195. package/util/DateUtils.js.map +1 -1
  1196. package/util/DepGraph.js.map +1 -1
  1197. package/util/DirectoryExportedClassesLoader.js +2 -3
  1198. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1199. package/util/ImportUtils.js +23 -36
  1200. package/util/ImportUtils.js.map +1 -1
  1201. package/util/InstanceChecker.js.map +1 -1
  1202. package/util/ObjectUtils.js.map +1 -1
  1203. package/util/OrmUtils.js.map +1 -1
  1204. package/util/PathUtils.js +3 -4
  1205. package/util/PathUtils.js.map +1 -1
  1206. package/util/RandomGenerator.js.map +1 -1
  1207. package/util/StringUtils.js +6 -7
  1208. package/util/StringUtils.js.map +1 -1
  1209. package/util/TreeRepositoryUtils.js.map +1 -1
  1210. package/util/VersionUtils.js.map +1 -1
  1211. package/util/escapeRegExp.js.map +1 -1
  1212. package/browser/persistence/SubjectTopoligicalSorter.js.map +0 -1
  1213. package/persistence/SubjectTopoligicalSorter.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/RelationIdMetadataArgs.ts"],"names":[],"mappings":"","file":"RelationIdMetadataArgs.js","sourcesContent":["import { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\n\n/**\n * Arguments for RelationIdMetadataArgs class.\n */\nexport interface RelationIdMetadataArgs {\n /**\n * Class to which this decorator is applied.\n */\n readonly target: Function | string\n\n /**\n * Class's property name to which this decorator is applied.\n */\n readonly propertyName: string\n\n /**\n * Target's relation which it should count.\n */\n readonly relation: string | ((object: any) => any)\n\n /**\n * Alias of the joined (destination) table.\n */\n readonly alias?: string\n\n /**\n * Extra condition applied to \"ON\" section of join.\n */\n readonly queryBuilderFactory?: (\n qb: SelectQueryBuilder<any>,\n ) => SelectQueryBuilder<any>\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/RelationIdMetadataArgs.ts"],"names":[],"mappings":"","file":"RelationIdMetadataArgs.js","sourcesContent":["import { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\r\n\r\n/**\r\n * Arguments for RelationIdMetadataArgs class.\r\n */\r\nexport interface RelationIdMetadataArgs {\r\n /**\r\n * Class to which this decorator is applied.\r\n */\r\n readonly target: Function | string\r\n\r\n /**\r\n * Class's property name to which this decorator is applied.\r\n */\r\n readonly propertyName: string\r\n\r\n /**\r\n * Target's relation which it should count.\r\n */\r\n readonly relation: string | ((object: any) => any)\r\n\r\n /**\r\n * Alias of the joined (destination) table.\r\n */\r\n readonly alias?: string\r\n\r\n /**\r\n * Extra condition applied to \"ON\" section of join.\r\n */\r\n readonly queryBuilderFactory?: (\r\n qb: SelectQueryBuilder<any>,\r\n ) => SelectQueryBuilder<any>\r\n}\r\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/RelationMetadataArgs.ts"],"names":[],"mappings":"","file":"RelationMetadataArgs.js","sourcesContent":["import { RelationType } from \"../metadata/types/RelationTypes\"\nimport { RelationOptions } from \"../decorator/options/RelationOptions\"\nimport { PropertyTypeFactory } from \"../metadata/types/PropertyTypeInFunction\"\nimport { RelationTypeInFunction } from \"../metadata/types/RelationTypeInFunction\"\n\n/**\n * Arguments for RelationMetadata class.\n */\nexport interface RelationMetadataArgs {\n /**\n * Class to which this relation is applied.\n */\n readonly target: Function | string\n\n /**\n * In the case if this relation is without a target, targetId must be specified.\n * This is used for entity schemas without classes.\n */\n // readonly targetId?: string;\n\n /**\n * Class's property name to which this relation is applied.\n */\n readonly propertyName: string\n\n /**\n * Indicates if this relation will be lazily loaded.\n */\n readonly isLazy: boolean\n\n /**\n * Original (reflected) class's property type.\n *\n * todo: this can be empty for relations from entity schemas.\n */\n // readonly propertyType?: any;\n\n /**\n * Type of relation. Can be one of the value of the RelationTypes class.\n */\n readonly relationType: RelationType\n\n /**\n * Type of the relation. This type is in function because of language specifics and problems with recursive\n * referenced classes.\n */\n readonly type: RelationTypeInFunction\n\n /**\n * Inverse side of the relation.\n */\n readonly inverseSideProperty?: PropertyTypeFactory<any>\n\n /**\n * Additional relation options.\n */\n readonly options: RelationOptions\n\n /**\n * Indicates if this is a parent (can be only many-to-one relation) relation in the tree tables.\n */\n readonly isTreeParent?: boolean\n\n /**\n * Indicates if this is a children (can be only one-to-many relation) relation in the tree tables.\n */\n readonly isTreeChildren?: boolean\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/RelationMetadataArgs.ts"],"names":[],"mappings":"","file":"RelationMetadataArgs.js","sourcesContent":["import { RelationType } from \"../metadata/types/RelationTypes\"\r\nimport { RelationOptions } from \"../decorator/options/RelationOptions\"\r\nimport { PropertyTypeFactory } from \"../metadata/types/PropertyTypeInFunction\"\r\nimport { RelationTypeInFunction } from \"../metadata/types/RelationTypeInFunction\"\r\n\r\n/**\r\n * Arguments for RelationMetadata class.\r\n */\r\nexport interface RelationMetadataArgs {\r\n /**\r\n * Class to which this relation is applied.\r\n */\r\n readonly target: Function | string\r\n\r\n /**\r\n * In the case if this relation is without a target, targetId must be specified.\r\n * This is used for entity schemas without classes.\r\n */\r\n // readonly targetId?: string;\r\n\r\n /**\r\n * Class's property name to which this relation is applied.\r\n */\r\n readonly propertyName: string\r\n\r\n /**\r\n * Indicates if this relation will be lazily loaded.\r\n */\r\n readonly isLazy: boolean\r\n\r\n /**\r\n * Original (reflected) class's property type.\r\n *\r\n * todo: this can be empty for relations from entity schemas.\r\n */\r\n // readonly propertyType?: any;\r\n\r\n /**\r\n * Type of relation. Can be one of the value of the RelationTypes class.\r\n */\r\n readonly relationType: RelationType\r\n\r\n /**\r\n * Type of the relation. This type is in function because of language specifics and problems with recursive\r\n * referenced classes.\r\n */\r\n readonly type: RelationTypeInFunction\r\n\r\n /**\r\n * Inverse side of the relation.\r\n */\r\n readonly inverseSideProperty?: PropertyTypeFactory<any>\r\n\r\n /**\r\n * Additional relation options.\r\n */\r\n readonly options: RelationOptions\r\n\r\n /**\r\n * Indicates if this is a parent (can be only many-to-one relation) relation in the tree tables.\r\n */\r\n readonly isTreeParent?: boolean\r\n\r\n /**\r\n * Indicates if this is a children (can be only one-to-many relation) relation in the tree tables.\r\n */\r\n readonly isTreeChildren?: boolean\r\n}\r\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/TableMetadataArgs.ts"],"names":[],"mappings":"","file":"TableMetadataArgs.js","sourcesContent":["import { DataSource, SelectQueryBuilder } from \"..\"\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\nimport { TableType } from \"../metadata/types/TableTypes\"\n\n/**\n * Arguments for TableMetadata class, helps to construct an TableMetadata object.\n */\nexport interface TableMetadataArgs {\n /**\n * Class to which table is applied.\n * Function target is a table defined in the class.\n * String target is a table defined in a json schema.\n */\n target: Function | string\n\n /**\n * Table's name. If name is not set then table's name will be generated from target's name.\n */\n name?: string\n\n /**\n * Table type. Tables can be abstract, closure, junction, embedded, etc.\n */\n type: TableType\n\n /**\n * Specifies a default order by used for queries from this table when no explicit order by is specified.\n */\n orderBy?: OrderByCondition | ((object: any) => OrderByCondition | any)\n\n /**\n * Table's database engine type (like \"InnoDB\", \"MyISAM\", etc).\n */\n engine?: string\n\n /**\n * Database name. Used in MySql and Sql Server.\n */\n database?: string\n\n /**\n * Schema name. Used in Postgres and Sql Server.\n */\n schema?: string\n\n /**\n * Indicates if schema synchronization is enabled or disabled for this entity.\n * If it will be set to false then schema sync will and migrations ignore this entity.\n * By default schema synchronization is enabled for all entities.\n */\n synchronize?: boolean\n\n /**\n * View expression.\n */\n expression?: string | ((connection: DataSource) => SelectQueryBuilder<any>)\n\n /**\n * View dependencies.\n */\n dependsOn?: Set<Function | string>\n\n /**\n * Indicates if view is materialized\n */\n materialized?: boolean\n\n /**\n * If set to 'true' this option disables Sqlite's default behaviour of secretly creating\n * an integer primary key column named 'rowid' on table creation.\n */\n withoutRowid?: boolean\n\n /**\n * Table comment. Not supported by all database types.\n */\n comment?: string\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/TableMetadataArgs.ts"],"names":[],"mappings":"","file":"TableMetadataArgs.js","sourcesContent":["import { DataSource, SelectQueryBuilder } from \"..\"\r\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\r\nimport { TableType } from \"../metadata/types/TableTypes\"\r\n\r\n/**\r\n * Arguments for TableMetadata class, helps to construct an TableMetadata object.\r\n */\r\nexport interface TableMetadataArgs {\r\n /**\r\n * Class to which table is applied.\r\n * Function target is a table defined in the class.\r\n * String target is a table defined in a json schema.\r\n */\r\n target: Function | string\r\n\r\n /**\r\n * Table's name. If name is not set then table's name will be generated from target's name.\r\n */\r\n name?: string\r\n\r\n /**\r\n * Table type. Tables can be abstract, closure, junction, embedded, etc.\r\n */\r\n type: TableType\r\n\r\n /**\r\n * Specifies a default order by used for queries from this table when no explicit order by is specified.\r\n */\r\n orderBy?: OrderByCondition | ((object: any) => OrderByCondition | any)\r\n\r\n /**\r\n * Table's database engine type (like \"InnoDB\", \"MyISAM\", etc).\r\n */\r\n engine?: string\r\n\r\n /**\r\n * Database name. Used in MySql and Sql Server.\r\n */\r\n database?: string\r\n\r\n /**\r\n * Schema name. Used in Postgres and Sql Server.\r\n */\r\n schema?: string\r\n\r\n /**\r\n * Indicates if schema synchronization is enabled or disabled for this entity.\r\n * If it will be set to false then schema sync will and migrations ignore this entity.\r\n * By default schema synchronization is enabled for all entities.\r\n */\r\n synchronize?: boolean\r\n\r\n /**\r\n * View expression.\r\n */\r\n expression?: string | ((connection: DataSource) => SelectQueryBuilder<any>)\r\n\r\n /**\r\n * View dependencies.\r\n */\r\n dependsOn?: Set<Function | string>\r\n\r\n /**\r\n * Indicates if view is materialized\r\n */\r\n materialized?: boolean\r\n\r\n /**\r\n * If set to 'true' this option disables Sqlite's default behaviour of secretly creating\r\n * an integer primary key column named 'rowid' on table creation.\r\n */\r\n withoutRowid?: boolean\r\n\r\n /**\r\n * Table comment. Not supported by all database types.\r\n */\r\n comment?: string\r\n}\r\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/TransactionEntityMetadataArgs.ts"],"names":[],"mappings":"","file":"TransactionEntityMetadataArgs.js","sourcesContent":["/**\n * Used to inject transaction's entity managed into the method wrapped with @Transaction decorator.\n */\nexport interface TransactionEntityMetadataArgs {\n /**\n * Target class on which decorator is used.\n */\n readonly target: Function\n\n /**\n * Method on which decorator is used.\n */\n readonly methodName: string\n\n /**\n * Index of the parameter on which decorator is used.\n */\n readonly index: number\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/TransactionEntityMetadataArgs.ts"],"names":[],"mappings":"","file":"TransactionEntityMetadataArgs.js","sourcesContent":["/**\r\n * Used to inject transaction's entity managed into the method wrapped with @Transaction decorator.\r\n */\r\nexport interface TransactionEntityMetadataArgs {\r\n /**\r\n * Target class on which decorator is used.\r\n */\r\n readonly target: Function\r\n\r\n /**\r\n * Method on which decorator is used.\r\n */\r\n readonly methodName: string\r\n\r\n /**\r\n * Index of the parameter on which decorator is used.\r\n */\r\n readonly index: number\r\n}\r\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/TransactionRepositoryMetadataArgs.ts"],"names":[],"mappings":"","file":"TransactionRepositoryMetadataArgs.js","sourcesContent":["/**\n * Used to inject transaction's repository into the method wrapped with @Transaction decorator.\n */\nexport interface TransactionRepositoryMetadataArgs {\n /**\n * Target class on which decorator is used.\n */\n readonly target: Function\n\n /**\n * Method on which decorator is used.\n */\n readonly methodName: string\n\n /**\n * Index of the parameter on which decorator is used.\n */\n readonly index: number\n\n /**\n * Type of the repository class (Repository, TreeRepository or MongoRepository) or custom repository class.\n */\n readonly repositoryType: Function\n\n /**\n * Argument of generic Repository<T> class if it's not custom repository class.\n */\n readonly entityType?: Function\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/TransactionRepositoryMetadataArgs.ts"],"names":[],"mappings":"","file":"TransactionRepositoryMetadataArgs.js","sourcesContent":["/**\r\n * Used to inject transaction's repository into the method wrapped with @Transaction decorator.\r\n */\r\nexport interface TransactionRepositoryMetadataArgs {\r\n /**\r\n * Target class on which decorator is used.\r\n */\r\n readonly target: Function\r\n\r\n /**\r\n * Method on which decorator is used.\r\n */\r\n readonly methodName: string\r\n\r\n /**\r\n * Index of the parameter on which decorator is used.\r\n */\r\n readonly index: number\r\n\r\n /**\r\n * Type of the repository class (Repository, TreeRepository or MongoRepository) or custom repository class.\r\n */\r\n readonly repositoryType: Function\r\n\r\n /**\r\n * Argument of generic Repository<T> class if it's not custom repository class.\r\n */\r\n readonly entityType?: Function\r\n}\r\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/TreeMetadataArgs.ts"],"names":[],"mappings":"","file":"TreeMetadataArgs.js","sourcesContent":["import { TreeType } from \"../metadata/types/TreeTypes\"\nimport { ClosureTreeOptions } from \"../metadata/types/ClosureTreeOptions\"\n\n/**\n * Stores metadata collected for Tree entities.\n */\nexport interface TreeMetadataArgs {\n /**\n * Entity to which tree is applied.\n */\n target: Function | string\n\n /**\n * Tree type.\n */\n type: TreeType\n\n /**\n * Tree options\n */\n options?: ClosureTreeOptions\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/TreeMetadataArgs.ts"],"names":[],"mappings":"","file":"TreeMetadataArgs.js","sourcesContent":["import { TreeType } from \"../metadata/types/TreeTypes\"\r\nimport { ClosureTreeOptions } from \"../metadata/types/ClosureTreeOptions\"\r\n\r\n/**\r\n * Stores metadata collected for Tree entities.\r\n */\r\nexport interface TreeMetadataArgs {\r\n /**\r\n * Entity to which tree is applied.\r\n */\r\n target: Function | string\r\n\r\n /**\r\n * Tree type.\r\n */\r\n type: TreeType\r\n\r\n /**\r\n * Tree options\r\n */\r\n options?: ClosureTreeOptions\r\n}\r\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/UniqueMetadataArgs.ts"],"names":[],"mappings":"","file":"UniqueMetadataArgs.js","sourcesContent":["import { DeferrableType } from \"../metadata/types/DeferrableType\"\n\n/**\n * Arguments for UniqueMetadata class.\n */\nexport interface UniqueMetadataArgs {\n /**\n * Class to which index is applied.\n */\n target: Function | string\n\n /**\n * Unique constraint name.\n */\n name?: string\n\n /**\n * Columns combination to be unique.\n */\n columns?: ((object?: any) => any[] | { [key: string]: number }) | string[]\n\n /**\n * Indicate if unique constraints can be deferred.\n */\n deferrable?: DeferrableType\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/UniqueMetadataArgs.ts"],"names":[],"mappings":"","file":"UniqueMetadataArgs.js","sourcesContent":["import { DeferrableType } from \"../metadata/types/DeferrableType\"\r\n\r\n/**\r\n * Arguments for UniqueMetadata class.\r\n */\r\nexport interface UniqueMetadataArgs {\r\n /**\r\n * Class to which index is applied.\r\n */\r\n target: Function | string\r\n\r\n /**\r\n * Unique constraint name.\r\n */\r\n name?: string\r\n\r\n /**\r\n * Columns combination to be unique.\r\n */\r\n columns?: ((object?: any) => any[] | { [key: string]: number }) | string[]\r\n\r\n /**\r\n * Indicate if unique constraints can be deferred.\r\n */\r\n deferrable?: DeferrableType\r\n}\r\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-args/types/ColumnMode.ts"],"names":[],"mappings":"","file":"ColumnMode.js","sourcesContent":["/**\n * Kinda type of the column. Not a type in the database, but locally used type to determine what kind of column\n * we are working with.\n * For example, \"primary\" means that it will be a primary column, or \"createDate\" means that it will create a create\n * date column.\n */\nexport type ColumnMode =\n | \"regular\"\n | \"virtual\"\n | \"virtual-property\"\n | \"createDate\"\n | \"updateDate\"\n | \"deleteDate\"\n | \"version\"\n | \"treeChildrenCount\"\n | \"treeLevel\"\n | \"objectId\"\n | \"array\"\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/metadata-args/types/ColumnMode.ts"],"names":[],"mappings":"","file":"ColumnMode.js","sourcesContent":["/**\r\n * Kinda type of the column. Not a type in the database, but locally used type to determine what kind of column\r\n * we are working with.\r\n * For example, \"primary\" means that it will be a primary column, or \"createDate\" means that it will create a create\r\n * date column.\r\n */\r\nexport type ColumnMode =\r\n | \"regular\"\r\n | \"virtual\"\r\n | \"virtual-property\"\r\n | \"createDate\"\r\n | \"updateDate\"\r\n | \"deleteDate\"\r\n | \"version\"\r\n | \"treeChildrenCount\"\r\n | \"treeLevel\"\r\n | \"objectId\"\r\n | \"array\"\r\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-builder/ClosureJunctionEntityMetadataBuilder.ts"],"names":[],"mappings":"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","file":"ClosureJunctionEntityMetadataBuilder.js","sourcesContent":["import { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport { ForeignKeyMetadata } from \"../metadata/ForeignKeyMetadata\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { IndexMetadata } from \"../metadata/IndexMetadata\"\n\n/**\n * Creates EntityMetadata for junction tables of the closure entities.\n * Closure junction tables are tables generated by closure entities.\n */\nexport class ClosureJunctionEntityMetadataBuilder {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private connection: DataSource) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Builds EntityMetadata for the closure junction of the given closure entity.\n */\n build(parentClosureEntityMetadata: EntityMetadata) {\n // create entity metadata itself\n const entityMetadata = new EntityMetadata({\n parentClosureEntityMetadata: parentClosureEntityMetadata,\n connection: this.connection,\n args: {\n target: \"\",\n name:\n parentClosureEntityMetadata.treeOptions &&\n parentClosureEntityMetadata.treeOptions.closureTableName\n ? parentClosureEntityMetadata.treeOptions\n .closureTableName\n : parentClosureEntityMetadata.tableNameWithoutPrefix,\n type: \"closure-junction\",\n },\n })\n entityMetadata.build()\n\n // create ancestor and descendant columns for new closure junction table\n parentClosureEntityMetadata.primaryColumns.forEach((primaryColumn) => {\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n connection: this.connection,\n entityMetadata: entityMetadata,\n closureType: \"ancestor\",\n referencedColumn: primaryColumn,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName:\n parentClosureEntityMetadata.treeOptions &&\n parentClosureEntityMetadata.treeOptions\n .ancestorColumnName\n ? parentClosureEntityMetadata.treeOptions.ancestorColumnName(\n primaryColumn,\n )\n : primaryColumn.propertyName + \"_ancestor\",\n options: {\n primary: true,\n length: primaryColumn.length,\n type: primaryColumn.type,\n },\n },\n }),\n )\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n connection: this.connection,\n entityMetadata: entityMetadata,\n closureType: \"descendant\",\n referencedColumn: primaryColumn,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName:\n parentClosureEntityMetadata.treeOptions &&\n parentClosureEntityMetadata.treeOptions\n .descendantColumnName\n ? parentClosureEntityMetadata.treeOptions.descendantColumnName(\n primaryColumn,\n )\n : primaryColumn.propertyName + \"_descendant\",\n options: {\n primary: true,\n length: primaryColumn.length,\n type: primaryColumn.type,\n },\n },\n }),\n )\n })\n\n entityMetadata.ownIndices = [\n new IndexMetadata({\n entityMetadata: entityMetadata,\n columns: [entityMetadata.ownColumns[0]],\n args: {\n target: entityMetadata.target,\n synchronize: true,\n },\n }),\n new IndexMetadata({\n entityMetadata: entityMetadata,\n columns: [entityMetadata.ownColumns[1]],\n args: {\n target: entityMetadata.target,\n synchronize: true,\n },\n }),\n ]\n\n // if tree level column was defined by a closure entity then add it to the junction columns as well\n if (parentClosureEntityMetadata.treeLevelColumn) {\n entityMetadata.ownColumns.push(\n new ColumnMetadata({\n connection: this.connection,\n entityMetadata: entityMetadata,\n args: {\n target: \"\",\n mode: \"virtual\",\n propertyName: \"level\",\n options: {\n type: this.connection.driver.mappedDataTypes\n .treeLevel,\n },\n },\n }),\n )\n }\n\n // create junction table foreign keys\n // Note: CASCADE is not applied to mssql because it does not support multi cascade paths\n entityMetadata.foreignKeys = [\n new ForeignKeyMetadata({\n entityMetadata: entityMetadata,\n referencedEntityMetadata: parentClosureEntityMetadata,\n columns: [entityMetadata.ownColumns[0]],\n referencedColumns: parentClosureEntityMetadata.primaryColumns,\n onDelete:\n this.connection.driver.options.type === \"mssql\"\n ? \"NO ACTION\"\n : \"CASCADE\",\n }),\n new ForeignKeyMetadata({\n entityMetadata: entityMetadata,\n referencedEntityMetadata: parentClosureEntityMetadata,\n columns: [entityMetadata.ownColumns[1]],\n referencedColumns: parentClosureEntityMetadata.primaryColumns,\n onDelete:\n this.connection.driver.options.type === \"mssql\"\n ? \"NO ACTION\"\n : \"CASCADE\",\n }),\n ]\n\n return entityMetadata\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-builder/ClosureJunctionEntityMetadataBuilder.ts"],"names":[],"mappings":"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","file":"ClosureJunctionEntityMetadataBuilder.js","sourcesContent":["import { EntityMetadata } from \"../metadata/EntityMetadata\"\r\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\r\nimport { ForeignKeyMetadata } from \"../metadata/ForeignKeyMetadata\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { IndexMetadata } from \"../metadata/IndexMetadata\"\r\n\r\n/**\r\n * Creates EntityMetadata for junction tables of the closure entities.\r\n * Closure junction tables are tables generated by closure entities.\r\n */\r\nexport class ClosureJunctionEntityMetadataBuilder {\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(private connection: DataSource) {}\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Builds EntityMetadata for the closure junction of the given closure entity.\r\n */\r\n build(parentClosureEntityMetadata: EntityMetadata) {\r\n // create entity metadata itself\r\n const entityMetadata = new EntityMetadata({\r\n parentClosureEntityMetadata: parentClosureEntityMetadata,\r\n connection: this.connection,\r\n args: {\r\n target: \"\",\r\n name:\r\n parentClosureEntityMetadata.treeOptions &&\r\n parentClosureEntityMetadata.treeOptions.closureTableName\r\n ? parentClosureEntityMetadata.treeOptions\r\n .closureTableName\r\n : parentClosureEntityMetadata.tableNameWithoutPrefix,\r\n type: \"closure-junction\",\r\n },\r\n })\r\n entityMetadata.build()\r\n\r\n // create ancestor and descendant columns for new closure junction table\r\n parentClosureEntityMetadata.primaryColumns.forEach((primaryColumn) => {\r\n entityMetadata.ownColumns.push(\r\n new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata: entityMetadata,\r\n closureType: \"ancestor\",\r\n referencedColumn: primaryColumn,\r\n args: {\r\n target: \"\",\r\n mode: \"virtual\",\r\n propertyName:\r\n parentClosureEntityMetadata.treeOptions &&\r\n parentClosureEntityMetadata.treeOptions\r\n .ancestorColumnName\r\n ? parentClosureEntityMetadata.treeOptions.ancestorColumnName(\r\n primaryColumn,\r\n )\r\n : primaryColumn.propertyName + \"_ancestor\",\r\n options: {\r\n primary: true,\r\n length: primaryColumn.length,\r\n type: primaryColumn.type,\r\n },\r\n },\r\n }),\r\n )\r\n entityMetadata.ownColumns.push(\r\n new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata: entityMetadata,\r\n closureType: \"descendant\",\r\n referencedColumn: primaryColumn,\r\n args: {\r\n target: \"\",\r\n mode: \"virtual\",\r\n propertyName:\r\n parentClosureEntityMetadata.treeOptions &&\r\n parentClosureEntityMetadata.treeOptions\r\n .descendantColumnName\r\n ? parentClosureEntityMetadata.treeOptions.descendantColumnName(\r\n primaryColumn,\r\n )\r\n : primaryColumn.propertyName + \"_descendant\",\r\n options: {\r\n primary: true,\r\n length: primaryColumn.length,\r\n type: primaryColumn.type,\r\n },\r\n },\r\n }),\r\n )\r\n })\r\n\r\n entityMetadata.ownIndices = [\r\n new IndexMetadata({\r\n entityMetadata: entityMetadata,\r\n columns: [entityMetadata.ownColumns[0]],\r\n args: {\r\n target: entityMetadata.target,\r\n synchronize: true,\r\n },\r\n }),\r\n new IndexMetadata({\r\n entityMetadata: entityMetadata,\r\n columns: [entityMetadata.ownColumns[1]],\r\n args: {\r\n target: entityMetadata.target,\r\n synchronize: true,\r\n },\r\n }),\r\n ]\r\n\r\n // if tree level column was defined by a closure entity then add it to the junction columns as well\r\n if (parentClosureEntityMetadata.treeLevelColumn) {\r\n entityMetadata.ownColumns.push(\r\n new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata: entityMetadata,\r\n args: {\r\n target: \"\",\r\n mode: \"virtual\",\r\n propertyName: \"level\",\r\n options: {\r\n type: this.connection.driver.mappedDataTypes\r\n .treeLevel,\r\n },\r\n },\r\n }),\r\n )\r\n }\r\n\r\n // create junction table foreign keys\r\n // Note: CASCADE is not applied to mssql because it does not support multi cascade paths\r\n entityMetadata.foreignKeys = [\r\n new ForeignKeyMetadata({\r\n entityMetadata: entityMetadata,\r\n referencedEntityMetadata: parentClosureEntityMetadata,\r\n columns: [entityMetadata.ownColumns[0]],\r\n referencedColumns: parentClosureEntityMetadata.primaryColumns,\r\n onDelete:\r\n this.connection.driver.options.type === \"mssql\"\r\n ? \"NO ACTION\"\r\n : \"CASCADE\",\r\n }),\r\n new ForeignKeyMetadata({\r\n entityMetadata: entityMetadata,\r\n referencedEntityMetadata: parentClosureEntityMetadata,\r\n columns: [entityMetadata.ownColumns[1]],\r\n referencedColumns: parentClosureEntityMetadata.primaryColumns,\r\n onDelete:\r\n this.connection.driver.options.type === \"mssql\"\r\n ? \"NO ACTION\"\r\n : \"CASCADE\",\r\n }),\r\n ]\r\n\r\n return entityMetadata\r\n }\r\n}\r\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/metadata-builder/EntityMetadataBuilder.ts"],"names":[],"mappings":"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","file":"EntityMetadataBuilder.js","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 { MetadataArgsStorage } from \"../metadata-args/MetadataArgsStorage\"\nimport { EmbeddedMetadataArgs } from \"../metadata-args/EmbeddedMetadataArgs\"\nimport { RelationIdMetadata } from \"../metadata/RelationIdMetadata\"\nimport { RelationCountMetadata } from \"../metadata/RelationCountMetadata\"\nimport { EventListenerTypes } from \"../metadata/types/EventListenerTypes\"\nimport { MetadataUtils } from \"./MetadataUtils\"\nimport { TableMetadataArgs } from \"../metadata-args/TableMetadataArgs\"\nimport { JunctionEntityMetadataBuilder } from \"./JunctionEntityMetadataBuilder\"\nimport { ClosureJunctionEntityMetadataBuilder } from \"./ClosureJunctionEntityMetadataBuilder\"\nimport { RelationJoinColumnBuilder } from \"./RelationJoinColumnBuilder\"\nimport { 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\"\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 connection: DataSource,\n private metadataArgsStorage: MetadataArgsStorage,\n ) {\n this.junctionEntityMetadataBuilder = new JunctionEntityMetadataBuilder(\n connection,\n )\n this.closureJunctionEntityMetadataBuilder =\n new ClosureJunctionEntityMetadataBuilder(connection)\n this.relationJoinColumnBuilder = new RelationJoinColumnBuilder(\n connection,\n )\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Builds a complete entity metadatas for the given entity classes.\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.connection.driver,\n ) ||\n this.connection.driver.options.type ===\n \"aurora-mysql\" ||\n this.connection.driver.options.type ===\n \"mssql\" ||\n this.connection.driver.options.type === \"sap\" ||\n this.connection.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.connection.driver.options.type ===\n \"mssql\"\n ) {\n index.where = index.columns\n .map((column) => {\n return `${this.connection.driver.escape(\n column.databaseName,\n )} IS NOT NULL`\n })\n .join(\" AND \")\n }\n\n if (\n this.connection.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.connection.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.connection.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.connection.namingStrategy),\n )\n })\n\n // build all check constraints\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.checks.forEach((check) =>\n check.build(this.connection.namingStrategy),\n )\n })\n\n // build all exclusion constraints\n entityMetadatas.forEach((entityMetadata) => {\n entityMetadata.exclusions.forEach((exclusion) =>\n exclusion.build(this.connection.namingStrategy),\n )\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.connection.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.connection)\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 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 connection: this.connection,\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 connection: this.connection,\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 connection: this.connection,\n entityMetadata: 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.connection\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 connection: this.connection,\n entityMetadata: 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 connection: this.connection,\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 connection: this.connection,\n entityMetadata: 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.relationCounts = this.metadataArgsStorage\n .filterRelationCounts(entityMetadata.inheritanceTree)\n .map((args) => {\n // for single table children we reuse relation counts created for their parents\n if (entityMetadata.tableType === \"entity-child\")\n return entityMetadata.parentEntityMetadata.relationCounts.find(\n (relationCount) =>\n relationCount.propertyName === args.propertyName,\n )!\n\n return new RelationCountMetadata({ 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.connection.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.connection.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.connection.driver) ||\n this.connection.driver.options.type === \"aurora-mysql\" ||\n this.connection.driver.options.type === \"sap\" ||\n this.connection.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 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 connection: this.connection,\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.relationCounts = this.metadataArgsStorage\n .filterRelationCounts(targets)\n .map((args) => {\n return new RelationCountMetadata({ entityMetadata, args })\n })\n embeddedMetadata.embeddeds = this.createEmbeddedsRecursively(\n entityMetadata,\n this.metadataArgsStorage.filterEmbeddeds(targets),\n )\n embeddedMetadata.embeddeds.forEach(\n (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 protected computeEntityMetadataStep2(entityMetadata: EntityMetadata) {\n entityMetadata.embeddeds.forEach((embedded) =>\n embedded.build(this.connection),\n )\n entityMetadata.embeddeds.forEach((embedded) => {\n embedded.columnsFromTree.forEach((column) =>\n column.build(this.connection),\n )\n embedded.relationsFromTree.forEach((relation) => relation.build())\n })\n entityMetadata.ownColumns.forEach((column) =>\n column.build(this.connection),\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.connection.namingStrategy),\n )\n entityMetadata.propertiesMap = entityMetadata.createPropertiesMap()\n entityMetadata.relationIds.forEach((relationId) => relationId.build())\n entityMetadata.relationCounts.forEach((relationCount) =>\n relationCount.build(),\n )\n entityMetadata.embeddeds.forEach((embedded) => {\n embedded.relationIdsFromTree.forEach((relationId) =>\n relationId.build(),\n )\n embedded.relationCountsFromTree.forEach((relationCount) =>\n relationCount.build(),\n )\n })\n }\n\n /**\n * Computes entity metadata's relations inverse side properties.\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 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"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/metadata-builder/EntityMetadataBuilder.ts"],"names":[],"mappings":"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","file":"EntityMetadataBuilder.js","sourcesContent":["import { EntityMetadata } from \"../metadata/EntityMetadata\"\r\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\r\nimport { IndexMetadata } from \"../metadata/IndexMetadata\"\r\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\r\nimport { EmbeddedMetadata } from \"../metadata/EmbeddedMetadata\"\r\nimport { MetadataArgsStorage } from \"../metadata-args/MetadataArgsStorage\"\r\nimport { EmbeddedMetadataArgs } from \"../metadata-args/EmbeddedMetadataArgs\"\r\nimport { RelationIdMetadata } from \"../metadata/RelationIdMetadata\"\r\nimport { RelationCountMetadata } from \"../metadata/RelationCountMetadata\"\r\nimport { EventListenerTypes } from \"../metadata/types/EventListenerTypes\"\r\nimport { MetadataUtils } from \"./MetadataUtils\"\r\nimport { TableMetadataArgs } from \"../metadata-args/TableMetadataArgs\"\r\nimport { JunctionEntityMetadataBuilder } from \"./JunctionEntityMetadataBuilder\"\r\nimport { ClosureJunctionEntityMetadataBuilder } from \"./ClosureJunctionEntityMetadataBuilder\"\r\nimport { RelationJoinColumnBuilder } from \"./RelationJoinColumnBuilder\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { EntityListenerMetadata } from \"../metadata/EntityListenerMetadata\"\r\nimport { UniqueMetadata } from \"../metadata/UniqueMetadata\"\r\nimport { CheckMetadata } from \"../metadata/CheckMetadata\"\r\nimport { ExclusionMetadata } from \"../metadata/ExclusionMetadata\"\r\nimport { TypeORMError } from \"../error\"\r\nimport { DriverUtils } from \"../driver/DriverUtils\"\r\n\r\n/**\r\n * Builds EntityMetadata objects and all its sub-metadatas.\r\n */\r\nexport class EntityMetadataBuilder {\r\n // -------------------------------------------------------------------------\r\n // Protected Properties\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Used to build entity metadatas of the junction entities.\r\n */\r\n protected junctionEntityMetadataBuilder: JunctionEntityMetadataBuilder\r\n\r\n /**\r\n * Used to build entity metadatas of the closure junction entities.\r\n */\r\n protected closureJunctionEntityMetadataBuilder: ClosureJunctionEntityMetadataBuilder\r\n\r\n /**\r\n * Used to build join columns of the relations.\r\n */\r\n protected relationJoinColumnBuilder: RelationJoinColumnBuilder\r\n\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(\r\n private connection: DataSource,\r\n private metadataArgsStorage: MetadataArgsStorage,\r\n ) {\r\n this.junctionEntityMetadataBuilder = new JunctionEntityMetadataBuilder(\r\n connection,\r\n )\r\n this.closureJunctionEntityMetadataBuilder =\r\n new ClosureJunctionEntityMetadataBuilder(connection)\r\n this.relationJoinColumnBuilder = new RelationJoinColumnBuilder(\r\n connection,\r\n )\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Builds a complete entity metadatas for the given entity classes.\r\n */\r\n build(entityClasses?: Function[]): EntityMetadata[] {\r\n // if entity classes to filter entities by are given then do filtering, otherwise use all\r\n const allTables = entityClasses\r\n ? this.metadataArgsStorage.filterTables(entityClasses)\r\n : this.metadataArgsStorage.tables\r\n\r\n // filter out table metadata args for those we really create entity metadatas and tables in the db\r\n const realTables = allTables.filter(\r\n (table) =>\r\n table.type === \"regular\" ||\r\n table.type === \"closure\" ||\r\n table.type === \"entity-child\" ||\r\n table.type === \"view\",\r\n )\r\n\r\n // create entity metadatas for a user defined entities (marked with @Entity decorator or loaded from entity schemas)\r\n const entityMetadatas = realTables.map((tableArgs) =>\r\n this.createEntityMetadata(tableArgs),\r\n )\r\n\r\n // compute parent entity metadatas for table inheritance\r\n entityMetadatas.forEach((entityMetadata) =>\r\n this.computeParentEntityMetadata(entityMetadatas, entityMetadata),\r\n )\r\n\r\n // after all metadatas created we set child entity metadatas for table inheritance\r\n entityMetadatas.forEach((metadata) => {\r\n metadata.childEntityMetadatas = entityMetadatas.filter(\r\n (childMetadata) => {\r\n return (\r\n typeof metadata.target === \"function\" &&\r\n typeof childMetadata.target === \"function\" &&\r\n MetadataUtils.isInherited(\r\n childMetadata.target,\r\n metadata.target,\r\n )\r\n )\r\n },\r\n )\r\n })\r\n\r\n // build entity metadata (step0), first for non-single-table-inherited entity metadatas (dependant)\r\n entityMetadatas\r\n .filter(\r\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\r\n )\r\n .forEach((entityMetadata) => entityMetadata.build())\r\n\r\n // build entity metadata (step0), now for single-table-inherited entity metadatas (dependant)\r\n entityMetadatas\r\n .filter(\r\n (entityMetadata) => entityMetadata.tableType === \"entity-child\",\r\n )\r\n .forEach((entityMetadata) => entityMetadata.build())\r\n\r\n // compute entity metadata columns, relations, etc. first for the regular, non-single-table-inherited entity metadatas\r\n entityMetadatas\r\n .filter(\r\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\r\n )\r\n .forEach((entityMetadata) =>\r\n this.computeEntityMetadataStep1(\r\n entityMetadatas,\r\n entityMetadata,\r\n ),\r\n )\r\n\r\n // then do it for single table inheritance children (since they are depend on their parents to be built)\r\n entityMetadatas\r\n .filter(\r\n (entityMetadata) => entityMetadata.tableType === \"entity-child\",\r\n )\r\n .forEach((entityMetadata) =>\r\n this.computeEntityMetadataStep1(\r\n entityMetadatas,\r\n entityMetadata,\r\n ),\r\n )\r\n\r\n // calculate entity metadata computed properties and all its sub-metadatas\r\n entityMetadatas.forEach((entityMetadata) =>\r\n this.computeEntityMetadataStep2(entityMetadata),\r\n )\r\n\r\n // calculate entity metadata's inverse properties\r\n entityMetadatas.forEach((entityMetadata) =>\r\n this.computeInverseProperties(entityMetadata, entityMetadatas),\r\n )\r\n\r\n // go through all entity metadatas and create foreign keys / junction entity metadatas for their relations\r\n entityMetadatas\r\n .filter(\r\n (entityMetadata) => entityMetadata.tableType !== \"entity-child\",\r\n )\r\n .forEach((entityMetadata) => {\r\n // create entity's relations join columns (for many-to-one and one-to-one owner)\r\n entityMetadata.relations\r\n .filter(\r\n (relation) =>\r\n relation.isOneToOne || relation.isManyToOne,\r\n )\r\n .forEach((relation) => {\r\n const joinColumns =\r\n this.metadataArgsStorage.filterJoinColumns(\r\n relation.target,\r\n relation.propertyName,\r\n )\r\n const { foreignKey, columns, uniqueConstraint } =\r\n this.relationJoinColumnBuilder.build(\r\n joinColumns,\r\n relation,\r\n ) // create a foreign key based on its metadata args\r\n if (foreignKey) {\r\n relation.registerForeignKeys(foreignKey) // push it to the relation and thus register there a join column\r\n entityMetadata.foreignKeys.push(foreignKey)\r\n }\r\n if (columns) {\r\n relation.registerJoinColumns(columns)\r\n }\r\n if (uniqueConstraint) {\r\n if (\r\n DriverUtils.isMySQLFamily(\r\n this.connection.driver,\r\n ) ||\r\n this.connection.driver.options.type ===\r\n \"aurora-mysql\" ||\r\n this.connection.driver.options.type ===\r\n \"mssql\" ||\r\n this.connection.driver.options.type === \"sap\" ||\r\n this.connection.driver.options.type ===\r\n \"spanner\"\r\n ) {\r\n const index = new IndexMetadata({\r\n entityMetadata:\r\n uniqueConstraint.entityMetadata,\r\n columns: uniqueConstraint.columns,\r\n args: {\r\n target: uniqueConstraint.target!,\r\n name: uniqueConstraint.name,\r\n unique: true,\r\n synchronize: true,\r\n },\r\n })\r\n\r\n if (\r\n this.connection.driver.options.type ===\r\n \"mssql\"\r\n ) {\r\n index.where = index.columns\r\n .map((column) => {\r\n return `${this.connection.driver.escape(\r\n column.databaseName,\r\n )} IS NOT NULL`\r\n })\r\n .join(\" AND \")\r\n }\r\n\r\n if (\r\n this.connection.driver.options.type ===\r\n \"spanner\"\r\n ) {\r\n index.isNullFiltered = true\r\n }\r\n\r\n if (relation.embeddedMetadata) {\r\n relation.embeddedMetadata.indices.push(\r\n index,\r\n )\r\n } else {\r\n relation.entityMetadata.ownIndices.push(\r\n index,\r\n )\r\n }\r\n this.computeEntityMetadataStep2(entityMetadata)\r\n } else {\r\n if (relation.embeddedMetadata) {\r\n relation.embeddedMetadata.uniques.push(\r\n uniqueConstraint,\r\n )\r\n } else {\r\n relation.entityMetadata.ownUniques.push(\r\n uniqueConstraint,\r\n )\r\n }\r\n this.computeEntityMetadataStep2(entityMetadata)\r\n }\r\n }\r\n\r\n if (\r\n foreignKey &&\r\n this.connection.driver.options.type ===\r\n \"cockroachdb\"\r\n ) {\r\n const index = new IndexMetadata({\r\n entityMetadata: relation.entityMetadata,\r\n columns: foreignKey.columns,\r\n args: {\r\n target: relation.entityMetadata.target!,\r\n synchronize: true,\r\n },\r\n })\r\n if (relation.embeddedMetadata) {\r\n relation.embeddedMetadata.indices.push(index)\r\n } else {\r\n relation.entityMetadata.ownIndices.push(index)\r\n }\r\n this.computeEntityMetadataStep2(entityMetadata)\r\n }\r\n })\r\n\r\n // create junction entity metadatas for entity many-to-many relations\r\n entityMetadata.relations\r\n .filter((relation) => relation.isManyToMany)\r\n .forEach((relation) => {\r\n const joinTable =\r\n this.metadataArgsStorage.findJoinTable(\r\n relation.target,\r\n relation.propertyName,\r\n )!\r\n if (!joinTable) return // no join table set - no need to do anything (it means this is many-to-many inverse side)\r\n\r\n // here we create a junction entity metadata for a new junction table of many-to-many relation\r\n const junctionEntityMetadata =\r\n this.junctionEntityMetadataBuilder.build(\r\n relation,\r\n joinTable,\r\n )\r\n relation.registerForeignKeys(\r\n ...junctionEntityMetadata.foreignKeys,\r\n )\r\n relation.registerJoinColumns(\r\n junctionEntityMetadata.ownIndices[0].columns,\r\n junctionEntityMetadata.ownIndices[1].columns,\r\n )\r\n relation.registerJunctionEntityMetadata(\r\n junctionEntityMetadata,\r\n )\r\n\r\n // compute new entity metadata properties and push it to entity metadatas pool\r\n this.computeEntityMetadataStep2(junctionEntityMetadata)\r\n this.computeInverseProperties(\r\n junctionEntityMetadata,\r\n entityMetadatas,\r\n )\r\n entityMetadatas.push(junctionEntityMetadata)\r\n })\r\n })\r\n\r\n // update entity metadata depend properties\r\n entityMetadatas.forEach((entityMetadata) => {\r\n entityMetadata.relationsWithJoinColumns =\r\n entityMetadata.relations.filter(\r\n (relation) => relation.isWithJoinColumn,\r\n )\r\n entityMetadata.hasNonNullableRelations =\r\n entityMetadata.relationsWithJoinColumns.some(\r\n (relation) => !relation.isNullable || relation.isPrimary,\r\n )\r\n })\r\n\r\n // generate closure junction tables for all closure tables\r\n entityMetadatas\r\n .filter((metadata) => metadata.treeType === \"closure-table\")\r\n .forEach((entityMetadata) => {\r\n const closureJunctionEntityMetadata =\r\n this.closureJunctionEntityMetadataBuilder.build(\r\n entityMetadata,\r\n )\r\n entityMetadata.closureJunctionTable =\r\n closureJunctionEntityMetadata\r\n this.computeEntityMetadataStep2(closureJunctionEntityMetadata)\r\n this.computeInverseProperties(\r\n closureJunctionEntityMetadata,\r\n entityMetadatas,\r\n )\r\n entityMetadatas.push(closureJunctionEntityMetadata)\r\n })\r\n\r\n // generate keys for tables with single-table inheritance\r\n entityMetadatas\r\n .filter(\r\n (metadata) =>\r\n metadata.inheritancePattern === \"STI\" &&\r\n metadata.discriminatorColumn,\r\n )\r\n .forEach((entityMetadata) =>\r\n this.createKeysForTableInheritance(entityMetadata),\r\n )\r\n\r\n // build all indices (need to do it after relations and their join columns are built)\r\n entityMetadatas.forEach((entityMetadata) => {\r\n entityMetadata.indices.forEach((index) =>\r\n index.build(this.connection.namingStrategy),\r\n )\r\n })\r\n\r\n // build all unique constraints (need to do it after relations and their join columns are built)\r\n entityMetadatas.forEach((entityMetadata) => {\r\n entityMetadata.uniques.forEach((unique) =>\r\n unique.build(this.connection.namingStrategy),\r\n )\r\n })\r\n\r\n // build all check constraints\r\n entityMetadatas.forEach((entityMetadata) => {\r\n entityMetadata.checks.forEach((check) =>\r\n check.build(this.connection.namingStrategy),\r\n )\r\n })\r\n\r\n // build all exclusion constraints\r\n entityMetadatas.forEach((entityMetadata) => {\r\n entityMetadata.exclusions.forEach((exclusion) =>\r\n exclusion.build(this.connection.namingStrategy),\r\n )\r\n })\r\n\r\n // add lazy initializer for entity relations\r\n entityMetadatas\r\n .filter((metadata) => typeof metadata.target === \"function\")\r\n .forEach((entityMetadata) => {\r\n entityMetadata.relations\r\n .filter((relation) => relation.isLazy)\r\n .forEach((relation) => {\r\n this.connection.relationLoader.enableLazyLoad(\r\n relation,\r\n (entityMetadata.target as Function).prototype,\r\n )\r\n })\r\n })\r\n\r\n entityMetadatas.forEach((entityMetadata) => {\r\n entityMetadata.columns.forEach((column) => {\r\n // const target = column.embeddedMetadata ? column.embeddedMetadata.type : column.target;\r\n const generated = this.metadataArgsStorage.findGenerated(\r\n column.target,\r\n column.propertyName,\r\n )\r\n if (generated) {\r\n column.isGenerated = true\r\n column.generationStrategy = generated.strategy\r\n if (generated.strategy === \"uuid\") {\r\n column.type = \"uuid\"\r\n } else if (generated.strategy === \"rowid\") {\r\n column.type = \"int\"\r\n } else {\r\n column.type = column.type || Number\r\n }\r\n column.build(this.connection)\r\n this.computeEntityMetadataStep2(entityMetadata)\r\n }\r\n })\r\n })\r\n\r\n return entityMetadatas\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Creates entity metadata from the given table args.\r\n * Creates column, relation, etc. metadatas for everything this entity metadata owns.\r\n */\r\n protected createEntityMetadata(\r\n tableArgs: TableMetadataArgs,\r\n ): EntityMetadata {\r\n // we take all \"inheritance tree\" from a target entity to collect all stored metadata args\r\n // (by decorators or inside entity schemas). For example for target Post < ContentModel < Unit\r\n // it will be an array of [Post, ContentModel, Unit] and we can then get all metadata args of those classes\r\n const inheritanceTree: any[] =\r\n typeof tableArgs.target === \"function\"\r\n ? MetadataUtils.getInheritanceTree(tableArgs.target)\r\n : [tableArgs.target] // todo: implement later here inheritance for string-targets\r\n\r\n const tableInheritance = this.metadataArgsStorage.findInheritanceType(\r\n tableArgs.target,\r\n )\r\n const tableTree = this.metadataArgsStorage.findTree(tableArgs.target)\r\n\r\n // if single table inheritance used, we need to copy all children columns in to parent table\r\n let singleTableChildrenTargets: any[]\r\n if (\r\n (tableInheritance && tableInheritance.pattern === \"STI\") ||\r\n tableArgs.type === \"entity-child\"\r\n ) {\r\n singleTableChildrenTargets = this.metadataArgsStorage\r\n .filterSingleTableChildren(tableArgs.target)\r\n .map((args) => args.target)\r\n .filter((target) => typeof target === \"function\")\r\n\r\n inheritanceTree.push(...singleTableChildrenTargets)\r\n }\r\n\r\n return new EntityMetadata({\r\n connection: this.connection,\r\n args: tableArgs,\r\n inheritanceTree: inheritanceTree,\r\n tableTree: tableTree,\r\n inheritancePattern: tableInheritance\r\n ? tableInheritance.pattern\r\n : undefined,\r\n })\r\n }\r\n\r\n protected computeParentEntityMetadata(\r\n allEntityMetadatas: EntityMetadata[],\r\n entityMetadata: EntityMetadata,\r\n ) {\r\n // after all metadatas created we set parent entity metadata for table inheritance\r\n if (entityMetadata.tableType === \"entity-child\") {\r\n entityMetadata.parentEntityMetadata = allEntityMetadatas.find(\r\n (allEntityMetadata) => {\r\n return (\r\n allEntityMetadata.inheritanceTree.indexOf(\r\n entityMetadata.target as Function,\r\n ) !== -1 &&\r\n allEntityMetadata.inheritancePattern === \"STI\"\r\n )\r\n },\r\n )!\r\n }\r\n }\r\n\r\n protected computeEntityMetadataStep1(\r\n allEntityMetadatas: EntityMetadata[],\r\n entityMetadata: EntityMetadata,\r\n ) {\r\n const entityInheritance = this.metadataArgsStorage.findInheritanceType(\r\n entityMetadata.target,\r\n )\r\n\r\n const discriminatorValue =\r\n this.metadataArgsStorage.findDiscriminatorValue(\r\n entityMetadata.target,\r\n )\r\n\r\n if (typeof discriminatorValue !== \"undefined\") {\r\n entityMetadata.discriminatorValue = discriminatorValue.value\r\n } else {\r\n entityMetadata.discriminatorValue = (\r\n entityMetadata.target as any\r\n ).name\r\n }\r\n\r\n // if single table inheritance is used, we need to mark all embedded columns as nullable\r\n entityMetadata.embeddeds = this.createEmbeddedsRecursively(\r\n entityMetadata,\r\n this.metadataArgsStorage.filterEmbeddeds(\r\n entityMetadata.inheritanceTree,\r\n ),\r\n ).map((embedded: EmbeddedMetadata): EmbeddedMetadata => {\r\n if (entityMetadata.inheritancePattern === \"STI\") {\r\n embedded.columns = embedded.columns.map(\r\n (column: ColumnMetadata): ColumnMetadata => {\r\n column.isNullable = true\r\n return column\r\n },\r\n )\r\n }\r\n return embedded\r\n })\r\n\r\n entityMetadata.ownColumns = this.metadataArgsStorage\r\n .filterColumns(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n // for single table children we reuse columns created for their parents\r\n if (entityMetadata.tableType === \"entity-child\")\r\n return entityMetadata.parentEntityMetadata.ownColumns.find(\r\n (column) => column.propertyName === args.propertyName,\r\n )!\r\n\r\n // for multiple table inheritance we can override default column values\r\n if (\r\n entityMetadata.tableType === \"regular\" &&\r\n args.target !== entityMetadata.target\r\n ) {\r\n const childArgs = this.metadataArgsStorage.columns.find(\r\n (c) =>\r\n c.propertyName === args.propertyName &&\r\n c.target === entityMetadata.target,\r\n )\r\n if (childArgs && childArgs.options.default) {\r\n args.options.default = childArgs.options.default\r\n }\r\n }\r\n\r\n const column = new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata,\r\n args,\r\n })\r\n\r\n // if single table inheritance used, we need to mark all inherit table columns as nullable\r\n const columnInSingleTableInheritedChild =\r\n allEntityMetadatas.find(\r\n (otherEntityMetadata) =>\r\n otherEntityMetadata.tableType === \"entity-child\" &&\r\n otherEntityMetadata.target === args.target,\r\n )\r\n if (columnInSingleTableInheritedChild) column.isNullable = true\r\n return column\r\n })\r\n\r\n // for table inheritance we need to add a discriminator column\r\n //\r\n if (entityInheritance && entityInheritance.column) {\r\n const discriminatorColumnName =\r\n entityInheritance.column && entityInheritance.column.name\r\n ? entityInheritance.column.name\r\n : \"type\"\r\n let discriminatorColumn = entityMetadata.ownColumns.find(\r\n (column) => column.propertyName === discriminatorColumnName,\r\n )\r\n if (!discriminatorColumn) {\r\n discriminatorColumn = new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata: entityMetadata,\r\n args: {\r\n target: entityMetadata.target,\r\n mode: \"virtual\",\r\n propertyName: discriminatorColumnName,\r\n options: entityInheritance.column || {\r\n name: discriminatorColumnName,\r\n type: \"varchar\",\r\n nullable: false,\r\n },\r\n },\r\n })\r\n discriminatorColumn.isVirtual = true\r\n discriminatorColumn.isDiscriminator = true\r\n entityMetadata.ownColumns.push(discriminatorColumn)\r\n } else {\r\n discriminatorColumn.isDiscriminator = true\r\n }\r\n }\r\n\r\n // add discriminator column to the child entity metadatas\r\n // discriminator column will not be there automatically since we are creating it in the code above\r\n if (entityMetadata.tableType === \"entity-child\") {\r\n const discriminatorColumn =\r\n entityMetadata.parentEntityMetadata.ownColumns.find(\r\n (column) => column.isDiscriminator,\r\n )\r\n if (\r\n discriminatorColumn &&\r\n !entityMetadata.ownColumns.find(\r\n (column) => column === discriminatorColumn,\r\n )\r\n ) {\r\n entityMetadata.ownColumns.push(discriminatorColumn)\r\n }\r\n // also copy the inheritance pattern & tree metadata\r\n // this comes in handy when inheritance and trees are used together\r\n entityMetadata.inheritancePattern =\r\n entityMetadata.parentEntityMetadata.inheritancePattern\r\n if (\r\n !entityMetadata.treeType &&\r\n !!entityMetadata.parentEntityMetadata.treeType\r\n ) {\r\n entityMetadata.treeType =\r\n entityMetadata.parentEntityMetadata.treeType\r\n entityMetadata.treeOptions =\r\n entityMetadata.parentEntityMetadata.treeOptions\r\n entityMetadata.treeParentRelation =\r\n entityMetadata.parentEntityMetadata.treeParentRelation\r\n entityMetadata.treeLevelColumn =\r\n entityMetadata.parentEntityMetadata.treeLevelColumn\r\n }\r\n }\r\n\r\n const { namingStrategy } = this.connection\r\n\r\n // check if tree is used then we need to add extra columns for specific tree types\r\n if (entityMetadata.treeType === \"materialized-path\") {\r\n entityMetadata.ownColumns.push(\r\n new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata: entityMetadata,\r\n materializedPath: true,\r\n args: {\r\n target: entityMetadata.target,\r\n mode: \"virtual\",\r\n propertyName: \"mpath\",\r\n options: /*tree.column || */ {\r\n name: namingStrategy.materializedPathColumnName,\r\n type: String,\r\n nullable: true,\r\n default: \"\",\r\n },\r\n },\r\n }),\r\n )\r\n } else if (entityMetadata.treeType === \"nested-set\") {\r\n const { left, right } = namingStrategy.nestedSetColumnNames\r\n entityMetadata.ownColumns.push(\r\n new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata: entityMetadata,\r\n nestedSetLeft: true,\r\n args: {\r\n target: entityMetadata.target,\r\n mode: \"virtual\",\r\n propertyName: left,\r\n options: /*tree.column || */ {\r\n name: left,\r\n type: Number,\r\n nullable: false,\r\n default: 1,\r\n },\r\n },\r\n }),\r\n )\r\n entityMetadata.ownColumns.push(\r\n new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata: entityMetadata,\r\n nestedSetRight: true,\r\n args: {\r\n target: entityMetadata.target,\r\n mode: \"virtual\",\r\n propertyName: right,\r\n options: /*tree.column || */ {\r\n name: right,\r\n type: Number,\r\n nullable: false,\r\n default: 2,\r\n },\r\n },\r\n }),\r\n )\r\n }\r\n\r\n entityMetadata.ownRelations = this.metadataArgsStorage\r\n .filterRelations(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n // for single table children we reuse relations created for their parents\r\n if (entityMetadata.tableType === \"entity-child\") {\r\n const parentRelation =\r\n entityMetadata.parentEntityMetadata.ownRelations.find(\r\n (relation) =>\r\n relation.propertyName === args.propertyName,\r\n )!\r\n const type =\r\n typeof args.type === \"function\"\r\n ? (args.type as () => any)()\r\n : args.type\r\n if (parentRelation.type !== type) {\r\n const clone = Object.create(parentRelation)\r\n clone.type = type\r\n return clone\r\n }\r\n\r\n return parentRelation\r\n }\r\n\r\n return new RelationMetadata({ entityMetadata, args })\r\n })\r\n entityMetadata.relationIds = this.metadataArgsStorage\r\n .filterRelationIds(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n // for single table children we reuse relation ids created for their parents\r\n if (entityMetadata.tableType === \"entity-child\")\r\n return entityMetadata.parentEntityMetadata.relationIds.find(\r\n (relationId) =>\r\n relationId.propertyName === args.propertyName,\r\n )!\r\n\r\n return new RelationIdMetadata({ entityMetadata, args })\r\n })\r\n entityMetadata.relationCounts = this.metadataArgsStorage\r\n .filterRelationCounts(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n // for single table children we reuse relation counts created for their parents\r\n if (entityMetadata.tableType === \"entity-child\")\r\n return entityMetadata.parentEntityMetadata.relationCounts.find(\r\n (relationCount) =>\r\n relationCount.propertyName === args.propertyName,\r\n )!\r\n\r\n return new RelationCountMetadata({ entityMetadata, args })\r\n })\r\n entityMetadata.ownListeners = this.metadataArgsStorage\r\n .filterListeners(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n return new EntityListenerMetadata({\r\n entityMetadata: entityMetadata,\r\n args: args,\r\n })\r\n })\r\n entityMetadata.checks = this.metadataArgsStorage\r\n .filterChecks(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n return new CheckMetadata({ entityMetadata, args })\r\n })\r\n\r\n // Only PostgreSQL supports exclusion constraints.\r\n if (this.connection.driver.options.type === \"postgres\") {\r\n entityMetadata.exclusions = this.metadataArgsStorage\r\n .filterExclusions(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n return new ExclusionMetadata({ entityMetadata, args })\r\n })\r\n }\r\n\r\n if (this.connection.driver.options.type === \"cockroachdb\") {\r\n entityMetadata.ownIndices = this.metadataArgsStorage\r\n .filterIndices(entityMetadata.inheritanceTree)\r\n .filter((args) => !args.unique)\r\n .map((args) => {\r\n return new IndexMetadata({ entityMetadata, args })\r\n })\r\n\r\n const uniques = this.metadataArgsStorage\r\n .filterIndices(entityMetadata.inheritanceTree)\r\n .filter((args) => args.unique)\r\n .map((args) => {\r\n return new UniqueMetadata({\r\n entityMetadata: entityMetadata,\r\n args: {\r\n target: args.target,\r\n name: args.name,\r\n columns: args.columns,\r\n },\r\n })\r\n })\r\n entityMetadata.ownUniques.push(...uniques)\r\n } else {\r\n entityMetadata.ownIndices = this.metadataArgsStorage\r\n .filterIndices(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n return new IndexMetadata({ entityMetadata, args })\r\n })\r\n }\r\n\r\n // This drivers stores unique constraints as unique indices.\r\n if (\r\n DriverUtils.isMySQLFamily(this.connection.driver) ||\r\n this.connection.driver.options.type === \"aurora-mysql\" ||\r\n this.connection.driver.options.type === \"sap\" ||\r\n this.connection.driver.options.type === \"spanner\"\r\n ) {\r\n const indices = this.metadataArgsStorage\r\n .filterUniques(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n return new IndexMetadata({\r\n entityMetadata: entityMetadata,\r\n args: {\r\n target: args.target,\r\n name: args.name,\r\n columns: args.columns,\r\n unique: true,\r\n synchronize: true,\r\n },\r\n })\r\n })\r\n entityMetadata.ownIndices.push(...indices)\r\n } else {\r\n const uniques = this.metadataArgsStorage\r\n .filterUniques(entityMetadata.inheritanceTree)\r\n .map((args) => {\r\n return new UniqueMetadata({ entityMetadata, args })\r\n })\r\n entityMetadata.ownUniques.push(...uniques)\r\n }\r\n }\r\n\r\n /**\r\n * Creates from the given embedded metadata args real embedded metadatas with its columns and relations,\r\n * and does the same for all its sub-embeddeds (goes recursively).\r\n */\r\n protected createEmbeddedsRecursively(\r\n entityMetadata: EntityMetadata,\r\n embeddedArgs: EmbeddedMetadataArgs[],\r\n ): EmbeddedMetadata[] {\r\n return embeddedArgs.map((embeddedArgs) => {\r\n const embeddedMetadata = new EmbeddedMetadata({\r\n entityMetadata: entityMetadata,\r\n args: embeddedArgs,\r\n })\r\n const targets: any[] =\r\n typeof embeddedMetadata.type === \"function\"\r\n ? MetadataUtils.getInheritanceTree(embeddedMetadata.type)\r\n : [embeddedMetadata.type] // todo: implement later here inheritance for string-targets\r\n\r\n embeddedMetadata.columns = this.metadataArgsStorage\r\n .filterColumns(targets)\r\n .map((args) => {\r\n return new ColumnMetadata({\r\n connection: this.connection,\r\n entityMetadata,\r\n embeddedMetadata,\r\n args,\r\n })\r\n })\r\n embeddedMetadata.relations = this.metadataArgsStorage\r\n .filterRelations(targets)\r\n .map((args) => {\r\n return new RelationMetadata({\r\n entityMetadata,\r\n embeddedMetadata,\r\n args,\r\n })\r\n })\r\n embeddedMetadata.listeners = this.metadataArgsStorage\r\n .filterListeners(targets)\r\n .map((args) => {\r\n return new EntityListenerMetadata({\r\n entityMetadata,\r\n embeddedMetadata,\r\n args,\r\n })\r\n })\r\n embeddedMetadata.indices = this.metadataArgsStorage\r\n .filterIndices(targets)\r\n .map((args) => {\r\n return new IndexMetadata({\r\n entityMetadata,\r\n embeddedMetadata,\r\n args,\r\n })\r\n })\r\n embeddedMetadata.uniques = this.metadataArgsStorage\r\n .filterUniques(targets)\r\n .map((args) => {\r\n return new UniqueMetadata({\r\n entityMetadata,\r\n embeddedMetadata,\r\n args,\r\n })\r\n })\r\n embeddedMetadata.relationIds = this.metadataArgsStorage\r\n .filterRelationIds(targets)\r\n .map((args) => {\r\n return new RelationIdMetadata({ entityMetadata, args })\r\n })\r\n embeddedMetadata.relationCounts = this.metadataArgsStorage\r\n .filterRelationCounts(targets)\r\n .map((args) => {\r\n return new RelationCountMetadata({ entityMetadata, args })\r\n })\r\n embeddedMetadata.embeddeds = this.createEmbeddedsRecursively(\r\n entityMetadata,\r\n this.metadataArgsStorage.filterEmbeddeds(targets),\r\n )\r\n embeddedMetadata.embeddeds.forEach(\r\n (subEmbedded) =>\r\n (subEmbedded.parentEmbeddedMetadata = embeddedMetadata),\r\n )\r\n entityMetadata.allEmbeddeds.push(embeddedMetadata)\r\n return embeddedMetadata\r\n })\r\n }\r\n\r\n /**\r\n * Computes all entity metadata's computed properties, and all its sub-metadatas (relations, columns, embeds, etc).\r\n */\r\n protected computeEntityMetadataStep2(entityMetadata: EntityMetadata) {\r\n entityMetadata.embeddeds.forEach((embedded) =>\r\n embedded.build(this.connection),\r\n )\r\n entityMetadata.embeddeds.forEach((embedded) => {\r\n embedded.columnsFromTree.forEach((column) =>\r\n column.build(this.connection),\r\n )\r\n embedded.relationsFromTree.forEach((relation) => relation.build())\r\n })\r\n entityMetadata.ownColumns.forEach((column) =>\r\n column.build(this.connection),\r\n )\r\n entityMetadata.ownRelations.forEach((relation) => relation.build())\r\n entityMetadata.relations = entityMetadata.embeddeds.reduce(\r\n (relations, embedded) =>\r\n relations.concat(embedded.relationsFromTree),\r\n entityMetadata.ownRelations,\r\n )\r\n entityMetadata.eagerRelations = entityMetadata.relations.filter(\r\n (relation) => relation.isEager,\r\n )\r\n entityMetadata.lazyRelations = entityMetadata.relations.filter(\r\n (relation) => relation.isLazy,\r\n )\r\n entityMetadata.oneToOneRelations = entityMetadata.relations.filter(\r\n (relation) => relation.isOneToOne,\r\n )\r\n entityMetadata.oneToManyRelations = entityMetadata.relations.filter(\r\n (relation) => relation.isOneToMany,\r\n )\r\n entityMetadata.manyToOneRelations = entityMetadata.relations.filter(\r\n (relation) => relation.isManyToOne,\r\n )\r\n entityMetadata.manyToManyRelations = entityMetadata.relations.filter(\r\n (relation) => relation.isManyToMany,\r\n )\r\n entityMetadata.ownerOneToOneRelations = entityMetadata.relations.filter(\r\n (relation) => relation.isOneToOneOwner,\r\n )\r\n entityMetadata.ownerManyToManyRelations =\r\n entityMetadata.relations.filter(\r\n (relation) => relation.isManyToManyOwner,\r\n )\r\n entityMetadata.treeParentRelation = entityMetadata.relations.find(\r\n (relation) => relation.isTreeParent,\r\n )\r\n entityMetadata.treeChildrenRelation = entityMetadata.relations.find(\r\n (relation) => relation.isTreeChildren,\r\n )\r\n entityMetadata.columns = entityMetadata.embeddeds.reduce(\r\n (columns, embedded) => columns.concat(embedded.columnsFromTree),\r\n entityMetadata.ownColumns,\r\n )\r\n entityMetadata.listeners = entityMetadata.embeddeds.reduce(\r\n (listeners, embedded) =>\r\n listeners.concat(embedded.listenersFromTree),\r\n entityMetadata.ownListeners,\r\n )\r\n entityMetadata.afterLoadListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.AFTER_LOAD,\r\n )\r\n entityMetadata.afterInsertListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.AFTER_INSERT,\r\n )\r\n entityMetadata.afterUpdateListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.AFTER_UPDATE,\r\n )\r\n entityMetadata.afterRemoveListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.AFTER_REMOVE,\r\n )\r\n entityMetadata.afterSoftRemoveListeners =\r\n entityMetadata.listeners.filter(\r\n (listener) =>\r\n listener.type === EventListenerTypes.AFTER_SOFT_REMOVE,\r\n )\r\n entityMetadata.afterRecoverListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.AFTER_RECOVER,\r\n )\r\n entityMetadata.beforeInsertListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.BEFORE_INSERT,\r\n )\r\n entityMetadata.beforeUpdateListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.BEFORE_UPDATE,\r\n )\r\n entityMetadata.beforeRemoveListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.BEFORE_REMOVE,\r\n )\r\n entityMetadata.beforeSoftRemoveListeners =\r\n entityMetadata.listeners.filter(\r\n (listener) =>\r\n listener.type === EventListenerTypes.BEFORE_SOFT_REMOVE,\r\n )\r\n entityMetadata.beforeRecoverListeners = entityMetadata.listeners.filter(\r\n (listener) => listener.type === EventListenerTypes.BEFORE_RECOVER,\r\n )\r\n entityMetadata.indices = entityMetadata.embeddeds.reduce(\r\n (indices, embedded) => indices.concat(embedded.indicesFromTree),\r\n entityMetadata.ownIndices,\r\n )\r\n entityMetadata.uniques = entityMetadata.embeddeds.reduce(\r\n (uniques, embedded) => uniques.concat(embedded.uniquesFromTree),\r\n entityMetadata.ownUniques,\r\n )\r\n entityMetadata.primaryColumns = entityMetadata.columns.filter(\r\n (column) => column.isPrimary,\r\n )\r\n entityMetadata.nonVirtualColumns = entityMetadata.columns.filter(\r\n (column) => !column.isVirtual,\r\n )\r\n entityMetadata.ancestorColumns = entityMetadata.columns.filter(\r\n (column) => column.closureType === \"ancestor\",\r\n )\r\n entityMetadata.descendantColumns = entityMetadata.columns.filter(\r\n (column) => column.closureType === \"descendant\",\r\n )\r\n entityMetadata.hasMultiplePrimaryKeys =\r\n entityMetadata.primaryColumns.length > 1\r\n entityMetadata.generatedColumns = entityMetadata.columns.filter(\r\n (column) => column.isGenerated || column.isObjectId,\r\n )\r\n entityMetadata.hasUUIDGeneratedColumns =\r\n entityMetadata.columns.filter(\r\n (column) =>\r\n column.isGenerated || column.generationStrategy === \"uuid\",\r\n ).length > 0\r\n entityMetadata.createDateColumn = entityMetadata.columns.find(\r\n (column) => column.isCreateDate,\r\n )\r\n entityMetadata.updateDateColumn = entityMetadata.columns.find(\r\n (column) => column.isUpdateDate,\r\n )\r\n entityMetadata.deleteDateColumn = entityMetadata.columns.find(\r\n (column) => column.isDeleteDate,\r\n )\r\n entityMetadata.versionColumn = entityMetadata.columns.find(\r\n (column) => column.isVersion,\r\n )\r\n entityMetadata.discriminatorColumn = entityMetadata.columns.find(\r\n (column) => column.isDiscriminator,\r\n )\r\n entityMetadata.treeLevelColumn = entityMetadata.columns.find(\r\n (column) => column.isTreeLevel,\r\n )\r\n entityMetadata.nestedSetLeftColumn = entityMetadata.columns.find(\r\n (column) => column.isNestedSetLeft,\r\n )\r\n entityMetadata.nestedSetRightColumn = entityMetadata.columns.find(\r\n (column) => column.isNestedSetRight,\r\n )\r\n entityMetadata.materializedPathColumn = entityMetadata.columns.find(\r\n (column) => column.isMaterializedPath,\r\n )\r\n entityMetadata.objectIdColumn = entityMetadata.columns.find(\r\n (column) => column.isObjectId,\r\n )\r\n entityMetadata.foreignKeys.forEach((foreignKey) =>\r\n foreignKey.build(this.connection.namingStrategy),\r\n )\r\n entityMetadata.propertiesMap = entityMetadata.createPropertiesMap()\r\n entityMetadata.relationIds.forEach((relationId) => relationId.build())\r\n entityMetadata.relationCounts.forEach((relationCount) =>\r\n relationCount.build(),\r\n )\r\n entityMetadata.embeddeds.forEach((embedded) => {\r\n embedded.relationIdsFromTree.forEach((relationId) =>\r\n relationId.build(),\r\n )\r\n embedded.relationCountsFromTree.forEach((relationCount) =>\r\n relationCount.build(),\r\n )\r\n })\r\n }\r\n\r\n /**\r\n * Computes entity metadata's relations inverse side properties.\r\n */\r\n protected computeInverseProperties(\r\n entityMetadata: EntityMetadata,\r\n entityMetadatas: EntityMetadata[],\r\n ) {\r\n entityMetadata.relations.forEach((relation) => {\r\n // compute inverse side (related) entity metadatas for all relation metadatas\r\n const inverseEntityMetadata = entityMetadatas.find(\r\n (m) =>\r\n m.target === relation.type ||\r\n (typeof relation.type === \"string\" &&\r\n (m.targetName === relation.type ||\r\n m.givenTableName === relation.type)),\r\n )\r\n if (!inverseEntityMetadata)\r\n throw new TypeORMError(\r\n \"Entity metadata for \" +\r\n entityMetadata.name +\r\n \"#\" +\r\n relation.propertyPath +\r\n \" was not found. Check if you specified a correct entity object and if it's connected in the connection options.\",\r\n )\r\n\r\n relation.inverseEntityMetadata = inverseEntityMetadata\r\n relation.inverseSidePropertyPath =\r\n relation.buildInverseSidePropertyPath()\r\n\r\n // and compute inverse relation and mark if it has such\r\n relation.inverseRelation = inverseEntityMetadata.relations.find(\r\n (foundRelation) =>\r\n foundRelation.propertyPath ===\r\n relation.inverseSidePropertyPath,\r\n )\r\n })\r\n }\r\n\r\n /**\r\n * Creates indices for the table of single table inheritance.\r\n */\r\n protected createKeysForTableInheritance(entityMetadata: EntityMetadata) {\r\n const isDiscriminatorColumnAlreadyIndexed = entityMetadata.indices.some(\r\n ({ givenColumnNames }) =>\r\n !!givenColumnNames &&\r\n Array.isArray(givenColumnNames) &&\r\n givenColumnNames.length === 1 &&\r\n givenColumnNames[0] ===\r\n entityMetadata.discriminatorColumn?.databaseName,\r\n )\r\n\r\n // If the discriminator column is already indexed, there is no need to\r\n // add another index on top of it.\r\n if (isDiscriminatorColumnAlreadyIndexed) {\r\n return\r\n }\r\n\r\n entityMetadata.indices.push(\r\n new IndexMetadata({\r\n entityMetadata: entityMetadata,\r\n columns: [entityMetadata.discriminatorColumn!],\r\n args: {\r\n target: entityMetadata.target,\r\n unique: false,\r\n },\r\n }),\r\n )\r\n }\r\n}\r\n"],"sourceRoot":".."}