typeorm 0.3.12-dev.ef64bfc → 0.4.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1483) hide show
  1. package/browser/cache/DbQueryResultCache.d.ts +4 -4
  2. package/browser/cache/DbQueryResultCache.js +1 -1
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/QueryResultCache.d.ts +2 -2
  5. package/browser/cache/QueryResultCache.js.map +1 -1
  6. package/browser/cache/QueryResultCacheFactory.d.ts +2 -2
  7. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  8. package/browser/cache/RedisQueryResultCache.d.ts +4 -4
  9. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  10. package/browser/cli-ts-node-commonjs.js +0 -0
  11. package/browser/cli-ts-node-esm.js +0 -0
  12. package/browser/common/DeepPartial.d.ts +1 -1
  13. package/browser/common/EntityTarget.d.ts +3 -3
  14. package/browser/common/EntityTarget.js.map +1 -1
  15. package/browser/common/MixedList.d.ts +1 -1
  16. package/browser/common/NonNever.d.ts +1 -1
  17. package/browser/common/ObjectType.d.ts +1 -1
  18. package/browser/common/PickKeysByType.d.ts +6 -0
  19. package/browser/common/PickKeysByType.js +3 -0
  20. package/browser/common/PickKeysByType.js.map +1 -0
  21. package/browser/common/RelationType.d.ts +1 -1
  22. package/browser/connection/BaseConnectionOptions.d.ts +2 -2
  23. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  24. package/browser/connection/ConnectionManager.d.ts +1 -1
  25. package/browser/connection/ConnectionManager.js.map +1 -1
  26. package/browser/connection/ConnectionMetadataBuilder.d.ts +5 -5
  27. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  28. package/browser/connection/ConnectionOptions.d.ts +2 -2
  29. package/browser/connection/ConnectionOptions.js.map +1 -1
  30. package/browser/connection/ConnectionOptionsReader.d.ts +1 -1
  31. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  32. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +1 -1
  33. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  34. package/browser/connection/options-reader/ConnectionOptionsXmlReader.d.ts +1 -1
  35. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  36. package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  37. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  38. package/browser/container.d.ts +1 -1
  39. package/browser/data-source/BaseDataSourceOptions.d.ts +8 -8
  40. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  41. package/browser/data-source/DataSource.d.ts +21 -21
  42. package/browser/data-source/DataSource.js +1 -1
  43. package/browser/data-source/DataSource.js.map +1 -1
  44. package/browser/data-source/DataSourceOptions.d.ts +19 -19
  45. package/browser/data-source/DataSourceOptions.js.map +1 -1
  46. package/browser/decorator/Check.js.map +1 -1
  47. package/browser/decorator/EntityRepository.d.ts +1 -1
  48. package/browser/decorator/EntityRepository.js.map +1 -1
  49. package/browser/decorator/Exclusion.js.map +1 -1
  50. package/browser/decorator/Generated.js.map +1 -1
  51. package/browser/decorator/Index.d.ts +1 -1
  52. package/browser/decorator/Index.js.map +1 -1
  53. package/browser/decorator/Unique.d.ts +1 -1
  54. package/browser/decorator/Unique.js.map +1 -1
  55. package/browser/decorator/columns/Column.d.ts +10 -10
  56. package/browser/decorator/columns/Column.js.map +1 -1
  57. package/browser/decorator/columns/CreateDateColumn.d.ts +1 -1
  58. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  59. package/browser/decorator/columns/DeleteDateColumn.d.ts +1 -1
  60. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  61. package/browser/decorator/columns/ObjectIdColumn.d.ts +1 -1
  62. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  63. package/browser/decorator/columns/PrimaryColumn.d.ts +3 -3
  64. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  65. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +3 -3
  66. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  67. package/browser/decorator/columns/UpdateDateColumn.d.ts +1 -1
  68. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  69. package/browser/decorator/columns/VersionColumn.d.ts +1 -1
  70. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  71. package/browser/decorator/columns/ViewColumn.d.ts +1 -1
  72. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  73. package/browser/decorator/columns/VirtualColumn.d.ts +2 -2
  74. package/browser/decorator/columns/VirtualColumn.js.map +1 -1
  75. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  76. package/browser/decorator/entity/Entity.d.ts +1 -1
  77. package/browser/decorator/entity/Entity.js.map +1 -1
  78. package/browser/decorator/entity/TableInheritance.d.ts +1 -1
  79. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  80. package/browser/decorator/entity-view/ViewEntity.d.ts +1 -1
  81. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  82. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  83. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  84. package/browser/decorator/listeners/AfterRecover.js.map +1 -1
  85. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  86. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
  87. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  88. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  89. package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
  90. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  91. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  92. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  93. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  94. package/browser/decorator/options/ColumnCommonOptions.d.ts +1 -1
  95. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  96. package/browser/decorator/options/ColumnOptions.d.ts +3 -3
  97. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  98. package/browser/decorator/options/EntityOptions.d.ts +1 -1
  99. package/browser/decorator/options/EntityOptions.js.map +1 -1
  100. package/browser/decorator/options/JoinTableMultipleColumnsOptions.d.ts +1 -1
  101. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  102. package/browser/decorator/options/JoinTableOptions.d.ts +1 -1
  103. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  104. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +1 -1
  105. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  106. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +1 -1
  107. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  108. package/browser/decorator/options/RelationOptions.d.ts +3 -3
  109. package/browser/decorator/options/RelationOptions.js.map +1 -1
  110. package/browser/decorator/options/SpatialColumnOptions.d.ts +1 -1
  111. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  112. package/browser/decorator/options/TransactionOptions.d.ts +1 -1
  113. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  114. package/browser/decorator/options/UniqueOptions.d.ts +1 -1
  115. package/browser/decorator/options/UniqueOptions.js.map +1 -1
  116. package/browser/decorator/options/ViewColumnOptions.d.ts +1 -1
  117. package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
  118. package/browser/decorator/options/ViewEntityOptions.d.ts +1 -1
  119. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  120. package/browser/decorator/options/VirtualColumnOptions.d.ts +2 -2
  121. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
  122. package/browser/decorator/relations/JoinColumn.d.ts +1 -1
  123. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  124. package/browser/decorator/relations/JoinTable.d.ts +2 -2
  125. package/browser/decorator/relations/JoinTable.js.map +1 -1
  126. package/browser/decorator/relations/ManyToMany.d.ts +2 -2
  127. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  128. package/browser/decorator/relations/ManyToOne.d.ts +2 -2
  129. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  130. package/browser/decorator/relations/OneToMany.d.ts +2 -2
  131. package/browser/decorator/relations/OneToMany.js.map +1 -1
  132. package/browser/decorator/relations/OneToOne.d.ts +2 -2
  133. package/browser/decorator/relations/OneToOne.js.map +1 -1
  134. package/browser/decorator/relations/RelationCount.d.ts +1 -1
  135. package/browser/decorator/relations/RelationCount.js.map +1 -1
  136. package/browser/decorator/relations/RelationId.d.ts +1 -1
  137. package/browser/decorator/relations/RelationId.js.map +1 -1
  138. package/browser/decorator/tree/Tree.d.ts +2 -2
  139. package/browser/decorator/tree/Tree.js.map +1 -1
  140. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  141. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  142. package/browser/decorator/tree/TreeParent.d.ts +1 -1
  143. package/browser/decorator/tree/TreeParent.js.map +1 -1
  144. package/browser/driver/Driver.d.ts +17 -17
  145. package/browser/driver/Driver.js.map +1 -1
  146. package/browser/driver/DriverFactory.d.ts +2 -2
  147. package/browser/driver/DriverFactory.js.map +1 -1
  148. package/browser/driver/DriverUtils.d.ts +1 -1
  149. package/browser/driver/DriverUtils.js +2 -2
  150. package/browser/driver/DriverUtils.js.map +1 -1
  151. package/browser/driver/SqlInMemory.d.ts +1 -1
  152. package/browser/driver/SqlInMemory.js.map +1 -1
  153. package/browser/driver/aurora-mysql/AuroraMysqlConnection.d.ts +4 -4
  154. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  155. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +2 -2
  156. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  157. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +17 -17
  158. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +2 -2
  159. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  160. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +6 -6
  161. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1 -1
  162. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  163. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +1 -1
  164. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  165. package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +5 -5
  166. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  167. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +4 -4
  168. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  169. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +7 -1
  170. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  171. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +5 -5
  172. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +3 -1
  173. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  174. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +1 -1
  175. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  176. package/browser/driver/capacitor/CapacitorConnectionOptions.d.ts +1 -1
  177. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  178. package/browser/driver/capacitor/CapacitorDriver.d.ts +4 -4
  179. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  180. package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +2 -2
  181. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  182. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -1
  183. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  184. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +2 -2
  185. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  186. package/browser/driver/cockroachdb/CockroachDriver.d.ts +18 -18
  187. package/browser/driver/cockroachdb/CockroachDriver.js +2 -2
  188. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  189. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +5 -5
  190. package/browser/driver/cockroachdb/CockroachQueryRunner.js +2 -2
  191. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  192. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +1 -1
  193. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  194. package/browser/driver/cordova/CordovaDriver.d.ts +4 -4
  195. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  196. package/browser/driver/cordova/CordovaQueryRunner.d.ts +2 -2
  197. package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
  198. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  199. package/browser/driver/expo/ExpoConnectionOptions.d.ts +1 -1
  200. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  201. package/browser/driver/expo/ExpoDriver.d.ts +4 -4
  202. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  203. package/browser/driver/expo/ExpoQueryRunner.d.ts +1 -1
  204. package/browser/driver/expo/ExpoQueryRunner.js +1 -1
  205. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  206. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +2 -2
  207. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  208. package/browser/driver/mongodb/MongoDriver.d.ts +17 -17
  209. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  210. package/browser/driver/mongodb/MongoQueryRunner.d.ts +16 -16
  211. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  212. package/browser/driver/mongodb/typings.d.ts +6 -6
  213. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +2 -2
  214. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  215. package/browser/driver/mysql/MysqlDriver.d.ts +17 -17
  216. package/browser/driver/mysql/MysqlDriver.js +2 -2
  217. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  218. package/browser/driver/mysql/MysqlQueryRunner.d.ts +7 -7
  219. package/browser/driver/mysql/MysqlQueryRunner.js +1 -1
  220. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  221. package/browser/driver/nativescript/NativescriptConnectionOptions.d.ts +1 -1
  222. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  223. package/browser/driver/nativescript/NativescriptDriver.d.ts +5 -5
  224. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  225. package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +2 -2
  226. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  227. package/browser/driver/oracle/OracleConnectionOptions.d.ts +2 -2
  228. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  229. package/browser/driver/oracle/OracleDriver.d.ts +17 -17
  230. package/browser/driver/oracle/OracleDriver.js +2 -2
  231. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  232. package/browser/driver/oracle/OracleQueryRunner.d.ts +6 -6
  233. package/browser/driver/oracle/OracleQueryRunner.js +2 -2
  234. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  235. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  236. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  237. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +2 -2
  238. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  239. package/browser/driver/postgres/PostgresDriver.d.ts +18 -18
  240. package/browser/driver/postgres/PostgresDriver.js +2 -2
  241. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  242. package/browser/driver/postgres/PostgresQueryRunner.d.ts +5 -5
  243. package/browser/driver/postgres/PostgresQueryRunner.js +3 -3
  244. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  245. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +1 -1
  246. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  247. package/browser/driver/react-native/ReactNativeDriver.d.ts +4 -4
  248. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  249. package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +2 -2
  250. package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
  251. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  252. package/browser/driver/sap/SapConnectionOptions.d.ts +2 -2
  253. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  254. package/browser/driver/sap/SapDriver.d.ts +10 -10
  255. package/browser/driver/sap/SapDriver.js +3 -3
  256. package/browser/driver/sap/SapDriver.js.map +1 -1
  257. package/browser/driver/sap/SapQueryRunner.d.ts +6 -6
  258. package/browser/driver/sap/SapQueryRunner.js +1 -1
  259. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  260. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +2 -2
  261. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  262. package/browser/driver/spanner/SpannerDriver.d.ts +12 -12
  263. package/browser/driver/spanner/SpannerDriver.js +3 -3
  264. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  265. package/browser/driver/spanner/SpannerQueryRunner.d.ts +6 -6
  266. package/browser/driver/spanner/SpannerQueryRunner.js +7 -7
  267. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  268. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +1 -1
  269. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  270. package/browser/driver/sqlite/SqliteDriver.d.ts +5 -5
  271. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  272. package/browser/driver/sqlite/SqliteQueryRunner.d.ts +1 -1
  273. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  274. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +18 -18
  275. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +13 -1
  276. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  277. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +5 -5
  278. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +10 -10
  279. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  280. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +1 -1
  281. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  282. package/browser/driver/sqljs/SqljsDriver.d.ts +5 -5
  283. package/browser/driver/sqljs/SqljsDriver.js +1 -1
  284. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  285. package/browser/driver/sqljs/SqljsQueryRunner.d.ts +1 -1
  286. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  287. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +8 -8
  288. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  289. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +2 -2
  290. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  291. package/browser/driver/sqlserver/SqlServerDriver.d.ts +16 -16
  292. package/browser/driver/sqlserver/SqlServerDriver.js +2 -2
  293. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  294. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +7 -7
  295. package/browser/driver/sqlserver/SqlServerQueryRunner.js +4 -4
  296. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  297. package/browser/driver/types/ColumnTypes.d.ts +7 -7
  298. package/browser/driver/types/DatabaseType.d.ts +1 -1
  299. package/browser/driver/types/GeoJsonTypes.d.ts +12 -12
  300. package/browser/driver/types/IsolationLevel.d.ts +1 -1
  301. package/browser/driver/types/MappedColumnTypes.d.ts +1 -1
  302. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  303. package/browser/driver/types/ReplicationMode.d.ts +1 -1
  304. package/browser/driver/types/UpsertType.d.ts +1 -1
  305. package/browser/entity-manager/EntityManager.d.ts +37 -19
  306. package/browser/entity-manager/EntityManager.js +32 -0
  307. package/browser/entity-manager/EntityManager.js.map +1 -1
  308. package/browser/entity-manager/EntityManagerFactory.d.ts +2 -2
  309. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  310. package/browser/entity-manager/MongoEntityManager.d.ts +12 -12
  311. package/browser/entity-manager/MongoEntityManager.js +5 -5
  312. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  313. package/browser/entity-manager/SqljsEntityManager.d.ts +2 -2
  314. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  315. package/browser/entity-schema/EntitySchema.d.ts +1 -1
  316. package/browser/entity-schema/EntitySchema.js.map +1 -1
  317. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +3 -3
  318. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  319. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +1 -1
  320. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  321. package/browser/entity-schema/EntitySchemaOptions.d.ts +10 -10
  322. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  323. package/browser/entity-schema/EntitySchemaRelationIdOptions.d.ts +1 -1
  324. package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  325. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +8 -8
  326. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  327. package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -1
  328. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  329. package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +1 -1
  330. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  331. package/browser/error/CannotCreateEntityIdMapError.d.ts +1 -1
  332. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  333. package/browser/error/DataTypeNotSupportedError.d.ts +3 -3
  334. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  335. package/browser/error/EntityMetadataNotFoundError.d.ts +1 -1
  336. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  337. package/browser/error/EntityNotFoundError.d.ts +1 -1
  338. package/browser/error/EntityNotFoundError.js.map +1 -1
  339. package/browser/error/EntityPropertyNotFoundError.d.ts +1 -1
  340. package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
  341. package/browser/error/ForbiddenTransactionModeOverrideError.d.ts +1 -1
  342. package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  343. package/browser/error/InitializedRelationError.d.ts +1 -1
  344. package/browser/error/InitializedRelationError.js.map +1 -1
  345. package/browser/error/MissingDeleteDateColumnError.d.ts +1 -1
  346. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  347. package/browser/error/MissingJoinColumnError.d.ts +2 -2
  348. package/browser/error/MissingJoinColumnError.js.map +1 -1
  349. package/browser/error/MissingJoinTableError.d.ts +2 -2
  350. package/browser/error/MissingJoinTableError.js.map +1 -1
  351. package/browser/error/MissingPrimaryColumnError.d.ts +1 -1
  352. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  353. package/browser/error/RepositoryNotTreeError.d.ts +1 -1
  354. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  355. package/browser/error/SubjectRemovedAndUpdatedError.d.ts +1 -1
  356. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  357. package/browser/error/SubjectWithoutIdentifierError.d.ts +1 -1
  358. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  359. package/browser/error/TreeRepositoryNotSupportedError.d.ts +1 -1
  360. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  361. package/browser/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -2
  362. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  363. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -2
  364. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  365. package/browser/error/UsingJoinTableIsNotAllowedError.d.ts +2 -2
  366. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  367. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -2
  368. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  369. package/browser/find-options/FindManyOptions.d.ts +1 -1
  370. package/browser/find-options/FindManyOptions.js.map +1 -1
  371. package/browser/find-options/FindOneOptions.d.ts +5 -5
  372. package/browser/find-options/FindOneOptions.js.map +1 -1
  373. package/browser/find-options/FindOperator.d.ts +3 -3
  374. package/browser/find-options/FindOperator.js.map +1 -1
  375. package/browser/find-options/FindOperatorType.d.ts +1 -1
  376. package/browser/find-options/FindOperatorType.js.map +1 -1
  377. package/browser/find-options/FindOptionsOrder.d.ts +4 -4
  378. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  379. package/browser/find-options/FindOptionsRelations.d.ts +4 -4
  380. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  381. package/browser/find-options/FindOptionsSelect.d.ts +4 -4
  382. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  383. package/browser/find-options/FindOptionsUtils.d.ts +6 -6
  384. package/browser/find-options/FindOptionsUtils.js +1 -1
  385. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  386. package/browser/find-options/FindOptionsWhere.d.ts +9 -5
  387. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  388. package/browser/find-options/OrderByCondition.d.ts +1 -1
  389. package/browser/find-options/mongodb/MongoFindManyOptions.d.ts +1 -1
  390. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  391. package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +3 -3
  392. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  393. package/browser/find-options/operator/Equal.d.ts +1 -1
  394. package/browser/find-options/operator/Equal.js.map +1 -1
  395. package/browser/find-options/operator/JsonContains.d.ts +6 -0
  396. package/browser/find-options/operator/JsonContains.js +10 -0
  397. package/browser/find-options/operator/JsonContains.js.map +1 -0
  398. package/browser/find-options/operator/Raw.d.ts +1 -1
  399. package/browser/find-options/operator/Raw.js.map +1 -1
  400. package/browser/globals.d.ts +12 -12
  401. package/browser/globals.js.map +1 -1
  402. package/browser/index.d.ts +3 -0
  403. package/browser/index.js +3 -0
  404. package/browser/index.js.map +1 -1
  405. package/browser/logger/AbstractLogger.d.ts +49 -0
  406. package/browser/logger/AbstractLogger.js +230 -0
  407. package/browser/logger/AbstractLogger.js.map +1 -0
  408. package/browser/logger/AdvancedConsoleLogger.d.ts +6 -34
  409. package/browser/logger/AdvancedConsoleLogger.js +41 -106
  410. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  411. package/browser/logger/DebugLogger.d.ts +10 -30
  412. package/browser/logger/DebugLogger.js +56 -74
  413. package/browser/logger/DebugLogger.js.map +1 -1
  414. package/browser/logger/FileLogger.d.ts +8 -34
  415. package/browser/logger/FileLogger.js +50 -97
  416. package/browser/logger/FileLogger.js.map +1 -1
  417. package/browser/logger/Logger.d.ts +32 -1
  418. package/browser/logger/Logger.js.map +1 -1
  419. package/browser/logger/LoggerFactory.d.ts +2 -2
  420. package/browser/logger/LoggerFactory.js.map +1 -1
  421. package/browser/logger/LoggerOptions.d.ts +3 -2
  422. package/browser/logger/LoggerOptions.js.map +1 -1
  423. package/browser/logger/SimpleConsoleLogger.d.ts +6 -34
  424. package/browser/logger/SimpleConsoleLogger.js +43 -106
  425. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  426. package/browser/metadata/CheckMetadata.d.ts +3 -3
  427. package/browser/metadata/CheckMetadata.js.map +1 -1
  428. package/browser/metadata/ColumnMetadata.d.ts +8 -8
  429. package/browser/metadata/ColumnMetadata.js.map +1 -1
  430. package/browser/metadata/EmbeddedMetadata.d.ts +10 -10
  431. package/browser/metadata/EmbeddedMetadata.js +1 -1
  432. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  433. package/browser/metadata/EntityListenerMetadata.d.ts +5 -5
  434. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  435. package/browser/metadata/EntityMetadata.d.ts +20 -20
  436. package/browser/metadata/EntityMetadata.js.map +1 -1
  437. package/browser/metadata/ExclusionMetadata.d.ts +3 -3
  438. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  439. package/browser/metadata/ForeignKeyMetadata.d.ts +6 -6
  440. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  441. package/browser/metadata/IndexMetadata.d.ts +5 -5
  442. package/browser/metadata/IndexMetadata.js.map +1 -1
  443. package/browser/metadata/RelationCountMetadata.d.ts +4 -4
  444. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  445. package/browser/metadata/RelationIdMetadata.d.ts +5 -5
  446. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  447. package/browser/metadata/RelationMetadata.d.ts +10 -10
  448. package/browser/metadata/RelationMetadata.js.map +1 -1
  449. package/browser/metadata/UniqueMetadata.d.ts +6 -6
  450. package/browser/metadata/UniqueMetadata.js.map +1 -1
  451. package/browser/metadata/types/ClosureTreeOptions.d.ts +1 -1
  452. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
  453. package/browser/metadata/types/DeferrableType.d.ts +1 -1
  454. package/browser/metadata/types/EventListenerTypes.d.ts +1 -1
  455. package/browser/metadata/types/OnDeleteType.d.ts +1 -1
  456. package/browser/metadata/types/OnUpdateType.d.ts +1 -1
  457. package/browser/metadata/types/PropertyTypeInFunction.d.ts +1 -1
  458. package/browser/metadata/types/RelationTypeInFunction.d.ts +2 -2
  459. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  460. package/browser/metadata/types/RelationTypes.d.ts +1 -1
  461. package/browser/metadata/types/TableTypes.d.ts +1 -1
  462. package/browser/metadata/types/TreeTypes.d.ts +1 -1
  463. package/browser/metadata-args/ColumnMetadataArgs.d.ts +2 -2
  464. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  465. package/browser/metadata-args/EntityListenerMetadataArgs.d.ts +1 -1
  466. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  467. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +1 -1
  468. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  469. package/browser/metadata-args/InheritanceMetadataArgs.d.ts +1 -1
  470. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  471. package/browser/metadata-args/JoinTableMetadataArgs.d.ts +1 -1
  472. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  473. package/browser/metadata-args/MetadataArgsStorage.d.ts +22 -22
  474. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  475. package/browser/metadata-args/RelationCountMetadataArgs.d.ts +1 -1
  476. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  477. package/browser/metadata-args/RelationIdMetadataArgs.d.ts +1 -1
  478. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  479. package/browser/metadata-args/RelationMetadataArgs.d.ts +4 -4
  480. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  481. package/browser/metadata-args/TableMetadataArgs.d.ts +3 -3
  482. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  483. package/browser/metadata-args/TreeMetadataArgs.d.ts +2 -2
  484. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  485. package/browser/metadata-args/UniqueMetadataArgs.d.ts +1 -1
  486. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  487. package/browser/metadata-args/types/ColumnMode.d.ts +1 -1
  488. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +1 -1
  489. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  490. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +4 -4
  491. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  492. package/browser/metadata-builder/EntityMetadataValidator.d.ts +2 -2
  493. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  494. package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +3 -3
  495. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  496. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -3
  497. package/browser/metadata-builder/RelationJoinColumnBuilder.js +2 -1
  498. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  499. package/browser/migration/Migration.d.ts +1 -1
  500. package/browser/migration/Migration.js.map +1 -1
  501. package/browser/migration/MigrationExecutor.d.ts +2 -2
  502. package/browser/migration/MigrationExecutor.js +3 -3
  503. package/browser/migration/MigrationExecutor.js.map +1 -1
  504. package/browser/migration/MigrationInterface.d.ts +1 -1
  505. package/browser/migration/MigrationInterface.js.map +1 -1
  506. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +2 -2
  507. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  508. package/browser/naming-strategy/LegacyOracleNamingStrategy.d.ts +21 -0
  509. package/browser/naming-strategy/LegacyOracleNamingStrategy.js +46 -0
  510. package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -0
  511. package/browser/naming-strategy/NamingStrategyInterface.d.ts +2 -2
  512. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  513. package/browser/persistence/EntityPersistExecutor.d.ts +5 -5
  514. package/browser/persistence/EntityPersistExecutor.js +1 -1
  515. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  516. package/browser/persistence/Subject.d.ts +5 -5
  517. package/browser/persistence/Subject.js.map +1 -1
  518. package/browser/persistence/SubjectChangeMap.d.ts +3 -3
  519. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  520. package/browser/persistence/SubjectChangedColumnsComputer.d.ts +1 -1
  521. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  522. package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +3 -3
  523. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  524. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  525. package/browser/persistence/SubjectExecutor.d.ts +4 -4
  526. package/browser/persistence/SubjectExecutor.js +1 -1
  527. package/browser/persistence/SubjectExecutor.js.map +1 -1
  528. package/browser/persistence/SubjectTopoligicalSorter.d.ts +2 -2
  529. package/browser/persistence/SubjectTopoligicalSorter.js +7 -11
  530. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  531. package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  532. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  533. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +2 -2
  534. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  535. package/browser/persistence/subject-builder/OneToManySubjectBuilder.d.ts +1 -1
  536. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  537. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +1 -1
  538. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  539. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  540. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +2 -2
  541. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  542. package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +2 -2
  543. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  544. package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +4 -4
  545. package/browser/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  546. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  547. package/browser/platform/BrowserPlatformTools.js +2 -2
  548. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  549. package/browser/platform/PlatformTools.d.ts +2 -0
  550. package/browser/platform/PlatformTools.js +6 -0
  551. package/browser/platform/PlatformTools.js.map +1 -1
  552. package/browser/query-builder/Alias.d.ts +1 -1
  553. package/browser/query-builder/Alias.js.map +1 -1
  554. package/browser/query-builder/Brackets.d.ts +1 -1
  555. package/browser/query-builder/Brackets.js.map +1 -1
  556. package/browser/query-builder/DeleteQueryBuilder.d.ts +6 -6
  557. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  558. package/browser/query-builder/InsertOrUpdateOptions.d.ts +2 -2
  559. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  560. package/browser/query-builder/InsertQueryBuilder.d.ts +5 -5
  561. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  562. package/browser/query-builder/JoinAttribute.d.ts +5 -5
  563. package/browser/query-builder/JoinAttribute.js +2 -2
  564. package/browser/query-builder/JoinAttribute.js.map +1 -1
  565. package/browser/query-builder/QueryBuilder.d.ts +18 -18
  566. package/browser/query-builder/QueryBuilder.js +3 -1
  567. package/browser/query-builder/QueryBuilder.js.map +1 -1
  568. package/browser/query-builder/QueryExpressionMap.d.ts +12 -12
  569. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  570. package/browser/query-builder/QueryPartialEntity.d.ts +4 -4
  571. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  572. package/browser/query-builder/RelationIdLoader.d.ts +4 -4
  573. package/browser/query-builder/RelationIdLoader.js +2 -2
  574. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  575. package/browser/query-builder/RelationLoader.d.ts +5 -5
  576. package/browser/query-builder/RelationLoader.js.map +1 -1
  577. package/browser/query-builder/RelationQueryBuilder.d.ts +1 -1
  578. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  579. package/browser/query-builder/RelationRemover.d.ts +2 -2
  580. package/browser/query-builder/RelationRemover.js.map +1 -1
  581. package/browser/query-builder/RelationUpdater.d.ts +2 -2
  582. package/browser/query-builder/RelationUpdater.js.map +1 -1
  583. package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +6 -6
  584. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  585. package/browser/query-builder/SelectQueryBuilder.d.ts +18 -18
  586. package/browser/query-builder/SelectQueryBuilder.js +12 -8
  587. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  588. package/browser/query-builder/SelectQueryBuilderOption.d.ts +1 -1
  589. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +7 -7
  590. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  591. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  592. package/browser/query-builder/UpdateQueryBuilder.d.ts +7 -7
  593. package/browser/query-builder/UpdateQueryBuilder.js +3 -3
  594. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  595. package/browser/query-builder/WhereClause.d.ts +3 -3
  596. package/browser/query-builder/WhereClause.js.map +1 -1
  597. package/browser/query-builder/WhereExpressionBuilder.d.ts +3 -4
  598. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  599. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +4 -4
  600. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  601. package/browser/query-builder/relation-count/RelationCountLoadResult.d.ts +1 -1
  602. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  603. package/browser/query-builder/relation-count/RelationCountLoader.d.ts +4 -4
  604. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  605. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.d.ts +1 -1
  606. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  607. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +4 -4
  608. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  609. package/browser/query-builder/relation-id/RelationIdLoadResult.d.ts +1 -1
  610. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  611. package/browser/query-builder/relation-id/RelationIdLoader.d.ts +4 -4
  612. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  613. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.d.ts +1 -1
  614. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  615. package/browser/query-builder/result/DeleteResult.d.ts +1 -1
  616. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  617. package/browser/query-builder/result/InsertResult.d.ts +2 -2
  618. package/browser/query-builder/result/InsertResult.js.map +1 -1
  619. package/browser/query-builder/result/UpdateResult.d.ts +2 -2
  620. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  621. package/browser/query-builder/transformer/DocumentToEntityTransformer.d.ts +2 -2
  622. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  623. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.d.ts +3 -3
  624. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  625. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +2 -2
  626. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  627. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +8 -8
  628. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -1
  629. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  630. package/browser/query-runner/BaseQueryRunner.d.ts +11 -11
  631. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  632. package/browser/query-runner/QueryRunner.d.ts +17 -17
  633. package/browser/query-runner/QueryRunner.js.map +1 -1
  634. package/browser/repository/AbstractRepository.d.ts +6 -6
  635. package/browser/repository/AbstractRepository.js.map +1 -1
  636. package/browser/repository/BaseEntity.d.ts +41 -16
  637. package/browser/repository/BaseEntity.js +24 -0
  638. package/browser/repository/BaseEntity.js.map +1 -1
  639. package/browser/repository/EntityId.d.ts +2 -2
  640. package/browser/repository/EntityId.js.map +1 -1
  641. package/browser/repository/MongoRepository.d.ts +8 -8
  642. package/browser/repository/MongoRepository.js.map +1 -1
  643. package/browser/repository/Repository.d.ts +34 -17
  644. package/browser/repository/Repository.js +32 -8
  645. package/browser/repository/Repository.js.map +1 -1
  646. package/browser/repository/TreeRepository.d.ts +3 -3
  647. package/browser/repository/TreeRepository.js.map +1 -1
  648. package/browser/repository/UpsertOptions.d.ts +2 -2
  649. package/browser/repository/UpsertOptions.js.map +1 -1
  650. package/browser/schema-builder/MongoSchemaBuilder.d.ts +2 -2
  651. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  652. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +7 -7
  653. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  654. package/browser/schema-builder/SchemaBuilder.d.ts +1 -1
  655. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  656. package/browser/schema-builder/options/TableOptions.d.ts +6 -6
  657. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  658. package/browser/schema-builder/options/ViewOptions.d.ts +1 -1
  659. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  660. package/browser/schema-builder/table/Table.d.ts +3 -3
  661. package/browser/schema-builder/table/Table.js.map +1 -1
  662. package/browser/schema-builder/table/TableCheck.d.ts +2 -2
  663. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  664. package/browser/schema-builder/table/TableColumn.d.ts +1 -1
  665. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  666. package/browser/schema-builder/table/TableExclusion.d.ts +2 -2
  667. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  668. package/browser/schema-builder/table/TableForeignKey.d.ts +3 -3
  669. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  670. package/browser/schema-builder/table/TableIndex.d.ts +2 -2
  671. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  672. package/browser/schema-builder/table/TableUnique.d.ts +2 -2
  673. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  674. package/browser/schema-builder/util/TableUtils.d.ts +3 -3
  675. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  676. package/browser/schema-builder/util/ViewUtils.d.ts +1 -1
  677. package/browser/schema-builder/util/ViewUtils.js.map +1 -1
  678. package/browser/schema-builder/view/View.d.ts +2 -2
  679. package/browser/schema-builder/view/View.js.map +1 -1
  680. package/browser/subscriber/Broadcaster.d.ts +6 -6
  681. package/browser/subscriber/Broadcaster.js.map +1 -1
  682. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  683. package/browser/subscriber/EntitySubscriberInterface.d.ts +9 -9
  684. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  685. package/browser/subscriber/event/InsertEvent.d.ts +4 -4
  686. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  687. package/browser/subscriber/event/LoadEvent.d.ts +4 -4
  688. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  689. package/browser/subscriber/event/RecoverEvent.d.ts +2 -3
  690. package/browser/subscriber/event/RecoverEvent.js.map +1 -1
  691. package/browser/subscriber/event/RemoveEvent.d.ts +4 -4
  692. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  693. package/browser/subscriber/event/SoftRemoveEvent.d.ts +2 -3
  694. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
  695. package/browser/subscriber/event/TransactionCommitEvent.d.ts +3 -3
  696. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
  697. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +3 -3
  698. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  699. package/browser/subscriber/event/TransactionStartEvent.d.ts +3 -3
  700. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
  701. package/browser/subscriber/event/UpdateEvent.d.ts +7 -7
  702. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  703. package/browser/util/ApplyValueTransformers.d.ts +1 -1
  704. package/browser/util/ApplyValueTransformers.js.map +1 -1
  705. package/browser/util/DateUtils.d.ts +1 -1
  706. package/browser/util/DateUtils.js.map +1 -1
  707. package/browser/util/DepGraph.js +14 -14
  708. package/browser/util/DepGraph.js.map +1 -1
  709. package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
  710. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  711. package/browser/util/InstanceChecker.d.ts +2 -2
  712. package/browser/util/InstanceChecker.js.map +1 -1
  713. package/browser/util/ObjectUtils.d.ts +1 -1
  714. package/browser/util/ObjectUtils.js.map +1 -1
  715. package/browser/util/OrmUtils.d.ts +1 -1
  716. package/browser/util/OrmUtils.js +4 -4
  717. package/browser/util/OrmUtils.js.map +1 -1
  718. package/browser/util/RandomGenerator.js +6 -6
  719. package/browser/util/RandomGenerator.js.map +1 -1
  720. package/browser/util/StringUtils.js.map +1 -1
  721. package/browser/util/TreeRepositoryUtils.d.ts +3 -3
  722. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  723. package/browser/util/VersionUtils.d.ts +1 -1
  724. package/browser/util/VersionUtils.js.map +1 -1
  725. package/browser/util/escapeRegExp.d.ts +1 -1
  726. package/browser/util/escapeRegExp.js.map +1 -1
  727. package/cache/DbQueryResultCache.d.ts +4 -4
  728. package/cache/DbQueryResultCache.js +1 -1
  729. package/cache/DbQueryResultCache.js.map +1 -1
  730. package/cache/QueryResultCache.d.ts +2 -2
  731. package/cache/QueryResultCache.js.map +1 -1
  732. package/cache/QueryResultCacheFactory.d.ts +2 -2
  733. package/cache/QueryResultCacheFactory.js.map +1 -1
  734. package/cache/RedisQueryResultCache.d.ts +4 -4
  735. package/cache/RedisQueryResultCache.js.map +1 -1
  736. package/cli-ts-node-commonjs.js +0 -0
  737. package/cli-ts-node-esm.js +0 -0
  738. package/cli.js +0 -0
  739. package/commands/CacheClearCommand.d.ts +1 -1
  740. package/commands/CacheClearCommand.js.map +1 -1
  741. package/commands/CommandUtils.d.ts +2 -2
  742. package/commands/CommandUtils.js.map +1 -1
  743. package/commands/EntityCreateCommand.d.ts +1 -1
  744. package/commands/EntityCreateCommand.js.map +1 -1
  745. package/commands/InitCommand.d.ts +1 -1
  746. package/commands/InitCommand.js.map +1 -1
  747. package/commands/MigrationCreateCommand.d.ts +2 -2
  748. package/commands/MigrationCreateCommand.js.map +1 -1
  749. package/commands/MigrationGenerateCommand.d.ts +2 -2
  750. package/commands/MigrationGenerateCommand.js.map +1 -1
  751. package/commands/MigrationRevertCommand.d.ts +1 -1
  752. package/commands/MigrationRevertCommand.js.map +1 -1
  753. package/commands/MigrationRunCommand.d.ts +1 -1
  754. package/commands/MigrationRunCommand.js.map +1 -1
  755. package/commands/MigrationShowCommand.d.ts +1 -1
  756. package/commands/MigrationShowCommand.js.map +1 -1
  757. package/commands/QueryCommand.d.ts +1 -1
  758. package/commands/QueryCommand.js.map +1 -1
  759. package/commands/SchemaDropCommand.d.ts +1 -1
  760. package/commands/SchemaDropCommand.js.map +1 -1
  761. package/commands/SchemaLogCommand.d.ts +1 -1
  762. package/commands/SchemaLogCommand.js.map +1 -1
  763. package/commands/SchemaSyncCommand.d.ts +1 -1
  764. package/commands/SchemaSyncCommand.js.map +1 -1
  765. package/commands/SubscriberCreateCommand.d.ts +1 -1
  766. package/commands/SubscriberCreateCommand.js.map +1 -1
  767. package/commands/VersionCommand.d.ts +1 -1
  768. package/commands/VersionCommand.js.map +1 -1
  769. package/common/DeepPartial.d.ts +1 -1
  770. package/common/EntityTarget.d.ts +3 -3
  771. package/common/EntityTarget.js.map +1 -1
  772. package/common/MixedList.d.ts +1 -1
  773. package/common/NonNever.d.ts +1 -1
  774. package/common/ObjectType.d.ts +1 -1
  775. package/common/PickKeysByType.d.ts +6 -0
  776. package/common/PickKeysByType.js +4 -0
  777. package/common/PickKeysByType.js.map +1 -0
  778. package/common/RelationType.d.ts +1 -1
  779. package/connection/BaseConnectionOptions.d.ts +2 -2
  780. package/connection/BaseConnectionOptions.js.map +1 -1
  781. package/connection/ConnectionManager.d.ts +1 -1
  782. package/connection/ConnectionManager.js.map +1 -1
  783. package/connection/ConnectionMetadataBuilder.d.ts +5 -5
  784. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  785. package/connection/ConnectionOptions.d.ts +2 -2
  786. package/connection/ConnectionOptions.js.map +1 -1
  787. package/connection/ConnectionOptionsReader.d.ts +1 -1
  788. package/connection/ConnectionOptionsReader.js.map +1 -1
  789. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +1 -1
  790. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  791. package/connection/options-reader/ConnectionOptionsXmlReader.d.ts +1 -1
  792. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  793. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  794. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  795. package/container.d.ts +1 -1
  796. package/data-source/BaseDataSourceOptions.d.ts +8 -8
  797. package/data-source/BaseDataSourceOptions.js.map +1 -1
  798. package/data-source/DataSource.d.ts +21 -21
  799. package/data-source/DataSource.js +1 -1
  800. package/data-source/DataSource.js.map +1 -1
  801. package/data-source/DataSourceOptions.d.ts +19 -19
  802. package/data-source/DataSourceOptions.js.map +1 -1
  803. package/decorator/Check.js.map +1 -1
  804. package/decorator/EntityRepository.d.ts +1 -1
  805. package/decorator/EntityRepository.js.map +1 -1
  806. package/decorator/Exclusion.js.map +1 -1
  807. package/decorator/Generated.js.map +1 -1
  808. package/decorator/Index.d.ts +1 -1
  809. package/decorator/Index.js.map +1 -1
  810. package/decorator/Unique.d.ts +1 -1
  811. package/decorator/Unique.js.map +1 -1
  812. package/decorator/columns/Column.d.ts +10 -10
  813. package/decorator/columns/Column.js.map +1 -1
  814. package/decorator/columns/CreateDateColumn.d.ts +1 -1
  815. package/decorator/columns/CreateDateColumn.js.map +1 -1
  816. package/decorator/columns/DeleteDateColumn.d.ts +1 -1
  817. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  818. package/decorator/columns/ObjectIdColumn.d.ts +1 -1
  819. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  820. package/decorator/columns/PrimaryColumn.d.ts +3 -3
  821. package/decorator/columns/PrimaryColumn.js.map +1 -1
  822. package/decorator/columns/PrimaryGeneratedColumn.d.ts +3 -3
  823. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  824. package/decorator/columns/UpdateDateColumn.d.ts +1 -1
  825. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  826. package/decorator/columns/VersionColumn.d.ts +1 -1
  827. package/decorator/columns/VersionColumn.js.map +1 -1
  828. package/decorator/columns/ViewColumn.d.ts +1 -1
  829. package/decorator/columns/ViewColumn.js.map +1 -1
  830. package/decorator/columns/VirtualColumn.d.ts +2 -2
  831. package/decorator/columns/VirtualColumn.js.map +1 -1
  832. package/decorator/entity/ChildEntity.js.map +1 -1
  833. package/decorator/entity/Entity.d.ts +1 -1
  834. package/decorator/entity/Entity.js.map +1 -1
  835. package/decorator/entity/TableInheritance.d.ts +1 -1
  836. package/decorator/entity/TableInheritance.js.map +1 -1
  837. package/decorator/entity-view/ViewEntity.d.ts +1 -1
  838. package/decorator/entity-view/ViewEntity.js.map +1 -1
  839. package/decorator/listeners/AfterInsert.js.map +1 -1
  840. package/decorator/listeners/AfterLoad.js.map +1 -1
  841. package/decorator/listeners/AfterRecover.js.map +1 -1
  842. package/decorator/listeners/AfterRemove.js.map +1 -1
  843. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  844. package/decorator/listeners/AfterUpdate.js.map +1 -1
  845. package/decorator/listeners/BeforeInsert.js.map +1 -1
  846. package/decorator/listeners/BeforeRecover.js.map +1 -1
  847. package/decorator/listeners/BeforeRemove.js.map +1 -1
  848. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  849. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  850. package/decorator/listeners/EventSubscriber.js.map +1 -1
  851. package/decorator/options/ColumnCommonOptions.d.ts +1 -1
  852. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  853. package/decorator/options/ColumnOptions.d.ts +3 -3
  854. package/decorator/options/ColumnOptions.js.map +1 -1
  855. package/decorator/options/EntityOptions.d.ts +1 -1
  856. package/decorator/options/EntityOptions.js.map +1 -1
  857. package/decorator/options/JoinTableMultipleColumnsOptions.d.ts +1 -1
  858. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  859. package/decorator/options/JoinTableOptions.d.ts +1 -1
  860. package/decorator/options/JoinTableOptions.js.map +1 -1
  861. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +1 -1
  862. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  863. package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +1 -1
  864. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  865. package/decorator/options/RelationOptions.d.ts +3 -3
  866. package/decorator/options/RelationOptions.js.map +1 -1
  867. package/decorator/options/SpatialColumnOptions.d.ts +1 -1
  868. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  869. package/decorator/options/TransactionOptions.d.ts +1 -1
  870. package/decorator/options/TransactionOptions.js.map +1 -1
  871. package/decorator/options/UniqueOptions.d.ts +1 -1
  872. package/decorator/options/UniqueOptions.js.map +1 -1
  873. package/decorator/options/ViewColumnOptions.d.ts +1 -1
  874. package/decorator/options/ViewColumnOptions.js.map +1 -1
  875. package/decorator/options/ViewEntityOptions.d.ts +1 -1
  876. package/decorator/options/ViewEntityOptions.js.map +1 -1
  877. package/decorator/options/VirtualColumnOptions.d.ts +2 -2
  878. package/decorator/options/VirtualColumnOptions.js.map +1 -1
  879. package/decorator/relations/JoinColumn.d.ts +1 -1
  880. package/decorator/relations/JoinColumn.js.map +1 -1
  881. package/decorator/relations/JoinTable.d.ts +2 -2
  882. package/decorator/relations/JoinTable.js.map +1 -1
  883. package/decorator/relations/ManyToMany.d.ts +2 -2
  884. package/decorator/relations/ManyToMany.js.map +1 -1
  885. package/decorator/relations/ManyToOne.d.ts +2 -2
  886. package/decorator/relations/ManyToOne.js.map +1 -1
  887. package/decorator/relations/OneToMany.d.ts +2 -2
  888. package/decorator/relations/OneToMany.js.map +1 -1
  889. package/decorator/relations/OneToOne.d.ts +2 -2
  890. package/decorator/relations/OneToOne.js.map +1 -1
  891. package/decorator/relations/RelationCount.d.ts +1 -1
  892. package/decorator/relations/RelationCount.js.map +1 -1
  893. package/decorator/relations/RelationId.d.ts +1 -1
  894. package/decorator/relations/RelationId.js.map +1 -1
  895. package/decorator/tree/Tree.d.ts +2 -2
  896. package/decorator/tree/Tree.js.map +1 -1
  897. package/decorator/tree/TreeChildren.js.map +1 -1
  898. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  899. package/decorator/tree/TreeParent.d.ts +1 -1
  900. package/decorator/tree/TreeParent.js.map +1 -1
  901. package/driver/Driver.d.ts +17 -17
  902. package/driver/Driver.js.map +1 -1
  903. package/driver/DriverFactory.d.ts +2 -2
  904. package/driver/DriverFactory.js.map +1 -1
  905. package/driver/DriverUtils.d.ts +1 -1
  906. package/driver/DriverUtils.js +2 -2
  907. package/driver/DriverUtils.js.map +1 -1
  908. package/driver/SqlInMemory.d.ts +1 -1
  909. package/driver/SqlInMemory.js.map +1 -1
  910. package/driver/aurora-mysql/AuroraMysqlConnection.d.ts +4 -4
  911. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  912. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +2 -2
  913. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  914. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +17 -17
  915. package/driver/aurora-mysql/AuroraMysqlDriver.js +2 -2
  916. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  917. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +6 -6
  918. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1 -1
  919. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  920. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +1 -1
  921. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  922. package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +5 -5
  923. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  924. package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +4 -4
  925. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  926. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +7 -1
  927. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  928. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +5 -5
  929. package/driver/better-sqlite3/BetterSqlite3Driver.js +3 -1
  930. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  931. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +1 -1
  932. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  933. package/driver/capacitor/CapacitorConnectionOptions.d.ts +1 -1
  934. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  935. package/driver/capacitor/CapacitorDriver.d.ts +4 -4
  936. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  937. package/driver/capacitor/CapacitorQueryRunner.d.ts +2 -2
  938. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  939. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +1 -1
  940. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  941. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +2 -2
  942. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  943. package/driver/cockroachdb/CockroachDriver.d.ts +18 -18
  944. package/driver/cockroachdb/CockroachDriver.js +2 -2
  945. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  946. package/driver/cockroachdb/CockroachQueryRunner.d.ts +5 -5
  947. package/driver/cockroachdb/CockroachQueryRunner.js +2 -2
  948. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  949. package/driver/cordova/CordovaConnectionOptions.d.ts +1 -1
  950. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  951. package/driver/cordova/CordovaDriver.d.ts +4 -4
  952. package/driver/cordova/CordovaDriver.js.map +1 -1
  953. package/driver/cordova/CordovaQueryRunner.d.ts +2 -2
  954. package/driver/cordova/CordovaQueryRunner.js +1 -1
  955. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  956. package/driver/expo/ExpoConnectionOptions.d.ts +1 -1
  957. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  958. package/driver/expo/ExpoDriver.d.ts +4 -4
  959. package/driver/expo/ExpoDriver.js.map +1 -1
  960. package/driver/expo/ExpoQueryRunner.d.ts +1 -1
  961. package/driver/expo/ExpoQueryRunner.js +1 -1
  962. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  963. package/driver/mongodb/MongoConnectionOptions.d.ts +2 -2
  964. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  965. package/driver/mongodb/MongoDriver.d.ts +17 -17
  966. package/driver/mongodb/MongoDriver.js.map +1 -1
  967. package/driver/mongodb/MongoQueryRunner.d.ts +16 -16
  968. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  969. package/driver/mongodb/typings.d.ts +6 -6
  970. package/driver/mysql/MysqlConnectionOptions.d.ts +2 -2
  971. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  972. package/driver/mysql/MysqlDriver.d.ts +17 -17
  973. package/driver/mysql/MysqlDriver.js +2 -2
  974. package/driver/mysql/MysqlDriver.js.map +1 -1
  975. package/driver/mysql/MysqlQueryRunner.d.ts +7 -7
  976. package/driver/mysql/MysqlQueryRunner.js +1 -1
  977. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  978. package/driver/nativescript/NativescriptConnectionOptions.d.ts +1 -1
  979. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  980. package/driver/nativescript/NativescriptDriver.d.ts +5 -5
  981. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  982. package/driver/nativescript/NativescriptQueryRunner.d.ts +2 -2
  983. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  984. package/driver/oracle/OracleConnectionOptions.d.ts +2 -2
  985. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  986. package/driver/oracle/OracleDriver.d.ts +17 -17
  987. package/driver/oracle/OracleDriver.js +2 -2
  988. package/driver/oracle/OracleDriver.js.map +1 -1
  989. package/driver/oracle/OracleQueryRunner.d.ts +6 -6
  990. package/driver/oracle/OracleQueryRunner.js +2 -2
  991. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  992. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  993. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  994. package/driver/postgres/PostgresConnectionOptions.d.ts +2 -2
  995. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  996. package/driver/postgres/PostgresDriver.d.ts +18 -18
  997. package/driver/postgres/PostgresDriver.js +2 -2
  998. package/driver/postgres/PostgresDriver.js.map +1 -1
  999. package/driver/postgres/PostgresQueryRunner.d.ts +5 -5
  1000. package/driver/postgres/PostgresQueryRunner.js +3 -3
  1001. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  1002. package/driver/react-native/ReactNativeConnectionOptions.d.ts +1 -1
  1003. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  1004. package/driver/react-native/ReactNativeDriver.d.ts +4 -4
  1005. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  1006. package/driver/react-native/ReactNativeQueryRunner.d.ts +2 -2
  1007. package/driver/react-native/ReactNativeQueryRunner.js +1 -1
  1008. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  1009. package/driver/sap/SapConnectionOptions.d.ts +2 -2
  1010. package/driver/sap/SapConnectionOptions.js.map +1 -1
  1011. package/driver/sap/SapDriver.d.ts +10 -10
  1012. package/driver/sap/SapDriver.js +2 -2
  1013. package/driver/sap/SapDriver.js.map +1 -1
  1014. package/driver/sap/SapQueryRunner.d.ts +6 -6
  1015. package/driver/sap/SapQueryRunner.js +1 -1
  1016. package/driver/sap/SapQueryRunner.js.map +1 -1
  1017. package/driver/spanner/SpannerConnectionOptions.d.ts +2 -2
  1018. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  1019. package/driver/spanner/SpannerDriver.d.ts +12 -12
  1020. package/driver/spanner/SpannerDriver.js +3 -3
  1021. package/driver/spanner/SpannerDriver.js.map +1 -1
  1022. package/driver/spanner/SpannerQueryRunner.d.ts +6 -6
  1023. package/driver/spanner/SpannerQueryRunner.js +7 -7
  1024. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  1025. package/driver/sqlite/SqliteConnectionOptions.d.ts +1 -1
  1026. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  1027. package/driver/sqlite/SqliteDriver.d.ts +5 -5
  1028. package/driver/sqlite/SqliteDriver.js.map +1 -1
  1029. package/driver/sqlite/SqliteQueryRunner.d.ts +1 -1
  1030. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  1031. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +18 -18
  1032. package/driver/sqlite-abstract/AbstractSqliteDriver.js +13 -1
  1033. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  1034. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +5 -5
  1035. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +10 -10
  1036. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  1037. package/driver/sqljs/SqljsConnectionOptions.d.ts +1 -1
  1038. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  1039. package/driver/sqljs/SqljsDriver.d.ts +5 -5
  1040. package/driver/sqljs/SqljsDriver.js +1 -1
  1041. package/driver/sqljs/SqljsDriver.js.map +1 -1
  1042. package/driver/sqljs/SqljsQueryRunner.d.ts +1 -1
  1043. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  1044. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +8 -8
  1045. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  1046. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +2 -2
  1047. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  1048. package/driver/sqlserver/SqlServerDriver.d.ts +16 -16
  1049. package/driver/sqlserver/SqlServerDriver.js +2 -2
  1050. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  1051. package/driver/sqlserver/SqlServerQueryRunner.d.ts +7 -7
  1052. package/driver/sqlserver/SqlServerQueryRunner.js +4 -4
  1053. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  1054. package/driver/types/ColumnTypes.d.ts +7 -7
  1055. package/driver/types/DatabaseType.d.ts +1 -1
  1056. package/driver/types/GeoJsonTypes.d.ts +12 -12
  1057. package/driver/types/IsolationLevel.d.ts +1 -1
  1058. package/driver/types/MappedColumnTypes.d.ts +1 -1
  1059. package/driver/types/MappedColumnTypes.js.map +1 -1
  1060. package/driver/types/ReplicationMode.d.ts +1 -1
  1061. package/driver/types/UpsertType.d.ts +1 -1
  1062. package/entity-manager/EntityManager.d.ts +37 -19
  1063. package/entity-manager/EntityManager.js +32 -0
  1064. package/entity-manager/EntityManager.js.map +1 -1
  1065. package/entity-manager/EntityManagerFactory.d.ts +2 -2
  1066. package/entity-manager/EntityManagerFactory.js.map +1 -1
  1067. package/entity-manager/MongoEntityManager.d.ts +12 -12
  1068. package/entity-manager/MongoEntityManager.js +5 -5
  1069. package/entity-manager/MongoEntityManager.js.map +1 -1
  1070. package/entity-manager/SqljsEntityManager.d.ts +2 -2
  1071. package/entity-manager/SqljsEntityManager.js.map +1 -1
  1072. package/entity-schema/EntitySchema.d.ts +1 -1
  1073. package/entity-schema/EntitySchema.js.map +1 -1
  1074. package/entity-schema/EntitySchemaColumnOptions.d.ts +3 -3
  1075. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  1076. package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +1 -1
  1077. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  1078. package/entity-schema/EntitySchemaOptions.d.ts +10 -10
  1079. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  1080. package/entity-schema/EntitySchemaRelationIdOptions.d.ts +1 -1
  1081. package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  1082. package/entity-schema/EntitySchemaRelationOptions.d.ts +8 -8
  1083. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  1084. package/entity-schema/EntitySchemaTransformer.d.ts +1 -1
  1085. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  1086. package/entity-schema/EntitySchemaUniqueOptions.d.ts +1 -1
  1087. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  1088. package/error/CannotCreateEntityIdMapError.d.ts +1 -1
  1089. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  1090. package/error/DataTypeNotSupportedError.d.ts +3 -3
  1091. package/error/DataTypeNotSupportedError.js.map +1 -1
  1092. package/error/EntityMetadataNotFoundError.d.ts +1 -1
  1093. package/error/EntityMetadataNotFoundError.js.map +1 -1
  1094. package/error/EntityNotFoundError.d.ts +1 -1
  1095. package/error/EntityNotFoundError.js.map +1 -1
  1096. package/error/EntityPropertyNotFoundError.d.ts +1 -1
  1097. package/error/EntityPropertyNotFoundError.js.map +1 -1
  1098. package/error/ForbiddenTransactionModeOverrideError.d.ts +1 -1
  1099. package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  1100. package/error/InitializedRelationError.d.ts +1 -1
  1101. package/error/InitializedRelationError.js.map +1 -1
  1102. package/error/MissingDeleteDateColumnError.d.ts +1 -1
  1103. package/error/MissingDeleteDateColumnError.js.map +1 -1
  1104. package/error/MissingJoinColumnError.d.ts +2 -2
  1105. package/error/MissingJoinColumnError.js.map +1 -1
  1106. package/error/MissingJoinTableError.d.ts +2 -2
  1107. package/error/MissingJoinTableError.js.map +1 -1
  1108. package/error/MissingPrimaryColumnError.d.ts +1 -1
  1109. package/error/MissingPrimaryColumnError.js.map +1 -1
  1110. package/error/RepositoryNotTreeError.d.ts +1 -1
  1111. package/error/RepositoryNotTreeError.js.map +1 -1
  1112. package/error/SubjectRemovedAndUpdatedError.d.ts +1 -1
  1113. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  1114. package/error/SubjectWithoutIdentifierError.d.ts +1 -1
  1115. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  1116. package/error/TreeRepositoryNotSupportedError.d.ts +1 -1
  1117. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  1118. package/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -2
  1119. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  1120. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -2
  1121. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  1122. package/error/UsingJoinTableIsNotAllowedError.d.ts +2 -2
  1123. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  1124. package/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -2
  1125. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  1126. package/find-options/FindManyOptions.d.ts +1 -1
  1127. package/find-options/FindManyOptions.js.map +1 -1
  1128. package/find-options/FindOneOptions.d.ts +5 -5
  1129. package/find-options/FindOneOptions.js.map +1 -1
  1130. package/find-options/FindOperator.d.ts +3 -3
  1131. package/find-options/FindOperator.js.map +1 -1
  1132. package/find-options/FindOperatorType.d.ts +1 -1
  1133. package/find-options/FindOperatorType.js.map +1 -1
  1134. package/find-options/FindOptionsOrder.d.ts +4 -4
  1135. package/find-options/FindOptionsOrder.js.map +1 -1
  1136. package/find-options/FindOptionsRelations.d.ts +4 -4
  1137. package/find-options/FindOptionsRelations.js.map +1 -1
  1138. package/find-options/FindOptionsSelect.d.ts +4 -4
  1139. package/find-options/FindOptionsSelect.js.map +1 -1
  1140. package/find-options/FindOptionsUtils.d.ts +6 -6
  1141. package/find-options/FindOptionsUtils.js +1 -1
  1142. package/find-options/FindOptionsUtils.js.map +1 -1
  1143. package/find-options/FindOptionsWhere.d.ts +9 -5
  1144. package/find-options/FindOptionsWhere.js.map +1 -1
  1145. package/find-options/OrderByCondition.d.ts +1 -1
  1146. package/find-options/mongodb/MongoFindManyOptions.d.ts +1 -1
  1147. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  1148. package/find-options/mongodb/MongoFindOneOptions.d.ts +3 -3
  1149. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  1150. package/find-options/operator/Equal.d.ts +1 -1
  1151. package/find-options/operator/Equal.js.map +1 -1
  1152. package/find-options/operator/JsonContains.d.ts +6 -0
  1153. package/find-options/operator/JsonContains.js +14 -0
  1154. package/find-options/operator/JsonContains.js.map +1 -0
  1155. package/find-options/operator/Raw.d.ts +1 -1
  1156. package/find-options/operator/Raw.js.map +1 -1
  1157. package/globals.d.ts +12 -12
  1158. package/globals.js.map +1 -1
  1159. package/index.d.ts +3 -0
  1160. package/index.js +5 -1
  1161. package/index.js.map +1 -1
  1162. package/index.mjs +6 -0
  1163. package/logger/AbstractLogger.d.ts +49 -0
  1164. package/logger/AbstractLogger.js +234 -0
  1165. package/logger/AbstractLogger.js.map +1 -0
  1166. package/logger/AdvancedConsoleLogger.d.ts +6 -34
  1167. package/logger/AdvancedConsoleLogger.js +41 -106
  1168. package/logger/AdvancedConsoleLogger.js.map +1 -1
  1169. package/logger/DebugLogger.d.ts +10 -30
  1170. package/logger/DebugLogger.js +56 -75
  1171. package/logger/DebugLogger.js.map +1 -1
  1172. package/logger/FileLogger.d.ts +8 -34
  1173. package/logger/FileLogger.js +50 -97
  1174. package/logger/FileLogger.js.map +1 -1
  1175. package/logger/Logger.d.ts +32 -1
  1176. package/logger/Logger.js.map +1 -1
  1177. package/logger/LoggerFactory.d.ts +2 -2
  1178. package/logger/LoggerFactory.js.map +1 -1
  1179. package/logger/LoggerOptions.d.ts +3 -2
  1180. package/logger/LoggerOptions.js.map +1 -1
  1181. package/logger/SimpleConsoleLogger.d.ts +6 -34
  1182. package/logger/SimpleConsoleLogger.js +43 -106
  1183. package/logger/SimpleConsoleLogger.js.map +1 -1
  1184. package/metadata/CheckMetadata.d.ts +3 -3
  1185. package/metadata/CheckMetadata.js.map +1 -1
  1186. package/metadata/ColumnMetadata.d.ts +8 -8
  1187. package/metadata/ColumnMetadata.js.map +1 -1
  1188. package/metadata/EmbeddedMetadata.d.ts +10 -10
  1189. package/metadata/EmbeddedMetadata.js +1 -1
  1190. package/metadata/EmbeddedMetadata.js.map +1 -1
  1191. package/metadata/EntityListenerMetadata.d.ts +5 -5
  1192. package/metadata/EntityListenerMetadata.js.map +1 -1
  1193. package/metadata/EntityMetadata.d.ts +20 -20
  1194. package/metadata/EntityMetadata.js.map +1 -1
  1195. package/metadata/ExclusionMetadata.d.ts +3 -3
  1196. package/metadata/ExclusionMetadata.js.map +1 -1
  1197. package/metadata/ForeignKeyMetadata.d.ts +6 -6
  1198. package/metadata/ForeignKeyMetadata.js.map +1 -1
  1199. package/metadata/IndexMetadata.d.ts +5 -5
  1200. package/metadata/IndexMetadata.js.map +1 -1
  1201. package/metadata/RelationCountMetadata.d.ts +4 -4
  1202. package/metadata/RelationCountMetadata.js.map +1 -1
  1203. package/metadata/RelationIdMetadata.d.ts +5 -5
  1204. package/metadata/RelationIdMetadata.js.map +1 -1
  1205. package/metadata/RelationMetadata.d.ts +10 -10
  1206. package/metadata/RelationMetadata.js.map +1 -1
  1207. package/metadata/UniqueMetadata.d.ts +6 -6
  1208. package/metadata/UniqueMetadata.js.map +1 -1
  1209. package/metadata/types/ClosureTreeOptions.d.ts +1 -1
  1210. package/metadata/types/ClosureTreeOptions.js.map +1 -1
  1211. package/metadata/types/DeferrableType.d.ts +1 -1
  1212. package/metadata/types/EventListenerTypes.d.ts +1 -1
  1213. package/metadata/types/OnDeleteType.d.ts +1 -1
  1214. package/metadata/types/OnUpdateType.d.ts +1 -1
  1215. package/metadata/types/PropertyTypeInFunction.d.ts +1 -1
  1216. package/metadata/types/RelationTypeInFunction.d.ts +2 -2
  1217. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  1218. package/metadata/types/RelationTypes.d.ts +1 -1
  1219. package/metadata/types/TableTypes.d.ts +1 -1
  1220. package/metadata/types/TreeTypes.d.ts +1 -1
  1221. package/metadata-args/ColumnMetadataArgs.d.ts +2 -2
  1222. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  1223. package/metadata-args/EntityListenerMetadataArgs.d.ts +1 -1
  1224. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  1225. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +1 -1
  1226. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  1227. package/metadata-args/InheritanceMetadataArgs.d.ts +1 -1
  1228. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  1229. package/metadata-args/JoinTableMetadataArgs.d.ts +1 -1
  1230. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  1231. package/metadata-args/MetadataArgsStorage.d.ts +22 -22
  1232. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  1233. package/metadata-args/RelationCountMetadataArgs.d.ts +1 -1
  1234. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  1235. package/metadata-args/RelationIdMetadataArgs.d.ts +1 -1
  1236. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  1237. package/metadata-args/RelationMetadataArgs.d.ts +4 -4
  1238. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  1239. package/metadata-args/TableMetadataArgs.d.ts +3 -3
  1240. package/metadata-args/TableMetadataArgs.js.map +1 -1
  1241. package/metadata-args/TreeMetadataArgs.d.ts +2 -2
  1242. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  1243. package/metadata-args/UniqueMetadataArgs.d.ts +1 -1
  1244. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  1245. package/metadata-args/types/ColumnMode.d.ts +1 -1
  1246. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +1 -1
  1247. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  1248. package/metadata-builder/EntityMetadataBuilder.d.ts +4 -4
  1249. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  1250. package/metadata-builder/EntityMetadataValidator.d.ts +2 -2
  1251. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  1252. package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +3 -3
  1253. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  1254. package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -3
  1255. package/metadata-builder/RelationJoinColumnBuilder.js +2 -1
  1256. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  1257. package/migration/Migration.d.ts +1 -1
  1258. package/migration/Migration.js.map +1 -1
  1259. package/migration/MigrationExecutor.d.ts +2 -2
  1260. package/migration/MigrationExecutor.js +3 -3
  1261. package/migration/MigrationExecutor.js.map +1 -1
  1262. package/migration/MigrationInterface.d.ts +1 -1
  1263. package/migration/MigrationInterface.js.map +1 -1
  1264. package/naming-strategy/DefaultNamingStrategy.d.ts +2 -2
  1265. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  1266. package/naming-strategy/LegacyOracleNamingStrategy.d.ts +21 -0
  1267. package/naming-strategy/LegacyOracleNamingStrategy.js +50 -0
  1268. package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -0
  1269. package/naming-strategy/NamingStrategyInterface.d.ts +2 -2
  1270. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  1271. package/package.json +273 -1
  1272. package/persistence/EntityPersistExecutor.d.ts +5 -5
  1273. package/persistence/EntityPersistExecutor.js +1 -1
  1274. package/persistence/EntityPersistExecutor.js.map +1 -1
  1275. package/persistence/Subject.d.ts +5 -5
  1276. package/persistence/Subject.js.map +1 -1
  1277. package/persistence/SubjectChangeMap.d.ts +3 -3
  1278. package/persistence/SubjectChangeMap.js.map +1 -1
  1279. package/persistence/SubjectChangedColumnsComputer.d.ts +1 -1
  1280. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  1281. package/persistence/SubjectDatabaseEntityLoader.d.ts +3 -3
  1282. package/persistence/SubjectDatabaseEntityLoader.js +1 -1
  1283. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  1284. package/persistence/SubjectExecutor.d.ts +4 -4
  1285. package/persistence/SubjectExecutor.js +1 -1
  1286. package/persistence/SubjectExecutor.js.map +1 -1
  1287. package/persistence/SubjectTopoligicalSorter.d.ts +2 -2
  1288. package/persistence/SubjectTopoligicalSorter.js +7 -11
  1289. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  1290. package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  1291. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  1292. package/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +2 -2
  1293. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  1294. package/persistence/subject-builder/OneToManySubjectBuilder.d.ts +1 -1
  1295. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1296. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +1 -1
  1297. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  1298. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1299. package/persistence/tree/ClosureSubjectExecutor.d.ts +2 -2
  1300. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1301. package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +2 -2
  1302. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1303. package/persistence/tree/NestedSetSubjectExecutor.d.ts +4 -4
  1304. package/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  1305. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1306. package/platform/PlatformTools.d.ts +2 -0
  1307. package/platform/PlatformTools.js +6 -0
  1308. package/platform/PlatformTools.js.map +1 -1
  1309. package/query-builder/Alias.d.ts +1 -1
  1310. package/query-builder/Alias.js.map +1 -1
  1311. package/query-builder/Brackets.d.ts +1 -1
  1312. package/query-builder/Brackets.js.map +1 -1
  1313. package/query-builder/DeleteQueryBuilder.d.ts +6 -6
  1314. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  1315. package/query-builder/InsertOrUpdateOptions.d.ts +2 -2
  1316. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  1317. package/query-builder/InsertQueryBuilder.d.ts +5 -5
  1318. package/query-builder/InsertQueryBuilder.js.map +1 -1
  1319. package/query-builder/JoinAttribute.d.ts +5 -5
  1320. package/query-builder/JoinAttribute.js +2 -2
  1321. package/query-builder/JoinAttribute.js.map +1 -1
  1322. package/query-builder/QueryBuilder.d.ts +18 -18
  1323. package/query-builder/QueryBuilder.js +3 -1
  1324. package/query-builder/QueryBuilder.js.map +1 -1
  1325. package/query-builder/QueryExpressionMap.d.ts +12 -12
  1326. package/query-builder/QueryExpressionMap.js.map +1 -1
  1327. package/query-builder/QueryPartialEntity.d.ts +4 -4
  1328. package/query-builder/QueryPartialEntity.js.map +1 -1
  1329. package/query-builder/RelationIdLoader.d.ts +4 -4
  1330. package/query-builder/RelationIdLoader.js +2 -2
  1331. package/query-builder/RelationIdLoader.js.map +1 -1
  1332. package/query-builder/RelationLoader.d.ts +5 -5
  1333. package/query-builder/RelationLoader.js.map +1 -1
  1334. package/query-builder/RelationQueryBuilder.d.ts +1 -1
  1335. package/query-builder/RelationQueryBuilder.js.map +1 -1
  1336. package/query-builder/RelationRemover.d.ts +2 -2
  1337. package/query-builder/RelationRemover.js.map +1 -1
  1338. package/query-builder/RelationUpdater.d.ts +2 -2
  1339. package/query-builder/RelationUpdater.js.map +1 -1
  1340. package/query-builder/ReturningResultsEntityUpdator.d.ts +6 -6
  1341. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1342. package/query-builder/SelectQueryBuilder.d.ts +18 -18
  1343. package/query-builder/SelectQueryBuilder.js +12 -8
  1344. package/query-builder/SelectQueryBuilder.js.map +1 -1
  1345. package/query-builder/SelectQueryBuilderOption.d.ts +1 -1
  1346. package/query-builder/SoftDeleteQueryBuilder.d.ts +7 -7
  1347. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  1348. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1349. package/query-builder/UpdateQueryBuilder.d.ts +7 -7
  1350. package/query-builder/UpdateQueryBuilder.js +3 -3
  1351. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  1352. package/query-builder/WhereClause.d.ts +3 -3
  1353. package/query-builder/WhereClause.js.map +1 -1
  1354. package/query-builder/WhereExpressionBuilder.d.ts +3 -4
  1355. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  1356. package/query-builder/relation-count/RelationCountAttribute.d.ts +4 -4
  1357. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1358. package/query-builder/relation-count/RelationCountLoadResult.d.ts +1 -1
  1359. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  1360. package/query-builder/relation-count/RelationCountLoader.d.ts +4 -4
  1361. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1362. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.d.ts +1 -1
  1363. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1364. package/query-builder/relation-id/RelationIdAttribute.d.ts +4 -4
  1365. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1366. package/query-builder/relation-id/RelationIdLoadResult.d.ts +1 -1
  1367. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  1368. package/query-builder/relation-id/RelationIdLoader.d.ts +4 -4
  1369. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1370. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.d.ts +1 -1
  1371. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1372. package/query-builder/result/DeleteResult.d.ts +1 -1
  1373. package/query-builder/result/DeleteResult.js.map +1 -1
  1374. package/query-builder/result/InsertResult.d.ts +2 -2
  1375. package/query-builder/result/InsertResult.js.map +1 -1
  1376. package/query-builder/result/UpdateResult.d.ts +2 -2
  1377. package/query-builder/result/UpdateResult.js.map +1 -1
  1378. package/query-builder/transformer/DocumentToEntityTransformer.d.ts +2 -2
  1379. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1380. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.d.ts +3 -3
  1381. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1382. package/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +2 -2
  1383. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1384. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +8 -8
  1385. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -1
  1386. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1387. package/query-runner/BaseQueryRunner.d.ts +11 -11
  1388. package/query-runner/BaseQueryRunner.js.map +1 -1
  1389. package/query-runner/QueryRunner.d.ts +17 -17
  1390. package/query-runner/QueryRunner.js.map +1 -1
  1391. package/repository/AbstractRepository.d.ts +6 -6
  1392. package/repository/AbstractRepository.js.map +1 -1
  1393. package/repository/BaseEntity.d.ts +41 -16
  1394. package/repository/BaseEntity.js +24 -0
  1395. package/repository/BaseEntity.js.map +1 -1
  1396. package/repository/EntityId.d.ts +2 -2
  1397. package/repository/EntityId.js.map +1 -1
  1398. package/repository/MongoRepository.d.ts +8 -8
  1399. package/repository/MongoRepository.js.map +1 -1
  1400. package/repository/Repository.d.ts +34 -17
  1401. package/repository/Repository.js +32 -8
  1402. package/repository/Repository.js.map +1 -1
  1403. package/repository/TreeRepository.d.ts +3 -3
  1404. package/repository/TreeRepository.js.map +1 -1
  1405. package/repository/UpsertOptions.d.ts +2 -2
  1406. package/repository/UpsertOptions.js.map +1 -1
  1407. package/schema-builder/MongoSchemaBuilder.d.ts +2 -2
  1408. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1409. package/schema-builder/RdbmsSchemaBuilder.d.ts +7 -7
  1410. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1411. package/schema-builder/SchemaBuilder.d.ts +1 -1
  1412. package/schema-builder/SchemaBuilder.js.map +1 -1
  1413. package/schema-builder/options/TableOptions.d.ts +6 -6
  1414. package/schema-builder/options/TableOptions.js.map +1 -1
  1415. package/schema-builder/options/ViewOptions.d.ts +1 -1
  1416. package/schema-builder/options/ViewOptions.js.map +1 -1
  1417. package/schema-builder/table/Table.d.ts +3 -3
  1418. package/schema-builder/table/Table.js.map +1 -1
  1419. package/schema-builder/table/TableCheck.d.ts +2 -2
  1420. package/schema-builder/table/TableCheck.js.map +1 -1
  1421. package/schema-builder/table/TableColumn.d.ts +1 -1
  1422. package/schema-builder/table/TableColumn.js.map +1 -1
  1423. package/schema-builder/table/TableExclusion.d.ts +2 -2
  1424. package/schema-builder/table/TableExclusion.js.map +1 -1
  1425. package/schema-builder/table/TableForeignKey.d.ts +3 -3
  1426. package/schema-builder/table/TableForeignKey.js.map +1 -1
  1427. package/schema-builder/table/TableIndex.d.ts +2 -2
  1428. package/schema-builder/table/TableIndex.js.map +1 -1
  1429. package/schema-builder/table/TableUnique.d.ts +2 -2
  1430. package/schema-builder/table/TableUnique.js.map +1 -1
  1431. package/schema-builder/util/TableUtils.d.ts +3 -3
  1432. package/schema-builder/util/TableUtils.js.map +1 -1
  1433. package/schema-builder/util/ViewUtils.d.ts +1 -1
  1434. package/schema-builder/util/ViewUtils.js.map +1 -1
  1435. package/schema-builder/view/View.d.ts +2 -2
  1436. package/schema-builder/view/View.js.map +1 -1
  1437. package/subscriber/Broadcaster.d.ts +6 -6
  1438. package/subscriber/Broadcaster.js.map +1 -1
  1439. package/subscriber/BroadcasterResult.js.map +1 -1
  1440. package/subscriber/EntitySubscriberInterface.d.ts +9 -9
  1441. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1442. package/subscriber/event/InsertEvent.d.ts +4 -4
  1443. package/subscriber/event/InsertEvent.js.map +1 -1
  1444. package/subscriber/event/LoadEvent.d.ts +4 -4
  1445. package/subscriber/event/LoadEvent.js.map +1 -1
  1446. package/subscriber/event/RecoverEvent.d.ts +2 -3
  1447. package/subscriber/event/RecoverEvent.js.map +1 -1
  1448. package/subscriber/event/RemoveEvent.d.ts +4 -4
  1449. package/subscriber/event/RemoveEvent.js.map +1 -1
  1450. package/subscriber/event/SoftRemoveEvent.d.ts +2 -3
  1451. package/subscriber/event/SoftRemoveEvent.js.map +1 -1
  1452. package/subscriber/event/TransactionCommitEvent.d.ts +3 -3
  1453. package/subscriber/event/TransactionCommitEvent.js.map +1 -1
  1454. package/subscriber/event/TransactionRollbackEvent.d.ts +3 -3
  1455. package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  1456. package/subscriber/event/TransactionStartEvent.d.ts +3 -3
  1457. package/subscriber/event/TransactionStartEvent.js.map +1 -1
  1458. package/subscriber/event/UpdateEvent.d.ts +7 -7
  1459. package/subscriber/event/UpdateEvent.js.map +1 -1
  1460. package/util/ApplyValueTransformers.d.ts +1 -1
  1461. package/util/ApplyValueTransformers.js.map +1 -1
  1462. package/util/DateUtils.d.ts +1 -1
  1463. package/util/DateUtils.js.map +1 -1
  1464. package/util/DepGraph.js +14 -14
  1465. package/util/DepGraph.js.map +1 -1
  1466. package/util/DirectoryExportedClassesLoader.d.ts +1 -1
  1467. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1468. package/util/InstanceChecker.d.ts +2 -2
  1469. package/util/InstanceChecker.js.map +1 -1
  1470. package/util/ObjectUtils.d.ts +1 -1
  1471. package/util/ObjectUtils.js.map +1 -1
  1472. package/util/OrmUtils.d.ts +1 -1
  1473. package/util/OrmUtils.js +4 -4
  1474. package/util/OrmUtils.js.map +1 -1
  1475. package/util/RandomGenerator.js +6 -6
  1476. package/util/RandomGenerator.js.map +1 -1
  1477. package/util/StringUtils.js.map +1 -1
  1478. package/util/TreeRepositoryUtils.d.ts +3 -3
  1479. package/util/TreeRepositoryUtils.js.map +1 -1
  1480. package/util/VersionUtils.d.ts +1 -1
  1481. package/util/VersionUtils.js.map +1 -1
  1482. package/util/escapeRegExp.d.ts +1 -1
  1483. package/util/escapeRegExp.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder/RdbmsSchemaBuilder.ts"],"names":[],"mappings":"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","file":"RdbmsSchemaBuilder.js","sourcesContent":["import { Table } from \"./table/Table\"\nimport { TableColumn } from \"./table/TableColumn\"\nimport { TableForeignKey } from \"./table/TableForeignKey\"\nimport { TableIndex } from \"./table/TableIndex\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { SchemaBuilder } from \"./SchemaBuilder\"\nimport { SqlInMemory } from \"../driver/SqlInMemory\"\nimport { TableUtils } from \"./util/TableUtils\"\nimport { TableColumnOptions } from \"./options/TableColumnOptions\"\nimport { TableUnique } from \"./table/TableUnique\"\nimport { TableCheck } from \"./table/TableCheck\"\nimport { TableExclusion } from \"./table/TableExclusion\"\nimport { View } from \"./view/View\"\nimport { ViewUtils } from \"./util/ViewUtils\"\nimport { DriverUtils } from \"../driver/DriverUtils\"\nimport { PostgresQueryRunner } from \"../driver/postgres/PostgresQueryRunner\"\n\n/**\n * Creates complete tables schemas in the database based on the entity metadatas.\n *\n * Steps how schema is being built:\n * 1. load list of all tables with complete column and keys information from the db\n * 2. drop all (old) foreign keys that exist in the table, but does not exist in the metadata\n * 3. create new tables that does not exist in the db, but exist in the metadata\n * 4. drop all columns exist (left old) in the db table, but does not exist in the metadata\n * 5. add columns from metadata which does not exist in the table\n * 6. update all exist columns which metadata has changed\n * 7. update primary keys - update old and create new primary key from changed columns\n * 8. create foreign keys which does not exist in the table yet\n * 9. create indices which are missing in db yet, and drops indices which exist in the db, but does not exist in the metadata anymore\n */\nexport class RdbmsSchemaBuilder implements SchemaBuilder {\n readonly \"@instanceof\" = Symbol.for(\"RdbmsSchemaBuilder\")\n\n /**\n * Used to execute schema creation queries in a single connection.\n */\n protected queryRunner: QueryRunner\n\n private currentDatabase?: string\n\n private currentSchema?: string\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: DataSource) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates complete schemas for the given entity metadatas.\n */\n async build(): Promise<void> {\n this.queryRunner = this.connection.createQueryRunner()\n\n // this.connection.driver.database || this.currentDatabase;\n this.currentDatabase = this.connection.driver.database\n this.currentSchema = this.connection.driver.schema\n\n // CockroachDB implements asynchronous schema sync operations which can not been executed in transaction.\n // E.g. if you try to DROP column and ADD it again in the same transaction, crdb throws error.\n // In Spanner queries against the INFORMATION_SCHEMA can be used in a read-only transaction,\n // but not in a read-write transaction.\n const isUsingTransactions =\n !(this.connection.driver.options.type === \"cockroachdb\") &&\n !(this.connection.driver.options.type === \"spanner\") &&\n this.connection.options.migrationsTransactionMode !== \"none\"\n\n await this.queryRunner.beforeMigration()\n\n if (isUsingTransactions) {\n await this.queryRunner.startTransaction()\n }\n\n try {\n await this.createMetadataTableIfNecessary(this.queryRunner)\n // Flush the queryrunner table & view cache\n const tablePaths = this.entityToSyncMetadatas.map((metadata) =>\n this.getTablePath(metadata),\n )\n const viewPaths = this.viewEntityToSyncMetadatas.map((metadata) =>\n this.getTablePath(metadata),\n )\n\n await this.queryRunner.getTables(tablePaths)\n await this.queryRunner.getViews(viewPaths)\n\n await this.executeSchemaSyncOperationsInProperOrder()\n\n // if cache is enabled then perform cache-synchronization as well\n if (this.connection.queryResultCache)\n await this.connection.queryResultCache.synchronize(\n this.queryRunner,\n )\n\n if (isUsingTransactions) {\n await this.queryRunner.commitTransaction()\n }\n } catch (error) {\n try {\n // we throw original error even if rollback thrown an error\n if (isUsingTransactions) {\n await this.queryRunner.rollbackTransaction()\n }\n } catch (rollbackError) {}\n throw error\n } finally {\n await this.queryRunner.afterMigration()\n\n await this.queryRunner.release()\n }\n }\n\n /**\n * Create the typeorm_metadata table if necessary.\n */\n async createMetadataTableIfNecessary(\n queryRunner: QueryRunner,\n ): Promise<void> {\n if (\n this.viewEntityToSyncMetadatas.length > 0 ||\n this.hasGeneratedColumns()\n ) {\n await this.createTypeormMetadataTable(queryRunner)\n }\n }\n\n /**\n * Returns sql queries to be executed by schema builder.\n */\n async log(): Promise<SqlInMemory> {\n this.queryRunner = this.connection.createQueryRunner()\n try {\n // Flush the queryrunner table & view cache\n const tablePaths = this.entityToSyncMetadatas.map((metadata) =>\n this.getTablePath(metadata),\n )\n const viewPaths = this.viewEntityToSyncMetadatas.map((metadata) =>\n this.getTablePath(metadata),\n )\n await this.queryRunner.getTables(tablePaths)\n await this.queryRunner.getViews(viewPaths)\n\n this.queryRunner.enableSqlMemory()\n await this.executeSchemaSyncOperationsInProperOrder()\n\n // if cache is enabled then perform cache-synchronization as well\n if (this.connection.queryResultCache)\n // todo: check this functionality\n await this.connection.queryResultCache.synchronize(\n this.queryRunner,\n )\n\n return this.queryRunner.getMemorySql()\n } finally {\n // its important to disable this mode despite the fact we are release query builder\n // because there exist drivers which reuse same query runner. Also its important to disable\n // sql memory after call of getMemorySql() method because last one flushes sql memory.\n this.queryRunner.disableSqlMemory()\n await this.queryRunner.release()\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Returns only entities that should be synced in the database.\n */\n protected get entityToSyncMetadatas(): EntityMetadata[] {\n return this.connection.entityMetadatas.filter(\n (metadata) =>\n metadata.synchronize &&\n metadata.tableType !== \"entity-child\" &&\n metadata.tableType !== \"view\",\n )\n }\n\n /**\n * Returns only entities that should be synced in the database.\n */\n protected get viewEntityToSyncMetadatas(): EntityMetadata[] {\n return (\n this.connection.entityMetadatas\n .filter(\n (metadata) =>\n metadata.tableType === \"view\" && metadata.synchronize,\n )\n // sort views in creation order by dependencies\n .sort(ViewUtils.viewMetadataCmp)\n )\n }\n\n /**\n * Checks if there are at least one generated column.\n */\n protected hasGeneratedColumns(): boolean {\n return this.connection.entityMetadatas.some((entityMetadata) => {\n return entityMetadata.columns.some((column) => column.generatedType)\n })\n }\n\n /**\n * Executes schema sync operations in a proper order.\n * Order of operations matter here.\n */\n protected async executeSchemaSyncOperationsInProperOrder(): Promise<void> {\n await this.dropOldViews()\n await this.dropOldForeignKeys()\n await this.dropOldIndices()\n await this.dropOldChecks()\n await this.dropOldExclusions()\n await this.dropCompositeUniqueConstraints()\n // await this.renameTables();\n await this.renameColumns()\n await this.createNewTables()\n await this.dropRemovedColumns()\n await this.addNewColumns()\n await this.updatePrimaryKeys()\n await this.updateExistColumns()\n await this.createNewIndices()\n await this.createNewChecks()\n await this.createNewExclusions()\n await this.createCompositeUniqueConstraints()\n await this.createForeignKeys()\n await this.createViews()\n await this.createNewViewIndices()\n }\n\n private getTablePath(\n target: EntityMetadata | Table | View | TableForeignKey | string,\n ): string {\n const parsed = this.connection.driver.parseTableName(target)\n\n return this.connection.driver.buildTableName(\n parsed.tableName,\n parsed.schema || this.currentSchema,\n parsed.database || this.currentDatabase,\n )\n }\n\n /**\n * Drops all (old) foreign keys that exist in the tables, but do not exist in the entity metadata.\n */\n protected async dropOldForeignKeys(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n // find foreign keys that exist in the schemas but does not exist in the entity metadata\n const tableForeignKeysToDrop = table.foreignKeys.filter(\n (tableForeignKey) => {\n const metadataFK = metadata.foreignKeys.find(\n (metadataForeignKey) =>\n tableForeignKey.name === metadataForeignKey.name &&\n this.getTablePath(tableForeignKey) ===\n this.getTablePath(\n metadataForeignKey.referencedEntityMetadata,\n ),\n )\n return (\n !metadataFK ||\n (metadataFK.onDelete &&\n metadataFK.onDelete !== tableForeignKey.onDelete) ||\n (metadataFK.onUpdate &&\n metadataFK.onUpdate !== tableForeignKey.onUpdate)\n )\n },\n )\n if (tableForeignKeysToDrop.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping old foreign keys of ${\n table.name\n }: ${tableForeignKeysToDrop\n .map((dbForeignKey) => dbForeignKey.name)\n .join(\", \")}`,\n )\n\n // drop foreign keys from the database\n await this.queryRunner.dropForeignKeys(\n table,\n tableForeignKeysToDrop,\n )\n }\n }\n\n /**\n * Rename tables\n */\n protected async renameTables(): Promise<void> {\n // for (const metadata of this.entityToSyncMetadatas) {\n // const table = this.queryRunner.loadedTables.find(table => this.getTablePath(table) === this.getTablePath(metadata));\n // }\n }\n\n /**\n * Renames columns.\n * Works if only one column per table was changed.\n * Changes only column name. If something besides name was changed, these changes will be ignored.\n */\n protected async renameColumns(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n if (metadata.columns.length !== table.columns.length) continue\n\n const renamedMetadataColumns = metadata.columns\n .filter((c) => !c.isVirtualProperty)\n .filter((column) => {\n return !table.columns.find((tableColumn) => {\n return (\n tableColumn.name === column.databaseName &&\n tableColumn.type ===\n this.connection.driver.normalizeType(column) &&\n tableColumn.isNullable === column.isNullable &&\n tableColumn.isUnique ===\n this.connection.driver.normalizeIsUnique(column)\n )\n })\n })\n\n if (\n renamedMetadataColumns.length === 0 ||\n renamedMetadataColumns.length > 1\n )\n continue\n\n const renamedTableColumns = table.columns.filter((tableColumn) => {\n return !metadata.columns.find((column) => {\n return (\n !column.isVirtualProperty &&\n column.databaseName === tableColumn.name &&\n this.connection.driver.normalizeType(column) ===\n tableColumn.type &&\n column.isNullable === tableColumn.isNullable &&\n this.connection.driver.normalizeIsUnique(column) ===\n tableColumn.isUnique\n )\n })\n })\n\n if (\n renamedTableColumns.length === 0 ||\n renamedTableColumns.length > 1\n )\n continue\n\n const renamedColumn = renamedTableColumns[0].clone()\n renamedColumn.name = renamedMetadataColumns[0].databaseName\n\n this.connection.logger.logSchemaBuild(\n `renaming column \"${renamedTableColumns[0].name}\" in to \"${renamedColumn.name}\"`,\n )\n await this.queryRunner.renameColumn(\n table,\n renamedTableColumns[0],\n renamedColumn,\n )\n }\n }\n\n protected async dropOldIndices(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const dropQueries = table.indices\n .filter((tableIndex) => {\n const indexMetadata = metadata.indices.find(\n (index) => index.name === tableIndex.name,\n )\n if (indexMetadata) {\n if (indexMetadata.synchronize === false) return false\n\n if (indexMetadata.isUnique !== tableIndex.isUnique)\n return true\n\n if (indexMetadata.isSpatial !== tableIndex.isSpatial)\n return true\n\n if (\n this.connection.driver.isFullTextColumnTypeSupported() &&\n indexMetadata.isFulltext !== tableIndex.isFulltext\n )\n return true\n\n if (\n indexMetadata.columns.length !==\n tableIndex.columnNames.length\n )\n return true\n\n return !indexMetadata.columns.every(\n (column) =>\n tableIndex.columnNames.indexOf(\n column.databaseName,\n ) !== -1,\n )\n }\n\n return true\n })\n .map(async (tableIndex) => {\n this.connection.logger.logSchemaBuild(\n `dropping an index: \"${tableIndex.name}\" from table ${table.name}`,\n )\n await this.queryRunner.dropIndex(table, tableIndex)\n })\n\n await Promise.all(dropQueries)\n }\n if (this.connection.options.type === \"postgres\") {\n const postgresQueryRunner: PostgresQueryRunner = <\n PostgresQueryRunner\n >this.queryRunner\n for (const metadata of this.viewEntityToSyncMetadatas) {\n const view = this.queryRunner.loadedViews.find(\n (view) =>\n this.getTablePath(view) === this.getTablePath(metadata),\n )\n if (!view) continue\n\n const dropQueries = view.indices\n .filter((tableIndex) => {\n const indexMetadata = metadata.indices.find(\n (index) => index.name === tableIndex.name,\n )\n if (indexMetadata) {\n if (indexMetadata.synchronize === false)\n return false\n\n if (indexMetadata.isUnique !== tableIndex.isUnique)\n return true\n\n if (\n indexMetadata.isSpatial !== tableIndex.isSpatial\n )\n return true\n\n if (\n this.connection.driver.isFullTextColumnTypeSupported() &&\n indexMetadata.isFulltext !==\n tableIndex.isFulltext\n )\n return true\n\n if (\n indexMetadata.columns.length !==\n tableIndex.columnNames.length\n )\n return true\n\n return !indexMetadata.columns.every(\n (column) =>\n tableIndex.columnNames.indexOf(\n column.databaseName,\n ) !== -1,\n )\n }\n\n return true\n })\n .map(async (tableIndex) => {\n this.connection.logger.logSchemaBuild(\n `dropping an index: \"${tableIndex.name}\" from view ${view.name}`,\n )\n await postgresQueryRunner.dropViewIndex(\n view,\n tableIndex,\n )\n })\n\n await Promise.all(dropQueries)\n }\n }\n }\n\n protected async dropOldChecks(): Promise<void> {\n // Mysql does not support check constraints\n if (\n DriverUtils.isMySQLFamily(this.connection.driver) ||\n this.connection.driver.options.type === \"aurora-mysql\"\n )\n return\n\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const oldChecks = table.checks.filter((tableCheck) => {\n return !metadata.checks.find(\n (checkMetadata) => checkMetadata.name === tableCheck.name,\n )\n })\n\n if (oldChecks.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping old check constraint: ${oldChecks\n .map((check) => `\"${check.name}\"`)\n .join(\", \")} from table \"${table.name}\"`,\n )\n await this.queryRunner.dropCheckConstraints(table, oldChecks)\n }\n }\n\n protected async dropCompositeUniqueConstraints(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const compositeUniques = table.uniques.filter((tableUnique) => {\n return (\n tableUnique.columnNames.length > 1 &&\n !metadata.uniques.find(\n (uniqueMetadata) =>\n uniqueMetadata.name === tableUnique.name,\n )\n )\n })\n\n if (compositeUniques.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping old unique constraint: ${compositeUniques\n .map((unique) => `\"${unique.name}\"`)\n .join(\", \")} from table \"${table.name}\"`,\n )\n await this.queryRunner.dropUniqueConstraints(\n table,\n compositeUniques,\n )\n }\n }\n\n protected async dropOldExclusions(): Promise<void> {\n // Only PostgreSQL supports exclusion constraints\n if (!(this.connection.driver.options.type === \"postgres\")) return\n\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const oldExclusions = table.exclusions.filter((tableExclusion) => {\n return !metadata.exclusions.find(\n (exclusionMetadata) =>\n exclusionMetadata.name === tableExclusion.name,\n )\n })\n\n if (oldExclusions.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping old exclusion constraint: ${oldExclusions\n .map((exclusion) => `\"${exclusion.name}\"`)\n .join(\", \")} from table \"${table.name}\"`,\n )\n await this.queryRunner.dropExclusionConstraints(\n table,\n oldExclusions,\n )\n }\n }\n\n /**\n * Creates tables that do not exist in the database yet.\n * New tables are created without foreign and primary keys.\n * Primary key only can be created in conclusion with auto generated column.\n */\n protected async createNewTables(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n // check if table does not exist yet\n const existTable = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (existTable) continue\n\n this.connection.logger.logSchemaBuild(\n `creating a new table: ${this.getTablePath(metadata)}`,\n )\n\n // create a new table and sync it in the database\n const table = Table.create(metadata, this.connection.driver)\n await this.queryRunner.createTable(table, false, false)\n this.queryRunner.loadedTables.push(table)\n }\n }\n\n protected async createViews(): Promise<void> {\n for (const metadata of this.viewEntityToSyncMetadatas) {\n // check if view does not exist yet\n const existView = this.queryRunner.loadedViews.find((view) => {\n const viewExpression =\n typeof view.expression === \"string\"\n ? view.expression.trim()\n : view.expression(this.connection).getQuery()\n const metadataExpression =\n typeof metadata.expression === \"string\"\n ? metadata.expression.trim()\n : metadata.expression!(this.connection).getQuery()\n return (\n this.getTablePath(view) === this.getTablePath(metadata) &&\n viewExpression === metadataExpression\n )\n })\n if (existView) continue\n\n this.connection.logger.logSchemaBuild(\n `creating a new view: ${this.getTablePath(metadata)}`,\n )\n\n // create a new view and sync it in the database\n const view = View.create(metadata, this.connection.driver)\n await this.queryRunner.createView(view, true)\n this.queryRunner.loadedViews.push(view)\n }\n }\n\n protected async dropOldViews(): Promise<void> {\n const droppedViews: Array<View> = []\n const viewEntityToSyncMetadatas = this.viewEntityToSyncMetadatas\n // BuIld lookup cache for finding views metadata\n const viewToMetadata = new Map<View, EntityMetadata>()\n for (const view of this.queryRunner.loadedViews) {\n const viewMetadata = viewEntityToSyncMetadatas.find((metadata) => {\n return this.getTablePath(view) === this.getTablePath(metadata)\n })\n if (viewMetadata) {\n viewToMetadata.set(view, viewMetadata)\n }\n }\n // Gather all changed view, that need a drop\n for (const view of this.queryRunner.loadedViews) {\n const viewMetadata = viewToMetadata.get(view)\n if (!viewMetadata) {\n continue\n }\n const viewExpression =\n typeof view.expression === \"string\"\n ? view.expression.trim()\n : view.expression(this.connection).getQuery()\n const metadataExpression =\n typeof viewMetadata.expression === \"string\"\n ? viewMetadata.expression.trim()\n : viewMetadata.expression!(this.connection).getQuery()\n\n if (viewExpression === metadataExpression) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping an old view: ${view.name}`,\n )\n\n // Collect view to be dropped\n droppedViews.push(view)\n }\n\n // Helper function that for a given view, will recursively return list of the view and all views that depend on it\n const viewDependencyChain = (view: View): View[] => {\n // Get the view metadata\n const viewMetadata = viewToMetadata.get(view)\n let viewWithDependencies = [view]\n // If no metadata is known for the view, simply return the view itself\n if (!viewMetadata) {\n return viewWithDependencies\n }\n // Iterate over all known views\n for (const [\n currentView,\n currentMetadata,\n ] of viewToMetadata.entries()) {\n // Ignore self reference\n if (currentView === view) {\n continue\n }\n // If the currently iterated view depends on the passed in view\n if (\n currentMetadata.dependsOn &&\n (currentMetadata.dependsOn.has(viewMetadata.target) ||\n currentMetadata.dependsOn.has(viewMetadata.name))\n ) {\n // Recursively add currently iterate view and its dependents\n viewWithDependencies = viewWithDependencies.concat(\n viewDependencyChain(currentView),\n )\n }\n }\n // Return all collected views\n return viewWithDependencies\n }\n\n // Collect final list of views to be dropped in a Set so there are no duplicates\n const droppedViewsWithDependencies: Set<View> = new Set(\n // Collect all dropped views, and their dependencies\n droppedViews\n .map((view) => viewDependencyChain(view))\n // Flattened to single Array ( can be replaced with flatMap, once supported)\n .reduce((all, segment) => {\n return all.concat(segment)\n }, [])\n // Sort the views to be dropped in creation order\n .sort((a, b) => {\n return ViewUtils.viewMetadataCmp(\n viewToMetadata.get(a),\n viewToMetadata.get(b),\n )\n })\n // reverse order to get drop order\n .reverse(),\n )\n\n // Finally emit all drop views\n for (const view of droppedViewsWithDependencies) {\n await this.queryRunner.dropView(view)\n }\n this.queryRunner.loadedViews = this.queryRunner.loadedViews.filter(\n (view) => !droppedViewsWithDependencies.has(view),\n )\n }\n\n /**\n * Drops all columns that exist in the table, but does not exist in the metadata (left old).\n * We drop their keys too, since it should be safe.\n */\n protected async dropRemovedColumns(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n // find columns that exist in the database but does not exist in the metadata\n const droppedTableColumns = table.columns.filter((tableColumn) => {\n return !metadata.columns.find(\n (columnMetadata) =>\n columnMetadata.isVirtualProperty ||\n columnMetadata.databaseName === tableColumn.name,\n )\n })\n if (droppedTableColumns.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `columns dropped in ${table.name}: ` +\n droppedTableColumns.map((column) => column.name).join(\", \"),\n )\n\n // drop columns from the database\n await this.queryRunner.dropColumns(table, droppedTableColumns)\n }\n }\n\n /**\n * Adds columns from metadata which does not exist in the table.\n * Columns are created without keys.\n */\n protected async addNewColumns(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n // find which columns are new\n const newColumnMetadatas = metadata.columns.filter(\n (columnMetadata) => {\n return (\n !columnMetadata.isVirtualProperty &&\n !table.columns.find(\n (tableColumn) =>\n tableColumn.name ===\n columnMetadata.databaseName,\n )\n )\n },\n )\n if (newColumnMetadatas.length === 0) continue\n\n // create columns in the database\n const newTableColumnOptions =\n this.metadataColumnsToTableColumnOptions(newColumnMetadatas)\n const newTableColumns = newTableColumnOptions.map(\n (option) => new TableColumn(option),\n )\n\n if (newTableColumns.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `new columns added: ` +\n newColumnMetadatas\n .map((column) => column.databaseName)\n .join(\", \"),\n )\n await this.queryRunner.addColumns(table, newTableColumns)\n }\n }\n\n /**\n * Updates composite primary keys.\n */\n protected async updatePrimaryKeys(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const primaryMetadataColumns = metadata.columns.filter(\n (column) => column.isPrimary,\n )\n const primaryTableColumns = table.columns.filter(\n (column) => column.isPrimary,\n )\n if (\n primaryTableColumns.length !== primaryMetadataColumns.length &&\n primaryMetadataColumns.length > 1\n ) {\n const changedPrimaryColumns = primaryMetadataColumns.map(\n (primaryMetadataColumn) => {\n return new TableColumn(\n TableUtils.createTableColumnOptions(\n primaryMetadataColumn,\n this.connection.driver,\n ),\n )\n },\n )\n await this.queryRunner.updatePrimaryKeys(\n table,\n changedPrimaryColumns,\n )\n }\n }\n }\n\n /**\n * Update all exist columns which metadata has changed.\n * Still don't create keys. Also we don't touch foreign keys of the changed columns.\n */\n protected async updateExistColumns(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const changedColumns = this.connection.driver.findChangedColumns(\n table.columns,\n metadata.columns,\n )\n if (changedColumns.length === 0) continue\n\n // drop all foreign keys that point to this column\n for (const changedColumn of changedColumns) {\n await this.dropColumnReferencedForeignKeys(\n this.getTablePath(metadata),\n changedColumn.databaseName,\n )\n }\n\n // drop all composite indices related to this column\n for (const changedColumn of changedColumns) {\n await this.dropColumnCompositeIndices(\n this.getTablePath(metadata),\n changedColumn.databaseName,\n )\n }\n\n // drop all composite uniques related to this column\n // Mysql does not support unique constraints.\n if (\n !(\n DriverUtils.isMySQLFamily(this.connection.driver) ||\n this.connection.driver.options.type === \"aurora-mysql\" ||\n this.connection.driver.options.type === \"spanner\"\n )\n ) {\n for (const changedColumn of changedColumns) {\n await this.dropColumnCompositeUniques(\n this.getTablePath(metadata),\n changedColumn.databaseName,\n )\n }\n }\n\n // generate a map of new/old columns\n const newAndOldTableColumns = changedColumns.map(\n (changedColumn) => {\n const oldTableColumn = table.columns.find(\n (column) => column.name === changedColumn.databaseName,\n )!\n const newTableColumnOptions =\n TableUtils.createTableColumnOptions(\n changedColumn,\n this.connection.driver,\n )\n const newTableColumn = new TableColumn(\n newTableColumnOptions,\n )\n\n return {\n oldColumn: oldTableColumn,\n newColumn: newTableColumn,\n }\n },\n )\n\n if (newAndOldTableColumns.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `columns changed in \"${table.name}\". updating: ` +\n changedColumns\n .map((column) => column.databaseName)\n .join(\", \"),\n )\n await this.queryRunner.changeColumns(table, newAndOldTableColumns)\n }\n }\n\n /**\n * Creates composite indices which are missing in db yet.\n */\n protected async createNewIndices(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const newIndices = metadata.indices\n .filter(\n (indexMetadata) =>\n !table.indices.find(\n (tableIndex) =>\n tableIndex.name === indexMetadata.name,\n ) && indexMetadata.synchronize === true,\n )\n .map((indexMetadata) => TableIndex.create(indexMetadata))\n\n if (newIndices.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new indices ${newIndices\n .map((index) => `\"${index.name}\"`)\n .join(\", \")} in table \"${table.name}\"`,\n )\n await this.queryRunner.createIndices(table, newIndices)\n }\n }\n\n /**\n * Creates indices for materialized views.\n */\n protected async createNewViewIndices(): Promise<void> {\n // Only PostgreSQL supports indices for materialized views.\n if (\n this.connection.options.type !== \"postgres\" ||\n !DriverUtils.isPostgresFamily(this.connection.driver)\n ) {\n return\n }\n const postgresQueryRunner: PostgresQueryRunner = <PostgresQueryRunner>(\n this.queryRunner\n )\n for (const metadata of this.viewEntityToSyncMetadatas) {\n // check if view does not exist yet\n const view = this.queryRunner.loadedViews.find((view) => {\n const viewExpression =\n typeof view.expression === \"string\"\n ? view.expression.trim()\n : view.expression(this.connection).getQuery()\n const metadataExpression =\n typeof metadata.expression === \"string\"\n ? metadata.expression.trim()\n : metadata.expression!(this.connection).getQuery()\n return (\n this.getTablePath(view) === this.getTablePath(metadata) &&\n viewExpression === metadataExpression\n )\n })\n if (!view || !view.materialized) continue\n\n const newIndices = metadata.indices\n .filter(\n (indexMetadata) =>\n !view.indices.find(\n (tableIndex) =>\n tableIndex.name === indexMetadata.name,\n ) && indexMetadata.synchronize === true,\n )\n .map((indexMetadata) => TableIndex.create(indexMetadata))\n\n if (newIndices.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new indices ${newIndices\n .map((index) => `\"${index.name}\"`)\n .join(\", \")} in view \"${view.name}\"`,\n )\n await postgresQueryRunner.createViewIndices(view, newIndices)\n }\n }\n\n protected async createNewChecks(): Promise<void> {\n // Mysql does not support check constraints\n if (\n DriverUtils.isMySQLFamily(this.connection.driver) ||\n this.connection.driver.options.type === \"aurora-mysql\"\n )\n return\n\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const newChecks = metadata.checks\n .filter(\n (checkMetadata) =>\n !table.checks.find(\n (tableCheck) =>\n tableCheck.name === checkMetadata.name,\n ),\n )\n .map((checkMetadata) => TableCheck.create(checkMetadata))\n\n if (newChecks.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new check constraints: ${newChecks\n .map((index) => `\"${index.name}\"`)\n .join(\", \")} in table \"${table.name}\"`,\n )\n await this.queryRunner.createCheckConstraints(table, newChecks)\n }\n }\n\n /**\n * Creates composite uniques which are missing in db yet.\n */\n protected async createCompositeUniqueConstraints(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const compositeUniques = metadata.uniques\n .filter(\n (uniqueMetadata) =>\n uniqueMetadata.columns.length > 1 &&\n !table.uniques.find(\n (tableUnique) =>\n tableUnique.name === uniqueMetadata.name,\n ),\n )\n .map((uniqueMetadata) => TableUnique.create(uniqueMetadata))\n\n if (compositeUniques.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new unique constraints: ${compositeUniques\n .map((unique) => `\"${unique.name}\"`)\n .join(\", \")} in table \"${table.name}\"`,\n )\n await this.queryRunner.createUniqueConstraints(\n table,\n compositeUniques,\n )\n }\n }\n\n /**\n * Creates exclusions which are missing in db yet.\n */\n protected async createNewExclusions(): Promise<void> {\n // Only PostgreSQL supports exclusion constraints\n if (!(this.connection.driver.options.type === \"postgres\")) return\n\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const newExclusions = metadata.exclusions\n .filter(\n (exclusionMetadata) =>\n !table.exclusions.find(\n (tableExclusion) =>\n tableExclusion.name === exclusionMetadata.name,\n ),\n )\n .map((exclusionMetadata) =>\n TableExclusion.create(exclusionMetadata),\n )\n\n if (newExclusions.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new exclusion constraints: ${newExclusions\n .map((exclusion) => `\"${exclusion.name}\"`)\n .join(\", \")} in table \"${table.name}\"`,\n )\n await this.queryRunner.createExclusionConstraints(\n table,\n newExclusions,\n )\n }\n }\n\n /**\n * Creates foreign keys which does not exist in the table yet.\n */\n protected async createForeignKeys(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const newKeys = metadata.foreignKeys.filter((foreignKey) => {\n return !table.foreignKeys.find(\n (dbForeignKey) =>\n dbForeignKey.name === foreignKey.name &&\n this.getTablePath(dbForeignKey) ===\n this.getTablePath(\n foreignKey.referencedEntityMetadata,\n ),\n )\n })\n if (newKeys.length === 0) continue\n\n const dbForeignKeys = newKeys.map((foreignKeyMetadata) =>\n TableForeignKey.create(\n foreignKeyMetadata,\n this.connection.driver,\n ),\n )\n this.connection.logger.logSchemaBuild(\n `creating a foreign keys: ${newKeys\n .map((key) => key.name)\n .join(\", \")} on table \"${table.name}\"`,\n )\n await this.queryRunner.createForeignKeys(table, dbForeignKeys)\n }\n }\n\n /**\n * Drops all foreign keys where given column of the given table is being used.\n */\n protected async dropColumnReferencedForeignKeys(\n tablePath: string,\n columnName: string,\n ): Promise<void> {\n const table = this.queryRunner.loadedTables.find(\n (table) => this.getTablePath(table) === tablePath,\n )\n if (!table) return\n\n const tablesWithFK: Table[] = []\n const columnForeignKey = table.foreignKeys.find(\n (foreignKey) => foreignKey.columnNames.indexOf(columnName) !== -1,\n )\n if (columnForeignKey) {\n const clonedTable = table.clone()\n clonedTable.foreignKeys = [columnForeignKey]\n tablesWithFK.push(clonedTable)\n table.removeForeignKey(columnForeignKey)\n }\n\n for (const loadedTable of this.queryRunner.loadedTables) {\n const dependForeignKeys = loadedTable.foreignKeys.filter(\n (foreignKey) => {\n return (\n this.getTablePath(foreignKey) === tablePath &&\n foreignKey.referencedColumnNames.indexOf(columnName) !==\n -1\n )\n },\n )\n\n if (dependForeignKeys.length > 0) {\n const clonedTable = loadedTable.clone()\n clonedTable.foreignKeys = dependForeignKeys\n tablesWithFK.push(clonedTable)\n dependForeignKeys.forEach((dependForeignKey) =>\n loadedTable.removeForeignKey(dependForeignKey),\n )\n }\n }\n\n if (tablesWithFK.length > 0) {\n for (const tableWithFK of tablesWithFK) {\n this.connection.logger.logSchemaBuild(\n `dropping related foreign keys of ${\n tableWithFK.name\n }: ${tableWithFK.foreignKeys\n .map((foreignKey) => foreignKey.name)\n .join(\", \")}`,\n )\n await this.queryRunner.dropForeignKeys(\n tableWithFK,\n tableWithFK.foreignKeys,\n )\n }\n }\n }\n\n /**\n * Drops all composite indices, related to given column.\n */\n protected async dropColumnCompositeIndices(\n tablePath: string,\n columnName: string,\n ): Promise<void> {\n const table = this.queryRunner.loadedTables.find(\n (table) => this.getTablePath(table) === tablePath,\n )\n if (!table) return\n\n const relatedIndices = table.indices.filter(\n (index) =>\n index.columnNames.length > 1 &&\n index.columnNames.indexOf(columnName) !== -1,\n )\n if (relatedIndices.length === 0) return\n\n this.connection.logger.logSchemaBuild(\n `dropping related indices of \"${tablePath}\".\"${columnName}\": ${relatedIndices\n .map((index) => index.name)\n .join(\", \")}`,\n )\n await this.queryRunner.dropIndices(table, relatedIndices)\n }\n\n /**\n * Drops all composite uniques, related to given column.\n */\n protected async dropColumnCompositeUniques(\n tablePath: string,\n columnName: string,\n ): Promise<void> {\n const table = this.queryRunner.loadedTables.find(\n (table) => this.getTablePath(table) === tablePath,\n )\n if (!table) return\n\n const relatedUniques = table.uniques.filter(\n (unique) =>\n unique.columnNames.length > 1 &&\n unique.columnNames.indexOf(columnName) !== -1,\n )\n if (relatedUniques.length === 0) return\n\n this.connection.logger.logSchemaBuild(\n `dropping related unique constraints of \"${tablePath}\".\"${columnName}\": ${relatedUniques\n .map((unique) => unique.name)\n .join(\", \")}`,\n )\n await this.queryRunner.dropUniqueConstraints(table, relatedUniques)\n }\n\n /**\n * Creates new columns from the given column metadatas.\n */\n protected metadataColumnsToTableColumnOptions(\n columns: ColumnMetadata[],\n ): TableColumnOptions[] {\n return columns.map((columnMetadata) =>\n TableUtils.createTableColumnOptions(\n columnMetadata,\n this.connection.driver,\n ),\n )\n }\n\n /**\n * Creates typeorm service table for storing user defined Views and generate columns.\n */\n protected async createTypeormMetadataTable(queryRunner: QueryRunner) {\n const schema = this.currentSchema\n const database = this.currentDatabase\n const typeormMetadataTable = this.connection.driver.buildTableName(\n this.connection.metadataTableName,\n schema,\n database,\n )\n\n // Spanner requires at least one primary key in a table.\n // Since we don't have unique column in \"typeorm_metadata\" table\n // and we should avoid breaking changes, we mark all columns as primary for Spanner driver.\n const isPrimary = this.connection.driver.options.type === \"spanner\"\n await queryRunner.createTable(\n new Table({\n database: database,\n schema: schema,\n name: typeormMetadataTable,\n columns: [\n {\n name: \"type\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataType,\n }),\n isNullable: false,\n isPrimary,\n },\n {\n name: \"database\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataDatabase,\n }),\n isNullable: true,\n isPrimary,\n },\n {\n name: \"schema\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataSchema,\n }),\n isNullable: true,\n isPrimary,\n },\n {\n name: \"table\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataTable,\n }),\n isNullable: true,\n isPrimary,\n },\n {\n name: \"name\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataName,\n }),\n isNullable: true,\n isPrimary,\n },\n {\n name: \"value\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataValue,\n }),\n isNullable: true,\n isPrimary,\n },\n ],\n }),\n true,\n )\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/schema-builder/RdbmsSchemaBuilder.ts"],"names":[],"mappings":"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","file":"RdbmsSchemaBuilder.js","sourcesContent":["import { Table } from \"./table/Table\"\nimport { TableColumn } from \"./table/TableColumn\"\nimport { TableForeignKey } from \"./table/TableForeignKey\"\nimport { TableIndex } from \"./table/TableIndex\"\nimport type { QueryRunner } from \"../query-runner/QueryRunner\"\nimport type { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport type { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport type { DataSource } from \"../data-source/DataSource\"\nimport type { SchemaBuilder } from \"./SchemaBuilder\"\nimport type { SqlInMemory } from \"../driver/SqlInMemory\"\nimport { TableUtils } from \"./util/TableUtils\"\nimport type { TableColumnOptions } from \"./options/TableColumnOptions\"\nimport { TableUnique } from \"./table/TableUnique\"\nimport { TableCheck } from \"./table/TableCheck\"\nimport { TableExclusion } from \"./table/TableExclusion\"\nimport { View } from \"./view/View\"\nimport { ViewUtils } from \"./util/ViewUtils\"\nimport { DriverUtils } from \"../driver/DriverUtils\"\nimport type { PostgresQueryRunner } from \"../driver/postgres/PostgresQueryRunner\"\n\n/**\n * Creates complete tables schemas in the database based on the entity metadatas.\n *\n * Steps how schema is being built:\n * 1. load list of all tables with complete column and keys information from the db\n * 2. drop all (old) foreign keys that exist in the table, but does not exist in the metadata\n * 3. create new tables that does not exist in the db, but exist in the metadata\n * 4. drop all columns exist (left old) in the db table, but does not exist in the metadata\n * 5. add columns from metadata which does not exist in the table\n * 6. update all exist columns which metadata has changed\n * 7. update primary keys - update old and create new primary key from changed columns\n * 8. create foreign keys which does not exist in the table yet\n * 9. create indices which are missing in db yet, and drops indices which exist in the db, but does not exist in the metadata anymore\n */\nexport class RdbmsSchemaBuilder implements SchemaBuilder {\n readonly \"@instanceof\" = Symbol.for(\"RdbmsSchemaBuilder\")\n\n /**\n * Used to execute schema creation queries in a single connection.\n */\n protected queryRunner: QueryRunner\n\n private currentDatabase?: string\n\n private currentSchema?: string\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: DataSource) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates complete schemas for the given entity metadatas.\n */\n async build(): Promise<void> {\n this.queryRunner = this.connection.createQueryRunner()\n\n // this.connection.driver.database || this.currentDatabase;\n this.currentDatabase = this.connection.driver.database\n this.currentSchema = this.connection.driver.schema\n\n // CockroachDB implements asynchronous schema sync operations which can not been executed in transaction.\n // E.g. if you try to DROP column and ADD it again in the same transaction, crdb throws error.\n // In Spanner queries against the INFORMATION_SCHEMA can be used in a read-only transaction,\n // but not in a read-write transaction.\n const isUsingTransactions =\n !(this.connection.driver.options.type === \"cockroachdb\") &&\n !(this.connection.driver.options.type === \"spanner\") &&\n this.connection.options.migrationsTransactionMode !== \"none\"\n\n await this.queryRunner.beforeMigration()\n\n if (isUsingTransactions) {\n await this.queryRunner.startTransaction()\n }\n\n try {\n await this.createMetadataTableIfNecessary(this.queryRunner)\n // Flush the queryrunner table & view cache\n const tablePaths = this.entityToSyncMetadatas.map((metadata) =>\n this.getTablePath(metadata),\n )\n const viewPaths = this.viewEntityToSyncMetadatas.map((metadata) =>\n this.getTablePath(metadata),\n )\n\n await this.queryRunner.getTables(tablePaths)\n await this.queryRunner.getViews(viewPaths)\n\n await this.executeSchemaSyncOperationsInProperOrder()\n\n // if cache is enabled then perform cache-synchronization as well\n if (this.connection.queryResultCache)\n await this.connection.queryResultCache.synchronize(\n this.queryRunner,\n )\n\n if (isUsingTransactions) {\n await this.queryRunner.commitTransaction()\n }\n } catch (error) {\n try {\n // we throw original error even if rollback thrown an error\n if (isUsingTransactions) {\n await this.queryRunner.rollbackTransaction()\n }\n } catch (rollbackError) {}\n throw error\n } finally {\n await this.queryRunner.afterMigration()\n\n await this.queryRunner.release()\n }\n }\n\n /**\n * Create the typeorm_metadata table if necessary.\n */\n async createMetadataTableIfNecessary(\n queryRunner: QueryRunner,\n ): Promise<void> {\n if (\n this.viewEntityToSyncMetadatas.length > 0 ||\n this.hasGeneratedColumns()\n ) {\n await this.createTypeormMetadataTable(queryRunner)\n }\n }\n\n /**\n * Returns sql queries to be executed by schema builder.\n */\n async log(): Promise<SqlInMemory> {\n this.queryRunner = this.connection.createQueryRunner()\n try {\n // Flush the queryrunner table & view cache\n const tablePaths = this.entityToSyncMetadatas.map((metadata) =>\n this.getTablePath(metadata),\n )\n const viewPaths = this.viewEntityToSyncMetadatas.map((metadata) =>\n this.getTablePath(metadata),\n )\n await this.queryRunner.getTables(tablePaths)\n await this.queryRunner.getViews(viewPaths)\n\n this.queryRunner.enableSqlMemory()\n await this.executeSchemaSyncOperationsInProperOrder()\n\n // if cache is enabled then perform cache-synchronization as well\n if (this.connection.queryResultCache)\n // todo: check this functionality\n await this.connection.queryResultCache.synchronize(\n this.queryRunner,\n )\n\n return this.queryRunner.getMemorySql()\n } finally {\n // its important to disable this mode despite the fact we are release query builder\n // because there exist drivers which reuse same query runner. Also its important to disable\n // sql memory after call of getMemorySql() method because last one flushes sql memory.\n this.queryRunner.disableSqlMemory()\n await this.queryRunner.release()\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Returns only entities that should be synced in the database.\n */\n protected get entityToSyncMetadatas(): EntityMetadata[] {\n return this.connection.entityMetadatas.filter(\n (metadata) =>\n metadata.synchronize &&\n metadata.tableType !== \"entity-child\" &&\n metadata.tableType !== \"view\",\n )\n }\n\n /**\n * Returns only entities that should be synced in the database.\n */\n protected get viewEntityToSyncMetadatas(): EntityMetadata[] {\n return (\n this.connection.entityMetadatas\n .filter(\n (metadata) =>\n metadata.tableType === \"view\" && metadata.synchronize,\n )\n // sort views in creation order by dependencies\n .sort(ViewUtils.viewMetadataCmp)\n )\n }\n\n /**\n * Checks if there are at least one generated column.\n */\n protected hasGeneratedColumns(): boolean {\n return this.connection.entityMetadatas.some((entityMetadata) => {\n return entityMetadata.columns.some((column) => column.generatedType)\n })\n }\n\n /**\n * Executes schema sync operations in a proper order.\n * Order of operations matter here.\n */\n protected async executeSchemaSyncOperationsInProperOrder(): Promise<void> {\n await this.dropOldViews()\n await this.dropOldForeignKeys()\n await this.dropOldIndices()\n await this.dropOldChecks()\n await this.dropOldExclusions()\n await this.dropCompositeUniqueConstraints()\n // await this.renameTables();\n await this.renameColumns()\n await this.createNewTables()\n await this.dropRemovedColumns()\n await this.addNewColumns()\n await this.updatePrimaryKeys()\n await this.updateExistColumns()\n await this.createNewIndices()\n await this.createNewChecks()\n await this.createNewExclusions()\n await this.createCompositeUniqueConstraints()\n await this.createForeignKeys()\n await this.createViews()\n await this.createNewViewIndices()\n }\n\n private getTablePath(\n target: EntityMetadata | Table | View | TableForeignKey | string,\n ): string {\n const parsed = this.connection.driver.parseTableName(target)\n\n return this.connection.driver.buildTableName(\n parsed.tableName,\n parsed.schema || this.currentSchema,\n parsed.database || this.currentDatabase,\n )\n }\n\n /**\n * Drops all (old) foreign keys that exist in the tables, but do not exist in the entity metadata.\n */\n protected async dropOldForeignKeys(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n // find foreign keys that exist in the schemas but does not exist in the entity metadata\n const tableForeignKeysToDrop = table.foreignKeys.filter(\n (tableForeignKey) => {\n const metadataFK = metadata.foreignKeys.find(\n (metadataForeignKey) =>\n tableForeignKey.name === metadataForeignKey.name &&\n this.getTablePath(tableForeignKey) ===\n this.getTablePath(\n metadataForeignKey.referencedEntityMetadata,\n ),\n )\n return (\n !metadataFK ||\n (metadataFK.onDelete &&\n metadataFK.onDelete !== tableForeignKey.onDelete) ||\n (metadataFK.onUpdate &&\n metadataFK.onUpdate !== tableForeignKey.onUpdate)\n )\n },\n )\n if (tableForeignKeysToDrop.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping old foreign keys of ${\n table.name\n }: ${tableForeignKeysToDrop\n .map((dbForeignKey) => dbForeignKey.name)\n .join(\", \")}`,\n )\n\n // drop foreign keys from the database\n await this.queryRunner.dropForeignKeys(\n table,\n tableForeignKeysToDrop,\n )\n }\n }\n\n /**\n * Rename tables\n */\n protected async renameTables(): Promise<void> {\n // for (const metadata of this.entityToSyncMetadatas) {\n // const table = this.queryRunner.loadedTables.find(table => this.getTablePath(table) === this.getTablePath(metadata));\n // }\n }\n\n /**\n * Renames columns.\n * Works if only one column per table was changed.\n * Changes only column name. If something besides name was changed, these changes will be ignored.\n */\n protected async renameColumns(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n if (metadata.columns.length !== table.columns.length) continue\n\n const renamedMetadataColumns = metadata.columns\n .filter((c) => !c.isVirtualProperty)\n .filter((column) => {\n return !table.columns.find((tableColumn) => {\n return (\n tableColumn.name === column.databaseName &&\n tableColumn.type ===\n this.connection.driver.normalizeType(column) &&\n tableColumn.isNullable === column.isNullable &&\n tableColumn.isUnique ===\n this.connection.driver.normalizeIsUnique(column)\n )\n })\n })\n\n if (\n renamedMetadataColumns.length === 0 ||\n renamedMetadataColumns.length > 1\n )\n continue\n\n const renamedTableColumns = table.columns.filter((tableColumn) => {\n return !metadata.columns.find((column) => {\n return (\n !column.isVirtualProperty &&\n column.databaseName === tableColumn.name &&\n this.connection.driver.normalizeType(column) ===\n tableColumn.type &&\n column.isNullable === tableColumn.isNullable &&\n this.connection.driver.normalizeIsUnique(column) ===\n tableColumn.isUnique\n )\n })\n })\n\n if (\n renamedTableColumns.length === 0 ||\n renamedTableColumns.length > 1\n )\n continue\n\n const renamedColumn = renamedTableColumns[0].clone()\n renamedColumn.name = renamedMetadataColumns[0].databaseName\n\n this.connection.logger.logSchemaBuild(\n `renaming column \"${renamedTableColumns[0].name}\" in to \"${renamedColumn.name}\"`,\n )\n await this.queryRunner.renameColumn(\n table,\n renamedTableColumns[0],\n renamedColumn,\n )\n }\n }\n\n protected async dropOldIndices(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const dropQueries = table.indices\n .filter((tableIndex) => {\n const indexMetadata = metadata.indices.find(\n (index) => index.name === tableIndex.name,\n )\n if (indexMetadata) {\n if (indexMetadata.synchronize === false) return false\n\n if (indexMetadata.isUnique !== tableIndex.isUnique)\n return true\n\n if (indexMetadata.isSpatial !== tableIndex.isSpatial)\n return true\n\n if (\n this.connection.driver.isFullTextColumnTypeSupported() &&\n indexMetadata.isFulltext !== tableIndex.isFulltext\n )\n return true\n\n if (\n indexMetadata.columns.length !==\n tableIndex.columnNames.length\n )\n return true\n\n return !indexMetadata.columns.every(\n (column) =>\n tableIndex.columnNames.indexOf(\n column.databaseName,\n ) !== -1,\n )\n }\n\n return true\n })\n .map(async (tableIndex) => {\n this.connection.logger.logSchemaBuild(\n `dropping an index: \"${tableIndex.name}\" from table ${table.name}`,\n )\n await this.queryRunner.dropIndex(table, tableIndex)\n })\n\n await Promise.all(dropQueries)\n }\n if (this.connection.options.type === \"postgres\") {\n const postgresQueryRunner: PostgresQueryRunner = <\n PostgresQueryRunner\n >this.queryRunner\n for (const metadata of this.viewEntityToSyncMetadatas) {\n const view = this.queryRunner.loadedViews.find(\n (view) =>\n this.getTablePath(view) === this.getTablePath(metadata),\n )\n if (!view) continue\n\n const dropQueries = view.indices\n .filter((tableIndex) => {\n const indexMetadata = metadata.indices.find(\n (index) => index.name === tableIndex.name,\n )\n if (indexMetadata) {\n if (indexMetadata.synchronize === false)\n return false\n\n if (indexMetadata.isUnique !== tableIndex.isUnique)\n return true\n\n if (\n indexMetadata.isSpatial !== tableIndex.isSpatial\n )\n return true\n\n if (\n this.connection.driver.isFullTextColumnTypeSupported() &&\n indexMetadata.isFulltext !==\n tableIndex.isFulltext\n )\n return true\n\n if (\n indexMetadata.columns.length !==\n tableIndex.columnNames.length\n )\n return true\n\n return !indexMetadata.columns.every(\n (column) =>\n tableIndex.columnNames.indexOf(\n column.databaseName,\n ) !== -1,\n )\n }\n\n return true\n })\n .map(async (tableIndex) => {\n this.connection.logger.logSchemaBuild(\n `dropping an index: \"${tableIndex.name}\" from view ${view.name}`,\n )\n await postgresQueryRunner.dropViewIndex(\n view,\n tableIndex,\n )\n })\n\n await Promise.all(dropQueries)\n }\n }\n }\n\n protected async dropOldChecks(): Promise<void> {\n // Mysql does not support check constraints\n if (\n DriverUtils.isMySQLFamily(this.connection.driver) ||\n this.connection.driver.options.type === \"aurora-mysql\"\n )\n return\n\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const oldChecks = table.checks.filter((tableCheck) => {\n return !metadata.checks.find(\n (checkMetadata) => checkMetadata.name === tableCheck.name,\n )\n })\n\n if (oldChecks.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping old check constraint: ${oldChecks\n .map((check) => `\"${check.name}\"`)\n .join(\", \")} from table \"${table.name}\"`,\n )\n await this.queryRunner.dropCheckConstraints(table, oldChecks)\n }\n }\n\n protected async dropCompositeUniqueConstraints(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const compositeUniques = table.uniques.filter((tableUnique) => {\n return (\n tableUnique.columnNames.length > 1 &&\n !metadata.uniques.find(\n (uniqueMetadata) =>\n uniqueMetadata.name === tableUnique.name,\n )\n )\n })\n\n if (compositeUniques.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping old unique constraint: ${compositeUniques\n .map((unique) => `\"${unique.name}\"`)\n .join(\", \")} from table \"${table.name}\"`,\n )\n await this.queryRunner.dropUniqueConstraints(\n table,\n compositeUniques,\n )\n }\n }\n\n protected async dropOldExclusions(): Promise<void> {\n // Only PostgreSQL supports exclusion constraints\n if (!(this.connection.driver.options.type === \"postgres\")) return\n\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const oldExclusions = table.exclusions.filter((tableExclusion) => {\n return !metadata.exclusions.find(\n (exclusionMetadata) =>\n exclusionMetadata.name === tableExclusion.name,\n )\n })\n\n if (oldExclusions.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping old exclusion constraint: ${oldExclusions\n .map((exclusion) => `\"${exclusion.name}\"`)\n .join(\", \")} from table \"${table.name}\"`,\n )\n await this.queryRunner.dropExclusionConstraints(\n table,\n oldExclusions,\n )\n }\n }\n\n /**\n * Creates tables that do not exist in the database yet.\n * New tables are created without foreign and primary keys.\n * Primary key only can be created in conclusion with auto generated column.\n */\n protected async createNewTables(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n // check if table does not exist yet\n const existTable = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (existTable) continue\n\n this.connection.logger.logSchemaBuild(\n `creating a new table: ${this.getTablePath(metadata)}`,\n )\n\n // create a new table and sync it in the database\n const table = Table.create(metadata, this.connection.driver)\n await this.queryRunner.createTable(table, false, false)\n this.queryRunner.loadedTables.push(table)\n }\n }\n\n protected async createViews(): Promise<void> {\n for (const metadata of this.viewEntityToSyncMetadatas) {\n // check if view does not exist yet\n const existView = this.queryRunner.loadedViews.find((view) => {\n const viewExpression =\n typeof view.expression === \"string\"\n ? view.expression.trim()\n : view.expression(this.connection).getQuery()\n const metadataExpression =\n typeof metadata.expression === \"string\"\n ? metadata.expression.trim()\n : metadata.expression!(this.connection).getQuery()\n return (\n this.getTablePath(view) === this.getTablePath(metadata) &&\n viewExpression === metadataExpression\n )\n })\n if (existView) continue\n\n this.connection.logger.logSchemaBuild(\n `creating a new view: ${this.getTablePath(metadata)}`,\n )\n\n // create a new view and sync it in the database\n const view = View.create(metadata, this.connection.driver)\n await this.queryRunner.createView(view, true)\n this.queryRunner.loadedViews.push(view)\n }\n }\n\n protected async dropOldViews(): Promise<void> {\n const droppedViews: Array<View> = []\n const viewEntityToSyncMetadatas = this.viewEntityToSyncMetadatas\n // BuIld lookup cache for finding views metadata\n const viewToMetadata = new Map<View, EntityMetadata>()\n for (const view of this.queryRunner.loadedViews) {\n const viewMetadata = viewEntityToSyncMetadatas.find((metadata) => {\n return this.getTablePath(view) === this.getTablePath(metadata)\n })\n if (viewMetadata) {\n viewToMetadata.set(view, viewMetadata)\n }\n }\n // Gather all changed view, that need a drop\n for (const view of this.queryRunner.loadedViews) {\n const viewMetadata = viewToMetadata.get(view)\n if (!viewMetadata) {\n continue\n }\n const viewExpression =\n typeof view.expression === \"string\"\n ? view.expression.trim()\n : view.expression(this.connection).getQuery()\n const metadataExpression =\n typeof viewMetadata.expression === \"string\"\n ? viewMetadata.expression.trim()\n : viewMetadata.expression!(this.connection).getQuery()\n\n if (viewExpression === metadataExpression) continue\n\n this.connection.logger.logSchemaBuild(\n `dropping an old view: ${view.name}`,\n )\n\n // Collect view to be dropped\n droppedViews.push(view)\n }\n\n // Helper function that for a given view, will recursively return list of the view and all views that depend on it\n const viewDependencyChain = (view: View): View[] => {\n // Get the view metadata\n const viewMetadata = viewToMetadata.get(view)\n let viewWithDependencies = [view]\n // If no metadata is known for the view, simply return the view itself\n if (!viewMetadata) {\n return viewWithDependencies\n }\n // Iterate over all known views\n for (const [\n currentView,\n currentMetadata,\n ] of viewToMetadata.entries()) {\n // Ignore self reference\n if (currentView === view) {\n continue\n }\n // If the currently iterated view depends on the passed in view\n if (\n currentMetadata.dependsOn &&\n (currentMetadata.dependsOn.has(viewMetadata.target) ||\n currentMetadata.dependsOn.has(viewMetadata.name))\n ) {\n // Recursively add currently iterate view and its dependents\n viewWithDependencies = viewWithDependencies.concat(\n viewDependencyChain(currentView),\n )\n }\n }\n // Return all collected views\n return viewWithDependencies\n }\n\n // Collect final list of views to be dropped in a Set so there are no duplicates\n const droppedViewsWithDependencies: Set<View> = new Set(\n // Collect all dropped views, and their dependencies\n droppedViews\n .map((view) => viewDependencyChain(view))\n // Flattened to single Array ( can be replaced with flatMap, once supported)\n .reduce((all, segment) => {\n return all.concat(segment)\n }, [])\n // Sort the views to be dropped in creation order\n .sort((a, b) => {\n return ViewUtils.viewMetadataCmp(\n viewToMetadata.get(a),\n viewToMetadata.get(b),\n )\n })\n // reverse order to get drop order\n .reverse(),\n )\n\n // Finally emit all drop views\n for (const view of droppedViewsWithDependencies) {\n await this.queryRunner.dropView(view)\n }\n this.queryRunner.loadedViews = this.queryRunner.loadedViews.filter(\n (view) => !droppedViewsWithDependencies.has(view),\n )\n }\n\n /**\n * Drops all columns that exist in the table, but does not exist in the metadata (left old).\n * We drop their keys too, since it should be safe.\n */\n protected async dropRemovedColumns(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n // find columns that exist in the database but does not exist in the metadata\n const droppedTableColumns = table.columns.filter((tableColumn) => {\n return !metadata.columns.find(\n (columnMetadata) =>\n columnMetadata.isVirtualProperty ||\n columnMetadata.databaseName === tableColumn.name,\n )\n })\n if (droppedTableColumns.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `columns dropped in ${table.name}: ` +\n droppedTableColumns.map((column) => column.name).join(\", \"),\n )\n\n // drop columns from the database\n await this.queryRunner.dropColumns(table, droppedTableColumns)\n }\n }\n\n /**\n * Adds columns from metadata which does not exist in the table.\n * Columns are created without keys.\n */\n protected async addNewColumns(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n // find which columns are new\n const newColumnMetadatas = metadata.columns.filter(\n (columnMetadata) => {\n return (\n !columnMetadata.isVirtualProperty &&\n !table.columns.find(\n (tableColumn) =>\n tableColumn.name ===\n columnMetadata.databaseName,\n )\n )\n },\n )\n if (newColumnMetadatas.length === 0) continue\n\n // create columns in the database\n const newTableColumnOptions =\n this.metadataColumnsToTableColumnOptions(newColumnMetadatas)\n const newTableColumns = newTableColumnOptions.map(\n (option) => new TableColumn(option),\n )\n\n if (newTableColumns.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `new columns added: ` +\n newColumnMetadatas\n .map((column) => column.databaseName)\n .join(\", \"),\n )\n await this.queryRunner.addColumns(table, newTableColumns)\n }\n }\n\n /**\n * Updates composite primary keys.\n */\n protected async updatePrimaryKeys(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const primaryMetadataColumns = metadata.columns.filter(\n (column) => column.isPrimary,\n )\n const primaryTableColumns = table.columns.filter(\n (column) => column.isPrimary,\n )\n if (\n primaryTableColumns.length !== primaryMetadataColumns.length &&\n primaryMetadataColumns.length > 1\n ) {\n const changedPrimaryColumns = primaryMetadataColumns.map(\n (primaryMetadataColumn) => {\n return new TableColumn(\n TableUtils.createTableColumnOptions(\n primaryMetadataColumn,\n this.connection.driver,\n ),\n )\n },\n )\n await this.queryRunner.updatePrimaryKeys(\n table,\n changedPrimaryColumns,\n )\n }\n }\n }\n\n /**\n * Update all exist columns which metadata has changed.\n * Still don't create keys. Also we don't touch foreign keys of the changed columns.\n */\n protected async updateExistColumns(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const changedColumns = this.connection.driver.findChangedColumns(\n table.columns,\n metadata.columns,\n )\n if (changedColumns.length === 0) continue\n\n // drop all foreign keys that point to this column\n for (const changedColumn of changedColumns) {\n await this.dropColumnReferencedForeignKeys(\n this.getTablePath(metadata),\n changedColumn.databaseName,\n )\n }\n\n // drop all composite indices related to this column\n for (const changedColumn of changedColumns) {\n await this.dropColumnCompositeIndices(\n this.getTablePath(metadata),\n changedColumn.databaseName,\n )\n }\n\n // drop all composite uniques related to this column\n // Mysql does not support unique constraints.\n if (\n !(\n DriverUtils.isMySQLFamily(this.connection.driver) ||\n this.connection.driver.options.type === \"aurora-mysql\" ||\n this.connection.driver.options.type === \"spanner\"\n )\n ) {\n for (const changedColumn of changedColumns) {\n await this.dropColumnCompositeUniques(\n this.getTablePath(metadata),\n changedColumn.databaseName,\n )\n }\n }\n\n // generate a map of new/old columns\n const newAndOldTableColumns = changedColumns.map(\n (changedColumn) => {\n const oldTableColumn = table.columns.find(\n (column) => column.name === changedColumn.databaseName,\n )!\n const newTableColumnOptions =\n TableUtils.createTableColumnOptions(\n changedColumn,\n this.connection.driver,\n )\n const newTableColumn = new TableColumn(\n newTableColumnOptions,\n )\n\n return {\n oldColumn: oldTableColumn,\n newColumn: newTableColumn,\n }\n },\n )\n\n if (newAndOldTableColumns.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `columns changed in \"${table.name}\". updating: ` +\n changedColumns\n .map((column) => column.databaseName)\n .join(\", \"),\n )\n await this.queryRunner.changeColumns(table, newAndOldTableColumns)\n }\n }\n\n /**\n * Creates composite indices which are missing in db yet.\n */\n protected async createNewIndices(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const newIndices = metadata.indices\n .filter(\n (indexMetadata) =>\n !table.indices.find(\n (tableIndex) =>\n tableIndex.name === indexMetadata.name,\n ) && indexMetadata.synchronize === true,\n )\n .map((indexMetadata) => TableIndex.create(indexMetadata))\n\n if (newIndices.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new indices ${newIndices\n .map((index) => `\"${index.name}\"`)\n .join(\", \")} in table \"${table.name}\"`,\n )\n await this.queryRunner.createIndices(table, newIndices)\n }\n }\n\n /**\n * Creates indices for materialized views.\n */\n protected async createNewViewIndices(): Promise<void> {\n // Only PostgreSQL supports indices for materialized views.\n if (\n this.connection.options.type !== \"postgres\" ||\n !DriverUtils.isPostgresFamily(this.connection.driver)\n ) {\n return\n }\n const postgresQueryRunner: PostgresQueryRunner = <PostgresQueryRunner>(\n this.queryRunner\n )\n for (const metadata of this.viewEntityToSyncMetadatas) {\n // check if view does not exist yet\n const view = this.queryRunner.loadedViews.find((view) => {\n const viewExpression =\n typeof view.expression === \"string\"\n ? view.expression.trim()\n : view.expression(this.connection).getQuery()\n const metadataExpression =\n typeof metadata.expression === \"string\"\n ? metadata.expression.trim()\n : metadata.expression!(this.connection).getQuery()\n return (\n this.getTablePath(view) === this.getTablePath(metadata) &&\n viewExpression === metadataExpression\n )\n })\n if (!view || !view.materialized) continue\n\n const newIndices = metadata.indices\n .filter(\n (indexMetadata) =>\n !view.indices.find(\n (tableIndex) =>\n tableIndex.name === indexMetadata.name,\n ) && indexMetadata.synchronize === true,\n )\n .map((indexMetadata) => TableIndex.create(indexMetadata))\n\n if (newIndices.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new indices ${newIndices\n .map((index) => `\"${index.name}\"`)\n .join(\", \")} in view \"${view.name}\"`,\n )\n await postgresQueryRunner.createViewIndices(view, newIndices)\n }\n }\n\n protected async createNewChecks(): Promise<void> {\n // Mysql does not support check constraints\n if (\n DriverUtils.isMySQLFamily(this.connection.driver) ||\n this.connection.driver.options.type === \"aurora-mysql\"\n )\n return\n\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const newChecks = metadata.checks\n .filter(\n (checkMetadata) =>\n !table.checks.find(\n (tableCheck) =>\n tableCheck.name === checkMetadata.name,\n ),\n )\n .map((checkMetadata) => TableCheck.create(checkMetadata))\n\n if (newChecks.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new check constraints: ${newChecks\n .map((index) => `\"${index.name}\"`)\n .join(\", \")} in table \"${table.name}\"`,\n )\n await this.queryRunner.createCheckConstraints(table, newChecks)\n }\n }\n\n /**\n * Creates composite uniques which are missing in db yet.\n */\n protected async createCompositeUniqueConstraints(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const compositeUniques = metadata.uniques\n .filter(\n (uniqueMetadata) =>\n uniqueMetadata.columns.length > 1 &&\n !table.uniques.find(\n (tableUnique) =>\n tableUnique.name === uniqueMetadata.name,\n ),\n )\n .map((uniqueMetadata) => TableUnique.create(uniqueMetadata))\n\n if (compositeUniques.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new unique constraints: ${compositeUniques\n .map((unique) => `\"${unique.name}\"`)\n .join(\", \")} in table \"${table.name}\"`,\n )\n await this.queryRunner.createUniqueConstraints(\n table,\n compositeUniques,\n )\n }\n }\n\n /**\n * Creates exclusions which are missing in db yet.\n */\n protected async createNewExclusions(): Promise<void> {\n // Only PostgreSQL supports exclusion constraints\n if (!(this.connection.driver.options.type === \"postgres\")) return\n\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const newExclusions = metadata.exclusions\n .filter(\n (exclusionMetadata) =>\n !table.exclusions.find(\n (tableExclusion) =>\n tableExclusion.name === exclusionMetadata.name,\n ),\n )\n .map((exclusionMetadata) =>\n TableExclusion.create(exclusionMetadata),\n )\n\n if (newExclusions.length === 0) continue\n\n this.connection.logger.logSchemaBuild(\n `adding new exclusion constraints: ${newExclusions\n .map((exclusion) => `\"${exclusion.name}\"`)\n .join(\", \")} in table \"${table.name}\"`,\n )\n await this.queryRunner.createExclusionConstraints(\n table,\n newExclusions,\n )\n }\n }\n\n /**\n * Creates foreign keys which does not exist in the table yet.\n */\n protected async createForeignKeys(): Promise<void> {\n for (const metadata of this.entityToSyncMetadatas) {\n const table = this.queryRunner.loadedTables.find(\n (table) =>\n this.getTablePath(table) === this.getTablePath(metadata),\n )\n if (!table) continue\n\n const newKeys = metadata.foreignKeys.filter((foreignKey) => {\n return !table.foreignKeys.find(\n (dbForeignKey) =>\n dbForeignKey.name === foreignKey.name &&\n this.getTablePath(dbForeignKey) ===\n this.getTablePath(\n foreignKey.referencedEntityMetadata,\n ),\n )\n })\n if (newKeys.length === 0) continue\n\n const dbForeignKeys = newKeys.map((foreignKeyMetadata) =>\n TableForeignKey.create(\n foreignKeyMetadata,\n this.connection.driver,\n ),\n )\n this.connection.logger.logSchemaBuild(\n `creating a foreign keys: ${newKeys\n .map((key) => key.name)\n .join(\", \")} on table \"${table.name}\"`,\n )\n await this.queryRunner.createForeignKeys(table, dbForeignKeys)\n }\n }\n\n /**\n * Drops all foreign keys where given column of the given table is being used.\n */\n protected async dropColumnReferencedForeignKeys(\n tablePath: string,\n columnName: string,\n ): Promise<void> {\n const table = this.queryRunner.loadedTables.find(\n (table) => this.getTablePath(table) === tablePath,\n )\n if (!table) return\n\n const tablesWithFK: Table[] = []\n const columnForeignKey = table.foreignKeys.find(\n (foreignKey) => foreignKey.columnNames.indexOf(columnName) !== -1,\n )\n if (columnForeignKey) {\n const clonedTable = table.clone()\n clonedTable.foreignKeys = [columnForeignKey]\n tablesWithFK.push(clonedTable)\n table.removeForeignKey(columnForeignKey)\n }\n\n for (const loadedTable of this.queryRunner.loadedTables) {\n const dependForeignKeys = loadedTable.foreignKeys.filter(\n (foreignKey) => {\n return (\n this.getTablePath(foreignKey) === tablePath &&\n foreignKey.referencedColumnNames.indexOf(columnName) !==\n -1\n )\n },\n )\n\n if (dependForeignKeys.length > 0) {\n const clonedTable = loadedTable.clone()\n clonedTable.foreignKeys = dependForeignKeys\n tablesWithFK.push(clonedTable)\n dependForeignKeys.forEach((dependForeignKey) =>\n loadedTable.removeForeignKey(dependForeignKey),\n )\n }\n }\n\n if (tablesWithFK.length > 0) {\n for (const tableWithFK of tablesWithFK) {\n this.connection.logger.logSchemaBuild(\n `dropping related foreign keys of ${\n tableWithFK.name\n }: ${tableWithFK.foreignKeys\n .map((foreignKey) => foreignKey.name)\n .join(\", \")}`,\n )\n await this.queryRunner.dropForeignKeys(\n tableWithFK,\n tableWithFK.foreignKeys,\n )\n }\n }\n }\n\n /**\n * Drops all composite indices, related to given column.\n */\n protected async dropColumnCompositeIndices(\n tablePath: string,\n columnName: string,\n ): Promise<void> {\n const table = this.queryRunner.loadedTables.find(\n (table) => this.getTablePath(table) === tablePath,\n )\n if (!table) return\n\n const relatedIndices = table.indices.filter(\n (index) =>\n index.columnNames.length > 1 &&\n index.columnNames.indexOf(columnName) !== -1,\n )\n if (relatedIndices.length === 0) return\n\n this.connection.logger.logSchemaBuild(\n `dropping related indices of \"${tablePath}\".\"${columnName}\": ${relatedIndices\n .map((index) => index.name)\n .join(\", \")}`,\n )\n await this.queryRunner.dropIndices(table, relatedIndices)\n }\n\n /**\n * Drops all composite uniques, related to given column.\n */\n protected async dropColumnCompositeUniques(\n tablePath: string,\n columnName: string,\n ): Promise<void> {\n const table = this.queryRunner.loadedTables.find(\n (table) => this.getTablePath(table) === tablePath,\n )\n if (!table) return\n\n const relatedUniques = table.uniques.filter(\n (unique) =>\n unique.columnNames.length > 1 &&\n unique.columnNames.indexOf(columnName) !== -1,\n )\n if (relatedUniques.length === 0) return\n\n this.connection.logger.logSchemaBuild(\n `dropping related unique constraints of \"${tablePath}\".\"${columnName}\": ${relatedUniques\n .map((unique) => unique.name)\n .join(\", \")}`,\n )\n await this.queryRunner.dropUniqueConstraints(table, relatedUniques)\n }\n\n /**\n * Creates new columns from the given column metadatas.\n */\n protected metadataColumnsToTableColumnOptions(\n columns: ColumnMetadata[],\n ): TableColumnOptions[] {\n return columns.map((columnMetadata) =>\n TableUtils.createTableColumnOptions(\n columnMetadata,\n this.connection.driver,\n ),\n )\n }\n\n /**\n * Creates typeorm service table for storing user defined Views and generate columns.\n */\n protected async createTypeormMetadataTable(queryRunner: QueryRunner) {\n const schema = this.currentSchema\n const database = this.currentDatabase\n const typeormMetadataTable = this.connection.driver.buildTableName(\n this.connection.metadataTableName,\n schema,\n database,\n )\n\n // Spanner requires at least one primary key in a table.\n // Since we don't have unique column in \"typeorm_metadata\" table\n // and we should avoid breaking changes, we mark all columns as primary for Spanner driver.\n const isPrimary = this.connection.driver.options.type === \"spanner\"\n await queryRunner.createTable(\n new Table({\n database: database,\n schema: schema,\n name: typeormMetadataTable,\n columns: [\n {\n name: \"type\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataType,\n }),\n isNullable: false,\n isPrimary,\n },\n {\n name: \"database\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataDatabase,\n }),\n isNullable: true,\n isPrimary,\n },\n {\n name: \"schema\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataSchema,\n }),\n isNullable: true,\n isPrimary,\n },\n {\n name: \"table\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataTable,\n }),\n isNullable: true,\n isPrimary,\n },\n {\n name: \"name\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataName,\n }),\n isNullable: true,\n isPrimary,\n },\n {\n name: \"value\",\n type: this.connection.driver.normalizeType({\n type: this.connection.driver.mappedDataTypes\n .metadataValue,\n }),\n isNullable: true,\n isPrimary,\n },\n ],\n }),\n true,\n )\n }\n}\n"],"sourceRoot":".."}
@@ -1,4 +1,4 @@
1
- import { SqlInMemory } from "../driver/SqlInMemory";
1
+ import type { SqlInMemory } from "../driver/SqlInMemory";
2
2
  /**
3
3
  * Creates complete tables schemas in the database based on the entity metadatas.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder/SchemaBuilder.ts"],"names":[],"mappings":"","file":"SchemaBuilder.js","sourcesContent":["import { SqlInMemory } from \"../driver/SqlInMemory\"\n\n/**\n * Creates complete tables schemas in the database based on the entity metadatas.\n */\nexport interface SchemaBuilder {\n /**\n * Creates complete schemas for the given entity metadatas.\n */\n build(): Promise<void>\n\n /**\n * Returns queries to be executed by schema builder.\n */\n log(): Promise<SqlInMemory>\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/schema-builder/SchemaBuilder.ts"],"names":[],"mappings":"","file":"SchemaBuilder.js","sourcesContent":["import type { SqlInMemory } from \"../driver/SqlInMemory\"\n\n/**\n * Creates complete tables schemas in the database based on the entity metadatas.\n */\nexport interface SchemaBuilder {\n /**\n * Creates complete schemas for the given entity metadatas.\n */\n build(): Promise<void>\n\n /**\n * Returns queries to be executed by schema builder.\n */\n log(): Promise<SqlInMemory>\n}\n"],"sourceRoot":".."}
@@ -1,9 +1,9 @@
1
- import { TableColumnOptions } from "./TableColumnOptions";
2
- import { TableIndexOptions } from "./TableIndexOptions";
3
- import { TableForeignKeyOptions } from "./TableForeignKeyOptions";
4
- import { TableUniqueOptions } from "./TableUniqueOptions";
5
- import { TableCheckOptions } from "./TableCheckOptions";
6
- import { TableExclusionOptions } from "./TableExclusionOptions";
1
+ import type { TableColumnOptions } from "./TableColumnOptions";
2
+ import type { TableIndexOptions } from "./TableIndexOptions";
3
+ import type { TableForeignKeyOptions } from "./TableForeignKeyOptions";
4
+ import type { TableUniqueOptions } from "./TableUniqueOptions";
5
+ import type { TableCheckOptions } from "./TableCheckOptions";
6
+ import type { TableExclusionOptions } from "./TableExclusionOptions";
7
7
  /**
8
8
  * Table options.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder/options/TableOptions.ts"],"names":[],"mappings":"","file":"TableOptions.js","sourcesContent":["import { TableColumnOptions } from \"./TableColumnOptions\"\nimport { TableIndexOptions } from \"./TableIndexOptions\"\nimport { TableForeignKeyOptions } from \"./TableForeignKeyOptions\"\nimport { TableUniqueOptions } from \"./TableUniqueOptions\"\nimport { TableCheckOptions } from \"./TableCheckOptions\"\nimport { TableExclusionOptions } from \"./TableExclusionOptions\"\n\n/**\n * Table options.\n */\nexport interface TableOptions {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Table schema.\n */\n schema?: string\n\n /**\n * Table database.\n */\n database?: string\n\n /**\n * Table name.\n */\n name: string\n\n /**\n * Table columns.\n */\n columns?: TableColumnOptions[]\n\n /**\n * Table indices.\n */\n indices?: TableIndexOptions[]\n\n /**\n * Table foreign keys.\n */\n foreignKeys?: TableForeignKeyOptions[]\n\n /**\n * Table unique constraints.\n */\n uniques?: TableUniqueOptions[]\n\n /**\n * Table check constraints.\n */\n checks?: TableCheckOptions[]\n\n /**\n * Table check constraints.\n */\n exclusions?: TableExclusionOptions[]\n\n /**\n * Indicates if table was just created.\n * This is needed, for example to check if we need to skip primary keys creation\n * for new tables.\n */\n justCreated?: boolean\n\n /**\n * Enables Sqlite \"WITHOUT ROWID\" modifier for the \"CREATE TABLE\" statement\n */\n withoutRowid?: boolean\n\n /**\n * Table engine.\n */\n engine?: string\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/schema-builder/options/TableOptions.ts"],"names":[],"mappings":"","file":"TableOptions.js","sourcesContent":["import type { TableColumnOptions } from \"./TableColumnOptions\"\nimport type { TableIndexOptions } from \"./TableIndexOptions\"\nimport type { TableForeignKeyOptions } from \"./TableForeignKeyOptions\"\nimport type { TableUniqueOptions } from \"./TableUniqueOptions\"\nimport type { TableCheckOptions } from \"./TableCheckOptions\"\nimport type { TableExclusionOptions } from \"./TableExclusionOptions\"\n\n/**\n * Table options.\n */\nexport interface TableOptions {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Table schema.\n */\n schema?: string\n\n /**\n * Table database.\n */\n database?: string\n\n /**\n * Table name.\n */\n name: string\n\n /**\n * Table columns.\n */\n columns?: TableColumnOptions[]\n\n /**\n * Table indices.\n */\n indices?: TableIndexOptions[]\n\n /**\n * Table foreign keys.\n */\n foreignKeys?: TableForeignKeyOptions[]\n\n /**\n * Table unique constraints.\n */\n uniques?: TableUniqueOptions[]\n\n /**\n * Table check constraints.\n */\n checks?: TableCheckOptions[]\n\n /**\n * Table check constraints.\n */\n exclusions?: TableExclusionOptions[]\n\n /**\n * Indicates if table was just created.\n * This is needed, for example to check if we need to skip primary keys creation\n * for new tables.\n */\n justCreated?: boolean\n\n /**\n * Enables Sqlite \"WITHOUT ROWID\" modifier for the \"CREATE TABLE\" statement\n */\n withoutRowid?: boolean\n\n /**\n * Table engine.\n */\n engine?: string\n}\n"],"sourceRoot":"../.."}
@@ -1,4 +1,4 @@
1
- import { DataSource, SelectQueryBuilder } from "../..";
1
+ import type { DataSource, SelectQueryBuilder } from "../..";
2
2
  /**
3
3
  * View options.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder/options/ViewOptions.ts"],"names":[],"mappings":"","file":"ViewOptions.js","sourcesContent":["import { DataSource, SelectQueryBuilder } from \"../..\"\n\n/**\n * View options.\n */\nexport interface ViewOptions {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Database name that this table resides in if it applies.\n */\n database?: string\n\n /**\n * Schema name that this table resides in if it applies.\n */\n schema?: string\n\n /**\n * View name.\n */\n name: string\n\n /**\n * View expression.\n */\n expression: string | ((connection: DataSource) => SelectQueryBuilder<any>)\n\n /**\n * Indicates if view is materialized\n */\n\n materialized?: boolean\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/schema-builder/options/ViewOptions.ts"],"names":[],"mappings":"","file":"ViewOptions.js","sourcesContent":["import type { DataSource, SelectQueryBuilder } from \"../..\"\n\n/**\n * View options.\n */\nexport interface ViewOptions {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Database name that this table resides in if it applies.\n */\n database?: string\n\n /**\n * Schema name that this table resides in if it applies.\n */\n schema?: string\n\n /**\n * View name.\n */\n name: string\n\n /**\n * View expression.\n */\n expression: string | ((connection: DataSource) => SelectQueryBuilder<any>)\n\n /**\n * Indicates if view is materialized\n */\n\n materialized?: boolean\n}\n"],"sourceRoot":"../.."}
@@ -1,9 +1,9 @@
1
1
  import { TableColumn } from "./TableColumn";
2
2
  import { TableIndex } from "./TableIndex";
3
3
  import { TableForeignKey } from "./TableForeignKey";
4
- import { Driver } from "../../driver/Driver";
5
- import { TableOptions } from "../options/TableOptions";
6
- import { EntityMetadata } from "../../metadata/EntityMetadata";
4
+ import type { Driver } from "../../driver/Driver";
5
+ import type { TableOptions } from "../options/TableOptions";
6
+ import type { EntityMetadata } from "../../metadata/EntityMetadata";
7
7
  import { TableUnique } from "./TableUnique";
8
8
  import { TableCheck } from "./TableCheck";
9
9
  import { TableExclusion } from "./TableExclusion";