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