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,5 +1,4 @@
1
- import * as tslib_1 from "tslib";
2
- import { TransactionAlreadyStartedError } from "../../error/TransactionAlreadyStartedError";
1
+ import { QueryResult } from "../../query-runner/QueryResult";
3
2
  import { TransactionNotStartedError } from "../../error/TransactionNotStartedError";
4
3
  import { TableColumn } from "../../schema-builder/table/TableColumn";
5
4
  import { Table } from "../../schema-builder/table/Table";
@@ -13,33 +12,32 @@ import { Broadcaster } from "../../subscriber/Broadcaster";
13
12
  import { TableUnique } from "../../schema-builder/table/TableUnique";
14
13
  import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
15
14
  import { OrmUtils } from "../../util/OrmUtils";
16
- import { PromiseUtils } from "../../";
17
15
  import { TableCheck } from "../../schema-builder/table/TableCheck";
18
16
  import { TableExclusion } from "../../schema-builder/table/TableExclusion";
17
+ import { TypeORMError } from "../../error";
18
+ import { MetadataTableType } from "../types/MetadataTableType";
19
+ import { InstanceChecker } from "../../util/InstanceChecker";
19
20
  /**
20
21
  * Runs queries on a single postgres database connection.
21
22
  */
22
- var CockroachQueryRunner = /** @class */ (function (_super) {
23
- tslib_1.__extends(CockroachQueryRunner, _super);
23
+ export class CockroachQueryRunner extends BaseQueryRunner {
24
24
  // -------------------------------------------------------------------------
25
25
  // Constructor
26
26
  // -------------------------------------------------------------------------
27
- function CockroachQueryRunner(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
30
  * Stores all executed queries to be able to run them again if transaction fails.
32
31
  */
33
- _this.queries = [];
32
+ this.queries = [];
34
33
  /**
35
34
  * Indicates if running queries must be stored
36
35
  */
37
- _this.storeQueries = false;
38
- _this.driver = driver;
39
- _this.connection = driver.connection;
40
- _this.mode = mode;
41
- _this.broadcaster = new Broadcaster(_this);
42
- return _this;
36
+ this.storeQueries = false;
37
+ this.driver = driver;
38
+ this.connection = driver.connection;
39
+ this.mode = mode;
40
+ this.broadcaster = new Broadcaster(this);
43
41
  }
44
42
  // -------------------------------------------------------------------------
45
43
  // Public Methods
@@ -48,2299 +46,1851 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
48
46
  * Creates/uses database connection from the connection pool to perform further operations.
49
47
  * Returns obtained database connection.
50
48
  */
51
- CockroachQueryRunner.prototype.connect = function () {
52
- var _this = this;
49
+ connect() {
53
50
  if (this.databaseConnection)
54
51
  return Promise.resolve(this.databaseConnection);
55
52
  if (this.databaseConnectionPromise)
56
53
  return this.databaseConnectionPromise;
57
54
  if (this.mode === "slave" && this.driver.isReplicated) {
58
- this.databaseConnectionPromise = this.driver.obtainSlaveConnection().then(function (_a) {
59
- var _b = tslib_1.__read(_a, 2), connection = _b[0], release = _b[1];
60
- _this.driver.connectedQueryRunners.push(_this);
61
- _this.databaseConnection = connection;
62
- _this.releaseCallback = release;
63
- return _this.databaseConnection;
55
+ this.databaseConnectionPromise = this.driver
56
+ .obtainSlaveConnection()
57
+ .then(([connection, release]) => {
58
+ this.driver.connectedQueryRunners.push(this);
59
+ this.databaseConnection = connection;
60
+ this.releaseCallback = release;
61
+ return this.databaseConnection;
64
62
  });
65
63
  }
66
- else { // master
67
- this.databaseConnectionPromise = this.driver.obtainMasterConnection().then(function (_a) {
68
- var _b = tslib_1.__read(_a, 2), connection = _b[0], release = _b[1];
69
- _this.driver.connectedQueryRunners.push(_this);
70
- _this.databaseConnection = connection;
71
- _this.releaseCallback = release;
72
- return _this.databaseConnection;
64
+ else {
65
+ // master
66
+ this.databaseConnectionPromise = this.driver
67
+ .obtainMasterConnection()
68
+ .then(([connection, release]) => {
69
+ this.driver.connectedQueryRunners.push(this);
70
+ this.databaseConnection = connection;
71
+ this.releaseCallback = release;
72
+ return this.databaseConnection;
73
73
  });
74
74
  }
75
75
  return this.databaseConnectionPromise;
76
- };
76
+ }
77
77
  /**
78
78
  * Releases used database connection.
79
79
  * You cannot use query runner methods once its released.
80
80
  */
81
- CockroachQueryRunner.prototype.release = function () {
81
+ release() {
82
82
  this.isReleased = true;
83
83
  if (this.releaseCallback)
84
84
  this.releaseCallback();
85
- var index = this.driver.connectedQueryRunners.indexOf(this);
85
+ const index = this.driver.connectedQueryRunners.indexOf(this);
86
86
  if (index !== -1)
87
87
  this.driver.connectedQueryRunners.splice(index);
88
88
  return Promise.resolve();
89
- };
89
+ }
90
90
  /**
91
91
  * Starts transaction.
92
92
  */
93
- CockroachQueryRunner.prototype.startTransaction = function (isolationLevel) {
94
- return tslib_1.__awaiter(this, void 0, void 0, function () {
95
- return tslib_1.__generator(this, function (_a) {
96
- switch (_a.label) {
97
- case 0:
98
- if (this.isTransactionActive)
99
- throw new TransactionAlreadyStartedError();
100
- this.isTransactionActive = true;
101
- return [4 /*yield*/, this.query("START TRANSACTION")];
102
- case 1:
103
- _a.sent();
104
- return [4 /*yield*/, this.query("SAVEPOINT cockroach_restart")];
105
- case 2:
106
- _a.sent();
107
- if (!isolationLevel) return [3 /*break*/, 4];
108
- return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)];
109
- case 3:
110
- _a.sent();
111
- _a.label = 4;
112
- case 4:
113
- this.storeQueries = true;
114
- return [2 /*return*/];
115
- }
116
- });
117
- });
118
- };
93
+ async startTransaction(isolationLevel) {
94
+ this.isTransactionActive = true;
95
+ try {
96
+ await this.broadcaster.broadcast("BeforeTransactionStart");
97
+ }
98
+ catch (err) {
99
+ this.isTransactionActive = false;
100
+ throw err;
101
+ }
102
+ if (this.transactionDepth === 0) {
103
+ await this.query("START TRANSACTION");
104
+ await this.query("SAVEPOINT cockroach_restart");
105
+ if (isolationLevel) {
106
+ await this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
107
+ }
108
+ }
109
+ else {
110
+ await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`);
111
+ }
112
+ this.transactionDepth += 1;
113
+ this.storeQueries = true;
114
+ await this.broadcaster.broadcast("AfterTransactionStart");
115
+ }
119
116
  /**
120
117
  * Commits transaction.
121
118
  * Error will be thrown if transaction was not started.
122
119
  */
123
- CockroachQueryRunner.prototype.commitTransaction = function () {
124
- return tslib_1.__awaiter(this, void 0, void 0, function () {
125
- var e_1;
126
- var _this = this;
127
- return tslib_1.__generator(this, function (_a) {
128
- switch (_a.label) {
129
- case 0:
130
- if (!this.isTransactionActive)
131
- throw new TransactionNotStartedError();
132
- this.storeQueries = false;
133
- _a.label = 1;
134
- case 1:
135
- _a.trys.push([1, 4, , 9]);
136
- return [4 /*yield*/, this.query("RELEASE SAVEPOINT cockroach_restart")];
137
- case 2:
138
- _a.sent();
139
- return [4 /*yield*/, this.query("COMMIT")];
140
- case 3:
141
- _a.sent();
142
- this.queries = [];
143
- this.isTransactionActive = false;
144
- return [3 /*break*/, 9];
145
- case 4:
146
- e_1 = _a.sent();
147
- if (!(e_1.code === "40001")) return [3 /*break*/, 8];
148
- return [4 /*yield*/, this.query("ROLLBACK TO SAVEPOINT cockroach_restart")];
149
- case 5:
150
- _a.sent();
151
- return [4 /*yield*/, PromiseUtils.runInSequence(this.queries, function (q) { return _this.query(q.query, q.parameters); })];
152
- case 6:
153
- _a.sent();
154
- return [4 /*yield*/, this.commitTransaction()];
155
- case 7:
156
- _a.sent();
157
- _a.label = 8;
158
- case 8: return [3 /*break*/, 9];
159
- case 9: return [2 /*return*/];
120
+ async commitTransaction() {
121
+ if (!this.isTransactionActive)
122
+ throw new TransactionNotStartedError();
123
+ await this.broadcaster.broadcast("BeforeTransactionCommit");
124
+ if (this.transactionDepth > 1) {
125
+ await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`);
126
+ this.transactionDepth -= 1;
127
+ }
128
+ else {
129
+ this.storeQueries = false;
130
+ try {
131
+ await this.query("RELEASE SAVEPOINT cockroach_restart");
132
+ await this.query("COMMIT");
133
+ this.queries = [];
134
+ this.isTransactionActive = false;
135
+ this.transactionDepth -= 1;
136
+ }
137
+ catch (e) {
138
+ if (e.code === "40001") {
139
+ await this.query("ROLLBACK TO SAVEPOINT cockroach_restart");
140
+ for (const q of this.queries) {
141
+ await this.query(q.query, q.parameters);
142
+ }
143
+ await this.commitTransaction();
160
144
  }
161
- });
162
- });
163
- };
145
+ }
146
+ }
147
+ await this.broadcaster.broadcast("AfterTransactionCommit");
148
+ }
164
149
  /**
165
150
  * Rollbacks transaction.
166
151
  * Error will be thrown if transaction was not started.
167
152
  */
168
- CockroachQueryRunner.prototype.rollbackTransaction = function () {
169
- return tslib_1.__awaiter(this, void 0, void 0, function () {
170
- return tslib_1.__generator(this, function (_a) {
171
- switch (_a.label) {
172
- case 0:
173
- if (!this.isTransactionActive)
174
- throw new TransactionNotStartedError();
175
- this.storeQueries = false;
176
- return [4 /*yield*/, this.query("ROLLBACK")];
177
- case 1:
178
- _a.sent();
179
- this.queries = [];
180
- this.isTransactionActive = false;
181
- return [2 /*return*/];
182
- }
183
- });
184
- });
185
- };
153
+ async rollbackTransaction() {
154
+ if (!this.isTransactionActive)
155
+ throw new TransactionNotStartedError();
156
+ await this.broadcaster.broadcast("BeforeTransactionRollback");
157
+ if (this.transactionDepth > 1) {
158
+ await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`);
159
+ }
160
+ else {
161
+ this.storeQueries = false;
162
+ await this.query("ROLLBACK");
163
+ this.queries = [];
164
+ this.isTransactionActive = false;
165
+ }
166
+ this.transactionDepth -= 1;
167
+ await this.broadcaster.broadcast("AfterTransactionRollback");
168
+ }
186
169
  /**
187
170
  * Executes a given SQL query.
188
171
  */
189
- CockroachQueryRunner.prototype.query = function (query, parameters, options) {
190
- var _this = this;
172
+ async query(query, parameters, useStructuredResult = false) {
191
173
  if (this.isReleased)
192
174
  throw new QueryRunnerAlreadyReleasedError();
193
- return new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
194
- var databaseConnection, queryStartTime_1, err_1;
195
- var _this = this;
196
- return tslib_1.__generator(this, function (_a) {
197
- switch (_a.label) {
198
- case 0:
199
- _a.trys.push([0, 2, , 3]);
200
- return [4 /*yield*/, this.connect()];
201
- case 1:
202
- databaseConnection = _a.sent();
203
- this.driver.connection.logger.logQuery(query, parameters, this);
204
- queryStartTime_1 = +new Date();
205
- databaseConnection.query(query, parameters, function (err, result) {
206
- if (_this.isTransactionActive && _this.storeQueries)
207
- _this.queries.push({ query: query, parameters: parameters });
208
- // log slow queries if maxQueryExecution time is set
209
- var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;
210
- var queryEndTime = +new Date();
211
- var queryExecutionTime = queryEndTime - queryStartTime_1;
212
- if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
213
- _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);
214
- if (err) {
215
- if (err.code !== "40001")
216
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
217
- fail(new QueryFailedError(query, parameters, err));
218
- }
219
- else {
220
- switch (result.command) {
221
- case "DELETE":
222
- // for DELETE query additionally return number of affected rows
223
- ok([result.rows, result.rowCount]);
224
- break;
225
- default:
226
- ok(result.rows);
227
- }
228
- }
229
- });
230
- return [3 /*break*/, 3];
231
- case 2:
232
- err_1 = _a.sent();
233
- fail(err_1);
234
- return [3 /*break*/, 3];
235
- case 3: return [2 /*return*/];
236
- }
175
+ const databaseConnection = await this.connect();
176
+ this.driver.connection.logger.logQuery(query, parameters, this);
177
+ const queryStartTime = +new Date();
178
+ if (this.isTransactionActive && this.storeQueries) {
179
+ this.queries.push({ query, parameters });
180
+ }
181
+ try {
182
+ const raw = await new Promise((ok, fail) => {
183
+ databaseConnection.query(query, parameters, (err, raw) => (err ? fail(err) : ok(raw)));
237
184
  });
238
- }); });
239
- };
185
+ // log slow queries if maxQueryExecution time is set
186
+ const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
187
+ const queryEndTime = +new Date();
188
+ const queryExecutionTime = queryEndTime - queryStartTime;
189
+ if (maxQueryExecutionTime &&
190
+ queryExecutionTime > maxQueryExecutionTime) {
191
+ this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
192
+ }
193
+ const result = new QueryResult();
194
+ if (raw.hasOwnProperty("rowCount")) {
195
+ result.affected = raw.rowCount;
196
+ }
197
+ if (raw.hasOwnProperty("rows")) {
198
+ result.records = raw.rows;
199
+ }
200
+ switch (raw.command) {
201
+ case "DELETE":
202
+ // for DELETE query additionally return number of affected rows
203
+ result.raw = [raw.rows, raw.rowCount];
204
+ break;
205
+ default:
206
+ result.raw = raw.rows;
207
+ }
208
+ if (useStructuredResult) {
209
+ return result;
210
+ }
211
+ else {
212
+ return result.raw;
213
+ }
214
+ }
215
+ catch (err) {
216
+ if (err.code !== "40001") {
217
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
218
+ }
219
+ throw new QueryFailedError(query, parameters, err);
220
+ }
221
+ }
240
222
  /**
241
223
  * Returns raw data stream.
242
224
  */
243
- CockroachQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) {
244
- var _this = this;
245
- var QueryStream = this.driver.loadStreamDependency();
246
- if (this.isReleased)
225
+ async stream(query, parameters, onEnd, onError) {
226
+ const QueryStream = this.driver.loadStreamDependency();
227
+ if (this.isReleased) {
247
228
  throw new QueryRunnerAlreadyReleasedError();
248
- return new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
249
- var databaseConnection, stream, err_2;
250
- return tslib_1.__generator(this, function (_a) {
251
- switch (_a.label) {
252
- case 0:
253
- _a.trys.push([0, 2, , 3]);
254
- return [4 /*yield*/, this.connect()];
255
- case 1:
256
- databaseConnection = _a.sent();
257
- this.driver.connection.logger.logQuery(query, parameters, this);
258
- stream = databaseConnection.query(new QueryStream(query, parameters));
259
- if (onEnd)
260
- stream.on("end", onEnd);
261
- if (onError)
262
- stream.on("error", onError);
263
- ok(stream);
264
- return [3 /*break*/, 3];
265
- case 2:
266
- err_2 = _a.sent();
267
- fail(err_2);
268
- return [3 /*break*/, 3];
269
- case 3: return [2 /*return*/];
270
- }
271
- });
272
- }); });
273
- };
229
+ }
230
+ const databaseConnection = await this.connect();
231
+ this.driver.connection.logger.logQuery(query, parameters, this);
232
+ const stream = databaseConnection.query(new QueryStream(query, parameters));
233
+ if (onEnd) {
234
+ stream.on("end", onEnd);
235
+ }
236
+ if (onError) {
237
+ stream.on("error", onError);
238
+ }
239
+ return stream;
240
+ }
274
241
  /**
275
242
  * Returns all available database names including system databases.
276
243
  */
277
- CockroachQueryRunner.prototype.getDatabases = function () {
278
- return tslib_1.__awaiter(this, void 0, void 0, function () {
279
- return tslib_1.__generator(this, function (_a) {
280
- return [2 /*return*/, Promise.resolve([])];
281
- });
282
- });
283
- };
244
+ async getDatabases() {
245
+ return Promise.resolve([]);
246
+ }
284
247
  /**
285
248
  * Returns all available schema names including system schemas.
286
249
  * If database parameter specified, returns schemas of that database.
287
250
  */
288
- CockroachQueryRunner.prototype.getSchemas = function (database) {
289
- return tslib_1.__awaiter(this, void 0, void 0, function () {
290
- return tslib_1.__generator(this, function (_a) {
291
- return [2 /*return*/, Promise.resolve([])];
292
- });
293
- });
294
- };
251
+ async getSchemas(database) {
252
+ return Promise.resolve([]);
253
+ }
295
254
  /**
296
255
  * Checks if database with the given name exist.
297
256
  */
298
- CockroachQueryRunner.prototype.hasDatabase = function (database) {
299
- return tslib_1.__awaiter(this, void 0, void 0, function () {
300
- var result;
301
- return tslib_1.__generator(this, function (_a) {
302
- switch (_a.label) {
303
- case 0: return [4 /*yield*/, this.query("SELECT * FROM \"pg_database\" WHERE \"datname\" = '" + database + "'")];
304
- case 1:
305
- result = _a.sent();
306
- return [2 /*return*/, result.length ? true : false];
307
- }
308
- });
309
- });
310
- };
257
+ async hasDatabase(database) {
258
+ const result = await this.query(`SELECT * FROM "pg_database" WHERE "datname" = '${database}'`);
259
+ return result.length ? true : false;
260
+ }
261
+ /**
262
+ * Loads currently using database
263
+ */
264
+ async getCurrentDatabase() {
265
+ const query = await this.query(`SELECT * FROM current_database()`);
266
+ return query[0]["current_database"];
267
+ }
311
268
  /**
312
269
  * Checks if schema with the given name exist.
313
270
  */
314
- CockroachQueryRunner.prototype.hasSchema = function (schema) {
315
- return tslib_1.__awaiter(this, void 0, void 0, function () {
316
- var result;
317
- return tslib_1.__generator(this, function (_a) {
318
- switch (_a.label) {
319
- case 0: return [4 /*yield*/, this.query("SELECT * FROM \"information_schema\".\"schemata\" WHERE \"schema_name\" = '" + schema + "'")];
320
- case 1:
321
- result = _a.sent();
322
- return [2 /*return*/, result.length ? true : false];
323
- }
324
- });
325
- });
326
- };
271
+ async hasSchema(schema) {
272
+ const result = await this.query(`SELECT * FROM "information_schema"."schemata" WHERE "schema_name" = '${schema}'`);
273
+ return result.length ? true : false;
274
+ }
275
+ /**
276
+ * Loads currently using database schema
277
+ */
278
+ async getCurrentSchema() {
279
+ const query = await this.query(`SELECT * FROM current_schema()`);
280
+ return query[0]["current_schema"];
281
+ }
327
282
  /**
328
283
  * Checks if table with the given name exist in the database.
329
284
  */
330
- CockroachQueryRunner.prototype.hasTable = function (tableOrName) {
331
- return tslib_1.__awaiter(this, void 0, void 0, function () {
332
- var parsedTableName, sql, result;
333
- return tslib_1.__generator(this, function (_a) {
334
- switch (_a.label) {
335
- case 0:
336
- parsedTableName = this.parseTableName(tableOrName);
337
- sql = "SELECT * FROM \"information_schema\".\"tables\" WHERE \"table_schema\" = " + parsedTableName.schema + " AND \"table_name\" = " + parsedTableName.tableName;
338
- return [4 /*yield*/, this.query(sql)];
339
- case 1:
340
- result = _a.sent();
341
- return [2 /*return*/, result.length ? true : false];
342
- }
343
- });
344
- });
345
- };
285
+ async hasTable(tableOrName) {
286
+ const parsedTableName = this.driver.parseTableName(tableOrName);
287
+ if (!parsedTableName.schema) {
288
+ parsedTableName.schema = await this.getCurrentSchema();
289
+ }
290
+ const sql = `SELECT * FROM "information_schema"."tables" WHERE "table_schema" = '${parsedTableName.schema}' AND "table_name" = '${parsedTableName.tableName}'`;
291
+ const result = await this.query(sql);
292
+ return result.length ? true : false;
293
+ }
346
294
  /**
347
295
  * Checks if column with the given name exist in the given table.
348
296
  */
349
- CockroachQueryRunner.prototype.hasColumn = function (tableOrName, columnName) {
350
- return tslib_1.__awaiter(this, void 0, void 0, function () {
351
- var parsedTableName, sql, result;
352
- return tslib_1.__generator(this, function (_a) {
353
- switch (_a.label) {
354
- case 0:
355
- parsedTableName = this.parseTableName(tableOrName);
356
- sql = "SELECT * FROM \"information_schema\".\"columns\" WHERE \"table_schema\" = " + parsedTableName.schema + " AND \"table_name\" = " + parsedTableName.tableName + " AND \"column_name\" = '" + columnName + "'";
357
- return [4 /*yield*/, this.query(sql)];
358
- case 1:
359
- result = _a.sent();
360
- return [2 /*return*/, result.length ? true : false];
361
- }
362
- });
363
- });
364
- };
297
+ async hasColumn(tableOrName, columnName) {
298
+ const parsedTableName = this.driver.parseTableName(tableOrName);
299
+ if (!parsedTableName.schema) {
300
+ parsedTableName.schema = await this.getCurrentSchema();
301
+ }
302
+ const sql = `SELECT * FROM "information_schema"."columns" WHERE "table_schema" = '${parsedTableName.schema}' AND "table_name" = '${parsedTableName.tableName}' AND "column_name" = '${columnName}'`;
303
+ const result = await this.query(sql);
304
+ return result.length ? true : false;
305
+ }
365
306
  /**
366
307
  * Creates a new database.
367
308
  */
368
- CockroachQueryRunner.prototype.createDatabase = function (database, ifNotExist) {
369
- return tslib_1.__awaiter(this, void 0, void 0, function () {
370
- var up, down;
371
- return tslib_1.__generator(this, function (_a) {
372
- switch (_a.label) {
373
- case 0:
374
- up = "CREATE DATABASE " + (ifNotExist ? "IF NOT EXISTS " : "") + " \"" + database + "\"";
375
- down = "DROP DATABASE \"" + database + "\"";
376
- return [4 /*yield*/, this.executeQueries(new Query(up), new Query(down))];
377
- case 1:
378
- _a.sent();
379
- return [2 /*return*/];
380
- }
381
- });
382
- });
383
- };
309
+ async createDatabase(database, ifNotExist) {
310
+ const up = `CREATE DATABASE ${ifNotExist ? "IF NOT EXISTS " : ""} "${database}"`;
311
+ const down = `DROP DATABASE "${database}"`;
312
+ await this.executeQueries(new Query(up), new Query(down));
313
+ }
384
314
  /**
385
315
  * Drops database.
386
316
  */
387
- CockroachQueryRunner.prototype.dropDatabase = function (database, ifExist) {
388
- return tslib_1.__awaiter(this, void 0, void 0, function () {
389
- var up, down;
390
- return tslib_1.__generator(this, function (_a) {
391
- switch (_a.label) {
392
- case 0:
393
- up = "DROP DATABASE " + (ifExist ? "IF EXISTS " : "") + " \"" + database + "\"";
394
- down = "CREATE DATABASE \"" + database + "\"";
395
- return [4 /*yield*/, this.executeQueries(new Query(up), new Query(down))];
396
- case 1:
397
- _a.sent();
398
- return [2 /*return*/];
399
- }
400
- });
401
- });
402
- };
317
+ async dropDatabase(database, ifExist) {
318
+ const up = `DROP DATABASE ${ifExist ? "IF EXISTS " : ""} "${database}"`;
319
+ const down = `CREATE DATABASE "${database}"`;
320
+ await this.executeQueries(new Query(up), new Query(down));
321
+ }
403
322
  /**
404
323
  * Creates a new table schema.
405
324
  */
406
- CockroachQueryRunner.prototype.createSchema = function (schema, ifNotExist) {
407
- return tslib_1.__awaiter(this, void 0, void 0, function () {
408
- var up, down;
409
- return tslib_1.__generator(this, function (_a) {
410
- switch (_a.label) {
411
- case 0:
412
- up = ifNotExist ? "CREATE SCHEMA IF NOT EXISTS \"" + schema + "\"" : "CREATE SCHEMA \"" + schema + "\"";
413
- down = "DROP SCHEMA \"" + schema + "\" CASCADE";
414
- return [4 /*yield*/, this.executeQueries(new Query(up), new Query(down))];
415
- case 1:
416
- _a.sent();
417
- return [2 /*return*/];
418
- }
419
- });
420
- });
421
- };
325
+ async createSchema(schemaPath, ifNotExist) {
326
+ const schema = schemaPath.indexOf(".") === -1
327
+ ? schemaPath
328
+ : schemaPath.split(".")[1];
329
+ const up = ifNotExist
330
+ ? `CREATE SCHEMA IF NOT EXISTS "${schema}"`
331
+ : `CREATE SCHEMA "${schema}"`;
332
+ const down = `DROP SCHEMA "${schema}" CASCADE`;
333
+ await this.executeQueries(new Query(up), new Query(down));
334
+ }
422
335
  /**
423
336
  * Drops table schema.
424
337
  */
425
- CockroachQueryRunner.prototype.dropSchema = function (schemaPath, ifExist, isCascade) {
426
- return tslib_1.__awaiter(this, void 0, void 0, function () {
427
- var schema, up, down;
428
- return tslib_1.__generator(this, function (_a) {
429
- switch (_a.label) {
430
- case 0:
431
- schema = schemaPath.indexOf(".") === -1 ? schemaPath : schemaPath.split(".")[0];
432
- up = ifExist ? "DROP SCHEMA IF EXISTS \"" + schema + "\" " + (isCascade ? "CASCADE" : "") : "DROP SCHEMA \"" + schema + "\" " + (isCascade ? "CASCADE" : "");
433
- down = "CREATE SCHEMA \"" + schema + "\"";
434
- return [4 /*yield*/, this.executeQueries(new Query(up), new Query(down))];
435
- case 1:
436
- _a.sent();
437
- return [2 /*return*/];
438
- }
439
- });
440
- });
441
- };
338
+ async dropSchema(schemaPath, ifExist, isCascade) {
339
+ const schema = schemaPath.indexOf(".") === -1
340
+ ? schemaPath
341
+ : schemaPath.split(".")[1];
342
+ const up = ifExist
343
+ ? `DROP SCHEMA IF EXISTS "${schema}" ${isCascade ? "CASCADE" : ""}`
344
+ : `DROP SCHEMA "${schema}" ${isCascade ? "CASCADE" : ""}`;
345
+ const down = `CREATE SCHEMA "${schema}"`;
346
+ await this.executeQueries(new Query(up), new Query(down));
347
+ }
442
348
  /**
443
349
  * Creates a new table.
444
350
  */
445
- CockroachQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys, createIndices) {
446
- if (ifNotExist === void 0) { ifNotExist = false; }
447
- if (createForeignKeys === void 0) { createForeignKeys = true; }
448
- if (createIndices === void 0) { createIndices = true; }
449
- return tslib_1.__awaiter(this, void 0, void 0, function () {
450
- var isTableExist, upQueries, downQueries;
451
- var _this = this;
452
- return tslib_1.__generator(this, function (_a) {
453
- switch (_a.label) {
454
- case 0:
455
- if (!ifNotExist) return [3 /*break*/, 2];
456
- return [4 /*yield*/, this.hasTable(table)];
457
- case 1:
458
- isTableExist = _a.sent();
459
- if (isTableExist)
460
- return [2 /*return*/, Promise.resolve()];
461
- _a.label = 2;
462
- case 2:
463
- upQueries = [];
464
- downQueries = [];
465
- table.columns
466
- .filter(function (column) { return column.isGenerated && column.generationStrategy === "increment"; })
467
- .forEach(function (column) {
468
- upQueries.push(new Query("CREATE SEQUENCE " + _this.buildSequenceName(table, column)));
469
- downQueries.push(new Query("DROP SEQUENCE " + _this.buildSequenceName(table, column)));
470
- });
471
- upQueries.push(this.createTableSql(table, createForeignKeys));
472
- downQueries.push(this.dropTableSql(table));
473
- // if createForeignKeys is true, we must drop created foreign keys in down query.
474
- // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
475
- if (createForeignKeys)
476
- table.foreignKeys.forEach(function (foreignKey) { return downQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
477
- if (createIndices) {
478
- table.indices
479
- .filter(function (index) { return !index.isUnique; })
480
- .forEach(function (index) {
481
- // new index may be passed without name. In this case we generate index name manually.
482
- if (!index.name)
483
- index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
484
- upQueries.push(_this.createIndexSql(table, index));
485
- downQueries.push(_this.dropIndexSql(table, index));
486
- });
487
- }
488
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
489
- case 3:
490
- _a.sent();
491
- return [2 /*return*/];
492
- }
493
- });
351
+ async createTable(table, ifNotExist = false, createForeignKeys = true, createIndices = true) {
352
+ if (ifNotExist) {
353
+ const isTableExist = await this.hasTable(table);
354
+ if (isTableExist)
355
+ return Promise.resolve();
356
+ }
357
+ const upQueries = [];
358
+ const downQueries = [];
359
+ table.columns
360
+ .filter((column) => column.isGenerated &&
361
+ column.generationStrategy === "increment")
362
+ .forEach((column) => {
363
+ upQueries.push(new Query(`CREATE SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
364
+ downQueries.push(new Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
494
365
  });
495
- };
366
+ upQueries.push(this.createTableSql(table, createForeignKeys));
367
+ downQueries.push(this.dropTableSql(table));
368
+ // if createForeignKeys is true, we must drop created foreign keys in down query.
369
+ // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
370
+ if (createForeignKeys)
371
+ table.foreignKeys.forEach((foreignKey) => downQueries.push(this.dropForeignKeySql(table, foreignKey)));
372
+ if (createIndices) {
373
+ table.indices
374
+ .filter((index) => !index.isUnique)
375
+ .forEach((index) => {
376
+ // new index may be passed without name. In this case we generate index name manually.
377
+ if (!index.name)
378
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
379
+ upQueries.push(this.createIndexSql(table, index));
380
+ downQueries.push(this.dropIndexSql(table, index));
381
+ });
382
+ }
383
+ await this.executeQueries(upQueries, downQueries);
384
+ }
496
385
  /**
497
386
  * Drops the table.
498
387
  */
499
- CockroachQueryRunner.prototype.dropTable = function (target, ifExist, dropForeignKeys, dropIndices) {
500
- if (dropForeignKeys === void 0) { dropForeignKeys = true; }
501
- if (dropIndices === void 0) { dropIndices = true; }
502
- return tslib_1.__awaiter(this, void 0, void 0, function () {
503
- var isTableExist, createForeignKeys, tableName, table, upQueries, downQueries;
504
- var _this = this;
505
- return tslib_1.__generator(this, function (_a) {
506
- switch (_a.label) {
507
- case 0:
508
- if (!ifExist) return [3 /*break*/, 2];
509
- return [4 /*yield*/, this.hasTable(target)];
510
- case 1:
511
- isTableExist = _a.sent();
512
- if (!isTableExist)
513
- return [2 /*return*/, Promise.resolve()];
514
- _a.label = 2;
515
- case 2:
516
- createForeignKeys = dropForeignKeys;
517
- tableName = target instanceof Table ? target.name : target;
518
- return [4 /*yield*/, this.getCachedTable(tableName)];
519
- case 3:
520
- table = _a.sent();
521
- upQueries = [];
522
- downQueries = [];
523
- // foreign keys must be dropped before indices, because fk's rely on indices
524
- if (dropForeignKeys)
525
- table.foreignKeys.forEach(function (foreignKey) { return upQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
526
- if (dropIndices) {
527
- table.indices.forEach(function (index) {
528
- upQueries.push(_this.dropIndexSql(table, index));
529
- downQueries.push(_this.createIndexSql(table, index));
530
- });
531
- }
532
- upQueries.push(this.dropTableSql(table));
533
- downQueries.push(this.createTableSql(table, createForeignKeys));
534
- table.columns
535
- .filter(function (column) { return column.isGenerated && column.generationStrategy === "increment"; })
536
- .forEach(function (column) {
537
- upQueries.push(new Query("DROP SEQUENCE " + _this.buildSequenceName(table, column)));
538
- downQueries.push(new Query("CREATE SEQUENCE " + _this.buildSequenceName(table, column)));
539
- });
540
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
541
- case 4:
542
- _a.sent();
543
- return [2 /*return*/];
544
- }
388
+ async dropTable(target, ifExist, dropForeignKeys = true, dropIndices = true) {
389
+ // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need
390
+ // to perform drop queries for foreign keys and indices.
391
+ if (ifExist) {
392
+ const isTableExist = await this.hasTable(target);
393
+ if (!isTableExist)
394
+ return Promise.resolve();
395
+ }
396
+ // if dropTable called with dropForeignKeys = true, we must create foreign keys in down query.
397
+ const createForeignKeys = dropForeignKeys;
398
+ const tablePath = this.getTablePath(target);
399
+ const table = await this.getCachedTable(tablePath);
400
+ const upQueries = [];
401
+ const downQueries = [];
402
+ // foreign keys must be dropped before indices, because fk's rely on indices
403
+ if (dropForeignKeys)
404
+ table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
405
+ if (dropIndices) {
406
+ table.indices.forEach((index) => {
407
+ upQueries.push(this.dropIndexSql(table, index));
408
+ downQueries.push(this.createIndexSql(table, index));
545
409
  });
410
+ }
411
+ upQueries.push(this.dropTableSql(table));
412
+ downQueries.push(this.createTableSql(table, createForeignKeys));
413
+ table.columns
414
+ .filter((column) => column.isGenerated &&
415
+ column.generationStrategy === "increment")
416
+ .forEach((column) => {
417
+ upQueries.push(new Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
418
+ downQueries.push(new Query(`CREATE SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
546
419
  });
547
- };
420
+ await this.executeQueries(upQueries, downQueries);
421
+ }
548
422
  /**
549
423
  * Creates a new view.
550
424
  */
551
- CockroachQueryRunner.prototype.createView = function (view) {
552
- return tslib_1.__awaiter(this, void 0, void 0, function () {
553
- var upQueries, downQueries, _a, _b, _c, _d;
554
- return tslib_1.__generator(this, function (_e) {
555
- switch (_e.label) {
556
- case 0:
557
- upQueries = [];
558
- downQueries = [];
559
- upQueries.push(this.createViewSql(view));
560
- _b = (_a = upQueries).push;
561
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
562
- case 1:
563
- _b.apply(_a, [_e.sent()]);
564
- downQueries.push(this.dropViewSql(view));
565
- _d = (_c = downQueries).push;
566
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
567
- case 2:
568
- _d.apply(_c, [_e.sent()]);
569
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
570
- case 3:
571
- _e.sent();
572
- return [2 /*return*/];
573
- }
574
- });
575
- });
576
- };
425
+ async createView(view) {
426
+ const upQueries = [];
427
+ const downQueries = [];
428
+ upQueries.push(this.createViewSql(view));
429
+ upQueries.push(await this.insertViewDefinitionSql(view));
430
+ downQueries.push(this.dropViewSql(view));
431
+ downQueries.push(await this.deleteViewDefinitionSql(view));
432
+ await this.executeQueries(upQueries, downQueries);
433
+ }
577
434
  /**
578
435
  * Drops the view.
579
436
  */
580
- CockroachQueryRunner.prototype.dropView = function (target) {
581
- return tslib_1.__awaiter(this, void 0, void 0, function () {
582
- var viewName, view, upQueries, downQueries, _a, _b, _c, _d;
583
- return tslib_1.__generator(this, function (_e) {
584
- switch (_e.label) {
585
- case 0:
586
- viewName = target instanceof View ? target.name : target;
587
- return [4 /*yield*/, this.getCachedView(viewName)];
588
- case 1:
589
- view = _e.sent();
590
- upQueries = [];
591
- downQueries = [];
592
- _b = (_a = upQueries).push;
593
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
594
- case 2:
595
- _b.apply(_a, [_e.sent()]);
596
- upQueries.push(this.dropViewSql(view));
597
- _d = (_c = downQueries).push;
598
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
599
- case 3:
600
- _d.apply(_c, [_e.sent()]);
601
- downQueries.push(this.createViewSql(view));
602
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
603
- case 4:
604
- _e.sent();
605
- return [2 /*return*/];
606
- }
607
- });
608
- });
609
- };
437
+ async dropView(target) {
438
+ const viewName = InstanceChecker.isView(target) ? target.name : target;
439
+ const view = await this.getCachedView(viewName);
440
+ const upQueries = [];
441
+ const downQueries = [];
442
+ upQueries.push(await this.deleteViewDefinitionSql(view));
443
+ upQueries.push(this.dropViewSql(view));
444
+ downQueries.push(await this.insertViewDefinitionSql(view));
445
+ downQueries.push(this.createViewSql(view));
446
+ await this.executeQueries(upQueries, downQueries);
447
+ }
610
448
  /**
611
449
  * Renames the given table.
612
450
  */
613
- CockroachQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
614
- return tslib_1.__awaiter(this, void 0, void 0, function () {
615
- var upQueries, downQueries, oldTable, _a, newTable, oldTableName, schemaName, columnNames, oldPkName, newPkName;
616
- var _this = this;
617
- return tslib_1.__generator(this, function (_b) {
618
- switch (_b.label) {
619
- case 0:
620
- upQueries = [];
621
- downQueries = [];
622
- if (!(oldTableOrName instanceof Table)) return [3 /*break*/, 1];
623
- _a = oldTableOrName;
624
- return [3 /*break*/, 3];
625
- case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)];
626
- case 2:
627
- _a = _b.sent();
628
- _b.label = 3;
629
- case 3:
630
- oldTable = _a;
631
- newTable = oldTable.clone();
632
- oldTableName = oldTable.name.indexOf(".") === -1 ? oldTable.name : oldTable.name.split(".")[1];
633
- schemaName = oldTable.name.indexOf(".") === -1 ? undefined : oldTable.name.split(".")[0];
634
- newTable.name = schemaName ? schemaName + "." + newTableName : newTableName;
635
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(oldTable) + " RENAME TO \"" + newTableName + "\""));
636
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(newTable) + " RENAME TO \"" + oldTableName + "\""));
637
- // rename column primary key constraint
638
- if (newTable.primaryColumns.length > 0) {
639
- columnNames = newTable.primaryColumns.map(function (column) { return column.name; });
640
- oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
641
- newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
642
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(newTable) + " RENAME CONSTRAINT \"" + oldPkName + "\" TO \"" + newPkName + "\""));
643
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(newTable) + " RENAME CONSTRAINT \"" + newPkName + "\" TO \"" + oldPkName + "\""));
644
- }
645
- // rename unique constraints
646
- newTable.uniques.forEach(function (unique) {
647
- // build new constraint name
648
- var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
649
- // build queries
650
- upQueries.push(new Query("ALTER TABLE " + _this.escapePath(newTable) + " RENAME CONSTRAINT \"" + unique.name + "\" TO \"" + newUniqueName + "\""));
651
- downQueries.push(new Query("ALTER TABLE " + _this.escapePath(newTable) + " RENAME CONSTRAINT \"" + newUniqueName + "\" TO \"" + unique.name + "\""));
652
- // replace constraint name
653
- unique.name = newUniqueName;
654
- });
655
- // rename index constraints
656
- newTable.indices.forEach(function (index) {
657
- // build new constraint name
658
- var schema = _this.extractSchema(newTable);
659
- var newIndexName = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
660
- // build queries
661
- var up = schema ? "ALTER INDEX \"" + schema + "\".\"" + index.name + "\" RENAME TO \"" + newIndexName + "\"" : "ALTER INDEX \"" + index.name + "\" RENAME TO \"" + newIndexName + "\"";
662
- var down = schema ? "ALTER INDEX \"" + schema + "\".\"" + newIndexName + "\" RENAME TO \"" + index.name + "\"" : "ALTER INDEX \"" + newIndexName + "\" RENAME TO \"" + index.name + "\"";
663
- upQueries.push(new Query(up));
664
- downQueries.push(new Query(down));
665
- // replace constraint name
666
- index.name = newIndexName;
667
- });
668
- // rename foreign key constraints
669
- newTable.foreignKeys.forEach(function (foreignKey) {
670
- // build new constraint name
671
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
672
- // build queries
673
- upQueries.push(new Query("ALTER TABLE " + _this.escapePath(newTable) + " RENAME CONSTRAINT \"" + foreignKey.name + "\" TO \"" + newForeignKeyName + "\""));
674
- downQueries.push(new Query("ALTER TABLE " + _this.escapePath(newTable) + " RENAME CONSTRAINT \"" + newForeignKeyName + "\" TO \"" + foreignKey.name + "\""));
675
- // replace constraint name
676
- foreignKey.name = newForeignKeyName;
677
- });
678
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
679
- case 4:
680
- _b.sent();
681
- return [2 /*return*/];
682
- }
683
- });
451
+ async renameTable(oldTableOrName, newTableName) {
452
+ const upQueries = [];
453
+ const downQueries = [];
454
+ const oldTable = InstanceChecker.isTable(oldTableOrName)
455
+ ? oldTableOrName
456
+ : await this.getCachedTable(oldTableOrName);
457
+ const newTable = oldTable.clone();
458
+ const { schema: schemaName, tableName: oldTableName } = this.driver.parseTableName(oldTable);
459
+ newTable.name = schemaName
460
+ ? `${schemaName}.${newTableName}`
461
+ : newTableName;
462
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(oldTable)} RENAME TO "${newTableName}"`));
463
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME TO "${oldTableName}"`));
464
+ // rename column primary key constraint
465
+ if (newTable.primaryColumns.length > 0) {
466
+ const columnNames = newTable.primaryColumns.map((column) => column.name);
467
+ const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
468
+ const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
469
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${oldPkName}" TO "${newPkName}"`));
470
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${newPkName}" TO "${oldPkName}"`));
471
+ }
472
+ // rename unique constraints
473
+ newTable.uniques.forEach((unique) => {
474
+ // build new constraint name
475
+ const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
476
+ // build queries
477
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${unique.name}" TO "${newUniqueName}"`));
478
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${newUniqueName}" TO "${unique.name}"`));
479
+ // replace constraint name
480
+ unique.name = newUniqueName;
481
+ });
482
+ // rename index constraints
483
+ newTable.indices.forEach((index) => {
484
+ // build new constraint name
485
+ const { schema } = this.driver.parseTableName(newTable);
486
+ const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
487
+ // build queries
488
+ const up = schema
489
+ ? `ALTER INDEX "${schema}"."${index.name}" RENAME TO "${newIndexName}"`
490
+ : `ALTER INDEX "${index.name}" RENAME TO "${newIndexName}"`;
491
+ const down = schema
492
+ ? `ALTER INDEX "${schema}"."${newIndexName}" RENAME TO "${index.name}"`
493
+ : `ALTER INDEX "${newIndexName}" RENAME TO "${index.name}"`;
494
+ upQueries.push(new Query(up));
495
+ downQueries.push(new Query(down));
496
+ // replace constraint name
497
+ index.name = newIndexName;
684
498
  });
685
- };
499
+ // rename foreign key constraints
500
+ newTable.foreignKeys.forEach((foreignKey) => {
501
+ // build new constraint name
502
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
503
+ // build queries
504
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${foreignKey.name}" TO "${newForeignKeyName}"`));
505
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${newForeignKeyName}" TO "${foreignKey.name}"`));
506
+ // replace constraint name
507
+ foreignKey.name = newForeignKeyName;
508
+ });
509
+ await this.executeQueries(upQueries, downQueries);
510
+ }
686
511
  /**
687
512
  * Creates a new column from the column in the table.
688
513
  */
689
- CockroachQueryRunner.prototype.addColumn = function (tableOrName, column) {
690
- return tslib_1.__awaiter(this, void 0, void 0, function () {
691
- var table, _a, clonedTable, upQueries, downQueries, primaryColumns, pkName_1, columnNames_1, pkName, columnNames, columnIndex, unique, uniqueConstraint;
692
- return tslib_1.__generator(this, function (_b) {
693
- switch (_b.label) {
694
- case 0:
695
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
696
- _a = tableOrName;
697
- return [3 /*break*/, 3];
698
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
699
- case 2:
700
- _a = _b.sent();
701
- _b.label = 3;
702
- case 3:
703
- table = _a;
704
- clonedTable = table.clone();
705
- upQueries = [];
706
- downQueries = [];
707
- if (column.generationStrategy === "increment") {
708
- throw new Error("Adding sequential generated columns into existing table is not supported");
709
- }
710
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, column)));
711
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + column.name + "\""));
712
- // create or update primary key constraint
713
- if (column.isPrimary) {
714
- primaryColumns = clonedTable.primaryColumns;
715
- // if table already have primary key, me must drop it and recreate again
716
- // todo: altering pk is not supported yet https://github.com/cockroachdb/cockroach/issues/19141
717
- if (primaryColumns.length > 0) {
718
- pkName_1 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
719
- columnNames_1 = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
720
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName_1 + "\""));
721
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName_1 + "\" PRIMARY KEY (" + columnNames_1 + ")"));
722
- }
723
- primaryColumns.push(column);
724
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
725
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
726
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
727
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
728
- }
729
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
730
- if (columnIndex) {
731
- // CockroachDB stores unique indices as UNIQUE constraints
732
- if (columnIndex.isUnique) {
733
- unique = new TableUnique({
734
- name: this.connection.namingStrategy.uniqueConstraintName(table.name, columnIndex.columnNames),
735
- columnNames: columnIndex.columnNames
736
- });
737
- upQueries.push(this.createUniqueConstraintSql(table, unique));
738
- downQueries.push(this.dropIndexSql(table, unique));
739
- clonedTable.uniques.push(unique);
740
- }
741
- else {
742
- upQueries.push(this.createIndexSql(table, columnIndex));
743
- downQueries.push(this.dropIndexSql(table, columnIndex));
744
- }
745
- }
746
- // create unique constraint
747
- if (column.isUnique) {
748
- uniqueConstraint = new TableUnique({
749
- name: this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),
750
- columnNames: [column.name]
751
- });
752
- clonedTable.uniques.push(uniqueConstraint);
753
- upQueries.push(this.createUniqueConstraintSql(table, uniqueConstraint));
754
- downQueries.push(this.dropIndexSql(table, uniqueConstraint.name)); // CockroachDB creates indices for unique constraints
755
- }
756
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
757
- case 4:
758
- _b.sent();
759
- clonedTable.addColumn(column);
760
- this.replaceCachedTable(table, clonedTable);
761
- return [2 /*return*/];
762
- }
514
+ async addColumn(tableOrName, column) {
515
+ const table = InstanceChecker.isTable(tableOrName)
516
+ ? tableOrName
517
+ : await this.getCachedTable(tableOrName);
518
+ const clonedTable = table.clone();
519
+ const upQueries = [];
520
+ const downQueries = [];
521
+ if (column.generationStrategy === "increment") {
522
+ throw new TypeORMError(`Adding sequential generated columns into existing table is not supported`);
523
+ }
524
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, column)}`));
525
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
526
+ // create or update primary key constraint
527
+ if (column.isPrimary) {
528
+ const primaryColumns = clonedTable.primaryColumns;
529
+ // if table already have primary key, me must drop it and recreate again
530
+ // todo: altering pk is not supported yet https://github.com/cockroachdb/cockroach/issues/19141
531
+ if (primaryColumns.length > 0) {
532
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
533
+ const columnNames = primaryColumns
534
+ .map((column) => `"${column.name}"`)
535
+ .join(", ");
536
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
537
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
538
+ }
539
+ primaryColumns.push(column);
540
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
541
+ const columnNames = primaryColumns
542
+ .map((column) => `"${column.name}"`)
543
+ .join(", ");
544
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
545
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
546
+ }
547
+ // create column index
548
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
549
+ index.columnNames[0] === column.name);
550
+ if (columnIndex) {
551
+ // CockroachDB stores unique indices as UNIQUE constraints
552
+ if (columnIndex.isUnique) {
553
+ const unique = new TableUnique({
554
+ name: this.connection.namingStrategy.uniqueConstraintName(table, columnIndex.columnNames),
555
+ columnNames: columnIndex.columnNames,
556
+ });
557
+ upQueries.push(this.createUniqueConstraintSql(table, unique));
558
+ downQueries.push(this.dropIndexSql(table, unique));
559
+ clonedTable.uniques.push(unique);
560
+ }
561
+ else {
562
+ upQueries.push(this.createIndexSql(table, columnIndex));
563
+ downQueries.push(this.dropIndexSql(table, columnIndex));
564
+ }
565
+ }
566
+ // create unique constraint
567
+ if (column.isUnique) {
568
+ const uniqueConstraint = new TableUnique({
569
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
570
+ columnNames: [column.name],
763
571
  });
764
- });
765
- };
572
+ clonedTable.uniques.push(uniqueConstraint);
573
+ upQueries.push(this.createUniqueConstraintSql(table, uniqueConstraint));
574
+ downQueries.push(this.dropIndexSql(table, uniqueConstraint.name)); // CockroachDB creates indices for unique constraints
575
+ }
576
+ // create column's comment
577
+ if (column.comment) {
578
+ upQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${column.name}" IS ${this.escapeComment(column.comment)}`));
579
+ downQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${column.name}" IS ${this.escapeComment(column.comment)}`));
580
+ }
581
+ await this.executeQueries(upQueries, downQueries);
582
+ clonedTable.addColumn(column);
583
+ this.replaceCachedTable(table, clonedTable);
584
+ }
766
585
  /**
767
586
  * Creates a new columns from the column in the table.
768
587
  */
769
- CockroachQueryRunner.prototype.addColumns = function (tableOrName, columns) {
770
- return tslib_1.__awaiter(this, void 0, void 0, function () {
771
- var _this = this;
772
- return tslib_1.__generator(this, function (_a) {
773
- switch (_a.label) {
774
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(columns, function (column) { return _this.addColumn(tableOrName, column); })];
775
- case 1:
776
- _a.sent();
777
- return [2 /*return*/];
778
- }
779
- });
780
- });
781
- };
588
+ async addColumns(tableOrName, columns) {
589
+ for (const column of columns) {
590
+ await this.addColumn(tableOrName, column);
591
+ }
592
+ }
782
593
  /**
783
594
  * Renames column in the given table.
784
595
  */
785
- CockroachQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) {
786
- return tslib_1.__awaiter(this, void 0, void 0, function () {
787
- var table, _a, oldColumn, newColumn;
788
- return tslib_1.__generator(this, function (_b) {
789
- switch (_b.label) {
790
- case 0:
791
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
792
- _a = tableOrName;
793
- return [3 /*break*/, 3];
794
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
795
- case 2:
796
- _a = _b.sent();
797
- _b.label = 3;
798
- case 3:
799
- table = _a;
800
- oldColumn = oldTableColumnOrName instanceof TableColumn ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; });
801
- if (!oldColumn)
802
- throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
803
- if (newTableColumnOrName instanceof TableColumn) {
804
- newColumn = newTableColumnOrName;
805
- }
806
- else {
807
- newColumn = oldColumn.clone();
808
- newColumn.name = newTableColumnOrName;
809
- }
810
- return [2 /*return*/, this.changeColumn(table, oldColumn, newColumn)];
811
- }
812
- });
813
- });
814
- };
596
+ async renameColumn(tableOrName, oldTableColumnOrName, newTableColumnOrName) {
597
+ const table = InstanceChecker.isTable(tableOrName)
598
+ ? tableOrName
599
+ : await this.getCachedTable(tableOrName);
600
+ const oldColumn = InstanceChecker.isTableColumn(oldTableColumnOrName)
601
+ ? oldTableColumnOrName
602
+ : table.columns.find((c) => c.name === oldTableColumnOrName);
603
+ if (!oldColumn)
604
+ throw new TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
605
+ let newColumn;
606
+ if (InstanceChecker.isTableColumn(newTableColumnOrName)) {
607
+ newColumn = newTableColumnOrName;
608
+ }
609
+ else {
610
+ newColumn = oldColumn.clone();
611
+ newColumn.name = newTableColumnOrName;
612
+ }
613
+ return this.changeColumn(table, oldColumn, newColumn);
614
+ }
815
615
  /**
816
616
  * Changes a column in the table.
817
617
  */
818
- CockroachQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {
819
- return tslib_1.__awaiter(this, void 0, void 0, function () {
820
- var table, _a, clonedTable, upQueries, downQueries, oldColumn, primaryColumns, columnNames, oldPkName, newPkName, oldTableColumn, primaryColumns, pkName, columnNames, column, pkName, columnNames, primaryColumn, column, pkName, columnNames, uniqueConstraint, uniqueConstraint;
821
- var _this = this;
822
- return tslib_1.__generator(this, function (_b) {
823
- switch (_b.label) {
824
- case 0:
825
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
826
- _a = tableOrName;
827
- return [3 /*break*/, 3];
828
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
829
- case 2:
830
- _a = _b.sent();
831
- _b.label = 3;
832
- case 3:
833
- table = _a;
834
- clonedTable = table.clone();
835
- upQueries = [];
836
- downQueries = [];
837
- oldColumn = oldTableColumnOrName instanceof TableColumn
838
- ? oldTableColumnOrName
839
- : table.columns.find(function (column) { return column.name === oldTableColumnOrName; });
840
- if (!oldColumn)
841
- throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
842
- if (!(oldColumn.type !== newColumn.type || oldColumn.length !== newColumn.length)) return [3 /*break*/, 6];
843
- // To avoid data conversion, we just recreate column
844
- return [4 /*yield*/, this.dropColumn(table, oldColumn)];
845
- case 4:
846
- // To avoid data conversion, we just recreate column
847
- _b.sent();
848
- return [4 /*yield*/, this.addColumn(table, newColumn)];
849
- case 5:
850
- _b.sent();
851
- // update cloned table
852
- clonedTable = table.clone();
853
- return [3 /*break*/, 7];
854
- case 6:
855
- if (oldColumn.name !== newColumn.name) {
856
- // rename column
857
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " RENAME COLUMN \"" + oldColumn.name + "\" TO \"" + newColumn.name + "\""));
858
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " RENAME COLUMN \"" + newColumn.name + "\" TO \"" + oldColumn.name + "\""));
859
- // rename column primary key constraint
860
- if (oldColumn.isPrimary === true) {
861
- primaryColumns = clonedTable.primaryColumns;
862
- columnNames = primaryColumns.map(function (column) { return column.name; });
863
- oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
864
- // replace old column name with new column name
865
- columnNames.splice(columnNames.indexOf(oldColumn.name), 1);
866
- columnNames.push(newColumn.name);
867
- newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
868
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " RENAME CONSTRAINT \"" + oldPkName + "\" TO \"" + newPkName + "\""));
869
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " RENAME CONSTRAINT \"" + newPkName + "\" TO \"" + oldPkName + "\""));
870
- }
871
- // rename unique constraints
872
- clonedTable.findColumnUniques(oldColumn).forEach(function (unique) {
873
- // build new constraint name
874
- unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
875
- unique.columnNames.push(newColumn.name);
876
- var newUniqueName = _this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
877
- // build queries
878
- upQueries.push(new Query("ALTER TABLE " + _this.escapePath(table) + " RENAME CONSTRAINT \"" + unique.name + "\" TO \"" + newUniqueName + "\""));
879
- downQueries.push(new Query("ALTER TABLE " + _this.escapePath(table) + " RENAME CONSTRAINT \"" + newUniqueName + "\" TO \"" + unique.name + "\""));
880
- // replace constraint name
881
- unique.name = newUniqueName;
882
- });
883
- // rename index constraints
884
- clonedTable.findColumnIndices(oldColumn).forEach(function (index) {
885
- // build new constraint name
886
- index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
887
- index.columnNames.push(newColumn.name);
888
- var schema = _this.extractSchema(table);
889
- var newIndexName = _this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
890
- // build queries
891
- var up = schema ? "ALTER INDEX \"" + schema + "\".\"" + index.name + "\" RENAME TO \"" + newIndexName + "\"" : "ALTER INDEX \"" + index.name + "\" RENAME TO \"" + newIndexName + "\"";
892
- var down = schema ? "ALTER INDEX \"" + schema + "\".\"" + newIndexName + "\" RENAME TO \"" + index.name + "\"" : "ALTER INDEX \"" + newIndexName + "\" RENAME TO \"" + index.name + "\"";
893
- upQueries.push(new Query(up));
894
- downQueries.push(new Query(down));
895
- // replace constraint name
896
- index.name = newIndexName;
897
- });
898
- // rename foreign key constraints
899
- clonedTable.findColumnForeignKeys(oldColumn).forEach(function (foreignKey) {
900
- // build new constraint name
901
- foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
902
- foreignKey.columnNames.push(newColumn.name);
903
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
904
- // build queries
905
- upQueries.push(new Query("ALTER TABLE " + _this.escapePath(table) + " RENAME CONSTRAINT \"" + foreignKey.name + "\" TO \"" + newForeignKeyName + "\""));
906
- downQueries.push(new Query("ALTER TABLE " + _this.escapePath(table) + " RENAME CONSTRAINT \"" + newForeignKeyName + "\" TO \"" + foreignKey.name + "\""));
907
- // replace constraint name
908
- foreignKey.name = newForeignKeyName;
909
- });
910
- oldTableColumn = clonedTable.columns.find(function (column) { return column.name === oldColumn.name; });
911
- clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
912
- oldColumn.name = newColumn.name;
913
- }
914
- if (newColumn.precision !== oldColumn.precision || newColumn.scale !== oldColumn.scale) {
915
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn)));
916
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn)));
917
- }
918
- if (oldColumn.isNullable !== newColumn.isNullable) {
919
- if (newColumn.isNullable) {
920
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP NOT NULL"));
921
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" SET NOT NULL"));
922
- }
923
- else {
924
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" SET NOT NULL"));
925
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP NOT NULL"));
926
- }
927
- }
928
- if (oldColumn.comment !== newColumn.comment) {
929
- upQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS '" + newColumn.comment + "'"));
930
- downQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS '" + oldColumn.comment + "'"));
931
- }
932
- if (newColumn.isPrimary !== oldColumn.isPrimary) {
933
- primaryColumns = clonedTable.primaryColumns;
934
- // if primary column state changed, we must always drop existed constraint.
935
- if (primaryColumns.length > 0) {
936
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
937
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
938
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
939
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
940
- }
941
- if (newColumn.isPrimary === true) {
942
- primaryColumns.push(newColumn);
943
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
944
- column.isPrimary = true;
945
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
946
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
947
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
948
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
949
- }
950
- else {
951
- primaryColumn = primaryColumns.find(function (c) { return c.name === newColumn.name; });
952
- primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
953
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
954
- column.isPrimary = false;
955
- // if we have another primary keys, we must recreate constraint.
956
- if (primaryColumns.length > 0) {
957
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
958
- columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
959
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
960
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
961
- }
962
- }
963
- }
964
- if (newColumn.isUnique !== oldColumn.isUnique) {
965
- if (newColumn.isUnique) {
966
- uniqueConstraint = new TableUnique({
967
- name: this.connection.namingStrategy.uniqueConstraintName(table.name, [newColumn.name]),
968
- columnNames: [newColumn.name]
969
- });
970
- clonedTable.uniques.push(uniqueConstraint);
971
- upQueries.push(this.createUniqueConstraintSql(table, uniqueConstraint));
972
- // CockroachDB creates index for UNIQUE constraint.
973
- // We must use DROP INDEX ... CASCADE instead of DROP CONSTRAINT.
974
- downQueries.push(this.dropIndexSql(table, uniqueConstraint));
975
- }
976
- else {
977
- uniqueConstraint = clonedTable.uniques.find(function (unique) {
978
- return unique.columnNames.length === 1 && !!unique.columnNames.find(function (columnName) { return columnName === newColumn.name; });
979
- });
980
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1);
981
- // CockroachDB creates index for UNIQUE constraint.
982
- // We must use DROP INDEX ... CASCADE instead of DROP CONSTRAINT.
983
- upQueries.push(this.dropIndexSql(table, uniqueConstraint));
984
- downQueries.push(this.createUniqueConstraintSql(table, uniqueConstraint));
985
- }
986
- }
987
- if (oldColumn.isGenerated !== newColumn.isGenerated && newColumn.generationStrategy !== "uuid") {
988
- if (newColumn.isGenerated) {
989
- if (newColumn.generationStrategy === "increment") {
990
- throw new Error("Adding sequential generated columns into existing table is not supported");
991
- }
992
- else if (newColumn.generationStrategy === "rowid") {
993
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT unique_rowid()"));
994
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
995
- }
996
- }
997
- else {
998
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
999
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT unique_rowid()"));
1000
- }
1001
- }
1002
- if (newColumn.default !== oldColumn.default) {
1003
- if (newColumn.default !== null && newColumn.default !== undefined) {
1004
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
1005
- if (oldColumn.default !== null && oldColumn.default !== undefined) {
1006
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + oldColumn.default));
1007
- }
1008
- else {
1009
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
1010
- }
1011
- }
1012
- else if (oldColumn.default !== null && oldColumn.default !== undefined) {
1013
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
1014
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + oldColumn.default));
1015
- }
1016
- }
1017
- _b.label = 7;
1018
- case 7: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1019
- case 8:
1020
- _b.sent();
1021
- this.replaceCachedTable(table, clonedTable);
1022
- return [2 /*return*/];
618
+ async changeColumn(tableOrName, oldTableColumnOrName, newColumn) {
619
+ const table = InstanceChecker.isTable(tableOrName)
620
+ ? tableOrName
621
+ : await this.getCachedTable(tableOrName);
622
+ let clonedTable = table.clone();
623
+ const upQueries = [];
624
+ const downQueries = [];
625
+ const oldColumn = InstanceChecker.isTableColumn(oldTableColumnOrName)
626
+ ? oldTableColumnOrName
627
+ : table.columns.find((column) => column.name === oldTableColumnOrName);
628
+ if (!oldColumn)
629
+ throw new TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
630
+ if (oldColumn.type !== newColumn.type ||
631
+ oldColumn.length !== newColumn.length) {
632
+ // To avoid data conversion, we just recreate column
633
+ await this.dropColumn(table, oldColumn);
634
+ await this.addColumn(table, newColumn);
635
+ // update cloned table
636
+ clonedTable = table.clone();
637
+ }
638
+ else {
639
+ if (oldColumn.name !== newColumn.name) {
640
+ // rename column
641
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${oldColumn.name}" TO "${newColumn.name}"`));
642
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${newColumn.name}" TO "${oldColumn.name}"`));
643
+ // rename column primary key constraint
644
+ if (oldColumn.isPrimary === true) {
645
+ const primaryColumns = clonedTable.primaryColumns;
646
+ // build old primary constraint name
647
+ const columnNames = primaryColumns.map((column) => column.name);
648
+ const oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
649
+ // replace old column name with new column name
650
+ columnNames.splice(columnNames.indexOf(oldColumn.name), 1);
651
+ columnNames.push(newColumn.name);
652
+ // build new primary constraint name
653
+ const newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
654
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${oldPkName}" TO "${newPkName}"`));
655
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${newPkName}" TO "${oldPkName}"`));
1023
656
  }
1024
- });
1025
- });
1026
- };
657
+ // rename unique constraints
658
+ clonedTable.findColumnUniques(oldColumn).forEach((unique) => {
659
+ // build new constraint name
660
+ unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
661
+ unique.columnNames.push(newColumn.name);
662
+ const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
663
+ // build queries
664
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${unique.name}" TO "${newUniqueName}"`));
665
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${newUniqueName}" TO "${unique.name}"`));
666
+ // replace constraint name
667
+ unique.name = newUniqueName;
668
+ });
669
+ // rename index constraints
670
+ clonedTable.findColumnIndices(oldColumn).forEach((index) => {
671
+ // build new constraint name
672
+ index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
673
+ index.columnNames.push(newColumn.name);
674
+ const { schema } = this.driver.parseTableName(table);
675
+ const newIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
676
+ // build queries
677
+ const up = schema
678
+ ? `ALTER INDEX "${schema}"."${index.name}" RENAME TO "${newIndexName}"`
679
+ : `ALTER INDEX "${index.name}" RENAME TO "${newIndexName}"`;
680
+ const down = schema
681
+ ? `ALTER INDEX "${schema}"."${newIndexName}" RENAME TO "${index.name}"`
682
+ : `ALTER INDEX "${newIndexName}" RENAME TO "${index.name}"`;
683
+ upQueries.push(new Query(up));
684
+ downQueries.push(new Query(down));
685
+ // replace constraint name
686
+ index.name = newIndexName;
687
+ });
688
+ // rename foreign key constraints
689
+ clonedTable
690
+ .findColumnForeignKeys(oldColumn)
691
+ .forEach((foreignKey) => {
692
+ // build new constraint name
693
+ foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
694
+ foreignKey.columnNames.push(newColumn.name);
695
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
696
+ // build queries
697
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${foreignKey.name}" TO "${newForeignKeyName}"`));
698
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${newForeignKeyName}" TO "${foreignKey.name}"`));
699
+ // replace constraint name
700
+ foreignKey.name = newForeignKeyName;
701
+ });
702
+ // rename old column in the Table object
703
+ const oldTableColumn = clonedTable.columns.find((column) => column.name === oldColumn.name);
704
+ clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
705
+ oldColumn.name = newColumn.name;
706
+ }
707
+ if (newColumn.precision !== oldColumn.precision ||
708
+ newColumn.scale !== oldColumn.scale) {
709
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" TYPE ${this.driver.createFullType(newColumn)}`));
710
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" TYPE ${this.driver.createFullType(oldColumn)}`));
711
+ }
712
+ if (oldColumn.isNullable !== newColumn.isNullable) {
713
+ if (newColumn.isNullable) {
714
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" DROP NOT NULL`));
715
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" SET NOT NULL`));
716
+ }
717
+ else {
718
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" SET NOT NULL`));
719
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" DROP NOT NULL`));
720
+ }
721
+ }
722
+ if (oldColumn.comment !== newColumn.comment) {
723
+ upQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${oldColumn.name}" IS ${this.escapeComment(newColumn.comment)}`));
724
+ downQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${newColumn.name}" IS ${this.escapeComment(oldColumn.comment)}`));
725
+ }
726
+ if (newColumn.isPrimary !== oldColumn.isPrimary) {
727
+ const primaryColumns = clonedTable.primaryColumns;
728
+ // if primary column state changed, we must always drop existed constraint.
729
+ if (primaryColumns.length > 0) {
730
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
731
+ const columnNames = primaryColumns
732
+ .map((column) => `"${column.name}"`)
733
+ .join(", ");
734
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
735
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
736
+ }
737
+ if (newColumn.isPrimary === true) {
738
+ primaryColumns.push(newColumn);
739
+ // update column in table
740
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
741
+ column.isPrimary = true;
742
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
743
+ const columnNames = primaryColumns
744
+ .map((column) => `"${column.name}"`)
745
+ .join(", ");
746
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
747
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
748
+ }
749
+ else {
750
+ const primaryColumn = primaryColumns.find((c) => c.name === newColumn.name);
751
+ primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
752
+ // update column in table
753
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
754
+ column.isPrimary = false;
755
+ // if we have another primary keys, we must recreate constraint.
756
+ if (primaryColumns.length > 0) {
757
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
758
+ const columnNames = primaryColumns
759
+ .map((column) => `"${column.name}"`)
760
+ .join(", ");
761
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
762
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
763
+ }
764
+ }
765
+ }
766
+ if (newColumn.isUnique !== oldColumn.isUnique) {
767
+ if (newColumn.isUnique) {
768
+ const uniqueConstraint = new TableUnique({
769
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [newColumn.name]),
770
+ columnNames: [newColumn.name],
771
+ });
772
+ clonedTable.uniques.push(uniqueConstraint);
773
+ upQueries.push(this.createUniqueConstraintSql(table, uniqueConstraint));
774
+ // CockroachDB creates index for UNIQUE constraint.
775
+ // We must use DROP INDEX ... CASCADE instead of DROP CONSTRAINT.
776
+ downQueries.push(this.dropIndexSql(table, uniqueConstraint));
777
+ }
778
+ else {
779
+ const uniqueConstraint = clonedTable.uniques.find((unique) => {
780
+ return (unique.columnNames.length === 1 &&
781
+ !!unique.columnNames.find((columnName) => columnName === newColumn.name));
782
+ });
783
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1);
784
+ // CockroachDB creates index for UNIQUE constraint.
785
+ // We must use DROP INDEX ... CASCADE instead of DROP CONSTRAINT.
786
+ upQueries.push(this.dropIndexSql(table, uniqueConstraint));
787
+ downQueries.push(this.createUniqueConstraintSql(table, uniqueConstraint));
788
+ }
789
+ }
790
+ if (oldColumn.isGenerated !== newColumn.isGenerated &&
791
+ newColumn.generationStrategy !== "uuid") {
792
+ if (newColumn.isGenerated) {
793
+ if (newColumn.generationStrategy === "increment") {
794
+ throw new TypeORMError(`Adding sequential generated columns into existing table is not supported`);
795
+ }
796
+ else if (newColumn.generationStrategy === "rowid") {
797
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT unique_rowid()`));
798
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
799
+ }
800
+ }
801
+ else {
802
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
803
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT unique_rowid()`));
804
+ }
805
+ }
806
+ if (newColumn.default !== oldColumn.default) {
807
+ if (newColumn.default !== null &&
808
+ newColumn.default !== undefined) {
809
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${newColumn.default}`));
810
+ if (oldColumn.default !== null &&
811
+ oldColumn.default !== undefined) {
812
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${oldColumn.default}`));
813
+ }
814
+ else {
815
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
816
+ }
817
+ }
818
+ else if (oldColumn.default !== null &&
819
+ oldColumn.default !== undefined) {
820
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
821
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${oldColumn.default}`));
822
+ }
823
+ }
824
+ }
825
+ await this.executeQueries(upQueries, downQueries);
826
+ this.replaceCachedTable(table, clonedTable);
827
+ }
1027
828
  /**
1028
829
  * Changes a column in the table.
1029
830
  */
1030
- CockroachQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
1031
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1032
- var _this = this;
1033
- return tslib_1.__generator(this, function (_a) {
1034
- switch (_a.label) {
1035
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(changedColumns, function (changedColumn) { return _this.changeColumn(tableOrName, changedColumn.oldColumn, changedColumn.newColumn); })];
1036
- case 1:
1037
- _a.sent();
1038
- return [2 /*return*/];
1039
- }
1040
- });
1041
- });
1042
- };
831
+ async changeColumns(tableOrName, changedColumns) {
832
+ for (const { oldColumn, newColumn } of changedColumns) {
833
+ await this.changeColumn(tableOrName, oldColumn, newColumn);
834
+ }
835
+ }
1043
836
  /**
1044
837
  * Drops column in the table.
1045
838
  */
1046
- CockroachQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {
1047
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1048
- var table, _a, column, clonedTable, upQueries, downQueries, pkName, columnNames, tableColumn, pkName_2, columnNames_2, columnIndex, columnCheck, columnUnique;
1049
- return tslib_1.__generator(this, function (_b) {
1050
- switch (_b.label) {
1051
- case 0:
1052
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1053
- _a = tableOrName;
1054
- return [3 /*break*/, 3];
1055
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1056
- case 2:
1057
- _a = _b.sent();
1058
- _b.label = 3;
1059
- case 3:
1060
- table = _a;
1061
- column = columnOrName instanceof TableColumn ? columnOrName : table.findColumnByName(columnOrName);
1062
- if (!column)
1063
- throw new Error("Column \"" + columnOrName + "\" was not found in table \"" + table.name + "\"");
1064
- clonedTable = table.clone();
1065
- upQueries = [];
1066
- downQueries = [];
1067
- // drop primary key constraint
1068
- // todo: altering pk is not supported yet https://github.com/cockroachdb/cockroach/issues/19141
1069
- if (column.isPrimary) {
1070
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; }));
1071
- columnNames = clonedTable.primaryColumns.map(function (primaryColumn) { return "\"" + primaryColumn.name + "\""; }).join(", ");
1072
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP CONSTRAINT \"" + pkName + "\""));
1073
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNames + ")"));
1074
- tableColumn = clonedTable.findColumnByName(column.name);
1075
- tableColumn.isPrimary = false;
1076
- // if primary key have multiple columns, we must recreate it without dropped column
1077
- if (clonedTable.primaryColumns.length > 0) {
1078
- pkName_2 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, clonedTable.primaryColumns.map(function (column) { return column.name; }));
1079
- columnNames_2 = clonedTable.primaryColumns.map(function (primaryColumn) { return "\"" + primaryColumn.name + "\""; }).join(", ");
1080
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD CONSTRAINT \"" + pkName_2 + "\" PRIMARY KEY (" + columnNames_2 + ")"));
1081
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP CONSTRAINT \"" + pkName_2 + "\""));
1082
- }
1083
- }
1084
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
1085
- if (columnIndex) {
1086
- clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
1087
- upQueries.push(this.dropIndexSql(table, columnIndex));
1088
- downQueries.push(this.createIndexSql(table, columnIndex));
1089
- }
1090
- columnCheck = clonedTable.checks.find(function (check) { return !!check.columnNames && check.columnNames.length === 1 && check.columnNames[0] === column.name; });
1091
- if (columnCheck) {
1092
- clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1);
1093
- upQueries.push(this.dropCheckConstraintSql(table, columnCheck));
1094
- downQueries.push(this.createCheckConstraintSql(table, columnCheck));
1095
- }
1096
- columnUnique = clonedTable.uniques.find(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });
1097
- if (columnUnique) {
1098
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1);
1099
- upQueries.push(this.dropIndexSql(table, columnUnique.name)); // CockroachDB creates indices for unique constraints
1100
- downQueries.push(this.createUniqueConstraintSql(table, columnUnique));
1101
- }
1102
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN \"" + column.name + "\""));
1103
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(table, column)));
1104
- if (column.generationStrategy === "increment") {
1105
- upQueries.push(new Query("DROP SEQUENCE " + this.buildSequenceName(table, column)));
1106
- downQueries.push(new Query("CREATE SEQUENCE " + this.buildSequenceName(table, column)));
1107
- }
1108
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1109
- case 4:
1110
- _b.sent();
1111
- clonedTable.removeColumn(column);
1112
- this.replaceCachedTable(table, clonedTable);
1113
- return [2 /*return*/];
1114
- }
1115
- });
1116
- });
1117
- };
839
+ async dropColumn(tableOrName, columnOrName) {
840
+ const table = InstanceChecker.isTable(tableOrName)
841
+ ? tableOrName
842
+ : await this.getCachedTable(tableOrName);
843
+ const column = InstanceChecker.isTableColumn(columnOrName)
844
+ ? columnOrName
845
+ : table.findColumnByName(columnOrName);
846
+ if (!column)
847
+ throw new TypeORMError(`Column "${columnOrName}" was not found in table "${table.name}"`);
848
+ const clonedTable = table.clone();
849
+ const upQueries = [];
850
+ const downQueries = [];
851
+ // drop primary key constraint
852
+ // todo: altering pk is not supported yet https://github.com/cockroachdb/cockroach/issues/19141
853
+ if (column.isPrimary) {
854
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
855
+ const columnNames = clonedTable.primaryColumns
856
+ .map((primaryColumn) => `"${primaryColumn.name}"`)
857
+ .join(", ");
858
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP CONSTRAINT "${pkName}"`));
859
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
860
+ // update column in table
861
+ const tableColumn = clonedTable.findColumnByName(column.name);
862
+ tableColumn.isPrimary = false;
863
+ // if primary key have multiple columns, we must recreate it without dropped column
864
+ if (clonedTable.primaryColumns.length > 0) {
865
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
866
+ const columnNames = clonedTable.primaryColumns
867
+ .map((primaryColumn) => `"${primaryColumn.name}"`)
868
+ .join(", ");
869
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
870
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP CONSTRAINT "${pkName}"`));
871
+ }
872
+ }
873
+ // drop column index
874
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
875
+ index.columnNames[0] === column.name);
876
+ if (columnIndex) {
877
+ clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
878
+ upQueries.push(this.dropIndexSql(table, columnIndex));
879
+ downQueries.push(this.createIndexSql(table, columnIndex));
880
+ }
881
+ // drop column check
882
+ const columnCheck = clonedTable.checks.find((check) => !!check.columnNames &&
883
+ check.columnNames.length === 1 &&
884
+ check.columnNames[0] === column.name);
885
+ if (columnCheck) {
886
+ clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1);
887
+ upQueries.push(this.dropCheckConstraintSql(table, columnCheck));
888
+ downQueries.push(this.createCheckConstraintSql(table, columnCheck));
889
+ }
890
+ // drop column unique
891
+ const columnUnique = clonedTable.uniques.find((unique) => unique.columnNames.length === 1 &&
892
+ unique.columnNames[0] === column.name);
893
+ if (columnUnique) {
894
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1);
895
+ upQueries.push(this.dropIndexSql(table, columnUnique.name)); // CockroachDB creates indices for unique constraints
896
+ downQueries.push(this.createUniqueConstraintSql(table, columnUnique));
897
+ }
898
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
899
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, column)}`));
900
+ if (column.generationStrategy === "increment") {
901
+ upQueries.push(new Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
902
+ downQueries.push(new Query(`CREATE SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
903
+ }
904
+ await this.executeQueries(upQueries, downQueries);
905
+ clonedTable.removeColumn(column);
906
+ this.replaceCachedTable(table, clonedTable);
907
+ }
1118
908
  /**
1119
909
  * Drops the columns in the table.
1120
910
  */
1121
- CockroachQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
1122
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1123
- var _this = this;
1124
- return tslib_1.__generator(this, function (_a) {
1125
- switch (_a.label) {
1126
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(columns, function (column) { return _this.dropColumn(tableOrName, column); })];
1127
- case 1:
1128
- _a.sent();
1129
- return [2 /*return*/];
1130
- }
1131
- });
1132
- });
1133
- };
911
+ async dropColumns(tableOrName, columns) {
912
+ for (const column of columns) {
913
+ await this.dropColumn(tableOrName, column);
914
+ }
915
+ }
1134
916
  /**
1135
917
  * Creates a new primary key.
1136
918
  */
1137
- CockroachQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) {
1138
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1139
- var table, _a, clonedTable, up, down;
1140
- return tslib_1.__generator(this, function (_b) {
1141
- switch (_b.label) {
1142
- case 0:
1143
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1144
- _a = tableOrName;
1145
- return [3 /*break*/, 3];
1146
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1147
- case 2:
1148
- _a = _b.sent();
1149
- _b.label = 3;
1150
- case 3:
1151
- table = _a;
1152
- clonedTable = table.clone();
1153
- up = this.createPrimaryKeySql(table, columnNames);
1154
- // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
1155
- clonedTable.columns.forEach(function (column) {
1156
- if (columnNames.find(function (columnName) { return columnName === column.name; }))
1157
- column.isPrimary = true;
1158
- });
1159
- down = this.dropPrimaryKeySql(clonedTable);
1160
- return [4 /*yield*/, this.executeQueries(up, down)];
1161
- case 4:
1162
- _b.sent();
1163
- this.replaceCachedTable(table, clonedTable);
1164
- return [2 /*return*/];
1165
- }
1166
- });
919
+ async createPrimaryKey(tableOrName, columnNames) {
920
+ const table = InstanceChecker.isTable(tableOrName)
921
+ ? tableOrName
922
+ : await this.getCachedTable(tableOrName);
923
+ const clonedTable = table.clone();
924
+ const up = this.createPrimaryKeySql(table, columnNames);
925
+ // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
926
+ clonedTable.columns.forEach((column) => {
927
+ if (columnNames.find((columnName) => columnName === column.name))
928
+ column.isPrimary = true;
1167
929
  });
1168
- };
930
+ const down = this.dropPrimaryKeySql(clonedTable);
931
+ await this.executeQueries(up, down);
932
+ this.replaceCachedTable(table, clonedTable);
933
+ }
1169
934
  /**
1170
935
  * Updates composite primary keys.
1171
936
  */
1172
- CockroachQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) {
1173
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1174
- var table, _a, clonedTable, columnNames, upQueries, downQueries, primaryColumns, pkName_3, columnNamesString_1, pkName, columnNamesString;
1175
- return tslib_1.__generator(this, function (_b) {
1176
- switch (_b.label) {
1177
- case 0:
1178
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1179
- _a = tableOrName;
1180
- return [3 /*break*/, 3];
1181
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1182
- case 2:
1183
- _a = _b.sent();
1184
- _b.label = 3;
1185
- case 3:
1186
- table = _a;
1187
- clonedTable = table.clone();
1188
- columnNames = columns.map(function (column) { return column.name; });
1189
- upQueries = [];
1190
- downQueries = [];
1191
- primaryColumns = clonedTable.primaryColumns;
1192
- if (primaryColumns.length > 0) {
1193
- pkName_3 = this.connection.namingStrategy.primaryKeyName(clonedTable.name, primaryColumns.map(function (column) { return column.name; }));
1194
- columnNamesString_1 = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
1195
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName_3 + "\""));
1196
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName_3 + "\" PRIMARY KEY (" + columnNamesString_1 + ")"));
1197
- }
1198
- // update columns in table.
1199
- clonedTable.columns
1200
- .filter(function (column) { return columnNames.indexOf(column.name) !== -1; })
1201
- .forEach(function (column) { return column.isPrimary = true; });
1202
- pkName = this.connection.namingStrategy.primaryKeyName(clonedTable.name, columnNames);
1203
- columnNamesString = columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
1204
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + pkName + "\" PRIMARY KEY (" + columnNamesString + ")"));
1205
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + pkName + "\""));
1206
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1207
- case 4:
1208
- _b.sent();
1209
- this.replaceCachedTable(table, clonedTable);
1210
- return [2 /*return*/];
1211
- }
1212
- });
1213
- });
1214
- };
937
+ async updatePrimaryKeys(tableOrName, columns) {
938
+ const table = InstanceChecker.isTable(tableOrName)
939
+ ? tableOrName
940
+ : await this.getCachedTable(tableOrName);
941
+ const clonedTable = table.clone();
942
+ const columnNames = columns.map((column) => column.name);
943
+ const upQueries = [];
944
+ const downQueries = [];
945
+ // if table already have primary columns, we must drop them.
946
+ const primaryColumns = clonedTable.primaryColumns;
947
+ if (primaryColumns.length > 0) {
948
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
949
+ const columnNamesString = primaryColumns
950
+ .map((column) => `"${column.name}"`)
951
+ .join(", ");
952
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
953
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNamesString})`));
954
+ }
955
+ // update columns in table.
956
+ clonedTable.columns
957
+ .filter((column) => columnNames.indexOf(column.name) !== -1)
958
+ .forEach((column) => (column.isPrimary = true));
959
+ const pkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
960
+ const columnNamesString = columnNames
961
+ .map((columnName) => `"${columnName}"`)
962
+ .join(", ");
963
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNamesString})`));
964
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
965
+ await this.executeQueries(upQueries, downQueries);
966
+ this.replaceCachedTable(table, clonedTable);
967
+ }
1215
968
  /**
1216
969
  * Drops a primary key.
1217
970
  */
1218
- CockroachQueryRunner.prototype.dropPrimaryKey = function (tableOrName) {
1219
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1220
- var table, _a, up, down;
1221
- return tslib_1.__generator(this, function (_b) {
1222
- switch (_b.label) {
1223
- case 0:
1224
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1225
- _a = tableOrName;
1226
- return [3 /*break*/, 3];
1227
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1228
- case 2:
1229
- _a = _b.sent();
1230
- _b.label = 3;
1231
- case 3:
1232
- table = _a;
1233
- up = this.dropPrimaryKeySql(table);
1234
- down = this.createPrimaryKeySql(table, table.primaryColumns.map(function (column) { return column.name; }));
1235
- return [4 /*yield*/, this.executeQueries(up, down)];
1236
- case 4:
1237
- _b.sent();
1238
- table.primaryColumns.forEach(function (column) {
1239
- column.isPrimary = false;
1240
- });
1241
- return [2 /*return*/];
1242
- }
1243
- });
971
+ async dropPrimaryKey(tableOrName) {
972
+ const table = InstanceChecker.isTable(tableOrName)
973
+ ? tableOrName
974
+ : await this.getCachedTable(tableOrName);
975
+ const up = this.dropPrimaryKeySql(table);
976
+ const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
977
+ await this.executeQueries(up, down);
978
+ table.primaryColumns.forEach((column) => {
979
+ column.isPrimary = false;
1244
980
  });
1245
- };
981
+ }
1246
982
  /**
1247
983
  * Creates new unique constraint.
1248
984
  */
1249
- CockroachQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) {
1250
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1251
- var table, _a, up, down;
1252
- return tslib_1.__generator(this, function (_b) {
1253
- switch (_b.label) {
1254
- case 0:
1255
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1256
- _a = tableOrName;
1257
- return [3 /*break*/, 3];
1258
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1259
- case 2:
1260
- _a = _b.sent();
1261
- _b.label = 3;
1262
- case 3:
1263
- table = _a;
1264
- // new unique constraint may be passed without name. In this case we generate unique name manually.
1265
- if (!uniqueConstraint.name)
1266
- uniqueConstraint.name = this.connection.namingStrategy.uniqueConstraintName(table.name, uniqueConstraint.columnNames);
1267
- up = this.createUniqueConstraintSql(table, uniqueConstraint);
1268
- down = this.dropIndexSql(table, uniqueConstraint);
1269
- return [4 /*yield*/, this.executeQueries(up, down)];
1270
- case 4:
1271
- _b.sent();
1272
- table.addUniqueConstraint(uniqueConstraint);
1273
- return [2 /*return*/];
1274
- }
1275
- });
1276
- });
1277
- };
985
+ async createUniqueConstraint(tableOrName, uniqueConstraint) {
986
+ const table = InstanceChecker.isTable(tableOrName)
987
+ ? tableOrName
988
+ : await this.getCachedTable(tableOrName);
989
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
990
+ if (!uniqueConstraint.name)
991
+ uniqueConstraint.name =
992
+ this.connection.namingStrategy.uniqueConstraintName(table, uniqueConstraint.columnNames);
993
+ const up = this.createUniqueConstraintSql(table, uniqueConstraint);
994
+ // CockroachDB creates index for UNIQUE constraint.
995
+ // We must use DROP INDEX ... CASCADE instead of DROP CONSTRAINT.
996
+ const down = this.dropIndexSql(table, uniqueConstraint);
997
+ await this.executeQueries(up, down);
998
+ table.addUniqueConstraint(uniqueConstraint);
999
+ }
1278
1000
  /**
1279
1001
  * Creates new unique constraints.
1280
1002
  */
1281
- CockroachQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
1282
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1283
- var _this = this;
1284
- return tslib_1.__generator(this, function (_a) {
1285
- switch (_a.label) {
1286
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(uniqueConstraints, function (uniqueConstraint) { return _this.createUniqueConstraint(tableOrName, uniqueConstraint); })];
1287
- case 1:
1288
- _a.sent();
1289
- return [2 /*return*/];
1290
- }
1291
- });
1292
- });
1293
- };
1003
+ async createUniqueConstraints(tableOrName, uniqueConstraints) {
1004
+ for (const uniqueConstraint of uniqueConstraints) {
1005
+ await this.createUniqueConstraint(tableOrName, uniqueConstraint);
1006
+ }
1007
+ }
1294
1008
  /**
1295
1009
  * Drops unique constraint.
1296
1010
  */
1297
- CockroachQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) {
1298
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1299
- var table, _a, uniqueConstraint, up, down;
1300
- return tslib_1.__generator(this, function (_b) {
1301
- switch (_b.label) {
1302
- case 0:
1303
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1304
- _a = tableOrName;
1305
- return [3 /*break*/, 3];
1306
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1307
- case 2:
1308
- _a = _b.sent();
1309
- _b.label = 3;
1310
- case 3:
1311
- table = _a;
1312
- uniqueConstraint = uniqueOrName instanceof TableUnique ? uniqueOrName : table.uniques.find(function (u) { return u.name === uniqueOrName; });
1313
- if (!uniqueConstraint)
1314
- throw new Error("Supplied unique constraint was not found in table " + table.name);
1315
- up = this.dropIndexSql(table, uniqueConstraint);
1316
- down = this.createUniqueConstraintSql(table, uniqueConstraint);
1317
- return [4 /*yield*/, this.executeQueries(up, down)];
1318
- case 4:
1319
- _b.sent();
1320
- table.removeUniqueConstraint(uniqueConstraint);
1321
- return [2 /*return*/];
1322
- }
1323
- });
1324
- });
1325
- };
1011
+ async dropUniqueConstraint(tableOrName, uniqueOrName) {
1012
+ const table = InstanceChecker.isTable(tableOrName)
1013
+ ? tableOrName
1014
+ : await this.getCachedTable(tableOrName);
1015
+ const uniqueConstraint = InstanceChecker.isTableUnique(uniqueOrName)
1016
+ ? uniqueOrName
1017
+ : table.uniques.find((u) => u.name === uniqueOrName);
1018
+ if (!uniqueConstraint)
1019
+ throw new TypeORMError(`Supplied unique constraint was not found in table ${table.name}`);
1020
+ // CockroachDB creates index for UNIQUE constraint.
1021
+ // We must use DROP INDEX ... CASCADE instead of DROP CONSTRAINT.
1022
+ const up = this.dropIndexSql(table, uniqueConstraint);
1023
+ const down = this.createUniqueConstraintSql(table, uniqueConstraint);
1024
+ await this.executeQueries(up, down);
1025
+ table.removeUniqueConstraint(uniqueConstraint);
1026
+ }
1326
1027
  /**
1327
1028
  * Drops unique constraints.
1328
1029
  */
1329
- CockroachQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
1330
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1331
- var _this = this;
1332
- return tslib_1.__generator(this, function (_a) {
1333
- switch (_a.label) {
1334
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(uniqueConstraints, function (uniqueConstraint) { return _this.dropUniqueConstraint(tableOrName, uniqueConstraint); })];
1335
- case 1:
1336
- _a.sent();
1337
- return [2 /*return*/];
1338
- }
1339
- });
1340
- });
1341
- };
1030
+ async dropUniqueConstraints(tableOrName, uniqueConstraints) {
1031
+ for (const uniqueConstraint of uniqueConstraints) {
1032
+ await this.dropUniqueConstraint(tableOrName, uniqueConstraint);
1033
+ }
1034
+ }
1342
1035
  /**
1343
1036
  * Creates new check constraint.
1344
1037
  */
1345
- CockroachQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) {
1346
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1347
- var table, _a, up, down;
1348
- return tslib_1.__generator(this, function (_b) {
1349
- switch (_b.label) {
1350
- case 0:
1351
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1352
- _a = tableOrName;
1353
- return [3 /*break*/, 3];
1354
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1355
- case 2:
1356
- _a = _b.sent();
1357
- _b.label = 3;
1358
- case 3:
1359
- table = _a;
1360
- // new unique constraint may be passed without name. In this case we generate unique name manually.
1361
- if (!checkConstraint.name)
1362
- checkConstraint.name = this.connection.namingStrategy.checkConstraintName(table.name, checkConstraint.expression);
1363
- up = this.createCheckConstraintSql(table, checkConstraint);
1364
- down = this.dropCheckConstraintSql(table, checkConstraint);
1365
- return [4 /*yield*/, this.executeQueries(up, down)];
1366
- case 4:
1367
- _b.sent();
1368
- table.addCheckConstraint(checkConstraint);
1369
- return [2 /*return*/];
1370
- }
1371
- });
1372
- });
1373
- };
1038
+ async createCheckConstraint(tableOrName, checkConstraint) {
1039
+ const table = InstanceChecker.isTable(tableOrName)
1040
+ ? tableOrName
1041
+ : await this.getCachedTable(tableOrName);
1042
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
1043
+ if (!checkConstraint.name)
1044
+ checkConstraint.name =
1045
+ this.connection.namingStrategy.checkConstraintName(table, checkConstraint.expression);
1046
+ const up = this.createCheckConstraintSql(table, checkConstraint);
1047
+ const down = this.dropCheckConstraintSql(table, checkConstraint);
1048
+ await this.executeQueries(up, down);
1049
+ table.addCheckConstraint(checkConstraint);
1050
+ }
1374
1051
  /**
1375
1052
  * Creates new check constraints.
1376
1053
  */
1377
- CockroachQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) {
1378
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1379
- var promises;
1380
- var _this = this;
1381
- return tslib_1.__generator(this, function (_a) {
1382
- switch (_a.label) {
1383
- case 0:
1384
- promises = checkConstraints.map(function (checkConstraint) { return _this.createCheckConstraint(tableOrName, checkConstraint); });
1385
- return [4 /*yield*/, Promise.all(promises)];
1386
- case 1:
1387
- _a.sent();
1388
- return [2 /*return*/];
1389
- }
1390
- });
1391
- });
1392
- };
1054
+ async createCheckConstraints(tableOrName, checkConstraints) {
1055
+ const promises = checkConstraints.map((checkConstraint) => this.createCheckConstraint(tableOrName, checkConstraint));
1056
+ await Promise.all(promises);
1057
+ }
1393
1058
  /**
1394
1059
  * Drops check constraint.
1395
1060
  */
1396
- CockroachQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) {
1397
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1398
- var table, _a, checkConstraint, up, down;
1399
- return tslib_1.__generator(this, function (_b) {
1400
- switch (_b.label) {
1401
- case 0:
1402
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1403
- _a = tableOrName;
1404
- return [3 /*break*/, 3];
1405
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1406
- case 2:
1407
- _a = _b.sent();
1408
- _b.label = 3;
1409
- case 3:
1410
- table = _a;
1411
- checkConstraint = checkOrName instanceof TableCheck ? checkOrName : table.checks.find(function (c) { return c.name === checkOrName; });
1412
- if (!checkConstraint)
1413
- throw new Error("Supplied check constraint was not found in table " + table.name);
1414
- up = this.dropCheckConstraintSql(table, checkConstraint);
1415
- down = this.createCheckConstraintSql(table, checkConstraint);
1416
- return [4 /*yield*/, this.executeQueries(up, down)];
1417
- case 4:
1418
- _b.sent();
1419
- table.removeCheckConstraint(checkConstraint);
1420
- return [2 /*return*/];
1421
- }
1422
- });
1423
- });
1424
- };
1061
+ async dropCheckConstraint(tableOrName, checkOrName) {
1062
+ const table = InstanceChecker.isTable(tableOrName)
1063
+ ? tableOrName
1064
+ : await this.getCachedTable(tableOrName);
1065
+ const checkConstraint = InstanceChecker.isTableCheck(checkOrName)
1066
+ ? checkOrName
1067
+ : table.checks.find((c) => c.name === checkOrName);
1068
+ if (!checkConstraint)
1069
+ throw new TypeORMError(`Supplied check constraint was not found in table ${table.name}`);
1070
+ const up = this.dropCheckConstraintSql(table, checkConstraint);
1071
+ const down = this.createCheckConstraintSql(table, checkConstraint);
1072
+ await this.executeQueries(up, down);
1073
+ table.removeCheckConstraint(checkConstraint);
1074
+ }
1425
1075
  /**
1426
1076
  * Drops check constraints.
1427
1077
  */
1428
- CockroachQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) {
1429
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1430
- var promises;
1431
- var _this = this;
1432
- return tslib_1.__generator(this, function (_a) {
1433
- switch (_a.label) {
1434
- case 0:
1435
- promises = checkConstraints.map(function (checkConstraint) { return _this.dropCheckConstraint(tableOrName, checkConstraint); });
1436
- return [4 /*yield*/, Promise.all(promises)];
1437
- case 1:
1438
- _a.sent();
1439
- return [2 /*return*/];
1440
- }
1441
- });
1442
- });
1443
- };
1078
+ async dropCheckConstraints(tableOrName, checkConstraints) {
1079
+ const promises = checkConstraints.map((checkConstraint) => this.dropCheckConstraint(tableOrName, checkConstraint));
1080
+ await Promise.all(promises);
1081
+ }
1444
1082
  /**
1445
1083
  * Creates new exclusion constraint.
1446
1084
  */
1447
- CockroachQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) {
1448
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1449
- return tslib_1.__generator(this, function (_a) {
1450
- throw new Error("CockroachDB does not support exclusion constraints.");
1451
- });
1452
- });
1453
- };
1085
+ async createExclusionConstraint(tableOrName, exclusionConstraint) {
1086
+ throw new TypeORMError(`CockroachDB does not support exclusion constraints.`);
1087
+ }
1454
1088
  /**
1455
1089
  * Creates new exclusion constraints.
1456
1090
  */
1457
- CockroachQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) {
1458
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1459
- return tslib_1.__generator(this, function (_a) {
1460
- throw new Error("CockroachDB does not support exclusion constraints.");
1461
- });
1462
- });
1463
- };
1091
+ async createExclusionConstraints(tableOrName, exclusionConstraints) {
1092
+ throw new TypeORMError(`CockroachDB does not support exclusion constraints.`);
1093
+ }
1464
1094
  /**
1465
1095
  * Drops exclusion constraint.
1466
1096
  */
1467
- CockroachQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) {
1468
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1469
- return tslib_1.__generator(this, function (_a) {
1470
- throw new Error("CockroachDB does not support exclusion constraints.");
1471
- });
1472
- });
1473
- };
1097
+ async dropExclusionConstraint(tableOrName, exclusionOrName) {
1098
+ throw new TypeORMError(`CockroachDB does not support exclusion constraints.`);
1099
+ }
1474
1100
  /**
1475
1101
  * Drops exclusion constraints.
1476
1102
  */
1477
- CockroachQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) {
1478
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1479
- return tslib_1.__generator(this, function (_a) {
1480
- throw new Error("CockroachDB does not support exclusion constraints.");
1481
- });
1482
- });
1483
- };
1103
+ async dropExclusionConstraints(tableOrName, exclusionConstraints) {
1104
+ throw new TypeORMError(`CockroachDB does not support exclusion constraints.`);
1105
+ }
1484
1106
  /**
1485
1107
  * Creates a new foreign key.
1486
1108
  */
1487
- CockroachQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) {
1488
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1489
- var table, _a, up, down;
1490
- return tslib_1.__generator(this, function (_b) {
1491
- switch (_b.label) {
1492
- case 0:
1493
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1494
- _a = tableOrName;
1495
- return [3 /*break*/, 3];
1496
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1497
- case 2:
1498
- _a = _b.sent();
1499
- _b.label = 3;
1500
- case 3:
1501
- table = _a;
1502
- // new FK may be passed without name. In this case we generate FK name manually.
1503
- if (!foreignKey.name)
1504
- foreignKey.name = this.connection.namingStrategy.foreignKeyName(table.name, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
1505
- up = this.createForeignKeySql(table, foreignKey);
1506
- down = this.dropForeignKeySql(table, foreignKey);
1507
- return [4 /*yield*/, this.executeQueries(up, down)];
1508
- case 4:
1509
- _b.sent();
1510
- table.addForeignKey(foreignKey);
1511
- return [2 /*return*/];
1512
- }
1513
- });
1514
- });
1515
- };
1109
+ async createForeignKey(tableOrName, foreignKey) {
1110
+ const table = InstanceChecker.isTable(tableOrName)
1111
+ ? tableOrName
1112
+ : await this.getCachedTable(tableOrName);
1113
+ // new FK may be passed without name. In this case we generate FK name manually.
1114
+ if (!foreignKey.name)
1115
+ foreignKey.name = this.connection.namingStrategy.foreignKeyName(table, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
1116
+ const up = this.createForeignKeySql(table, foreignKey);
1117
+ const down = this.dropForeignKeySql(table, foreignKey);
1118
+ await this.executeQueries(up, down);
1119
+ table.addForeignKey(foreignKey);
1120
+ }
1516
1121
  /**
1517
1122
  * Creates a new foreign keys.
1518
1123
  */
1519
- CockroachQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
1520
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1521
- var _this = this;
1522
- return tslib_1.__generator(this, function (_a) {
1523
- switch (_a.label) {
1524
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(foreignKeys, function (foreignKey) { return _this.createForeignKey(tableOrName, foreignKey); })];
1525
- case 1:
1526
- _a.sent();
1527
- return [2 /*return*/];
1528
- }
1529
- });
1530
- });
1531
- };
1124
+ async createForeignKeys(tableOrName, foreignKeys) {
1125
+ for (const foreignKey of foreignKeys) {
1126
+ await this.createForeignKey(tableOrName, foreignKey);
1127
+ }
1128
+ }
1532
1129
  /**
1533
1130
  * Drops a foreign key from the table.
1534
1131
  */
1535
- CockroachQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) {
1536
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1537
- var table, _a, foreignKey, 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
- foreignKey = foreignKeyOrName instanceof TableForeignKey ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; });
1551
- if (!foreignKey)
1552
- throw new Error("Supplied foreign key was not found in table " + table.name);
1553
- up = this.dropForeignKeySql(table, foreignKey);
1554
- down = this.createForeignKeySql(table, foreignKey);
1555
- return [4 /*yield*/, this.executeQueries(up, down)];
1556
- case 4:
1557
- _b.sent();
1558
- table.removeForeignKey(foreignKey);
1559
- return [2 /*return*/];
1560
- }
1561
- });
1562
- });
1563
- };
1132
+ async dropForeignKey(tableOrName, foreignKeyOrName) {
1133
+ const table = InstanceChecker.isTable(tableOrName)
1134
+ ? tableOrName
1135
+ : await this.getCachedTable(tableOrName);
1136
+ const foreignKey = InstanceChecker.isTableForeignKey(foreignKeyOrName)
1137
+ ? foreignKeyOrName
1138
+ : table.foreignKeys.find((fk) => fk.name === foreignKeyOrName);
1139
+ if (!foreignKey)
1140
+ throw new TypeORMError(`Supplied foreign key was not found in table ${table.name}`);
1141
+ const up = this.dropForeignKeySql(table, foreignKey);
1142
+ const down = this.createForeignKeySql(table, foreignKey);
1143
+ await this.executeQueries(up, down);
1144
+ table.removeForeignKey(foreignKey);
1145
+ }
1564
1146
  /**
1565
1147
  * Drops a foreign keys from the table.
1566
1148
  */
1567
- CockroachQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
1568
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1569
- var _this = this;
1570
- return tslib_1.__generator(this, function (_a) {
1571
- switch (_a.label) {
1572
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(foreignKeys, function (foreignKey) { return _this.dropForeignKey(tableOrName, foreignKey); })];
1573
- case 1:
1574
- _a.sent();
1575
- return [2 /*return*/];
1576
- }
1577
- });
1578
- });
1579
- };
1149
+ async dropForeignKeys(tableOrName, foreignKeys) {
1150
+ for (const foreignKey of foreignKeys) {
1151
+ await this.dropForeignKey(tableOrName, foreignKey);
1152
+ }
1153
+ }
1580
1154
  /**
1581
1155
  * Creates a new index.
1582
1156
  */
1583
- CockroachQueryRunner.prototype.createIndex = function (tableOrName, index) {
1584
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1585
- var table, _a, unique, up, down, up, down;
1586
- return tslib_1.__generator(this, function (_b) {
1587
- switch (_b.label) {
1588
- case 0:
1589
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1590
- _a = tableOrName;
1591
- return [3 /*break*/, 3];
1592
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1593
- case 2:
1594
- _a = _b.sent();
1595
- _b.label = 3;
1596
- case 3:
1597
- table = _a;
1598
- // new index may be passed without name. In this case we generate index name manually.
1599
- if (!index.name)
1600
- index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
1601
- if (!index.isUnique) return [3 /*break*/, 5];
1602
- unique = new TableUnique({
1603
- name: index.name,
1604
- columnNames: index.columnNames
1605
- });
1606
- up = this.createUniqueConstraintSql(table, unique);
1607
- down = this.dropIndexSql(table, unique);
1608
- return [4 /*yield*/, this.executeQueries(up, down)];
1609
- case 4:
1610
- _b.sent();
1611
- table.addUniqueConstraint(unique);
1612
- return [3 /*break*/, 7];
1613
- case 5:
1614
- up = this.createIndexSql(table, index);
1615
- down = this.dropIndexSql(table, index);
1616
- return [4 /*yield*/, this.executeQueries(up, down)];
1617
- case 6:
1618
- _b.sent();
1619
- table.addIndex(index);
1620
- _b.label = 7;
1621
- case 7: return [2 /*return*/];
1622
- }
1157
+ async createIndex(tableOrName, index) {
1158
+ const table = InstanceChecker.isTable(tableOrName)
1159
+ ? tableOrName
1160
+ : await this.getCachedTable(tableOrName);
1161
+ // new index may be passed without name. In this case we generate index name manually.
1162
+ if (!index.name)
1163
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
1164
+ // CockroachDB stores unique indices and UNIQUE constraints
1165
+ if (index.isUnique) {
1166
+ const unique = new TableUnique({
1167
+ name: index.name,
1168
+ columnNames: index.columnNames,
1623
1169
  });
1624
- });
1625
- };
1170
+ const up = this.createUniqueConstraintSql(table, unique);
1171
+ // CockroachDB also creates index for UNIQUE constraints.
1172
+ // We can't drop UNIQUE constraint with DROP CONSTRAINT. We must use DROP INDEX ... CASCADE instead.
1173
+ const down = this.dropIndexSql(table, unique);
1174
+ await this.executeQueries(up, down);
1175
+ table.addUniqueConstraint(unique);
1176
+ }
1177
+ else {
1178
+ const up = this.createIndexSql(table, index);
1179
+ const down = this.dropIndexSql(table, index);
1180
+ await this.executeQueries(up, down);
1181
+ table.addIndex(index);
1182
+ }
1183
+ }
1626
1184
  /**
1627
1185
  * Creates a new indices
1628
1186
  */
1629
- CockroachQueryRunner.prototype.createIndices = function (tableOrName, indices) {
1630
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1631
- var _this = this;
1632
- return tslib_1.__generator(this, function (_a) {
1633
- switch (_a.label) {
1634
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(indices, function (index) { return _this.createIndex(tableOrName, index); })];
1635
- case 1:
1636
- _a.sent();
1637
- return [2 /*return*/];
1638
- }
1639
- });
1640
- });
1641
- };
1187
+ async createIndices(tableOrName, indices) {
1188
+ for (const index of indices) {
1189
+ await this.createIndex(tableOrName, index);
1190
+ }
1191
+ }
1642
1192
  /**
1643
1193
  * Drops an index from the table.
1644
1194
  */
1645
- CockroachQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) {
1646
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1647
- var table, _a, index, up, down;
1648
- return tslib_1.__generator(this, function (_b) {
1649
- switch (_b.label) {
1650
- case 0:
1651
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1652
- _a = tableOrName;
1653
- return [3 /*break*/, 3];
1654
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1655
- case 2:
1656
- _a = _b.sent();
1657
- _b.label = 3;
1658
- case 3:
1659
- table = _a;
1660
- index = indexOrName instanceof TableIndex ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; });
1661
- if (!index)
1662
- throw new Error("Supplied index was not found in table " + table.name);
1663
- up = this.dropIndexSql(table, index);
1664
- down = this.createIndexSql(table, index);
1665
- return [4 /*yield*/, this.executeQueries(up, down)];
1666
- case 4:
1667
- _b.sent();
1668
- table.removeIndex(index);
1669
- return [2 /*return*/];
1670
- }
1671
- });
1672
- });
1673
- };
1195
+ async dropIndex(tableOrName, indexOrName) {
1196
+ const table = InstanceChecker.isTable(tableOrName)
1197
+ ? tableOrName
1198
+ : await this.getCachedTable(tableOrName);
1199
+ const index = InstanceChecker.isTableIndex(indexOrName)
1200
+ ? indexOrName
1201
+ : table.indices.find((i) => i.name === indexOrName);
1202
+ if (!index)
1203
+ throw new TypeORMError(`Supplied index ${indexOrName} was not found in table ${table.name}`);
1204
+ const up = this.dropIndexSql(table, index);
1205
+ const down = this.createIndexSql(table, index);
1206
+ await this.executeQueries(up, down);
1207
+ table.removeIndex(index);
1208
+ }
1674
1209
  /**
1675
1210
  * Drops an indices from the table.
1676
1211
  */
1677
- CockroachQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
1678
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1679
- var _this = this;
1680
- return tslib_1.__generator(this, function (_a) {
1681
- switch (_a.label) {
1682
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(indices, function (index) { return _this.dropIndex(tableOrName, index); })];
1683
- case 1:
1684
- _a.sent();
1685
- return [2 /*return*/];
1686
- }
1687
- });
1688
- });
1689
- };
1212
+ async dropIndices(tableOrName, indices) {
1213
+ for (const index of indices) {
1214
+ await this.dropIndex(tableOrName, index);
1215
+ }
1216
+ }
1690
1217
  /**
1691
1218
  * Clears all table contents.
1692
1219
  * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.
1693
1220
  */
1694
- CockroachQueryRunner.prototype.clearTable = function (tableName) {
1695
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1696
- return tslib_1.__generator(this, function (_a) {
1697
- switch (_a.label) {
1698
- case 0: return [4 /*yield*/, this.query("TRUNCATE TABLE " + this.escapePath(tableName))];
1699
- case 1:
1700
- _a.sent();
1701
- return [2 /*return*/];
1702
- }
1703
- });
1704
- });
1705
- };
1221
+ async clearTable(tableName) {
1222
+ await this.query(`TRUNCATE TABLE ${this.escapePath(tableName)}`);
1223
+ }
1706
1224
  /**
1707
1225
  * Removes all tables from the currently connected database.
1708
1226
  */
1709
- CockroachQueryRunner.prototype.clearDatabase = function () {
1710
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1711
- var schemas, schemaNamesString, selectViewDropsQuery, dropViewQueries, selectDropsQuery, dropQueries, selectSequenceDropsQuery, sequenceDropQueries, error_1, rollbackError_1;
1712
- var _this = this;
1713
- return tslib_1.__generator(this, function (_a) {
1714
- switch (_a.label) {
1715
- case 0:
1716
- schemas = [];
1717
- this.connection.entityMetadatas
1718
- .filter(function (metadata) { return metadata.schema; })
1719
- .forEach(function (metadata) {
1720
- var isSchemaExist = !!schemas.find(function (schema) { return schema === metadata.schema; });
1721
- if (!isSchemaExist)
1722
- schemas.push(metadata.schema);
1723
- });
1724
- schemas.push(this.driver.options.schema || "current_schema()");
1725
- schemaNamesString = schemas.map(function (name) {
1726
- return name === "current_schema()" ? name : "'" + name + "'";
1727
- }).join(", ");
1728
- return [4 /*yield*/, this.startTransaction()];
1729
- case 1:
1730
- _a.sent();
1731
- _a.label = 2;
1732
- case 2:
1733
- _a.trys.push([2, 10, , 15]);
1734
- selectViewDropsQuery = "SELECT 'DROP VIEW IF EXISTS \"' || schemaname || '\".\"' || viewname || '\" CASCADE;' as \"query\" " +
1735
- ("FROM \"pg_views\" WHERE \"schemaname\" IN (" + schemaNamesString + ")");
1736
- return [4 /*yield*/, this.query(selectViewDropsQuery)];
1737
- case 3:
1738
- dropViewQueries = _a.sent();
1739
- return [4 /*yield*/, Promise.all(dropViewQueries.map(function (q) { return _this.query(q["query"]); }))];
1740
- case 4:
1741
- _a.sent();
1742
- selectDropsQuery = "SELECT 'DROP TABLE IF EXISTS \"' || table_schema || '\".\"' || table_name || '\" CASCADE;' as \"query\" FROM \"information_schema\".\"tables\" WHERE \"table_schema\" IN (" + schemaNamesString + ")";
1743
- return [4 /*yield*/, this.query(selectDropsQuery)];
1744
- case 5:
1745
- dropQueries = _a.sent();
1746
- return [4 /*yield*/, Promise.all(dropQueries.map(function (q) { return _this.query(q["query"]); }))];
1747
- case 6:
1748
- _a.sent();
1749
- selectSequenceDropsQuery = "SELECT 'DROP SEQUENCE \"' || sequence_schema || '\".\"' || sequence_name || '\";' as \"query\" FROM \"information_schema\".\"sequences\" WHERE \"sequence_schema\" IN (" + schemaNamesString + ")";
1750
- return [4 /*yield*/, this.query(selectSequenceDropsQuery)];
1751
- case 7:
1752
- sequenceDropQueries = _a.sent();
1753
- return [4 /*yield*/, Promise.all(sequenceDropQueries.map(function (q) { return _this.query(q["query"]); }))];
1754
- case 8:
1755
- _a.sent();
1756
- return [4 /*yield*/, this.commitTransaction()];
1757
- case 9:
1758
- _a.sent();
1759
- return [3 /*break*/, 15];
1760
- case 10:
1761
- error_1 = _a.sent();
1762
- _a.label = 11;
1763
- case 11:
1764
- _a.trys.push([11, 13, , 14]);
1765
- return [4 /*yield*/, this.rollbackTransaction()];
1766
- case 12:
1767
- _a.sent();
1768
- return [3 /*break*/, 14];
1769
- case 13:
1770
- rollbackError_1 = _a.sent();
1771
- return [3 /*break*/, 14];
1772
- case 14: throw error_1;
1773
- case 15: return [2 /*return*/];
1774
- }
1775
- });
1227
+ async clearDatabase() {
1228
+ const schemas = [];
1229
+ this.connection.entityMetadatas
1230
+ .filter((metadata) => metadata.schema)
1231
+ .forEach((metadata) => {
1232
+ const isSchemaExist = !!schemas.find((schema) => schema === metadata.schema);
1233
+ if (!isSchemaExist)
1234
+ schemas.push(metadata.schema);
1776
1235
  });
1777
- };
1236
+ schemas.push(this.driver.options.schema || "current_schema()");
1237
+ const schemaNamesString = schemas
1238
+ .map((name) => {
1239
+ return name === "current_schema()" ? name : "'" + name + "'";
1240
+ })
1241
+ .join(", ");
1242
+ const isAnotherTransactionActive = this.isTransactionActive;
1243
+ if (!isAnotherTransactionActive)
1244
+ await this.startTransaction();
1245
+ try {
1246
+ const selectViewDropsQuery = `SELECT 'DROP VIEW IF EXISTS "' || schemaname || '"."' || viewname || '" CASCADE;' as "query" ` +
1247
+ `FROM "pg_views" WHERE "schemaname" IN (${schemaNamesString})`;
1248
+ const dropViewQueries = await this.query(selectViewDropsQuery);
1249
+ await Promise.all(dropViewQueries.map((q) => this.query(q["query"])));
1250
+ const selectDropsQuery = `SELECT 'DROP TABLE IF EXISTS "' || table_schema || '"."' || table_name || '" CASCADE;' as "query" FROM "information_schema"."tables" WHERE "table_schema" IN (${schemaNamesString})`;
1251
+ const dropQueries = await this.query(selectDropsQuery);
1252
+ await Promise.all(dropQueries.map((q) => this.query(q["query"])));
1253
+ const selectSequenceDropsQuery = `SELECT 'DROP SEQUENCE "' || sequence_schema || '"."' || sequence_name || '";' as "query" FROM "information_schema"."sequences" WHERE "sequence_schema" IN (${schemaNamesString})`;
1254
+ const sequenceDropQueries = await this.query(selectSequenceDropsQuery);
1255
+ await Promise.all(sequenceDropQueries.map((q) => this.query(q["query"])));
1256
+ if (!isAnotherTransactionActive)
1257
+ await this.commitTransaction();
1258
+ }
1259
+ catch (error) {
1260
+ try {
1261
+ // we throw original error even if rollback thrown an error
1262
+ if (!isAnotherTransactionActive)
1263
+ await this.rollbackTransaction();
1264
+ }
1265
+ catch (rollbackError) { }
1266
+ throw error;
1267
+ }
1268
+ }
1778
1269
  // -------------------------------------------------------------------------
1779
1270
  // Protected Methods
1780
1271
  // -------------------------------------------------------------------------
1781
- CockroachQueryRunner.prototype.loadViews = function (viewNames) {
1782
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1783
- var hasTable, currentSchemaQuery, currentSchema, viewsCondition, query, dbViews;
1784
- var _this = this;
1785
- return tslib_1.__generator(this, function (_a) {
1786
- switch (_a.label) {
1787
- case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())];
1788
- case 1:
1789
- hasTable = _a.sent();
1790
- if (!hasTable)
1791
- return [2 /*return*/, Promise.resolve([])];
1792
- return [4 /*yield*/, this.query("SELECT * FROM current_schema()")];
1793
- case 2:
1794
- currentSchemaQuery = _a.sent();
1795
- currentSchema = currentSchemaQuery[0]["current_schema"];
1796
- viewsCondition = viewNames.map(function (viewName) {
1797
- var _a = tslib_1.__read(viewName.split("."), 2), schema = _a[0], name = _a[1];
1798
- if (!name) {
1799
- name = schema;
1800
- schema = _this.driver.options.schema || currentSchema;
1801
- }
1802
- return "(\"t\".\"schema\" = '" + schema + "' AND \"t\".\"name\" = '" + name + "')";
1803
- }).join(" OR ");
1804
- query = "SELECT \"t\".*, \"v\".\"check_option\" FROM " + this.escapePath(this.getTypeormMetadataTableName()) + " \"t\" " +
1805
- ("INNER JOIN \"information_schema\".\"views\" \"v\" ON \"v\".\"table_schema\" = \"t\".\"schema\" AND \"v\".\"table_name\" = \"t\".\"name\" WHERE \"t\".\"type\" = 'VIEW' " + (viewsCondition ? "AND (" + viewsCondition + ")" : ""));
1806
- return [4 /*yield*/, this.query(query)];
1807
- case 3:
1808
- dbViews = _a.sent();
1809
- return [2 /*return*/, dbViews.map(function (dbView) {
1810
- var view = new View();
1811
- var schema = dbView["schema"] === currentSchema && !_this.driver.options.schema ? undefined : dbView["schema"];
1812
- view.name = _this.driver.buildTableName(dbView["name"], schema);
1813
- view.expression = dbView["value"];
1814
- return view;
1815
- })];
1816
- }
1817
- });
1272
+ async loadViews(viewNames) {
1273
+ const hasTable = await this.hasTable(this.getTypeormMetadataTableName());
1274
+ if (!hasTable) {
1275
+ return [];
1276
+ }
1277
+ if (!viewNames) {
1278
+ viewNames = [];
1279
+ }
1280
+ const currentDatabase = await this.getCurrentDatabase();
1281
+ const currentSchema = await this.getCurrentSchema();
1282
+ const viewsCondition = viewNames
1283
+ .map((viewName) => {
1284
+ const { schema, tableName } = this.driver.parseTableName(viewName);
1285
+ return `("t"."schema" = '${schema || currentSchema}' AND "t"."name" = '${tableName}')`;
1286
+ })
1287
+ .join(" OR ");
1288
+ const query = `SELECT "t".*, "v"."check_option" FROM ${this.escapePath(this.getTypeormMetadataTableName())} "t" ` +
1289
+ `INNER JOIN "information_schema"."views" "v" ON "v"."table_schema" = "t"."schema" AND "v"."table_name" = "t"."name" WHERE "t"."type" = '${MetadataTableType.VIEW}' ${viewsCondition ? `AND (${viewsCondition})` : ""}`;
1290
+ const dbViews = await this.query(query);
1291
+ return dbViews.map((dbView) => {
1292
+ const view = new View();
1293
+ const schema = dbView["schema"] === currentSchema &&
1294
+ !this.driver.options.schema
1295
+ ? undefined
1296
+ : dbView["schema"];
1297
+ view.database = currentDatabase;
1298
+ view.schema = dbView["schema"];
1299
+ view.name = this.driver.buildTableName(dbView["name"], schema);
1300
+ view.expression = dbView["value"];
1301
+ return view;
1818
1302
  });
1819
- };
1303
+ }
1820
1304
  /**
1821
1305
  * Loads all tables (with given names) from the database and creates a Table from them.
1822
1306
  */
1823
- CockroachQueryRunner.prototype.loadTables = function (tableNames) {
1824
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1825
- var currentSchemaQuery, currentSchema, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, indicesSql, foreignKeysCondition, foreignKeysSql, _a, dbTables, dbColumns, dbConstraints, dbIndices, dbForeignKeys;
1826
- var _this = this;
1827
- return tslib_1.__generator(this, function (_b) {
1828
- switch (_b.label) {
1829
- case 0:
1830
- // if no tables given then no need to proceed
1831
- if (!tableNames || !tableNames.length)
1832
- return [2 /*return*/, []];
1833
- return [4 /*yield*/, this.query("SELECT * FROM current_schema()")];
1834
- case 1:
1835
- currentSchemaQuery = _b.sent();
1836
- currentSchema = currentSchemaQuery[0]["current_schema"];
1837
- tablesCondition = tableNames.map(function (tableName) {
1838
- var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
1839
- if (!name) {
1840
- name = schema;
1841
- schema = _this.driver.options.schema || currentSchema;
1842
- }
1843
- return "(\"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "')";
1844
- }).join(" OR ");
1845
- tablesSql = "SELECT * FROM \"information_schema\".\"tables\" WHERE " + tablesCondition;
1846
- columnsSql = "SELECT * FROM \"information_schema\".\"columns\" WHERE \"is_hidden\" = 'NO' AND " + tablesCondition;
1847
- constraintsCondition = tableNames.map(function (tableName) {
1848
- var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
1849
- if (!name) {
1850
- name = schema;
1851
- schema = _this.driver.options.schema || currentSchema;
1852
- }
1853
- return "(\"ns\".\"nspname\" = '" + schema + "' AND \"t\".\"relname\" = '" + name + "')";
1854
- }).join(" OR ");
1855
- constraintsSql = "SELECT \"ns\".\"nspname\" AS \"table_schema\", \"t\".\"relname\" AS \"table_name\", \"cnst\".\"conname\" AS \"constraint_name\", " +
1856
- "pg_get_constraintdef(\"cnst\".\"oid\") AS \"expression\", " +
1857
- "CASE \"cnst\".\"contype\" WHEN 'p' THEN 'PRIMARY' WHEN 'u' THEN 'UNIQUE' WHEN 'c' THEN 'CHECK' WHEN 'x' THEN 'EXCLUDE' END AS \"constraint_type\", \"a\".\"attname\" AS \"column_name\" " +
1858
- "FROM \"pg_constraint\" \"cnst\" " +
1859
- "INNER JOIN \"pg_class\" \"t\" ON \"t\".\"oid\" = \"cnst\".\"conrelid\" " +
1860
- "INNER JOIN \"pg_namespace\" \"ns\" ON \"ns\".\"oid\" = \"cnst\".\"connamespace\" " +
1861
- "LEFT JOIN \"pg_attribute\" \"a\" ON \"a\".\"attrelid\" = \"cnst\".\"conrelid\" AND \"a\".\"attnum\" = ANY (\"cnst\".\"conkey\") " +
1862
- ("WHERE \"t\".\"relkind\" = 'r' AND (" + constraintsCondition + ")");
1863
- indicesSql = "SELECT \"ns\".\"nspname\" AS \"table_schema\", \"t\".\"relname\" AS \"table_name\", \"i\".\"relname\" AS \"constraint_name\", \"a\".\"attname\" AS \"column_name\", " +
1864
- "CASE \"ix\".\"indisunique\" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS \"is_unique\", pg_get_expr(\"ix\".\"indpred\", \"ix\".\"indrelid\") AS \"condition\", " +
1865
- "\"types\".\"typname\" AS \"type_name\" " +
1866
- "FROM \"pg_class\" \"t\" " +
1867
- "INNER JOIN \"pg_index\" \"ix\" ON \"ix\".\"indrelid\" = \"t\".\"oid\" " +
1868
- "INNER JOIN \"pg_attribute\" \"a\" ON \"a\".\"attrelid\" = \"t\".\"oid\" AND \"a\".\"attnum\" = ANY (\"ix\".\"indkey\") " +
1869
- "INNER JOIN \"pg_namespace\" \"ns\" ON \"ns\".\"oid\" = \"t\".\"relnamespace\" " +
1870
- "INNER JOIN \"pg_class\" \"i\" ON \"i\".\"oid\" = \"ix\".\"indexrelid\" " +
1871
- "INNER JOIN \"pg_type\" \"types\" ON \"types\".\"oid\" = \"a\".\"atttypid\" " +
1872
- "LEFT JOIN \"pg_constraint\" \"cnst\" ON \"cnst\".\"conname\" = \"i\".\"relname\" " +
1873
- ("WHERE \"t\".\"relkind\" = 'r' AND \"cnst\".\"contype\" IS NULL AND (" + constraintsCondition + ")");
1874
- foreignKeysCondition = tableNames.map(function (tableName) {
1875
- var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
1876
- if (!name) {
1877
- name = schema;
1878
- schema = _this.driver.options.schema || currentSchema;
1879
- }
1880
- return "(\"ns\".\"nspname\" = '" + schema + "' AND \"cl\".\"relname\" = '" + name + "')";
1881
- }).join(" OR ");
1882
- foreignKeysSql = "SELECT \"con\".\"conname\" AS \"constraint_name\", \"con\".\"nspname\" AS \"table_schema\", \"con\".\"relname\" AS \"table_name\", \"att2\".\"attname\" AS \"column_name\", " +
1883
- "\"ns\".\"nspname\" AS \"referenced_table_schema\", \"cl\".\"relname\" AS \"referenced_table_name\", \"att\".\"attname\" AS \"referenced_column_name\", \"con\".\"confdeltype\" AS \"on_delete\", \"con\".\"confupdtype\" AS \"on_update\" " +
1884
- "FROM ( " +
1885
- "SELECT UNNEST (\"con1\".\"conkey\") AS \"parent\", UNNEST (\"con1\".\"confkey\") AS \"child\", \"con1\".\"confrelid\", \"con1\".\"conrelid\", \"con1\".\"conname\", \"con1\".\"contype\", \"ns\".\"nspname\", \"cl\".\"relname\", " +
1886
- "CASE \"con1\".\"confdeltype\" WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END as \"confdeltype\", " +
1887
- "CASE \"con1\".\"confupdtype\" WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END as \"confupdtype\" " +
1888
- "FROM \"pg_class\" \"cl\" " +
1889
- "INNER JOIN \"pg_namespace\" \"ns\" ON \"cl\".\"relnamespace\" = \"ns\".\"oid\" " +
1890
- "INNER JOIN \"pg_constraint\" \"con1\" ON \"con1\".\"conrelid\" = \"cl\".\"oid\" " +
1891
- ("WHERE \"con1\".\"contype\" = 'f' AND (" + foreignKeysCondition + ") ") +
1892
- ") \"con\" " +
1893
- "INNER JOIN \"pg_attribute\" \"att\" ON \"att\".\"attrelid\" = \"con\".\"confrelid\" AND \"att\".\"attnum\" = \"con\".\"child\" " +
1894
- "INNER JOIN \"pg_class\" \"cl\" ON \"cl\".\"oid\" = \"con\".\"confrelid\" " +
1895
- "INNER JOIN \"pg_namespace\" \"ns\" ON \"cl\".\"relnamespace\" = \"ns\".\"oid\" " +
1896
- "INNER JOIN \"pg_attribute\" \"att2\" ON \"att2\".\"attrelid\" = \"con\".\"conrelid\" AND \"att2\".\"attnum\" = \"con\".\"parent\"";
1897
- return [4 /*yield*/, Promise.all([
1898
- this.query(tablesSql),
1899
- this.query(columnsSql),
1900
- this.query(constraintsSql),
1901
- this.query(indicesSql),
1902
- this.query(foreignKeysSql),
1903
- ])];
1904
- case 2:
1905
- _a = tslib_1.__read.apply(void 0, [_b.sent(), 5]), dbTables = _a[0], dbColumns = _a[1], dbConstraints = _a[2], dbIndices = _a[3], dbForeignKeys = _a[4];
1906
- // if tables were not found in the db, no need to proceed
1907
- if (!dbTables.length)
1908
- return [2 /*return*/, []];
1909
- // create tables for loaded tables
1910
- return [2 /*return*/, Promise.all(dbTables.map(function (dbTable) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
1911
- var table, schema, tableFullName, _a, tableUniqueConstraints, tableCheckConstraints, tableExclusionConstraints, tableForeignKeyConstraints, tableIndexConstraints;
1912
- var _this = this;
1913
- return tslib_1.__generator(this, function (_b) {
1914
- switch (_b.label) {
1915
- case 0:
1916
- table = new Table();
1917
- schema = dbTable["table_schema"] === currentSchema && !this.driver.options.schema ? undefined : dbTable["table_schema"];
1918
- table.name = this.driver.buildTableName(dbTable["table_name"], schema);
1919
- tableFullName = this.driver.buildTableName(dbTable["table_name"], dbTable["table_schema"]);
1920
- // create columns from the loaded columns
1921
- _a = table;
1922
- return [4 /*yield*/, Promise.all(dbColumns
1923
- .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn["table_name"], dbColumn["table_schema"]) === tableFullName; })
1924
- .map(function (dbColumn) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
1925
- var columnConstraints, tableColumn, type, length_1, uniqueConstraint, isConstraintComposite;
1926
- var _this = this;
1927
- return tslib_1.__generator(this, function (_a) {
1928
- columnConstraints = dbConstraints.filter(function (dbConstraint) {
1929
- return _this.driver.buildTableName(dbConstraint["table_name"], dbConstraint["table_schema"]) === tableFullName && dbConstraint["column_name"] === dbColumn["column_name"];
1930
- });
1931
- tableColumn = new TableColumn();
1932
- tableColumn.name = dbColumn["column_name"];
1933
- tableColumn.type = dbColumn["crdb_sql_type"].toLowerCase();
1934
- if (dbColumn["crdb_sql_type"].indexOf("COLLATE") !== -1) {
1935
- tableColumn.collation = dbColumn["crdb_sql_type"].substr(dbColumn["crdb_sql_type"].indexOf("COLLATE") + "COLLATE".length + 1, dbColumn["crdb_sql_type"].length);
1936
- tableColumn.type = tableColumn.type.substr(0, dbColumn["crdb_sql_type"].indexOf("COLLATE") - 1);
1937
- }
1938
- if (tableColumn.type.indexOf("(") !== -1)
1939
- tableColumn.type = tableColumn.type.substr(0, tableColumn.type.indexOf("("));
1940
- if (tableColumn.type === "numeric" || tableColumn.type === "decimal") {
1941
- if (dbColumn["numeric_precision"] !== null && !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) {
1942
- tableColumn.precision = parseInt(dbColumn["numeric_precision"]);
1943
- }
1944
- else if (dbColumn["numeric_scale"] !== null && !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) {
1945
- tableColumn.precision = undefined;
1946
- }
1947
- if (dbColumn["numeric_scale"] !== null && !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) {
1948
- tableColumn.scale = parseInt(dbColumn["numeric_scale"]);
1949
- }
1950
- else if (dbColumn["numeric_precision"] !== null && !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) {
1951
- tableColumn.scale = undefined;
1952
- }
1953
- }
1954
- if (dbColumn["data_type"].toLowerCase() === "array") {
1955
- tableColumn.isArray = true;
1956
- type = dbColumn["crdb_sql_type"].replace("[]", "").toLowerCase();
1957
- tableColumn.type = this.connection.driver.normalizeType({ type: type });
1958
- }
1959
- // check only columns that have length property
1960
- if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 && dbColumn["character_maximum_length"]) {
1961
- length_1 = dbColumn["character_maximum_length"].toString();
1962
- tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length_1) ? length_1 : "";
1963
- }
1964
- tableColumn.isNullable = dbColumn["is_nullable"] === "YES";
1965
- tableColumn.isPrimary = !!columnConstraints.find(function (constraint) { return constraint["constraint_type"] === "PRIMARY"; });
1966
- uniqueConstraint = columnConstraints.find(function (constraint) { return constraint["constraint_type"] === "UNIQUE"; });
1967
- isConstraintComposite = uniqueConstraint
1968
- ? !!dbConstraints.find(function (dbConstraint) { return dbConstraint["constraint_type"] === "UNIQUE"
1969
- && dbConstraint["constraint_name"] === uniqueConstraint["constraint_name"]
1970
- && dbConstraint["column_name"] !== dbColumn["column_name"]; })
1971
- : false;
1972
- tableColumn.isUnique = !!uniqueConstraint && !isConstraintComposite;
1973
- if (dbColumn["column_default"] !== null && dbColumn["column_default"] !== undefined) {
1974
- if (dbColumn["column_default"] === "unique_rowid()") {
1975
- tableColumn.isGenerated = true;
1976
- tableColumn.generationStrategy = "rowid";
1977
- }
1978
- else if (dbColumn["column_default"].indexOf("nextval") !== -1) {
1979
- tableColumn.isGenerated = true;
1980
- tableColumn.generationStrategy = "increment";
1981
- }
1982
- else if (dbColumn["column_default"] === "gen_random_uuid()") {
1983
- tableColumn.isGenerated = true;
1984
- tableColumn.generationStrategy = "uuid";
1985
- }
1986
- else {
1987
- tableColumn.default = dbColumn["column_default"].replace(/:::.*/, "");
1988
- }
1989
- }
1990
- tableColumn.comment = ""; // dbColumn["COLUMN_COMMENT"];
1991
- if (dbColumn["character_set_name"])
1992
- tableColumn.charset = dbColumn["character_set_name"];
1993
- return [2 /*return*/, tableColumn];
1994
- });
1995
- }); }))];
1996
- case 1:
1997
- // create columns from the loaded columns
1998
- _a.columns = _b.sent();
1999
- tableUniqueConstraints = OrmUtils.uniq(dbConstraints.filter(function (dbConstraint) {
2000
- return _this.driver.buildTableName(dbConstraint["table_name"], dbConstraint["table_schema"]) === tableFullName
2001
- && dbConstraint["constraint_type"] === "UNIQUE";
2002
- }), function (dbConstraint) { return dbConstraint["constraint_name"]; });
2003
- table.uniques = tableUniqueConstraints.map(function (constraint) {
2004
- var uniques = dbConstraints.filter(function (dbC) { return dbC["constraint_name"] === constraint["constraint_name"]; });
2005
- return new TableUnique({
2006
- name: constraint["constraint_name"],
2007
- columnNames: uniques.map(function (u) { return u["column_name"]; })
2008
- });
2009
- });
2010
- tableCheckConstraints = OrmUtils.uniq(dbConstraints.filter(function (dbConstraint) {
2011
- return _this.driver.buildTableName(dbConstraint["table_name"], dbConstraint["table_schema"]) === tableFullName
2012
- && dbConstraint["constraint_type"] === "CHECK";
2013
- }), function (dbConstraint) { return dbConstraint["constraint_name"]; });
2014
- table.checks = tableCheckConstraints.map(function (constraint) {
2015
- var checks = dbConstraints.filter(function (dbC) { return dbC["constraint_name"] === constraint["constraint_name"]; });
2016
- return new TableCheck({
2017
- name: constraint["constraint_name"],
2018
- columnNames: checks.map(function (c) { return c["column_name"]; }),
2019
- expression: constraint["expression"].replace(/^\s*CHECK\s*\((.*)\)\s*$/i, "$1")
2020
- });
2021
- });
2022
- tableExclusionConstraints = OrmUtils.uniq(dbConstraints.filter(function (dbConstraint) {
2023
- return _this.driver.buildTableName(dbConstraint["table_name"], dbConstraint["table_schema"]) === tableFullName
2024
- && dbConstraint["constraint_type"] === "EXCLUDE";
2025
- }), function (dbConstraint) { return dbConstraint["constraint_name"]; });
2026
- table.exclusions = tableExclusionConstraints.map(function (constraint) {
2027
- return new TableExclusion({
2028
- name: constraint["constraint_name"],
2029
- expression: constraint["expression"].substring(8) // trim EXCLUDE from start of expression
2030
- });
2031
- });
2032
- tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter(function (dbForeignKey) {
2033
- return _this.driver.buildTableName(dbForeignKey["table_name"], dbForeignKey["table_schema"]) === tableFullName;
2034
- }), function (dbForeignKey) { return dbForeignKey["constraint_name"]; });
2035
- table.foreignKeys = tableForeignKeyConstraints.map(function (dbForeignKey) {
2036
- var foreignKeys = dbForeignKeys.filter(function (dbFk) { return dbFk["constraint_name"] === dbForeignKey["constraint_name"]; });
2037
- // if referenced table located in currently used schema, we don't need to concat schema name to table name.
2038
- var schema = dbForeignKey["referenced_table_schema"] === currentSchema ? undefined : dbTable["referenced_table_schema"];
2039
- var referencedTableName = _this.driver.buildTableName(dbForeignKey["referenced_table_name"], schema);
2040
- return new TableForeignKey({
2041
- name: dbForeignKey["constraint_name"],
2042
- columnNames: foreignKeys.map(function (dbFk) { return dbFk["column_name"]; }),
2043
- referencedTableName: referencedTableName,
2044
- referencedColumnNames: foreignKeys.map(function (dbFk) { return dbFk["referenced_column_name"]; }),
2045
- onDelete: dbForeignKey["on_delete"],
2046
- onUpdate: dbForeignKey["on_update"]
2047
- });
2048
- });
2049
- tableIndexConstraints = OrmUtils.uniq(dbIndices.filter(function (dbIndex) {
2050
- return _this.driver.buildTableName(dbIndex["table_name"], dbIndex["table_schema"]) === tableFullName;
2051
- }), function (dbIndex) { return dbIndex["constraint_name"]; });
2052
- table.indices = tableIndexConstraints.map(function (constraint) {
2053
- var indices = dbIndices.filter(function (index) { return index["constraint_name"] === constraint["constraint_name"]; });
2054
- return new TableIndex({
2055
- table: table,
2056
- name: constraint["constraint_name"],
2057
- columnNames: indices.map(function (i) { return i["column_name"]; }),
2058
- isUnique: constraint["is_unique"] === "TRUE",
2059
- where: constraint["condition"],
2060
- isSpatial: indices.every(function (i) { return _this.driver.spatialTypes.indexOf(i["type_name"]) >= 0; }),
2061
- isFulltext: false
2062
- });
2063
- });
2064
- return [2 /*return*/, table];
2065
- }
2066
- });
2067
- }); }))];
1307
+ async loadTables(tableNames) {
1308
+ // if no tables given then no need to proceed
1309
+ if (tableNames && tableNames.length === 0) {
1310
+ return [];
1311
+ }
1312
+ const currentSchema = await this.getCurrentSchema();
1313
+ const currentDatabase = await this.getCurrentDatabase();
1314
+ const dbTables = [];
1315
+ if (!tableNames) {
1316
+ const tablesSql = `SELECT "table_schema", "table_name" FROM "information_schema"."tables"`;
1317
+ dbTables.push(...(await this.query(tablesSql)));
1318
+ }
1319
+ else {
1320
+ const tablesCondition = tableNames
1321
+ .map((tableName) => this.driver.parseTableName(tableName))
1322
+ .map(({ schema, tableName }) => {
1323
+ return `("table_schema" = '${schema || currentSchema}' AND "table_name" = '${tableName}')`;
1324
+ })
1325
+ .join(" OR ");
1326
+ const tablesSql = `SELECT "table_schema", "table_name" FROM "information_schema"."tables" WHERE ` +
1327
+ tablesCondition;
1328
+ dbTables.push(...(await this.query(tablesSql)));
1329
+ }
1330
+ if (dbTables.length === 0) {
1331
+ return [];
1332
+ }
1333
+ const columnsCondiiton = dbTables
1334
+ .map(({ table_name, table_schema }) => {
1335
+ return `("table_schema" = '${table_schema}' AND "table_name" = '${table_name}')`;
1336
+ })
1337
+ .join(" OR ");
1338
+ const columnsSql = `
1339
+ SELECT
1340
+ *,
1341
+ pg_catalog.col_description(('"' || table_catalog || '"."' || table_schema || '"."' || table_name || '"')::regclass::oid, ordinal_position) as description
1342
+ FROM "information_schema"."columns"
1343
+ WHERE "is_hidden" = 'NO' AND ` + columnsCondiiton;
1344
+ const constraintsCondition = dbTables
1345
+ .map(({ table_name, table_schema }) => {
1346
+ return `("ns"."nspname" = '${table_schema}' AND "t"."relname" = '${table_name}')`;
1347
+ })
1348
+ .join(" OR ");
1349
+ const constraintsSql = `SELECT "ns"."nspname" AS "table_schema", "t"."relname" AS "table_name", "cnst"."conname" AS "constraint_name", ` +
1350
+ `pg_get_constraintdef("cnst"."oid") AS "expression", ` +
1351
+ `CASE "cnst"."contype" WHEN 'p' THEN 'PRIMARY' WHEN 'u' THEN 'UNIQUE' WHEN 'c' THEN 'CHECK' WHEN 'x' THEN 'EXCLUDE' END AS "constraint_type", "a"."attname" AS "column_name" ` +
1352
+ `FROM "pg_constraint" "cnst" ` +
1353
+ `INNER JOIN "pg_class" "t" ON "t"."oid" = "cnst"."conrelid" ` +
1354
+ `INNER JOIN "pg_namespace" "ns" ON "ns"."oid" = "cnst"."connamespace" ` +
1355
+ `LEFT JOIN "pg_attribute" "a" ON "a"."attrelid" = "cnst"."conrelid" AND "a"."attnum" = ANY ("cnst"."conkey") ` +
1356
+ `WHERE "t"."relkind" = 'r' AND (${constraintsCondition})`;
1357
+ const indicesSql = `SELECT "ns"."nspname" AS "table_schema", "t"."relname" AS "table_name", "i"."relname" AS "constraint_name", "a"."attname" AS "column_name", ` +
1358
+ `CASE "ix"."indisunique" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS "is_unique", pg_get_expr("ix"."indpred", "ix"."indrelid") AS "condition", ` +
1359
+ `"types"."typname" AS "type_name" ` +
1360
+ `FROM "pg_class" "t" ` +
1361
+ `INNER JOIN "pg_index" "ix" ON "ix"."indrelid" = "t"."oid" ` +
1362
+ `INNER JOIN "pg_attribute" "a" ON "a"."attrelid" = "t"."oid" AND "a"."attnum" = ANY ("ix"."indkey") ` +
1363
+ `INNER JOIN "pg_namespace" "ns" ON "ns"."oid" = "t"."relnamespace" ` +
1364
+ `INNER JOIN "pg_class" "i" ON "i"."oid" = "ix"."indexrelid" ` +
1365
+ `INNER JOIN "pg_type" "types" ON "types"."oid" = "a"."atttypid" ` +
1366
+ `LEFT JOIN "pg_constraint" "cnst" ON "cnst"."conname" = "i"."relname" ` +
1367
+ `WHERE "t"."relkind" = 'r' AND "cnst"."contype" IS NULL AND (${constraintsCondition})`;
1368
+ const foreignKeysCondition = dbTables
1369
+ .map(({ table_name, table_schema }) => {
1370
+ return `("ns"."nspname" = '${table_schema}' AND "cl"."relname" = '${table_name}')`;
1371
+ })
1372
+ .join(" OR ");
1373
+ const foreignKeysSql = `SELECT "con"."conname" AS "constraint_name", "con"."nspname" AS "table_schema", "con"."relname" AS "table_name", "att2"."attname" AS "column_name", ` +
1374
+ `"ns"."nspname" AS "referenced_table_schema", "cl"."relname" AS "referenced_table_name", "att"."attname" AS "referenced_column_name", "con"."confdeltype" AS "on_delete", "con"."confupdtype" AS "on_update" ` +
1375
+ `FROM ( ` +
1376
+ `SELECT UNNEST ("con1"."conkey") AS "parent", UNNEST ("con1"."confkey") AS "child", "con1"."confrelid", "con1"."conrelid", "con1"."conname", "con1"."contype", "ns"."nspname", "cl"."relname", ` +
1377
+ `CASE "con1"."confdeltype" WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END as "confdeltype", ` +
1378
+ `CASE "con1"."confupdtype" WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END as "confupdtype" ` +
1379
+ `FROM "pg_class" "cl" ` +
1380
+ `INNER JOIN "pg_namespace" "ns" ON "cl"."relnamespace" = "ns"."oid" ` +
1381
+ `INNER JOIN "pg_constraint" "con1" ON "con1"."conrelid" = "cl"."oid" ` +
1382
+ `WHERE "con1"."contype" = 'f' AND (${foreignKeysCondition}) ` +
1383
+ `) "con" ` +
1384
+ `INNER JOIN "pg_attribute" "att" ON "att"."attrelid" = "con"."confrelid" AND "att"."attnum" = "con"."child" ` +
1385
+ `INNER JOIN "pg_class" "cl" ON "cl"."oid" = "con"."confrelid" ` +
1386
+ `INNER JOIN "pg_namespace" "ns" ON "cl"."relnamespace" = "ns"."oid" ` +
1387
+ `INNER JOIN "pg_attribute" "att2" ON "att2"."attrelid" = "con"."conrelid" AND "att2"."attnum" = "con"."parent"`;
1388
+ const [dbColumns, dbConstraints, dbIndices, dbForeignKeys,] = await Promise.all([
1389
+ this.query(columnsSql),
1390
+ this.query(constraintsSql),
1391
+ this.query(indicesSql),
1392
+ this.query(foreignKeysSql),
1393
+ ]);
1394
+ // create tables for loaded tables
1395
+ return Promise.all(dbTables.map(async (dbTable) => {
1396
+ const table = new Table();
1397
+ const getSchemaFromKey = (dbObject, key) => {
1398
+ return dbObject[key] === currentSchema &&
1399
+ (!this.driver.options.schema ||
1400
+ this.driver.options.schema === currentSchema)
1401
+ ? undefined
1402
+ : dbObject[key];
1403
+ };
1404
+ // We do not need to join schema name, when database is by default.
1405
+ const schema = getSchemaFromKey(dbTable, "table_schema");
1406
+ table.database = currentDatabase;
1407
+ table.schema = dbTable["table_schema"];
1408
+ table.name = this.driver.buildTableName(dbTable["table_name"], schema);
1409
+ // create columns from the loaded columns
1410
+ table.columns = await Promise.all(dbColumns
1411
+ .filter((dbColumn) => dbColumn["table_name"] ===
1412
+ dbTable["table_name"] &&
1413
+ dbColumn["table_schema"] ===
1414
+ dbTable["table_schema"])
1415
+ .map(async (dbColumn) => {
1416
+ const columnConstraints = dbConstraints.filter((dbConstraint) => {
1417
+ return (dbConstraint["table_name"] ===
1418
+ dbColumn["table_name"] &&
1419
+ dbConstraint["table_schema"] ===
1420
+ dbColumn["table_schema"] &&
1421
+ dbConstraint["column_name"] ===
1422
+ dbColumn["column_name"]);
1423
+ });
1424
+ const tableColumn = new TableColumn();
1425
+ tableColumn.name = dbColumn["column_name"];
1426
+ tableColumn.type =
1427
+ dbColumn["crdb_sql_type"].toLowerCase();
1428
+ if (dbColumn["crdb_sql_type"].indexOf("COLLATE") !==
1429
+ -1) {
1430
+ tableColumn.collation = dbColumn["crdb_sql_type"].substr(dbColumn["crdb_sql_type"].indexOf("COLLATE") +
1431
+ "COLLATE".length +
1432
+ 1, dbColumn["crdb_sql_type"].length);
1433
+ tableColumn.type = tableColumn.type.substr(0, dbColumn["crdb_sql_type"].indexOf("COLLATE") - 1);
1434
+ }
1435
+ if (tableColumn.type.indexOf("(") !== -1)
1436
+ tableColumn.type = tableColumn.type.substr(0, tableColumn.type.indexOf("("));
1437
+ if (tableColumn.type === "numeric" ||
1438
+ tableColumn.type === "decimal") {
1439
+ if (dbColumn["numeric_precision"] !== null &&
1440
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) {
1441
+ tableColumn.precision = parseInt(dbColumn["numeric_precision"]);
1442
+ }
1443
+ else if (dbColumn["numeric_scale"] !== null &&
1444
+ !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) {
1445
+ tableColumn.precision = undefined;
1446
+ }
1447
+ if (dbColumn["numeric_scale"] !== null &&
1448
+ !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) {
1449
+ tableColumn.scale = parseInt(dbColumn["numeric_scale"]);
1450
+ }
1451
+ else if (dbColumn["numeric_precision"] !== null &&
1452
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) {
1453
+ tableColumn.scale = undefined;
1454
+ }
1455
+ }
1456
+ if (dbColumn["data_type"].toLowerCase() === "array") {
1457
+ tableColumn.isArray = true;
1458
+ const type = dbColumn["crdb_sql_type"]
1459
+ .replace("[]", "")
1460
+ .toLowerCase();
1461
+ tableColumn.type =
1462
+ this.connection.driver.normalizeType({
1463
+ type: type,
1464
+ });
1465
+ }
1466
+ // check only columns that have length property
1467
+ if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 &&
1468
+ dbColumn["character_maximum_length"]) {
1469
+ const length = dbColumn["character_maximum_length"].toString();
1470
+ tableColumn.length =
1471
+ !this.isDefaultColumnLength(table, tableColumn, length)
1472
+ ? length
1473
+ : "";
1474
+ }
1475
+ tableColumn.isNullable =
1476
+ dbColumn["is_nullable"] === "YES";
1477
+ tableColumn.isPrimary = !!columnConstraints.find((constraint) => constraint["constraint_type"] === "PRIMARY");
1478
+ const uniqueConstraints = columnConstraints.filter((constraint) => constraint["constraint_type"] === "UNIQUE");
1479
+ const isConstraintComposite = uniqueConstraints.every((uniqueConstraint) => {
1480
+ return dbConstraints.some((dbConstraint) => dbConstraint["constraint_type"] ===
1481
+ "UNIQUE" &&
1482
+ dbConstraint["constraint_name"] ===
1483
+ uniqueConstraint["constraint_name"] &&
1484
+ dbConstraint["column_name"] !==
1485
+ dbColumn["column_name"]);
1486
+ });
1487
+ tableColumn.isUnique =
1488
+ uniqueConstraints.length > 0 &&
1489
+ !isConstraintComposite;
1490
+ if (dbColumn["column_default"] !== null &&
1491
+ dbColumn["column_default"] !== undefined) {
1492
+ if (dbColumn["column_default"] ===
1493
+ "unique_rowid()") {
1494
+ tableColumn.isGenerated = true;
1495
+ tableColumn.generationStrategy = "rowid";
1496
+ }
1497
+ else if (dbColumn["column_default"].indexOf("nextval") !== -1) {
1498
+ tableColumn.isGenerated = true;
1499
+ tableColumn.generationStrategy = "increment";
1500
+ }
1501
+ else if (dbColumn["column_default"] ===
1502
+ "gen_random_uuid()") {
1503
+ tableColumn.isGenerated = true;
1504
+ tableColumn.generationStrategy = "uuid";
1505
+ }
1506
+ else {
1507
+ tableColumn.default = dbColumn["column_default"].replace(/:::[\w\s\[\]\"]+/g, "");
1508
+ tableColumn.default =
1509
+ tableColumn.default.replace(/^(-?[\d\.]+)$/, "($1)");
1510
+ }
2068
1511
  }
1512
+ tableColumn.comment =
1513
+ dbColumn["description"] == null
1514
+ ? undefined
1515
+ : dbColumn["description"];
1516
+ if (dbColumn["character_set_name"])
1517
+ tableColumn.charset =
1518
+ dbColumn["character_set_name"];
1519
+ return tableColumn;
1520
+ }));
1521
+ // find unique constraints of table, group them by constraint name and build TableUnique.
1522
+ const tableUniqueConstraints = OrmUtils.uniq(dbConstraints.filter((dbConstraint) => {
1523
+ return (dbConstraint["table_name"] ===
1524
+ dbTable["table_name"] &&
1525
+ dbConstraint["table_schema"] ===
1526
+ dbTable["table_schema"] &&
1527
+ dbConstraint["constraint_type"] === "UNIQUE");
1528
+ }), (dbConstraint) => dbConstraint["constraint_name"]);
1529
+ table.uniques = tableUniqueConstraints.map((constraint) => {
1530
+ const uniques = dbConstraints.filter((dbC) => dbC["constraint_name"] ===
1531
+ constraint["constraint_name"]);
1532
+ return new TableUnique({
1533
+ name: constraint["constraint_name"],
1534
+ columnNames: uniques.map((u) => u["column_name"]),
1535
+ });
2069
1536
  });
2070
- });
2071
- };
1537
+ // find check constraints of table, group them by constraint name and build TableCheck.
1538
+ const tableCheckConstraints = OrmUtils.uniq(dbConstraints.filter((dbConstraint) => {
1539
+ return (dbConstraint["table_name"] ===
1540
+ dbTable["table_name"] &&
1541
+ dbConstraint["table_schema"] ===
1542
+ dbTable["table_schema"] &&
1543
+ dbConstraint["constraint_type"] === "CHECK");
1544
+ }), (dbConstraint) => dbConstraint["constraint_name"]);
1545
+ table.checks = tableCheckConstraints.map((constraint) => {
1546
+ const checks = dbConstraints.filter((dbC) => dbC["constraint_name"] ===
1547
+ constraint["constraint_name"]);
1548
+ return new TableCheck({
1549
+ name: constraint["constraint_name"],
1550
+ columnNames: checks.map((c) => c["column_name"]),
1551
+ expression: constraint["expression"].replace(/^\s*CHECK\s*\((.*)\)\s*$/i, "$1"),
1552
+ });
1553
+ });
1554
+ // find exclusion constraints of table, group them by constraint name and build TableExclusion.
1555
+ const tableExclusionConstraints = OrmUtils.uniq(dbConstraints.filter((dbConstraint) => {
1556
+ return (dbConstraint["table_name"] ===
1557
+ dbTable["table_name"] &&
1558
+ dbConstraint["table_schema"] ===
1559
+ dbTable["table_schema"] &&
1560
+ dbConstraint["constraint_type"] === "EXCLUDE");
1561
+ }), (dbConstraint) => dbConstraint["constraint_name"]);
1562
+ table.exclusions = tableExclusionConstraints.map((constraint) => {
1563
+ return new TableExclusion({
1564
+ name: constraint["constraint_name"],
1565
+ expression: constraint["expression"].substring(8), // trim EXCLUDE from start of expression
1566
+ });
1567
+ });
1568
+ // find foreign key constraints of table, group them by constraint name and build TableForeignKey.
1569
+ const tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter((dbForeignKey) => {
1570
+ return (dbForeignKey["table_name"] ===
1571
+ dbTable["table_name"] &&
1572
+ dbForeignKey["table_schema"] ===
1573
+ dbTable["table_schema"]);
1574
+ }), (dbForeignKey) => dbForeignKey["constraint_name"]);
1575
+ table.foreignKeys = tableForeignKeyConstraints.map((dbForeignKey) => {
1576
+ const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["constraint_name"] ===
1577
+ dbForeignKey["constraint_name"]);
1578
+ // if referenced table located in currently used schema, we don't need to concat schema name to table name.
1579
+ const schema = getSchemaFromKey(dbForeignKey, "referenced_table_schema");
1580
+ const referencedTableName = this.driver.buildTableName(dbForeignKey["referenced_table_name"], schema);
1581
+ return new TableForeignKey({
1582
+ name: dbForeignKey["constraint_name"],
1583
+ columnNames: foreignKeys.map((dbFk) => dbFk["column_name"]),
1584
+ referencedSchema: dbForeignKey["referenced_table_schema"],
1585
+ referencedTableName: referencedTableName,
1586
+ referencedColumnNames: foreignKeys.map((dbFk) => dbFk["referenced_column_name"]),
1587
+ onDelete: dbForeignKey["on_delete"],
1588
+ onUpdate: dbForeignKey["on_update"],
1589
+ });
1590
+ });
1591
+ // find index constraints of table, group them by constraint name and build TableIndex.
1592
+ const tableIndexConstraints = OrmUtils.uniq(dbIndices.filter((dbIndex) => {
1593
+ return (dbIndex["table_name"] === dbTable["table_name"] &&
1594
+ dbIndex["table_schema"] === dbTable["table_schema"]);
1595
+ }), (dbIndex) => dbIndex["constraint_name"]);
1596
+ table.indices = tableIndexConstraints.map((constraint) => {
1597
+ const indices = dbIndices.filter((index) => index["constraint_name"] ===
1598
+ constraint["constraint_name"]);
1599
+ return new TableIndex({
1600
+ table: table,
1601
+ name: constraint["constraint_name"],
1602
+ columnNames: indices.map((i) => i["column_name"]),
1603
+ isUnique: constraint["is_unique"] === "TRUE",
1604
+ where: constraint["condition"],
1605
+ isSpatial: indices.every((i) => this.driver.spatialTypes.indexOf(i["type_name"]) >= 0),
1606
+ isFulltext: false,
1607
+ });
1608
+ });
1609
+ return table;
1610
+ }));
1611
+ }
2072
1612
  /**
2073
1613
  * Builds create table sql.
2074
1614
  */
2075
- CockroachQueryRunner.prototype.createTableSql = function (table, createForeignKeys) {
2076
- var _this = this;
2077
- var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(table, column); }).join(", ");
2078
- var sql = "CREATE TABLE " + this.escapePath(table) + " (" + columnDefinitions;
1615
+ createTableSql(table, createForeignKeys) {
1616
+ const columnDefinitions = table.columns
1617
+ .map((column) => this.buildCreateColumnSql(table, column))
1618
+ .join(", ");
1619
+ let sql = `CREATE TABLE ${this.escapePath(table)} (${columnDefinitions}`;
2079
1620
  table.columns
2080
- .filter(function (column) { return column.isUnique; })
2081
- .forEach(function (column) {
2082
- var isUniqueExist = table.uniques.some(function (unique) { return unique.columnNames.length === 1 && unique.columnNames[0] === column.name; });
1621
+ .filter((column) => column.isUnique)
1622
+ .forEach((column) => {
1623
+ const isUniqueExist = table.uniques.some((unique) => unique.columnNames.length === 1 &&
1624
+ unique.columnNames[0] === column.name);
2083
1625
  if (!isUniqueExist)
2084
1626
  table.uniques.push(new TableUnique({
2085
- name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),
2086
- columnNames: [column.name]
1627
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
1628
+ columnNames: [column.name],
2087
1629
  }));
2088
1630
  });
2089
1631
  table.indices
2090
- .filter(function (index) { return index.isUnique; })
2091
- .forEach(function (index) {
1632
+ .filter((index) => index.isUnique)
1633
+ .forEach((index) => {
2092
1634
  table.uniques.push(new TableUnique({
2093
- name: _this.connection.namingStrategy.uniqueConstraintName(table.name, index.columnNames),
2094
- columnNames: index.columnNames
1635
+ name: this.connection.namingStrategy.uniqueConstraintName(table, index.columnNames),
1636
+ columnNames: index.columnNames,
2095
1637
  }));
2096
1638
  });
2097
1639
  if (table.uniques.length > 0) {
2098
- var uniquesSql = table.uniques.map(function (unique) {
2099
- var uniqueName = unique.name ? unique.name : _this.connection.namingStrategy.uniqueConstraintName(table.name, unique.columnNames);
2100
- var columnNames = unique.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2101
- return "CONSTRAINT \"" + uniqueName + "\" UNIQUE (" + columnNames + ")";
2102
- }).join(", ");
2103
- sql += ", " + uniquesSql;
1640
+ const uniquesSql = table.uniques
1641
+ .map((unique) => {
1642
+ const uniqueName = unique.name
1643
+ ? unique.name
1644
+ : this.connection.namingStrategy.uniqueConstraintName(table, unique.columnNames);
1645
+ const columnNames = unique.columnNames
1646
+ .map((columnName) => `"${columnName}"`)
1647
+ .join(", ");
1648
+ return `CONSTRAINT "${uniqueName}" UNIQUE (${columnNames})`;
1649
+ })
1650
+ .join(", ");
1651
+ sql += `, ${uniquesSql}`;
2104
1652
  }
2105
1653
  if (table.checks.length > 0) {
2106
- var checksSql = table.checks.map(function (check) {
2107
- var checkName = check.name ? check.name : _this.connection.namingStrategy.checkConstraintName(table.name, check.expression);
2108
- return "CONSTRAINT \"" + checkName + "\" CHECK (" + check.expression + ")";
2109
- }).join(", ");
2110
- sql += ", " + checksSql;
1654
+ const checksSql = table.checks
1655
+ .map((check) => {
1656
+ const checkName = check.name
1657
+ ? check.name
1658
+ : this.connection.namingStrategy.checkConstraintName(table, check.expression);
1659
+ return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
1660
+ })
1661
+ .join(", ");
1662
+ sql += `, ${checksSql}`;
2111
1663
  }
2112
1664
  if (table.foreignKeys.length > 0 && createForeignKeys) {
2113
- var foreignKeysSql = table.foreignKeys.map(function (fk) {
2114
- var columnNames = fk.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
1665
+ const foreignKeysSql = table.foreignKeys
1666
+ .map((fk) => {
1667
+ const columnNames = fk.columnNames
1668
+ .map((columnName) => `"${columnName}"`)
1669
+ .join(", ");
2115
1670
  if (!fk.name)
2116
- fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames);
2117
- var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2118
- var constraint = "CONSTRAINT \"" + fk.name + "\" FOREIGN KEY (" + columnNames + ") REFERENCES " + _this.escapePath(fk.referencedTableName) + " (" + referencedColumnNames + ")";
1671
+ fk.name = this.connection.namingStrategy.foreignKeyName(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
1672
+ const referencedColumnNames = fk.referencedColumnNames
1673
+ .map((columnName) => `"${columnName}"`)
1674
+ .join(", ");
1675
+ let constraint = `CONSTRAINT "${fk.name}" FOREIGN KEY (${columnNames}) REFERENCES ${this.escapePath(this.getTablePath(fk))} (${referencedColumnNames})`;
2119
1676
  if (fk.onDelete)
2120
- constraint += " ON DELETE " + fk.onDelete;
1677
+ constraint += ` ON DELETE ${fk.onDelete}`;
2121
1678
  if (fk.onUpdate)
2122
- constraint += " ON UPDATE " + fk.onUpdate;
1679
+ constraint += ` ON UPDATE ${fk.onUpdate}`;
2123
1680
  return constraint;
2124
- }).join(", ");
2125
- sql += ", " + foreignKeysSql;
1681
+ })
1682
+ .join(", ");
1683
+ sql += `, ${foreignKeysSql}`;
2126
1684
  }
2127
- var primaryColumns = table.columns.filter(function (column) { return column.isPrimary; });
1685
+ const primaryColumns = table.columns.filter((column) => column.isPrimary);
2128
1686
  if (primaryColumns.length > 0) {
2129
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, primaryColumns.map(function (column) { return column.name; }));
2130
- var columnNames = primaryColumns.map(function (column) { return "\"" + column.name + "\""; }).join(", ");
2131
- sql += ", CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNames + ")";
1687
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
1688
+ const columnNames = primaryColumns
1689
+ .map((column) => `"${column.name}"`)
1690
+ .join(", ");
1691
+ sql += `, CONSTRAINT "${primaryKeyName}" PRIMARY KEY (${columnNames})`;
2132
1692
  }
2133
- sql += ")";
1693
+ sql += `)`;
1694
+ table.columns
1695
+ .filter((it) => it.comment)
1696
+ .forEach((it) => (sql += `; COMMENT ON COLUMN ${this.escapePath(table)}."${it.name}" IS ${this.escapeComment(it.comment)}`));
2134
1697
  return new Query(sql);
2135
- };
2136
- /**
2137
- * Extracts schema name from given Table object or table name string.
2138
- */
2139
- CockroachQueryRunner.prototype.extractSchema = function (target) {
2140
- var tableName = target instanceof Table ? target.name : target;
2141
- return tableName.indexOf(".") === -1 ? this.driver.options.schema : tableName.split(".")[0];
2142
- };
1698
+ }
2143
1699
  /**
2144
1700
  * Builds drop table sql.
2145
1701
  */
2146
- CockroachQueryRunner.prototype.dropTableSql = function (tableOrPath) {
2147
- return new Query("DROP TABLE " + this.escapePath(tableOrPath));
2148
- };
2149
- CockroachQueryRunner.prototype.createViewSql = function (view) {
1702
+ dropTableSql(tableOrPath) {
1703
+ return new Query(`DROP TABLE ${this.escapePath(tableOrPath)}`);
1704
+ }
1705
+ createViewSql(view) {
2150
1706
  if (typeof view.expression === "string") {
2151
- return new Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression);
1707
+ return new Query(`CREATE VIEW ${this.escapePath(view)} AS ${view.expression}`);
2152
1708
  }
2153
1709
  else {
2154
- return new Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression(this.connection).getQuery());
2155
- }
2156
- };
2157
- CockroachQueryRunner.prototype.insertViewDefinitionSql = function (view) {
2158
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2159
- var currentSchemaQuery, currentSchema, splittedName, schema, name, expression, _a, query, parameters;
2160
- return tslib_1.__generator(this, function (_b) {
2161
- switch (_b.label) {
2162
- case 0: return [4 /*yield*/, this.query("SELECT * FROM current_schema()")];
2163
- case 1:
2164
- currentSchemaQuery = _b.sent();
2165
- currentSchema = currentSchemaQuery[0]["current_schema"];
2166
- splittedName = view.name.split(".");
2167
- schema = this.driver.options.schema || currentSchema;
2168
- name = view.name;
2169
- if (splittedName.length === 2) {
2170
- schema = splittedName[0];
2171
- name = splittedName[1];
2172
- }
2173
- expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery();
2174
- _a = tslib_1.__read(this.connection.createQueryBuilder()
2175
- .insert()
2176
- .into(this.getTypeormMetadataTableName())
2177
- .values({ type: "VIEW", schema: schema, name: name, value: expression })
2178
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
2179
- return [2 /*return*/, new Query(query, parameters)];
2180
- }
2181
- });
1710
+ return new Query(`CREATE VIEW ${this.escapePath(view)} AS ${view
1711
+ .expression(this.connection)
1712
+ .getQuery()}`);
1713
+ }
1714
+ }
1715
+ async insertViewDefinitionSql(view) {
1716
+ const currentSchema = await this.getCurrentSchema();
1717
+ let { schema, tableName: name } = this.driver.parseTableName(view);
1718
+ if (!schema) {
1719
+ schema = currentSchema;
1720
+ }
1721
+ const expression = typeof view.expression === "string"
1722
+ ? view.expression.trim()
1723
+ : view.expression(this.connection).getQuery();
1724
+ return this.insertTypeormMetadataSql({
1725
+ type: MetadataTableType.VIEW,
1726
+ schema: schema,
1727
+ name: name,
1728
+ value: expression,
2182
1729
  });
2183
- };
1730
+ }
2184
1731
  /**
2185
1732
  * Builds drop view sql.
2186
1733
  */
2187
- CockroachQueryRunner.prototype.dropViewSql = function (viewOrPath) {
2188
- return new Query("DROP VIEW " + this.escapePath(viewOrPath));
2189
- };
1734
+ dropViewSql(viewOrPath) {
1735
+ return new Query(`DROP VIEW ${this.escapePath(viewOrPath)}`);
1736
+ }
2190
1737
  /**
2191
1738
  * Builds remove view sql.
2192
1739
  */
2193
- CockroachQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) {
2194
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2195
- var currentSchemaQuery, currentSchema, viewName, splittedName, schema, name, qb, _a, query, parameters;
2196
- return tslib_1.__generator(this, function (_b) {
2197
- switch (_b.label) {
2198
- case 0: return [4 /*yield*/, this.query("SELECT * FROM current_schema()")];
2199
- case 1:
2200
- currentSchemaQuery = _b.sent();
2201
- currentSchema = currentSchemaQuery[0]["current_schema"];
2202
- viewName = viewOrPath instanceof View ? viewOrPath.name : viewOrPath;
2203
- splittedName = viewName.split(".");
2204
- schema = this.driver.options.schema || currentSchema;
2205
- name = viewName;
2206
- if (splittedName.length === 2) {
2207
- schema = splittedName[0];
2208
- name = splittedName[1];
2209
- }
2210
- qb = this.connection.createQueryBuilder();
2211
- _a = tslib_1.__read(qb.delete()
2212
- .from(this.getTypeormMetadataTableName())
2213
- .where(qb.escape("type") + " = 'VIEW'")
2214
- .andWhere(qb.escape("schema") + " = :schema", { schema: schema })
2215
- .andWhere(qb.escape("name") + " = :name", { name: name })
2216
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
2217
- return [2 /*return*/, new Query(query, parameters)];
2218
- }
2219
- });
1740
+ async deleteViewDefinitionSql(viewOrPath) {
1741
+ const currentSchema = await this.getCurrentSchema();
1742
+ let { schema, tableName: name } = this.driver.parseTableName(viewOrPath);
1743
+ if (!schema) {
1744
+ schema = currentSchema;
1745
+ }
1746
+ return this.deleteTypeormMetadataSql({
1747
+ type: MetadataTableType.VIEW,
1748
+ schema,
1749
+ name,
2220
1750
  });
2221
- };
1751
+ }
2222
1752
  /**
2223
1753
  * Builds create index sql.
2224
1754
  * UNIQUE indices creates as UNIQUE constraints.
2225
1755
  */
2226
- CockroachQueryRunner.prototype.createIndexSql = function (table, index) {
2227
- var columns = index.columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2228
- return new Query("CREATE INDEX \"" + index.name + "\" ON " + this.escapePath(table) + " (" + columns + ") " + (index.where ? "WHERE " + index.where : ""));
2229
- };
1756
+ createIndexSql(table, index) {
1757
+ const columns = index.columnNames
1758
+ .map((columnName) => `"${columnName}"`)
1759
+ .join(", ");
1760
+ return new Query(`CREATE INDEX "${index.name}" ON ${this.escapePath(table)} (${columns}) ${index.where ? "WHERE " + index.where : ""}`);
1761
+ }
2230
1762
  /**
2231
1763
  * Builds drop index sql.
2232
1764
  */
2233
- CockroachQueryRunner.prototype.dropIndexSql = function (table, indexOrName) {
2234
- var indexName = (indexOrName instanceof TableIndex || indexOrName instanceof TableUnique) ? indexOrName.name : indexOrName;
2235
- return new Query("DROP INDEX " + this.escapePath(table) + "@\"" + indexName + "\" CASCADE");
2236
- };
1765
+ dropIndexSql(table, indexOrName) {
1766
+ let indexName = InstanceChecker.isTableIndex(indexOrName) ||
1767
+ InstanceChecker.isTableUnique(indexOrName)
1768
+ ? indexOrName.name
1769
+ : indexOrName;
1770
+ return new Query(`DROP INDEX ${this.escapePath(table)}@"${indexName}" CASCADE`);
1771
+ }
2237
1772
  /**
2238
1773
  * Builds create primary key sql.
2239
1774
  */
2240
- CockroachQueryRunner.prototype.createPrimaryKeySql = function (table, columnNames) {
2241
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames);
2242
- var columnNamesString = columnNames.map(function (columnName) { return "\"" + columnName + "\""; }).join(", ");
2243
- return new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNamesString + ")");
2244
- };
1775
+ createPrimaryKeySql(table, columnNames) {
1776
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
1777
+ const columnNamesString = columnNames
1778
+ .map((columnName) => `"${columnName}"`)
1779
+ .join(", ");
1780
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${primaryKeyName}" PRIMARY KEY (${columnNamesString})`);
1781
+ }
2245
1782
  /**
2246
1783
  * Builds drop primary key sql.
2247
1784
  */
2248
- CockroachQueryRunner.prototype.dropPrimaryKeySql = function (table) {
2249
- var columnNames = table.primaryColumns.map(function (column) { return column.name; });
2250
- var primaryKeyName = this.connection.namingStrategy.primaryKeyName(table.name, columnNames);
2251
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + primaryKeyName + "\"");
2252
- };
1785
+ dropPrimaryKeySql(table) {
1786
+ const columnNames = table.primaryColumns.map((column) => column.name);
1787
+ const primaryKeyName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
1788
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
1789
+ }
2253
1790
  /**
2254
1791
  * Builds create unique constraint sql.
2255
1792
  */
2256
- CockroachQueryRunner.prototype.createUniqueConstraintSql = function (table, uniqueConstraint) {
2257
- var columnNames = uniqueConstraint.columnNames.map(function (column) { return "\"" + column + "\""; }).join(", ");
2258
- return new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (" + columnNames + ")");
2259
- };
1793
+ createUniqueConstraintSql(table, uniqueConstraint) {
1794
+ const columnNames = uniqueConstraint.columnNames
1795
+ .map((column) => `"` + column + `"`)
1796
+ .join(", ");
1797
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE (${columnNames})`);
1798
+ }
2260
1799
  /**
2261
1800
  * Builds drop unique constraint sql.
2262
1801
  */
2263
- CockroachQueryRunner.prototype.dropUniqueConstraintSql = function (table, uniqueOrName) {
2264
- var uniqueName = uniqueOrName instanceof TableUnique ? uniqueOrName.name : uniqueOrName;
2265
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueName + "\"");
2266
- };
1802
+ dropUniqueConstraintSql(table, uniqueOrName) {
1803
+ const uniqueName = InstanceChecker.isTableUnique(uniqueOrName)
1804
+ ? uniqueOrName.name
1805
+ : uniqueOrName;
1806
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueName}"`);
1807
+ }
2267
1808
  /**
2268
1809
  * Builds create check constraint sql.
2269
1810
  */
2270
- CockroachQueryRunner.prototype.createCheckConstraintSql = function (table, checkConstraint) {
2271
- return new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + checkConstraint.name + "\" CHECK (" + checkConstraint.expression + ")");
2272
- };
1811
+ createCheckConstraintSql(table, checkConstraint) {
1812
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${checkConstraint.name}" CHECK (${checkConstraint.expression})`);
1813
+ }
2273
1814
  /**
2274
1815
  * Builds drop check constraint sql.
2275
1816
  */
2276
- CockroachQueryRunner.prototype.dropCheckConstraintSql = function (table, checkOrName) {
2277
- var checkName = checkOrName instanceof TableCheck ? checkOrName.name : checkOrName;
2278
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + checkName + "\"");
2279
- };
1817
+ dropCheckConstraintSql(table, checkOrName) {
1818
+ const checkName = InstanceChecker.isTableCheck(checkOrName)
1819
+ ? checkOrName.name
1820
+ : checkOrName;
1821
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${checkName}"`);
1822
+ }
2280
1823
  /**
2281
1824
  * Builds create foreign key sql.
2282
1825
  */
2283
- CockroachQueryRunner.prototype.createForeignKeySql = function (table, foreignKey) {
2284
- var columnNames = foreignKey.columnNames.map(function (column) { return "\"" + column + "\""; }).join(", ");
2285
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "\"" + column + "\""; }).join(",");
2286
- var sql = "ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + foreignKey.name + "\" FOREIGN KEY (" + columnNames + ") " +
2287
- ("REFERENCES " + this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
1826
+ createForeignKeySql(table, foreignKey) {
1827
+ const columnNames = foreignKey.columnNames
1828
+ .map((column) => `"` + column + `"`)
1829
+ .join(", ");
1830
+ const referencedColumnNames = foreignKey.referencedColumnNames
1831
+ .map((column) => `"` + column + `"`)
1832
+ .join(",");
1833
+ let sql = `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${foreignKey.name}" FOREIGN KEY (${columnNames}) ` +
1834
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
2288
1835
  if (foreignKey.onDelete)
2289
- sql += " ON DELETE " + foreignKey.onDelete;
1836
+ sql += ` ON DELETE ${foreignKey.onDelete}`;
2290
1837
  if (foreignKey.onUpdate)
2291
- sql += " ON UPDATE " + foreignKey.onUpdate;
1838
+ sql += ` ON UPDATE ${foreignKey.onUpdate}`;
2292
1839
  return new Query(sql);
2293
- };
1840
+ }
2294
1841
  /**
2295
1842
  * Builds drop foreign key sql.
2296
1843
  */
2297
- CockroachQueryRunner.prototype.dropForeignKeySql = function (table, foreignKeyOrName) {
2298
- var foreignKeyName = foreignKeyOrName instanceof TableForeignKey ? foreignKeyOrName.name : foreignKeyOrName;
2299
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + foreignKeyName + "\"");
2300
- };
1844
+ dropForeignKeySql(table, foreignKeyOrName) {
1845
+ const foreignKeyName = InstanceChecker.isTableForeignKey(foreignKeyOrName)
1846
+ ? foreignKeyOrName.name
1847
+ : foreignKeyOrName;
1848
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${foreignKeyName}"`);
1849
+ }
2301
1850
  /**
2302
1851
  * Builds sequence name from given table and column.
2303
1852
  */
2304
- CockroachQueryRunner.prototype.buildSequenceName = function (table, columnOrName, disableEscape) {
2305
- var columnName = columnOrName instanceof TableColumn ? columnOrName.name : columnOrName;
2306
- return disableEscape ? table.name + "_" + columnName + "_seq" : "\"" + table.name + "_" + columnName + "_seq\"";
2307
- };
1853
+ buildSequenceName(table, columnOrName) {
1854
+ const { tableName } = this.driver.parseTableName(table);
1855
+ const columnName = InstanceChecker.isTableColumn(columnOrName)
1856
+ ? columnOrName.name
1857
+ : columnOrName;
1858
+ return `${tableName}_${columnName}_seq`;
1859
+ }
1860
+ buildSequencePath(table, columnOrName) {
1861
+ const { schema } = this.driver.parseTableName(table);
1862
+ return schema
1863
+ ? `${schema}.${this.buildSequenceName(table, columnOrName)}`
1864
+ : this.buildSequenceName(table, columnOrName);
1865
+ }
1866
+ /**
1867
+ * Escapes a given comment so it's safe to include in a query.
1868
+ */
1869
+ escapeComment(comment) {
1870
+ if (comment === undefined || comment.length === 0) {
1871
+ return "NULL";
1872
+ }
1873
+ comment = comment.replace(/'/g, "''").replace(/\u0000/g, ""); // Null bytes aren't allowed in comments
1874
+ return `'${comment}'`;
1875
+ }
2308
1876
  /**
2309
1877
  * Escapes given table or view path.
2310
1878
  */
2311
- CockroachQueryRunner.prototype.escapePath = function (target, disableEscape) {
2312
- var tableName = target instanceof Table || target instanceof View ? target.name : target;
2313
- tableName = tableName.indexOf(".") === -1 && this.driver.options.schema ? this.driver.options.schema + "." + tableName : tableName;
2314
- return tableName.split(".").map(function (i) {
2315
- return disableEscape ? i : "\"" + i + "\"";
2316
- }).join(".");
2317
- };
2318
- /**
2319
- * Returns object with table schema and table name.
2320
- */
2321
- CockroachQueryRunner.prototype.parseTableName = function (target) {
2322
- var tableName = target instanceof Table ? target.name : target;
2323
- if (tableName.indexOf(".") === -1) {
2324
- return {
2325
- schema: this.driver.options.schema ? "'" + this.driver.options.schema + "'" : "current_schema()",
2326
- tableName: "'" + tableName + "'"
2327
- };
1879
+ escapePath(target) {
1880
+ const { schema, tableName } = this.driver.parseTableName(target);
1881
+ if (schema && schema !== this.driver.searchSchema) {
1882
+ return `"${schema}"."${tableName}"`;
2328
1883
  }
2329
- else {
2330
- return {
2331
- schema: "'" + tableName.split(".")[0] + "'",
2332
- tableName: "'" + tableName.split(".")[1] + "'"
2333
- };
2334
- }
2335
- };
1884
+ return `"${tableName}"`;
1885
+ }
2336
1886
  /**
2337
1887
  * Builds a query for create column.
2338
1888
  */
2339
- CockroachQueryRunner.prototype.buildCreateColumnSql = function (table, column) {
2340
- var c = "\"" + column.name + "\"";
1889
+ buildCreateColumnSql(table, column) {
1890
+ let c = '"' + column.name + '"';
2341
1891
  if (column.isGenerated) {
2342
1892
  if (column.generationStrategy === "increment") {
2343
- c += " INT DEFAULT nextval('" + this.buildSequenceName(table, column) + "')";
1893
+ c += ` INT DEFAULT nextval('${this.escapePath(this.buildSequencePath(table, column))}')`;
2344
1894
  }
2345
1895
  else if (column.generationStrategy === "rowid") {
2346
1896
  c += " INT DEFAULT unique_rowid()";
@@ -2352,17 +1902,17 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
2352
1902
  if (!column.isGenerated)
2353
1903
  c += " " + this.connection.driver.createFullType(column);
2354
1904
  if (column.charset)
2355
- c += " CHARACTER SET \"" + column.charset + "\"";
1905
+ c += ' CHARACTER SET "' + column.charset + '"';
2356
1906
  if (column.collation)
2357
- c += " COLLATE \"" + column.collation + "\"";
1907
+ c += ' COLLATE "' + column.collation + '"';
2358
1908
  if (!column.isNullable)
2359
1909
  c += " NOT NULL";
2360
- if (!column.isGenerated && column.default !== undefined && column.default !== null)
1910
+ if (!column.isGenerated &&
1911
+ column.default !== undefined &&
1912
+ column.default !== null)
2361
1913
  c += " DEFAULT " + column.default;
2362
1914
  return c;
2363
- };
2364
- return CockroachQueryRunner;
2365
- }(BaseQueryRunner));
2366
- export { CockroachQueryRunner };
1915
+ }
1916
+ }
2367
1917
 
2368
1918
  //# sourceMappingURL=CockroachQueryRunner.js.map