typeorm 0.2.24 → 0.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1002) hide show
  1. package/README.md +12 -8
  2. package/browser/cache/DbQueryResultCache.js +14 -14
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.js +20 -15
  5. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  6. package/browser/common/DeepPartial.d.ts +1 -1
  7. package/browser/common/DeepPartial.js.map +1 -1
  8. package/browser/common/EntityTarget.d.ts +9 -0
  9. package/browser/common/EntityTarget.js +3 -0
  10. package/browser/common/EntityTarget.js.map +1 -0
  11. package/browser/connection/Connection.d.ts +11 -10
  12. package/browser/connection/Connection.js +66 -42
  13. package/browser/connection/Connection.js.map +1 -1
  14. package/browser/connection/ConnectionMetadataBuilder.js +8 -8
  15. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  16. package/browser/connection/ConnectionOptions.d.ts +3 -1
  17. package/browser/connection/ConnectionOptions.js.map +1 -1
  18. package/browser/connection/ConnectionOptionsReader.js +47 -42
  19. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  20. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  21. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  22. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +4 -4
  24. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  25. package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  26. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  27. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  28. package/browser/decorator/Check.d.ts +2 -2
  29. package/browser/decorator/Check.js.map +1 -1
  30. package/browser/decorator/EntityRepository.d.ts +1 -1
  31. package/browser/decorator/EntityRepository.js.map +1 -1
  32. package/browser/decorator/Exclusion.d.ts +2 -2
  33. package/browser/decorator/Exclusion.js.map +1 -1
  34. package/browser/decorator/Generated.d.ts +1 -1
  35. package/browser/decorator/Generated.js.map +1 -1
  36. package/browser/decorator/Index.d.ts +7 -7
  37. package/browser/decorator/Index.js.map +1 -1
  38. package/browser/decorator/Unique.d.ts +4 -4
  39. package/browser/decorator/Unique.js +12 -1
  40. package/browser/decorator/Unique.js.map +1 -1
  41. package/browser/decorator/columns/Column.d.ts +12 -12
  42. package/browser/decorator/columns/Column.js.map +1 -1
  43. package/browser/decorator/columns/CreateDateColumn.d.ts +1 -1
  44. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  45. package/browser/decorator/columns/DeleteDateColumn.d.ts +1 -1
  46. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  47. package/browser/decorator/columns/ObjectIdColumn.d.ts +1 -1
  48. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  49. package/browser/decorator/columns/PrimaryColumn.d.ts +2 -2
  50. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  51. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  52. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  53. package/browser/decorator/columns/UpdateDateColumn.d.ts +1 -1
  54. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  55. package/browser/decorator/columns/VersionColumn.d.ts +1 -1
  56. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  57. package/browser/decorator/columns/ViewColumn.d.ts +2 -1
  58. package/browser/decorator/columns/ViewColumn.js +2 -2
  59. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  60. package/browser/decorator/entity/ChildEntity.d.ts +1 -1
  61. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  62. package/browser/decorator/entity/Entity.d.ts +2 -2
  63. package/browser/decorator/entity/Entity.js.map +1 -1
  64. package/browser/decorator/entity/TableInheritance.d.ts +1 -1
  65. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  66. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
  67. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  68. package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
  69. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  70. package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
  71. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  72. package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
  73. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  74. package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
  75. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  76. package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
  77. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  78. package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
  79. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  80. package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
  81. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  82. package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
  83. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  84. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  85. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  86. package/browser/decorator/options/ViewColumnOptions.d.ts +9 -0
  87. package/browser/decorator/options/ViewColumnOptions.js +3 -0
  88. package/browser/decorator/options/ViewColumnOptions.js.map +1 -0
  89. package/browser/decorator/relations/JoinColumn.d.ts +3 -3
  90. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  91. package/browser/decorator/relations/JoinTable.d.ts +3 -3
  92. package/browser/decorator/relations/JoinTable.js.map +1 -1
  93. package/browser/decorator/relations/ManyToMany.d.ts +2 -2
  94. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  95. package/browser/decorator/relations/ManyToOne.d.ts +2 -2
  96. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  97. package/browser/decorator/relations/OneToMany.d.ts +3 -3
  98. package/browser/decorator/relations/OneToMany.js +2 -2
  99. package/browser/decorator/relations/OneToMany.js.map +1 -1
  100. package/browser/decorator/relations/OneToOne.d.ts +2 -2
  101. package/browser/decorator/relations/OneToOne.js.map +1 -1
  102. package/browser/decorator/relations/RelationCount.d.ts +1 -1
  103. package/browser/decorator/relations/RelationCount.js.map +1 -1
  104. package/browser/decorator/relations/RelationId.d.ts +1 -1
  105. package/browser/decorator/relations/RelationId.js.map +1 -1
  106. package/browser/decorator/transaction/Transaction.js +4 -4
  107. package/browser/decorator/transaction/Transaction.js.map +1 -1
  108. package/browser/decorator/transaction/TransactionManager.d.ts +1 -1
  109. package/browser/decorator/transaction/TransactionManager.js.map +1 -1
  110. package/browser/decorator/tree/Tree.d.ts +1 -1
  111. package/browser/decorator/tree/Tree.js.map +1 -1
  112. package/browser/decorator/tree/TreeChildren.d.ts +1 -1
  113. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  114. package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
  115. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  116. package/browser/decorator/tree/TreeParent.d.ts +1 -1
  117. package/browser/decorator/tree/TreeParent.js.map +1 -1
  118. package/browser/driver/Driver.d.ts +7 -2
  119. package/browser/driver/Driver.js.map +1 -1
  120. package/browser/driver/DriverFactory.js +6 -0
  121. package/browser/driver/DriverFactory.js.map +1 -1
  122. package/browser/driver/DriverUtils.d.ts +2 -2
  123. package/browser/driver/DriverUtils.js +8 -4
  124. package/browser/driver/DriverUtils.js.map +1 -1
  125. package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  126. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +2 -3
  127. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  128. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +6 -0
  129. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  130. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  131. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +14 -9
  132. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  133. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +5 -0
  134. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +230 -143
  135. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  136. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +27 -0
  137. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +3 -0
  138. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -0
  139. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  140. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +99 -0
  141. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  142. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +51 -0
  143. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +142 -0
  144. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -0
  145. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  146. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
  147. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  148. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  149. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +125 -0
  150. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  151. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  152. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +113 -0
  153. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  154. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  155. package/browser/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  156. package/browser/driver/cockroachdb/CockroachDriver.js +18 -13
  157. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  158. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -1
  159. package/browser/driver/cockroachdb/CockroachQueryRunner.js +420 -192
  160. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  161. package/browser/driver/cordova/CordovaDriver.d.ts +2 -1
  162. package/browser/driver/cordova/CordovaDriver.js +4 -5
  163. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  164. package/browser/driver/cordova/CordovaQueryRunner.js +4 -4
  165. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  166. package/browser/driver/expo/ExpoDriver.d.ts +2 -1
  167. package/browser/driver/expo/ExpoDriver.js +5 -5
  168. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  169. package/browser/driver/expo/ExpoQueryRunner.js +10 -10
  170. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  171. package/browser/driver/mongodb/MongoDriver.d.ts +6 -1
  172. package/browser/driver/mongodb/MongoDriver.js +9 -4
  173. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  174. package/browser/driver/mongodb/MongoQueryRunner.d.ts +1 -0
  175. package/browser/driver/mongodb/MongoQueryRunner.js +175 -175
  176. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  177. package/browser/driver/mongodb/typings.d.ts +4 -1
  178. package/browser/driver/mongodb/typings.js.map +1 -1
  179. package/browser/driver/mysql/MysqlDriver.d.ts +7 -2
  180. package/browser/driver/mysql/MysqlDriver.js +16 -9
  181. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  182. package/browser/driver/mysql/MysqlQueryRunner.d.ts +7 -1
  183. package/browser/driver/mysql/MysqlQueryRunner.js +246 -149
  184. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  185. package/browser/driver/nativescript/NativescriptDriver.d.ts +2 -1
  186. package/browser/driver/nativescript/NativescriptDriver.js +4 -5
  187. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  188. package/browser/driver/nativescript/NativescriptQueryRunner.js +2 -2
  189. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  190. package/browser/driver/oracle/OracleDriver.d.ts +6 -1
  191. package/browser/driver/oracle/OracleDriver.js +17 -12
  192. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  193. package/browser/driver/oracle/OracleQueryRunner.d.ts +3 -1
  194. package/browser/driver/oracle/OracleQueryRunner.js +195 -128
  195. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  196. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  197. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  198. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  199. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  200. package/browser/driver/postgres/PostgresDriver.d.ts +19 -4
  201. package/browser/driver/postgres/PostgresDriver.js +194 -124
  202. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  203. package/browser/driver/postgres/PostgresQueryRunner.d.ts +3 -1
  204. package/browser/driver/postgres/PostgresQueryRunner.js +416 -196
  205. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  206. package/browser/driver/react-native/ReactNativeDriver.d.ts +2 -1
  207. package/browser/driver/react-native/ReactNativeDriver.js +6 -6
  208. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  209. package/browser/driver/react-native/ReactNativeQueryRunner.js +4 -4
  210. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  211. package/browser/driver/sap/SapConnectionCredentialsOptions.d.ts +1 -1
  212. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  213. package/browser/driver/sap/SapDriver.d.ts +6 -1
  214. package/browser/driver/sap/SapDriver.js +25 -15
  215. package/browser/driver/sap/SapDriver.js.map +1 -1
  216. package/browser/driver/sap/SapQueryRunner.d.ts +3 -1
  217. package/browser/driver/sap/SapQueryRunner.js +224 -156
  218. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  219. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  220. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  221. package/browser/driver/sqlite/SqliteDriver.d.ts +2 -1
  222. package/browser/driver/sqlite/SqliteDriver.js +30 -18
  223. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  224. package/browser/driver/sqlite/SqliteQueryRunner.js +33 -18
  225. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  226. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  227. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +36 -9
  228. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  229. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -0
  230. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +134 -120
  231. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  232. package/browser/driver/sqljs/SqljsDriver.d.ts +2 -1
  233. package/browser/driver/sqljs/SqljsDriver.js +15 -16
  234. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  235. package/browser/driver/sqljs/SqljsQueryRunner.js +11 -7
  236. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  237. package/browser/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  238. package/browser/driver/sqlserver/SqlServerDriver.js +13 -8
  239. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  240. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -1
  241. package/browser/driver/sqlserver/SqlServerQueryRunner.js +237 -170
  242. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  243. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  244. package/browser/driver/types/ColumnTypes.js.map +1 -1
  245. package/browser/driver/types/DatabaseType.d.ts +1 -1
  246. package/browser/driver/types/DatabaseType.js.map +1 -1
  247. package/browser/driver/types/ReplicationMode.d.ts +1 -0
  248. package/browser/driver/types/ReplicationMode.js +3 -0
  249. package/browser/driver/types/ReplicationMode.js.map +1 -0
  250. package/browser/entity-manager/EntityManager.d.ts +42 -257
  251. package/browser/entity-manager/EntityManager.js +39 -39
  252. package/browser/entity-manager/EntityManager.js.map +1 -1
  253. package/browser/entity-manager/MongoEntityManager.d.ts +46 -46
  254. package/browser/entity-manager/MongoEntityManager.js +17 -17
  255. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  256. package/browser/entity-manager/SqljsEntityManager.js +6 -6
  257. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  258. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  259. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  260. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  261. package/browser/entity-schema/EntitySchemaTransformer.js +22 -7
  262. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  263. package/browser/error/AlreadyHasActiveConnectionError.js +2 -2
  264. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  265. package/browser/error/CannotAttachTreeChildrenEntityError.js +2 -2
  266. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  267. package/browser/error/CannotConnectAlreadyConnectedError.js +2 -2
  268. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  269. package/browser/error/CannotCreateEntityIdMapError.js +2 -2
  270. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  271. package/browser/error/CannotDetermineEntityError.js +2 -2
  272. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  273. package/browser/error/CannotExecuteNotConnectedError.js +2 -2
  274. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  275. package/browser/error/CannotGetEntityManagerNotConnectedError.js +2 -2
  276. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  277. package/browser/error/CannotReflectMethodParameterTypeError.js +2 -2
  278. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  279. package/browser/error/CircularRelationsError.js +2 -2
  280. package/browser/error/CircularRelationsError.js.map +1 -1
  281. package/browser/error/ColumnTypeUndefinedError.js +2 -2
  282. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  283. package/browser/error/ConnectionIsNotSetError.js +2 -2
  284. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  285. package/browser/error/ConnectionNotFoundError.js +2 -2
  286. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  287. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +2 -2
  288. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  289. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +2 -2
  290. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  291. package/browser/error/CustomRepositoryNotFoundError.js +2 -2
  292. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  293. package/browser/error/DataTypeNotSupportedError.js +2 -2
  294. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  295. package/browser/error/DriverOptionNotSetError.js +2 -2
  296. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  297. package/browser/error/DriverPackageNotInstalledError.js +2 -2
  298. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  299. package/browser/error/EntityColumnNotFound.js +2 -2
  300. package/browser/error/EntityColumnNotFound.js.map +1 -1
  301. package/browser/error/EntityMetadataNotFoundError.d.ts +2 -2
  302. package/browser/error/EntityMetadataNotFoundError.js +5 -2
  303. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  304. package/browser/error/EntityNotFoundError.d.ts +2 -3
  305. package/browser/error/EntityNotFoundError.js +5 -2
  306. package/browser/error/EntityNotFoundError.js.map +1 -1
  307. package/browser/error/FindRelationsNotFoundError.js +4 -4
  308. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  309. package/browser/error/InitializedRelationError.js +2 -2
  310. package/browser/error/InitializedRelationError.js.map +1 -1
  311. package/browser/error/InsertValuesMissingError.js +2 -2
  312. package/browser/error/InsertValuesMissingError.js.map +1 -1
  313. package/browser/error/LimitOnUpdateNotSupportedError.js +2 -2
  314. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  315. package/browser/error/LockNotSupportedOnGivenDriverError.js +2 -2
  316. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  317. package/browser/error/MetadataAlreadyExistsError.js +2 -2
  318. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  319. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +2 -2
  320. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  321. package/browser/error/MissingDeleteDateColumnError.js +2 -2
  322. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  323. package/browser/error/MissingDriverError.js +3 -3
  324. package/browser/error/MissingDriverError.js.map +1 -1
  325. package/browser/error/MissingJoinColumnError.js +2 -2
  326. package/browser/error/MissingJoinColumnError.js.map +1 -1
  327. package/browser/error/MissingJoinTableError.js +2 -2
  328. package/browser/error/MissingJoinTableError.js.map +1 -1
  329. package/browser/error/MissingPrimaryColumnError.js +2 -2
  330. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  331. package/browser/error/MustBeEntityError.js +2 -2
  332. package/browser/error/MustBeEntityError.js.map +1 -1
  333. package/browser/error/NamingStrategyNotFoundError.js +2 -2
  334. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  335. package/browser/error/NoConnectionForRepositoryError.js +2 -2
  336. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  337. package/browser/error/NoConnectionOptionError.js +2 -2
  338. package/browser/error/NoConnectionOptionError.js.map +1 -1
  339. package/browser/error/NoNeedToReleaseEntityManagerError.js +2 -2
  340. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  341. package/browser/error/NoVersionOrUpdateDateColumnError.js +2 -2
  342. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  343. package/browser/error/OffsetWithoutLimitNotSupportedError.js +2 -2
  344. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  345. package/browser/error/OptimisticLockCanNotBeUsedError.js +2 -2
  346. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  347. package/browser/error/OptimisticLockVersionMismatchError.js +2 -2
  348. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  349. package/browser/error/PersistedEntityNotFoundError.js +2 -2
  350. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  351. package/browser/error/PessimisticLockTransactionRequiredError.js +2 -2
  352. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  353. package/browser/error/PrimaryColumnCannotBeNullableError.js +2 -2
  354. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  355. package/browser/error/QueryFailedError.js +3 -3
  356. package/browser/error/QueryFailedError.js.map +1 -1
  357. package/browser/error/QueryRunnerAlreadyReleasedError.js +2 -2
  358. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  359. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +2 -2
  360. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  361. package/browser/error/RepositoryNotFoundError.d.ts +2 -2
  362. package/browser/error/RepositoryNotFoundError.js +5 -2
  363. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  364. package/browser/error/RepositoryNotTreeError.d.ts +2 -2
  365. package/browser/error/RepositoryNotTreeError.js +11 -8
  366. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  367. package/browser/error/ReturningStatementNotSupportedError.js +2 -2
  368. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  369. package/browser/error/SubjectRemovedAndUpdatedError.js +2 -2
  370. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  371. package/browser/error/SubjectWithoutIdentifierError.js +2 -2
  372. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  373. package/browser/error/TransactionAlreadyStartedError.js +2 -2
  374. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  375. package/browser/error/TransactionNotStartedError.js +2 -2
  376. package/browser/error/TransactionNotStartedError.js.map +1 -1
  377. package/browser/error/TreeRepositoryNotSupportedError.js +2 -2
  378. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  379. package/browser/error/UpdateValuesMissingError.js +2 -2
  380. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  381. package/browser/error/UsingJoinColumnIsNotAllowedError.js +2 -2
  382. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  383. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +2 -2
  384. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  385. package/browser/error/UsingJoinTableIsNotAllowedError.js +2 -2
  386. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  387. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +2 -2
  388. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  389. package/browser/find-options/FindOneOptions.d.ts +2 -2
  390. package/browser/find-options/FindOneOptions.js.map +1 -1
  391. package/browser/find-options/FindOperator.d.ts +6 -3
  392. package/browser/find-options/FindOperator.js +22 -45
  393. package/browser/find-options/FindOperator.js.map +1 -1
  394. package/browser/find-options/FindOptionsUtils.d.ts +2 -2
  395. package/browser/find-options/FindOptionsUtils.js +1 -1
  396. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  397. package/browser/find-options/operator/Any.d.ts +1 -1
  398. package/browser/find-options/operator/Any.js.map +1 -1
  399. package/browser/find-options/operator/Between.d.ts +1 -1
  400. package/browser/find-options/operator/Between.js.map +1 -1
  401. package/browser/find-options/operator/In.d.ts +1 -1
  402. package/browser/find-options/operator/In.js.map +1 -1
  403. package/browser/find-options/operator/Raw.d.ts +1 -1
  404. package/browser/find-options/operator/Raw.js.map +1 -1
  405. package/browser/index.d.ts +8 -11
  406. package/browser/index.js +8 -15
  407. package/browser/index.js.map +1 -1
  408. package/browser/logger/DebugLogger.d.ts +0 -1
  409. package/browser/logger/DebugLogger.js +9 -9
  410. package/browser/logger/DebugLogger.js.map +1 -1
  411. package/browser/logger/FileLogger.d.ts +3 -1
  412. package/browser/logger/FileLogger.js +9 -3
  413. package/browser/logger/FileLogger.js.map +1 -1
  414. package/browser/logger/LoggerOptions.d.ts +9 -0
  415. package/browser/logger/LoggerOptions.js.map +1 -1
  416. package/browser/metadata/ColumnMetadata.js +15 -16
  417. package/browser/metadata/ColumnMetadata.js.map +1 -1
  418. package/browser/metadata/EmbeddedMetadata.js +2 -2
  419. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  420. package/browser/metadata/EntityMetadata.d.ts +1 -5
  421. package/browser/metadata/EntityMetadata.js +15 -16
  422. package/browser/metadata/EntityMetadata.js.map +1 -1
  423. package/browser/metadata/RelationMetadata.js +12 -12
  424. package/browser/metadata/RelationMetadata.js.map +1 -1
  425. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  426. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  427. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  428. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  429. package/browser/metadata-builder/EntityMetadataBuilder.js +14 -12
  430. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  431. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +3 -2
  432. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  433. package/browser/migration/MigrationExecutor.js +132 -103
  434. package/browser/migration/MigrationExecutor.js.map +1 -1
  435. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +5 -0
  436. package/browser/naming-strategy/DefaultNamingStrategy.js +8 -6
  437. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  438. package/browser/naming-strategy/NamingStrategyInterface.d.ts +11 -0
  439. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  440. package/browser/persistence/EntityPersistExecutor.js +64 -46
  441. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  442. package/browser/persistence/Subject.js +2 -2
  443. package/browser/persistence/Subject.js.map +1 -1
  444. package/browser/persistence/SubjectChangedColumnsComputer.js +11 -7
  445. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  446. package/browser/persistence/SubjectDatabaseEntityLoader.js +9 -8
  447. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  448. package/browser/persistence/SubjectExecutor.js +263 -206
  449. package/browser/persistence/SubjectExecutor.js.map +1 -1
  450. package/browser/persistence/SubjectTopoligicalSorter.js +6 -6
  451. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  452. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +2 -2
  453. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  454. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -3
  455. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  456. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +1 -1
  457. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  458. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  459. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  460. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  461. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  462. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +5 -4
  463. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  464. package/browser/persistence/tree/NestedSetSubjectExecutor.js +3 -3
  465. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
  466. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +93 -0
  467. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
  468. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
  469. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +22 -0
  470. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
  471. package/browser/platform/BrowserDisabledDriversDummy.d.ts +32 -2
  472. package/browser/platform/BrowserDisabledDriversDummy.js +52 -2
  473. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  474. package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
  475. package/browser/platform/BrowserFileLoggerDummy.js +58 -0
  476. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
  477. package/browser/platform/BrowserPlatformTools.d.ts +74 -0
  478. package/browser/platform/BrowserPlatformTools.js +157 -0
  479. package/browser/platform/BrowserPlatformTools.js.map +1 -0
  480. package/browser/platform/PlatformTools.d.ts +15 -21
  481. package/browser/platform/PlatformTools.js +142 -81
  482. package/browser/platform/PlatformTools.js.map +1 -1
  483. package/browser/query-builder/Alias.js.map +1 -1
  484. package/browser/query-builder/DeleteQueryBuilder.d.ts +2 -3
  485. package/browser/query-builder/DeleteQueryBuilder.js +10 -5
  486. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  487. package/browser/query-builder/InsertQueryBuilder.d.ts +2 -3
  488. package/browser/query-builder/InsertQueryBuilder.js +23 -9
  489. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  490. package/browser/query-builder/JoinAttribute.js +2 -2
  491. package/browser/query-builder/JoinAttribute.js.map +1 -1
  492. package/browser/query-builder/QueryBuilder.d.ts +11 -15
  493. package/browser/query-builder/QueryBuilder.js +92 -31
  494. package/browser/query-builder/QueryBuilder.js.map +1 -1
  495. package/browser/query-builder/QueryBuilderUtils.js +2 -2
  496. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  497. package/browser/query-builder/QueryExpressionMap.d.ts +1 -1
  498. package/browser/query-builder/QueryExpressionMap.js +4 -4
  499. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  500. package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
  501. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  502. package/browser/query-builder/RelationIdLoader.js +5 -5
  503. package/browser/query-builder/RelationLoader.js +3 -3
  504. package/browser/query-builder/RelationLoader.js.map +1 -1
  505. package/browser/query-builder/RelationQueryBuilder.js +14 -14
  506. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  507. package/browser/query-builder/RelationRemover.js +7 -7
  508. package/browser/query-builder/RelationRemover.js.map +1 -1
  509. package/browser/query-builder/RelationUpdater.js +3 -3
  510. package/browser/query-builder/ReturningResultsEntityUpdator.js +30 -31
  511. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  512. package/browser/query-builder/SelectQueryBuilder.d.ts +5 -4
  513. package/browser/query-builder/SelectQueryBuilder.js +77 -41
  514. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  515. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  516. package/browser/query-builder/SoftDeleteQueryBuilder.js +7 -7
  517. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  518. package/browser/query-builder/UpdateQueryBuilder.js +22 -8
  519. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  520. package/browser/query-builder/relation-count/RelationCountAttribute.js +3 -3
  521. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  522. package/browser/query-builder/relation-count/RelationCountLoader.js +5 -5
  523. package/browser/query-builder/relation-id/RelationIdAttribute.js +2 -2
  524. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  525. package/browser/query-builder/relation-id/RelationIdLoader.js +6 -6
  526. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  527. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +4 -4
  528. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  529. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +4 -7
  530. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  531. package/browser/query-runner/BaseQueryRunner.d.ts +2 -5
  532. package/browser/query-runner/BaseQueryRunner.js +106 -56
  533. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  534. package/browser/query-runner/QueryRunner.d.ts +1 -0
  535. package/browser/repository/AbstractRepository.js.map +1 -1
  536. package/browser/repository/BaseEntity.d.ts +17 -1
  537. package/browser/repository/BaseEntity.js +24 -6
  538. package/browser/repository/BaseEntity.js.map +1 -1
  539. package/browser/repository/MongoRepository.js +2 -2
  540. package/browser/repository/MongoRepository.js.map +1 -1
  541. package/browser/repository/Repository.d.ts +1 -1
  542. package/browser/repository/Repository.js +4 -4
  543. package/browser/repository/Repository.js.map +1 -1
  544. package/browser/repository/TreeRepository.js +4 -4
  545. package/browser/repository/TreeRepository.js.map +1 -1
  546. package/browser/schema-builder/MongoSchemaBuilder.js +4 -4
  547. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  548. package/browser/schema-builder/RdbmsSchemaBuilder.js +924 -368
  549. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  550. package/browser/schema-builder/options/TableIndexOptions.d.ts +1 -1
  551. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  552. package/browser/schema-builder/table/TableCheck.js +2 -2
  553. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  554. package/browser/schema-builder/table/TableForeignKey.js +3 -3
  555. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  556. package/browser/schema-builder/table/TableIndex.js +2 -2
  557. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  558. package/browser/schema-builder/table/TableUnique.js +2 -2
  559. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  560. package/browser/schema-builder/view/View.d.ts +1 -2
  561. package/browser/schema-builder/view/View.js.map +1 -1
  562. package/browser/util/ApplyValueTransformers.js.map +1 -1
  563. package/browser/util/DateUtils.js +3 -3
  564. package/browser/util/DateUtils.js.map +1 -1
  565. package/browser/util/DirectoryExportedClassesLoader.js +6 -5
  566. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  567. package/browser/util/ObjectUtils.js +4 -4
  568. package/browser/util/ObjectUtils.js.map +1 -1
  569. package/browser/util/OrmUtils.d.ts +4 -0
  570. package/browser/util/OrmUtils.js +19 -4
  571. package/browser/util/OrmUtils.js.map +1 -1
  572. package/browser/util/StringUtils.js +1 -1
  573. package/browser/util/StringUtils.js.map +1 -1
  574. package/cache/DbQueryResultCache.js +1 -1
  575. package/cache/DbQueryResultCache.js.map +1 -1
  576. package/cache/RedisQueryResultCache.js +7 -2
  577. package/cache/RedisQueryResultCache.js.map +1 -1
  578. package/cli.js +2 -1
  579. package/cli.js.map +1 -1
  580. package/commands/CacheClearCommand.js +4 -4
  581. package/commands/CacheClearCommand.js.map +1 -1
  582. package/commands/CommandUtils.d.ts +1 -1
  583. package/commands/CommandUtils.js +4 -4
  584. package/commands/CommandUtils.js.map +1 -1
  585. package/commands/EntityCreateCommand.js +4 -4
  586. package/commands/EntityCreateCommand.js.map +1 -1
  587. package/commands/InitCommand.js +15 -5
  588. package/commands/InitCommand.js.map +1 -1
  589. package/commands/MigrationCreateCommand.js +6 -6
  590. package/commands/MigrationCreateCommand.js.map +1 -1
  591. package/commands/MigrationGenerateCommand.d.ts +11 -1
  592. package/commands/MigrationGenerateCommand.js +42 -10
  593. package/commands/MigrationGenerateCommand.js.map +1 -1
  594. package/commands/MigrationRevertCommand.js +2 -2
  595. package/commands/MigrationRevertCommand.js.map +1 -1
  596. package/commands/MigrationRunCommand.js +3 -3
  597. package/commands/MigrationRunCommand.js.map +1 -1
  598. package/commands/MigrationShowCommand.js +3 -3
  599. package/commands/MigrationShowCommand.js.map +1 -1
  600. package/commands/QueryCommand.js +5 -5
  601. package/commands/QueryCommand.js.map +1 -1
  602. package/commands/SchemaDropCommand.js +3 -3
  603. package/commands/SchemaDropCommand.js.map +1 -1
  604. package/commands/SchemaLogCommand.js +6 -6
  605. package/commands/SchemaLogCommand.js.map +1 -1
  606. package/commands/SchemaSyncCommand.js +3 -3
  607. package/commands/SchemaSyncCommand.js.map +1 -1
  608. package/commands/SubscriberCreateCommand.js +3 -3
  609. package/commands/SubscriberCreateCommand.js.map +1 -1
  610. package/commands/VersionCommand.js +2 -2
  611. package/commands/VersionCommand.js.map +1 -1
  612. package/common/DeepPartial.d.ts +1 -1
  613. package/common/DeepPartial.js.map +1 -1
  614. package/common/EntityTarget.d.ts +9 -0
  615. package/common/EntityTarget.js +4 -0
  616. package/common/EntityTarget.js.map +1 -0
  617. package/connection/Connection.d.ts +11 -10
  618. package/connection/Connection.js +48 -24
  619. package/connection/Connection.js.map +1 -1
  620. package/connection/ConnectionOptions.d.ts +3 -1
  621. package/connection/ConnectionOptions.js.map +1 -1
  622. package/connection/ConnectionOptionsReader.js +38 -33
  623. package/connection/ConnectionOptionsReader.js.map +1 -1
  624. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  625. package/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  626. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  627. package/connection/options-reader/ConnectionOptionsXmlReader.js +2 -2
  628. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  629. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  630. package/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  631. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  632. package/decorator/Check.d.ts +2 -2
  633. package/decorator/Check.js.map +1 -1
  634. package/decorator/EntityRepository.d.ts +1 -1
  635. package/decorator/EntityRepository.js.map +1 -1
  636. package/decorator/Exclusion.d.ts +2 -2
  637. package/decorator/Exclusion.js.map +1 -1
  638. package/decorator/Generated.d.ts +1 -1
  639. package/decorator/Generated.js.map +1 -1
  640. package/decorator/Index.d.ts +7 -7
  641. package/decorator/Index.js.map +1 -1
  642. package/decorator/Unique.d.ts +4 -4
  643. package/decorator/Unique.js +12 -1
  644. package/decorator/Unique.js.map +1 -1
  645. package/decorator/columns/Column.d.ts +12 -12
  646. package/decorator/columns/Column.js.map +1 -1
  647. package/decorator/columns/CreateDateColumn.d.ts +1 -1
  648. package/decorator/columns/CreateDateColumn.js.map +1 -1
  649. package/decorator/columns/DeleteDateColumn.d.ts +1 -1
  650. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  651. package/decorator/columns/ObjectIdColumn.d.ts +1 -1
  652. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  653. package/decorator/columns/PrimaryColumn.d.ts +2 -2
  654. package/decorator/columns/PrimaryColumn.js.map +1 -1
  655. package/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  656. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  657. package/decorator/columns/UpdateDateColumn.d.ts +1 -1
  658. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  659. package/decorator/columns/VersionColumn.d.ts +1 -1
  660. package/decorator/columns/VersionColumn.js.map +1 -1
  661. package/decorator/columns/ViewColumn.d.ts +2 -1
  662. package/decorator/columns/ViewColumn.js +2 -2
  663. package/decorator/columns/ViewColumn.js.map +1 -1
  664. package/decorator/entity/ChildEntity.d.ts +1 -1
  665. package/decorator/entity/ChildEntity.js.map +1 -1
  666. package/decorator/entity/Entity.d.ts +2 -2
  667. package/decorator/entity/Entity.js.map +1 -1
  668. package/decorator/entity/TableInheritance.d.ts +1 -1
  669. package/decorator/entity/TableInheritance.js.map +1 -1
  670. package/decorator/entity-view/ViewEntity.d.ts +2 -2
  671. package/decorator/entity-view/ViewEntity.js.map +1 -1
  672. package/decorator/listeners/AfterInsert.d.ts +1 -1
  673. package/decorator/listeners/AfterInsert.js.map +1 -1
  674. package/decorator/listeners/AfterLoad.d.ts +1 -1
  675. package/decorator/listeners/AfterLoad.js.map +1 -1
  676. package/decorator/listeners/AfterRemove.d.ts +1 -1
  677. package/decorator/listeners/AfterRemove.js.map +1 -1
  678. package/decorator/listeners/AfterUpdate.d.ts +1 -1
  679. package/decorator/listeners/AfterUpdate.js.map +1 -1
  680. package/decorator/listeners/BeforeInsert.d.ts +1 -1
  681. package/decorator/listeners/BeforeInsert.js.map +1 -1
  682. package/decorator/listeners/BeforeRemove.d.ts +1 -1
  683. package/decorator/listeners/BeforeRemove.js.map +1 -1
  684. package/decorator/listeners/BeforeUpdate.d.ts +1 -1
  685. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  686. package/decorator/listeners/EventSubscriber.d.ts +1 -1
  687. package/decorator/listeners/EventSubscriber.js.map +1 -1
  688. package/decorator/options/ColumnOptions.js.map +1 -1
  689. package/decorator/options/TransactionOptions.js.map +1 -1
  690. package/decorator/options/ViewColumnOptions.d.ts +9 -0
  691. package/decorator/options/ViewColumnOptions.js +4 -0
  692. package/decorator/options/ViewColumnOptions.js.map +1 -0
  693. package/decorator/relations/JoinColumn.d.ts +3 -3
  694. package/decorator/relations/JoinColumn.js.map +1 -1
  695. package/decorator/relations/JoinTable.d.ts +3 -3
  696. package/decorator/relations/JoinTable.js.map +1 -1
  697. package/decorator/relations/ManyToMany.d.ts +2 -2
  698. package/decorator/relations/ManyToMany.js.map +1 -1
  699. package/decorator/relations/ManyToOne.d.ts +2 -2
  700. package/decorator/relations/ManyToOne.js.map +1 -1
  701. package/decorator/relations/OneToMany.d.ts +3 -3
  702. package/decorator/relations/OneToMany.js +2 -2
  703. package/decorator/relations/OneToMany.js.map +1 -1
  704. package/decorator/relations/OneToOne.d.ts +2 -2
  705. package/decorator/relations/OneToOne.js.map +1 -1
  706. package/decorator/relations/RelationCount.d.ts +1 -1
  707. package/decorator/relations/RelationCount.js.map +1 -1
  708. package/decorator/relations/RelationId.d.ts +1 -1
  709. package/decorator/relations/RelationId.js.map +1 -1
  710. package/decorator/transaction/TransactionManager.d.ts +1 -1
  711. package/decorator/transaction/TransactionManager.js.map +1 -1
  712. package/decorator/tree/Tree.d.ts +1 -1
  713. package/decorator/tree/Tree.js.map +1 -1
  714. package/decorator/tree/TreeChildren.d.ts +1 -1
  715. package/decorator/tree/TreeChildren.js.map +1 -1
  716. package/decorator/tree/TreeLevelColumn.d.ts +1 -1
  717. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  718. package/decorator/tree/TreeParent.d.ts +1 -1
  719. package/decorator/tree/TreeParent.js.map +1 -1
  720. package/driver/Driver.d.ts +7 -2
  721. package/driver/Driver.js.map +1 -1
  722. package/driver/DriverFactory.js +6 -0
  723. package/driver/DriverFactory.js.map +1 -1
  724. package/driver/DriverUtils.d.ts +2 -2
  725. package/driver/DriverUtils.js +6 -2
  726. package/driver/DriverUtils.js.map +1 -1
  727. package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  728. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -1
  729. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  730. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +6 -0
  731. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  732. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  733. package/driver/aurora-data-api/AuroraDataApiDriver.js +7 -2
  734. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  735. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +4 -0
  736. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +106 -19
  737. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  738. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +27 -0
  739. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +4 -0
  740. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -0
  741. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  742. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +101 -0
  743. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  744. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +51 -0
  745. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +144 -0
  746. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -0
  747. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  748. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
  749. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  750. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  751. package/driver/better-sqlite3/BetterSqlite3Driver.js +127 -0
  752. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  753. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  754. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +115 -0
  755. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  756. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  757. package/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  758. package/driver/cockroachdb/CockroachDriver.js +6 -1
  759. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  760. package/driver/cockroachdb/CockroachQueryRunner.d.ts +2 -1
  761. package/driver/cockroachdb/CockroachQueryRunner.js +303 -75
  762. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  763. package/driver/cordova/CordovaDriver.d.ts +2 -1
  764. package/driver/cordova/CordovaDriver.js +0 -1
  765. package/driver/cordova/CordovaDriver.js.map +1 -1
  766. package/driver/expo/ExpoDriver.d.ts +2 -1
  767. package/driver/expo/ExpoDriver.js +1 -1
  768. package/driver/expo/ExpoDriver.js.map +1 -1
  769. package/driver/mongodb/MongoDriver.d.ts +6 -1
  770. package/driver/mongodb/MongoDriver.js +6 -1
  771. package/driver/mongodb/MongoDriver.js.map +1 -1
  772. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  773. package/driver/mongodb/typings.d.ts +4 -1
  774. package/driver/mongodb/typings.js.map +1 -1
  775. package/driver/mysql/MysqlDriver.d.ts +7 -2
  776. package/driver/mysql/MysqlDriver.js +10 -3
  777. package/driver/mysql/MysqlDriver.js.map +1 -1
  778. package/driver/mysql/MysqlQueryRunner.d.ts +6 -1
  779. package/driver/mysql/MysqlQueryRunner.js +122 -25
  780. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  781. package/driver/nativescript/NativescriptDriver.d.ts +2 -1
  782. package/driver/nativescript/NativescriptDriver.js +0 -1
  783. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  784. package/driver/oracle/OracleDriver.d.ts +6 -1
  785. package/driver/oracle/OracleDriver.js +8 -3
  786. package/driver/oracle/OracleDriver.js.map +1 -1
  787. package/driver/oracle/OracleQueryRunner.d.ts +2 -1
  788. package/driver/oracle/OracleQueryRunner.js +87 -20
  789. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  790. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  791. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  792. package/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  793. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  794. package/driver/postgres/PostgresDriver.d.ts +19 -4
  795. package/driver/postgres/PostgresDriver.js +179 -109
  796. package/driver/postgres/PostgresDriver.js.map +1 -1
  797. package/driver/postgres/PostgresQueryRunner.d.ts +2 -1
  798. package/driver/postgres/PostgresQueryRunner.js +288 -68
  799. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  800. package/driver/react-native/ReactNativeDriver.d.ts +2 -1
  801. package/driver/react-native/ReactNativeDriver.js +2 -2
  802. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  803. package/driver/sap/SapConnectionCredentialsOptions.d.ts +1 -1
  804. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  805. package/driver/sap/SapDriver.d.ts +6 -1
  806. package/driver/sap/SapDriver.js +19 -9
  807. package/driver/sap/SapDriver.js.map +1 -1
  808. package/driver/sap/SapQueryRunner.d.ts +2 -1
  809. package/driver/sap/SapQueryRunner.js +91 -23
  810. package/driver/sap/SapQueryRunner.js.map +1 -1
  811. package/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  812. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  813. package/driver/sqlite/SqliteDriver.d.ts +2 -1
  814. package/driver/sqlite/SqliteDriver.js +24 -12
  815. package/driver/sqlite/SqliteDriver.js.map +1 -1
  816. package/driver/sqlite/SqliteQueryRunner.js +29 -14
  817. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  818. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  819. package/driver/sqlite-abstract/AbstractSqliteDriver.js +31 -4
  820. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  821. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +17 -3
  822. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  823. package/driver/sqljs/SqljsDriver.d.ts +2 -1
  824. package/driver/sqljs/SqljsDriver.js +1 -2
  825. package/driver/sqljs/SqljsDriver.js.map +1 -1
  826. package/driver/sqljs/SqljsQueryRunner.js +5 -1
  827. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  828. package/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  829. package/driver/sqlserver/SqlServerDriver.js +6 -1
  830. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  831. package/driver/sqlserver/SqlServerQueryRunner.d.ts +2 -1
  832. package/driver/sqlserver/SqlServerQueryRunner.js +91 -24
  833. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  834. package/driver/types/ColumnTypes.d.ts +1 -1
  835. package/driver/types/ColumnTypes.js.map +1 -1
  836. package/driver/types/DatabaseType.d.ts +1 -1
  837. package/driver/types/DatabaseType.js.map +1 -1
  838. package/driver/types/ReplicationMode.d.ts +1 -0
  839. package/driver/types/ReplicationMode.js +4 -0
  840. package/driver/types/ReplicationMode.js.map +1 -0
  841. package/entity-manager/EntityManager.d.ts +42 -257
  842. package/entity-manager/EntityManager.js +10 -10
  843. package/entity-manager/EntityManager.js.map +1 -1
  844. package/entity-manager/MongoEntityManager.d.ts +46 -46
  845. package/entity-manager/MongoEntityManager.js.map +1 -1
  846. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  847. package/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  848. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  849. package/entity-schema/EntitySchemaTransformer.js +22 -7
  850. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  851. package/error/EntityMetadataNotFoundError.d.ts +2 -2
  852. package/error/EntityMetadataNotFoundError.js +3 -0
  853. package/error/EntityMetadataNotFoundError.js.map +1 -1
  854. package/error/EntityNotFoundError.d.ts +2 -3
  855. package/error/EntityNotFoundError.js +3 -0
  856. package/error/EntityNotFoundError.js.map +1 -1
  857. package/error/FindRelationsNotFoundError.js +2 -2
  858. package/error/FindRelationsNotFoundError.js.map +1 -1
  859. package/error/MissingDriverError.js +1 -1
  860. package/error/MissingDriverError.js.map +1 -1
  861. package/error/QueryFailedError.js +1 -1
  862. package/error/QueryFailedError.js.map +1 -1
  863. package/error/RepositoryNotFoundError.d.ts +2 -2
  864. package/error/RepositoryNotFoundError.js +3 -0
  865. package/error/RepositoryNotFoundError.js.map +1 -1
  866. package/error/RepositoryNotTreeError.d.ts +2 -2
  867. package/error/RepositoryNotTreeError.js +9 -6
  868. package/error/RepositoryNotTreeError.js.map +1 -1
  869. package/find-options/FindOneOptions.d.ts +2 -2
  870. package/find-options/FindOneOptions.js.map +1 -1
  871. package/find-options/FindOperator.d.ts +6 -3
  872. package/find-options/FindOperator.js +22 -45
  873. package/find-options/FindOperator.js.map +1 -1
  874. package/find-options/FindOptionsUtils.d.ts +2 -2
  875. package/find-options/FindOptionsUtils.js +1 -1
  876. package/find-options/FindOptionsUtils.js.map +1 -1
  877. package/find-options/operator/Any.d.ts +1 -1
  878. package/find-options/operator/Any.js.map +1 -1
  879. package/find-options/operator/Between.d.ts +1 -1
  880. package/find-options/operator/Between.js.map +1 -1
  881. package/find-options/operator/In.d.ts +1 -1
  882. package/find-options/operator/In.js.map +1 -1
  883. package/find-options/operator/Raw.d.ts +1 -1
  884. package/find-options/operator/Raw.js.map +1 -1
  885. package/index.d.ts +8 -11
  886. package/index.js +1 -14
  887. package/index.js.map +1 -1
  888. package/logger/DebugLogger.d.ts +0 -1
  889. package/logger/DebugLogger.js +10 -9
  890. package/logger/DebugLogger.js.map +1 -1
  891. package/logger/FileLogger.d.ts +3 -1
  892. package/logger/FileLogger.js +10 -3
  893. package/logger/FileLogger.js.map +1 -1
  894. package/logger/LoggerOptions.d.ts +9 -0
  895. package/logger/LoggerOptions.js.map +1 -1
  896. package/metadata/ColumnMetadata.js +10 -11
  897. package/metadata/ColumnMetadata.js.map +1 -1
  898. package/metadata/EntityMetadata.d.ts +1 -5
  899. package/metadata/EntityMetadata.js +13 -14
  900. package/metadata/EntityMetadata.js.map +1 -1
  901. package/metadata/RelationMetadata.js +7 -7
  902. package/metadata/RelationMetadata.js.map +1 -1
  903. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  904. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  905. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  906. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  907. package/metadata-builder/EntityMetadataBuilder.js +8 -6
  908. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  909. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
  910. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  911. package/migration/MigrationExecutor.js +103 -74
  912. package/migration/MigrationExecutor.js.map +1 -1
  913. package/naming-strategy/DefaultNamingStrategy.d.ts +5 -0
  914. package/naming-strategy/DefaultNamingStrategy.js +2 -0
  915. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  916. package/naming-strategy/NamingStrategyInterface.d.ts +11 -0
  917. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  918. package/package.json +72 -51
  919. package/persistence/EntityPersistExecutor.js +60 -42
  920. package/persistence/EntityPersistExecutor.js.map +1 -1
  921. package/persistence/SubjectChangedColumnsComputer.js +11 -7
  922. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  923. package/persistence/SubjectDatabaseEntityLoader.js +2 -1
  924. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  925. package/persistence/SubjectExecutor.js +244 -187
  926. package/persistence/SubjectExecutor.js.map +1 -1
  927. package/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -3
  928. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  929. package/persistence/subject-builder/OneToManySubjectBuilder.js +1 -1
  930. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  931. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  932. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  933. package/persistence/tree/MaterializedPathSubjectExecutor.js +2 -1
  934. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  935. package/platform/PlatformTools.d.ts +7 -1
  936. package/platform/PlatformTools.js +44 -43
  937. package/platform/PlatformTools.js.map +1 -1
  938. package/query-builder/Alias.js.map +1 -1
  939. package/query-builder/DeleteQueryBuilder.d.ts +2 -3
  940. package/query-builder/DeleteQueryBuilder.js +5 -0
  941. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  942. package/query-builder/InsertQueryBuilder.d.ts +2 -3
  943. package/query-builder/InsertQueryBuilder.js +18 -4
  944. package/query-builder/InsertQueryBuilder.js.map +1 -1
  945. package/query-builder/QueryBuilder.d.ts +11 -15
  946. package/query-builder/QueryBuilder.js +84 -23
  947. package/query-builder/QueryBuilder.js.map +1 -1
  948. package/query-builder/QueryExpressionMap.d.ts +1 -1
  949. package/query-builder/QueryExpressionMap.js.map +1 -1
  950. package/query-builder/QueryPartialEntity.d.ts +1 -1
  951. package/query-builder/QueryPartialEntity.js.map +1 -1
  952. package/query-builder/ReturningResultsEntityUpdator.js +23 -24
  953. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  954. package/query-builder/SelectQueryBuilder.d.ts +4 -4
  955. package/query-builder/SelectQueryBuilder.js +41 -5
  956. package/query-builder/SelectQueryBuilder.js.map +1 -1
  957. package/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  958. package/query-builder/SoftDeleteQueryBuilder.js +2 -2
  959. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  960. package/query-builder/UpdateQueryBuilder.js +17 -3
  961. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  962. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -4
  963. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  964. package/query-runner/BaseQueryRunner.d.ts +2 -5
  965. package/query-runner/BaseQueryRunner.js +90 -40
  966. package/query-runner/BaseQueryRunner.js.map +1 -1
  967. package/repository/AbstractRepository.js.map +1 -1
  968. package/repository/BaseEntity.d.ts +17 -1
  969. package/repository/BaseEntity.js +20 -2
  970. package/repository/BaseEntity.js.map +1 -1
  971. package/repository/MongoRepository.js.map +1 -1
  972. package/repository/Repository.d.ts +1 -1
  973. package/repository/Repository.js +2 -2
  974. package/repository/Repository.js.map +1 -1
  975. package/schema-builder/MongoSchemaBuilder.js +1 -1
  976. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  977. package/schema-builder/RdbmsSchemaBuilder.js +875 -319
  978. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  979. package/schema-builder/options/TableIndexOptions.d.ts +1 -1
  980. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  981. package/schema-builder/view/View.d.ts +1 -2
  982. package/schema-builder/view/View.js.map +1 -1
  983. package/typeorm-class-transformer-shim.js +16 -2
  984. package/typeorm-model-shim.js +18 -0
  985. package/util/ApplyValueTransformers.js.map +1 -1
  986. package/util/DateUtils.js +1 -1
  987. package/util/DateUtils.js.map +1 -1
  988. package/util/DirectoryExportedClassesLoader.js +7 -5
  989. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  990. package/util/ObjectUtils.js +2 -2
  991. package/util/ObjectUtils.js.map +1 -1
  992. package/util/OrmUtils.d.ts +4 -0
  993. package/util/OrmUtils.js +17 -2
  994. package/util/OrmUtils.js.map +1 -1
  995. package/util/StringUtils.js +3 -2
  996. package/util/StringUtils.js.map +1 -1
  997. package/browser/util/PromiseUtils.d.ts +0 -24
  998. package/browser/util/PromiseUtils.js +0 -62
  999. package/browser/util/PromiseUtils.js.map +0 -1
  1000. package/util/PromiseUtils.d.ts +0 -24
  1001. package/util/PromiseUtils.js +0 -64
  1002. package/util/PromiseUtils.js.map +0 -1
@@ -1,7 +1,6 @@
1
- import * as tslib_1 from "tslib";
1
+ import { __awaiter, __generator, __values } from "tslib";
2
2
  import { Table } from "../schema-builder/table/Table";
3
3
  import { Migration } from "./Migration";
4
- import { PromiseUtils } from "../util/PromiseUtils";
5
4
  import { SqlServerDriver } from "../driver/sqlserver/SqlServerDriver";
6
5
  import { MssqlParameter } from "../driver/sqlserver/MssqlParameter";
7
6
  import { MongoDriver } from "../driver/mongodb/MongoDriver";
@@ -36,11 +35,11 @@ var MigrationExecutor = /** @class */ (function () {
36
35
  * Tries to execute a single migration given.
37
36
  */
38
37
  MigrationExecutor.prototype.executeMigration = function (migration) {
39
- return tslib_1.__awaiter(this, void 0, void 0, function () {
38
+ return __awaiter(this, void 0, void 0, function () {
40
39
  var _this = this;
41
- return tslib_1.__generator(this, function (_a) {
42
- return [2 /*return*/, this.withQueryRunner(function (queryRunner) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
43
- return tslib_1.__generator(this, function (_a) {
40
+ return __generator(this, function (_a) {
41
+ return [2 /*return*/, this.withQueryRunner(function (queryRunner) { return __awaiter(_this, void 0, void 0, function () {
42
+ return __generator(this, function (_a) {
44
43
  switch (_a.label) {
45
44
  case 0: return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];
46
45
  case 1:
@@ -62,8 +61,8 @@ var MigrationExecutor = /** @class */ (function () {
62
61
  * Returns an array of all migrations.
63
62
  */
64
63
  MigrationExecutor.prototype.getAllMigrations = function () {
65
- return tslib_1.__awaiter(this, void 0, void 0, function () {
66
- return tslib_1.__generator(this, function (_a) {
64
+ return __awaiter(this, void 0, void 0, function () {
65
+ return __generator(this, function (_a) {
67
66
  return [2 /*return*/, Promise.resolve(this.getMigrations())];
68
67
  });
69
68
  });
@@ -72,11 +71,11 @@ var MigrationExecutor = /** @class */ (function () {
72
71
  * Returns an array of all executed migrations.
73
72
  */
74
73
  MigrationExecutor.prototype.getExecutedMigrations = function () {
75
- return tslib_1.__awaiter(this, void 0, void 0, function () {
74
+ return __awaiter(this, void 0, void 0, function () {
76
75
  var _this = this;
77
- return tslib_1.__generator(this, function (_a) {
78
- return [2 /*return*/, this.withQueryRunner(function (queryRunner) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
79
- return tslib_1.__generator(this, function (_a) {
76
+ return __generator(this, function (_a) {
77
+ return [2 /*return*/, this.withQueryRunner(function (queryRunner) { return __awaiter(_this, void 0, void 0, function () {
78
+ return __generator(this, function (_a) {
80
79
  switch (_a.label) {
81
80
  case 0: return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];
82
81
  case 1:
@@ -93,9 +92,9 @@ var MigrationExecutor = /** @class */ (function () {
93
92
  * Returns an array of all pending migrations.
94
93
  */
95
94
  MigrationExecutor.prototype.getPendingMigrations = function () {
96
- return tslib_1.__awaiter(this, void 0, void 0, function () {
95
+ return __awaiter(this, void 0, void 0, function () {
97
96
  var allMigrations, executedMigrations;
98
- return tslib_1.__generator(this, function (_a) {
97
+ return __generator(this, function (_a) {
99
98
  switch (_a.label) {
100
99
  case 0: return [4 /*yield*/, this.getAllMigrations()];
101
100
  case 1:
@@ -104,7 +103,7 @@ var MigrationExecutor = /** @class */ (function () {
104
103
  case 2:
105
104
  executedMigrations = _a.sent();
106
105
  return [2 /*return*/, allMigrations.filter(function (migration) {
107
- return executedMigrations.find(function (executedMigration) {
106
+ return !executedMigrations.find(function (executedMigration) {
108
107
  return executedMigration.name === migration.name;
109
108
  });
110
109
  })];
@@ -143,13 +142,14 @@ var MigrationExecutor = /** @class */ (function () {
143
142
  * returns true if there are unapplied migrations
144
143
  */
145
144
  MigrationExecutor.prototype.showMigrations = function () {
146
- return tslib_1.__awaiter(this, void 0, void 0, function () {
147
- var e_1, _a, hasUnappliedMigrations, queryRunner, executedMigrations, allMigrations, _loop_1, this_1, allMigrations_1, allMigrations_1_1, migration;
148
- return tslib_1.__generator(this, function (_b) {
145
+ return __awaiter(this, void 0, void 0, function () {
146
+ var hasUnappliedMigrations, queryRunner, executedMigrations, allMigrations, _loop_1, this_1, allMigrations_1, allMigrations_1_1, migration;
147
+ var e_1, _a;
148
+ return __generator(this, function (_b) {
149
149
  switch (_b.label) {
150
150
  case 0:
151
151
  hasUnappliedMigrations = false;
152
- queryRunner = this.queryRunner || this.connection.createQueryRunner("master");
152
+ queryRunner = this.queryRunner || this.connection.createQueryRunner();
153
153
  // create migrations table if its not created yet
154
154
  return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];
155
155
  case 1:
@@ -171,7 +171,7 @@ var MigrationExecutor = /** @class */ (function () {
171
171
  };
172
172
  this_1 = this;
173
173
  try {
174
- for (allMigrations_1 = tslib_1.__values(allMigrations), allMigrations_1_1 = allMigrations_1.next(); !allMigrations_1_1.done; allMigrations_1_1 = allMigrations_1.next()) {
174
+ for (allMigrations_1 = __values(allMigrations), allMigrations_1_1 = allMigrations_1.next(); !allMigrations_1_1.done; allMigrations_1_1 = allMigrations_1.next()) {
175
175
  migration = allMigrations_1_1.value;
176
176
  _loop_1(migration);
177
177
  }
@@ -198,21 +198,22 @@ var MigrationExecutor = /** @class */ (function () {
198
198
  * thus not saved in the database.
199
199
  */
200
200
  MigrationExecutor.prototype.executePendingMigrations = function () {
201
- return tslib_1.__awaiter(this, void 0, void 0, function () {
202
- var queryRunner, executedMigrations, lastTimeExecutedMigration, allMigrations, successMigrations, pendingMigrations, transactionStartedByUs, err_1, rollbackError_1;
201
+ return __awaiter(this, void 0, void 0, function () {
202
+ var queryRunner, executedMigrations, lastTimeExecutedMigration, allMigrations, successMigrations, pendingMigrations, transactionStartedByUs, _loop_2, this_2, pendingMigrations_1, pendingMigrations_1_1, migration, e_2_1, err_1, rollbackError_1;
203
+ var e_2, _a;
203
204
  var _this = this;
204
- return tslib_1.__generator(this, function (_a) {
205
- switch (_a.label) {
205
+ return __generator(this, function (_b) {
206
+ switch (_b.label) {
206
207
  case 0:
207
- queryRunner = this.queryRunner || this.connection.createQueryRunner("master");
208
+ queryRunner = this.queryRunner || this.connection.createQueryRunner();
208
209
  // create migrations table if its not created yet
209
210
  return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];
210
211
  case 1:
211
212
  // create migrations table if its not created yet
212
- _a.sent();
213
+ _b.sent();
213
214
  return [4 /*yield*/, this.loadExecutedMigrations(queryRunner)];
214
215
  case 2:
215
- executedMigrations = _a.sent();
216
+ executedMigrations = _b.sent();
216
217
  lastTimeExecutedMigration = this.getLatestTimestampMigration(executedMigrations);
217
218
  allMigrations = this.getMigrations();
218
219
  successMigrations = [];
@@ -232,8 +233,8 @@ var MigrationExecutor = /** @class */ (function () {
232
233
  if (!!this.queryRunner) return [3 /*break*/, 4];
233
234
  return [4 /*yield*/, queryRunner.release()];
234
235
  case 3:
235
- _a.sent();
236
- _a.label = 4;
236
+ _b.sent();
237
+ _b.label = 4;
237
238
  case 4: return [2 /*return*/, []];
238
239
  case 5:
239
240
  // log information about migration execution
@@ -246,76 +247,104 @@ var MigrationExecutor = /** @class */ (function () {
246
247
  if (!(this.transaction === "all" && !queryRunner.isTransactionActive)) return [3 /*break*/, 7];
247
248
  return [4 /*yield*/, queryRunner.startTransaction()];
248
249
  case 6:
249
- _a.sent();
250
+ _b.sent();
250
251
  transactionStartedByUs = true;
251
- _a.label = 7;
252
+ _b.label = 7;
252
253
  case 7:
253
- _a.trys.push([7, 11, 16, 19]);
254
- return [4 /*yield*/, PromiseUtils.runInSequence(pendingMigrations, function (migration) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
255
- var _this = this;
256
- return tslib_1.__generator(this, function (_a) {
257
- switch (_a.label) {
258
- case 0:
259
- if (!(this.transaction === "each" && !queryRunner.isTransactionActive)) return [3 /*break*/, 2];
260
- return [4 /*yield*/, queryRunner.startTransaction()];
261
- case 1:
262
- _a.sent();
263
- transactionStartedByUs = true;
264
- _a.label = 2;
265
- case 2: return [2 /*return*/, migration.instance.up(queryRunner)
266
- .then(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
267
- return tslib_1.__generator(this, function (_a) {
268
- switch (_a.label) {
269
- case 0: // now when migration is executed we need to insert record about it into the database
270
- return [4 /*yield*/, this.insertExecutedMigration(queryRunner, migration)];
271
- case 1:
272
- _a.sent();
273
- if (!(this.transaction === "each" && transactionStartedByUs)) return [3 /*break*/, 3];
274
- return [4 /*yield*/, queryRunner.commitTransaction()];
275
- case 2:
276
- _a.sent();
277
- _a.label = 3;
278
- case 3: return [2 /*return*/];
279
- }
280
- });
281
- }); })
282
- .then(function () {
283
- successMigrations.push(migration);
284
- _this.connection.logger.logSchemaBuild("Migration " + migration.name + " has been executed successfully.");
285
- })];
286
- }
287
- });
288
- }); })];
254
+ _b.trys.push([7, 18, 23, 26]);
255
+ _loop_2 = function (migration) {
256
+ return __generator(this, function (_a) {
257
+ switch (_a.label) {
258
+ case 0:
259
+ if (!(this_2.transaction === "each" && !queryRunner.isTransactionActive)) return [3 /*break*/, 2];
260
+ return [4 /*yield*/, queryRunner.startTransaction()];
261
+ case 1:
262
+ _a.sent();
263
+ transactionStartedByUs = true;
264
+ _a.label = 2;
265
+ case 2: return [4 /*yield*/, migration.instance.up(queryRunner)
266
+ .then(function () { return __awaiter(_this, void 0, void 0, function () {
267
+ return __generator(this, function (_a) {
268
+ switch (_a.label) {
269
+ case 0: // now when migration is executed we need to insert record about it into the database
270
+ return [4 /*yield*/, this.insertExecutedMigration(queryRunner, migration)];
271
+ case 1:
272
+ _a.sent();
273
+ if (!(this.transaction === "each" && transactionStartedByUs)) return [3 /*break*/, 3];
274
+ return [4 /*yield*/, queryRunner.commitTransaction()];
275
+ case 2:
276
+ _a.sent();
277
+ _a.label = 3;
278
+ case 3: return [2 /*return*/];
279
+ }
280
+ });
281
+ }); })
282
+ .then(function () {
283
+ successMigrations.push(migration);
284
+ _this.connection.logger.logSchemaBuild("Migration " + migration.name + " has been executed successfully.");
285
+ })];
286
+ case 3:
287
+ _a.sent();
288
+ return [2 /*return*/];
289
+ }
290
+ });
291
+ };
292
+ this_2 = this;
293
+ _b.label = 8;
289
294
  case 8:
290
- _a.sent();
291
- if (!(this.transaction === "all" && transactionStartedByUs)) return [3 /*break*/, 10];
292
- return [4 /*yield*/, queryRunner.commitTransaction()];
295
+ _b.trys.push([8, 13, 14, 15]);
296
+ pendingMigrations_1 = __values(pendingMigrations), pendingMigrations_1_1 = pendingMigrations_1.next();
297
+ _b.label = 9;
293
298
  case 9:
294
- _a.sent();
295
- _a.label = 10;
296
- case 10: return [3 /*break*/, 19];
299
+ if (!!pendingMigrations_1_1.done) return [3 /*break*/, 12];
300
+ migration = pendingMigrations_1_1.value;
301
+ return [5 /*yield**/, _loop_2(migration)];
302
+ case 10:
303
+ _b.sent();
304
+ _b.label = 11;
297
305
  case 11:
298
- err_1 = _a.sent();
299
- if (!transactionStartedByUs) return [3 /*break*/, 15];
300
- _a.label = 12;
301
- case 12:
302
- _a.trys.push([12, 14, , 15]);
303
- return [4 /*yield*/, queryRunner.rollbackTransaction()];
306
+ pendingMigrations_1_1 = pendingMigrations_1.next();
307
+ return [3 /*break*/, 9];
308
+ case 12: return [3 /*break*/, 15];
304
309
  case 13:
305
- _a.sent();
310
+ e_2_1 = _b.sent();
311
+ e_2 = { error: e_2_1 };
306
312
  return [3 /*break*/, 15];
307
313
  case 14:
308
- rollbackError_1 = _a.sent();
309
- return [3 /*break*/, 15];
310
- case 15: throw err_1;
314
+ try {
315
+ if (pendingMigrations_1_1 && !pendingMigrations_1_1.done && (_a = pendingMigrations_1.return)) _a.call(pendingMigrations_1);
316
+ }
317
+ finally { if (e_2) throw e_2.error; }
318
+ return [7 /*endfinally*/];
319
+ case 15:
320
+ if (!(this.transaction === "all" && transactionStartedByUs)) return [3 /*break*/, 17];
321
+ return [4 /*yield*/, queryRunner.commitTransaction()];
311
322
  case 16:
312
- if (!!this.queryRunner) return [3 /*break*/, 18];
323
+ _b.sent();
324
+ _b.label = 17;
325
+ case 17: return [3 /*break*/, 26];
326
+ case 18:
327
+ err_1 = _b.sent();
328
+ if (!transactionStartedByUs) return [3 /*break*/, 22];
329
+ _b.label = 19;
330
+ case 19:
331
+ _b.trys.push([19, 21, , 22]);
332
+ return [4 /*yield*/, queryRunner.rollbackTransaction()];
333
+ case 20:
334
+ _b.sent();
335
+ return [3 /*break*/, 22];
336
+ case 21:
337
+ rollbackError_1 = _b.sent();
338
+ return [3 /*break*/, 22];
339
+ case 22: throw err_1;
340
+ case 23:
341
+ if (!!this.queryRunner) return [3 /*break*/, 25];
313
342
  return [4 /*yield*/, queryRunner.release()];
314
- case 17:
315
- _a.sent();
316
- _a.label = 18;
317
- case 18: return [7 /*endfinally*/];
318
- case 19: return [2 /*return*/, successMigrations];
343
+ case 24:
344
+ _b.sent();
345
+ _b.label = 25;
346
+ case 25: return [7 /*endfinally*/];
347
+ case 26: return [2 /*return*/, successMigrations];
319
348
  }
320
349
  });
321
350
  });
@@ -324,12 +353,12 @@ var MigrationExecutor = /** @class */ (function () {
324
353
  * Reverts last migration that were run.
325
354
  */
326
355
  MigrationExecutor.prototype.undoLastMigration = function () {
327
- return tslib_1.__awaiter(this, void 0, void 0, function () {
356
+ return __awaiter(this, void 0, void 0, function () {
328
357
  var queryRunner, executedMigrations, lastTimeExecutedMigration, allMigrations, migrationToRevert, transactionStartedByUs, err_2, rollbackError_2;
329
- return tslib_1.__generator(this, function (_a) {
358
+ return __generator(this, function (_a) {
330
359
  switch (_a.label) {
331
360
  case 0:
332
- queryRunner = this.queryRunner || this.connection.createQueryRunner("master");
361
+ queryRunner = this.queryRunner || this.connection.createQueryRunner();
333
362
  // create migrations table if its not created yet
334
363
  return [4 /*yield*/, this.createMigrationsTableIfNotExist(queryRunner)];
335
364
  case 1:
@@ -408,9 +437,9 @@ var MigrationExecutor = /** @class */ (function () {
408
437
  * Creates table "migrations" that will store information about executed migrations.
409
438
  */
410
439
  MigrationExecutor.prototype.createMigrationsTableIfNotExist = function (queryRunner) {
411
- return tslib_1.__awaiter(this, void 0, void 0, function () {
440
+ return __awaiter(this, void 0, void 0, function () {
412
441
  var tableExist;
413
- return tslib_1.__generator(this, function (_a) {
442
+ return __generator(this, function (_a) {
414
443
  switch (_a.label) {
415
444
  case 0:
416
445
  // If driver is mongo no need to create
@@ -457,9 +486,9 @@ var MigrationExecutor = /** @class */ (function () {
457
486
  * Loads all migrations that were executed and saved into the database (sorts by id).
458
487
  */
459
488
  MigrationExecutor.prototype.loadExecutedMigrations = function (queryRunner) {
460
- return tslib_1.__awaiter(this, void 0, void 0, function () {
489
+ return __awaiter(this, void 0, void 0, function () {
461
490
  var mongoRunner, migrationsRaw;
462
- return tslib_1.__generator(this, function (_a) {
491
+ return __generator(this, function (_a) {
463
492
  switch (_a.label) {
464
493
  case 0:
465
494
  if (!(this.connection.driver instanceof MongoDriver)) return [3 /*break*/, 2];
@@ -527,9 +556,9 @@ var MigrationExecutor = /** @class */ (function () {
527
556
  * Inserts new executed migration's data into migrations table.
528
557
  */
529
558
  MigrationExecutor.prototype.insertExecutedMigration = function (queryRunner, migration) {
530
- return tslib_1.__awaiter(this, void 0, void 0, function () {
559
+ return __awaiter(this, void 0, void 0, function () {
531
560
  var values, mongoRunner, qb;
532
- return tslib_1.__generator(this, function (_a) {
561
+ return __generator(this, function (_a) {
533
562
  switch (_a.label) {
534
563
  case 0:
535
564
  values = {};
@@ -565,9 +594,9 @@ var MigrationExecutor = /** @class */ (function () {
565
594
  * Delete previously executed migration's data from the migrations table.
566
595
  */
567
596
  MigrationExecutor.prototype.deleteExecutedMigration = function (queryRunner, migration) {
568
- return tslib_1.__awaiter(this, void 0, void 0, function () {
597
+ return __awaiter(this, void 0, void 0, function () {
569
598
  var conditions, mongoRunner, qb;
570
- return tslib_1.__generator(this, function (_a) {
599
+ return __generator(this, function (_a) {
571
600
  switch (_a.label) {
572
601
  case 0:
573
602
  conditions = {};
@@ -602,12 +631,12 @@ var MigrationExecutor = /** @class */ (function () {
602
631
  });
603
632
  };
604
633
  MigrationExecutor.prototype.withQueryRunner = function (callback) {
605
- return tslib_1.__awaiter(this, void 0, void 0, function () {
634
+ return __awaiter(this, void 0, void 0, function () {
606
635
  var queryRunner;
607
- return tslib_1.__generator(this, function (_a) {
636
+ return __generator(this, function (_a) {
608
637
  switch (_a.label) {
609
638
  case 0:
610
- queryRunner = this.queryRunner || this.connection.createQueryRunner("master");
639
+ queryRunner = this.queryRunner || this.connection.createQueryRunner();
611
640
  _a.label = 1;
612
641
  case 1:
613
642
  _a.trys.push([1, , 2, 5]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/migration/MigrationExecutor.ts"],"names":[],"mappings":"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","file":"MigrationExecutor.js","sourcesContent":["import {Table} from \"../schema-builder/table/Table\";\nimport {Connection} from \"../connection/Connection\";\nimport {Migration} from \"./Migration\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {PromiseUtils} from \"../util/PromiseUtils\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {MssqlParameter} from \"../driver/sqlserver/MssqlParameter\";\nimport {SqlServerConnectionOptions} from \"../driver/sqlserver/SqlServerConnectionOptions\";\nimport {PostgresConnectionOptions} from \"../driver/postgres/PostgresConnectionOptions\";\nimport { MongoDriver } from \"../driver/mongodb/MongoDriver\";\nimport { MongoQueryRunner } from \"../driver/mongodb/MongoQueryRunner\";\n\n/**\n * Executes migrations: runs pending and reverts previously executed migrations.\n */\nexport class MigrationExecutor {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Indicates how migrations should be run in transactions.\n * all: all migrations are run in a single transaction\n * none: all migrations are run without a transaction\n * each: each migration is run in a separate transaction\n */\n transaction: \"all\" | \"none\" | \"each\" = \"all\";\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n private readonly migrationsTable: string;\n private readonly migrationsTableName: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: Connection,\n protected queryRunner?: QueryRunner) {\n\n const options = <SqlServerConnectionOptions|PostgresConnectionOptions>this.connection.driver.options;\n this.migrationsTableName = connection.options.migrationsTableName || \"migrations\";\n this.migrationsTable = this.connection.driver.buildTableName(this.migrationsTableName, options.schema, options.database);\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Tries to execute a single migration given.\n */\n public async executeMigration(migration: Migration): Promise<Migration> {\n return this.withQueryRunner(async (queryRunner) => {\n await this.createMigrationsTableIfNotExist(queryRunner);\n await (migration.instance as any).up(queryRunner);\n await this.insertExecutedMigration(queryRunner, migration);\n\n return migration;\n });\n }\n\n /**\n * Returns an array of all migrations.\n */\n public async getAllMigrations(): Promise<Migration[]> {\n return Promise.resolve(this.getMigrations());\n }\n\n /**\n * Returns an array of all executed migrations.\n */\n public async getExecutedMigrations(): Promise<Migration[]> {\n return this.withQueryRunner(async queryRunner => {\n await this.createMigrationsTableIfNotExist(queryRunner);\n\n return await this.loadExecutedMigrations(queryRunner);\n });\n }\n\n /**\n * Returns an array of all pending migrations.\n */\n public async getPendingMigrations(): Promise<Migration[]> {\n const allMigrations = await this.getAllMigrations();\n const executedMigrations = await this.getExecutedMigrations();\n\n return allMigrations.filter(migration =>\n executedMigrations.find(\n executedMigration =>\n executedMigration.name === migration.name\n )\n );\n }\n\n /**\n * Inserts an executed migration.\n */\n public insertMigration(migration: Migration): Promise<void> {\n return new Promise((resolve, reject) => {\n this.withQueryRunner(queryRunner => {\n this.insertExecutedMigration(queryRunner, migration)\n .then(resolve)\n .catch(reject);\n });\n });\n }\n\n /**\n * Deletes an executed migration.\n */\n public deleteMigration(migration: Migration): Promise<void> {\n return new Promise((resolve, reject) => {\n this.withQueryRunner(queryRunner => {\n this.deleteExecutedMigration(queryRunner, migration)\n .then(resolve)\n .catch(reject);\n });\n });\n }\n\n /**\n * Lists all migrations and whether they have been executed or not\n * returns true if there are unapplied migrations\n */\n async showMigrations(): Promise<boolean> {\n let hasUnappliedMigrations = false;\n const queryRunner = this.queryRunner || this.connection.createQueryRunner(\"master\");\n // create migrations table if its not created yet\n await this.createMigrationsTableIfNotExist(queryRunner);\n // get all migrations that are executed and saved in the database\n const executedMigrations = await this.loadExecutedMigrations(queryRunner);\n\n // get all user's migrations in the source code\n const allMigrations = this.getMigrations();\n\n for (const migration of allMigrations) {\n const executedMigration = executedMigrations.find(executedMigration => executedMigration.name === migration.name);\n\n if (executedMigration) {\n this.connection.logger.logSchemaBuild(` [X] ${migration.name}`);\n } else {\n hasUnappliedMigrations = true;\n this.connection.logger.logSchemaBuild(` [ ] ${migration.name}`);\n }\n }\n\n // if query runner was created by us then release it\n if (!this.queryRunner) {\n await queryRunner.release();\n }\n\n return hasUnappliedMigrations;\n }\n\n /**\n * Executes all pending migrations. Pending migrations are migrations that are not yet executed,\n * thus not saved in the database.\n */\n async executePendingMigrations(): Promise<Migration[]> {\n\n const queryRunner = this.queryRunner || this.connection.createQueryRunner(\"master\");\n // create migrations table if its not created yet\n await this.createMigrationsTableIfNotExist(queryRunner);\n // get all migrations that are executed and saved in the database\n const executedMigrations = await this.loadExecutedMigrations(queryRunner);\n\n // get the time when last migration was executed\n let lastTimeExecutedMigration = this.getLatestTimestampMigration(executedMigrations);\n\n // get all user's migrations in the source code\n const allMigrations = this.getMigrations();\n\n // variable to store all migrations we did successefuly\n const successMigrations: Migration[] = [];\n\n // find all migrations that needs to be executed\n const pendingMigrations = allMigrations.filter(migration => {\n // check if we already have executed migration\n const executedMigration = executedMigrations.find(executedMigration => executedMigration.name === migration.name);\n if (executedMigration)\n return false;\n\n // migration is new and not executed. now check if its timestamp is correct\n // if (lastTimeExecutedMigration && migration.timestamp < lastTimeExecutedMigration.timestamp)\n // throw new Error(`New migration found: ${migration.name}, however this migration's timestamp is not valid. Migration's timestamp should not be older then migrations already executed in the database.`);\n\n // every check is passed means that migration was not run yet and we need to run it\n return true;\n });\n\n // if no migrations are pending then nothing to do here\n if (!pendingMigrations.length) {\n this.connection.logger.logSchemaBuild(`No migrations are pending`);\n // if query runner was created by us then release it\n if (!this.queryRunner)\n await queryRunner.release();\n return [];\n }\n\n // log information about migration execution\n this.connection.logger.logSchemaBuild(`${executedMigrations.length} migrations are already loaded in the database.`);\n this.connection.logger.logSchemaBuild(`${allMigrations.length} migrations were found in the source code.`);\n if (lastTimeExecutedMigration)\n this.connection.logger.logSchemaBuild(`${lastTimeExecutedMigration.name} is the last executed migration. It was executed on ${new Date(lastTimeExecutedMigration.timestamp).toString()}.`);\n this.connection.logger.logSchemaBuild(`${pendingMigrations.length} migrations are new migrations that needs to be executed.`);\n\n // start transaction if its not started yet\n let transactionStartedByUs = false;\n if (this.transaction === \"all\" && !queryRunner.isTransactionActive) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n // run all pending migrations in a sequence\n try {\n await PromiseUtils.runInSequence(pendingMigrations, async migration => {\n if (this.transaction === \"each\" && !queryRunner.isTransactionActive) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n return migration.instance!.up(queryRunner)\n .then(async () => { // now when migration is executed we need to insert record about it into the database\n await this.insertExecutedMigration(queryRunner, migration);\n // commit transaction if we started it\n if (this.transaction === \"each\" && transactionStartedByUs)\n await queryRunner.commitTransaction();\n })\n .then(() => { // informative log about migration success\n successMigrations.push(migration);\n this.connection.logger.logSchemaBuild(`Migration ${migration.name} has been executed successfully.`);\n });\n });\n\n // commit transaction if we started it\n if (this.transaction === \"all\" && transactionStartedByUs)\n await queryRunner.commitTransaction();\n\n } catch (err) { // rollback transaction if we started it\n if (transactionStartedByUs) {\n try { // we throw original error even if rollback thrown an error\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n\n throw err;\n\n } finally {\n\n // if query runner was created by us then release it\n if (!this.queryRunner)\n await queryRunner.release();\n }\n return successMigrations;\n\n }\n\n /**\n * Reverts last migration that were run.\n */\n async undoLastMigration(): Promise<void> {\n\n const queryRunner = this.queryRunner || this.connection.createQueryRunner(\"master\");\n\n // create migrations table if its not created yet\n await this.createMigrationsTableIfNotExist(queryRunner);\n\n // get all migrations that are executed and saved in the database\n const executedMigrations = await this.loadExecutedMigrations(queryRunner);\n\n // get the time when last migration was executed\n let lastTimeExecutedMigration = this.getLatestExecutedMigration(executedMigrations);\n\n // if no migrations found in the database then nothing to revert\n if (!lastTimeExecutedMigration) {\n this.connection.logger.logSchemaBuild(`No migrations was found in the database. Nothing to revert!`);\n return;\n }\n\n // get all user's migrations in the source code\n const allMigrations = this.getMigrations();\n\n // find the instance of the migration we need to remove\n const migrationToRevert = allMigrations.find(migration => migration.name === lastTimeExecutedMigration!.name);\n\n // if no migrations found in the database then nothing to revert\n if (!migrationToRevert)\n throw new Error(`No migration ${lastTimeExecutedMigration.name} was found in the source code. Make sure you have this migration in your codebase and its included in the connection options.`);\n\n // log information about migration execution\n this.connection.logger.logSchemaBuild(`${executedMigrations.length} migrations are already loaded in the database.`);\n this.connection.logger.logSchemaBuild(`${lastTimeExecutedMigration.name} is the last executed migration. It was executed on ${new Date(lastTimeExecutedMigration.timestamp).toString()}.`);\n this.connection.logger.logSchemaBuild(`Now reverting it...`);\n\n // start transaction if its not started yet\n let transactionStartedByUs = false;\n if ((this.transaction !== \"none\") && !queryRunner.isTransactionActive) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n try {\n await migrationToRevert.instance!.down(queryRunner);\n await this.deleteExecutedMigration(queryRunner, migrationToRevert);\n this.connection.logger.logSchemaBuild(`Migration ${migrationToRevert.name} has been reverted successfully.`);\n\n // commit transaction if we started it\n if (transactionStartedByUs)\n await queryRunner.commitTransaction();\n\n } catch (err) { // rollback transaction if we started it\n if (transactionStartedByUs) {\n try { // we throw original error even if rollback thrown an error\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n\n throw err;\n\n } finally {\n\n // if query runner was created by us then release it\n if (!this.queryRunner)\n await queryRunner.release();\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates table \"migrations\" that will store information about executed migrations.\n */\n protected async createMigrationsTableIfNotExist(queryRunner: QueryRunner): Promise<void> {\n // If driver is mongo no need to create\n if (this.connection.driver instanceof MongoDriver) {\n return;\n }\n const tableExist = await queryRunner.hasTable(this.migrationsTable); // todo: table name should be configurable\n if (!tableExist) {\n await queryRunner.createTable(new Table(\n {\n name: this.migrationsTable,\n columns: [\n {\n name: \"id\",\n type: this.connection.driver.normalizeType({type: this.connection.driver.mappedDataTypes.migrationId}),\n isGenerated: true,\n generationStrategy: \"increment\",\n isPrimary: true,\n isNullable: false\n },\n {\n name: \"timestamp\",\n type: this.connection.driver.normalizeType({type: this.connection.driver.mappedDataTypes.migrationTimestamp}),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"name\",\n type: this.connection.driver.normalizeType({type: this.connection.driver.mappedDataTypes.migrationName}),\n isNullable: false\n },\n ]\n },\n ));\n }\n }\n\n /**\n * Loads all migrations that were executed and saved into the database (sorts by id).\n */\n protected async loadExecutedMigrations(queryRunner: QueryRunner): Promise<Migration[]> {\n if (this.connection.driver instanceof MongoDriver) {\n const mongoRunner = queryRunner as MongoQueryRunner;\n return await mongoRunner.databaseConnection\n .db(this.connection.driver.database!)\n .collection(this.migrationsTableName)\n .find<Migration>()\n .sort({\"_id\": -1})\n .toArray();\n } else {\n const migrationsRaw: ObjectLiteral[] = await this.connection.manager\n .createQueryBuilder(queryRunner)\n .select()\n .orderBy(this.connection.driver.escape(\"id\"), \"DESC\")\n .from(this.migrationsTable, this.migrationsTableName)\n .getRawMany();\n return migrationsRaw.map(migrationRaw => {\n return new Migration(parseInt(migrationRaw[\"id\"]), parseInt(migrationRaw[\"timestamp\"]), migrationRaw[\"name\"]);\n });\n }\n }\n\n /**\n * Gets all migrations that setup for this connection.\n */\n protected getMigrations(): Migration[] {\n const migrations = this.connection.migrations.map(migration => {\n const migrationClassName = migration.name || (migration.constructor as any).name;\n const migrationTimestamp = parseInt(migrationClassName.substr(-13), 10);\n if (!migrationTimestamp || isNaN(migrationTimestamp)) {\n throw new Error(`${migrationClassName} migration name is wrong. Migration class name should have a JavaScript timestamp appended.`);\n }\n\n return new Migration(undefined, migrationTimestamp, migrationClassName, migration);\n });\n\n this.checkForDuplicateMigrations(migrations);\n\n // sort them by timestamp\n return migrations.sort((a, b) => a.timestamp - b.timestamp);\n }\n\n protected checkForDuplicateMigrations(migrations: Migration[]) {\n const migrationNames = migrations.map(migration => migration.name);\n const duplicates = Array.from(new Set(migrationNames.filter((migrationName, index) => migrationNames.indexOf(migrationName) < index)));\n if (duplicates.length > 0) {\n throw Error(`Duplicate migrations: ${duplicates.join(\", \")}`);\n }\n }\n\n /**\n * Finds the latest migration (sorts by timestamp) in the given array of migrations.\n */\n protected getLatestTimestampMigration(migrations: Migration[]): Migration|undefined {\n const sortedMigrations = migrations.map(migration => migration).sort((a, b) => (a.timestamp - b.timestamp) * -1);\n return sortedMigrations.length > 0 ? sortedMigrations[0] : undefined;\n }\n\n /**\n * Finds the latest migration in the given array of migrations.\n * PRE: Migration array must be sorted by descending id.\n */\n protected getLatestExecutedMigration(sortedMigrations: Migration[]): Migration|undefined {\n return sortedMigrations.length > 0 ? sortedMigrations[0] : undefined;\n }\n\n /**\n * Inserts new executed migration's data into migrations table.\n */\n protected async insertExecutedMigration(queryRunner: QueryRunner, migration: Migration): Promise<void> {\n const values: ObjectLiteral = {};\n if (this.connection.driver instanceof SqlServerDriver) {\n values[\"timestamp\"] = new MssqlParameter(migration.timestamp, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp }) as any);\n values[\"name\"] = new MssqlParameter(migration.name, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName }) as any);\n } else {\n values[\"timestamp\"] = migration.timestamp;\n values[\"name\"] = migration.name;\n }\n if (this.connection.driver instanceof MongoDriver) {\n const mongoRunner = queryRunner as MongoQueryRunner;\n await mongoRunner.databaseConnection.db(this.connection.driver.database!).collection(this.migrationsTableName).insert(values);\n } else {\n const qb = queryRunner.manager.createQueryBuilder();\n await qb.insert()\n .into(this.migrationsTable)\n .values(values)\n .execute();\n }\n }\n\n /**\n * Delete previously executed migration's data from the migrations table.\n */\n protected async deleteExecutedMigration(queryRunner: QueryRunner, migration: Migration): Promise<void> {\n\n const conditions: ObjectLiteral = {};\n if (this.connection.driver instanceof SqlServerDriver) {\n conditions[\"timestamp\"] = new MssqlParameter(migration.timestamp, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp }) as any);\n conditions[\"name\"] = new MssqlParameter(migration.name, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName }) as any);\n } else {\n conditions[\"timestamp\"] = migration.timestamp;\n conditions[\"name\"] = migration.name;\n }\n\n if (this.connection.driver instanceof MongoDriver) {\n const mongoRunner = queryRunner as MongoQueryRunner;\n await mongoRunner.databaseConnection.db(this.connection.driver.database!).collection(this.migrationsTableName).deleteOne(conditions);\n } else {\n const qb = queryRunner.manager.createQueryBuilder();\n await qb.delete()\n .from(this.migrationsTable)\n .where(`${qb.escape(\"timestamp\")} = :timestamp`)\n .andWhere(`${qb.escape(\"name\")} = :name`)\n .setParameters(conditions)\n .execute();\n }\n\n }\n\n protected async withQueryRunner<T extends any>(callback: (queryRunner: QueryRunner) => T) {\n const queryRunner = this.queryRunner || this.connection.createQueryRunner(\"master\");\n\n try {\n return callback(queryRunner);\n } finally {\n if (!this.queryRunner) {\n await queryRunner.release();\n }\n }\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/migration/MigrationExecutor.ts"],"names":[],"mappings":"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","file":"MigrationExecutor.js","sourcesContent":["import {Table} from \"../schema-builder/table/Table\";\nimport {Connection} from \"../connection/Connection\";\nimport {Migration} from \"./Migration\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {MssqlParameter} from \"../driver/sqlserver/MssqlParameter\";\nimport {SqlServerConnectionOptions} from \"../driver/sqlserver/SqlServerConnectionOptions\";\nimport {PostgresConnectionOptions} from \"../driver/postgres/PostgresConnectionOptions\";\nimport {MongoDriver} from \"../driver/mongodb/MongoDriver\";\nimport {MongoQueryRunner} from \"../driver/mongodb/MongoQueryRunner\";\n\n/**\n * Executes migrations: runs pending and reverts previously executed migrations.\n */\nexport class MigrationExecutor {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Indicates how migrations should be run in transactions.\n * all: all migrations are run in a single transaction\n * none: all migrations are run without a transaction\n * each: each migration is run in a separate transaction\n */\n transaction: \"all\" | \"none\" | \"each\" = \"all\";\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n private readonly migrationsTable: string;\n private readonly migrationsTableName: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: Connection,\n protected queryRunner?: QueryRunner) {\n\n const options = <SqlServerConnectionOptions|PostgresConnectionOptions>this.connection.driver.options;\n this.migrationsTableName = connection.options.migrationsTableName || \"migrations\";\n this.migrationsTable = this.connection.driver.buildTableName(this.migrationsTableName, options.schema, options.database);\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Tries to execute a single migration given.\n */\n public async executeMigration(migration: Migration): Promise<Migration> {\n return this.withQueryRunner(async (queryRunner) => {\n await this.createMigrationsTableIfNotExist(queryRunner);\n await (migration.instance as any).up(queryRunner);\n await this.insertExecutedMigration(queryRunner, migration);\n\n return migration;\n });\n }\n\n /**\n * Returns an array of all migrations.\n */\n public async getAllMigrations(): Promise<Migration[]> {\n return Promise.resolve(this.getMigrations());\n }\n\n /**\n * Returns an array of all executed migrations.\n */\n public async getExecutedMigrations(): Promise<Migration[]> {\n return this.withQueryRunner(async queryRunner => {\n await this.createMigrationsTableIfNotExist(queryRunner);\n\n return await this.loadExecutedMigrations(queryRunner);\n });\n }\n\n /**\n * Returns an array of all pending migrations.\n */\n public async getPendingMigrations(): Promise<Migration[]> {\n const allMigrations = await this.getAllMigrations();\n const executedMigrations = await this.getExecutedMigrations();\n\n return allMigrations.filter(migration =>\n !executedMigrations.find(\n executedMigration =>\n executedMigration.name === migration.name\n )\n );\n }\n\n /**\n * Inserts an executed migration.\n */\n public insertMigration(migration: Migration): Promise<void> {\n return new Promise((resolve, reject) => {\n this.withQueryRunner(queryRunner => {\n this.insertExecutedMigration(queryRunner, migration)\n .then(resolve)\n .catch(reject);\n });\n });\n }\n\n /**\n * Deletes an executed migration.\n */\n public deleteMigration(migration: Migration): Promise<void> {\n return new Promise((resolve, reject) => {\n this.withQueryRunner(queryRunner => {\n this.deleteExecutedMigration(queryRunner, migration)\n .then(resolve)\n .catch(reject);\n });\n });\n }\n\n /**\n * Lists all migrations and whether they have been executed or not\n * returns true if there are unapplied migrations\n */\n async showMigrations(): Promise<boolean> {\n let hasUnappliedMigrations = false;\n const queryRunner = this.queryRunner || this.connection.createQueryRunner();\n // create migrations table if its not created yet\n await this.createMigrationsTableIfNotExist(queryRunner);\n // get all migrations that are executed and saved in the database\n const executedMigrations = await this.loadExecutedMigrations(queryRunner);\n\n // get all user's migrations in the source code\n const allMigrations = this.getMigrations();\n\n for (const migration of allMigrations) {\n const executedMigration = executedMigrations.find(executedMigration => executedMigration.name === migration.name);\n\n if (executedMigration) {\n this.connection.logger.logSchemaBuild(` [X] ${migration.name}`);\n } else {\n hasUnappliedMigrations = true;\n this.connection.logger.logSchemaBuild(` [ ] ${migration.name}`);\n }\n }\n\n // if query runner was created by us then release it\n if (!this.queryRunner) {\n await queryRunner.release();\n }\n\n return hasUnappliedMigrations;\n }\n\n /**\n * Executes all pending migrations. Pending migrations are migrations that are not yet executed,\n * thus not saved in the database.\n */\n async executePendingMigrations(): Promise<Migration[]> {\n\n const queryRunner = this.queryRunner || this.connection.createQueryRunner();\n // create migrations table if its not created yet\n await this.createMigrationsTableIfNotExist(queryRunner);\n // get all migrations that are executed and saved in the database\n const executedMigrations = await this.loadExecutedMigrations(queryRunner);\n\n // get the time when last migration was executed\n let lastTimeExecutedMigration = this.getLatestTimestampMigration(executedMigrations);\n\n // get all user's migrations in the source code\n const allMigrations = this.getMigrations();\n\n // variable to store all migrations we did successefuly\n const successMigrations: Migration[] = [];\n\n // find all migrations that needs to be executed\n const pendingMigrations = allMigrations.filter(migration => {\n // check if we already have executed migration\n const executedMigration = executedMigrations.find(executedMigration => executedMigration.name === migration.name);\n if (executedMigration)\n return false;\n\n // migration is new and not executed. now check if its timestamp is correct\n // if (lastTimeExecutedMigration && migration.timestamp < lastTimeExecutedMigration.timestamp)\n // throw new Error(`New migration found: ${migration.name}, however this migration's timestamp is not valid. Migration's timestamp should not be older then migrations already executed in the database.`);\n\n // every check is passed means that migration was not run yet and we need to run it\n return true;\n });\n\n // if no migrations are pending then nothing to do here\n if (!pendingMigrations.length) {\n this.connection.logger.logSchemaBuild(`No migrations are pending`);\n // if query runner was created by us then release it\n if (!this.queryRunner)\n await queryRunner.release();\n return [];\n }\n\n // log information about migration execution\n this.connection.logger.logSchemaBuild(`${executedMigrations.length} migrations are already loaded in the database.`);\n this.connection.logger.logSchemaBuild(`${allMigrations.length} migrations were found in the source code.`);\n if (lastTimeExecutedMigration)\n this.connection.logger.logSchemaBuild(`${lastTimeExecutedMigration.name} is the last executed migration. It was executed on ${new Date(lastTimeExecutedMigration.timestamp).toString()}.`);\n this.connection.logger.logSchemaBuild(`${pendingMigrations.length} migrations are new migrations that needs to be executed.`);\n\n // start transaction if its not started yet\n let transactionStartedByUs = false;\n if (this.transaction === \"all\" && !queryRunner.isTransactionActive) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n // run all pending migrations in a sequence\n try {\n for (const migration of pendingMigrations) {\n if (this.transaction === \"each\" && !queryRunner.isTransactionActive) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n await migration.instance!.up(queryRunner)\n .then(async () => { // now when migration is executed we need to insert record about it into the database\n await this.insertExecutedMigration(queryRunner, migration);\n // commit transaction if we started it\n if (this.transaction === \"each\" && transactionStartedByUs)\n await queryRunner.commitTransaction();\n })\n .then(() => { // informative log about migration success\n successMigrations.push(migration);\n this.connection.logger.logSchemaBuild(`Migration ${migration.name} has been executed successfully.`);\n });\n }\n\n // commit transaction if we started it\n if (this.transaction === \"all\" && transactionStartedByUs)\n await queryRunner.commitTransaction();\n\n } catch (err) { // rollback transaction if we started it\n if (transactionStartedByUs) {\n try { // we throw original error even if rollback thrown an error\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n\n throw err;\n\n } finally {\n\n // if query runner was created by us then release it\n if (!this.queryRunner)\n await queryRunner.release();\n }\n return successMigrations;\n\n }\n\n /**\n * Reverts last migration that were run.\n */\n async undoLastMigration(): Promise<void> {\n\n const queryRunner = this.queryRunner || this.connection.createQueryRunner();\n\n // create migrations table if its not created yet\n await this.createMigrationsTableIfNotExist(queryRunner);\n\n // get all migrations that are executed and saved in the database\n const executedMigrations = await this.loadExecutedMigrations(queryRunner);\n\n // get the time when last migration was executed\n let lastTimeExecutedMigration = this.getLatestExecutedMigration(executedMigrations);\n\n // if no migrations found in the database then nothing to revert\n if (!lastTimeExecutedMigration) {\n this.connection.logger.logSchemaBuild(`No migrations was found in the database. Nothing to revert!`);\n return;\n }\n\n // get all user's migrations in the source code\n const allMigrations = this.getMigrations();\n\n // find the instance of the migration we need to remove\n const migrationToRevert = allMigrations.find(migration => migration.name === lastTimeExecutedMigration!.name);\n\n // if no migrations found in the database then nothing to revert\n if (!migrationToRevert)\n throw new Error(`No migration ${lastTimeExecutedMigration.name} was found in the source code. Make sure you have this migration in your codebase and its included in the connection options.`);\n\n // log information about migration execution\n this.connection.logger.logSchemaBuild(`${executedMigrations.length} migrations are already loaded in the database.`);\n this.connection.logger.logSchemaBuild(`${lastTimeExecutedMigration.name} is the last executed migration. It was executed on ${new Date(lastTimeExecutedMigration.timestamp).toString()}.`);\n this.connection.logger.logSchemaBuild(`Now reverting it...`);\n\n // start transaction if its not started yet\n let transactionStartedByUs = false;\n if ((this.transaction !== \"none\") && !queryRunner.isTransactionActive) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n try {\n await migrationToRevert.instance!.down(queryRunner);\n await this.deleteExecutedMigration(queryRunner, migrationToRevert);\n this.connection.logger.logSchemaBuild(`Migration ${migrationToRevert.name} has been reverted successfully.`);\n\n // commit transaction if we started it\n if (transactionStartedByUs)\n await queryRunner.commitTransaction();\n\n } catch (err) { // rollback transaction if we started it\n if (transactionStartedByUs) {\n try { // we throw original error even if rollback thrown an error\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n\n throw err;\n\n } finally {\n\n // if query runner was created by us then release it\n if (!this.queryRunner)\n await queryRunner.release();\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates table \"migrations\" that will store information about executed migrations.\n */\n protected async createMigrationsTableIfNotExist(queryRunner: QueryRunner): Promise<void> {\n // If driver is mongo no need to create\n if (this.connection.driver instanceof MongoDriver) {\n return;\n }\n const tableExist = await queryRunner.hasTable(this.migrationsTable); // todo: table name should be configurable\n if (!tableExist) {\n await queryRunner.createTable(new Table(\n {\n name: this.migrationsTable,\n columns: [\n {\n name: \"id\",\n type: this.connection.driver.normalizeType({type: this.connection.driver.mappedDataTypes.migrationId}),\n isGenerated: true,\n generationStrategy: \"increment\",\n isPrimary: true,\n isNullable: false\n },\n {\n name: \"timestamp\",\n type: this.connection.driver.normalizeType({type: this.connection.driver.mappedDataTypes.migrationTimestamp}),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"name\",\n type: this.connection.driver.normalizeType({type: this.connection.driver.mappedDataTypes.migrationName}),\n isNullable: false\n },\n ]\n },\n ));\n }\n }\n\n /**\n * Loads all migrations that were executed and saved into the database (sorts by id).\n */\n protected async loadExecutedMigrations(queryRunner: QueryRunner): Promise<Migration[]> {\n if (this.connection.driver instanceof MongoDriver) {\n const mongoRunner = queryRunner as MongoQueryRunner;\n return await mongoRunner.databaseConnection\n .db(this.connection.driver.database!)\n .collection(this.migrationsTableName)\n .find<Migration>()\n .sort({\"_id\": -1})\n .toArray();\n } else {\n const migrationsRaw: ObjectLiteral[] = await this.connection.manager\n .createQueryBuilder(queryRunner)\n .select()\n .orderBy(this.connection.driver.escape(\"id\"), \"DESC\")\n .from(this.migrationsTable, this.migrationsTableName)\n .getRawMany();\n return migrationsRaw.map(migrationRaw => {\n return new Migration(parseInt(migrationRaw[\"id\"]), parseInt(migrationRaw[\"timestamp\"]), migrationRaw[\"name\"]);\n });\n }\n }\n\n /**\n * Gets all migrations that setup for this connection.\n */\n protected getMigrations(): Migration[] {\n const migrations = this.connection.migrations.map(migration => {\n const migrationClassName = migration.name || (migration.constructor as any).name;\n const migrationTimestamp = parseInt(migrationClassName.substr(-13), 10);\n if (!migrationTimestamp || isNaN(migrationTimestamp)) {\n throw new Error(`${migrationClassName} migration name is wrong. Migration class name should have a JavaScript timestamp appended.`);\n }\n\n return new Migration(undefined, migrationTimestamp, migrationClassName, migration);\n });\n\n this.checkForDuplicateMigrations(migrations);\n\n // sort them by timestamp\n return migrations.sort((a, b) => a.timestamp - b.timestamp);\n }\n\n protected checkForDuplicateMigrations(migrations: Migration[]) {\n const migrationNames = migrations.map(migration => migration.name);\n const duplicates = Array.from(new Set(migrationNames.filter((migrationName, index) => migrationNames.indexOf(migrationName) < index)));\n if (duplicates.length > 0) {\n throw Error(`Duplicate migrations: ${duplicates.join(\", \")}`);\n }\n }\n\n /**\n * Finds the latest migration (sorts by timestamp) in the given array of migrations.\n */\n protected getLatestTimestampMigration(migrations: Migration[]): Migration|undefined {\n const sortedMigrations = migrations.map(migration => migration).sort((a, b) => (a.timestamp - b.timestamp) * -1);\n return sortedMigrations.length > 0 ? sortedMigrations[0] : undefined;\n }\n\n /**\n * Finds the latest migration in the given array of migrations.\n * PRE: Migration array must be sorted by descending id.\n */\n protected getLatestExecutedMigration(sortedMigrations: Migration[]): Migration|undefined {\n return sortedMigrations.length > 0 ? sortedMigrations[0] : undefined;\n }\n\n /**\n * Inserts new executed migration's data into migrations table.\n */\n protected async insertExecutedMigration(queryRunner: QueryRunner, migration: Migration): Promise<void> {\n const values: ObjectLiteral = {};\n if (this.connection.driver instanceof SqlServerDriver) {\n values[\"timestamp\"] = new MssqlParameter(migration.timestamp, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp }) as any);\n values[\"name\"] = new MssqlParameter(migration.name, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName }) as any);\n } else {\n values[\"timestamp\"] = migration.timestamp;\n values[\"name\"] = migration.name;\n }\n if (this.connection.driver instanceof MongoDriver) {\n const mongoRunner = queryRunner as MongoQueryRunner;\n await mongoRunner.databaseConnection.db(this.connection.driver.database!).collection(this.migrationsTableName).insert(values);\n } else {\n const qb = queryRunner.manager.createQueryBuilder();\n await qb.insert()\n .into(this.migrationsTable)\n .values(values)\n .execute();\n }\n }\n\n /**\n * Delete previously executed migration's data from the migrations table.\n */\n protected async deleteExecutedMigration(queryRunner: QueryRunner, migration: Migration): Promise<void> {\n\n const conditions: ObjectLiteral = {};\n if (this.connection.driver instanceof SqlServerDriver) {\n conditions[\"timestamp\"] = new MssqlParameter(migration.timestamp, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationTimestamp }) as any);\n conditions[\"name\"] = new MssqlParameter(migration.name, this.connection.driver.normalizeType({ type: this.connection.driver.mappedDataTypes.migrationName }) as any);\n } else {\n conditions[\"timestamp\"] = migration.timestamp;\n conditions[\"name\"] = migration.name;\n }\n\n if (this.connection.driver instanceof MongoDriver) {\n const mongoRunner = queryRunner as MongoQueryRunner;\n await mongoRunner.databaseConnection.db(this.connection.driver.database!).collection(this.migrationsTableName).deleteOne(conditions);\n } else {\n const qb = queryRunner.manager.createQueryBuilder();\n await qb.delete()\n .from(this.migrationsTable)\n .where(`${qb.escape(\"timestamp\")} = :timestamp`)\n .andWhere(`${qb.escape(\"name\")} = :name`)\n .setParameters(conditions)\n .execute();\n }\n\n }\n\n protected async withQueryRunner<T extends any>(callback: (queryRunner: QueryRunner) => T) {\n const queryRunner = this.queryRunner || this.connection.createQueryRunner();\n\n try {\n return callback(queryRunner);\n } finally {\n if (!this.queryRunner) {\n await queryRunner.release();\n }\n }\n }\n}\n"],"sourceRoot":".."}
@@ -40,4 +40,9 @@ export declare class DefaultNamingStrategy implements NamingStrategyInterface {
40
40
  */
41
41
  prefixTableName(prefix: string, tableName: string): string;
42
42
  eagerJoinRelationAlias(alias: string, propertyPath: string): string;
43
+ nestedSetColumnNames: {
44
+ left: string;
45
+ right: string;
46
+ };
47
+ materializedPathColumnName: string;
43
48
  }