typeorm 0.3.0-rc.9 → 0.3.0

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 (2670) hide show
  1. package/README.md +175 -119
  2. package/browser/cache/DbQueryResultCache.d.ts +6 -4
  3. package/browser/cache/DbQueryResultCache.js +180 -187
  4. package/browser/cache/DbQueryResultCache.js.map +1 -1
  5. package/browser/cache/QueryResultCache.js +1 -1
  6. package/browser/cache/QueryResultCache.js.map +1 -1
  7. package/browser/cache/QueryResultCacheFactory.d.ts +3 -3
  8. package/browser/cache/QueryResultCacheFactory.js +19 -15
  9. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  10. package/browser/cache/QueryResultCacheOptions.js +1 -1
  11. package/browser/cache/QueryResultCacheOptions.js.map +1 -1
  12. package/browser/cache/RedisQueryResultCache.d.ts +3 -3
  13. package/browser/cache/RedisQueryResultCache.js +104 -127
  14. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  15. package/browser/common/DeepPartial.d.ts +3 -3
  16. package/browser/common/DeepPartial.js +1 -1
  17. package/browser/common/DeepPartial.js.map +1 -1
  18. package/browser/common/EntityTarget.d.ts +9 -0
  19. package/browser/common/EntityTarget.js +3 -0
  20. package/browser/common/EntityTarget.js.map +1 -0
  21. package/browser/common/MixedList.d.ts +8 -0
  22. package/browser/common/MixedList.js +3 -0
  23. package/browser/common/MixedList.js.map +1 -0
  24. package/browser/common/NonNever.d.ts +6 -0
  25. package/browser/common/NonNever.js +3 -0
  26. package/browser/common/NonNever.js.map +1 -0
  27. package/browser/common/ObjectLiteral.js +1 -1
  28. package/browser/common/ObjectLiteral.js.map +1 -1
  29. package/browser/common/ObjectType.js +1 -1
  30. package/browser/common/ObjectType.js.map +1 -1
  31. package/browser/common/RelationType.d.ts +14 -0
  32. package/browser/common/RelationType.js +3 -0
  33. package/browser/common/RelationType.js.map +1 -0
  34. package/browser/connection/BaseConnectionOptions.d.ts +4 -144
  35. package/browser/connection/BaseConnectionOptions.js +1 -1
  36. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  37. package/browser/connection/Connection.d.ts +4 -219
  38. package/browser/connection/Connection.js +5 -531
  39. package/browser/connection/Connection.js.map +1 -1
  40. package/browser/connection/ConnectionManager.d.ts +11 -5
  41. package/browser/connection/ConnectionManager.js +26 -26
  42. package/browser/connection/ConnectionManager.js.map +1 -1
  43. package/browser/connection/ConnectionMetadataBuilder.d.ts +6 -6
  44. package/browser/connection/ConnectionMetadataBuilder.js +37 -31
  45. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  46. package/browser/connection/ConnectionOptions.d.ts +4 -14
  47. package/browser/connection/ConnectionOptions.js +1 -1
  48. package/browser/connection/ConnectionOptions.js.map +1 -1
  49. package/browser/connection/ConnectionOptionsReader.d.ts +8 -8
  50. package/browser/connection/ConnectionOptionsReader.js +145 -169
  51. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  52. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
  53. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +68 -49
  54. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  55. package/browser/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
  56. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +46 -42
  57. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  58. package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
  59. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +14 -11
  60. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  61. package/browser/container.d.ts +12 -0
  62. package/browser/container.js +19 -11
  63. package/browser/container.js.map +1 -1
  64. package/browser/data-source/BaseDataSourceOptions.d.ts +179 -0
  65. package/browser/data-source/BaseDataSourceOptions.js +3 -0
  66. package/browser/data-source/BaseDataSourceOptions.js.map +1 -0
  67. package/browser/data-source/DataSource.d.ts +246 -0
  68. package/browser/data-source/DataSource.js +448 -0
  69. package/browser/data-source/DataSource.js.map +1 -0
  70. package/browser/data-source/DataSourceOptions.d.ts +21 -0
  71. package/browser/data-source/DataSourceOptions.js +3 -0
  72. package/browser/data-source/DataSourceOptions.js.map +1 -0
  73. package/browser/data-source/index.d.ts +2 -0
  74. package/browser/data-source/index.js +4 -0
  75. package/browser/data-source/index.js.map +1 -0
  76. package/browser/decorator/Check.d.ts +2 -2
  77. package/browser/decorator/Check.js +9 -6
  78. package/browser/decorator/Check.js.map +1 -1
  79. package/browser/decorator/EntityRepository.d.ts +3 -1
  80. package/browser/decorator/EntityRepository.js +3 -1
  81. package/browser/decorator/EntityRepository.js.map +1 -1
  82. package/browser/decorator/Exclusion.d.ts +2 -2
  83. package/browser/decorator/Exclusion.js +9 -6
  84. package/browser/decorator/Exclusion.js.map +1 -1
  85. package/browser/decorator/Generated.d.ts +1 -1
  86. package/browser/decorator/Generated.js +3 -4
  87. package/browser/decorator/Generated.js.map +1 -1
  88. package/browser/decorator/Index.d.ts +10 -10
  89. package/browser/decorator/Index.js +28 -8
  90. package/browser/decorator/Index.js.map +1 -1
  91. package/browser/decorator/Unique.d.ts +7 -6
  92. package/browser/decorator/Unique.js +36 -7
  93. package/browser/decorator/Unique.js.map +1 -1
  94. package/browser/decorator/columns/Column.d.ts +13 -13
  95. package/browser/decorator/columns/Column.js +24 -12
  96. package/browser/decorator/columns/Column.js.map +1 -1
  97. package/browser/decorator/columns/CreateDateColumn.d.ts +2 -2
  98. package/browser/decorator/columns/CreateDateColumn.js +2 -2
  99. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  100. package/browser/decorator/columns/DeleteDateColumn.d.ts +6 -0
  101. package/browser/decorator/columns/DeleteDateColumn.js +17 -0
  102. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -0
  103. package/browser/decorator/columns/ObjectIdColumn.d.ts +2 -2
  104. package/browser/decorator/columns/ObjectIdColumn.js +2 -2
  105. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  106. package/browser/decorator/columns/PrimaryColumn.d.ts +11 -3
  107. package/browser/decorator/columns/PrimaryColumn.js +9 -5
  108. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  109. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
  110. package/browser/decorator/columns/PrimaryGeneratedColumn.js +9 -8
  111. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  112. package/browser/decorator/columns/UpdateDateColumn.d.ts +2 -2
  113. package/browser/decorator/columns/UpdateDateColumn.js +2 -2
  114. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  115. package/browser/decorator/columns/VersionColumn.d.ts +2 -2
  116. package/browser/decorator/columns/VersionColumn.js +2 -2
  117. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  118. package/browser/decorator/columns/ViewColumn.d.ts +2 -1
  119. package/browser/decorator/columns/ViewColumn.js +3 -3
  120. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  121. package/browser/decorator/entity/ChildEntity.d.ts +1 -1
  122. package/browser/decorator/entity/ChildEntity.js +3 -3
  123. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  124. package/browser/decorator/entity/Entity.d.ts +3 -3
  125. package/browser/decorator/entity/Entity.js +7 -4
  126. package/browser/decorator/entity/Entity.js.map +1 -1
  127. package/browser/decorator/entity/TableInheritance.d.ts +2 -2
  128. package/browser/decorator/entity/TableInheritance.js +6 -2
  129. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  130. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
  131. package/browser/decorator/entity-view/ViewEntity.js +10 -4
  132. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  133. package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
  134. package/browser/decorator/listeners/AfterInsert.js +2 -2
  135. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  136. package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
  137. package/browser/decorator/listeners/AfterLoad.js +2 -2
  138. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  139. package/browser/decorator/listeners/AfterRecover.d.ts +4 -0
  140. package/browser/decorator/listeners/AfterRecover.js +16 -0
  141. package/browser/decorator/listeners/AfterRecover.js.map +1 -0
  142. package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
  143. package/browser/decorator/listeners/AfterRemove.js +2 -2
  144. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  145. package/browser/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  146. package/browser/decorator/listeners/AfterSoftRemove.js +16 -0
  147. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -0
  148. package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
  149. package/browser/decorator/listeners/AfterUpdate.js +2 -2
  150. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  151. package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
  152. package/browser/decorator/listeners/BeforeInsert.js +2 -2
  153. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  154. package/browser/decorator/listeners/BeforeRecover.d.ts +4 -0
  155. package/browser/decorator/listeners/BeforeRecover.js +16 -0
  156. package/browser/decorator/listeners/BeforeRecover.js.map +1 -0
  157. package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
  158. package/browser/decorator/listeners/BeforeRemove.js +2 -2
  159. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  160. package/browser/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  161. package/browser/decorator/listeners/BeforeSoftRemove.js +16 -0
  162. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  163. package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
  164. package/browser/decorator/listeners/BeforeUpdate.js +2 -2
  165. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  166. package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
  167. package/browser/decorator/listeners/EventSubscriber.js +2 -2
  168. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  169. package/browser/decorator/options/ColumnCommonOptions.d.ts +1 -1
  170. package/browser/decorator/options/ColumnCommonOptions.js +1 -1
  171. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  172. package/browser/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
  173. package/browser/decorator/options/ColumnEmbeddedOptions.js +1 -1
  174. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  175. package/browser/decorator/options/ColumnEnumOptions.js +1 -1
  176. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  177. package/browser/decorator/options/ColumnHstoreOptions.js +1 -1
  178. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  179. package/browser/decorator/options/ColumnNumericOptions.js +1 -1
  180. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  181. package/browser/decorator/options/ColumnOptions.d.ts +5 -1
  182. package/browser/decorator/options/ColumnOptions.js +1 -1
  183. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  184. package/browser/decorator/options/ColumnWithLengthOptions.js +1 -1
  185. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  186. package/browser/decorator/options/ColumnWithWidthOptions.js +1 -1
  187. package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  188. package/browser/decorator/options/EntityOptions.js +1 -1
  189. package/browser/decorator/options/EntityOptions.js.map +1 -1
  190. package/browser/decorator/options/IndexOptions.d.ts +5 -0
  191. package/browser/decorator/options/IndexOptions.js +1 -1
  192. package/browser/decorator/options/IndexOptions.js.map +1 -1
  193. package/browser/decorator/options/JoinColumnOptions.js +1 -1
  194. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  195. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +1 -1
  196. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  197. package/browser/decorator/options/JoinTableOptions.js +1 -1
  198. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  199. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  200. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
  201. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  202. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -1
  203. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  204. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -1
  205. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  206. package/browser/decorator/options/RelationOptions.d.ts +12 -2
  207. package/browser/decorator/options/RelationOptions.js +1 -1
  208. package/browser/decorator/options/RelationOptions.js.map +1 -1
  209. package/browser/decorator/options/SpatialColumnOptions.js +1 -1
  210. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  211. package/browser/decorator/options/TransactionOptions.js +1 -1
  212. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  213. package/browser/decorator/options/UniqueOptions.d.ts +10 -0
  214. package/browser/decorator/options/UniqueOptions.js +3 -0
  215. package/browser/decorator/options/UniqueOptions.js.map +1 -0
  216. package/browser/decorator/options/ValueTransformer.js +1 -1
  217. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  218. package/browser/decorator/options/ViewColumnOptions.d.ts +15 -0
  219. package/browser/decorator/options/ViewColumnOptions.js +3 -0
  220. package/browser/decorator/options/ViewColumnOptions.js.map +1 -0
  221. package/browser/decorator/options/ViewEntityOptions.d.ts +7 -2
  222. package/browser/decorator/options/ViewEntityOptions.js +1 -1
  223. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  224. package/browser/decorator/relations/JoinColumn.d.ts +4 -4
  225. package/browser/decorator/relations/JoinColumn.js +6 -4
  226. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  227. package/browser/decorator/relations/JoinTable.d.ts +4 -4
  228. package/browser/decorator/relations/JoinTable.js +13 -4
  229. package/browser/decorator/relations/JoinTable.js.map +1 -1
  230. package/browser/decorator/relations/ManyToMany.d.ts +4 -3
  231. package/browser/decorator/relations/ManyToMany.js +12 -8
  232. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  233. package/browser/decorator/relations/ManyToOne.d.ts +10 -9
  234. package/browser/decorator/relations/ManyToOne.js +17 -13
  235. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  236. package/browser/decorator/relations/OneToMany.d.ts +6 -4
  237. package/browser/decorator/relations/OneToMany.js +13 -9
  238. package/browser/decorator/relations/OneToMany.js.map +1 -1
  239. package/browser/decorator/relations/OneToOne.d.ts +4 -3
  240. package/browser/decorator/relations/OneToOne.js +12 -8
  241. package/browser/decorator/relations/OneToOne.js.map +1 -1
  242. package/browser/decorator/relations/RelationCount.d.ts +2 -2
  243. package/browser/decorator/relations/RelationCount.js +2 -2
  244. package/browser/decorator/relations/RelationCount.js.map +1 -1
  245. package/browser/decorator/relations/RelationId.d.ts +2 -2
  246. package/browser/decorator/relations/RelationId.js +2 -2
  247. package/browser/decorator/relations/RelationId.js.map +1 -1
  248. package/browser/decorator/tree/Tree.d.ts +2 -1
  249. package/browser/decorator/tree/Tree.js +4 -3
  250. package/browser/decorator/tree/Tree.js.map +1 -1
  251. package/browser/decorator/tree/TreeChildren.d.ts +2 -2
  252. package/browser/decorator/tree/TreeChildren.js +11 -6
  253. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  254. package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
  255. package/browser/decorator/tree/TreeLevelColumn.js +2 -2
  256. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  257. package/browser/decorator/tree/TreeParent.d.ts +4 -1
  258. package/browser/decorator/tree/TreeParent.js +13 -6
  259. package/browser/decorator/tree/TreeParent.js.map +1 -1
  260. package/browser/driver/Driver.d.ts +39 -9
  261. package/browser/driver/Driver.js +1 -1
  262. package/browser/driver/Driver.js.map +1 -1
  263. package/browser/driver/DriverFactory.d.ts +2 -2
  264. package/browser/driver/DriverFactory.js +40 -13
  265. package/browser/driver/DriverFactory.js.map +1 -1
  266. package/browser/driver/DriverUtils.d.ts +39 -10
  267. package/browser/driver/DriverUtils.js +179 -55
  268. package/browser/driver/DriverUtils.js.map +1 -1
  269. package/browser/driver/Query.d.ts +1 -0
  270. package/browser/driver/Query.js +4 -5
  271. package/browser/driver/Query.js.map +1 -1
  272. package/browser/driver/SqlInMemory.js +3 -5
  273. package/browser/driver/SqlInMemory.js.map +1 -1
  274. package/browser/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
  275. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js +15 -0
  276. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
  277. package/browser/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
  278. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +3 -0
  279. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
  280. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
  281. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +3 -0
  282. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
  283. package/browser/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
  284. package/browser/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +322 -211
  285. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
  286. package/{driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +27 -18
  287. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1677 -0
  288. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
  289. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
  290. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +3 -0
  291. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
  292. package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
  293. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +99 -0
  294. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
  295. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
  296. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +135 -0
  297. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
  298. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
  299. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
  300. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  301. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
  302. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +149 -0
  303. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  304. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
  305. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +124 -0
  306. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  307. package/browser/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
  308. package/browser/driver/capacitor/CapacitorConnectionOptions.js +3 -0
  309. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
  310. package/browser/driver/capacitor/CapacitorDriver.d.ts +27 -0
  311. package/browser/driver/capacitor/CapacitorDriver.js +79 -0
  312. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -0
  313. package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
  314. package/browser/driver/capacitor/CapacitorQueryRunner.js +94 -0
  315. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
  316. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -1
  317. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  318. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
  319. package/browser/driver/cockroachdb/CockroachConnectionOptions.js +1 -1
  320. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  321. package/browser/driver/cockroachdb/CockroachDriver.d.ts +49 -8
  322. package/browser/driver/cockroachdb/CockroachDriver.js +321 -263
  323. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  324. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +22 -18
  325. package/browser/driver/cockroachdb/CockroachQueryRunner.js +1576 -2026
  326. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  327. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
  328. package/browser/driver/cordova/CordovaConnectionOptions.js +1 -1
  329. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  330. package/browser/driver/cordova/CordovaDriver.d.ts +5 -4
  331. package/browser/driver/cordova/CordovaDriver.js +33 -49
  332. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  333. package/browser/driver/cordova/CordovaQueryRunner.d.ts +27 -1
  334. package/browser/driver/cordova/CordovaQueryRunner.js +100 -53
  335. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  336. package/browser/driver/expo/ExpoConnectionOptions.d.ts +6 -2
  337. package/browser/driver/expo/ExpoConnectionOptions.js +1 -1
  338. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  339. package/browser/driver/expo/ExpoDriver.d.ts +4 -7
  340. package/browser/driver/expo/ExpoDriver.js +32 -53
  341. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  342. package/browser/driver/expo/ExpoQueryRunner.d.ts +9 -1
  343. package/browser/driver/expo/ExpoQueryRunner.js +123 -94
  344. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  345. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
  346. package/browser/driver/mongodb/MongoConnectionOptions.js +1 -1
  347. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  348. package/browser/driver/mongodb/MongoDriver.d.ts +36 -12
  349. package/browser/driver/mongodb/MongoDriver.js +145 -99
  350. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  351. package/browser/driver/mongodb/MongoQueryRunner.d.ts +27 -8
  352. package/browser/driver/mongodb/MongoQueryRunner.js +330 -748
  353. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  354. package/browser/driver/mongodb/typings.d.ts +12 -11
  355. package/browser/driver/mongodb/typings.js.map +1 -1
  356. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  357. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -1
  358. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  359. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
  360. package/browser/driver/mysql/MysqlConnectionOptions.js +1 -1
  361. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  362. package/browser/driver/mysql/MysqlDriver.d.ts +48 -11
  363. package/browser/driver/mysql/MysqlDriver.js +440 -271
  364. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  365. package/browser/driver/mysql/MysqlQueryRunner.d.ts +25 -15
  366. package/browser/driver/mysql/MysqlQueryRunner.js +1552 -1751
  367. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  368. package/browser/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
  369. package/browser/driver/nativescript/NativescriptConnectionOptions.js +1 -1
  370. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  371. package/browser/driver/nativescript/NativescriptDriver.d.ts +5 -4
  372. package/browser/driver/nativescript/NativescriptDriver.js +36 -43
  373. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  374. package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
  375. package/browser/driver/nativescript/NativescriptQueryRunner.js +54 -39
  376. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  377. package/browser/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
  378. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +1 -1
  379. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  380. package/browser/driver/oracle/OracleConnectionOptions.d.ts +11 -2
  381. package/browser/driver/oracle/OracleConnectionOptions.js +1 -1
  382. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  383. package/browser/driver/oracle/OracleDriver.d.ts +31 -7
  384. package/browser/driver/oracle/OracleDriver.js +328 -234
  385. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  386. package/browser/driver/oracle/OracleQueryRunner.d.ts +23 -9
  387. package/browser/driver/oracle/OracleQueryRunner.js +1346 -1670
  388. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  389. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  390. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -1
  391. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  392. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
  393. package/browser/driver/postgres/PostgresConnectionOptions.js +1 -1
  394. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  395. package/browser/driver/postgres/PostgresDriver.d.ts +81 -19
  396. package/browser/driver/postgres/PostgresDriver.js +618 -439
  397. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  398. package/browser/driver/postgres/PostgresQueryRunner.d.ts +48 -26
  399. package/browser/driver/postgres/PostgresQueryRunner.js +2128 -2286
  400. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  401. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
  402. package/browser/driver/react-native/ReactNativeConnectionOptions.js +1 -1
  403. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  404. package/browser/driver/react-native/ReactNativeDriver.d.ts +4 -3
  405. package/browser/driver/react-native/ReactNativeDriver.js +31 -42
  406. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  407. package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
  408. package/browser/driver/react-native/ReactNativeQueryRunner.js +62 -53
  409. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  410. package/browser/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
  411. package/browser/driver/sap/SapConnectionCredentialsOptions.js +3 -0
  412. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
  413. package/browser/driver/sap/SapConnectionOptions.d.ts +59 -0
  414. package/browser/driver/sap/SapConnectionOptions.js +3 -0
  415. package/browser/driver/sap/SapConnectionOptions.js.map +1 -0
  416. package/browser/driver/sap/SapDriver.d.ts +214 -0
  417. package/browser/driver/sap/SapDriver.js +641 -0
  418. package/browser/driver/sap/SapDriver.js.map +1 -0
  419. package/browser/driver/sap/SapQueryRunner.d.ts +342 -0
  420. package/browser/driver/sap/SapQueryRunner.js +1987 -0
  421. package/browser/driver/sap/SapQueryRunner.js.map +1 -0
  422. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
  423. package/browser/driver/sqlite/SqliteConnectionOptions.js +1 -1
  424. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  425. package/browser/driver/sqlite/SqliteDriver.d.ts +18 -4
  426. package/browser/driver/sqlite/SqliteDriver.js +104 -83
  427. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  428. package/browser/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
  429. package/browser/driver/sqlite/SqliteQueryRunner.js +83 -68
  430. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  431. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
  432. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +254 -139
  433. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  434. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +25 -5
  435. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1022 -1441
  436. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  437. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
  438. package/browser/driver/sqljs/SqljsConnectionOptions.js +1 -1
  439. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  440. package/browser/driver/sqljs/SqljsDriver.d.ts +4 -3
  441. package/browser/driver/sqljs/SqljsDriver.js +153 -227
  442. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  443. package/browser/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
  444. package/browser/driver/sqljs/SqljsQueryRunner.js +84 -61
  445. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  446. package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
  447. package/browser/driver/sqlserver/MssqlParameter.js +4 -9
  448. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  449. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  450. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -1
  451. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  452. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
  453. package/browser/driver/sqlserver/SqlServerConnectionOptions.js +1 -1
  454. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  455. package/browser/driver/sqlserver/SqlServerDriver.d.ts +43 -9
  456. package/browser/driver/sqlserver/SqlServerDriver.js +355 -253
  457. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  458. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +19 -28
  459. package/browser/driver/sqlserver/SqlServerQueryRunner.js +1810 -2309
  460. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  461. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  462. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
  463. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  464. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  465. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
  466. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  467. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  468. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
  469. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  470. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  471. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
  472. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  473. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  474. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
  475. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  476. package/browser/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  477. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
  478. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  479. package/browser/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  480. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
  481. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  482. package/browser/driver/types/ColumnTypes.d.ts +5 -5
  483. package/browser/driver/types/ColumnTypes.js +1 -1
  484. package/browser/driver/types/ColumnTypes.js.map +1 -1
  485. package/browser/driver/types/DataTypeDefaults.js +1 -1
  486. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  487. package/browser/driver/types/DatabaseType.d.ts +1 -1
  488. package/browser/driver/types/DatabaseType.js +1 -1
  489. package/browser/driver/types/DatabaseType.js.map +1 -1
  490. package/browser/driver/types/IsolationLevel.js +1 -1
  491. package/browser/driver/types/IsolationLevel.js.map +1 -1
  492. package/browser/driver/types/MappedColumnTypes.d.ts +12 -0
  493. package/browser/driver/types/MappedColumnTypes.js +1 -1
  494. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  495. package/browser/driver/types/MetadataTableType.d.ts +5 -0
  496. package/browser/driver/types/MetadataTableType.js +8 -0
  497. package/browser/driver/types/MetadataTableType.js.map +1 -0
  498. package/browser/driver/types/ReplicationMode.d.ts +1 -0
  499. package/browser/driver/types/ReplicationMode.js +3 -0
  500. package/browser/driver/types/ReplicationMode.js.map +1 -0
  501. package/browser/driver/types/UpsertType.d.ts +1 -0
  502. package/browser/driver/types/UpsertType.js +3 -0
  503. package/browser/driver/types/UpsertType.js.map +1 -0
  504. package/browser/entity-manager/EntityManager.d.ts +143 -286
  505. package/browser/entity-manager/EntityManager.js +531 -439
  506. package/browser/entity-manager/EntityManager.js.map +1 -1
  507. package/browser/entity-manager/EntityManagerFactory.d.ts +2 -2
  508. package/browser/entity-manager/EntityManagerFactory.js +6 -12
  509. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  510. package/browser/entity-manager/MongoEntityManager.d.ts +101 -64
  511. package/browser/entity-manager/MongoEntityManager.js +499 -467
  512. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  513. package/browser/entity-manager/SqljsEntityManager.d.ts +3 -2
  514. package/browser/entity-manager/SqljsEntityManager.js +14 -36
  515. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  516. package/browser/entity-schema/EntitySchema.d.ts +1 -0
  517. package/browser/entity-schema/EntitySchema.js +4 -5
  518. package/browser/entity-schema/EntitySchema.js.map +1 -1
  519. package/browser/entity-schema/EntitySchemaCheckOptions.js +1 -1
  520. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  521. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
  522. package/browser/entity-schema/EntitySchemaColumnOptions.js +1 -1
  523. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  524. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  525. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +4 -0
  526. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  527. package/browser/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  528. package/browser/entity-schema/EntitySchemaEmbeddedError.js +14 -0
  529. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  530. package/browser/entity-schema/EntitySchemaExclusionOptions.js +1 -1
  531. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  532. package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
  533. package/browser/entity-schema/EntitySchemaIndexOptions.js +1 -1
  534. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  535. package/browser/entity-schema/EntitySchemaOptions.d.ts +22 -10
  536. package/browser/entity-schema/EntitySchemaOptions.js +2 -6
  537. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  538. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
  539. package/browser/entity-schema/EntitySchemaRelationOptions.js +1 -1
  540. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  541. package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  542. package/browser/entity-schema/EntitySchemaTransformer.js +228 -183
  543. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  544. package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
  545. package/browser/entity-schema/EntitySchemaUniqueOptions.js +1 -1
  546. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  547. package/browser/error/AlreadyHasActiveConnectionError.d.ts +2 -2
  548. package/browser/error/AlreadyHasActiveConnectionError.js +6 -13
  549. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  550. package/browser/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
  551. package/browser/error/CannotAttachTreeChildrenEntityError.js +7 -13
  552. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  553. package/browser/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
  554. package/browser/error/CannotConnectAlreadyConnectedError.js +5 -12
  555. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  556. package/browser/error/CannotCreateEntityIdMapError.d.ts +2 -2
  557. package/browser/error/CannotCreateEntityIdMapError.js +7 -13
  558. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  559. package/browser/error/CannotDetermineEntityError.d.ts +2 -2
  560. package/browser/error/CannotDetermineEntityError.js +6 -12
  561. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  562. package/browser/error/CannotExecuteNotConnectedError.d.ts +2 -2
  563. package/browser/error/CannotExecuteNotConnectedError.js +5 -12
  564. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  565. package/browser/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
  566. package/browser/error/CannotGetEntityManagerNotConnectedError.js +5 -12
  567. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  568. package/browser/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
  569. package/browser/error/CannotReflectMethodParameterTypeError.js +7 -14
  570. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  571. package/browser/error/CircularRelationsError.d.ts +2 -2
  572. package/browser/error/CircularRelationsError.js +6 -12
  573. package/browser/error/CircularRelationsError.js.map +1 -1
  574. package/browser/error/ColumnTypeUndefinedError.d.ts +2 -2
  575. package/browser/error/ColumnTypeUndefinedError.js +8 -15
  576. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  577. package/browser/error/ConnectionIsNotSetError.d.ts +2 -2
  578. package/browser/error/ConnectionIsNotSetError.js +5 -12
  579. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  580. package/browser/error/ConnectionNotFoundError.d.ts +2 -2
  581. package/browser/error/ConnectionNotFoundError.js +5 -12
  582. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  583. package/browser/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
  584. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +8 -13
  585. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  586. package/browser/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
  587. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +8 -13
  588. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  589. package/browser/error/CustomRepositoryNotFoundError.d.ts +2 -2
  590. package/browser/error/CustomRepositoryNotFoundError.js +8 -13
  591. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  592. package/browser/error/DataTypeNotSupportedError.d.ts +2 -2
  593. package/browser/error/DataTypeNotSupportedError.js +7 -13
  594. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  595. package/browser/error/DriverOptionNotSetError.d.ts +2 -2
  596. package/browser/error/DriverOptionNotSetError.js +6 -12
  597. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  598. package/browser/error/DriverPackageNotInstalledError.d.ts +2 -2
  599. package/browser/error/DriverPackageNotInstalledError.js +6 -12
  600. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  601. package/browser/error/EntityMetadataNotFoundError.d.ts +5 -6
  602. package/browser/error/EntityMetadataNotFoundError.js +17 -20
  603. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  604. package/browser/error/EntityNotFoundError.d.ts +5 -5
  605. package/browser/error/EntityNotFoundError.js +21 -22
  606. package/browser/error/EntityNotFoundError.js.map +1 -1
  607. package/browser/error/EntityPropertyNotFoundError.d.ts +8 -0
  608. package/browser/error/EntityPropertyNotFoundError.js +13 -0
  609. package/browser/error/EntityPropertyNotFoundError.js.map +1 -0
  610. package/browser/error/FindRelationsNotFoundError.d.ts +7 -0
  611. package/browser/error/FindRelationsNotFoundError.js +19 -0
  612. package/browser/error/FindRelationsNotFoundError.js.map +1 -0
  613. package/browser/error/InitializedRelationError.d.ts +2 -1
  614. package/browser/error/InitializedRelationError.js +7 -13
  615. package/browser/error/InitializedRelationError.js.map +1 -1
  616. package/browser/error/InsertValuesMissingError.d.ts +2 -2
  617. package/browser/error/InsertValuesMissingError.js +6 -12
  618. package/browser/error/InsertValuesMissingError.js.map +1 -1
  619. package/browser/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
  620. package/browser/error/LimitOnUpdateNotSupportedError.js +6 -13
  621. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  622. package/browser/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
  623. package/browser/error/LockNotSupportedOnGivenDriverError.js +5 -12
  624. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  625. package/browser/error/MetadataAlreadyExistsError.d.ts +2 -4
  626. package/browser/error/MetadataAlreadyExistsError.js +11 -16
  627. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  628. package/browser/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
  629. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +9 -15
  630. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  631. package/browser/error/MissingDeleteDateColumnError.d.ts +5 -0
  632. package/browser/error/MissingDeleteDateColumnError.js +8 -0
  633. package/browser/error/MissingDeleteDateColumnError.js.map +1 -0
  634. package/browser/error/MissingDriverError.d.ts +3 -3
  635. package/browser/error/MissingDriverError.js +6 -12
  636. package/browser/error/MissingDriverError.js.map +1 -1
  637. package/browser/error/MissingJoinColumnError.d.ts +2 -4
  638. package/browser/error/MissingJoinColumnError.js +12 -18
  639. package/browser/error/MissingJoinColumnError.js.map +1 -1
  640. package/browser/error/MissingJoinTableError.d.ts +2 -4
  641. package/browser/error/MissingJoinTableError.js +12 -18
  642. package/browser/error/MissingJoinTableError.js.map +1 -1
  643. package/browser/error/MissingPrimaryColumnError.d.ts +2 -4
  644. package/browser/error/MissingPrimaryColumnError.js +6 -15
  645. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  646. package/browser/error/MustBeEntityError.d.ts +2 -2
  647. package/browser/error/MustBeEntityError.js +5 -12
  648. package/browser/error/MustBeEntityError.js.map +1 -1
  649. package/browser/error/NamingStrategyNotFoundError.d.ts +2 -2
  650. package/browser/error/NamingStrategyNotFoundError.js +11 -14
  651. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  652. package/browser/error/NestedSetMultipleRootError.d.ts +4 -0
  653. package/browser/error/NestedSetMultipleRootError.js +8 -0
  654. package/browser/error/NestedSetMultipleRootError.js.map +1 -0
  655. package/browser/error/NoConnectionForRepositoryError.d.ts +2 -2
  656. package/browser/error/NoConnectionForRepositoryError.js +6 -13
  657. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  658. package/browser/error/NoConnectionOptionError.d.ts +2 -1
  659. package/browser/error/NoConnectionOptionError.js +6 -11
  660. package/browser/error/NoConnectionOptionError.js.map +1 -1
  661. package/browser/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
  662. package/browser/error/NoNeedToReleaseEntityManagerError.js +7 -14
  663. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  664. package/browser/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
  665. package/browser/error/NoVersionOrUpdateDateColumnError.js +5 -12
  666. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  667. package/browser/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
  668. package/browser/error/OffsetWithoutLimitNotSupportedError.js +8 -13
  669. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  670. package/browser/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
  671. package/browser/error/OptimisticLockCanNotBeUsedError.js +5 -12
  672. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  673. package/browser/error/OptimisticLockVersionMismatchError.d.ts +2 -2
  674. package/browser/error/OptimisticLockVersionMismatchError.js +5 -12
  675. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  676. package/browser/error/PersistedEntityNotFoundError.d.ts +2 -2
  677. package/browser/error/PersistedEntityNotFoundError.js +5 -12
  678. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  679. package/browser/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
  680. package/browser/error/PessimisticLockTransactionRequiredError.js +5 -12
  681. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  682. package/browser/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
  683. package/browser/error/PrimaryColumnCannotBeNullableError.js +6 -13
  684. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  685. package/browser/error/QueryFailedError.d.ts +6 -2
  686. package/browser/error/QueryFailedError.js +18 -14
  687. package/browser/error/QueryFailedError.js.map +1 -1
  688. package/browser/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
  689. package/browser/error/QueryRunnerAlreadyReleasedError.js +5 -14
  690. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  691. package/browser/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
  692. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +6 -12
  693. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  694. package/browser/error/RepositoryNotFoundError.d.ts +4 -4
  695. package/browser/error/RepositoryNotFoundError.js +16 -16
  696. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  697. package/browser/error/RepositoryNotTreeError.d.ts +4 -4
  698. package/browser/error/RepositoryNotTreeError.js +18 -19
  699. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  700. package/browser/error/ReturningStatementNotSupportedError.d.ts +2 -2
  701. package/browser/error/ReturningStatementNotSupportedError.js +5 -12
  702. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  703. package/browser/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
  704. package/browser/error/SubjectRemovedAndUpdatedError.js +6 -13
  705. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  706. package/browser/error/SubjectWithoutIdentifierError.d.ts +2 -2
  707. package/browser/error/SubjectWithoutIdentifierError.js +5 -13
  708. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  709. package/browser/error/TransactionAlreadyStartedError.d.ts +2 -2
  710. package/browser/error/TransactionAlreadyStartedError.js +5 -12
  711. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  712. package/browser/error/TransactionNotStartedError.d.ts +2 -2
  713. package/browser/error/TransactionNotStartedError.js +5 -12
  714. package/browser/error/TransactionNotStartedError.js.map +1 -1
  715. package/browser/error/TreeRepositoryNotSupportedError.d.ts +2 -2
  716. package/browser/error/TreeRepositoryNotSupportedError.js +5 -12
  717. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  718. package/browser/error/TypeORMError.d.ts +4 -0
  719. package/browser/error/TypeORMError.js +19 -0
  720. package/browser/error/TypeORMError.js.map +1 -0
  721. package/browser/error/UpdateValuesMissingError.d.ts +2 -5
  722. package/browser/error/UpdateValuesMissingError.js +5 -15
  723. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  724. package/browser/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
  725. package/browser/error/UsingJoinColumnIsNotAllowedError.js +6 -15
  726. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  727. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
  728. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +7 -16
  729. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  730. package/browser/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
  731. package/browser/error/UsingJoinTableIsNotAllowedError.js +7 -16
  732. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  733. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
  734. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +7 -16
  735. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  736. package/browser/error/index.d.ts +62 -0
  737. package/browser/error/index.js +64 -0
  738. package/browser/error/index.js.map +1 -0
  739. package/browser/find-options/EqualOperator.d.ts +5 -0
  740. package/browser/find-options/EqualOperator.js +9 -0
  741. package/browser/find-options/EqualOperator.js.map +1 -0
  742. package/browser/find-options/FindManyOptions.d.ts +14 -0
  743. package/browser/find-options/FindManyOptions.js +3 -0
  744. package/browser/find-options/FindManyOptions.js.map +1 -0
  745. package/browser/find-options/FindOneOptions.d.ts +86 -0
  746. package/browser/find-options/FindOneOptions.js +3 -0
  747. package/browser/find-options/FindOneOptions.js.map +1 -0
  748. package/browser/find-options/FindOperator.d.ts +31 -8
  749. package/browser/find-options/FindOperator.js +64 -97
  750. package/browser/find-options/FindOperator.js.map +1 -1
  751. package/browser/find-options/FindOperatorType.d.ts +1 -1
  752. package/browser/find-options/FindOperatorType.js +1 -1
  753. package/browser/find-options/FindOperatorType.js.map +1 -1
  754. package/browser/find-options/FindOptionsOrder.d.ts +19 -0
  755. package/browser/find-options/FindOptionsOrder.js +3 -0
  756. package/browser/find-options/FindOptionsOrder.js.map +1 -0
  757. package/browser/find-options/FindOptionsRelations.d.ts +19 -0
  758. package/browser/find-options/FindOptionsRelations.js +3 -0
  759. package/browser/find-options/FindOptionsRelations.js.map +1 -0
  760. package/browser/find-options/FindOptionsSelect.d.ts +19 -0
  761. package/browser/find-options/FindOptionsSelect.js +3 -0
  762. package/browser/find-options/FindOptionsSelect.js.map +1 -0
  763. package/browser/find-options/FindOptionsUtils.d.ts +180 -6
  764. package/browser/find-options/FindOptionsUtils.js +299 -94
  765. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  766. package/browser/find-options/FindOptionsWhere.d.ts +14 -0
  767. package/browser/find-options/FindOptionsWhere.js +3 -0
  768. package/browser/find-options/FindOptionsWhere.js.map +1 -0
  769. package/browser/find-options/FindTreeOptions.d.ts +13 -0
  770. package/browser/find-options/FindTreeOptions.js +3 -0
  771. package/browser/find-options/FindTreeOptions.js.map +1 -0
  772. package/browser/find-options/JoinOptions.d.ts +76 -0
  773. package/browser/find-options/JoinOptions.js +3 -0
  774. package/browser/find-options/JoinOptions.js.map +1 -0
  775. package/browser/find-options/OrderByCondition.js +1 -1
  776. package/browser/find-options/OrderByCondition.js.map +1 -1
  777. package/browser/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
  778. package/browser/find-options/mongodb/MongoFindManyOptions.js +3 -0
  779. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
  780. package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
  781. package/browser/find-options/mongodb/MongoFindOneOptions.js +3 -0
  782. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
  783. package/browser/find-options/operator/Any.d.ts +1 -1
  784. package/browser/find-options/operator/Any.js.map +1 -1
  785. package/browser/find-options/operator/Between.d.ts +1 -1
  786. package/browser/find-options/operator/Between.js.map +1 -1
  787. package/browser/find-options/operator/Equal.d.ts +7 -2
  788. package/browser/find-options/operator/Equal.js +7 -3
  789. package/browser/find-options/operator/Equal.js.map +1 -1
  790. package/browser/find-options/operator/ILike.d.ts +1 -1
  791. package/browser/find-options/operator/ILike.js +1 -1
  792. package/browser/find-options/operator/ILike.js.map +1 -1
  793. package/browser/find-options/operator/In.d.ts +1 -1
  794. package/browser/find-options/operator/In.js.map +1 -1
  795. package/browser/find-options/operator/IsNull.js.map +1 -1
  796. package/browser/find-options/operator/LessThan.js.map +1 -1
  797. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  798. package/browser/find-options/operator/Like.d.ts +1 -1
  799. package/browser/find-options/operator/Like.js +1 -1
  800. package/browser/find-options/operator/Like.js.map +1 -1
  801. package/browser/find-options/operator/MoreThan.js.map +1 -1
  802. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  803. package/browser/find-options/operator/Not.d.ts +1 -1
  804. package/browser/find-options/operator/Not.js +1 -1
  805. package/browser/find-options/operator/Not.js.map +1 -1
  806. package/browser/find-options/operator/Raw.d.ts +14 -2
  807. package/browser/find-options/operator/Raw.js +5 -6
  808. package/browser/find-options/operator/Raw.js.map +1 -1
  809. package/browser/globals.d.ts +117 -0
  810. package/browser/globals.js +166 -0
  811. package/browser/globals.js.map +1 -0
  812. package/browser/index.d.ts +45 -113
  813. package/browser/index.js +57 -190
  814. package/browser/index.js.map +1 -1
  815. package/browser/logger/AdvancedConsoleLogger.d.ts +2 -1
  816. package/browser/logger/AdvancedConsoleLogger.js +55 -33
  817. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  818. package/browser/logger/DebugLogger.d.ts +1 -2
  819. package/browser/logger/DebugLogger.js +24 -26
  820. package/browser/logger/DebugLogger.js.map +1 -1
  821. package/browser/logger/FileLogger.d.ts +3 -1
  822. package/browser/logger/FileLogger.js +65 -40
  823. package/browser/logger/FileLogger.js.map +1 -1
  824. package/browser/logger/Logger.d.ts +1 -1
  825. package/browser/logger/Logger.js +1 -1
  826. package/browser/logger/Logger.js.map +1 -1
  827. package/browser/logger/LoggerFactory.js +6 -9
  828. package/browser/logger/LoggerFactory.js.map +1 -1
  829. package/browser/logger/LoggerOptions.d.ts +9 -0
  830. package/browser/logger/LoggerOptions.js +1 -1
  831. package/browser/logger/LoggerOptions.js.map +1 -1
  832. package/browser/logger/SimpleConsoleLogger.d.ts +2 -1
  833. package/browser/logger/SimpleConsoleLogger.js +55 -33
  834. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  835. package/browser/metadata/CheckMetadata.js +8 -8
  836. package/browser/metadata/CheckMetadata.js.map +1 -1
  837. package/browser/metadata/ColumnMetadata.d.ts +16 -7
  838. package/browser/metadata/ColumnMetadata.js +240 -126
  839. package/browser/metadata/ColumnMetadata.js.map +1 -1
  840. package/browser/metadata/EmbeddedMetadata.d.ts +12 -5
  841. package/browser/metadata/EmbeddedMetadata.js +77 -51
  842. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  843. package/browser/metadata/EntityListenerMetadata.js +21 -15
  844. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  845. package/browser/metadata/EntityMetadata.d.ts +65 -22
  846. package/browser/metadata/EntityMetadata.js +250 -160
  847. package/browser/metadata/EntityMetadata.js.map +1 -1
  848. package/browser/metadata/ExclusionMetadata.js +8 -8
  849. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  850. package/browser/metadata/ForeignKeyMetadata.js +8 -10
  851. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  852. package/browser/metadata/IndexMetadata.d.ts +7 -2
  853. package/browser/metadata/IndexMetadata.js +44 -34
  854. package/browser/metadata/IndexMetadata.js.map +1 -1
  855. package/browser/metadata/RelationCountMetadata.js +11 -10
  856. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  857. package/browser/metadata/RelationIdMetadata.js +21 -19
  858. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  859. package/browser/metadata/RelationMetadata.d.ts +28 -5
  860. package/browser/metadata/RelationMetadata.js +160 -79
  861. package/browser/metadata/RelationMetadata.js.map +1 -1
  862. package/browser/metadata/UniqueMetadata.d.ts +7 -2
  863. package/browser/metadata/UniqueMetadata.js +40 -32
  864. package/browser/metadata/UniqueMetadata.js.map +1 -1
  865. package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
  866. package/browser/metadata/types/ClosureTreeOptions.js +3 -0
  867. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
  868. package/browser/metadata/types/DeferrableType.js +1 -1
  869. package/browser/metadata/types/DeferrableType.js.map +1 -1
  870. package/browser/metadata/types/EventListenerTypes.d.ts +12 -8
  871. package/browser/metadata/types/EventListenerTypes.js +13 -13
  872. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  873. package/browser/metadata/types/OnDeleteType.js +1 -1
  874. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  875. package/browser/metadata/types/OnUpdateType.js +1 -1
  876. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  877. package/browser/metadata/types/PropertyTypeInFunction.js +1 -1
  878. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  879. package/browser/metadata/types/RelationTypeInFunction.d.ts +2 -1
  880. package/browser/metadata/types/RelationTypeInFunction.js +1 -1
  881. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  882. package/browser/metadata/types/RelationTypes.js +1 -1
  883. package/browser/metadata/types/RelationTypes.js.map +1 -1
  884. package/browser/metadata/types/TableTypes.d.ts +1 -1
  885. package/browser/metadata/types/TableTypes.js +1 -1
  886. package/browser/metadata/types/TableTypes.js.map +1 -1
  887. package/browser/metadata/types/TreeTypes.js +1 -1
  888. package/browser/metadata/types/TreeTypes.js.map +1 -1
  889. package/browser/metadata-args/CheckMetadataArgs.js +1 -1
  890. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  891. package/browser/metadata-args/ColumnMetadataArgs.js +1 -1
  892. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  893. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +1 -1
  894. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  895. package/browser/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  896. package/browser/metadata-args/EmbeddedMetadataArgs.js +1 -1
  897. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  898. package/browser/metadata-args/EntityListenerMetadataArgs.js +1 -1
  899. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  900. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  901. package/browser/metadata-args/EntityRepositoryMetadataArgs.js +1 -1
  902. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  903. package/browser/metadata-args/EntitySubscriberMetadataArgs.js +1 -1
  904. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  905. package/browser/metadata-args/ExclusionMetadataArgs.js +1 -1
  906. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  907. package/browser/metadata-args/GeneratedMetadataArgs.js +1 -1
  908. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  909. package/browser/metadata-args/IndexMetadataArgs.d.ts +7 -2
  910. package/browser/metadata-args/IndexMetadataArgs.js +1 -1
  911. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  912. package/browser/metadata-args/InheritanceMetadataArgs.js +1 -1
  913. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  914. package/browser/metadata-args/JoinColumnMetadataArgs.js +1 -1
  915. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  916. package/browser/metadata-args/JoinTableMetadataArgs.js +1 -1
  917. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  918. package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
  919. package/browser/metadata-args/MetadataArgsStorage.js +145 -95
  920. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  921. package/browser/metadata-args/NamingStrategyMetadataArgs.js +1 -1
  922. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  923. package/browser/metadata-args/RelationCountMetadataArgs.js +1 -1
  924. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  925. package/browser/metadata-args/RelationIdMetadataArgs.js +1 -1
  926. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  927. package/browser/metadata-args/RelationMetadataArgs.js +1 -1
  928. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  929. package/browser/metadata-args/TableMetadataArgs.d.ts +9 -5
  930. package/browser/metadata-args/TableMetadataArgs.js +1 -1
  931. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  932. package/browser/metadata-args/TransactionEntityMetadataArgs.js +1 -1
  933. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  934. package/browser/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
  935. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +1 -1
  936. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  937. package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
  938. package/browser/metadata-args/TreeMetadataArgs.js +1 -1
  939. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  940. package/browser/metadata-args/UniqueMetadataArgs.d.ts +7 -2
  941. package/browser/metadata-args/UniqueMetadataArgs.js +1 -1
  942. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  943. package/browser/metadata-args/types/ColumnMode.d.ts +1 -1
  944. package/browser/metadata-args/types/ColumnMode.js +1 -1
  945. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  946. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
  947. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +47 -30
  948. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  949. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
  950. package/browser/metadata-builder/EntityMetadataBuilder.js +396 -267
  951. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  952. package/browser/metadata-builder/EntityMetadataValidator.js +78 -68
  953. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  954. package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
  955. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +144 -92
  956. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  957. package/browser/metadata-builder/MetadataUtils.js +12 -16
  958. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  959. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
  960. package/browser/metadata-builder/RelationJoinColumnBuilder.js +69 -50
  961. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  962. package/browser/migration/Migration.js +3 -5
  963. package/browser/migration/Migration.js.map +1 -1
  964. package/browser/migration/MigrationExecutor.d.ts +6 -4
  965. package/browser/migration/MigrationExecutor.js +379 -535
  966. package/browser/migration/MigrationExecutor.js.map +1 -1
  967. package/browser/migration/MigrationInterface.js +1 -1
  968. package/browser/migration/MigrationInterface.js.map +1 -1
  969. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
  970. package/browser/naming-strategy/DefaultNamingStrategy.js +90 -80
  971. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  972. package/browser/naming-strategy/NamingStrategyInterface.d.ts +17 -1
  973. package/browser/naming-strategy/NamingStrategyInterface.js +1 -1
  974. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  975. package/browser/persistence/EntityPersistExecutor.d.ts +4 -4
  976. package/browser/persistence/EntityPersistExecutor.js +126 -151
  977. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  978. package/browser/persistence/Subject.d.ts +27 -3
  979. package/browser/persistence/Subject.js +103 -67
  980. package/browser/persistence/Subject.js.map +1 -1
  981. package/browser/persistence/SubjectChangeMap.js +1 -1
  982. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  983. package/browser/persistence/SubjectChangedColumnsComputer.js +74 -52
  984. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  985. package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
  986. package/browser/persistence/SubjectDatabaseEntityLoader.js +97 -114
  987. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  988. package/browser/persistence/SubjectExecutor.d.ts +19 -2
  989. package/browser/persistence/SubjectExecutor.js +584 -419
  990. package/browser/persistence/SubjectExecutor.js.map +1 -1
  991. package/browser/persistence/SubjectTopoligicalSorter.js +63 -59
  992. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  993. package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  994. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +53 -28
  995. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  996. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +64 -59
  997. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  998. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +60 -43
  999. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1000. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +32 -29
  1001. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1002. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
  1003. package/browser/persistence/tree/ClosureSubjectExecutor.js +213 -89
  1004. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1005. package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
  1006. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +89 -48
  1007. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1008. package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
  1009. package/browser/persistence/tree/NestedSetSubjectExecutor.js +243 -62
  1010. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1011. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
  1012. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +52 -0
  1013. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
  1014. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
  1015. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +20 -0
  1016. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
  1017. package/browser/platform/BrowserDisabledDriversDummy.d.ts +38 -2
  1018. package/browser/platform/BrowserDisabledDriversDummy.js +54 -50
  1019. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  1020. package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
  1021. package/browser/platform/BrowserFileLoggerDummy.js +47 -0
  1022. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
  1023. package/browser/platform/BrowserPlatformTools.d.ts +74 -0
  1024. package/browser/platform/BrowserPlatformTools.js +141 -0
  1025. package/browser/platform/BrowserPlatformTools.js.map +1 -0
  1026. package/browser/platform/PlatformTools.d.ts +16 -21
  1027. package/browser/platform/PlatformTools.js +174 -117
  1028. package/browser/platform/PlatformTools.js.map +1 -1
  1029. package/browser/query-builder/Alias.d.ts +4 -3
  1030. package/browser/query-builder/Alias.js +18 -31
  1031. package/browser/query-builder/Alias.js.map +1 -1
  1032. package/browser/query-builder/Brackets.d.ts +4 -3
  1033. package/browser/query-builder/Brackets.js +4 -5
  1034. package/browser/query-builder/Brackets.js.map +1 -1
  1035. package/browser/query-builder/DeleteQueryBuilder.d.ts +13 -11
  1036. package/browser/query-builder/DeleteQueryBuilder.js +109 -166
  1037. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  1038. package/browser/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  1039. package/browser/query-builder/InsertOrUpdateOptions.js +3 -0
  1040. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -0
  1041. package/browser/query-builder/InsertQueryBuilder.d.ts +15 -5
  1042. package/browser/query-builder/InsertQueryBuilder.js +453 -293
  1043. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  1044. package/browser/query-builder/JoinAttribute.d.ts +12 -12
  1045. package/browser/query-builder/JoinAttribute.js +140 -189
  1046. package/browser/query-builder/JoinAttribute.js.map +1 -1
  1047. package/browser/query-builder/JoinOptions.js +1 -1
  1048. package/browser/query-builder/JoinOptions.js.map +1 -1
  1049. package/browser/query-builder/NotBrackets.d.ts +8 -0
  1050. package/browser/query-builder/NotBrackets.js +13 -0
  1051. package/browser/query-builder/NotBrackets.js.map +1 -0
  1052. package/browser/query-builder/QueryBuilder.d.ts +55 -32
  1053. package/browser/query-builder/QueryBuilder.js +698 -375
  1054. package/browser/query-builder/QueryBuilder.js.map +1 -1
  1055. package/browser/query-builder/QueryBuilderUtils.d.ts +0 -1
  1056. package/browser/query-builder/QueryBuilderUtils.js +5 -16
  1057. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  1058. package/browser/query-builder/QueryExpressionMap.d.ts +51 -29
  1059. package/browser/query-builder/QueryExpressionMap.js +92 -85
  1060. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  1061. package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
  1062. package/browser/query-builder/QueryPartialEntity.js +1 -1
  1063. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  1064. package/browser/query-builder/RelationIdLoader.d.ts +10 -12
  1065. package/browser/query-builder/RelationIdLoader.js +306 -185
  1066. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  1067. package/browser/query-builder/RelationLoader.d.ts +6 -3
  1068. package/browser/query-builder/RelationLoader.js +181 -146
  1069. package/browser/query-builder/RelationLoader.js.map +1 -1
  1070. package/browser/query-builder/RelationQueryBuilder.d.ts +2 -1
  1071. package/browser/query-builder/RelationQueryBuilder.js +81 -112
  1072. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  1073. package/browser/query-builder/RelationRemover.js +119 -84
  1074. package/browser/query-builder/RelationRemover.js.map +1 -1
  1075. package/browser/query-builder/RelationUpdater.js +128 -128
  1076. package/browser/query-builder/RelationUpdater.js.map +1 -1
  1077. package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
  1078. package/browser/query-builder/ReturningResultsEntityUpdator.js +135 -155
  1079. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1080. package/browser/query-builder/SelectQuery.js +1 -1
  1081. package/browser/query-builder/SelectQuery.js.map +1 -1
  1082. package/browser/query-builder/SelectQueryBuilder.d.ts +65 -50
  1083. package/browser/query-builder/SelectQueryBuilder.js +1642 -1291
  1084. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  1085. package/browser/query-builder/SelectQueryBuilderOption.js +1 -1
  1086. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  1087. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
  1088. package/browser/query-builder/SoftDeleteQueryBuilder.js +363 -0
  1089. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
  1090. package/browser/query-builder/UpdateQueryBuilder.d.ts +11 -8
  1091. package/browser/query-builder/UpdateQueryBuilder.js +276 -299
  1092. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  1093. package/browser/query-builder/WhereClause.d.ts +16 -0
  1094. package/browser/query-builder/WhereClause.js +3 -0
  1095. package/browser/query-builder/WhereClause.js.map +1 -0
  1096. package/browser/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
  1097. package/browser/query-builder/WhereExpressionBuilder.js +3 -0
  1098. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -0
  1099. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  1100. package/browser/query-builder/relation-count/RelationCountAttribute.js +66 -96
  1101. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1102. package/browser/query-builder/relation-count/RelationCountLoadResult.js +1 -1
  1103. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  1104. package/browser/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
  1105. package/browser/query-builder/relation-count/RelationCountLoader.js +150 -101
  1106. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1107. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +15 -18
  1108. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1109. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  1110. package/browser/query-builder/relation-id/RelationIdAttribute.js +67 -101
  1111. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1112. package/browser/query-builder/relation-id/RelationIdLoadResult.js +1 -1
  1113. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  1114. package/browser/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
  1115. package/browser/query-builder/relation-id/RelationIdLoader.js +255 -148
  1116. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1117. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +15 -18
  1118. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1119. package/browser/query-builder/result/DeleteResult.d.ts +3 -1
  1120. package/browser/query-builder/result/DeleteResult.js +7 -5
  1121. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  1122. package/browser/query-builder/result/InsertResult.d.ts +2 -0
  1123. package/browser/query-builder/result/InsertResult.js +8 -5
  1124. package/browser/query-builder/result/InsertResult.js.map +1 -1
  1125. package/browser/query-builder/result/UpdateResult.d.ts +2 -0
  1126. package/browser/query-builder/result/UpdateResult.js +9 -5
  1127. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  1128. package/browser/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
  1129. package/browser/query-builder/transformer/DocumentToEntityTransformer.js +48 -35
  1130. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1131. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +74 -101
  1132. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1133. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +25 -27
  1134. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1135. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
  1136. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +228 -159
  1137. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1138. package/browser/query-runner/BaseQueryRunner.d.ts +49 -12
  1139. package/browser/query-runner/BaseQueryRunner.js +240 -247
  1140. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  1141. package/browser/query-runner/QueryLock.d.ts +4 -0
  1142. package/browser/query-runner/QueryLock.js +24 -0
  1143. package/browser/query-runner/QueryLock.js.map +1 -0
  1144. package/browser/query-runner/QueryResult.d.ts +17 -0
  1145. package/browser/query-runner/QueryResult.js +13 -0
  1146. package/browser/query-runner/QueryResult.js.map +1 -0
  1147. package/browser/query-runner/QueryRunner.d.ts +37 -8
  1148. package/browser/query-runner/QueryRunner.js +1 -1
  1149. package/browser/query-runner/QueryRunner.js.map +1 -1
  1150. package/browser/repository/AbstractRepository.d.ts +5 -5
  1151. package/browser/repository/AbstractRepository.js +47 -54
  1152. package/browser/repository/AbstractRepository.js.map +1 -1
  1153. package/browser/repository/BaseEntity.d.ts +69 -81
  1154. package/browser/repository/BaseEntity.js +169 -131
  1155. package/browser/repository/BaseEntity.js.map +1 -1
  1156. package/browser/repository/EntityId.js +1 -1
  1157. package/browser/repository/EntityId.js.map +1 -1
  1158. package/browser/repository/FindTreesOptions.d.ts +9 -0
  1159. package/browser/repository/FindTreesOptions.js +3 -0
  1160. package/browser/repository/FindTreesOptions.js.map +1 -0
  1161. package/browser/repository/MongoRepository.d.ts +55 -9
  1162. package/browser/repository/MongoRepository.js +330 -1
  1163. package/browser/repository/MongoRepository.js.map +1 -1
  1164. package/browser/repository/RemoveOptions.js +1 -1
  1165. package/browser/repository/RemoveOptions.js.map +1 -1
  1166. package/browser/repository/Repository.d.ts +130 -97
  1167. package/browser/repository/Repository.js +288 -1
  1168. package/browser/repository/Repository.js.map +1 -1
  1169. package/browser/repository/SaveOptions.d.ts +1 -1
  1170. package/browser/repository/SaveOptions.js +1 -1
  1171. package/browser/repository/SaveOptions.js.map +1 -1
  1172. package/browser/repository/TreeRepository.d.ts +14 -9
  1173. package/browser/repository/TreeRepository.js +263 -1
  1174. package/browser/repository/TreeRepository.js.map +1 -1
  1175. package/browser/repository/UpsertOptions.d.ts +10 -0
  1176. package/browser/repository/UpsertOptions.js +3 -0
  1177. package/browser/repository/UpsertOptions.js.map +1 -0
  1178. package/browser/schema-builder/MongoSchemaBuilder.d.ts +3 -3
  1179. package/browser/schema-builder/MongoSchemaBuilder.js +28 -42
  1180. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1181. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
  1182. package/browser/schema-builder/RdbmsSchemaBuilder.js +693 -1057
  1183. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1184. package/browser/schema-builder/SchemaBuilder.js +1 -1
  1185. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  1186. package/browser/schema-builder/options/TableCheckOptions.js +1 -1
  1187. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  1188. package/browser/schema-builder/options/TableColumnOptions.d.ts +6 -2
  1189. package/browser/schema-builder/options/TableColumnOptions.js +1 -1
  1190. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  1191. package/browser/schema-builder/options/TableExclusionOptions.js +1 -1
  1192. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  1193. package/browser/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
  1194. package/browser/schema-builder/options/TableForeignKeyOptions.js +1 -1
  1195. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1196. package/browser/schema-builder/options/TableIndexOptions.d.ts +6 -1
  1197. package/browser/schema-builder/options/TableIndexOptions.js +1 -1
  1198. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  1199. package/browser/schema-builder/options/TableOptions.d.ts +8 -0
  1200. package/browser/schema-builder/options/TableOptions.js +1 -1
  1201. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  1202. package/browser/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  1203. package/browser/schema-builder/options/TableUniqueOptions.js +1 -1
  1204. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  1205. package/browser/schema-builder/options/ViewOptions.d.ts +10 -2
  1206. package/browser/schema-builder/options/ViewOptions.js +1 -1
  1207. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  1208. package/browser/schema-builder/table/Table.d.ts +13 -3
  1209. package/browser/schema-builder/table/Table.js +109 -97
  1210. package/browser/schema-builder/table/Table.js.map +1 -1
  1211. package/browser/schema-builder/table/TableCheck.d.ts +1 -0
  1212. package/browser/schema-builder/table/TableCheck.js +10 -12
  1213. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  1214. package/browser/schema-builder/table/TableColumn.d.ts +7 -2
  1215. package/browser/schema-builder/table/TableColumn.js +10 -9
  1216. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  1217. package/browser/schema-builder/table/TableExclusion.d.ts +1 -0
  1218. package/browser/schema-builder/table/TableExclusion.js +9 -10
  1219. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  1220. package/browser/schema-builder/table/TableForeignKey.d.ts +11 -1
  1221. package/browser/schema-builder/table/TableForeignKey.js +16 -12
  1222. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  1223. package/browser/schema-builder/table/TableIndex.d.ts +6 -0
  1224. package/browser/schema-builder/table/TableIndex.js +15 -14
  1225. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  1226. package/browser/schema-builder/table/TableUnique.d.ts +6 -0
  1227. package/browser/schema-builder/table/TableUnique.js +13 -12
  1228. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  1229. package/browser/schema-builder/util/TableUtils.js +10 -11
  1230. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  1231. package/browser/schema-builder/util/ViewUtils.d.ts +7 -0
  1232. package/browser/schema-builder/util/ViewUtils.js +23 -0
  1233. package/browser/schema-builder/util/ViewUtils.js.map +1 -0
  1234. package/browser/schema-builder/view/View.d.ts +12 -5
  1235. package/browser/schema-builder/view/View.js +16 -11
  1236. package/browser/schema-builder/view/View.js.map +1 -1
  1237. package/browser/subscriber/Broadcaster.d.ts +87 -2
  1238. package/browser/subscriber/Broadcaster.js +412 -119
  1239. package/browser/subscriber/Broadcaster.js.map +1 -1
  1240. package/browser/subscriber/BroadcasterResult.d.ts +4 -0
  1241. package/browser/subscriber/BroadcasterResult.js +12 -5
  1242. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  1243. package/browser/subscriber/EntitySubscriberInterface.d.ts +45 -0
  1244. package/browser/subscriber/EntitySubscriberInterface.js +1 -1
  1245. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  1246. package/browser/subscriber/event/InsertEvent.d.ts +7 -7
  1247. package/browser/subscriber/event/InsertEvent.js +1 -1
  1248. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  1249. package/browser/subscriber/event/LoadEvent.d.ts +2 -2
  1250. package/browser/subscriber/event/LoadEvent.js +1 -1
  1251. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  1252. package/browser/subscriber/event/RecoverEvent.d.ts +6 -0
  1253. package/browser/subscriber/event/RecoverEvent.js +3 -0
  1254. package/browser/subscriber/event/RecoverEvent.js.map +1 -0
  1255. package/browser/subscriber/event/RemoveEvent.d.ts +7 -7
  1256. package/browser/subscriber/event/RemoveEvent.js +1 -1
  1257. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  1258. package/browser/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  1259. package/browser/subscriber/event/SoftRemoveEvent.js +3 -0
  1260. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -0
  1261. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  1262. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  1263. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  1264. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  1265. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  1266. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  1267. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  1268. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  1269. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  1270. package/browser/subscriber/event/UpdateEvent.d.ts +5 -4
  1271. package/browser/subscriber/event/UpdateEvent.js +1 -1
  1272. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  1273. package/browser/util/ApplyValueTransformers.js +13 -29
  1274. package/browser/util/ApplyValueTransformers.js.map +1 -1
  1275. package/browser/util/DateUtils.d.ts +2 -2
  1276. package/browser/util/DateUtils.js +110 -83
  1277. package/browser/util/DateUtils.js.map +1 -1
  1278. package/browser/util/DepGraph.js +50 -50
  1279. package/browser/util/DepGraph.js.map +1 -1
  1280. package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
  1281. package/browser/util/DirectoryExportedClassesLoader.js +32 -25
  1282. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  1283. package/browser/util/ImportUtils.d.ts +1 -0
  1284. package/browser/util/ImportUtils.js +74 -0
  1285. package/browser/util/ImportUtils.js.map +1 -0
  1286. package/browser/util/InstanceChecker.d.ts +61 -0
  1287. package/browser/util/InstanceChecker.js +103 -0
  1288. package/browser/util/InstanceChecker.js.map +1 -0
  1289. package/browser/util/ObjectUtils.d.ts +17 -6
  1290. package/browser/util/ObjectUtils.js +26 -36
  1291. package/browser/util/ObjectUtils.js.map +1 -1
  1292. package/browser/util/OrmUtils.d.ts +16 -8
  1293. package/browser/util/OrmUtils.js +198 -98
  1294. package/browser/util/OrmUtils.js.map +1 -1
  1295. package/browser/util/PathUtils.d.ts +10 -0
  1296. package/browser/util/PathUtils.js +28 -0
  1297. package/browser/util/PathUtils.js.map +1 -0
  1298. package/browser/util/RandomGenerator.d.ts +0 -4
  1299. package/browser/util/RandomGenerator.js +61 -52
  1300. package/browser/util/RandomGenerator.js.map +1 -1
  1301. package/browser/util/StringUtils.d.ts +13 -3
  1302. package/browser/util/StringUtils.js +42 -19
  1303. package/browser/util/StringUtils.js.map +1 -1
  1304. package/browser/util/TreeRepositoryUtils.d.ts +23 -0
  1305. package/browser/util/TreeRepositoryUtils.js +56 -0
  1306. package/browser/util/TreeRepositoryUtils.js.map +1 -0
  1307. package/browser/util/VersionUtils.js +11 -16
  1308. package/browser/util/VersionUtils.js.map +1 -1
  1309. package/cache/DbQueryResultCache.d.ts +6 -4
  1310. package/cache/DbQueryResultCache.js +182 -187
  1311. package/cache/DbQueryResultCache.js.map +1 -1
  1312. package/cache/QueryResultCache.js.map +1 -1
  1313. package/cache/QueryResultCacheFactory.d.ts +3 -3
  1314. package/cache/QueryResultCacheFactory.js +22 -16
  1315. package/cache/QueryResultCacheFactory.js.map +1 -1
  1316. package/cache/QueryResultCacheOptions.js.map +1 -1
  1317. package/cache/RedisQueryResultCache.d.ts +3 -3
  1318. package/cache/RedisQueryResultCache.js +106 -127
  1319. package/cache/RedisQueryResultCache.js.map +1 -1
  1320. package/cli.js +18 -23
  1321. package/cli.js.map +1 -1
  1322. package/commands/CacheClearCommand.d.ts +1 -3
  1323. package/commands/CacheClearCommand.js +42 -77
  1324. package/commands/CacheClearCommand.js.map +1 -1
  1325. package/commands/CommandUtils.d.ts +7 -1
  1326. package/commands/CommandUtils.js +63 -42
  1327. package/commands/CommandUtils.js.map +1 -1
  1328. package/commands/EntityCreateCommand.d.ts +0 -9
  1329. package/commands/EntityCreateCommand.js +38 -84
  1330. package/commands/EntityCreateCommand.js.map +1 -1
  1331. package/commands/InitCommand.d.ts +12 -9
  1332. package/commands/InitCommand.js +463 -233
  1333. package/commands/InitCommand.js.map +1 -1
  1334. package/commands/MigrationCreateCommand.d.ts +6 -7
  1335. package/commands/MigrationCreateCommand.js +72 -83
  1336. package/commands/MigrationCreateCommand.js.map +1 -1
  1337. package/commands/MigrationGenerateCommand.d.ts +20 -5
  1338. package/commands/MigrationGenerateCommand.js +187 -142
  1339. package/commands/MigrationGenerateCommand.js.map +1 -1
  1340. package/commands/MigrationRevertCommand.d.ts +1 -4
  1341. package/commands/MigrationRevertCommand.js +55 -91
  1342. package/commands/MigrationRevertCommand.js.map +1 -1
  1343. package/commands/MigrationRunCommand.d.ts +1 -4
  1344. package/commands/MigrationRunCommand.js +57 -94
  1345. package/commands/MigrationRunCommand.js.map +1 -1
  1346. package/commands/MigrationShowCommand.d.ts +2 -4
  1347. package/commands/MigrationShowCommand.js +38 -74
  1348. package/commands/MigrationShowCommand.js.map +1 -1
  1349. package/commands/QueryCommand.d.ts +3 -3
  1350. package/commands/QueryCommand.js +58 -86
  1351. package/commands/QueryCommand.js.map +1 -1
  1352. package/commands/SchemaDropCommand.d.ts +2 -4
  1353. package/commands/SchemaDropCommand.js +39 -72
  1354. package/commands/SchemaDropCommand.js.map +1 -1
  1355. package/commands/SchemaLogCommand.d.ts +1 -3
  1356. package/commands/SchemaLogCommand.js +62 -81
  1357. package/commands/SchemaLogCommand.js.map +1 -1
  1358. package/commands/SchemaSyncCommand.d.ts +1 -3
  1359. package/commands/SchemaSyncCommand.js +37 -70
  1360. package/commands/SchemaSyncCommand.js.map +1 -1
  1361. package/commands/SubscriberCreateCommand.d.ts +0 -9
  1362. package/commands/SubscriberCreateCommand.js +38 -78
  1363. package/commands/SubscriberCreateCommand.js.map +1 -1
  1364. package/commands/VersionCommand.js +39 -46
  1365. package/commands/VersionCommand.js.map +1 -1
  1366. package/common/DeepPartial.d.ts +3 -3
  1367. package/common/DeepPartial.js.map +1 -1
  1368. package/common/EntityTarget.d.ts +9 -0
  1369. package/{query-builder/WhereExpression.js → common/EntityTarget.js} +1 -1
  1370. package/common/EntityTarget.js.map +1 -0
  1371. package/common/MixedList.d.ts +8 -0
  1372. package/{find-options/FindOptions.js → common/MixedList.js} +1 -1
  1373. package/common/MixedList.js.map +1 -0
  1374. package/common/NonNever.d.ts +6 -0
  1375. package/{entity-factory/EntityFactoryInterface.js → common/NonNever.js} +1 -1
  1376. package/common/NonNever.js.map +1 -0
  1377. package/common/ObjectLiteral.js.map +1 -1
  1378. package/common/ObjectType.js.map +1 -1
  1379. package/common/RelationType.d.ts +14 -0
  1380. package/{driver/aurora-data-api/AuroraDataApiConnectionOptions.js → common/RelationType.js} +1 -1
  1381. package/common/RelationType.js.map +1 -0
  1382. package/connection/BaseConnectionOptions.d.ts +4 -144
  1383. package/connection/BaseConnectionOptions.js.map +1 -1
  1384. package/connection/Connection.d.ts +4 -219
  1385. package/connection/Connection.js +6 -530
  1386. package/connection/Connection.js.map +1 -1
  1387. package/connection/ConnectionManager.d.ts +11 -5
  1388. package/connection/ConnectionManager.js +29 -27
  1389. package/connection/ConnectionManager.js.map +1 -1
  1390. package/connection/ConnectionMetadataBuilder.d.ts +6 -6
  1391. package/connection/ConnectionMetadataBuilder.js +44 -36
  1392. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  1393. package/connection/ConnectionOptions.d.ts +4 -14
  1394. package/connection/ConnectionOptions.js.map +1 -1
  1395. package/connection/ConnectionOptionsReader.d.ts +8 -8
  1396. package/connection/ConnectionOptionsReader.js +151 -172
  1397. package/connection/ConnectionOptionsReader.js.map +1 -1
  1398. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
  1399. package/connection/options-reader/ConnectionOptionsEnvReader.js +71 -50
  1400. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  1401. package/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
  1402. package/connection/options-reader/ConnectionOptionsXmlReader.js +48 -42
  1403. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  1404. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
  1405. package/connection/options-reader/ConnectionOptionsYmlReader.js +17 -11
  1406. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  1407. package/container.d.ts +12 -0
  1408. package/container.js +20 -11
  1409. package/container.js.map +1 -1
  1410. package/data-source/BaseDataSourceOptions.d.ts +179 -0
  1411. package/data-source/BaseDataSourceOptions.js +4 -0
  1412. package/data-source/BaseDataSourceOptions.js.map +1 -0
  1413. package/data-source/DataSource.d.ts +246 -0
  1414. package/data-source/DataSource.js +452 -0
  1415. package/data-source/DataSource.js.map +1 -0
  1416. package/data-source/DataSourceOptions.d.ts +21 -0
  1417. package/data-source/DataSourceOptions.js +4 -0
  1418. package/data-source/DataSourceOptions.js.map +1 -0
  1419. package/data-source/index.d.ts +2 -0
  1420. package/data-source/index.js +7 -0
  1421. package/data-source/index.js.map +1 -0
  1422. package/decorator/Check.d.ts +2 -2
  1423. package/decorator/Check.js +11 -7
  1424. package/decorator/Check.js.map +1 -1
  1425. package/decorator/EntityRepository.d.ts +3 -1
  1426. package/decorator/EntityRepository.js +5 -2
  1427. package/decorator/EntityRepository.js.map +1 -1
  1428. package/decorator/Exclusion.d.ts +2 -2
  1429. package/decorator/Exclusion.js +11 -7
  1430. package/decorator/Exclusion.js.map +1 -1
  1431. package/decorator/Generated.d.ts +1 -1
  1432. package/decorator/Generated.js +5 -5
  1433. package/decorator/Generated.js.map +1 -1
  1434. package/decorator/Index.d.ts +10 -10
  1435. package/decorator/Index.js +30 -9
  1436. package/decorator/Index.js.map +1 -1
  1437. package/decorator/Unique.d.ts +7 -6
  1438. package/decorator/Unique.js +38 -8
  1439. package/decorator/Unique.js.map +1 -1
  1440. package/decorator/columns/Column.d.ts +13 -13
  1441. package/decorator/columns/Column.js +29 -16
  1442. package/decorator/columns/Column.js.map +1 -1
  1443. package/decorator/columns/CreateDateColumn.d.ts +2 -2
  1444. package/decorator/columns/CreateDateColumn.js +4 -3
  1445. package/decorator/columns/CreateDateColumn.js.map +1 -1
  1446. package/decorator/columns/DeleteDateColumn.d.ts +6 -0
  1447. package/decorator/columns/DeleteDateColumn.js +21 -0
  1448. package/decorator/columns/DeleteDateColumn.js.map +1 -0
  1449. package/decorator/columns/ObjectIdColumn.d.ts +2 -2
  1450. package/decorator/columns/ObjectIdColumn.js +4 -3
  1451. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  1452. package/decorator/columns/PrimaryColumn.d.ts +11 -3
  1453. package/decorator/columns/PrimaryColumn.js +14 -9
  1454. package/decorator/columns/PrimaryColumn.js.map +1 -1
  1455. package/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
  1456. package/decorator/columns/PrimaryGeneratedColumn.js +12 -10
  1457. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  1458. package/decorator/columns/UpdateDateColumn.d.ts +2 -2
  1459. package/decorator/columns/UpdateDateColumn.js +4 -3
  1460. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  1461. package/decorator/columns/VersionColumn.d.ts +2 -2
  1462. package/decorator/columns/VersionColumn.js +4 -3
  1463. package/decorator/columns/VersionColumn.js.map +1 -1
  1464. package/decorator/columns/ViewColumn.d.ts +2 -1
  1465. package/decorator/columns/ViewColumn.js +5 -4
  1466. package/decorator/columns/ViewColumn.js.map +1 -1
  1467. package/decorator/entity/ChildEntity.d.ts +1 -1
  1468. package/decorator/entity/ChildEntity.js +6 -5
  1469. package/decorator/entity/ChildEntity.js.map +1 -1
  1470. package/decorator/entity/Entity.d.ts +3 -3
  1471. package/decorator/entity/Entity.js +9 -5
  1472. package/decorator/entity/Entity.js.map +1 -1
  1473. package/decorator/entity/TableInheritance.d.ts +2 -2
  1474. package/decorator/entity/TableInheritance.js +8 -3
  1475. package/decorator/entity/TableInheritance.js.map +1 -1
  1476. package/decorator/entity-view/ViewEntity.d.ts +2 -2
  1477. package/decorator/entity-view/ViewEntity.js +12 -5
  1478. package/decorator/entity-view/ViewEntity.js.map +1 -1
  1479. package/decorator/listeners/AfterInsert.d.ts +1 -1
  1480. package/decorator/listeners/AfterInsert.js +5 -4
  1481. package/decorator/listeners/AfterInsert.js.map +1 -1
  1482. package/decorator/listeners/AfterLoad.d.ts +1 -1
  1483. package/decorator/listeners/AfterLoad.js +5 -4
  1484. package/decorator/listeners/AfterLoad.js.map +1 -1
  1485. package/decorator/listeners/AfterRecover.d.ts +4 -0
  1486. package/decorator/listeners/AfterRecover.js +20 -0
  1487. package/decorator/listeners/AfterRecover.js.map +1 -0
  1488. package/decorator/listeners/AfterRemove.d.ts +1 -1
  1489. package/decorator/listeners/AfterRemove.js +5 -4
  1490. package/decorator/listeners/AfterRemove.js.map +1 -1
  1491. package/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  1492. package/decorator/listeners/AfterSoftRemove.js +20 -0
  1493. package/decorator/listeners/AfterSoftRemove.js.map +1 -0
  1494. package/decorator/listeners/AfterUpdate.d.ts +1 -1
  1495. package/decorator/listeners/AfterUpdate.js +5 -4
  1496. package/decorator/listeners/AfterUpdate.js.map +1 -1
  1497. package/decorator/listeners/BeforeInsert.d.ts +1 -1
  1498. package/decorator/listeners/BeforeInsert.js +5 -4
  1499. package/decorator/listeners/BeforeInsert.js.map +1 -1
  1500. package/decorator/listeners/BeforeRecover.d.ts +4 -0
  1501. package/decorator/listeners/BeforeRecover.js +20 -0
  1502. package/decorator/listeners/BeforeRecover.js.map +1 -0
  1503. package/decorator/listeners/BeforeRemove.d.ts +1 -1
  1504. package/decorator/listeners/BeforeRemove.js +5 -4
  1505. package/decorator/listeners/BeforeRemove.js.map +1 -1
  1506. package/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  1507. package/decorator/listeners/BeforeSoftRemove.js +20 -0
  1508. package/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  1509. package/decorator/listeners/BeforeUpdate.d.ts +1 -1
  1510. package/decorator/listeners/BeforeUpdate.js +5 -4
  1511. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  1512. package/decorator/listeners/EventSubscriber.d.ts +1 -1
  1513. package/decorator/listeners/EventSubscriber.js +4 -3
  1514. package/decorator/listeners/EventSubscriber.js.map +1 -1
  1515. package/decorator/options/ColumnCommonOptions.d.ts +1 -1
  1516. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  1517. package/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
  1518. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  1519. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  1520. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  1521. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  1522. package/decorator/options/ColumnOptions.d.ts +5 -1
  1523. package/decorator/options/ColumnOptions.js.map +1 -1
  1524. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  1525. package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  1526. package/decorator/options/EntityOptions.js.map +1 -1
  1527. package/decorator/options/IndexOptions.d.ts +5 -0
  1528. package/decorator/options/IndexOptions.js.map +1 -1
  1529. package/decorator/options/JoinColumnOptions.js.map +1 -1
  1530. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  1531. package/decorator/options/JoinTableOptions.js.map +1 -1
  1532. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  1533. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +4 -0
  1534. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  1535. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  1536. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  1537. package/decorator/options/RelationOptions.d.ts +12 -2
  1538. package/decorator/options/RelationOptions.js.map +1 -1
  1539. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  1540. package/decorator/options/TransactionOptions.js.map +1 -1
  1541. package/decorator/options/UniqueOptions.d.ts +10 -0
  1542. package/decorator/options/UniqueOptions.js +4 -0
  1543. package/decorator/options/UniqueOptions.js.map +1 -0
  1544. package/decorator/options/ValueTransformer.js.map +1 -1
  1545. package/decorator/options/ViewColumnOptions.d.ts +15 -0
  1546. package/decorator/options/ViewColumnOptions.js +4 -0
  1547. package/decorator/options/ViewColumnOptions.js.map +1 -0
  1548. package/decorator/options/ViewEntityOptions.d.ts +7 -2
  1549. package/decorator/options/ViewEntityOptions.js.map +1 -1
  1550. package/decorator/relations/JoinColumn.d.ts +4 -4
  1551. package/decorator/relations/JoinColumn.js +8 -5
  1552. package/decorator/relations/JoinColumn.js.map +1 -1
  1553. package/decorator/relations/JoinTable.d.ts +4 -4
  1554. package/decorator/relations/JoinTable.js +15 -5
  1555. package/decorator/relations/JoinTable.js.map +1 -1
  1556. package/decorator/relations/ManyToMany.d.ts +4 -3
  1557. package/decorator/relations/ManyToMany.js +14 -9
  1558. package/decorator/relations/ManyToMany.js.map +1 -1
  1559. package/decorator/relations/ManyToOne.d.ts +10 -9
  1560. package/decorator/relations/ManyToOne.js +19 -14
  1561. package/decorator/relations/ManyToOne.js.map +1 -1
  1562. package/decorator/relations/OneToMany.d.ts +6 -4
  1563. package/decorator/relations/OneToMany.js +15 -10
  1564. package/decorator/relations/OneToMany.js.map +1 -1
  1565. package/decorator/relations/OneToOne.d.ts +4 -3
  1566. package/decorator/relations/OneToOne.js +14 -9
  1567. package/decorator/relations/OneToOne.js.map +1 -1
  1568. package/decorator/relations/RelationCount.d.ts +2 -2
  1569. package/decorator/relations/RelationCount.js +4 -3
  1570. package/decorator/relations/RelationCount.js.map +1 -1
  1571. package/decorator/relations/RelationId.d.ts +2 -2
  1572. package/decorator/relations/RelationId.js +4 -3
  1573. package/decorator/relations/RelationId.js.map +1 -1
  1574. package/decorator/tree/Tree.d.ts +2 -1
  1575. package/decorator/tree/Tree.js +6 -4
  1576. package/decorator/tree/Tree.js.map +1 -1
  1577. package/decorator/tree/TreeChildren.d.ts +2 -2
  1578. package/decorator/tree/TreeChildren.js +13 -7
  1579. package/decorator/tree/TreeChildren.js.map +1 -1
  1580. package/decorator/tree/TreeLevelColumn.d.ts +1 -1
  1581. package/decorator/tree/TreeLevelColumn.js +4 -3
  1582. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  1583. package/decorator/tree/TreeParent.d.ts +4 -1
  1584. package/decorator/tree/TreeParent.js +15 -7
  1585. package/decorator/tree/TreeParent.js.map +1 -1
  1586. package/driver/Driver.d.ts +39 -9
  1587. package/driver/Driver.js.map +1 -1
  1588. package/driver/DriverFactory.d.ts +2 -2
  1589. package/driver/DriverFactory.js +54 -25
  1590. package/driver/DriverFactory.js.map +1 -1
  1591. package/driver/DriverUtils.d.ts +39 -10
  1592. package/driver/DriverUtils.js +180 -54
  1593. package/driver/DriverUtils.js.map +1 -1
  1594. package/driver/Query.d.ts +1 -0
  1595. package/driver/Query.js +5 -4
  1596. package/driver/Query.js.map +1 -1
  1597. package/driver/SqlInMemory.js +4 -4
  1598. package/driver/SqlInMemory.js.map +1 -1
  1599. package/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
  1600. package/driver/aurora-mysql/AuroraMysqlConnection.js +19 -0
  1601. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
  1602. package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
  1603. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +4 -0
  1604. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
  1605. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
  1606. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +4 -0
  1607. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
  1608. package/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
  1609. package/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +330 -217
  1610. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
  1611. package/{browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +28 -18
  1612. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1681 -0
  1613. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
  1614. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
  1615. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +4 -0
  1616. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
  1617. package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
  1618. package/driver/aurora-postgres/AuroraPostgresDriver.js +103 -0
  1619. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
  1620. package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
  1621. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +139 -0
  1622. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
  1623. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
  1624. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
  1625. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  1626. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
  1627. package/driver/better-sqlite3/BetterSqlite3Driver.js +154 -0
  1628. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  1629. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
  1630. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +128 -0
  1631. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  1632. package/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
  1633. package/driver/capacitor/CapacitorConnectionOptions.js +4 -0
  1634. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
  1635. package/driver/capacitor/CapacitorDriver.d.ts +27 -0
  1636. package/driver/capacitor/CapacitorDriver.js +83 -0
  1637. package/driver/capacitor/CapacitorDriver.js.map +1 -0
  1638. package/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
  1639. package/driver/capacitor/CapacitorQueryRunner.js +98 -0
  1640. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
  1641. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  1642. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
  1643. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  1644. package/driver/cockroachdb/CockroachDriver.d.ts +49 -8
  1645. package/driver/cockroachdb/CockroachDriver.js +331 -271
  1646. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  1647. package/driver/cockroachdb/CockroachQueryRunner.d.ts +21 -18
  1648. package/driver/cockroachdb/CockroachQueryRunner.js +1592 -2040
  1649. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  1650. package/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
  1651. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  1652. package/driver/cordova/CordovaDriver.d.ts +5 -4
  1653. package/driver/cordova/CordovaDriver.js +38 -52
  1654. package/driver/cordova/CordovaDriver.js.map +1 -1
  1655. package/driver/cordova/CordovaQueryRunner.d.ts +27 -1
  1656. package/driver/cordova/CordovaQueryRunner.js +105 -56
  1657. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  1658. package/driver/expo/ExpoConnectionOptions.d.ts +6 -2
  1659. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  1660. package/driver/expo/ExpoDriver.d.ts +4 -7
  1661. package/driver/expo/ExpoDriver.js +36 -55
  1662. package/driver/expo/ExpoDriver.js.map +1 -1
  1663. package/driver/expo/ExpoQueryRunner.d.ts +9 -1
  1664. package/driver/expo/ExpoQueryRunner.js +129 -98
  1665. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  1666. package/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
  1667. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  1668. package/driver/mongodb/MongoDriver.d.ts +36 -12
  1669. package/driver/mongodb/MongoDriver.js +153 -105
  1670. package/driver/mongodb/MongoDriver.js.map +1 -1
  1671. package/driver/mongodb/MongoQueryRunner.d.ts +26 -8
  1672. package/driver/mongodb/MongoQueryRunner.js +332 -748
  1673. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  1674. package/driver/mongodb/typings.d.ts +12 -11
  1675. package/driver/mongodb/typings.js +1 -1
  1676. package/driver/mongodb/typings.js.map +1 -1
  1677. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  1678. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  1679. package/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
  1680. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  1681. package/driver/mysql/MysqlDriver.d.ts +48 -11
  1682. package/driver/mysql/MysqlDriver.js +450 -279
  1683. package/driver/mysql/MysqlDriver.js.map +1 -1
  1684. package/driver/mysql/MysqlQueryRunner.d.ts +24 -15
  1685. package/driver/mysql/MysqlQueryRunner.js +1567 -1764
  1686. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  1687. package/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
  1688. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  1689. package/driver/nativescript/NativescriptDriver.d.ts +5 -4
  1690. package/driver/nativescript/NativescriptDriver.js +41 -46
  1691. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  1692. package/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
  1693. package/driver/nativescript/NativescriptQueryRunner.js +59 -42
  1694. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  1695. package/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
  1696. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  1697. package/driver/oracle/OracleConnectionOptions.d.ts +11 -2
  1698. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  1699. package/driver/oracle/OracleDriver.d.ts +31 -7
  1700. package/driver/oracle/OracleDriver.js +338 -242
  1701. package/driver/oracle/OracleDriver.js.map +1 -1
  1702. package/driver/oracle/OracleQueryRunner.d.ts +22 -9
  1703. package/driver/oracle/OracleQueryRunner.js +1361 -1683
  1704. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  1705. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  1706. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  1707. package/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
  1708. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  1709. package/driver/postgres/PostgresDriver.d.ts +81 -19
  1710. package/driver/postgres/PostgresDriver.js +624 -443
  1711. package/driver/postgres/PostgresDriver.js.map +1 -1
  1712. package/driver/postgres/PostgresQueryRunner.d.ts +47 -26
  1713. package/driver/postgres/PostgresQueryRunner.js +2144 -2300
  1714. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  1715. package/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
  1716. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  1717. package/driver/react-native/ReactNativeDriver.d.ts +4 -3
  1718. package/driver/react-native/ReactNativeDriver.js +36 -45
  1719. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  1720. package/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
  1721. package/driver/react-native/ReactNativeQueryRunner.js +67 -56
  1722. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  1723. package/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
  1724. package/driver/sap/SapConnectionCredentialsOptions.js +4 -0
  1725. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
  1726. package/driver/sap/SapConnectionOptions.d.ts +59 -0
  1727. package/driver/sap/SapConnectionOptions.js +4 -0
  1728. package/driver/sap/SapConnectionOptions.js.map +1 -0
  1729. package/driver/sap/SapDriver.d.ts +214 -0
  1730. package/driver/sap/SapDriver.js +645 -0
  1731. package/driver/sap/SapDriver.js.map +1 -0
  1732. package/driver/sap/SapQueryRunner.d.ts +342 -0
  1733. package/driver/sap/SapQueryRunner.js +1991 -0
  1734. package/driver/sap/SapQueryRunner.js.map +1 -0
  1735. package/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
  1736. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  1737. package/driver/sqlite/SqliteDriver.d.ts +18 -4
  1738. package/driver/sqlite/SqliteDriver.js +111 -87
  1739. package/driver/sqlite/SqliteDriver.js.map +1 -1
  1740. package/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
  1741. package/driver/sqlite/SqliteQueryRunner.js +88 -71
  1742. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  1743. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
  1744. package/driver/sqlite-abstract/AbstractSqliteDriver.js +259 -142
  1745. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  1746. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +24 -5
  1747. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1034 -1451
  1748. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  1749. package/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
  1750. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  1751. package/driver/sqljs/SqljsDriver.d.ts +4 -3
  1752. package/driver/sqljs/SqljsDriver.js +160 -232
  1753. package/driver/sqljs/SqljsDriver.js.map +1 -1
  1754. package/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
  1755. package/driver/sqljs/SqljsQueryRunner.js +89 -64
  1756. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  1757. package/driver/sqlserver/MssqlParameter.d.ts +1 -0
  1758. package/driver/sqlserver/MssqlParameter.js +5 -8
  1759. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  1760. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  1761. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  1762. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
  1763. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  1764. package/driver/sqlserver/SqlServerDriver.d.ts +43 -9
  1765. package/driver/sqlserver/SqlServerDriver.js +366 -262
  1766. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  1767. package/driver/sqlserver/SqlServerQueryRunner.d.ts +18 -28
  1768. package/driver/sqlserver/SqlServerQueryRunner.js +1825 -2322
  1769. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  1770. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  1771. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +4 -0
  1772. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  1773. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  1774. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +4 -0
  1775. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  1776. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  1777. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +4 -0
  1778. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  1779. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  1780. package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js → sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js} +1 -1
  1781. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  1782. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  1783. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +4 -0
  1784. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  1785. package/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  1786. package/driver/sqlserver/authentication/DefaultAuthentication.js +4 -0
  1787. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  1788. package/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  1789. package/driver/sqlserver/authentication/NtlmAuthentication.js +4 -0
  1790. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  1791. package/driver/types/ColumnTypes.d.ts +5 -5
  1792. package/driver/types/ColumnTypes.js.map +1 -1
  1793. package/driver/types/DataTypeDefaults.js.map +1 -1
  1794. package/driver/types/DatabaseType.d.ts +1 -1
  1795. package/driver/types/DatabaseType.js.map +1 -1
  1796. package/driver/types/IsolationLevel.js.map +1 -1
  1797. package/driver/types/MappedColumnTypes.d.ts +12 -0
  1798. package/driver/types/MappedColumnTypes.js.map +1 -1
  1799. package/driver/types/MetadataTableType.d.ts +5 -0
  1800. package/driver/types/MetadataTableType.js +11 -0
  1801. package/driver/types/MetadataTableType.js.map +1 -0
  1802. package/driver/types/ReplicationMode.d.ts +1 -0
  1803. package/driver/types/ReplicationMode.js +4 -0
  1804. package/driver/types/ReplicationMode.js.map +1 -0
  1805. package/driver/types/UpsertType.d.ts +1 -0
  1806. package/driver/types/UpsertType.js +4 -0
  1807. package/driver/types/UpsertType.js.map +1 -0
  1808. package/entity-manager/EntityManager.d.ts +143 -286
  1809. package/entity-manager/EntityManager.js +541 -447
  1810. package/entity-manager/EntityManager.js.map +1 -1
  1811. package/entity-manager/EntityManagerFactory.d.ts +2 -2
  1812. package/entity-manager/EntityManagerFactory.js +10 -14
  1813. package/entity-manager/EntityManagerFactory.js.map +1 -1
  1814. package/entity-manager/MongoEntityManager.d.ts +101 -64
  1815. package/entity-manager/MongoEntityManager.js +507 -473
  1816. package/entity-manager/MongoEntityManager.js.map +1 -1
  1817. package/entity-manager/SqljsEntityManager.d.ts +3 -2
  1818. package/entity-manager/SqljsEntityManager.js +16 -36
  1819. package/entity-manager/SqljsEntityManager.js.map +1 -1
  1820. package/entity-schema/EntitySchema.d.ts +1 -0
  1821. package/entity-schema/EntitySchema.js +5 -4
  1822. package/entity-schema/EntitySchema.js.map +1 -1
  1823. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  1824. package/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
  1825. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  1826. package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  1827. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +8 -0
  1828. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  1829. package/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  1830. package/entity-schema/EntitySchemaEmbeddedError.js +18 -0
  1831. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  1832. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  1833. package/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
  1834. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  1835. package/entity-schema/EntitySchemaOptions.d.ts +22 -10
  1836. package/entity-schema/EntitySchemaOptions.js +3 -5
  1837. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  1838. package/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
  1839. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  1840. package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  1841. package/entity-schema/EntitySchemaTransformer.js +230 -183
  1842. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  1843. package/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
  1844. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  1845. package/error/AlreadyHasActiveConnectionError.d.ts +2 -2
  1846. package/error/AlreadyHasActiveConnectionError.js +7 -12
  1847. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  1848. package/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
  1849. package/error/CannotAttachTreeChildrenEntityError.js +8 -12
  1850. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  1851. package/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
  1852. package/error/CannotConnectAlreadyConnectedError.js +6 -11
  1853. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  1854. package/error/CannotCreateEntityIdMapError.d.ts +2 -2
  1855. package/error/CannotCreateEntityIdMapError.js +8 -12
  1856. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  1857. package/error/CannotDetermineEntityError.d.ts +2 -2
  1858. package/error/CannotDetermineEntityError.js +7 -11
  1859. package/error/CannotDetermineEntityError.js.map +1 -1
  1860. package/error/CannotExecuteNotConnectedError.d.ts +2 -2
  1861. package/error/CannotExecuteNotConnectedError.js +6 -11
  1862. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  1863. package/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
  1864. package/error/CannotGetEntityManagerNotConnectedError.js +6 -11
  1865. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  1866. package/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
  1867. package/error/CannotReflectMethodParameterTypeError.js +8 -13
  1868. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  1869. package/error/CircularRelationsError.d.ts +2 -2
  1870. package/error/CircularRelationsError.js +7 -11
  1871. package/error/CircularRelationsError.js.map +1 -1
  1872. package/error/ColumnTypeUndefinedError.d.ts +2 -2
  1873. package/error/ColumnTypeUndefinedError.js +9 -14
  1874. package/error/ColumnTypeUndefinedError.js.map +1 -1
  1875. package/error/ConnectionIsNotSetError.d.ts +2 -2
  1876. package/error/ConnectionIsNotSetError.js +6 -11
  1877. package/error/ConnectionIsNotSetError.js.map +1 -1
  1878. package/error/ConnectionNotFoundError.d.ts +2 -2
  1879. package/error/ConnectionNotFoundError.js +6 -11
  1880. package/error/ConnectionNotFoundError.js.map +1 -1
  1881. package/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
  1882. package/error/CustomRepositoryCannotInheritRepositoryError.js +9 -12
  1883. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  1884. package/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
  1885. package/error/CustomRepositoryDoesNotHaveEntityError.js +9 -12
  1886. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  1887. package/error/CustomRepositoryNotFoundError.d.ts +2 -2
  1888. package/error/CustomRepositoryNotFoundError.js +9 -12
  1889. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  1890. package/error/DataTypeNotSupportedError.d.ts +2 -2
  1891. package/error/DataTypeNotSupportedError.js +8 -12
  1892. package/error/DataTypeNotSupportedError.js.map +1 -1
  1893. package/error/DriverOptionNotSetError.d.ts +2 -2
  1894. package/error/DriverOptionNotSetError.js +7 -11
  1895. package/error/DriverOptionNotSetError.js.map +1 -1
  1896. package/error/DriverPackageNotInstalledError.d.ts +2 -2
  1897. package/error/DriverPackageNotInstalledError.js +7 -11
  1898. package/error/DriverPackageNotInstalledError.js.map +1 -1
  1899. package/error/EntityMetadataNotFoundError.d.ts +5 -6
  1900. package/error/EntityMetadataNotFoundError.js +18 -19
  1901. package/error/EntityMetadataNotFoundError.js.map +1 -1
  1902. package/error/EntityNotFoundError.d.ts +5 -5
  1903. package/error/EntityNotFoundError.js +22 -21
  1904. package/error/EntityNotFoundError.js.map +1 -1
  1905. package/error/EntityPropertyNotFoundError.d.ts +8 -0
  1906. package/error/EntityPropertyNotFoundError.js +17 -0
  1907. package/error/EntityPropertyNotFoundError.js.map +1 -0
  1908. package/error/FindRelationsNotFoundError.d.ts +7 -0
  1909. package/error/FindRelationsNotFoundError.js +23 -0
  1910. package/error/FindRelationsNotFoundError.js.map +1 -0
  1911. package/error/InitializedRelationError.d.ts +2 -1
  1912. package/error/InitializedRelationError.js +8 -12
  1913. package/error/InitializedRelationError.js.map +1 -1
  1914. package/error/InsertValuesMissingError.d.ts +2 -2
  1915. package/error/InsertValuesMissingError.js +7 -11
  1916. package/error/InsertValuesMissingError.js.map +1 -1
  1917. package/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
  1918. package/error/LimitOnUpdateNotSupportedError.js +7 -12
  1919. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  1920. package/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
  1921. package/error/LockNotSupportedOnGivenDriverError.js +6 -11
  1922. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  1923. package/error/MetadataAlreadyExistsError.d.ts +2 -4
  1924. package/error/MetadataAlreadyExistsError.js +12 -15
  1925. package/error/MetadataAlreadyExistsError.js.map +1 -1
  1926. package/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
  1927. package/error/MetadataWithSuchNameAlreadyExistsError.js +10 -14
  1928. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  1929. package/error/MissingDeleteDateColumnError.d.ts +5 -0
  1930. package/error/MissingDeleteDateColumnError.js +12 -0
  1931. package/error/MissingDeleteDateColumnError.js.map +1 -0
  1932. package/error/MissingDriverError.d.ts +3 -3
  1933. package/error/MissingDriverError.js +7 -11
  1934. package/error/MissingDriverError.js.map +1 -1
  1935. package/error/MissingJoinColumnError.d.ts +2 -4
  1936. package/error/MissingJoinColumnError.js +13 -17
  1937. package/error/MissingJoinColumnError.js.map +1 -1
  1938. package/error/MissingJoinTableError.d.ts +2 -4
  1939. package/error/MissingJoinTableError.js +13 -17
  1940. package/error/MissingJoinTableError.js.map +1 -1
  1941. package/error/MissingPrimaryColumnError.d.ts +2 -4
  1942. package/error/MissingPrimaryColumnError.js +7 -14
  1943. package/error/MissingPrimaryColumnError.js.map +1 -1
  1944. package/error/MustBeEntityError.d.ts +2 -2
  1945. package/error/MustBeEntityError.js +6 -11
  1946. package/error/MustBeEntityError.js.map +1 -1
  1947. package/error/NamingStrategyNotFoundError.d.ts +2 -2
  1948. package/error/NamingStrategyNotFoundError.js +12 -13
  1949. package/error/NamingStrategyNotFoundError.js.map +1 -1
  1950. package/error/NestedSetMultipleRootError.d.ts +4 -0
  1951. package/error/NestedSetMultipleRootError.js +12 -0
  1952. package/error/NestedSetMultipleRootError.js.map +1 -0
  1953. package/error/NoConnectionForRepositoryError.d.ts +2 -2
  1954. package/error/NoConnectionForRepositoryError.js +7 -12
  1955. package/error/NoConnectionForRepositoryError.js.map +1 -1
  1956. package/error/NoConnectionOptionError.d.ts +2 -1
  1957. package/error/NoConnectionOptionError.js +7 -10
  1958. package/error/NoConnectionOptionError.js.map +1 -1
  1959. package/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
  1960. package/error/NoNeedToReleaseEntityManagerError.js +8 -13
  1961. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  1962. package/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
  1963. package/error/NoVersionOrUpdateDateColumnError.js +6 -11
  1964. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  1965. package/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
  1966. package/error/OffsetWithoutLimitNotSupportedError.js +9 -12
  1967. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  1968. package/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
  1969. package/error/OptimisticLockCanNotBeUsedError.js +6 -11
  1970. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  1971. package/error/OptimisticLockVersionMismatchError.d.ts +2 -2
  1972. package/error/OptimisticLockVersionMismatchError.js +6 -11
  1973. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  1974. package/error/PersistedEntityNotFoundError.d.ts +2 -2
  1975. package/error/PersistedEntityNotFoundError.js +6 -11
  1976. package/error/PersistedEntityNotFoundError.js.map +1 -1
  1977. package/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
  1978. package/error/PessimisticLockTransactionRequiredError.js +6 -11
  1979. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  1980. package/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
  1981. package/error/PrimaryColumnCannotBeNullableError.js +7 -12
  1982. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  1983. package/error/QueryFailedError.d.ts +6 -2
  1984. package/error/QueryFailedError.js +20 -14
  1985. package/error/QueryFailedError.js.map +1 -1
  1986. package/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
  1987. package/error/QueryRunnerAlreadyReleasedError.js +6 -13
  1988. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  1989. package/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
  1990. package/error/QueryRunnerProviderAlreadyReleasedError.js +7 -11
  1991. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  1992. package/error/RepositoryNotFoundError.d.ts +4 -4
  1993. package/error/RepositoryNotFoundError.js +17 -15
  1994. package/error/RepositoryNotFoundError.js.map +1 -1
  1995. package/error/RepositoryNotTreeError.d.ts +4 -4
  1996. package/error/RepositoryNotTreeError.js +19 -18
  1997. package/error/RepositoryNotTreeError.js.map +1 -1
  1998. package/error/ReturningStatementNotSupportedError.d.ts +2 -2
  1999. package/error/ReturningStatementNotSupportedError.js +6 -11
  2000. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  2001. package/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
  2002. package/error/SubjectRemovedAndUpdatedError.js +7 -12
  2003. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  2004. package/error/SubjectWithoutIdentifierError.d.ts +2 -2
  2005. package/error/SubjectWithoutIdentifierError.js +6 -12
  2006. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  2007. package/error/TransactionAlreadyStartedError.d.ts +2 -2
  2008. package/error/TransactionAlreadyStartedError.js +6 -11
  2009. package/error/TransactionAlreadyStartedError.js.map +1 -1
  2010. package/error/TransactionNotStartedError.d.ts +2 -2
  2011. package/error/TransactionNotStartedError.js +6 -11
  2012. package/error/TransactionNotStartedError.js.map +1 -1
  2013. package/error/TreeRepositoryNotSupportedError.d.ts +2 -2
  2014. package/error/TreeRepositoryNotSupportedError.js +6 -11
  2015. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  2016. package/error/TypeORMError.d.ts +4 -0
  2017. package/error/TypeORMError.js +23 -0
  2018. package/error/TypeORMError.js.map +1 -0
  2019. package/error/UpdateValuesMissingError.d.ts +2 -5
  2020. package/error/UpdateValuesMissingError.js +6 -14
  2021. package/error/UpdateValuesMissingError.js.map +1 -1
  2022. package/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
  2023. package/error/UsingJoinColumnIsNotAllowedError.js +7 -14
  2024. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  2025. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
  2026. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +8 -15
  2027. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  2028. package/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
  2029. package/error/UsingJoinTableIsNotAllowedError.js +8 -15
  2030. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  2031. package/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
  2032. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +8 -15
  2033. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  2034. package/error/index.d.ts +62 -0
  2035. package/error/index.js +67 -0
  2036. package/error/index.js.map +1 -0
  2037. package/find-options/EqualOperator.d.ts +5 -0
  2038. package/find-options/EqualOperator.js +13 -0
  2039. package/find-options/EqualOperator.js.map +1 -0
  2040. package/find-options/FindManyOptions.d.ts +14 -0
  2041. package/find-options/FindManyOptions.js +4 -0
  2042. package/find-options/FindManyOptions.js.map +1 -0
  2043. package/find-options/FindOneOptions.d.ts +86 -0
  2044. package/find-options/FindOneOptions.js +4 -0
  2045. package/find-options/FindOneOptions.js.map +1 -0
  2046. package/find-options/FindOperator.d.ts +31 -8
  2047. package/find-options/FindOperator.js +65 -96
  2048. package/find-options/FindOperator.js.map +1 -1
  2049. package/find-options/FindOperatorType.d.ts +1 -1
  2050. package/find-options/FindOperatorType.js.map +1 -1
  2051. package/find-options/FindOptionsOrder.d.ts +19 -0
  2052. package/find-options/FindOptionsOrder.js +4 -0
  2053. package/find-options/FindOptionsOrder.js.map +1 -0
  2054. package/find-options/FindOptionsRelations.d.ts +19 -0
  2055. package/find-options/FindOptionsRelations.js +4 -0
  2056. package/find-options/FindOptionsRelations.js.map +1 -0
  2057. package/find-options/FindOptionsSelect.d.ts +19 -0
  2058. package/find-options/FindOptionsSelect.js +4 -0
  2059. package/find-options/FindOptionsSelect.js.map +1 -0
  2060. package/find-options/FindOptionsUtils.d.ts +180 -6
  2061. package/find-options/FindOptionsUtils.js +301 -95
  2062. package/find-options/FindOptionsUtils.js.map +1 -1
  2063. package/find-options/FindOptionsWhere.d.ts +14 -0
  2064. package/find-options/FindOptionsWhere.js +4 -0
  2065. package/find-options/FindOptionsWhere.js.map +1 -0
  2066. package/find-options/FindTreeOptions.d.ts +13 -0
  2067. package/find-options/FindTreeOptions.js +4 -0
  2068. package/find-options/FindTreeOptions.js.map +1 -0
  2069. package/find-options/JoinOptions.d.ts +76 -0
  2070. package/find-options/JoinOptions.js +4 -0
  2071. package/find-options/JoinOptions.js.map +1 -0
  2072. package/find-options/OrderByCondition.js.map +1 -1
  2073. package/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
  2074. package/find-options/mongodb/MongoFindManyOptions.js +4 -0
  2075. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
  2076. package/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
  2077. package/find-options/mongodb/MongoFindOneOptions.js +4 -0
  2078. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
  2079. package/find-options/operator/Any.d.ts +1 -1
  2080. package/find-options/operator/Any.js +2 -1
  2081. package/find-options/operator/Any.js.map +1 -1
  2082. package/find-options/operator/Between.d.ts +1 -1
  2083. package/find-options/operator/Between.js +2 -1
  2084. package/find-options/operator/Between.js.map +1 -1
  2085. package/find-options/operator/Equal.d.ts +7 -2
  2086. package/find-options/operator/Equal.js +8 -3
  2087. package/find-options/operator/Equal.js.map +1 -1
  2088. package/find-options/operator/ILike.d.ts +1 -1
  2089. package/find-options/operator/ILike.js +3 -2
  2090. package/find-options/operator/ILike.js.map +1 -1
  2091. package/find-options/operator/In.d.ts +1 -1
  2092. package/find-options/operator/In.js +2 -1
  2093. package/find-options/operator/In.js.map +1 -1
  2094. package/find-options/operator/IsNull.js +2 -1
  2095. package/find-options/operator/IsNull.js.map +1 -1
  2096. package/find-options/operator/LessThan.js +2 -1
  2097. package/find-options/operator/LessThan.js.map +1 -1
  2098. package/find-options/operator/LessThanOrEqual.js +2 -1
  2099. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  2100. package/find-options/operator/Like.d.ts +1 -1
  2101. package/find-options/operator/Like.js +3 -2
  2102. package/find-options/operator/Like.js.map +1 -1
  2103. package/find-options/operator/MoreThan.js +2 -1
  2104. package/find-options/operator/MoreThan.js.map +1 -1
  2105. package/find-options/operator/MoreThanOrEqual.js +2 -1
  2106. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  2107. package/find-options/operator/Not.d.ts +1 -1
  2108. package/find-options/operator/Not.js +3 -2
  2109. package/find-options/operator/Not.js.map +1 -1
  2110. package/find-options/operator/Raw.d.ts +14 -2
  2111. package/find-options/operator/Raw.js +7 -7
  2112. package/find-options/operator/Raw.js.map +1 -1
  2113. package/globals.d.ts +117 -0
  2114. package/globals.js +183 -0
  2115. package/globals.js.map +1 -0
  2116. package/index.d.ts +45 -113
  2117. package/index.js +86 -229
  2118. package/index.js.map +1 -1
  2119. package/index.mjs +366 -0
  2120. package/logger/AdvancedConsoleLogger.d.ts +2 -1
  2121. package/logger/AdvancedConsoleLogger.js +57 -33
  2122. package/logger/AdvancedConsoleLogger.js.map +1 -1
  2123. package/logger/DebugLogger.d.ts +1 -2
  2124. package/logger/DebugLogger.js +27 -26
  2125. package/logger/DebugLogger.js.map +1 -1
  2126. package/logger/FileLogger.d.ts +3 -1
  2127. package/logger/FileLogger.js +68 -40
  2128. package/logger/FileLogger.js.map +1 -1
  2129. package/logger/Logger.d.ts +1 -1
  2130. package/logger/Logger.js.map +1 -1
  2131. package/logger/LoggerFactory.js +11 -12
  2132. package/logger/LoggerFactory.js.map +1 -1
  2133. package/logger/LoggerOptions.d.ts +9 -0
  2134. package/logger/LoggerOptions.js.map +1 -1
  2135. package/logger/SimpleConsoleLogger.d.ts +2 -1
  2136. package/logger/SimpleConsoleLogger.js +56 -32
  2137. package/logger/SimpleConsoleLogger.js.map +1 -1
  2138. package/metadata/CheckMetadata.js +9 -7
  2139. package/metadata/CheckMetadata.js.map +1 -1
  2140. package/metadata/ColumnMetadata.d.ts +16 -7
  2141. package/metadata/ColumnMetadata.js +243 -127
  2142. package/metadata/ColumnMetadata.js.map +1 -1
  2143. package/metadata/EmbeddedMetadata.d.ts +12 -5
  2144. package/metadata/EmbeddedMetadata.js +78 -50
  2145. package/metadata/EmbeddedMetadata.js.map +1 -1
  2146. package/metadata/EntityListenerMetadata.js +22 -14
  2147. package/metadata/EntityListenerMetadata.js.map +1 -1
  2148. package/metadata/EntityMetadata.d.ts +65 -22
  2149. package/metadata/EntityMetadata.js +255 -163
  2150. package/metadata/EntityMetadata.js.map +1 -1
  2151. package/metadata/ExclusionMetadata.js +9 -7
  2152. package/metadata/ExclusionMetadata.js.map +1 -1
  2153. package/metadata/ForeignKeyMetadata.js +9 -9
  2154. package/metadata/ForeignKeyMetadata.js.map +1 -1
  2155. package/metadata/IndexMetadata.d.ts +7 -2
  2156. package/metadata/IndexMetadata.js +45 -33
  2157. package/metadata/IndexMetadata.js.map +1 -1
  2158. package/metadata/RelationCountMetadata.js +12 -9
  2159. package/metadata/RelationCountMetadata.js.map +1 -1
  2160. package/metadata/RelationIdMetadata.js +22 -18
  2161. package/metadata/RelationIdMetadata.js.map +1 -1
  2162. package/metadata/RelationMetadata.d.ts +28 -5
  2163. package/metadata/RelationMetadata.js +162 -79
  2164. package/metadata/RelationMetadata.js.map +1 -1
  2165. package/metadata/UniqueMetadata.d.ts +7 -2
  2166. package/metadata/UniqueMetadata.js +41 -31
  2167. package/metadata/UniqueMetadata.js.map +1 -1
  2168. package/metadata/types/ClosureTreeOptions.d.ts +10 -0
  2169. package/metadata/types/ClosureTreeOptions.js +4 -0
  2170. package/metadata/types/ClosureTreeOptions.js.map +1 -0
  2171. package/metadata/types/DeferrableType.js.map +1 -1
  2172. package/metadata/types/EventListenerTypes.d.ts +12 -8
  2173. package/metadata/types/EventListenerTypes.js +14 -12
  2174. package/metadata/types/EventListenerTypes.js.map +1 -1
  2175. package/metadata/types/OnDeleteType.js.map +1 -1
  2176. package/metadata/types/OnUpdateType.js.map +1 -1
  2177. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  2178. package/metadata/types/RelationTypeInFunction.d.ts +2 -1
  2179. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  2180. package/metadata/types/RelationTypes.js.map +1 -1
  2181. package/metadata/types/TableTypes.d.ts +1 -1
  2182. package/metadata/types/TableTypes.js.map +1 -1
  2183. package/metadata/types/TreeTypes.js.map +1 -1
  2184. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  2185. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  2186. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  2187. package/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  2188. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  2189. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  2190. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  2191. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  2192. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  2193. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  2194. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  2195. package/metadata-args/IndexMetadataArgs.d.ts +7 -2
  2196. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  2197. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  2198. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  2199. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  2200. package/metadata-args/MetadataArgsStorage.d.ts +4 -0
  2201. package/metadata-args/MetadataArgsStorage.js +147 -95
  2202. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  2203. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  2204. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  2205. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  2206. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  2207. package/metadata-args/TableMetadataArgs.d.ts +9 -5
  2208. package/metadata-args/TableMetadataArgs.js.map +1 -1
  2209. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  2210. package/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
  2211. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  2212. package/metadata-args/TreeMetadataArgs.d.ts +5 -0
  2213. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  2214. package/metadata-args/UniqueMetadataArgs.d.ts +7 -2
  2215. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  2216. package/metadata-args/types/ColumnMode.d.ts +1 -1
  2217. package/metadata-args/types/ColumnMode.js.map +1 -1
  2218. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
  2219. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +52 -33
  2220. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  2221. package/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
  2222. package/metadata-builder/EntityMetadataBuilder.js +412 -281
  2223. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  2224. package/metadata-builder/EntityMetadataValidator.js +85 -73
  2225. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  2226. package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
  2227. package/metadata-builder/JunctionEntityMetadataBuilder.js +149 -95
  2228. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  2229. package/metadata-builder/MetadataUtils.js +13 -15
  2230. package/metadata-builder/MetadataUtils.js.map +1 -1
  2231. package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
  2232. package/metadata-builder/RelationJoinColumnBuilder.js +73 -52
  2233. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  2234. package/migration/Migration.js +4 -4
  2235. package/migration/Migration.js.map +1 -1
  2236. package/migration/MigrationExecutor.d.ts +6 -4
  2237. package/migration/MigrationExecutor.js +383 -537
  2238. package/migration/MigrationExecutor.js.map +1 -1
  2239. package/migration/MigrationInterface.js.map +1 -1
  2240. package/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
  2241. package/naming-strategy/DefaultNamingStrategy.js +96 -84
  2242. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  2243. package/naming-strategy/NamingStrategyInterface.d.ts +17 -1
  2244. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  2245. package/package.json +173 -71
  2246. package/persistence/EntityPersistExecutor.d.ts +4 -4
  2247. package/persistence/EntityPersistExecutor.js +137 -160
  2248. package/persistence/EntityPersistExecutor.js.map +1 -1
  2249. package/persistence/Subject.d.ts +27 -3
  2250. package/persistence/Subject.js +105 -67
  2251. package/persistence/Subject.js.map +1 -1
  2252. package/persistence/SubjectChangeMap.js.map +1 -1
  2253. package/persistence/SubjectChangedColumnsComputer.js +77 -53
  2254. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  2255. package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
  2256. package/persistence/SubjectDatabaseEntityLoader.js +98 -113
  2257. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  2258. package/persistence/SubjectExecutor.d.ts +19 -2
  2259. package/persistence/SubjectExecutor.js +594 -427
  2260. package/persistence/SubjectExecutor.js.map +1 -1
  2261. package/persistence/SubjectTopoligicalSorter.js +64 -58
  2262. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  2263. package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  2264. package/persistence/subject-builder/CascadesSubjectBuilder.js +55 -28
  2265. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  2266. package/persistence/subject-builder/ManyToManySubjectBuilder.js +67 -60
  2267. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  2268. package/persistence/subject-builder/OneToManySubjectBuilder.js +64 -45
  2269. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  2270. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +35 -30
  2271. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  2272. package/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
  2273. package/persistence/tree/ClosureSubjectExecutor.js +215 -89
  2274. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  2275. package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
  2276. package/persistence/tree/MaterializedPathSubjectExecutor.js +90 -47
  2277. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  2278. package/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
  2279. package/persistence/tree/NestedSetSubjectExecutor.js +245 -62
  2280. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  2281. package/platform/PlatformTools.d.ts +8 -1
  2282. package/platform/PlatformTools.js +123 -118
  2283. package/platform/PlatformTools.js.map +1 -1
  2284. package/query-builder/Alias.d.ts +4 -3
  2285. package/query-builder/Alias.js +20 -31
  2286. package/query-builder/Alias.js.map +1 -1
  2287. package/query-builder/Brackets.d.ts +4 -3
  2288. package/query-builder/Brackets.js +5 -4
  2289. package/query-builder/Brackets.js.map +1 -1
  2290. package/query-builder/DeleteQueryBuilder.d.ts +13 -11
  2291. package/query-builder/DeleteQueryBuilder.js +113 -168
  2292. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  2293. package/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  2294. package/query-builder/InsertOrUpdateOptions.js +4 -0
  2295. package/query-builder/InsertOrUpdateOptions.js.map +1 -0
  2296. package/query-builder/InsertQueryBuilder.d.ts +15 -5
  2297. package/query-builder/InsertQueryBuilder.js +460 -298
  2298. package/query-builder/InsertQueryBuilder.js.map +1 -1
  2299. package/query-builder/JoinAttribute.d.ts +12 -12
  2300. package/query-builder/JoinAttribute.js +143 -190
  2301. package/query-builder/JoinAttribute.js.map +1 -1
  2302. package/query-builder/JoinOptions.js.map +1 -1
  2303. package/query-builder/NotBrackets.d.ts +8 -0
  2304. package/query-builder/NotBrackets.js +17 -0
  2305. package/query-builder/NotBrackets.js.map +1 -0
  2306. package/query-builder/QueryBuilder.d.ts +55 -32
  2307. package/query-builder/QueryBuilder.js +703 -378
  2308. package/query-builder/QueryBuilder.js.map +1 -1
  2309. package/query-builder/QueryBuilderUtils.d.ts +0 -1
  2310. package/query-builder/QueryBuilderUtils.js +6 -15
  2311. package/query-builder/QueryBuilderUtils.js.map +1 -1
  2312. package/query-builder/QueryExpressionMap.d.ts +51 -29
  2313. package/query-builder/QueryExpressionMap.js +97 -88
  2314. package/query-builder/QueryExpressionMap.js.map +1 -1
  2315. package/query-builder/QueryPartialEntity.d.ts +1 -1
  2316. package/query-builder/QueryPartialEntity.js.map +1 -1
  2317. package/query-builder/RelationIdLoader.d.ts +10 -12
  2318. package/query-builder/RelationIdLoader.js +307 -184
  2319. package/query-builder/RelationIdLoader.js.map +1 -1
  2320. package/query-builder/RelationLoader.d.ts +6 -3
  2321. package/query-builder/RelationLoader.js +182 -145
  2322. package/query-builder/RelationLoader.js.map +1 -1
  2323. package/query-builder/RelationQueryBuilder.d.ts +2 -1
  2324. package/query-builder/RelationQueryBuilder.js +85 -114
  2325. package/query-builder/RelationQueryBuilder.js.map +1 -1
  2326. package/query-builder/RelationRemover.js +120 -83
  2327. package/query-builder/RelationRemover.js.map +1 -1
  2328. package/query-builder/RelationUpdater.js +129 -127
  2329. package/query-builder/RelationUpdater.js.map +1 -1
  2330. package/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
  2331. package/query-builder/ReturningResultsEntityUpdator.js +136 -154
  2332. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  2333. package/query-builder/SelectQuery.js.map +1 -1
  2334. package/query-builder/SelectQueryBuilder.d.ts +64 -50
  2335. package/query-builder/SelectQueryBuilder.js +1661 -1308
  2336. package/query-builder/SelectQueryBuilder.js.map +1 -1
  2337. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  2338. package/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
  2339. package/query-builder/SoftDeleteQueryBuilder.js +367 -0
  2340. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
  2341. package/query-builder/UpdateQueryBuilder.d.ts +11 -8
  2342. package/query-builder/UpdateQueryBuilder.js +283 -304
  2343. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  2344. package/query-builder/WhereClause.d.ts +16 -0
  2345. package/query-builder/WhereClause.js +4 -0
  2346. package/query-builder/WhereClause.js.map +1 -0
  2347. package/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
  2348. package/query-builder/WhereExpressionBuilder.js +4 -0
  2349. package/query-builder/WhereExpressionBuilder.js.map +1 -0
  2350. package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  2351. package/query-builder/relation-count/RelationCountAttribute.js +69 -97
  2352. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  2353. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  2354. package/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
  2355. package/query-builder/relation-count/RelationCountLoader.js +151 -100
  2356. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  2357. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +17 -18
  2358. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  2359. package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  2360. package/query-builder/relation-id/RelationIdAttribute.js +70 -102
  2361. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  2362. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  2363. package/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
  2364. package/query-builder/relation-id/RelationIdLoader.js +257 -148
  2365. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  2366. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +17 -18
  2367. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  2368. package/query-builder/result/DeleteResult.d.ts +3 -1
  2369. package/query-builder/result/DeleteResult.js +8 -4
  2370. package/query-builder/result/DeleteResult.js.map +1 -1
  2371. package/query-builder/result/InsertResult.d.ts +2 -0
  2372. package/query-builder/result/InsertResult.js +9 -4
  2373. package/query-builder/result/InsertResult.js.map +1 -1
  2374. package/query-builder/result/UpdateResult.d.ts +2 -0
  2375. package/query-builder/result/UpdateResult.js +10 -4
  2376. package/query-builder/result/UpdateResult.js.map +1 -1
  2377. package/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
  2378. package/query-builder/transformer/DocumentToEntityTransformer.js +49 -34
  2379. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  2380. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +75 -100
  2381. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  2382. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +26 -26
  2383. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  2384. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
  2385. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +231 -160
  2386. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  2387. package/query-runner/BaseQueryRunner.d.ts +49 -12
  2388. package/query-runner/BaseQueryRunner.js +243 -248
  2389. package/query-runner/BaseQueryRunner.js.map +1 -1
  2390. package/query-runner/QueryLock.d.ts +4 -0
  2391. package/query-runner/QueryLock.js +28 -0
  2392. package/query-runner/QueryLock.js.map +1 -0
  2393. package/query-runner/QueryResult.d.ts +17 -0
  2394. package/query-runner/QueryResult.js +17 -0
  2395. package/query-runner/QueryResult.js.map +1 -0
  2396. package/query-runner/QueryRunner.d.ts +36 -8
  2397. package/query-runner/QueryRunner.js.map +1 -1
  2398. package/repository/AbstractRepository.d.ts +5 -5
  2399. package/repository/AbstractRepository.js +50 -55
  2400. package/repository/AbstractRepository.js.map +1 -1
  2401. package/repository/BaseEntity.d.ts +69 -81
  2402. package/repository/BaseEntity.js +171 -131
  2403. package/repository/BaseEntity.js.map +1 -1
  2404. package/repository/EntityId.js.map +1 -1
  2405. package/repository/FindTreesOptions.d.ts +9 -0
  2406. package/repository/FindTreesOptions.js +4 -0
  2407. package/repository/FindTreesOptions.js.map +1 -0
  2408. package/repository/MongoRepository.d.ts +55 -9
  2409. package/repository/MongoRepository.js +332 -0
  2410. package/repository/MongoRepository.js.map +1 -1
  2411. package/repository/RemoveOptions.js.map +1 -1
  2412. package/repository/Repository.d.ts +130 -97
  2413. package/repository/Repository.js +290 -0
  2414. package/repository/Repository.js.map +1 -1
  2415. package/repository/SaveOptions.d.ts +1 -1
  2416. package/repository/SaveOptions.js.map +1 -1
  2417. package/repository/TreeRepository.d.ts +14 -9
  2418. package/repository/TreeRepository.js +265 -0
  2419. package/repository/TreeRepository.js.map +1 -1
  2420. package/repository/UpsertOptions.d.ts +10 -0
  2421. package/repository/UpsertOptions.js +4 -0
  2422. package/repository/UpsertOptions.js.map +1 -0
  2423. package/schema-builder/MongoSchemaBuilder.d.ts +3 -3
  2424. package/schema-builder/MongoSchemaBuilder.js +30 -42
  2425. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  2426. package/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
  2427. package/schema-builder/RdbmsSchemaBuilder.js +703 -1065
  2428. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  2429. package/schema-builder/SchemaBuilder.js.map +1 -1
  2430. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  2431. package/schema-builder/options/TableColumnOptions.d.ts +6 -2
  2432. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  2433. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  2434. package/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
  2435. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  2436. package/schema-builder/options/TableIndexOptions.d.ts +6 -1
  2437. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  2438. package/schema-builder/options/TableOptions.d.ts +8 -0
  2439. package/schema-builder/options/TableOptions.js.map +1 -1
  2440. package/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  2441. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  2442. package/schema-builder/options/ViewOptions.d.ts +10 -2
  2443. package/schema-builder/options/ViewOptions.js.map +1 -1
  2444. package/schema-builder/table/Table.d.ts +13 -3
  2445. package/schema-builder/table/Table.js +117 -103
  2446. package/schema-builder/table/Table.js.map +1 -1
  2447. package/schema-builder/table/TableCheck.d.ts +1 -0
  2448. package/schema-builder/table/TableCheck.js +11 -11
  2449. package/schema-builder/table/TableCheck.js.map +1 -1
  2450. package/schema-builder/table/TableColumn.d.ts +7 -2
  2451. package/schema-builder/table/TableColumn.js +11 -8
  2452. package/schema-builder/table/TableColumn.js.map +1 -1
  2453. package/schema-builder/table/TableExclusion.d.ts +1 -0
  2454. package/schema-builder/table/TableExclusion.js +10 -9
  2455. package/schema-builder/table/TableExclusion.js.map +1 -1
  2456. package/schema-builder/table/TableForeignKey.d.ts +11 -1
  2457. package/schema-builder/table/TableForeignKey.js +17 -11
  2458. package/schema-builder/table/TableForeignKey.js.map +1 -1
  2459. package/schema-builder/table/TableIndex.d.ts +6 -0
  2460. package/schema-builder/table/TableIndex.js +16 -13
  2461. package/schema-builder/table/TableIndex.js.map +1 -1
  2462. package/schema-builder/table/TableUnique.d.ts +6 -0
  2463. package/schema-builder/table/TableUnique.js +14 -11
  2464. package/schema-builder/table/TableUnique.js.map +1 -1
  2465. package/schema-builder/util/TableUtils.js +11 -10
  2466. package/schema-builder/util/TableUtils.js.map +1 -1
  2467. package/schema-builder/util/ViewUtils.d.ts +7 -0
  2468. package/schema-builder/util/ViewUtils.js +27 -0
  2469. package/schema-builder/util/ViewUtils.js.map +1 -0
  2470. package/schema-builder/view/View.d.ts +12 -5
  2471. package/schema-builder/view/View.js +17 -10
  2472. package/schema-builder/view/View.js.map +1 -1
  2473. package/subscriber/Broadcaster.d.ts +87 -2
  2474. package/subscriber/Broadcaster.js +413 -118
  2475. package/subscriber/Broadcaster.js.map +1 -1
  2476. package/subscriber/BroadcasterResult.d.ts +4 -0
  2477. package/subscriber/BroadcasterResult.js +13 -4
  2478. package/subscriber/BroadcasterResult.js.map +1 -1
  2479. package/subscriber/EntitySubscriberInterface.d.ts +45 -0
  2480. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  2481. package/subscriber/event/InsertEvent.d.ts +7 -7
  2482. package/subscriber/event/InsertEvent.js.map +1 -1
  2483. package/subscriber/event/LoadEvent.d.ts +2 -2
  2484. package/subscriber/event/LoadEvent.js.map +1 -1
  2485. package/subscriber/event/RecoverEvent.d.ts +6 -0
  2486. package/subscriber/event/RecoverEvent.js +4 -0
  2487. package/subscriber/event/RecoverEvent.js.map +1 -0
  2488. package/subscriber/event/RemoveEvent.d.ts +7 -7
  2489. package/subscriber/event/RemoveEvent.js.map +1 -1
  2490. package/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  2491. package/subscriber/event/SoftRemoveEvent.js +4 -0
  2492. package/subscriber/event/SoftRemoveEvent.js.map +1 -0
  2493. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  2494. package/subscriber/event/TransactionCommitEvent.js +4 -0
  2495. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  2496. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  2497. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  2498. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  2499. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  2500. package/subscriber/event/TransactionStartEvent.js +4 -0
  2501. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  2502. package/subscriber/event/UpdateEvent.d.ts +5 -4
  2503. package/subscriber/event/UpdateEvent.js.map +1 -1
  2504. package/typeorm-class-transformer-shim.js +41 -7
  2505. package/typeorm-model-shim.js +166 -111
  2506. package/util/ApplyValueTransformers.js +14 -28
  2507. package/util/ApplyValueTransformers.js.map +1 -1
  2508. package/util/DateUtils.d.ts +2 -2
  2509. package/util/DateUtils.js +111 -82
  2510. package/util/DateUtils.js.map +1 -1
  2511. package/util/DepGraph.js +51 -49
  2512. package/util/DepGraph.js.map +1 -1
  2513. package/util/DirectoryExportedClassesLoader.d.ts +1 -1
  2514. package/util/DirectoryExportedClassesLoader.js +35 -26
  2515. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  2516. package/util/ImportUtils.d.ts +1 -0
  2517. package/util/ImportUtils.js +79 -0
  2518. package/util/ImportUtils.js.map +1 -0
  2519. package/util/InstanceChecker.d.ts +61 -0
  2520. package/util/InstanceChecker.js +107 -0
  2521. package/util/InstanceChecker.js.map +1 -0
  2522. package/util/ObjectUtils.d.ts +17 -6
  2523. package/util/ObjectUtils.js +27 -35
  2524. package/util/ObjectUtils.js.map +1 -1
  2525. package/util/OrmUtils.d.ts +16 -8
  2526. package/util/OrmUtils.js +199 -97
  2527. package/util/OrmUtils.js.map +1 -1
  2528. package/util/PathUtils.d.ts +10 -0
  2529. package/util/PathUtils.js +34 -0
  2530. package/util/PathUtils.js.map +1 -0
  2531. package/util/RandomGenerator.d.ts +0 -4
  2532. package/util/RandomGenerator.js +62 -51
  2533. package/util/RandomGenerator.js.map +1 -1
  2534. package/util/StringUtils.d.ts +13 -3
  2535. package/util/StringUtils.js +45 -19
  2536. package/util/StringUtils.js.map +1 -1
  2537. package/util/TreeRepositoryUtils.d.ts +23 -0
  2538. package/util/TreeRepositoryUtils.js +60 -0
  2539. package/util/TreeRepositoryUtils.js.map +1 -0
  2540. package/util/VersionUtils.js +12 -15
  2541. package/util/VersionUtils.js.map +1 -1
  2542. package/browser/decorator/transaction/Transaction.d.ts +0 -16
  2543. package/browser/decorator/transaction/Transaction.js +0 -85
  2544. package/browser/decorator/transaction/Transaction.js.map +0 -1
  2545. package/browser/decorator/transaction/TransactionManager.d.ts +0 -4
  2546. package/browser/decorator/transaction/TransactionManager.js +0 -15
  2547. package/browser/decorator/transaction/TransactionManager.js.map +0 -1
  2548. package/browser/decorator/transaction/TransactionRepository.d.ts +0 -6
  2549. package/browser/decorator/transaction/TransactionRepository.js +0 -28
  2550. package/browser/decorator/transaction/TransactionRepository.js.map +0 -1
  2551. package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
  2552. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +0 -21
  2553. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
  2554. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js +0 -3
  2555. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
  2556. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
  2557. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js +0 -3
  2558. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
  2559. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
  2560. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2015
  2561. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
  2562. package/browser/entity-factory/DefaultEntityFactory.d.ts +0 -7
  2563. package/browser/entity-factory/DefaultEntityFactory.js +0 -16
  2564. package/browser/entity-factory/DefaultEntityFactory.js.map +0 -1
  2565. package/browser/entity-factory/EntityFactoryInterface.d.ts +0 -11
  2566. package/browser/entity-factory/EntityFactoryInterface.js +0 -3
  2567. package/browser/entity-factory/EntityFactoryInterface.js.map +0 -1
  2568. package/browser/entity-factory/OldEntityFactory.d.ts +0 -7
  2569. package/browser/entity-factory/OldEntityFactory.js +0 -14
  2570. package/browser/entity-factory/OldEntityFactory.js.map +0 -1
  2571. package/browser/error/EntityColumnNotFound.d.ts +0 -7
  2572. package/browser/error/EntityColumnNotFound.js +0 -18
  2573. package/browser/error/EntityColumnNotFound.js.map +0 -1
  2574. package/browser/error/FindCriteriaNotFoundError.d.ts +0 -7
  2575. package/browser/error/FindCriteriaNotFoundError.js +0 -17
  2576. package/browser/error/FindCriteriaNotFoundError.js.map +0 -1
  2577. package/browser/find-options/FindOptions.d.ts +0 -171
  2578. package/browser/find-options/FindOptions.js +0 -3
  2579. package/browser/find-options/FindOptions.js.map +0 -1
  2580. package/browser/find-options/operator/If.d.ts +0 -8
  2581. package/browser/find-options/operator/If.js +0 -21
  2582. package/browser/find-options/operator/If.js.map +0 -1
  2583. package/browser/find-options/operator/Switch.d.ts +0 -16
  2584. package/browser/find-options/operator/Switch.js +0 -17
  2585. package/browser/find-options/operator/Switch.js.map +0 -1
  2586. package/browser/observer/ObserverExecutor.d.ts +0 -18
  2587. package/browser/observer/ObserverExecutor.js +0 -404
  2588. package/browser/observer/ObserverExecutor.js.map +0 -1
  2589. package/browser/observer/QueryObserver.d.ts +0 -28
  2590. package/browser/observer/QueryObserver.js +0 -120
  2591. package/browser/observer/QueryObserver.js.map +0 -1
  2592. package/browser/query-builder/WhereExpression.js +0 -3
  2593. package/browser/query-builder/WhereExpression.js.map +0 -1
  2594. package/browser/repository/LiteralMongoRepository.d.ts +0 -11
  2595. package/browser/repository/LiteralMongoRepository.js +0 -138
  2596. package/browser/repository/LiteralMongoRepository.js.map +0 -1
  2597. package/browser/repository/LiteralRepository.d.ts +0 -11
  2598. package/browser/repository/LiteralRepository.js +0 -211
  2599. package/browser/repository/LiteralRepository.js.map +0 -1
  2600. package/browser/repository/LiteralTreeRepository.d.ts +0 -9
  2601. package/browser/repository/LiteralTreeRepository.js +0 -224
  2602. package/browser/repository/LiteralTreeRepository.js.map +0 -1
  2603. package/browser/repository/RepositoryFactory.d.ts +0 -13
  2604. package/browser/repository/RepositoryFactory.js +0 -50
  2605. package/browser/repository/RepositoryFactory.js.map +0 -1
  2606. package/browser/util/PromiseUtils.d.ts +0 -24
  2607. package/browser/util/PromiseUtils.js +0 -62
  2608. package/browser/util/PromiseUtils.js.map +0 -1
  2609. package/decorator/transaction/Transaction.d.ts +0 -16
  2610. package/decorator/transaction/Transaction.js +0 -88
  2611. package/decorator/transaction/Transaction.js.map +0 -1
  2612. package/decorator/transaction/TransactionManager.d.ts +0 -4
  2613. package/decorator/transaction/TransactionManager.js +0 -18
  2614. package/decorator/transaction/TransactionManager.js.map +0 -1
  2615. package/decorator/transaction/TransactionRepository.d.ts +0 -6
  2616. package/decorator/transaction/TransactionRepository.js +0 -31
  2617. package/decorator/transaction/TransactionRepository.js.map +0 -1
  2618. package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
  2619. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -23
  2620. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
  2621. package/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
  2622. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
  2623. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
  2624. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
  2625. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2017
  2626. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
  2627. package/entity-factory/DefaultEntityFactory.d.ts +0 -7
  2628. package/entity-factory/DefaultEntityFactory.js +0 -18
  2629. package/entity-factory/DefaultEntityFactory.js.map +0 -1
  2630. package/entity-factory/EntityFactoryInterface.d.ts +0 -11
  2631. package/entity-factory/EntityFactoryInterface.js.map +0 -1
  2632. package/entity-factory/OldEntityFactory.d.ts +0 -7
  2633. package/entity-factory/OldEntityFactory.js +0 -16
  2634. package/entity-factory/OldEntityFactory.js.map +0 -1
  2635. package/error/EntityColumnNotFound.d.ts +0 -7
  2636. package/error/EntityColumnNotFound.js +0 -20
  2637. package/error/EntityColumnNotFound.js.map +0 -1
  2638. package/error/FindCriteriaNotFoundError.d.ts +0 -7
  2639. package/error/FindCriteriaNotFoundError.js +0 -19
  2640. package/error/FindCriteriaNotFoundError.js.map +0 -1
  2641. package/find-options/FindOptions.d.ts +0 -171
  2642. package/find-options/FindOptions.js.map +0 -1
  2643. package/find-options/operator/If.d.ts +0 -8
  2644. package/find-options/operator/If.js +0 -24
  2645. package/find-options/operator/If.js.map +0 -1
  2646. package/find-options/operator/Switch.d.ts +0 -16
  2647. package/find-options/operator/Switch.js +0 -20
  2648. package/find-options/operator/Switch.js.map +0 -1
  2649. package/observer/ObserverExecutor.d.ts +0 -18
  2650. package/observer/ObserverExecutor.js +0 -406
  2651. package/observer/ObserverExecutor.js.map +0 -1
  2652. package/observer/QueryObserver.d.ts +0 -28
  2653. package/observer/QueryObserver.js +0 -122
  2654. package/observer/QueryObserver.js.map +0 -1
  2655. package/query-builder/WhereExpression.js.map +0 -1
  2656. package/repository/LiteralMongoRepository.d.ts +0 -11
  2657. package/repository/LiteralMongoRepository.js +0 -141
  2658. package/repository/LiteralMongoRepository.js.map +0 -1
  2659. package/repository/LiteralRepository.d.ts +0 -11
  2660. package/repository/LiteralRepository.js +0 -214
  2661. package/repository/LiteralRepository.js.map +0 -1
  2662. package/repository/LiteralTreeRepository.d.ts +0 -9
  2663. package/repository/LiteralTreeRepository.js +0 -227
  2664. package/repository/LiteralTreeRepository.js.map +0 -1
  2665. package/repository/RepositoryFactory.d.ts +0 -13
  2666. package/repository/RepositoryFactory.js +0 -52
  2667. package/repository/RepositoryFactory.js.map +0 -1
  2668. package/util/PromiseUtils.d.ts +0 -24
  2669. package/util/PromiseUtils.js +0 -64
  2670. package/util/PromiseUtils.js.map +0 -1
@@ -1,50 +1,42 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var QueryFailedError_1 = require("../../error/QueryFailedError");
5
- var QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
6
- var TransactionAlreadyStartedError_1 = require("../../error/TransactionAlreadyStartedError");
7
- var TransactionNotStartedError_1 = require("../../error/TransactionNotStartedError");
8
- var index_1 = require("../../index");
9
- var BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
10
- var Table_1 = require("../../schema-builder/table/Table");
11
- var TableCheck_1 = require("../../schema-builder/table/TableCheck");
12
- var TableColumn_1 = require("../../schema-builder/table/TableColumn");
13
- var TableForeignKey_1 = require("../../schema-builder/table/TableForeignKey");
14
- var TableIndex_1 = require("../../schema-builder/table/TableIndex");
15
- var TableUnique_1 = require("../../schema-builder/table/TableUnique");
16
- var View_1 = require("../../schema-builder/view/View");
17
- var Broadcaster_1 = require("../../subscriber/Broadcaster");
18
- var OrmUtils_1 = require("../../util/OrmUtils");
19
- var Query_1 = require("../Query");
20
- var MssqlParameter_1 = require("./MssqlParameter");
3
+ exports.SqlServerQueryRunner = void 0;
4
+ const QueryResult_1 = require("../../query-runner/QueryResult");
5
+ const QueryFailedError_1 = require("../../error/QueryFailedError");
6
+ const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
7
+ const TransactionNotStartedError_1 = require("../../error/TransactionNotStartedError");
8
+ const BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
9
+ const Table_1 = require("../../schema-builder/table/Table");
10
+ const TableCheck_1 = require("../../schema-builder/table/TableCheck");
11
+ const TableColumn_1 = require("../../schema-builder/table/TableColumn");
12
+ const TableForeignKey_1 = require("../../schema-builder/table/TableForeignKey");
13
+ const TableIndex_1 = require("../../schema-builder/table/TableIndex");
14
+ const TableUnique_1 = require("../../schema-builder/table/TableUnique");
15
+ const View_1 = require("../../schema-builder/view/View");
16
+ const Broadcaster_1 = require("../../subscriber/Broadcaster");
17
+ const OrmUtils_1 = require("../../util/OrmUtils");
18
+ const Query_1 = require("../Query");
19
+ const error_1 = require("../../error");
20
+ const QueryLock_1 = require("../../query-runner/QueryLock");
21
+ const MetadataTableType_1 = require("../types/MetadataTableType");
22
+ const InstanceChecker_1 = require("../../util/InstanceChecker");
21
23
  /**
22
24
  * Runs queries on a single SQL Server database connection.
23
25
  */
24
- var SqlServerQueryRunner = /** @class */ (function (_super) {
25
- tslib_1.__extends(SqlServerQueryRunner, _super);
26
+ class SqlServerQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
26
27
  // -------------------------------------------------------------------------
27
28
  // Constructor
28
29
  // -------------------------------------------------------------------------
29
- function SqlServerQueryRunner(driver, mode) {
30
- if (mode === void 0) { mode = "master"; }
31
- var _this = _super.call(this) || this;
30
+ constructor(driver, mode) {
31
+ super();
32
32
  // -------------------------------------------------------------------------
33
- // Protected Properties
33
+ // Private Properties
34
34
  // -------------------------------------------------------------------------
35
- /**
36
- * Last executed query in a transaction.
37
- * This is needed because in transaction mode mssql cannot execute parallel queries,
38
- * that's why we store last executed query promise to wait it when we execute next query.
39
- *
40
- * @see https://github.com/patriksimek/node-mssql/issues/491
41
- */
42
- _this.queryResponsibilityChain = [];
43
- _this.driver = driver;
44
- _this.connection = driver.connection;
45
- _this.broadcaster = new Broadcaster_1.Broadcaster(_this);
46
- _this.mode = mode;
47
- return _this;
35
+ this.lock = new QueryLock_1.QueryLock();
36
+ this.driver = driver;
37
+ this.connection = driver.connection;
38
+ this.broadcaster = new Broadcaster_1.Broadcaster(this);
39
+ this.mode = mode;
48
40
  }
49
41
  // -------------------------------------------------------------------------
50
42
  // Public Methods
@@ -53,2533 +45,2033 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
53
45
  * Creates/uses database connection from the connection pool to perform further operations.
54
46
  * Returns obtained database connection.
55
47
  */
56
- SqlServerQueryRunner.prototype.connect = function () {
48
+ connect() {
57
49
  return Promise.resolve();
58
- };
50
+ }
59
51
  /**
60
52
  * Releases used database connection.
61
53
  * You cannot use query runner methods once its released.
62
54
  */
63
- SqlServerQueryRunner.prototype.release = function () {
55
+ release() {
64
56
  this.isReleased = true;
65
57
  return Promise.resolve();
66
- };
58
+ }
67
59
  /**
68
60
  * Starts transaction.
69
61
  */
70
- SqlServerQueryRunner.prototype.startTransaction = function (isolationLevel) {
71
- return tslib_1.__awaiter(this, void 0, void 0, function () {
72
- var _this = this;
73
- return tslib_1.__generator(this, function (_a) {
74
- if (this.isReleased)
75
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
76
- if (this.isTransactionActive)
77
- throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
78
- return [2 /*return*/, new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
79
- var pool, transactionCallback;
80
- var _this = this;
81
- return tslib_1.__generator(this, function (_a) {
82
- switch (_a.label) {
83
- case 0:
84
- this.isTransactionActive = true;
85
- return [4 /*yield*/, (this.mode === "slave" ? this.driver.obtainSlaveConnection() : this.driver.obtainMasterConnection())];
86
- case 1:
87
- pool = _a.sent();
88
- this.databaseConnection = pool.transaction();
89
- transactionCallback = function (err) {
90
- if (err) {
91
- _this.isTransactionActive = false;
92
- return fail(err);
93
- }
94
- ok();
95
- _this.connection.logger.logQuery("BEGIN TRANSACTION");
96
- if (isolationLevel) {
97
- _this.connection.logger.logQuery("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
98
- }
99
- };
100
- if (isolationLevel) {
101
- this.databaseConnection.begin(this.convertIsolationLevel(isolationLevel), transactionCallback);
102
- }
103
- else {
104
- this.databaseConnection.begin(transactionCallback);
105
- }
106
- return [2 /*return*/];
107
- }
108
- });
109
- }); })];
110
- });
62
+ async startTransaction(isolationLevel) {
63
+ if (this.isReleased)
64
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
65
+ this.isTransactionActive = true;
66
+ try {
67
+ await this.broadcaster.broadcast("BeforeTransactionStart");
68
+ }
69
+ catch (err) {
70
+ this.isTransactionActive = false;
71
+ throw err;
72
+ }
73
+ await new Promise(async (ok, fail) => {
74
+ const transactionCallback = (err) => {
75
+ if (err) {
76
+ this.isTransactionActive = false;
77
+ return fail(err);
78
+ }
79
+ ok();
80
+ };
81
+ if (this.transactionDepth === 0) {
82
+ const pool = await (this.mode === "slave"
83
+ ? this.driver.obtainSlaveConnection()
84
+ : this.driver.obtainMasterConnection());
85
+ this.databaseConnection = pool.transaction();
86
+ this.connection.logger.logQuery("BEGIN TRANSACTION");
87
+ if (isolationLevel) {
88
+ this.databaseConnection.begin(this.convertIsolationLevel(isolationLevel), transactionCallback);
89
+ this.connection.logger.logQuery("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
90
+ }
91
+ else {
92
+ this.databaseConnection.begin(transactionCallback);
93
+ }
94
+ }
95
+ else {
96
+ await this.query(`SAVE TRANSACTION typeorm_${this.transactionDepth}`);
97
+ ok();
98
+ }
99
+ this.transactionDepth += 1;
111
100
  });
112
- };
101
+ await this.broadcaster.broadcast("AfterTransactionStart");
102
+ }
113
103
  /**
114
104
  * Commits transaction.
115
105
  * Error will be thrown if transaction was not started.
116
106
  */
117
- SqlServerQueryRunner.prototype.commitTransaction = function () {
118
- return tslib_1.__awaiter(this, void 0, void 0, function () {
119
- var _this = this;
120
- return tslib_1.__generator(this, function (_a) {
121
- if (this.isReleased)
122
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
123
- if (!this.isTransactionActive)
124
- throw new TransactionNotStartedError_1.TransactionNotStartedError();
125
- return [2 /*return*/, new Promise(function (ok, fail) {
126
- _this.databaseConnection.commit(function (err) {
127
- if (err)
128
- return fail(err);
129
- _this.isTransactionActive = false;
130
- _this.databaseConnection = null;
131
- ok();
132
- _this.connection.logger.logQuery("COMMIT");
133
- });
134
- })];
107
+ async commitTransaction() {
108
+ if (this.isReleased)
109
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
110
+ if (!this.isTransactionActive)
111
+ throw new TransactionNotStartedError_1.TransactionNotStartedError();
112
+ await this.broadcaster.broadcast("BeforeTransactionCommit");
113
+ if (this.transactionDepth === 1) {
114
+ return new Promise((ok, fail) => {
115
+ this.databaseConnection.commit(async (err) => {
116
+ if (err)
117
+ return fail(err);
118
+ this.isTransactionActive = false;
119
+ this.databaseConnection = null;
120
+ await this.broadcaster.broadcast("AfterTransactionCommit");
121
+ ok();
122
+ this.connection.logger.logQuery("COMMIT");
123
+ this.transactionDepth -= 1;
124
+ });
135
125
  });
136
- });
137
- };
126
+ }
127
+ this.transactionDepth -= 1;
128
+ }
138
129
  /**
139
130
  * Rollbacks transaction.
140
131
  * Error will be thrown if transaction was not started.
141
132
  */
142
- SqlServerQueryRunner.prototype.rollbackTransaction = function () {
143
- return tslib_1.__awaiter(this, void 0, void 0, function () {
144
- var _this = this;
145
- return tslib_1.__generator(this, function (_a) {
146
- if (this.isReleased)
147
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
148
- if (!this.isTransactionActive)
149
- throw new TransactionNotStartedError_1.TransactionNotStartedError();
150
- return [2 /*return*/, new Promise(function (ok, fail) {
151
- _this.databaseConnection.rollback(function (err) {
152
- if (err)
153
- return fail(err);
154
- _this.isTransactionActive = false;
155
- _this.databaseConnection = null;
156
- ok();
157
- _this.connection.logger.logQuery("ROLLBACK");
158
- });
159
- })];
133
+ async rollbackTransaction() {
134
+ if (this.isReleased)
135
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
136
+ if (!this.isTransactionActive)
137
+ throw new TransactionNotStartedError_1.TransactionNotStartedError();
138
+ await this.broadcaster.broadcast("BeforeTransactionRollback");
139
+ if (this.transactionDepth > 1) {
140
+ await this.query(`ROLLBACK TRANSACTION typeorm_${this.transactionDepth - 1}`);
141
+ this.transactionDepth -= 1;
142
+ }
143
+ else {
144
+ return new Promise((ok, fail) => {
145
+ this.databaseConnection.rollback(async (err) => {
146
+ if (err)
147
+ return fail(err);
148
+ this.isTransactionActive = false;
149
+ this.databaseConnection = null;
150
+ await this.broadcaster.broadcast("AfterTransactionRollback");
151
+ ok();
152
+ this.connection.logger.logQuery("ROLLBACK");
153
+ this.transactionDepth -= 1;
154
+ });
160
155
  });
161
- });
162
- };
156
+ }
157
+ }
163
158
  /**
164
159
  * Executes a given SQL query.
165
160
  */
166
- SqlServerQueryRunner.prototype.query = function (query, parameters) {
167
- return tslib_1.__awaiter(this, void 0, void 0, function () {
168
- var waitingOkay, waitingPromise, otherWaitingPromises, promise;
169
- var _this = this;
170
- return tslib_1.__generator(this, function (_a) {
171
- switch (_a.label) {
172
- case 0:
173
- if (this.isReleased)
174
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
175
- waitingPromise = new Promise(function (ok) { return waitingOkay = ok; });
176
- if (!this.queryResponsibilityChain.length) return [3 /*break*/, 2];
177
- otherWaitingPromises = tslib_1.__spread(this.queryResponsibilityChain);
178
- this.queryResponsibilityChain.push(waitingPromise);
179
- return [4 /*yield*/, Promise.all(otherWaitingPromises)];
180
- case 1:
181
- _a.sent();
182
- _a.label = 2;
183
- case 2:
184
- promise = new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
185
- var pool, request_1, queryStartTime_1, err_1;
186
- var _this = this;
187
- return tslib_1.__generator(this, function (_a) {
188
- switch (_a.label) {
189
- case 0:
190
- _a.trys.push([0, 2, , 3]);
191
- this.driver.connection.logger.logQuery(query, parameters, this);
192
- return [4 /*yield*/, (this.mode === "slave" ? this.driver.obtainSlaveConnection() : this.driver.obtainMasterConnection())];
193
- case 1:
194
- pool = _a.sent();
195
- request_1 = new this.driver.mssql.Request(this.isTransactionActive ? this.databaseConnection : pool);
196
- if (parameters && parameters.length) {
197
- parameters.forEach(function (parameter, index) {
198
- if (parameter instanceof MssqlParameter_1.MssqlParameter) {
199
- var mssqlParameter = _this.mssqlParameterToNativeParameter(parameter);
200
- if (mssqlParameter) {
201
- request_1.input(index, mssqlParameter, parameter.value);
202
- }
203
- else {
204
- request_1.input(index, parameter.value);
205
- }
206
- }
207
- else {
208
- request_1.input(index, parameter);
209
- }
210
- });
211
- }
212
- queryStartTime_1 = +new Date();
213
- request_1.query(query, function (err, result) {
214
- // log slow queries if maxQueryExecution time is set
215
- var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;
216
- var queryEndTime = +new Date();
217
- var queryExecutionTime = queryEndTime - queryStartTime_1;
218
- if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
219
- _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);
220
- var resolveChain = function () {
221
- if (promiseIndex !== -1)
222
- _this.queryResponsibilityChain.splice(promiseIndex, 1);
223
- if (waitingPromiseIndex !== -1)
224
- _this.queryResponsibilityChain.splice(waitingPromiseIndex, 1);
225
- waitingOkay();
226
- };
227
- var promiseIndex = _this.queryResponsibilityChain.indexOf(promise);
228
- var waitingPromiseIndex = _this.queryResponsibilityChain.indexOf(waitingPromise);
229
- if (err) {
230
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
231
- resolveChain();
232
- return fail(new QueryFailedError_1.QueryFailedError(query, parameters, err));
233
- }
234
- var queryType = query.slice(0, query.indexOf(" "));
235
- switch (queryType) {
236
- case "DELETE":
237
- // for DELETE query additionally return number of affected rows
238
- ok([result.recordset, result.rowsAffected[0]]);
239
- break;
240
- default:
241
- ok(result.recordset);
242
- }
243
- resolveChain();
244
- });
245
- return [3 /*break*/, 3];
246
- case 2:
247
- err_1 = _a.sent();
248
- fail(err_1);
249
- return [3 /*break*/, 3];
250
- case 3: return [2 /*return*/];
251
- }
252
- });
253
- }); });
254
- // with this condition, Promise.all causes unexpected behavior.
255
- // if (this.isTransactionActive)
256
- this.queryResponsibilityChain.push(promise);
257
- return [2 /*return*/, promise];
258
- }
161
+ async query(query, parameters, useStructuredResult = false) {
162
+ if (this.isReleased)
163
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
164
+ const release = await this.lock.acquire();
165
+ try {
166
+ this.driver.connection.logger.logQuery(query, parameters, this);
167
+ const pool = await (this.mode === "slave"
168
+ ? this.driver.obtainSlaveConnection()
169
+ : this.driver.obtainMasterConnection());
170
+ const request = new this.driver.mssql.Request(this.isTransactionActive ? this.databaseConnection : pool);
171
+ if (parameters && parameters.length) {
172
+ parameters.forEach((parameter, index) => {
173
+ const parameterName = index.toString();
174
+ if (InstanceChecker_1.InstanceChecker.isMssqlParameter(parameter)) {
175
+ const mssqlParameter = this.mssqlParameterToNativeParameter(parameter);
176
+ if (mssqlParameter) {
177
+ request.input(parameterName, mssqlParameter, parameter.value);
178
+ }
179
+ else {
180
+ request.input(parameterName, parameter.value);
181
+ }
182
+ }
183
+ else {
184
+ request.input(parameterName, parameter);
185
+ }
186
+ });
187
+ }
188
+ const queryStartTime = +new Date();
189
+ const raw = await new Promise((ok, fail) => {
190
+ request.query(query, (err, raw) => {
191
+ // log slow queries if maxQueryExecution time is set
192
+ const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
193
+ const queryEndTime = +new Date();
194
+ const queryExecutionTime = queryEndTime - queryStartTime;
195
+ if (maxQueryExecutionTime &&
196
+ queryExecutionTime > maxQueryExecutionTime) {
197
+ this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
198
+ }
199
+ if (err) {
200
+ fail(new QueryFailedError_1.QueryFailedError(query, parameters, err));
201
+ }
202
+ ok(raw);
203
+ });
259
204
  });
260
- });
261
- };
205
+ const result = new QueryResult_1.QueryResult();
206
+ if (raw === null || raw === void 0 ? void 0 : raw.hasOwnProperty("recordset")) {
207
+ result.records = raw.recordset;
208
+ }
209
+ if (raw === null || raw === void 0 ? void 0 : raw.hasOwnProperty("rowsAffected")) {
210
+ result.affected = raw.rowsAffected[0];
211
+ }
212
+ const queryType = query.slice(0, query.indexOf(" "));
213
+ switch (queryType) {
214
+ case "DELETE":
215
+ // for DELETE query additionally return number of affected rows
216
+ result.raw = [raw.recordset, raw.rowsAffected[0]];
217
+ break;
218
+ default:
219
+ result.raw = raw.recordset;
220
+ }
221
+ if (useStructuredResult) {
222
+ return result;
223
+ }
224
+ else {
225
+ return result.raw;
226
+ }
227
+ }
228
+ catch (err) {
229
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
230
+ throw err;
231
+ }
232
+ finally {
233
+ release();
234
+ }
235
+ }
262
236
  /**
263
237
  * Returns raw data stream.
264
238
  */
265
- SqlServerQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) {
266
- return tslib_1.__awaiter(this, void 0, void 0, function () {
267
- var waitingOkay, waitingPromise, otherWaitingPromises, promise;
268
- var _this = this;
269
- return tslib_1.__generator(this, function (_a) {
270
- switch (_a.label) {
271
- case 0:
272
- if (this.isReleased)
273
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
274
- waitingPromise = new Promise(function (ok) { return waitingOkay = ok; });
275
- if (!this.queryResponsibilityChain.length) return [3 /*break*/, 2];
276
- otherWaitingPromises = tslib_1.__spread(this.queryResponsibilityChain);
277
- this.queryResponsibilityChain.push(waitingPromise);
278
- return [4 /*yield*/, Promise.all(otherWaitingPromises)];
279
- case 1:
280
- _a.sent();
281
- _a.label = 2;
282
- case 2:
283
- promise = new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
284
- var pool, request;
285
- var _this = this;
286
- return tslib_1.__generator(this, function (_a) {
287
- switch (_a.label) {
288
- case 0:
289
- this.driver.connection.logger.logQuery(query, parameters, this);
290
- return [4 /*yield*/, (this.mode === "slave" ? this.driver.obtainSlaveConnection() : this.driver.obtainMasterConnection())];
291
- case 1:
292
- pool = _a.sent();
293
- request = new this.driver.mssql.Request(this.isTransactionActive ? this.databaseConnection : pool);
294
- request.stream = true;
295
- if (parameters && parameters.length) {
296
- parameters.forEach(function (parameter, index) {
297
- if (parameter instanceof MssqlParameter_1.MssqlParameter) {
298
- request.input(index, _this.mssqlParameterToNativeParameter(parameter), parameter.value);
299
- }
300
- else {
301
- request.input(index, parameter);
302
- }
303
- });
304
- }
305
- request.query(query, function (err, result) {
306
- var resolveChain = function () {
307
- if (promiseIndex !== -1)
308
- _this.queryResponsibilityChain.splice(promiseIndex, 1);
309
- if (waitingPromiseIndex !== -1)
310
- _this.queryResponsibilityChain.splice(waitingPromiseIndex, 1);
311
- waitingOkay();
312
- };
313
- var promiseIndex = _this.queryResponsibilityChain.indexOf(promise);
314
- var waitingPromiseIndex = _this.queryResponsibilityChain.indexOf(waitingPromise);
315
- if (err) {
316
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
317
- resolveChain();
318
- return fail(err);
319
- }
320
- ok(result.recordset);
321
- resolveChain();
322
- });
323
- if (onEnd)
324
- request.on("done", onEnd);
325
- if (onError)
326
- request.on("error", onError);
327
- ok(request);
328
- return [2 /*return*/];
329
- }
330
- });
331
- }); });
332
- if (this.isTransactionActive)
333
- this.queryResponsibilityChain.push(promise);
334
- return [2 /*return*/, promise];
239
+ async stream(query, parameters, onEnd, onError) {
240
+ if (this.isReleased)
241
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
242
+ const release = await this.lock.acquire();
243
+ this.driver.connection.logger.logQuery(query, parameters, this);
244
+ const pool = await (this.mode === "slave"
245
+ ? this.driver.obtainSlaveConnection()
246
+ : this.driver.obtainMasterConnection());
247
+ const request = new this.driver.mssql.Request(this.isTransactionActive ? this.databaseConnection : pool);
248
+ if (parameters && parameters.length) {
249
+ parameters.forEach((parameter, index) => {
250
+ const parameterName = index.toString();
251
+ if (InstanceChecker_1.InstanceChecker.isMssqlParameter(parameter)) {
252
+ request.input(parameterName, this.mssqlParameterToNativeParameter(parameter), parameter.value);
253
+ }
254
+ else {
255
+ request.input(parameterName, parameter);
335
256
  }
336
257
  });
258
+ }
259
+ request.query(query);
260
+ const streamRequest = request.toReadableStream();
261
+ streamRequest.on("error", (err) => {
262
+ release();
263
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
264
+ });
265
+ streamRequest.on("end", () => {
266
+ release();
337
267
  });
338
- };
268
+ if (onEnd) {
269
+ streamRequest.on("end", onEnd);
270
+ }
271
+ if (onError) {
272
+ streamRequest.on("error", onError);
273
+ }
274
+ return streamRequest;
275
+ }
339
276
  /**
340
277
  * Returns all available database names including system databases.
341
278
  */
342
- SqlServerQueryRunner.prototype.getDatabases = function () {
343
- return tslib_1.__awaiter(this, void 0, void 0, function () {
344
- var results;
345
- return tslib_1.__generator(this, function (_a) {
346
- switch (_a.label) {
347
- case 0: return [4 /*yield*/, this.query("EXEC sp_databases")];
348
- case 1:
349
- results = _a.sent();
350
- return [2 /*return*/, results.map(function (result) { return result["DATABASE_NAME"]; })];
351
- }
352
- });
353
- });
354
- };
279
+ async getDatabases() {
280
+ const results = await this.query(`EXEC sp_databases`);
281
+ return results.map((result) => result["DATABASE_NAME"]);
282
+ }
355
283
  /**
356
284
  * Returns all available schema names including system schemas.
357
285
  * If database parameter specified, returns schemas of that database.
358
286
  */
359
- SqlServerQueryRunner.prototype.getSchemas = function (database) {
360
- return tslib_1.__awaiter(this, void 0, void 0, function () {
361
- var query, results;
362
- return tslib_1.__generator(this, function (_a) {
363
- switch (_a.label) {
364
- case 0:
365
- query = database ? "SELECT * FROM \"" + database + "\".\"sys\".\"schema\"" : "SELECT * FROM \"sys\".\"schemas\"";
366
- return [4 /*yield*/, this.query(query)];
367
- case 1:
368
- results = _a.sent();
369
- return [2 /*return*/, results.map(function (result) { return result["name"]; })];
370
- }
371
- });
372
- });
373
- };
287
+ async getSchemas(database) {
288
+ const query = database
289
+ ? `SELECT * FROM "${database}"."sys"."schema"`
290
+ : `SELECT * FROM "sys"."schemas"`;
291
+ const results = await this.query(query);
292
+ return results.map((result) => result["name"]);
293
+ }
374
294
  /**
375
295
  * Checks if database with the given name exist.
376
296
  */
377
- SqlServerQueryRunner.prototype.hasDatabase = function (database) {
378
- return tslib_1.__awaiter(this, void 0, void 0, function () {
379
- var result, dbId;
380
- return tslib_1.__generator(this, function (_a) {
381
- switch (_a.label) {
382
- case 0: return [4 /*yield*/, this.query("SELECT DB_ID('" + database + "') as \"db_id\"")];
383
- case 1:
384
- result = _a.sent();
385
- dbId = result[0]["db_id"];
386
- return [2 /*return*/, !!dbId];
387
- }
388
- });
389
- });
390
- };
297
+ async hasDatabase(database) {
298
+ const result = await this.query(`SELECT DB_ID('${database}') as "db_id"`);
299
+ const dbId = result[0]["db_id"];
300
+ return !!dbId;
301
+ }
302
+ /**
303
+ * Loads currently using database
304
+ */
305
+ async getCurrentDatabase() {
306
+ const currentDBQuery = await this.query(`SELECT DB_NAME() AS "db_name"`);
307
+ return currentDBQuery[0]["db_name"];
308
+ }
391
309
  /**
392
310
  * Checks if schema with the given name exist.
393
311
  */
394
- SqlServerQueryRunner.prototype.hasSchema = function (schema) {
395
- return tslib_1.__awaiter(this, void 0, void 0, function () {
396
- var result, schemaId;
397
- return tslib_1.__generator(this, function (_a) {
398
- switch (_a.label) {
399
- case 0: return [4 /*yield*/, this.query("SELECT SCHEMA_ID('" + schema + "') as \"schema_id\"")];
400
- case 1:
401
- result = _a.sent();
402
- schemaId = result[0]["schema_id"];
403
- return [2 /*return*/, !!schemaId];
404
- }
405
- });
406
- });
407
- };
312
+ async hasSchema(schema) {
313
+ const result = await this.query(`SELECT SCHEMA_ID('${schema}') as "schema_id"`);
314
+ const schemaId = result[0]["schema_id"];
315
+ return !!schemaId;
316
+ }
317
+ /**
318
+ * Loads currently using database schema
319
+ */
320
+ async getCurrentSchema() {
321
+ const currentSchemaQuery = await this.query(`SELECT SCHEMA_NAME() AS "schema_name"`);
322
+ return currentSchemaQuery[0]["schema_name"];
323
+ }
408
324
  /**
409
325
  * Checks if table with the given name exist in the database.
410
326
  */
411
- SqlServerQueryRunner.prototype.hasTable = function (tableOrName) {
412
- return tslib_1.__awaiter(this, void 0, void 0, function () {
413
- var parsedTableName, schema, sql, result;
414
- return tslib_1.__generator(this, function (_a) {
415
- switch (_a.label) {
416
- case 0:
417
- parsedTableName = this.parseTableName(tableOrName);
418
- schema = parsedTableName.schema === "SCHEMA_NAME()" ? parsedTableName.schema : "'" + parsedTableName.schema + "'";
419
- sql = "SELECT * FROM \"" + parsedTableName.database + "\".\"INFORMATION_SCHEMA\".\"TABLES\" WHERE \"TABLE_NAME\" = '" + parsedTableName.name + "' AND \"TABLE_SCHEMA\" = " + schema;
420
- return [4 /*yield*/, this.query(sql)];
421
- case 1:
422
- result = _a.sent();
423
- return [2 /*return*/, result.length ? true : false];
424
- }
425
- });
426
- });
427
- };
327
+ async hasTable(tableOrName) {
328
+ const parsedTableName = this.driver.parseTableName(tableOrName);
329
+ if (!parsedTableName.database) {
330
+ parsedTableName.database = await this.getCurrentDatabase();
331
+ }
332
+ if (!parsedTableName.schema) {
333
+ parsedTableName.schema = await this.getCurrentSchema();
334
+ }
335
+ const sql = `SELECT * FROM "${parsedTableName.database}"."INFORMATION_SCHEMA"."TABLES" WHERE "TABLE_NAME" = '${parsedTableName.tableName}' AND "TABLE_SCHEMA" = '${parsedTableName.schema}'`;
336
+ const result = await this.query(sql);
337
+ return result.length ? true : false;
338
+ }
428
339
  /**
429
340
  * Checks if column exist in the table.
430
341
  */
431
- SqlServerQueryRunner.prototype.hasColumn = function (tableOrName, columnName) {
432
- return tslib_1.__awaiter(this, void 0, void 0, function () {
433
- var parsedTableName, schema, sql, result;
434
- return tslib_1.__generator(this, function (_a) {
435
- switch (_a.label) {
436
- case 0:
437
- parsedTableName = this.parseTableName(tableOrName);
438
- schema = parsedTableName.schema === "SCHEMA_NAME()" ? parsedTableName.schema : "'" + parsedTableName.schema + "'";
439
- sql = "SELECT * FROM \"" + parsedTableName.database + "\".\"INFORMATION_SCHEMA\".\"TABLES\" WHERE \"TABLE_NAME\" = '" + parsedTableName.name + "' AND \"COLUMN_NAME\" = '" + columnName + "' AND \"TABLE_SCHEMA\" = " + schema;
440
- return [4 /*yield*/, this.query(sql)];
441
- case 1:
442
- result = _a.sent();
443
- return [2 /*return*/, result.length ? true : false];
444
- }
445
- });
446
- });
447
- };
342
+ async hasColumn(tableOrName, columnName) {
343
+ const parsedTableName = this.driver.parseTableName(tableOrName);
344
+ if (!parsedTableName.database) {
345
+ parsedTableName.database = await this.getCurrentDatabase();
346
+ }
347
+ if (!parsedTableName.schema) {
348
+ parsedTableName.schema = await this.getCurrentSchema();
349
+ }
350
+ const sql = `SELECT * FROM "${parsedTableName.database}"."INFORMATION_SCHEMA"."COLUMNS" WHERE "TABLE_NAME" = '${parsedTableName.tableName}' AND "TABLE_SCHEMA" = '${parsedTableName.schema}' AND "COLUMN_NAME" = '${columnName}'`;
351
+ const result = await this.query(sql);
352
+ return result.length ? true : false;
353
+ }
448
354
  /**
449
355
  * Creates a new database.
450
356
  */
451
- SqlServerQueryRunner.prototype.createDatabase = function (database, ifNotExist) {
452
- return tslib_1.__awaiter(this, void 0, void 0, function () {
453
- var up, down;
454
- return tslib_1.__generator(this, function (_a) {
455
- switch (_a.label) {
456
- case 0:
457
- up = ifNotExist ? "IF DB_ID('" + database + "') IS NULL CREATE DATABASE \"" + database + "\"" : "CREATE DATABASE \"" + database + "\"";
458
- down = "DROP DATABASE \"" + database + "\"";
459
- return [4 /*yield*/, this.executeQueries(new Query_1.Query(up), new Query_1.Query(down))];
460
- case 1:
461
- _a.sent();
462
- return [2 /*return*/];
463
- }
464
- });
465
- });
466
- };
357
+ async createDatabase(database, ifNotExist) {
358
+ const up = ifNotExist
359
+ ? `IF DB_ID('${database}') IS NULL CREATE DATABASE "${database}"`
360
+ : `CREATE DATABASE "${database}"`;
361
+ const down = `DROP DATABASE "${database}"`;
362
+ await this.executeQueries(new Query_1.Query(up), new Query_1.Query(down));
363
+ }
467
364
  /**
468
365
  * Drops database.
469
366
  */
470
- SqlServerQueryRunner.prototype.dropDatabase = function (database, ifExist) {
471
- return tslib_1.__awaiter(this, void 0, void 0, function () {
472
- var up, down;
473
- return tslib_1.__generator(this, function (_a) {
474
- switch (_a.label) {
475
- case 0:
476
- up = ifExist ? "IF DB_ID('" + database + "') IS NOT NULL DROP DATABASE \"" + database + "\"" : "DROP DATABASE \"" + database + "\"";
477
- down = "CREATE DATABASE \"" + database + "\"";
478
- return [4 /*yield*/, this.executeQueries(new Query_1.Query(up), new Query_1.Query(down))];
479
- case 1:
480
- _a.sent();
481
- return [2 /*return*/];
482
- }
483
- });
484
- });
485
- };
367
+ async dropDatabase(database, ifExist) {
368
+ const up = ifExist
369
+ ? `IF DB_ID('${database}') IS NOT NULL DROP DATABASE "${database}"`
370
+ : `DROP DATABASE "${database}"`;
371
+ const down = `CREATE DATABASE "${database}"`;
372
+ await this.executeQueries(new Query_1.Query(up), new Query_1.Query(down));
373
+ }
486
374
  /**
487
375
  * Creates table schema.
488
376
  * If database name also specified (e.g. 'dbName.schemaName') schema will be created in specified database.
489
377
  */
490
- SqlServerQueryRunner.prototype.createSchema = function (schemaPath, ifNotExist) {
491
- return tslib_1.__awaiter(this, void 0, void 0, function () {
492
- var upQueries, downQueries, upQuery, dbName, schema, currentDB, upQuery;
493
- return tslib_1.__generator(this, function (_a) {
494
- switch (_a.label) {
495
- case 0:
496
- upQueries = [];
497
- downQueries = [];
498
- if (!(schemaPath.indexOf(".") === -1)) return [3 /*break*/, 1];
499
- upQuery = ifNotExist ? "IF SCHEMA_ID('" + schemaPath + "') IS NULL BEGIN EXEC ('CREATE SCHEMA \"" + schemaPath + "\"') END" : "CREATE SCHEMA \"" + schemaPath + "\"";
500
- upQueries.push(new Query_1.Query(upQuery));
501
- downQueries.push(new Query_1.Query("DROP SCHEMA \"" + schemaPath + "\""));
502
- return [3 /*break*/, 3];
503
- case 1:
504
- dbName = schemaPath.split(".")[0];
505
- schema = schemaPath.split(".")[1];
506
- return [4 /*yield*/, this.getCurrentDatabase()];
507
- case 2:
508
- currentDB = _a.sent();
509
- upQueries.push(new Query_1.Query("USE \"" + dbName + "\""));
510
- downQueries.push(new Query_1.Query("USE \"" + currentDB + "\""));
511
- upQuery = ifNotExist ? "IF SCHEMA_ID('" + schema + "') IS NULL BEGIN EXEC ('CREATE SCHEMA \"" + schema + "\"') END" : "CREATE SCHEMA \"" + schema + "\"";
512
- upQueries.push(new Query_1.Query(upQuery));
513
- downQueries.push(new Query_1.Query("DROP SCHEMA \"" + schema + "\""));
514
- upQueries.push(new Query_1.Query("USE \"" + currentDB + "\""));
515
- downQueries.push(new Query_1.Query("USE \"" + dbName + "\""));
516
- _a.label = 3;
517
- case 3: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
518
- case 4:
519
- _a.sent();
520
- return [2 /*return*/];
521
- }
522
- });
523
- });
524
- };
378
+ async createSchema(schemaPath, ifNotExist) {
379
+ const upQueries = [];
380
+ const downQueries = [];
381
+ if (schemaPath.indexOf(".") === -1) {
382
+ const upQuery = ifNotExist
383
+ ? `IF SCHEMA_ID('${schemaPath}') IS NULL BEGIN EXEC ('CREATE SCHEMA "${schemaPath}"') END`
384
+ : `CREATE SCHEMA "${schemaPath}"`;
385
+ upQueries.push(new Query_1.Query(upQuery));
386
+ downQueries.push(new Query_1.Query(`DROP SCHEMA "${schemaPath}"`));
387
+ }
388
+ else {
389
+ const dbName = schemaPath.split(".")[0];
390
+ const schema = schemaPath.split(".")[1];
391
+ const currentDB = await this.getCurrentDatabase();
392
+ upQueries.push(new Query_1.Query(`USE "${dbName}"`));
393
+ downQueries.push(new Query_1.Query(`USE "${currentDB}"`));
394
+ const upQuery = ifNotExist
395
+ ? `IF SCHEMA_ID('${schema}') IS NULL BEGIN EXEC ('CREATE SCHEMA "${schema}"') END`
396
+ : `CREATE SCHEMA "${schema}"`;
397
+ upQueries.push(new Query_1.Query(upQuery));
398
+ downQueries.push(new Query_1.Query(`DROP SCHEMA "${schema}"`));
399
+ upQueries.push(new Query_1.Query(`USE "${currentDB}"`));
400
+ downQueries.push(new Query_1.Query(`USE "${dbName}"`));
401
+ }
402
+ await this.executeQueries(upQueries, downQueries);
403
+ }
525
404
  /**
526
405
  * Drops table schema.
527
406
  * If database name also specified (e.g. 'dbName.schemaName') schema will be dropped in specified database.
528
407
  */
529
- SqlServerQueryRunner.prototype.dropSchema = function (schemaPath, ifExist) {
530
- return tslib_1.__awaiter(this, void 0, void 0, function () {
531
- var upQueries, downQueries, upQuery, dbName, schema, currentDB, upQuery;
532
- return tslib_1.__generator(this, function (_a) {
533
- switch (_a.label) {
534
- case 0:
535
- upQueries = [];
536
- downQueries = [];
537
- if (!(schemaPath.indexOf(".") === -1)) return [3 /*break*/, 1];
538
- upQuery = ifExist ? "IF SCHEMA_ID('" + schemaPath + "') IS NULL BEGIN EXEC ('DROP SCHEMA \"" + schemaPath + "\"') END" : "DROP SCHEMA \"" + schemaPath + "\"";
539
- upQueries.push(new Query_1.Query(upQuery));
540
- downQueries.push(new Query_1.Query("CREATE SCHEMA \"" + schemaPath + "\""));
541
- return [3 /*break*/, 3];
542
- case 1:
543
- dbName = schemaPath.split(".")[0];
544
- schema = schemaPath.split(".")[1];
545
- return [4 /*yield*/, this.getCurrentDatabase()];
546
- case 2:
547
- currentDB = _a.sent();
548
- upQueries.push(new Query_1.Query("USE \"" + dbName + "\""));
549
- downQueries.push(new Query_1.Query("USE \"" + currentDB + "\""));
550
- upQuery = ifExist ? "IF SCHEMA_ID('" + schema + "') IS NULL BEGIN EXEC ('DROP SCHEMA \"" + schema + "\"') END" : "DROP SCHEMA \"" + schema + "\"";
551
- upQueries.push(new Query_1.Query(upQuery));
552
- downQueries.push(new Query_1.Query("CREATE SCHEMA \"" + schema + "\""));
553
- upQueries.push(new Query_1.Query("USE \"" + currentDB + "\""));
554
- downQueries.push(new Query_1.Query("USE \"" + dbName + "\""));
555
- _a.label = 3;
556
- case 3: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
557
- case 4:
558
- _a.sent();
559
- return [2 /*return*/];
560
- }
561
- });
562
- });
563
- };
408
+ async dropSchema(schemaPath, ifExist) {
409
+ const upQueries = [];
410
+ const downQueries = [];
411
+ if (schemaPath.indexOf(".") === -1) {
412
+ const upQuery = ifExist
413
+ ? `IF SCHEMA_ID('${schemaPath}') IS NULL BEGIN EXEC ('DROP SCHEMA "${schemaPath}"') END`
414
+ : `DROP SCHEMA "${schemaPath}"`;
415
+ upQueries.push(new Query_1.Query(upQuery));
416
+ downQueries.push(new Query_1.Query(`CREATE SCHEMA "${schemaPath}"`));
417
+ }
418
+ else {
419
+ const dbName = schemaPath.split(".")[0];
420
+ const schema = schemaPath.split(".")[1];
421
+ const currentDB = await this.getCurrentDatabase();
422
+ upQueries.push(new Query_1.Query(`USE "${dbName}"`));
423
+ downQueries.push(new Query_1.Query(`USE "${currentDB}"`));
424
+ const upQuery = ifExist
425
+ ? `IF SCHEMA_ID('${schema}') IS NULL BEGIN EXEC ('DROP SCHEMA "${schema}"') END`
426
+ : `DROP SCHEMA "${schema}"`;
427
+ upQueries.push(new Query_1.Query(upQuery));
428
+ downQueries.push(new Query_1.Query(`CREATE SCHEMA "${schema}"`));
429
+ upQueries.push(new Query_1.Query(`USE "${currentDB}"`));
430
+ downQueries.push(new Query_1.Query(`USE "${dbName}"`));
431
+ }
432
+ await this.executeQueries(upQueries, downQueries);
433
+ }
564
434
  /**
565
435
  * Creates a new table.
566
436
  */
567
- SqlServerQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys, createIndices) {
568
- if (ifNotExist === void 0) { ifNotExist = false; }
569
- if (createForeignKeys === void 0) { createForeignKeys = true; }
570
- if (createIndices === void 0) { createIndices = true; }
571
- return tslib_1.__awaiter(this, void 0, void 0, function () {
572
- var isTableExist, upQueries, downQueries;
573
- var _this = this;
574
- return tslib_1.__generator(this, function (_a) {
575
- switch (_a.label) {
576
- case 0:
577
- if (!ifNotExist) return [3 /*break*/, 2];
578
- return [4 /*yield*/, this.hasTable(table)];
579
- case 1:
580
- isTableExist = _a.sent();
581
- if (isTableExist)
582
- return [2 /*return*/, Promise.resolve()];
583
- _a.label = 2;
584
- case 2:
585
- upQueries = [];
586
- downQueries = [];
587
- upQueries.push(this.createTableSql(table, createForeignKeys));
588
- downQueries.push(this.dropTableSql(table));
589
- // if createForeignKeys is true, we must drop created foreign keys in down query.
590
- // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
591
- if (createForeignKeys)
592
- table.foreignKeys.forEach(function (foreignKey) { return downQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
593
- if (createIndices) {
594
- table.indices.forEach(function (index) {
595
- // new index may be passed without name. In this case we generate index name manually.
596
- if (!index.name)
597
- index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
598
- upQueries.push(_this.createIndexSql(table, index));
599
- downQueries.push(_this.dropIndexSql(table, index));
600
- });
601
- }
602
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
603
- case 3:
604
- _a.sent();
605
- return [2 /*return*/];
606
- }
437
+ async createTable(table, ifNotExist = false, createForeignKeys = true, createIndices = true) {
438
+ if (ifNotExist) {
439
+ const isTableExist = await this.hasTable(table);
440
+ if (isTableExist)
441
+ return Promise.resolve();
442
+ }
443
+ const upQueries = [];
444
+ const downQueries = [];
445
+ upQueries.push(this.createTableSql(table, createForeignKeys));
446
+ downQueries.push(this.dropTableSql(table));
447
+ // if createForeignKeys is true, we must drop created foreign keys in down query.
448
+ // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
449
+ if (createForeignKeys)
450
+ table.foreignKeys.forEach((foreignKey) => downQueries.push(this.dropForeignKeySql(table, foreignKey)));
451
+ if (createIndices) {
452
+ table.indices.forEach((index) => {
453
+ // new index may be passed without name. In this case we generate index name manually.
454
+ if (!index.name)
455
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
456
+ upQueries.push(this.createIndexSql(table, index));
457
+ downQueries.push(this.dropIndexSql(table, index));
607
458
  });
608
- });
609
- };
459
+ }
460
+ await this.executeQueries(upQueries, downQueries);
461
+ }
610
462
  /**
611
463
  * Drops the table.
612
464
  */
613
- SqlServerQueryRunner.prototype.dropTable = function (tableOrName, ifExist, dropForeignKeys, dropIndices) {
614
- if (dropForeignKeys === void 0) { dropForeignKeys = true; }
615
- if (dropIndices === void 0) { dropIndices = true; }
616
- return tslib_1.__awaiter(this, void 0, void 0, function () {
617
- var isTableExist, createForeignKeys, table, _a, upQueries, downQueries;
618
- var _this = this;
619
- return tslib_1.__generator(this, function (_b) {
620
- switch (_b.label) {
621
- case 0:
622
- if (!ifExist) return [3 /*break*/, 2];
623
- return [4 /*yield*/, this.hasTable(tableOrName)];
624
- case 1:
625
- isTableExist = _b.sent();
626
- if (!isTableExist)
627
- return [2 /*return*/, Promise.resolve()];
628
- _b.label = 2;
629
- case 2:
630
- createForeignKeys = dropForeignKeys;
631
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 3];
632
- _a = tableOrName;
633
- return [3 /*break*/, 5];
634
- case 3: return [4 /*yield*/, this.getCachedTable(tableOrName)];
635
- case 4:
636
- _a = _b.sent();
637
- _b.label = 5;
638
- case 5:
639
- table = _a;
640
- upQueries = [];
641
- downQueries = [];
642
- // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need
643
- // to perform drop queries for foreign keys and indices.
644
- if (dropIndices) {
645
- table.indices.forEach(function (index) {
646
- upQueries.push(_this.dropIndexSql(table, index));
647
- downQueries.push(_this.createIndexSql(table, index));
648
- });
649
- }
650
- // if dropForeignKeys is true, we just drop the table, otherwise we also drop table foreign keys.
651
- // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
652
- if (dropForeignKeys)
653
- table.foreignKeys.forEach(function (foreignKey) { return upQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
654
- upQueries.push(this.dropTableSql(table));
655
- downQueries.push(this.createTableSql(table, createForeignKeys));
656
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
657
- case 6:
658
- _b.sent();
659
- return [2 /*return*/];
660
- }
465
+ async dropTable(tableOrName, ifExist, dropForeignKeys = true, dropIndices = true) {
466
+ if (ifExist) {
467
+ const isTableExist = await this.hasTable(tableOrName);
468
+ if (!isTableExist)
469
+ return Promise.resolve();
470
+ }
471
+ // if dropTable called with dropForeignKeys = true, we must create foreign keys in down query.
472
+ const createForeignKeys = dropForeignKeys;
473
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
474
+ ? tableOrName
475
+ : await this.getCachedTable(tableOrName);
476
+ const upQueries = [];
477
+ const downQueries = [];
478
+ // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need
479
+ // to perform drop queries for foreign keys and indices.
480
+ if (dropIndices) {
481
+ table.indices.forEach((index) => {
482
+ upQueries.push(this.dropIndexSql(table, index));
483
+ downQueries.push(this.createIndexSql(table, index));
661
484
  });
662
- });
663
- };
485
+ }
486
+ // if dropForeignKeys is true, we just drop the table, otherwise we also drop table foreign keys.
487
+ // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
488
+ if (dropForeignKeys)
489
+ table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
490
+ upQueries.push(this.dropTableSql(table));
491
+ downQueries.push(this.createTableSql(table, createForeignKeys));
492
+ await this.executeQueries(upQueries, downQueries);
493
+ }
664
494
  /**
665
495
  * Creates a new view.
666
496
  */
667
- SqlServerQueryRunner.prototype.createView = function (view) {
668
- return tslib_1.__awaiter(this, void 0, void 0, function () {
669
- var upQueries, downQueries, _a, _b, _c, _d;
670
- return tslib_1.__generator(this, function (_e) {
671
- switch (_e.label) {
672
- case 0:
673
- upQueries = [];
674
- downQueries = [];
675
- upQueries.push(this.createViewSql(view));
676
- _b = (_a = upQueries).push;
677
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
678
- case 1:
679
- _b.apply(_a, [_e.sent()]);
680
- downQueries.push(this.dropViewSql(view));
681
- _d = (_c = downQueries).push;
682
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
683
- case 2:
684
- _d.apply(_c, [_e.sent()]);
685
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
686
- case 3:
687
- _e.sent();
688
- return [2 /*return*/];
689
- }
690
- });
691
- });
692
- };
497
+ async createView(view) {
498
+ const upQueries = [];
499
+ const downQueries = [];
500
+ upQueries.push(this.createViewSql(view));
501
+ upQueries.push(await this.insertViewDefinitionSql(view));
502
+ downQueries.push(this.dropViewSql(view));
503
+ downQueries.push(await this.deleteViewDefinitionSql(view));
504
+ await this.executeQueries(upQueries, downQueries);
505
+ }
693
506
  /**
694
507
  * Drops the view.
695
508
  */
696
- SqlServerQueryRunner.prototype.dropView = function (target) {
697
- return tslib_1.__awaiter(this, void 0, void 0, function () {
698
- var viewName, view, upQueries, downQueries, _a, _b, _c, _d;
699
- return tslib_1.__generator(this, function (_e) {
700
- switch (_e.label) {
701
- case 0:
702
- viewName = target instanceof View_1.View ? target.name : target;
703
- return [4 /*yield*/, this.getCachedView(viewName)];
704
- case 1:
705
- view = _e.sent();
706
- upQueries = [];
707
- downQueries = [];
708
- _b = (_a = upQueries).push;
709
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
710
- case 2:
711
- _b.apply(_a, [_e.sent()]);
712
- upQueries.push(this.dropViewSql(view));
713
- _d = (_c = downQueries).push;
714
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
715
- case 3:
716
- _d.apply(_c, [_e.sent()]);
717
- downQueries.push(this.createViewSql(view));
718
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
719
- case 4:
720
- _e.sent();
721
- return [2 /*return*/];
722
- }
723
- });
724
- });
725
- };
509
+ async dropView(target) {
510
+ const viewName = InstanceChecker_1.InstanceChecker.isView(target) ? target.name : target;
511
+ const view = await this.getCachedView(viewName);
512
+ const upQueries = [];
513
+ const downQueries = [];
514
+ upQueries.push(await this.deleteViewDefinitionSql(view));
515
+ upQueries.push(this.dropViewSql(view));
516
+ downQueries.push(await this.insertViewDefinitionSql(view));
517
+ downQueries.push(this.createViewSql(view));
518
+ await this.executeQueries(upQueries, downQueries);
519
+ }
726
520
  /**
727
521
  * Renames a table.
728
522
  */
729
- SqlServerQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
730
- return tslib_1.__awaiter(this, void 0, void 0, function () {
731
- var upQueries, downQueries, oldTable, _a, newTable, dbName, schemaName, oldTableName, splittedName, currentDB, columnNames, oldPkName, newPkName;
732
- var _this = this;
733
- return tslib_1.__generator(this, function (_b) {
734
- switch (_b.label) {
735
- case 0:
736
- upQueries = [];
737
- downQueries = [];
738
- if (!(oldTableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
739
- _a = oldTableOrName;
740
- return [3 /*break*/, 3];
741
- case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)];
742
- case 2:
743
- _a = _b.sent();
744
- _b.label = 3;
745
- case 3:
746
- oldTable = _a;
747
- newTable = oldTable.clone();
748
- dbName = undefined;
749
- schemaName = undefined;
750
- oldTableName = oldTable.name;
751
- splittedName = oldTable.name.split(".");
752
- if (splittedName.length === 3) {
753
- dbName = splittedName[0];
754
- oldTableName = splittedName[2];
755
- if (splittedName[1] !== "")
756
- schemaName = splittedName[1];
757
- }
758
- else if (splittedName.length === 2) {
759
- schemaName = splittedName[0];
760
- oldTableName = splittedName[1];
761
- }
762
- newTable.name = this.driver.buildTableName(newTableName, schemaName, dbName);
763
- return [4 /*yield*/, this.getCurrentDatabase()];
764
- case 4:
765
- currentDB = _b.sent();
766
- if (dbName && dbName !== currentDB) {
767
- upQueries.push(new Query_1.Query("USE \"" + dbName + "\""));
768
- downQueries.push(new Query_1.Query("USE \"" + currentDB + "\""));
769
- }
770
- // rename table
771
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + this.escapePath(oldTable, true) + "\", \"" + newTableName + "\""));
772
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + this.escapePath(newTable, true) + "\", \"" + oldTableName + "\""));
773
- // rename primary key constraint
774
- if (newTable.primaryColumns.length > 0) {
775
- columnNames = newTable.primaryColumns.map(function (column) { return column.name; });
776
- oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
777
- newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
778
- // rename primary constraint
779
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + this.escapePath(newTable, true) + "." + oldPkName + "\", \"" + newPkName + "\""));
780
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + this.escapePath(newTable, true) + "." + newPkName + "\", \"" + oldPkName + "\""));
781
- }
782
- // rename unique constraints
783
- newTable.uniques.forEach(function (unique) {
784
- // build new constraint name
785
- var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
786
- // build queries
787
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(newTable, true) + "." + unique.name + "\", \"" + newUniqueName + "\""));
788
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(newTable, true) + "." + newUniqueName + "\", \"" + unique.name + "\""));
789
- // replace constraint name
790
- unique.name = newUniqueName;
791
- });
792
- // rename index constraints
793
- newTable.indices.forEach(function (index) {
794
- // build new constraint name
795
- var newIndexName = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
796
- // build queries
797
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(newTable, true) + "." + index.name + "\", \"" + newIndexName + "\", \"INDEX\""));
798
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(newTable, true) + "." + newIndexName + "\", \"" + index.name + "\", \"INDEX\""));
799
- // replace constraint name
800
- index.name = newIndexName;
801
- });
802
- // rename foreign key constraints
803
- newTable.foreignKeys.forEach(function (foreignKey) {
804
- // build new constraint name
805
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
806
- // build queries
807
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.buildForeignKeyName(foreignKey.name, schemaName, dbName) + "\", \"" + newForeignKeyName + "\""));
808
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.buildForeignKeyName(newForeignKeyName, schemaName, dbName) + "\", \"" + foreignKey.name + "\""));
809
- // replace constraint name
810
- foreignKey.name = newForeignKeyName;
811
- });
812
- // change currently used database back to default db.
813
- if (dbName && dbName !== currentDB) {
814
- upQueries.push(new Query_1.Query("USE \"" + currentDB + "\""));
815
- downQueries.push(new Query_1.Query("USE \"" + dbName + "\""));
816
- }
817
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
818
- case 5:
819
- _b.sent();
820
- // rename old table and replace it in cached tabled;
821
- oldTable.name = newTable.name;
822
- this.replaceCachedTable(oldTable, newTable);
823
- return [2 /*return*/];
824
- }
825
- });
523
+ async renameTable(oldTableOrName, newTableName) {
524
+ const upQueries = [];
525
+ const downQueries = [];
526
+ const oldTable = InstanceChecker_1.InstanceChecker.isTable(oldTableOrName)
527
+ ? oldTableOrName
528
+ : await this.getCachedTable(oldTableOrName);
529
+ let newTable = oldTable.clone();
530
+ // we need database name and schema name to rename FK constraints
531
+ let dbName = undefined;
532
+ let schemaName = undefined;
533
+ let oldTableName = oldTable.name;
534
+ const splittedName = oldTable.name.split(".");
535
+ if (splittedName.length === 3) {
536
+ dbName = splittedName[0];
537
+ oldTableName = splittedName[2];
538
+ if (splittedName[1] !== "")
539
+ schemaName = splittedName[1];
540
+ }
541
+ else if (splittedName.length === 2) {
542
+ schemaName = splittedName[0];
543
+ oldTableName = splittedName[1];
544
+ }
545
+ newTable.name = this.driver.buildTableName(newTableName, schemaName, dbName);
546
+ // if we have tables with database which differs from database specified in config, we must change currently used database.
547
+ // This need because we can not rename objects from another database.
548
+ const currentDB = await this.getCurrentDatabase();
549
+ if (dbName && dbName !== currentDB) {
550
+ upQueries.push(new Query_1.Query(`USE "${dbName}"`));
551
+ downQueries.push(new Query_1.Query(`USE "${currentDB}"`));
552
+ }
553
+ // rename table
554
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(oldTable)}", "${newTableName}"`));
555
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(newTable)}", "${oldTableName}"`));
556
+ // rename primary key constraint
557
+ if (newTable.primaryColumns.length > 0) {
558
+ const columnNames = newTable.primaryColumns.map((column) => column.name);
559
+ const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
560
+ const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
561
+ // rename primary constraint
562
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${oldPkName}", "${newPkName}"`));
563
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${newPkName}", "${oldPkName}"`));
564
+ }
565
+ // rename unique constraints
566
+ newTable.uniques.forEach((unique) => {
567
+ // build new constraint name
568
+ const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
569
+ // build queries
570
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${unique.name}", "${newUniqueName}"`));
571
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${newUniqueName}", "${unique.name}"`));
572
+ // replace constraint name
573
+ unique.name = newUniqueName;
574
+ });
575
+ // rename index constraints
576
+ newTable.indices.forEach((index) => {
577
+ // build new constraint name
578
+ const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
579
+ // build queries
580
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${index.name}", "${newIndexName}", "INDEX"`));
581
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${newIndexName}", "${index.name}", "INDEX"`));
582
+ // replace constraint name
583
+ index.name = newIndexName;
584
+ });
585
+ // rename foreign key constraints
586
+ newTable.foreignKeys.forEach((foreignKey) => {
587
+ // build new constraint name
588
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
589
+ // build queries
590
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.buildForeignKeyName(foreignKey.name, schemaName, dbName)}", "${newForeignKeyName}"`));
591
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.buildForeignKeyName(newForeignKeyName, schemaName, dbName)}", "${foreignKey.name}"`));
592
+ // replace constraint name
593
+ foreignKey.name = newForeignKeyName;
826
594
  });
827
- };
595
+ // change currently used database back to default db.
596
+ if (dbName && dbName !== currentDB) {
597
+ upQueries.push(new Query_1.Query(`USE "${currentDB}"`));
598
+ downQueries.push(new Query_1.Query(`USE "${dbName}"`));
599
+ }
600
+ await this.executeQueries(upQueries, downQueries);
601
+ // rename old table and replace it in cached tabled;
602
+ oldTable.name = newTable.name;
603
+ this.replaceCachedTable(oldTable, newTable);
604
+ }
828
605
  /**
829
606
  * Creates a new column from the column in the table.
830
607
  */
831
- SqlServerQueryRunner.prototype.addColumn = function (tableOrName, column) {
832
- return tslib_1.__awaiter(this, void 0, void 0, function () {
833
- var table, _a, clonedTable, upQueries, downQueries, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, uniqueConstraint, defaultName;
834
- return tslib_1.__generator(this, function (_b) {
835
- switch (_b.label) {
836
- case 0:
837
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
838
- _a = tableOrName;
839
- return [3 /*break*/, 3];
840
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
841
- case 2:
842
- _a = _b.sent();
843
- _b.label = 3;
844
- case 3:
845
- table = _a;
846
- clonedTable = table.clone();
847
- upQueries = [];
848
- downQueries = [];
849
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, column, false, true)));
850
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + column.name + "\""));
851
- // create or update primary key constraint
852
- if (column.isPrimary) {
853
- primaryColumns = clonedTable.primaryColumns;
854
- // if table already have primary key, me must drop it and recreate again
855
- if (primaryColumns.length > 0) {
856
- pkName_1 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
857
- columnNames_1 = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
858
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName_1 + "\""));
859
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName_1 + "\" PRIMARY KEY (" + columnNames_1 + ")"));
860
- }
861
- primaryColumns.push(column);
862
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
863
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
864
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
865
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
866
- }
867
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
868
- if (columnIndex) {
869
- upQueries.push(this.createIndexSql(table, columnIndex));
870
- downQueries.push(this.dropIndexSql(table, columnIndex));
871
- }
872
- // create unique constraint
873
- if (column.isUnique) {
874
- uniqueConstraint = new TableUnique_1.TableUnique({
875
- name: this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),
876
- columnNames: [column.name]
877
- });
878
- clonedTable.uniques.push(uniqueConstraint);
879
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + column.name + "\")"));
880
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
881
- }
882
- // remove default constraint
883
- if (column.default !== null && column.default !== undefined) {
884
- defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, column.name);
885
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + defaultName + "\""));
886
- }
887
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
888
- case 4:
889
- _b.sent();
890
- clonedTable.addColumn(column);
891
- this.replaceCachedTable(table, clonedTable);
892
- return [2 /*return*/];
893
- }
608
+ async addColumn(tableOrName, column) {
609
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
610
+ ? tableOrName
611
+ : await this.getCachedTable(tableOrName);
612
+ const clonedTable = table.clone();
613
+ const upQueries = [];
614
+ const downQueries = [];
615
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, column, false, true)}`));
616
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
617
+ // create or update primary key constraint
618
+ if (column.isPrimary) {
619
+ const primaryColumns = clonedTable.primaryColumns;
620
+ // if table already have primary key, me must drop it and recreate again
621
+ if (primaryColumns.length > 0) {
622
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
623
+ const columnNames = primaryColumns
624
+ .map((column) => `"${column.name}"`)
625
+ .join(", ");
626
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
627
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
628
+ }
629
+ primaryColumns.push(column);
630
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
631
+ const columnNames = primaryColumns
632
+ .map((column) => `"${column.name}"`)
633
+ .join(", ");
634
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
635
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
636
+ }
637
+ // create column index
638
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
639
+ index.columnNames[0] === column.name);
640
+ if (columnIndex) {
641
+ upQueries.push(this.createIndexSql(table, columnIndex));
642
+ downQueries.push(this.dropIndexSql(table, columnIndex));
643
+ }
644
+ // create unique constraint
645
+ if (column.isUnique) {
646
+ const uniqueConstraint = new TableUnique_1.TableUnique({
647
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
648
+ columnNames: [column.name],
894
649
  });
895
- });
896
- };
650
+ clonedTable.uniques.push(uniqueConstraint);
651
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${column.name}")`));
652
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
653
+ }
654
+ // remove default constraint
655
+ if (column.default !== null && column.default !== undefined) {
656
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, column.name);
657
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${defaultName}"`));
658
+ }
659
+ await this.executeQueries(upQueries, downQueries);
660
+ clonedTable.addColumn(column);
661
+ this.replaceCachedTable(table, clonedTable);
662
+ }
897
663
  /**
898
664
  * Creates a new columns from the column in the table.
899
665
  */
900
- SqlServerQueryRunner.prototype.addColumns = function (tableOrName, columns) {
901
- return tslib_1.__awaiter(this, void 0, void 0, function () {
902
- var _this = this;
903
- return tslib_1.__generator(this, function (_a) {
904
- switch (_a.label) {
905
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(columns, function (column) { return _this.addColumn(tableOrName, column); })];
906
- case 1:
907
- _a.sent();
908
- return [2 /*return*/];
909
- }
910
- });
911
- });
912
- };
666
+ async addColumns(tableOrName, columns) {
667
+ for (const column of columns) {
668
+ await this.addColumn(tableOrName, column);
669
+ }
670
+ }
913
671
  /**
914
672
  * Renames column in the given table.
915
673
  */
916
- SqlServerQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) {
917
- return tslib_1.__awaiter(this, void 0, void 0, function () {
918
- var table, _a, oldColumn, newColumn;
919
- return tslib_1.__generator(this, function (_b) {
920
- switch (_b.label) {
921
- case 0:
922
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
923
- _a = tableOrName;
924
- return [3 /*break*/, 3];
925
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
926
- case 2:
927
- _a = _b.sent();
928
- _b.label = 3;
929
- case 3:
930
- table = _a;
931
- oldColumn = oldTableColumnOrName instanceof TableColumn_1.TableColumn ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; });
932
- if (!oldColumn)
933
- throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
934
- newColumn = undefined;
935
- if (newTableColumnOrName instanceof TableColumn_1.TableColumn) {
936
- newColumn = newTableColumnOrName;
937
- }
938
- else {
939
- newColumn = oldColumn.clone();
940
- newColumn.name = newTableColumnOrName;
941
- }
942
- return [4 /*yield*/, this.changeColumn(table, oldColumn, newColumn)];
943
- case 4:
944
- _b.sent();
945
- return [2 /*return*/];
946
- }
947
- });
948
- });
949
- };
674
+ async renameColumn(tableOrName, oldTableColumnOrName, newTableColumnOrName) {
675
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
676
+ ? tableOrName
677
+ : await this.getCachedTable(tableOrName);
678
+ const oldColumn = InstanceChecker_1.InstanceChecker.isTableColumn(oldTableColumnOrName)
679
+ ? oldTableColumnOrName
680
+ : table.columns.find((c) => c.name === oldTableColumnOrName);
681
+ if (!oldColumn)
682
+ throw new error_1.TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
683
+ let newColumn = undefined;
684
+ if (InstanceChecker_1.InstanceChecker.isTableColumn(newTableColumnOrName)) {
685
+ newColumn = newTableColumnOrName;
686
+ }
687
+ else {
688
+ newColumn = oldColumn.clone();
689
+ newColumn.name = newTableColumnOrName;
690
+ }
691
+ await this.changeColumn(table, oldColumn, newColumn);
692
+ }
950
693
  /**
951
694
  * Changes a column in the table.
952
695
  */
953
- SqlServerQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {
954
- return tslib_1.__awaiter(this, void 0, void 0, function () {
955
- var table, _a, clonedTable, upQueries, downQueries, oldColumn, dbName_1, schemaName_1, splittedName, currentDB, primaryColumns, columnNames, oldPkName, newPkName, oldTableColumn, primaryColumns, pkName, columnNames, column, pkName, columnNames, primaryColumn, column, pkName, columnNames, uniqueConstraint, uniqueConstraint, defaultName, defaultName;
956
- var _this = this;
957
- return tslib_1.__generator(this, function (_b) {
958
- switch (_b.label) {
959
- case 0:
960
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
961
- _a = tableOrName;
962
- return [3 /*break*/, 3];
963
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
964
- case 2:
965
- _a = _b.sent();
966
- _b.label = 3;
967
- case 3:
968
- table = _a;
969
- clonedTable = table.clone();
970
- upQueries = [];
971
- downQueries = [];
972
- oldColumn = oldTableColumnOrName instanceof TableColumn_1.TableColumn
973
- ? oldTableColumnOrName
974
- : table.columns.find(function (column) { return column.name === oldTableColumnOrName; });
975
- if (!oldColumn)
976
- throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
977
- if (!((newColumn.isGenerated !== oldColumn.isGenerated && newColumn.generationStrategy !== "uuid") || newColumn.type !== oldColumn.type || newColumn.length !== oldColumn.length)) return [3 /*break*/, 6];
978
- // SQL Server does not support changing of IDENTITY column, so we must drop column and recreate it again.
979
- // Also, we recreate column if column type changed
980
- return [4 /*yield*/, this.dropColumn(table, oldColumn)];
981
- case 4:
982
- // SQL Server does not support changing of IDENTITY column, so we must drop column and recreate it again.
983
- // Also, we recreate column if column type changed
984
- _b.sent();
985
- return [4 /*yield*/, this.addColumn(table, newColumn)];
986
- case 5:
987
- _b.sent();
988
- // update cloned table
989
- clonedTable = table.clone();
990
- return [3 /*break*/, 10];
991
- case 6:
992
- if (!(newColumn.name !== oldColumn.name)) return [3 /*break*/, 8];
993
- dbName_1 = undefined;
994
- schemaName_1 = undefined;
995
- splittedName = table.name.split(".");
996
- if (splittedName.length === 3) {
997
- dbName_1 = splittedName[0];
998
- if (splittedName[1] !== "")
999
- schemaName_1 = splittedName[1];
1000
- }
1001
- else if (splittedName.length === 2) {
1002
- schemaName_1 = splittedName[0];
1003
- }
1004
- return [4 /*yield*/, this.getCurrentDatabase()];
1005
- case 7:
1006
- currentDB = _b.sent();
1007
- if (dbName_1 && dbName_1 !== currentDB) {
1008
- upQueries.push(new Query_1.Query("USE \"" + dbName_1 + "\""));
1009
- downQueries.push(new Query_1.Query("USE \"" + currentDB + "\""));
1010
- }
1011
- // rename the column
1012
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + this.escapePath(table, true) + "." + oldColumn.name + "\", \"" + newColumn.name + "\""));
1013
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + this.escapePath(table, true) + "." + newColumn.name + "\", \"" + oldColumn.name + "\""));
1014
- if (oldColumn.isPrimary === true) {
1015
- primaryColumns = clonedTable.primaryColumns;
1016
- columnNames = primaryColumns.map(function (column) { return column.name; });
1017
- oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
1018
- // replace old column name with new column name
1019
- columnNames.splice(columnNames.indexOf(oldColumn.name), 1);
1020
- columnNames.push(newColumn.name);
1021
- newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
1022
- // rename primary constraint
1023
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + this.escapePath(clonedTable, true) + "." + oldPkName + "\", \"" + newPkName + "\""));
1024
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + this.escapePath(clonedTable, true) + "." + newPkName + "\", \"" + oldPkName + "\""));
1025
- }
1026
- // rename index constraints
1027
- clonedTable.findColumnIndices(oldColumn).forEach(function (index) {
1028
- // build new constraint name
1029
- index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
1030
- index.columnNames.push(newColumn.name);
1031
- var newIndexName = _this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
1032
- // build queries
1033
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + index.name + "\", \"" + newIndexName + "\", \"INDEX\""));
1034
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + newIndexName + "\", \"" + index.name + "\", \"INDEX\""));
1035
- // replace constraint name
1036
- index.name = newIndexName;
1037
- });
1038
- // rename foreign key constraints
1039
- clonedTable.findColumnForeignKeys(oldColumn).forEach(function (foreignKey) {
1040
- // build new constraint name
1041
- foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
1042
- foreignKey.columnNames.push(newColumn.name);
1043
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
1044
- // build queries
1045
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.buildForeignKeyName(foreignKey.name, schemaName_1, dbName_1) + "\", \"" + newForeignKeyName + "\""));
1046
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.buildForeignKeyName(newForeignKeyName, schemaName_1, dbName_1) + "\", \"" + foreignKey.name + "\""));
1047
- // replace constraint name
1048
- foreignKey.name = newForeignKeyName;
1049
- });
1050
- // rename check constraints
1051
- clonedTable.findColumnChecks(oldColumn).forEach(function (check) {
1052
- // build new constraint name
1053
- check.columnNames.splice(check.columnNames.indexOf(oldColumn.name), 1);
1054
- check.columnNames.push(newColumn.name);
1055
- var newCheckName = _this.connection.namingStrategy.checkConstraintName(clonedTable, check.expression);
1056
- // build queries
1057
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + check.name + "\", \"" + newCheckName + "\""));
1058
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + newCheckName + "\", \"" + check.name + "\""));
1059
- // replace constraint name
1060
- check.name = newCheckName;
1061
- });
1062
- // rename unique constraints
1063
- clonedTable.findColumnUniques(oldColumn).forEach(function (unique) {
1064
- // build new constraint name
1065
- unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
1066
- unique.columnNames.push(newColumn.name);
1067
- var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
1068
- // build queries
1069
- upQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + unique.name + "\", \"" + newUniqueName + "\""));
1070
- downQueries.push(new Query_1.Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + newUniqueName + "\", \"" + unique.name + "\""));
1071
- // replace constraint name
1072
- unique.name = newUniqueName;
1073
- });
1074
- // change currently used database back to default db.
1075
- if (dbName_1 && dbName_1 !== currentDB) {
1076
- upQueries.push(new Query_1.Query("USE \"" + currentDB + "\""));
1077
- downQueries.push(new Query_1.Query("USE \"" + dbName_1 + "\""));
1078
- }
1079
- oldTableColumn = clonedTable.columns.find(function (column) { return column.name === oldColumn.name; });
1080
- clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
1081
- oldColumn.name = newColumn.name;
1082
- _b.label = 8;
1083
- case 8:
1084
- if (this.isColumnChanged(oldColumn, newColumn)) {
1085
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN " + this.buildCreateColumnSql(table, newColumn, true, false)));
1086
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN " + this.buildCreateColumnSql(table, oldColumn, true, false)));
1087
- }
1088
- if (newColumn.isPrimary !== oldColumn.isPrimary) {
1089
- primaryColumns = clonedTable.primaryColumns;
1090
- // if primary column state changed, we must always drop existed constraint.
1091
- if (primaryColumns.length > 0) {
1092
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1093
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1094
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1095
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1096
- }
1097
- if (newColumn.isPrimary === true) {
1098
- primaryColumns.push(newColumn);
1099
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
1100
- column.isPrimary = true;
1101
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1102
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1103
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1104
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1105
- }
1106
- else {
1107
- primaryColumn = primaryColumns.find(function (c) { return c.name === newColumn.name; });
1108
- primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
1109
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
1110
- column.isPrimary = false;
1111
- // if we have another primary keys, we must recreate constraint.
1112
- if (primaryColumns.length > 0) {
1113
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1114
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1115
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1116
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1117
- }
1118
- }
1119
- }
1120
- if (newColumn.isUnique !== oldColumn.isUnique) {
1121
- if (newColumn.isUnique === true) {
1122
- uniqueConstraint = new TableUnique_1.TableUnique({
1123
- name: this.connection.namingStrategy.uniqueConstraintName(table.name, [newColumn.name]),
1124
- columnNames: [newColumn.name]
1125
- });
1126
- clonedTable.uniques.push(uniqueConstraint);
1127
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + newColumn.name + "\")"));
1128
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
1129
- }
1130
- else {
1131
- uniqueConstraint = clonedTable.uniques.find(function (unique) {
1132
- return unique.columnNames.length === 1 && !!unique.columnNames.find(function (columnName) { return columnName === newColumn.name; });
1133
- });
1134
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1);
1135
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
1136
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + newColumn.name + "\")"));
1137
- }
1138
- }
1139
- if (newColumn.default !== oldColumn.default) {
1140
- if (newColumn.default !== null && newColumn.default !== undefined) {
1141
- defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, newColumn.name);
1142
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + defaultName + "\" DEFAULT " + newColumn.default + " FOR \"" + newColumn.name + "\""));
1143
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + defaultName + "\""));
1144
- }
1145
- else if (oldColumn.default !== null && oldColumn.default !== undefined) {
1146
- defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, oldColumn.name);
1147
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + defaultName + "\""));
1148
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + defaultName + "\" DEFAULT " + oldColumn.default + " FOR \"" + oldColumn.name + "\""));
1149
- }
1150
- }
1151
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1152
- case 9:
1153
- _b.sent();
1154
- this.replaceCachedTable(table, clonedTable);
1155
- _b.label = 10;
1156
- case 10: return [2 /*return*/];
696
+ async changeColumn(tableOrName, oldTableColumnOrName, newColumn) {
697
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
698
+ ? tableOrName
699
+ : await this.getCachedTable(tableOrName);
700
+ let clonedTable = table.clone();
701
+ const upQueries = [];
702
+ const downQueries = [];
703
+ const oldColumn = InstanceChecker_1.InstanceChecker.isTableColumn(oldTableColumnOrName)
704
+ ? oldTableColumnOrName
705
+ : table.columns.find((column) => column.name === oldTableColumnOrName);
706
+ if (!oldColumn)
707
+ throw new error_1.TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
708
+ if ((newColumn.isGenerated !== oldColumn.isGenerated &&
709
+ newColumn.generationStrategy !== "uuid") ||
710
+ newColumn.type !== oldColumn.type ||
711
+ newColumn.length !== oldColumn.length) {
712
+ // SQL Server does not support changing of IDENTITY column, so we must drop column and recreate it again.
713
+ // Also, we recreate column if column type changed
714
+ await this.dropColumn(table, oldColumn);
715
+ await this.addColumn(table, newColumn);
716
+ // update cloned table
717
+ clonedTable = table.clone();
718
+ }
719
+ else {
720
+ if (newColumn.name !== oldColumn.name) {
721
+ // we need database name and schema name to rename FK constraints
722
+ let dbName = undefined;
723
+ let schemaName = undefined;
724
+ const splittedName = table.name.split(".");
725
+ if (splittedName.length === 3) {
726
+ dbName = splittedName[0];
727
+ if (splittedName[1] !== "")
728
+ schemaName = splittedName[1];
1157
729
  }
1158
- });
1159
- });
1160
- };
730
+ else if (splittedName.length === 2) {
731
+ schemaName = splittedName[0];
732
+ }
733
+ // if we have tables with database which differs from database specified in config, we must change currently used database.
734
+ // This need because we can not rename objects from another database.
735
+ const currentDB = await this.getCurrentDatabase();
736
+ if (dbName && dbName !== currentDB) {
737
+ upQueries.push(new Query_1.Query(`USE "${dbName}"`));
738
+ downQueries.push(new Query_1.Query(`USE "${currentDB}"`));
739
+ }
740
+ // rename the column
741
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(table)}.${oldColumn.name}", "${newColumn.name}"`));
742
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(table)}.${newColumn.name}", "${oldColumn.name}"`));
743
+ if (oldColumn.isPrimary === true) {
744
+ const primaryColumns = clonedTable.primaryColumns;
745
+ // build old primary constraint name
746
+ const columnNames = primaryColumns.map((column) => column.name);
747
+ const oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
748
+ // replace old column name with new column name
749
+ columnNames.splice(columnNames.indexOf(oldColumn.name), 1);
750
+ columnNames.push(newColumn.name);
751
+ // build new primary constraint name
752
+ const newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
753
+ // rename primary constraint
754
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${oldPkName}", "${newPkName}"`));
755
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${newPkName}", "${oldPkName}"`));
756
+ }
757
+ // rename index constraints
758
+ clonedTable.findColumnIndices(oldColumn).forEach((index) => {
759
+ // build new constraint name
760
+ index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
761
+ index.columnNames.push(newColumn.name);
762
+ const newIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
763
+ // build queries
764
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${index.name}", "${newIndexName}", "INDEX"`));
765
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${newIndexName}", "${index.name}", "INDEX"`));
766
+ // replace constraint name
767
+ index.name = newIndexName;
768
+ });
769
+ // rename foreign key constraints
770
+ clonedTable
771
+ .findColumnForeignKeys(oldColumn)
772
+ .forEach((foreignKey) => {
773
+ // build new constraint name
774
+ foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
775
+ foreignKey.columnNames.push(newColumn.name);
776
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
777
+ // build queries
778
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.buildForeignKeyName(foreignKey.name, schemaName, dbName)}", "${newForeignKeyName}"`));
779
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.buildForeignKeyName(newForeignKeyName, schemaName, dbName)}", "${foreignKey.name}"`));
780
+ // replace constraint name
781
+ foreignKey.name = newForeignKeyName;
782
+ });
783
+ // rename check constraints
784
+ clonedTable.findColumnChecks(oldColumn).forEach((check) => {
785
+ // build new constraint name
786
+ check.columnNames.splice(check.columnNames.indexOf(oldColumn.name), 1);
787
+ check.columnNames.push(newColumn.name);
788
+ const newCheckName = this.connection.namingStrategy.checkConstraintName(clonedTable, check.expression);
789
+ // build queries
790
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${check.name}", "${newCheckName}"`));
791
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${newCheckName}", "${check.name}"`));
792
+ // replace constraint name
793
+ check.name = newCheckName;
794
+ });
795
+ // rename unique constraints
796
+ clonedTable.findColumnUniques(oldColumn).forEach((unique) => {
797
+ // build new constraint name
798
+ unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
799
+ unique.columnNames.push(newColumn.name);
800
+ const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
801
+ // build queries
802
+ upQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${unique.name}", "${newUniqueName}"`));
803
+ downQueries.push(new Query_1.Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${newUniqueName}", "${unique.name}"`));
804
+ // replace constraint name
805
+ unique.name = newUniqueName;
806
+ });
807
+ // rename default constraints
808
+ if (oldColumn.default !== null &&
809
+ oldColumn.default !== undefined) {
810
+ const oldDefaultName = this.connection.namingStrategy.defaultConstraintName(table, oldColumn.name);
811
+ const newDefaultName = this.connection.namingStrategy.defaultConstraintName(table, newColumn.name);
812
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${oldDefaultName}"`));
813
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${oldDefaultName}" DEFAULT ${oldColumn.default} FOR "${newColumn.name}"`));
814
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${newDefaultName}" DEFAULT ${oldColumn.default} FOR "${newColumn.name}"`));
815
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${newDefaultName}"`));
816
+ }
817
+ // change currently used database back to default db.
818
+ if (dbName && dbName !== currentDB) {
819
+ upQueries.push(new Query_1.Query(`USE "${currentDB}"`));
820
+ downQueries.push(new Query_1.Query(`USE "${dbName}"`));
821
+ }
822
+ // rename old column in the Table object
823
+ const oldTableColumn = clonedTable.columns.find((column) => column.name === oldColumn.name);
824
+ clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
825
+ oldColumn.name = newColumn.name;
826
+ }
827
+ if (this.isColumnChanged(oldColumn, newColumn, false)) {
828
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN ${this.buildCreateColumnSql(table, newColumn, true, false)}`));
829
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN ${this.buildCreateColumnSql(table, oldColumn, true, false)}`));
830
+ }
831
+ if (newColumn.isPrimary !== oldColumn.isPrimary) {
832
+ const primaryColumns = clonedTable.primaryColumns;
833
+ // if primary column state changed, we must always drop existed constraint.
834
+ if (primaryColumns.length > 0) {
835
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
836
+ const columnNames = primaryColumns
837
+ .map((column) => `"${column.name}"`)
838
+ .join(", ");
839
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
840
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
841
+ }
842
+ if (newColumn.isPrimary === true) {
843
+ primaryColumns.push(newColumn);
844
+ // update column in table
845
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
846
+ column.isPrimary = true;
847
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
848
+ const columnNames = primaryColumns
849
+ .map((column) => `"${column.name}"`)
850
+ .join(", ");
851
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
852
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
853
+ }
854
+ else {
855
+ const primaryColumn = primaryColumns.find((c) => c.name === newColumn.name);
856
+ primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
857
+ // update column in table
858
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
859
+ column.isPrimary = false;
860
+ // if we have another primary keys, we must recreate constraint.
861
+ if (primaryColumns.length > 0) {
862
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
863
+ const columnNames = primaryColumns
864
+ .map((column) => `"${column.name}"`)
865
+ .join(", ");
866
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
867
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
868
+ }
869
+ }
870
+ }
871
+ if (newColumn.isUnique !== oldColumn.isUnique) {
872
+ if (newColumn.isUnique === true) {
873
+ const uniqueConstraint = new TableUnique_1.TableUnique({
874
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [newColumn.name]),
875
+ columnNames: [newColumn.name],
876
+ });
877
+ clonedTable.uniques.push(uniqueConstraint);
878
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${newColumn.name}")`));
879
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
880
+ }
881
+ else {
882
+ const uniqueConstraint = clonedTable.uniques.find((unique) => {
883
+ return (unique.columnNames.length === 1 &&
884
+ !!unique.columnNames.find((columnName) => columnName === newColumn.name));
885
+ });
886
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1);
887
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
888
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${newColumn.name}")`));
889
+ }
890
+ }
891
+ if (newColumn.default !== oldColumn.default) {
892
+ // (note) if there is a previous default, we need to drop its constraint first
893
+ if (oldColumn.default !== null &&
894
+ oldColumn.default !== undefined) {
895
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, oldColumn.name);
896
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${defaultName}"`));
897
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${defaultName}" DEFAULT ${oldColumn.default} FOR "${oldColumn.name}"`));
898
+ }
899
+ if (newColumn.default !== null &&
900
+ newColumn.default !== undefined) {
901
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, newColumn.name);
902
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${defaultName}" DEFAULT ${newColumn.default} FOR "${newColumn.name}"`));
903
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${defaultName}"`));
904
+ }
905
+ }
906
+ await this.executeQueries(upQueries, downQueries);
907
+ this.replaceCachedTable(table, clonedTable);
908
+ }
909
+ }
1161
910
  /**
1162
911
  * Changes a column in the table.
1163
912
  */
1164
- SqlServerQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
1165
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1166
- var _this = this;
1167
- return tslib_1.__generator(this, function (_a) {
1168
- switch (_a.label) {
1169
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(changedColumns, function (changedColumn) { return _this.changeColumn(tableOrName, changedColumn.oldColumn, changedColumn.newColumn); })];
1170
- case 1:
1171
- _a.sent();
1172
- return [2 /*return*/];
1173
- }
1174
- });
1175
- });
1176
- };
913
+ async changeColumns(tableOrName, changedColumns) {
914
+ for (const { oldColumn, newColumn } of changedColumns) {
915
+ await this.changeColumn(tableOrName, oldColumn, newColumn);
916
+ }
917
+ }
1177
918
  /**
1178
919
  * Drops column in the table.
1179
920
  */
1180
- SqlServerQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {
1181
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1182
- var table, _a, column, clonedTable, upQueries, downQueries, pkName, columnNames, tableColumn, pkName_2, columnNames_2, columnIndex, columnCheck, columnUnique, defaultName;
1183
- return tslib_1.__generator(this, function (_b) {
1184
- switch (_b.label) {
1185
- case 0:
1186
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1187
- _a = tableOrName;
1188
- return [3 /*break*/, 3];
1189
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1190
- case 2:
1191
- _a = _b.sent();
1192
- _b.label = 3;
1193
- case 3:
1194
- table = _a;
1195
- column = columnOrName instanceof TableColumn_1.TableColumn ? columnOrName : table.findColumnByName(columnOrName);
1196
- if (!column)
1197
- throw new Error("Column \"" + columnOrName + "\" was not found in table \"" + table.name + "\"");
1198
- clonedTable = table.clone();
1199
- upQueries = [];
1200
- downQueries = [];
1201
- // drop primary key constraint
1202
- if (column.isPrimary) {
1203
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; }));
1204
- columnNames = clonedTable.primaryColumns.map(function (primaryColumn) { return "\"" + primaryColumn.name + "\""; }).join(", ");
1205
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP CONSTRAINT \"" + pkName + "\""));
1206
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1207
- tableColumn = clonedTable.findColumnByName(column.name);
1208
- tableColumn.isPrimary = false;
1209
- // if primary key have multiple columns, we must recreate it without dropped column
1210
- if (clonedTable.primaryColumns.length > 0) {
1211
- pkName_2 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; }));
1212
- columnNames_2 = clonedTable.primaryColumns.map(function (primaryColumn) { return "\"" + primaryColumn.name + "\""; }).join(", ");
1213
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD CONSTRAINT \"" + pkName_2 + "\" PRIMARY KEY (" + columnNames_2 + ")"));
1214
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP CONSTRAINT \"" + pkName_2 + "\""));
1215
- }
1216
- }
1217
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
1218
- if (columnIndex) {
1219
- clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
1220
- upQueries.push(this.dropIndexSql(table, columnIndex));
1221
- downQueries.push(this.createIndexSql(table, columnIndex));
1222
- }
1223
- columnCheck = clonedTable.checks.find(function (check) { return !!check.columnNames && check.columnNames.length === 1 && check.columnNames[0] === column.name; });
1224
- if (columnCheck) {
1225
- clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1);
1226
- upQueries.push(this.dropCheckConstraintSql(table, columnCheck));
1227
- downQueries.push(this.createCheckConstraintSql(table, columnCheck));
1228
- }
1229
- columnUnique = clonedTable.uniques.find(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });
1230
- if (columnUnique) {
1231
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1);
1232
- upQueries.push(this.dropUniqueConstraintSql(table, columnUnique));
1233
- downQueries.push(this.createUniqueConstraintSql(table, columnUnique));
1234
- }
1235
- // drop default constraint
1236
- if (column.default !== null && column.default !== undefined) {
1237
- defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, column.name);
1238
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + defaultName + "\""));
1239
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + defaultName + "\" DEFAULT " + column.default + " FOR \"" + column.name + "\""));
1240
- }
1241
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + column.name + "\""));
1242
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, column, false, false)));
1243
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1244
- case 4:
1245
- _b.sent();
1246
- clonedTable.removeColumn(column);
1247
- this.replaceCachedTable(table, clonedTable);
1248
- return [2 /*return*/];
1249
- }
1250
- });
1251
- });
1252
- };
921
+ async dropColumn(tableOrName, columnOrName) {
922
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
923
+ ? tableOrName
924
+ : await this.getCachedTable(tableOrName);
925
+ const column = InstanceChecker_1.InstanceChecker.isTableColumn(columnOrName)
926
+ ? columnOrName
927
+ : table.findColumnByName(columnOrName);
928
+ if (!column)
929
+ throw new error_1.TypeORMError(`Column "${columnOrName}" was not found in table "${table.name}"`);
930
+ const clonedTable = table.clone();
931
+ const upQueries = [];
932
+ const downQueries = [];
933
+ // drop primary key constraint
934
+ if (column.isPrimary) {
935
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
936
+ const columnNames = clonedTable.primaryColumns
937
+ .map((primaryColumn) => `"${primaryColumn.name}"`)
938
+ .join(", ");
939
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP CONSTRAINT "${pkName}"`));
940
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
941
+ // update column in table
942
+ const tableColumn = clonedTable.findColumnByName(column.name);
943
+ tableColumn.isPrimary = false;
944
+ // if primary key have multiple columns, we must recreate it without dropped column
945
+ if (clonedTable.primaryColumns.length > 0) {
946
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
947
+ const columnNames = clonedTable.primaryColumns
948
+ .map((primaryColumn) => `"${primaryColumn.name}"`)
949
+ .join(", ");
950
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
951
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP CONSTRAINT "${pkName}"`));
952
+ }
953
+ }
954
+ // drop column index
955
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
956
+ index.columnNames[0] === column.name);
957
+ if (columnIndex) {
958
+ clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
959
+ upQueries.push(this.dropIndexSql(table, columnIndex));
960
+ downQueries.push(this.createIndexSql(table, columnIndex));
961
+ }
962
+ // drop column check
963
+ const columnCheck = clonedTable.checks.find((check) => !!check.columnNames &&
964
+ check.columnNames.length === 1 &&
965
+ check.columnNames[0] === column.name);
966
+ if (columnCheck) {
967
+ clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1);
968
+ upQueries.push(this.dropCheckConstraintSql(table, columnCheck));
969
+ downQueries.push(this.createCheckConstraintSql(table, columnCheck));
970
+ }
971
+ // drop column unique
972
+ const columnUnique = clonedTable.uniques.find((unique) => unique.columnNames.length === 1 &&
973
+ unique.columnNames[0] === column.name);
974
+ if (columnUnique) {
975
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1);
976
+ upQueries.push(this.dropUniqueConstraintSql(table, columnUnique));
977
+ downQueries.push(this.createUniqueConstraintSql(table, columnUnique));
978
+ }
979
+ // drop default constraint
980
+ if (column.default !== null && column.default !== undefined) {
981
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, column.name);
982
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${defaultName}"`));
983
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${defaultName}" DEFAULT ${column.default} FOR "${column.name}"`));
984
+ }
985
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
986
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, column, false, false)}`));
987
+ await this.executeQueries(upQueries, downQueries);
988
+ clonedTable.removeColumn(column);
989
+ this.replaceCachedTable(table, clonedTable);
990
+ }
1253
991
  /**
1254
992
  * Drops the columns in the table.
1255
993
  */
1256
- SqlServerQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
1257
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1258
- var _this = this;
1259
- return tslib_1.__generator(this, function (_a) {
1260
- switch (_a.label) {
1261
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(columns, function (column) { return _this.dropColumn(tableOrName, column); })];
1262
- case 1:
1263
- _a.sent();
1264
- return [2 /*return*/];
1265
- }
1266
- });
1267
- });
1268
- };
994
+ async dropColumns(tableOrName, columns) {
995
+ for (const column of columns) {
996
+ await this.dropColumn(tableOrName, column);
997
+ }
998
+ }
1269
999
  /**
1270
1000
  * Creates a new primary key.
1271
1001
  */
1272
- SqlServerQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) {
1273
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1274
- var table, _a, clonedTable, up, down;
1275
- return tslib_1.__generator(this, function (_b) {
1276
- switch (_b.label) {
1277
- case 0:
1278
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1279
- _a = tableOrName;
1280
- return [3 /*break*/, 3];
1281
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1282
- case 2:
1283
- _a = _b.sent();
1284
- _b.label = 3;
1285
- case 3:
1286
- table = _a;
1287
- clonedTable = table.clone();
1288
- up = this.createPrimaryKeySql(table, columnNames);
1289
- // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
1290
- clonedTable.columns.forEach(function (column) {
1291
- if (columnNames.find(function (columnName) { return columnName === column.name; }))
1292
- column.isPrimary = true;
1293
- });
1294
- down = this.dropPrimaryKeySql(clonedTable);
1295
- return [4 /*yield*/, this.executeQueries(up, down)];
1296
- case 4:
1297
- _b.sent();
1298
- this.replaceCachedTable(table, clonedTable);
1299
- return [2 /*return*/];
1300
- }
1301
- });
1002
+ async createPrimaryKey(tableOrName, columnNames) {
1003
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1004
+ ? tableOrName
1005
+ : await this.getCachedTable(tableOrName);
1006
+ const clonedTable = table.clone();
1007
+ const up = this.createPrimaryKeySql(table, columnNames);
1008
+ // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
1009
+ clonedTable.columns.forEach((column) => {
1010
+ if (columnNames.find((columnName) => columnName === column.name))
1011
+ column.isPrimary = true;
1302
1012
  });
1303
- };
1013
+ const down = this.dropPrimaryKeySql(clonedTable);
1014
+ await this.executeQueries(up, down);
1015
+ this.replaceCachedTable(table, clonedTable);
1016
+ }
1304
1017
  /**
1305
1018
  * Updates composite primary keys.
1306
1019
  */
1307
- SqlServerQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) {
1308
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1309
- var table, _a, clonedTable, columnNames, upQueries, downQueries, primaryColumns, pkName_3, columnNamesString_1, pkName, columnNamesString;
1310
- return tslib_1.__generator(this, function (_b) {
1311
- switch (_b.label) {
1312
- case 0:
1313
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1314
- _a = tableOrName;
1315
- return [3 /*break*/, 3];
1316
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1317
- case 2:
1318
- _a = _b.sent();
1319
- _b.label = 3;
1320
- case 3:
1321
- table = _a;
1322
- clonedTable = table.clone();
1323
- columnNames = columns.map(function (column) { return column.name; });
1324
- upQueries = [];
1325
- downQueries = [];
1326
- primaryColumns = clonedTable.primaryColumns;
1327
- if (primaryColumns.length > 0) {
1328
- pkName_3 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1329
- columnNamesString_1 = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1330
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName_3 + "\""));
1331
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName_3 + "\" PRIMARY KEY (" + columnNamesString_1 + ")"));
1332
- }
1333
- // update columns in table.
1334
- clonedTable.columns
1335
- .filter(function (column) { return columnNames.indexOf(column.name) !== -1; })
1336
- .forEach(function (column) { return column.isPrimary = true; });
1337
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, columnNames);
1338
- columnNamesString = columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
1339
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNamesString + ")"));
1340
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1341
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1342
- case 4:
1343
- _b.sent();
1344
- this.replaceCachedTable(table, clonedTable);
1345
- return [2 /*return*/];
1346
- }
1347
- });
1348
- });
1349
- };
1020
+ async updatePrimaryKeys(tableOrName, columns) {
1021
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1022
+ ? tableOrName
1023
+ : await this.getCachedTable(tableOrName);
1024
+ const clonedTable = table.clone();
1025
+ const columnNames = columns.map((column) => column.name);
1026
+ const upQueries = [];
1027
+ const downQueries = [];
1028
+ // if table already have primary columns, we must drop them.
1029
+ const primaryColumns = clonedTable.primaryColumns;
1030
+ if (primaryColumns.length > 0) {
1031
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
1032
+ const columnNamesString = primaryColumns
1033
+ .map((column) => `"${column.name}"`)
1034
+ .join(", ");
1035
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
1036
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNamesString})`));
1037
+ }
1038
+ // update columns in table.
1039
+ clonedTable.columns
1040
+ .filter((column) => columnNames.indexOf(column.name) !== -1)
1041
+ .forEach((column) => (column.isPrimary = true));
1042
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
1043
+ const columnNamesString = columnNames
1044
+ .map((columnName) => `"${columnName}"`)
1045
+ .join(", ");
1046
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNamesString})`));
1047
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
1048
+ await this.executeQueries(upQueries, downQueries);
1049
+ this.replaceCachedTable(table, clonedTable);
1050
+ }
1350
1051
  /**
1351
1052
  * Drops a primary key.
1352
1053
  */
1353
- SqlServerQueryRunner.prototype.dropPrimaryKey = function (tableOrName) {
1354
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1355
- var table, _a, up, down;
1356
- return tslib_1.__generator(this, function (_b) {
1357
- switch (_b.label) {
1358
- case 0:
1359
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1360
- _a = tableOrName;
1361
- return [3 /*break*/, 3];
1362
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1363
- case 2:
1364
- _a = _b.sent();
1365
- _b.label = 3;
1366
- case 3:
1367
- table = _a;
1368
- up = this.dropPrimaryKeySql(table);
1369
- down = this.createPrimaryKeySql(table, table.primaryColumns.map(function (column) { return column.name; }));
1370
- return [4 /*yield*/, this.executeQueries(up, down)];
1371
- case 4:
1372
- _b.sent();
1373
- table.primaryColumns.forEach(function (column) {
1374
- column.isPrimary = false;
1375
- });
1376
- return [2 /*return*/];
1377
- }
1378
- });
1054
+ async dropPrimaryKey(tableOrName) {
1055
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1056
+ ? tableOrName
1057
+ : await this.getCachedTable(tableOrName);
1058
+ const up = this.dropPrimaryKeySql(table);
1059
+ const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
1060
+ await this.executeQueries(up, down);
1061
+ table.primaryColumns.forEach((column) => {
1062
+ column.isPrimary = false;
1379
1063
  });
1380
- };
1064
+ }
1381
1065
  /**
1382
1066
  * Creates a new unique constraint.
1383
1067
  */
1384
- SqlServerQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) {
1385
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1386
- var table, _a, up, down;
1387
- return tslib_1.__generator(this, function (_b) {
1388
- switch (_b.label) {
1389
- case 0:
1390
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1391
- _a = tableOrName;
1392
- return [3 /*break*/, 3];
1393
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1394
- case 2:
1395
- _a = _b.sent();
1396
- _b.label = 3;
1397
- case 3:
1398
- table = _a;
1399
- // new unique constraint may be passed without name. In this case we generate unique name manually.
1400
- if (!uniqueConstraint.name)
1401
- uniqueConstraint.name = this.connection.namingStrategy.uniqueConstraintName(table.name, uniqueConstraint.columnNames);
1402
- up = this.createUniqueConstraintSql(table, uniqueConstraint);
1403
- down = this.dropUniqueConstraintSql(table, uniqueConstraint);
1404
- return [4 /*yield*/, this.executeQueries(up, down)];
1405
- case 4:
1406
- _b.sent();
1407
- table.addUniqueConstraint(uniqueConstraint);
1408
- return [2 /*return*/];
1409
- }
1410
- });
1411
- });
1412
- };
1068
+ async createUniqueConstraint(tableOrName, uniqueConstraint) {
1069
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1070
+ ? tableOrName
1071
+ : await this.getCachedTable(tableOrName);
1072
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
1073
+ if (!uniqueConstraint.name)
1074
+ uniqueConstraint.name =
1075
+ this.connection.namingStrategy.uniqueConstraintName(table, uniqueConstraint.columnNames);
1076
+ const up = this.createUniqueConstraintSql(table, uniqueConstraint);
1077
+ const down = this.dropUniqueConstraintSql(table, uniqueConstraint);
1078
+ await this.executeQueries(up, down);
1079
+ table.addUniqueConstraint(uniqueConstraint);
1080
+ }
1413
1081
  /**
1414
1082
  * Creates a new unique constraints.
1415
1083
  */
1416
- SqlServerQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
1417
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1418
- var promises;
1419
- var _this = this;
1420
- return tslib_1.__generator(this, function (_a) {
1421
- switch (_a.label) {
1422
- case 0:
1423
- promises = uniqueConstraints.map(function (uniqueConstraint) { return _this.createUniqueConstraint(tableOrName, uniqueConstraint); });
1424
- return [4 /*yield*/, Promise.all(promises)];
1425
- case 1:
1426
- _a.sent();
1427
- return [2 /*return*/];
1428
- }
1429
- });
1430
- });
1431
- };
1084
+ async createUniqueConstraints(tableOrName, uniqueConstraints) {
1085
+ const promises = uniqueConstraints.map((uniqueConstraint) => this.createUniqueConstraint(tableOrName, uniqueConstraint));
1086
+ await Promise.all(promises);
1087
+ }
1432
1088
  /**
1433
1089
  * Drops unique constraint.
1434
1090
  */
1435
- SqlServerQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) {
1436
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1437
- var table, _a, uniqueConstraint, up, down;
1438
- return tslib_1.__generator(this, function (_b) {
1439
- switch (_b.label) {
1440
- case 0:
1441
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1442
- _a = tableOrName;
1443
- return [3 /*break*/, 3];
1444
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1445
- case 2:
1446
- _a = _b.sent();
1447
- _b.label = 3;
1448
- case 3:
1449
- table = _a;
1450
- uniqueConstraint = uniqueOrName instanceof TableUnique_1.TableUnique ? uniqueOrName : table.uniques.find(function (u) { return u.name === uniqueOrName; });
1451
- if (!uniqueConstraint)
1452
- throw new Error("Supplied unique constraint was not found in table " + table.name);
1453
- up = this.dropUniqueConstraintSql(table, uniqueConstraint);
1454
- down = this.createUniqueConstraintSql(table, uniqueConstraint);
1455
- return [4 /*yield*/, this.executeQueries(up, down)];
1456
- case 4:
1457
- _b.sent();
1458
- table.removeUniqueConstraint(uniqueConstraint);
1459
- return [2 /*return*/];
1460
- }
1461
- });
1462
- });
1463
- };
1091
+ async dropUniqueConstraint(tableOrName, uniqueOrName) {
1092
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1093
+ ? tableOrName
1094
+ : await this.getCachedTable(tableOrName);
1095
+ const uniqueConstraint = InstanceChecker_1.InstanceChecker.isTableUnique(uniqueOrName)
1096
+ ? uniqueOrName
1097
+ : table.uniques.find((u) => u.name === uniqueOrName);
1098
+ if (!uniqueConstraint)
1099
+ throw new error_1.TypeORMError(`Supplied unique constraint was not found in table ${table.name}`);
1100
+ const up = this.dropUniqueConstraintSql(table, uniqueConstraint);
1101
+ const down = this.createUniqueConstraintSql(table, uniqueConstraint);
1102
+ await this.executeQueries(up, down);
1103
+ table.removeUniqueConstraint(uniqueConstraint);
1104
+ }
1464
1105
  /**
1465
1106
  * Drops an unique constraints.
1466
1107
  */
1467
- SqlServerQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
1468
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1469
- var promises;
1470
- var _this = this;
1471
- return tslib_1.__generator(this, function (_a) {
1472
- switch (_a.label) {
1473
- case 0:
1474
- promises = uniqueConstraints.map(function (uniqueConstraint) { return _this.dropUniqueConstraint(tableOrName, uniqueConstraint); });
1475
- return [4 /*yield*/, Promise.all(promises)];
1476
- case 1:
1477
- _a.sent();
1478
- return [2 /*return*/];
1479
- }
1480
- });
1481
- });
1482
- };
1108
+ async dropUniqueConstraints(tableOrName, uniqueConstraints) {
1109
+ const promises = uniqueConstraints.map((uniqueConstraint) => this.dropUniqueConstraint(tableOrName, uniqueConstraint));
1110
+ await Promise.all(promises);
1111
+ }
1483
1112
  /**
1484
1113
  * Creates a new check constraint.
1485
1114
  */
1486
- SqlServerQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) {
1487
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1488
- var table, _a, up, down;
1489
- return tslib_1.__generator(this, function (_b) {
1490
- switch (_b.label) {
1491
- case 0:
1492
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1493
- _a = tableOrName;
1494
- return [3 /*break*/, 3];
1495
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1496
- case 2:
1497
- _a = _b.sent();
1498
- _b.label = 3;
1499
- case 3:
1500
- table = _a;
1501
- // new unique constraint may be passed without name. In this case we generate unique name manually.
1502
- if (!checkConstraint.name)
1503
- checkConstraint.name = this.connection.namingStrategy.checkConstraintName(table.name, checkConstraint.expression);
1504
- up = this.createCheckConstraintSql(table, checkConstraint);
1505
- down = this.dropCheckConstraintSql(table, checkConstraint);
1506
- return [4 /*yield*/, this.executeQueries(up, down)];
1507
- case 4:
1508
- _b.sent();
1509
- table.addCheckConstraint(checkConstraint);
1510
- return [2 /*return*/];
1511
- }
1512
- });
1513
- });
1514
- };
1115
+ async createCheckConstraint(tableOrName, checkConstraint) {
1116
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1117
+ ? tableOrName
1118
+ : await this.getCachedTable(tableOrName);
1119
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
1120
+ if (!checkConstraint.name)
1121
+ checkConstraint.name =
1122
+ this.connection.namingStrategy.checkConstraintName(table, checkConstraint.expression);
1123
+ const up = this.createCheckConstraintSql(table, checkConstraint);
1124
+ const down = this.dropCheckConstraintSql(table, checkConstraint);
1125
+ await this.executeQueries(up, down);
1126
+ table.addCheckConstraint(checkConstraint);
1127
+ }
1515
1128
  /**
1516
1129
  * Creates a new check constraints.
1517
1130
  */
1518
- SqlServerQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) {
1519
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1520
- var promises;
1521
- var _this = this;
1522
- return tslib_1.__generator(this, function (_a) {
1523
- switch (_a.label) {
1524
- case 0:
1525
- promises = checkConstraints.map(function (checkConstraint) { return _this.createCheckConstraint(tableOrName, checkConstraint); });
1526
- return [4 /*yield*/, Promise.all(promises)];
1527
- case 1:
1528
- _a.sent();
1529
- return [2 /*return*/];
1530
- }
1531
- });
1532
- });
1533
- };
1131
+ async createCheckConstraints(tableOrName, checkConstraints) {
1132
+ const promises = checkConstraints.map((checkConstraint) => this.createCheckConstraint(tableOrName, checkConstraint));
1133
+ await Promise.all(promises);
1134
+ }
1534
1135
  /**
1535
1136
  * Drops check constraint.
1536
1137
  */
1537
- SqlServerQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) {
1538
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1539
- var table, _a, checkConstraint, up, down;
1540
- return tslib_1.__generator(this, function (_b) {
1541
- switch (_b.label) {
1542
- case 0:
1543
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1544
- _a = tableOrName;
1545
- return [3 /*break*/, 3];
1546
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1547
- case 2:
1548
- _a = _b.sent();
1549
- _b.label = 3;
1550
- case 3:
1551
- table = _a;
1552
- checkConstraint = checkOrName instanceof TableCheck_1.TableCheck ? checkOrName : table.checks.find(function (c) { return c.name === checkOrName; });
1553
- if (!checkConstraint)
1554
- throw new Error("Supplied check constraint was not found in table " + table.name);
1555
- up = this.dropCheckConstraintSql(table, checkConstraint);
1556
- down = this.createCheckConstraintSql(table, checkConstraint);
1557
- return [4 /*yield*/, this.executeQueries(up, down)];
1558
- case 4:
1559
- _b.sent();
1560
- table.removeCheckConstraint(checkConstraint);
1561
- return [2 /*return*/];
1562
- }
1563
- });
1564
- });
1565
- };
1138
+ async dropCheckConstraint(tableOrName, checkOrName) {
1139
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1140
+ ? tableOrName
1141
+ : await this.getCachedTable(tableOrName);
1142
+ const checkConstraint = InstanceChecker_1.InstanceChecker.isTableCheck(checkOrName)
1143
+ ? checkOrName
1144
+ : table.checks.find((c) => c.name === checkOrName);
1145
+ if (!checkConstraint)
1146
+ throw new error_1.TypeORMError(`Supplied check constraint was not found in table ${table.name}`);
1147
+ const up = this.dropCheckConstraintSql(table, checkConstraint);
1148
+ const down = this.createCheckConstraintSql(table, checkConstraint);
1149
+ await this.executeQueries(up, down);
1150
+ table.removeCheckConstraint(checkConstraint);
1151
+ }
1566
1152
  /**
1567
1153
  * Drops check constraints.
1568
1154
  */
1569
- SqlServerQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) {
1570
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1571
- var promises;
1572
- var _this = this;
1573
- return tslib_1.__generator(this, function (_a) {
1574
- switch (_a.label) {
1575
- case 0:
1576
- promises = checkConstraints.map(function (checkConstraint) { return _this.dropCheckConstraint(tableOrName, checkConstraint); });
1577
- return [4 /*yield*/, Promise.all(promises)];
1578
- case 1:
1579
- _a.sent();
1580
- return [2 /*return*/];
1581
- }
1582
- });
1583
- });
1584
- };
1155
+ async dropCheckConstraints(tableOrName, checkConstraints) {
1156
+ const promises = checkConstraints.map((checkConstraint) => this.dropCheckConstraint(tableOrName, checkConstraint));
1157
+ await Promise.all(promises);
1158
+ }
1585
1159
  /**
1586
1160
  * Creates a new exclusion constraint.
1587
1161
  */
1588
- SqlServerQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) {
1589
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1590
- return tslib_1.__generator(this, function (_a) {
1591
- throw new Error("SqlServer does not support exclusion constraints.");
1592
- });
1593
- });
1594
- };
1162
+ async createExclusionConstraint(tableOrName, exclusionConstraint) {
1163
+ throw new error_1.TypeORMError(`SqlServer does not support exclusion constraints.`);
1164
+ }
1595
1165
  /**
1596
1166
  * Creates a new exclusion constraints.
1597
1167
  */
1598
- SqlServerQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) {
1599
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1600
- return tslib_1.__generator(this, function (_a) {
1601
- throw new Error("SqlServer does not support exclusion constraints.");
1602
- });
1603
- });
1604
- };
1168
+ async createExclusionConstraints(tableOrName, exclusionConstraints) {
1169
+ throw new error_1.TypeORMError(`SqlServer does not support exclusion constraints.`);
1170
+ }
1605
1171
  /**
1606
1172
  * Drops exclusion constraint.
1607
1173
  */
1608
- SqlServerQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) {
1609
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1610
- return tslib_1.__generator(this, function (_a) {
1611
- throw new Error("SqlServer does not support exclusion constraints.");
1612
- });
1613
- });
1614
- };
1174
+ async dropExclusionConstraint(tableOrName, exclusionOrName) {
1175
+ throw new error_1.TypeORMError(`SqlServer does not support exclusion constraints.`);
1176
+ }
1615
1177
  /**
1616
1178
  * Drops exclusion constraints.
1617
1179
  */
1618
- SqlServerQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) {
1619
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1620
- return tslib_1.__generator(this, function (_a) {
1621
- throw new Error("SqlServer does not support exclusion constraints.");
1622
- });
1623
- });
1624
- };
1180
+ async dropExclusionConstraints(tableOrName, exclusionConstraints) {
1181
+ throw new error_1.TypeORMError(`SqlServer does not support exclusion constraints.`);
1182
+ }
1625
1183
  /**
1626
1184
  * Creates a new foreign key.
1627
1185
  */
1628
- SqlServerQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) {
1629
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1630
- var table, _a, up, down;
1631
- return tslib_1.__generator(this, function (_b) {
1632
- switch (_b.label) {
1633
- case 0:
1634
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1635
- _a = tableOrName;
1636
- return [3 /*break*/, 3];
1637
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1638
- case 2:
1639
- _a = _b.sent();
1640
- _b.label = 3;
1641
- case 3:
1642
- table = _a;
1643
- // new FK may be passed without name. In this case we generate FK name manually.
1644
- if (!foreignKey.name)
1645
- foreignKey.name = this.connection.namingStrategy.foreignKeyName(table.name, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
1646
- up = this.createForeignKeySql(table, foreignKey);
1647
- down = this.dropForeignKeySql(table, foreignKey);
1648
- return [4 /*yield*/, this.executeQueries(up, down)];
1649
- case 4:
1650
- _b.sent();
1651
- table.addForeignKey(foreignKey);
1652
- return [2 /*return*/];
1653
- }
1654
- });
1655
- });
1656
- };
1186
+ async createForeignKey(tableOrName, foreignKey) {
1187
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1188
+ ? tableOrName
1189
+ : await this.getCachedTable(tableOrName);
1190
+ const metadata = this.connection.hasMetadata(table.name)
1191
+ ? this.connection.getMetadata(table.name)
1192
+ : undefined;
1193
+ if (metadata &&
1194
+ metadata.treeParentRelation &&
1195
+ metadata.treeParentRelation.isTreeParent &&
1196
+ metadata.foreignKeys.find((foreignKey) => foreignKey.onDelete !== "NO ACTION"))
1197
+ throw new error_1.TypeORMError("SqlServer does not support options in TreeParent.");
1198
+ // new FK may be passed without name. In this case we generate FK name manually.
1199
+ if (!foreignKey.name)
1200
+ foreignKey.name = this.connection.namingStrategy.foreignKeyName(table, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
1201
+ const up = this.createForeignKeySql(table, foreignKey);
1202
+ const down = this.dropForeignKeySql(table, foreignKey);
1203
+ await this.executeQueries(up, down);
1204
+ table.addForeignKey(foreignKey);
1205
+ }
1657
1206
  /**
1658
1207
  * Creates a new foreign keys.
1659
1208
  */
1660
- SqlServerQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
1661
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1662
- var promises;
1663
- var _this = this;
1664
- return tslib_1.__generator(this, function (_a) {
1665
- switch (_a.label) {
1666
- case 0:
1667
- promises = foreignKeys.map(function (foreignKey) { return _this.createForeignKey(tableOrName, foreignKey); });
1668
- return [4 /*yield*/, Promise.all(promises)];
1669
- case 1:
1670
- _a.sent();
1671
- return [2 /*return*/];
1672
- }
1673
- });
1674
- });
1675
- };
1209
+ async createForeignKeys(tableOrName, foreignKeys) {
1210
+ const promises = foreignKeys.map((foreignKey) => this.createForeignKey(tableOrName, foreignKey));
1211
+ await Promise.all(promises);
1212
+ }
1676
1213
  /**
1677
1214
  * Drops a foreign key from the table.
1678
1215
  */
1679
- SqlServerQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) {
1680
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1681
- var table, _a, foreignKey, up, down;
1682
- return tslib_1.__generator(this, function (_b) {
1683
- switch (_b.label) {
1684
- case 0:
1685
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1686
- _a = tableOrName;
1687
- return [3 /*break*/, 3];
1688
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1689
- case 2:
1690
- _a = _b.sent();
1691
- _b.label = 3;
1692
- case 3:
1693
- table = _a;
1694
- foreignKey = foreignKeyOrName instanceof TableForeignKey_1.TableForeignKey ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; });
1695
- if (!foreignKey)
1696
- throw new Error("Supplied foreign key was not found in table " + table.name);
1697
- up = this.dropForeignKeySql(table, foreignKey);
1698
- down = this.createForeignKeySql(table, foreignKey);
1699
- return [4 /*yield*/, this.executeQueries(up, down)];
1700
- case 4:
1701
- _b.sent();
1702
- table.removeForeignKey(foreignKey);
1703
- return [2 /*return*/];
1704
- }
1705
- });
1706
- });
1707
- };
1216
+ async dropForeignKey(tableOrName, foreignKeyOrName) {
1217
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1218
+ ? tableOrName
1219
+ : await this.getCachedTable(tableOrName);
1220
+ const foreignKey = InstanceChecker_1.InstanceChecker.isTableForeignKey(foreignKeyOrName)
1221
+ ? foreignKeyOrName
1222
+ : table.foreignKeys.find((fk) => fk.name === foreignKeyOrName);
1223
+ if (!foreignKey)
1224
+ throw new error_1.TypeORMError(`Supplied foreign key was not found in table ${table.name}`);
1225
+ const up = this.dropForeignKeySql(table, foreignKey);
1226
+ const down = this.createForeignKeySql(table, foreignKey);
1227
+ await this.executeQueries(up, down);
1228
+ table.removeForeignKey(foreignKey);
1229
+ }
1708
1230
  /**
1709
1231
  * Drops a foreign keys from the table.
1710
1232
  */
1711
- SqlServerQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
1712
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1713
- var promises;
1714
- var _this = this;
1715
- return tslib_1.__generator(this, function (_a) {
1716
- switch (_a.label) {
1717
- case 0:
1718
- promises = foreignKeys.map(function (foreignKey) { return _this.dropForeignKey(tableOrName, foreignKey); });
1719
- return [4 /*yield*/, Promise.all(promises)];
1720
- case 1:
1721
- _a.sent();
1722
- return [2 /*return*/];
1723
- }
1724
- });
1725
- });
1726
- };
1233
+ async dropForeignKeys(tableOrName, foreignKeys) {
1234
+ const promises = foreignKeys.map((foreignKey) => this.dropForeignKey(tableOrName, foreignKey));
1235
+ await Promise.all(promises);
1236
+ }
1727
1237
  /**
1728
1238
  * Creates a new index.
1729
1239
  */
1730
- SqlServerQueryRunner.prototype.createIndex = function (tableOrName, index) {
1731
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1732
- var table, _a, up, down;
1733
- return tslib_1.__generator(this, function (_b) {
1734
- switch (_b.label) {
1735
- case 0:
1736
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1737
- _a = tableOrName;
1738
- return [3 /*break*/, 3];
1739
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1740
- case 2:
1741
- _a = _b.sent();
1742
- _b.label = 3;
1743
- case 3:
1744
- table = _a;
1745
- // new index may be passed without name. In this case we generate index name manually.
1746
- if (!index.name)
1747
- index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
1748
- up = this.createIndexSql(table, index);
1749
- down = this.dropIndexSql(table, index);
1750
- return [4 /*yield*/, this.executeQueries(up, down)];
1751
- case 4:
1752
- _b.sent();
1753
- table.addIndex(index);
1754
- return [2 /*return*/];
1755
- }
1756
- });
1757
- });
1758
- };
1240
+ async createIndex(tableOrName, index) {
1241
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1242
+ ? tableOrName
1243
+ : await this.getCachedTable(tableOrName);
1244
+ // new index may be passed without name. In this case we generate index name manually.
1245
+ if (!index.name)
1246
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
1247
+ const up = this.createIndexSql(table, index);
1248
+ const down = this.dropIndexSql(table, index);
1249
+ await this.executeQueries(up, down);
1250
+ table.addIndex(index);
1251
+ }
1759
1252
  /**
1760
1253
  * Creates a new indices
1761
1254
  */
1762
- SqlServerQueryRunner.prototype.createIndices = function (tableOrName, indices) {
1763
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1764
- var promises;
1765
- var _this = this;
1766
- return tslib_1.__generator(this, function (_a) {
1767
- switch (_a.label) {
1768
- case 0:
1769
- promises = indices.map(function (index) { return _this.createIndex(tableOrName, index); });
1770
- return [4 /*yield*/, Promise.all(promises)];
1771
- case 1:
1772
- _a.sent();
1773
- return [2 /*return*/];
1774
- }
1775
- });
1776
- });
1777
- };
1255
+ async createIndices(tableOrName, indices) {
1256
+ const promises = indices.map((index) => this.createIndex(tableOrName, index));
1257
+ await Promise.all(promises);
1258
+ }
1778
1259
  /**
1779
1260
  * Drops an index.
1780
1261
  */
1781
- SqlServerQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) {
1782
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1783
- var table, _a, index, up, down;
1784
- return tslib_1.__generator(this, function (_b) {
1785
- switch (_b.label) {
1786
- case 0:
1787
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1788
- _a = tableOrName;
1789
- return [3 /*break*/, 3];
1790
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1791
- case 2:
1792
- _a = _b.sent();
1793
- _b.label = 3;
1794
- case 3:
1795
- table = _a;
1796
- index = indexOrName instanceof TableIndex_1.TableIndex ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; });
1797
- if (!index)
1798
- throw new Error("Supplied index was not found in table " + table.name);
1799
- up = this.dropIndexSql(table, index);
1800
- down = this.createIndexSql(table, index);
1801
- return [4 /*yield*/, this.executeQueries(up, down)];
1802
- case 4:
1803
- _b.sent();
1804
- table.removeIndex(index);
1805
- return [2 /*return*/];
1806
- }
1807
- });
1808
- });
1809
- };
1262
+ async dropIndex(tableOrName, indexOrName) {
1263
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1264
+ ? tableOrName
1265
+ : await this.getCachedTable(tableOrName);
1266
+ const index = InstanceChecker_1.InstanceChecker.isTableIndex(indexOrName)
1267
+ ? indexOrName
1268
+ : table.indices.find((i) => i.name === indexOrName);
1269
+ if (!index)
1270
+ throw new error_1.TypeORMError(`Supplied index was not found in table ${table.name}`);
1271
+ const up = this.dropIndexSql(table, index);
1272
+ const down = this.createIndexSql(table, index);
1273
+ await this.executeQueries(up, down);
1274
+ table.removeIndex(index);
1275
+ }
1810
1276
  /**
1811
1277
  * Drops an indices from the table.
1812
1278
  */
1813
- SqlServerQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
1814
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1815
- var promises;
1816
- var _this = this;
1817
- return tslib_1.__generator(this, function (_a) {
1818
- switch (_a.label) {
1819
- case 0:
1820
- promises = indices.map(function (index) { return _this.dropIndex(tableOrName, index); });
1821
- return [4 /*yield*/, Promise.all(promises)];
1822
- case 1:
1823
- _a.sent();
1824
- return [2 /*return*/];
1825
- }
1826
- });
1827
- });
1828
- };
1279
+ async dropIndices(tableOrName, indices) {
1280
+ const promises = indices.map((index) => this.dropIndex(tableOrName, index));
1281
+ await Promise.all(promises);
1282
+ }
1829
1283
  /**
1830
1284
  * Clears all table contents.
1831
1285
  * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.
1832
1286
  */
1833
- SqlServerQueryRunner.prototype.clearTable = function (tablePath) {
1834
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1835
- return tslib_1.__generator(this, function (_a) {
1836
- switch (_a.label) {
1837
- case 0: return [4 /*yield*/, this.query("TRUNCATE TABLE " + this.escapePath(tablePath))];
1838
- case 1:
1839
- _a.sent();
1840
- return [2 /*return*/];
1841
- }
1842
- });
1843
- });
1844
- };
1287
+ async clearTable(tablePath) {
1288
+ await this.query(`TRUNCATE TABLE ${this.escapePath(tablePath)}`);
1289
+ }
1845
1290
  /**
1846
1291
  * Removes all tables from the currently connected database.
1847
1292
  */
1848
- SqlServerQueryRunner.prototype.clearDatabase = function (database) {
1849
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1850
- var isDatabaseExist, allViewsSql, allViewsResults, allTablesSql, allTablesResults, error_1, rollbackError_1;
1851
- var _this = this;
1852
- return tslib_1.__generator(this, function (_a) {
1853
- switch (_a.label) {
1854
- case 0:
1855
- if (!database) return [3 /*break*/, 2];
1856
- return [4 /*yield*/, this.hasDatabase(database)];
1857
- case 1:
1858
- isDatabaseExist = _a.sent();
1859
- if (!isDatabaseExist)
1860
- return [2 /*return*/, Promise.resolve()];
1861
- _a.label = 2;
1862
- case 2: return [4 /*yield*/, this.startTransaction()];
1863
- case 3:
1864
- _a.sent();
1865
- _a.label = 4;
1866
- case 4:
1867
- _a.trys.push([4, 11, , 16]);
1868
- allViewsSql = database
1869
- ? "SELECT * FROM \"" + database + "\".\"INFORMATION_SCHEMA\".\"VIEWS\""
1870
- : "SELECT * FROM \"INFORMATION_SCHEMA\".\"VIEWS\"";
1871
- return [4 /*yield*/, this.query(allViewsSql)];
1872
- case 5:
1873
- allViewsResults = _a.sent();
1874
- return [4 /*yield*/, Promise.all(allViewsResults.map(function (viewResult) {
1875
- // 'DROP VIEW' does not allow specifying the database name as a prefix to the object name.
1876
- var dropTableSql = "DROP VIEW \"" + viewResult["TABLE_SCHEMA"] + "\".\"" + viewResult["TABLE_NAME"] + "\"";
1877
- return _this.query(dropTableSql);
1878
- }))];
1879
- case 6:
1880
- _a.sent();
1881
- allTablesSql = database
1882
- ? "SELECT * FROM \"" + database + "\".\"INFORMATION_SCHEMA\".\"TABLES\" WHERE \"TABLE_TYPE\" = 'BASE TABLE'"
1883
- : "SELECT * FROM \"INFORMATION_SCHEMA\".\"TABLES\" WHERE \"TABLE_TYPE\" = 'BASE TABLE'";
1884
- return [4 /*yield*/, this.query(allTablesSql)];
1885
- case 7:
1886
- allTablesResults = _a.sent();
1887
- return [4 /*yield*/, Promise.all(allTablesResults.map(function (tablesResult) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
1888
- var dropForeignKeySql, dropFkQueries;
1889
- var _this = this;
1890
- return tslib_1.__generator(this, function (_a) {
1891
- switch (_a.label) {
1892
- case 0:
1893
- dropForeignKeySql = "SELECT 'ALTER TABLE \"" + tablesResult["TABLE_CATALOG"] + "\".\"' + OBJECT_SCHEMA_NAME(\"fk\".\"parent_object_id\", DB_ID('" + tablesResult["TABLE_CATALOG"] + "')) + '\".\"' + OBJECT_NAME(\"fk\".\"parent_object_id\", DB_ID('" + tablesResult["TABLE_CATALOG"] + "')) + '\" " +
1894
- ("DROP CONSTRAINT \"' + \"fk\".\"name\" + '\"' as \"query\" FROM \"" + tablesResult["TABLE_CATALOG"] + "\".\"sys\".\"foreign_keys\" AS \"fk\" ") +
1895
- ("WHERE \"fk\".\"referenced_object_id\" = OBJECT_ID('\"" + tablesResult["TABLE_CATALOG"] + "\".\"" + tablesResult["TABLE_SCHEMA"] + "\".\"" + tablesResult["TABLE_NAME"] + "\"')");
1896
- return [4 /*yield*/, this.query(dropForeignKeySql)];
1897
- case 1:
1898
- dropFkQueries = _a.sent();
1899
- return [2 /*return*/, Promise.all(dropFkQueries.map(function (result) { return result["query"]; }).map(function (dropQuery) { return _this.query(dropQuery); }))];
1900
- }
1901
- });
1902
- }); }))];
1903
- case 8:
1904
- _a.sent();
1905
- return [4 /*yield*/, Promise.all(allTablesResults.map(function (tablesResult) {
1906
- var dropTableSql = "DROP TABLE \"" + tablesResult["TABLE_CATALOG"] + "\".\"" + tablesResult["TABLE_SCHEMA"] + "\".\"" + tablesResult["TABLE_NAME"] + "\"";
1907
- return _this.query(dropTableSql);
1908
- }))];
1909
- case 9:
1910
- _a.sent();
1911
- return [4 /*yield*/, this.commitTransaction()];
1912
- case 10:
1913
- _a.sent();
1914
- return [3 /*break*/, 16];
1915
- case 11:
1916
- error_1 = _a.sent();
1917
- _a.label = 12;
1918
- case 12:
1919
- _a.trys.push([12, 14, , 15]);
1920
- return [4 /*yield*/, this.rollbackTransaction()];
1921
- case 13:
1922
- _a.sent();
1923
- return [3 /*break*/, 15];
1924
- case 14:
1925
- rollbackError_1 = _a.sent();
1926
- return [3 /*break*/, 15];
1927
- case 15: throw error_1;
1928
- case 16: return [2 /*return*/];
1929
- }
1930
- });
1931
- });
1932
- };
1293
+ async clearDatabase(database) {
1294
+ if (database) {
1295
+ const isDatabaseExist = await this.hasDatabase(database);
1296
+ if (!isDatabaseExist)
1297
+ return Promise.resolve();
1298
+ }
1299
+ const isAnotherTransactionActive = this.isTransactionActive;
1300
+ if (!isAnotherTransactionActive)
1301
+ await this.startTransaction();
1302
+ try {
1303
+ let allViewsSql = database
1304
+ ? `SELECT * FROM "${database}"."INFORMATION_SCHEMA"."VIEWS"`
1305
+ : `SELECT * FROM "INFORMATION_SCHEMA"."VIEWS"`;
1306
+ const allViewsResults = await this.query(allViewsSql);
1307
+ await Promise.all(allViewsResults.map((viewResult) => {
1308
+ // 'DROP VIEW' does not allow specifying the database name as a prefix to the object name.
1309
+ const dropTableSql = `DROP VIEW "${viewResult["TABLE_SCHEMA"]}"."${viewResult["TABLE_NAME"]}"`;
1310
+ return this.query(dropTableSql);
1311
+ }));
1312
+ let allTablesSql = database
1313
+ ? `SELECT * FROM "${database}"."INFORMATION_SCHEMA"."TABLES" WHERE "TABLE_TYPE" = 'BASE TABLE'`
1314
+ : `SELECT * FROM "INFORMATION_SCHEMA"."TABLES" WHERE "TABLE_TYPE" = 'BASE TABLE'`;
1315
+ const allTablesResults = await this.query(allTablesSql);
1316
+ if (allTablesResults.length > 0) {
1317
+ const tablesByCatalog = allTablesResults.reduce((c, { TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME }) => {
1318
+ c[TABLE_CATALOG] = c[TABLE_CATALOG] || [];
1319
+ c[TABLE_CATALOG].push({ TABLE_SCHEMA, TABLE_NAME });
1320
+ return c;
1321
+ }, {});
1322
+ const foreignKeysSql = Object.entries(tablesByCatalog)
1323
+ .map(([TABLE_CATALOG, tables]) => {
1324
+ const conditions = tables
1325
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1326
+ return `("fk"."referenced_object_id" = OBJECT_ID('"${TABLE_CATALOG}"."${TABLE_SCHEMA}"."${TABLE_NAME}"'))`;
1327
+ })
1328
+ .join(" OR ");
1329
+ return `
1330
+ SELECT DISTINCT '${TABLE_CATALOG}' AS "TABLE_CATALOG",
1331
+ OBJECT_SCHEMA_NAME("fk"."parent_object_id",
1332
+ DB_ID('${TABLE_CATALOG}')) AS "TABLE_SCHEMA",
1333
+ OBJECT_NAME("fk"."parent_object_id", DB_ID('${TABLE_CATALOG}')) AS "TABLE_NAME",
1334
+ "fk"."name" AS "CONSTRAINT_NAME"
1335
+ FROM "${TABLE_CATALOG}"."sys"."foreign_keys" AS "fk"
1336
+ WHERE (${conditions})
1337
+ `;
1338
+ })
1339
+ .join(" UNION ALL ");
1340
+ const foreignKeys = await this.query(foreignKeysSql);
1341
+ await Promise.all(foreignKeys.map(async ({ TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, CONSTRAINT_NAME, }) => {
1342
+ // Disable the constraint first.
1343
+ await this.query(`ALTER TABLE "${TABLE_CATALOG}"."${TABLE_SCHEMA}"."${TABLE_NAME}" ` +
1344
+ `NOCHECK CONSTRAINT "${CONSTRAINT_NAME}"`);
1345
+ await this.query(`ALTER TABLE "${TABLE_CATALOG}"."${TABLE_SCHEMA}"."${TABLE_NAME}" ` +
1346
+ `DROP CONSTRAINT "${CONSTRAINT_NAME}" -- FROM CLEAR`);
1347
+ }));
1348
+ await Promise.all(allTablesResults.map((tablesResult) => {
1349
+ if (tablesResult["TABLE_NAME"].startsWith("#")) {
1350
+ // don't try to drop temporary tables
1351
+ return;
1352
+ }
1353
+ const dropTableSql = `DROP TABLE "${tablesResult["TABLE_CATALOG"]}"."${tablesResult["TABLE_SCHEMA"]}"."${tablesResult["TABLE_NAME"]}"`;
1354
+ return this.query(dropTableSql);
1355
+ }));
1356
+ }
1357
+ if (!isAnotherTransactionActive)
1358
+ await this.commitTransaction();
1359
+ }
1360
+ catch (error) {
1361
+ try {
1362
+ // we throw original error even if rollback thrown an error
1363
+ if (!isAnotherTransactionActive)
1364
+ await this.rollbackTransaction();
1365
+ }
1366
+ catch (rollbackError) { }
1367
+ throw error;
1368
+ }
1369
+ }
1933
1370
  // -------------------------------------------------------------------------
1934
1371
  // Protected Methods
1935
1372
  // -------------------------------------------------------------------------
1936
- /**
1937
- * Return current database.
1938
- */
1939
- SqlServerQueryRunner.prototype.getCurrentDatabase = function () {
1940
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1941
- var currentDBQuery;
1942
- return tslib_1.__generator(this, function (_a) {
1943
- switch (_a.label) {
1944
- case 0: return [4 /*yield*/, this.query("SELECT DB_NAME() AS \"db_name\"")];
1945
- case 1:
1946
- currentDBQuery = _a.sent();
1947
- return [2 /*return*/, currentDBQuery[0]["db_name"]];
1948
- }
1949
- });
1950
- });
1951
- };
1952
- /**
1953
- * Return current schema.
1954
- */
1955
- SqlServerQueryRunner.prototype.getCurrentSchema = function () {
1956
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1957
- var currentSchemaQuery;
1958
- return tslib_1.__generator(this, function (_a) {
1959
- switch (_a.label) {
1960
- case 0: return [4 /*yield*/, this.query("SELECT SCHEMA_NAME() AS \"schema_name\"")];
1961
- case 1:
1962
- currentSchemaQuery = _a.sent();
1963
- return [2 /*return*/, currentSchemaQuery[0]["schema_name"]];
1964
- }
1965
- });
1966
- });
1967
- };
1968
- SqlServerQueryRunner.prototype.loadViews = function (viewPaths) {
1969
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1970
- var hasTable, currentSchema, currentDatabase, extractTableSchemaAndName, dbNames, viewsCondition, query, dbViews;
1971
- var _this = this;
1972
- return tslib_1.__generator(this, function (_a) {
1973
- switch (_a.label) {
1974
- case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())];
1975
- case 1:
1976
- hasTable = _a.sent();
1977
- if (!hasTable)
1978
- return [2 /*return*/, Promise.resolve([])];
1979
- return [4 /*yield*/, this.getCurrentSchema()];
1980
- case 2:
1981
- currentSchema = _a.sent();
1982
- return [4 /*yield*/, this.getCurrentDatabase()];
1983
- case 3:
1984
- currentDatabase = _a.sent();
1985
- extractTableSchemaAndName = function (tableName) {
1986
- var _a = tslib_1.__read(tableName.split("."), 3), database = _a[0], schema = _a[1], name = _a[2];
1987
- // if name is empty, it means that tableName have only schema name and table name or only table name
1988
- if (!name) {
1989
- // if schema is empty, it means tableName have only name of a table. Otherwise it means that we have "schemaName"."tableName" string.
1990
- if (!schema) {
1991
- name = database;
1992
- schema = _this.driver.options.schema || currentSchema;
1993
- }
1994
- else {
1995
- name = schema;
1996
- schema = database;
1997
- }
1998
- }
1999
- else if (schema === "") {
2000
- schema = _this.driver.options.schema || currentSchema;
2001
- }
2002
- return [schema, name];
2003
- };
2004
- dbNames = viewPaths
2005
- .filter(function (viewPath) { return viewPath.split(".").length === 3; })
2006
- .map(function (viewPath) { return viewPath.split(".")[0]; });
2007
- if (this.driver.database && !dbNames.find(function (dbName) { return dbName === _this.driver.database; }))
2008
- dbNames.push(this.driver.database);
2009
- viewsCondition = viewPaths.map(function (viewPath) {
2010
- var _a = tslib_1.__read(extractTableSchemaAndName(viewPath), 2), schema = _a[0], name = _a[1];
2011
- return "(\"T\".\"SCHEMA\" = '" + schema + "' AND \"T\".\"NAME\" = '" + name + "')";
2012
- }).join(" OR ");
2013
- query = dbNames.map(function (dbName) {
2014
- return "SELECT \"T\".*, \"V\".\"CHECK_OPTION\" FROM " + _this.escapePath(_this.getTypeormMetadataTableName()) + " \"t\" " +
2015
- ("INNER JOIN \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"VIEWS\" \"V\" ON \"V\".\"TABLE_SCHEMA\" = \"T\".\"SCHEMA\" AND \"v\".\"TABLE_NAME\" = \"T\".\"NAME\" WHERE \"T\".\"TYPE\" = 'VIEW' " + (viewsCondition ? "AND (" + viewsCondition + ")" : ""));
2016
- }).join(" UNION ALL ");
2017
- return [4 /*yield*/, this.query(query)];
2018
- case 4:
2019
- dbViews = _a.sent();
2020
- return [2 /*return*/, dbViews.map(function (dbView) {
2021
- var view = new View_1.View();
2022
- var db = dbView["TABLE_CATALOG"] === currentDatabase ? undefined : dbView["TABLE_CATALOG"];
2023
- var schema = dbView["schema"] === currentSchema && !_this.driver.options.schema ? undefined : dbView["schema"];
2024
- view.name = _this.driver.buildTableName(dbView["name"], schema, db);
2025
- view.expression = dbView["value"];
2026
- return view;
2027
- })];
2028
- }
2029
- });
1373
+ async loadViews(viewPaths) {
1374
+ const hasTable = await this.hasTable(this.getTypeormMetadataTableName());
1375
+ if (!hasTable) {
1376
+ return [];
1377
+ }
1378
+ if (!viewPaths) {
1379
+ viewPaths = [];
1380
+ }
1381
+ const currentSchema = await this.getCurrentSchema();
1382
+ const currentDatabase = await this.getCurrentDatabase();
1383
+ const dbNames = viewPaths
1384
+ .map((viewPath) => this.driver.parseTableName(viewPath).database)
1385
+ .filter((database) => database);
1386
+ if (this.driver.database &&
1387
+ !dbNames.find((dbName) => dbName === this.driver.database))
1388
+ dbNames.push(this.driver.database);
1389
+ const viewsCondition = viewPaths
1390
+ .map((viewPath) => {
1391
+ let { schema, tableName: name } = this.driver.parseTableName(viewPath);
1392
+ if (!schema) {
1393
+ schema = currentSchema;
1394
+ }
1395
+ return `("T"."SCHEMA" = '${schema}' AND "T"."NAME" = '${name}')`;
1396
+ })
1397
+ .join(" OR ");
1398
+ const query = dbNames
1399
+ .map((dbName) => {
1400
+ return (`SELECT "T".*, "V"."CHECK_OPTION" FROM ${this.escapePath(this.getTypeormMetadataTableName())} "t" ` +
1401
+ `INNER JOIN "${dbName}"."INFORMATION_SCHEMA"."VIEWS" "V" ON "V"."TABLE_SCHEMA" = "T"."SCHEMA" AND "v"."TABLE_NAME" = "T"."NAME" WHERE "T"."TYPE" = '${MetadataTableType_1.MetadataTableType.VIEW}' ${viewsCondition ? `AND (${viewsCondition})` : ""}`);
1402
+ })
1403
+ .join(" UNION ALL ");
1404
+ const dbViews = await this.query(query);
1405
+ return dbViews.map((dbView) => {
1406
+ const view = new View_1.View();
1407
+ const db = dbView["TABLE_CATALOG"] === currentDatabase
1408
+ ? undefined
1409
+ : dbView["TABLE_CATALOG"];
1410
+ const schema = dbView["schema"] === currentSchema &&
1411
+ !this.driver.options.schema
1412
+ ? undefined
1413
+ : dbView["schema"];
1414
+ view.database = dbView["TABLE_CATALOG"];
1415
+ view.schema = dbView["schema"];
1416
+ view.name = this.driver.buildTableName(dbView["name"], schema, db);
1417
+ view.expression = dbView["value"];
1418
+ return view;
2030
1419
  });
2031
- };
1420
+ }
2032
1421
  /**
2033
1422
  * Loads all tables (with given names) from the database and creates a Table from them.
2034
1423
  */
2035
- SqlServerQueryRunner.prototype.loadTables = function (tableNames) {
2036
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2037
- var schemaNames, currentSchema, currentDatabase, extractTableSchemaAndName, dbNames, schemaNamesString, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, foreignKeysSql, identityColumnsSql, dbCollationsSql, indicesSql, _a, dbTables, dbColumns, dbConstraints, dbForeignKeys, dbIdentityColumns, dbCollations, dbIndices;
2038
- var _this = this;
2039
- return tslib_1.__generator(this, function (_b) {
2040
- switch (_b.label) {
2041
- case 0:
2042
- // if no tables given then no need to proceed
2043
- if (!tableNames || !tableNames.length)
2044
- return [2 /*return*/, []];
2045
- schemaNames = [];
2046
- return [4 /*yield*/, this.getCurrentSchema()];
2047
- case 1:
2048
- currentSchema = _b.sent();
2049
- return [4 /*yield*/, this.getCurrentDatabase()];
2050
- case 2:
2051
- currentDatabase = _b.sent();
2052
- extractTableSchemaAndName = function (tableName) {
2053
- var _a = tslib_1.__read(tableName.split("."), 3), database = _a[0], schema = _a[1], name = _a[2];
2054
- // if name is empty, it means that tableName have only schema name and table name or only table name
2055
- if (!name) {
2056
- // if schema is empty, it means tableName have only name of a table. Otherwise it means that we have "schemaName"."tableName" string.
2057
- if (!schema) {
2058
- name = database;
2059
- schema = _this.driver.options.schema || currentSchema;
2060
- }
2061
- else {
2062
- name = schema;
2063
- schema = database;
1424
+ async loadTables(tableNames) {
1425
+ // if no tables given then no need to proceed
1426
+ if (tableNames && tableNames.length === 0) {
1427
+ return [];
1428
+ }
1429
+ const currentSchema = await this.getCurrentSchema();
1430
+ const currentDatabase = await this.getCurrentDatabase();
1431
+ const dbTables = [];
1432
+ if (!tableNames) {
1433
+ const databasesSql = `
1434
+ SELECT DISTINCT
1435
+ "name"
1436
+ FROM "master"."dbo"."sysdatabases"
1437
+ WHERE "name" NOT IN ('master', 'model', 'msdb')
1438
+ `;
1439
+ const dbDatabases = await this.query(databasesSql);
1440
+ const tablesSql = dbDatabases
1441
+ .map(({ name }) => {
1442
+ return `
1443
+ SELECT DISTINCT
1444
+ "TABLE_CATALOG", "TABLE_SCHEMA", "TABLE_NAME"
1445
+ FROM "${name}"."INFORMATION_SCHEMA"."TABLES"
1446
+ WHERE
1447
+ "TABLE_TYPE" = 'BASE TABLE'
1448
+ AND
1449
+ "TABLE_CATALOG" = '${name}'
1450
+ AND
1451
+ ISNULL(Objectproperty(Object_id("TABLE_CATALOG" + '.' + "TABLE_SCHEMA" + '.' + "TABLE_NAME"), 'IsMSShipped'), 0) = 0
1452
+ `;
1453
+ })
1454
+ .join(" UNION ALL ");
1455
+ dbTables.push(...(await this.query(tablesSql)));
1456
+ }
1457
+ else {
1458
+ const tableNamesByCatalog = tableNames
1459
+ .map((tableName) => this.driver.parseTableName(tableName))
1460
+ .reduce((c, { database, ...other }) => {
1461
+ database = database || currentDatabase;
1462
+ c[database] = c[database] || [];
1463
+ c[database].push({
1464
+ schema: other.schema || currentSchema,
1465
+ tableName: other.tableName,
1466
+ });
1467
+ return c;
1468
+ }, {});
1469
+ const tablesSql = Object.entries(tableNamesByCatalog)
1470
+ .map(([database, tables]) => {
1471
+ const tablesCondition = tables
1472
+ .map(({ schema, tableName }) => {
1473
+ return `("TABLE_SCHEMA" = '${schema}' AND "TABLE_NAME" = '${tableName}')`;
1474
+ })
1475
+ .join(" OR ");
1476
+ return `
1477
+ SELECT DISTINCT
1478
+ "TABLE_CATALOG", "TABLE_SCHEMA", "TABLE_NAME"
1479
+ FROM "${database}"."INFORMATION_SCHEMA"."TABLES"
1480
+ WHERE
1481
+ "TABLE_TYPE" = 'BASE TABLE' AND
1482
+ "TABLE_CATALOG" = '${database}' AND
1483
+ ${tablesCondition}
1484
+ `;
1485
+ })
1486
+ .join(" UNION ALL ");
1487
+ dbTables.push(...(await this.query(tablesSql)));
1488
+ }
1489
+ // if tables were not found in the db, no need to proceed
1490
+ if (dbTables.length === 0) {
1491
+ return [];
1492
+ }
1493
+ const dbTablesByCatalog = dbTables.reduce((c, { TABLE_CATALOG, ...other }) => {
1494
+ c[TABLE_CATALOG] = c[TABLE_CATALOG] || [];
1495
+ c[TABLE_CATALOG].push(other);
1496
+ return c;
1497
+ }, {});
1498
+ const columnsSql = Object.entries(dbTablesByCatalog)
1499
+ .map(([TABLE_CATALOG, tables]) => {
1500
+ const condition = tables
1501
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => `("TABLE_SCHEMA" = '${TABLE_SCHEMA}' AND "TABLE_NAME" = '${TABLE_NAME}')`)
1502
+ .join("OR");
1503
+ return `SELECT * FROM "${TABLE_CATALOG}"."INFORMATION_SCHEMA"."COLUMNS" WHERE (${condition})`;
1504
+ })
1505
+ .join(" UNION ALL ");
1506
+ const constraintsSql = Object.entries(dbTablesByCatalog)
1507
+ .map(([TABLE_CATALOG, tables]) => {
1508
+ const conditions = tables
1509
+ .map(({ TABLE_NAME, TABLE_SCHEMA }) => `("columnUsages"."TABLE_SCHEMA" = '${TABLE_SCHEMA}' AND "columnUsages"."TABLE_NAME" = '${TABLE_NAME}')`)
1510
+ .join(" OR ");
1511
+ return (`SELECT "columnUsages".*, "tableConstraints"."CONSTRAINT_TYPE", "chk"."definition" ` +
1512
+ `FROM "${TABLE_CATALOG}"."INFORMATION_SCHEMA"."CONSTRAINT_COLUMN_USAGE" "columnUsages" ` +
1513
+ `INNER JOIN "${TABLE_CATALOG}"."INFORMATION_SCHEMA"."TABLE_CONSTRAINTS" "tableConstraints" ` +
1514
+ `ON ` +
1515
+ `"tableConstraints"."CONSTRAINT_NAME" = "columnUsages"."CONSTRAINT_NAME" AND ` +
1516
+ `"tableConstraints"."TABLE_SCHEMA" = "columnUsages"."TABLE_SCHEMA" AND ` +
1517
+ `"tableConstraints"."TABLE_NAME" = "columnUsages"."TABLE_NAME" ` +
1518
+ `LEFT JOIN "${TABLE_CATALOG}"."sys"."check_constraints" "chk" ` +
1519
+ `ON ` +
1520
+ `"chk"."object_id" = OBJECT_ID("columnUsages"."TABLE_CATALOG" + '.' + "columnUsages"."TABLE_SCHEMA" + '.' + "columnUsages"."CONSTRAINT_NAME") ` +
1521
+ `WHERE ` +
1522
+ `(${conditions}) AND ` +
1523
+ `"tableConstraints"."CONSTRAINT_TYPE" IN ('PRIMARY KEY', 'UNIQUE', 'CHECK')`);
1524
+ })
1525
+ .join(" UNION ALL ");
1526
+ const foreignKeysSql = Object.entries(dbTablesByCatalog)
1527
+ .map(([TABLE_CATALOG, tables]) => {
1528
+ const conditions = tables
1529
+ .map(({ TABLE_NAME, TABLE_SCHEMA }) => `("s1"."name" = '${TABLE_SCHEMA}' AND "t1"."name" = '${TABLE_NAME}')`)
1530
+ .join(" OR ");
1531
+ return (`SELECT "fk"."name" AS "FK_NAME", '${TABLE_CATALOG}' AS "TABLE_CATALOG", "s1"."name" AS "TABLE_SCHEMA", "t1"."name" AS "TABLE_NAME", ` +
1532
+ `"col1"."name" AS "COLUMN_NAME", "s2"."name" AS "REF_SCHEMA", "t2"."name" AS "REF_TABLE", "col2"."name" AS "REF_COLUMN", ` +
1533
+ `"fk"."delete_referential_action_desc" AS "ON_DELETE", "fk"."update_referential_action_desc" AS "ON_UPDATE" ` +
1534
+ `FROM "${TABLE_CATALOG}"."sys"."foreign_keys" "fk" ` +
1535
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."foreign_key_columns" "fkc" ON "fkc"."constraint_object_id" = "fk"."object_id" ` +
1536
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."tables" "t1" ON "t1"."object_id" = "fk"."parent_object_id" ` +
1537
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."schemas" "s1" ON "s1"."schema_id" = "t1"."schema_id" ` +
1538
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."tables" "t2" ON "t2"."object_id" = "fk"."referenced_object_id" ` +
1539
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."schemas" "s2" ON "s2"."schema_id" = "t2"."schema_id" ` +
1540
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."columns" "col1" ON "col1"."column_id" = "fkc"."parent_column_id" AND "col1"."object_id" = "fk"."parent_object_id" ` +
1541
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."columns" "col2" ON "col2"."column_id" = "fkc"."referenced_column_id" AND "col2"."object_id" = "fk"."referenced_object_id" ` +
1542
+ `WHERE (${conditions})`);
1543
+ })
1544
+ .join(" UNION ALL ");
1545
+ const identityColumnsSql = Object.entries(dbTablesByCatalog)
1546
+ .map(([TABLE_CATALOG, tables]) => {
1547
+ const conditions = tables
1548
+ .map(({ TABLE_NAME, TABLE_SCHEMA }) => `("TABLE_SCHEMA" = '${TABLE_SCHEMA}' AND "TABLE_NAME" = '${TABLE_NAME}')`)
1549
+ .join(" OR ");
1550
+ return (`SELECT "TABLE_CATALOG", "TABLE_SCHEMA", "COLUMN_NAME", "TABLE_NAME" ` +
1551
+ `FROM "${TABLE_CATALOG}"."INFORMATION_SCHEMA"."COLUMNS" ` +
1552
+ `WHERE ` +
1553
+ `EXISTS(SELECT 1 FROM "${TABLE_CATALOG}"."sys"."columns" "S" WHERE OBJECT_ID("TABLE_CATALOG" + '.' + "TABLE_SCHEMA" + '.' + "TABLE_NAME") = "S"."OBJECT_ID" AND "COLUMN_NAME" = "S"."NAME" AND "S"."is_identity" = 1) AND ` +
1554
+ `(${conditions})`);
1555
+ })
1556
+ .join(" UNION ALL ");
1557
+ const dbCollationsSql = `SELECT "NAME", "COLLATION_NAME" FROM "sys"."databases"`;
1558
+ const indicesSql = Object.entries(dbTablesByCatalog)
1559
+ .map(([TABLE_CATALOG, tables]) => {
1560
+ const conditions = tables
1561
+ .map(({ TABLE_NAME, TABLE_SCHEMA }) => `("s"."name" = '${TABLE_SCHEMA}' AND "t"."name" = '${TABLE_NAME}')`)
1562
+ .join(" OR ");
1563
+ return (`SELECT '${TABLE_CATALOG}' AS "TABLE_CATALOG", "s"."name" AS "TABLE_SCHEMA", "t"."name" AS "TABLE_NAME", ` +
1564
+ `"ind"."name" AS "INDEX_NAME", "col"."name" AS "COLUMN_NAME", "ind"."is_unique" AS "IS_UNIQUE", "ind"."filter_definition" as "CONDITION" ` +
1565
+ `FROM "${TABLE_CATALOG}"."sys"."indexes" "ind" ` +
1566
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."index_columns" "ic" ON "ic"."object_id" = "ind"."object_id" AND "ic"."index_id" = "ind"."index_id" ` +
1567
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."columns" "col" ON "col"."object_id" = "ic"."object_id" AND "col"."column_id" = "ic"."column_id" ` +
1568
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."tables" "t" ON "t"."object_id" = "ind"."object_id" ` +
1569
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."schemas" "s" ON "s"."schema_id" = "t"."schema_id" ` +
1570
+ `WHERE ` +
1571
+ `"ind"."is_primary_key" = 0 AND "ind"."is_unique_constraint" = 0 AND "t"."is_ms_shipped" = 0 AND ` +
1572
+ `(${conditions})`);
1573
+ })
1574
+ .join(" UNION ALL ");
1575
+ const [dbColumns, dbConstraints, dbForeignKeys, dbIdentityColumns, dbCollations, dbIndices,] = await Promise.all([
1576
+ this.query(columnsSql),
1577
+ this.query(constraintsSql),
1578
+ this.query(foreignKeysSql),
1579
+ this.query(identityColumnsSql),
1580
+ this.query(dbCollationsSql),
1581
+ this.query(indicesSql),
1582
+ ]);
1583
+ // create table schemas for loaded tables
1584
+ return await Promise.all(dbTables.map(async (dbTable) => {
1585
+ const table = new Table_1.Table();
1586
+ const getSchemaFromKey = (dbObject, key) => {
1587
+ return dbObject[key] === currentSchema &&
1588
+ (!this.driver.options.schema ||
1589
+ this.driver.options.schema === currentSchema)
1590
+ ? undefined
1591
+ : dbObject[key];
1592
+ };
1593
+ // We do not need to join schema and database names, when db or schema is by default.
1594
+ const db = dbTable["TABLE_CATALOG"] === currentDatabase
1595
+ ? undefined
1596
+ : dbTable["TABLE_CATALOG"];
1597
+ const schema = getSchemaFromKey(dbTable, "TABLE_SCHEMA");
1598
+ table.database = dbTable["TABLE_CATALOG"];
1599
+ table.schema = dbTable["TABLE_SCHEMA"];
1600
+ table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], schema, db);
1601
+ const defaultCollation = dbCollations.find((dbCollation) => dbCollation["NAME"] === dbTable["TABLE_CATALOG"]);
1602
+ // create columns from the loaded columns
1603
+ table.columns = dbColumns
1604
+ .filter((dbColumn) => dbColumn["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1605
+ dbColumn["TABLE_SCHEMA"] ===
1606
+ dbTable["TABLE_SCHEMA"] &&
1607
+ dbColumn["TABLE_CATALOG"] ===
1608
+ dbTable["TABLE_CATALOG"])
1609
+ .map((dbColumn) => {
1610
+ const columnConstraints = dbConstraints.filter((dbConstraint) => dbConstraint["TABLE_NAME"] ===
1611
+ dbColumn["TABLE_NAME"] &&
1612
+ dbConstraint["TABLE_SCHEMA"] ===
1613
+ dbColumn["TABLE_SCHEMA"] &&
1614
+ dbConstraint["TABLE_CATALOG"] ===
1615
+ dbColumn["TABLE_CATALOG"] &&
1616
+ dbConstraint["COLUMN_NAME"] ===
1617
+ dbColumn["COLUMN_NAME"]);
1618
+ const uniqueConstraints = columnConstraints.filter((constraint) => constraint["CONSTRAINT_TYPE"] === "UNIQUE");
1619
+ const isConstraintComposite = uniqueConstraints.every((uniqueConstraint) => {
1620
+ return dbConstraints.some((dbConstraint) => dbConstraint["CONSTRAINT_TYPE"] ===
1621
+ "UNIQUE" &&
1622
+ dbConstraint["CONSTRAINT_NAME"] ===
1623
+ uniqueConstraint["CONSTRAINT_NAME"] &&
1624
+ dbConstraint["TABLE_SCHEMA"] ===
1625
+ dbColumn["TABLE_SCHEMA"] &&
1626
+ dbConstraint["TABLE_CATALOG"] ===
1627
+ dbColumn["TABLE_CATALOG"] &&
1628
+ dbConstraint["COLUMN_NAME"] !==
1629
+ dbColumn["COLUMN_NAME"]);
1630
+ });
1631
+ const isPrimary = !!columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] === "PRIMARY KEY");
1632
+ const isGenerated = !!dbIdentityColumns.find((column) => column["TABLE_NAME"] ===
1633
+ dbColumn["TABLE_NAME"] &&
1634
+ column["TABLE_SCHEMA"] ===
1635
+ dbColumn["TABLE_SCHEMA"] &&
1636
+ column["TABLE_CATALOG"] ===
1637
+ dbColumn["TABLE_CATALOG"] &&
1638
+ column["COLUMN_NAME"] ===
1639
+ dbColumn["COLUMN_NAME"]);
1640
+ const tableColumn = new TableColumn_1.TableColumn();
1641
+ tableColumn.name = dbColumn["COLUMN_NAME"];
1642
+ tableColumn.type = dbColumn["DATA_TYPE"].toLowerCase();
1643
+ // check only columns that have length property
1644
+ if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 &&
1645
+ dbColumn["CHARACTER_MAXIMUM_LENGTH"]) {
1646
+ const length = dbColumn["CHARACTER_MAXIMUM_LENGTH"].toString();
1647
+ if (length === "-1") {
1648
+ tableColumn.length = "MAX";
1649
+ }
1650
+ else {
1651
+ tableColumn.length =
1652
+ !this.isDefaultColumnLength(table, tableColumn, length)
1653
+ ? length
1654
+ : "";
1655
+ }
1656
+ }
1657
+ if (tableColumn.type === "decimal" ||
1658
+ tableColumn.type === "numeric") {
1659
+ if (dbColumn["NUMERIC_PRECISION"] !== null &&
1660
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["NUMERIC_PRECISION"]))
1661
+ tableColumn.precision =
1662
+ dbColumn["NUMERIC_PRECISION"];
1663
+ if (dbColumn["NUMERIC_SCALE"] !== null &&
1664
+ !this.isDefaultColumnScale(table, tableColumn, dbColumn["NUMERIC_SCALE"]))
1665
+ tableColumn.scale = dbColumn["NUMERIC_SCALE"];
1666
+ }
1667
+ if (tableColumn.type === "nvarchar") {
1668
+ // Check if this is an enum
1669
+ const columnCheckConstraints = columnConstraints.filter((constraint) => constraint["CONSTRAINT_TYPE"] ===
1670
+ "CHECK");
1671
+ if (columnCheckConstraints.length) {
1672
+ // const isEnumRegexp = new RegExp("^\\(\\[" + tableColumn.name + "\\]='[^']+'(?: OR \\[" + tableColumn.name + "\\]='[^']+')*\\)$");
1673
+ for (const checkConstraint of columnCheckConstraints) {
1674
+ if (this.isEnumCheckConstraint(checkConstraint["CONSTRAINT_NAME"])) {
1675
+ // This is an enum constraint, make column into an enum
1676
+ tableColumn.enum = [];
1677
+ const enumValueRegexp = new RegExp("\\[" +
1678
+ tableColumn.name +
1679
+ "\\]='([^']+)'", "g");
1680
+ let result;
1681
+ while ((result = enumValueRegexp.exec(checkConstraint["definition"])) !== null) {
1682
+ tableColumn.enum.unshift(result[1]);
2064
1683
  }
1684
+ // Skip other column constraints
1685
+ break;
2065
1686
  }
2066
- else if (schema === "") {
2067
- schema = _this.driver.options.schema || currentSchema;
2068
- }
2069
- return [schema, name];
2070
- };
2071
- tableNames.filter(function (tablePath) { return tablePath.indexOf(".") !== -1; })
2072
- .forEach(function (tablePath) {
2073
- if (tablePath.split(".").length === 3) {
2074
- if (tablePath.split(".")[1] !== "")
2075
- schemaNames.push(tablePath.split(".")[1]);
2076
- }
2077
- else {
2078
- schemaNames.push(tablePath.split(".")[0]);
2079
- }
2080
- });
2081
- schemaNames.push(this.driver.options.schema || currentSchema);
2082
- dbNames = tableNames
2083
- .filter(function (tablePath) { return tablePath.split(".").length === 3; })
2084
- .map(function (tablePath) { return tablePath.split(".")[0]; });
2085
- if (this.driver.database && !dbNames.find(function (dbName) { return dbName === _this.driver.database; }))
2086
- dbNames.push(this.driver.database);
2087
- schemaNamesString = schemaNames.map(function (name) { return "'" + name + "'"; }).join(", ");
2088
- tablesCondition = tableNames.map(function (tableName) {
2089
- var _a = tslib_1.__read(extractTableSchemaAndName(tableName), 2), schema = _a[0], name = _a[1];
2090
- return "(\"TABLE_SCHEMA\" = '" + schema + "' AND \"TABLE_NAME\" = '" + name + "')";
2091
- }).join(" OR ");
2092
- tablesSql = dbNames.map(function (dbName) {
2093
- return "SELECT * FROM \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"TABLES\" WHERE " + tablesCondition;
2094
- }).join(" UNION ALL ");
2095
- columnsSql = dbNames.map(function (dbName) {
2096
- return "SELECT * FROM \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"COLUMNS\" WHERE " + tablesCondition;
2097
- }).join(" UNION ALL ");
2098
- constraintsCondition = tableNames.map(function (tableName) {
2099
- var _a = tslib_1.__read(extractTableSchemaAndName(tableName), 2), schema = _a[0], name = _a[1];
2100
- return "(\"columnUsages\".\"TABLE_SCHEMA\" = '" + schema + "' AND \"columnUsages\".\"TABLE_NAME\" = '" + name + "' " +
2101
- ("AND \"tableConstraints\".\"TABLE_SCHEMA\" = '" + schema + "' AND \"tableConstraints\".\"TABLE_NAME\" = '" + name + "')");
2102
- }).join(" OR ");
2103
- constraintsSql = dbNames.map(function (dbName) {
2104
- return "SELECT \"columnUsages\".*, \"tableConstraints\".\"CONSTRAINT_TYPE\", \"chk\".\"definition\" " +
2105
- ("FROM \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"CONSTRAINT_COLUMN_USAGE\" \"columnUsages\" ") +
2106
- ("INNER JOIN \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"TABLE_CONSTRAINTS\" \"tableConstraints\" ON \"tableConstraints\".\"CONSTRAINT_NAME\" = \"columnUsages\".\"CONSTRAINT_NAME\" ") +
2107
- ("LEFT JOIN \"" + dbName + "\".\"sys\".\"check_constraints\" \"chk\" ON \"chk\".\"name\" = \"columnUsages\".\"CONSTRAINT_NAME\" ") +
2108
- ("WHERE (" + constraintsCondition + ") AND \"tableConstraints\".\"CONSTRAINT_TYPE\" IN ('PRIMARY KEY', 'UNIQUE', 'CHECK')");
2109
- }).join(" UNION ALL ");
2110
- foreignKeysSql = dbNames.map(function (dbName) {
2111
- return "SELECT \"fk\".\"name\" AS \"FK_NAME\", '" + dbName + "' AS \"TABLE_CATALOG\", \"s1\".\"name\" AS \"TABLE_SCHEMA\", \"t1\".\"name\" AS \"TABLE_NAME\", " +
2112
- "\"col1\".\"name\" AS \"COLUMN_NAME\", \"s2\".\"name\" AS \"REF_SCHEMA\", \"t2\".\"name\" AS \"REF_TABLE\", \"col2\".\"name\" AS \"REF_COLUMN\", " +
2113
- "\"fk\".\"delete_referential_action_desc\" AS \"ON_DELETE\", \"fk\".\"update_referential_action_desc\" AS \"ON_UPDATE\" " +
2114
- ("FROM \"" + dbName + "\".\"sys\".\"foreign_keys\" \"fk\" ") +
2115
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"foreign_key_columns\" \"fkc\" ON \"fkc\".\"constraint_object_id\" = \"fk\".\"object_id\" ") +
2116
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"tables\" \"t1\" ON \"t1\".\"object_id\" = \"fk\".\"parent_object_id\" ") +
2117
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"schemas\" \"s1\" ON \"s1\".\"schema_id\" = \"t1\".\"schema_id\" ") +
2118
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"tables\" \"t2\" ON \"t2\".\"object_id\" = \"fk\".\"referenced_object_id\" ") +
2119
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"schemas\" \"s2\" ON \"s2\".\"schema_id\" = \"t2\".\"schema_id\" ") +
2120
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"columns\" \"col1\" ON \"col1\".\"column_id\" = \"fkc\".\"parent_column_id\" AND \"col1\".\"object_id\" = \"fk\".\"parent_object_id\" ") +
2121
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"columns\" \"col2\" ON \"col2\".\"column_id\" = \"fkc\".\"referenced_column_id\" AND \"col2\".\"object_id\" = \"fk\".\"referenced_object_id\"");
2122
- }).join(" UNION ALL ");
2123
- identityColumnsSql = dbNames.map(function (dbName) {
2124
- return "SELECT \"TABLE_CATALOG\", \"TABLE_SCHEMA\", \"COLUMN_NAME\", \"TABLE_NAME\" " +
2125
- ("FROM \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"COLUMNS\" ") +
2126
- ("WHERE COLUMNPROPERTY(object_id(\"TABLE_CATALOG\" + '.' + \"TABLE_SCHEMA\" + '.' + \"TABLE_NAME\"), \"COLUMN_NAME\", 'IsIdentity') = 1 AND \"TABLE_SCHEMA\" IN (" + schemaNamesString + ")");
2127
- }).join(" UNION ALL ");
2128
- dbCollationsSql = "SELECT \"NAME\", \"COLLATION_NAME\" FROM \"sys\".\"databases\"";
2129
- indicesSql = dbNames.map(function (dbName) {
2130
- return "SELECT '" + dbName + "' AS \"TABLE_CATALOG\", \"s\".\"name\" AS \"TABLE_SCHEMA\", \"t\".\"name\" AS \"TABLE_NAME\", " +
2131
- "\"ind\".\"name\" AS \"INDEX_NAME\", \"col\".\"name\" AS \"COLUMN_NAME\", \"ind\".\"is_unique\" AS \"IS_UNIQUE\", \"ind\".\"filter_definition\" as \"CONDITION\" " +
2132
- ("FROM \"" + dbName + "\".\"sys\".\"indexes\" \"ind\" ") +
2133
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"index_columns\" \"ic\" ON \"ic\".\"object_id\" = \"ind\".\"object_id\" AND \"ic\".\"index_id\" = \"ind\".\"index_id\" ") +
2134
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"columns\" \"col\" ON \"col\".\"object_id\" = \"ic\".\"object_id\" AND \"col\".\"column_id\" = \"ic\".\"column_id\" ") +
2135
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"tables\" \"t\" ON \"t\".\"object_id\" = \"ind\".\"object_id\" ") +
2136
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"schemas\" \"s\" ON \"s\".\"schema_id\" = \"t\".\"schema_id\" ") +
2137
- "WHERE \"ind\".\"is_primary_key\" = 0 AND \"ind\".\"is_unique_constraint\" = 0 AND \"t\".\"is_ms_shipped\" = 0";
2138
- }).join(" UNION ALL ");
2139
- return [4 /*yield*/, Promise.all([
2140
- this.query(tablesSql),
2141
- this.query(columnsSql),
2142
- this.query(constraintsSql),
2143
- this.query(foreignKeysSql),
2144
- this.query(identityColumnsSql),
2145
- this.query(dbCollationsSql),
2146
- this.query(indicesSql),
2147
- ])];
2148
- case 3:
2149
- _a = tslib_1.__read.apply(void 0, [_b.sent(), 7]), dbTables = _a[0], dbColumns = _a[1], dbConstraints = _a[2], dbForeignKeys = _a[3], dbIdentityColumns = _a[4], dbCollations = _a[5], dbIndices = _a[6];
2150
- // if tables were not found in the db, no need to proceed
2151
- if (!dbTables.length)
2152
- return [2 /*return*/, []];
2153
- return [4 /*yield*/, Promise.all(dbTables.map(function (dbTable) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
2154
- var table, db, schema, tableFullName, defaultCollation, tableUniqueConstraints, tableCheckConstraints, tableForeignKeyConstraints, tableIndexConstraints;
2155
- var _this = this;
2156
- return tslib_1.__generator(this, function (_a) {
2157
- table = new Table_1.Table();
2158
- db = dbTable["TABLE_CATALOG"] === currentDatabase ? undefined : dbTable["TABLE_CATALOG"];
2159
- schema = dbTable["TABLE_SCHEMA"] === currentSchema && !this.driver.options.schema ? undefined : dbTable["TABLE_SCHEMA"];
2160
- table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], schema, db);
2161
- tableFullName = this.driver.buildTableName(dbTable["TABLE_NAME"], dbTable["TABLE_SCHEMA"], dbTable["TABLE_CATALOG"]);
2162
- defaultCollation = dbCollations.find(function (dbCollation) { return dbCollation["NAME"] === dbTable["TABLE_CATALOG"]; });
2163
- // create columns from the loaded columns
2164
- table.columns = dbColumns
2165
- .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn["TABLE_NAME"], dbColumn["TABLE_SCHEMA"], dbColumn["TABLE_CATALOG"]) === tableFullName; })
2166
- .map(function (dbColumn) {
2167
- var e_1, _a;
2168
- var columnConstraints = dbConstraints.filter(function (dbConstraint) {
2169
- return _this.driver.buildTableName(dbConstraint["TABLE_NAME"], dbConstraint["CONSTRAINT_SCHEMA"], dbConstraint["CONSTRAINT_CATALOG"]) === tableFullName
2170
- && dbConstraint["COLUMN_NAME"] === dbColumn["COLUMN_NAME"];
2171
- });
2172
- var uniqueConstraint = columnConstraints.find(function (constraint) { return constraint["CONSTRAINT_TYPE"] === "UNIQUE"; });
2173
- var isConstraintComposite = uniqueConstraint
2174
- ? !!dbConstraints.find(function (dbConstraint) { return dbConstraint["CONSTRAINT_TYPE"] === "UNIQUE"
2175
- && dbConstraint["CONSTRAINT_NAME"] === uniqueConstraint["CONSTRAINT_NAME"]
2176
- && dbConstraint["COLUMN_NAME"] !== dbColumn["COLUMN_NAME"]; })
2177
- : false;
2178
- var isPrimary = !!columnConstraints.find(function (constraint) { return constraint["CONSTRAINT_TYPE"] === "PRIMARY KEY"; });
2179
- var isGenerated = !!dbIdentityColumns.find(function (column) {
2180
- return _this.driver.buildTableName(column["TABLE_NAME"], column["TABLE_SCHEMA"], column["TABLE_CATALOG"]) === tableFullName
2181
- && column["COLUMN_NAME"] === dbColumn["COLUMN_NAME"];
2182
- });
2183
- var tableColumn = new TableColumn_1.TableColumn();
2184
- tableColumn.name = dbColumn["COLUMN_NAME"];
2185
- tableColumn.type = dbColumn["DATA_TYPE"].toLowerCase();
2186
- // check only columns that have length property
2187
- if (_this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 && dbColumn["CHARACTER_MAXIMUM_LENGTH"]) {
2188
- var length = dbColumn["CHARACTER_MAXIMUM_LENGTH"].toString();
2189
- if (length === "-1") {
2190
- tableColumn.length = "MAX";
2191
- }
2192
- else {
2193
- tableColumn.length = !_this.isDefaultColumnLength(table, tableColumn, length) ? length : "";
2194
- }
2195
- }
2196
- if (tableColumn.type === "decimal" || tableColumn.type === "numeric") {
2197
- if (dbColumn["NUMERIC_PRECISION"] !== null && !_this.isDefaultColumnPrecision(table, tableColumn, dbColumn["NUMERIC_PRECISION"]))
2198
- tableColumn.precision = dbColumn["NUMERIC_PRECISION"];
2199
- if (dbColumn["NUMERIC_SCALE"] !== null && !_this.isDefaultColumnScale(table, tableColumn, dbColumn["NUMERIC_SCALE"]))
2200
- tableColumn.scale = dbColumn["NUMERIC_SCALE"];
2201
- }
2202
- if (tableColumn.type === "nvarchar") {
2203
- // Check if this is an enum
2204
- var columnCheckConstraints = columnConstraints.filter(function (constraint) { return constraint["CONSTRAINT_TYPE"] === "CHECK"; });
2205
- if (columnCheckConstraints.length) {
2206
- var isEnumRegexp = new RegExp("^\\(\\[" + tableColumn.name + "\\]='[^']+'(?: OR \\[" + tableColumn.name + "\\]='[^']+')*\\)$");
2207
- try {
2208
- for (var columnCheckConstraints_1 = tslib_1.__values(columnCheckConstraints), columnCheckConstraints_1_1 = columnCheckConstraints_1.next(); !columnCheckConstraints_1_1.done; columnCheckConstraints_1_1 = columnCheckConstraints_1.next()) {
2209
- var checkConstraint = columnCheckConstraints_1_1.value;
2210
- if (isEnumRegexp.test(checkConstraint["definition"])) {
2211
- // This is an enum constraint, make column into an enum
2212
- tableColumn.type = "simple-enum";
2213
- tableColumn.enum = [];
2214
- var enumValueRegexp = new RegExp("\\[" + tableColumn.name + "\\]='([^']+)'", "g");
2215
- var result = void 0;
2216
- while ((result = enumValueRegexp.exec(checkConstraint["definition"])) !== null) {
2217
- tableColumn.enum.unshift(result[1]);
2218
- }
2219
- // Skip other column constraints
2220
- break;
2221
- }
2222
- }
2223
- }
2224
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
2225
- finally {
2226
- try {
2227
- if (columnCheckConstraints_1_1 && !columnCheckConstraints_1_1.done && (_a = columnCheckConstraints_1.return)) _a.call(columnCheckConstraints_1);
2228
- }
2229
- finally { if (e_1) throw e_1.error; }
2230
- }
2231
- }
2232
- }
2233
- tableColumn.default = dbColumn["COLUMN_DEFAULT"] !== null && dbColumn["COLUMN_DEFAULT"] !== undefined
2234
- ? _this.removeParenthesisFromDefault(dbColumn["COLUMN_DEFAULT"])
2235
- : undefined;
2236
- tableColumn.isNullable = dbColumn["IS_NULLABLE"] === "YES";
2237
- tableColumn.isPrimary = isPrimary;
2238
- tableColumn.isUnique = !!uniqueConstraint && !isConstraintComposite;
2239
- tableColumn.isGenerated = isGenerated;
2240
- if (isGenerated)
2241
- tableColumn.generationStrategy = "increment";
2242
- if (tableColumn.default === "newsequentialid()") {
2243
- tableColumn.isGenerated = true;
2244
- tableColumn.generationStrategy = "uuid";
2245
- tableColumn.default = undefined;
2246
- }
2247
- // todo: unable to get default charset
2248
- // tableColumn.charset = dbColumn["CHARACTER_SET_NAME"];
2249
- tableColumn.collation = dbColumn["COLLATION_NAME"] === defaultCollation["COLLATION_NAME"] ? undefined : dbColumn["COLLATION_NAME"];
2250
- if (tableColumn.type === "datetime2" || tableColumn.type === "time" || tableColumn.type === "datetimeoffset") {
2251
- tableColumn.precision = !_this.isDefaultColumnPrecision(table, tableColumn, dbColumn["DATETIME_PRECISION"]) ? dbColumn["DATETIME_PRECISION"] : undefined;
2252
- }
2253
- return tableColumn;
2254
- });
2255
- tableUniqueConstraints = OrmUtils_1.OrmUtils.uniq(dbConstraints.filter(function (dbConstraint) {
2256
- return _this.driver.buildTableName(dbConstraint["TABLE_NAME"], dbConstraint["CONSTRAINT_SCHEMA"], dbConstraint["CONSTRAINT_CATALOG"]) === tableFullName
2257
- && dbConstraint["CONSTRAINT_TYPE"] === "UNIQUE";
2258
- }), function (dbConstraint) { return dbConstraint["CONSTRAINT_NAME"]; });
2259
- table.uniques = tableUniqueConstraints.map(function (constraint) {
2260
- var uniques = dbConstraints.filter(function (dbC) { return dbC["CONSTRAINT_NAME"] === constraint["CONSTRAINT_NAME"]; });
2261
- return new TableUnique_1.TableUnique({
2262
- name: constraint["CONSTRAINT_NAME"],
2263
- columnNames: uniques.map(function (u) { return u["COLUMN_NAME"]; })
2264
- });
2265
- });
2266
- tableCheckConstraints = OrmUtils_1.OrmUtils.uniq(dbConstraints.filter(function (dbConstraint) {
2267
- return _this.driver.buildTableName(dbConstraint["TABLE_NAME"], dbConstraint["CONSTRAINT_SCHEMA"], dbConstraint["CONSTRAINT_CATALOG"]) === tableFullName
2268
- && dbConstraint["CONSTRAINT_TYPE"] === "CHECK";
2269
- }), function (dbConstraint) { return dbConstraint["CONSTRAINT_NAME"]; });
2270
- table.checks = tableCheckConstraints.map(function (constraint) {
2271
- var checks = dbConstraints.filter(function (dbC) { return dbC["CONSTRAINT_NAME"] === constraint["CONSTRAINT_NAME"]; });
2272
- return new TableCheck_1.TableCheck({
2273
- name: constraint["CONSTRAINT_NAME"],
2274
- columnNames: checks.map(function (c) { return c["COLUMN_NAME"]; }),
2275
- expression: constraint["definition"]
2276
- });
2277
- });
2278
- tableForeignKeyConstraints = OrmUtils_1.OrmUtils.uniq(dbForeignKeys.filter(function (dbForeignKey) {
2279
- return _this.driver.buildTableName(dbForeignKey["TABLE_NAME"], dbForeignKey["TABLE_SCHEMA"], dbForeignKey["TABLE_CATALOG"]) === tableFullName;
2280
- }), function (dbForeignKey) { return dbForeignKey["FK_NAME"]; });
2281
- table.foreignKeys = tableForeignKeyConstraints.map(function (dbForeignKey) {
2282
- var foreignKeys = dbForeignKeys.filter(function (dbFk) { return dbFk["FK_NAME"] === dbForeignKey["FK_NAME"]; });
2283
- // if referenced table located in currently used db and schema, we don't need to concat db and schema names to table name.
2284
- var db = dbForeignKey["TABLE_CATALOG"] === currentDatabase ? undefined : dbForeignKey["TABLE_CATALOG"];
2285
- var schema = dbForeignKey["REF_SCHEMA"] === currentSchema ? undefined : dbForeignKey["REF_SCHEMA"];
2286
- var referencedTableName = _this.driver.buildTableName(dbForeignKey["REF_TABLE"], schema, db);
2287
- return new TableForeignKey_1.TableForeignKey({
2288
- name: dbForeignKey["FK_NAME"],
2289
- columnNames: foreignKeys.map(function (dbFk) { return dbFk["COLUMN_NAME"]; }),
2290
- referencedTableName: referencedTableName,
2291
- referencedColumnNames: foreignKeys.map(function (dbFk) { return dbFk["REF_COLUMN"]; }),
2292
- onDelete: dbForeignKey["ON_DELETE"].replace("_", " "),
2293
- onUpdate: dbForeignKey["ON_UPDATE"].replace("_", " ") // SqlServer returns NO_ACTION, instead of NO ACTION
2294
- });
2295
- });
2296
- tableIndexConstraints = OrmUtils_1.OrmUtils.uniq(dbIndices.filter(function (dbIndex) {
2297
- return _this.driver.buildTableName(dbIndex["TABLE_NAME"], dbIndex["TABLE_SCHEMA"], dbIndex["TABLE_CATALOG"]) === tableFullName;
2298
- }), function (dbIndex) { return dbIndex["INDEX_NAME"]; });
2299
- table.indices = tableIndexConstraints.map(function (constraint) {
2300
- var indices = dbIndices.filter(function (index) {
2301
- return index["TABLE_CATALOG"] === constraint["TABLE_CATALOG"]
2302
- && index["TABLE_SCHEMA"] === constraint["TABLE_SCHEMA"]
2303
- && index["TABLE_NAME"] === constraint["TABLE_NAME"]
2304
- && index["INDEX_NAME"] === constraint["INDEX_NAME"];
2305
- });
2306
- return new TableIndex_1.TableIndex({
2307
- table: table,
2308
- name: constraint["INDEX_NAME"],
2309
- columnNames: indices.map(function (i) { return i["COLUMN_NAME"]; }),
2310
- isUnique: constraint["IS_UNIQUE"],
2311
- where: constraint["CONDITION"]
2312
- });
2313
- });
2314
- return [2 /*return*/, table];
2315
- });
2316
- }); }))];
2317
- case 4:
2318
- // create table schemas for loaded tables
2319
- return [2 /*return*/, _b.sent()];
1687
+ }
1688
+ }
1689
+ }
1690
+ tableColumn.default =
1691
+ dbColumn["COLUMN_DEFAULT"] !== null &&
1692
+ dbColumn["COLUMN_DEFAULT"] !== undefined
1693
+ ? this.removeParenthesisFromDefault(dbColumn["COLUMN_DEFAULT"])
1694
+ : undefined;
1695
+ tableColumn.isNullable =
1696
+ dbColumn["IS_NULLABLE"] === "YES";
1697
+ tableColumn.isPrimary = isPrimary;
1698
+ tableColumn.isUnique =
1699
+ uniqueConstraints.length > 0 &&
1700
+ !isConstraintComposite;
1701
+ tableColumn.isGenerated = isGenerated;
1702
+ if (isGenerated)
1703
+ tableColumn.generationStrategy = "increment";
1704
+ if (tableColumn.default === "newsequentialid()") {
1705
+ tableColumn.isGenerated = true;
1706
+ tableColumn.generationStrategy = "uuid";
1707
+ tableColumn.default = undefined;
1708
+ }
1709
+ // todo: unable to get default charset
1710
+ // tableColumn.charset = dbColumn["CHARACTER_SET_NAME"];
1711
+ if (dbColumn["COLLATION_NAME"])
1712
+ tableColumn.collation =
1713
+ dbColumn["COLLATION_NAME"] ===
1714
+ defaultCollation["COLLATION_NAME"]
1715
+ ? undefined
1716
+ : dbColumn["COLLATION_NAME"];
1717
+ if (tableColumn.type === "datetime2" ||
1718
+ tableColumn.type === "time" ||
1719
+ tableColumn.type === "datetimeoffset") {
1720
+ tableColumn.precision =
1721
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["DATETIME_PRECISION"])
1722
+ ? dbColumn["DATETIME_PRECISION"]
1723
+ : undefined;
2320
1724
  }
1725
+ return tableColumn;
2321
1726
  });
2322
- });
2323
- };
1727
+ // find unique constraints of table, group them by constraint name and build TableUnique.
1728
+ const tableUniqueConstraints = OrmUtils_1.OrmUtils.uniq(dbConstraints.filter((dbConstraint) => dbConstraint["TABLE_NAME"] ===
1729
+ dbTable["TABLE_NAME"] &&
1730
+ dbConstraint["TABLE_SCHEMA"] ===
1731
+ dbTable["TABLE_SCHEMA"] &&
1732
+ dbConstraint["TABLE_CATALOG"] ===
1733
+ dbTable["TABLE_CATALOG"] &&
1734
+ dbConstraint["CONSTRAINT_TYPE"] === "UNIQUE"), (dbConstraint) => dbConstraint["CONSTRAINT_NAME"]);
1735
+ table.uniques = tableUniqueConstraints.map((constraint) => {
1736
+ const uniques = dbConstraints.filter((dbC) => dbC["CONSTRAINT_NAME"] ===
1737
+ constraint["CONSTRAINT_NAME"]);
1738
+ return new TableUnique_1.TableUnique({
1739
+ name: constraint["CONSTRAINT_NAME"],
1740
+ columnNames: uniques.map((u) => u["COLUMN_NAME"]),
1741
+ });
1742
+ });
1743
+ // find check constraints of table, group them by constraint name and build TableCheck.
1744
+ const tableCheckConstraints = OrmUtils_1.OrmUtils.uniq(dbConstraints.filter((dbConstraint) => dbConstraint["TABLE_NAME"] ===
1745
+ dbTable["TABLE_NAME"] &&
1746
+ dbConstraint["TABLE_SCHEMA"] ===
1747
+ dbTable["TABLE_SCHEMA"] &&
1748
+ dbConstraint["TABLE_CATALOG"] ===
1749
+ dbTable["TABLE_CATALOG"] &&
1750
+ dbConstraint["CONSTRAINT_TYPE"] === "CHECK"), (dbConstraint) => dbConstraint["CONSTRAINT_NAME"]);
1751
+ table.checks = tableCheckConstraints
1752
+ .filter((constraint) => !this.isEnumCheckConstraint(constraint["CONSTRAINT_NAME"]))
1753
+ .map((constraint) => {
1754
+ const checks = dbConstraints.filter((dbC) => dbC["CONSTRAINT_NAME"] ===
1755
+ constraint["CONSTRAINT_NAME"]);
1756
+ return new TableCheck_1.TableCheck({
1757
+ name: constraint["CONSTRAINT_NAME"],
1758
+ columnNames: checks.map((c) => c["COLUMN_NAME"]),
1759
+ expression: constraint["definition"],
1760
+ });
1761
+ });
1762
+ // find foreign key constraints of table, group them by constraint name and build TableForeignKey.
1763
+ const tableForeignKeyConstraints = OrmUtils_1.OrmUtils.uniq(dbForeignKeys.filter((dbForeignKey) => dbForeignKey["TABLE_NAME"] ===
1764
+ dbTable["TABLE_NAME"] &&
1765
+ dbForeignKey["TABLE_SCHEMA"] ===
1766
+ dbTable["TABLE_SCHEMA"] &&
1767
+ dbForeignKey["TABLE_CATALOG"] ===
1768
+ dbTable["TABLE_CATALOG"]), (dbForeignKey) => dbForeignKey["FK_NAME"]);
1769
+ table.foreignKeys = tableForeignKeyConstraints.map((dbForeignKey) => {
1770
+ const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["FK_NAME"] === dbForeignKey["FK_NAME"]);
1771
+ // if referenced table located in currently used db and schema, we don't need to concat db and schema names to table name.
1772
+ const db = dbForeignKey["TABLE_CATALOG"] === currentDatabase
1773
+ ? undefined
1774
+ : dbForeignKey["TABLE_CATALOG"];
1775
+ const schema = getSchemaFromKey(dbForeignKey, "REF_SCHEMA");
1776
+ const referencedTableName = this.driver.buildTableName(dbForeignKey["REF_TABLE"], schema, db);
1777
+ return new TableForeignKey_1.TableForeignKey({
1778
+ name: dbForeignKey["FK_NAME"],
1779
+ columnNames: foreignKeys.map((dbFk) => dbFk["COLUMN_NAME"]),
1780
+ referencedDatabase: dbForeignKey["TABLE_CATALOG"],
1781
+ referencedSchema: dbForeignKey["REF_SCHEMA"],
1782
+ referencedTableName: referencedTableName,
1783
+ referencedColumnNames: foreignKeys.map((dbFk) => dbFk["REF_COLUMN"]),
1784
+ onDelete: dbForeignKey["ON_DELETE"].replace("_", " "),
1785
+ onUpdate: dbForeignKey["ON_UPDATE"].replace("_", " "), // SqlServer returns NO_ACTION, instead of NO ACTION
1786
+ });
1787
+ });
1788
+ // find index constraints of table, group them by constraint name and build TableIndex.
1789
+ const tableIndexConstraints = OrmUtils_1.OrmUtils.uniq(dbIndices.filter((dbIndex) => dbIndex["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1790
+ dbIndex["TABLE_SCHEMA"] ===
1791
+ dbTable["TABLE_SCHEMA"] &&
1792
+ dbIndex["TABLE_CATALOG"] ===
1793
+ dbTable["TABLE_CATALOG"]), (dbIndex) => dbIndex["INDEX_NAME"]);
1794
+ table.indices = tableIndexConstraints.map((constraint) => {
1795
+ const indices = dbIndices.filter((index) => {
1796
+ return (index["TABLE_CATALOG"] ===
1797
+ constraint["TABLE_CATALOG"] &&
1798
+ index["TABLE_SCHEMA"] ===
1799
+ constraint["TABLE_SCHEMA"] &&
1800
+ index["TABLE_NAME"] === constraint["TABLE_NAME"] &&
1801
+ index["INDEX_NAME"] === constraint["INDEX_NAME"]);
1802
+ });
1803
+ return new TableIndex_1.TableIndex({
1804
+ table: table,
1805
+ name: constraint["INDEX_NAME"],
1806
+ columnNames: indices.map((i) => i["COLUMN_NAME"]),
1807
+ isUnique: constraint["IS_UNIQUE"],
1808
+ where: constraint["CONDITION"],
1809
+ });
1810
+ });
1811
+ return table;
1812
+ }));
1813
+ }
2324
1814
  /**
2325
1815
  * Builds and returns SQL for create table.
2326
1816
  */
2327
- SqlServerQueryRunner.prototype.createTableSql = function (table, createForeignKeys) {
2328
- var _this = this;
2329
- var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(table, column, false, true); }).join(", ");
2330
- var sql = "CREATE TABLE " + this.escapePath(table) + " (" + columnDefinitions;
1817
+ createTableSql(table, createForeignKeys) {
1818
+ const columnDefinitions = table.columns
1819
+ .map((column) => this.buildCreateColumnSql(table, column, false, true))
1820
+ .join(", ");
1821
+ let sql = `CREATE TABLE ${this.escapePath(table)} (${columnDefinitions}`;
2331
1822
  table.columns
2332
- .filter(function (column) { return column.isUnique; })
2333
- .forEach(function (column) {
2334
- var isUniqueExist = table.uniques.some(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });
1823
+ .filter((column) => column.isUnique)
1824
+ .forEach((column) => {
1825
+ const isUniqueExist = table.uniques.some((unique) => unique.columnNames.length === 1 &&
1826
+ unique.columnNames[0] === column.name);
2335
1827
  if (!isUniqueExist)
2336
1828
  table.uniques.push(new TableUnique_1.TableUnique({
2337
- name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),
2338
- columnNames: [column.name]
1829
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
1830
+ columnNames: [column.name],
2339
1831
  }));
2340
1832
  });
2341
1833
  if (table.uniques.length > 0) {
2342
- var uniquesSql = table.uniques.map(function (unique) {
2343
- var uniqueName = unique.name ? unique.name : _this.connection.namingStrategy.uniqueConstraintName(table.name, unique.columnNames);
2344
- var columnNames = unique.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2345
- return "CONSTRAINT \"" + uniqueName + "\" UNIQUE (" + columnNames + ")";
2346
- }).join(", ");
2347
- sql += ", " + uniquesSql;
1834
+ const uniquesSql = table.uniques
1835
+ .map((unique) => {
1836
+ const uniqueName = unique.name
1837
+ ? unique.name
1838
+ : this.connection.namingStrategy.uniqueConstraintName(table, unique.columnNames);
1839
+ const columnNames = unique.columnNames
1840
+ .map((columnName) => `"${columnName}"`)
1841
+ .join(", ");
1842
+ return `CONSTRAINT "${uniqueName}" UNIQUE (${columnNames})`;
1843
+ })
1844
+ .join(", ");
1845
+ sql += `, ${uniquesSql}`;
2348
1846
  }
2349
1847
  if (table.checks.length > 0) {
2350
- var checksSql = table.checks.map(function (check) {
2351
- var checkName = check.name ? check.name : _this.connection.namingStrategy.checkConstraintName(table.name, check.expression);
2352
- return "CONSTRAINT \"" + checkName + "\" CHECK (" + check.expression + ")";
2353
- }).join(", ");
2354
- sql += ", " + checksSql;
1848
+ const checksSql = table.checks
1849
+ .map((check) => {
1850
+ const checkName = check.name
1851
+ ? check.name
1852
+ : this.connection.namingStrategy.checkConstraintName(table, check.expression);
1853
+ return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
1854
+ })
1855
+ .join(", ");
1856
+ sql += `, ${checksSql}`;
2355
1857
  }
2356
1858
  if (table.foreignKeys.length > 0 && createForeignKeys) {
2357
- var foreignKeysSql = table.foreignKeys.map(function (fk) {
2358
- var columnNames = fk.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
1859
+ const foreignKeysSql = table.foreignKeys
1860
+ .map((fk) => {
1861
+ const columnNames = fk.columnNames
1862
+ .map((columnName) => `"${columnName}"`)
1863
+ .join(", ");
2359
1864
  if (!fk.name)
2360
- fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames);
2361
- var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2362
- var constraint = "CONSTRAINT \"" + fk.name + "\" FOREIGN KEY (" + columnNames + ") REFERENCES " + _this.escapePath(fk.referencedTableName) + " (" + referencedColumnNames + ")";
1865
+ fk.name = this.connection.namingStrategy.foreignKeyName(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
1866
+ const referencedColumnNames = fk.referencedColumnNames
1867
+ .map((columnName) => `"${columnName}"`)
1868
+ .join(", ");
1869
+ let constraint = `CONSTRAINT "${fk.name}" FOREIGN KEY (${columnNames}) REFERENCES ${this.escapePath(this.getTablePath(fk))} (${referencedColumnNames})`;
2363
1870
  if (fk.onDelete)
2364
- constraint += " ON DELETE " + fk.onDelete;
1871
+ constraint += ` ON DELETE ${fk.onDelete}`;
2365
1872
  if (fk.onUpdate)
2366
- constraint += " ON UPDATE " + fk.onUpdate;
1873
+ constraint += ` ON UPDATE ${fk.onUpdate}`;
2367
1874
  return constraint;
2368
- }).join(", ");
2369
- sql += ", " + foreignKeysSql;
1875
+ })
1876
+ .join(", ");
1877
+ sql += `, ${foreignKeysSql}`;
2370
1878
  }
2371
- var primaryColumns = table.columns.filter(function (column) { return column.isPrimary; });
1879
+ const primaryColumns = table.columns.filter((column) => column.isPrimary);
2372
1880
  if (primaryColumns.length > 0) {
2373
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, primaryColumns.map(function (column) { return column.name; }));
2374
- var columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
2375
- sql += ", CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNames + ")";
1881
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
1882
+ const columnNames = primaryColumns
1883
+ .map((column) => `"${column.name}"`)
1884
+ .join(", ");
1885
+ sql += `, CONSTRAINT "${primaryKeyName}" PRIMARY KEY (${columnNames})`;
2376
1886
  }
2377
- sql += ")";
1887
+ sql += `)`;
2378
1888
  return new Query_1.Query(sql);
2379
- };
1889
+ }
2380
1890
  /**
2381
1891
  * Builds drop table sql.
2382
1892
  */
2383
- SqlServerQueryRunner.prototype.dropTableSql = function (tableOrName, ifExist) {
2384
- var query = ifExist ? "DROP TABLE IF EXISTS " + this.escapePath(tableOrName) : "DROP TABLE " + this.escapePath(tableOrName);
1893
+ dropTableSql(tableOrName, ifExist) {
1894
+ const query = ifExist
1895
+ ? `DROP TABLE IF EXISTS ${this.escapePath(tableOrName)}`
1896
+ : `DROP TABLE ${this.escapePath(tableOrName)}`;
2385
1897
  return new Query_1.Query(query);
2386
- };
2387
- SqlServerQueryRunner.prototype.createViewSql = function (view) {
1898
+ }
1899
+ createViewSql(view) {
1900
+ const parsedName = this.driver.parseTableName(view);
1901
+ // Can't use `escapePath` here because `CREATE VIEW` does not accept database names.
1902
+ const viewIdentifier = parsedName.schema
1903
+ ? `"${parsedName.schema}"."${parsedName.tableName}"`
1904
+ : `"${parsedName.tableName}"`;
2388
1905
  if (typeof view.expression === "string") {
2389
- return new Query_1.Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression);
1906
+ return new Query_1.Query(`CREATE VIEW ${viewIdentifier} AS ${view.expression}`);
2390
1907
  }
2391
1908
  else {
2392
- return new Query_1.Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression(this.connection).getQuery());
2393
- }
2394
- };
2395
- SqlServerQueryRunner.prototype.insertViewDefinitionSql = function (view) {
2396
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2397
- var currentSchema, parsedTableName, expression, _a, query, parameters;
2398
- return tslib_1.__generator(this, function (_b) {
2399
- switch (_b.label) {
2400
- case 0: return [4 /*yield*/, this.getCurrentSchema()];
2401
- case 1:
2402
- currentSchema = _b.sent();
2403
- parsedTableName = this.parseTableName(view, currentSchema);
2404
- expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery();
2405
- _a = tslib_1.__read(this.connection.createQueryBuilder()
2406
- .insert()
2407
- .into(this.getTypeormMetadataTableName())
2408
- .values({ type: "VIEW", database: parsedTableName.database, schema: parsedTableName.schema, name: parsedTableName.name, value: expression })
2409
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
2410
- return [2 /*return*/, new Query_1.Query(query, parameters)];
2411
- }
2412
- });
1909
+ return new Query_1.Query(`CREATE VIEW ${viewIdentifier} AS ${view
1910
+ .expression(this.connection)
1911
+ .getQuery()}`);
1912
+ }
1913
+ }
1914
+ async insertViewDefinitionSql(view) {
1915
+ const parsedTableName = this.driver.parseTableName(view);
1916
+ if (!parsedTableName.schema) {
1917
+ parsedTableName.schema = await this.getCurrentSchema();
1918
+ }
1919
+ const expression = typeof view.expression === "string"
1920
+ ? view.expression.trim()
1921
+ : view.expression(this.connection).getQuery();
1922
+ return this.insertTypeormMetadataSql({
1923
+ type: MetadataTableType_1.MetadataTableType.VIEW,
1924
+ database: parsedTableName.database,
1925
+ schema: parsedTableName.schema,
1926
+ name: parsedTableName.tableName,
1927
+ value: expression,
2413
1928
  });
2414
- };
1929
+ }
2415
1930
  /**
2416
1931
  * Builds drop view sql.
2417
1932
  */
2418
- SqlServerQueryRunner.prototype.dropViewSql = function (viewOrPath) {
2419
- return new Query_1.Query("DROP VIEW " + this.escapePath(viewOrPath));
2420
- };
1933
+ dropViewSql(viewOrPath) {
1934
+ return new Query_1.Query(`DROP VIEW ${this.escapePath(viewOrPath)}`);
1935
+ }
2421
1936
  /**
2422
1937
  * Builds remove view sql.
2423
1938
  */
2424
- SqlServerQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) {
2425
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2426
- var currentSchema, parsedTableName, qb, _a, query, parameters;
2427
- return tslib_1.__generator(this, function (_b) {
2428
- switch (_b.label) {
2429
- case 0: return [4 /*yield*/, this.getCurrentSchema()];
2430
- case 1:
2431
- currentSchema = _b.sent();
2432
- parsedTableName = this.parseTableName(viewOrPath, currentSchema);
2433
- qb = this.connection.createQueryBuilder();
2434
- _a = tslib_1.__read(qb.delete()
2435
- .from(this.getTypeormMetadataTableName())
2436
- .where(qb.escape("type") + " = 'VIEW'")
2437
- .andWhere(qb.escape("database") + " = :database", { database: parsedTableName.database })
2438
- .andWhere(qb.escape("schema") + " = :schema", { schema: parsedTableName.schema })
2439
- .andWhere(qb.escape("name") + " = :name", { name: parsedTableName.name })
2440
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
2441
- return [2 /*return*/, new Query_1.Query(query, parameters)];
2442
- }
2443
- });
1939
+ async deleteViewDefinitionSql(viewOrPath) {
1940
+ const parsedTableName = this.driver.parseTableName(viewOrPath);
1941
+ if (!parsedTableName.schema) {
1942
+ parsedTableName.schema = await this.getCurrentSchema();
1943
+ }
1944
+ return this.deleteTypeormMetadataSql({
1945
+ type: MetadataTableType_1.MetadataTableType.VIEW,
1946
+ database: parsedTableName.database,
1947
+ schema: parsedTableName.schema,
1948
+ name: parsedTableName.tableName,
2444
1949
  });
2445
- };
1950
+ }
2446
1951
  /**
2447
1952
  * Builds create index sql.
2448
1953
  */
2449
- SqlServerQueryRunner.prototype.createIndexSql = function (table, index) {
2450
- var columns = index.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2451
- return new Query_1.Query("CREATE " + (index.isUnique ? "UNIQUE " : "") + "INDEX \"" + index.name + "\" ON " + this.escapePath(table) + " (" + columns + ") " + (index.where ? "WHERE " + index.where : ""));
2452
- };
1954
+ createIndexSql(table, index) {
1955
+ const columns = index.columnNames
1956
+ .map((columnName) => `"${columnName}"`)
1957
+ .join(", ");
1958
+ return new Query_1.Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} (${columns}) ${index.where ? "WHERE " + index.where : ""}`);
1959
+ }
2453
1960
  /**
2454
1961
  * Builds drop index sql.
2455
1962
  */
2456
- SqlServerQueryRunner.prototype.dropIndexSql = function (table, indexOrName) {
2457
- var indexName = indexOrName instanceof TableIndex_1.TableIndex ? indexOrName.name : indexOrName;
2458
- return new Query_1.Query("DROP INDEX \"" + indexName + "\" ON " + this.escapePath(table));
2459
- };
1963
+ dropIndexSql(table, indexOrName) {
1964
+ let indexName = InstanceChecker_1.InstanceChecker.isTableIndex(indexOrName)
1965
+ ? indexOrName.name
1966
+ : indexOrName;
1967
+ return new Query_1.Query(`DROP INDEX "${indexName}" ON ${this.escapePath(table)}`);
1968
+ }
2460
1969
  /**
2461
1970
  * Builds create primary key sql.
2462
1971
  */
2463
- SqlServerQueryRunner.prototype.createPrimaryKeySql = function (table, columnNames) {
2464
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames);
2465
- var columnNamesString = columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2466
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNamesString + ")");
2467
- };
1972
+ createPrimaryKeySql(table, columnNames) {
1973
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
1974
+ const columnNamesString = columnNames
1975
+ .map((columnName) => `"${columnName}"`)
1976
+ .join(", ");
1977
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${primaryKeyName}" PRIMARY KEY (${columnNamesString})`);
1978
+ }
2468
1979
  /**
2469
1980
  * Builds drop primary key sql.
2470
1981
  */
2471
- SqlServerQueryRunner.prototype.dropPrimaryKeySql = function (table) {
2472
- var columnNames = table.primaryColumns.map(function (column) { return column.name; });
2473
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames);
2474
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + primaryKeyName + "\"");
2475
- };
1982
+ dropPrimaryKeySql(table) {
1983
+ const columnNames = table.primaryColumns.map((column) => column.name);
1984
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
1985
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
1986
+ }
2476
1987
  /**
2477
1988
  * Builds create unique constraint sql.
2478
1989
  */
2479
- SqlServerQueryRunner.prototype.createUniqueConstraintSql = function (table, uniqueConstraint) {
2480
- var columnNames = uniqueConstraint.columnNames.map(function (column) { return "\"" + column + "\""; }).join(", ");
2481
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (" + columnNames + ")");
2482
- };
1990
+ createUniqueConstraintSql(table, uniqueConstraint) {
1991
+ const columnNames = uniqueConstraint.columnNames
1992
+ .map((column) => `"` + column + `"`)
1993
+ .join(", ");
1994
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE (${columnNames})`);
1995
+ }
2483
1996
  /**
2484
1997
  * Builds drop unique constraint sql.
2485
1998
  */
2486
- SqlServerQueryRunner.prototype.dropUniqueConstraintSql = function (table, uniqueOrName) {
2487
- var uniqueName = uniqueOrName instanceof TableUnique_1.TableUnique ? uniqueOrName.name : uniqueOrName;
2488
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueName + "\"");
2489
- };
1999
+ dropUniqueConstraintSql(table, uniqueOrName) {
2000
+ const uniqueName = InstanceChecker_1.InstanceChecker.isTableUnique(uniqueOrName)
2001
+ ? uniqueOrName.name
2002
+ : uniqueOrName;
2003
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueName}"`);
2004
+ }
2490
2005
  /**
2491
2006
  * Builds create check constraint sql.
2492
2007
  */
2493
- SqlServerQueryRunner.prototype.createCheckConstraintSql = function (table, checkConstraint) {
2494
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + checkConstraint.name + "\" CHECK (" + checkConstraint.expression + ")");
2495
- };
2008
+ createCheckConstraintSql(table, checkConstraint) {
2009
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${checkConstraint.name}" CHECK (${checkConstraint.expression})`);
2010
+ }
2496
2011
  /**
2497
2012
  * Builds drop check constraint sql.
2498
2013
  */
2499
- SqlServerQueryRunner.prototype.dropCheckConstraintSql = function (table, checkOrName) {
2500
- var checkName = checkOrName instanceof TableCheck_1.TableCheck ? checkOrName.name : checkOrName;
2501
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + checkName + "\"");
2502
- };
2014
+ dropCheckConstraintSql(table, checkOrName) {
2015
+ const checkName = InstanceChecker_1.InstanceChecker.isTableCheck(checkOrName)
2016
+ ? checkOrName.name
2017
+ : checkOrName;
2018
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${checkName}"`);
2019
+ }
2503
2020
  /**
2504
2021
  * Builds create foreign key sql.
2505
2022
  */
2506
- SqlServerQueryRunner.prototype.createForeignKeySql = function (table, foreignKey) {
2507
- var columnNames = foreignKey.columnNames.map(function (column) { return "\"" + column + "\""; }).join(", ");
2508
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "\"" + column + "\""; }).join(",");
2509
- var sql = "ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + foreignKey.name + "\" FOREIGN KEY (" + columnNames + ") " +
2510
- ("REFERENCES " + this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
2023
+ createForeignKeySql(table, foreignKey) {
2024
+ const columnNames = foreignKey.columnNames
2025
+ .map((column) => `"` + column + `"`)
2026
+ .join(", ");
2027
+ const referencedColumnNames = foreignKey.referencedColumnNames
2028
+ .map((column) => `"` + column + `"`)
2029
+ .join(",");
2030
+ let sql = `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${foreignKey.name}" FOREIGN KEY (${columnNames}) ` +
2031
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
2511
2032
  if (foreignKey.onDelete)
2512
- sql += " ON DELETE " + foreignKey.onDelete;
2033
+ sql += ` ON DELETE ${foreignKey.onDelete}`;
2513
2034
  if (foreignKey.onUpdate)
2514
- sql += " ON UPDATE " + foreignKey.onUpdate;
2035
+ sql += ` ON UPDATE ${foreignKey.onUpdate}`;
2515
2036
  return new Query_1.Query(sql);
2516
- };
2037
+ }
2517
2038
  /**
2518
2039
  * Builds drop foreign key sql.
2519
2040
  */
2520
- SqlServerQueryRunner.prototype.dropForeignKeySql = function (table, foreignKeyOrName) {
2521
- var foreignKeyName = foreignKeyOrName instanceof TableForeignKey_1.TableForeignKey ? foreignKeyOrName.name : foreignKeyOrName;
2522
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + foreignKeyName + "\"");
2523
- };
2041
+ dropForeignKeySql(table, foreignKeyOrName) {
2042
+ const foreignKeyName = InstanceChecker_1.InstanceChecker.isTableForeignKey(foreignKeyOrName)
2043
+ ? foreignKeyOrName.name
2044
+ : foreignKeyOrName;
2045
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${foreignKeyName}"`);
2046
+ }
2524
2047
  /**
2525
2048
  * Escapes given table or View path.
2526
2049
  */
2527
- SqlServerQueryRunner.prototype.escapePath = function (target, disableEscape) {
2528
- var name = target instanceof Table_1.Table || target instanceof View_1.View ? target.name : target;
2529
- if (this.driver.options.schema) {
2530
- if (name.indexOf(".") === -1) {
2531
- name = this.driver.options.schema + "." + name;
2532
- }
2533
- else if (name.split(".").length === 3) {
2534
- var splittedName = name.split(".");
2535
- var dbName = splittedName[0];
2536
- var tableName = splittedName[2];
2537
- name = dbName + "." + this.driver.options.schema + "." + tableName;
2050
+ escapePath(target) {
2051
+ const { database, schema, tableName } = this.driver.parseTableName(target);
2052
+ if (database && database !== this.driver.database) {
2053
+ if (schema && schema !== this.driver.searchSchema) {
2054
+ return `"${database}"."${schema}"."${tableName}"`;
2538
2055
  }
2056
+ return `"${database}".."${tableName}"`;
2539
2057
  }
2540
- return name.split(".").map(function (i) {
2541
- // this condition need because when custom database name was specified and schema name was not, we got `dbName..tableName` string, and doesn't need to escape middle empty string
2542
- if (i === "")
2543
- return i;
2544
- return disableEscape ? i : "\"" + i + "\"";
2545
- }).join(".");
2546
- };
2547
- SqlServerQueryRunner.prototype.parseTableName = function (target, schema) {
2548
- var tableName = (target instanceof Table_1.Table || target instanceof View_1.View) ? target.name : target;
2549
- if (tableName.split(".").length === 3) {
2550
- return {
2551
- database: tableName.split(".")[0],
2552
- schema: tableName.split(".")[1] === "" ? schema || "SCHEMA_NAME()" : tableName.split(".")[1],
2553
- name: tableName.split(".")[2]
2554
- };
2058
+ if (schema && schema !== this.driver.searchSchema) {
2059
+ return `"${schema}"."${tableName}"`;
2555
2060
  }
2556
- else if (tableName.split(".").length === 2) {
2557
- return {
2558
- database: this.driver.database,
2559
- schema: tableName.split(".")[0],
2560
- name: tableName.split(".")[1]
2561
- };
2562
- }
2563
- else {
2564
- return {
2565
- database: this.driver.database,
2566
- schema: this.driver.options.schema ? this.driver.options.schema : schema || "SCHEMA_NAME()",
2567
- name: tableName
2568
- };
2569
- }
2570
- };
2061
+ return `"${tableName}"`;
2062
+ }
2571
2063
  /**
2572
2064
  * Concat database name and schema name to the foreign key name.
2573
2065
  * Needs because FK name is relevant to the schema and database.
2574
2066
  */
2575
- SqlServerQueryRunner.prototype.buildForeignKeyName = function (fkName, schemaName, dbName) {
2576
- var joinedFkName = fkName;
2577
- if (schemaName)
2067
+ buildForeignKeyName(fkName, schemaName, dbName) {
2068
+ let joinedFkName = fkName;
2069
+ if (schemaName && schemaName !== this.driver.searchSchema)
2578
2070
  joinedFkName = schemaName + "." + joinedFkName;
2579
- if (dbName)
2071
+ if (dbName && dbName !== this.driver.database)
2580
2072
  joinedFkName = dbName + "." + joinedFkName;
2581
2073
  return joinedFkName;
2582
- };
2074
+ }
2583
2075
  /**
2584
2076
  * Removes parenthesis around default value.
2585
2077
  * Sql server returns default value with parenthesis around, e.g.
@@ -2587,49 +2079,64 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2587
2079
  * ((1)) - for number
2588
2080
  * (newsequentialId()) - for function
2589
2081
  */
2590
- SqlServerQueryRunner.prototype.removeParenthesisFromDefault = function (defaultValue) {
2082
+ removeParenthesisFromDefault(defaultValue) {
2591
2083
  if (defaultValue.substr(0, 1) !== "(")
2592
2084
  return defaultValue;
2593
- var normalizedDefault = defaultValue.substr(1, defaultValue.lastIndexOf(")") - 1);
2085
+ const normalizedDefault = defaultValue.substr(1, defaultValue.lastIndexOf(")") - 1);
2594
2086
  return this.removeParenthesisFromDefault(normalizedDefault);
2595
- };
2087
+ }
2596
2088
  /**
2597
2089
  * Builds a query for create column.
2598
2090
  */
2599
- SqlServerQueryRunner.prototype.buildCreateColumnSql = function (table, column, skipIdentity, createDefault) {
2600
- var c = "\"" + column.name + "\" " + this.connection.driver.createFullType(column);
2601
- if (column.enum)
2602
- c += " CHECK( " + column.name + " IN (" + column.enum.map(function (val) { return "'" + val + "'"; }).join(",") + ") )";
2091
+ buildCreateColumnSql(table, column, skipIdentity, createDefault) {
2092
+ let c = `"${column.name}" ${this.connection.driver.createFullType(column)}`;
2093
+ if (column.enum) {
2094
+ const expression = column.name +
2095
+ " IN (" +
2096
+ column.enum.map((val) => "'" + val + "'").join(",") +
2097
+ ")";
2098
+ const checkName = this.connection.namingStrategy.checkConstraintName(table, expression, true);
2099
+ c += ` CONSTRAINT ${checkName} CHECK(${expression})`;
2100
+ }
2603
2101
  if (column.collation)
2604
2102
  c += " COLLATE " + column.collation;
2605
2103
  if (column.isNullable !== true)
2606
2104
  c += " NOT NULL";
2607
- if (column.isGenerated === true && column.generationStrategy === "increment" && !skipIdentity) // don't use skipPrimary here since updates can update already exist primary without auto inc.
2105
+ if (column.isGenerated === true &&
2106
+ column.generationStrategy === "increment" &&
2107
+ !skipIdentity)
2108
+ // don't use skipPrimary here since updates can update already exist primary without auto inc.
2608
2109
  c += " IDENTITY(1,1)";
2609
- if (column.default !== undefined && column.default !== null && createDefault) {
2110
+ if (column.default !== undefined &&
2111
+ column.default !== null &&
2112
+ createDefault) {
2610
2113
  // we create named constraint to be able to delete this constraint when column been dropped
2611
- var defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, column.name);
2612
- c += " CONSTRAINT \"" + defaultName + "\" DEFAULT " + column.default;
2114
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, column.name);
2115
+ c += ` CONSTRAINT "${defaultName}" DEFAULT ${column.default}`;
2613
2116
  }
2614
- if (column.isGenerated && column.generationStrategy === "uuid" && !column.default) {
2117
+ if (column.isGenerated &&
2118
+ column.generationStrategy === "uuid" &&
2119
+ !column.default) {
2615
2120
  // we create named constraint to be able to delete this constraint when column been dropped
2616
- var defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, column.name);
2617
- c += " CONSTRAINT \"" + defaultName + "\" DEFAULT NEWSEQUENTIALID()";
2121
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, column.name);
2122
+ c += ` CONSTRAINT "${defaultName}" DEFAULT NEWSEQUENTIALID()`;
2618
2123
  }
2619
2124
  return c;
2620
- };
2125
+ }
2126
+ isEnumCheckConstraint(name) {
2127
+ return name.indexOf("CHK_") !== -1 && name.indexOf("_ENUM") !== -1;
2128
+ }
2621
2129
  /**
2622
2130
  * Converts MssqlParameter into real mssql parameter type.
2623
2131
  */
2624
- SqlServerQueryRunner.prototype.mssqlParameterToNativeParameter = function (parameter) {
2625
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2132
+ mssqlParameterToNativeParameter(parameter) {
2626
2133
  switch (this.driver.normalizeType({ type: parameter.type })) {
2627
2134
  case "bit":
2628
2135
  return this.driver.mssql.Bit;
2629
2136
  case "bigint":
2630
2137
  return this.driver.mssql.BigInt;
2631
2138
  case "decimal":
2632
- return (_a = this.driver.mssql).Decimal.apply(_a, tslib_1.__spread(parameter.params));
2139
+ return this.driver.mssql.Decimal(...parameter.params);
2633
2140
  case "float":
2634
2141
  return this.driver.mssql.Float;
2635
2142
  case "int":
@@ -2637,7 +2144,7 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2637
2144
  case "money":
2638
2145
  return this.driver.mssql.Money;
2639
2146
  case "numeric":
2640
- return (_b = this.driver.mssql).Numeric.apply(_b, tslib_1.__spread(parameter.params));
2147
+ return this.driver.mssql.Numeric(...parameter.params);
2641
2148
  case "smallint":
2642
2149
  return this.driver.mssql.SmallInt;
2643
2150
  case "smallmoney":
@@ -2647,29 +2154,26 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2647
2154
  case "tinyint":
2648
2155
  return this.driver.mssql.TinyInt;
2649
2156
  case "char":
2650
- return (_c = this.driver.mssql).Char.apply(_c, tslib_1.__spread(parameter.params));
2651
2157
  case "nchar":
2652
- return (_d = this.driver.mssql).NChar.apply(_d, tslib_1.__spread(parameter.params));
2158
+ return this.driver.mssql.NChar(...parameter.params);
2653
2159
  case "text":
2654
- return this.driver.mssql.Text;
2655
2160
  case "ntext":
2656
2161
  return this.driver.mssql.Ntext;
2657
2162
  case "varchar":
2658
- return (_e = this.driver.mssql).VarChar.apply(_e, tslib_1.__spread(parameter.params));
2659
2163
  case "nvarchar":
2660
- return (_f = this.driver.mssql).NVarChar.apply(_f, tslib_1.__spread(parameter.params));
2164
+ return this.driver.mssql.NVarChar(...parameter.params);
2661
2165
  case "xml":
2662
2166
  return this.driver.mssql.Xml;
2663
2167
  case "time":
2664
- return (_g = this.driver.mssql).Time.apply(_g, tslib_1.__spread(parameter.params));
2168
+ return this.driver.mssql.Time(...parameter.params);
2665
2169
  case "date":
2666
2170
  return this.driver.mssql.Date;
2667
2171
  case "datetime":
2668
2172
  return this.driver.mssql.DateTime;
2669
2173
  case "datetime2":
2670
- return (_h = this.driver.mssql).DateTime2.apply(_h, tslib_1.__spread(parameter.params));
2174
+ return this.driver.mssql.DateTime2(...parameter.params);
2671
2175
  case "datetimeoffset":
2672
- return (_j = this.driver.mssql).DateTimeOffset.apply(_j, tslib_1.__spread(parameter.params));
2176
+ return this.driver.mssql.DateTimeOffset(...parameter.params);
2673
2177
  case "smalldatetime":
2674
2178
  return this.driver.mssql.SmallDateTime;
2675
2179
  case "uniqueidentifier":
@@ -2679,7 +2183,7 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2679
2183
  case "binary":
2680
2184
  return this.driver.mssql.Binary;
2681
2185
  case "varbinary":
2682
- return (_k = this.driver.mssql).VarBinary.apply(_k, tslib_1.__spread(parameter.params));
2186
+ return this.driver.mssql.VarBinary(...parameter.params);
2683
2187
  case "image":
2684
2188
  return this.driver.mssql.Image;
2685
2189
  case "udt":
@@ -2687,13 +2191,13 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2687
2191
  case "rowversion":
2688
2192
  return this.driver.mssql.RowVersion;
2689
2193
  }
2690
- };
2194
+ }
2691
2195
  /**
2692
2196
  * Converts string literal of isolation level to enum.
2693
2197
  * The underlying mssql driver requires an enum for the isolation level.
2694
2198
  */
2695
- SqlServerQueryRunner.prototype.convertIsolationLevel = function (isolation) {
2696
- var ISOLATION_LEVEL = this.driver.mssql.ISOLATION_LEVEL;
2199
+ convertIsolationLevel(isolation) {
2200
+ const ISOLATION_LEVEL = this.driver.mssql.ISOLATION_LEVEL;
2697
2201
  switch (isolation) {
2698
2202
  case "READ UNCOMMITTED":
2699
2203
  return ISOLATION_LEVEL.READ_UNCOMMITTED;
@@ -2705,9 +2209,8 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2705
2209
  default:
2706
2210
  return ISOLATION_LEVEL.READ_COMMITTED;
2707
2211
  }
2708
- };
2709
- return SqlServerQueryRunner;
2710
- }(BaseQueryRunner_1.BaseQueryRunner));
2212
+ }
2213
+ }
2711
2214
  exports.SqlServerQueryRunner = SqlServerQueryRunner;
2712
2215
 
2713
2216
  //# sourceMappingURL=SqlServerQueryRunner.js.map