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,9 +1,7 @@
1
- import * as tslib_1 from "tslib";
1
+ import { QueryResult } from "../../query-runner/QueryResult";
2
2
  import { QueryFailedError } from "../../error/QueryFailedError";
3
3
  import { QueryRunnerAlreadyReleasedError } from "../../error/QueryRunnerAlreadyReleasedError";
4
- import { TransactionAlreadyStartedError } from "../../error/TransactionAlreadyStartedError";
5
4
  import { TransactionNotStartedError } from "../../error/TransactionNotStartedError";
6
- import { PromiseUtils } from "../../index";
7
5
  import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
8
6
  import { Table } from "../../schema-builder/table/Table";
9
7
  import { TableCheck } from "../../schema-builder/table/TableCheck";
@@ -15,34 +13,27 @@ import { View } from "../../schema-builder/view/View";
15
13
  import { Broadcaster } from "../../subscriber/Broadcaster";
16
14
  import { OrmUtils } from "../../util/OrmUtils";
17
15
  import { Query } from "../Query";
18
- import { MssqlParameter } from "./MssqlParameter";
16
+ import { TypeORMError } from "../../error";
17
+ import { QueryLock } from "../../query-runner/QueryLock";
18
+ import { MetadataTableType } from "../types/MetadataTableType";
19
+ import { InstanceChecker } from "../../util/InstanceChecker";
19
20
  /**
20
21
  * Runs queries on a single SQL Server database connection.
21
22
  */
22
- var SqlServerQueryRunner = /** @class */ (function (_super) {
23
- tslib_1.__extends(SqlServerQueryRunner, _super);
23
+ export class SqlServerQueryRunner extends BaseQueryRunner {
24
24
  // -------------------------------------------------------------------------
25
25
  // Constructor
26
26
  // -------------------------------------------------------------------------
27
- function SqlServerQueryRunner(driver, mode) {
28
- if (mode === void 0) { mode = "master"; }
29
- var _this = _super.call(this) || this;
27
+ constructor(driver, mode) {
28
+ super();
30
29
  // -------------------------------------------------------------------------
31
- // Protected Properties
30
+ // Private Properties
32
31
  // -------------------------------------------------------------------------
33
- /**
34
- * Last executed query in a transaction.
35
- * This is needed because in transaction mode mssql cannot execute parallel queries,
36
- * that's why we store last executed query promise to wait it when we execute next query.
37
- *
38
- * @see https://github.com/patriksimek/node-mssql/issues/491
39
- */
40
- _this.queryResponsibilityChain = [];
41
- _this.driver = driver;
42
- _this.connection = driver.connection;
43
- _this.broadcaster = new Broadcaster(_this);
44
- _this.mode = mode;
45
- return _this;
32
+ this.lock = new QueryLock();
33
+ this.driver = driver;
34
+ this.connection = driver.connection;
35
+ this.broadcaster = new Broadcaster(this);
36
+ this.mode = mode;
46
37
  }
47
38
  // -------------------------------------------------------------------------
48
39
  // Public Methods
@@ -51,2533 +42,2033 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
51
42
  * Creates/uses database connection from the connection pool to perform further operations.
52
43
  * Returns obtained database connection.
53
44
  */
54
- SqlServerQueryRunner.prototype.connect = function () {
45
+ connect() {
55
46
  return Promise.resolve();
56
- };
47
+ }
57
48
  /**
58
49
  * Releases used database connection.
59
50
  * You cannot use query runner methods once its released.
60
51
  */
61
- SqlServerQueryRunner.prototype.release = function () {
52
+ release() {
62
53
  this.isReleased = true;
63
54
  return Promise.resolve();
64
- };
55
+ }
65
56
  /**
66
57
  * Starts transaction.
67
58
  */
68
- SqlServerQueryRunner.prototype.startTransaction = function (isolationLevel) {
69
- return tslib_1.__awaiter(this, void 0, void 0, function () {
70
- var _this = this;
71
- return tslib_1.__generator(this, function (_a) {
72
- if (this.isReleased)
73
- throw new QueryRunnerAlreadyReleasedError();
74
- if (this.isTransactionActive)
75
- throw new TransactionAlreadyStartedError();
76
- return [2 /*return*/, new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
77
- var pool, transactionCallback;
78
- var _this = this;
79
- return tslib_1.__generator(this, function (_a) {
80
- switch (_a.label) {
81
- case 0:
82
- this.isTransactionActive = true;
83
- return [4 /*yield*/, (this.mode === "slave" ? this.driver.obtainSlaveConnection() : this.driver.obtainMasterConnection())];
84
- case 1:
85
- pool = _a.sent();
86
- this.databaseConnection = pool.transaction();
87
- transactionCallback = function (err) {
88
- if (err) {
89
- _this.isTransactionActive = false;
90
- return fail(err);
91
- }
92
- ok();
93
- _this.connection.logger.logQuery("BEGIN TRANSACTION");
94
- if (isolationLevel) {
95
- _this.connection.logger.logQuery("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
96
- }
97
- };
98
- if (isolationLevel) {
99
- this.databaseConnection.begin(this.convertIsolationLevel(isolationLevel), transactionCallback);
100
- }
101
- else {
102
- this.databaseConnection.begin(transactionCallback);
103
- }
104
- return [2 /*return*/];
105
- }
106
- });
107
- }); })];
108
- });
59
+ async startTransaction(isolationLevel) {
60
+ if (this.isReleased)
61
+ throw new QueryRunnerAlreadyReleasedError();
62
+ this.isTransactionActive = true;
63
+ try {
64
+ await this.broadcaster.broadcast("BeforeTransactionStart");
65
+ }
66
+ catch (err) {
67
+ this.isTransactionActive = false;
68
+ throw err;
69
+ }
70
+ await new Promise(async (ok, fail) => {
71
+ const transactionCallback = (err) => {
72
+ if (err) {
73
+ this.isTransactionActive = false;
74
+ return fail(err);
75
+ }
76
+ ok();
77
+ };
78
+ if (this.transactionDepth === 0) {
79
+ const pool = await (this.mode === "slave"
80
+ ? this.driver.obtainSlaveConnection()
81
+ : this.driver.obtainMasterConnection());
82
+ this.databaseConnection = pool.transaction();
83
+ this.connection.logger.logQuery("BEGIN TRANSACTION");
84
+ if (isolationLevel) {
85
+ this.databaseConnection.begin(this.convertIsolationLevel(isolationLevel), transactionCallback);
86
+ this.connection.logger.logQuery("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
87
+ }
88
+ else {
89
+ this.databaseConnection.begin(transactionCallback);
90
+ }
91
+ }
92
+ else {
93
+ await this.query(`SAVE TRANSACTION typeorm_${this.transactionDepth}`);
94
+ ok();
95
+ }
96
+ this.transactionDepth += 1;
109
97
  });
110
- };
98
+ await this.broadcaster.broadcast("AfterTransactionStart");
99
+ }
111
100
  /**
112
101
  * Commits transaction.
113
102
  * Error will be thrown if transaction was not started.
114
103
  */
115
- SqlServerQueryRunner.prototype.commitTransaction = function () {
116
- return tslib_1.__awaiter(this, void 0, void 0, function () {
117
- var _this = this;
118
- return tslib_1.__generator(this, function (_a) {
119
- if (this.isReleased)
120
- throw new QueryRunnerAlreadyReleasedError();
121
- if (!this.isTransactionActive)
122
- throw new TransactionNotStartedError();
123
- return [2 /*return*/, new Promise(function (ok, fail) {
124
- _this.databaseConnection.commit(function (err) {
125
- if (err)
126
- return fail(err);
127
- _this.isTransactionActive = false;
128
- _this.databaseConnection = null;
129
- ok();
130
- _this.connection.logger.logQuery("COMMIT");
131
- });
132
- })];
104
+ async commitTransaction() {
105
+ if (this.isReleased)
106
+ throw new QueryRunnerAlreadyReleasedError();
107
+ if (!this.isTransactionActive)
108
+ throw new TransactionNotStartedError();
109
+ await this.broadcaster.broadcast("BeforeTransactionCommit");
110
+ if (this.transactionDepth === 1) {
111
+ return new Promise((ok, fail) => {
112
+ this.databaseConnection.commit(async (err) => {
113
+ if (err)
114
+ return fail(err);
115
+ this.isTransactionActive = false;
116
+ this.databaseConnection = null;
117
+ await this.broadcaster.broadcast("AfterTransactionCommit");
118
+ ok();
119
+ this.connection.logger.logQuery("COMMIT");
120
+ this.transactionDepth -= 1;
121
+ });
133
122
  });
134
- });
135
- };
123
+ }
124
+ this.transactionDepth -= 1;
125
+ }
136
126
  /**
137
127
  * Rollbacks transaction.
138
128
  * Error will be thrown if transaction was not started.
139
129
  */
140
- SqlServerQueryRunner.prototype.rollbackTransaction = function () {
141
- return tslib_1.__awaiter(this, void 0, void 0, function () {
142
- var _this = this;
143
- return tslib_1.__generator(this, function (_a) {
144
- if (this.isReleased)
145
- throw new QueryRunnerAlreadyReleasedError();
146
- if (!this.isTransactionActive)
147
- throw new TransactionNotStartedError();
148
- return [2 /*return*/, new Promise(function (ok, fail) {
149
- _this.databaseConnection.rollback(function (err) {
150
- if (err)
151
- return fail(err);
152
- _this.isTransactionActive = false;
153
- _this.databaseConnection = null;
154
- ok();
155
- _this.connection.logger.logQuery("ROLLBACK");
156
- });
157
- })];
130
+ async rollbackTransaction() {
131
+ if (this.isReleased)
132
+ throw new QueryRunnerAlreadyReleasedError();
133
+ if (!this.isTransactionActive)
134
+ throw new TransactionNotStartedError();
135
+ await this.broadcaster.broadcast("BeforeTransactionRollback");
136
+ if (this.transactionDepth > 1) {
137
+ await this.query(`ROLLBACK TRANSACTION typeorm_${this.transactionDepth - 1}`);
138
+ this.transactionDepth -= 1;
139
+ }
140
+ else {
141
+ return new Promise((ok, fail) => {
142
+ this.databaseConnection.rollback(async (err) => {
143
+ if (err)
144
+ return fail(err);
145
+ this.isTransactionActive = false;
146
+ this.databaseConnection = null;
147
+ await this.broadcaster.broadcast("AfterTransactionRollback");
148
+ ok();
149
+ this.connection.logger.logQuery("ROLLBACK");
150
+ this.transactionDepth -= 1;
151
+ });
158
152
  });
159
- });
160
- };
153
+ }
154
+ }
161
155
  /**
162
156
  * Executes a given SQL query.
163
157
  */
164
- SqlServerQueryRunner.prototype.query = function (query, parameters) {
165
- return tslib_1.__awaiter(this, void 0, void 0, function () {
166
- var waitingOkay, waitingPromise, otherWaitingPromises, promise;
167
- var _this = this;
168
- return tslib_1.__generator(this, function (_a) {
169
- switch (_a.label) {
170
- case 0:
171
- if (this.isReleased)
172
- throw new QueryRunnerAlreadyReleasedError();
173
- waitingPromise = new Promise(function (ok) { return waitingOkay = ok; });
174
- if (!this.queryResponsibilityChain.length) return [3 /*break*/, 2];
175
- otherWaitingPromises = tslib_1.__spread(this.queryResponsibilityChain);
176
- this.queryResponsibilityChain.push(waitingPromise);
177
- return [4 /*yield*/, Promise.all(otherWaitingPromises)];
178
- case 1:
179
- _a.sent();
180
- _a.label = 2;
181
- case 2:
182
- promise = new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
183
- var pool, request_1, queryStartTime_1, err_1;
184
- var _this = this;
185
- return tslib_1.__generator(this, function (_a) {
186
- switch (_a.label) {
187
- case 0:
188
- _a.trys.push([0, 2, , 3]);
189
- this.driver.connection.logger.logQuery(query, parameters, this);
190
- return [4 /*yield*/, (this.mode === "slave" ? this.driver.obtainSlaveConnection() : this.driver.obtainMasterConnection())];
191
- case 1:
192
- pool = _a.sent();
193
- request_1 = new this.driver.mssql.Request(this.isTransactionActive ? this.databaseConnection : pool);
194
- if (parameters && parameters.length) {
195
- parameters.forEach(function (parameter, index) {
196
- if (parameter instanceof MssqlParameter) {
197
- var mssqlParameter = _this.mssqlParameterToNativeParameter(parameter);
198
- if (mssqlParameter) {
199
- request_1.input(index, mssqlParameter, parameter.value);
200
- }
201
- else {
202
- request_1.input(index, parameter.value);
203
- }
204
- }
205
- else {
206
- request_1.input(index, parameter);
207
- }
208
- });
209
- }
210
- queryStartTime_1 = +new Date();
211
- request_1.query(query, function (err, result) {
212
- // log slow queries if maxQueryExecution time is set
213
- var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;
214
- var queryEndTime = +new Date();
215
- var queryExecutionTime = queryEndTime - queryStartTime_1;
216
- if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
217
- _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);
218
- var resolveChain = function () {
219
- if (promiseIndex !== -1)
220
- _this.queryResponsibilityChain.splice(promiseIndex, 1);
221
- if (waitingPromiseIndex !== -1)
222
- _this.queryResponsibilityChain.splice(waitingPromiseIndex, 1);
223
- waitingOkay();
224
- };
225
- var promiseIndex = _this.queryResponsibilityChain.indexOf(promise);
226
- var waitingPromiseIndex = _this.queryResponsibilityChain.indexOf(waitingPromise);
227
- if (err) {
228
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
229
- resolveChain();
230
- return fail(new QueryFailedError(query, parameters, err));
231
- }
232
- var queryType = query.slice(0, query.indexOf(" "));
233
- switch (queryType) {
234
- case "DELETE":
235
- // for DELETE query additionally return number of affected rows
236
- ok([result.recordset, result.rowsAffected[0]]);
237
- break;
238
- default:
239
- ok(result.recordset);
240
- }
241
- resolveChain();
242
- });
243
- return [3 /*break*/, 3];
244
- case 2:
245
- err_1 = _a.sent();
246
- fail(err_1);
247
- return [3 /*break*/, 3];
248
- case 3: return [2 /*return*/];
249
- }
250
- });
251
- }); });
252
- // with this condition, Promise.all causes unexpected behavior.
253
- // if (this.isTransactionActive)
254
- this.queryResponsibilityChain.push(promise);
255
- return [2 /*return*/, promise];
256
- }
158
+ async query(query, parameters, useStructuredResult = false) {
159
+ if (this.isReleased)
160
+ throw new QueryRunnerAlreadyReleasedError();
161
+ const release = await this.lock.acquire();
162
+ try {
163
+ this.driver.connection.logger.logQuery(query, parameters, this);
164
+ const pool = await (this.mode === "slave"
165
+ ? this.driver.obtainSlaveConnection()
166
+ : this.driver.obtainMasterConnection());
167
+ const request = new this.driver.mssql.Request(this.isTransactionActive ? this.databaseConnection : pool);
168
+ if (parameters && parameters.length) {
169
+ parameters.forEach((parameter, index) => {
170
+ const parameterName = index.toString();
171
+ if (InstanceChecker.isMssqlParameter(parameter)) {
172
+ const mssqlParameter = this.mssqlParameterToNativeParameter(parameter);
173
+ if (mssqlParameter) {
174
+ request.input(parameterName, mssqlParameter, parameter.value);
175
+ }
176
+ else {
177
+ request.input(parameterName, parameter.value);
178
+ }
179
+ }
180
+ else {
181
+ request.input(parameterName, parameter);
182
+ }
183
+ });
184
+ }
185
+ const queryStartTime = +new Date();
186
+ const raw = await new Promise((ok, fail) => {
187
+ request.query(query, (err, raw) => {
188
+ // log slow queries if maxQueryExecution time is set
189
+ const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
190
+ const queryEndTime = +new Date();
191
+ const queryExecutionTime = queryEndTime - queryStartTime;
192
+ if (maxQueryExecutionTime &&
193
+ queryExecutionTime > maxQueryExecutionTime) {
194
+ this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
195
+ }
196
+ if (err) {
197
+ fail(new QueryFailedError(query, parameters, err));
198
+ }
199
+ ok(raw);
200
+ });
257
201
  });
258
- });
259
- };
202
+ const result = new QueryResult();
203
+ if (raw === null || raw === void 0 ? void 0 : raw.hasOwnProperty("recordset")) {
204
+ result.records = raw.recordset;
205
+ }
206
+ if (raw === null || raw === void 0 ? void 0 : raw.hasOwnProperty("rowsAffected")) {
207
+ result.affected = raw.rowsAffected[0];
208
+ }
209
+ const queryType = query.slice(0, query.indexOf(" "));
210
+ switch (queryType) {
211
+ case "DELETE":
212
+ // for DELETE query additionally return number of affected rows
213
+ result.raw = [raw.recordset, raw.rowsAffected[0]];
214
+ break;
215
+ default:
216
+ result.raw = raw.recordset;
217
+ }
218
+ if (useStructuredResult) {
219
+ return result;
220
+ }
221
+ else {
222
+ return result.raw;
223
+ }
224
+ }
225
+ catch (err) {
226
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
227
+ throw err;
228
+ }
229
+ finally {
230
+ release();
231
+ }
232
+ }
260
233
  /**
261
234
  * Returns raw data stream.
262
235
  */
263
- SqlServerQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) {
264
- return tslib_1.__awaiter(this, void 0, void 0, function () {
265
- var waitingOkay, waitingPromise, otherWaitingPromises, promise;
266
- var _this = this;
267
- return tslib_1.__generator(this, function (_a) {
268
- switch (_a.label) {
269
- case 0:
270
- if (this.isReleased)
271
- throw new QueryRunnerAlreadyReleasedError();
272
- waitingPromise = new Promise(function (ok) { return waitingOkay = ok; });
273
- if (!this.queryResponsibilityChain.length) return [3 /*break*/, 2];
274
- otherWaitingPromises = tslib_1.__spread(this.queryResponsibilityChain);
275
- this.queryResponsibilityChain.push(waitingPromise);
276
- return [4 /*yield*/, Promise.all(otherWaitingPromises)];
277
- case 1:
278
- _a.sent();
279
- _a.label = 2;
280
- case 2:
281
- promise = new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
282
- var pool, request;
283
- var _this = this;
284
- return tslib_1.__generator(this, function (_a) {
285
- switch (_a.label) {
286
- case 0:
287
- this.driver.connection.logger.logQuery(query, parameters, this);
288
- return [4 /*yield*/, (this.mode === "slave" ? this.driver.obtainSlaveConnection() : this.driver.obtainMasterConnection())];
289
- case 1:
290
- pool = _a.sent();
291
- request = new this.driver.mssql.Request(this.isTransactionActive ? this.databaseConnection : pool);
292
- request.stream = true;
293
- if (parameters && parameters.length) {
294
- parameters.forEach(function (parameter, index) {
295
- if (parameter instanceof MssqlParameter) {
296
- request.input(index, _this.mssqlParameterToNativeParameter(parameter), parameter.value);
297
- }
298
- else {
299
- request.input(index, parameter);
300
- }
301
- });
302
- }
303
- request.query(query, function (err, result) {
304
- var resolveChain = function () {
305
- if (promiseIndex !== -1)
306
- _this.queryResponsibilityChain.splice(promiseIndex, 1);
307
- if (waitingPromiseIndex !== -1)
308
- _this.queryResponsibilityChain.splice(waitingPromiseIndex, 1);
309
- waitingOkay();
310
- };
311
- var promiseIndex = _this.queryResponsibilityChain.indexOf(promise);
312
- var waitingPromiseIndex = _this.queryResponsibilityChain.indexOf(waitingPromise);
313
- if (err) {
314
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
315
- resolveChain();
316
- return fail(err);
317
- }
318
- ok(result.recordset);
319
- resolveChain();
320
- });
321
- if (onEnd)
322
- request.on("done", onEnd);
323
- if (onError)
324
- request.on("error", onError);
325
- ok(request);
326
- return [2 /*return*/];
327
- }
328
- });
329
- }); });
330
- if (this.isTransactionActive)
331
- this.queryResponsibilityChain.push(promise);
332
- return [2 /*return*/, promise];
236
+ async stream(query, parameters, onEnd, onError) {
237
+ if (this.isReleased)
238
+ throw new QueryRunnerAlreadyReleasedError();
239
+ const release = await this.lock.acquire();
240
+ this.driver.connection.logger.logQuery(query, parameters, this);
241
+ const pool = await (this.mode === "slave"
242
+ ? this.driver.obtainSlaveConnection()
243
+ : this.driver.obtainMasterConnection());
244
+ const request = new this.driver.mssql.Request(this.isTransactionActive ? this.databaseConnection : pool);
245
+ if (parameters && parameters.length) {
246
+ parameters.forEach((parameter, index) => {
247
+ const parameterName = index.toString();
248
+ if (InstanceChecker.isMssqlParameter(parameter)) {
249
+ request.input(parameterName, this.mssqlParameterToNativeParameter(parameter), parameter.value);
250
+ }
251
+ else {
252
+ request.input(parameterName, parameter);
333
253
  }
334
254
  });
255
+ }
256
+ request.query(query);
257
+ const streamRequest = request.toReadableStream();
258
+ streamRequest.on("error", (err) => {
259
+ release();
260
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
261
+ });
262
+ streamRequest.on("end", () => {
263
+ release();
335
264
  });
336
- };
265
+ if (onEnd) {
266
+ streamRequest.on("end", onEnd);
267
+ }
268
+ if (onError) {
269
+ streamRequest.on("error", onError);
270
+ }
271
+ return streamRequest;
272
+ }
337
273
  /**
338
274
  * Returns all available database names including system databases.
339
275
  */
340
- SqlServerQueryRunner.prototype.getDatabases = function () {
341
- return tslib_1.__awaiter(this, void 0, void 0, function () {
342
- var results;
343
- return tslib_1.__generator(this, function (_a) {
344
- switch (_a.label) {
345
- case 0: return [4 /*yield*/, this.query("EXEC sp_databases")];
346
- case 1:
347
- results = _a.sent();
348
- return [2 /*return*/, results.map(function (result) { return result["DATABASE_NAME"]; })];
349
- }
350
- });
351
- });
352
- };
276
+ async getDatabases() {
277
+ const results = await this.query(`EXEC sp_databases`);
278
+ return results.map((result) => result["DATABASE_NAME"]);
279
+ }
353
280
  /**
354
281
  * Returns all available schema names including system schemas.
355
282
  * If database parameter specified, returns schemas of that database.
356
283
  */
357
- SqlServerQueryRunner.prototype.getSchemas = function (database) {
358
- return tslib_1.__awaiter(this, void 0, void 0, function () {
359
- var query, results;
360
- return tslib_1.__generator(this, function (_a) {
361
- switch (_a.label) {
362
- case 0:
363
- query = database ? "SELECT * FROM \"" + database + "\".\"sys\".\"schema\"" : "SELECT * FROM \"sys\".\"schemas\"";
364
- return [4 /*yield*/, this.query(query)];
365
- case 1:
366
- results = _a.sent();
367
- return [2 /*return*/, results.map(function (result) { return result["name"]; })];
368
- }
369
- });
370
- });
371
- };
284
+ async getSchemas(database) {
285
+ const query = database
286
+ ? `SELECT * FROM "${database}"."sys"."schema"`
287
+ : `SELECT * FROM "sys"."schemas"`;
288
+ const results = await this.query(query);
289
+ return results.map((result) => result["name"]);
290
+ }
372
291
  /**
373
292
  * Checks if database with the given name exist.
374
293
  */
375
- SqlServerQueryRunner.prototype.hasDatabase = function (database) {
376
- return tslib_1.__awaiter(this, void 0, void 0, function () {
377
- var result, dbId;
378
- return tslib_1.__generator(this, function (_a) {
379
- switch (_a.label) {
380
- case 0: return [4 /*yield*/, this.query("SELECT DB_ID('" + database + "') as \"db_id\"")];
381
- case 1:
382
- result = _a.sent();
383
- dbId = result[0]["db_id"];
384
- return [2 /*return*/, !!dbId];
385
- }
386
- });
387
- });
388
- };
294
+ async hasDatabase(database) {
295
+ const result = await this.query(`SELECT DB_ID('${database}') as "db_id"`);
296
+ const dbId = result[0]["db_id"];
297
+ return !!dbId;
298
+ }
299
+ /**
300
+ * Loads currently using database
301
+ */
302
+ async getCurrentDatabase() {
303
+ const currentDBQuery = await this.query(`SELECT DB_NAME() AS "db_name"`);
304
+ return currentDBQuery[0]["db_name"];
305
+ }
389
306
  /**
390
307
  * Checks if schema with the given name exist.
391
308
  */
392
- SqlServerQueryRunner.prototype.hasSchema = function (schema) {
393
- return tslib_1.__awaiter(this, void 0, void 0, function () {
394
- var result, schemaId;
395
- return tslib_1.__generator(this, function (_a) {
396
- switch (_a.label) {
397
- case 0: return [4 /*yield*/, this.query("SELECT SCHEMA_ID('" + schema + "') as \"schema_id\"")];
398
- case 1:
399
- result = _a.sent();
400
- schemaId = result[0]["schema_id"];
401
- return [2 /*return*/, !!schemaId];
402
- }
403
- });
404
- });
405
- };
309
+ async hasSchema(schema) {
310
+ const result = await this.query(`SELECT SCHEMA_ID('${schema}') as "schema_id"`);
311
+ const schemaId = result[0]["schema_id"];
312
+ return !!schemaId;
313
+ }
314
+ /**
315
+ * Loads currently using database schema
316
+ */
317
+ async getCurrentSchema() {
318
+ const currentSchemaQuery = await this.query(`SELECT SCHEMA_NAME() AS "schema_name"`);
319
+ return currentSchemaQuery[0]["schema_name"];
320
+ }
406
321
  /**
407
322
  * Checks if table with the given name exist in the database.
408
323
  */
409
- SqlServerQueryRunner.prototype.hasTable = function (tableOrName) {
410
- return tslib_1.__awaiter(this, void 0, void 0, function () {
411
- var parsedTableName, schema, sql, result;
412
- return tslib_1.__generator(this, function (_a) {
413
- switch (_a.label) {
414
- case 0:
415
- parsedTableName = this.parseTableName(tableOrName);
416
- schema = parsedTableName.schema === "SCHEMA_NAME()" ? parsedTableName.schema : "'" + parsedTableName.schema + "'";
417
- sql = "SELECT * FROM \"" + parsedTableName.database + "\".\"INFORMATION_SCHEMA\".\"TABLES\" WHERE \"TABLE_NAME\" = '" + parsedTableName.name + "' AND \"TABLE_SCHEMA\" = " + schema;
418
- return [4 /*yield*/, this.query(sql)];
419
- case 1:
420
- result = _a.sent();
421
- return [2 /*return*/, result.length ? true : false];
422
- }
423
- });
424
- });
425
- };
324
+ async hasTable(tableOrName) {
325
+ const parsedTableName = this.driver.parseTableName(tableOrName);
326
+ if (!parsedTableName.database) {
327
+ parsedTableName.database = await this.getCurrentDatabase();
328
+ }
329
+ if (!parsedTableName.schema) {
330
+ parsedTableName.schema = await this.getCurrentSchema();
331
+ }
332
+ const sql = `SELECT * FROM "${parsedTableName.database}"."INFORMATION_SCHEMA"."TABLES" WHERE "TABLE_NAME" = '${parsedTableName.tableName}' AND "TABLE_SCHEMA" = '${parsedTableName.schema}'`;
333
+ const result = await this.query(sql);
334
+ return result.length ? true : false;
335
+ }
426
336
  /**
427
337
  * Checks if column exist in the table.
428
338
  */
429
- SqlServerQueryRunner.prototype.hasColumn = function (tableOrName, columnName) {
430
- return tslib_1.__awaiter(this, void 0, void 0, function () {
431
- var parsedTableName, schema, sql, result;
432
- return tslib_1.__generator(this, function (_a) {
433
- switch (_a.label) {
434
- case 0:
435
- parsedTableName = this.parseTableName(tableOrName);
436
- schema = parsedTableName.schema === "SCHEMA_NAME()" ? parsedTableName.schema : "'" + parsedTableName.schema + "'";
437
- sql = "SELECT * FROM \"" + parsedTableName.database + "\".\"INFORMATION_SCHEMA\".\"TABLES\" WHERE \"TABLE_NAME\" = '" + parsedTableName.name + "' AND \"COLUMN_NAME\" = '" + columnName + "' AND \"TABLE_SCHEMA\" = " + schema;
438
- return [4 /*yield*/, this.query(sql)];
439
- case 1:
440
- result = _a.sent();
441
- return [2 /*return*/, result.length ? true : false];
442
- }
443
- });
444
- });
445
- };
339
+ async hasColumn(tableOrName, columnName) {
340
+ const parsedTableName = this.driver.parseTableName(tableOrName);
341
+ if (!parsedTableName.database) {
342
+ parsedTableName.database = await this.getCurrentDatabase();
343
+ }
344
+ if (!parsedTableName.schema) {
345
+ parsedTableName.schema = await this.getCurrentSchema();
346
+ }
347
+ const sql = `SELECT * FROM "${parsedTableName.database}"."INFORMATION_SCHEMA"."COLUMNS" WHERE "TABLE_NAME" = '${parsedTableName.tableName}' AND "TABLE_SCHEMA" = '${parsedTableName.schema}' AND "COLUMN_NAME" = '${columnName}'`;
348
+ const result = await this.query(sql);
349
+ return result.length ? true : false;
350
+ }
446
351
  /**
447
352
  * Creates a new database.
448
353
  */
449
- SqlServerQueryRunner.prototype.createDatabase = function (database, ifNotExist) {
450
- return tslib_1.__awaiter(this, void 0, void 0, function () {
451
- var up, down;
452
- return tslib_1.__generator(this, function (_a) {
453
- switch (_a.label) {
454
- case 0:
455
- up = ifNotExist ? "IF DB_ID('" + database + "') IS NULL CREATE DATABASE \"" + database + "\"" : "CREATE DATABASE \"" + database + "\"";
456
- down = "DROP DATABASE \"" + database + "\"";
457
- return [4 /*yield*/, this.executeQueries(new Query(up), new Query(down))];
458
- case 1:
459
- _a.sent();
460
- return [2 /*return*/];
461
- }
462
- });
463
- });
464
- };
354
+ async createDatabase(database, ifNotExist) {
355
+ const up = ifNotExist
356
+ ? `IF DB_ID('${database}') IS NULL CREATE DATABASE "${database}"`
357
+ : `CREATE DATABASE "${database}"`;
358
+ const down = `DROP DATABASE "${database}"`;
359
+ await this.executeQueries(new Query(up), new Query(down));
360
+ }
465
361
  /**
466
362
  * Drops database.
467
363
  */
468
- SqlServerQueryRunner.prototype.dropDatabase = function (database, ifExist) {
469
- return tslib_1.__awaiter(this, void 0, void 0, function () {
470
- var up, down;
471
- return tslib_1.__generator(this, function (_a) {
472
- switch (_a.label) {
473
- case 0:
474
- up = ifExist ? "IF DB_ID('" + database + "') IS NOT NULL DROP DATABASE \"" + database + "\"" : "DROP DATABASE \"" + database + "\"";
475
- down = "CREATE DATABASE \"" + database + "\"";
476
- return [4 /*yield*/, this.executeQueries(new Query(up), new Query(down))];
477
- case 1:
478
- _a.sent();
479
- return [2 /*return*/];
480
- }
481
- });
482
- });
483
- };
364
+ async dropDatabase(database, ifExist) {
365
+ const up = ifExist
366
+ ? `IF DB_ID('${database}') IS NOT NULL DROP DATABASE "${database}"`
367
+ : `DROP DATABASE "${database}"`;
368
+ const down = `CREATE DATABASE "${database}"`;
369
+ await this.executeQueries(new Query(up), new Query(down));
370
+ }
484
371
  /**
485
372
  * Creates table schema.
486
373
  * If database name also specified (e.g. 'dbName.schemaName') schema will be created in specified database.
487
374
  */
488
- SqlServerQueryRunner.prototype.createSchema = function (schemaPath, ifNotExist) {
489
- return tslib_1.__awaiter(this, void 0, void 0, function () {
490
- var upQueries, downQueries, upQuery, dbName, schema, currentDB, upQuery;
491
- return tslib_1.__generator(this, function (_a) {
492
- switch (_a.label) {
493
- case 0:
494
- upQueries = [];
495
- downQueries = [];
496
- if (!(schemaPath.indexOf(".") === -1)) return [3 /*break*/, 1];
497
- upQuery = ifNotExist ? "IF SCHEMA_ID('" + schemaPath + "') IS NULL BEGIN EXEC ('CREATE SCHEMA \"" + schemaPath + "\"') END" : "CREATE SCHEMA \"" + schemaPath + "\"";
498
- upQueries.push(new Query(upQuery));
499
- downQueries.push(new Query("DROP SCHEMA \"" + schemaPath + "\""));
500
- return [3 /*break*/, 3];
501
- case 1:
502
- dbName = schemaPath.split(".")[0];
503
- schema = schemaPath.split(".")[1];
504
- return [4 /*yield*/, this.getCurrentDatabase()];
505
- case 2:
506
- currentDB = _a.sent();
507
- upQueries.push(new Query("USE \"" + dbName + "\""));
508
- downQueries.push(new Query("USE \"" + currentDB + "\""));
509
- upQuery = ifNotExist ? "IF SCHEMA_ID('" + schema + "') IS NULL BEGIN EXEC ('CREATE SCHEMA \"" + schema + "\"') END" : "CREATE SCHEMA \"" + schema + "\"";
510
- upQueries.push(new Query(upQuery));
511
- downQueries.push(new Query("DROP SCHEMA \"" + schema + "\""));
512
- upQueries.push(new Query("USE \"" + currentDB + "\""));
513
- downQueries.push(new Query("USE \"" + dbName + "\""));
514
- _a.label = 3;
515
- case 3: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
516
- case 4:
517
- _a.sent();
518
- return [2 /*return*/];
519
- }
520
- });
521
- });
522
- };
375
+ async createSchema(schemaPath, ifNotExist) {
376
+ const upQueries = [];
377
+ const downQueries = [];
378
+ if (schemaPath.indexOf(".") === -1) {
379
+ const upQuery = ifNotExist
380
+ ? `IF SCHEMA_ID('${schemaPath}') IS NULL BEGIN EXEC ('CREATE SCHEMA "${schemaPath}"') END`
381
+ : `CREATE SCHEMA "${schemaPath}"`;
382
+ upQueries.push(new Query(upQuery));
383
+ downQueries.push(new Query(`DROP SCHEMA "${schemaPath}"`));
384
+ }
385
+ else {
386
+ const dbName = schemaPath.split(".")[0];
387
+ const schema = schemaPath.split(".")[1];
388
+ const currentDB = await this.getCurrentDatabase();
389
+ upQueries.push(new Query(`USE "${dbName}"`));
390
+ downQueries.push(new Query(`USE "${currentDB}"`));
391
+ const upQuery = ifNotExist
392
+ ? `IF SCHEMA_ID('${schema}') IS NULL BEGIN EXEC ('CREATE SCHEMA "${schema}"') END`
393
+ : `CREATE SCHEMA "${schema}"`;
394
+ upQueries.push(new Query(upQuery));
395
+ downQueries.push(new Query(`DROP SCHEMA "${schema}"`));
396
+ upQueries.push(new Query(`USE "${currentDB}"`));
397
+ downQueries.push(new Query(`USE "${dbName}"`));
398
+ }
399
+ await this.executeQueries(upQueries, downQueries);
400
+ }
523
401
  /**
524
402
  * Drops table schema.
525
403
  * If database name also specified (e.g. 'dbName.schemaName') schema will be dropped in specified database.
526
404
  */
527
- SqlServerQueryRunner.prototype.dropSchema = function (schemaPath, ifExist) {
528
- return tslib_1.__awaiter(this, void 0, void 0, function () {
529
- var upQueries, downQueries, upQuery, dbName, schema, currentDB, upQuery;
530
- return tslib_1.__generator(this, function (_a) {
531
- switch (_a.label) {
532
- case 0:
533
- upQueries = [];
534
- downQueries = [];
535
- if (!(schemaPath.indexOf(".") === -1)) return [3 /*break*/, 1];
536
- upQuery = ifExist ? "IF SCHEMA_ID('" + schemaPath + "') IS NULL BEGIN EXEC ('DROP SCHEMA \"" + schemaPath + "\"') END" : "DROP SCHEMA \"" + schemaPath + "\"";
537
- upQueries.push(new Query(upQuery));
538
- downQueries.push(new Query("CREATE SCHEMA \"" + schemaPath + "\""));
539
- return [3 /*break*/, 3];
540
- case 1:
541
- dbName = schemaPath.split(".")[0];
542
- schema = schemaPath.split(".")[1];
543
- return [4 /*yield*/, this.getCurrentDatabase()];
544
- case 2:
545
- currentDB = _a.sent();
546
- upQueries.push(new Query("USE \"" + dbName + "\""));
547
- downQueries.push(new Query("USE \"" + currentDB + "\""));
548
- upQuery = ifExist ? "IF SCHEMA_ID('" + schema + "') IS NULL BEGIN EXEC ('DROP SCHEMA \"" + schema + "\"') END" : "DROP SCHEMA \"" + schema + "\"";
549
- upQueries.push(new Query(upQuery));
550
- downQueries.push(new Query("CREATE SCHEMA \"" + schema + "\""));
551
- upQueries.push(new Query("USE \"" + currentDB + "\""));
552
- downQueries.push(new Query("USE \"" + dbName + "\""));
553
- _a.label = 3;
554
- case 3: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
555
- case 4:
556
- _a.sent();
557
- return [2 /*return*/];
558
- }
559
- });
560
- });
561
- };
405
+ async dropSchema(schemaPath, ifExist) {
406
+ const upQueries = [];
407
+ const downQueries = [];
408
+ if (schemaPath.indexOf(".") === -1) {
409
+ const upQuery = ifExist
410
+ ? `IF SCHEMA_ID('${schemaPath}') IS NULL BEGIN EXEC ('DROP SCHEMA "${schemaPath}"') END`
411
+ : `DROP SCHEMA "${schemaPath}"`;
412
+ upQueries.push(new Query(upQuery));
413
+ downQueries.push(new Query(`CREATE SCHEMA "${schemaPath}"`));
414
+ }
415
+ else {
416
+ const dbName = schemaPath.split(".")[0];
417
+ const schema = schemaPath.split(".")[1];
418
+ const currentDB = await this.getCurrentDatabase();
419
+ upQueries.push(new Query(`USE "${dbName}"`));
420
+ downQueries.push(new Query(`USE "${currentDB}"`));
421
+ const upQuery = ifExist
422
+ ? `IF SCHEMA_ID('${schema}') IS NULL BEGIN EXEC ('DROP SCHEMA "${schema}"') END`
423
+ : `DROP SCHEMA "${schema}"`;
424
+ upQueries.push(new Query(upQuery));
425
+ downQueries.push(new Query(`CREATE SCHEMA "${schema}"`));
426
+ upQueries.push(new Query(`USE "${currentDB}"`));
427
+ downQueries.push(new Query(`USE "${dbName}"`));
428
+ }
429
+ await this.executeQueries(upQueries, downQueries);
430
+ }
562
431
  /**
563
432
  * Creates a new table.
564
433
  */
565
- SqlServerQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys, createIndices) {
566
- if (ifNotExist === void 0) { ifNotExist = false; }
567
- if (createForeignKeys === void 0) { createForeignKeys = true; }
568
- if (createIndices === void 0) { createIndices = true; }
569
- return tslib_1.__awaiter(this, void 0, void 0, function () {
570
- var isTableExist, upQueries, downQueries;
571
- var _this = this;
572
- return tslib_1.__generator(this, function (_a) {
573
- switch (_a.label) {
574
- case 0:
575
- if (!ifNotExist) return [3 /*break*/, 2];
576
- return [4 /*yield*/, this.hasTable(table)];
577
- case 1:
578
- isTableExist = _a.sent();
579
- if (isTableExist)
580
- return [2 /*return*/, Promise.resolve()];
581
- _a.label = 2;
582
- case 2:
583
- upQueries = [];
584
- downQueries = [];
585
- upQueries.push(this.createTableSql(table, createForeignKeys));
586
- downQueries.push(this.dropTableSql(table));
587
- // if createForeignKeys is true, we must drop created foreign keys in down query.
588
- // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
589
- if (createForeignKeys)
590
- table.foreignKeys.forEach(function (foreignKey) { return downQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
591
- if (createIndices) {
592
- table.indices.forEach(function (index) {
593
- // new index may be passed without name. In this case we generate index name manually.
594
- if (!index.name)
595
- index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
596
- upQueries.push(_this.createIndexSql(table, index));
597
- downQueries.push(_this.dropIndexSql(table, index));
598
- });
599
- }
600
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
601
- case 3:
602
- _a.sent();
603
- return [2 /*return*/];
604
- }
434
+ async createTable(table, ifNotExist = false, createForeignKeys = true, createIndices = true) {
435
+ if (ifNotExist) {
436
+ const isTableExist = await this.hasTable(table);
437
+ if (isTableExist)
438
+ return Promise.resolve();
439
+ }
440
+ const upQueries = [];
441
+ const downQueries = [];
442
+ upQueries.push(this.createTableSql(table, createForeignKeys));
443
+ downQueries.push(this.dropTableSql(table));
444
+ // if createForeignKeys is true, we must drop created foreign keys in down query.
445
+ // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
446
+ if (createForeignKeys)
447
+ table.foreignKeys.forEach((foreignKey) => downQueries.push(this.dropForeignKeySql(table, foreignKey)));
448
+ if (createIndices) {
449
+ table.indices.forEach((index) => {
450
+ // new index may be passed without name. In this case we generate index name manually.
451
+ if (!index.name)
452
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
453
+ upQueries.push(this.createIndexSql(table, index));
454
+ downQueries.push(this.dropIndexSql(table, index));
605
455
  });
606
- });
607
- };
456
+ }
457
+ await this.executeQueries(upQueries, downQueries);
458
+ }
608
459
  /**
609
460
  * Drops the table.
610
461
  */
611
- SqlServerQueryRunner.prototype.dropTable = function (tableOrName, ifExist, dropForeignKeys, dropIndices) {
612
- if (dropForeignKeys === void 0) { dropForeignKeys = true; }
613
- if (dropIndices === void 0) { dropIndices = true; }
614
- return tslib_1.__awaiter(this, void 0, void 0, function () {
615
- var isTableExist, createForeignKeys, table, _a, upQueries, downQueries;
616
- var _this = this;
617
- return tslib_1.__generator(this, function (_b) {
618
- switch (_b.label) {
619
- case 0:
620
- if (!ifExist) return [3 /*break*/, 2];
621
- return [4 /*yield*/, this.hasTable(tableOrName)];
622
- case 1:
623
- isTableExist = _b.sent();
624
- if (!isTableExist)
625
- return [2 /*return*/, Promise.resolve()];
626
- _b.label = 2;
627
- case 2:
628
- createForeignKeys = dropForeignKeys;
629
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 3];
630
- _a = tableOrName;
631
- return [3 /*break*/, 5];
632
- case 3: return [4 /*yield*/, this.getCachedTable(tableOrName)];
633
- case 4:
634
- _a = _b.sent();
635
- _b.label = 5;
636
- case 5:
637
- table = _a;
638
- upQueries = [];
639
- downQueries = [];
640
- // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need
641
- // to perform drop queries for foreign keys and indices.
642
- if (dropIndices) {
643
- table.indices.forEach(function (index) {
644
- upQueries.push(_this.dropIndexSql(table, index));
645
- downQueries.push(_this.createIndexSql(table, index));
646
- });
647
- }
648
- // if dropForeignKeys is true, we just drop the table, otherwise we also drop table foreign keys.
649
- // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
650
- if (dropForeignKeys)
651
- table.foreignKeys.forEach(function (foreignKey) { return upQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
652
- upQueries.push(this.dropTableSql(table));
653
- downQueries.push(this.createTableSql(table, createForeignKeys));
654
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
655
- case 6:
656
- _b.sent();
657
- return [2 /*return*/];
658
- }
462
+ async dropTable(tableOrName, ifExist, dropForeignKeys = true, dropIndices = true) {
463
+ if (ifExist) {
464
+ const isTableExist = await this.hasTable(tableOrName);
465
+ if (!isTableExist)
466
+ return Promise.resolve();
467
+ }
468
+ // if dropTable called with dropForeignKeys = true, we must create foreign keys in down query.
469
+ const createForeignKeys = dropForeignKeys;
470
+ const table = InstanceChecker.isTable(tableOrName)
471
+ ? tableOrName
472
+ : await this.getCachedTable(tableOrName);
473
+ const upQueries = [];
474
+ const downQueries = [];
475
+ // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need
476
+ // to perform drop queries for foreign keys and indices.
477
+ if (dropIndices) {
478
+ table.indices.forEach((index) => {
479
+ upQueries.push(this.dropIndexSql(table, index));
480
+ downQueries.push(this.createIndexSql(table, index));
659
481
  });
660
- });
661
- };
482
+ }
483
+ // if dropForeignKeys is true, we just drop the table, otherwise we also drop table foreign keys.
484
+ // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
485
+ if (dropForeignKeys)
486
+ table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
487
+ upQueries.push(this.dropTableSql(table));
488
+ downQueries.push(this.createTableSql(table, createForeignKeys));
489
+ await this.executeQueries(upQueries, downQueries);
490
+ }
662
491
  /**
663
492
  * Creates a new view.
664
493
  */
665
- SqlServerQueryRunner.prototype.createView = function (view) {
666
- return tslib_1.__awaiter(this, void 0, void 0, function () {
667
- var upQueries, downQueries, _a, _b, _c, _d;
668
- return tslib_1.__generator(this, function (_e) {
669
- switch (_e.label) {
670
- case 0:
671
- upQueries = [];
672
- downQueries = [];
673
- upQueries.push(this.createViewSql(view));
674
- _b = (_a = upQueries).push;
675
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
676
- case 1:
677
- _b.apply(_a, [_e.sent()]);
678
- downQueries.push(this.dropViewSql(view));
679
- _d = (_c = downQueries).push;
680
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
681
- case 2:
682
- _d.apply(_c, [_e.sent()]);
683
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
684
- case 3:
685
- _e.sent();
686
- return [2 /*return*/];
687
- }
688
- });
689
- });
690
- };
494
+ async createView(view) {
495
+ const upQueries = [];
496
+ const downQueries = [];
497
+ upQueries.push(this.createViewSql(view));
498
+ upQueries.push(await this.insertViewDefinitionSql(view));
499
+ downQueries.push(this.dropViewSql(view));
500
+ downQueries.push(await this.deleteViewDefinitionSql(view));
501
+ await this.executeQueries(upQueries, downQueries);
502
+ }
691
503
  /**
692
504
  * Drops the view.
693
505
  */
694
- SqlServerQueryRunner.prototype.dropView = function (target) {
695
- return tslib_1.__awaiter(this, void 0, void 0, function () {
696
- var viewName, view, upQueries, downQueries, _a, _b, _c, _d;
697
- return tslib_1.__generator(this, function (_e) {
698
- switch (_e.label) {
699
- case 0:
700
- viewName = target instanceof View ? target.name : target;
701
- return [4 /*yield*/, this.getCachedView(viewName)];
702
- case 1:
703
- view = _e.sent();
704
- upQueries = [];
705
- downQueries = [];
706
- _b = (_a = upQueries).push;
707
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
708
- case 2:
709
- _b.apply(_a, [_e.sent()]);
710
- upQueries.push(this.dropViewSql(view));
711
- _d = (_c = downQueries).push;
712
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
713
- case 3:
714
- _d.apply(_c, [_e.sent()]);
715
- downQueries.push(this.createViewSql(view));
716
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
717
- case 4:
718
- _e.sent();
719
- return [2 /*return*/];
720
- }
721
- });
722
- });
723
- };
506
+ async dropView(target) {
507
+ const viewName = InstanceChecker.isView(target) ? target.name : target;
508
+ const view = await this.getCachedView(viewName);
509
+ const upQueries = [];
510
+ const downQueries = [];
511
+ upQueries.push(await this.deleteViewDefinitionSql(view));
512
+ upQueries.push(this.dropViewSql(view));
513
+ downQueries.push(await this.insertViewDefinitionSql(view));
514
+ downQueries.push(this.createViewSql(view));
515
+ await this.executeQueries(upQueries, downQueries);
516
+ }
724
517
  /**
725
518
  * Renames a table.
726
519
  */
727
- SqlServerQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
728
- return tslib_1.__awaiter(this, void 0, void 0, function () {
729
- var upQueries, downQueries, oldTable, _a, newTable, dbName, schemaName, oldTableName, splittedName, currentDB, columnNames, oldPkName, newPkName;
730
- var _this = this;
731
- return tslib_1.__generator(this, function (_b) {
732
- switch (_b.label) {
733
- case 0:
734
- upQueries = [];
735
- downQueries = [];
736
- if (!(oldTableOrName instanceof Table)) return [3 /*break*/, 1];
737
- _a = oldTableOrName;
738
- return [3 /*break*/, 3];
739
- case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)];
740
- case 2:
741
- _a = _b.sent();
742
- _b.label = 3;
743
- case 3:
744
- oldTable = _a;
745
- newTable = oldTable.clone();
746
- dbName = undefined;
747
- schemaName = undefined;
748
- oldTableName = oldTable.name;
749
- splittedName = oldTable.name.split(".");
750
- if (splittedName.length === 3) {
751
- dbName = splittedName[0];
752
- oldTableName = splittedName[2];
753
- if (splittedName[1] !== "")
754
- schemaName = splittedName[1];
755
- }
756
- else if (splittedName.length === 2) {
757
- schemaName = splittedName[0];
758
- oldTableName = splittedName[1];
759
- }
760
- newTable.name = this.driver.buildTableName(newTableName, schemaName, dbName);
761
- return [4 /*yield*/, this.getCurrentDatabase()];
762
- case 4:
763
- currentDB = _b.sent();
764
- if (dbName && dbName !== currentDB) {
765
- upQueries.push(new Query("USE \"" + dbName + "\""));
766
- downQueries.push(new Query("USE \"" + currentDB + "\""));
767
- }
768
- // rename table
769
- upQueries.push(new Query("EXEC sp_rename \"" + this.escapePath(oldTable, true) + "\", \"" + newTableName + "\""));
770
- downQueries.push(new Query("EXEC sp_rename \"" + this.escapePath(newTable, true) + "\", \"" + oldTableName + "\""));
771
- // rename primary key constraint
772
- if (newTable.primaryColumns.length > 0) {
773
- columnNames = newTable.primaryColumns.map(function (column) { return column.name; });
774
- oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
775
- newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
776
- // rename primary constraint
777
- upQueries.push(new Query("EXEC sp_rename \"" + this.escapePath(newTable, true) + "." + oldPkName + "\", \"" + newPkName + "\""));
778
- downQueries.push(new Query("EXEC sp_rename \"" + this.escapePath(newTable, true) + "." + newPkName + "\", \"" + oldPkName + "\""));
779
- }
780
- // rename unique constraints
781
- newTable.uniques.forEach(function (unique) {
782
- // build new constraint name
783
- var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
784
- // build queries
785
- upQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(newTable, true) + "." + unique.name + "\", \"" + newUniqueName + "\""));
786
- downQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(newTable, true) + "." + newUniqueName + "\", \"" + unique.name + "\""));
787
- // replace constraint name
788
- unique.name = newUniqueName;
789
- });
790
- // rename index constraints
791
- newTable.indices.forEach(function (index) {
792
- // build new constraint name
793
- var newIndexName = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
794
- // build queries
795
- upQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(newTable, true) + "." + index.name + "\", \"" + newIndexName + "\", \"INDEX\""));
796
- downQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(newTable, true) + "." + newIndexName + "\", \"" + index.name + "\", \"INDEX\""));
797
- // replace constraint name
798
- index.name = newIndexName;
799
- });
800
- // rename foreign key constraints
801
- newTable.foreignKeys.forEach(function (foreignKey) {
802
- // build new constraint name
803
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
804
- // build queries
805
- upQueries.push(new Query("EXEC sp_rename \"" + _this.buildForeignKeyName(foreignKey.name, schemaName, dbName) + "\", \"" + newForeignKeyName + "\""));
806
- downQueries.push(new Query("EXEC sp_rename \"" + _this.buildForeignKeyName(newForeignKeyName, schemaName, dbName) + "\", \"" + foreignKey.name + "\""));
807
- // replace constraint name
808
- foreignKey.name = newForeignKeyName;
809
- });
810
- // change currently used database back to default db.
811
- if (dbName && dbName !== currentDB) {
812
- upQueries.push(new Query("USE \"" + currentDB + "\""));
813
- downQueries.push(new Query("USE \"" + dbName + "\""));
814
- }
815
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
816
- case 5:
817
- _b.sent();
818
- // rename old table and replace it in cached tabled;
819
- oldTable.name = newTable.name;
820
- this.replaceCachedTable(oldTable, newTable);
821
- return [2 /*return*/];
822
- }
823
- });
520
+ async renameTable(oldTableOrName, newTableName) {
521
+ const upQueries = [];
522
+ const downQueries = [];
523
+ const oldTable = InstanceChecker.isTable(oldTableOrName)
524
+ ? oldTableOrName
525
+ : await this.getCachedTable(oldTableOrName);
526
+ let newTable = oldTable.clone();
527
+ // we need database name and schema name to rename FK constraints
528
+ let dbName = undefined;
529
+ let schemaName = undefined;
530
+ let oldTableName = oldTable.name;
531
+ const splittedName = oldTable.name.split(".");
532
+ if (splittedName.length === 3) {
533
+ dbName = splittedName[0];
534
+ oldTableName = splittedName[2];
535
+ if (splittedName[1] !== "")
536
+ schemaName = splittedName[1];
537
+ }
538
+ else if (splittedName.length === 2) {
539
+ schemaName = splittedName[0];
540
+ oldTableName = splittedName[1];
541
+ }
542
+ newTable.name = this.driver.buildTableName(newTableName, schemaName, dbName);
543
+ // if we have tables with database which differs from database specified in config, we must change currently used database.
544
+ // This need because we can not rename objects from another database.
545
+ const currentDB = await this.getCurrentDatabase();
546
+ if (dbName && dbName !== currentDB) {
547
+ upQueries.push(new Query(`USE "${dbName}"`));
548
+ downQueries.push(new Query(`USE "${currentDB}"`));
549
+ }
550
+ // rename table
551
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(oldTable)}", "${newTableName}"`));
552
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(newTable)}", "${oldTableName}"`));
553
+ // rename primary key constraint
554
+ if (newTable.primaryColumns.length > 0) {
555
+ const columnNames = newTable.primaryColumns.map((column) => column.name);
556
+ const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
557
+ const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
558
+ // rename primary constraint
559
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${oldPkName}", "${newPkName}"`));
560
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${newPkName}", "${oldPkName}"`));
561
+ }
562
+ // rename unique constraints
563
+ newTable.uniques.forEach((unique) => {
564
+ // build new constraint name
565
+ const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
566
+ // build queries
567
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${unique.name}", "${newUniqueName}"`));
568
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${newUniqueName}", "${unique.name}"`));
569
+ // replace constraint name
570
+ unique.name = newUniqueName;
571
+ });
572
+ // rename index constraints
573
+ newTable.indices.forEach((index) => {
574
+ // build new constraint name
575
+ const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
576
+ // build queries
577
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${index.name}", "${newIndexName}", "INDEX"`));
578
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(newTable)}.${newIndexName}", "${index.name}", "INDEX"`));
579
+ // replace constraint name
580
+ index.name = newIndexName;
581
+ });
582
+ // rename foreign key constraints
583
+ newTable.foreignKeys.forEach((foreignKey) => {
584
+ // build new constraint name
585
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
586
+ // build queries
587
+ upQueries.push(new Query(`EXEC sp_rename "${this.buildForeignKeyName(foreignKey.name, schemaName, dbName)}", "${newForeignKeyName}"`));
588
+ downQueries.push(new Query(`EXEC sp_rename "${this.buildForeignKeyName(newForeignKeyName, schemaName, dbName)}", "${foreignKey.name}"`));
589
+ // replace constraint name
590
+ foreignKey.name = newForeignKeyName;
824
591
  });
825
- };
592
+ // change currently used database back to default db.
593
+ if (dbName && dbName !== currentDB) {
594
+ upQueries.push(new Query(`USE "${currentDB}"`));
595
+ downQueries.push(new Query(`USE "${dbName}"`));
596
+ }
597
+ await this.executeQueries(upQueries, downQueries);
598
+ // rename old table and replace it in cached tabled;
599
+ oldTable.name = newTable.name;
600
+ this.replaceCachedTable(oldTable, newTable);
601
+ }
826
602
  /**
827
603
  * Creates a new column from the column in the table.
828
604
  */
829
- SqlServerQueryRunner.prototype.addColumn = function (tableOrName, column) {
830
- return tslib_1.__awaiter(this, void 0, void 0, function () {
831
- var table, _a, clonedTable, upQueries, downQueries, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, uniqueConstraint, defaultName;
832
- return tslib_1.__generator(this, function (_b) {
833
- switch (_b.label) {
834
- case 0:
835
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
836
- _a = tableOrName;
837
- return [3 /*break*/, 3];
838
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
839
- case 2:
840
- _a = _b.sent();
841
- _b.label = 3;
842
- case 3:
843
- table = _a;
844
- clonedTable = table.clone();
845
- upQueries = [];
846
- downQueries = [];
847
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, column, false, true)));
848
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + column.name + "\""));
849
- // create or update primary key constraint
850
- if (column.isPrimary) {
851
- primaryColumns = clonedTable.primaryColumns;
852
- // if table already have primary key, me must drop it and recreate again
853
- if (primaryColumns.length > 0) {
854
- pkName_1 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
855
- columnNames_1 = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
856
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName_1 + "\""));
857
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName_1 + "\" PRIMARY KEY (" + columnNames_1 + ")"));
858
- }
859
- primaryColumns.push(column);
860
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
861
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
862
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
863
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
864
- }
865
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
866
- if (columnIndex) {
867
- upQueries.push(this.createIndexSql(table, columnIndex));
868
- downQueries.push(this.dropIndexSql(table, columnIndex));
869
- }
870
- // create unique constraint
871
- if (column.isUnique) {
872
- uniqueConstraint = new TableUnique({
873
- name: this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),
874
- columnNames: [column.name]
875
- });
876
- clonedTable.uniques.push(uniqueConstraint);
877
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + column.name + "\")"));
878
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
879
- }
880
- // remove default constraint
881
- if (column.default !== null && column.default !== undefined) {
882
- defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, column.name);
883
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + defaultName + "\""));
884
- }
885
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
886
- case 4:
887
- _b.sent();
888
- clonedTable.addColumn(column);
889
- this.replaceCachedTable(table, clonedTable);
890
- return [2 /*return*/];
891
- }
605
+ async addColumn(tableOrName, column) {
606
+ const table = InstanceChecker.isTable(tableOrName)
607
+ ? tableOrName
608
+ : await this.getCachedTable(tableOrName);
609
+ const clonedTable = table.clone();
610
+ const upQueries = [];
611
+ const downQueries = [];
612
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, column, false, true)}`));
613
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
614
+ // create or update primary key constraint
615
+ if (column.isPrimary) {
616
+ const primaryColumns = clonedTable.primaryColumns;
617
+ // if table already have primary key, me must drop it and recreate again
618
+ if (primaryColumns.length > 0) {
619
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
620
+ const columnNames = primaryColumns
621
+ .map((column) => `"${column.name}"`)
622
+ .join(", ");
623
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
624
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
625
+ }
626
+ primaryColumns.push(column);
627
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
628
+ const columnNames = primaryColumns
629
+ .map((column) => `"${column.name}"`)
630
+ .join(", ");
631
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
632
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
633
+ }
634
+ // create column index
635
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
636
+ index.columnNames[0] === column.name);
637
+ if (columnIndex) {
638
+ upQueries.push(this.createIndexSql(table, columnIndex));
639
+ downQueries.push(this.dropIndexSql(table, columnIndex));
640
+ }
641
+ // create unique constraint
642
+ if (column.isUnique) {
643
+ const uniqueConstraint = new TableUnique({
644
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
645
+ columnNames: [column.name],
892
646
  });
893
- });
894
- };
647
+ clonedTable.uniques.push(uniqueConstraint);
648
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${column.name}")`));
649
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
650
+ }
651
+ // remove default constraint
652
+ if (column.default !== null && column.default !== undefined) {
653
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, column.name);
654
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${defaultName}"`));
655
+ }
656
+ await this.executeQueries(upQueries, downQueries);
657
+ clonedTable.addColumn(column);
658
+ this.replaceCachedTable(table, clonedTable);
659
+ }
895
660
  /**
896
661
  * Creates a new columns from the column in the table.
897
662
  */
898
- SqlServerQueryRunner.prototype.addColumns = function (tableOrName, columns) {
899
- return tslib_1.__awaiter(this, void 0, void 0, function () {
900
- var _this = this;
901
- return tslib_1.__generator(this, function (_a) {
902
- switch (_a.label) {
903
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(columns, function (column) { return _this.addColumn(tableOrName, column); })];
904
- case 1:
905
- _a.sent();
906
- return [2 /*return*/];
907
- }
908
- });
909
- });
910
- };
663
+ async addColumns(tableOrName, columns) {
664
+ for (const column of columns) {
665
+ await this.addColumn(tableOrName, column);
666
+ }
667
+ }
911
668
  /**
912
669
  * Renames column in the given table.
913
670
  */
914
- SqlServerQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) {
915
- return tslib_1.__awaiter(this, void 0, void 0, function () {
916
- var table, _a, oldColumn, newColumn;
917
- return tslib_1.__generator(this, function (_b) {
918
- switch (_b.label) {
919
- case 0:
920
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
921
- _a = tableOrName;
922
- return [3 /*break*/, 3];
923
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
924
- case 2:
925
- _a = _b.sent();
926
- _b.label = 3;
927
- case 3:
928
- table = _a;
929
- oldColumn = oldTableColumnOrName instanceof TableColumn ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; });
930
- if (!oldColumn)
931
- throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
932
- newColumn = undefined;
933
- if (newTableColumnOrName instanceof TableColumn) {
934
- newColumn = newTableColumnOrName;
935
- }
936
- else {
937
- newColumn = oldColumn.clone();
938
- newColumn.name = newTableColumnOrName;
939
- }
940
- return [4 /*yield*/, this.changeColumn(table, oldColumn, newColumn)];
941
- case 4:
942
- _b.sent();
943
- return [2 /*return*/];
944
- }
945
- });
946
- });
947
- };
671
+ async renameColumn(tableOrName, oldTableColumnOrName, newTableColumnOrName) {
672
+ const table = InstanceChecker.isTable(tableOrName)
673
+ ? tableOrName
674
+ : await this.getCachedTable(tableOrName);
675
+ const oldColumn = InstanceChecker.isTableColumn(oldTableColumnOrName)
676
+ ? oldTableColumnOrName
677
+ : table.columns.find((c) => c.name === oldTableColumnOrName);
678
+ if (!oldColumn)
679
+ throw new TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
680
+ let newColumn = undefined;
681
+ if (InstanceChecker.isTableColumn(newTableColumnOrName)) {
682
+ newColumn = newTableColumnOrName;
683
+ }
684
+ else {
685
+ newColumn = oldColumn.clone();
686
+ newColumn.name = newTableColumnOrName;
687
+ }
688
+ await this.changeColumn(table, oldColumn, newColumn);
689
+ }
948
690
  /**
949
691
  * Changes a column in the table.
950
692
  */
951
- SqlServerQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {
952
- return tslib_1.__awaiter(this, void 0, void 0, function () {
953
- 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;
954
- var _this = this;
955
- return tslib_1.__generator(this, function (_b) {
956
- switch (_b.label) {
957
- case 0:
958
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
959
- _a = tableOrName;
960
- return [3 /*break*/, 3];
961
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
962
- case 2:
963
- _a = _b.sent();
964
- _b.label = 3;
965
- case 3:
966
- table = _a;
967
- clonedTable = table.clone();
968
- upQueries = [];
969
- downQueries = [];
970
- oldColumn = oldTableColumnOrName instanceof TableColumn
971
- ? oldTableColumnOrName
972
- : table.columns.find(function (column) { return column.name === oldTableColumnOrName; });
973
- if (!oldColumn)
974
- throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
975
- if (!((newColumn.isGenerated !== oldColumn.isGenerated && newColumn.generationStrategy !== "uuid") || newColumn.type !== oldColumn.type || newColumn.length !== oldColumn.length)) return [3 /*break*/, 6];
976
- // SQL Server does not support changing of IDENTITY column, so we must drop column and recreate it again.
977
- // Also, we recreate column if column type changed
978
- return [4 /*yield*/, this.dropColumn(table, oldColumn)];
979
- case 4:
980
- // SQL Server does not support changing of IDENTITY column, so we must drop column and recreate it again.
981
- // Also, we recreate column if column type changed
982
- _b.sent();
983
- return [4 /*yield*/, this.addColumn(table, newColumn)];
984
- case 5:
985
- _b.sent();
986
- // update cloned table
987
- clonedTable = table.clone();
988
- return [3 /*break*/, 10];
989
- case 6:
990
- if (!(newColumn.name !== oldColumn.name)) return [3 /*break*/, 8];
991
- dbName_1 = undefined;
992
- schemaName_1 = undefined;
993
- splittedName = table.name.split(".");
994
- if (splittedName.length === 3) {
995
- dbName_1 = splittedName[0];
996
- if (splittedName[1] !== "")
997
- schemaName_1 = splittedName[1];
998
- }
999
- else if (splittedName.length === 2) {
1000
- schemaName_1 = splittedName[0];
1001
- }
1002
- return [4 /*yield*/, this.getCurrentDatabase()];
1003
- case 7:
1004
- currentDB = _b.sent();
1005
- if (dbName_1 && dbName_1 !== currentDB) {
1006
- upQueries.push(new Query("USE \"" + dbName_1 + "\""));
1007
- downQueries.push(new Query("USE \"" + currentDB + "\""));
1008
- }
1009
- // rename the column
1010
- upQueries.push(new Query("EXEC sp_rename \"" + this.escapePath(table, true) + "." + oldColumn.name + "\", \"" + newColumn.name + "\""));
1011
- downQueries.push(new Query("EXEC sp_rename \"" + this.escapePath(table, true) + "." + newColumn.name + "\", \"" + oldColumn.name + "\""));
1012
- if (oldColumn.isPrimary === true) {
1013
- primaryColumns = clonedTable.primaryColumns;
1014
- columnNames = primaryColumns.map(function (column) { return column.name; });
1015
- oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
1016
- // replace old column name with new column name
1017
- columnNames.splice(columnNames.indexOf(oldColumn.name), 1);
1018
- columnNames.push(newColumn.name);
1019
- newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
1020
- // rename primary constraint
1021
- upQueries.push(new Query("EXEC sp_rename \"" + this.escapePath(clonedTable, true) + "." + oldPkName + "\", \"" + newPkName + "\""));
1022
- downQueries.push(new Query("EXEC sp_rename \"" + this.escapePath(clonedTable, true) + "." + newPkName + "\", \"" + oldPkName + "\""));
1023
- }
1024
- // rename index constraints
1025
- clonedTable.findColumnIndices(oldColumn).forEach(function (index) {
1026
- // build new constraint name
1027
- index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
1028
- index.columnNames.push(newColumn.name);
1029
- var newIndexName = _this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
1030
- // build queries
1031
- upQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + index.name + "\", \"" + newIndexName + "\", \"INDEX\""));
1032
- downQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + newIndexName + "\", \"" + index.name + "\", \"INDEX\""));
1033
- // replace constraint name
1034
- index.name = newIndexName;
1035
- });
1036
- // rename foreign key constraints
1037
- clonedTable.findColumnForeignKeys(oldColumn).forEach(function (foreignKey) {
1038
- // build new constraint name
1039
- foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
1040
- foreignKey.columnNames.push(newColumn.name);
1041
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
1042
- // build queries
1043
- upQueries.push(new Query("EXEC sp_rename \"" + _this.buildForeignKeyName(foreignKey.name, schemaName_1, dbName_1) + "\", \"" + newForeignKeyName + "\""));
1044
- downQueries.push(new Query("EXEC sp_rename \"" + _this.buildForeignKeyName(newForeignKeyName, schemaName_1, dbName_1) + "\", \"" + foreignKey.name + "\""));
1045
- // replace constraint name
1046
- foreignKey.name = newForeignKeyName;
1047
- });
1048
- // rename check constraints
1049
- clonedTable.findColumnChecks(oldColumn).forEach(function (check) {
1050
- // build new constraint name
1051
- check.columnNames.splice(check.columnNames.indexOf(oldColumn.name), 1);
1052
- check.columnNames.push(newColumn.name);
1053
- var newCheckName = _this.connection.namingStrategy.checkConstraintName(clonedTable, check.expression);
1054
- // build queries
1055
- upQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + check.name + "\", \"" + newCheckName + "\""));
1056
- downQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + newCheckName + "\", \"" + check.name + "\""));
1057
- // replace constraint name
1058
- check.name = newCheckName;
1059
- });
1060
- // rename unique constraints
1061
- clonedTable.findColumnUniques(oldColumn).forEach(function (unique) {
1062
- // build new constraint name
1063
- unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
1064
- unique.columnNames.push(newColumn.name);
1065
- var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
1066
- // build queries
1067
- upQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + unique.name + "\", \"" + newUniqueName + "\""));
1068
- downQueries.push(new Query("EXEC sp_rename \"" + _this.escapePath(clonedTable, true) + "." + newUniqueName + "\", \"" + unique.name + "\""));
1069
- // replace constraint name
1070
- unique.name = newUniqueName;
1071
- });
1072
- // change currently used database back to default db.
1073
- if (dbName_1 && dbName_1 !== currentDB) {
1074
- upQueries.push(new Query("USE \"" + currentDB + "\""));
1075
- downQueries.push(new Query("USE \"" + dbName_1 + "\""));
1076
- }
1077
- oldTableColumn = clonedTable.columns.find(function (column) { return column.name === oldColumn.name; });
1078
- clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
1079
- oldColumn.name = newColumn.name;
1080
- _b.label = 8;
1081
- case 8:
1082
- if (this.isColumnChanged(oldColumn, newColumn)) {
1083
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN " + this.buildCreateColumnSql(table, newColumn, true, false)));
1084
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN " + this.buildCreateColumnSql(table, oldColumn, true, false)));
1085
- }
1086
- if (newColumn.isPrimary !== oldColumn.isPrimary) {
1087
- primaryColumns = clonedTable.primaryColumns;
1088
- // if primary column state changed, we must always drop existed constraint.
1089
- if (primaryColumns.length > 0) {
1090
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1091
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1092
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1093
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1094
- }
1095
- if (newColumn.isPrimary === true) {
1096
- primaryColumns.push(newColumn);
1097
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
1098
- column.isPrimary = true;
1099
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1100
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1101
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1102
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1103
- }
1104
- else {
1105
- primaryColumn = primaryColumns.find(function (c) { return c.name === newColumn.name; });
1106
- primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
1107
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
1108
- column.isPrimary = false;
1109
- // if we have another primary keys, we must recreate constraint.
1110
- if (primaryColumns.length > 0) {
1111
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1112
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1113
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1114
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1115
- }
1116
- }
1117
- }
1118
- if (newColumn.isUnique !== oldColumn.isUnique) {
1119
- if (newColumn.isUnique === true) {
1120
- uniqueConstraint = new TableUnique({
1121
- name: this.connection.namingStrategy.uniqueConstraintName(table.name, [newColumn.name]),
1122
- columnNames: [newColumn.name]
1123
- });
1124
- clonedTable.uniques.push(uniqueConstraint);
1125
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + newColumn.name + "\")"));
1126
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
1127
- }
1128
- else {
1129
- uniqueConstraint = clonedTable.uniques.find(function (unique) {
1130
- return unique.columnNames.length === 1 && !!unique.columnNames.find(function (columnName) { return columnName === newColumn.name; });
1131
- });
1132
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1);
1133
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
1134
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + newColumn.name + "\")"));
1135
- }
1136
- }
1137
- if (newColumn.default !== oldColumn.default) {
1138
- if (newColumn.default !== null && newColumn.default !== undefined) {
1139
- defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, newColumn.name);
1140
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + defaultName + "\" DEFAULT " + newColumn.default + " FOR \"" + newColumn.name + "\""));
1141
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + defaultName + "\""));
1142
- }
1143
- else if (oldColumn.default !== null && oldColumn.default !== undefined) {
1144
- defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, oldColumn.name);
1145
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + defaultName + "\""));
1146
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + defaultName + "\" DEFAULT " + oldColumn.default + " FOR \"" + oldColumn.name + "\""));
1147
- }
1148
- }
1149
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1150
- case 9:
1151
- _b.sent();
1152
- this.replaceCachedTable(table, clonedTable);
1153
- _b.label = 10;
1154
- case 10: return [2 /*return*/];
693
+ async changeColumn(tableOrName, oldTableColumnOrName, newColumn) {
694
+ const table = InstanceChecker.isTable(tableOrName)
695
+ ? tableOrName
696
+ : await this.getCachedTable(tableOrName);
697
+ let clonedTable = table.clone();
698
+ const upQueries = [];
699
+ const downQueries = [];
700
+ const oldColumn = InstanceChecker.isTableColumn(oldTableColumnOrName)
701
+ ? oldTableColumnOrName
702
+ : table.columns.find((column) => column.name === oldTableColumnOrName);
703
+ if (!oldColumn)
704
+ throw new TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
705
+ if ((newColumn.isGenerated !== oldColumn.isGenerated &&
706
+ newColumn.generationStrategy !== "uuid") ||
707
+ newColumn.type !== oldColumn.type ||
708
+ newColumn.length !== oldColumn.length) {
709
+ // SQL Server does not support changing of IDENTITY column, so we must drop column and recreate it again.
710
+ // Also, we recreate column if column type changed
711
+ await this.dropColumn(table, oldColumn);
712
+ await this.addColumn(table, newColumn);
713
+ // update cloned table
714
+ clonedTable = table.clone();
715
+ }
716
+ else {
717
+ if (newColumn.name !== oldColumn.name) {
718
+ // we need database name and schema name to rename FK constraints
719
+ let dbName = undefined;
720
+ let schemaName = undefined;
721
+ const splittedName = table.name.split(".");
722
+ if (splittedName.length === 3) {
723
+ dbName = splittedName[0];
724
+ if (splittedName[1] !== "")
725
+ schemaName = splittedName[1];
1155
726
  }
1156
- });
1157
- });
1158
- };
727
+ else if (splittedName.length === 2) {
728
+ schemaName = splittedName[0];
729
+ }
730
+ // if we have tables with database which differs from database specified in config, we must change currently used database.
731
+ // This need because we can not rename objects from another database.
732
+ const currentDB = await this.getCurrentDatabase();
733
+ if (dbName && dbName !== currentDB) {
734
+ upQueries.push(new Query(`USE "${dbName}"`));
735
+ downQueries.push(new Query(`USE "${currentDB}"`));
736
+ }
737
+ // rename the column
738
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(table)}.${oldColumn.name}", "${newColumn.name}"`));
739
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(table)}.${newColumn.name}", "${oldColumn.name}"`));
740
+ if (oldColumn.isPrimary === true) {
741
+ const primaryColumns = clonedTable.primaryColumns;
742
+ // build old primary constraint name
743
+ const columnNames = primaryColumns.map((column) => column.name);
744
+ const oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
745
+ // replace old column name with new column name
746
+ columnNames.splice(columnNames.indexOf(oldColumn.name), 1);
747
+ columnNames.push(newColumn.name);
748
+ // build new primary constraint name
749
+ const newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
750
+ // rename primary constraint
751
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${oldPkName}", "${newPkName}"`));
752
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${newPkName}", "${oldPkName}"`));
753
+ }
754
+ // rename index constraints
755
+ clonedTable.findColumnIndices(oldColumn).forEach((index) => {
756
+ // build new constraint name
757
+ index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
758
+ index.columnNames.push(newColumn.name);
759
+ const newIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
760
+ // build queries
761
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${index.name}", "${newIndexName}", "INDEX"`));
762
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${newIndexName}", "${index.name}", "INDEX"`));
763
+ // replace constraint name
764
+ index.name = newIndexName;
765
+ });
766
+ // rename foreign key constraints
767
+ clonedTable
768
+ .findColumnForeignKeys(oldColumn)
769
+ .forEach((foreignKey) => {
770
+ // build new constraint name
771
+ foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
772
+ foreignKey.columnNames.push(newColumn.name);
773
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
774
+ // build queries
775
+ upQueries.push(new Query(`EXEC sp_rename "${this.buildForeignKeyName(foreignKey.name, schemaName, dbName)}", "${newForeignKeyName}"`));
776
+ downQueries.push(new Query(`EXEC sp_rename "${this.buildForeignKeyName(newForeignKeyName, schemaName, dbName)}", "${foreignKey.name}"`));
777
+ // replace constraint name
778
+ foreignKey.name = newForeignKeyName;
779
+ });
780
+ // rename check constraints
781
+ clonedTable.findColumnChecks(oldColumn).forEach((check) => {
782
+ // build new constraint name
783
+ check.columnNames.splice(check.columnNames.indexOf(oldColumn.name), 1);
784
+ check.columnNames.push(newColumn.name);
785
+ const newCheckName = this.connection.namingStrategy.checkConstraintName(clonedTable, check.expression);
786
+ // build queries
787
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${check.name}", "${newCheckName}"`));
788
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${newCheckName}", "${check.name}"`));
789
+ // replace constraint name
790
+ check.name = newCheckName;
791
+ });
792
+ // rename unique constraints
793
+ clonedTable.findColumnUniques(oldColumn).forEach((unique) => {
794
+ // build new constraint name
795
+ unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
796
+ unique.columnNames.push(newColumn.name);
797
+ const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
798
+ // build queries
799
+ upQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${unique.name}", "${newUniqueName}"`));
800
+ downQueries.push(new Query(`EXEC sp_rename "${this.getTablePath(clonedTable)}.${newUniqueName}", "${unique.name}"`));
801
+ // replace constraint name
802
+ unique.name = newUniqueName;
803
+ });
804
+ // rename default constraints
805
+ if (oldColumn.default !== null &&
806
+ oldColumn.default !== undefined) {
807
+ const oldDefaultName = this.connection.namingStrategy.defaultConstraintName(table, oldColumn.name);
808
+ const newDefaultName = this.connection.namingStrategy.defaultConstraintName(table, newColumn.name);
809
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${oldDefaultName}"`));
810
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${oldDefaultName}" DEFAULT ${oldColumn.default} FOR "${newColumn.name}"`));
811
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${newDefaultName}" DEFAULT ${oldColumn.default} FOR "${newColumn.name}"`));
812
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${newDefaultName}"`));
813
+ }
814
+ // change currently used database back to default db.
815
+ if (dbName && dbName !== currentDB) {
816
+ upQueries.push(new Query(`USE "${currentDB}"`));
817
+ downQueries.push(new Query(`USE "${dbName}"`));
818
+ }
819
+ // rename old column in the Table object
820
+ const oldTableColumn = clonedTable.columns.find((column) => column.name === oldColumn.name);
821
+ clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
822
+ oldColumn.name = newColumn.name;
823
+ }
824
+ if (this.isColumnChanged(oldColumn, newColumn, false)) {
825
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN ${this.buildCreateColumnSql(table, newColumn, true, false)}`));
826
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN ${this.buildCreateColumnSql(table, oldColumn, true, false)}`));
827
+ }
828
+ if (newColumn.isPrimary !== oldColumn.isPrimary) {
829
+ const primaryColumns = clonedTable.primaryColumns;
830
+ // if primary column state changed, we must always drop existed constraint.
831
+ if (primaryColumns.length > 0) {
832
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
833
+ const columnNames = primaryColumns
834
+ .map((column) => `"${column.name}"`)
835
+ .join(", ");
836
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
837
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
838
+ }
839
+ if (newColumn.isPrimary === true) {
840
+ primaryColumns.push(newColumn);
841
+ // update column in table
842
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
843
+ column.isPrimary = true;
844
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
845
+ const columnNames = primaryColumns
846
+ .map((column) => `"${column.name}"`)
847
+ .join(", ");
848
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
849
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
850
+ }
851
+ else {
852
+ const primaryColumn = primaryColumns.find((c) => c.name === newColumn.name);
853
+ primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
854
+ // update column in table
855
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
856
+ column.isPrimary = false;
857
+ // if we have another primary keys, we must recreate constraint.
858
+ if (primaryColumns.length > 0) {
859
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
860
+ const columnNames = primaryColumns
861
+ .map((column) => `"${column.name}"`)
862
+ .join(", ");
863
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
864
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
865
+ }
866
+ }
867
+ }
868
+ if (newColumn.isUnique !== oldColumn.isUnique) {
869
+ if (newColumn.isUnique === true) {
870
+ const uniqueConstraint = new TableUnique({
871
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [newColumn.name]),
872
+ columnNames: [newColumn.name],
873
+ });
874
+ clonedTable.uniques.push(uniqueConstraint);
875
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${newColumn.name}")`));
876
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
877
+ }
878
+ else {
879
+ const uniqueConstraint = clonedTable.uniques.find((unique) => {
880
+ return (unique.columnNames.length === 1 &&
881
+ !!unique.columnNames.find((columnName) => columnName === newColumn.name));
882
+ });
883
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1);
884
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
885
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${newColumn.name}")`));
886
+ }
887
+ }
888
+ if (newColumn.default !== oldColumn.default) {
889
+ // (note) if there is a previous default, we need to drop its constraint first
890
+ if (oldColumn.default !== null &&
891
+ oldColumn.default !== undefined) {
892
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, oldColumn.name);
893
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${defaultName}"`));
894
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${defaultName}" DEFAULT ${oldColumn.default} FOR "${oldColumn.name}"`));
895
+ }
896
+ if (newColumn.default !== null &&
897
+ newColumn.default !== undefined) {
898
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, newColumn.name);
899
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${defaultName}" DEFAULT ${newColumn.default} FOR "${newColumn.name}"`));
900
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${defaultName}"`));
901
+ }
902
+ }
903
+ await this.executeQueries(upQueries, downQueries);
904
+ this.replaceCachedTable(table, clonedTable);
905
+ }
906
+ }
1159
907
  /**
1160
908
  * Changes a column in the table.
1161
909
  */
1162
- SqlServerQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
1163
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1164
- var _this = this;
1165
- return tslib_1.__generator(this, function (_a) {
1166
- switch (_a.label) {
1167
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(changedColumns, function (changedColumn) { return _this.changeColumn(tableOrName, changedColumn.oldColumn, changedColumn.newColumn); })];
1168
- case 1:
1169
- _a.sent();
1170
- return [2 /*return*/];
1171
- }
1172
- });
1173
- });
1174
- };
910
+ async changeColumns(tableOrName, changedColumns) {
911
+ for (const { oldColumn, newColumn } of changedColumns) {
912
+ await this.changeColumn(tableOrName, oldColumn, newColumn);
913
+ }
914
+ }
1175
915
  /**
1176
916
  * Drops column in the table.
1177
917
  */
1178
- SqlServerQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {
1179
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1180
- var table, _a, column, clonedTable, upQueries, downQueries, pkName, columnNames, tableColumn, pkName_2, columnNames_2, columnIndex, columnCheck, columnUnique, defaultName;
1181
- return tslib_1.__generator(this, function (_b) {
1182
- switch (_b.label) {
1183
- case 0:
1184
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1185
- _a = tableOrName;
1186
- return [3 /*break*/, 3];
1187
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1188
- case 2:
1189
- _a = _b.sent();
1190
- _b.label = 3;
1191
- case 3:
1192
- table = _a;
1193
- column = columnOrName instanceof TableColumn ? columnOrName : table.findColumnByName(columnOrName);
1194
- if (!column)
1195
- throw new Error("Column \"" + columnOrName + "\" was not found in table \"" + table.name + "\"");
1196
- clonedTable = table.clone();
1197
- upQueries = [];
1198
- downQueries = [];
1199
- // drop primary key constraint
1200
- if (column.isPrimary) {
1201
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; }));
1202
- columnNames = clonedTable.primaryColumns.map(function (primaryColumn) { return "\"" + primaryColumn.name + "\""; }).join(", ");
1203
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP CONSTRAINT \"" + pkName + "\""));
1204
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1205
- tableColumn = clonedTable.findColumnByName(column.name);
1206
- tableColumn.isPrimary = false;
1207
- // if primary key have multiple columns, we must recreate it without dropped column
1208
- if (clonedTable.primaryColumns.length > 0) {
1209
- pkName_2 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; }));
1210
- columnNames_2 = clonedTable.primaryColumns.map(function (primaryColumn) { return "\"" + primaryColumn.name + "\""; }).join(", ");
1211
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD CONSTRAINT \"" + pkName_2 + "\" PRIMARY KEY (" + columnNames_2 + ")"));
1212
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP CONSTRAINT \"" + pkName_2 + "\""));
1213
- }
1214
- }
1215
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
1216
- if (columnIndex) {
1217
- clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
1218
- upQueries.push(this.dropIndexSql(table, columnIndex));
1219
- downQueries.push(this.createIndexSql(table, columnIndex));
1220
- }
1221
- columnCheck = clonedTable.checks.find(function (check) { return !!check.columnNames && check.columnNames.length === 1 && check.columnNames[0] === column.name; });
1222
- if (columnCheck) {
1223
- clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1);
1224
- upQueries.push(this.dropCheckConstraintSql(table, columnCheck));
1225
- downQueries.push(this.createCheckConstraintSql(table, columnCheck));
1226
- }
1227
- columnUnique = clonedTable.uniques.find(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });
1228
- if (columnUnique) {
1229
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1);
1230
- upQueries.push(this.dropUniqueConstraintSql(table, columnUnique));
1231
- downQueries.push(this.createUniqueConstraintSql(table, columnUnique));
1232
- }
1233
- // drop default constraint
1234
- if (column.default !== null && column.default !== undefined) {
1235
- defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, column.name);
1236
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + defaultName + "\""));
1237
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + defaultName + "\" DEFAULT " + column.default + " FOR \"" + column.name + "\""));
1238
- }
1239
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + column.name + "\""));
1240
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, column, false, false)));
1241
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1242
- case 4:
1243
- _b.sent();
1244
- clonedTable.removeColumn(column);
1245
- this.replaceCachedTable(table, clonedTable);
1246
- return [2 /*return*/];
1247
- }
1248
- });
1249
- });
1250
- };
918
+ async dropColumn(tableOrName, columnOrName) {
919
+ const table = InstanceChecker.isTable(tableOrName)
920
+ ? tableOrName
921
+ : await this.getCachedTable(tableOrName);
922
+ const column = InstanceChecker.isTableColumn(columnOrName)
923
+ ? columnOrName
924
+ : table.findColumnByName(columnOrName);
925
+ if (!column)
926
+ throw new TypeORMError(`Column "${columnOrName}" was not found in table "${table.name}"`);
927
+ const clonedTable = table.clone();
928
+ const upQueries = [];
929
+ const downQueries = [];
930
+ // drop primary key constraint
931
+ if (column.isPrimary) {
932
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
933
+ const columnNames = clonedTable.primaryColumns
934
+ .map((primaryColumn) => `"${primaryColumn.name}"`)
935
+ .join(", ");
936
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP CONSTRAINT "${pkName}"`));
937
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
938
+ // update column in table
939
+ const tableColumn = clonedTable.findColumnByName(column.name);
940
+ tableColumn.isPrimary = false;
941
+ // if primary key have multiple columns, we must recreate it without dropped column
942
+ if (clonedTable.primaryColumns.length > 0) {
943
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
944
+ const columnNames = clonedTable.primaryColumns
945
+ .map((primaryColumn) => `"${primaryColumn.name}"`)
946
+ .join(", ");
947
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
948
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP CONSTRAINT "${pkName}"`));
949
+ }
950
+ }
951
+ // drop column index
952
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
953
+ index.columnNames[0] === column.name);
954
+ if (columnIndex) {
955
+ clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
956
+ upQueries.push(this.dropIndexSql(table, columnIndex));
957
+ downQueries.push(this.createIndexSql(table, columnIndex));
958
+ }
959
+ // drop column check
960
+ const columnCheck = clonedTable.checks.find((check) => !!check.columnNames &&
961
+ check.columnNames.length === 1 &&
962
+ check.columnNames[0] === column.name);
963
+ if (columnCheck) {
964
+ clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1);
965
+ upQueries.push(this.dropCheckConstraintSql(table, columnCheck));
966
+ downQueries.push(this.createCheckConstraintSql(table, columnCheck));
967
+ }
968
+ // drop column unique
969
+ const columnUnique = clonedTable.uniques.find((unique) => unique.columnNames.length === 1 &&
970
+ unique.columnNames[0] === column.name);
971
+ if (columnUnique) {
972
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1);
973
+ upQueries.push(this.dropUniqueConstraintSql(table, columnUnique));
974
+ downQueries.push(this.createUniqueConstraintSql(table, columnUnique));
975
+ }
976
+ // drop default constraint
977
+ if (column.default !== null && column.default !== undefined) {
978
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, column.name);
979
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${defaultName}"`));
980
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${defaultName}" DEFAULT ${column.default} FOR "${column.name}"`));
981
+ }
982
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
983
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, column, false, false)}`));
984
+ await this.executeQueries(upQueries, downQueries);
985
+ clonedTable.removeColumn(column);
986
+ this.replaceCachedTable(table, clonedTable);
987
+ }
1251
988
  /**
1252
989
  * Drops the columns in the table.
1253
990
  */
1254
- SqlServerQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
1255
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1256
- var _this = this;
1257
- return tslib_1.__generator(this, function (_a) {
1258
- switch (_a.label) {
1259
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(columns, function (column) { return _this.dropColumn(tableOrName, column); })];
1260
- case 1:
1261
- _a.sent();
1262
- return [2 /*return*/];
1263
- }
1264
- });
1265
- });
1266
- };
991
+ async dropColumns(tableOrName, columns) {
992
+ for (const column of columns) {
993
+ await this.dropColumn(tableOrName, column);
994
+ }
995
+ }
1267
996
  /**
1268
997
  * Creates a new primary key.
1269
998
  */
1270
- SqlServerQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) {
1271
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1272
- var table, _a, clonedTable, up, down;
1273
- return tslib_1.__generator(this, function (_b) {
1274
- switch (_b.label) {
1275
- case 0:
1276
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1277
- _a = tableOrName;
1278
- return [3 /*break*/, 3];
1279
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1280
- case 2:
1281
- _a = _b.sent();
1282
- _b.label = 3;
1283
- case 3:
1284
- table = _a;
1285
- clonedTable = table.clone();
1286
- up = this.createPrimaryKeySql(table, columnNames);
1287
- // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
1288
- clonedTable.columns.forEach(function (column) {
1289
- if (columnNames.find(function (columnName) { return columnName === column.name; }))
1290
- column.isPrimary = true;
1291
- });
1292
- down = this.dropPrimaryKeySql(clonedTable);
1293
- return [4 /*yield*/, this.executeQueries(up, down)];
1294
- case 4:
1295
- _b.sent();
1296
- this.replaceCachedTable(table, clonedTable);
1297
- return [2 /*return*/];
1298
- }
1299
- });
999
+ async createPrimaryKey(tableOrName, columnNames) {
1000
+ const table = InstanceChecker.isTable(tableOrName)
1001
+ ? tableOrName
1002
+ : await this.getCachedTable(tableOrName);
1003
+ const clonedTable = table.clone();
1004
+ const up = this.createPrimaryKeySql(table, columnNames);
1005
+ // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
1006
+ clonedTable.columns.forEach((column) => {
1007
+ if (columnNames.find((columnName) => columnName === column.name))
1008
+ column.isPrimary = true;
1300
1009
  });
1301
- };
1010
+ const down = this.dropPrimaryKeySql(clonedTable);
1011
+ await this.executeQueries(up, down);
1012
+ this.replaceCachedTable(table, clonedTable);
1013
+ }
1302
1014
  /**
1303
1015
  * Updates composite primary keys.
1304
1016
  */
1305
- SqlServerQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) {
1306
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1307
- var table, _a, clonedTable, columnNames, upQueries, downQueries, primaryColumns, pkName_3, columnNamesString_1, pkName, columnNamesString;
1308
- return tslib_1.__generator(this, function (_b) {
1309
- switch (_b.label) {
1310
- case 0:
1311
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1312
- _a = tableOrName;
1313
- return [3 /*break*/, 3];
1314
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1315
- case 2:
1316
- _a = _b.sent();
1317
- _b.label = 3;
1318
- case 3:
1319
- table = _a;
1320
- clonedTable = table.clone();
1321
- columnNames = columns.map(function (column) { return column.name; });
1322
- upQueries = [];
1323
- downQueries = [];
1324
- primaryColumns = clonedTable.primaryColumns;
1325
- if (primaryColumns.length > 0) {
1326
- pkName_3 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1327
- columnNamesString_1 = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1328
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName_3 + "\""));
1329
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName_3 + "\" PRIMARY KEY (" + columnNamesString_1 + ")"));
1330
- }
1331
- // update columns in table.
1332
- clonedTable.columns
1333
- .filter(function (column) { return columnNames.indexOf(column.name) !== -1; })
1334
- .forEach(function (column) { return column.isPrimary = true; });
1335
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, columnNames);
1336
- columnNamesString = columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
1337
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNamesString + ")"));
1338
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1339
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1340
- case 4:
1341
- _b.sent();
1342
- this.replaceCachedTable(table, clonedTable);
1343
- return [2 /*return*/];
1344
- }
1345
- });
1346
- });
1347
- };
1017
+ async updatePrimaryKeys(tableOrName, columns) {
1018
+ const table = InstanceChecker.isTable(tableOrName)
1019
+ ? tableOrName
1020
+ : await this.getCachedTable(tableOrName);
1021
+ const clonedTable = table.clone();
1022
+ const columnNames = columns.map((column) => column.name);
1023
+ const upQueries = [];
1024
+ const downQueries = [];
1025
+ // if table already have primary columns, we must drop them.
1026
+ const primaryColumns = clonedTable.primaryColumns;
1027
+ if (primaryColumns.length > 0) {
1028
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
1029
+ const columnNamesString = primaryColumns
1030
+ .map((column) => `"${column.name}"`)
1031
+ .join(", ");
1032
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
1033
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNamesString})`));
1034
+ }
1035
+ // update columns in table.
1036
+ clonedTable.columns
1037
+ .filter((column) => columnNames.indexOf(column.name) !== -1)
1038
+ .forEach((column) => (column.isPrimary = true));
1039
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
1040
+ const columnNamesString = columnNames
1041
+ .map((columnName) => `"${columnName}"`)
1042
+ .join(", ");
1043
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNamesString})`));
1044
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
1045
+ await this.executeQueries(upQueries, downQueries);
1046
+ this.replaceCachedTable(table, clonedTable);
1047
+ }
1348
1048
  /**
1349
1049
  * Drops a primary key.
1350
1050
  */
1351
- SqlServerQueryRunner.prototype.dropPrimaryKey = function (tableOrName) {
1352
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1353
- var table, _a, up, down;
1354
- return tslib_1.__generator(this, function (_b) {
1355
- switch (_b.label) {
1356
- case 0:
1357
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1358
- _a = tableOrName;
1359
- return [3 /*break*/, 3];
1360
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1361
- case 2:
1362
- _a = _b.sent();
1363
- _b.label = 3;
1364
- case 3:
1365
- table = _a;
1366
- up = this.dropPrimaryKeySql(table);
1367
- down = this.createPrimaryKeySql(table, table.primaryColumns.map(function (column) { return column.name; }));
1368
- return [4 /*yield*/, this.executeQueries(up, down)];
1369
- case 4:
1370
- _b.sent();
1371
- table.primaryColumns.forEach(function (column) {
1372
- column.isPrimary = false;
1373
- });
1374
- return [2 /*return*/];
1375
- }
1376
- });
1051
+ async dropPrimaryKey(tableOrName) {
1052
+ const table = InstanceChecker.isTable(tableOrName)
1053
+ ? tableOrName
1054
+ : await this.getCachedTable(tableOrName);
1055
+ const up = this.dropPrimaryKeySql(table);
1056
+ const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
1057
+ await this.executeQueries(up, down);
1058
+ table.primaryColumns.forEach((column) => {
1059
+ column.isPrimary = false;
1377
1060
  });
1378
- };
1061
+ }
1379
1062
  /**
1380
1063
  * Creates a new unique constraint.
1381
1064
  */
1382
- SqlServerQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) {
1383
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1384
- var table, _a, up, down;
1385
- return tslib_1.__generator(this, function (_b) {
1386
- switch (_b.label) {
1387
- case 0:
1388
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1389
- _a = tableOrName;
1390
- return [3 /*break*/, 3];
1391
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1392
- case 2:
1393
- _a = _b.sent();
1394
- _b.label = 3;
1395
- case 3:
1396
- table = _a;
1397
- // new unique constraint may be passed without name. In this case we generate unique name manually.
1398
- if (!uniqueConstraint.name)
1399
- uniqueConstraint.name = this.connection.namingStrategy.uniqueConstraintName(table.name, uniqueConstraint.columnNames);
1400
- up = this.createUniqueConstraintSql(table, uniqueConstraint);
1401
- down = this.dropUniqueConstraintSql(table, uniqueConstraint);
1402
- return [4 /*yield*/, this.executeQueries(up, down)];
1403
- case 4:
1404
- _b.sent();
1405
- table.addUniqueConstraint(uniqueConstraint);
1406
- return [2 /*return*/];
1407
- }
1408
- });
1409
- });
1410
- };
1065
+ async createUniqueConstraint(tableOrName, uniqueConstraint) {
1066
+ const table = InstanceChecker.isTable(tableOrName)
1067
+ ? tableOrName
1068
+ : await this.getCachedTable(tableOrName);
1069
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
1070
+ if (!uniqueConstraint.name)
1071
+ uniqueConstraint.name =
1072
+ this.connection.namingStrategy.uniqueConstraintName(table, uniqueConstraint.columnNames);
1073
+ const up = this.createUniqueConstraintSql(table, uniqueConstraint);
1074
+ const down = this.dropUniqueConstraintSql(table, uniqueConstraint);
1075
+ await this.executeQueries(up, down);
1076
+ table.addUniqueConstraint(uniqueConstraint);
1077
+ }
1411
1078
  /**
1412
1079
  * Creates a new unique constraints.
1413
1080
  */
1414
- SqlServerQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
1415
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1416
- var promises;
1417
- var _this = this;
1418
- return tslib_1.__generator(this, function (_a) {
1419
- switch (_a.label) {
1420
- case 0:
1421
- promises = uniqueConstraints.map(function (uniqueConstraint) { return _this.createUniqueConstraint(tableOrName, uniqueConstraint); });
1422
- return [4 /*yield*/, Promise.all(promises)];
1423
- case 1:
1424
- _a.sent();
1425
- return [2 /*return*/];
1426
- }
1427
- });
1428
- });
1429
- };
1081
+ async createUniqueConstraints(tableOrName, uniqueConstraints) {
1082
+ const promises = uniqueConstraints.map((uniqueConstraint) => this.createUniqueConstraint(tableOrName, uniqueConstraint));
1083
+ await Promise.all(promises);
1084
+ }
1430
1085
  /**
1431
1086
  * Drops unique constraint.
1432
1087
  */
1433
- SqlServerQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) {
1434
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1435
- var table, _a, uniqueConstraint, up, down;
1436
- return tslib_1.__generator(this, function (_b) {
1437
- switch (_b.label) {
1438
- case 0:
1439
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1440
- _a = tableOrName;
1441
- return [3 /*break*/, 3];
1442
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1443
- case 2:
1444
- _a = _b.sent();
1445
- _b.label = 3;
1446
- case 3:
1447
- table = _a;
1448
- uniqueConstraint = uniqueOrName instanceof TableUnique ? uniqueOrName : table.uniques.find(function (u) { return u.name === uniqueOrName; });
1449
- if (!uniqueConstraint)
1450
- throw new Error("Supplied unique constraint was not found in table " + table.name);
1451
- up = this.dropUniqueConstraintSql(table, uniqueConstraint);
1452
- down = this.createUniqueConstraintSql(table, uniqueConstraint);
1453
- return [4 /*yield*/, this.executeQueries(up, down)];
1454
- case 4:
1455
- _b.sent();
1456
- table.removeUniqueConstraint(uniqueConstraint);
1457
- return [2 /*return*/];
1458
- }
1459
- });
1460
- });
1461
- };
1088
+ async dropUniqueConstraint(tableOrName, uniqueOrName) {
1089
+ const table = InstanceChecker.isTable(tableOrName)
1090
+ ? tableOrName
1091
+ : await this.getCachedTable(tableOrName);
1092
+ const uniqueConstraint = InstanceChecker.isTableUnique(uniqueOrName)
1093
+ ? uniqueOrName
1094
+ : table.uniques.find((u) => u.name === uniqueOrName);
1095
+ if (!uniqueConstraint)
1096
+ throw new TypeORMError(`Supplied unique constraint was not found in table ${table.name}`);
1097
+ const up = this.dropUniqueConstraintSql(table, uniqueConstraint);
1098
+ const down = this.createUniqueConstraintSql(table, uniqueConstraint);
1099
+ await this.executeQueries(up, down);
1100
+ table.removeUniqueConstraint(uniqueConstraint);
1101
+ }
1462
1102
  /**
1463
1103
  * Drops an unique constraints.
1464
1104
  */
1465
- SqlServerQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
1466
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1467
- var promises;
1468
- var _this = this;
1469
- return tslib_1.__generator(this, function (_a) {
1470
- switch (_a.label) {
1471
- case 0:
1472
- promises = uniqueConstraints.map(function (uniqueConstraint) { return _this.dropUniqueConstraint(tableOrName, uniqueConstraint); });
1473
- return [4 /*yield*/, Promise.all(promises)];
1474
- case 1:
1475
- _a.sent();
1476
- return [2 /*return*/];
1477
- }
1478
- });
1479
- });
1480
- };
1105
+ async dropUniqueConstraints(tableOrName, uniqueConstraints) {
1106
+ const promises = uniqueConstraints.map((uniqueConstraint) => this.dropUniqueConstraint(tableOrName, uniqueConstraint));
1107
+ await Promise.all(promises);
1108
+ }
1481
1109
  /**
1482
1110
  * Creates a new check constraint.
1483
1111
  */
1484
- SqlServerQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) {
1485
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1486
- var table, _a, up, down;
1487
- return tslib_1.__generator(this, function (_b) {
1488
- switch (_b.label) {
1489
- case 0:
1490
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1491
- _a = tableOrName;
1492
- return [3 /*break*/, 3];
1493
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1494
- case 2:
1495
- _a = _b.sent();
1496
- _b.label = 3;
1497
- case 3:
1498
- table = _a;
1499
- // new unique constraint may be passed without name. In this case we generate unique name manually.
1500
- if (!checkConstraint.name)
1501
- checkConstraint.name = this.connection.namingStrategy.checkConstraintName(table.name, checkConstraint.expression);
1502
- up = this.createCheckConstraintSql(table, checkConstraint);
1503
- down = this.dropCheckConstraintSql(table, checkConstraint);
1504
- return [4 /*yield*/, this.executeQueries(up, down)];
1505
- case 4:
1506
- _b.sent();
1507
- table.addCheckConstraint(checkConstraint);
1508
- return [2 /*return*/];
1509
- }
1510
- });
1511
- });
1512
- };
1112
+ async createCheckConstraint(tableOrName, checkConstraint) {
1113
+ const table = InstanceChecker.isTable(tableOrName)
1114
+ ? tableOrName
1115
+ : await this.getCachedTable(tableOrName);
1116
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
1117
+ if (!checkConstraint.name)
1118
+ checkConstraint.name =
1119
+ this.connection.namingStrategy.checkConstraintName(table, checkConstraint.expression);
1120
+ const up = this.createCheckConstraintSql(table, checkConstraint);
1121
+ const down = this.dropCheckConstraintSql(table, checkConstraint);
1122
+ await this.executeQueries(up, down);
1123
+ table.addCheckConstraint(checkConstraint);
1124
+ }
1513
1125
  /**
1514
1126
  * Creates a new check constraints.
1515
1127
  */
1516
- SqlServerQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) {
1517
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1518
- var promises;
1519
- var _this = this;
1520
- return tslib_1.__generator(this, function (_a) {
1521
- switch (_a.label) {
1522
- case 0:
1523
- promises = checkConstraints.map(function (checkConstraint) { return _this.createCheckConstraint(tableOrName, checkConstraint); });
1524
- return [4 /*yield*/, Promise.all(promises)];
1525
- case 1:
1526
- _a.sent();
1527
- return [2 /*return*/];
1528
- }
1529
- });
1530
- });
1531
- };
1128
+ async createCheckConstraints(tableOrName, checkConstraints) {
1129
+ const promises = checkConstraints.map((checkConstraint) => this.createCheckConstraint(tableOrName, checkConstraint));
1130
+ await Promise.all(promises);
1131
+ }
1532
1132
  /**
1533
1133
  * Drops check constraint.
1534
1134
  */
1535
- SqlServerQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) {
1536
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1537
- var table, _a, checkConstraint, up, down;
1538
- return tslib_1.__generator(this, function (_b) {
1539
- switch (_b.label) {
1540
- case 0:
1541
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1542
- _a = tableOrName;
1543
- return [3 /*break*/, 3];
1544
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1545
- case 2:
1546
- _a = _b.sent();
1547
- _b.label = 3;
1548
- case 3:
1549
- table = _a;
1550
- checkConstraint = checkOrName instanceof TableCheck ? checkOrName : table.checks.find(function (c) { return c.name === checkOrName; });
1551
- if (!checkConstraint)
1552
- throw new Error("Supplied check constraint was not found in table " + table.name);
1553
- up = this.dropCheckConstraintSql(table, checkConstraint);
1554
- down = this.createCheckConstraintSql(table, checkConstraint);
1555
- return [4 /*yield*/, this.executeQueries(up, down)];
1556
- case 4:
1557
- _b.sent();
1558
- table.removeCheckConstraint(checkConstraint);
1559
- return [2 /*return*/];
1560
- }
1561
- });
1562
- });
1563
- };
1135
+ async dropCheckConstraint(tableOrName, checkOrName) {
1136
+ const table = InstanceChecker.isTable(tableOrName)
1137
+ ? tableOrName
1138
+ : await this.getCachedTable(tableOrName);
1139
+ const checkConstraint = InstanceChecker.isTableCheck(checkOrName)
1140
+ ? checkOrName
1141
+ : table.checks.find((c) => c.name === checkOrName);
1142
+ if (!checkConstraint)
1143
+ throw new TypeORMError(`Supplied check constraint was not found in table ${table.name}`);
1144
+ const up = this.dropCheckConstraintSql(table, checkConstraint);
1145
+ const down = this.createCheckConstraintSql(table, checkConstraint);
1146
+ await this.executeQueries(up, down);
1147
+ table.removeCheckConstraint(checkConstraint);
1148
+ }
1564
1149
  /**
1565
1150
  * Drops check constraints.
1566
1151
  */
1567
- SqlServerQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) {
1568
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1569
- var promises;
1570
- var _this = this;
1571
- return tslib_1.__generator(this, function (_a) {
1572
- switch (_a.label) {
1573
- case 0:
1574
- promises = checkConstraints.map(function (checkConstraint) { return _this.dropCheckConstraint(tableOrName, checkConstraint); });
1575
- return [4 /*yield*/, Promise.all(promises)];
1576
- case 1:
1577
- _a.sent();
1578
- return [2 /*return*/];
1579
- }
1580
- });
1581
- });
1582
- };
1152
+ async dropCheckConstraints(tableOrName, checkConstraints) {
1153
+ const promises = checkConstraints.map((checkConstraint) => this.dropCheckConstraint(tableOrName, checkConstraint));
1154
+ await Promise.all(promises);
1155
+ }
1583
1156
  /**
1584
1157
  * Creates a new exclusion constraint.
1585
1158
  */
1586
- SqlServerQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) {
1587
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1588
- return tslib_1.__generator(this, function (_a) {
1589
- throw new Error("SqlServer does not support exclusion constraints.");
1590
- });
1591
- });
1592
- };
1159
+ async createExclusionConstraint(tableOrName, exclusionConstraint) {
1160
+ throw new TypeORMError(`SqlServer does not support exclusion constraints.`);
1161
+ }
1593
1162
  /**
1594
1163
  * Creates a new exclusion constraints.
1595
1164
  */
1596
- SqlServerQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) {
1597
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1598
- return tslib_1.__generator(this, function (_a) {
1599
- throw new Error("SqlServer does not support exclusion constraints.");
1600
- });
1601
- });
1602
- };
1165
+ async createExclusionConstraints(tableOrName, exclusionConstraints) {
1166
+ throw new TypeORMError(`SqlServer does not support exclusion constraints.`);
1167
+ }
1603
1168
  /**
1604
1169
  * Drops exclusion constraint.
1605
1170
  */
1606
- SqlServerQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) {
1607
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1608
- return tslib_1.__generator(this, function (_a) {
1609
- throw new Error("SqlServer does not support exclusion constraints.");
1610
- });
1611
- });
1612
- };
1171
+ async dropExclusionConstraint(tableOrName, exclusionOrName) {
1172
+ throw new TypeORMError(`SqlServer does not support exclusion constraints.`);
1173
+ }
1613
1174
  /**
1614
1175
  * Drops exclusion constraints.
1615
1176
  */
1616
- SqlServerQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) {
1617
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1618
- return tslib_1.__generator(this, function (_a) {
1619
- throw new Error("SqlServer does not support exclusion constraints.");
1620
- });
1621
- });
1622
- };
1177
+ async dropExclusionConstraints(tableOrName, exclusionConstraints) {
1178
+ throw new TypeORMError(`SqlServer does not support exclusion constraints.`);
1179
+ }
1623
1180
  /**
1624
1181
  * Creates a new foreign key.
1625
1182
  */
1626
- SqlServerQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) {
1627
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1628
- var table, _a, up, down;
1629
- return tslib_1.__generator(this, function (_b) {
1630
- switch (_b.label) {
1631
- case 0:
1632
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1633
- _a = tableOrName;
1634
- return [3 /*break*/, 3];
1635
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1636
- case 2:
1637
- _a = _b.sent();
1638
- _b.label = 3;
1639
- case 3:
1640
- table = _a;
1641
- // new FK may be passed without name. In this case we generate FK name manually.
1642
- if (!foreignKey.name)
1643
- foreignKey.name = this.connection.namingStrategy.foreignKeyName(table.name, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
1644
- up = this.createForeignKeySql(table, foreignKey);
1645
- down = this.dropForeignKeySql(table, foreignKey);
1646
- return [4 /*yield*/, this.executeQueries(up, down)];
1647
- case 4:
1648
- _b.sent();
1649
- table.addForeignKey(foreignKey);
1650
- return [2 /*return*/];
1651
- }
1652
- });
1653
- });
1654
- };
1183
+ async createForeignKey(tableOrName, foreignKey) {
1184
+ const table = InstanceChecker.isTable(tableOrName)
1185
+ ? tableOrName
1186
+ : await this.getCachedTable(tableOrName);
1187
+ const metadata = this.connection.hasMetadata(table.name)
1188
+ ? this.connection.getMetadata(table.name)
1189
+ : undefined;
1190
+ if (metadata &&
1191
+ metadata.treeParentRelation &&
1192
+ metadata.treeParentRelation.isTreeParent &&
1193
+ metadata.foreignKeys.find((foreignKey) => foreignKey.onDelete !== "NO ACTION"))
1194
+ throw new TypeORMError("SqlServer does not support options in TreeParent.");
1195
+ // new FK may be passed without name. In this case we generate FK name manually.
1196
+ if (!foreignKey.name)
1197
+ foreignKey.name = this.connection.namingStrategy.foreignKeyName(table, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
1198
+ const up = this.createForeignKeySql(table, foreignKey);
1199
+ const down = this.dropForeignKeySql(table, foreignKey);
1200
+ await this.executeQueries(up, down);
1201
+ table.addForeignKey(foreignKey);
1202
+ }
1655
1203
  /**
1656
1204
  * Creates a new foreign keys.
1657
1205
  */
1658
- SqlServerQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
1659
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1660
- var promises;
1661
- var _this = this;
1662
- return tslib_1.__generator(this, function (_a) {
1663
- switch (_a.label) {
1664
- case 0:
1665
- promises = foreignKeys.map(function (foreignKey) { return _this.createForeignKey(tableOrName, foreignKey); });
1666
- return [4 /*yield*/, Promise.all(promises)];
1667
- case 1:
1668
- _a.sent();
1669
- return [2 /*return*/];
1670
- }
1671
- });
1672
- });
1673
- };
1206
+ async createForeignKeys(tableOrName, foreignKeys) {
1207
+ const promises = foreignKeys.map((foreignKey) => this.createForeignKey(tableOrName, foreignKey));
1208
+ await Promise.all(promises);
1209
+ }
1674
1210
  /**
1675
1211
  * Drops a foreign key from the table.
1676
1212
  */
1677
- SqlServerQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) {
1678
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1679
- var table, _a, foreignKey, up, down;
1680
- return tslib_1.__generator(this, function (_b) {
1681
- switch (_b.label) {
1682
- case 0:
1683
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1684
- _a = tableOrName;
1685
- return [3 /*break*/, 3];
1686
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1687
- case 2:
1688
- _a = _b.sent();
1689
- _b.label = 3;
1690
- case 3:
1691
- table = _a;
1692
- foreignKey = foreignKeyOrName instanceof TableForeignKey ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; });
1693
- if (!foreignKey)
1694
- throw new Error("Supplied foreign key was not found in table " + table.name);
1695
- up = this.dropForeignKeySql(table, foreignKey);
1696
- down = this.createForeignKeySql(table, foreignKey);
1697
- return [4 /*yield*/, this.executeQueries(up, down)];
1698
- case 4:
1699
- _b.sent();
1700
- table.removeForeignKey(foreignKey);
1701
- return [2 /*return*/];
1702
- }
1703
- });
1704
- });
1705
- };
1213
+ async dropForeignKey(tableOrName, foreignKeyOrName) {
1214
+ const table = InstanceChecker.isTable(tableOrName)
1215
+ ? tableOrName
1216
+ : await this.getCachedTable(tableOrName);
1217
+ const foreignKey = InstanceChecker.isTableForeignKey(foreignKeyOrName)
1218
+ ? foreignKeyOrName
1219
+ : table.foreignKeys.find((fk) => fk.name === foreignKeyOrName);
1220
+ if (!foreignKey)
1221
+ throw new TypeORMError(`Supplied foreign key was not found in table ${table.name}`);
1222
+ const up = this.dropForeignKeySql(table, foreignKey);
1223
+ const down = this.createForeignKeySql(table, foreignKey);
1224
+ await this.executeQueries(up, down);
1225
+ table.removeForeignKey(foreignKey);
1226
+ }
1706
1227
  /**
1707
1228
  * Drops a foreign keys from the table.
1708
1229
  */
1709
- SqlServerQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
1710
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1711
- var promises;
1712
- var _this = this;
1713
- return tslib_1.__generator(this, function (_a) {
1714
- switch (_a.label) {
1715
- case 0:
1716
- promises = foreignKeys.map(function (foreignKey) { return _this.dropForeignKey(tableOrName, foreignKey); });
1717
- return [4 /*yield*/, Promise.all(promises)];
1718
- case 1:
1719
- _a.sent();
1720
- return [2 /*return*/];
1721
- }
1722
- });
1723
- });
1724
- };
1230
+ async dropForeignKeys(tableOrName, foreignKeys) {
1231
+ const promises = foreignKeys.map((foreignKey) => this.dropForeignKey(tableOrName, foreignKey));
1232
+ await Promise.all(promises);
1233
+ }
1725
1234
  /**
1726
1235
  * Creates a new index.
1727
1236
  */
1728
- SqlServerQueryRunner.prototype.createIndex = function (tableOrName, index) {
1729
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1730
- var table, _a, up, down;
1731
- return tslib_1.__generator(this, function (_b) {
1732
- switch (_b.label) {
1733
- case 0:
1734
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1735
- _a = tableOrName;
1736
- return [3 /*break*/, 3];
1737
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1738
- case 2:
1739
- _a = _b.sent();
1740
- _b.label = 3;
1741
- case 3:
1742
- table = _a;
1743
- // new index may be passed without name. In this case we generate index name manually.
1744
- if (!index.name)
1745
- index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
1746
- up = this.createIndexSql(table, index);
1747
- down = this.dropIndexSql(table, index);
1748
- return [4 /*yield*/, this.executeQueries(up, down)];
1749
- case 4:
1750
- _b.sent();
1751
- table.addIndex(index);
1752
- return [2 /*return*/];
1753
- }
1754
- });
1755
- });
1756
- };
1237
+ async createIndex(tableOrName, index) {
1238
+ const table = InstanceChecker.isTable(tableOrName)
1239
+ ? tableOrName
1240
+ : await this.getCachedTable(tableOrName);
1241
+ // new index may be passed without name. In this case we generate index name manually.
1242
+ if (!index.name)
1243
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
1244
+ const up = this.createIndexSql(table, index);
1245
+ const down = this.dropIndexSql(table, index);
1246
+ await this.executeQueries(up, down);
1247
+ table.addIndex(index);
1248
+ }
1757
1249
  /**
1758
1250
  * Creates a new indices
1759
1251
  */
1760
- SqlServerQueryRunner.prototype.createIndices = function (tableOrName, indices) {
1761
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1762
- var promises;
1763
- var _this = this;
1764
- return tslib_1.__generator(this, function (_a) {
1765
- switch (_a.label) {
1766
- case 0:
1767
- promises = indices.map(function (index) { return _this.createIndex(tableOrName, index); });
1768
- return [4 /*yield*/, Promise.all(promises)];
1769
- case 1:
1770
- _a.sent();
1771
- return [2 /*return*/];
1772
- }
1773
- });
1774
- });
1775
- };
1252
+ async createIndices(tableOrName, indices) {
1253
+ const promises = indices.map((index) => this.createIndex(tableOrName, index));
1254
+ await Promise.all(promises);
1255
+ }
1776
1256
  /**
1777
1257
  * Drops an index.
1778
1258
  */
1779
- SqlServerQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) {
1780
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1781
- var table, _a, index, up, down;
1782
- return tslib_1.__generator(this, function (_b) {
1783
- switch (_b.label) {
1784
- case 0:
1785
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1786
- _a = tableOrName;
1787
- return [3 /*break*/, 3];
1788
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1789
- case 2:
1790
- _a = _b.sent();
1791
- _b.label = 3;
1792
- case 3:
1793
- table = _a;
1794
- index = indexOrName instanceof TableIndex ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; });
1795
- if (!index)
1796
- throw new Error("Supplied index was not found in table " + table.name);
1797
- up = this.dropIndexSql(table, index);
1798
- down = this.createIndexSql(table, index);
1799
- return [4 /*yield*/, this.executeQueries(up, down)];
1800
- case 4:
1801
- _b.sent();
1802
- table.removeIndex(index);
1803
- return [2 /*return*/];
1804
- }
1805
- });
1806
- });
1807
- };
1259
+ async dropIndex(tableOrName, indexOrName) {
1260
+ const table = InstanceChecker.isTable(tableOrName)
1261
+ ? tableOrName
1262
+ : await this.getCachedTable(tableOrName);
1263
+ const index = InstanceChecker.isTableIndex(indexOrName)
1264
+ ? indexOrName
1265
+ : table.indices.find((i) => i.name === indexOrName);
1266
+ if (!index)
1267
+ throw new TypeORMError(`Supplied index was not found in table ${table.name}`);
1268
+ const up = this.dropIndexSql(table, index);
1269
+ const down = this.createIndexSql(table, index);
1270
+ await this.executeQueries(up, down);
1271
+ table.removeIndex(index);
1272
+ }
1808
1273
  /**
1809
1274
  * Drops an indices from the table.
1810
1275
  */
1811
- SqlServerQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
1812
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1813
- var promises;
1814
- var _this = this;
1815
- return tslib_1.__generator(this, function (_a) {
1816
- switch (_a.label) {
1817
- case 0:
1818
- promises = indices.map(function (index) { return _this.dropIndex(tableOrName, index); });
1819
- return [4 /*yield*/, Promise.all(promises)];
1820
- case 1:
1821
- _a.sent();
1822
- return [2 /*return*/];
1823
- }
1824
- });
1825
- });
1826
- };
1276
+ async dropIndices(tableOrName, indices) {
1277
+ const promises = indices.map((index) => this.dropIndex(tableOrName, index));
1278
+ await Promise.all(promises);
1279
+ }
1827
1280
  /**
1828
1281
  * Clears all table contents.
1829
1282
  * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.
1830
1283
  */
1831
- SqlServerQueryRunner.prototype.clearTable = function (tablePath) {
1832
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1833
- return tslib_1.__generator(this, function (_a) {
1834
- switch (_a.label) {
1835
- case 0: return [4 /*yield*/, this.query("TRUNCATE TABLE " + this.escapePath(tablePath))];
1836
- case 1:
1837
- _a.sent();
1838
- return [2 /*return*/];
1839
- }
1840
- });
1841
- });
1842
- };
1284
+ async clearTable(tablePath) {
1285
+ await this.query(`TRUNCATE TABLE ${this.escapePath(tablePath)}`);
1286
+ }
1843
1287
  /**
1844
1288
  * Removes all tables from the currently connected database.
1845
1289
  */
1846
- SqlServerQueryRunner.prototype.clearDatabase = function (database) {
1847
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1848
- var isDatabaseExist, allViewsSql, allViewsResults, allTablesSql, allTablesResults, error_1, rollbackError_1;
1849
- var _this = this;
1850
- return tslib_1.__generator(this, function (_a) {
1851
- switch (_a.label) {
1852
- case 0:
1853
- if (!database) return [3 /*break*/, 2];
1854
- return [4 /*yield*/, this.hasDatabase(database)];
1855
- case 1:
1856
- isDatabaseExist = _a.sent();
1857
- if (!isDatabaseExist)
1858
- return [2 /*return*/, Promise.resolve()];
1859
- _a.label = 2;
1860
- case 2: return [4 /*yield*/, this.startTransaction()];
1861
- case 3:
1862
- _a.sent();
1863
- _a.label = 4;
1864
- case 4:
1865
- _a.trys.push([4, 11, , 16]);
1866
- allViewsSql = database
1867
- ? "SELECT * FROM \"" + database + "\".\"INFORMATION_SCHEMA\".\"VIEWS\""
1868
- : "SELECT * FROM \"INFORMATION_SCHEMA\".\"VIEWS\"";
1869
- return [4 /*yield*/, this.query(allViewsSql)];
1870
- case 5:
1871
- allViewsResults = _a.sent();
1872
- return [4 /*yield*/, Promise.all(allViewsResults.map(function (viewResult) {
1873
- // 'DROP VIEW' does not allow specifying the database name as a prefix to the object name.
1874
- var dropTableSql = "DROP VIEW \"" + viewResult["TABLE_SCHEMA"] + "\".\"" + viewResult["TABLE_NAME"] + "\"";
1875
- return _this.query(dropTableSql);
1876
- }))];
1877
- case 6:
1878
- _a.sent();
1879
- allTablesSql = database
1880
- ? "SELECT * FROM \"" + database + "\".\"INFORMATION_SCHEMA\".\"TABLES\" WHERE \"TABLE_TYPE\" = 'BASE TABLE'"
1881
- : "SELECT * FROM \"INFORMATION_SCHEMA\".\"TABLES\" WHERE \"TABLE_TYPE\" = 'BASE TABLE'";
1882
- return [4 /*yield*/, this.query(allTablesSql)];
1883
- case 7:
1884
- allTablesResults = _a.sent();
1885
- return [4 /*yield*/, Promise.all(allTablesResults.map(function (tablesResult) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
1886
- var dropForeignKeySql, dropFkQueries;
1887
- var _this = this;
1888
- return tslib_1.__generator(this, function (_a) {
1889
- switch (_a.label) {
1890
- case 0:
1891
- 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"] + "')) + '\" " +
1892
- ("DROP CONSTRAINT \"' + \"fk\".\"name\" + '\"' as \"query\" FROM \"" + tablesResult["TABLE_CATALOG"] + "\".\"sys\".\"foreign_keys\" AS \"fk\" ") +
1893
- ("WHERE \"fk\".\"referenced_object_id\" = OBJECT_ID('\"" + tablesResult["TABLE_CATALOG"] + "\".\"" + tablesResult["TABLE_SCHEMA"] + "\".\"" + tablesResult["TABLE_NAME"] + "\"')");
1894
- return [4 /*yield*/, this.query(dropForeignKeySql)];
1895
- case 1:
1896
- dropFkQueries = _a.sent();
1897
- return [2 /*return*/, Promise.all(dropFkQueries.map(function (result) { return result["query"]; }).map(function (dropQuery) { return _this.query(dropQuery); }))];
1898
- }
1899
- });
1900
- }); }))];
1901
- case 8:
1902
- _a.sent();
1903
- return [4 /*yield*/, Promise.all(allTablesResults.map(function (tablesResult) {
1904
- var dropTableSql = "DROP TABLE \"" + tablesResult["TABLE_CATALOG"] + "\".\"" + tablesResult["TABLE_SCHEMA"] + "\".\"" + tablesResult["TABLE_NAME"] + "\"";
1905
- return _this.query(dropTableSql);
1906
- }))];
1907
- case 9:
1908
- _a.sent();
1909
- return [4 /*yield*/, this.commitTransaction()];
1910
- case 10:
1911
- _a.sent();
1912
- return [3 /*break*/, 16];
1913
- case 11:
1914
- error_1 = _a.sent();
1915
- _a.label = 12;
1916
- case 12:
1917
- _a.trys.push([12, 14, , 15]);
1918
- return [4 /*yield*/, this.rollbackTransaction()];
1919
- case 13:
1920
- _a.sent();
1921
- return [3 /*break*/, 15];
1922
- case 14:
1923
- rollbackError_1 = _a.sent();
1924
- return [3 /*break*/, 15];
1925
- case 15: throw error_1;
1926
- case 16: return [2 /*return*/];
1927
- }
1928
- });
1929
- });
1930
- };
1290
+ async clearDatabase(database) {
1291
+ if (database) {
1292
+ const isDatabaseExist = await this.hasDatabase(database);
1293
+ if (!isDatabaseExist)
1294
+ return Promise.resolve();
1295
+ }
1296
+ const isAnotherTransactionActive = this.isTransactionActive;
1297
+ if (!isAnotherTransactionActive)
1298
+ await this.startTransaction();
1299
+ try {
1300
+ let allViewsSql = database
1301
+ ? `SELECT * FROM "${database}"."INFORMATION_SCHEMA"."VIEWS"`
1302
+ : `SELECT * FROM "INFORMATION_SCHEMA"."VIEWS"`;
1303
+ const allViewsResults = await this.query(allViewsSql);
1304
+ await Promise.all(allViewsResults.map((viewResult) => {
1305
+ // 'DROP VIEW' does not allow specifying the database name as a prefix to the object name.
1306
+ const dropTableSql = `DROP VIEW "${viewResult["TABLE_SCHEMA"]}"."${viewResult["TABLE_NAME"]}"`;
1307
+ return this.query(dropTableSql);
1308
+ }));
1309
+ let allTablesSql = database
1310
+ ? `SELECT * FROM "${database}"."INFORMATION_SCHEMA"."TABLES" WHERE "TABLE_TYPE" = 'BASE TABLE'`
1311
+ : `SELECT * FROM "INFORMATION_SCHEMA"."TABLES" WHERE "TABLE_TYPE" = 'BASE TABLE'`;
1312
+ const allTablesResults = await this.query(allTablesSql);
1313
+ if (allTablesResults.length > 0) {
1314
+ const tablesByCatalog = allTablesResults.reduce((c, { TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME }) => {
1315
+ c[TABLE_CATALOG] = c[TABLE_CATALOG] || [];
1316
+ c[TABLE_CATALOG].push({ TABLE_SCHEMA, TABLE_NAME });
1317
+ return c;
1318
+ }, {});
1319
+ const foreignKeysSql = Object.entries(tablesByCatalog)
1320
+ .map(([TABLE_CATALOG, tables]) => {
1321
+ const conditions = tables
1322
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1323
+ return `("fk"."referenced_object_id" = OBJECT_ID('"${TABLE_CATALOG}"."${TABLE_SCHEMA}"."${TABLE_NAME}"'))`;
1324
+ })
1325
+ .join(" OR ");
1326
+ return `
1327
+ SELECT DISTINCT '${TABLE_CATALOG}' AS "TABLE_CATALOG",
1328
+ OBJECT_SCHEMA_NAME("fk"."parent_object_id",
1329
+ DB_ID('${TABLE_CATALOG}')) AS "TABLE_SCHEMA",
1330
+ OBJECT_NAME("fk"."parent_object_id", DB_ID('${TABLE_CATALOG}')) AS "TABLE_NAME",
1331
+ "fk"."name" AS "CONSTRAINT_NAME"
1332
+ FROM "${TABLE_CATALOG}"."sys"."foreign_keys" AS "fk"
1333
+ WHERE (${conditions})
1334
+ `;
1335
+ })
1336
+ .join(" UNION ALL ");
1337
+ const foreignKeys = await this.query(foreignKeysSql);
1338
+ await Promise.all(foreignKeys.map(async ({ TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, CONSTRAINT_NAME, }) => {
1339
+ // Disable the constraint first.
1340
+ await this.query(`ALTER TABLE "${TABLE_CATALOG}"."${TABLE_SCHEMA}"."${TABLE_NAME}" ` +
1341
+ `NOCHECK CONSTRAINT "${CONSTRAINT_NAME}"`);
1342
+ await this.query(`ALTER TABLE "${TABLE_CATALOG}"."${TABLE_SCHEMA}"."${TABLE_NAME}" ` +
1343
+ `DROP CONSTRAINT "${CONSTRAINT_NAME}" -- FROM CLEAR`);
1344
+ }));
1345
+ await Promise.all(allTablesResults.map((tablesResult) => {
1346
+ if (tablesResult["TABLE_NAME"].startsWith("#")) {
1347
+ // don't try to drop temporary tables
1348
+ return;
1349
+ }
1350
+ const dropTableSql = `DROP TABLE "${tablesResult["TABLE_CATALOG"]}"."${tablesResult["TABLE_SCHEMA"]}"."${tablesResult["TABLE_NAME"]}"`;
1351
+ return this.query(dropTableSql);
1352
+ }));
1353
+ }
1354
+ if (!isAnotherTransactionActive)
1355
+ await this.commitTransaction();
1356
+ }
1357
+ catch (error) {
1358
+ try {
1359
+ // we throw original error even if rollback thrown an error
1360
+ if (!isAnotherTransactionActive)
1361
+ await this.rollbackTransaction();
1362
+ }
1363
+ catch (rollbackError) { }
1364
+ throw error;
1365
+ }
1366
+ }
1931
1367
  // -------------------------------------------------------------------------
1932
1368
  // Protected Methods
1933
1369
  // -------------------------------------------------------------------------
1934
- /**
1935
- * Return current database.
1936
- */
1937
- SqlServerQueryRunner.prototype.getCurrentDatabase = function () {
1938
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1939
- var currentDBQuery;
1940
- return tslib_1.__generator(this, function (_a) {
1941
- switch (_a.label) {
1942
- case 0: return [4 /*yield*/, this.query("SELECT DB_NAME() AS \"db_name\"")];
1943
- case 1:
1944
- currentDBQuery = _a.sent();
1945
- return [2 /*return*/, currentDBQuery[0]["db_name"]];
1946
- }
1947
- });
1948
- });
1949
- };
1950
- /**
1951
- * Return current schema.
1952
- */
1953
- SqlServerQueryRunner.prototype.getCurrentSchema = function () {
1954
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1955
- var currentSchemaQuery;
1956
- return tslib_1.__generator(this, function (_a) {
1957
- switch (_a.label) {
1958
- case 0: return [4 /*yield*/, this.query("SELECT SCHEMA_NAME() AS \"schema_name\"")];
1959
- case 1:
1960
- currentSchemaQuery = _a.sent();
1961
- return [2 /*return*/, currentSchemaQuery[0]["schema_name"]];
1962
- }
1963
- });
1964
- });
1965
- };
1966
- SqlServerQueryRunner.prototype.loadViews = function (viewPaths) {
1967
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1968
- var hasTable, currentSchema, currentDatabase, extractTableSchemaAndName, dbNames, viewsCondition, query, dbViews;
1969
- var _this = this;
1970
- return tslib_1.__generator(this, function (_a) {
1971
- switch (_a.label) {
1972
- case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())];
1973
- case 1:
1974
- hasTable = _a.sent();
1975
- if (!hasTable)
1976
- return [2 /*return*/, Promise.resolve([])];
1977
- return [4 /*yield*/, this.getCurrentSchema()];
1978
- case 2:
1979
- currentSchema = _a.sent();
1980
- return [4 /*yield*/, this.getCurrentDatabase()];
1981
- case 3:
1982
- currentDatabase = _a.sent();
1983
- extractTableSchemaAndName = function (tableName) {
1984
- var _a = tslib_1.__read(tableName.split("."), 3), database = _a[0], schema = _a[1], name = _a[2];
1985
- // if name is empty, it means that tableName have only schema name and table name or only table name
1986
- if (!name) {
1987
- // if schema is empty, it means tableName have only name of a table. Otherwise it means that we have "schemaName"."tableName" string.
1988
- if (!schema) {
1989
- name = database;
1990
- schema = _this.driver.options.schema || currentSchema;
1991
- }
1992
- else {
1993
- name = schema;
1994
- schema = database;
1995
- }
1996
- }
1997
- else if (schema === "") {
1998
- schema = _this.driver.options.schema || currentSchema;
1999
- }
2000
- return [schema, name];
2001
- };
2002
- dbNames = viewPaths
2003
- .filter(function (viewPath) { return viewPath.split(".").length === 3; })
2004
- .map(function (viewPath) { return viewPath.split(".")[0]; });
2005
- if (this.driver.database && !dbNames.find(function (dbName) { return dbName === _this.driver.database; }))
2006
- dbNames.push(this.driver.database);
2007
- viewsCondition = viewPaths.map(function (viewPath) {
2008
- var _a = tslib_1.__read(extractTableSchemaAndName(viewPath), 2), schema = _a[0], name = _a[1];
2009
- return "(\"T\".\"SCHEMA\" = '" + schema + "' AND \"T\".\"NAME\" = '" + name + "')";
2010
- }).join(" OR ");
2011
- query = dbNames.map(function (dbName) {
2012
- return "SELECT \"T\".*, \"V\".\"CHECK_OPTION\" FROM " + _this.escapePath(_this.getTypeormMetadataTableName()) + " \"t\" " +
2013
- ("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 + ")" : ""));
2014
- }).join(" UNION ALL ");
2015
- return [4 /*yield*/, this.query(query)];
2016
- case 4:
2017
- dbViews = _a.sent();
2018
- return [2 /*return*/, dbViews.map(function (dbView) {
2019
- var view = new View();
2020
- var db = dbView["TABLE_CATALOG"] === currentDatabase ? undefined : dbView["TABLE_CATALOG"];
2021
- var schema = dbView["schema"] === currentSchema && !_this.driver.options.schema ? undefined : dbView["schema"];
2022
- view.name = _this.driver.buildTableName(dbView["name"], schema, db);
2023
- view.expression = dbView["value"];
2024
- return view;
2025
- })];
2026
- }
2027
- });
1370
+ async loadViews(viewPaths) {
1371
+ const hasTable = await this.hasTable(this.getTypeormMetadataTableName());
1372
+ if (!hasTable) {
1373
+ return [];
1374
+ }
1375
+ if (!viewPaths) {
1376
+ viewPaths = [];
1377
+ }
1378
+ const currentSchema = await this.getCurrentSchema();
1379
+ const currentDatabase = await this.getCurrentDatabase();
1380
+ const dbNames = viewPaths
1381
+ .map((viewPath) => this.driver.parseTableName(viewPath).database)
1382
+ .filter((database) => database);
1383
+ if (this.driver.database &&
1384
+ !dbNames.find((dbName) => dbName === this.driver.database))
1385
+ dbNames.push(this.driver.database);
1386
+ const viewsCondition = viewPaths
1387
+ .map((viewPath) => {
1388
+ let { schema, tableName: name } = this.driver.parseTableName(viewPath);
1389
+ if (!schema) {
1390
+ schema = currentSchema;
1391
+ }
1392
+ return `("T"."SCHEMA" = '${schema}' AND "T"."NAME" = '${name}')`;
1393
+ })
1394
+ .join(" OR ");
1395
+ const query = dbNames
1396
+ .map((dbName) => {
1397
+ return (`SELECT "T".*, "V"."CHECK_OPTION" FROM ${this.escapePath(this.getTypeormMetadataTableName())} "t" ` +
1398
+ `INNER JOIN "${dbName}"."INFORMATION_SCHEMA"."VIEWS" "V" ON "V"."TABLE_SCHEMA" = "T"."SCHEMA" AND "v"."TABLE_NAME" = "T"."NAME" WHERE "T"."TYPE" = '${MetadataTableType.VIEW}' ${viewsCondition ? `AND (${viewsCondition})` : ""}`);
1399
+ })
1400
+ .join(" UNION ALL ");
1401
+ const dbViews = await this.query(query);
1402
+ return dbViews.map((dbView) => {
1403
+ const view = new View();
1404
+ const db = dbView["TABLE_CATALOG"] === currentDatabase
1405
+ ? undefined
1406
+ : dbView["TABLE_CATALOG"];
1407
+ const schema = dbView["schema"] === currentSchema &&
1408
+ !this.driver.options.schema
1409
+ ? undefined
1410
+ : dbView["schema"];
1411
+ view.database = dbView["TABLE_CATALOG"];
1412
+ view.schema = dbView["schema"];
1413
+ view.name = this.driver.buildTableName(dbView["name"], schema, db);
1414
+ view.expression = dbView["value"];
1415
+ return view;
2028
1416
  });
2029
- };
1417
+ }
2030
1418
  /**
2031
1419
  * Loads all tables (with given names) from the database and creates a Table from them.
2032
1420
  */
2033
- SqlServerQueryRunner.prototype.loadTables = function (tableNames) {
2034
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2035
- var schemaNames, currentSchema, currentDatabase, extractTableSchemaAndName, dbNames, schemaNamesString, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, foreignKeysSql, identityColumnsSql, dbCollationsSql, indicesSql, _a, dbTables, dbColumns, dbConstraints, dbForeignKeys, dbIdentityColumns, dbCollations, dbIndices;
2036
- var _this = this;
2037
- return tslib_1.__generator(this, function (_b) {
2038
- switch (_b.label) {
2039
- case 0:
2040
- // if no tables given then no need to proceed
2041
- if (!tableNames || !tableNames.length)
2042
- return [2 /*return*/, []];
2043
- schemaNames = [];
2044
- return [4 /*yield*/, this.getCurrentSchema()];
2045
- case 1:
2046
- currentSchema = _b.sent();
2047
- return [4 /*yield*/, this.getCurrentDatabase()];
2048
- case 2:
2049
- currentDatabase = _b.sent();
2050
- extractTableSchemaAndName = function (tableName) {
2051
- var _a = tslib_1.__read(tableName.split("."), 3), database = _a[0], schema = _a[1], name = _a[2];
2052
- // if name is empty, it means that tableName have only schema name and table name or only table name
2053
- if (!name) {
2054
- // if schema is empty, it means tableName have only name of a table. Otherwise it means that we have "schemaName"."tableName" string.
2055
- if (!schema) {
2056
- name = database;
2057
- schema = _this.driver.options.schema || currentSchema;
2058
- }
2059
- else {
2060
- name = schema;
2061
- schema = database;
1421
+ async loadTables(tableNames) {
1422
+ // if no tables given then no need to proceed
1423
+ if (tableNames && tableNames.length === 0) {
1424
+ return [];
1425
+ }
1426
+ const currentSchema = await this.getCurrentSchema();
1427
+ const currentDatabase = await this.getCurrentDatabase();
1428
+ const dbTables = [];
1429
+ if (!tableNames) {
1430
+ const databasesSql = `
1431
+ SELECT DISTINCT
1432
+ "name"
1433
+ FROM "master"."dbo"."sysdatabases"
1434
+ WHERE "name" NOT IN ('master', 'model', 'msdb')
1435
+ `;
1436
+ const dbDatabases = await this.query(databasesSql);
1437
+ const tablesSql = dbDatabases
1438
+ .map(({ name }) => {
1439
+ return `
1440
+ SELECT DISTINCT
1441
+ "TABLE_CATALOG", "TABLE_SCHEMA", "TABLE_NAME"
1442
+ FROM "${name}"."INFORMATION_SCHEMA"."TABLES"
1443
+ WHERE
1444
+ "TABLE_TYPE" = 'BASE TABLE'
1445
+ AND
1446
+ "TABLE_CATALOG" = '${name}'
1447
+ AND
1448
+ ISNULL(Objectproperty(Object_id("TABLE_CATALOG" + '.' + "TABLE_SCHEMA" + '.' + "TABLE_NAME"), 'IsMSShipped'), 0) = 0
1449
+ `;
1450
+ })
1451
+ .join(" UNION ALL ");
1452
+ dbTables.push(...(await this.query(tablesSql)));
1453
+ }
1454
+ else {
1455
+ const tableNamesByCatalog = tableNames
1456
+ .map((tableName) => this.driver.parseTableName(tableName))
1457
+ .reduce((c, { database, ...other }) => {
1458
+ database = database || currentDatabase;
1459
+ c[database] = c[database] || [];
1460
+ c[database].push({
1461
+ schema: other.schema || currentSchema,
1462
+ tableName: other.tableName,
1463
+ });
1464
+ return c;
1465
+ }, {});
1466
+ const tablesSql = Object.entries(tableNamesByCatalog)
1467
+ .map(([database, tables]) => {
1468
+ const tablesCondition = tables
1469
+ .map(({ schema, tableName }) => {
1470
+ return `("TABLE_SCHEMA" = '${schema}' AND "TABLE_NAME" = '${tableName}')`;
1471
+ })
1472
+ .join(" OR ");
1473
+ return `
1474
+ SELECT DISTINCT
1475
+ "TABLE_CATALOG", "TABLE_SCHEMA", "TABLE_NAME"
1476
+ FROM "${database}"."INFORMATION_SCHEMA"."TABLES"
1477
+ WHERE
1478
+ "TABLE_TYPE" = 'BASE TABLE' AND
1479
+ "TABLE_CATALOG" = '${database}' AND
1480
+ ${tablesCondition}
1481
+ `;
1482
+ })
1483
+ .join(" UNION ALL ");
1484
+ dbTables.push(...(await this.query(tablesSql)));
1485
+ }
1486
+ // if tables were not found in the db, no need to proceed
1487
+ if (dbTables.length === 0) {
1488
+ return [];
1489
+ }
1490
+ const dbTablesByCatalog = dbTables.reduce((c, { TABLE_CATALOG, ...other }) => {
1491
+ c[TABLE_CATALOG] = c[TABLE_CATALOG] || [];
1492
+ c[TABLE_CATALOG].push(other);
1493
+ return c;
1494
+ }, {});
1495
+ const columnsSql = Object.entries(dbTablesByCatalog)
1496
+ .map(([TABLE_CATALOG, tables]) => {
1497
+ const condition = tables
1498
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => `("TABLE_SCHEMA" = '${TABLE_SCHEMA}' AND "TABLE_NAME" = '${TABLE_NAME}')`)
1499
+ .join("OR");
1500
+ return `SELECT * FROM "${TABLE_CATALOG}"."INFORMATION_SCHEMA"."COLUMNS" WHERE (${condition})`;
1501
+ })
1502
+ .join(" UNION ALL ");
1503
+ const constraintsSql = Object.entries(dbTablesByCatalog)
1504
+ .map(([TABLE_CATALOG, tables]) => {
1505
+ const conditions = tables
1506
+ .map(({ TABLE_NAME, TABLE_SCHEMA }) => `("columnUsages"."TABLE_SCHEMA" = '${TABLE_SCHEMA}' AND "columnUsages"."TABLE_NAME" = '${TABLE_NAME}')`)
1507
+ .join(" OR ");
1508
+ return (`SELECT "columnUsages".*, "tableConstraints"."CONSTRAINT_TYPE", "chk"."definition" ` +
1509
+ `FROM "${TABLE_CATALOG}"."INFORMATION_SCHEMA"."CONSTRAINT_COLUMN_USAGE" "columnUsages" ` +
1510
+ `INNER JOIN "${TABLE_CATALOG}"."INFORMATION_SCHEMA"."TABLE_CONSTRAINTS" "tableConstraints" ` +
1511
+ `ON ` +
1512
+ `"tableConstraints"."CONSTRAINT_NAME" = "columnUsages"."CONSTRAINT_NAME" AND ` +
1513
+ `"tableConstraints"."TABLE_SCHEMA" = "columnUsages"."TABLE_SCHEMA" AND ` +
1514
+ `"tableConstraints"."TABLE_NAME" = "columnUsages"."TABLE_NAME" ` +
1515
+ `LEFT JOIN "${TABLE_CATALOG}"."sys"."check_constraints" "chk" ` +
1516
+ `ON ` +
1517
+ `"chk"."object_id" = OBJECT_ID("columnUsages"."TABLE_CATALOG" + '.' + "columnUsages"."TABLE_SCHEMA" + '.' + "columnUsages"."CONSTRAINT_NAME") ` +
1518
+ `WHERE ` +
1519
+ `(${conditions}) AND ` +
1520
+ `"tableConstraints"."CONSTRAINT_TYPE" IN ('PRIMARY KEY', 'UNIQUE', 'CHECK')`);
1521
+ })
1522
+ .join(" UNION ALL ");
1523
+ const foreignKeysSql = Object.entries(dbTablesByCatalog)
1524
+ .map(([TABLE_CATALOG, tables]) => {
1525
+ const conditions = tables
1526
+ .map(({ TABLE_NAME, TABLE_SCHEMA }) => `("s1"."name" = '${TABLE_SCHEMA}' AND "t1"."name" = '${TABLE_NAME}')`)
1527
+ .join(" OR ");
1528
+ return (`SELECT "fk"."name" AS "FK_NAME", '${TABLE_CATALOG}' AS "TABLE_CATALOG", "s1"."name" AS "TABLE_SCHEMA", "t1"."name" AS "TABLE_NAME", ` +
1529
+ `"col1"."name" AS "COLUMN_NAME", "s2"."name" AS "REF_SCHEMA", "t2"."name" AS "REF_TABLE", "col2"."name" AS "REF_COLUMN", ` +
1530
+ `"fk"."delete_referential_action_desc" AS "ON_DELETE", "fk"."update_referential_action_desc" AS "ON_UPDATE" ` +
1531
+ `FROM "${TABLE_CATALOG}"."sys"."foreign_keys" "fk" ` +
1532
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."foreign_key_columns" "fkc" ON "fkc"."constraint_object_id" = "fk"."object_id" ` +
1533
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."tables" "t1" ON "t1"."object_id" = "fk"."parent_object_id" ` +
1534
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."schemas" "s1" ON "s1"."schema_id" = "t1"."schema_id" ` +
1535
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."tables" "t2" ON "t2"."object_id" = "fk"."referenced_object_id" ` +
1536
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."schemas" "s2" ON "s2"."schema_id" = "t2"."schema_id" ` +
1537
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."columns" "col1" ON "col1"."column_id" = "fkc"."parent_column_id" AND "col1"."object_id" = "fk"."parent_object_id" ` +
1538
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."columns" "col2" ON "col2"."column_id" = "fkc"."referenced_column_id" AND "col2"."object_id" = "fk"."referenced_object_id" ` +
1539
+ `WHERE (${conditions})`);
1540
+ })
1541
+ .join(" UNION ALL ");
1542
+ const identityColumnsSql = Object.entries(dbTablesByCatalog)
1543
+ .map(([TABLE_CATALOG, tables]) => {
1544
+ const conditions = tables
1545
+ .map(({ TABLE_NAME, TABLE_SCHEMA }) => `("TABLE_SCHEMA" = '${TABLE_SCHEMA}' AND "TABLE_NAME" = '${TABLE_NAME}')`)
1546
+ .join(" OR ");
1547
+ return (`SELECT "TABLE_CATALOG", "TABLE_SCHEMA", "COLUMN_NAME", "TABLE_NAME" ` +
1548
+ `FROM "${TABLE_CATALOG}"."INFORMATION_SCHEMA"."COLUMNS" ` +
1549
+ `WHERE ` +
1550
+ `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 ` +
1551
+ `(${conditions})`);
1552
+ })
1553
+ .join(" UNION ALL ");
1554
+ const dbCollationsSql = `SELECT "NAME", "COLLATION_NAME" FROM "sys"."databases"`;
1555
+ const indicesSql = Object.entries(dbTablesByCatalog)
1556
+ .map(([TABLE_CATALOG, tables]) => {
1557
+ const conditions = tables
1558
+ .map(({ TABLE_NAME, TABLE_SCHEMA }) => `("s"."name" = '${TABLE_SCHEMA}' AND "t"."name" = '${TABLE_NAME}')`)
1559
+ .join(" OR ");
1560
+ return (`SELECT '${TABLE_CATALOG}' AS "TABLE_CATALOG", "s"."name" AS "TABLE_SCHEMA", "t"."name" AS "TABLE_NAME", ` +
1561
+ `"ind"."name" AS "INDEX_NAME", "col"."name" AS "COLUMN_NAME", "ind"."is_unique" AS "IS_UNIQUE", "ind"."filter_definition" as "CONDITION" ` +
1562
+ `FROM "${TABLE_CATALOG}"."sys"."indexes" "ind" ` +
1563
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."index_columns" "ic" ON "ic"."object_id" = "ind"."object_id" AND "ic"."index_id" = "ind"."index_id" ` +
1564
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."columns" "col" ON "col"."object_id" = "ic"."object_id" AND "col"."column_id" = "ic"."column_id" ` +
1565
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."tables" "t" ON "t"."object_id" = "ind"."object_id" ` +
1566
+ `INNER JOIN "${TABLE_CATALOG}"."sys"."schemas" "s" ON "s"."schema_id" = "t"."schema_id" ` +
1567
+ `WHERE ` +
1568
+ `"ind"."is_primary_key" = 0 AND "ind"."is_unique_constraint" = 0 AND "t"."is_ms_shipped" = 0 AND ` +
1569
+ `(${conditions})`);
1570
+ })
1571
+ .join(" UNION ALL ");
1572
+ const [dbColumns, dbConstraints, dbForeignKeys, dbIdentityColumns, dbCollations, dbIndices,] = await Promise.all([
1573
+ this.query(columnsSql),
1574
+ this.query(constraintsSql),
1575
+ this.query(foreignKeysSql),
1576
+ this.query(identityColumnsSql),
1577
+ this.query(dbCollationsSql),
1578
+ this.query(indicesSql),
1579
+ ]);
1580
+ // create table schemas for loaded tables
1581
+ return await Promise.all(dbTables.map(async (dbTable) => {
1582
+ const table = new Table();
1583
+ const getSchemaFromKey = (dbObject, key) => {
1584
+ return dbObject[key] === currentSchema &&
1585
+ (!this.driver.options.schema ||
1586
+ this.driver.options.schema === currentSchema)
1587
+ ? undefined
1588
+ : dbObject[key];
1589
+ };
1590
+ // We do not need to join schema and database names, when db or schema is by default.
1591
+ const db = dbTable["TABLE_CATALOG"] === currentDatabase
1592
+ ? undefined
1593
+ : dbTable["TABLE_CATALOG"];
1594
+ const schema = getSchemaFromKey(dbTable, "TABLE_SCHEMA");
1595
+ table.database = dbTable["TABLE_CATALOG"];
1596
+ table.schema = dbTable["TABLE_SCHEMA"];
1597
+ table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], schema, db);
1598
+ const defaultCollation = dbCollations.find((dbCollation) => dbCollation["NAME"] === dbTable["TABLE_CATALOG"]);
1599
+ // create columns from the loaded columns
1600
+ table.columns = dbColumns
1601
+ .filter((dbColumn) => dbColumn["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1602
+ dbColumn["TABLE_SCHEMA"] ===
1603
+ dbTable["TABLE_SCHEMA"] &&
1604
+ dbColumn["TABLE_CATALOG"] ===
1605
+ dbTable["TABLE_CATALOG"])
1606
+ .map((dbColumn) => {
1607
+ const columnConstraints = dbConstraints.filter((dbConstraint) => dbConstraint["TABLE_NAME"] ===
1608
+ dbColumn["TABLE_NAME"] &&
1609
+ dbConstraint["TABLE_SCHEMA"] ===
1610
+ dbColumn["TABLE_SCHEMA"] &&
1611
+ dbConstraint["TABLE_CATALOG"] ===
1612
+ dbColumn["TABLE_CATALOG"] &&
1613
+ dbConstraint["COLUMN_NAME"] ===
1614
+ dbColumn["COLUMN_NAME"]);
1615
+ const uniqueConstraints = columnConstraints.filter((constraint) => constraint["CONSTRAINT_TYPE"] === "UNIQUE");
1616
+ const isConstraintComposite = uniqueConstraints.every((uniqueConstraint) => {
1617
+ return dbConstraints.some((dbConstraint) => dbConstraint["CONSTRAINT_TYPE"] ===
1618
+ "UNIQUE" &&
1619
+ dbConstraint["CONSTRAINT_NAME"] ===
1620
+ uniqueConstraint["CONSTRAINT_NAME"] &&
1621
+ dbConstraint["TABLE_SCHEMA"] ===
1622
+ dbColumn["TABLE_SCHEMA"] &&
1623
+ dbConstraint["TABLE_CATALOG"] ===
1624
+ dbColumn["TABLE_CATALOG"] &&
1625
+ dbConstraint["COLUMN_NAME"] !==
1626
+ dbColumn["COLUMN_NAME"]);
1627
+ });
1628
+ const isPrimary = !!columnConstraints.find((constraint) => constraint["CONSTRAINT_TYPE"] === "PRIMARY KEY");
1629
+ const isGenerated = !!dbIdentityColumns.find((column) => column["TABLE_NAME"] ===
1630
+ dbColumn["TABLE_NAME"] &&
1631
+ column["TABLE_SCHEMA"] ===
1632
+ dbColumn["TABLE_SCHEMA"] &&
1633
+ column["TABLE_CATALOG"] ===
1634
+ dbColumn["TABLE_CATALOG"] &&
1635
+ column["COLUMN_NAME"] ===
1636
+ dbColumn["COLUMN_NAME"]);
1637
+ const tableColumn = new TableColumn();
1638
+ tableColumn.name = dbColumn["COLUMN_NAME"];
1639
+ tableColumn.type = dbColumn["DATA_TYPE"].toLowerCase();
1640
+ // check only columns that have length property
1641
+ if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 &&
1642
+ dbColumn["CHARACTER_MAXIMUM_LENGTH"]) {
1643
+ const length = dbColumn["CHARACTER_MAXIMUM_LENGTH"].toString();
1644
+ if (length === "-1") {
1645
+ tableColumn.length = "MAX";
1646
+ }
1647
+ else {
1648
+ tableColumn.length =
1649
+ !this.isDefaultColumnLength(table, tableColumn, length)
1650
+ ? length
1651
+ : "";
1652
+ }
1653
+ }
1654
+ if (tableColumn.type === "decimal" ||
1655
+ tableColumn.type === "numeric") {
1656
+ if (dbColumn["NUMERIC_PRECISION"] !== null &&
1657
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["NUMERIC_PRECISION"]))
1658
+ tableColumn.precision =
1659
+ dbColumn["NUMERIC_PRECISION"];
1660
+ if (dbColumn["NUMERIC_SCALE"] !== null &&
1661
+ !this.isDefaultColumnScale(table, tableColumn, dbColumn["NUMERIC_SCALE"]))
1662
+ tableColumn.scale = dbColumn["NUMERIC_SCALE"];
1663
+ }
1664
+ if (tableColumn.type === "nvarchar") {
1665
+ // Check if this is an enum
1666
+ const columnCheckConstraints = columnConstraints.filter((constraint) => constraint["CONSTRAINT_TYPE"] ===
1667
+ "CHECK");
1668
+ if (columnCheckConstraints.length) {
1669
+ // const isEnumRegexp = new RegExp("^\\(\\[" + tableColumn.name + "\\]='[^']+'(?: OR \\[" + tableColumn.name + "\\]='[^']+')*\\)$");
1670
+ for (const checkConstraint of columnCheckConstraints) {
1671
+ if (this.isEnumCheckConstraint(checkConstraint["CONSTRAINT_NAME"])) {
1672
+ // This is an enum constraint, make column into an enum
1673
+ tableColumn.enum = [];
1674
+ const enumValueRegexp = new RegExp("\\[" +
1675
+ tableColumn.name +
1676
+ "\\]='([^']+)'", "g");
1677
+ let result;
1678
+ while ((result = enumValueRegexp.exec(checkConstraint["definition"])) !== null) {
1679
+ tableColumn.enum.unshift(result[1]);
2062
1680
  }
1681
+ // Skip other column constraints
1682
+ break;
2063
1683
  }
2064
- else if (schema === "") {
2065
- schema = _this.driver.options.schema || currentSchema;
2066
- }
2067
- return [schema, name];
2068
- };
2069
- tableNames.filter(function (tablePath) { return tablePath.indexOf(".") !== -1; })
2070
- .forEach(function (tablePath) {
2071
- if (tablePath.split(".").length === 3) {
2072
- if (tablePath.split(".")[1] !== "")
2073
- schemaNames.push(tablePath.split(".")[1]);
2074
- }
2075
- else {
2076
- schemaNames.push(tablePath.split(".")[0]);
2077
- }
2078
- });
2079
- schemaNames.push(this.driver.options.schema || currentSchema);
2080
- dbNames = tableNames
2081
- .filter(function (tablePath) { return tablePath.split(".").length === 3; })
2082
- .map(function (tablePath) { return tablePath.split(".")[0]; });
2083
- if (this.driver.database && !dbNames.find(function (dbName) { return dbName === _this.driver.database; }))
2084
- dbNames.push(this.driver.database);
2085
- schemaNamesString = schemaNames.map(function (name) { return "'" + name + "'"; }).join(", ");
2086
- tablesCondition = tableNames.map(function (tableName) {
2087
- var _a = tslib_1.__read(extractTableSchemaAndName(tableName), 2), schema = _a[0], name = _a[1];
2088
- return "(\"TABLE_SCHEMA\" = '" + schema + "' AND \"TABLE_NAME\" = '" + name + "')";
2089
- }).join(" OR ");
2090
- tablesSql = dbNames.map(function (dbName) {
2091
- return "SELECT * FROM \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"TABLES\" WHERE " + tablesCondition;
2092
- }).join(" UNION ALL ");
2093
- columnsSql = dbNames.map(function (dbName) {
2094
- return "SELECT * FROM \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"COLUMNS\" WHERE " + tablesCondition;
2095
- }).join(" UNION ALL ");
2096
- constraintsCondition = tableNames.map(function (tableName) {
2097
- var _a = tslib_1.__read(extractTableSchemaAndName(tableName), 2), schema = _a[0], name = _a[1];
2098
- return "(\"columnUsages\".\"TABLE_SCHEMA\" = '" + schema + "' AND \"columnUsages\".\"TABLE_NAME\" = '" + name + "' " +
2099
- ("AND \"tableConstraints\".\"TABLE_SCHEMA\" = '" + schema + "' AND \"tableConstraints\".\"TABLE_NAME\" = '" + name + "')");
2100
- }).join(" OR ");
2101
- constraintsSql = dbNames.map(function (dbName) {
2102
- return "SELECT \"columnUsages\".*, \"tableConstraints\".\"CONSTRAINT_TYPE\", \"chk\".\"definition\" " +
2103
- ("FROM \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"CONSTRAINT_COLUMN_USAGE\" \"columnUsages\" ") +
2104
- ("INNER JOIN \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"TABLE_CONSTRAINTS\" \"tableConstraints\" ON \"tableConstraints\".\"CONSTRAINT_NAME\" = \"columnUsages\".\"CONSTRAINT_NAME\" ") +
2105
- ("LEFT JOIN \"" + dbName + "\".\"sys\".\"check_constraints\" \"chk\" ON \"chk\".\"name\" = \"columnUsages\".\"CONSTRAINT_NAME\" ") +
2106
- ("WHERE (" + constraintsCondition + ") AND \"tableConstraints\".\"CONSTRAINT_TYPE\" IN ('PRIMARY KEY', 'UNIQUE', 'CHECK')");
2107
- }).join(" UNION ALL ");
2108
- foreignKeysSql = dbNames.map(function (dbName) {
2109
- return "SELECT \"fk\".\"name\" AS \"FK_NAME\", '" + dbName + "' AS \"TABLE_CATALOG\", \"s1\".\"name\" AS \"TABLE_SCHEMA\", \"t1\".\"name\" AS \"TABLE_NAME\", " +
2110
- "\"col1\".\"name\" AS \"COLUMN_NAME\", \"s2\".\"name\" AS \"REF_SCHEMA\", \"t2\".\"name\" AS \"REF_TABLE\", \"col2\".\"name\" AS \"REF_COLUMN\", " +
2111
- "\"fk\".\"delete_referential_action_desc\" AS \"ON_DELETE\", \"fk\".\"update_referential_action_desc\" AS \"ON_UPDATE\" " +
2112
- ("FROM \"" + dbName + "\".\"sys\".\"foreign_keys\" \"fk\" ") +
2113
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"foreign_key_columns\" \"fkc\" ON \"fkc\".\"constraint_object_id\" = \"fk\".\"object_id\" ") +
2114
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"tables\" \"t1\" ON \"t1\".\"object_id\" = \"fk\".\"parent_object_id\" ") +
2115
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"schemas\" \"s1\" ON \"s1\".\"schema_id\" = \"t1\".\"schema_id\" ") +
2116
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"tables\" \"t2\" ON \"t2\".\"object_id\" = \"fk\".\"referenced_object_id\" ") +
2117
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"schemas\" \"s2\" ON \"s2\".\"schema_id\" = \"t2\".\"schema_id\" ") +
2118
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"columns\" \"col1\" ON \"col1\".\"column_id\" = \"fkc\".\"parent_column_id\" AND \"col1\".\"object_id\" = \"fk\".\"parent_object_id\" ") +
2119
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"columns\" \"col2\" ON \"col2\".\"column_id\" = \"fkc\".\"referenced_column_id\" AND \"col2\".\"object_id\" = \"fk\".\"referenced_object_id\"");
2120
- }).join(" UNION ALL ");
2121
- identityColumnsSql = dbNames.map(function (dbName) {
2122
- return "SELECT \"TABLE_CATALOG\", \"TABLE_SCHEMA\", \"COLUMN_NAME\", \"TABLE_NAME\" " +
2123
- ("FROM \"" + dbName + "\".\"INFORMATION_SCHEMA\".\"COLUMNS\" ") +
2124
- ("WHERE COLUMNPROPERTY(object_id(\"TABLE_CATALOG\" + '.' + \"TABLE_SCHEMA\" + '.' + \"TABLE_NAME\"), \"COLUMN_NAME\", 'IsIdentity') = 1 AND \"TABLE_SCHEMA\" IN (" + schemaNamesString + ")");
2125
- }).join(" UNION ALL ");
2126
- dbCollationsSql = "SELECT \"NAME\", \"COLLATION_NAME\" FROM \"sys\".\"databases\"";
2127
- indicesSql = dbNames.map(function (dbName) {
2128
- return "SELECT '" + dbName + "' AS \"TABLE_CATALOG\", \"s\".\"name\" AS \"TABLE_SCHEMA\", \"t\".\"name\" AS \"TABLE_NAME\", " +
2129
- "\"ind\".\"name\" AS \"INDEX_NAME\", \"col\".\"name\" AS \"COLUMN_NAME\", \"ind\".\"is_unique\" AS \"IS_UNIQUE\", \"ind\".\"filter_definition\" as \"CONDITION\" " +
2130
- ("FROM \"" + dbName + "\".\"sys\".\"indexes\" \"ind\" ") +
2131
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"index_columns\" \"ic\" ON \"ic\".\"object_id\" = \"ind\".\"object_id\" AND \"ic\".\"index_id\" = \"ind\".\"index_id\" ") +
2132
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"columns\" \"col\" ON \"col\".\"object_id\" = \"ic\".\"object_id\" AND \"col\".\"column_id\" = \"ic\".\"column_id\" ") +
2133
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"tables\" \"t\" ON \"t\".\"object_id\" = \"ind\".\"object_id\" ") +
2134
- ("INNER JOIN \"" + dbName + "\".\"sys\".\"schemas\" \"s\" ON \"s\".\"schema_id\" = \"t\".\"schema_id\" ") +
2135
- "WHERE \"ind\".\"is_primary_key\" = 0 AND \"ind\".\"is_unique_constraint\" = 0 AND \"t\".\"is_ms_shipped\" = 0";
2136
- }).join(" UNION ALL ");
2137
- return [4 /*yield*/, Promise.all([
2138
- this.query(tablesSql),
2139
- this.query(columnsSql),
2140
- this.query(constraintsSql),
2141
- this.query(foreignKeysSql),
2142
- this.query(identityColumnsSql),
2143
- this.query(dbCollationsSql),
2144
- this.query(indicesSql),
2145
- ])];
2146
- case 3:
2147
- _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];
2148
- // if tables were not found in the db, no need to proceed
2149
- if (!dbTables.length)
2150
- return [2 /*return*/, []];
2151
- return [4 /*yield*/, Promise.all(dbTables.map(function (dbTable) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
2152
- var table, db, schema, tableFullName, defaultCollation, tableUniqueConstraints, tableCheckConstraints, tableForeignKeyConstraints, tableIndexConstraints;
2153
- var _this = this;
2154
- return tslib_1.__generator(this, function (_a) {
2155
- table = new Table();
2156
- db = dbTable["TABLE_CATALOG"] === currentDatabase ? undefined : dbTable["TABLE_CATALOG"];
2157
- schema = dbTable["TABLE_SCHEMA"] === currentSchema && !this.driver.options.schema ? undefined : dbTable["TABLE_SCHEMA"];
2158
- table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], schema, db);
2159
- tableFullName = this.driver.buildTableName(dbTable["TABLE_NAME"], dbTable["TABLE_SCHEMA"], dbTable["TABLE_CATALOG"]);
2160
- defaultCollation = dbCollations.find(function (dbCollation) { return dbCollation["NAME"] === dbTable["TABLE_CATALOG"]; });
2161
- // create columns from the loaded columns
2162
- table.columns = dbColumns
2163
- .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn["TABLE_NAME"], dbColumn["TABLE_SCHEMA"], dbColumn["TABLE_CATALOG"]) === tableFullName; })
2164
- .map(function (dbColumn) {
2165
- var e_1, _a;
2166
- var columnConstraints = dbConstraints.filter(function (dbConstraint) {
2167
- return _this.driver.buildTableName(dbConstraint["TABLE_NAME"], dbConstraint["CONSTRAINT_SCHEMA"], dbConstraint["CONSTRAINT_CATALOG"]) === tableFullName
2168
- && dbConstraint["COLUMN_NAME"] === dbColumn["COLUMN_NAME"];
2169
- });
2170
- var uniqueConstraint = columnConstraints.find(function (constraint) { return constraint["CONSTRAINT_TYPE"] === "UNIQUE"; });
2171
- var isConstraintComposite = uniqueConstraint
2172
- ? !!dbConstraints.find(function (dbConstraint) { return dbConstraint["CONSTRAINT_TYPE"] === "UNIQUE"
2173
- && dbConstraint["CONSTRAINT_NAME"] === uniqueConstraint["CONSTRAINT_NAME"]
2174
- && dbConstraint["COLUMN_NAME"] !== dbColumn["COLUMN_NAME"]; })
2175
- : false;
2176
- var isPrimary = !!columnConstraints.find(function (constraint) { return constraint["CONSTRAINT_TYPE"] === "PRIMARY KEY"; });
2177
- var isGenerated = !!dbIdentityColumns.find(function (column) {
2178
- return _this.driver.buildTableName(column["TABLE_NAME"], column["TABLE_SCHEMA"], column["TABLE_CATALOG"]) === tableFullName
2179
- && column["COLUMN_NAME"] === dbColumn["COLUMN_NAME"];
2180
- });
2181
- var tableColumn = new TableColumn();
2182
- tableColumn.name = dbColumn["COLUMN_NAME"];
2183
- tableColumn.type = dbColumn["DATA_TYPE"].toLowerCase();
2184
- // check only columns that have length property
2185
- if (_this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 && dbColumn["CHARACTER_MAXIMUM_LENGTH"]) {
2186
- var length_1 = dbColumn["CHARACTER_MAXIMUM_LENGTH"].toString();
2187
- if (length_1 === "-1") {
2188
- tableColumn.length = "MAX";
2189
- }
2190
- else {
2191
- tableColumn.length = !_this.isDefaultColumnLength(table, tableColumn, length_1) ? length_1 : "";
2192
- }
2193
- }
2194
- if (tableColumn.type === "decimal" || tableColumn.type === "numeric") {
2195
- if (dbColumn["NUMERIC_PRECISION"] !== null && !_this.isDefaultColumnPrecision(table, tableColumn, dbColumn["NUMERIC_PRECISION"]))
2196
- tableColumn.precision = dbColumn["NUMERIC_PRECISION"];
2197
- if (dbColumn["NUMERIC_SCALE"] !== null && !_this.isDefaultColumnScale(table, tableColumn, dbColumn["NUMERIC_SCALE"]))
2198
- tableColumn.scale = dbColumn["NUMERIC_SCALE"];
2199
- }
2200
- if (tableColumn.type === "nvarchar") {
2201
- // Check if this is an enum
2202
- var columnCheckConstraints = columnConstraints.filter(function (constraint) { return constraint["CONSTRAINT_TYPE"] === "CHECK"; });
2203
- if (columnCheckConstraints.length) {
2204
- var isEnumRegexp = new RegExp("^\\(\\[" + tableColumn.name + "\\]='[^']+'(?: OR \\[" + tableColumn.name + "\\]='[^']+')*\\)$");
2205
- try {
2206
- for (var columnCheckConstraints_1 = tslib_1.__values(columnCheckConstraints), columnCheckConstraints_1_1 = columnCheckConstraints_1.next(); !columnCheckConstraints_1_1.done; columnCheckConstraints_1_1 = columnCheckConstraints_1.next()) {
2207
- var checkConstraint = columnCheckConstraints_1_1.value;
2208
- if (isEnumRegexp.test(checkConstraint["definition"])) {
2209
- // This is an enum constraint, make column into an enum
2210
- tableColumn.type = "simple-enum";
2211
- tableColumn.enum = [];
2212
- var enumValueRegexp = new RegExp("\\[" + tableColumn.name + "\\]='([^']+)'", "g");
2213
- var result = void 0;
2214
- while ((result = enumValueRegexp.exec(checkConstraint["definition"])) !== null) {
2215
- tableColumn.enum.unshift(result[1]);
2216
- }
2217
- // Skip other column constraints
2218
- break;
2219
- }
2220
- }
2221
- }
2222
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
2223
- finally {
2224
- try {
2225
- if (columnCheckConstraints_1_1 && !columnCheckConstraints_1_1.done && (_a = columnCheckConstraints_1.return)) _a.call(columnCheckConstraints_1);
2226
- }
2227
- finally { if (e_1) throw e_1.error; }
2228
- }
2229
- }
2230
- }
2231
- tableColumn.default = dbColumn["COLUMN_DEFAULT"] !== null && dbColumn["COLUMN_DEFAULT"] !== undefined
2232
- ? _this.removeParenthesisFromDefault(dbColumn["COLUMN_DEFAULT"])
2233
- : undefined;
2234
- tableColumn.isNullable = dbColumn["IS_NULLABLE"] === "YES";
2235
- tableColumn.isPrimary = isPrimary;
2236
- tableColumn.isUnique = !!uniqueConstraint && !isConstraintComposite;
2237
- tableColumn.isGenerated = isGenerated;
2238
- if (isGenerated)
2239
- tableColumn.generationStrategy = "increment";
2240
- if (tableColumn.default === "newsequentialid()") {
2241
- tableColumn.isGenerated = true;
2242
- tableColumn.generationStrategy = "uuid";
2243
- tableColumn.default = undefined;
2244
- }
2245
- // todo: unable to get default charset
2246
- // tableColumn.charset = dbColumn["CHARACTER_SET_NAME"];
2247
- tableColumn.collation = dbColumn["COLLATION_NAME"] === defaultCollation["COLLATION_NAME"] ? undefined : dbColumn["COLLATION_NAME"];
2248
- if (tableColumn.type === "datetime2" || tableColumn.type === "time" || tableColumn.type === "datetimeoffset") {
2249
- tableColumn.precision = !_this.isDefaultColumnPrecision(table, tableColumn, dbColumn["DATETIME_PRECISION"]) ? dbColumn["DATETIME_PRECISION"] : undefined;
2250
- }
2251
- return tableColumn;
2252
- });
2253
- tableUniqueConstraints = OrmUtils.uniq(dbConstraints.filter(function (dbConstraint) {
2254
- return _this.driver.buildTableName(dbConstraint["TABLE_NAME"], dbConstraint["CONSTRAINT_SCHEMA"], dbConstraint["CONSTRAINT_CATALOG"]) === tableFullName
2255
- && dbConstraint["CONSTRAINT_TYPE"] === "UNIQUE";
2256
- }), function (dbConstraint) { return dbConstraint["CONSTRAINT_NAME"]; });
2257
- table.uniques = tableUniqueConstraints.map(function (constraint) {
2258
- var uniques = dbConstraints.filter(function (dbC) { return dbC["CONSTRAINT_NAME"] === constraint["CONSTRAINT_NAME"]; });
2259
- return new TableUnique({
2260
- name: constraint["CONSTRAINT_NAME"],
2261
- columnNames: uniques.map(function (u) { return u["COLUMN_NAME"]; })
2262
- });
2263
- });
2264
- tableCheckConstraints = OrmUtils.uniq(dbConstraints.filter(function (dbConstraint) {
2265
- return _this.driver.buildTableName(dbConstraint["TABLE_NAME"], dbConstraint["CONSTRAINT_SCHEMA"], dbConstraint["CONSTRAINT_CATALOG"]) === tableFullName
2266
- && dbConstraint["CONSTRAINT_TYPE"] === "CHECK";
2267
- }), function (dbConstraint) { return dbConstraint["CONSTRAINT_NAME"]; });
2268
- table.checks = tableCheckConstraints.map(function (constraint) {
2269
- var checks = dbConstraints.filter(function (dbC) { return dbC["CONSTRAINT_NAME"] === constraint["CONSTRAINT_NAME"]; });
2270
- return new TableCheck({
2271
- name: constraint["CONSTRAINT_NAME"],
2272
- columnNames: checks.map(function (c) { return c["COLUMN_NAME"]; }),
2273
- expression: constraint["definition"]
2274
- });
2275
- });
2276
- tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter(function (dbForeignKey) {
2277
- return _this.driver.buildTableName(dbForeignKey["TABLE_NAME"], dbForeignKey["TABLE_SCHEMA"], dbForeignKey["TABLE_CATALOG"]) === tableFullName;
2278
- }), function (dbForeignKey) { return dbForeignKey["FK_NAME"]; });
2279
- table.foreignKeys = tableForeignKeyConstraints.map(function (dbForeignKey) {
2280
- var foreignKeys = dbForeignKeys.filter(function (dbFk) { return dbFk["FK_NAME"] === dbForeignKey["FK_NAME"]; });
2281
- // if referenced table located in currently used db and schema, we don't need to concat db and schema names to table name.
2282
- var db = dbForeignKey["TABLE_CATALOG"] === currentDatabase ? undefined : dbForeignKey["TABLE_CATALOG"];
2283
- var schema = dbForeignKey["REF_SCHEMA"] === currentSchema ? undefined : dbForeignKey["REF_SCHEMA"];
2284
- var referencedTableName = _this.driver.buildTableName(dbForeignKey["REF_TABLE"], schema, db);
2285
- return new TableForeignKey({
2286
- name: dbForeignKey["FK_NAME"],
2287
- columnNames: foreignKeys.map(function (dbFk) { return dbFk["COLUMN_NAME"]; }),
2288
- referencedTableName: referencedTableName,
2289
- referencedColumnNames: foreignKeys.map(function (dbFk) { return dbFk["REF_COLUMN"]; }),
2290
- onDelete: dbForeignKey["ON_DELETE"].replace("_", " "),
2291
- onUpdate: dbForeignKey["ON_UPDATE"].replace("_", " ") // SqlServer returns NO_ACTION, instead of NO ACTION
2292
- });
2293
- });
2294
- tableIndexConstraints = OrmUtils.uniq(dbIndices.filter(function (dbIndex) {
2295
- return _this.driver.buildTableName(dbIndex["TABLE_NAME"], dbIndex["TABLE_SCHEMA"], dbIndex["TABLE_CATALOG"]) === tableFullName;
2296
- }), function (dbIndex) { return dbIndex["INDEX_NAME"]; });
2297
- table.indices = tableIndexConstraints.map(function (constraint) {
2298
- var indices = dbIndices.filter(function (index) {
2299
- return index["TABLE_CATALOG"] === constraint["TABLE_CATALOG"]
2300
- && index["TABLE_SCHEMA"] === constraint["TABLE_SCHEMA"]
2301
- && index["TABLE_NAME"] === constraint["TABLE_NAME"]
2302
- && index["INDEX_NAME"] === constraint["INDEX_NAME"];
2303
- });
2304
- return new TableIndex({
2305
- table: table,
2306
- name: constraint["INDEX_NAME"],
2307
- columnNames: indices.map(function (i) { return i["COLUMN_NAME"]; }),
2308
- isUnique: constraint["IS_UNIQUE"],
2309
- where: constraint["CONDITION"]
2310
- });
2311
- });
2312
- return [2 /*return*/, table];
2313
- });
2314
- }); }))];
2315
- case 4:
2316
- // create table schemas for loaded tables
2317
- return [2 /*return*/, _b.sent()];
1684
+ }
1685
+ }
1686
+ }
1687
+ tableColumn.default =
1688
+ dbColumn["COLUMN_DEFAULT"] !== null &&
1689
+ dbColumn["COLUMN_DEFAULT"] !== undefined
1690
+ ? this.removeParenthesisFromDefault(dbColumn["COLUMN_DEFAULT"])
1691
+ : undefined;
1692
+ tableColumn.isNullable =
1693
+ dbColumn["IS_NULLABLE"] === "YES";
1694
+ tableColumn.isPrimary = isPrimary;
1695
+ tableColumn.isUnique =
1696
+ uniqueConstraints.length > 0 &&
1697
+ !isConstraintComposite;
1698
+ tableColumn.isGenerated = isGenerated;
1699
+ if (isGenerated)
1700
+ tableColumn.generationStrategy = "increment";
1701
+ if (tableColumn.default === "newsequentialid()") {
1702
+ tableColumn.isGenerated = true;
1703
+ tableColumn.generationStrategy = "uuid";
1704
+ tableColumn.default = undefined;
1705
+ }
1706
+ // todo: unable to get default charset
1707
+ // tableColumn.charset = dbColumn["CHARACTER_SET_NAME"];
1708
+ if (dbColumn["COLLATION_NAME"])
1709
+ tableColumn.collation =
1710
+ dbColumn["COLLATION_NAME"] ===
1711
+ defaultCollation["COLLATION_NAME"]
1712
+ ? undefined
1713
+ : dbColumn["COLLATION_NAME"];
1714
+ if (tableColumn.type === "datetime2" ||
1715
+ tableColumn.type === "time" ||
1716
+ tableColumn.type === "datetimeoffset") {
1717
+ tableColumn.precision =
1718
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["DATETIME_PRECISION"])
1719
+ ? dbColumn["DATETIME_PRECISION"]
1720
+ : undefined;
2318
1721
  }
1722
+ return tableColumn;
2319
1723
  });
2320
- });
2321
- };
1724
+ // find unique constraints of table, group them by constraint name and build TableUnique.
1725
+ const tableUniqueConstraints = OrmUtils.uniq(dbConstraints.filter((dbConstraint) => dbConstraint["TABLE_NAME"] ===
1726
+ dbTable["TABLE_NAME"] &&
1727
+ dbConstraint["TABLE_SCHEMA"] ===
1728
+ dbTable["TABLE_SCHEMA"] &&
1729
+ dbConstraint["TABLE_CATALOG"] ===
1730
+ dbTable["TABLE_CATALOG"] &&
1731
+ dbConstraint["CONSTRAINT_TYPE"] === "UNIQUE"), (dbConstraint) => dbConstraint["CONSTRAINT_NAME"]);
1732
+ table.uniques = tableUniqueConstraints.map((constraint) => {
1733
+ const uniques = dbConstraints.filter((dbC) => dbC["CONSTRAINT_NAME"] ===
1734
+ constraint["CONSTRAINT_NAME"]);
1735
+ return new TableUnique({
1736
+ name: constraint["CONSTRAINT_NAME"],
1737
+ columnNames: uniques.map((u) => u["COLUMN_NAME"]),
1738
+ });
1739
+ });
1740
+ // find check constraints of table, group them by constraint name and build TableCheck.
1741
+ const tableCheckConstraints = OrmUtils.uniq(dbConstraints.filter((dbConstraint) => dbConstraint["TABLE_NAME"] ===
1742
+ dbTable["TABLE_NAME"] &&
1743
+ dbConstraint["TABLE_SCHEMA"] ===
1744
+ dbTable["TABLE_SCHEMA"] &&
1745
+ dbConstraint["TABLE_CATALOG"] ===
1746
+ dbTable["TABLE_CATALOG"] &&
1747
+ dbConstraint["CONSTRAINT_TYPE"] === "CHECK"), (dbConstraint) => dbConstraint["CONSTRAINT_NAME"]);
1748
+ table.checks = tableCheckConstraints
1749
+ .filter((constraint) => !this.isEnumCheckConstraint(constraint["CONSTRAINT_NAME"]))
1750
+ .map((constraint) => {
1751
+ const checks = dbConstraints.filter((dbC) => dbC["CONSTRAINT_NAME"] ===
1752
+ constraint["CONSTRAINT_NAME"]);
1753
+ return new TableCheck({
1754
+ name: constraint["CONSTRAINT_NAME"],
1755
+ columnNames: checks.map((c) => c["COLUMN_NAME"]),
1756
+ expression: constraint["definition"],
1757
+ });
1758
+ });
1759
+ // find foreign key constraints of table, group them by constraint name and build TableForeignKey.
1760
+ const tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter((dbForeignKey) => dbForeignKey["TABLE_NAME"] ===
1761
+ dbTable["TABLE_NAME"] &&
1762
+ dbForeignKey["TABLE_SCHEMA"] ===
1763
+ dbTable["TABLE_SCHEMA"] &&
1764
+ dbForeignKey["TABLE_CATALOG"] ===
1765
+ dbTable["TABLE_CATALOG"]), (dbForeignKey) => dbForeignKey["FK_NAME"]);
1766
+ table.foreignKeys = tableForeignKeyConstraints.map((dbForeignKey) => {
1767
+ const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["FK_NAME"] === dbForeignKey["FK_NAME"]);
1768
+ // if referenced table located in currently used db and schema, we don't need to concat db and schema names to table name.
1769
+ const db = dbForeignKey["TABLE_CATALOG"] === currentDatabase
1770
+ ? undefined
1771
+ : dbForeignKey["TABLE_CATALOG"];
1772
+ const schema = getSchemaFromKey(dbForeignKey, "REF_SCHEMA");
1773
+ const referencedTableName = this.driver.buildTableName(dbForeignKey["REF_TABLE"], schema, db);
1774
+ return new TableForeignKey({
1775
+ name: dbForeignKey["FK_NAME"],
1776
+ columnNames: foreignKeys.map((dbFk) => dbFk["COLUMN_NAME"]),
1777
+ referencedDatabase: dbForeignKey["TABLE_CATALOG"],
1778
+ referencedSchema: dbForeignKey["REF_SCHEMA"],
1779
+ referencedTableName: referencedTableName,
1780
+ referencedColumnNames: foreignKeys.map((dbFk) => dbFk["REF_COLUMN"]),
1781
+ onDelete: dbForeignKey["ON_DELETE"].replace("_", " "),
1782
+ onUpdate: dbForeignKey["ON_UPDATE"].replace("_", " "), // SqlServer returns NO_ACTION, instead of NO ACTION
1783
+ });
1784
+ });
1785
+ // find index constraints of table, group them by constraint name and build TableIndex.
1786
+ const tableIndexConstraints = OrmUtils.uniq(dbIndices.filter((dbIndex) => dbIndex["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1787
+ dbIndex["TABLE_SCHEMA"] ===
1788
+ dbTable["TABLE_SCHEMA"] &&
1789
+ dbIndex["TABLE_CATALOG"] ===
1790
+ dbTable["TABLE_CATALOG"]), (dbIndex) => dbIndex["INDEX_NAME"]);
1791
+ table.indices = tableIndexConstraints.map((constraint) => {
1792
+ const indices = dbIndices.filter((index) => {
1793
+ return (index["TABLE_CATALOG"] ===
1794
+ constraint["TABLE_CATALOG"] &&
1795
+ index["TABLE_SCHEMA"] ===
1796
+ constraint["TABLE_SCHEMA"] &&
1797
+ index["TABLE_NAME"] === constraint["TABLE_NAME"] &&
1798
+ index["INDEX_NAME"] === constraint["INDEX_NAME"]);
1799
+ });
1800
+ return new TableIndex({
1801
+ table: table,
1802
+ name: constraint["INDEX_NAME"],
1803
+ columnNames: indices.map((i) => i["COLUMN_NAME"]),
1804
+ isUnique: constraint["IS_UNIQUE"],
1805
+ where: constraint["CONDITION"],
1806
+ });
1807
+ });
1808
+ return table;
1809
+ }));
1810
+ }
2322
1811
  /**
2323
1812
  * Builds and returns SQL for create table.
2324
1813
  */
2325
- SqlServerQueryRunner.prototype.createTableSql = function (table, createForeignKeys) {
2326
- var _this = this;
2327
- var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(table, column, false, true); }).join(", ");
2328
- var sql = "CREATE TABLE " + this.escapePath(table) + " (" + columnDefinitions;
1814
+ createTableSql(table, createForeignKeys) {
1815
+ const columnDefinitions = table.columns
1816
+ .map((column) => this.buildCreateColumnSql(table, column, false, true))
1817
+ .join(", ");
1818
+ let sql = `CREATE TABLE ${this.escapePath(table)} (${columnDefinitions}`;
2329
1819
  table.columns
2330
- .filter(function (column) { return column.isUnique; })
2331
- .forEach(function (column) {
2332
- var isUniqueExist = table.uniques.some(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });
1820
+ .filter((column) => column.isUnique)
1821
+ .forEach((column) => {
1822
+ const isUniqueExist = table.uniques.some((unique) => unique.columnNames.length === 1 &&
1823
+ unique.columnNames[0] === column.name);
2333
1824
  if (!isUniqueExist)
2334
1825
  table.uniques.push(new TableUnique({
2335
- name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),
2336
- columnNames: [column.name]
1826
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
1827
+ columnNames: [column.name],
2337
1828
  }));
2338
1829
  });
2339
1830
  if (table.uniques.length > 0) {
2340
- var uniquesSql = table.uniques.map(function (unique) {
2341
- var uniqueName = unique.name ? unique.name : _this.connection.namingStrategy.uniqueConstraintName(table.name, unique.columnNames);
2342
- var columnNames = unique.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2343
- return "CONSTRAINT \"" + uniqueName + "\" UNIQUE (" + columnNames + ")";
2344
- }).join(", ");
2345
- sql += ", " + uniquesSql;
1831
+ const uniquesSql = table.uniques
1832
+ .map((unique) => {
1833
+ const uniqueName = unique.name
1834
+ ? unique.name
1835
+ : this.connection.namingStrategy.uniqueConstraintName(table, unique.columnNames);
1836
+ const columnNames = unique.columnNames
1837
+ .map((columnName) => `"${columnName}"`)
1838
+ .join(", ");
1839
+ return `CONSTRAINT "${uniqueName}" UNIQUE (${columnNames})`;
1840
+ })
1841
+ .join(", ");
1842
+ sql += `, ${uniquesSql}`;
2346
1843
  }
2347
1844
  if (table.checks.length > 0) {
2348
- var checksSql = table.checks.map(function (check) {
2349
- var checkName = check.name ? check.name : _this.connection.namingStrategy.checkConstraintName(table.name, check.expression);
2350
- return "CONSTRAINT \"" + checkName + "\" CHECK (" + check.expression + ")";
2351
- }).join(", ");
2352
- sql += ", " + checksSql;
1845
+ const checksSql = table.checks
1846
+ .map((check) => {
1847
+ const checkName = check.name
1848
+ ? check.name
1849
+ : this.connection.namingStrategy.checkConstraintName(table, check.expression);
1850
+ return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
1851
+ })
1852
+ .join(", ");
1853
+ sql += `, ${checksSql}`;
2353
1854
  }
2354
1855
  if (table.foreignKeys.length > 0 && createForeignKeys) {
2355
- var foreignKeysSql = table.foreignKeys.map(function (fk) {
2356
- var columnNames = fk.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
1856
+ const foreignKeysSql = table.foreignKeys
1857
+ .map((fk) => {
1858
+ const columnNames = fk.columnNames
1859
+ .map((columnName) => `"${columnName}"`)
1860
+ .join(", ");
2357
1861
  if (!fk.name)
2358
- fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames);
2359
- var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2360
- var constraint = "CONSTRAINT \"" + fk.name + "\" FOREIGN KEY (" + columnNames + ") REFERENCES " + _this.escapePath(fk.referencedTableName) + " (" + referencedColumnNames + ")";
1862
+ fk.name = this.connection.namingStrategy.foreignKeyName(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
1863
+ const referencedColumnNames = fk.referencedColumnNames
1864
+ .map((columnName) => `"${columnName}"`)
1865
+ .join(", ");
1866
+ let constraint = `CONSTRAINT "${fk.name}" FOREIGN KEY (${columnNames}) REFERENCES ${this.escapePath(this.getTablePath(fk))} (${referencedColumnNames})`;
2361
1867
  if (fk.onDelete)
2362
- constraint += " ON DELETE " + fk.onDelete;
1868
+ constraint += ` ON DELETE ${fk.onDelete}`;
2363
1869
  if (fk.onUpdate)
2364
- constraint += " ON UPDATE " + fk.onUpdate;
1870
+ constraint += ` ON UPDATE ${fk.onUpdate}`;
2365
1871
  return constraint;
2366
- }).join(", ");
2367
- sql += ", " + foreignKeysSql;
1872
+ })
1873
+ .join(", ");
1874
+ sql += `, ${foreignKeysSql}`;
2368
1875
  }
2369
- var primaryColumns = table.columns.filter(function (column) { return column.isPrimary; });
1876
+ const primaryColumns = table.columns.filter((column) => column.isPrimary);
2370
1877
  if (primaryColumns.length > 0) {
2371
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, primaryColumns.map(function (column) { return column.name; }));
2372
- var columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
2373
- sql += ", CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNames + ")";
1878
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
1879
+ const columnNames = primaryColumns
1880
+ .map((column) => `"${column.name}"`)
1881
+ .join(", ");
1882
+ sql += `, CONSTRAINT "${primaryKeyName}" PRIMARY KEY (${columnNames})`;
2374
1883
  }
2375
- sql += ")";
1884
+ sql += `)`;
2376
1885
  return new Query(sql);
2377
- };
1886
+ }
2378
1887
  /**
2379
1888
  * Builds drop table sql.
2380
1889
  */
2381
- SqlServerQueryRunner.prototype.dropTableSql = function (tableOrName, ifExist) {
2382
- var query = ifExist ? "DROP TABLE IF EXISTS " + this.escapePath(tableOrName) : "DROP TABLE " + this.escapePath(tableOrName);
1890
+ dropTableSql(tableOrName, ifExist) {
1891
+ const query = ifExist
1892
+ ? `DROP TABLE IF EXISTS ${this.escapePath(tableOrName)}`
1893
+ : `DROP TABLE ${this.escapePath(tableOrName)}`;
2383
1894
  return new Query(query);
2384
- };
2385
- SqlServerQueryRunner.prototype.createViewSql = function (view) {
1895
+ }
1896
+ createViewSql(view) {
1897
+ const parsedName = this.driver.parseTableName(view);
1898
+ // Can't use `escapePath` here because `CREATE VIEW` does not accept database names.
1899
+ const viewIdentifier = parsedName.schema
1900
+ ? `"${parsedName.schema}"."${parsedName.tableName}"`
1901
+ : `"${parsedName.tableName}"`;
2386
1902
  if (typeof view.expression === "string") {
2387
- return new Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression);
1903
+ return new Query(`CREATE VIEW ${viewIdentifier} AS ${view.expression}`);
2388
1904
  }
2389
1905
  else {
2390
- return new Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression(this.connection).getQuery());
2391
- }
2392
- };
2393
- SqlServerQueryRunner.prototype.insertViewDefinitionSql = function (view) {
2394
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2395
- var currentSchema, parsedTableName, expression, _a, query, parameters;
2396
- return tslib_1.__generator(this, function (_b) {
2397
- switch (_b.label) {
2398
- case 0: return [4 /*yield*/, this.getCurrentSchema()];
2399
- case 1:
2400
- currentSchema = _b.sent();
2401
- parsedTableName = this.parseTableName(view, currentSchema);
2402
- expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery();
2403
- _a = tslib_1.__read(this.connection.createQueryBuilder()
2404
- .insert()
2405
- .into(this.getTypeormMetadataTableName())
2406
- .values({ type: "VIEW", database: parsedTableName.database, schema: parsedTableName.schema, name: parsedTableName.name, value: expression })
2407
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
2408
- return [2 /*return*/, new Query(query, parameters)];
2409
- }
2410
- });
1906
+ return new Query(`CREATE VIEW ${viewIdentifier} AS ${view
1907
+ .expression(this.connection)
1908
+ .getQuery()}`);
1909
+ }
1910
+ }
1911
+ async insertViewDefinitionSql(view) {
1912
+ const parsedTableName = this.driver.parseTableName(view);
1913
+ if (!parsedTableName.schema) {
1914
+ parsedTableName.schema = await this.getCurrentSchema();
1915
+ }
1916
+ const expression = typeof view.expression === "string"
1917
+ ? view.expression.trim()
1918
+ : view.expression(this.connection).getQuery();
1919
+ return this.insertTypeormMetadataSql({
1920
+ type: MetadataTableType.VIEW,
1921
+ database: parsedTableName.database,
1922
+ schema: parsedTableName.schema,
1923
+ name: parsedTableName.tableName,
1924
+ value: expression,
2411
1925
  });
2412
- };
1926
+ }
2413
1927
  /**
2414
1928
  * Builds drop view sql.
2415
1929
  */
2416
- SqlServerQueryRunner.prototype.dropViewSql = function (viewOrPath) {
2417
- return new Query("DROP VIEW " + this.escapePath(viewOrPath));
2418
- };
1930
+ dropViewSql(viewOrPath) {
1931
+ return new Query(`DROP VIEW ${this.escapePath(viewOrPath)}`);
1932
+ }
2419
1933
  /**
2420
1934
  * Builds remove view sql.
2421
1935
  */
2422
- SqlServerQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) {
2423
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2424
- var currentSchema, parsedTableName, qb, _a, query, parameters;
2425
- return tslib_1.__generator(this, function (_b) {
2426
- switch (_b.label) {
2427
- case 0: return [4 /*yield*/, this.getCurrentSchema()];
2428
- case 1:
2429
- currentSchema = _b.sent();
2430
- parsedTableName = this.parseTableName(viewOrPath, currentSchema);
2431
- qb = this.connection.createQueryBuilder();
2432
- _a = tslib_1.__read(qb.delete()
2433
- .from(this.getTypeormMetadataTableName())
2434
- .where(qb.escape("type") + " = 'VIEW'")
2435
- .andWhere(qb.escape("database") + " = :database", { database: parsedTableName.database })
2436
- .andWhere(qb.escape("schema") + " = :schema", { schema: parsedTableName.schema })
2437
- .andWhere(qb.escape("name") + " = :name", { name: parsedTableName.name })
2438
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
2439
- return [2 /*return*/, new Query(query, parameters)];
2440
- }
2441
- });
1936
+ async deleteViewDefinitionSql(viewOrPath) {
1937
+ const parsedTableName = this.driver.parseTableName(viewOrPath);
1938
+ if (!parsedTableName.schema) {
1939
+ parsedTableName.schema = await this.getCurrentSchema();
1940
+ }
1941
+ return this.deleteTypeormMetadataSql({
1942
+ type: MetadataTableType.VIEW,
1943
+ database: parsedTableName.database,
1944
+ schema: parsedTableName.schema,
1945
+ name: parsedTableName.tableName,
2442
1946
  });
2443
- };
1947
+ }
2444
1948
  /**
2445
1949
  * Builds create index sql.
2446
1950
  */
2447
- SqlServerQueryRunner.prototype.createIndexSql = function (table, index) {
2448
- var columns = index.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2449
- return new Query("CREATE " + (index.isUnique ? "UNIQUE " : "") + "INDEX \"" + index.name + "\" ON " + this.escapePath(table) + " (" + columns + ") " + (index.where ? "WHERE " + index.where : ""));
2450
- };
1951
+ createIndexSql(table, index) {
1952
+ const columns = index.columnNames
1953
+ .map((columnName) => `"${columnName}"`)
1954
+ .join(", ");
1955
+ return new Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} (${columns}) ${index.where ? "WHERE " + index.where : ""}`);
1956
+ }
2451
1957
  /**
2452
1958
  * Builds drop index sql.
2453
1959
  */
2454
- SqlServerQueryRunner.prototype.dropIndexSql = function (table, indexOrName) {
2455
- var indexName = indexOrName instanceof TableIndex ? indexOrName.name : indexOrName;
2456
- return new Query("DROP INDEX \"" + indexName + "\" ON " + this.escapePath(table));
2457
- };
1960
+ dropIndexSql(table, indexOrName) {
1961
+ let indexName = InstanceChecker.isTableIndex(indexOrName)
1962
+ ? indexOrName.name
1963
+ : indexOrName;
1964
+ return new Query(`DROP INDEX "${indexName}" ON ${this.escapePath(table)}`);
1965
+ }
2458
1966
  /**
2459
1967
  * Builds create primary key sql.
2460
1968
  */
2461
- SqlServerQueryRunner.prototype.createPrimaryKeySql = function (table, columnNames) {
2462
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames);
2463
- var columnNamesString = columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2464
- return new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNamesString + ")");
2465
- };
1969
+ createPrimaryKeySql(table, columnNames) {
1970
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
1971
+ const columnNamesString = columnNames
1972
+ .map((columnName) => `"${columnName}"`)
1973
+ .join(", ");
1974
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${primaryKeyName}" PRIMARY KEY (${columnNamesString})`);
1975
+ }
2466
1976
  /**
2467
1977
  * Builds drop primary key sql.
2468
1978
  */
2469
- SqlServerQueryRunner.prototype.dropPrimaryKeySql = function (table) {
2470
- var columnNames = table.primaryColumns.map(function (column) { return column.name; });
2471
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames);
2472
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + primaryKeyName + "\"");
2473
- };
1979
+ dropPrimaryKeySql(table) {
1980
+ const columnNames = table.primaryColumns.map((column) => column.name);
1981
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
1982
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
1983
+ }
2474
1984
  /**
2475
1985
  * Builds create unique constraint sql.
2476
1986
  */
2477
- SqlServerQueryRunner.prototype.createUniqueConstraintSql = function (table, uniqueConstraint) {
2478
- var columnNames = uniqueConstraint.columnNames.map(function (column) { return "\"" + column + "\""; }).join(", ");
2479
- return new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (" + columnNames + ")");
2480
- };
1987
+ createUniqueConstraintSql(table, uniqueConstraint) {
1988
+ const columnNames = uniqueConstraint.columnNames
1989
+ .map((column) => `"` + column + `"`)
1990
+ .join(", ");
1991
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE (${columnNames})`);
1992
+ }
2481
1993
  /**
2482
1994
  * Builds drop unique constraint sql.
2483
1995
  */
2484
- SqlServerQueryRunner.prototype.dropUniqueConstraintSql = function (table, uniqueOrName) {
2485
- var uniqueName = uniqueOrName instanceof TableUnique ? uniqueOrName.name : uniqueOrName;
2486
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueName + "\"");
2487
- };
1996
+ dropUniqueConstraintSql(table, uniqueOrName) {
1997
+ const uniqueName = InstanceChecker.isTableUnique(uniqueOrName)
1998
+ ? uniqueOrName.name
1999
+ : uniqueOrName;
2000
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueName}"`);
2001
+ }
2488
2002
  /**
2489
2003
  * Builds create check constraint sql.
2490
2004
  */
2491
- SqlServerQueryRunner.prototype.createCheckConstraintSql = function (table, checkConstraint) {
2492
- return new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + checkConstraint.name + "\" CHECK (" + checkConstraint.expression + ")");
2493
- };
2005
+ createCheckConstraintSql(table, checkConstraint) {
2006
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${checkConstraint.name}" CHECK (${checkConstraint.expression})`);
2007
+ }
2494
2008
  /**
2495
2009
  * Builds drop check constraint sql.
2496
2010
  */
2497
- SqlServerQueryRunner.prototype.dropCheckConstraintSql = function (table, checkOrName) {
2498
- var checkName = checkOrName instanceof TableCheck ? checkOrName.name : checkOrName;
2499
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + checkName + "\"");
2500
- };
2011
+ dropCheckConstraintSql(table, checkOrName) {
2012
+ const checkName = InstanceChecker.isTableCheck(checkOrName)
2013
+ ? checkOrName.name
2014
+ : checkOrName;
2015
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${checkName}"`);
2016
+ }
2501
2017
  /**
2502
2018
  * Builds create foreign key sql.
2503
2019
  */
2504
- SqlServerQueryRunner.prototype.createForeignKeySql = function (table, foreignKey) {
2505
- var columnNames = foreignKey.columnNames.map(function (column) { return "\"" + column + "\""; }).join(", ");
2506
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "\"" + column + "\""; }).join(",");
2507
- var sql = "ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + foreignKey.name + "\" FOREIGN KEY (" + columnNames + ") " +
2508
- ("REFERENCES " + this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
2020
+ createForeignKeySql(table, foreignKey) {
2021
+ const columnNames = foreignKey.columnNames
2022
+ .map((column) => `"` + column + `"`)
2023
+ .join(", ");
2024
+ const referencedColumnNames = foreignKey.referencedColumnNames
2025
+ .map((column) => `"` + column + `"`)
2026
+ .join(",");
2027
+ let sql = `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${foreignKey.name}" FOREIGN KEY (${columnNames}) ` +
2028
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
2509
2029
  if (foreignKey.onDelete)
2510
- sql += " ON DELETE " + foreignKey.onDelete;
2030
+ sql += ` ON DELETE ${foreignKey.onDelete}`;
2511
2031
  if (foreignKey.onUpdate)
2512
- sql += " ON UPDATE " + foreignKey.onUpdate;
2032
+ sql += ` ON UPDATE ${foreignKey.onUpdate}`;
2513
2033
  return new Query(sql);
2514
- };
2034
+ }
2515
2035
  /**
2516
2036
  * Builds drop foreign key sql.
2517
2037
  */
2518
- SqlServerQueryRunner.prototype.dropForeignKeySql = function (table, foreignKeyOrName) {
2519
- var foreignKeyName = foreignKeyOrName instanceof TableForeignKey ? foreignKeyOrName.name : foreignKeyOrName;
2520
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + foreignKeyName + "\"");
2521
- };
2038
+ dropForeignKeySql(table, foreignKeyOrName) {
2039
+ const foreignKeyName = InstanceChecker.isTableForeignKey(foreignKeyOrName)
2040
+ ? foreignKeyOrName.name
2041
+ : foreignKeyOrName;
2042
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${foreignKeyName}"`);
2043
+ }
2522
2044
  /**
2523
2045
  * Escapes given table or View path.
2524
2046
  */
2525
- SqlServerQueryRunner.prototype.escapePath = function (target, disableEscape) {
2526
- var name = target instanceof Table || target instanceof View ? target.name : target;
2527
- if (this.driver.options.schema) {
2528
- if (name.indexOf(".") === -1) {
2529
- name = this.driver.options.schema + "." + name;
2530
- }
2531
- else if (name.split(".").length === 3) {
2532
- var splittedName = name.split(".");
2533
- var dbName = splittedName[0];
2534
- var tableName = splittedName[2];
2535
- name = dbName + "." + this.driver.options.schema + "." + tableName;
2047
+ escapePath(target) {
2048
+ const { database, schema, tableName } = this.driver.parseTableName(target);
2049
+ if (database && database !== this.driver.database) {
2050
+ if (schema && schema !== this.driver.searchSchema) {
2051
+ return `"${database}"."${schema}"."${tableName}"`;
2536
2052
  }
2053
+ return `"${database}".."${tableName}"`;
2537
2054
  }
2538
- return name.split(".").map(function (i) {
2539
- // 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
2540
- if (i === "")
2541
- return i;
2542
- return disableEscape ? i : "\"" + i + "\"";
2543
- }).join(".");
2544
- };
2545
- SqlServerQueryRunner.prototype.parseTableName = function (target, schema) {
2546
- var tableName = (target instanceof Table || target instanceof View) ? target.name : target;
2547
- if (tableName.split(".").length === 3) {
2548
- return {
2549
- database: tableName.split(".")[0],
2550
- schema: tableName.split(".")[1] === "" ? schema || "SCHEMA_NAME()" : tableName.split(".")[1],
2551
- name: tableName.split(".")[2]
2552
- };
2055
+ if (schema && schema !== this.driver.searchSchema) {
2056
+ return `"${schema}"."${tableName}"`;
2553
2057
  }
2554
- else if (tableName.split(".").length === 2) {
2555
- return {
2556
- database: this.driver.database,
2557
- schema: tableName.split(".")[0],
2558
- name: tableName.split(".")[1]
2559
- };
2560
- }
2561
- else {
2562
- return {
2563
- database: this.driver.database,
2564
- schema: this.driver.options.schema ? this.driver.options.schema : schema || "SCHEMA_NAME()",
2565
- name: tableName
2566
- };
2567
- }
2568
- };
2058
+ return `"${tableName}"`;
2059
+ }
2569
2060
  /**
2570
2061
  * Concat database name and schema name to the foreign key name.
2571
2062
  * Needs because FK name is relevant to the schema and database.
2572
2063
  */
2573
- SqlServerQueryRunner.prototype.buildForeignKeyName = function (fkName, schemaName, dbName) {
2574
- var joinedFkName = fkName;
2575
- if (schemaName)
2064
+ buildForeignKeyName(fkName, schemaName, dbName) {
2065
+ let joinedFkName = fkName;
2066
+ if (schemaName && schemaName !== this.driver.searchSchema)
2576
2067
  joinedFkName = schemaName + "." + joinedFkName;
2577
- if (dbName)
2068
+ if (dbName && dbName !== this.driver.database)
2578
2069
  joinedFkName = dbName + "." + joinedFkName;
2579
2070
  return joinedFkName;
2580
- };
2071
+ }
2581
2072
  /**
2582
2073
  * Removes parenthesis around default value.
2583
2074
  * Sql server returns default value with parenthesis around, e.g.
@@ -2585,49 +2076,64 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2585
2076
  * ((1)) - for number
2586
2077
  * (newsequentialId()) - for function
2587
2078
  */
2588
- SqlServerQueryRunner.prototype.removeParenthesisFromDefault = function (defaultValue) {
2079
+ removeParenthesisFromDefault(defaultValue) {
2589
2080
  if (defaultValue.substr(0, 1) !== "(")
2590
2081
  return defaultValue;
2591
- var normalizedDefault = defaultValue.substr(1, defaultValue.lastIndexOf(")") - 1);
2082
+ const normalizedDefault = defaultValue.substr(1, defaultValue.lastIndexOf(")") - 1);
2592
2083
  return this.removeParenthesisFromDefault(normalizedDefault);
2593
- };
2084
+ }
2594
2085
  /**
2595
2086
  * Builds a query for create column.
2596
2087
  */
2597
- SqlServerQueryRunner.prototype.buildCreateColumnSql = function (table, column, skipIdentity, createDefault) {
2598
- var c = "\"" + column.name + "\" " + this.connection.driver.createFullType(column);
2599
- if (column.enum)
2600
- c += " CHECK( " + column.name + " IN (" + column.enum.map(function (val) { return "'" + val + "'"; }).join(",") + ") )";
2088
+ buildCreateColumnSql(table, column, skipIdentity, createDefault) {
2089
+ let c = `"${column.name}" ${this.connection.driver.createFullType(column)}`;
2090
+ if (column.enum) {
2091
+ const expression = column.name +
2092
+ " IN (" +
2093
+ column.enum.map((val) => "'" + val + "'").join(",") +
2094
+ ")";
2095
+ const checkName = this.connection.namingStrategy.checkConstraintName(table, expression, true);
2096
+ c += ` CONSTRAINT ${checkName} CHECK(${expression})`;
2097
+ }
2601
2098
  if (column.collation)
2602
2099
  c += " COLLATE " + column.collation;
2603
2100
  if (column.isNullable !== true)
2604
2101
  c += " NOT NULL";
2605
- if (column.isGenerated === true && column.generationStrategy === "increment" && !skipIdentity) // don't use skipPrimary here since updates can update already exist primary without auto inc.
2102
+ if (column.isGenerated === true &&
2103
+ column.generationStrategy === "increment" &&
2104
+ !skipIdentity)
2105
+ // don't use skipPrimary here since updates can update already exist primary without auto inc.
2606
2106
  c += " IDENTITY(1,1)";
2607
- if (column.default !== undefined && column.default !== null && createDefault) {
2107
+ if (column.default !== undefined &&
2108
+ column.default !== null &&
2109
+ createDefault) {
2608
2110
  // we create named constraint to be able to delete this constraint when column been dropped
2609
- var defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, column.name);
2610
- c += " CONSTRAINT \"" + defaultName + "\" DEFAULT " + column.default;
2111
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, column.name);
2112
+ c += ` CONSTRAINT "${defaultName}" DEFAULT ${column.default}`;
2611
2113
  }
2612
- if (column.isGenerated && column.generationStrategy === "uuid" && !column.default) {
2114
+ if (column.isGenerated &&
2115
+ column.generationStrategy === "uuid" &&
2116
+ !column.default) {
2613
2117
  // we create named constraint to be able to delete this constraint when column been dropped
2614
- var defaultName = this.connection.namingStrategy.defaultConstraintName(table.name, column.name);
2615
- c += " CONSTRAINT \"" + defaultName + "\" DEFAULT NEWSEQUENTIALID()";
2118
+ const defaultName = this.connection.namingStrategy.defaultConstraintName(table, column.name);
2119
+ c += ` CONSTRAINT "${defaultName}" DEFAULT NEWSEQUENTIALID()`;
2616
2120
  }
2617
2121
  return c;
2618
- };
2122
+ }
2123
+ isEnumCheckConstraint(name) {
2124
+ return name.indexOf("CHK_") !== -1 && name.indexOf("_ENUM") !== -1;
2125
+ }
2619
2126
  /**
2620
2127
  * Converts MssqlParameter into real mssql parameter type.
2621
2128
  */
2622
- SqlServerQueryRunner.prototype.mssqlParameterToNativeParameter = function (parameter) {
2623
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2129
+ mssqlParameterToNativeParameter(parameter) {
2624
2130
  switch (this.driver.normalizeType({ type: parameter.type })) {
2625
2131
  case "bit":
2626
2132
  return this.driver.mssql.Bit;
2627
2133
  case "bigint":
2628
2134
  return this.driver.mssql.BigInt;
2629
2135
  case "decimal":
2630
- return (_a = this.driver.mssql).Decimal.apply(_a, tslib_1.__spread(parameter.params));
2136
+ return this.driver.mssql.Decimal(...parameter.params);
2631
2137
  case "float":
2632
2138
  return this.driver.mssql.Float;
2633
2139
  case "int":
@@ -2635,7 +2141,7 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2635
2141
  case "money":
2636
2142
  return this.driver.mssql.Money;
2637
2143
  case "numeric":
2638
- return (_b = this.driver.mssql).Numeric.apply(_b, tslib_1.__spread(parameter.params));
2144
+ return this.driver.mssql.Numeric(...parameter.params);
2639
2145
  case "smallint":
2640
2146
  return this.driver.mssql.SmallInt;
2641
2147
  case "smallmoney":
@@ -2645,29 +2151,26 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2645
2151
  case "tinyint":
2646
2152
  return this.driver.mssql.TinyInt;
2647
2153
  case "char":
2648
- return (_c = this.driver.mssql).Char.apply(_c, tslib_1.__spread(parameter.params));
2649
2154
  case "nchar":
2650
- return (_d = this.driver.mssql).NChar.apply(_d, tslib_1.__spread(parameter.params));
2155
+ return this.driver.mssql.NChar(...parameter.params);
2651
2156
  case "text":
2652
- return this.driver.mssql.Text;
2653
2157
  case "ntext":
2654
2158
  return this.driver.mssql.Ntext;
2655
2159
  case "varchar":
2656
- return (_e = this.driver.mssql).VarChar.apply(_e, tslib_1.__spread(parameter.params));
2657
2160
  case "nvarchar":
2658
- return (_f = this.driver.mssql).NVarChar.apply(_f, tslib_1.__spread(parameter.params));
2161
+ return this.driver.mssql.NVarChar(...parameter.params);
2659
2162
  case "xml":
2660
2163
  return this.driver.mssql.Xml;
2661
2164
  case "time":
2662
- return (_g = this.driver.mssql).Time.apply(_g, tslib_1.__spread(parameter.params));
2165
+ return this.driver.mssql.Time(...parameter.params);
2663
2166
  case "date":
2664
2167
  return this.driver.mssql.Date;
2665
2168
  case "datetime":
2666
2169
  return this.driver.mssql.DateTime;
2667
2170
  case "datetime2":
2668
- return (_h = this.driver.mssql).DateTime2.apply(_h, tslib_1.__spread(parameter.params));
2171
+ return this.driver.mssql.DateTime2(...parameter.params);
2669
2172
  case "datetimeoffset":
2670
- return (_j = this.driver.mssql).DateTimeOffset.apply(_j, tslib_1.__spread(parameter.params));
2173
+ return this.driver.mssql.DateTimeOffset(...parameter.params);
2671
2174
  case "smalldatetime":
2672
2175
  return this.driver.mssql.SmallDateTime;
2673
2176
  case "uniqueidentifier":
@@ -2677,7 +2180,7 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2677
2180
  case "binary":
2678
2181
  return this.driver.mssql.Binary;
2679
2182
  case "varbinary":
2680
- return (_k = this.driver.mssql).VarBinary.apply(_k, tslib_1.__spread(parameter.params));
2183
+ return this.driver.mssql.VarBinary(...parameter.params);
2681
2184
  case "image":
2682
2185
  return this.driver.mssql.Image;
2683
2186
  case "udt":
@@ -2685,13 +2188,13 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2685
2188
  case "rowversion":
2686
2189
  return this.driver.mssql.RowVersion;
2687
2190
  }
2688
- };
2191
+ }
2689
2192
  /**
2690
2193
  * Converts string literal of isolation level to enum.
2691
2194
  * The underlying mssql driver requires an enum for the isolation level.
2692
2195
  */
2693
- SqlServerQueryRunner.prototype.convertIsolationLevel = function (isolation) {
2694
- var ISOLATION_LEVEL = this.driver.mssql.ISOLATION_LEVEL;
2196
+ convertIsolationLevel(isolation) {
2197
+ const ISOLATION_LEVEL = this.driver.mssql.ISOLATION_LEVEL;
2695
2198
  switch (isolation) {
2696
2199
  case "READ UNCOMMITTED":
2697
2200
  return ISOLATION_LEVEL.READ_UNCOMMITTED;
@@ -2703,9 +2206,7 @@ var SqlServerQueryRunner = /** @class */ (function (_super) {
2703
2206
  default:
2704
2207
  return ISOLATION_LEVEL.READ_COMMITTED;
2705
2208
  }
2706
- };
2707
- return SqlServerQueryRunner;
2708
- }(BaseQueryRunner));
2709
- export { SqlServerQueryRunner };
2209
+ }
2210
+ }
2710
2211
 
2711
2212
  //# sourceMappingURL=SqlServerQueryRunner.js.map