typeorm 0.2.24 → 0.2.28

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 (1002) hide show
  1. package/README.md +12 -8
  2. package/browser/cache/DbQueryResultCache.js +14 -14
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.js +20 -15
  5. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  6. package/browser/common/DeepPartial.d.ts +1 -1
  7. package/browser/common/DeepPartial.js.map +1 -1
  8. package/browser/common/EntityTarget.d.ts +9 -0
  9. package/browser/common/EntityTarget.js +3 -0
  10. package/browser/common/EntityTarget.js.map +1 -0
  11. package/browser/connection/Connection.d.ts +11 -10
  12. package/browser/connection/Connection.js +66 -42
  13. package/browser/connection/Connection.js.map +1 -1
  14. package/browser/connection/ConnectionMetadataBuilder.js +8 -8
  15. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  16. package/browser/connection/ConnectionOptions.d.ts +3 -1
  17. package/browser/connection/ConnectionOptions.js.map +1 -1
  18. package/browser/connection/ConnectionOptionsReader.js +47 -42
  19. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  20. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  21. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  22. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +4 -4
  24. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  25. package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  26. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  27. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  28. package/browser/decorator/Check.d.ts +2 -2
  29. package/browser/decorator/Check.js.map +1 -1
  30. package/browser/decorator/EntityRepository.d.ts +1 -1
  31. package/browser/decorator/EntityRepository.js.map +1 -1
  32. package/browser/decorator/Exclusion.d.ts +2 -2
  33. package/browser/decorator/Exclusion.js.map +1 -1
  34. package/browser/decorator/Generated.d.ts +1 -1
  35. package/browser/decorator/Generated.js.map +1 -1
  36. package/browser/decorator/Index.d.ts +7 -7
  37. package/browser/decorator/Index.js.map +1 -1
  38. package/browser/decorator/Unique.d.ts +4 -4
  39. package/browser/decorator/Unique.js +12 -1
  40. package/browser/decorator/Unique.js.map +1 -1
  41. package/browser/decorator/columns/Column.d.ts +12 -12
  42. package/browser/decorator/columns/Column.js.map +1 -1
  43. package/browser/decorator/columns/CreateDateColumn.d.ts +1 -1
  44. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  45. package/browser/decorator/columns/DeleteDateColumn.d.ts +1 -1
  46. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  47. package/browser/decorator/columns/ObjectIdColumn.d.ts +1 -1
  48. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  49. package/browser/decorator/columns/PrimaryColumn.d.ts +2 -2
  50. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  51. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  52. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  53. package/browser/decorator/columns/UpdateDateColumn.d.ts +1 -1
  54. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  55. package/browser/decorator/columns/VersionColumn.d.ts +1 -1
  56. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  57. package/browser/decorator/columns/ViewColumn.d.ts +2 -1
  58. package/browser/decorator/columns/ViewColumn.js +2 -2
  59. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  60. package/browser/decorator/entity/ChildEntity.d.ts +1 -1
  61. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  62. package/browser/decorator/entity/Entity.d.ts +2 -2
  63. package/browser/decorator/entity/Entity.js.map +1 -1
  64. package/browser/decorator/entity/TableInheritance.d.ts +1 -1
  65. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  66. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
  67. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  68. package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
  69. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  70. package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
  71. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  72. package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
  73. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  74. package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
  75. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  76. package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
  77. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  78. package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
  79. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  80. package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
  81. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  82. package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
  83. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  84. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  85. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  86. package/browser/decorator/options/ViewColumnOptions.d.ts +9 -0
  87. package/browser/decorator/options/ViewColumnOptions.js +3 -0
  88. package/browser/decorator/options/ViewColumnOptions.js.map +1 -0
  89. package/browser/decorator/relations/JoinColumn.d.ts +3 -3
  90. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  91. package/browser/decorator/relations/JoinTable.d.ts +3 -3
  92. package/browser/decorator/relations/JoinTable.js.map +1 -1
  93. package/browser/decorator/relations/ManyToMany.d.ts +2 -2
  94. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  95. package/browser/decorator/relations/ManyToOne.d.ts +2 -2
  96. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  97. package/browser/decorator/relations/OneToMany.d.ts +3 -3
  98. package/browser/decorator/relations/OneToMany.js +2 -2
  99. package/browser/decorator/relations/OneToMany.js.map +1 -1
  100. package/browser/decorator/relations/OneToOne.d.ts +2 -2
  101. package/browser/decorator/relations/OneToOne.js.map +1 -1
  102. package/browser/decorator/relations/RelationCount.d.ts +1 -1
  103. package/browser/decorator/relations/RelationCount.js.map +1 -1
  104. package/browser/decorator/relations/RelationId.d.ts +1 -1
  105. package/browser/decorator/relations/RelationId.js.map +1 -1
  106. package/browser/decorator/transaction/Transaction.js +4 -4
  107. package/browser/decorator/transaction/Transaction.js.map +1 -1
  108. package/browser/decorator/transaction/TransactionManager.d.ts +1 -1
  109. package/browser/decorator/transaction/TransactionManager.js.map +1 -1
  110. package/browser/decorator/tree/Tree.d.ts +1 -1
  111. package/browser/decorator/tree/Tree.js.map +1 -1
  112. package/browser/decorator/tree/TreeChildren.d.ts +1 -1
  113. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  114. package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
  115. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  116. package/browser/decorator/tree/TreeParent.d.ts +1 -1
  117. package/browser/decorator/tree/TreeParent.js.map +1 -1
  118. package/browser/driver/Driver.d.ts +7 -2
  119. package/browser/driver/Driver.js.map +1 -1
  120. package/browser/driver/DriverFactory.js +6 -0
  121. package/browser/driver/DriverFactory.js.map +1 -1
  122. package/browser/driver/DriverUtils.d.ts +2 -2
  123. package/browser/driver/DriverUtils.js +8 -4
  124. package/browser/driver/DriverUtils.js.map +1 -1
  125. package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  126. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +2 -3
  127. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  128. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +6 -0
  129. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  130. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  131. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +14 -9
  132. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  133. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +5 -0
  134. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +230 -143
  135. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  136. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +27 -0
  137. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +3 -0
  138. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -0
  139. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  140. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +99 -0
  141. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  142. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +51 -0
  143. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +142 -0
  144. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -0
  145. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  146. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
  147. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  148. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  149. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +125 -0
  150. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  151. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  152. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +113 -0
  153. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  154. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  155. package/browser/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  156. package/browser/driver/cockroachdb/CockroachDriver.js +18 -13
  157. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  158. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -1
  159. package/browser/driver/cockroachdb/CockroachQueryRunner.js +420 -192
  160. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  161. package/browser/driver/cordova/CordovaDriver.d.ts +2 -1
  162. package/browser/driver/cordova/CordovaDriver.js +4 -5
  163. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  164. package/browser/driver/cordova/CordovaQueryRunner.js +4 -4
  165. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  166. package/browser/driver/expo/ExpoDriver.d.ts +2 -1
  167. package/browser/driver/expo/ExpoDriver.js +5 -5
  168. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  169. package/browser/driver/expo/ExpoQueryRunner.js +10 -10
  170. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  171. package/browser/driver/mongodb/MongoDriver.d.ts +6 -1
  172. package/browser/driver/mongodb/MongoDriver.js +9 -4
  173. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  174. package/browser/driver/mongodb/MongoQueryRunner.d.ts +1 -0
  175. package/browser/driver/mongodb/MongoQueryRunner.js +175 -175
  176. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  177. package/browser/driver/mongodb/typings.d.ts +4 -1
  178. package/browser/driver/mongodb/typings.js.map +1 -1
  179. package/browser/driver/mysql/MysqlDriver.d.ts +7 -2
  180. package/browser/driver/mysql/MysqlDriver.js +16 -9
  181. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  182. package/browser/driver/mysql/MysqlQueryRunner.d.ts +7 -1
  183. package/browser/driver/mysql/MysqlQueryRunner.js +246 -149
  184. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  185. package/browser/driver/nativescript/NativescriptDriver.d.ts +2 -1
  186. package/browser/driver/nativescript/NativescriptDriver.js +4 -5
  187. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  188. package/browser/driver/nativescript/NativescriptQueryRunner.js +2 -2
  189. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  190. package/browser/driver/oracle/OracleDriver.d.ts +6 -1
  191. package/browser/driver/oracle/OracleDriver.js +17 -12
  192. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  193. package/browser/driver/oracle/OracleQueryRunner.d.ts +3 -1
  194. package/browser/driver/oracle/OracleQueryRunner.js +195 -128
  195. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  196. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  197. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  198. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  199. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  200. package/browser/driver/postgres/PostgresDriver.d.ts +19 -4
  201. package/browser/driver/postgres/PostgresDriver.js +194 -124
  202. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  203. package/browser/driver/postgres/PostgresQueryRunner.d.ts +3 -1
  204. package/browser/driver/postgres/PostgresQueryRunner.js +416 -196
  205. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  206. package/browser/driver/react-native/ReactNativeDriver.d.ts +2 -1
  207. package/browser/driver/react-native/ReactNativeDriver.js +6 -6
  208. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  209. package/browser/driver/react-native/ReactNativeQueryRunner.js +4 -4
  210. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  211. package/browser/driver/sap/SapConnectionCredentialsOptions.d.ts +1 -1
  212. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  213. package/browser/driver/sap/SapDriver.d.ts +6 -1
  214. package/browser/driver/sap/SapDriver.js +25 -15
  215. package/browser/driver/sap/SapDriver.js.map +1 -1
  216. package/browser/driver/sap/SapQueryRunner.d.ts +3 -1
  217. package/browser/driver/sap/SapQueryRunner.js +224 -156
  218. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  219. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  220. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  221. package/browser/driver/sqlite/SqliteDriver.d.ts +2 -1
  222. package/browser/driver/sqlite/SqliteDriver.js +30 -18
  223. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  224. package/browser/driver/sqlite/SqliteQueryRunner.js +33 -18
  225. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  226. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  227. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +36 -9
  228. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  229. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -0
  230. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +134 -120
  231. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  232. package/browser/driver/sqljs/SqljsDriver.d.ts +2 -1
  233. package/browser/driver/sqljs/SqljsDriver.js +15 -16
  234. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  235. package/browser/driver/sqljs/SqljsQueryRunner.js +11 -7
  236. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  237. package/browser/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  238. package/browser/driver/sqlserver/SqlServerDriver.js +13 -8
  239. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  240. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -1
  241. package/browser/driver/sqlserver/SqlServerQueryRunner.js +237 -170
  242. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  243. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  244. package/browser/driver/types/ColumnTypes.js.map +1 -1
  245. package/browser/driver/types/DatabaseType.d.ts +1 -1
  246. package/browser/driver/types/DatabaseType.js.map +1 -1
  247. package/browser/driver/types/ReplicationMode.d.ts +1 -0
  248. package/browser/driver/types/ReplicationMode.js +3 -0
  249. package/browser/driver/types/ReplicationMode.js.map +1 -0
  250. package/browser/entity-manager/EntityManager.d.ts +42 -257
  251. package/browser/entity-manager/EntityManager.js +39 -39
  252. package/browser/entity-manager/EntityManager.js.map +1 -1
  253. package/browser/entity-manager/MongoEntityManager.d.ts +46 -46
  254. package/browser/entity-manager/MongoEntityManager.js +17 -17
  255. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  256. package/browser/entity-manager/SqljsEntityManager.js +6 -6
  257. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  258. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  259. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  260. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  261. package/browser/entity-schema/EntitySchemaTransformer.js +22 -7
  262. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  263. package/browser/error/AlreadyHasActiveConnectionError.js +2 -2
  264. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  265. package/browser/error/CannotAttachTreeChildrenEntityError.js +2 -2
  266. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  267. package/browser/error/CannotConnectAlreadyConnectedError.js +2 -2
  268. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  269. package/browser/error/CannotCreateEntityIdMapError.js +2 -2
  270. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  271. package/browser/error/CannotDetermineEntityError.js +2 -2
  272. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  273. package/browser/error/CannotExecuteNotConnectedError.js +2 -2
  274. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  275. package/browser/error/CannotGetEntityManagerNotConnectedError.js +2 -2
  276. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  277. package/browser/error/CannotReflectMethodParameterTypeError.js +2 -2
  278. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  279. package/browser/error/CircularRelationsError.js +2 -2
  280. package/browser/error/CircularRelationsError.js.map +1 -1
  281. package/browser/error/ColumnTypeUndefinedError.js +2 -2
  282. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  283. package/browser/error/ConnectionIsNotSetError.js +2 -2
  284. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  285. package/browser/error/ConnectionNotFoundError.js +2 -2
  286. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  287. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +2 -2
  288. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  289. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +2 -2
  290. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  291. package/browser/error/CustomRepositoryNotFoundError.js +2 -2
  292. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  293. package/browser/error/DataTypeNotSupportedError.js +2 -2
  294. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  295. package/browser/error/DriverOptionNotSetError.js +2 -2
  296. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  297. package/browser/error/DriverPackageNotInstalledError.js +2 -2
  298. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  299. package/browser/error/EntityColumnNotFound.js +2 -2
  300. package/browser/error/EntityColumnNotFound.js.map +1 -1
  301. package/browser/error/EntityMetadataNotFoundError.d.ts +2 -2
  302. package/browser/error/EntityMetadataNotFoundError.js +5 -2
  303. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  304. package/browser/error/EntityNotFoundError.d.ts +2 -3
  305. package/browser/error/EntityNotFoundError.js +5 -2
  306. package/browser/error/EntityNotFoundError.js.map +1 -1
  307. package/browser/error/FindRelationsNotFoundError.js +4 -4
  308. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  309. package/browser/error/InitializedRelationError.js +2 -2
  310. package/browser/error/InitializedRelationError.js.map +1 -1
  311. package/browser/error/InsertValuesMissingError.js +2 -2
  312. package/browser/error/InsertValuesMissingError.js.map +1 -1
  313. package/browser/error/LimitOnUpdateNotSupportedError.js +2 -2
  314. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  315. package/browser/error/LockNotSupportedOnGivenDriverError.js +2 -2
  316. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  317. package/browser/error/MetadataAlreadyExistsError.js +2 -2
  318. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  319. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +2 -2
  320. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  321. package/browser/error/MissingDeleteDateColumnError.js +2 -2
  322. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  323. package/browser/error/MissingDriverError.js +3 -3
  324. package/browser/error/MissingDriverError.js.map +1 -1
  325. package/browser/error/MissingJoinColumnError.js +2 -2
  326. package/browser/error/MissingJoinColumnError.js.map +1 -1
  327. package/browser/error/MissingJoinTableError.js +2 -2
  328. package/browser/error/MissingJoinTableError.js.map +1 -1
  329. package/browser/error/MissingPrimaryColumnError.js +2 -2
  330. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  331. package/browser/error/MustBeEntityError.js +2 -2
  332. package/browser/error/MustBeEntityError.js.map +1 -1
  333. package/browser/error/NamingStrategyNotFoundError.js +2 -2
  334. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  335. package/browser/error/NoConnectionForRepositoryError.js +2 -2
  336. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  337. package/browser/error/NoConnectionOptionError.js +2 -2
  338. package/browser/error/NoConnectionOptionError.js.map +1 -1
  339. package/browser/error/NoNeedToReleaseEntityManagerError.js +2 -2
  340. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  341. package/browser/error/NoVersionOrUpdateDateColumnError.js +2 -2
  342. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  343. package/browser/error/OffsetWithoutLimitNotSupportedError.js +2 -2
  344. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  345. package/browser/error/OptimisticLockCanNotBeUsedError.js +2 -2
  346. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  347. package/browser/error/OptimisticLockVersionMismatchError.js +2 -2
  348. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  349. package/browser/error/PersistedEntityNotFoundError.js +2 -2
  350. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  351. package/browser/error/PessimisticLockTransactionRequiredError.js +2 -2
  352. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  353. package/browser/error/PrimaryColumnCannotBeNullableError.js +2 -2
  354. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  355. package/browser/error/QueryFailedError.js +3 -3
  356. package/browser/error/QueryFailedError.js.map +1 -1
  357. package/browser/error/QueryRunnerAlreadyReleasedError.js +2 -2
  358. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  359. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +2 -2
  360. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  361. package/browser/error/RepositoryNotFoundError.d.ts +2 -2
  362. package/browser/error/RepositoryNotFoundError.js +5 -2
  363. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  364. package/browser/error/RepositoryNotTreeError.d.ts +2 -2
  365. package/browser/error/RepositoryNotTreeError.js +11 -8
  366. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  367. package/browser/error/ReturningStatementNotSupportedError.js +2 -2
  368. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  369. package/browser/error/SubjectRemovedAndUpdatedError.js +2 -2
  370. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  371. package/browser/error/SubjectWithoutIdentifierError.js +2 -2
  372. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  373. package/browser/error/TransactionAlreadyStartedError.js +2 -2
  374. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  375. package/browser/error/TransactionNotStartedError.js +2 -2
  376. package/browser/error/TransactionNotStartedError.js.map +1 -1
  377. package/browser/error/TreeRepositoryNotSupportedError.js +2 -2
  378. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  379. package/browser/error/UpdateValuesMissingError.js +2 -2
  380. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  381. package/browser/error/UsingJoinColumnIsNotAllowedError.js +2 -2
  382. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  383. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +2 -2
  384. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  385. package/browser/error/UsingJoinTableIsNotAllowedError.js +2 -2
  386. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  387. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +2 -2
  388. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  389. package/browser/find-options/FindOneOptions.d.ts +2 -2
  390. package/browser/find-options/FindOneOptions.js.map +1 -1
  391. package/browser/find-options/FindOperator.d.ts +6 -3
  392. package/browser/find-options/FindOperator.js +22 -45
  393. package/browser/find-options/FindOperator.js.map +1 -1
  394. package/browser/find-options/FindOptionsUtils.d.ts +2 -2
  395. package/browser/find-options/FindOptionsUtils.js +1 -1
  396. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  397. package/browser/find-options/operator/Any.d.ts +1 -1
  398. package/browser/find-options/operator/Any.js.map +1 -1
  399. package/browser/find-options/operator/Between.d.ts +1 -1
  400. package/browser/find-options/operator/Between.js.map +1 -1
  401. package/browser/find-options/operator/In.d.ts +1 -1
  402. package/browser/find-options/operator/In.js.map +1 -1
  403. package/browser/find-options/operator/Raw.d.ts +1 -1
  404. package/browser/find-options/operator/Raw.js.map +1 -1
  405. package/browser/index.d.ts +8 -11
  406. package/browser/index.js +8 -15
  407. package/browser/index.js.map +1 -1
  408. package/browser/logger/DebugLogger.d.ts +0 -1
  409. package/browser/logger/DebugLogger.js +9 -9
  410. package/browser/logger/DebugLogger.js.map +1 -1
  411. package/browser/logger/FileLogger.d.ts +3 -1
  412. package/browser/logger/FileLogger.js +9 -3
  413. package/browser/logger/FileLogger.js.map +1 -1
  414. package/browser/logger/LoggerOptions.d.ts +9 -0
  415. package/browser/logger/LoggerOptions.js.map +1 -1
  416. package/browser/metadata/ColumnMetadata.js +15 -16
  417. package/browser/metadata/ColumnMetadata.js.map +1 -1
  418. package/browser/metadata/EmbeddedMetadata.js +2 -2
  419. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  420. package/browser/metadata/EntityMetadata.d.ts +1 -5
  421. package/browser/metadata/EntityMetadata.js +15 -16
  422. package/browser/metadata/EntityMetadata.js.map +1 -1
  423. package/browser/metadata/RelationMetadata.js +12 -12
  424. package/browser/metadata/RelationMetadata.js.map +1 -1
  425. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  426. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  427. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  428. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  429. package/browser/metadata-builder/EntityMetadataBuilder.js +14 -12
  430. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  431. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +3 -2
  432. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  433. package/browser/migration/MigrationExecutor.js +132 -103
  434. package/browser/migration/MigrationExecutor.js.map +1 -1
  435. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +5 -0
  436. package/browser/naming-strategy/DefaultNamingStrategy.js +8 -6
  437. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  438. package/browser/naming-strategy/NamingStrategyInterface.d.ts +11 -0
  439. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  440. package/browser/persistence/EntityPersistExecutor.js +64 -46
  441. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  442. package/browser/persistence/Subject.js +2 -2
  443. package/browser/persistence/Subject.js.map +1 -1
  444. package/browser/persistence/SubjectChangedColumnsComputer.js +11 -7
  445. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  446. package/browser/persistence/SubjectDatabaseEntityLoader.js +9 -8
  447. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  448. package/browser/persistence/SubjectExecutor.js +263 -206
  449. package/browser/persistence/SubjectExecutor.js.map +1 -1
  450. package/browser/persistence/SubjectTopoligicalSorter.js +6 -6
  451. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  452. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +2 -2
  453. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  454. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -3
  455. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  456. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +1 -1
  457. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  458. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  459. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  460. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  461. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  462. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +5 -4
  463. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  464. package/browser/persistence/tree/NestedSetSubjectExecutor.js +3 -3
  465. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
  466. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +93 -0
  467. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
  468. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
  469. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +22 -0
  470. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
  471. package/browser/platform/BrowserDisabledDriversDummy.d.ts +32 -2
  472. package/browser/platform/BrowserDisabledDriversDummy.js +52 -2
  473. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  474. package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
  475. package/browser/platform/BrowserFileLoggerDummy.js +58 -0
  476. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
  477. package/browser/platform/BrowserPlatformTools.d.ts +74 -0
  478. package/browser/platform/BrowserPlatformTools.js +157 -0
  479. package/browser/platform/BrowserPlatformTools.js.map +1 -0
  480. package/browser/platform/PlatformTools.d.ts +15 -21
  481. package/browser/platform/PlatformTools.js +142 -81
  482. package/browser/platform/PlatformTools.js.map +1 -1
  483. package/browser/query-builder/Alias.js.map +1 -1
  484. package/browser/query-builder/DeleteQueryBuilder.d.ts +2 -3
  485. package/browser/query-builder/DeleteQueryBuilder.js +10 -5
  486. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  487. package/browser/query-builder/InsertQueryBuilder.d.ts +2 -3
  488. package/browser/query-builder/InsertQueryBuilder.js +23 -9
  489. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  490. package/browser/query-builder/JoinAttribute.js +2 -2
  491. package/browser/query-builder/JoinAttribute.js.map +1 -1
  492. package/browser/query-builder/QueryBuilder.d.ts +11 -15
  493. package/browser/query-builder/QueryBuilder.js +92 -31
  494. package/browser/query-builder/QueryBuilder.js.map +1 -1
  495. package/browser/query-builder/QueryBuilderUtils.js +2 -2
  496. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  497. package/browser/query-builder/QueryExpressionMap.d.ts +1 -1
  498. package/browser/query-builder/QueryExpressionMap.js +4 -4
  499. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  500. package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
  501. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  502. package/browser/query-builder/RelationIdLoader.js +5 -5
  503. package/browser/query-builder/RelationLoader.js +3 -3
  504. package/browser/query-builder/RelationLoader.js.map +1 -1
  505. package/browser/query-builder/RelationQueryBuilder.js +14 -14
  506. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  507. package/browser/query-builder/RelationRemover.js +7 -7
  508. package/browser/query-builder/RelationRemover.js.map +1 -1
  509. package/browser/query-builder/RelationUpdater.js +3 -3
  510. package/browser/query-builder/ReturningResultsEntityUpdator.js +30 -31
  511. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  512. package/browser/query-builder/SelectQueryBuilder.d.ts +5 -4
  513. package/browser/query-builder/SelectQueryBuilder.js +77 -41
  514. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  515. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  516. package/browser/query-builder/SoftDeleteQueryBuilder.js +7 -7
  517. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  518. package/browser/query-builder/UpdateQueryBuilder.js +22 -8
  519. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  520. package/browser/query-builder/relation-count/RelationCountAttribute.js +3 -3
  521. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  522. package/browser/query-builder/relation-count/RelationCountLoader.js +5 -5
  523. package/browser/query-builder/relation-id/RelationIdAttribute.js +2 -2
  524. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  525. package/browser/query-builder/relation-id/RelationIdLoader.js +6 -6
  526. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  527. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +4 -4
  528. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  529. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +4 -7
  530. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  531. package/browser/query-runner/BaseQueryRunner.d.ts +2 -5
  532. package/browser/query-runner/BaseQueryRunner.js +106 -56
  533. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  534. package/browser/query-runner/QueryRunner.d.ts +1 -0
  535. package/browser/repository/AbstractRepository.js.map +1 -1
  536. package/browser/repository/BaseEntity.d.ts +17 -1
  537. package/browser/repository/BaseEntity.js +24 -6
  538. package/browser/repository/BaseEntity.js.map +1 -1
  539. package/browser/repository/MongoRepository.js +2 -2
  540. package/browser/repository/MongoRepository.js.map +1 -1
  541. package/browser/repository/Repository.d.ts +1 -1
  542. package/browser/repository/Repository.js +4 -4
  543. package/browser/repository/Repository.js.map +1 -1
  544. package/browser/repository/TreeRepository.js +4 -4
  545. package/browser/repository/TreeRepository.js.map +1 -1
  546. package/browser/schema-builder/MongoSchemaBuilder.js +4 -4
  547. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  548. package/browser/schema-builder/RdbmsSchemaBuilder.js +924 -368
  549. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  550. package/browser/schema-builder/options/TableIndexOptions.d.ts +1 -1
  551. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  552. package/browser/schema-builder/table/TableCheck.js +2 -2
  553. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  554. package/browser/schema-builder/table/TableForeignKey.js +3 -3
  555. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  556. package/browser/schema-builder/table/TableIndex.js +2 -2
  557. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  558. package/browser/schema-builder/table/TableUnique.js +2 -2
  559. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  560. package/browser/schema-builder/view/View.d.ts +1 -2
  561. package/browser/schema-builder/view/View.js.map +1 -1
  562. package/browser/util/ApplyValueTransformers.js.map +1 -1
  563. package/browser/util/DateUtils.js +3 -3
  564. package/browser/util/DateUtils.js.map +1 -1
  565. package/browser/util/DirectoryExportedClassesLoader.js +6 -5
  566. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  567. package/browser/util/ObjectUtils.js +4 -4
  568. package/browser/util/ObjectUtils.js.map +1 -1
  569. package/browser/util/OrmUtils.d.ts +4 -0
  570. package/browser/util/OrmUtils.js +19 -4
  571. package/browser/util/OrmUtils.js.map +1 -1
  572. package/browser/util/StringUtils.js +1 -1
  573. package/browser/util/StringUtils.js.map +1 -1
  574. package/cache/DbQueryResultCache.js +1 -1
  575. package/cache/DbQueryResultCache.js.map +1 -1
  576. package/cache/RedisQueryResultCache.js +7 -2
  577. package/cache/RedisQueryResultCache.js.map +1 -1
  578. package/cli.js +2 -1
  579. package/cli.js.map +1 -1
  580. package/commands/CacheClearCommand.js +4 -4
  581. package/commands/CacheClearCommand.js.map +1 -1
  582. package/commands/CommandUtils.d.ts +1 -1
  583. package/commands/CommandUtils.js +4 -4
  584. package/commands/CommandUtils.js.map +1 -1
  585. package/commands/EntityCreateCommand.js +4 -4
  586. package/commands/EntityCreateCommand.js.map +1 -1
  587. package/commands/InitCommand.js +15 -5
  588. package/commands/InitCommand.js.map +1 -1
  589. package/commands/MigrationCreateCommand.js +6 -6
  590. package/commands/MigrationCreateCommand.js.map +1 -1
  591. package/commands/MigrationGenerateCommand.d.ts +11 -1
  592. package/commands/MigrationGenerateCommand.js +42 -10
  593. package/commands/MigrationGenerateCommand.js.map +1 -1
  594. package/commands/MigrationRevertCommand.js +2 -2
  595. package/commands/MigrationRevertCommand.js.map +1 -1
  596. package/commands/MigrationRunCommand.js +3 -3
  597. package/commands/MigrationRunCommand.js.map +1 -1
  598. package/commands/MigrationShowCommand.js +3 -3
  599. package/commands/MigrationShowCommand.js.map +1 -1
  600. package/commands/QueryCommand.js +5 -5
  601. package/commands/QueryCommand.js.map +1 -1
  602. package/commands/SchemaDropCommand.js +3 -3
  603. package/commands/SchemaDropCommand.js.map +1 -1
  604. package/commands/SchemaLogCommand.js +6 -6
  605. package/commands/SchemaLogCommand.js.map +1 -1
  606. package/commands/SchemaSyncCommand.js +3 -3
  607. package/commands/SchemaSyncCommand.js.map +1 -1
  608. package/commands/SubscriberCreateCommand.js +3 -3
  609. package/commands/SubscriberCreateCommand.js.map +1 -1
  610. package/commands/VersionCommand.js +2 -2
  611. package/commands/VersionCommand.js.map +1 -1
  612. package/common/DeepPartial.d.ts +1 -1
  613. package/common/DeepPartial.js.map +1 -1
  614. package/common/EntityTarget.d.ts +9 -0
  615. package/common/EntityTarget.js +4 -0
  616. package/common/EntityTarget.js.map +1 -0
  617. package/connection/Connection.d.ts +11 -10
  618. package/connection/Connection.js +48 -24
  619. package/connection/Connection.js.map +1 -1
  620. package/connection/ConnectionOptions.d.ts +3 -1
  621. package/connection/ConnectionOptions.js.map +1 -1
  622. package/connection/ConnectionOptionsReader.js +38 -33
  623. package/connection/ConnectionOptionsReader.js.map +1 -1
  624. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  625. package/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  626. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  627. package/connection/options-reader/ConnectionOptionsXmlReader.js +2 -2
  628. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  629. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  630. package/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  631. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  632. package/decorator/Check.d.ts +2 -2
  633. package/decorator/Check.js.map +1 -1
  634. package/decorator/EntityRepository.d.ts +1 -1
  635. package/decorator/EntityRepository.js.map +1 -1
  636. package/decorator/Exclusion.d.ts +2 -2
  637. package/decorator/Exclusion.js.map +1 -1
  638. package/decorator/Generated.d.ts +1 -1
  639. package/decorator/Generated.js.map +1 -1
  640. package/decorator/Index.d.ts +7 -7
  641. package/decorator/Index.js.map +1 -1
  642. package/decorator/Unique.d.ts +4 -4
  643. package/decorator/Unique.js +12 -1
  644. package/decorator/Unique.js.map +1 -1
  645. package/decorator/columns/Column.d.ts +12 -12
  646. package/decorator/columns/Column.js.map +1 -1
  647. package/decorator/columns/CreateDateColumn.d.ts +1 -1
  648. package/decorator/columns/CreateDateColumn.js.map +1 -1
  649. package/decorator/columns/DeleteDateColumn.d.ts +1 -1
  650. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  651. package/decorator/columns/ObjectIdColumn.d.ts +1 -1
  652. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  653. package/decorator/columns/PrimaryColumn.d.ts +2 -2
  654. package/decorator/columns/PrimaryColumn.js.map +1 -1
  655. package/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  656. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  657. package/decorator/columns/UpdateDateColumn.d.ts +1 -1
  658. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  659. package/decorator/columns/VersionColumn.d.ts +1 -1
  660. package/decorator/columns/VersionColumn.js.map +1 -1
  661. package/decorator/columns/ViewColumn.d.ts +2 -1
  662. package/decorator/columns/ViewColumn.js +2 -2
  663. package/decorator/columns/ViewColumn.js.map +1 -1
  664. package/decorator/entity/ChildEntity.d.ts +1 -1
  665. package/decorator/entity/ChildEntity.js.map +1 -1
  666. package/decorator/entity/Entity.d.ts +2 -2
  667. package/decorator/entity/Entity.js.map +1 -1
  668. package/decorator/entity/TableInheritance.d.ts +1 -1
  669. package/decorator/entity/TableInheritance.js.map +1 -1
  670. package/decorator/entity-view/ViewEntity.d.ts +2 -2
  671. package/decorator/entity-view/ViewEntity.js.map +1 -1
  672. package/decorator/listeners/AfterInsert.d.ts +1 -1
  673. package/decorator/listeners/AfterInsert.js.map +1 -1
  674. package/decorator/listeners/AfterLoad.d.ts +1 -1
  675. package/decorator/listeners/AfterLoad.js.map +1 -1
  676. package/decorator/listeners/AfterRemove.d.ts +1 -1
  677. package/decorator/listeners/AfterRemove.js.map +1 -1
  678. package/decorator/listeners/AfterUpdate.d.ts +1 -1
  679. package/decorator/listeners/AfterUpdate.js.map +1 -1
  680. package/decorator/listeners/BeforeInsert.d.ts +1 -1
  681. package/decorator/listeners/BeforeInsert.js.map +1 -1
  682. package/decorator/listeners/BeforeRemove.d.ts +1 -1
  683. package/decorator/listeners/BeforeRemove.js.map +1 -1
  684. package/decorator/listeners/BeforeUpdate.d.ts +1 -1
  685. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  686. package/decorator/listeners/EventSubscriber.d.ts +1 -1
  687. package/decorator/listeners/EventSubscriber.js.map +1 -1
  688. package/decorator/options/ColumnOptions.js.map +1 -1
  689. package/decorator/options/TransactionOptions.js.map +1 -1
  690. package/decorator/options/ViewColumnOptions.d.ts +9 -0
  691. package/decorator/options/ViewColumnOptions.js +4 -0
  692. package/decorator/options/ViewColumnOptions.js.map +1 -0
  693. package/decorator/relations/JoinColumn.d.ts +3 -3
  694. package/decorator/relations/JoinColumn.js.map +1 -1
  695. package/decorator/relations/JoinTable.d.ts +3 -3
  696. package/decorator/relations/JoinTable.js.map +1 -1
  697. package/decorator/relations/ManyToMany.d.ts +2 -2
  698. package/decorator/relations/ManyToMany.js.map +1 -1
  699. package/decorator/relations/ManyToOne.d.ts +2 -2
  700. package/decorator/relations/ManyToOne.js.map +1 -1
  701. package/decorator/relations/OneToMany.d.ts +3 -3
  702. package/decorator/relations/OneToMany.js +2 -2
  703. package/decorator/relations/OneToMany.js.map +1 -1
  704. package/decorator/relations/OneToOne.d.ts +2 -2
  705. package/decorator/relations/OneToOne.js.map +1 -1
  706. package/decorator/relations/RelationCount.d.ts +1 -1
  707. package/decorator/relations/RelationCount.js.map +1 -1
  708. package/decorator/relations/RelationId.d.ts +1 -1
  709. package/decorator/relations/RelationId.js.map +1 -1
  710. package/decorator/transaction/TransactionManager.d.ts +1 -1
  711. package/decorator/transaction/TransactionManager.js.map +1 -1
  712. package/decorator/tree/Tree.d.ts +1 -1
  713. package/decorator/tree/Tree.js.map +1 -1
  714. package/decorator/tree/TreeChildren.d.ts +1 -1
  715. package/decorator/tree/TreeChildren.js.map +1 -1
  716. package/decorator/tree/TreeLevelColumn.d.ts +1 -1
  717. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  718. package/decorator/tree/TreeParent.d.ts +1 -1
  719. package/decorator/tree/TreeParent.js.map +1 -1
  720. package/driver/Driver.d.ts +7 -2
  721. package/driver/Driver.js.map +1 -1
  722. package/driver/DriverFactory.js +6 -0
  723. package/driver/DriverFactory.js.map +1 -1
  724. package/driver/DriverUtils.d.ts +2 -2
  725. package/driver/DriverUtils.js +6 -2
  726. package/driver/DriverUtils.js.map +1 -1
  727. package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  728. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -1
  729. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  730. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +6 -0
  731. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  732. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  733. package/driver/aurora-data-api/AuroraDataApiDriver.js +7 -2
  734. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  735. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +4 -0
  736. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +106 -19
  737. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  738. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +27 -0
  739. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +4 -0
  740. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -0
  741. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  742. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +101 -0
  743. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  744. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +51 -0
  745. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +144 -0
  746. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -0
  747. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  748. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
  749. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  750. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  751. package/driver/better-sqlite3/BetterSqlite3Driver.js +127 -0
  752. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  753. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  754. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +115 -0
  755. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  756. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  757. package/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  758. package/driver/cockroachdb/CockroachDriver.js +6 -1
  759. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  760. package/driver/cockroachdb/CockroachQueryRunner.d.ts +2 -1
  761. package/driver/cockroachdb/CockroachQueryRunner.js +303 -75
  762. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  763. package/driver/cordova/CordovaDriver.d.ts +2 -1
  764. package/driver/cordova/CordovaDriver.js +0 -1
  765. package/driver/cordova/CordovaDriver.js.map +1 -1
  766. package/driver/expo/ExpoDriver.d.ts +2 -1
  767. package/driver/expo/ExpoDriver.js +1 -1
  768. package/driver/expo/ExpoDriver.js.map +1 -1
  769. package/driver/mongodb/MongoDriver.d.ts +6 -1
  770. package/driver/mongodb/MongoDriver.js +6 -1
  771. package/driver/mongodb/MongoDriver.js.map +1 -1
  772. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  773. package/driver/mongodb/typings.d.ts +4 -1
  774. package/driver/mongodb/typings.js.map +1 -1
  775. package/driver/mysql/MysqlDriver.d.ts +7 -2
  776. package/driver/mysql/MysqlDriver.js +10 -3
  777. package/driver/mysql/MysqlDriver.js.map +1 -1
  778. package/driver/mysql/MysqlQueryRunner.d.ts +6 -1
  779. package/driver/mysql/MysqlQueryRunner.js +122 -25
  780. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  781. package/driver/nativescript/NativescriptDriver.d.ts +2 -1
  782. package/driver/nativescript/NativescriptDriver.js +0 -1
  783. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  784. package/driver/oracle/OracleDriver.d.ts +6 -1
  785. package/driver/oracle/OracleDriver.js +8 -3
  786. package/driver/oracle/OracleDriver.js.map +1 -1
  787. package/driver/oracle/OracleQueryRunner.d.ts +2 -1
  788. package/driver/oracle/OracleQueryRunner.js +87 -20
  789. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  790. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  791. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  792. package/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  793. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  794. package/driver/postgres/PostgresDriver.d.ts +19 -4
  795. package/driver/postgres/PostgresDriver.js +179 -109
  796. package/driver/postgres/PostgresDriver.js.map +1 -1
  797. package/driver/postgres/PostgresQueryRunner.d.ts +2 -1
  798. package/driver/postgres/PostgresQueryRunner.js +288 -68
  799. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  800. package/driver/react-native/ReactNativeDriver.d.ts +2 -1
  801. package/driver/react-native/ReactNativeDriver.js +2 -2
  802. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  803. package/driver/sap/SapConnectionCredentialsOptions.d.ts +1 -1
  804. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  805. package/driver/sap/SapDriver.d.ts +6 -1
  806. package/driver/sap/SapDriver.js +19 -9
  807. package/driver/sap/SapDriver.js.map +1 -1
  808. package/driver/sap/SapQueryRunner.d.ts +2 -1
  809. package/driver/sap/SapQueryRunner.js +91 -23
  810. package/driver/sap/SapQueryRunner.js.map +1 -1
  811. package/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  812. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  813. package/driver/sqlite/SqliteDriver.d.ts +2 -1
  814. package/driver/sqlite/SqliteDriver.js +24 -12
  815. package/driver/sqlite/SqliteDriver.js.map +1 -1
  816. package/driver/sqlite/SqliteQueryRunner.js +29 -14
  817. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  818. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  819. package/driver/sqlite-abstract/AbstractSqliteDriver.js +31 -4
  820. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  821. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +17 -3
  822. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  823. package/driver/sqljs/SqljsDriver.d.ts +2 -1
  824. package/driver/sqljs/SqljsDriver.js +1 -2
  825. package/driver/sqljs/SqljsDriver.js.map +1 -1
  826. package/driver/sqljs/SqljsQueryRunner.js +5 -1
  827. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  828. package/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  829. package/driver/sqlserver/SqlServerDriver.js +6 -1
  830. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  831. package/driver/sqlserver/SqlServerQueryRunner.d.ts +2 -1
  832. package/driver/sqlserver/SqlServerQueryRunner.js +91 -24
  833. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  834. package/driver/types/ColumnTypes.d.ts +1 -1
  835. package/driver/types/ColumnTypes.js.map +1 -1
  836. package/driver/types/DatabaseType.d.ts +1 -1
  837. package/driver/types/DatabaseType.js.map +1 -1
  838. package/driver/types/ReplicationMode.d.ts +1 -0
  839. package/driver/types/ReplicationMode.js +4 -0
  840. package/driver/types/ReplicationMode.js.map +1 -0
  841. package/entity-manager/EntityManager.d.ts +42 -257
  842. package/entity-manager/EntityManager.js +10 -10
  843. package/entity-manager/EntityManager.js.map +1 -1
  844. package/entity-manager/MongoEntityManager.d.ts +46 -46
  845. package/entity-manager/MongoEntityManager.js.map +1 -1
  846. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  847. package/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  848. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  849. package/entity-schema/EntitySchemaTransformer.js +22 -7
  850. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  851. package/error/EntityMetadataNotFoundError.d.ts +2 -2
  852. package/error/EntityMetadataNotFoundError.js +3 -0
  853. package/error/EntityMetadataNotFoundError.js.map +1 -1
  854. package/error/EntityNotFoundError.d.ts +2 -3
  855. package/error/EntityNotFoundError.js +3 -0
  856. package/error/EntityNotFoundError.js.map +1 -1
  857. package/error/FindRelationsNotFoundError.js +2 -2
  858. package/error/FindRelationsNotFoundError.js.map +1 -1
  859. package/error/MissingDriverError.js +1 -1
  860. package/error/MissingDriverError.js.map +1 -1
  861. package/error/QueryFailedError.js +1 -1
  862. package/error/QueryFailedError.js.map +1 -1
  863. package/error/RepositoryNotFoundError.d.ts +2 -2
  864. package/error/RepositoryNotFoundError.js +3 -0
  865. package/error/RepositoryNotFoundError.js.map +1 -1
  866. package/error/RepositoryNotTreeError.d.ts +2 -2
  867. package/error/RepositoryNotTreeError.js +9 -6
  868. package/error/RepositoryNotTreeError.js.map +1 -1
  869. package/find-options/FindOneOptions.d.ts +2 -2
  870. package/find-options/FindOneOptions.js.map +1 -1
  871. package/find-options/FindOperator.d.ts +6 -3
  872. package/find-options/FindOperator.js +22 -45
  873. package/find-options/FindOperator.js.map +1 -1
  874. package/find-options/FindOptionsUtils.d.ts +2 -2
  875. package/find-options/FindOptionsUtils.js +1 -1
  876. package/find-options/FindOptionsUtils.js.map +1 -1
  877. package/find-options/operator/Any.d.ts +1 -1
  878. package/find-options/operator/Any.js.map +1 -1
  879. package/find-options/operator/Between.d.ts +1 -1
  880. package/find-options/operator/Between.js.map +1 -1
  881. package/find-options/operator/In.d.ts +1 -1
  882. package/find-options/operator/In.js.map +1 -1
  883. package/find-options/operator/Raw.d.ts +1 -1
  884. package/find-options/operator/Raw.js.map +1 -1
  885. package/index.d.ts +8 -11
  886. package/index.js +1 -14
  887. package/index.js.map +1 -1
  888. package/logger/DebugLogger.d.ts +0 -1
  889. package/logger/DebugLogger.js +10 -9
  890. package/logger/DebugLogger.js.map +1 -1
  891. package/logger/FileLogger.d.ts +3 -1
  892. package/logger/FileLogger.js +10 -3
  893. package/logger/FileLogger.js.map +1 -1
  894. package/logger/LoggerOptions.d.ts +9 -0
  895. package/logger/LoggerOptions.js.map +1 -1
  896. package/metadata/ColumnMetadata.js +10 -11
  897. package/metadata/ColumnMetadata.js.map +1 -1
  898. package/metadata/EntityMetadata.d.ts +1 -5
  899. package/metadata/EntityMetadata.js +13 -14
  900. package/metadata/EntityMetadata.js.map +1 -1
  901. package/metadata/RelationMetadata.js +7 -7
  902. package/metadata/RelationMetadata.js.map +1 -1
  903. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  904. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  905. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  906. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  907. package/metadata-builder/EntityMetadataBuilder.js +8 -6
  908. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  909. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
  910. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  911. package/migration/MigrationExecutor.js +103 -74
  912. package/migration/MigrationExecutor.js.map +1 -1
  913. package/naming-strategy/DefaultNamingStrategy.d.ts +5 -0
  914. package/naming-strategy/DefaultNamingStrategy.js +2 -0
  915. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  916. package/naming-strategy/NamingStrategyInterface.d.ts +11 -0
  917. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  918. package/package.json +72 -51
  919. package/persistence/EntityPersistExecutor.js +60 -42
  920. package/persistence/EntityPersistExecutor.js.map +1 -1
  921. package/persistence/SubjectChangedColumnsComputer.js +11 -7
  922. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  923. package/persistence/SubjectDatabaseEntityLoader.js +2 -1
  924. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  925. package/persistence/SubjectExecutor.js +244 -187
  926. package/persistence/SubjectExecutor.js.map +1 -1
  927. package/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -3
  928. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  929. package/persistence/subject-builder/OneToManySubjectBuilder.js +1 -1
  930. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  931. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  932. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  933. package/persistence/tree/MaterializedPathSubjectExecutor.js +2 -1
  934. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  935. package/platform/PlatformTools.d.ts +7 -1
  936. package/platform/PlatformTools.js +44 -43
  937. package/platform/PlatformTools.js.map +1 -1
  938. package/query-builder/Alias.js.map +1 -1
  939. package/query-builder/DeleteQueryBuilder.d.ts +2 -3
  940. package/query-builder/DeleteQueryBuilder.js +5 -0
  941. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  942. package/query-builder/InsertQueryBuilder.d.ts +2 -3
  943. package/query-builder/InsertQueryBuilder.js +18 -4
  944. package/query-builder/InsertQueryBuilder.js.map +1 -1
  945. package/query-builder/QueryBuilder.d.ts +11 -15
  946. package/query-builder/QueryBuilder.js +84 -23
  947. package/query-builder/QueryBuilder.js.map +1 -1
  948. package/query-builder/QueryExpressionMap.d.ts +1 -1
  949. package/query-builder/QueryExpressionMap.js.map +1 -1
  950. package/query-builder/QueryPartialEntity.d.ts +1 -1
  951. package/query-builder/QueryPartialEntity.js.map +1 -1
  952. package/query-builder/ReturningResultsEntityUpdator.js +23 -24
  953. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  954. package/query-builder/SelectQueryBuilder.d.ts +4 -4
  955. package/query-builder/SelectQueryBuilder.js +41 -5
  956. package/query-builder/SelectQueryBuilder.js.map +1 -1
  957. package/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  958. package/query-builder/SoftDeleteQueryBuilder.js +2 -2
  959. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  960. package/query-builder/UpdateQueryBuilder.js +17 -3
  961. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  962. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -4
  963. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  964. package/query-runner/BaseQueryRunner.d.ts +2 -5
  965. package/query-runner/BaseQueryRunner.js +90 -40
  966. package/query-runner/BaseQueryRunner.js.map +1 -1
  967. package/repository/AbstractRepository.js.map +1 -1
  968. package/repository/BaseEntity.d.ts +17 -1
  969. package/repository/BaseEntity.js +20 -2
  970. package/repository/BaseEntity.js.map +1 -1
  971. package/repository/MongoRepository.js.map +1 -1
  972. package/repository/Repository.d.ts +1 -1
  973. package/repository/Repository.js +2 -2
  974. package/repository/Repository.js.map +1 -1
  975. package/schema-builder/MongoSchemaBuilder.js +1 -1
  976. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  977. package/schema-builder/RdbmsSchemaBuilder.js +875 -319
  978. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  979. package/schema-builder/options/TableIndexOptions.d.ts +1 -1
  980. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  981. package/schema-builder/view/View.d.ts +1 -2
  982. package/schema-builder/view/View.js.map +1 -1
  983. package/typeorm-class-transformer-shim.js +16 -2
  984. package/typeorm-model-shim.js +18 -0
  985. package/util/ApplyValueTransformers.js.map +1 -1
  986. package/util/DateUtils.js +1 -1
  987. package/util/DateUtils.js.map +1 -1
  988. package/util/DirectoryExportedClassesLoader.js +7 -5
  989. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  990. package/util/ObjectUtils.js +2 -2
  991. package/util/ObjectUtils.js.map +1 -1
  992. package/util/OrmUtils.d.ts +4 -0
  993. package/util/OrmUtils.js +17 -2
  994. package/util/OrmUtils.js.map +1 -1
  995. package/util/StringUtils.js +3 -2
  996. package/util/StringUtils.js.map +1 -1
  997. package/browser/util/PromiseUtils.d.ts +0 -24
  998. package/browser/util/PromiseUtils.js +0 -62
  999. package/browser/util/PromiseUtils.js.map +0 -1
  1000. package/util/PromiseUtils.d.ts +0 -24
  1001. package/util/PromiseUtils.js +0 -64
  1002. package/util/PromiseUtils.js.map +0 -1
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var OrmUtils_1 = require("../util/OrmUtils");
5
5
  var MongoDriver_1 = require("../driver/mongodb/MongoDriver");
6
- var PromiseUtils_1 = require("../util/PromiseUtils");
7
6
  var FindOperator_1 = require("../find-options/FindOperator");
8
7
  var ApplyValueTransformers_1 = require("../util/ApplyValueTransformers");
9
8
  /**
@@ -236,9 +235,9 @@ var ColumnMetadata = /** @class */ (function () {
236
235
  * Creates entity id map from the given entity ids array.
237
236
  */
238
237
  ColumnMetadata.prototype.createValueMap = function (value, useDatabaseName) {
238
+ var _a;
239
239
  var _this = this;
240
240
  if (useDatabaseName === void 0) { useDatabaseName = false; }
241
- var _a;
242
241
  // extract column value from embeds of entity if column is in embedded
243
242
  if (this.embeddedMetadata) {
244
243
  // example: post[data][information][counters].id where "data", "information" and "counters" are embeddeds
@@ -281,8 +280,8 @@ var ColumnMetadata = /** @class */ (function () {
281
280
  * { id: 1 } or { title: "hello" }, { counters: { code: 1 } }, { data: { information: { counters: { code: 1 } } } }
282
281
  */
283
282
  ColumnMetadata.prototype.getEntityValueMap = function (entity, options) {
284
- var _this = this;
285
283
  var _a, _b;
284
+ var _this = this;
286
285
  var returnNulls = false; // options && options.skipNulls === false ? false : true; // todo: remove if current will not bring problems, uncomment if it will.
287
286
  // extract column value from embeds of entity if column is in embedded
288
287
  if (this.embeddedMetadata) {
@@ -362,20 +361,20 @@ var ColumnMetadata = /** @class */ (function () {
362
361
  if (this.relationMetadata && this.referencedColumn) {
363
362
  var relatedEntity = this.relationMetadata.getEntityValue(embeddedObject);
364
363
  if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator_1.FindOperator)) {
365
- value = this.referencedColumn.getEntityValue(PromiseUtils_1.PromiseUtils.extractValue(relatedEntity));
364
+ value = this.referencedColumn.getEntityValue(relatedEntity);
366
365
  }
367
366
  else if (embeddedObject[this.propertyName] && embeddedObject[this.propertyName] instanceof Object && !(embeddedObject[this.propertyName] instanceof FindOperator_1.FindOperator)) {
368
- value = this.referencedColumn.getEntityValue(PromiseUtils_1.PromiseUtils.extractValue(embeddedObject[this.propertyName]));
367
+ value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);
369
368
  }
370
369
  else {
371
- value = PromiseUtils_1.PromiseUtils.extractValue(embeddedObject[this.propertyName]);
370
+ value = embeddedObject[this.propertyName];
372
371
  }
373
372
  }
374
373
  else if (this.referencedColumn) {
375
- value = this.referencedColumn.getEntityValue(PromiseUtils_1.PromiseUtils.extractValue(embeddedObject[this.propertyName]));
374
+ value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);
376
375
  }
377
376
  else {
378
- value = PromiseUtils_1.PromiseUtils.extractValue(embeddedObject[this.propertyName]);
377
+ value = embeddedObject[this.propertyName];
379
378
  }
380
379
  }
381
380
  }
@@ -383,17 +382,17 @@ var ColumnMetadata = /** @class */ (function () {
383
382
  if (this.relationMetadata && this.referencedColumn) {
384
383
  var relatedEntity = this.relationMetadata.getEntityValue(entity);
385
384
  if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator_1.FindOperator) && !(relatedEntity instanceof Function)) {
386
- value = this.referencedColumn.getEntityValue(PromiseUtils_1.PromiseUtils.extractValue(relatedEntity));
385
+ value = this.referencedColumn.getEntityValue(relatedEntity);
387
386
  }
388
387
  else if (entity[this.propertyName] && entity[this.propertyName] instanceof Object && !(entity[this.propertyName] instanceof FindOperator_1.FindOperator) && !(entity[this.propertyName] instanceof Function)) {
389
- value = this.referencedColumn.getEntityValue(PromiseUtils_1.PromiseUtils.extractValue(entity[this.propertyName]));
388
+ value = this.referencedColumn.getEntityValue(entity[this.propertyName]);
390
389
  }
391
390
  else {
392
391
  value = entity[this.propertyName];
393
392
  }
394
393
  }
395
394
  else if (this.referencedColumn) {
396
- value = this.referencedColumn.getEntityValue(PromiseUtils_1.PromiseUtils.extractValue(entity[this.propertyName]));
395
+ value = this.referencedColumn.getEntityValue(entity[this.propertyName]);
397
396
  }
398
397
  else {
399
398
  value = entity[this.propertyName];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/metadata/ColumnMetadata.ts"],"names":[],"mappings":";;;AAOA,6CAA0C;AAE1C,6DAA0D;AAC1D,qDAAkD;AAClD,6DAA0D;AAC1D,yEAAsE;AAEtE;;GAEG;AACH;IAoSI,wEAAwE;IACxE,cAAc;IACd,wEAAwE;IAExE,wBAAY,OAUX;QAzQD;;WAEG;QACH,WAAM,GAAW,EAAE,CAAC;QAiBpB;;WAEG;QACH,cAAS,GAAY,KAAK,CAAC;QAE3B;;WAEG;QACH,gBAAW,GAAY,KAAK,CAAC;QAE7B;;WAEG;QACH,eAAU,GAAY,KAAK,CAAC;QAE5B;;WAEG;QACH,aAAQ,GAAY,IAAI,CAAC;QAEzB;;WAEG;QACH,aAAQ,GAAY,IAAI,CAAC;QAEzB;;WAEG;QACH,aAAQ,GAAY,IAAI,CAAC;QAOzB;;;WAGG;QACH,YAAO,GAAW,EAAE,CAAC;QAwBrB;;;WAGG;QACH,aAAQ,GAAY,KAAK,CAAC;QAE1B;;WAEG;QACH,aAAQ,GAAY,KAAK,CAAC;QA+B1B;;WAEG;QACH,YAAO,GAAY,KAAK,CAAC;QAuCzB;;WAEG;QACH,cAAS,GAAY,KAAK,CAAC;QAE3B;;WAEG;QACH,oBAAe,GAAY,KAAK,CAAC;QAEjC;;WAEG;QACH,gBAAW,GAAY,KAAK,CAAC;QAE7B;;WAEG;QACH,iBAAY,GAAY,KAAK,CAAC;QAE9B;;WAEG;QACH,iBAAY,GAAY,KAAK,CAAC;QAE9B;;WAEG;QACH,iBAAY,GAAY,KAAK,CAAC;QAE9B;;WAEG;QACH,cAAS,GAAY,KAAK,CAAC;QAE3B;;WAEG;QACH,eAAU,GAAY,KAAK,CAAC;QAoB5B;;;WAGG;QACH,oBAAe,GAAY,KAAK,CAAC;QAEjC;;;WAGG;QACH,qBAAgB,GAAY,KAAK,CAAC;QAElC;;;WAGG;QACH,uBAAkB,GAAY,KAAK,CAAC;QA2BhC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAiB,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM;YACnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY;YACzB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAClD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;YACzB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACvD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI;YACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1C,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;YAC9B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAClD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,2DAA2D;YAClG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;YACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;YACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;YACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;YAC3C,IAAI,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;YAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;YAC/E,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,8GAA8G;SACvI;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;YAC5C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC1F,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;qBAC7C,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,KAAK,CAAC,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAK,oEAAoE;qBACnG,GAAG,CAAC,UAAA,GAAG,IAAI,OAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAsB,CAAC,GAAG,CAAC,EAAjD,CAAiD,CAAC,CAAC;aAEtE;iBAAM;gBACH,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;aACzC;SACJ;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjD;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YACnC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACtD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;SAC5G;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;YAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;YAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;YACnB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;YACrD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;YACvD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;YACvD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC;YACvD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;YAChC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACxD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;YACvC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACtE,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;YACvC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1C,IAAI,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC;QACpE,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI;gBACV,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,OAAO;gBACb,IAAI,CAAC,OAAO,GAAG,cAAM,OAAA,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,EAA3D,CAA2D,CAAC;YACrF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB;gBAC7F,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC;SACtF;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI;gBACV,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,OAAO;gBACb,IAAI,CAAC,OAAO,GAAG,cAAM,OAAA,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,iBAAiB,EAA3D,CAA2D,CAAC;YACrF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB;gBAC7F,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC;SACtF;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI;gBACV,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,UAAU;gBAChB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,kBAAkB,CAAC;YACnF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB;gBAC7F,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC;SACtF;QACD,IAAI,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;QAClE,IAAI,OAAO,CAAC,WAAW;YACnB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC3C,IAAI,OAAO,CAAC,aAAa;YACrB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;QACjD,IAAI,OAAO,CAAC,cAAc;YACtB,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;QACnD,IAAI,OAAO,CAAC,gBAAgB;YACxB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC3D,CAAC;IAED,wEAAwE;IACxE,iBAAiB;IACjB,wEAAwE;IAExE;;OAEG;IACH,uCAAc,GAAd,UAAe,KAAU,EAAE,eAAuB;QAAlD,iBA0CC;QA1C0B,gCAAA,EAAA,uBAAuB;;QAE9C,sEAAsE;QACtE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAEvB,yGAAyG;YACzG,0FAA0F;YAC1F,8DAA8D;YAE9D,0HAA0H;YAC1H,IAAM,aAAa,oBAAO,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAErE,6FAA6F;YAC7F,kFAAkF;YAClF,gFAAgF;YAChF,4HAA4H;YAC5H,2CAA2C;YAC3C,IAAM,4BAA0B,GAAG,UAAC,aAAuB,EAAE,GAAkB;gBAC3E,IAAM,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC3C,IAAI,YAAY,EAAE;oBACd,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;oBACvB,4BAA0B,CAAC,aAAa,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;oBAC7D,OAAO,GAAG,CAAC;iBACd;gBAED,4FAA4F;gBAC5F,IAAI,CAAC,KAAI,CAAC,kBAAkB,KAAK,WAAW,IAAI,KAAI,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,KAAI,CAAC,IAAI,KAAK,QAAQ;oBAC1G,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE1B,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACrE,OAAO,GAAG,CAAC;YACf,CAAC,CAAC;YACF,OAAO,4BAA0B,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;SAExD;aAAM,EAAE,0FAA0F;YAE/F,4FAA4F;YAC5F,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,WAAW,IAAI,IAAI,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAC1G,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAE1B,gBAAS,GAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAG,KAAK,KAAG;SAC/E;IACL,CAAC;IAED;;;;;;OAMG;IACH,0CAAiB,GAAjB,UAAkB,MAAqB,EAAE,OAAiC;QAA1E,iBAyDC;;QAxDG,IAAM,WAAW,GAAG,KAAK,CAAC,CAAC,mIAAmI;QAE9J,sEAAsE;QACtE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAEvB,yGAAyG;YACzG,0FAA0F;YAC1F,8DAA8D;YAE9D,0HAA0H;YAC1H,IAAM,aAAa,oBAAO,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAErE,6FAA6F;YAC7F,kFAAkF;YAClF,gFAAgF;YAChF,4HAA4H;YAC5H,2CAA2C;YAC3C,IAAM,4BAA0B,GAAG,UAAC,aAAuB,EAAE,KAAoB,EAAE,GAAkB;gBACjG,IAAM,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC3C,IAAI,KAAK,KAAK,SAAS;oBACnB,OAAO,GAAG,CAAC;gBAEf,IAAI,YAAY,EAAE;oBACd,IAAM,MAAM,GAAkB,EAAE,CAAC;oBACjC,4BAA0B,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;oBACvE,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;wBAChC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;qBAC9B;oBACD,OAAO,GAAG,CAAC;iBACd;gBACD,IAAI,KAAK,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,KAAK,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;oBACtG,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC;gBACtD,OAAO,GAAG,CAAC;YACf,CAAC,CAAC;YACF,IAAM,GAAG,GAAkB,EAAE,CAAC;YAC9B,4BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;SAExD;aAAM,EAAE,0FAA0F;YAC/F,IAAI,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,MAAM,EAAE;gBACnG,IAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,UAAU;oBACjE,IAAM,KAAK,GAAG,UAAU,CAAC,gBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBACxF,IAAI,KAAK,KAAK,SAAS;wBAAE,OAAO,GAAG,CAAC;oBACpC,OAAO,mBAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC1C,CAAC,EAAE,EAAE,CAAC,CAAC;gBACP,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC3B,gBAAS,GAAC,IAAI,CAAC,YAAY,IAAG,GAAG,KAAG;gBAExC,OAAO,SAAS,CAAC;aACpB;iBAAM;gBACH,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,SAAS,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;oBACxG,gBAAS,GAAC,IAAI,CAAC,YAAY,IAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAG;gBAE9D,OAAO,SAAS,CAAC;aACpB;SACJ;IACL,CAAC;IAED;;;OAGG;IACH,uCAAc,GAAd,UAAe,MAAqB,EAAE,SAA0B;QAA1B,0BAAA,EAAA,iBAA0B;QAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAE9D,yEAAyE;QACzE,IAAI,KAAK,GAAQ,SAAS,CAAC;QAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAEvB,yGAAyG;YACzG,uEAAuE;YAEvE,0HAA0H;YAC1H,IAAM,aAAa,oBAAO,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;YAErE,oHAAoH;YACpH,uHAAuH;YACvH,IAAM,4BAA0B,GAAG,UAAC,aAAuB,EAAE,KAAoB;gBAC7E,IAAM,YAAY,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC3C,OAAO,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,4BAA0B,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1G,CAAC,CAAC;YAEF,+GAA+G;YAC/G,IAAM,cAAc,GAAG,4BAA0B,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACzE,IAAI,cAAc,EAAE;gBAChB,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBAChD,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;oBAC3E,IAAI,aAAa,IAAI,aAAa,YAAY,MAAM,IAAI,CAAC,CAAC,aAAa,YAAY,2BAAY,CAAC,EAAE;wBAC9F,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,2BAAY,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;qBAE1F;yBAAM,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,MAAM,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,2BAAY,CAAC,EAAE;wBACjK,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,2BAAY,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;qBAE9G;yBAAM;wBACH,KAAK,GAAG,2BAAY,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;qBAExE;iBAEJ;qBAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBAC9B,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,2BAAY,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;iBAE9G;qBAAM;oBACH,KAAK,GAAG,2BAAY,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;iBACxE;aACJ;SAEJ;aAAM,EAAE,oFAAoF;YACzF,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAChD,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACnE,IAAI,aAAa,IAAI,aAAa,YAAY,MAAM,IAAI,CAAC,CAAC,aAAa,YAAY,2BAAY,CAAC,IAAI,CAAC,CAAC,aAAa,YAAY,QAAQ,CAAC,EAAE;oBACtI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,2BAAY,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;iBAE1F;qBAAM,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,2BAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,QAAQ,CAAC,EAAE;oBAC7L,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,2BAAY,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;iBAEtG;qBAAM;oBACH,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACrC;aAEJ;iBAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAC9B,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,2BAAY,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aAEtG;iBAAM;gBACH,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACrC;SACJ;QAED,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW;YAC7B,KAAK,GAAG,+CAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAExE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,uCAAc,GAAd,UAAe,MAAqB,EAAE,KAAU;QAAhD,iBAwBC;QAvBG,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAEvB,0HAA0H;YAC1H,IAAM,4BAA0B,GAAG,UAAC,iBAAqC,EAAE,GAAkB;gBACzF,8CAA8C;gBAC9C,yEAAyE;gBAEzE,IAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC;gBACnD,IAAI,gBAAgB,EAAE;oBAClB,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC;wBACnC,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC;oBAEnE,4BAA0B,CAAC,iBAAiB,EAAE,GAAG,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;oBAClF,OAAO,GAAG,CAAC;iBACd;gBACD,GAAG,CAAC,KAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBAC/B,OAAO,GAAG,CAAC;YACf,CAAC,CAAC;YACF,OAAO,4BAA0B,kBAAK,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,GAAG,MAAM,CAAC,CAAC;SAE9F;aAAM;YACH,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;SACrC;IACL,CAAC;IAED,wEAAwE;IACxE,kBAAkB;IAClB,wEAAwE;IAExE,8BAAK,GAAL,UAAM,UAAsB;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,IAAI,CAAC,2BAA2B,GAAG,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACvH,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,0CAAiB,GAA3B;QACI,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,MAAM;YACzE,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAErE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;QAE1B,0EAA0E;QAC1E,mFAAmF;QACnF,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;YACtI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAErD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,0CAAiB,GAA3B;QACI,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,MAAM;YACzE,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAErE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;QAE1B,0EAA0E;QAC1E,mFAAmF;QACnF,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;YACtI,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAErD,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,0CAAiB,GAA3B,UAA4B,UAAsB;QAC9C,IAAI,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,IAAI,UAAU,CAAC,MAAM,YAAY,yBAAW,EAAE,sEAAsE;YAChH,aAAa,GAAG,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC1G,CAAC;IAEL,qBAAC;AAAD,CAhsBA,AAgsBC,IAAA;AAhsBY,wCAAc","file":"ColumnMetadata.js","sourcesContent":["import {ColumnType} from \"../driver/types/ColumnTypes\";\nimport {EntityMetadata} from \"./EntityMetadata\";\nimport {EmbeddedMetadata} from \"./EmbeddedMetadata\";\nimport {RelationMetadata} from \"./RelationMetadata\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {ColumnMetadataArgs} from \"../metadata-args/ColumnMetadataArgs\";\nimport {Connection} from \"../connection/Connection\";\nimport {OrmUtils} from \"../util/OrmUtils\";\nimport {ValueTransformer} from \"../decorator/options/ValueTransformer\";\nimport {MongoDriver} from \"../driver/mongodb/MongoDriver\";\nimport {PromiseUtils} from \"../util/PromiseUtils\";\nimport {FindOperator} from \"../find-options/FindOperator\";\nimport {ApplyValueTransformers} from \"../util/ApplyValueTransformers\";\n\n/**\n * This metadata contains all information about entity's column.\n */\nexport class ColumnMetadata {\n\n // ---------------------------------------------------------------------\n // Public Properties\n // ---------------------------------------------------------------------\n\n /**\n * Target class where column decorator is used.\n * This may not be always equal to entity metadata (for example embeds or inheritance cases).\n */\n target: Function|string;\n\n /**\n * Entity metadata where this column metadata is.\n *\n * For example for @Column() name: string in Post, entityMetadata will be metadata of Post entity.\n */\n entityMetadata: EntityMetadata;\n\n /**\n * Embedded metadata where this column metadata is.\n * If this column is not in embed then this property value is undefined.\n */\n embeddedMetadata?: EmbeddedMetadata;\n\n /**\n * If column is a foreign key of some relation then this relation's metadata will be there.\n * If this column does not have a foreign key then this property value is undefined.\n */\n relationMetadata?: RelationMetadata;\n\n /**\n * Class's property name on which this column is applied.\n */\n propertyName: string;\n\n /**\n * The database type of the column.\n */\n type: ColumnType;\n\n /**\n * Type's length in the database.\n */\n length: string = \"\";\n\n /**\n * Type's display width in the database.\n */\n width?: number;\n\n /**\n * Defines column character set.\n */\n charset?: string;\n\n /**\n * Defines column collation.\n */\n collation?: string;\n\n /**\n * Indicates if this column is a primary key.\n */\n isPrimary: boolean = false;\n\n /**\n * Indicates if this column is generated (auto increment or generated other way).\n */\n isGenerated: boolean = false;\n\n /**\n * Indicates if column can contain nulls or not.\n */\n isNullable: boolean = false;\n\n /**\n * Indicates if column is selected by query builder or not.\n */\n isSelect: boolean = true;\n\n /**\n * Indicates if column is inserted by default or not.\n */\n isInsert: boolean = true;\n\n /**\n * Indicates if column allows updates or not.\n */\n isUpdate: boolean = true;\n\n /**\n * Specifies generation strategy if this column will use auto increment.\n */\n generationStrategy?: \"uuid\"|\"increment\"|\"rowid\";\n\n /**\n * Column comment.\n * This feature is not supported by all databases.\n */\n comment: string = \"\";\n\n /**\n * Default database value.\n */\n default?: any;\n\n /**\n * ON UPDATE trigger. Works only for MySQL.\n */\n onUpdate?: string;\n\n /**\n * The precision for a decimal (exact numeric) column (applies only for decimal column),\n * which is the maximum number of digits that are stored for the values.\n */\n precision?: number|null;\n\n /**\n * The scale for a decimal (exact numeric) column (applies only for decimal column),\n * which represents the number of digits to the right of the decimal point and must not be greater than precision.\n */\n scale?: number;\n\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n zerofill: boolean = false;\n\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n unsigned: boolean = false;\n\n /**\n * Array of possible enumerated values.\n *\n * `postgres` and `mysql` store enum values as strings but we want to keep support\n * for numeric and heterogeneous based typescript enums, so we need (string|number)[]\n */\n enum?: (string|number)[];\n\n /**\n * Exact name of enum\n */\n enumName?: string;\n\n /**\n * Generated column expression. Supports only in MySQL.\n */\n asExpression?: string;\n\n /**\n * Generated column type. Supports only in MySQL.\n */\n generatedType?: \"VIRTUAL\"|\"STORED\";\n\n /**\n * Return type of HSTORE column.\n * Returns value as string or as object.\n */\n hstoreType?: \"object\"|\"string\";\n\n /**\n * Indicates if this column is an array.\n */\n isArray: boolean = false;\n\n /**\n * Gets full path to this column property (including column property name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just property name of the column.\n */\n propertyPath: string;\n\n /**\n * Same as property path, but dots are replaced with '_'.\n * Used in query builder statements.\n */\n propertyAliasName: string;\n\n /**\n * Gets full path to this column database name (including column database name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just database name of the column.\n */\n databasePath: string;\n\n /**\n * Complete column name in the database including its embedded prefixes.\n */\n databaseName: string;\n\n /**\n * Database name in the database without embedded prefixes applied.\n */\n databaseNameWithoutPrefixes: string;\n\n /**\n * Database name set by entity metadata builder, not yet passed naming strategy process and without embedded prefixes.\n */\n givenDatabaseName?: string;\n\n /**\n * Indicates if column is virtual. Virtual columns are not mapped to the entity.\n */\n isVirtual: boolean = false;\n\n /**\n * Indicates if column is discriminator. Discriminator columns are not mapped to the entity.\n */\n isDiscriminator: boolean = false;\n\n /**\n * Indicates if column is tree-level column. Tree-level columns are used in closure entities.\n */\n isTreeLevel: boolean = false;\n\n /**\n * Indicates if this column contains an entity creation date.\n */\n isCreateDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity update date.\n */\n isUpdateDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity delete date.\n */\n isDeleteDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity version.\n */\n isVersion: boolean = false;\n\n /**\n * Indicates if this column contains an object id.\n */\n isObjectId: boolean = false;\n\n /**\n * If this column is foreign key then it references some other column,\n * and this property will contain reference to this column.\n */\n referencedColumn: ColumnMetadata|undefined;\n\n /**\n * Specifies a value transformer that is to be used to (un)marshal\n * this column when reading or writing to the database.\n */\n transformer?: ValueTransformer|ValueTransformer[];\n\n /**\n * Column type in the case if this column is in the closure table.\n * Column can be ancestor or descendant in the closure tables.\n */\n closureType?: \"ancestor\"|\"descendant\";\n\n /**\n * Indicates if this column is nested set's left column.\n * Used only in tree entities with nested-set type.\n */\n isNestedSetLeft: boolean = false;\n\n /**\n * Indicates if this column is nested set's right column.\n * Used only in tree entities with nested-set type.\n */\n isNestedSetRight: boolean = false;\n\n /**\n * Indicates if this column is materialized path's path column.\n * Used only in tree entities with materialized path type.\n */\n isMaterializedPath: boolean = false;\n\n /**\n * Spatial Feature Type (Geometry, Point, Polygon, etc.)\n */\n spatialFeatureType?: string;\n\n /**\n * SRID (Spatial Reference ID (EPSG code))\n */\n srid?: number;\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n connection: Connection,\n entityMetadata: EntityMetadata,\n embeddedMetadata?: EmbeddedMetadata,\n referencedColumn?: ColumnMetadata,\n args: ColumnMetadataArgs,\n closureType?: \"ancestor\"|\"descendant\",\n nestedSetLeft?: boolean,\n nestedSetRight?: boolean,\n materializedPath?: boolean,\n }) {\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata!;\n this.referencedColumn = options.referencedColumn;\n if (options.args.target)\n this.target = options.args.target;\n if (options.args.propertyName)\n this.propertyName = options.args.propertyName;\n if (options.args.options.name)\n this.givenDatabaseName = options.args.options.name;\n if (options.args.options.type)\n this.type = options.args.options.type;\n if (options.args.options.length)\n this.length = options.args.options.length ? options.args.options.length.toString() : \"\";\n if (options.args.options.width)\n this.width = options.args.options.width;\n if (options.args.options.charset)\n this.charset = options.args.options.charset;\n if (options.args.options.collation)\n this.collation = options.args.options.collation;\n if (options.args.options.primary)\n this.isPrimary = options.args.options.primary;\n if (options.args.options.default === null) // to make sure default: null is the same as nullable: true\n this.isNullable = true;\n if (options.args.options.nullable !== undefined)\n this.isNullable = options.args.options.nullable;\n if (options.args.options.select !== undefined)\n this.isSelect = options.args.options.select;\n if (options.args.options.insert !== undefined)\n this.isInsert = options.args.options.insert;\n if (options.args.options.update !== undefined)\n this.isUpdate = options.args.options.update;\n if (options.args.options.readonly !== undefined)\n this.isUpdate = !options.args.options.readonly;\n if (options.args.options.comment)\n this.comment = options.args.options.comment;\n if (options.args.options.default !== undefined)\n this.default = options.args.options.default;\n if (options.args.options.onUpdate)\n this.onUpdate = options.args.options.onUpdate;\n if (options.args.options.scale !== null && options.args.options.scale !== undefined)\n this.scale = options.args.options.scale;\n if (options.args.options.zerofill) {\n this.zerofill = options.args.options.zerofill;\n this.unsigned = true; // if you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n }\n if (options.args.options.unsigned)\n this.unsigned = options.args.options.unsigned;\n if (options.args.options.precision !== undefined)\n this.precision = options.args.options.precision;\n if (options.args.options.enum) {\n if (options.args.options.enum instanceof Object && !Array.isArray(options.args.options.enum)) {\n this.enum = Object.keys(options.args.options.enum)\n .filter(key => isNaN(+key)) // remove numeric keys - typescript numeric enum types generate them\n .map(key => (options.args.options.enum as ObjectLiteral)[key]);\n\n } else {\n this.enum = options.args.options.enum;\n }\n }\n if (options.args.options.enumName) {\n this.enumName = options.args.options.enumName;\n }\n if (options.args.options.asExpression) {\n this.asExpression = options.args.options.asExpression;\n this.generatedType = options.args.options.generatedType ? options.args.options.generatedType : \"VIRTUAL\";\n }\n if (options.args.options.hstoreType)\n this.hstoreType = options.args.options.hstoreType;\n if (options.args.options.array)\n this.isArray = options.args.options.array;\n if (options.args.mode) {\n this.isVirtual = options.args.mode === \"virtual\";\n this.isTreeLevel = options.args.mode === \"treeLevel\";\n this.isCreateDate = options.args.mode === \"createDate\";\n this.isUpdateDate = options.args.mode === \"updateDate\";\n this.isDeleteDate = options.args.mode === \"deleteDate\";\n this.isVersion = options.args.mode === \"version\";\n this.isObjectId = options.args.mode === \"objectId\";\n }\n if (options.args.options.transformer)\n this.transformer = options.args.options.transformer;\n if (options.args.options.spatialFeatureType)\n this.spatialFeatureType = options.args.options.spatialFeatureType;\n if (options.args.options.srid !== undefined)\n this.srid = options.args.options.srid;\n if (this.isTreeLevel)\n this.type = options.connection.driver.mappedDataTypes.treeLevel;\n if (this.isCreateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.createDate;\n if (!this.default)\n this.default = () => options.connection.driver.mappedDataTypes.createDateDefault;\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.createDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.createDatePrecision;\n }\n if (this.isUpdateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.updateDate;\n if (!this.default)\n this.default = () => options.connection.driver.mappedDataTypes.updateDateDefault;\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.updateDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.updateDatePrecision;\n }\n if (this.isDeleteDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.deleteDate;\n if (!this.isNullable)\n this.isNullable = options.connection.driver.mappedDataTypes.deleteDateNullable;\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.deleteDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.deleteDatePrecision;\n }\n if (this.isVersion)\n this.type = options.connection.driver.mappedDataTypes.version;\n if (options.closureType)\n this.closureType = options.closureType;\n if (options.nestedSetLeft)\n this.isNestedSetLeft = options.nestedSetLeft;\n if (options.nestedSetRight)\n this.isNestedSetRight = options.nestedSetRight;\n if (options.materializedPath)\n this.isMaterializedPath = options.materializedPath;\n }\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Creates entity id map from the given entity ids array.\n */\n createValueMap(value: any, useDatabaseName = false) {\n\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (propertyNames: string[], map: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n if (propertyName) {\n map[propertyName] = {};\n extractEmbeddedColumnValue(propertyNames, map[propertyName]);\n return map;\n }\n\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\")\n value = String(value);\n\n map[useDatabaseName ? this.databaseName : this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue(propertyNames, {});\n\n } else { // no embeds - no problems. Simply return column property name and its value of the entity\n\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\")\n value = String(value);\n\n return { [useDatabaseName ? this.databaseName : this.propertyName]: value };\n }\n }\n\n /**\n * Extracts column value and returns its column name with this value in a literal object.\n * If column is in embedded (or recursive embedded) it returns complex literal object.\n *\n * Examples what this method can return depend if this column is in embeds.\n * { id: 1 } or { title: \"hello\" }, { counters: { code: 1 } }, { data: { information: { counters: { code: 1 } } } }\n */\n getEntityValueMap(entity: ObjectLiteral, options?: { skipNulls?: boolean }): ObjectLiteral|undefined {\n const returnNulls = false; // options && options.skipNulls === false ? false : true; // todo: remove if current will not bring problems, uncomment if it will.\n\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (propertyNames: string[], value: ObjectLiteral, map: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n if (value === undefined)\n return map;\n\n if (propertyName) {\n const submap: ObjectLiteral = {};\n extractEmbeddedColumnValue(propertyNames, value[propertyName], submap);\n if (Object.keys(submap).length > 0) {\n map[propertyName] = submap;\n }\n return map;\n }\n if (value[this.propertyName] !== undefined && (returnNulls === false || value[this.propertyName] !== null))\n map[this.propertyName] = value[this.propertyName];\n return map;\n };\n const map: ObjectLiteral = {};\n extractEmbeddedColumnValue(propertyNames, entity, map);\n return Object.keys(map).length > 0 ? map : undefined;\n\n } else { // no embeds - no problems. Simply return column property name and its value of the entity\n if (this.relationMetadata && entity[this.propertyName] && entity[this.propertyName] instanceof Object) {\n const map = this.relationMetadata.joinColumns.reduce((map, joinColumn) => {\n const value = joinColumn.referencedColumn!.getEntityValueMap(entity[this.propertyName]);\n if (value === undefined) return map;\n return OrmUtils.mergeDeep(map, value);\n }, {});\n if (Object.keys(map).length > 0)\n return { [this.propertyName]: map };\n\n return undefined;\n } else {\n if (entity[this.propertyName] !== undefined && (returnNulls === false || entity[this.propertyName] !== null))\n return { [this.propertyName]: entity[this.propertyName] };\n\n return undefined;\n }\n }\n }\n\n /**\n * Extracts column value from the given entity.\n * If column is in embedded (or recursive embedded) it extracts its value from there.\n */\n getEntityValue(entity: ObjectLiteral, transform: boolean = false): any|undefined {\n if (entity === undefined || entity === null) return undefined;\n\n // extract column value from embeddeds of entity if column is in embedded\n let value: any = undefined;\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n\n // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters\n // this recursive function takes array of generated property names and gets the post[data][information][counters] embed\n const extractEmbeddedColumnValue = (propertyNames: string[], value: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n return propertyName && value ? extractEmbeddedColumnValue(propertyNames, value[propertyName]) : value;\n };\n\n // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName]\n const embeddedObject = extractEmbeddedColumnValue(propertyNames, entity);\n if (embeddedObject) {\n if (this.relationMetadata && this.referencedColumn) {\n const relatedEntity = this.relationMetadata.getEntityValue(embeddedObject);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator)) {\n value = this.referencedColumn.getEntityValue(PromiseUtils.extractValue(relatedEntity));\n\n } else if (embeddedObject[this.propertyName] && embeddedObject[this.propertyName] instanceof Object && !(embeddedObject[this.propertyName] instanceof FindOperator)) {\n value = this.referencedColumn.getEntityValue(PromiseUtils.extractValue(embeddedObject[this.propertyName]));\n\n } else {\n value = PromiseUtils.extractValue(embeddedObject[this.propertyName]);\n\n }\n\n } else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(PromiseUtils.extractValue(embeddedObject[this.propertyName]));\n\n } else {\n value = PromiseUtils.extractValue(embeddedObject[this.propertyName]);\n }\n }\n\n } else { // no embeds - no problems. Simply return column name by property name of the entity\n if (this.relationMetadata && this.referencedColumn) {\n const relatedEntity = this.relationMetadata.getEntityValue(entity);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator) && !(relatedEntity instanceof Function)) {\n value = this.referencedColumn.getEntityValue(PromiseUtils.extractValue(relatedEntity));\n\n } else if (entity[this.propertyName] && entity[this.propertyName] instanceof Object && !(entity[this.propertyName] instanceof FindOperator) && !(entity[this.propertyName] instanceof Function)) {\n value = this.referencedColumn.getEntityValue(PromiseUtils.extractValue(entity[this.propertyName]));\n\n } else {\n value = entity[this.propertyName];\n }\n\n } else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(PromiseUtils.extractValue(entity[this.propertyName]));\n\n } else {\n value = entity[this.propertyName];\n }\n }\n\n if (transform && this.transformer)\n value = ApplyValueTransformers.transformTo(this.transformer, value);\n\n return value;\n }\n\n /**\n * Sets given entity's column value.\n * Using of this method helps to set entity relation's value of the lazy and non-lazy relations.\n */\n setEntityValue(entity: ObjectLiteral, value: any): void {\n if (this.embeddedMetadata) {\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const extractEmbeddedColumnValue = (embeddedMetadatas: EmbeddedMetadata[], map: ObjectLiteral): any => {\n // if (!object[embeddedMetadata.propertyName])\n // object[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n const embeddedMetadata = embeddedMetadatas.shift();\n if (embeddedMetadata) {\n if (!map[embeddedMetadata.propertyName])\n map[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n extractEmbeddedColumnValue(embeddedMetadatas, map[embeddedMetadata.propertyName]);\n return map;\n }\n map[this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue([...this.embeddedMetadata.embeddedMetadataTree], entity);\n\n } else {\n entity[this.propertyName] = value;\n }\n }\n\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n\n build(connection: Connection): this {\n this.propertyPath = this.buildPropertyPath();\n this.propertyAliasName = this.propertyPath.replace(\".\", \"_\");\n this.databaseName = this.buildDatabaseName(connection);\n this.databasePath = this.buildDatabasePath();\n this.databaseNameWithoutPrefixes = connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, []);\n return this;\n }\n\n protected buildPropertyPath(): string {\n let path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n\n path += this.propertyName;\n\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName)\n path += \".\" + this.referencedColumn.propertyName;\n\n return path;\n }\n\n protected buildDatabasePath(): string {\n let path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n\n path += this.databaseName;\n\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.databaseName !== this.databaseName)\n path += \".\" + this.referencedColumn.databaseName;\n\n return path;\n }\n\n protected buildDatabaseName(connection: Connection): string {\n let propertyNames = this.embeddedMetadata ? this.embeddedMetadata.parentPrefixes : [];\n if (connection.driver instanceof MongoDriver) // we don't need to include embedded name for the mongodb column names\n propertyNames = [];\n return connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, propertyNames);\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/metadata/ColumnMetadata.ts"],"names":[],"mappings":"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","file":"ColumnMetadata.js","sourcesContent":["import {ColumnType} from \"../driver/types/ColumnTypes\";\nimport {EntityMetadata} from \"./EntityMetadata\";\nimport {EmbeddedMetadata} from \"./EmbeddedMetadata\";\nimport {RelationMetadata} from \"./RelationMetadata\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {ColumnMetadataArgs} from \"../metadata-args/ColumnMetadataArgs\";\nimport {Connection} from \"../connection/Connection\";\nimport {OrmUtils} from \"../util/OrmUtils\";\nimport {ValueTransformer} from \"../decorator/options/ValueTransformer\";\nimport {MongoDriver} from \"../driver/mongodb/MongoDriver\";\nimport {FindOperator} from \"../find-options/FindOperator\";\nimport {ApplyValueTransformers} from \"../util/ApplyValueTransformers\";\n\n/**\n * This metadata contains all information about entity's column.\n */\nexport class ColumnMetadata {\n\n // ---------------------------------------------------------------------\n // Public Properties\n // ---------------------------------------------------------------------\n\n /**\n * Target class where column decorator is used.\n * This may not be always equal to entity metadata (for example embeds or inheritance cases).\n */\n target: Function|string;\n\n /**\n * Entity metadata where this column metadata is.\n *\n * For example for @Column() name: string in Post, entityMetadata will be metadata of Post entity.\n */\n entityMetadata: EntityMetadata;\n\n /**\n * Embedded metadata where this column metadata is.\n * If this column is not in embed then this property value is undefined.\n */\n embeddedMetadata?: EmbeddedMetadata;\n\n /**\n * If column is a foreign key of some relation then this relation's metadata will be there.\n * If this column does not have a foreign key then this property value is undefined.\n */\n relationMetadata?: RelationMetadata;\n\n /**\n * Class's property name on which this column is applied.\n */\n propertyName: string;\n\n /**\n * The database type of the column.\n */\n type: ColumnType;\n\n /**\n * Type's length in the database.\n */\n length: string = \"\";\n\n /**\n * Type's display width in the database.\n */\n width?: number;\n\n /**\n * Defines column character set.\n */\n charset?: string;\n\n /**\n * Defines column collation.\n */\n collation?: string;\n\n /**\n * Indicates if this column is a primary key.\n */\n isPrimary: boolean = false;\n\n /**\n * Indicates if this column is generated (auto increment or generated other way).\n */\n isGenerated: boolean = false;\n\n /**\n * Indicates if column can contain nulls or not.\n */\n isNullable: boolean = false;\n\n /**\n * Indicates if column is selected by query builder or not.\n */\n isSelect: boolean = true;\n\n /**\n * Indicates if column is inserted by default or not.\n */\n isInsert: boolean = true;\n\n /**\n * Indicates if column allows updates or not.\n */\n isUpdate: boolean = true;\n\n /**\n * Specifies generation strategy if this column will use auto increment.\n */\n generationStrategy?: \"uuid\"|\"increment\"|\"rowid\";\n\n /**\n * Column comment.\n * This feature is not supported by all databases.\n */\n comment: string = \"\";\n\n /**\n * Default database value.\n */\n default?: any;\n\n /**\n * ON UPDATE trigger. Works only for MySQL.\n */\n onUpdate?: string;\n\n /**\n * The precision for a decimal (exact numeric) column (applies only for decimal column),\n * which is the maximum number of digits that are stored for the values.\n */\n precision?: number|null;\n\n /**\n * The scale for a decimal (exact numeric) column (applies only for decimal column),\n * which represents the number of digits to the right of the decimal point and must not be greater than precision.\n */\n scale?: number;\n\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n zerofill: boolean = false;\n\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n unsigned: boolean = false;\n\n /**\n * Array of possible enumerated values.\n *\n * `postgres` and `mysql` store enum values as strings but we want to keep support\n * for numeric and heterogeneous based typescript enums, so we need (string|number)[]\n */\n enum?: (string|number)[];\n\n /**\n * Exact name of enum\n */\n enumName?: string;\n\n /**\n * Generated column expression. Supports only in MySQL.\n */\n asExpression?: string;\n\n /**\n * Generated column type. Supports only in MySQL.\n */\n generatedType?: \"VIRTUAL\"|\"STORED\";\n\n /**\n * Return type of HSTORE column.\n * Returns value as string or as object.\n */\n hstoreType?: \"object\"|\"string\";\n\n /**\n * Indicates if this column is an array.\n */\n isArray: boolean = false;\n\n /**\n * Gets full path to this column property (including column property name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just property name of the column.\n */\n propertyPath: string;\n\n /**\n * Same as property path, but dots are replaced with '_'.\n * Used in query builder statements.\n */\n propertyAliasName: string;\n\n /**\n * Gets full path to this column database name (including column database name).\n * Full path is relevant when column is used in embeds (one or multiple nested).\n * For example it will return \"counters.subcounters.likes\".\n * If property is not in embeds then it returns just database name of the column.\n */\n databasePath: string;\n\n /**\n * Complete column name in the database including its embedded prefixes.\n */\n databaseName: string;\n\n /**\n * Database name in the database without embedded prefixes applied.\n */\n databaseNameWithoutPrefixes: string;\n\n /**\n * Database name set by entity metadata builder, not yet passed naming strategy process and without embedded prefixes.\n */\n givenDatabaseName?: string;\n\n /**\n * Indicates if column is virtual. Virtual columns are not mapped to the entity.\n */\n isVirtual: boolean = false;\n\n /**\n * Indicates if column is discriminator. Discriminator columns are not mapped to the entity.\n */\n isDiscriminator: boolean = false;\n\n /**\n * Indicates if column is tree-level column. Tree-level columns are used in closure entities.\n */\n isTreeLevel: boolean = false;\n\n /**\n * Indicates if this column contains an entity creation date.\n */\n isCreateDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity update date.\n */\n isUpdateDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity delete date.\n */\n isDeleteDate: boolean = false;\n\n /**\n * Indicates if this column contains an entity version.\n */\n isVersion: boolean = false;\n\n /**\n * Indicates if this column contains an object id.\n */\n isObjectId: boolean = false;\n\n /**\n * If this column is foreign key then it references some other column,\n * and this property will contain reference to this column.\n */\n referencedColumn: ColumnMetadata|undefined;\n\n /**\n * Specifies a value transformer that is to be used to (un)marshal\n * this column when reading or writing to the database.\n */\n transformer?: ValueTransformer|ValueTransformer[];\n\n /**\n * Column type in the case if this column is in the closure table.\n * Column can be ancestor or descendant in the closure tables.\n */\n closureType?: \"ancestor\"|\"descendant\";\n\n /**\n * Indicates if this column is nested set's left column.\n * Used only in tree entities with nested-set type.\n */\n isNestedSetLeft: boolean = false;\n\n /**\n * Indicates if this column is nested set's right column.\n * Used only in tree entities with nested-set type.\n */\n isNestedSetRight: boolean = false;\n\n /**\n * Indicates if this column is materialized path's path column.\n * Used only in tree entities with materialized path type.\n */\n isMaterializedPath: boolean = false;\n\n /**\n * Spatial Feature Type (Geometry, Point, Polygon, etc.)\n */\n spatialFeatureType?: string;\n\n /**\n * SRID (Spatial Reference ID (EPSG code))\n */\n srid?: number;\n\n // ---------------------------------------------------------------------\n // Constructor\n // ---------------------------------------------------------------------\n\n constructor(options: {\n connection: Connection,\n entityMetadata: EntityMetadata,\n embeddedMetadata?: EmbeddedMetadata,\n referencedColumn?: ColumnMetadata,\n args: ColumnMetadataArgs,\n closureType?: \"ancestor\"|\"descendant\",\n nestedSetLeft?: boolean,\n nestedSetRight?: boolean,\n materializedPath?: boolean,\n }) {\n this.entityMetadata = options.entityMetadata;\n this.embeddedMetadata = options.embeddedMetadata!;\n this.referencedColumn = options.referencedColumn;\n if (options.args.target)\n this.target = options.args.target;\n if (options.args.propertyName)\n this.propertyName = options.args.propertyName;\n if (options.args.options.name)\n this.givenDatabaseName = options.args.options.name;\n if (options.args.options.type)\n this.type = options.args.options.type;\n if (options.args.options.length)\n this.length = options.args.options.length ? options.args.options.length.toString() : \"\";\n if (options.args.options.width)\n this.width = options.args.options.width;\n if (options.args.options.charset)\n this.charset = options.args.options.charset;\n if (options.args.options.collation)\n this.collation = options.args.options.collation;\n if (options.args.options.primary)\n this.isPrimary = options.args.options.primary;\n if (options.args.options.default === null) // to make sure default: null is the same as nullable: true\n this.isNullable = true;\n if (options.args.options.nullable !== undefined)\n this.isNullable = options.args.options.nullable;\n if (options.args.options.select !== undefined)\n this.isSelect = options.args.options.select;\n if (options.args.options.insert !== undefined)\n this.isInsert = options.args.options.insert;\n if (options.args.options.update !== undefined)\n this.isUpdate = options.args.options.update;\n if (options.args.options.readonly !== undefined)\n this.isUpdate = !options.args.options.readonly;\n if (options.args.options.comment)\n this.comment = options.args.options.comment;\n if (options.args.options.default !== undefined)\n this.default = options.args.options.default;\n if (options.args.options.onUpdate)\n this.onUpdate = options.args.options.onUpdate;\n if (options.args.options.scale !== null && options.args.options.scale !== undefined)\n this.scale = options.args.options.scale;\n if (options.args.options.zerofill) {\n this.zerofill = options.args.options.zerofill;\n this.unsigned = true; // if you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n }\n if (options.args.options.unsigned)\n this.unsigned = options.args.options.unsigned;\n if (options.args.options.precision !== undefined)\n this.precision = options.args.options.precision;\n if (options.args.options.enum) {\n if (options.args.options.enum instanceof Object && !Array.isArray(options.args.options.enum)) {\n this.enum = Object.keys(options.args.options.enum)\n .filter(key => isNaN(+key)) // remove numeric keys - typescript numeric enum types generate them\n .map(key => (options.args.options.enum as ObjectLiteral)[key]);\n\n } else {\n this.enum = options.args.options.enum;\n }\n }\n if (options.args.options.enumName) {\n this.enumName = options.args.options.enumName;\n }\n if (options.args.options.asExpression) {\n this.asExpression = options.args.options.asExpression;\n this.generatedType = options.args.options.generatedType ? options.args.options.generatedType : \"VIRTUAL\";\n }\n if (options.args.options.hstoreType)\n this.hstoreType = options.args.options.hstoreType;\n if (options.args.options.array)\n this.isArray = options.args.options.array;\n if (options.args.mode) {\n this.isVirtual = options.args.mode === \"virtual\";\n this.isTreeLevel = options.args.mode === \"treeLevel\";\n this.isCreateDate = options.args.mode === \"createDate\";\n this.isUpdateDate = options.args.mode === \"updateDate\";\n this.isDeleteDate = options.args.mode === \"deleteDate\";\n this.isVersion = options.args.mode === \"version\";\n this.isObjectId = options.args.mode === \"objectId\";\n }\n if (options.args.options.transformer)\n this.transformer = options.args.options.transformer;\n if (options.args.options.spatialFeatureType)\n this.spatialFeatureType = options.args.options.spatialFeatureType;\n if (options.args.options.srid !== undefined)\n this.srid = options.args.options.srid;\n if (this.isTreeLevel)\n this.type = options.connection.driver.mappedDataTypes.treeLevel;\n if (this.isCreateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.createDate;\n if (!this.default)\n this.default = () => options.connection.driver.mappedDataTypes.createDateDefault;\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.createDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.createDatePrecision;\n }\n if (this.isUpdateDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.updateDate;\n if (!this.default)\n this.default = () => options.connection.driver.mappedDataTypes.updateDateDefault;\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.updateDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.updateDatePrecision;\n }\n if (this.isDeleteDate) {\n if (!this.type)\n this.type = options.connection.driver.mappedDataTypes.deleteDate;\n if (!this.isNullable)\n this.isNullable = options.connection.driver.mappedDataTypes.deleteDateNullable;\n if (this.precision === undefined && options.connection.driver.mappedDataTypes.deleteDatePrecision)\n this.precision = options.connection.driver.mappedDataTypes.deleteDatePrecision;\n }\n if (this.isVersion)\n this.type = options.connection.driver.mappedDataTypes.version;\n if (options.closureType)\n this.closureType = options.closureType;\n if (options.nestedSetLeft)\n this.isNestedSetLeft = options.nestedSetLeft;\n if (options.nestedSetRight)\n this.isNestedSetRight = options.nestedSetRight;\n if (options.materializedPath)\n this.isMaterializedPath = options.materializedPath;\n }\n\n // ---------------------------------------------------------------------\n // Public Methods\n // ---------------------------------------------------------------------\n\n /**\n * Creates entity id map from the given entity ids array.\n */\n createValueMap(value: any, useDatabaseName = false) {\n\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (propertyNames: string[], map: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n if (propertyName) {\n map[propertyName] = {};\n extractEmbeddedColumnValue(propertyNames, map[propertyName]);\n return map;\n }\n\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\")\n value = String(value);\n\n map[useDatabaseName ? this.databaseName : this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue(propertyNames, {});\n\n } else { // no embeds - no problems. Simply return column property name and its value of the entity\n\n // this is bugfix for #720 when increment number is bigint we need to make sure its a string\n if ((this.generationStrategy === \"increment\" || this.generationStrategy === \"rowid\") && this.type === \"bigint\")\n value = String(value);\n\n return { [useDatabaseName ? this.databaseName : this.propertyName]: value };\n }\n }\n\n /**\n * Extracts column value and returns its column name with this value in a literal object.\n * If column is in embedded (or recursive embedded) it returns complex literal object.\n *\n * Examples what this method can return depend if this column is in embeds.\n * { id: 1 } or { title: \"hello\" }, { counters: { code: 1 } }, { data: { information: { counters: { code: 1 } } } }\n */\n getEntityValueMap(entity: ObjectLiteral, options?: { skipNulls?: boolean }): ObjectLiteral|undefined {\n const returnNulls = false; // options && options.skipNulls === false ? false : true; // todo: remove if current will not bring problems, uncomment if it will.\n\n // extract column value from embeds of entity if column is in embedded\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object and return it in a\n // { data: { information: { counters: { id: ... } } } } format\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n\n // now need to access post[data][information][counters] to get column value from the counters\n // and on each step we need to create complex literal object, e.g. first { data },\n // then { data: { information } }, then { data: { information: { counters } } },\n // then { data: { information: { counters: [this.propertyName]: entity[data][information][counters][this.propertyName] } } }\n // this recursive function helps doing that\n const extractEmbeddedColumnValue = (propertyNames: string[], value: ObjectLiteral, map: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n if (value === undefined)\n return map;\n\n if (propertyName) {\n const submap: ObjectLiteral = {};\n extractEmbeddedColumnValue(propertyNames, value[propertyName], submap);\n if (Object.keys(submap).length > 0) {\n map[propertyName] = submap;\n }\n return map;\n }\n if (value[this.propertyName] !== undefined && (returnNulls === false || value[this.propertyName] !== null))\n map[this.propertyName] = value[this.propertyName];\n return map;\n };\n const map: ObjectLiteral = {};\n extractEmbeddedColumnValue(propertyNames, entity, map);\n return Object.keys(map).length > 0 ? map : undefined;\n\n } else { // no embeds - no problems. Simply return column property name and its value of the entity\n if (this.relationMetadata && entity[this.propertyName] && entity[this.propertyName] instanceof Object) {\n const map = this.relationMetadata.joinColumns.reduce((map, joinColumn) => {\n const value = joinColumn.referencedColumn!.getEntityValueMap(entity[this.propertyName]);\n if (value === undefined) return map;\n return OrmUtils.mergeDeep(map, value);\n }, {});\n if (Object.keys(map).length > 0)\n return { [this.propertyName]: map };\n\n return undefined;\n } else {\n if (entity[this.propertyName] !== undefined && (returnNulls === false || entity[this.propertyName] !== null))\n return { [this.propertyName]: entity[this.propertyName] };\n\n return undefined;\n }\n }\n }\n\n /**\n * Extracts column value from the given entity.\n * If column is in embedded (or recursive embedded) it extracts its value from there.\n */\n getEntityValue(entity: ObjectLiteral, transform: boolean = false): any|undefined {\n if (entity === undefined || entity === null) return undefined;\n\n // extract column value from embeddeds of entity if column is in embedded\n let value: any = undefined;\n if (this.embeddedMetadata) {\n\n // example: post[data][information][counters].id where \"data\", \"information\" and \"counters\" are embeddeds\n // we need to get value of \"id\" column from the post real entity object\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const propertyNames = [...this.embeddedMetadata.parentPropertyNames];\n\n // next we need to access post[data][information][counters][this.propertyName] to get column value from the counters\n // this recursive function takes array of generated property names and gets the post[data][information][counters] embed\n const extractEmbeddedColumnValue = (propertyNames: string[], value: ObjectLiteral): any => {\n const propertyName = propertyNames.shift();\n return propertyName && value ? extractEmbeddedColumnValue(propertyNames, value[propertyName]) : value;\n };\n\n // once we get nested embed object we get its column, e.g. post[data][information][counters][this.propertyName]\n const embeddedObject = extractEmbeddedColumnValue(propertyNames, entity);\n if (embeddedObject) {\n if (this.relationMetadata && this.referencedColumn) {\n const relatedEntity = this.relationMetadata.getEntityValue(embeddedObject);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator)) {\n value = this.referencedColumn.getEntityValue(relatedEntity);\n\n } else if (embeddedObject[this.propertyName] && embeddedObject[this.propertyName] instanceof Object && !(embeddedObject[this.propertyName] instanceof FindOperator)) {\n value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);\n\n } else {\n value = embeddedObject[this.propertyName];\n\n }\n\n } else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(embeddedObject[this.propertyName]);\n\n } else {\n value = embeddedObject[this.propertyName];\n }\n }\n\n } else { // no embeds - no problems. Simply return column name by property name of the entity\n if (this.relationMetadata && this.referencedColumn) {\n const relatedEntity = this.relationMetadata.getEntityValue(entity);\n if (relatedEntity && relatedEntity instanceof Object && !(relatedEntity instanceof FindOperator) && !(relatedEntity instanceof Function)) {\n value = this.referencedColumn.getEntityValue(relatedEntity);\n\n } else if (entity[this.propertyName] && entity[this.propertyName] instanceof Object && !(entity[this.propertyName] instanceof FindOperator) && !(entity[this.propertyName] instanceof Function)) {\n value = this.referencedColumn.getEntityValue(entity[this.propertyName]);\n\n } else {\n value = entity[this.propertyName];\n }\n\n } else if (this.referencedColumn) {\n value = this.referencedColumn.getEntityValue(entity[this.propertyName]);\n\n } else {\n value = entity[this.propertyName];\n }\n }\n\n if (transform && this.transformer)\n value = ApplyValueTransformers.transformTo(this.transformer, value);\n\n return value;\n }\n\n /**\n * Sets given entity's column value.\n * Using of this method helps to set entity relation's value of the lazy and non-lazy relations.\n */\n setEntityValue(entity: ObjectLiteral, value: any): void {\n if (this.embeddedMetadata) {\n\n // first step - we extract all parent properties of the entity relative to this column, e.g. [data, information, counters]\n const extractEmbeddedColumnValue = (embeddedMetadatas: EmbeddedMetadata[], map: ObjectLiteral): any => {\n // if (!object[embeddedMetadata.propertyName])\n // object[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n const embeddedMetadata = embeddedMetadatas.shift();\n if (embeddedMetadata) {\n if (!map[embeddedMetadata.propertyName])\n map[embeddedMetadata.propertyName] = embeddedMetadata.create();\n\n extractEmbeddedColumnValue(embeddedMetadatas, map[embeddedMetadata.propertyName]);\n return map;\n }\n map[this.propertyName] = value;\n return map;\n };\n return extractEmbeddedColumnValue([...this.embeddedMetadata.embeddedMetadataTree], entity);\n\n } else {\n entity[this.propertyName] = value;\n }\n }\n\n // ---------------------------------------------------------------------\n // Builder Methods\n // ---------------------------------------------------------------------\n\n build(connection: Connection): this {\n this.propertyPath = this.buildPropertyPath();\n this.propertyAliasName = this.propertyPath.replace(\".\", \"_\");\n this.databaseName = this.buildDatabaseName(connection);\n this.databasePath = this.buildDatabasePath();\n this.databaseNameWithoutPrefixes = connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, []);\n return this;\n }\n\n protected buildPropertyPath(): string {\n let path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n\n path += this.propertyName;\n\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.propertyName !== this.propertyName)\n path += \".\" + this.referencedColumn.propertyName;\n\n return path;\n }\n\n protected buildDatabasePath(): string {\n let path = \"\";\n if (this.embeddedMetadata && this.embeddedMetadata.parentPropertyNames.length)\n path = this.embeddedMetadata.parentPropertyNames.join(\".\") + \".\";\n\n path += this.databaseName;\n\n // we add reference column to property path only if this column is virtual\n // because if its not virtual it means user defined a real column for this relation\n // also we don't do it if column is inside a junction table\n if (!this.entityMetadata.isJunction && this.isVirtual && this.referencedColumn && this.referencedColumn.databaseName !== this.databaseName)\n path += \".\" + this.referencedColumn.databaseName;\n\n return path;\n }\n\n protected buildDatabaseName(connection: Connection): string {\n let propertyNames = this.embeddedMetadata ? this.embeddedMetadata.parentPrefixes : [];\n if (connection.driver instanceof MongoDriver) // we don't need to include embedded name for the mongodb column names\n propertyNames = [];\n return connection.namingStrategy.columnName(this.propertyName, this.givenDatabaseName, propertyNames);\n }\n\n}\n"],"sourceRoot":".."}
@@ -469,6 +469,7 @@ export declare class EntityMetadata {
469
469
  * If relation value is an array its being flattened.
470
470
  */
471
471
  extractRelationValuesFromEntity(entity: ObjectLiteral, relations: RelationMetadata[]): [RelationMetadata, any, EntityMetadata][];
472
+ private getInverseEntityMetadata;
472
473
  /**
473
474
  * Creates a property paths for a given entity.
474
475
  */
@@ -478,11 +479,6 @@ export declare class EntityMetadata {
478
479
  * Returns items that exist in the first array and absent in the second array.
479
480
  */
480
481
  static difference(firstIdMaps: ObjectLiteral[], secondIdMaps: ObjectLiteral[]): ObjectLiteral[];
481
- /**
482
- * Compares ids of the two entities.
483
- * Returns true if they match, false otherwise.
484
- */
485
- static compareIds(firstId: ObjectLiteral | undefined, secondId: ObjectLiteral | undefined): boolean;
486
482
  /**
487
483
  * Creates value map from the given values and columns.
488
484
  * Examples of usages are primary columns map and join columns map.
@@ -4,6 +4,7 @@ var tslib_1 = require("tslib");
4
4
  var PostgresDriver_1 = require("../driver/postgres/PostgresDriver");
5
5
  var SapDriver_1 = require("../driver/sap/SapDriver");
6
6
  var SqlServerDriver_1 = require("../driver/sqlserver/SqlServerDriver");
7
+ var OracleDriver_1 = require("../driver/oracle/OracleDriver");
7
8
  var CannotCreateEntityIdMapError_1 = require("../error/CannotCreateEntityIdMapError");
8
9
  var OrmUtils_1 = require("../util/OrmUtils");
9
10
  var StringUtils_1 = require("../util/StringUtils");
@@ -328,7 +329,7 @@ var EntityMetadata = /** @class */ (function () {
328
329
  var secondEntityIdMap = this.getEntityIdMap(secondEntity);
329
330
  if (!secondEntityIdMap)
330
331
  return false;
331
- return EntityMetadata.compareIds(firstEntityIdMap, secondEntityIdMap);
332
+ return OrmUtils_1.OrmUtils.compareIds(firstEntityIdMap, secondEntityIdMap);
332
333
  };
333
334
  /**
334
335
  * Finds column with a given property name.
@@ -394,18 +395,25 @@ var EntityMetadata = /** @class */ (function () {
394
395
  * If relation value is an array its being flattened.
395
396
  */
396
397
  EntityMetadata.prototype.extractRelationValuesFromEntity = function (entity, relations) {
398
+ var _this = this;
397
399
  var relationsAndValues = [];
398
400
  relations.forEach(function (relation) {
399
401
  var value = relation.getEntityValue(entity);
400
402
  if (Array.isArray(value)) {
401
- value.forEach(function (subValue) { return relationsAndValues.push([relation, subValue, relation.inverseEntityMetadata]); });
403
+ value.forEach(function (subValue) { return relationsAndValues.push([relation, subValue, _this.getInverseEntityMetadata(subValue, relation)]); });
402
404
  }
403
405
  else if (value) {
404
- relationsAndValues.push([relation, value, relation.inverseEntityMetadata]);
406
+ relationsAndValues.push([relation, value, _this.getInverseEntityMetadata(value, relation)]);
405
407
  }
406
408
  });
407
409
  return relationsAndValues;
408
410
  };
411
+ EntityMetadata.prototype.getInverseEntityMetadata = function (value, relation) {
412
+ var childEntityMetadata = relation.inverseEntityMetadata.childEntityMetadatas.find(function (metadata) {
413
+ return metadata.target === value.constructor;
414
+ });
415
+ return childEntityMetadata ? childEntityMetadata : relation.inverseEntityMetadata;
416
+ };
409
417
  // -------------------------------------------------------------------------
410
418
  // Public Static Methods
411
419
  // -------------------------------------------------------------------------
@@ -437,18 +445,9 @@ var EntityMetadata = /** @class */ (function () {
437
445
  */
438
446
  EntityMetadata.difference = function (firstIdMaps, secondIdMaps) {
439
447
  return firstIdMaps.filter(function (firstIdMap) {
440
- return !secondIdMaps.find(function (secondIdMap) { return OrmUtils_1.OrmUtils.deepCompare(firstIdMap, secondIdMap); });
448
+ return !secondIdMaps.find(function (secondIdMap) { return OrmUtils_1.OrmUtils.compareIds(firstIdMap, secondIdMap); });
441
449
  });
442
450
  };
443
- /**
444
- * Compares ids of the two entities.
445
- * Returns true if they match, false otherwise.
446
- */
447
- EntityMetadata.compareIds = function (firstId, secondId) {
448
- if (firstId === undefined || firstId === null || secondId === undefined || secondId === null)
449
- return false;
450
- return OrmUtils_1.OrmUtils.deepCompare(firstId, secondId);
451
- };
452
451
  /**
453
452
  * Creates value map from the given values and columns.
454
453
  * Examples of usages are primary columns map and join columns map.
@@ -539,7 +538,7 @@ var EntityMetadata = /** @class */ (function () {
539
538
  */
540
539
  EntityMetadata.prototype.buildTablePath = function () {
541
540
  var tablePath = this.tableName;
542
- if (this.schema && ((this.connection.driver instanceof PostgresDriver_1.PostgresDriver) || (this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver) || (this.connection.driver instanceof SapDriver_1.SapDriver))) {
541
+ if (this.schema && ((this.connection.driver instanceof OracleDriver_1.OracleDriver) || (this.connection.driver instanceof PostgresDriver_1.PostgresDriver) || (this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver) || (this.connection.driver instanceof SapDriver_1.SapDriver))) {
543
542
  tablePath = this.schema + "." + tablePath;
544
543
  }
545
544
  if (this.database && !(this.connection.driver instanceof PostgresDriver_1.PostgresDriver)) {