typeorm 0.3.0-rc.9 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2670) hide show
  1. package/README.md +175 -119
  2. package/browser/cache/DbQueryResultCache.d.ts +6 -4
  3. package/browser/cache/DbQueryResultCache.js +180 -187
  4. package/browser/cache/DbQueryResultCache.js.map +1 -1
  5. package/browser/cache/QueryResultCache.js +1 -1
  6. package/browser/cache/QueryResultCache.js.map +1 -1
  7. package/browser/cache/QueryResultCacheFactory.d.ts +3 -3
  8. package/browser/cache/QueryResultCacheFactory.js +19 -15
  9. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  10. package/browser/cache/QueryResultCacheOptions.js +1 -1
  11. package/browser/cache/QueryResultCacheOptions.js.map +1 -1
  12. package/browser/cache/RedisQueryResultCache.d.ts +3 -3
  13. package/browser/cache/RedisQueryResultCache.js +104 -127
  14. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  15. package/browser/common/DeepPartial.d.ts +3 -3
  16. package/browser/common/DeepPartial.js +1 -1
  17. package/browser/common/DeepPartial.js.map +1 -1
  18. package/browser/common/EntityTarget.d.ts +9 -0
  19. package/browser/common/EntityTarget.js +3 -0
  20. package/browser/common/EntityTarget.js.map +1 -0
  21. package/browser/common/MixedList.d.ts +8 -0
  22. package/browser/common/MixedList.js +3 -0
  23. package/browser/common/MixedList.js.map +1 -0
  24. package/browser/common/NonNever.d.ts +6 -0
  25. package/browser/common/NonNever.js +3 -0
  26. package/browser/common/NonNever.js.map +1 -0
  27. package/browser/common/ObjectLiteral.js +1 -1
  28. package/browser/common/ObjectLiteral.js.map +1 -1
  29. package/browser/common/ObjectType.js +1 -1
  30. package/browser/common/ObjectType.js.map +1 -1
  31. package/browser/common/RelationType.d.ts +14 -0
  32. package/browser/common/RelationType.js +3 -0
  33. package/browser/common/RelationType.js.map +1 -0
  34. package/browser/connection/BaseConnectionOptions.d.ts +4 -144
  35. package/browser/connection/BaseConnectionOptions.js +1 -1
  36. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  37. package/browser/connection/Connection.d.ts +4 -219
  38. package/browser/connection/Connection.js +5 -531
  39. package/browser/connection/Connection.js.map +1 -1
  40. package/browser/connection/ConnectionManager.d.ts +11 -5
  41. package/browser/connection/ConnectionManager.js +26 -26
  42. package/browser/connection/ConnectionManager.js.map +1 -1
  43. package/browser/connection/ConnectionMetadataBuilder.d.ts +6 -6
  44. package/browser/connection/ConnectionMetadataBuilder.js +37 -31
  45. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  46. package/browser/connection/ConnectionOptions.d.ts +4 -14
  47. package/browser/connection/ConnectionOptions.js +1 -1
  48. package/browser/connection/ConnectionOptions.js.map +1 -1
  49. package/browser/connection/ConnectionOptionsReader.d.ts +8 -8
  50. package/browser/connection/ConnectionOptionsReader.js +145 -169
  51. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  52. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
  53. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +68 -49
  54. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  55. package/browser/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
  56. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +46 -42
  57. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  58. package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
  59. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +14 -11
  60. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  61. package/browser/container.d.ts +12 -0
  62. package/browser/container.js +19 -11
  63. package/browser/container.js.map +1 -1
  64. package/browser/data-source/BaseDataSourceOptions.d.ts +179 -0
  65. package/browser/data-source/BaseDataSourceOptions.js +3 -0
  66. package/browser/data-source/BaseDataSourceOptions.js.map +1 -0
  67. package/browser/data-source/DataSource.d.ts +246 -0
  68. package/browser/data-source/DataSource.js +448 -0
  69. package/browser/data-source/DataSource.js.map +1 -0
  70. package/browser/data-source/DataSourceOptions.d.ts +21 -0
  71. package/browser/data-source/DataSourceOptions.js +3 -0
  72. package/browser/data-source/DataSourceOptions.js.map +1 -0
  73. package/browser/data-source/index.d.ts +2 -0
  74. package/browser/data-source/index.js +4 -0
  75. package/browser/data-source/index.js.map +1 -0
  76. package/browser/decorator/Check.d.ts +2 -2
  77. package/browser/decorator/Check.js +9 -6
  78. package/browser/decorator/Check.js.map +1 -1
  79. package/browser/decorator/EntityRepository.d.ts +3 -1
  80. package/browser/decorator/EntityRepository.js +3 -1
  81. package/browser/decorator/EntityRepository.js.map +1 -1
  82. package/browser/decorator/Exclusion.d.ts +2 -2
  83. package/browser/decorator/Exclusion.js +9 -6
  84. package/browser/decorator/Exclusion.js.map +1 -1
  85. package/browser/decorator/Generated.d.ts +1 -1
  86. package/browser/decorator/Generated.js +3 -4
  87. package/browser/decorator/Generated.js.map +1 -1
  88. package/browser/decorator/Index.d.ts +10 -10
  89. package/browser/decorator/Index.js +28 -8
  90. package/browser/decorator/Index.js.map +1 -1
  91. package/browser/decorator/Unique.d.ts +7 -6
  92. package/browser/decorator/Unique.js +36 -7
  93. package/browser/decorator/Unique.js.map +1 -1
  94. package/browser/decorator/columns/Column.d.ts +13 -13
  95. package/browser/decorator/columns/Column.js +24 -12
  96. package/browser/decorator/columns/Column.js.map +1 -1
  97. package/browser/decorator/columns/CreateDateColumn.d.ts +2 -2
  98. package/browser/decorator/columns/CreateDateColumn.js +2 -2
  99. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  100. package/browser/decorator/columns/DeleteDateColumn.d.ts +6 -0
  101. package/browser/decorator/columns/DeleteDateColumn.js +17 -0
  102. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -0
  103. package/browser/decorator/columns/ObjectIdColumn.d.ts +2 -2
  104. package/browser/decorator/columns/ObjectIdColumn.js +2 -2
  105. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  106. package/browser/decorator/columns/PrimaryColumn.d.ts +11 -3
  107. package/browser/decorator/columns/PrimaryColumn.js +9 -5
  108. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  109. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
  110. package/browser/decorator/columns/PrimaryGeneratedColumn.js +9 -8
  111. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  112. package/browser/decorator/columns/UpdateDateColumn.d.ts +2 -2
  113. package/browser/decorator/columns/UpdateDateColumn.js +2 -2
  114. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  115. package/browser/decorator/columns/VersionColumn.d.ts +2 -2
  116. package/browser/decorator/columns/VersionColumn.js +2 -2
  117. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  118. package/browser/decorator/columns/ViewColumn.d.ts +2 -1
  119. package/browser/decorator/columns/ViewColumn.js +3 -3
  120. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  121. package/browser/decorator/entity/ChildEntity.d.ts +1 -1
  122. package/browser/decorator/entity/ChildEntity.js +3 -3
  123. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  124. package/browser/decorator/entity/Entity.d.ts +3 -3
  125. package/browser/decorator/entity/Entity.js +7 -4
  126. package/browser/decorator/entity/Entity.js.map +1 -1
  127. package/browser/decorator/entity/TableInheritance.d.ts +2 -2
  128. package/browser/decorator/entity/TableInheritance.js +6 -2
  129. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  130. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
  131. package/browser/decorator/entity-view/ViewEntity.js +10 -4
  132. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  133. package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
  134. package/browser/decorator/listeners/AfterInsert.js +2 -2
  135. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  136. package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
  137. package/browser/decorator/listeners/AfterLoad.js +2 -2
  138. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  139. package/browser/decorator/listeners/AfterRecover.d.ts +4 -0
  140. package/browser/decorator/listeners/AfterRecover.js +16 -0
  141. package/browser/decorator/listeners/AfterRecover.js.map +1 -0
  142. package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
  143. package/browser/decorator/listeners/AfterRemove.js +2 -2
  144. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  145. package/browser/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  146. package/browser/decorator/listeners/AfterSoftRemove.js +16 -0
  147. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -0
  148. package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
  149. package/browser/decorator/listeners/AfterUpdate.js +2 -2
  150. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  151. package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
  152. package/browser/decorator/listeners/BeforeInsert.js +2 -2
  153. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  154. package/browser/decorator/listeners/BeforeRecover.d.ts +4 -0
  155. package/browser/decorator/listeners/BeforeRecover.js +16 -0
  156. package/browser/decorator/listeners/BeforeRecover.js.map +1 -0
  157. package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
  158. package/browser/decorator/listeners/BeforeRemove.js +2 -2
  159. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  160. package/browser/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  161. package/browser/decorator/listeners/BeforeSoftRemove.js +16 -0
  162. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  163. package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
  164. package/browser/decorator/listeners/BeforeUpdate.js +2 -2
  165. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  166. package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
  167. package/browser/decorator/listeners/EventSubscriber.js +2 -2
  168. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  169. package/browser/decorator/options/ColumnCommonOptions.d.ts +1 -1
  170. package/browser/decorator/options/ColumnCommonOptions.js +1 -1
  171. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  172. package/browser/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
  173. package/browser/decorator/options/ColumnEmbeddedOptions.js +1 -1
  174. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  175. package/browser/decorator/options/ColumnEnumOptions.js +1 -1
  176. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  177. package/browser/decorator/options/ColumnHstoreOptions.js +1 -1
  178. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  179. package/browser/decorator/options/ColumnNumericOptions.js +1 -1
  180. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  181. package/browser/decorator/options/ColumnOptions.d.ts +5 -1
  182. package/browser/decorator/options/ColumnOptions.js +1 -1
  183. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  184. package/browser/decorator/options/ColumnWithLengthOptions.js +1 -1
  185. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  186. package/browser/decorator/options/ColumnWithWidthOptions.js +1 -1
  187. package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  188. package/browser/decorator/options/EntityOptions.js +1 -1
  189. package/browser/decorator/options/EntityOptions.js.map +1 -1
  190. package/browser/decorator/options/IndexOptions.d.ts +5 -0
  191. package/browser/decorator/options/IndexOptions.js +1 -1
  192. package/browser/decorator/options/IndexOptions.js.map +1 -1
  193. package/browser/decorator/options/JoinColumnOptions.js +1 -1
  194. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  195. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +1 -1
  196. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  197. package/browser/decorator/options/JoinTableOptions.js +1 -1
  198. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  199. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  200. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +3 -0
  201. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  202. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -1
  203. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  204. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -1
  205. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  206. package/browser/decorator/options/RelationOptions.d.ts +12 -2
  207. package/browser/decorator/options/RelationOptions.js +1 -1
  208. package/browser/decorator/options/RelationOptions.js.map +1 -1
  209. package/browser/decorator/options/SpatialColumnOptions.js +1 -1
  210. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  211. package/browser/decorator/options/TransactionOptions.js +1 -1
  212. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  213. package/browser/decorator/options/UniqueOptions.d.ts +10 -0
  214. package/browser/decorator/options/UniqueOptions.js +3 -0
  215. package/browser/decorator/options/UniqueOptions.js.map +1 -0
  216. package/browser/decorator/options/ValueTransformer.js +1 -1
  217. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  218. package/browser/decorator/options/ViewColumnOptions.d.ts +15 -0
  219. package/browser/decorator/options/ViewColumnOptions.js +3 -0
  220. package/browser/decorator/options/ViewColumnOptions.js.map +1 -0
  221. package/browser/decorator/options/ViewEntityOptions.d.ts +7 -2
  222. package/browser/decorator/options/ViewEntityOptions.js +1 -1
  223. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  224. package/browser/decorator/relations/JoinColumn.d.ts +4 -4
  225. package/browser/decorator/relations/JoinColumn.js +6 -4
  226. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  227. package/browser/decorator/relations/JoinTable.d.ts +4 -4
  228. package/browser/decorator/relations/JoinTable.js +13 -4
  229. package/browser/decorator/relations/JoinTable.js.map +1 -1
  230. package/browser/decorator/relations/ManyToMany.d.ts +4 -3
  231. package/browser/decorator/relations/ManyToMany.js +12 -8
  232. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  233. package/browser/decorator/relations/ManyToOne.d.ts +10 -9
  234. package/browser/decorator/relations/ManyToOne.js +17 -13
  235. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  236. package/browser/decorator/relations/OneToMany.d.ts +6 -4
  237. package/browser/decorator/relations/OneToMany.js +13 -9
  238. package/browser/decorator/relations/OneToMany.js.map +1 -1
  239. package/browser/decorator/relations/OneToOne.d.ts +4 -3
  240. package/browser/decorator/relations/OneToOne.js +12 -8
  241. package/browser/decorator/relations/OneToOne.js.map +1 -1
  242. package/browser/decorator/relations/RelationCount.d.ts +2 -2
  243. package/browser/decorator/relations/RelationCount.js +2 -2
  244. package/browser/decorator/relations/RelationCount.js.map +1 -1
  245. package/browser/decorator/relations/RelationId.d.ts +2 -2
  246. package/browser/decorator/relations/RelationId.js +2 -2
  247. package/browser/decorator/relations/RelationId.js.map +1 -1
  248. package/browser/decorator/tree/Tree.d.ts +2 -1
  249. package/browser/decorator/tree/Tree.js +4 -3
  250. package/browser/decorator/tree/Tree.js.map +1 -1
  251. package/browser/decorator/tree/TreeChildren.d.ts +2 -2
  252. package/browser/decorator/tree/TreeChildren.js +11 -6
  253. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  254. package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
  255. package/browser/decorator/tree/TreeLevelColumn.js +2 -2
  256. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  257. package/browser/decorator/tree/TreeParent.d.ts +4 -1
  258. package/browser/decorator/tree/TreeParent.js +13 -6
  259. package/browser/decorator/tree/TreeParent.js.map +1 -1
  260. package/browser/driver/Driver.d.ts +39 -9
  261. package/browser/driver/Driver.js +1 -1
  262. package/browser/driver/Driver.js.map +1 -1
  263. package/browser/driver/DriverFactory.d.ts +2 -2
  264. package/browser/driver/DriverFactory.js +40 -13
  265. package/browser/driver/DriverFactory.js.map +1 -1
  266. package/browser/driver/DriverUtils.d.ts +39 -10
  267. package/browser/driver/DriverUtils.js +179 -55
  268. package/browser/driver/DriverUtils.js.map +1 -1
  269. package/browser/driver/Query.d.ts +1 -0
  270. package/browser/driver/Query.js +4 -5
  271. package/browser/driver/Query.js.map +1 -1
  272. package/browser/driver/SqlInMemory.js +3 -5
  273. package/browser/driver/SqlInMemory.js.map +1 -1
  274. package/browser/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
  275. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js +15 -0
  276. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
  277. package/browser/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
  278. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +3 -0
  279. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
  280. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
  281. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +3 -0
  282. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
  283. package/browser/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
  284. package/browser/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +322 -211
  285. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
  286. package/{driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +27 -18
  287. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1677 -0
  288. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
  289. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
  290. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +3 -0
  291. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
  292. package/browser/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
  293. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js +99 -0
  294. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
  295. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
  296. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +135 -0
  297. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
  298. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
  299. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
  300. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  301. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
  302. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +149 -0
  303. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  304. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
  305. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +124 -0
  306. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  307. package/browser/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
  308. package/browser/driver/capacitor/CapacitorConnectionOptions.js +3 -0
  309. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
  310. package/browser/driver/capacitor/CapacitorDriver.d.ts +27 -0
  311. package/browser/driver/capacitor/CapacitorDriver.js +79 -0
  312. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -0
  313. package/browser/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
  314. package/browser/driver/capacitor/CapacitorQueryRunner.js +94 -0
  315. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
  316. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -1
  317. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  318. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
  319. package/browser/driver/cockroachdb/CockroachConnectionOptions.js +1 -1
  320. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  321. package/browser/driver/cockroachdb/CockroachDriver.d.ts +49 -8
  322. package/browser/driver/cockroachdb/CockroachDriver.js +321 -263
  323. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  324. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +22 -18
  325. package/browser/driver/cockroachdb/CockroachQueryRunner.js +1576 -2026
  326. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  327. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
  328. package/browser/driver/cordova/CordovaConnectionOptions.js +1 -1
  329. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  330. package/browser/driver/cordova/CordovaDriver.d.ts +5 -4
  331. package/browser/driver/cordova/CordovaDriver.js +33 -49
  332. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  333. package/browser/driver/cordova/CordovaQueryRunner.d.ts +27 -1
  334. package/browser/driver/cordova/CordovaQueryRunner.js +100 -53
  335. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  336. package/browser/driver/expo/ExpoConnectionOptions.d.ts +6 -2
  337. package/browser/driver/expo/ExpoConnectionOptions.js +1 -1
  338. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  339. package/browser/driver/expo/ExpoDriver.d.ts +4 -7
  340. package/browser/driver/expo/ExpoDriver.js +32 -53
  341. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  342. package/browser/driver/expo/ExpoQueryRunner.d.ts +9 -1
  343. package/browser/driver/expo/ExpoQueryRunner.js +123 -94
  344. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  345. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
  346. package/browser/driver/mongodb/MongoConnectionOptions.js +1 -1
  347. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  348. package/browser/driver/mongodb/MongoDriver.d.ts +36 -12
  349. package/browser/driver/mongodb/MongoDriver.js +145 -99
  350. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  351. package/browser/driver/mongodb/MongoQueryRunner.d.ts +27 -8
  352. package/browser/driver/mongodb/MongoQueryRunner.js +330 -748
  353. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  354. package/browser/driver/mongodb/typings.d.ts +12 -11
  355. package/browser/driver/mongodb/typings.js.map +1 -1
  356. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  357. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -1
  358. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  359. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
  360. package/browser/driver/mysql/MysqlConnectionOptions.js +1 -1
  361. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  362. package/browser/driver/mysql/MysqlDriver.d.ts +48 -11
  363. package/browser/driver/mysql/MysqlDriver.js +440 -271
  364. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  365. package/browser/driver/mysql/MysqlQueryRunner.d.ts +25 -15
  366. package/browser/driver/mysql/MysqlQueryRunner.js +1552 -1751
  367. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  368. package/browser/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
  369. package/browser/driver/nativescript/NativescriptConnectionOptions.js +1 -1
  370. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  371. package/browser/driver/nativescript/NativescriptDriver.d.ts +5 -4
  372. package/browser/driver/nativescript/NativescriptDriver.js +36 -43
  373. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  374. package/browser/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
  375. package/browser/driver/nativescript/NativescriptQueryRunner.js +54 -39
  376. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  377. package/browser/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
  378. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +1 -1
  379. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  380. package/browser/driver/oracle/OracleConnectionOptions.d.ts +11 -2
  381. package/browser/driver/oracle/OracleConnectionOptions.js +1 -1
  382. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  383. package/browser/driver/oracle/OracleDriver.d.ts +31 -7
  384. package/browser/driver/oracle/OracleDriver.js +328 -234
  385. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  386. package/browser/driver/oracle/OracleQueryRunner.d.ts +23 -9
  387. package/browser/driver/oracle/OracleQueryRunner.js +1346 -1670
  388. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  389. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  390. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -1
  391. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  392. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
  393. package/browser/driver/postgres/PostgresConnectionOptions.js +1 -1
  394. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  395. package/browser/driver/postgres/PostgresDriver.d.ts +81 -19
  396. package/browser/driver/postgres/PostgresDriver.js +618 -439
  397. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  398. package/browser/driver/postgres/PostgresQueryRunner.d.ts +48 -26
  399. package/browser/driver/postgres/PostgresQueryRunner.js +2128 -2286
  400. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  401. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
  402. package/browser/driver/react-native/ReactNativeConnectionOptions.js +1 -1
  403. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  404. package/browser/driver/react-native/ReactNativeDriver.d.ts +4 -3
  405. package/browser/driver/react-native/ReactNativeDriver.js +31 -42
  406. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  407. package/browser/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
  408. package/browser/driver/react-native/ReactNativeQueryRunner.js +62 -53
  409. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  410. package/browser/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
  411. package/browser/driver/sap/SapConnectionCredentialsOptions.js +3 -0
  412. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
  413. package/browser/driver/sap/SapConnectionOptions.d.ts +59 -0
  414. package/browser/driver/sap/SapConnectionOptions.js +3 -0
  415. package/browser/driver/sap/SapConnectionOptions.js.map +1 -0
  416. package/browser/driver/sap/SapDriver.d.ts +214 -0
  417. package/browser/driver/sap/SapDriver.js +641 -0
  418. package/browser/driver/sap/SapDriver.js.map +1 -0
  419. package/browser/driver/sap/SapQueryRunner.d.ts +342 -0
  420. package/browser/driver/sap/SapQueryRunner.js +1987 -0
  421. package/browser/driver/sap/SapQueryRunner.js.map +1 -0
  422. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
  423. package/browser/driver/sqlite/SqliteConnectionOptions.js +1 -1
  424. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  425. package/browser/driver/sqlite/SqliteDriver.d.ts +18 -4
  426. package/browser/driver/sqlite/SqliteDriver.js +104 -83
  427. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  428. package/browser/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
  429. package/browser/driver/sqlite/SqliteQueryRunner.js +83 -68
  430. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  431. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
  432. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +254 -139
  433. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  434. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +25 -5
  435. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1022 -1441
  436. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  437. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
  438. package/browser/driver/sqljs/SqljsConnectionOptions.js +1 -1
  439. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  440. package/browser/driver/sqljs/SqljsDriver.d.ts +4 -3
  441. package/browser/driver/sqljs/SqljsDriver.js +153 -227
  442. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  443. package/browser/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
  444. package/browser/driver/sqljs/SqljsQueryRunner.js +84 -61
  445. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  446. package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
  447. package/browser/driver/sqlserver/MssqlParameter.js +4 -9
  448. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  449. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  450. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -1
  451. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  452. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
  453. package/browser/driver/sqlserver/SqlServerConnectionOptions.js +1 -1
  454. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  455. package/browser/driver/sqlserver/SqlServerDriver.d.ts +43 -9
  456. package/browser/driver/sqlserver/SqlServerDriver.js +355 -253
  457. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  458. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +19 -28
  459. package/browser/driver/sqlserver/SqlServerQueryRunner.js +1810 -2309
  460. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  461. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  462. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
  463. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  464. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  465. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
  466. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  467. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  468. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
  469. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  470. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  471. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
  472. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  473. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  474. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
  475. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  476. package/browser/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  477. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
  478. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  479. package/browser/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  480. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
  481. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  482. package/browser/driver/types/ColumnTypes.d.ts +5 -5
  483. package/browser/driver/types/ColumnTypes.js +1 -1
  484. package/browser/driver/types/ColumnTypes.js.map +1 -1
  485. package/browser/driver/types/DataTypeDefaults.js +1 -1
  486. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  487. package/browser/driver/types/DatabaseType.d.ts +1 -1
  488. package/browser/driver/types/DatabaseType.js +1 -1
  489. package/browser/driver/types/DatabaseType.js.map +1 -1
  490. package/browser/driver/types/IsolationLevel.js +1 -1
  491. package/browser/driver/types/IsolationLevel.js.map +1 -1
  492. package/browser/driver/types/MappedColumnTypes.d.ts +12 -0
  493. package/browser/driver/types/MappedColumnTypes.js +1 -1
  494. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  495. package/browser/driver/types/MetadataTableType.d.ts +5 -0
  496. package/browser/driver/types/MetadataTableType.js +8 -0
  497. package/browser/driver/types/MetadataTableType.js.map +1 -0
  498. package/browser/driver/types/ReplicationMode.d.ts +1 -0
  499. package/browser/driver/types/ReplicationMode.js +3 -0
  500. package/browser/driver/types/ReplicationMode.js.map +1 -0
  501. package/browser/driver/types/UpsertType.d.ts +1 -0
  502. package/browser/driver/types/UpsertType.js +3 -0
  503. package/browser/driver/types/UpsertType.js.map +1 -0
  504. package/browser/entity-manager/EntityManager.d.ts +143 -286
  505. package/browser/entity-manager/EntityManager.js +531 -439
  506. package/browser/entity-manager/EntityManager.js.map +1 -1
  507. package/browser/entity-manager/EntityManagerFactory.d.ts +2 -2
  508. package/browser/entity-manager/EntityManagerFactory.js +6 -12
  509. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  510. package/browser/entity-manager/MongoEntityManager.d.ts +101 -64
  511. package/browser/entity-manager/MongoEntityManager.js +499 -467
  512. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  513. package/browser/entity-manager/SqljsEntityManager.d.ts +3 -2
  514. package/browser/entity-manager/SqljsEntityManager.js +14 -36
  515. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  516. package/browser/entity-schema/EntitySchema.d.ts +1 -0
  517. package/browser/entity-schema/EntitySchema.js +4 -5
  518. package/browser/entity-schema/EntitySchema.js.map +1 -1
  519. package/browser/entity-schema/EntitySchemaCheckOptions.js +1 -1
  520. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  521. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
  522. package/browser/entity-schema/EntitySchemaColumnOptions.js +1 -1
  523. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  524. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  525. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js +4 -0
  526. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  527. package/browser/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  528. package/browser/entity-schema/EntitySchemaEmbeddedError.js +14 -0
  529. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  530. package/browser/entity-schema/EntitySchemaExclusionOptions.js +1 -1
  531. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  532. package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
  533. package/browser/entity-schema/EntitySchemaIndexOptions.js +1 -1
  534. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  535. package/browser/entity-schema/EntitySchemaOptions.d.ts +22 -10
  536. package/browser/entity-schema/EntitySchemaOptions.js +2 -6
  537. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  538. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
  539. package/browser/entity-schema/EntitySchemaRelationOptions.js +1 -1
  540. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  541. package/browser/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  542. package/browser/entity-schema/EntitySchemaTransformer.js +228 -183
  543. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  544. package/browser/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
  545. package/browser/entity-schema/EntitySchemaUniqueOptions.js +1 -1
  546. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  547. package/browser/error/AlreadyHasActiveConnectionError.d.ts +2 -2
  548. package/browser/error/AlreadyHasActiveConnectionError.js +6 -13
  549. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  550. package/browser/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
  551. package/browser/error/CannotAttachTreeChildrenEntityError.js +7 -13
  552. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  553. package/browser/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
  554. package/browser/error/CannotConnectAlreadyConnectedError.js +5 -12
  555. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  556. package/browser/error/CannotCreateEntityIdMapError.d.ts +2 -2
  557. package/browser/error/CannotCreateEntityIdMapError.js +7 -13
  558. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  559. package/browser/error/CannotDetermineEntityError.d.ts +2 -2
  560. package/browser/error/CannotDetermineEntityError.js +6 -12
  561. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  562. package/browser/error/CannotExecuteNotConnectedError.d.ts +2 -2
  563. package/browser/error/CannotExecuteNotConnectedError.js +5 -12
  564. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  565. package/browser/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
  566. package/browser/error/CannotGetEntityManagerNotConnectedError.js +5 -12
  567. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  568. package/browser/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
  569. package/browser/error/CannotReflectMethodParameterTypeError.js +7 -14
  570. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  571. package/browser/error/CircularRelationsError.d.ts +2 -2
  572. package/browser/error/CircularRelationsError.js +6 -12
  573. package/browser/error/CircularRelationsError.js.map +1 -1
  574. package/browser/error/ColumnTypeUndefinedError.d.ts +2 -2
  575. package/browser/error/ColumnTypeUndefinedError.js +8 -15
  576. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  577. package/browser/error/ConnectionIsNotSetError.d.ts +2 -2
  578. package/browser/error/ConnectionIsNotSetError.js +5 -12
  579. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  580. package/browser/error/ConnectionNotFoundError.d.ts +2 -2
  581. package/browser/error/ConnectionNotFoundError.js +5 -12
  582. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  583. package/browser/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
  584. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +8 -13
  585. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  586. package/browser/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
  587. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +8 -13
  588. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  589. package/browser/error/CustomRepositoryNotFoundError.d.ts +2 -2
  590. package/browser/error/CustomRepositoryNotFoundError.js +8 -13
  591. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  592. package/browser/error/DataTypeNotSupportedError.d.ts +2 -2
  593. package/browser/error/DataTypeNotSupportedError.js +7 -13
  594. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  595. package/browser/error/DriverOptionNotSetError.d.ts +2 -2
  596. package/browser/error/DriverOptionNotSetError.js +6 -12
  597. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  598. package/browser/error/DriverPackageNotInstalledError.d.ts +2 -2
  599. package/browser/error/DriverPackageNotInstalledError.js +6 -12
  600. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  601. package/browser/error/EntityMetadataNotFoundError.d.ts +5 -6
  602. package/browser/error/EntityMetadataNotFoundError.js +17 -20
  603. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  604. package/browser/error/EntityNotFoundError.d.ts +5 -5
  605. package/browser/error/EntityNotFoundError.js +21 -22
  606. package/browser/error/EntityNotFoundError.js.map +1 -1
  607. package/browser/error/EntityPropertyNotFoundError.d.ts +8 -0
  608. package/browser/error/EntityPropertyNotFoundError.js +13 -0
  609. package/browser/error/EntityPropertyNotFoundError.js.map +1 -0
  610. package/browser/error/FindRelationsNotFoundError.d.ts +7 -0
  611. package/browser/error/FindRelationsNotFoundError.js +19 -0
  612. package/browser/error/FindRelationsNotFoundError.js.map +1 -0
  613. package/browser/error/InitializedRelationError.d.ts +2 -1
  614. package/browser/error/InitializedRelationError.js +7 -13
  615. package/browser/error/InitializedRelationError.js.map +1 -1
  616. package/browser/error/InsertValuesMissingError.d.ts +2 -2
  617. package/browser/error/InsertValuesMissingError.js +6 -12
  618. package/browser/error/InsertValuesMissingError.js.map +1 -1
  619. package/browser/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
  620. package/browser/error/LimitOnUpdateNotSupportedError.js +6 -13
  621. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  622. package/browser/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
  623. package/browser/error/LockNotSupportedOnGivenDriverError.js +5 -12
  624. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  625. package/browser/error/MetadataAlreadyExistsError.d.ts +2 -4
  626. package/browser/error/MetadataAlreadyExistsError.js +11 -16
  627. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  628. package/browser/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
  629. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +9 -15
  630. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  631. package/browser/error/MissingDeleteDateColumnError.d.ts +5 -0
  632. package/browser/error/MissingDeleteDateColumnError.js +8 -0
  633. package/browser/error/MissingDeleteDateColumnError.js.map +1 -0
  634. package/browser/error/MissingDriverError.d.ts +3 -3
  635. package/browser/error/MissingDriverError.js +6 -12
  636. package/browser/error/MissingDriverError.js.map +1 -1
  637. package/browser/error/MissingJoinColumnError.d.ts +2 -4
  638. package/browser/error/MissingJoinColumnError.js +12 -18
  639. package/browser/error/MissingJoinColumnError.js.map +1 -1
  640. package/browser/error/MissingJoinTableError.d.ts +2 -4
  641. package/browser/error/MissingJoinTableError.js +12 -18
  642. package/browser/error/MissingJoinTableError.js.map +1 -1
  643. package/browser/error/MissingPrimaryColumnError.d.ts +2 -4
  644. package/browser/error/MissingPrimaryColumnError.js +6 -15
  645. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  646. package/browser/error/MustBeEntityError.d.ts +2 -2
  647. package/browser/error/MustBeEntityError.js +5 -12
  648. package/browser/error/MustBeEntityError.js.map +1 -1
  649. package/browser/error/NamingStrategyNotFoundError.d.ts +2 -2
  650. package/browser/error/NamingStrategyNotFoundError.js +11 -14
  651. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  652. package/browser/error/NestedSetMultipleRootError.d.ts +4 -0
  653. package/browser/error/NestedSetMultipleRootError.js +8 -0
  654. package/browser/error/NestedSetMultipleRootError.js.map +1 -0
  655. package/browser/error/NoConnectionForRepositoryError.d.ts +2 -2
  656. package/browser/error/NoConnectionForRepositoryError.js +6 -13
  657. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  658. package/browser/error/NoConnectionOptionError.d.ts +2 -1
  659. package/browser/error/NoConnectionOptionError.js +6 -11
  660. package/browser/error/NoConnectionOptionError.js.map +1 -1
  661. package/browser/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
  662. package/browser/error/NoNeedToReleaseEntityManagerError.js +7 -14
  663. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  664. package/browser/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
  665. package/browser/error/NoVersionOrUpdateDateColumnError.js +5 -12
  666. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  667. package/browser/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
  668. package/browser/error/OffsetWithoutLimitNotSupportedError.js +8 -13
  669. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  670. package/browser/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
  671. package/browser/error/OptimisticLockCanNotBeUsedError.js +5 -12
  672. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  673. package/browser/error/OptimisticLockVersionMismatchError.d.ts +2 -2
  674. package/browser/error/OptimisticLockVersionMismatchError.js +5 -12
  675. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  676. package/browser/error/PersistedEntityNotFoundError.d.ts +2 -2
  677. package/browser/error/PersistedEntityNotFoundError.js +5 -12
  678. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  679. package/browser/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
  680. package/browser/error/PessimisticLockTransactionRequiredError.js +5 -12
  681. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  682. package/browser/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
  683. package/browser/error/PrimaryColumnCannotBeNullableError.js +6 -13
  684. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  685. package/browser/error/QueryFailedError.d.ts +6 -2
  686. package/browser/error/QueryFailedError.js +18 -14
  687. package/browser/error/QueryFailedError.js.map +1 -1
  688. package/browser/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
  689. package/browser/error/QueryRunnerAlreadyReleasedError.js +5 -14
  690. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  691. package/browser/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
  692. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +6 -12
  693. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  694. package/browser/error/RepositoryNotFoundError.d.ts +4 -4
  695. package/browser/error/RepositoryNotFoundError.js +16 -16
  696. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  697. package/browser/error/RepositoryNotTreeError.d.ts +4 -4
  698. package/browser/error/RepositoryNotTreeError.js +18 -19
  699. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  700. package/browser/error/ReturningStatementNotSupportedError.d.ts +2 -2
  701. package/browser/error/ReturningStatementNotSupportedError.js +5 -12
  702. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  703. package/browser/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
  704. package/browser/error/SubjectRemovedAndUpdatedError.js +6 -13
  705. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  706. package/browser/error/SubjectWithoutIdentifierError.d.ts +2 -2
  707. package/browser/error/SubjectWithoutIdentifierError.js +5 -13
  708. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  709. package/browser/error/TransactionAlreadyStartedError.d.ts +2 -2
  710. package/browser/error/TransactionAlreadyStartedError.js +5 -12
  711. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  712. package/browser/error/TransactionNotStartedError.d.ts +2 -2
  713. package/browser/error/TransactionNotStartedError.js +5 -12
  714. package/browser/error/TransactionNotStartedError.js.map +1 -1
  715. package/browser/error/TreeRepositoryNotSupportedError.d.ts +2 -2
  716. package/browser/error/TreeRepositoryNotSupportedError.js +5 -12
  717. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  718. package/browser/error/TypeORMError.d.ts +4 -0
  719. package/browser/error/TypeORMError.js +19 -0
  720. package/browser/error/TypeORMError.js.map +1 -0
  721. package/browser/error/UpdateValuesMissingError.d.ts +2 -5
  722. package/browser/error/UpdateValuesMissingError.js +5 -15
  723. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  724. package/browser/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
  725. package/browser/error/UsingJoinColumnIsNotAllowedError.js +6 -15
  726. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  727. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
  728. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +7 -16
  729. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  730. package/browser/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
  731. package/browser/error/UsingJoinTableIsNotAllowedError.js +7 -16
  732. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  733. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
  734. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +7 -16
  735. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  736. package/browser/error/index.d.ts +62 -0
  737. package/browser/error/index.js +64 -0
  738. package/browser/error/index.js.map +1 -0
  739. package/browser/find-options/EqualOperator.d.ts +5 -0
  740. package/browser/find-options/EqualOperator.js +9 -0
  741. package/browser/find-options/EqualOperator.js.map +1 -0
  742. package/browser/find-options/FindManyOptions.d.ts +14 -0
  743. package/browser/find-options/FindManyOptions.js +3 -0
  744. package/browser/find-options/FindManyOptions.js.map +1 -0
  745. package/browser/find-options/FindOneOptions.d.ts +86 -0
  746. package/browser/find-options/FindOneOptions.js +3 -0
  747. package/browser/find-options/FindOneOptions.js.map +1 -0
  748. package/browser/find-options/FindOperator.d.ts +31 -8
  749. package/browser/find-options/FindOperator.js +64 -97
  750. package/browser/find-options/FindOperator.js.map +1 -1
  751. package/browser/find-options/FindOperatorType.d.ts +1 -1
  752. package/browser/find-options/FindOperatorType.js +1 -1
  753. package/browser/find-options/FindOperatorType.js.map +1 -1
  754. package/browser/find-options/FindOptionsOrder.d.ts +19 -0
  755. package/browser/find-options/FindOptionsOrder.js +3 -0
  756. package/browser/find-options/FindOptionsOrder.js.map +1 -0
  757. package/browser/find-options/FindOptionsRelations.d.ts +19 -0
  758. package/browser/find-options/FindOptionsRelations.js +3 -0
  759. package/browser/find-options/FindOptionsRelations.js.map +1 -0
  760. package/browser/find-options/FindOptionsSelect.d.ts +19 -0
  761. package/browser/find-options/FindOptionsSelect.js +3 -0
  762. package/browser/find-options/FindOptionsSelect.js.map +1 -0
  763. package/browser/find-options/FindOptionsUtils.d.ts +180 -6
  764. package/browser/find-options/FindOptionsUtils.js +299 -94
  765. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  766. package/browser/find-options/FindOptionsWhere.d.ts +14 -0
  767. package/browser/find-options/FindOptionsWhere.js +3 -0
  768. package/browser/find-options/FindOptionsWhere.js.map +1 -0
  769. package/browser/find-options/FindTreeOptions.d.ts +13 -0
  770. package/browser/find-options/FindTreeOptions.js +3 -0
  771. package/browser/find-options/FindTreeOptions.js.map +1 -0
  772. package/browser/find-options/JoinOptions.d.ts +76 -0
  773. package/browser/find-options/JoinOptions.js +3 -0
  774. package/browser/find-options/JoinOptions.js.map +1 -0
  775. package/browser/find-options/OrderByCondition.js +1 -1
  776. package/browser/find-options/OrderByCondition.js.map +1 -1
  777. package/browser/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
  778. package/browser/find-options/mongodb/MongoFindManyOptions.js +3 -0
  779. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
  780. package/browser/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
  781. package/browser/find-options/mongodb/MongoFindOneOptions.js +3 -0
  782. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
  783. package/browser/find-options/operator/Any.d.ts +1 -1
  784. package/browser/find-options/operator/Any.js.map +1 -1
  785. package/browser/find-options/operator/Between.d.ts +1 -1
  786. package/browser/find-options/operator/Between.js.map +1 -1
  787. package/browser/find-options/operator/Equal.d.ts +7 -2
  788. package/browser/find-options/operator/Equal.js +7 -3
  789. package/browser/find-options/operator/Equal.js.map +1 -1
  790. package/browser/find-options/operator/ILike.d.ts +1 -1
  791. package/browser/find-options/operator/ILike.js +1 -1
  792. package/browser/find-options/operator/ILike.js.map +1 -1
  793. package/browser/find-options/operator/In.d.ts +1 -1
  794. package/browser/find-options/operator/In.js.map +1 -1
  795. package/browser/find-options/operator/IsNull.js.map +1 -1
  796. package/browser/find-options/operator/LessThan.js.map +1 -1
  797. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  798. package/browser/find-options/operator/Like.d.ts +1 -1
  799. package/browser/find-options/operator/Like.js +1 -1
  800. package/browser/find-options/operator/Like.js.map +1 -1
  801. package/browser/find-options/operator/MoreThan.js.map +1 -1
  802. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  803. package/browser/find-options/operator/Not.d.ts +1 -1
  804. package/browser/find-options/operator/Not.js +1 -1
  805. package/browser/find-options/operator/Not.js.map +1 -1
  806. package/browser/find-options/operator/Raw.d.ts +14 -2
  807. package/browser/find-options/operator/Raw.js +5 -6
  808. package/browser/find-options/operator/Raw.js.map +1 -1
  809. package/browser/globals.d.ts +117 -0
  810. package/browser/globals.js +166 -0
  811. package/browser/globals.js.map +1 -0
  812. package/browser/index.d.ts +45 -113
  813. package/browser/index.js +57 -190
  814. package/browser/index.js.map +1 -1
  815. package/browser/logger/AdvancedConsoleLogger.d.ts +2 -1
  816. package/browser/logger/AdvancedConsoleLogger.js +55 -33
  817. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  818. package/browser/logger/DebugLogger.d.ts +1 -2
  819. package/browser/logger/DebugLogger.js +24 -26
  820. package/browser/logger/DebugLogger.js.map +1 -1
  821. package/browser/logger/FileLogger.d.ts +3 -1
  822. package/browser/logger/FileLogger.js +65 -40
  823. package/browser/logger/FileLogger.js.map +1 -1
  824. package/browser/logger/Logger.d.ts +1 -1
  825. package/browser/logger/Logger.js +1 -1
  826. package/browser/logger/Logger.js.map +1 -1
  827. package/browser/logger/LoggerFactory.js +6 -9
  828. package/browser/logger/LoggerFactory.js.map +1 -1
  829. package/browser/logger/LoggerOptions.d.ts +9 -0
  830. package/browser/logger/LoggerOptions.js +1 -1
  831. package/browser/logger/LoggerOptions.js.map +1 -1
  832. package/browser/logger/SimpleConsoleLogger.d.ts +2 -1
  833. package/browser/logger/SimpleConsoleLogger.js +55 -33
  834. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  835. package/browser/metadata/CheckMetadata.js +8 -8
  836. package/browser/metadata/CheckMetadata.js.map +1 -1
  837. package/browser/metadata/ColumnMetadata.d.ts +16 -7
  838. package/browser/metadata/ColumnMetadata.js +240 -126
  839. package/browser/metadata/ColumnMetadata.js.map +1 -1
  840. package/browser/metadata/EmbeddedMetadata.d.ts +12 -5
  841. package/browser/metadata/EmbeddedMetadata.js +77 -51
  842. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  843. package/browser/metadata/EntityListenerMetadata.js +21 -15
  844. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  845. package/browser/metadata/EntityMetadata.d.ts +65 -22
  846. package/browser/metadata/EntityMetadata.js +250 -160
  847. package/browser/metadata/EntityMetadata.js.map +1 -1
  848. package/browser/metadata/ExclusionMetadata.js +8 -8
  849. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  850. package/browser/metadata/ForeignKeyMetadata.js +8 -10
  851. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  852. package/browser/metadata/IndexMetadata.d.ts +7 -2
  853. package/browser/metadata/IndexMetadata.js +44 -34
  854. package/browser/metadata/IndexMetadata.js.map +1 -1
  855. package/browser/metadata/RelationCountMetadata.js +11 -10
  856. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  857. package/browser/metadata/RelationIdMetadata.js +21 -19
  858. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  859. package/browser/metadata/RelationMetadata.d.ts +28 -5
  860. package/browser/metadata/RelationMetadata.js +160 -79
  861. package/browser/metadata/RelationMetadata.js.map +1 -1
  862. package/browser/metadata/UniqueMetadata.d.ts +7 -2
  863. package/browser/metadata/UniqueMetadata.js +40 -32
  864. package/browser/metadata/UniqueMetadata.js.map +1 -1
  865. package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
  866. package/browser/metadata/types/ClosureTreeOptions.js +3 -0
  867. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
  868. package/browser/metadata/types/DeferrableType.js +1 -1
  869. package/browser/metadata/types/DeferrableType.js.map +1 -1
  870. package/browser/metadata/types/EventListenerTypes.d.ts +12 -8
  871. package/browser/metadata/types/EventListenerTypes.js +13 -13
  872. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  873. package/browser/metadata/types/OnDeleteType.js +1 -1
  874. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  875. package/browser/metadata/types/OnUpdateType.js +1 -1
  876. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  877. package/browser/metadata/types/PropertyTypeInFunction.js +1 -1
  878. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  879. package/browser/metadata/types/RelationTypeInFunction.d.ts +2 -1
  880. package/browser/metadata/types/RelationTypeInFunction.js +1 -1
  881. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  882. package/browser/metadata/types/RelationTypes.js +1 -1
  883. package/browser/metadata/types/RelationTypes.js.map +1 -1
  884. package/browser/metadata/types/TableTypes.d.ts +1 -1
  885. package/browser/metadata/types/TableTypes.js +1 -1
  886. package/browser/metadata/types/TableTypes.js.map +1 -1
  887. package/browser/metadata/types/TreeTypes.js +1 -1
  888. package/browser/metadata/types/TreeTypes.js.map +1 -1
  889. package/browser/metadata-args/CheckMetadataArgs.js +1 -1
  890. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  891. package/browser/metadata-args/ColumnMetadataArgs.js +1 -1
  892. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  893. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +1 -1
  894. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  895. package/browser/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  896. package/browser/metadata-args/EmbeddedMetadataArgs.js +1 -1
  897. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  898. package/browser/metadata-args/EntityListenerMetadataArgs.js +1 -1
  899. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  900. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  901. package/browser/metadata-args/EntityRepositoryMetadataArgs.js +1 -1
  902. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  903. package/browser/metadata-args/EntitySubscriberMetadataArgs.js +1 -1
  904. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  905. package/browser/metadata-args/ExclusionMetadataArgs.js +1 -1
  906. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  907. package/browser/metadata-args/GeneratedMetadataArgs.js +1 -1
  908. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  909. package/browser/metadata-args/IndexMetadataArgs.d.ts +7 -2
  910. package/browser/metadata-args/IndexMetadataArgs.js +1 -1
  911. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  912. package/browser/metadata-args/InheritanceMetadataArgs.js +1 -1
  913. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  914. package/browser/metadata-args/JoinColumnMetadataArgs.js +1 -1
  915. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  916. package/browser/metadata-args/JoinTableMetadataArgs.js +1 -1
  917. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  918. package/browser/metadata-args/MetadataArgsStorage.d.ts +4 -0
  919. package/browser/metadata-args/MetadataArgsStorage.js +145 -95
  920. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  921. package/browser/metadata-args/NamingStrategyMetadataArgs.js +1 -1
  922. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  923. package/browser/metadata-args/RelationCountMetadataArgs.js +1 -1
  924. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  925. package/browser/metadata-args/RelationIdMetadataArgs.js +1 -1
  926. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  927. package/browser/metadata-args/RelationMetadataArgs.js +1 -1
  928. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  929. package/browser/metadata-args/TableMetadataArgs.d.ts +9 -5
  930. package/browser/metadata-args/TableMetadataArgs.js +1 -1
  931. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  932. package/browser/metadata-args/TransactionEntityMetadataArgs.js +1 -1
  933. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  934. package/browser/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
  935. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +1 -1
  936. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  937. package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
  938. package/browser/metadata-args/TreeMetadataArgs.js +1 -1
  939. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  940. package/browser/metadata-args/UniqueMetadataArgs.d.ts +7 -2
  941. package/browser/metadata-args/UniqueMetadataArgs.js +1 -1
  942. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  943. package/browser/metadata-args/types/ColumnMode.d.ts +1 -1
  944. package/browser/metadata-args/types/ColumnMode.js +1 -1
  945. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  946. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
  947. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +47 -30
  948. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  949. package/browser/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
  950. package/browser/metadata-builder/EntityMetadataBuilder.js +396 -267
  951. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  952. package/browser/metadata-builder/EntityMetadataValidator.js +78 -68
  953. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  954. package/browser/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
  955. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +144 -92
  956. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  957. package/browser/metadata-builder/MetadataUtils.js +12 -16
  958. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  959. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
  960. package/browser/metadata-builder/RelationJoinColumnBuilder.js +69 -50
  961. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  962. package/browser/migration/Migration.js +3 -5
  963. package/browser/migration/Migration.js.map +1 -1
  964. package/browser/migration/MigrationExecutor.d.ts +6 -4
  965. package/browser/migration/MigrationExecutor.js +379 -535
  966. package/browser/migration/MigrationExecutor.js.map +1 -1
  967. package/browser/migration/MigrationInterface.js +1 -1
  968. package/browser/migration/MigrationInterface.js.map +1 -1
  969. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
  970. package/browser/naming-strategy/DefaultNamingStrategy.js +90 -80
  971. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  972. package/browser/naming-strategy/NamingStrategyInterface.d.ts +17 -1
  973. package/browser/naming-strategy/NamingStrategyInterface.js +1 -1
  974. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  975. package/browser/persistence/EntityPersistExecutor.d.ts +4 -4
  976. package/browser/persistence/EntityPersistExecutor.js +126 -151
  977. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  978. package/browser/persistence/Subject.d.ts +27 -3
  979. package/browser/persistence/Subject.js +103 -67
  980. package/browser/persistence/Subject.js.map +1 -1
  981. package/browser/persistence/SubjectChangeMap.js +1 -1
  982. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  983. package/browser/persistence/SubjectChangedColumnsComputer.js +74 -52
  984. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  985. package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
  986. package/browser/persistence/SubjectDatabaseEntityLoader.js +97 -114
  987. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  988. package/browser/persistence/SubjectExecutor.d.ts +19 -2
  989. package/browser/persistence/SubjectExecutor.js +584 -419
  990. package/browser/persistence/SubjectExecutor.js.map +1 -1
  991. package/browser/persistence/SubjectTopoligicalSorter.js +63 -59
  992. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  993. package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  994. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +53 -28
  995. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  996. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +64 -59
  997. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  998. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +60 -43
  999. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1000. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +32 -29
  1001. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1002. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
  1003. package/browser/persistence/tree/ClosureSubjectExecutor.js +213 -89
  1004. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1005. package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
  1006. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +89 -48
  1007. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1008. package/browser/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
  1009. package/browser/persistence/tree/NestedSetSubjectExecutor.js +243 -62
  1010. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1011. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
  1012. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +52 -0
  1013. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
  1014. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
  1015. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +20 -0
  1016. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
  1017. package/browser/platform/BrowserDisabledDriversDummy.d.ts +38 -2
  1018. package/browser/platform/BrowserDisabledDriversDummy.js +54 -50
  1019. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  1020. package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
  1021. package/browser/platform/BrowserFileLoggerDummy.js +47 -0
  1022. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
  1023. package/browser/platform/BrowserPlatformTools.d.ts +74 -0
  1024. package/browser/platform/BrowserPlatformTools.js +141 -0
  1025. package/browser/platform/BrowserPlatformTools.js.map +1 -0
  1026. package/browser/platform/PlatformTools.d.ts +16 -21
  1027. package/browser/platform/PlatformTools.js +174 -117
  1028. package/browser/platform/PlatformTools.js.map +1 -1
  1029. package/browser/query-builder/Alias.d.ts +4 -3
  1030. package/browser/query-builder/Alias.js +18 -31
  1031. package/browser/query-builder/Alias.js.map +1 -1
  1032. package/browser/query-builder/Brackets.d.ts +4 -3
  1033. package/browser/query-builder/Brackets.js +4 -5
  1034. package/browser/query-builder/Brackets.js.map +1 -1
  1035. package/browser/query-builder/DeleteQueryBuilder.d.ts +13 -11
  1036. package/browser/query-builder/DeleteQueryBuilder.js +109 -166
  1037. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  1038. package/browser/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  1039. package/browser/query-builder/InsertOrUpdateOptions.js +3 -0
  1040. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -0
  1041. package/browser/query-builder/InsertQueryBuilder.d.ts +15 -5
  1042. package/browser/query-builder/InsertQueryBuilder.js +453 -293
  1043. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  1044. package/browser/query-builder/JoinAttribute.d.ts +12 -12
  1045. package/browser/query-builder/JoinAttribute.js +140 -189
  1046. package/browser/query-builder/JoinAttribute.js.map +1 -1
  1047. package/browser/query-builder/JoinOptions.js +1 -1
  1048. package/browser/query-builder/JoinOptions.js.map +1 -1
  1049. package/browser/query-builder/NotBrackets.d.ts +8 -0
  1050. package/browser/query-builder/NotBrackets.js +13 -0
  1051. package/browser/query-builder/NotBrackets.js.map +1 -0
  1052. package/browser/query-builder/QueryBuilder.d.ts +55 -32
  1053. package/browser/query-builder/QueryBuilder.js +698 -375
  1054. package/browser/query-builder/QueryBuilder.js.map +1 -1
  1055. package/browser/query-builder/QueryBuilderUtils.d.ts +0 -1
  1056. package/browser/query-builder/QueryBuilderUtils.js +5 -16
  1057. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  1058. package/browser/query-builder/QueryExpressionMap.d.ts +51 -29
  1059. package/browser/query-builder/QueryExpressionMap.js +92 -85
  1060. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  1061. package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
  1062. package/browser/query-builder/QueryPartialEntity.js +1 -1
  1063. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  1064. package/browser/query-builder/RelationIdLoader.d.ts +10 -12
  1065. package/browser/query-builder/RelationIdLoader.js +306 -185
  1066. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  1067. package/browser/query-builder/RelationLoader.d.ts +6 -3
  1068. package/browser/query-builder/RelationLoader.js +181 -146
  1069. package/browser/query-builder/RelationLoader.js.map +1 -1
  1070. package/browser/query-builder/RelationQueryBuilder.d.ts +2 -1
  1071. package/browser/query-builder/RelationQueryBuilder.js +81 -112
  1072. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  1073. package/browser/query-builder/RelationRemover.js +119 -84
  1074. package/browser/query-builder/RelationRemover.js.map +1 -1
  1075. package/browser/query-builder/RelationUpdater.js +128 -128
  1076. package/browser/query-builder/RelationUpdater.js.map +1 -1
  1077. package/browser/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
  1078. package/browser/query-builder/ReturningResultsEntityUpdator.js +135 -155
  1079. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1080. package/browser/query-builder/SelectQuery.js +1 -1
  1081. package/browser/query-builder/SelectQuery.js.map +1 -1
  1082. package/browser/query-builder/SelectQueryBuilder.d.ts +65 -50
  1083. package/browser/query-builder/SelectQueryBuilder.js +1642 -1291
  1084. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  1085. package/browser/query-builder/SelectQueryBuilderOption.js +1 -1
  1086. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  1087. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
  1088. package/browser/query-builder/SoftDeleteQueryBuilder.js +363 -0
  1089. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
  1090. package/browser/query-builder/UpdateQueryBuilder.d.ts +11 -8
  1091. package/browser/query-builder/UpdateQueryBuilder.js +276 -299
  1092. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  1093. package/browser/query-builder/WhereClause.d.ts +16 -0
  1094. package/browser/query-builder/WhereClause.js +3 -0
  1095. package/browser/query-builder/WhereClause.js.map +1 -0
  1096. package/browser/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
  1097. package/browser/query-builder/WhereExpressionBuilder.js +3 -0
  1098. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -0
  1099. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  1100. package/browser/query-builder/relation-count/RelationCountAttribute.js +66 -96
  1101. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1102. package/browser/query-builder/relation-count/RelationCountLoadResult.js +1 -1
  1103. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  1104. package/browser/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
  1105. package/browser/query-builder/relation-count/RelationCountLoader.js +150 -101
  1106. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1107. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +15 -18
  1108. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1109. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  1110. package/browser/query-builder/relation-id/RelationIdAttribute.js +67 -101
  1111. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1112. package/browser/query-builder/relation-id/RelationIdLoadResult.js +1 -1
  1113. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  1114. package/browser/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
  1115. package/browser/query-builder/relation-id/RelationIdLoader.js +255 -148
  1116. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1117. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +15 -18
  1118. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1119. package/browser/query-builder/result/DeleteResult.d.ts +3 -1
  1120. package/browser/query-builder/result/DeleteResult.js +7 -5
  1121. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  1122. package/browser/query-builder/result/InsertResult.d.ts +2 -0
  1123. package/browser/query-builder/result/InsertResult.js +8 -5
  1124. package/browser/query-builder/result/InsertResult.js.map +1 -1
  1125. package/browser/query-builder/result/UpdateResult.d.ts +2 -0
  1126. package/browser/query-builder/result/UpdateResult.js +9 -5
  1127. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  1128. package/browser/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
  1129. package/browser/query-builder/transformer/DocumentToEntityTransformer.js +48 -35
  1130. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1131. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +74 -101
  1132. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1133. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js +25 -27
  1134. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1135. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
  1136. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +228 -159
  1137. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1138. package/browser/query-runner/BaseQueryRunner.d.ts +49 -12
  1139. package/browser/query-runner/BaseQueryRunner.js +240 -247
  1140. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  1141. package/browser/query-runner/QueryLock.d.ts +4 -0
  1142. package/browser/query-runner/QueryLock.js +24 -0
  1143. package/browser/query-runner/QueryLock.js.map +1 -0
  1144. package/browser/query-runner/QueryResult.d.ts +17 -0
  1145. package/browser/query-runner/QueryResult.js +13 -0
  1146. package/browser/query-runner/QueryResult.js.map +1 -0
  1147. package/browser/query-runner/QueryRunner.d.ts +37 -8
  1148. package/browser/query-runner/QueryRunner.js +1 -1
  1149. package/browser/query-runner/QueryRunner.js.map +1 -1
  1150. package/browser/repository/AbstractRepository.d.ts +5 -5
  1151. package/browser/repository/AbstractRepository.js +47 -54
  1152. package/browser/repository/AbstractRepository.js.map +1 -1
  1153. package/browser/repository/BaseEntity.d.ts +69 -81
  1154. package/browser/repository/BaseEntity.js +169 -131
  1155. package/browser/repository/BaseEntity.js.map +1 -1
  1156. package/browser/repository/EntityId.js +1 -1
  1157. package/browser/repository/EntityId.js.map +1 -1
  1158. package/browser/repository/FindTreesOptions.d.ts +9 -0
  1159. package/browser/repository/FindTreesOptions.js +3 -0
  1160. package/browser/repository/FindTreesOptions.js.map +1 -0
  1161. package/browser/repository/MongoRepository.d.ts +55 -9
  1162. package/browser/repository/MongoRepository.js +330 -1
  1163. package/browser/repository/MongoRepository.js.map +1 -1
  1164. package/browser/repository/RemoveOptions.js +1 -1
  1165. package/browser/repository/RemoveOptions.js.map +1 -1
  1166. package/browser/repository/Repository.d.ts +130 -97
  1167. package/browser/repository/Repository.js +288 -1
  1168. package/browser/repository/Repository.js.map +1 -1
  1169. package/browser/repository/SaveOptions.d.ts +1 -1
  1170. package/browser/repository/SaveOptions.js +1 -1
  1171. package/browser/repository/SaveOptions.js.map +1 -1
  1172. package/browser/repository/TreeRepository.d.ts +14 -9
  1173. package/browser/repository/TreeRepository.js +263 -1
  1174. package/browser/repository/TreeRepository.js.map +1 -1
  1175. package/browser/repository/UpsertOptions.d.ts +10 -0
  1176. package/browser/repository/UpsertOptions.js +3 -0
  1177. package/browser/repository/UpsertOptions.js.map +1 -0
  1178. package/browser/schema-builder/MongoSchemaBuilder.d.ts +3 -3
  1179. package/browser/schema-builder/MongoSchemaBuilder.js +28 -42
  1180. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1181. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
  1182. package/browser/schema-builder/RdbmsSchemaBuilder.js +693 -1057
  1183. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1184. package/browser/schema-builder/SchemaBuilder.js +1 -1
  1185. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  1186. package/browser/schema-builder/options/TableCheckOptions.js +1 -1
  1187. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  1188. package/browser/schema-builder/options/TableColumnOptions.d.ts +6 -2
  1189. package/browser/schema-builder/options/TableColumnOptions.js +1 -1
  1190. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  1191. package/browser/schema-builder/options/TableExclusionOptions.js +1 -1
  1192. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  1193. package/browser/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
  1194. package/browser/schema-builder/options/TableForeignKeyOptions.js +1 -1
  1195. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1196. package/browser/schema-builder/options/TableIndexOptions.d.ts +6 -1
  1197. package/browser/schema-builder/options/TableIndexOptions.js +1 -1
  1198. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  1199. package/browser/schema-builder/options/TableOptions.d.ts +8 -0
  1200. package/browser/schema-builder/options/TableOptions.js +1 -1
  1201. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  1202. package/browser/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  1203. package/browser/schema-builder/options/TableUniqueOptions.js +1 -1
  1204. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  1205. package/browser/schema-builder/options/ViewOptions.d.ts +10 -2
  1206. package/browser/schema-builder/options/ViewOptions.js +1 -1
  1207. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  1208. package/browser/schema-builder/table/Table.d.ts +13 -3
  1209. package/browser/schema-builder/table/Table.js +109 -97
  1210. package/browser/schema-builder/table/Table.js.map +1 -1
  1211. package/browser/schema-builder/table/TableCheck.d.ts +1 -0
  1212. package/browser/schema-builder/table/TableCheck.js +10 -12
  1213. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  1214. package/browser/schema-builder/table/TableColumn.d.ts +7 -2
  1215. package/browser/schema-builder/table/TableColumn.js +10 -9
  1216. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  1217. package/browser/schema-builder/table/TableExclusion.d.ts +1 -0
  1218. package/browser/schema-builder/table/TableExclusion.js +9 -10
  1219. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  1220. package/browser/schema-builder/table/TableForeignKey.d.ts +11 -1
  1221. package/browser/schema-builder/table/TableForeignKey.js +16 -12
  1222. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  1223. package/browser/schema-builder/table/TableIndex.d.ts +6 -0
  1224. package/browser/schema-builder/table/TableIndex.js +15 -14
  1225. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  1226. package/browser/schema-builder/table/TableUnique.d.ts +6 -0
  1227. package/browser/schema-builder/table/TableUnique.js +13 -12
  1228. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  1229. package/browser/schema-builder/util/TableUtils.js +10 -11
  1230. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  1231. package/browser/schema-builder/util/ViewUtils.d.ts +7 -0
  1232. package/browser/schema-builder/util/ViewUtils.js +23 -0
  1233. package/browser/schema-builder/util/ViewUtils.js.map +1 -0
  1234. package/browser/schema-builder/view/View.d.ts +12 -5
  1235. package/browser/schema-builder/view/View.js +16 -11
  1236. package/browser/schema-builder/view/View.js.map +1 -1
  1237. package/browser/subscriber/Broadcaster.d.ts +87 -2
  1238. package/browser/subscriber/Broadcaster.js +412 -119
  1239. package/browser/subscriber/Broadcaster.js.map +1 -1
  1240. package/browser/subscriber/BroadcasterResult.d.ts +4 -0
  1241. package/browser/subscriber/BroadcasterResult.js +12 -5
  1242. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  1243. package/browser/subscriber/EntitySubscriberInterface.d.ts +45 -0
  1244. package/browser/subscriber/EntitySubscriberInterface.js +1 -1
  1245. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  1246. package/browser/subscriber/event/InsertEvent.d.ts +7 -7
  1247. package/browser/subscriber/event/InsertEvent.js +1 -1
  1248. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  1249. package/browser/subscriber/event/LoadEvent.d.ts +2 -2
  1250. package/browser/subscriber/event/LoadEvent.js +1 -1
  1251. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  1252. package/browser/subscriber/event/RecoverEvent.d.ts +6 -0
  1253. package/browser/subscriber/event/RecoverEvent.js +3 -0
  1254. package/browser/subscriber/event/RecoverEvent.js.map +1 -0
  1255. package/browser/subscriber/event/RemoveEvent.d.ts +7 -7
  1256. package/browser/subscriber/event/RemoveEvent.js +1 -1
  1257. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  1258. package/browser/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  1259. package/browser/subscriber/event/SoftRemoveEvent.js +3 -0
  1260. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -0
  1261. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  1262. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  1263. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  1264. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  1265. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  1266. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  1267. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  1268. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  1269. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  1270. package/browser/subscriber/event/UpdateEvent.d.ts +5 -4
  1271. package/browser/subscriber/event/UpdateEvent.js +1 -1
  1272. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  1273. package/browser/util/ApplyValueTransformers.js +13 -29
  1274. package/browser/util/ApplyValueTransformers.js.map +1 -1
  1275. package/browser/util/DateUtils.d.ts +2 -2
  1276. package/browser/util/DateUtils.js +110 -83
  1277. package/browser/util/DateUtils.js.map +1 -1
  1278. package/browser/util/DepGraph.js +50 -50
  1279. package/browser/util/DepGraph.js.map +1 -1
  1280. package/browser/util/DirectoryExportedClassesLoader.d.ts +1 -1
  1281. package/browser/util/DirectoryExportedClassesLoader.js +32 -25
  1282. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  1283. package/browser/util/ImportUtils.d.ts +1 -0
  1284. package/browser/util/ImportUtils.js +74 -0
  1285. package/browser/util/ImportUtils.js.map +1 -0
  1286. package/browser/util/InstanceChecker.d.ts +61 -0
  1287. package/browser/util/InstanceChecker.js +103 -0
  1288. package/browser/util/InstanceChecker.js.map +1 -0
  1289. package/browser/util/ObjectUtils.d.ts +17 -6
  1290. package/browser/util/ObjectUtils.js +26 -36
  1291. package/browser/util/ObjectUtils.js.map +1 -1
  1292. package/browser/util/OrmUtils.d.ts +16 -8
  1293. package/browser/util/OrmUtils.js +198 -98
  1294. package/browser/util/OrmUtils.js.map +1 -1
  1295. package/browser/util/PathUtils.d.ts +10 -0
  1296. package/browser/util/PathUtils.js +28 -0
  1297. package/browser/util/PathUtils.js.map +1 -0
  1298. package/browser/util/RandomGenerator.d.ts +0 -4
  1299. package/browser/util/RandomGenerator.js +61 -52
  1300. package/browser/util/RandomGenerator.js.map +1 -1
  1301. package/browser/util/StringUtils.d.ts +13 -3
  1302. package/browser/util/StringUtils.js +42 -19
  1303. package/browser/util/StringUtils.js.map +1 -1
  1304. package/browser/util/TreeRepositoryUtils.d.ts +23 -0
  1305. package/browser/util/TreeRepositoryUtils.js +56 -0
  1306. package/browser/util/TreeRepositoryUtils.js.map +1 -0
  1307. package/browser/util/VersionUtils.js +11 -16
  1308. package/browser/util/VersionUtils.js.map +1 -1
  1309. package/cache/DbQueryResultCache.d.ts +6 -4
  1310. package/cache/DbQueryResultCache.js +182 -187
  1311. package/cache/DbQueryResultCache.js.map +1 -1
  1312. package/cache/QueryResultCache.js.map +1 -1
  1313. package/cache/QueryResultCacheFactory.d.ts +3 -3
  1314. package/cache/QueryResultCacheFactory.js +22 -16
  1315. package/cache/QueryResultCacheFactory.js.map +1 -1
  1316. package/cache/QueryResultCacheOptions.js.map +1 -1
  1317. package/cache/RedisQueryResultCache.d.ts +3 -3
  1318. package/cache/RedisQueryResultCache.js +106 -127
  1319. package/cache/RedisQueryResultCache.js.map +1 -1
  1320. package/cli.js +18 -23
  1321. package/cli.js.map +1 -1
  1322. package/commands/CacheClearCommand.d.ts +1 -3
  1323. package/commands/CacheClearCommand.js +42 -77
  1324. package/commands/CacheClearCommand.js.map +1 -1
  1325. package/commands/CommandUtils.d.ts +7 -1
  1326. package/commands/CommandUtils.js +63 -42
  1327. package/commands/CommandUtils.js.map +1 -1
  1328. package/commands/EntityCreateCommand.d.ts +0 -9
  1329. package/commands/EntityCreateCommand.js +38 -84
  1330. package/commands/EntityCreateCommand.js.map +1 -1
  1331. package/commands/InitCommand.d.ts +12 -9
  1332. package/commands/InitCommand.js +463 -233
  1333. package/commands/InitCommand.js.map +1 -1
  1334. package/commands/MigrationCreateCommand.d.ts +6 -7
  1335. package/commands/MigrationCreateCommand.js +72 -83
  1336. package/commands/MigrationCreateCommand.js.map +1 -1
  1337. package/commands/MigrationGenerateCommand.d.ts +20 -5
  1338. package/commands/MigrationGenerateCommand.js +187 -142
  1339. package/commands/MigrationGenerateCommand.js.map +1 -1
  1340. package/commands/MigrationRevertCommand.d.ts +1 -4
  1341. package/commands/MigrationRevertCommand.js +55 -91
  1342. package/commands/MigrationRevertCommand.js.map +1 -1
  1343. package/commands/MigrationRunCommand.d.ts +1 -4
  1344. package/commands/MigrationRunCommand.js +57 -94
  1345. package/commands/MigrationRunCommand.js.map +1 -1
  1346. package/commands/MigrationShowCommand.d.ts +2 -4
  1347. package/commands/MigrationShowCommand.js +38 -74
  1348. package/commands/MigrationShowCommand.js.map +1 -1
  1349. package/commands/QueryCommand.d.ts +3 -3
  1350. package/commands/QueryCommand.js +58 -86
  1351. package/commands/QueryCommand.js.map +1 -1
  1352. package/commands/SchemaDropCommand.d.ts +2 -4
  1353. package/commands/SchemaDropCommand.js +39 -72
  1354. package/commands/SchemaDropCommand.js.map +1 -1
  1355. package/commands/SchemaLogCommand.d.ts +1 -3
  1356. package/commands/SchemaLogCommand.js +62 -81
  1357. package/commands/SchemaLogCommand.js.map +1 -1
  1358. package/commands/SchemaSyncCommand.d.ts +1 -3
  1359. package/commands/SchemaSyncCommand.js +37 -70
  1360. package/commands/SchemaSyncCommand.js.map +1 -1
  1361. package/commands/SubscriberCreateCommand.d.ts +0 -9
  1362. package/commands/SubscriberCreateCommand.js +38 -78
  1363. package/commands/SubscriberCreateCommand.js.map +1 -1
  1364. package/commands/VersionCommand.js +39 -46
  1365. package/commands/VersionCommand.js.map +1 -1
  1366. package/common/DeepPartial.d.ts +3 -3
  1367. package/common/DeepPartial.js.map +1 -1
  1368. package/common/EntityTarget.d.ts +9 -0
  1369. package/{query-builder/WhereExpression.js → common/EntityTarget.js} +1 -1
  1370. package/common/EntityTarget.js.map +1 -0
  1371. package/common/MixedList.d.ts +8 -0
  1372. package/{find-options/FindOptions.js → common/MixedList.js} +1 -1
  1373. package/common/MixedList.js.map +1 -0
  1374. package/common/NonNever.d.ts +6 -0
  1375. package/{entity-factory/EntityFactoryInterface.js → common/NonNever.js} +1 -1
  1376. package/common/NonNever.js.map +1 -0
  1377. package/common/ObjectLiteral.js.map +1 -1
  1378. package/common/ObjectType.js.map +1 -1
  1379. package/common/RelationType.d.ts +14 -0
  1380. package/{driver/aurora-data-api/AuroraDataApiConnectionOptions.js → common/RelationType.js} +1 -1
  1381. package/common/RelationType.js.map +1 -0
  1382. package/connection/BaseConnectionOptions.d.ts +4 -144
  1383. package/connection/BaseConnectionOptions.js.map +1 -1
  1384. package/connection/Connection.d.ts +4 -219
  1385. package/connection/Connection.js +6 -530
  1386. package/connection/Connection.js.map +1 -1
  1387. package/connection/ConnectionManager.d.ts +11 -5
  1388. package/connection/ConnectionManager.js +29 -27
  1389. package/connection/ConnectionManager.js.map +1 -1
  1390. package/connection/ConnectionMetadataBuilder.d.ts +6 -6
  1391. package/connection/ConnectionMetadataBuilder.js +44 -36
  1392. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  1393. package/connection/ConnectionOptions.d.ts +4 -14
  1394. package/connection/ConnectionOptions.js.map +1 -1
  1395. package/connection/ConnectionOptionsReader.d.ts +8 -8
  1396. package/connection/ConnectionOptionsReader.js +151 -172
  1397. package/connection/ConnectionOptionsReader.js.map +1 -1
  1398. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +8 -2
  1399. package/connection/options-reader/ConnectionOptionsEnvReader.js +71 -50
  1400. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  1401. package/connection/options-reader/ConnectionOptionsXmlReader.d.ts +4 -2
  1402. package/connection/options-reader/ConnectionOptionsXmlReader.js +48 -42
  1403. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  1404. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +4 -2
  1405. package/connection/options-reader/ConnectionOptionsYmlReader.js +17 -11
  1406. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  1407. package/container.d.ts +12 -0
  1408. package/container.js +20 -11
  1409. package/container.js.map +1 -1
  1410. package/data-source/BaseDataSourceOptions.d.ts +179 -0
  1411. package/data-source/BaseDataSourceOptions.js +4 -0
  1412. package/data-source/BaseDataSourceOptions.js.map +1 -0
  1413. package/data-source/DataSource.d.ts +246 -0
  1414. package/data-source/DataSource.js +452 -0
  1415. package/data-source/DataSource.js.map +1 -0
  1416. package/data-source/DataSourceOptions.d.ts +21 -0
  1417. package/data-source/DataSourceOptions.js +4 -0
  1418. package/data-source/DataSourceOptions.js.map +1 -0
  1419. package/data-source/index.d.ts +2 -0
  1420. package/data-source/index.js +7 -0
  1421. package/data-source/index.js.map +1 -0
  1422. package/decorator/Check.d.ts +2 -2
  1423. package/decorator/Check.js +11 -7
  1424. package/decorator/Check.js.map +1 -1
  1425. package/decorator/EntityRepository.d.ts +3 -1
  1426. package/decorator/EntityRepository.js +5 -2
  1427. package/decorator/EntityRepository.js.map +1 -1
  1428. package/decorator/Exclusion.d.ts +2 -2
  1429. package/decorator/Exclusion.js +11 -7
  1430. package/decorator/Exclusion.js.map +1 -1
  1431. package/decorator/Generated.d.ts +1 -1
  1432. package/decorator/Generated.js +5 -5
  1433. package/decorator/Generated.js.map +1 -1
  1434. package/decorator/Index.d.ts +10 -10
  1435. package/decorator/Index.js +30 -9
  1436. package/decorator/Index.js.map +1 -1
  1437. package/decorator/Unique.d.ts +7 -6
  1438. package/decorator/Unique.js +38 -8
  1439. package/decorator/Unique.js.map +1 -1
  1440. package/decorator/columns/Column.d.ts +13 -13
  1441. package/decorator/columns/Column.js +29 -16
  1442. package/decorator/columns/Column.js.map +1 -1
  1443. package/decorator/columns/CreateDateColumn.d.ts +2 -2
  1444. package/decorator/columns/CreateDateColumn.js +4 -3
  1445. package/decorator/columns/CreateDateColumn.js.map +1 -1
  1446. package/decorator/columns/DeleteDateColumn.d.ts +6 -0
  1447. package/decorator/columns/DeleteDateColumn.js +21 -0
  1448. package/decorator/columns/DeleteDateColumn.js.map +1 -0
  1449. package/decorator/columns/ObjectIdColumn.d.ts +2 -2
  1450. package/decorator/columns/ObjectIdColumn.js +4 -3
  1451. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  1452. package/decorator/columns/PrimaryColumn.d.ts +11 -3
  1453. package/decorator/columns/PrimaryColumn.js +14 -9
  1454. package/decorator/columns/PrimaryColumn.js.map +1 -1
  1455. package/decorator/columns/PrimaryGeneratedColumn.d.ts +7 -5
  1456. package/decorator/columns/PrimaryGeneratedColumn.js +12 -10
  1457. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  1458. package/decorator/columns/UpdateDateColumn.d.ts +2 -2
  1459. package/decorator/columns/UpdateDateColumn.js +4 -3
  1460. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  1461. package/decorator/columns/VersionColumn.d.ts +2 -2
  1462. package/decorator/columns/VersionColumn.js +4 -3
  1463. package/decorator/columns/VersionColumn.js.map +1 -1
  1464. package/decorator/columns/ViewColumn.d.ts +2 -1
  1465. package/decorator/columns/ViewColumn.js +5 -4
  1466. package/decorator/columns/ViewColumn.js.map +1 -1
  1467. package/decorator/entity/ChildEntity.d.ts +1 -1
  1468. package/decorator/entity/ChildEntity.js +6 -5
  1469. package/decorator/entity/ChildEntity.js.map +1 -1
  1470. package/decorator/entity/Entity.d.ts +3 -3
  1471. package/decorator/entity/Entity.js +9 -5
  1472. package/decorator/entity/Entity.js.map +1 -1
  1473. package/decorator/entity/TableInheritance.d.ts +2 -2
  1474. package/decorator/entity/TableInheritance.js +8 -3
  1475. package/decorator/entity/TableInheritance.js.map +1 -1
  1476. package/decorator/entity-view/ViewEntity.d.ts +2 -2
  1477. package/decorator/entity-view/ViewEntity.js +12 -5
  1478. package/decorator/entity-view/ViewEntity.js.map +1 -1
  1479. package/decorator/listeners/AfterInsert.d.ts +1 -1
  1480. package/decorator/listeners/AfterInsert.js +5 -4
  1481. package/decorator/listeners/AfterInsert.js.map +1 -1
  1482. package/decorator/listeners/AfterLoad.d.ts +1 -1
  1483. package/decorator/listeners/AfterLoad.js +5 -4
  1484. package/decorator/listeners/AfterLoad.js.map +1 -1
  1485. package/decorator/listeners/AfterRecover.d.ts +4 -0
  1486. package/decorator/listeners/AfterRecover.js +20 -0
  1487. package/decorator/listeners/AfterRecover.js.map +1 -0
  1488. package/decorator/listeners/AfterRemove.d.ts +1 -1
  1489. package/decorator/listeners/AfterRemove.js +5 -4
  1490. package/decorator/listeners/AfterRemove.js.map +1 -1
  1491. package/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  1492. package/decorator/listeners/AfterSoftRemove.js +20 -0
  1493. package/decorator/listeners/AfterSoftRemove.js.map +1 -0
  1494. package/decorator/listeners/AfterUpdate.d.ts +1 -1
  1495. package/decorator/listeners/AfterUpdate.js +5 -4
  1496. package/decorator/listeners/AfterUpdate.js.map +1 -1
  1497. package/decorator/listeners/BeforeInsert.d.ts +1 -1
  1498. package/decorator/listeners/BeforeInsert.js +5 -4
  1499. package/decorator/listeners/BeforeInsert.js.map +1 -1
  1500. package/decorator/listeners/BeforeRecover.d.ts +4 -0
  1501. package/decorator/listeners/BeforeRecover.js +20 -0
  1502. package/decorator/listeners/BeforeRecover.js.map +1 -0
  1503. package/decorator/listeners/BeforeRemove.d.ts +1 -1
  1504. package/decorator/listeners/BeforeRemove.js +5 -4
  1505. package/decorator/listeners/BeforeRemove.js.map +1 -1
  1506. package/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  1507. package/decorator/listeners/BeforeSoftRemove.js +20 -0
  1508. package/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  1509. package/decorator/listeners/BeforeUpdate.d.ts +1 -1
  1510. package/decorator/listeners/BeforeUpdate.js +5 -4
  1511. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  1512. package/decorator/listeners/EventSubscriber.d.ts +1 -1
  1513. package/decorator/listeners/EventSubscriber.js +4 -3
  1514. package/decorator/listeners/EventSubscriber.js.map +1 -1
  1515. package/decorator/options/ColumnCommonOptions.d.ts +1 -1
  1516. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  1517. package/decorator/options/ColumnEmbeddedOptions.d.ts +6 -0
  1518. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  1519. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  1520. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  1521. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  1522. package/decorator/options/ColumnOptions.d.ts +5 -1
  1523. package/decorator/options/ColumnOptions.js.map +1 -1
  1524. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  1525. package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  1526. package/decorator/options/EntityOptions.js.map +1 -1
  1527. package/decorator/options/IndexOptions.d.ts +5 -0
  1528. package/decorator/options/IndexOptions.js.map +1 -1
  1529. package/decorator/options/JoinColumnOptions.js.map +1 -1
  1530. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  1531. package/decorator/options/JoinTableOptions.js.map +1 -1
  1532. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +22 -0
  1533. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +4 -0
  1534. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  1535. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  1536. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  1537. package/decorator/options/RelationOptions.d.ts +12 -2
  1538. package/decorator/options/RelationOptions.js.map +1 -1
  1539. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  1540. package/decorator/options/TransactionOptions.js.map +1 -1
  1541. package/decorator/options/UniqueOptions.d.ts +10 -0
  1542. package/decorator/options/UniqueOptions.js +4 -0
  1543. package/decorator/options/UniqueOptions.js.map +1 -0
  1544. package/decorator/options/ValueTransformer.js.map +1 -1
  1545. package/decorator/options/ViewColumnOptions.d.ts +15 -0
  1546. package/decorator/options/ViewColumnOptions.js +4 -0
  1547. package/decorator/options/ViewColumnOptions.js.map +1 -0
  1548. package/decorator/options/ViewEntityOptions.d.ts +7 -2
  1549. package/decorator/options/ViewEntityOptions.js.map +1 -1
  1550. package/decorator/relations/JoinColumn.d.ts +4 -4
  1551. package/decorator/relations/JoinColumn.js +8 -5
  1552. package/decorator/relations/JoinColumn.js.map +1 -1
  1553. package/decorator/relations/JoinTable.d.ts +4 -4
  1554. package/decorator/relations/JoinTable.js +15 -5
  1555. package/decorator/relations/JoinTable.js.map +1 -1
  1556. package/decorator/relations/ManyToMany.d.ts +4 -3
  1557. package/decorator/relations/ManyToMany.js +14 -9
  1558. package/decorator/relations/ManyToMany.js.map +1 -1
  1559. package/decorator/relations/ManyToOne.d.ts +10 -9
  1560. package/decorator/relations/ManyToOne.js +19 -14
  1561. package/decorator/relations/ManyToOne.js.map +1 -1
  1562. package/decorator/relations/OneToMany.d.ts +6 -4
  1563. package/decorator/relations/OneToMany.js +15 -10
  1564. package/decorator/relations/OneToMany.js.map +1 -1
  1565. package/decorator/relations/OneToOne.d.ts +4 -3
  1566. package/decorator/relations/OneToOne.js +14 -9
  1567. package/decorator/relations/OneToOne.js.map +1 -1
  1568. package/decorator/relations/RelationCount.d.ts +2 -2
  1569. package/decorator/relations/RelationCount.js +4 -3
  1570. package/decorator/relations/RelationCount.js.map +1 -1
  1571. package/decorator/relations/RelationId.d.ts +2 -2
  1572. package/decorator/relations/RelationId.js +4 -3
  1573. package/decorator/relations/RelationId.js.map +1 -1
  1574. package/decorator/tree/Tree.d.ts +2 -1
  1575. package/decorator/tree/Tree.js +6 -4
  1576. package/decorator/tree/Tree.js.map +1 -1
  1577. package/decorator/tree/TreeChildren.d.ts +2 -2
  1578. package/decorator/tree/TreeChildren.js +13 -7
  1579. package/decorator/tree/TreeChildren.js.map +1 -1
  1580. package/decorator/tree/TreeLevelColumn.d.ts +1 -1
  1581. package/decorator/tree/TreeLevelColumn.js +4 -3
  1582. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  1583. package/decorator/tree/TreeParent.d.ts +4 -1
  1584. package/decorator/tree/TreeParent.js +15 -7
  1585. package/decorator/tree/TreeParent.js.map +1 -1
  1586. package/driver/Driver.d.ts +39 -9
  1587. package/driver/Driver.js.map +1 -1
  1588. package/driver/DriverFactory.d.ts +2 -2
  1589. package/driver/DriverFactory.js +54 -25
  1590. package/driver/DriverFactory.js.map +1 -1
  1591. package/driver/DriverUtils.d.ts +39 -10
  1592. package/driver/DriverUtils.js +180 -54
  1593. package/driver/DriverUtils.js.map +1 -1
  1594. package/driver/Query.d.ts +1 -0
  1595. package/driver/Query.js +5 -4
  1596. package/driver/Query.js.map +1 -1
  1597. package/driver/SqlInMemory.js +4 -4
  1598. package/driver/SqlInMemory.js.map +1 -1
  1599. package/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
  1600. package/driver/aurora-mysql/AuroraMysqlConnection.js +19 -0
  1601. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
  1602. package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.d.ts → aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts} +1 -1
  1603. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +4 -0
  1604. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
  1605. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +34 -0
  1606. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +4 -0
  1607. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
  1608. package/driver/{aurora-data-api/AuroraDataApiDriver.d.ts → aurora-mysql/AuroraMysqlDriver.d.ts} +49 -18
  1609. package/driver/{aurora-data-api/AuroraDataApiDriver.js → aurora-mysql/AuroraMysqlDriver.js} +330 -217
  1610. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
  1611. package/{browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts → driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts} +28 -18
  1612. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1681 -0
  1613. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
  1614. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +34 -0
  1615. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +4 -0
  1616. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
  1617. package/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
  1618. package/driver/aurora-postgres/AuroraPostgresDriver.js +103 -0
  1619. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
  1620. package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
  1621. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +139 -0
  1622. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
  1623. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +55 -0
  1624. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
  1625. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  1626. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
  1627. package/driver/better-sqlite3/BetterSqlite3Driver.js +154 -0
  1628. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  1629. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
  1630. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +128 -0
  1631. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  1632. package/driver/capacitor/CapacitorConnectionOptions.d.ts +30 -0
  1633. package/driver/capacitor/CapacitorConnectionOptions.js +4 -0
  1634. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
  1635. package/driver/capacitor/CapacitorDriver.d.ts +27 -0
  1636. package/driver/capacitor/CapacitorDriver.js +83 -0
  1637. package/driver/capacitor/CapacitorDriver.js.map +1 -0
  1638. package/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
  1639. package/driver/capacitor/CapacitorQueryRunner.js +98 -0
  1640. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
  1641. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  1642. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +12 -2
  1643. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  1644. package/driver/cockroachdb/CockroachDriver.d.ts +49 -8
  1645. package/driver/cockroachdb/CockroachDriver.js +331 -271
  1646. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  1647. package/driver/cockroachdb/CockroachQueryRunner.d.ts +21 -18
  1648. package/driver/cockroachdb/CockroachQueryRunner.js +1592 -2040
  1649. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  1650. package/driver/cordova/CordovaConnectionOptions.d.ts +7 -2
  1651. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  1652. package/driver/cordova/CordovaDriver.d.ts +5 -4
  1653. package/driver/cordova/CordovaDriver.js +38 -52
  1654. package/driver/cordova/CordovaDriver.js.map +1 -1
  1655. package/driver/cordova/CordovaQueryRunner.d.ts +27 -1
  1656. package/driver/cordova/CordovaQueryRunner.js +105 -56
  1657. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  1658. package/driver/expo/ExpoConnectionOptions.d.ts +6 -2
  1659. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  1660. package/driver/expo/ExpoDriver.d.ts +4 -7
  1661. package/driver/expo/ExpoDriver.js +36 -55
  1662. package/driver/expo/ExpoDriver.js.map +1 -1
  1663. package/driver/expo/ExpoQueryRunner.d.ts +9 -1
  1664. package/driver/expo/ExpoQueryRunner.js +129 -98
  1665. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  1666. package/driver/mongodb/MongoConnectionOptions.d.ts +20 -3
  1667. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  1668. package/driver/mongodb/MongoDriver.d.ts +36 -12
  1669. package/driver/mongodb/MongoDriver.js +153 -105
  1670. package/driver/mongodb/MongoDriver.js.map +1 -1
  1671. package/driver/mongodb/MongoQueryRunner.d.ts +26 -8
  1672. package/driver/mongodb/MongoQueryRunner.js +332 -748
  1673. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  1674. package/driver/mongodb/typings.d.ts +12 -11
  1675. package/driver/mongodb/typings.js +1 -1
  1676. package/driver/mongodb/typings.js.map +1 -1
  1677. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  1678. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  1679. package/driver/mysql/MysqlConnectionOptions.d.ts +8 -2
  1680. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  1681. package/driver/mysql/MysqlDriver.d.ts +48 -11
  1682. package/driver/mysql/MysqlDriver.js +450 -279
  1683. package/driver/mysql/MysqlDriver.js.map +1 -1
  1684. package/driver/mysql/MysqlQueryRunner.d.ts +24 -15
  1685. package/driver/mysql/MysqlQueryRunner.js +1567 -1764
  1686. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  1687. package/driver/nativescript/NativescriptConnectionOptions.d.ts +27 -2
  1688. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  1689. package/driver/nativescript/NativescriptDriver.d.ts +5 -4
  1690. package/driver/nativescript/NativescriptDriver.js +41 -46
  1691. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  1692. package/driver/nativescript/NativescriptQueryRunner.d.ts +9 -1
  1693. package/driver/nativescript/NativescriptQueryRunner.js +59 -42
  1694. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  1695. package/driver/oracle/OracleConnectionCredentialsOptions.d.ts +4 -0
  1696. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  1697. package/driver/oracle/OracleConnectionOptions.d.ts +11 -2
  1698. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  1699. package/driver/oracle/OracleDriver.d.ts +31 -7
  1700. package/driver/oracle/OracleDriver.js +338 -242
  1701. package/driver/oracle/OracleDriver.js.map +1 -1
  1702. package/driver/oracle/OracleQueryRunner.d.ts +22 -9
  1703. package/driver/oracle/OracleQueryRunner.js +1361 -1683
  1704. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  1705. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  1706. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  1707. package/driver/postgres/PostgresConnectionOptions.d.ts +34 -2
  1708. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  1709. package/driver/postgres/PostgresDriver.d.ts +81 -19
  1710. package/driver/postgres/PostgresDriver.js +624 -443
  1711. package/driver/postgres/PostgresDriver.js.map +1 -1
  1712. package/driver/postgres/PostgresQueryRunner.d.ts +47 -26
  1713. package/driver/postgres/PostgresQueryRunner.js +2144 -2300
  1714. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  1715. package/driver/react-native/ReactNativeConnectionOptions.d.ts +7 -2
  1716. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  1717. package/driver/react-native/ReactNativeDriver.d.ts +4 -3
  1718. package/driver/react-native/ReactNativeDriver.js +36 -45
  1719. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  1720. package/driver/react-native/ReactNativeQueryRunner.d.ts +9 -1
  1721. package/driver/react-native/ReactNativeQueryRunner.js +67 -56
  1722. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  1723. package/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
  1724. package/driver/sap/SapConnectionCredentialsOptions.js +4 -0
  1725. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
  1726. package/driver/sap/SapConnectionOptions.d.ts +59 -0
  1727. package/driver/sap/SapConnectionOptions.js +4 -0
  1728. package/driver/sap/SapConnectionOptions.js.map +1 -0
  1729. package/driver/sap/SapDriver.d.ts +214 -0
  1730. package/driver/sap/SapDriver.js +645 -0
  1731. package/driver/sap/SapDriver.js.map +1 -0
  1732. package/driver/sap/SapQueryRunner.d.ts +342 -0
  1733. package/driver/sap/SapQueryRunner.js +1991 -0
  1734. package/driver/sap/SapQueryRunner.js.map +1 -0
  1735. package/driver/sqlite/SqliteConnectionOptions.d.ts +7 -2
  1736. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  1737. package/driver/sqlite/SqliteDriver.d.ts +18 -4
  1738. package/driver/sqlite/SqliteDriver.js +111 -87
  1739. package/driver/sqlite/SqliteDriver.js.map +1 -1
  1740. package/driver/sqlite/SqliteQueryRunner.d.ts +9 -1
  1741. package/driver/sqlite/SqliteQueryRunner.js +88 -71
  1742. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  1743. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +47 -10
  1744. package/driver/sqlite-abstract/AbstractSqliteDriver.js +259 -142
  1745. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  1746. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +24 -5
  1747. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1034 -1451
  1748. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  1749. package/driver/sqljs/SqljsConnectionOptions.d.ts +7 -2
  1750. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  1751. package/driver/sqljs/SqljsDriver.d.ts +4 -3
  1752. package/driver/sqljs/SqljsDriver.js +160 -232
  1753. package/driver/sqljs/SqljsDriver.js.map +1 -1
  1754. package/driver/sqljs/SqljsQueryRunner.d.ts +15 -1
  1755. package/driver/sqljs/SqljsQueryRunner.js +89 -64
  1756. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  1757. package/driver/sqlserver/MssqlParameter.d.ts +1 -0
  1758. package/driver/sqlserver/MssqlParameter.js +5 -8
  1759. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  1760. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  1761. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  1762. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -6
  1763. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  1764. package/driver/sqlserver/SqlServerDriver.d.ts +43 -9
  1765. package/driver/sqlserver/SqlServerDriver.js +366 -262
  1766. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  1767. package/driver/sqlserver/SqlServerQueryRunner.d.ts +18 -28
  1768. package/driver/sqlserver/SqlServerQueryRunner.js +1825 -2322
  1769. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  1770. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  1771. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +4 -0
  1772. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  1773. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  1774. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +4 -0
  1775. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  1776. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  1777. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +4 -0
  1778. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  1779. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  1780. package/driver/{aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js → sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js} +1 -1
  1781. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  1782. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  1783. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +4 -0
  1784. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  1785. package/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  1786. package/driver/sqlserver/authentication/DefaultAuthentication.js +4 -0
  1787. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  1788. package/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  1789. package/driver/sqlserver/authentication/NtlmAuthentication.js +4 -0
  1790. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  1791. package/driver/types/ColumnTypes.d.ts +5 -5
  1792. package/driver/types/ColumnTypes.js.map +1 -1
  1793. package/driver/types/DataTypeDefaults.js.map +1 -1
  1794. package/driver/types/DatabaseType.d.ts +1 -1
  1795. package/driver/types/DatabaseType.js.map +1 -1
  1796. package/driver/types/IsolationLevel.js.map +1 -1
  1797. package/driver/types/MappedColumnTypes.d.ts +12 -0
  1798. package/driver/types/MappedColumnTypes.js.map +1 -1
  1799. package/driver/types/MetadataTableType.d.ts +5 -0
  1800. package/driver/types/MetadataTableType.js +11 -0
  1801. package/driver/types/MetadataTableType.js.map +1 -0
  1802. package/driver/types/ReplicationMode.d.ts +1 -0
  1803. package/driver/types/ReplicationMode.js +4 -0
  1804. package/driver/types/ReplicationMode.js.map +1 -0
  1805. package/driver/types/UpsertType.d.ts +1 -0
  1806. package/driver/types/UpsertType.js +4 -0
  1807. package/driver/types/UpsertType.js.map +1 -0
  1808. package/entity-manager/EntityManager.d.ts +143 -286
  1809. package/entity-manager/EntityManager.js +541 -447
  1810. package/entity-manager/EntityManager.js.map +1 -1
  1811. package/entity-manager/EntityManagerFactory.d.ts +2 -2
  1812. package/entity-manager/EntityManagerFactory.js +10 -14
  1813. package/entity-manager/EntityManagerFactory.js.map +1 -1
  1814. package/entity-manager/MongoEntityManager.d.ts +101 -64
  1815. package/entity-manager/MongoEntityManager.js +507 -473
  1816. package/entity-manager/MongoEntityManager.js.map +1 -1
  1817. package/entity-manager/SqljsEntityManager.d.ts +3 -2
  1818. package/entity-manager/SqljsEntityManager.js +16 -36
  1819. package/entity-manager/SqljsEntityManager.js.map +1 -1
  1820. package/entity-schema/EntitySchema.d.ts +1 -0
  1821. package/entity-schema/EntitySchema.js +5 -4
  1822. package/entity-schema/EntitySchema.js.map +1 -1
  1823. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  1824. package/entity-schema/EntitySchemaColumnOptions.d.ts +4 -0
  1825. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  1826. package/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  1827. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js +8 -0
  1828. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  1829. package/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  1830. package/entity-schema/EntitySchemaEmbeddedError.js +18 -0
  1831. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  1832. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  1833. package/entity-schema/EntitySchemaIndexOptions.d.ts +7 -2
  1834. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  1835. package/entity-schema/EntitySchemaOptions.d.ts +22 -10
  1836. package/entity-schema/EntitySchemaOptions.js +3 -5
  1837. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  1838. package/entity-schema/EntitySchemaRelationOptions.d.ts +15 -4
  1839. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  1840. package/entity-schema/EntitySchemaTransformer.d.ts +1 -0
  1841. package/entity-schema/EntitySchemaTransformer.js +230 -183
  1842. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  1843. package/entity-schema/EntitySchemaUniqueOptions.d.ts +7 -2
  1844. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  1845. package/error/AlreadyHasActiveConnectionError.d.ts +2 -2
  1846. package/error/AlreadyHasActiveConnectionError.js +7 -12
  1847. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  1848. package/error/CannotAttachTreeChildrenEntityError.d.ts +3 -3
  1849. package/error/CannotAttachTreeChildrenEntityError.js +8 -12
  1850. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  1851. package/error/CannotConnectAlreadyConnectedError.d.ts +2 -2
  1852. package/error/CannotConnectAlreadyConnectedError.js +6 -11
  1853. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  1854. package/error/CannotCreateEntityIdMapError.d.ts +2 -2
  1855. package/error/CannotCreateEntityIdMapError.js +8 -12
  1856. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  1857. package/error/CannotDetermineEntityError.d.ts +2 -2
  1858. package/error/CannotDetermineEntityError.js +7 -11
  1859. package/error/CannotDetermineEntityError.js.map +1 -1
  1860. package/error/CannotExecuteNotConnectedError.d.ts +2 -2
  1861. package/error/CannotExecuteNotConnectedError.js +6 -11
  1862. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  1863. package/error/CannotGetEntityManagerNotConnectedError.d.ts +2 -2
  1864. package/error/CannotGetEntityManagerNotConnectedError.js +6 -11
  1865. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  1866. package/error/CannotReflectMethodParameterTypeError.d.ts +2 -2
  1867. package/error/CannotReflectMethodParameterTypeError.js +8 -13
  1868. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  1869. package/error/CircularRelationsError.d.ts +2 -2
  1870. package/error/CircularRelationsError.js +7 -11
  1871. package/error/CircularRelationsError.js.map +1 -1
  1872. package/error/ColumnTypeUndefinedError.d.ts +2 -2
  1873. package/error/ColumnTypeUndefinedError.js +9 -14
  1874. package/error/ColumnTypeUndefinedError.js.map +1 -1
  1875. package/error/ConnectionIsNotSetError.d.ts +2 -2
  1876. package/error/ConnectionIsNotSetError.js +6 -11
  1877. package/error/ConnectionIsNotSetError.js.map +1 -1
  1878. package/error/ConnectionNotFoundError.d.ts +2 -2
  1879. package/error/ConnectionNotFoundError.js +6 -11
  1880. package/error/ConnectionNotFoundError.js.map +1 -1
  1881. package/error/CustomRepositoryCannotInheritRepositoryError.d.ts +2 -2
  1882. package/error/CustomRepositoryCannotInheritRepositoryError.js +9 -12
  1883. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  1884. package/error/CustomRepositoryDoesNotHaveEntityError.d.ts +2 -2
  1885. package/error/CustomRepositoryDoesNotHaveEntityError.js +9 -12
  1886. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  1887. package/error/CustomRepositoryNotFoundError.d.ts +2 -2
  1888. package/error/CustomRepositoryNotFoundError.js +9 -12
  1889. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  1890. package/error/DataTypeNotSupportedError.d.ts +2 -2
  1891. package/error/DataTypeNotSupportedError.js +8 -12
  1892. package/error/DataTypeNotSupportedError.js.map +1 -1
  1893. package/error/DriverOptionNotSetError.d.ts +2 -2
  1894. package/error/DriverOptionNotSetError.js +7 -11
  1895. package/error/DriverOptionNotSetError.js.map +1 -1
  1896. package/error/DriverPackageNotInstalledError.d.ts +2 -2
  1897. package/error/DriverPackageNotInstalledError.js +7 -11
  1898. package/error/DriverPackageNotInstalledError.js.map +1 -1
  1899. package/error/EntityMetadataNotFoundError.d.ts +5 -6
  1900. package/error/EntityMetadataNotFoundError.js +18 -19
  1901. package/error/EntityMetadataNotFoundError.js.map +1 -1
  1902. package/error/EntityNotFoundError.d.ts +5 -5
  1903. package/error/EntityNotFoundError.js +22 -21
  1904. package/error/EntityNotFoundError.js.map +1 -1
  1905. package/error/EntityPropertyNotFoundError.d.ts +8 -0
  1906. package/error/EntityPropertyNotFoundError.js +17 -0
  1907. package/error/EntityPropertyNotFoundError.js.map +1 -0
  1908. package/error/FindRelationsNotFoundError.d.ts +7 -0
  1909. package/error/FindRelationsNotFoundError.js +23 -0
  1910. package/error/FindRelationsNotFoundError.js.map +1 -0
  1911. package/error/InitializedRelationError.d.ts +2 -1
  1912. package/error/InitializedRelationError.js +8 -12
  1913. package/error/InitializedRelationError.js.map +1 -1
  1914. package/error/InsertValuesMissingError.d.ts +2 -2
  1915. package/error/InsertValuesMissingError.js +7 -11
  1916. package/error/InsertValuesMissingError.js.map +1 -1
  1917. package/error/LimitOnUpdateNotSupportedError.d.ts +3 -3
  1918. package/error/LimitOnUpdateNotSupportedError.js +7 -12
  1919. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  1920. package/error/LockNotSupportedOnGivenDriverError.d.ts +2 -2
  1921. package/error/LockNotSupportedOnGivenDriverError.js +6 -11
  1922. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  1923. package/error/MetadataAlreadyExistsError.d.ts +2 -4
  1924. package/error/MetadataAlreadyExistsError.js +12 -15
  1925. package/error/MetadataAlreadyExistsError.js.map +1 -1
  1926. package/error/MetadataWithSuchNameAlreadyExistsError.d.ts +2 -4
  1927. package/error/MetadataWithSuchNameAlreadyExistsError.js +10 -14
  1928. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  1929. package/error/MissingDeleteDateColumnError.d.ts +5 -0
  1930. package/error/MissingDeleteDateColumnError.js +12 -0
  1931. package/error/MissingDeleteDateColumnError.js.map +1 -0
  1932. package/error/MissingDriverError.d.ts +3 -3
  1933. package/error/MissingDriverError.js +7 -11
  1934. package/error/MissingDriverError.js.map +1 -1
  1935. package/error/MissingJoinColumnError.d.ts +2 -4
  1936. package/error/MissingJoinColumnError.js +13 -17
  1937. package/error/MissingJoinColumnError.js.map +1 -1
  1938. package/error/MissingJoinTableError.d.ts +2 -4
  1939. package/error/MissingJoinTableError.js +13 -17
  1940. package/error/MissingJoinTableError.js.map +1 -1
  1941. package/error/MissingPrimaryColumnError.d.ts +2 -4
  1942. package/error/MissingPrimaryColumnError.js +7 -14
  1943. package/error/MissingPrimaryColumnError.js.map +1 -1
  1944. package/error/MustBeEntityError.d.ts +2 -2
  1945. package/error/MustBeEntityError.js +6 -11
  1946. package/error/MustBeEntityError.js.map +1 -1
  1947. package/error/NamingStrategyNotFoundError.d.ts +2 -2
  1948. package/error/NamingStrategyNotFoundError.js +12 -13
  1949. package/error/NamingStrategyNotFoundError.js.map +1 -1
  1950. package/error/NestedSetMultipleRootError.d.ts +4 -0
  1951. package/error/NestedSetMultipleRootError.js +12 -0
  1952. package/error/NestedSetMultipleRootError.js.map +1 -0
  1953. package/error/NoConnectionForRepositoryError.d.ts +2 -2
  1954. package/error/NoConnectionForRepositoryError.js +7 -12
  1955. package/error/NoConnectionForRepositoryError.js.map +1 -1
  1956. package/error/NoConnectionOptionError.d.ts +2 -1
  1957. package/error/NoConnectionOptionError.js +7 -10
  1958. package/error/NoConnectionOptionError.js.map +1 -1
  1959. package/error/NoNeedToReleaseEntityManagerError.d.ts +2 -2
  1960. package/error/NoNeedToReleaseEntityManagerError.js +8 -13
  1961. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  1962. package/error/NoVersionOrUpdateDateColumnError.d.ts +2 -2
  1963. package/error/NoVersionOrUpdateDateColumnError.js +6 -11
  1964. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  1965. package/error/OffsetWithoutLimitNotSupportedError.d.ts +4 -4
  1966. package/error/OffsetWithoutLimitNotSupportedError.js +9 -12
  1967. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  1968. package/error/OptimisticLockCanNotBeUsedError.d.ts +2 -2
  1969. package/error/OptimisticLockCanNotBeUsedError.js +6 -11
  1970. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  1971. package/error/OptimisticLockVersionMismatchError.d.ts +2 -2
  1972. package/error/OptimisticLockVersionMismatchError.js +6 -11
  1973. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  1974. package/error/PersistedEntityNotFoundError.d.ts +2 -2
  1975. package/error/PersistedEntityNotFoundError.js +6 -11
  1976. package/error/PersistedEntityNotFoundError.js.map +1 -1
  1977. package/error/PessimisticLockTransactionRequiredError.d.ts +2 -2
  1978. package/error/PessimisticLockTransactionRequiredError.js +6 -11
  1979. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  1980. package/error/PrimaryColumnCannotBeNullableError.d.ts +2 -2
  1981. package/error/PrimaryColumnCannotBeNullableError.js +7 -12
  1982. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  1983. package/error/QueryFailedError.d.ts +6 -2
  1984. package/error/QueryFailedError.js +20 -14
  1985. package/error/QueryFailedError.js.map +1 -1
  1986. package/error/QueryRunnerAlreadyReleasedError.d.ts +2 -4
  1987. package/error/QueryRunnerAlreadyReleasedError.js +6 -13
  1988. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  1989. package/error/QueryRunnerProviderAlreadyReleasedError.d.ts +2 -2
  1990. package/error/QueryRunnerProviderAlreadyReleasedError.js +7 -11
  1991. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  1992. package/error/RepositoryNotFoundError.d.ts +4 -4
  1993. package/error/RepositoryNotFoundError.js +17 -15
  1994. package/error/RepositoryNotFoundError.js.map +1 -1
  1995. package/error/RepositoryNotTreeError.d.ts +4 -4
  1996. package/error/RepositoryNotTreeError.js +19 -18
  1997. package/error/RepositoryNotTreeError.js.map +1 -1
  1998. package/error/ReturningStatementNotSupportedError.d.ts +2 -2
  1999. package/error/ReturningStatementNotSupportedError.js +6 -11
  2000. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  2001. package/error/SubjectRemovedAndUpdatedError.d.ts +2 -2
  2002. package/error/SubjectRemovedAndUpdatedError.js +7 -12
  2003. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  2004. package/error/SubjectWithoutIdentifierError.d.ts +2 -2
  2005. package/error/SubjectWithoutIdentifierError.js +6 -12
  2006. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  2007. package/error/TransactionAlreadyStartedError.d.ts +2 -2
  2008. package/error/TransactionAlreadyStartedError.js +6 -11
  2009. package/error/TransactionAlreadyStartedError.js.map +1 -1
  2010. package/error/TransactionNotStartedError.d.ts +2 -2
  2011. package/error/TransactionNotStartedError.js +6 -11
  2012. package/error/TransactionNotStartedError.js.map +1 -1
  2013. package/error/TreeRepositoryNotSupportedError.d.ts +2 -2
  2014. package/error/TreeRepositoryNotSupportedError.js +6 -11
  2015. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  2016. package/error/TypeORMError.d.ts +4 -0
  2017. package/error/TypeORMError.js +23 -0
  2018. package/error/TypeORMError.js.map +1 -0
  2019. package/error/UpdateValuesMissingError.d.ts +2 -5
  2020. package/error/UpdateValuesMissingError.js +6 -14
  2021. package/error/UpdateValuesMissingError.js.map +1 -1
  2022. package/error/UsingJoinColumnIsNotAllowedError.d.ts +2 -4
  2023. package/error/UsingJoinColumnIsNotAllowedError.js +7 -14
  2024. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  2025. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +2 -4
  2026. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +8 -15
  2027. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  2028. package/error/UsingJoinTableIsNotAllowedError.d.ts +2 -4
  2029. package/error/UsingJoinTableIsNotAllowedError.js +8 -15
  2030. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  2031. package/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +2 -4
  2032. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +8 -15
  2033. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  2034. package/error/index.d.ts +62 -0
  2035. package/error/index.js +67 -0
  2036. package/error/index.js.map +1 -0
  2037. package/find-options/EqualOperator.d.ts +5 -0
  2038. package/find-options/EqualOperator.js +13 -0
  2039. package/find-options/EqualOperator.js.map +1 -0
  2040. package/find-options/FindManyOptions.d.ts +14 -0
  2041. package/find-options/FindManyOptions.js +4 -0
  2042. package/find-options/FindManyOptions.js.map +1 -0
  2043. package/find-options/FindOneOptions.d.ts +86 -0
  2044. package/find-options/FindOneOptions.js +4 -0
  2045. package/find-options/FindOneOptions.js.map +1 -0
  2046. package/find-options/FindOperator.d.ts +31 -8
  2047. package/find-options/FindOperator.js +65 -96
  2048. package/find-options/FindOperator.js.map +1 -1
  2049. package/find-options/FindOperatorType.d.ts +1 -1
  2050. package/find-options/FindOperatorType.js.map +1 -1
  2051. package/find-options/FindOptionsOrder.d.ts +19 -0
  2052. package/find-options/FindOptionsOrder.js +4 -0
  2053. package/find-options/FindOptionsOrder.js.map +1 -0
  2054. package/find-options/FindOptionsRelations.d.ts +19 -0
  2055. package/find-options/FindOptionsRelations.js +4 -0
  2056. package/find-options/FindOptionsRelations.js.map +1 -0
  2057. package/find-options/FindOptionsSelect.d.ts +19 -0
  2058. package/find-options/FindOptionsSelect.js +4 -0
  2059. package/find-options/FindOptionsSelect.js.map +1 -0
  2060. package/find-options/FindOptionsUtils.d.ts +180 -6
  2061. package/find-options/FindOptionsUtils.js +301 -95
  2062. package/find-options/FindOptionsUtils.js.map +1 -1
  2063. package/find-options/FindOptionsWhere.d.ts +14 -0
  2064. package/find-options/FindOptionsWhere.js +4 -0
  2065. package/find-options/FindOptionsWhere.js.map +1 -0
  2066. package/find-options/FindTreeOptions.d.ts +13 -0
  2067. package/find-options/FindTreeOptions.js +4 -0
  2068. package/find-options/FindTreeOptions.js.map +1 -0
  2069. package/find-options/JoinOptions.d.ts +76 -0
  2070. package/find-options/JoinOptions.js +4 -0
  2071. package/find-options/JoinOptions.js.map +1 -0
  2072. package/find-options/OrderByCondition.js.map +1 -1
  2073. package/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
  2074. package/find-options/mongodb/MongoFindManyOptions.js +4 -0
  2075. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
  2076. package/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
  2077. package/find-options/mongodb/MongoFindOneOptions.js +4 -0
  2078. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
  2079. package/find-options/operator/Any.d.ts +1 -1
  2080. package/find-options/operator/Any.js +2 -1
  2081. package/find-options/operator/Any.js.map +1 -1
  2082. package/find-options/operator/Between.d.ts +1 -1
  2083. package/find-options/operator/Between.js +2 -1
  2084. package/find-options/operator/Between.js.map +1 -1
  2085. package/find-options/operator/Equal.d.ts +7 -2
  2086. package/find-options/operator/Equal.js +8 -3
  2087. package/find-options/operator/Equal.js.map +1 -1
  2088. package/find-options/operator/ILike.d.ts +1 -1
  2089. package/find-options/operator/ILike.js +3 -2
  2090. package/find-options/operator/ILike.js.map +1 -1
  2091. package/find-options/operator/In.d.ts +1 -1
  2092. package/find-options/operator/In.js +2 -1
  2093. package/find-options/operator/In.js.map +1 -1
  2094. package/find-options/operator/IsNull.js +2 -1
  2095. package/find-options/operator/IsNull.js.map +1 -1
  2096. package/find-options/operator/LessThan.js +2 -1
  2097. package/find-options/operator/LessThan.js.map +1 -1
  2098. package/find-options/operator/LessThanOrEqual.js +2 -1
  2099. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  2100. package/find-options/operator/Like.d.ts +1 -1
  2101. package/find-options/operator/Like.js +3 -2
  2102. package/find-options/operator/Like.js.map +1 -1
  2103. package/find-options/operator/MoreThan.js +2 -1
  2104. package/find-options/operator/MoreThan.js.map +1 -1
  2105. package/find-options/operator/MoreThanOrEqual.js +2 -1
  2106. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  2107. package/find-options/operator/Not.d.ts +1 -1
  2108. package/find-options/operator/Not.js +3 -2
  2109. package/find-options/operator/Not.js.map +1 -1
  2110. package/find-options/operator/Raw.d.ts +14 -2
  2111. package/find-options/operator/Raw.js +7 -7
  2112. package/find-options/operator/Raw.js.map +1 -1
  2113. package/globals.d.ts +117 -0
  2114. package/globals.js +183 -0
  2115. package/globals.js.map +1 -0
  2116. package/index.d.ts +45 -113
  2117. package/index.js +86 -229
  2118. package/index.js.map +1 -1
  2119. package/index.mjs +366 -0
  2120. package/logger/AdvancedConsoleLogger.d.ts +2 -1
  2121. package/logger/AdvancedConsoleLogger.js +57 -33
  2122. package/logger/AdvancedConsoleLogger.js.map +1 -1
  2123. package/logger/DebugLogger.d.ts +1 -2
  2124. package/logger/DebugLogger.js +27 -26
  2125. package/logger/DebugLogger.js.map +1 -1
  2126. package/logger/FileLogger.d.ts +3 -1
  2127. package/logger/FileLogger.js +68 -40
  2128. package/logger/FileLogger.js.map +1 -1
  2129. package/logger/Logger.d.ts +1 -1
  2130. package/logger/Logger.js.map +1 -1
  2131. package/logger/LoggerFactory.js +11 -12
  2132. package/logger/LoggerFactory.js.map +1 -1
  2133. package/logger/LoggerOptions.d.ts +9 -0
  2134. package/logger/LoggerOptions.js.map +1 -1
  2135. package/logger/SimpleConsoleLogger.d.ts +2 -1
  2136. package/logger/SimpleConsoleLogger.js +56 -32
  2137. package/logger/SimpleConsoleLogger.js.map +1 -1
  2138. package/metadata/CheckMetadata.js +9 -7
  2139. package/metadata/CheckMetadata.js.map +1 -1
  2140. package/metadata/ColumnMetadata.d.ts +16 -7
  2141. package/metadata/ColumnMetadata.js +243 -127
  2142. package/metadata/ColumnMetadata.js.map +1 -1
  2143. package/metadata/EmbeddedMetadata.d.ts +12 -5
  2144. package/metadata/EmbeddedMetadata.js +78 -50
  2145. package/metadata/EmbeddedMetadata.js.map +1 -1
  2146. package/metadata/EntityListenerMetadata.js +22 -14
  2147. package/metadata/EntityListenerMetadata.js.map +1 -1
  2148. package/metadata/EntityMetadata.d.ts +65 -22
  2149. package/metadata/EntityMetadata.js +255 -163
  2150. package/metadata/EntityMetadata.js.map +1 -1
  2151. package/metadata/ExclusionMetadata.js +9 -7
  2152. package/metadata/ExclusionMetadata.js.map +1 -1
  2153. package/metadata/ForeignKeyMetadata.js +9 -9
  2154. package/metadata/ForeignKeyMetadata.js.map +1 -1
  2155. package/metadata/IndexMetadata.d.ts +7 -2
  2156. package/metadata/IndexMetadata.js +45 -33
  2157. package/metadata/IndexMetadata.js.map +1 -1
  2158. package/metadata/RelationCountMetadata.js +12 -9
  2159. package/metadata/RelationCountMetadata.js.map +1 -1
  2160. package/metadata/RelationIdMetadata.js +22 -18
  2161. package/metadata/RelationIdMetadata.js.map +1 -1
  2162. package/metadata/RelationMetadata.d.ts +28 -5
  2163. package/metadata/RelationMetadata.js +162 -79
  2164. package/metadata/RelationMetadata.js.map +1 -1
  2165. package/metadata/UniqueMetadata.d.ts +7 -2
  2166. package/metadata/UniqueMetadata.js +41 -31
  2167. package/metadata/UniqueMetadata.js.map +1 -1
  2168. package/metadata/types/ClosureTreeOptions.d.ts +10 -0
  2169. package/metadata/types/ClosureTreeOptions.js +4 -0
  2170. package/metadata/types/ClosureTreeOptions.js.map +1 -0
  2171. package/metadata/types/DeferrableType.js.map +1 -1
  2172. package/metadata/types/EventListenerTypes.d.ts +12 -8
  2173. package/metadata/types/EventListenerTypes.js +14 -12
  2174. package/metadata/types/EventListenerTypes.js.map +1 -1
  2175. package/metadata/types/OnDeleteType.js.map +1 -1
  2176. package/metadata/types/OnUpdateType.js.map +1 -1
  2177. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  2178. package/metadata/types/RelationTypeInFunction.d.ts +2 -1
  2179. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  2180. package/metadata/types/RelationTypes.js.map +1 -1
  2181. package/metadata/types/TableTypes.d.ts +1 -1
  2182. package/metadata/types/TableTypes.js.map +1 -1
  2183. package/metadata/types/TreeTypes.js.map +1 -1
  2184. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  2185. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  2186. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  2187. package/metadata-args/EmbeddedMetadataArgs.d.ts +2 -2
  2188. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  2189. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  2190. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  2191. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  2192. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  2193. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  2194. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  2195. package/metadata-args/IndexMetadataArgs.d.ts +7 -2
  2196. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  2197. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  2198. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  2199. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  2200. package/metadata-args/MetadataArgsStorage.d.ts +4 -0
  2201. package/metadata-args/MetadataArgsStorage.js +147 -95
  2202. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  2203. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  2204. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  2205. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  2206. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  2207. package/metadata-args/TableMetadataArgs.d.ts +9 -5
  2208. package/metadata-args/TableMetadataArgs.js.map +1 -1
  2209. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  2210. package/metadata-args/TransactionRepositoryMetadataArgs.d.ts +1 -1
  2211. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  2212. package/metadata-args/TreeMetadataArgs.d.ts +5 -0
  2213. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  2214. package/metadata-args/UniqueMetadataArgs.d.ts +7 -2
  2215. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  2216. package/metadata-args/types/ColumnMode.d.ts +1 -1
  2217. package/metadata-args/types/ColumnMode.js.map +1 -1
  2218. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +2 -2
  2219. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +52 -33
  2220. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  2221. package/metadata-builder/EntityMetadataBuilder.d.ts +2 -2
  2222. package/metadata-builder/EntityMetadataBuilder.js +412 -281
  2223. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  2224. package/metadata-builder/EntityMetadataValidator.js +85 -73
  2225. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  2226. package/metadata-builder/JunctionEntityMetadataBuilder.d.ts +2 -2
  2227. package/metadata-builder/JunctionEntityMetadataBuilder.js +149 -95
  2228. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  2229. package/metadata-builder/MetadataUtils.js +13 -15
  2230. package/metadata-builder/MetadataUtils.js.map +1 -1
  2231. package/metadata-builder/RelationJoinColumnBuilder.d.ts +3 -2
  2232. package/metadata-builder/RelationJoinColumnBuilder.js +73 -52
  2233. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  2234. package/migration/Migration.js +4 -4
  2235. package/migration/Migration.js.map +1 -1
  2236. package/migration/MigrationExecutor.d.ts +6 -4
  2237. package/migration/MigrationExecutor.js +383 -537
  2238. package/migration/MigrationExecutor.js.map +1 -1
  2239. package/migration/MigrationInterface.js.map +1 -1
  2240. package/naming-strategy/DefaultNamingStrategy.d.ts +7 -1
  2241. package/naming-strategy/DefaultNamingStrategy.js +96 -84
  2242. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  2243. package/naming-strategy/NamingStrategyInterface.d.ts +17 -1
  2244. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  2245. package/package.json +173 -71
  2246. package/persistence/EntityPersistExecutor.d.ts +4 -4
  2247. package/persistence/EntityPersistExecutor.js +137 -160
  2248. package/persistence/EntityPersistExecutor.js.map +1 -1
  2249. package/persistence/Subject.d.ts +27 -3
  2250. package/persistence/Subject.js +105 -67
  2251. package/persistence/Subject.js.map +1 -1
  2252. package/persistence/SubjectChangeMap.js.map +1 -1
  2253. package/persistence/SubjectChangedColumnsComputer.js +77 -53
  2254. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  2255. package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
  2256. package/persistence/SubjectDatabaseEntityLoader.js +98 -113
  2257. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  2258. package/persistence/SubjectExecutor.d.ts +19 -2
  2259. package/persistence/SubjectExecutor.js +594 -427
  2260. package/persistence/SubjectExecutor.js.map +1 -1
  2261. package/persistence/SubjectTopoligicalSorter.js +64 -58
  2262. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  2263. package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  2264. package/persistence/subject-builder/CascadesSubjectBuilder.js +55 -28
  2265. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  2266. package/persistence/subject-builder/ManyToManySubjectBuilder.js +67 -60
  2267. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  2268. package/persistence/subject-builder/OneToManySubjectBuilder.js +64 -45
  2269. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  2270. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +35 -30
  2271. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  2272. package/persistence/tree/ClosureSubjectExecutor.d.ts +8 -11
  2273. package/persistence/tree/ClosureSubjectExecutor.js +215 -89
  2274. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  2275. package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +5 -0
  2276. package/persistence/tree/MaterializedPathSubjectExecutor.js +90 -47
  2277. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  2278. package/persistence/tree/NestedSetSubjectExecutor.d.ts +20 -0
  2279. package/persistence/tree/NestedSetSubjectExecutor.js +245 -62
  2280. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  2281. package/platform/PlatformTools.d.ts +8 -1
  2282. package/platform/PlatformTools.js +123 -118
  2283. package/platform/PlatformTools.js.map +1 -1
  2284. package/query-builder/Alias.d.ts +4 -3
  2285. package/query-builder/Alias.js +20 -31
  2286. package/query-builder/Alias.js.map +1 -1
  2287. package/query-builder/Brackets.d.ts +4 -3
  2288. package/query-builder/Brackets.js +5 -4
  2289. package/query-builder/Brackets.js.map +1 -1
  2290. package/query-builder/DeleteQueryBuilder.d.ts +13 -11
  2291. package/query-builder/DeleteQueryBuilder.js +113 -168
  2292. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  2293. package/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  2294. package/query-builder/InsertOrUpdateOptions.js +4 -0
  2295. package/query-builder/InsertOrUpdateOptions.js.map +1 -0
  2296. package/query-builder/InsertQueryBuilder.d.ts +15 -5
  2297. package/query-builder/InsertQueryBuilder.js +460 -298
  2298. package/query-builder/InsertQueryBuilder.js.map +1 -1
  2299. package/query-builder/JoinAttribute.d.ts +12 -12
  2300. package/query-builder/JoinAttribute.js +143 -190
  2301. package/query-builder/JoinAttribute.js.map +1 -1
  2302. package/query-builder/JoinOptions.js.map +1 -1
  2303. package/query-builder/NotBrackets.d.ts +8 -0
  2304. package/query-builder/NotBrackets.js +17 -0
  2305. package/query-builder/NotBrackets.js.map +1 -0
  2306. package/query-builder/QueryBuilder.d.ts +55 -32
  2307. package/query-builder/QueryBuilder.js +703 -378
  2308. package/query-builder/QueryBuilder.js.map +1 -1
  2309. package/query-builder/QueryBuilderUtils.d.ts +0 -1
  2310. package/query-builder/QueryBuilderUtils.js +6 -15
  2311. package/query-builder/QueryBuilderUtils.js.map +1 -1
  2312. package/query-builder/QueryExpressionMap.d.ts +51 -29
  2313. package/query-builder/QueryExpressionMap.js +97 -88
  2314. package/query-builder/QueryExpressionMap.js.map +1 -1
  2315. package/query-builder/QueryPartialEntity.d.ts +1 -1
  2316. package/query-builder/QueryPartialEntity.js.map +1 -1
  2317. package/query-builder/RelationIdLoader.d.ts +10 -12
  2318. package/query-builder/RelationIdLoader.js +307 -184
  2319. package/query-builder/RelationIdLoader.js.map +1 -1
  2320. package/query-builder/RelationLoader.d.ts +6 -3
  2321. package/query-builder/RelationLoader.js +182 -145
  2322. package/query-builder/RelationLoader.js.map +1 -1
  2323. package/query-builder/RelationQueryBuilder.d.ts +2 -1
  2324. package/query-builder/RelationQueryBuilder.js +85 -114
  2325. package/query-builder/RelationQueryBuilder.js.map +1 -1
  2326. package/query-builder/RelationRemover.js +120 -83
  2327. package/query-builder/RelationRemover.js.map +1 -1
  2328. package/query-builder/RelationUpdater.js +129 -127
  2329. package/query-builder/RelationUpdater.js.map +1 -1
  2330. package/query-builder/ReturningResultsEntityUpdator.d.ts +4 -4
  2331. package/query-builder/ReturningResultsEntityUpdator.js +136 -154
  2332. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  2333. package/query-builder/SelectQuery.js.map +1 -1
  2334. package/query-builder/SelectQueryBuilder.d.ts +64 -50
  2335. package/query-builder/SelectQueryBuilder.js +1661 -1308
  2336. package/query-builder/SelectQueryBuilder.js.map +1 -1
  2337. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  2338. package/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
  2339. package/query-builder/SoftDeleteQueryBuilder.js +367 -0
  2340. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
  2341. package/query-builder/UpdateQueryBuilder.d.ts +11 -8
  2342. package/query-builder/UpdateQueryBuilder.js +283 -304
  2343. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  2344. package/query-builder/WhereClause.d.ts +16 -0
  2345. package/query-builder/WhereClause.js +4 -0
  2346. package/query-builder/WhereClause.js.map +1 -0
  2347. package/query-builder/{WhereExpression.d.ts → WhereExpressionBuilder.d.ts} +51 -3
  2348. package/query-builder/WhereExpressionBuilder.js +4 -0
  2349. package/query-builder/WhereExpressionBuilder.js.map +1 -0
  2350. package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  2351. package/query-builder/relation-count/RelationCountAttribute.js +69 -97
  2352. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  2353. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  2354. package/query-builder/relation-count/RelationCountLoader.d.ts +3 -3
  2355. package/query-builder/relation-count/RelationCountLoader.js +151 -100
  2356. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  2357. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +17 -18
  2358. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  2359. package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  2360. package/query-builder/relation-id/RelationIdAttribute.js +70 -102
  2361. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  2362. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  2363. package/query-builder/relation-id/RelationIdLoader.d.ts +3 -3
  2364. package/query-builder/relation-id/RelationIdLoader.js +257 -148
  2365. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  2366. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +17 -18
  2367. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  2368. package/query-builder/result/DeleteResult.d.ts +3 -1
  2369. package/query-builder/result/DeleteResult.js +8 -4
  2370. package/query-builder/result/DeleteResult.js.map +1 -1
  2371. package/query-builder/result/InsertResult.d.ts +2 -0
  2372. package/query-builder/result/InsertResult.js +9 -4
  2373. package/query-builder/result/InsertResult.js.map +1 -1
  2374. package/query-builder/result/UpdateResult.d.ts +2 -0
  2375. package/query-builder/result/UpdateResult.js +10 -4
  2376. package/query-builder/result/UpdateResult.js.map +1 -1
  2377. package/query-builder/transformer/DocumentToEntityTransformer.d.ts +1 -2
  2378. package/query-builder/transformer/DocumentToEntityTransformer.js +49 -34
  2379. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  2380. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +75 -100
  2381. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  2382. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +26 -26
  2383. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  2384. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +13 -0
  2385. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +231 -160
  2386. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  2387. package/query-runner/BaseQueryRunner.d.ts +49 -12
  2388. package/query-runner/BaseQueryRunner.js +243 -248
  2389. package/query-runner/BaseQueryRunner.js.map +1 -1
  2390. package/query-runner/QueryLock.d.ts +4 -0
  2391. package/query-runner/QueryLock.js +28 -0
  2392. package/query-runner/QueryLock.js.map +1 -0
  2393. package/query-runner/QueryResult.d.ts +17 -0
  2394. package/query-runner/QueryResult.js +17 -0
  2395. package/query-runner/QueryResult.js.map +1 -0
  2396. package/query-runner/QueryRunner.d.ts +36 -8
  2397. package/query-runner/QueryRunner.js.map +1 -1
  2398. package/repository/AbstractRepository.d.ts +5 -5
  2399. package/repository/AbstractRepository.js +50 -55
  2400. package/repository/AbstractRepository.js.map +1 -1
  2401. package/repository/BaseEntity.d.ts +69 -81
  2402. package/repository/BaseEntity.js +171 -131
  2403. package/repository/BaseEntity.js.map +1 -1
  2404. package/repository/EntityId.js.map +1 -1
  2405. package/repository/FindTreesOptions.d.ts +9 -0
  2406. package/repository/FindTreesOptions.js +4 -0
  2407. package/repository/FindTreesOptions.js.map +1 -0
  2408. package/repository/MongoRepository.d.ts +55 -9
  2409. package/repository/MongoRepository.js +332 -0
  2410. package/repository/MongoRepository.js.map +1 -1
  2411. package/repository/RemoveOptions.js.map +1 -1
  2412. package/repository/Repository.d.ts +130 -97
  2413. package/repository/Repository.js +290 -0
  2414. package/repository/Repository.js.map +1 -1
  2415. package/repository/SaveOptions.d.ts +1 -1
  2416. package/repository/SaveOptions.js.map +1 -1
  2417. package/repository/TreeRepository.d.ts +14 -9
  2418. package/repository/TreeRepository.js +265 -0
  2419. package/repository/TreeRepository.js.map +1 -1
  2420. package/repository/UpsertOptions.d.ts +10 -0
  2421. package/repository/UpsertOptions.js +4 -0
  2422. package/repository/UpsertOptions.js.map +1 -0
  2423. package/schema-builder/MongoSchemaBuilder.d.ts +3 -3
  2424. package/schema-builder/MongoSchemaBuilder.js +30 -42
  2425. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  2426. package/schema-builder/RdbmsSchemaBuilder.d.ts +14 -6
  2427. package/schema-builder/RdbmsSchemaBuilder.js +703 -1065
  2428. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  2429. package/schema-builder/SchemaBuilder.js.map +1 -1
  2430. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  2431. package/schema-builder/options/TableColumnOptions.d.ts +6 -2
  2432. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  2433. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  2434. package/schema-builder/options/TableForeignKeyOptions.d.ts +8 -0
  2435. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  2436. package/schema-builder/options/TableIndexOptions.d.ts +6 -1
  2437. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  2438. package/schema-builder/options/TableOptions.d.ts +8 -0
  2439. package/schema-builder/options/TableOptions.js.map +1 -1
  2440. package/schema-builder/options/TableUniqueOptions.d.ts +5 -0
  2441. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  2442. package/schema-builder/options/ViewOptions.d.ts +10 -2
  2443. package/schema-builder/options/ViewOptions.js.map +1 -1
  2444. package/schema-builder/table/Table.d.ts +13 -3
  2445. package/schema-builder/table/Table.js +117 -103
  2446. package/schema-builder/table/Table.js.map +1 -1
  2447. package/schema-builder/table/TableCheck.d.ts +1 -0
  2448. package/schema-builder/table/TableCheck.js +11 -11
  2449. package/schema-builder/table/TableCheck.js.map +1 -1
  2450. package/schema-builder/table/TableColumn.d.ts +7 -2
  2451. package/schema-builder/table/TableColumn.js +11 -8
  2452. package/schema-builder/table/TableColumn.js.map +1 -1
  2453. package/schema-builder/table/TableExclusion.d.ts +1 -0
  2454. package/schema-builder/table/TableExclusion.js +10 -9
  2455. package/schema-builder/table/TableExclusion.js.map +1 -1
  2456. package/schema-builder/table/TableForeignKey.d.ts +11 -1
  2457. package/schema-builder/table/TableForeignKey.js +17 -11
  2458. package/schema-builder/table/TableForeignKey.js.map +1 -1
  2459. package/schema-builder/table/TableIndex.d.ts +6 -0
  2460. package/schema-builder/table/TableIndex.js +16 -13
  2461. package/schema-builder/table/TableIndex.js.map +1 -1
  2462. package/schema-builder/table/TableUnique.d.ts +6 -0
  2463. package/schema-builder/table/TableUnique.js +14 -11
  2464. package/schema-builder/table/TableUnique.js.map +1 -1
  2465. package/schema-builder/util/TableUtils.js +11 -10
  2466. package/schema-builder/util/TableUtils.js.map +1 -1
  2467. package/schema-builder/util/ViewUtils.d.ts +7 -0
  2468. package/schema-builder/util/ViewUtils.js +27 -0
  2469. package/schema-builder/util/ViewUtils.js.map +1 -0
  2470. package/schema-builder/view/View.d.ts +12 -5
  2471. package/schema-builder/view/View.js +17 -10
  2472. package/schema-builder/view/View.js.map +1 -1
  2473. package/subscriber/Broadcaster.d.ts +87 -2
  2474. package/subscriber/Broadcaster.js +413 -118
  2475. package/subscriber/Broadcaster.js.map +1 -1
  2476. package/subscriber/BroadcasterResult.d.ts +4 -0
  2477. package/subscriber/BroadcasterResult.js +13 -4
  2478. package/subscriber/BroadcasterResult.js.map +1 -1
  2479. package/subscriber/EntitySubscriberInterface.d.ts +45 -0
  2480. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  2481. package/subscriber/event/InsertEvent.d.ts +7 -7
  2482. package/subscriber/event/InsertEvent.js.map +1 -1
  2483. package/subscriber/event/LoadEvent.d.ts +2 -2
  2484. package/subscriber/event/LoadEvent.js.map +1 -1
  2485. package/subscriber/event/RecoverEvent.d.ts +6 -0
  2486. package/subscriber/event/RecoverEvent.js +4 -0
  2487. package/subscriber/event/RecoverEvent.js.map +1 -0
  2488. package/subscriber/event/RemoveEvent.d.ts +7 -7
  2489. package/subscriber/event/RemoveEvent.js.map +1 -1
  2490. package/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  2491. package/subscriber/event/SoftRemoveEvent.js +4 -0
  2492. package/subscriber/event/SoftRemoveEvent.js.map +1 -0
  2493. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  2494. package/subscriber/event/TransactionCommitEvent.js +4 -0
  2495. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  2496. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  2497. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  2498. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  2499. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  2500. package/subscriber/event/TransactionStartEvent.js +4 -0
  2501. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  2502. package/subscriber/event/UpdateEvent.d.ts +5 -4
  2503. package/subscriber/event/UpdateEvent.js.map +1 -1
  2504. package/typeorm-class-transformer-shim.js +41 -7
  2505. package/typeorm-model-shim.js +166 -111
  2506. package/util/ApplyValueTransformers.js +14 -28
  2507. package/util/ApplyValueTransformers.js.map +1 -1
  2508. package/util/DateUtils.d.ts +2 -2
  2509. package/util/DateUtils.js +111 -82
  2510. package/util/DateUtils.js.map +1 -1
  2511. package/util/DepGraph.js +51 -49
  2512. package/util/DepGraph.js.map +1 -1
  2513. package/util/DirectoryExportedClassesLoader.d.ts +1 -1
  2514. package/util/DirectoryExportedClassesLoader.js +35 -26
  2515. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  2516. package/util/ImportUtils.d.ts +1 -0
  2517. package/util/ImportUtils.js +79 -0
  2518. package/util/ImportUtils.js.map +1 -0
  2519. package/util/InstanceChecker.d.ts +61 -0
  2520. package/util/InstanceChecker.js +107 -0
  2521. package/util/InstanceChecker.js.map +1 -0
  2522. package/util/ObjectUtils.d.ts +17 -6
  2523. package/util/ObjectUtils.js +27 -35
  2524. package/util/ObjectUtils.js.map +1 -1
  2525. package/util/OrmUtils.d.ts +16 -8
  2526. package/util/OrmUtils.js +199 -97
  2527. package/util/OrmUtils.js.map +1 -1
  2528. package/util/PathUtils.d.ts +10 -0
  2529. package/util/PathUtils.js +34 -0
  2530. package/util/PathUtils.js.map +1 -0
  2531. package/util/RandomGenerator.d.ts +0 -4
  2532. package/util/RandomGenerator.js +62 -51
  2533. package/util/RandomGenerator.js.map +1 -1
  2534. package/util/StringUtils.d.ts +13 -3
  2535. package/util/StringUtils.js +45 -19
  2536. package/util/StringUtils.js.map +1 -1
  2537. package/util/TreeRepositoryUtils.d.ts +23 -0
  2538. package/util/TreeRepositoryUtils.js +60 -0
  2539. package/util/TreeRepositoryUtils.js.map +1 -0
  2540. package/util/VersionUtils.js +12 -15
  2541. package/util/VersionUtils.js.map +1 -1
  2542. package/browser/decorator/transaction/Transaction.d.ts +0 -16
  2543. package/browser/decorator/transaction/Transaction.js +0 -85
  2544. package/browser/decorator/transaction/Transaction.js.map +0 -1
  2545. package/browser/decorator/transaction/TransactionManager.d.ts +0 -4
  2546. package/browser/decorator/transaction/TransactionManager.js +0 -15
  2547. package/browser/decorator/transaction/TransactionManager.js.map +0 -1
  2548. package/browser/decorator/transaction/TransactionRepository.d.ts +0 -6
  2549. package/browser/decorator/transaction/TransactionRepository.js +0 -28
  2550. package/browser/decorator/transaction/TransactionRepository.js.map +0 -1
  2551. package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
  2552. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +0 -21
  2553. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
  2554. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js +0 -3
  2555. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
  2556. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
  2557. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js +0 -3
  2558. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
  2559. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
  2560. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2015
  2561. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
  2562. package/browser/entity-factory/DefaultEntityFactory.d.ts +0 -7
  2563. package/browser/entity-factory/DefaultEntityFactory.js +0 -16
  2564. package/browser/entity-factory/DefaultEntityFactory.js.map +0 -1
  2565. package/browser/entity-factory/EntityFactoryInterface.d.ts +0 -11
  2566. package/browser/entity-factory/EntityFactoryInterface.js +0 -3
  2567. package/browser/entity-factory/EntityFactoryInterface.js.map +0 -1
  2568. package/browser/entity-factory/OldEntityFactory.d.ts +0 -7
  2569. package/browser/entity-factory/OldEntityFactory.js +0 -14
  2570. package/browser/entity-factory/OldEntityFactory.js.map +0 -1
  2571. package/browser/error/EntityColumnNotFound.d.ts +0 -7
  2572. package/browser/error/EntityColumnNotFound.js +0 -18
  2573. package/browser/error/EntityColumnNotFound.js.map +0 -1
  2574. package/browser/error/FindCriteriaNotFoundError.d.ts +0 -7
  2575. package/browser/error/FindCriteriaNotFoundError.js +0 -17
  2576. package/browser/error/FindCriteriaNotFoundError.js.map +0 -1
  2577. package/browser/find-options/FindOptions.d.ts +0 -171
  2578. package/browser/find-options/FindOptions.js +0 -3
  2579. package/browser/find-options/FindOptions.js.map +0 -1
  2580. package/browser/find-options/operator/If.d.ts +0 -8
  2581. package/browser/find-options/operator/If.js +0 -21
  2582. package/browser/find-options/operator/If.js.map +0 -1
  2583. package/browser/find-options/operator/Switch.d.ts +0 -16
  2584. package/browser/find-options/operator/Switch.js +0 -17
  2585. package/browser/find-options/operator/Switch.js.map +0 -1
  2586. package/browser/observer/ObserverExecutor.d.ts +0 -18
  2587. package/browser/observer/ObserverExecutor.js +0 -404
  2588. package/browser/observer/ObserverExecutor.js.map +0 -1
  2589. package/browser/observer/QueryObserver.d.ts +0 -28
  2590. package/browser/observer/QueryObserver.js +0 -120
  2591. package/browser/observer/QueryObserver.js.map +0 -1
  2592. package/browser/query-builder/WhereExpression.js +0 -3
  2593. package/browser/query-builder/WhereExpression.js.map +0 -1
  2594. package/browser/repository/LiteralMongoRepository.d.ts +0 -11
  2595. package/browser/repository/LiteralMongoRepository.js +0 -138
  2596. package/browser/repository/LiteralMongoRepository.js.map +0 -1
  2597. package/browser/repository/LiteralRepository.d.ts +0 -11
  2598. package/browser/repository/LiteralRepository.js +0 -211
  2599. package/browser/repository/LiteralRepository.js.map +0 -1
  2600. package/browser/repository/LiteralTreeRepository.d.ts +0 -9
  2601. package/browser/repository/LiteralTreeRepository.js +0 -224
  2602. package/browser/repository/LiteralTreeRepository.js.map +0 -1
  2603. package/browser/repository/RepositoryFactory.d.ts +0 -13
  2604. package/browser/repository/RepositoryFactory.js +0 -50
  2605. package/browser/repository/RepositoryFactory.js.map +0 -1
  2606. package/browser/util/PromiseUtils.d.ts +0 -24
  2607. package/browser/util/PromiseUtils.js +0 -62
  2608. package/browser/util/PromiseUtils.js.map +0 -1
  2609. package/decorator/transaction/Transaction.d.ts +0 -16
  2610. package/decorator/transaction/Transaction.js +0 -88
  2611. package/decorator/transaction/Transaction.js.map +0 -1
  2612. package/decorator/transaction/TransactionManager.d.ts +0 -4
  2613. package/decorator/transaction/TransactionManager.js +0 -18
  2614. package/decorator/transaction/TransactionManager.js.map +0 -1
  2615. package/decorator/transaction/TransactionRepository.d.ts +0 -6
  2616. package/decorator/transaction/TransactionRepository.js +0 -31
  2617. package/decorator/transaction/TransactionRepository.js.map +0 -1
  2618. package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +0 -11
  2619. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -23
  2620. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +0 -1
  2621. package/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js.map +0 -1
  2622. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +0 -22
  2623. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +0 -1
  2624. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +0 -1
  2625. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +0 -2017
  2626. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +0 -1
  2627. package/entity-factory/DefaultEntityFactory.d.ts +0 -7
  2628. package/entity-factory/DefaultEntityFactory.js +0 -18
  2629. package/entity-factory/DefaultEntityFactory.js.map +0 -1
  2630. package/entity-factory/EntityFactoryInterface.d.ts +0 -11
  2631. package/entity-factory/EntityFactoryInterface.js.map +0 -1
  2632. package/entity-factory/OldEntityFactory.d.ts +0 -7
  2633. package/entity-factory/OldEntityFactory.js +0 -16
  2634. package/entity-factory/OldEntityFactory.js.map +0 -1
  2635. package/error/EntityColumnNotFound.d.ts +0 -7
  2636. package/error/EntityColumnNotFound.js +0 -20
  2637. package/error/EntityColumnNotFound.js.map +0 -1
  2638. package/error/FindCriteriaNotFoundError.d.ts +0 -7
  2639. package/error/FindCriteriaNotFoundError.js +0 -19
  2640. package/error/FindCriteriaNotFoundError.js.map +0 -1
  2641. package/find-options/FindOptions.d.ts +0 -171
  2642. package/find-options/FindOptions.js.map +0 -1
  2643. package/find-options/operator/If.d.ts +0 -8
  2644. package/find-options/operator/If.js +0 -24
  2645. package/find-options/operator/If.js.map +0 -1
  2646. package/find-options/operator/Switch.d.ts +0 -16
  2647. package/find-options/operator/Switch.js +0 -20
  2648. package/find-options/operator/Switch.js.map +0 -1
  2649. package/observer/ObserverExecutor.d.ts +0 -18
  2650. package/observer/ObserverExecutor.js +0 -406
  2651. package/observer/ObserverExecutor.js.map +0 -1
  2652. package/observer/QueryObserver.d.ts +0 -28
  2653. package/observer/QueryObserver.js +0 -122
  2654. package/observer/QueryObserver.js.map +0 -1
  2655. package/query-builder/WhereExpression.js.map +0 -1
  2656. package/repository/LiteralMongoRepository.d.ts +0 -11
  2657. package/repository/LiteralMongoRepository.js +0 -141
  2658. package/repository/LiteralMongoRepository.js.map +0 -1
  2659. package/repository/LiteralRepository.d.ts +0 -11
  2660. package/repository/LiteralRepository.js +0 -214
  2661. package/repository/LiteralRepository.js.map +0 -1
  2662. package/repository/LiteralTreeRepository.d.ts +0 -9
  2663. package/repository/LiteralTreeRepository.js +0 -227
  2664. package/repository/LiteralTreeRepository.js.map +0 -1
  2665. package/repository/RepositoryFactory.d.ts +0 -13
  2666. package/repository/RepositoryFactory.js +0 -52
  2667. package/repository/RepositoryFactory.js.map +0 -1
  2668. package/util/PromiseUtils.d.ts +0 -24
  2669. package/util/PromiseUtils.js +0 -64
  2670. package/util/PromiseUtils.js.map +0 -1
@@ -1,5 +1,4 @@
1
- import * as tslib_1 from "tslib";
2
- import { TransactionAlreadyStartedError } from "../../error/TransactionAlreadyStartedError";
1
+ import { QueryResult } from "../../query-runner/QueryResult";
3
2
  import { TransactionNotStartedError } from "../../error/TransactionNotStartedError";
4
3
  import { TableColumn } from "../../schema-builder/table/TableColumn";
5
4
  import { Table } from "../../schema-builder/table/Table";
@@ -13,24 +12,23 @@ import { QueryFailedError } from "../../error/QueryFailedError";
13
12
  import { TableUnique } from "../../schema-builder/table/TableUnique";
14
13
  import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
15
14
  import { Broadcaster } from "../../subscriber/Broadcaster";
16
- import { PromiseUtils } from "../../index";
17
15
  import { VersionUtils } from "../../util/VersionUtils";
16
+ import { TypeORMError } from "../../error";
17
+ import { MetadataTableType } from "../types/MetadataTableType";
18
+ import { InstanceChecker } from "../../util/InstanceChecker";
18
19
  /**
19
20
  * Runs queries on a single mysql database connection.
20
21
  */
21
- var MysqlQueryRunner = /** @class */ (function (_super) {
22
- tslib_1.__extends(MysqlQueryRunner, _super);
22
+ export class MysqlQueryRunner extends BaseQueryRunner {
23
23
  // -------------------------------------------------------------------------
24
24
  // Constructor
25
25
  // -------------------------------------------------------------------------
26
- function MysqlQueryRunner(driver, mode) {
27
- if (mode === void 0) { mode = "master"; }
28
- var _this = _super.call(this) || this;
29
- _this.driver = driver;
30
- _this.connection = driver.connection;
31
- _this.broadcaster = new Broadcaster(_this);
32
- _this.mode = mode;
33
- return _this;
26
+ constructor(driver, mode) {
27
+ super();
28
+ this.driver = driver;
29
+ this.connection = driver.connection;
30
+ this.broadcaster = new Broadcaster(this);
31
+ this.mode = mode;
34
32
  }
35
33
  // -------------------------------------------------------------------------
36
34
  // Public Methods
@@ -39,2008 +37,1778 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
39
37
  * Creates/uses database connection from the connection pool to perform further operations.
40
38
  * Returns obtained database connection.
41
39
  */
42
- MysqlQueryRunner.prototype.connect = function () {
43
- var _this = this;
40
+ connect() {
44
41
  if (this.databaseConnection)
45
42
  return Promise.resolve(this.databaseConnection);
46
43
  if (this.databaseConnectionPromise)
47
44
  return this.databaseConnectionPromise;
48
45
  if (this.mode === "slave" && this.driver.isReplicated) {
49
- this.databaseConnectionPromise = this.driver.obtainSlaveConnection().then(function (connection) {
50
- _this.databaseConnection = connection;
51
- return _this.databaseConnection;
46
+ this.databaseConnectionPromise = this.driver
47
+ .obtainSlaveConnection()
48
+ .then((connection) => {
49
+ this.databaseConnection = connection;
50
+ return this.databaseConnection;
52
51
  });
53
52
  }
54
- else { // master
55
- this.databaseConnectionPromise = this.driver.obtainMasterConnection().then(function (connection) {
56
- _this.databaseConnection = connection;
57
- return _this.databaseConnection;
53
+ else {
54
+ // master
55
+ this.databaseConnectionPromise = this.driver
56
+ .obtainMasterConnection()
57
+ .then((connection) => {
58
+ this.databaseConnection = connection;
59
+ return this.databaseConnection;
58
60
  });
59
61
  }
60
62
  return this.databaseConnectionPromise;
61
- };
63
+ }
62
64
  /**
63
65
  * Releases used database connection.
64
66
  * You cannot use query runner methods once its released.
65
67
  */
66
- MysqlQueryRunner.prototype.release = function () {
68
+ release() {
67
69
  this.isReleased = true;
68
70
  if (this.databaseConnection)
69
71
  this.databaseConnection.release();
70
72
  return Promise.resolve();
71
- };
73
+ }
72
74
  /**
73
75
  * Starts transaction on the current connection.
74
76
  */
75
- MysqlQueryRunner.prototype.startTransaction = function (isolationLevel) {
76
- return tslib_1.__awaiter(this, void 0, void 0, function () {
77
- return tslib_1.__generator(this, function (_a) {
78
- switch (_a.label) {
79
- case 0:
80
- if (this.isTransactionActive)
81
- throw new TransactionAlreadyStartedError();
82
- this.isTransactionActive = true;
83
- if (!isolationLevel) return [3 /*break*/, 3];
84
- return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)];
85
- case 1:
86
- _a.sent();
87
- return [4 /*yield*/, this.query("START TRANSACTION")];
88
- case 2:
89
- _a.sent();
90
- return [3 /*break*/, 5];
91
- case 3: return [4 /*yield*/, this.query("START TRANSACTION")];
92
- case 4:
93
- _a.sent();
94
- _a.label = 5;
95
- case 5: return [2 /*return*/];
96
- }
97
- });
98
- });
99
- };
77
+ async startTransaction(isolationLevel) {
78
+ this.isTransactionActive = true;
79
+ try {
80
+ await this.broadcaster.broadcast("BeforeTransactionStart");
81
+ }
82
+ catch (err) {
83
+ this.isTransactionActive = false;
84
+ throw err;
85
+ }
86
+ if (this.transactionDepth === 0) {
87
+ if (isolationLevel) {
88
+ await this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
89
+ }
90
+ await this.query("START TRANSACTION");
91
+ }
92
+ else {
93
+ await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`);
94
+ }
95
+ this.transactionDepth += 1;
96
+ await this.broadcaster.broadcast("AfterTransactionStart");
97
+ }
100
98
  /**
101
99
  * Commits transaction.
102
100
  * Error will be thrown if transaction was not started.
103
101
  */
104
- MysqlQueryRunner.prototype.commitTransaction = function () {
105
- return tslib_1.__awaiter(this, void 0, void 0, function () {
106
- return tslib_1.__generator(this, function (_a) {
107
- switch (_a.label) {
108
- case 0:
109
- if (!this.isTransactionActive)
110
- throw new TransactionNotStartedError();
111
- return [4 /*yield*/, this.query("COMMIT")];
112
- case 1:
113
- _a.sent();
114
- this.isTransactionActive = false;
115
- return [2 /*return*/];
116
- }
117
- });
118
- });
119
- };
102
+ async commitTransaction() {
103
+ if (!this.isTransactionActive)
104
+ throw new TransactionNotStartedError();
105
+ await this.broadcaster.broadcast("BeforeTransactionCommit");
106
+ if (this.transactionDepth > 1) {
107
+ await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`);
108
+ }
109
+ else {
110
+ await this.query("COMMIT");
111
+ this.isTransactionActive = false;
112
+ }
113
+ this.transactionDepth -= 1;
114
+ await this.broadcaster.broadcast("AfterTransactionCommit");
115
+ }
120
116
  /**
121
117
  * Rollbacks transaction.
122
118
  * Error will be thrown if transaction was not started.
123
119
  */
124
- MysqlQueryRunner.prototype.rollbackTransaction = function () {
125
- return tslib_1.__awaiter(this, void 0, void 0, function () {
126
- return tslib_1.__generator(this, function (_a) {
127
- switch (_a.label) {
128
- case 0:
129
- if (!this.isTransactionActive)
130
- throw new TransactionNotStartedError();
131
- return [4 /*yield*/, this.query("ROLLBACK")];
132
- case 1:
133
- _a.sent();
134
- this.isTransactionActive = false;
135
- return [2 /*return*/];
136
- }
137
- });
138
- });
139
- };
120
+ async rollbackTransaction() {
121
+ if (!this.isTransactionActive)
122
+ throw new TransactionNotStartedError();
123
+ await this.broadcaster.broadcast("BeforeTransactionRollback");
124
+ if (this.transactionDepth > 1) {
125
+ await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`);
126
+ }
127
+ else {
128
+ await this.query("ROLLBACK");
129
+ this.isTransactionActive = false;
130
+ }
131
+ this.transactionDepth -= 1;
132
+ await this.broadcaster.broadcast("AfterTransactionRollback");
133
+ }
140
134
  /**
141
135
  * Executes a raw SQL query.
142
136
  */
143
- MysqlQueryRunner.prototype.query = function (query, parameters) {
144
- var _this = this;
137
+ async query(query, parameters, useStructuredResult = false) {
145
138
  if (this.isReleased)
146
139
  throw new QueryRunnerAlreadyReleasedError();
147
- return new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
148
- var databaseConnection, queryStartTime_1, err_1;
149
- var _this = this;
150
- return tslib_1.__generator(this, function (_a) {
151
- switch (_a.label) {
152
- case 0:
153
- _a.trys.push([0, 2, , 3]);
154
- return [4 /*yield*/, this.connect()];
155
- case 1:
156
- databaseConnection = _a.sent();
157
- this.driver.connection.logger.logQuery(query, parameters, this);
158
- queryStartTime_1 = +new Date();
159
- databaseConnection.query(query, parameters, function (err, result) {
160
- // log slow queries if maxQueryExecution time is set
161
- var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;
162
- var queryEndTime = +new Date();
163
- var queryExecutionTime = queryEndTime - queryStartTime_1;
164
- if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
165
- _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);
166
- if (err) {
167
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
168
- return fail(new QueryFailedError(query, parameters, err));
169
- }
170
- ok(result);
171
- });
172
- return [3 /*break*/, 3];
173
- case 2:
174
- err_1 = _a.sent();
175
- fail(err_1);
176
- return [3 /*break*/, 3];
177
- case 3: return [2 /*return*/];
178
- }
179
- });
180
- }); });
181
- };
140
+ return new Promise(async (ok, fail) => {
141
+ try {
142
+ const databaseConnection = await this.connect();
143
+ this.driver.connection.logger.logQuery(query, parameters, this);
144
+ const queryStartTime = +new Date();
145
+ databaseConnection.query(query, parameters, (err, raw) => {
146
+ // log slow queries if maxQueryExecution time is set
147
+ const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
148
+ const queryEndTime = +new Date();
149
+ const queryExecutionTime = queryEndTime - queryStartTime;
150
+ if (maxQueryExecutionTime &&
151
+ queryExecutionTime > maxQueryExecutionTime)
152
+ this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
153
+ if (err) {
154
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
155
+ return fail(new QueryFailedError(query, parameters, err));
156
+ }
157
+ const result = new QueryResult();
158
+ result.raw = raw;
159
+ try {
160
+ result.records = Array.from(raw);
161
+ }
162
+ catch {
163
+ // Do nothing.
164
+ }
165
+ if (raw === null || raw === void 0 ? void 0 : raw.hasOwnProperty("affectedRows")) {
166
+ result.affected = raw.affectedRows;
167
+ }
168
+ if (useStructuredResult) {
169
+ ok(result);
170
+ }
171
+ else {
172
+ ok(result.raw);
173
+ }
174
+ });
175
+ }
176
+ catch (err) {
177
+ fail(err);
178
+ }
179
+ });
180
+ }
182
181
  /**
183
182
  * Returns raw data stream.
184
183
  */
185
- MysqlQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) {
186
- var _this = this;
184
+ stream(query, parameters, onEnd, onError) {
187
185
  if (this.isReleased)
188
186
  throw new QueryRunnerAlreadyReleasedError();
189
- return new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
190
- var databaseConnection, databaseQuery, err_2;
191
- return tslib_1.__generator(this, function (_a) {
192
- switch (_a.label) {
193
- case 0:
194
- _a.trys.push([0, 2, , 3]);
195
- return [4 /*yield*/, this.connect()];
196
- case 1:
197
- databaseConnection = _a.sent();
198
- this.driver.connection.logger.logQuery(query, parameters, this);
199
- databaseQuery = databaseConnection.query(query, parameters);
200
- if (onEnd)
201
- databaseQuery.on("end", onEnd);
202
- if (onError)
203
- databaseQuery.on("error", onError);
204
- ok(databaseQuery.stream());
205
- return [3 /*break*/, 3];
206
- case 2:
207
- err_2 = _a.sent();
208
- fail(err_2);
209
- return [3 /*break*/, 3];
210
- case 3: return [2 /*return*/];
211
- }
212
- });
213
- }); });
214
- };
187
+ return new Promise(async (ok, fail) => {
188
+ try {
189
+ const databaseConnection = await this.connect();
190
+ this.driver.connection.logger.logQuery(query, parameters, this);
191
+ const databaseQuery = databaseConnection.query(query, parameters);
192
+ if (onEnd)
193
+ databaseQuery.on("end", onEnd);
194
+ if (onError)
195
+ databaseQuery.on("error", onError);
196
+ ok(databaseQuery.stream());
197
+ }
198
+ catch (err) {
199
+ fail(err);
200
+ }
201
+ });
202
+ }
215
203
  /**
216
204
  * Returns all available database names including system databases.
217
205
  */
218
- MysqlQueryRunner.prototype.getDatabases = function () {
219
- return tslib_1.__awaiter(this, void 0, void 0, function () {
220
- return tslib_1.__generator(this, function (_a) {
221
- return [2 /*return*/, Promise.resolve([])];
222
- });
223
- });
224
- };
206
+ async getDatabases() {
207
+ return Promise.resolve([]);
208
+ }
225
209
  /**
226
210
  * Returns all available schema names including system schemas.
227
211
  * If database parameter specified, returns schemas of that database.
228
212
  */
229
- MysqlQueryRunner.prototype.getSchemas = function (database) {
230
- return tslib_1.__awaiter(this, void 0, void 0, function () {
231
- return tslib_1.__generator(this, function (_a) {
232
- throw new Error("MySql driver does not support table schemas");
233
- });
234
- });
235
- };
213
+ async getSchemas(database) {
214
+ throw new TypeORMError(`MySql driver does not support table schemas`);
215
+ }
236
216
  /**
237
217
  * Checks if database with the given name exist.
238
218
  */
239
- MysqlQueryRunner.prototype.hasDatabase = function (database) {
240
- return tslib_1.__awaiter(this, void 0, void 0, function () {
241
- var result;
242
- return tslib_1.__generator(this, function (_a) {
243
- switch (_a.label) {
244
- case 0: return [4 /*yield*/, this.query("SELECT * FROM `INFORMATION_SCHEMA`.`SCHEMATA` WHERE `SCHEMA_NAME` = '" + database + "'")];
245
- case 1:
246
- result = _a.sent();
247
- return [2 /*return*/, result.length ? true : false];
248
- }
249
- });
250
- });
251
- };
219
+ async hasDatabase(database) {
220
+ const result = await this.query(`SELECT * FROM \`INFORMATION_SCHEMA\`.\`SCHEMATA\` WHERE \`SCHEMA_NAME\` = '${database}'`);
221
+ return result.length ? true : false;
222
+ }
223
+ /**
224
+ * Loads currently using database
225
+ */
226
+ async getCurrentDatabase() {
227
+ const query = await this.query(`SELECT DATABASE() AS \`db_name\``);
228
+ return query[0]["db_name"];
229
+ }
252
230
  /**
253
231
  * Checks if schema with the given name exist.
254
232
  */
255
- MysqlQueryRunner.prototype.hasSchema = function (schema) {
256
- return tslib_1.__awaiter(this, void 0, void 0, function () {
257
- return tslib_1.__generator(this, function (_a) {
258
- throw new Error("MySql driver does not support table schemas");
259
- });
260
- });
261
- };
233
+ async hasSchema(schema) {
234
+ throw new TypeORMError(`MySql driver does not support table schemas`);
235
+ }
236
+ /**
237
+ * Loads currently using database schema
238
+ */
239
+ async getCurrentSchema() {
240
+ const query = await this.query(`SELECT SCHEMA() AS \`schema_name\``);
241
+ return query[0]["schema_name"];
242
+ }
262
243
  /**
263
244
  * Checks if table with the given name exist in the database.
264
245
  */
265
- MysqlQueryRunner.prototype.hasTable = function (tableOrName) {
266
- return tslib_1.__awaiter(this, void 0, void 0, function () {
267
- var parsedTableName, sql, result;
268
- return tslib_1.__generator(this, function (_a) {
269
- switch (_a.label) {
270
- case 0:
271
- parsedTableName = this.parseTableName(tableOrName);
272
- sql = "SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA` = '" + parsedTableName.database + "' AND `TABLE_NAME` = '" + parsedTableName.tableName + "'";
273
- return [4 /*yield*/, this.query(sql)];
274
- case 1:
275
- result = _a.sent();
276
- return [2 /*return*/, result.length ? true : false];
277
- }
278
- });
279
- });
280
- };
246
+ async hasTable(tableOrName) {
247
+ const parsedTableName = this.driver.parseTableName(tableOrName);
248
+ const sql = `SELECT * FROM \`INFORMATION_SCHEMA\`.\`COLUMNS\` WHERE \`TABLE_SCHEMA\` = '${parsedTableName.database}' AND \`TABLE_NAME\` = '${parsedTableName.tableName}'`;
249
+ const result = await this.query(sql);
250
+ return result.length ? true : false;
251
+ }
281
252
  /**
282
253
  * Checks if column with the given name exist in the given table.
283
254
  */
284
- MysqlQueryRunner.prototype.hasColumn = function (tableOrName, column) {
285
- return tslib_1.__awaiter(this, void 0, void 0, function () {
286
- var parsedTableName, columnName, sql, result;
287
- return tslib_1.__generator(this, function (_a) {
288
- switch (_a.label) {
289
- case 0:
290
- parsedTableName = this.parseTableName(tableOrName);
291
- columnName = column instanceof TableColumn ? column.name : column;
292
- sql = "SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA` = '" + parsedTableName.database + "' AND `TABLE_NAME` = '" + parsedTableName.tableName + "' AND `COLUMN_NAME` = '" + columnName + "'";
293
- return [4 /*yield*/, this.query(sql)];
294
- case 1:
295
- result = _a.sent();
296
- return [2 /*return*/, result.length ? true : false];
297
- }
298
- });
299
- });
300
- };
255
+ async hasColumn(tableOrName, column) {
256
+ const parsedTableName = this.driver.parseTableName(tableOrName);
257
+ const columnName = InstanceChecker.isTableColumn(column)
258
+ ? column.name
259
+ : column;
260
+ const sql = `SELECT * FROM \`INFORMATION_SCHEMA\`.\`COLUMNS\` WHERE \`TABLE_SCHEMA\` = '${parsedTableName.database}' AND \`TABLE_NAME\` = '${parsedTableName.tableName}' AND \`COLUMN_NAME\` = '${columnName}'`;
261
+ const result = await this.query(sql);
262
+ return result.length ? true : false;
263
+ }
301
264
  /**
302
265
  * Creates a new database.
303
266
  */
304
- MysqlQueryRunner.prototype.createDatabase = function (database, ifNotExist) {
305
- return tslib_1.__awaiter(this, void 0, void 0, function () {
306
- var up, down;
307
- return tslib_1.__generator(this, function (_a) {
308
- switch (_a.label) {
309
- case 0:
310
- up = ifNotExist ? "CREATE DATABASE IF NOT EXISTS `" + database + "`" : "CREATE DATABASE `" + database + "`";
311
- down = "DROP DATABASE `" + database + "`";
312
- return [4 /*yield*/, this.executeQueries(new Query(up), new Query(down))];
313
- case 1:
314
- _a.sent();
315
- return [2 /*return*/];
316
- }
317
- });
318
- });
319
- };
267
+ async createDatabase(database, ifNotExist) {
268
+ const up = ifNotExist
269
+ ? `CREATE DATABASE IF NOT EXISTS \`${database}\``
270
+ : `CREATE DATABASE \`${database}\``;
271
+ const down = `DROP DATABASE \`${database}\``;
272
+ await this.executeQueries(new Query(up), new Query(down));
273
+ }
320
274
  /**
321
275
  * Drops database.
322
276
  */
323
- MysqlQueryRunner.prototype.dropDatabase = function (database, ifExist) {
324
- return tslib_1.__awaiter(this, void 0, void 0, function () {
325
- var up, down;
326
- return tslib_1.__generator(this, function (_a) {
327
- switch (_a.label) {
328
- case 0:
329
- up = ifExist ? "DROP DATABASE IF EXISTS `" + database + "`" : "DROP DATABASE `" + database + "`";
330
- down = "CREATE DATABASE `" + database + "`";
331
- return [4 /*yield*/, this.executeQueries(new Query(up), new Query(down))];
332
- case 1:
333
- _a.sent();
334
- return [2 /*return*/];
335
- }
336
- });
337
- });
338
- };
277
+ async dropDatabase(database, ifExist) {
278
+ const up = ifExist
279
+ ? `DROP DATABASE IF EXISTS \`${database}\``
280
+ : `DROP DATABASE \`${database}\``;
281
+ const down = `CREATE DATABASE \`${database}\``;
282
+ await this.executeQueries(new Query(up), new Query(down));
283
+ }
339
284
  /**
340
285
  * Creates a new table schema.
341
286
  */
342
- MysqlQueryRunner.prototype.createSchema = function (schema, ifNotExist) {
343
- return tslib_1.__awaiter(this, void 0, void 0, function () {
344
- return tslib_1.__generator(this, function (_a) {
345
- throw new Error("Schema create queries are not supported by MySql driver.");
346
- });
347
- });
348
- };
287
+ async createSchema(schemaPath, ifNotExist) {
288
+ throw new TypeORMError(`Schema create queries are not supported by MySql driver.`);
289
+ }
349
290
  /**
350
291
  * Drops table schema.
351
292
  */
352
- MysqlQueryRunner.prototype.dropSchema = function (schemaPath, ifExist) {
353
- return tslib_1.__awaiter(this, void 0, void 0, function () {
354
- return tslib_1.__generator(this, function (_a) {
355
- throw new Error("Schema drop queries are not supported by MySql driver.");
356
- });
357
- });
358
- };
293
+ async dropSchema(schemaPath, ifExist) {
294
+ throw new TypeORMError(`Schema drop queries are not supported by MySql driver.`);
295
+ }
359
296
  /**
360
297
  * Creates a new table.
361
298
  */
362
- MysqlQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys) {
363
- if (ifNotExist === void 0) { ifNotExist = false; }
364
- if (createForeignKeys === void 0) { createForeignKeys = true; }
365
- return tslib_1.__awaiter(this, void 0, void 0, function () {
366
- var isTableExist, upQueries, downQueries;
367
- var _this = this;
368
- return tslib_1.__generator(this, function (_a) {
369
- switch (_a.label) {
370
- case 0:
371
- if (!ifNotExist) return [3 /*break*/, 2];
372
- return [4 /*yield*/, this.hasTable(table)];
373
- case 1:
374
- isTableExist = _a.sent();
375
- if (isTableExist)
376
- return [2 /*return*/, Promise.resolve()];
377
- _a.label = 2;
378
- case 2:
379
- upQueries = [];
380
- downQueries = [];
381
- upQueries.push(this.createTableSql(table, createForeignKeys));
382
- downQueries.push(this.dropTableSql(table));
383
- // we must first drop indices, than drop foreign keys, because drop queries runs in reversed order
384
- // and foreign keys will be dropped first as indices. This order is very important, because we can't drop index
385
- // if it related to the foreign key.
386
- // createTable does not need separate method to create indices, because it create indices in the same query with table creation.
387
- table.indices.forEach(function (index) { return downQueries.push(_this.dropIndexSql(table, index)); });
388
- // if createForeignKeys is true, we must drop created foreign keys in down query.
389
- // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
390
- if (createForeignKeys)
391
- table.foreignKeys.forEach(function (foreignKey) { return downQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
392
- return [2 /*return*/, this.executeQueries(upQueries, downQueries)];
393
- }
394
- });
395
- });
396
- };
299
+ async createTable(table, ifNotExist = false, createForeignKeys = true) {
300
+ if (ifNotExist) {
301
+ const isTableExist = await this.hasTable(table);
302
+ if (isTableExist)
303
+ return Promise.resolve();
304
+ }
305
+ const upQueries = [];
306
+ const downQueries = [];
307
+ upQueries.push(this.createTableSql(table, createForeignKeys));
308
+ downQueries.push(this.dropTableSql(table));
309
+ // we must first drop indices, than drop foreign keys, because drop queries runs in reversed order
310
+ // and foreign keys will be dropped first as indices. This order is very important, because we can't drop index
311
+ // if it related to the foreign key.
312
+ // createTable does not need separate method to create indices, because it create indices in the same query with table creation.
313
+ table.indices.forEach((index) => downQueries.push(this.dropIndexSql(table, index)));
314
+ // if createForeignKeys is true, we must drop created foreign keys in down query.
315
+ // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
316
+ if (createForeignKeys)
317
+ table.foreignKeys.forEach((foreignKey) => downQueries.push(this.dropForeignKeySql(table, foreignKey)));
318
+ return this.executeQueries(upQueries, downQueries);
319
+ }
397
320
  /**
398
321
  * Drop the table.
399
322
  */
400
- MysqlQueryRunner.prototype.dropTable = function (target, ifExist, dropForeignKeys) {
401
- if (dropForeignKeys === void 0) { dropForeignKeys = true; }
402
- return tslib_1.__awaiter(this, void 0, void 0, function () {
403
- var isTableExist, createForeignKeys, tableName, table, upQueries, downQueries;
404
- var _this = this;
405
- return tslib_1.__generator(this, function (_a) {
406
- switch (_a.label) {
407
- case 0:
408
- if (!ifExist) return [3 /*break*/, 2];
409
- return [4 /*yield*/, this.hasTable(target)];
410
- case 1:
411
- isTableExist = _a.sent();
412
- if (!isTableExist)
413
- return [2 /*return*/, Promise.resolve()];
414
- _a.label = 2;
415
- case 2:
416
- createForeignKeys = dropForeignKeys;
417
- tableName = target instanceof Table ? target.name : target;
418
- return [4 /*yield*/, this.getCachedTable(tableName)];
419
- case 3:
420
- table = _a.sent();
421
- upQueries = [];
422
- downQueries = [];
423
- if (dropForeignKeys)
424
- table.foreignKeys.forEach(function (foreignKey) { return upQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
425
- table.indices.forEach(function (index) { return upQueries.push(_this.dropIndexSql(table, index)); });
426
- upQueries.push(this.dropTableSql(table));
427
- downQueries.push(this.createTableSql(table, createForeignKeys));
428
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
429
- case 4:
430
- _a.sent();
431
- return [2 /*return*/];
432
- }
433
- });
434
- });
435
- };
323
+ async dropTable(target, ifExist, dropForeignKeys = true) {
324
+ // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need
325
+ // to perform drop queries for foreign keys and indices.
326
+ if (ifExist) {
327
+ const isTableExist = await this.hasTable(target);
328
+ if (!isTableExist)
329
+ return Promise.resolve();
330
+ }
331
+ // if dropTable called with dropForeignKeys = true, we must create foreign keys in down query.
332
+ const createForeignKeys = dropForeignKeys;
333
+ const tablePath = this.getTablePath(target);
334
+ const table = await this.getCachedTable(tablePath);
335
+ const upQueries = [];
336
+ const downQueries = [];
337
+ if (dropForeignKeys)
338
+ table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
339
+ table.indices.forEach((index) => upQueries.push(this.dropIndexSql(table, index)));
340
+ upQueries.push(this.dropTableSql(table));
341
+ downQueries.push(this.createTableSql(table, createForeignKeys));
342
+ await this.executeQueries(upQueries, downQueries);
343
+ }
436
344
  /**
437
345
  * Creates a new view.
438
346
  */
439
- MysqlQueryRunner.prototype.createView = function (view) {
440
- return tslib_1.__awaiter(this, void 0, void 0, function () {
441
- var upQueries, downQueries, _a, _b, _c, _d;
442
- return tslib_1.__generator(this, function (_e) {
443
- switch (_e.label) {
444
- case 0:
445
- upQueries = [];
446
- downQueries = [];
447
- upQueries.push(this.createViewSql(view));
448
- _b = (_a = upQueries).push;
449
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
450
- case 1:
451
- _b.apply(_a, [_e.sent()]);
452
- downQueries.push(this.dropViewSql(view));
453
- _d = (_c = downQueries).push;
454
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
455
- case 2:
456
- _d.apply(_c, [_e.sent()]);
457
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
458
- case 3:
459
- _e.sent();
460
- return [2 /*return*/];
461
- }
462
- });
463
- });
464
- };
347
+ async createView(view) {
348
+ const upQueries = [];
349
+ const downQueries = [];
350
+ upQueries.push(this.createViewSql(view));
351
+ upQueries.push(await this.insertViewDefinitionSql(view));
352
+ downQueries.push(this.dropViewSql(view));
353
+ downQueries.push(await this.deleteViewDefinitionSql(view));
354
+ await this.executeQueries(upQueries, downQueries);
355
+ }
465
356
  /**
466
357
  * Drops the view.
467
358
  */
468
- MysqlQueryRunner.prototype.dropView = function (target) {
469
- return tslib_1.__awaiter(this, void 0, void 0, function () {
470
- var viewName, view, upQueries, downQueries, _a, _b, _c, _d;
471
- return tslib_1.__generator(this, function (_e) {
472
- switch (_e.label) {
473
- case 0:
474
- viewName = target instanceof View ? target.name : target;
475
- return [4 /*yield*/, this.getCachedView(viewName)];
476
- case 1:
477
- view = _e.sent();
478
- upQueries = [];
479
- downQueries = [];
480
- _b = (_a = upQueries).push;
481
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
482
- case 2:
483
- _b.apply(_a, [_e.sent()]);
484
- upQueries.push(this.dropViewSql(view));
485
- _d = (_c = downQueries).push;
486
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
487
- case 3:
488
- _d.apply(_c, [_e.sent()]);
489
- downQueries.push(this.createViewSql(view));
490
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
491
- case 4:
492
- _e.sent();
493
- return [2 /*return*/];
494
- }
495
- });
496
- });
497
- };
359
+ async dropView(target) {
360
+ const viewName = InstanceChecker.isView(target) ? target.name : target;
361
+ const view = await this.getCachedView(viewName);
362
+ const upQueries = [];
363
+ const downQueries = [];
364
+ upQueries.push(await this.deleteViewDefinitionSql(view));
365
+ upQueries.push(this.dropViewSql(view));
366
+ downQueries.push(await this.insertViewDefinitionSql(view));
367
+ downQueries.push(this.createViewSql(view));
368
+ await this.executeQueries(upQueries, downQueries);
369
+ }
498
370
  /**
499
371
  * Renames a table.
500
372
  */
501
- MysqlQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
502
- return tslib_1.__awaiter(this, void 0, void 0, function () {
503
- var upQueries, downQueries, oldTable, _a, newTable, dbName;
504
- var _this = this;
505
- return tslib_1.__generator(this, function (_b) {
506
- switch (_b.label) {
507
- case 0:
508
- upQueries = [];
509
- downQueries = [];
510
- if (!(oldTableOrName instanceof Table)) return [3 /*break*/, 1];
511
- _a = oldTableOrName;
512
- return [3 /*break*/, 3];
513
- case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)];
514
- case 2:
515
- _a = _b.sent();
516
- _b.label = 3;
517
- case 3:
518
- oldTable = _a;
519
- newTable = oldTable.clone();
520
- dbName = oldTable.name.indexOf(".") === -1 ? undefined : oldTable.name.split(".")[0];
521
- newTable.name = dbName ? dbName + "." + newTableName : newTableName;
522
- // rename table
523
- upQueries.push(new Query("RENAME TABLE " + this.escapePath(oldTable.name) + " TO " + this.escapePath(newTable.name)));
524
- downQueries.push(new Query("RENAME TABLE " + this.escapePath(newTable.name) + " TO " + this.escapePath(oldTable.name)));
525
- // rename index constraints
526
- newTable.indices.forEach(function (index) {
527
- // build new constraint name
528
- var columnNames = index.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
529
- var newIndexName = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
530
- // build queries
531
- var indexType = "";
532
- if (index.isUnique)
533
- indexType += "UNIQUE ";
534
- if (index.isSpatial)
535
- indexType += "SPATIAL ";
536
- if (index.isFulltext)
537
- indexType += "FULLTEXT ";
538
- upQueries.push(new Query("ALTER TABLE " + _this.escapePath(newTable) + " DROP INDEX `" + index.name + "`, ADD " + indexType + "INDEX `" + newIndexName + "` (" + columnNames + ")"));
539
- downQueries.push(new Query("ALTER TABLE " + _this.escapePath(newTable) + " DROP INDEX `" + newIndexName + "`, ADD " + indexType + "INDEX `" + index.name + "` (" + columnNames + ")"));
540
- // replace constraint name
541
- index.name = newIndexName;
542
- });
543
- // rename foreign key constraint
544
- newTable.foreignKeys.forEach(function (foreignKey) {
545
- // build new constraint name
546
- var columnNames = foreignKey.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
547
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "`" + column + "`"; }).join(",");
548
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
549
- // build queries
550
- var up = "ALTER TABLE " + _this.escapePath(newTable) + " DROP FOREIGN KEY `" + foreignKey.name + "`, ADD CONSTRAINT `" + newForeignKeyName + "` FOREIGN KEY (" + columnNames + ") " +
551
- ("REFERENCES " + _this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
552
- if (foreignKey.onDelete)
553
- up += " ON DELETE " + foreignKey.onDelete;
554
- if (foreignKey.onUpdate)
555
- up += " ON UPDATE " + foreignKey.onUpdate;
556
- var down = "ALTER TABLE " + _this.escapePath(newTable) + " DROP FOREIGN KEY `" + newForeignKeyName + "`, ADD CONSTRAINT `" + foreignKey.name + "` FOREIGN KEY (" + columnNames + ") " +
557
- ("REFERENCES " + _this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
558
- if (foreignKey.onDelete)
559
- down += " ON DELETE " + foreignKey.onDelete;
560
- if (foreignKey.onUpdate)
561
- down += " ON UPDATE " + foreignKey.onUpdate;
562
- upQueries.push(new Query(up));
563
- downQueries.push(new Query(down));
564
- // replace constraint name
565
- foreignKey.name = newForeignKeyName;
566
- });
567
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
568
- case 4:
569
- _b.sent();
570
- // rename old table and replace it in cached tabled;
571
- oldTable.name = newTable.name;
572
- this.replaceCachedTable(oldTable, newTable);
573
- return [2 /*return*/];
574
- }
575
- });
373
+ async renameTable(oldTableOrName, newTableName) {
374
+ const upQueries = [];
375
+ const downQueries = [];
376
+ const oldTable = InstanceChecker.isTable(oldTableOrName)
377
+ ? oldTableOrName
378
+ : await this.getCachedTable(oldTableOrName);
379
+ const newTable = oldTable.clone();
380
+ const { database } = this.driver.parseTableName(oldTable);
381
+ newTable.name = database ? `${database}.${newTableName}` : newTableName;
382
+ // rename table
383
+ upQueries.push(new Query(`RENAME TABLE ${this.escapePath(oldTable)} TO ${this.escapePath(newTable)}`));
384
+ downQueries.push(new Query(`RENAME TABLE ${this.escapePath(newTable)} TO ${this.escapePath(oldTable)}`));
385
+ // rename index constraints
386
+ newTable.indices.forEach((index) => {
387
+ // build new constraint name
388
+ const columnNames = index.columnNames
389
+ .map((column) => `\`${column}\``)
390
+ .join(", ");
391
+ const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
392
+ // build queries
393
+ let indexType = "";
394
+ if (index.isUnique)
395
+ indexType += "UNIQUE ";
396
+ if (index.isSpatial)
397
+ indexType += "SPATIAL ";
398
+ if (index.isFulltext)
399
+ indexType += "FULLTEXT ";
400
+ const indexParser = index.isFulltext && index.parser
401
+ ? ` WITH PARSER ${index.parser}`
402
+ : "";
403
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} DROP INDEX \`${index.name}\`, ADD ${indexType}INDEX \`${newIndexName}\` (${columnNames})${indexParser}`));
404
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} DROP INDEX \`${newIndexName}\`, ADD ${indexType}INDEX \`${index.name}\` (${columnNames})${indexParser}`));
405
+ // replace constraint name
406
+ index.name = newIndexName;
407
+ });
408
+ // rename foreign key constraint
409
+ newTable.foreignKeys.forEach((foreignKey) => {
410
+ // build new constraint name
411
+ const columnNames = foreignKey.columnNames
412
+ .map((column) => `\`${column}\``)
413
+ .join(", ");
414
+ const referencedColumnNames = foreignKey.referencedColumnNames
415
+ .map((column) => `\`${column}\``)
416
+ .join(",");
417
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
418
+ // build queries
419
+ let up = `ALTER TABLE ${this.escapePath(newTable)} DROP FOREIGN KEY \`${foreignKey.name}\`, ADD CONSTRAINT \`${newForeignKeyName}\` FOREIGN KEY (${columnNames}) ` +
420
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
421
+ if (foreignKey.onDelete)
422
+ up += ` ON DELETE ${foreignKey.onDelete}`;
423
+ if (foreignKey.onUpdate)
424
+ up += ` ON UPDATE ${foreignKey.onUpdate}`;
425
+ let down = `ALTER TABLE ${this.escapePath(newTable)} DROP FOREIGN KEY \`${newForeignKeyName}\`, ADD CONSTRAINT \`${foreignKey.name}\` FOREIGN KEY (${columnNames}) ` +
426
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
427
+ if (foreignKey.onDelete)
428
+ down += ` ON DELETE ${foreignKey.onDelete}`;
429
+ if (foreignKey.onUpdate)
430
+ down += ` ON UPDATE ${foreignKey.onUpdate}`;
431
+ upQueries.push(new Query(up));
432
+ downQueries.push(new Query(down));
433
+ // replace constraint name
434
+ foreignKey.name = newForeignKeyName;
576
435
  });
577
- };
436
+ await this.executeQueries(upQueries, downQueries);
437
+ // rename old table and replace it in cached tabled;
438
+ oldTable.name = newTable.name;
439
+ this.replaceCachedTable(oldTable, newTable);
440
+ }
578
441
  /**
579
442
  * Creates a new column from the column in the table.
580
443
  */
581
- MysqlQueryRunner.prototype.addColumn = function (tableOrName, column) {
582
- return tslib_1.__awaiter(this, void 0, void 0, function () {
583
- var table, _a, clonedTable, upQueries, downQueries, skipColumnLevelPrimary, generatedColumn, nonGeneratedColumn, primaryColumns, columnNames, nonGeneratedColumn, columnIndex, uniqueIndex;
584
- return tslib_1.__generator(this, function (_b) {
585
- switch (_b.label) {
586
- case 0:
587
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
588
- _a = tableOrName;
589
- return [3 /*break*/, 3];
590
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
591
- case 2:
592
- _a = _b.sent();
593
- _b.label = 3;
594
- case 3:
595
- table = _a;
596
- clonedTable = table.clone();
597
- upQueries = [];
598
- downQueries = [];
599
- skipColumnLevelPrimary = clonedTable.primaryColumns.length > 0;
600
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(column, skipColumnLevelPrimary, false)));
601
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN `" + column.name + "`"));
602
- // create or update primary key constraint
603
- if (column.isPrimary && skipColumnLevelPrimary) {
604
- generatedColumn = clonedTable.columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
605
- if (generatedColumn) {
606
- nonGeneratedColumn = generatedColumn.clone();
607
- nonGeneratedColumn.isGenerated = false;
608
- nonGeneratedColumn.generationStrategy = undefined;
609
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + column.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
610
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(column, true)));
611
- }
612
- primaryColumns = clonedTable.primaryColumns;
613
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
614
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
615
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
616
- primaryColumns.push(column);
617
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
618
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
619
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
620
- // if we previously dropped AUTO_INCREMENT property, we must bring it back
621
- if (generatedColumn) {
622
- nonGeneratedColumn = generatedColumn.clone();
623
- nonGeneratedColumn.isGenerated = false;
624
- nonGeneratedColumn.generationStrategy = undefined;
625
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(column, true)));
626
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + column.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
627
- }
628
- }
629
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
630
- if (columnIndex) {
631
- upQueries.push(this.createIndexSql(table, columnIndex));
632
- downQueries.push(this.dropIndexSql(table, columnIndex));
633
- }
634
- else if (column.isUnique) {
635
- uniqueIndex = new TableIndex({
636
- name: this.connection.namingStrategy.indexName(table.name, [column.name]),
637
- columnNames: [column.name],
638
- isUnique: true
639
- });
640
- clonedTable.indices.push(uniqueIndex);
641
- clonedTable.uniques.push(new TableUnique({
642
- name: uniqueIndex.name,
643
- columnNames: uniqueIndex.columnNames
644
- }));
645
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD UNIQUE INDEX `" + uniqueIndex.name + "` (`" + column.name + "`)"));
646
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP INDEX `" + uniqueIndex.name + "`"));
647
- }
648
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
649
- case 4:
650
- _b.sent();
651
- clonedTable.addColumn(column);
652
- this.replaceCachedTable(table, clonedTable);
653
- return [2 /*return*/];
654
- }
444
+ async addColumn(tableOrName, column) {
445
+ const table = InstanceChecker.isTable(tableOrName)
446
+ ? tableOrName
447
+ : await this.getCachedTable(tableOrName);
448
+ const clonedTable = table.clone();
449
+ const upQueries = [];
450
+ const downQueries = [];
451
+ const skipColumnLevelPrimary = clonedTable.primaryColumns.length > 0;
452
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(column, skipColumnLevelPrimary, false)}`));
453
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN \`${column.name}\``));
454
+ // create or update primary key constraint
455
+ if (column.isPrimary && skipColumnLevelPrimary) {
456
+ // if we already have generated column, we must temporary drop AUTO_INCREMENT property.
457
+ const generatedColumn = clonedTable.columns.find((column) => column.isGenerated &&
458
+ column.generationStrategy === "increment");
459
+ if (generatedColumn) {
460
+ const nonGeneratedColumn = generatedColumn.clone();
461
+ nonGeneratedColumn.isGenerated = false;
462
+ nonGeneratedColumn.generationStrategy = undefined;
463
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${column.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
464
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(column, true)}`));
465
+ }
466
+ const primaryColumns = clonedTable.primaryColumns;
467
+ let columnNames = primaryColumns
468
+ .map((column) => `\`${column.name}\``)
469
+ .join(", ");
470
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
471
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
472
+ primaryColumns.push(column);
473
+ columnNames = primaryColumns
474
+ .map((column) => `\`${column.name}\``)
475
+ .join(", ");
476
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
477
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
478
+ // if we previously dropped AUTO_INCREMENT property, we must bring it back
479
+ if (generatedColumn) {
480
+ const nonGeneratedColumn = generatedColumn.clone();
481
+ nonGeneratedColumn.isGenerated = false;
482
+ nonGeneratedColumn.generationStrategy = undefined;
483
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(column, true)}`));
484
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${column.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
485
+ }
486
+ }
487
+ // create column index
488
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
489
+ index.columnNames[0] === column.name);
490
+ if (columnIndex) {
491
+ upQueries.push(this.createIndexSql(table, columnIndex));
492
+ downQueries.push(this.dropIndexSql(table, columnIndex));
493
+ }
494
+ else if (column.isUnique) {
495
+ const uniqueIndex = new TableIndex({
496
+ name: this.connection.namingStrategy.indexName(table, [
497
+ column.name,
498
+ ]),
499
+ columnNames: [column.name],
500
+ isUnique: true,
655
501
  });
656
- });
657
- };
502
+ clonedTable.indices.push(uniqueIndex);
503
+ clonedTable.uniques.push(new TableUnique({
504
+ name: uniqueIndex.name,
505
+ columnNames: uniqueIndex.columnNames,
506
+ }));
507
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD UNIQUE INDEX \`${uniqueIndex.name}\` (\`${column.name}\`)`));
508
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${uniqueIndex.name}\``));
509
+ }
510
+ await this.executeQueries(upQueries, downQueries);
511
+ clonedTable.addColumn(column);
512
+ this.replaceCachedTable(table, clonedTable);
513
+ }
658
514
  /**
659
515
  * Creates a new columns from the column in the table.
660
516
  */
661
- MysqlQueryRunner.prototype.addColumns = function (tableOrName, columns) {
662
- return tslib_1.__awaiter(this, void 0, void 0, function () {
663
- var _this = this;
664
- return tslib_1.__generator(this, function (_a) {
665
- switch (_a.label) {
666
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(columns, function (column) { return _this.addColumn(tableOrName, column); })];
667
- case 1:
668
- _a.sent();
669
- return [2 /*return*/];
670
- }
671
- });
672
- });
673
- };
517
+ async addColumns(tableOrName, columns) {
518
+ for (const column of columns) {
519
+ await this.addColumn(tableOrName, column);
520
+ }
521
+ }
674
522
  /**
675
523
  * Renames column in the given table.
676
524
  */
677
- MysqlQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) {
678
- return tslib_1.__awaiter(this, void 0, void 0, function () {
679
- var table, _a, oldColumn, newColumn;
680
- return tslib_1.__generator(this, function (_b) {
681
- switch (_b.label) {
682
- case 0:
683
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
684
- _a = tableOrName;
685
- return [3 /*break*/, 3];
686
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
687
- case 2:
688
- _a = _b.sent();
689
- _b.label = 3;
690
- case 3:
691
- table = _a;
692
- oldColumn = oldTableColumnOrName instanceof TableColumn ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; });
693
- if (!oldColumn)
694
- throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
695
- newColumn = undefined;
696
- if (newTableColumnOrName instanceof TableColumn) {
697
- newColumn = newTableColumnOrName;
698
- }
699
- else {
700
- newColumn = oldColumn.clone();
701
- newColumn.name = newTableColumnOrName;
702
- }
703
- return [4 /*yield*/, this.changeColumn(table, oldColumn, newColumn)];
704
- case 4:
705
- _b.sent();
706
- return [2 /*return*/];
707
- }
708
- });
709
- });
710
- };
525
+ async renameColumn(tableOrName, oldTableColumnOrName, newTableColumnOrName) {
526
+ const table = InstanceChecker.isTable(tableOrName)
527
+ ? tableOrName
528
+ : await this.getCachedTable(tableOrName);
529
+ const oldColumn = InstanceChecker.isTableColumn(oldTableColumnOrName)
530
+ ? oldTableColumnOrName
531
+ : table.columns.find((c) => c.name === oldTableColumnOrName);
532
+ if (!oldColumn)
533
+ throw new TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
534
+ let newColumn = undefined;
535
+ if (InstanceChecker.isTableColumn(newTableColumnOrName)) {
536
+ newColumn = newTableColumnOrName;
537
+ }
538
+ else {
539
+ newColumn = oldColumn.clone();
540
+ newColumn.name = newTableColumnOrName;
541
+ }
542
+ await this.changeColumn(table, oldColumn, newColumn);
543
+ }
711
544
  /**
712
545
  * Changes a column in the table.
713
546
  */
714
- MysqlQueryRunner.prototype.changeColumn = function (tableOrName, oldColumnOrName, newColumn) {
715
- return tslib_1.__awaiter(this, void 0, void 0, function () {
716
- var table, _a, clonedTable, upQueries, downQueries, oldColumn, oldTableColumn, generatedColumn, nonGeneratedColumn, primaryColumns, columnNames, column, columnNames, primaryColumn, column, columnNames, nonGeneratedColumn, uniqueIndex, uniqueIndex_1, tableUnique;
717
- var _this = this;
718
- return tslib_1.__generator(this, function (_b) {
719
- switch (_b.label) {
720
- case 0:
721
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
722
- _a = tableOrName;
723
- return [3 /*break*/, 3];
724
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
725
- case 2:
726
- _a = _b.sent();
727
- _b.label = 3;
728
- case 3:
729
- table = _a;
730
- clonedTable = table.clone();
731
- upQueries = [];
732
- downQueries = [];
733
- oldColumn = oldColumnOrName instanceof TableColumn
734
- ? oldColumnOrName
735
- : table.columns.find(function (column) { return column.name === oldColumnOrName; });
736
- if (!oldColumn)
737
- throw new Error("Column \"" + oldColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
738
- if (!((newColumn.isGenerated !== oldColumn.isGenerated && newColumn.generationStrategy !== "uuid")
739
- || oldColumn.type !== newColumn.type
740
- || oldColumn.length !== newColumn.length
741
- || oldColumn.generatedType !== newColumn.generatedType)) return [3 /*break*/, 6];
742
- return [4 /*yield*/, this.dropColumn(table, oldColumn)];
743
- case 4:
744
- _b.sent();
745
- return [4 /*yield*/, this.addColumn(table, newColumn)];
746
- case 5:
747
- _b.sent();
748
- // update cloned table
749
- clonedTable = table.clone();
750
- return [3 /*break*/, 7];
751
- case 6:
752
- if (newColumn.name !== oldColumn.name) {
753
- // We don't change any column properties, just rename it.
754
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + oldColumn.name + "` `" + newColumn.name + "` " + this.buildCreateColumnSql(oldColumn, true, true)));
755
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + newColumn.name + "` `" + oldColumn.name + "` " + this.buildCreateColumnSql(oldColumn, true, true)));
756
- // rename index constraints
757
- clonedTable.findColumnIndices(oldColumn).forEach(function (index) {
758
- // build new constraint name
759
- index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
760
- index.columnNames.push(newColumn.name);
761
- var columnNames = index.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
762
- var newIndexName = _this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
763
- // build queries
764
- var indexType = "";
765
- if (index.isUnique)
766
- indexType += "UNIQUE ";
767
- if (index.isSpatial)
768
- indexType += "SPATIAL ";
769
- if (index.isFulltext)
770
- indexType += "FULLTEXT ";
771
- upQueries.push(new Query("ALTER TABLE " + _this.escapePath(table) + " DROP INDEX `" + index.name + "`, ADD " + indexType + "INDEX `" + newIndexName + "` (" + columnNames + ")"));
772
- downQueries.push(new Query("ALTER TABLE " + _this.escapePath(table) + " DROP INDEX `" + newIndexName + "`, ADD " + indexType + "INDEX `" + index.name + "` (" + columnNames + ")"));
773
- // replace constraint name
774
- index.name = newIndexName;
775
- });
776
- // rename foreign key constraints
777
- clonedTable.findColumnForeignKeys(oldColumn).forEach(function (foreignKey) {
778
- // build new constraint name
779
- foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
780
- foreignKey.columnNames.push(newColumn.name);
781
- var columnNames = foreignKey.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
782
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "`" + column + "`"; }).join(",");
783
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
784
- // build queries
785
- var up = "ALTER TABLE " + _this.escapePath(table) + " DROP FOREIGN KEY `" + foreignKey.name + "`, ADD CONSTRAINT `" + newForeignKeyName + "` FOREIGN KEY (" + columnNames + ") " +
786
- ("REFERENCES " + _this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
787
- if (foreignKey.onDelete)
788
- up += " ON DELETE " + foreignKey.onDelete;
789
- if (foreignKey.onUpdate)
790
- up += " ON UPDATE " + foreignKey.onUpdate;
791
- var down = "ALTER TABLE " + _this.escapePath(table) + " DROP FOREIGN KEY `" + newForeignKeyName + "`, ADD CONSTRAINT `" + foreignKey.name + "` FOREIGN KEY (" + columnNames + ") " +
792
- ("REFERENCES " + _this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
793
- if (foreignKey.onDelete)
794
- down += " ON DELETE " + foreignKey.onDelete;
795
- if (foreignKey.onUpdate)
796
- down += " ON UPDATE " + foreignKey.onUpdate;
797
- upQueries.push(new Query(up));
798
- downQueries.push(new Query(down));
799
- // replace constraint name
800
- foreignKey.name = newForeignKeyName;
801
- });
802
- oldTableColumn = clonedTable.columns.find(function (column) { return column.name === oldColumn.name; });
803
- clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
804
- oldColumn.name = newColumn.name;
805
- }
806
- if (this.isColumnChanged(oldColumn, newColumn, true)) {
807
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + oldColumn.name + "` " + this.buildCreateColumnSql(newColumn, true)));
808
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + newColumn.name + "` " + this.buildCreateColumnSql(oldColumn, true)));
809
- }
810
- if (newColumn.isPrimary !== oldColumn.isPrimary) {
811
- generatedColumn = clonedTable.columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
812
- if (generatedColumn) {
813
- nonGeneratedColumn = generatedColumn.clone();
814
- nonGeneratedColumn.isGenerated = false;
815
- nonGeneratedColumn.generationStrategy = undefined;
816
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
817
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
818
- }
819
- primaryColumns = clonedTable.primaryColumns;
820
- // if primary column state changed, we must always drop existed constraint.
821
- if (primaryColumns.length > 0) {
822
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
823
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
824
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
825
- }
826
- if (newColumn.isPrimary === true) {
827
- primaryColumns.push(newColumn);
828
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
829
- column.isPrimary = true;
830
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
831
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
832
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
833
- }
834
- else {
835
- primaryColumn = primaryColumns.find(function (c) { return c.name === newColumn.name; });
836
- primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
837
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
838
- column.isPrimary = false;
839
- // if we have another primary keys, we must recreate constraint.
840
- if (primaryColumns.length > 0) {
841
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
842
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
843
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
844
- }
845
- }
846
- // if we have generated column, and we dropped AUTO_INCREMENT property before, we must bring it back
847
- if (generatedColumn) {
848
- nonGeneratedColumn = generatedColumn.clone();
849
- nonGeneratedColumn.isGenerated = false;
850
- nonGeneratedColumn.generationStrategy = undefined;
851
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
852
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
853
- }
854
- }
855
- if (newColumn.isUnique !== oldColumn.isUnique) {
856
- if (newColumn.isUnique === true) {
857
- uniqueIndex = new TableIndex({
858
- name: this.connection.namingStrategy.indexName(table.name, [newColumn.name]),
859
- columnNames: [newColumn.name],
860
- isUnique: true
861
- });
862
- clonedTable.indices.push(uniqueIndex);
863
- clonedTable.uniques.push(new TableUnique({
864
- name: uniqueIndex.name,
865
- columnNames: uniqueIndex.columnNames
866
- }));
867
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD UNIQUE INDEX `" + uniqueIndex.name + "` (`" + newColumn.name + "`)"));
868
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP INDEX `" + uniqueIndex.name + "`"));
869
- }
870
- else {
871
- uniqueIndex_1 = clonedTable.indices.find(function (index) {
872
- return index.columnNames.length === 1 && index.isUnique === true && !!index.columnNames.find(function (columnName) { return columnName === newColumn.name; });
873
- });
874
- clonedTable.indices.splice(clonedTable.indices.indexOf(uniqueIndex_1), 1);
875
- tableUnique = clonedTable.uniques.find(function (unique) { return unique.name === uniqueIndex_1.name; });
876
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(tableUnique), 1);
877
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP INDEX `" + uniqueIndex_1.name + "`"));
878
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD UNIQUE INDEX `" + uniqueIndex_1.name + "` (`" + newColumn.name + "`)"));
879
- }
880
- }
881
- _b.label = 7;
882
- case 7: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
883
- case 8:
884
- _b.sent();
885
- this.replaceCachedTable(table, clonedTable);
886
- return [2 /*return*/];
547
+ async changeColumn(tableOrName, oldColumnOrName, newColumn) {
548
+ const table = InstanceChecker.isTable(tableOrName)
549
+ ? tableOrName
550
+ : await this.getCachedTable(tableOrName);
551
+ let clonedTable = table.clone();
552
+ const upQueries = [];
553
+ const downQueries = [];
554
+ const oldColumn = InstanceChecker.isTableColumn(oldColumnOrName)
555
+ ? oldColumnOrName
556
+ : table.columns.find((column) => column.name === oldColumnOrName);
557
+ if (!oldColumn)
558
+ throw new TypeORMError(`Column "${oldColumnOrName}" was not found in the "${table.name}" table.`);
559
+ if ((newColumn.isGenerated !== oldColumn.isGenerated &&
560
+ newColumn.generationStrategy !== "uuid") ||
561
+ oldColumn.type !== newColumn.type ||
562
+ oldColumn.length !== newColumn.length ||
563
+ oldColumn.generatedType !== newColumn.generatedType) {
564
+ await this.dropColumn(table, oldColumn);
565
+ await this.addColumn(table, newColumn);
566
+ // update cloned table
567
+ clonedTable = table.clone();
568
+ }
569
+ else {
570
+ if (newColumn.name !== oldColumn.name) {
571
+ // We don't change any column properties, just rename it.
572
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${oldColumn.name}\` \`${newColumn.name}\` ${this.buildCreateColumnSql(oldColumn, true, true)}`));
573
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${newColumn.name}\` \`${oldColumn.name}\` ${this.buildCreateColumnSql(oldColumn, true, true)}`));
574
+ // rename index constraints
575
+ clonedTable.findColumnIndices(oldColumn).forEach((index) => {
576
+ // build new constraint name
577
+ index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
578
+ index.columnNames.push(newColumn.name);
579
+ const columnNames = index.columnNames
580
+ .map((column) => `\`${column}\``)
581
+ .join(", ");
582
+ const newIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
583
+ // build queries
584
+ let indexType = "";
585
+ if (index.isUnique)
586
+ indexType += "UNIQUE ";
587
+ if (index.isSpatial)
588
+ indexType += "SPATIAL ";
589
+ if (index.isFulltext)
590
+ indexType += "FULLTEXT ";
591
+ const indexParser = index.isFulltext && index.parser
592
+ ? ` WITH PARSER ${index.parser}`
593
+ : "";
594
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${index.name}\`, ADD ${indexType}INDEX \`${newIndexName}\` (${columnNames})${indexParser}`));
595
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${newIndexName}\`, ADD ${indexType}INDEX \`${index.name}\` (${columnNames})${indexParser}`));
596
+ // replace constraint name
597
+ index.name = newIndexName;
598
+ });
599
+ // rename foreign key constraints
600
+ clonedTable
601
+ .findColumnForeignKeys(oldColumn)
602
+ .forEach((foreignKey) => {
603
+ // build new constraint name
604
+ foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
605
+ foreignKey.columnNames.push(newColumn.name);
606
+ const columnNames = foreignKey.columnNames
607
+ .map((column) => `\`${column}\``)
608
+ .join(", ");
609
+ const referencedColumnNames = foreignKey.referencedColumnNames
610
+ .map((column) => `\`${column}\``)
611
+ .join(",");
612
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
613
+ // build queries
614
+ let up = `ALTER TABLE ${this.escapePath(table)} DROP FOREIGN KEY \`${foreignKey.name}\`, ADD CONSTRAINT \`${newForeignKeyName}\` FOREIGN KEY (${columnNames}) ` +
615
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
616
+ if (foreignKey.onDelete)
617
+ up += ` ON DELETE ${foreignKey.onDelete}`;
618
+ if (foreignKey.onUpdate)
619
+ up += ` ON UPDATE ${foreignKey.onUpdate}`;
620
+ let down = `ALTER TABLE ${this.escapePath(table)} DROP FOREIGN KEY \`${newForeignKeyName}\`, ADD CONSTRAINT \`${foreignKey.name}\` FOREIGN KEY (${columnNames}) ` +
621
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
622
+ if (foreignKey.onDelete)
623
+ down += ` ON DELETE ${foreignKey.onDelete}`;
624
+ if (foreignKey.onUpdate)
625
+ down += ` ON UPDATE ${foreignKey.onUpdate}`;
626
+ upQueries.push(new Query(up));
627
+ downQueries.push(new Query(down));
628
+ // replace constraint name
629
+ foreignKey.name = newForeignKeyName;
630
+ });
631
+ // rename old column in the Table object
632
+ const oldTableColumn = clonedTable.columns.find((column) => column.name === oldColumn.name);
633
+ clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
634
+ oldColumn.name = newColumn.name;
635
+ }
636
+ if (this.isColumnChanged(oldColumn, newColumn, true, true)) {
637
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${oldColumn.name}\` ${this.buildCreateColumnSql(newColumn, true)}`));
638
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${newColumn.name}\` ${this.buildCreateColumnSql(oldColumn, true)}`));
639
+ }
640
+ if (newColumn.isPrimary !== oldColumn.isPrimary) {
641
+ // if table have generated column, we must drop AUTO_INCREMENT before changing primary constraints.
642
+ const generatedColumn = clonedTable.columns.find((column) => column.isGenerated &&
643
+ column.generationStrategy === "increment");
644
+ if (generatedColumn) {
645
+ const nonGeneratedColumn = generatedColumn.clone();
646
+ nonGeneratedColumn.isGenerated = false;
647
+ nonGeneratedColumn.generationStrategy = undefined;
648
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
649
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
887
650
  }
888
- });
889
- });
890
- };
651
+ const primaryColumns = clonedTable.primaryColumns;
652
+ // if primary column state changed, we must always drop existed constraint.
653
+ if (primaryColumns.length > 0) {
654
+ const columnNames = primaryColumns
655
+ .map((column) => `\`${column.name}\``)
656
+ .join(", ");
657
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
658
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
659
+ }
660
+ if (newColumn.isPrimary === true) {
661
+ primaryColumns.push(newColumn);
662
+ // update column in table
663
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
664
+ column.isPrimary = true;
665
+ const columnNames = primaryColumns
666
+ .map((column) => `\`${column.name}\``)
667
+ .join(", ");
668
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
669
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
670
+ }
671
+ else {
672
+ const primaryColumn = primaryColumns.find((c) => c.name === newColumn.name);
673
+ primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
674
+ // update column in table
675
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
676
+ column.isPrimary = false;
677
+ // if we have another primary keys, we must recreate constraint.
678
+ if (primaryColumns.length > 0) {
679
+ const columnNames = primaryColumns
680
+ .map((column) => `\`${column.name}\``)
681
+ .join(", ");
682
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
683
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
684
+ }
685
+ }
686
+ // if we have generated column, and we dropped AUTO_INCREMENT property before, we must bring it back
687
+ if (generatedColumn) {
688
+ const nonGeneratedColumn = generatedColumn.clone();
689
+ nonGeneratedColumn.isGenerated = false;
690
+ nonGeneratedColumn.generationStrategy = undefined;
691
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
692
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
693
+ }
694
+ }
695
+ if (newColumn.isUnique !== oldColumn.isUnique) {
696
+ if (newColumn.isUnique === true) {
697
+ const uniqueIndex = new TableIndex({
698
+ name: this.connection.namingStrategy.indexName(table, [
699
+ newColumn.name,
700
+ ]),
701
+ columnNames: [newColumn.name],
702
+ isUnique: true,
703
+ });
704
+ clonedTable.indices.push(uniqueIndex);
705
+ clonedTable.uniques.push(new TableUnique({
706
+ name: uniqueIndex.name,
707
+ columnNames: uniqueIndex.columnNames,
708
+ }));
709
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD UNIQUE INDEX \`${uniqueIndex.name}\` (\`${newColumn.name}\`)`));
710
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${uniqueIndex.name}\``));
711
+ }
712
+ else {
713
+ const uniqueIndex = clonedTable.indices.find((index) => {
714
+ return (index.columnNames.length === 1 &&
715
+ index.isUnique === true &&
716
+ !!index.columnNames.find((columnName) => columnName === newColumn.name));
717
+ });
718
+ clonedTable.indices.splice(clonedTable.indices.indexOf(uniqueIndex), 1);
719
+ const tableUnique = clonedTable.uniques.find((unique) => unique.name === uniqueIndex.name);
720
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(tableUnique), 1);
721
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${uniqueIndex.name}\``));
722
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD UNIQUE INDEX \`${uniqueIndex.name}\` (\`${newColumn.name}\`)`));
723
+ }
724
+ }
725
+ }
726
+ await this.executeQueries(upQueries, downQueries);
727
+ this.replaceCachedTable(table, clonedTable);
728
+ }
891
729
  /**
892
730
  * Changes a column in the table.
893
731
  */
894
- MysqlQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
895
- return tslib_1.__awaiter(this, void 0, void 0, function () {
896
- var _this = this;
897
- return tslib_1.__generator(this, function (_a) {
898
- switch (_a.label) {
899
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(changedColumns, function (changedColumn) { return _this.changeColumn(tableOrName, changedColumn.oldColumn, changedColumn.newColumn); })];
900
- case 1:
901
- _a.sent();
902
- return [2 /*return*/];
903
- }
904
- });
905
- });
906
- };
732
+ async changeColumns(tableOrName, changedColumns) {
733
+ for (const { oldColumn, newColumn } of changedColumns) {
734
+ await this.changeColumn(tableOrName, oldColumn, newColumn);
735
+ }
736
+ }
907
737
  /**
908
738
  * Drops column in the table.
909
739
  */
910
- MysqlQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {
911
- return tslib_1.__awaiter(this, void 0, void 0, function () {
912
- var table, _a, column, clonedTable, upQueries, downQueries, generatedColumn, nonGeneratedColumn, columnNames, tableColumn, columnNames_1, nonGeneratedColumn, columnIndex, uniqueName_1, foundUnique, indexName_1, foundIndex;
913
- return tslib_1.__generator(this, function (_b) {
914
- switch (_b.label) {
915
- case 0:
916
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
917
- _a = tableOrName;
918
- return [3 /*break*/, 3];
919
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
920
- case 2:
921
- _a = _b.sent();
922
- _b.label = 3;
923
- case 3:
924
- table = _a;
925
- column = columnOrName instanceof TableColumn ? columnOrName : table.findColumnByName(columnOrName);
926
- if (!column)
927
- throw new Error("Column \"" + columnOrName + "\" was not found in table \"" + table.name + "\"");
928
- clonedTable = table.clone();
929
- upQueries = [];
930
- downQueries = [];
931
- // drop primary key constraint
932
- if (column.isPrimary) {
933
- generatedColumn = clonedTable.columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
934
- if (generatedColumn) {
935
- nonGeneratedColumn = generatedColumn.clone();
936
- nonGeneratedColumn.isGenerated = false;
937
- nonGeneratedColumn.generationStrategy = undefined;
938
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
939
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
940
- }
941
- columnNames = clonedTable.primaryColumns.map(function (primaryColumn) { return "`" + primaryColumn.name + "`"; }).join(", ");
942
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP PRIMARY KEY"));
943
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD PRIMARY KEY (" + columnNames + ")"));
944
- tableColumn = clonedTable.findColumnByName(column.name);
945
- tableColumn.isPrimary = false;
946
- // if primary key have multiple columns, we must recreate it without dropped column
947
- if (clonedTable.primaryColumns.length > 0) {
948
- columnNames_1 = clonedTable.primaryColumns.map(function (primaryColumn) { return "`" + primaryColumn.name + "`"; }).join(", ");
949
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD PRIMARY KEY (" + columnNames_1 + ")"));
950
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP PRIMARY KEY"));
951
- }
952
- // if we have generated column, and we dropped AUTO_INCREMENT property before, and this column is not current dropping column, we must bring it back
953
- if (generatedColumn && generatedColumn.name !== column.name) {
954
- nonGeneratedColumn = generatedColumn.clone();
955
- nonGeneratedColumn.isGenerated = false;
956
- nonGeneratedColumn.generationStrategy = undefined;
957
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
958
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
959
- }
960
- }
961
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
962
- if (columnIndex) {
963
- clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
964
- upQueries.push(this.dropIndexSql(table, columnIndex));
965
- downQueries.push(this.createIndexSql(table, columnIndex));
966
- }
967
- else if (column.isUnique) {
968
- uniqueName_1 = this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]);
969
- foundUnique = clonedTable.uniques.find(function (unique) { return unique.name === uniqueName_1; });
970
- if (foundUnique)
971
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(foundUnique), 1);
972
- indexName_1 = this.connection.namingStrategy.indexName(table.name, [column.name]);
973
- foundIndex = clonedTable.indices.find(function (index) { return index.name === indexName_1; });
974
- if (foundIndex)
975
- clonedTable.indices.splice(clonedTable.indices.indexOf(foundIndex), 1);
976
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP INDEX `" + indexName_1 + "`"));
977
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD UNIQUE INDEX `" + indexName_1 + "` (`" + column.name + "`)"));
978
- }
979
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN `" + column.name + "`"));
980
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(column, true)));
981
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
982
- case 4:
983
- _b.sent();
984
- clonedTable.removeColumn(column);
985
- this.replaceCachedTable(table, clonedTable);
986
- return [2 /*return*/];
987
- }
988
- });
989
- });
990
- };
740
+ async dropColumn(tableOrName, columnOrName) {
741
+ const table = InstanceChecker.isTable(tableOrName)
742
+ ? tableOrName
743
+ : await this.getCachedTable(tableOrName);
744
+ const column = InstanceChecker.isTableColumn(columnOrName)
745
+ ? columnOrName
746
+ : table.findColumnByName(columnOrName);
747
+ if (!column)
748
+ throw new TypeORMError(`Column "${columnOrName}" was not found in table "${table.name}"`);
749
+ const clonedTable = table.clone();
750
+ const upQueries = [];
751
+ const downQueries = [];
752
+ // drop primary key constraint
753
+ if (column.isPrimary) {
754
+ // if table have generated column, we must drop AUTO_INCREMENT before changing primary constraints.
755
+ const generatedColumn = clonedTable.columns.find((column) => column.isGenerated &&
756
+ column.generationStrategy === "increment");
757
+ if (generatedColumn) {
758
+ const nonGeneratedColumn = generatedColumn.clone();
759
+ nonGeneratedColumn.isGenerated = false;
760
+ nonGeneratedColumn.generationStrategy = undefined;
761
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
762
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
763
+ }
764
+ // dropping primary key constraint
765
+ const columnNames = clonedTable.primaryColumns
766
+ .map((primaryColumn) => `\`${primaryColumn.name}\``)
767
+ .join(", ");
768
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP PRIMARY KEY`));
769
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD PRIMARY KEY (${columnNames})`));
770
+ // update column in table
771
+ const tableColumn = clonedTable.findColumnByName(column.name);
772
+ tableColumn.isPrimary = false;
773
+ // if primary key have multiple columns, we must recreate it without dropped column
774
+ if (clonedTable.primaryColumns.length > 0) {
775
+ const columnNames = clonedTable.primaryColumns
776
+ .map((primaryColumn) => `\`${primaryColumn.name}\``)
777
+ .join(", ");
778
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD PRIMARY KEY (${columnNames})`));
779
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP PRIMARY KEY`));
780
+ }
781
+ // if we have generated column, and we dropped AUTO_INCREMENT property before, and this column is not current dropping column, we must bring it back
782
+ if (generatedColumn && generatedColumn.name !== column.name) {
783
+ const nonGeneratedColumn = generatedColumn.clone();
784
+ nonGeneratedColumn.isGenerated = false;
785
+ nonGeneratedColumn.generationStrategy = undefined;
786
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
787
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
788
+ }
789
+ }
790
+ // drop column index
791
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
792
+ index.columnNames[0] === column.name);
793
+ if (columnIndex) {
794
+ clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
795
+ upQueries.push(this.dropIndexSql(table, columnIndex));
796
+ downQueries.push(this.createIndexSql(table, columnIndex));
797
+ }
798
+ else if (column.isUnique) {
799
+ // we splice constraints both from table uniques and indices.
800
+ const uniqueName = this.connection.namingStrategy.uniqueConstraintName(table, [
801
+ column.name,
802
+ ]);
803
+ const foundUnique = clonedTable.uniques.find((unique) => unique.name === uniqueName);
804
+ if (foundUnique)
805
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(foundUnique), 1);
806
+ const indexName = this.connection.namingStrategy.indexName(table, [
807
+ column.name,
808
+ ]);
809
+ const foundIndex = clonedTable.indices.find((index) => index.name === indexName);
810
+ if (foundIndex)
811
+ clonedTable.indices.splice(clonedTable.indices.indexOf(foundIndex), 1);
812
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${indexName}\``));
813
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD UNIQUE INDEX \`${indexName}\` (\`${column.name}\`)`));
814
+ }
815
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN \`${column.name}\``));
816
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(column, true)}`));
817
+ await this.executeQueries(upQueries, downQueries);
818
+ clonedTable.removeColumn(column);
819
+ this.replaceCachedTable(table, clonedTable);
820
+ }
991
821
  /**
992
822
  * Drops the columns in the table.
993
823
  */
994
- MysqlQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
995
- return tslib_1.__awaiter(this, void 0, void 0, function () {
996
- var _this = this;
997
- return tslib_1.__generator(this, function (_a) {
998
- switch (_a.label) {
999
- case 0: return [4 /*yield*/, PromiseUtils.runInSequence(columns, function (column) { return _this.dropColumn(tableOrName, column); })];
1000
- case 1:
1001
- _a.sent();
1002
- return [2 /*return*/];
1003
- }
1004
- });
1005
- });
1006
- };
824
+ async dropColumns(tableOrName, columns) {
825
+ for (const column of columns) {
826
+ await this.dropColumn(tableOrName, column);
827
+ }
828
+ }
1007
829
  /**
1008
830
  * Creates a new primary key.
1009
831
  */
1010
- MysqlQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) {
1011
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1012
- var table, _a, clonedTable, up, down;
1013
- return tslib_1.__generator(this, function (_b) {
1014
- switch (_b.label) {
1015
- case 0:
1016
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1017
- _a = tableOrName;
1018
- return [3 /*break*/, 3];
1019
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1020
- case 2:
1021
- _a = _b.sent();
1022
- _b.label = 3;
1023
- case 3:
1024
- table = _a;
1025
- clonedTable = table.clone();
1026
- up = this.createPrimaryKeySql(table, columnNames);
1027
- down = this.dropPrimaryKeySql(table);
1028
- return [4 /*yield*/, this.executeQueries(up, down)];
1029
- case 4:
1030
- _b.sent();
1031
- clonedTable.columns.forEach(function (column) {
1032
- if (columnNames.find(function (columnName) { return columnName === column.name; }))
1033
- column.isPrimary = true;
1034
- });
1035
- this.replaceCachedTable(table, clonedTable);
1036
- return [2 /*return*/];
1037
- }
1038
- });
832
+ async createPrimaryKey(tableOrName, columnNames) {
833
+ const table = InstanceChecker.isTable(tableOrName)
834
+ ? tableOrName
835
+ : await this.getCachedTable(tableOrName);
836
+ const clonedTable = table.clone();
837
+ const up = this.createPrimaryKeySql(table, columnNames);
838
+ const down = this.dropPrimaryKeySql(table);
839
+ await this.executeQueries(up, down);
840
+ clonedTable.columns.forEach((column) => {
841
+ if (columnNames.find((columnName) => columnName === column.name))
842
+ column.isPrimary = true;
1039
843
  });
1040
- };
844
+ this.replaceCachedTable(table, clonedTable);
845
+ }
1041
846
  /**
1042
847
  * Updates composite primary keys.
1043
848
  */
1044
- MysqlQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) {
1045
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1046
- var table, _a, clonedTable, columnNames, upQueries, downQueries, generatedColumn, nonGeneratedColumn, primaryColumns, columnNames_2, columnNamesString, newOrExistGeneratedColumn, nonGeneratedColumn, changedGeneratedColumn;
1047
- return tslib_1.__generator(this, function (_b) {
1048
- switch (_b.label) {
1049
- case 0:
1050
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1051
- _a = tableOrName;
1052
- return [3 /*break*/, 3];
1053
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1054
- case 2:
1055
- _a = _b.sent();
1056
- _b.label = 3;
1057
- case 3:
1058
- table = _a;
1059
- clonedTable = table.clone();
1060
- columnNames = columns.map(function (column) { return column.name; });
1061
- upQueries = [];
1062
- downQueries = [];
1063
- generatedColumn = clonedTable.columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
1064
- if (generatedColumn) {
1065
- nonGeneratedColumn = generatedColumn.clone();
1066
- nonGeneratedColumn.isGenerated = false;
1067
- nonGeneratedColumn.generationStrategy = undefined;
1068
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
1069
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
1070
- }
1071
- primaryColumns = clonedTable.primaryColumns;
1072
- if (primaryColumns.length > 0) {
1073
- columnNames_2 = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
1074
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
1075
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames_2 + ")"));
1076
- }
1077
- // update columns in table.
1078
- clonedTable.columns
1079
- .filter(function (column) { return columnNames.indexOf(column.name) !== -1; })
1080
- .forEach(function (column) { return column.isPrimary = true; });
1081
- columnNamesString = columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1082
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNamesString + ")"));
1083
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
1084
- newOrExistGeneratedColumn = generatedColumn ? generatedColumn : columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
1085
- if (newOrExistGeneratedColumn) {
1086
- nonGeneratedColumn = newOrExistGeneratedColumn.clone();
1087
- nonGeneratedColumn.isGenerated = false;
1088
- nonGeneratedColumn.generationStrategy = undefined;
1089
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(newOrExistGeneratedColumn, true)));
1090
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + newOrExistGeneratedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
1091
- changedGeneratedColumn = clonedTable.columns.find(function (column) { return column.name === newOrExistGeneratedColumn.name; });
1092
- changedGeneratedColumn.isGenerated = true;
1093
- changedGeneratedColumn.generationStrategy = "increment";
1094
- }
1095
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1096
- case 4:
1097
- _b.sent();
1098
- this.replaceCachedTable(table, clonedTable);
1099
- return [2 /*return*/];
1100
- }
1101
- });
1102
- });
1103
- };
849
+ async updatePrimaryKeys(tableOrName, columns) {
850
+ const table = InstanceChecker.isTable(tableOrName)
851
+ ? tableOrName
852
+ : await this.getCachedTable(tableOrName);
853
+ const clonedTable = table.clone();
854
+ const columnNames = columns.map((column) => column.name);
855
+ const upQueries = [];
856
+ const downQueries = [];
857
+ // if table have generated column, we must drop AUTO_INCREMENT before changing primary constraints.
858
+ const generatedColumn = clonedTable.columns.find((column) => column.isGenerated && column.generationStrategy === "increment");
859
+ if (generatedColumn) {
860
+ const nonGeneratedColumn = generatedColumn.clone();
861
+ nonGeneratedColumn.isGenerated = false;
862
+ nonGeneratedColumn.generationStrategy = undefined;
863
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
864
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
865
+ }
866
+ // if table already have primary columns, we must drop them.
867
+ const primaryColumns = clonedTable.primaryColumns;
868
+ if (primaryColumns.length > 0) {
869
+ const columnNames = primaryColumns
870
+ .map((column) => `\`${column.name}\``)
871
+ .join(", ");
872
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
873
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
874
+ }
875
+ // update columns in table.
876
+ clonedTable.columns
877
+ .filter((column) => columnNames.indexOf(column.name) !== -1)
878
+ .forEach((column) => (column.isPrimary = true));
879
+ const columnNamesString = columnNames
880
+ .map((columnName) => `\`${columnName}\``)
881
+ .join(", ");
882
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNamesString})`));
883
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
884
+ // if we already have generated column or column is changed to generated, and we dropped AUTO_INCREMENT property before, we must bring it back
885
+ const newOrExistGeneratedColumn = generatedColumn
886
+ ? generatedColumn
887
+ : columns.find((column) => column.isGenerated &&
888
+ column.generationStrategy === "increment");
889
+ if (newOrExistGeneratedColumn) {
890
+ const nonGeneratedColumn = newOrExistGeneratedColumn.clone();
891
+ nonGeneratedColumn.isGenerated = false;
892
+ nonGeneratedColumn.generationStrategy = undefined;
893
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(newOrExistGeneratedColumn, true)}`));
894
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${newOrExistGeneratedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
895
+ // if column changed to generated, we must update it in table
896
+ const changedGeneratedColumn = clonedTable.columns.find((column) => column.name === newOrExistGeneratedColumn.name);
897
+ changedGeneratedColumn.isGenerated = true;
898
+ changedGeneratedColumn.generationStrategy = "increment";
899
+ }
900
+ await this.executeQueries(upQueries, downQueries);
901
+ this.replaceCachedTable(table, clonedTable);
902
+ }
1104
903
  /**
1105
904
  * Drops a primary key.
1106
905
  */
1107
- MysqlQueryRunner.prototype.dropPrimaryKey = function (tableOrName) {
1108
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1109
- var table, _a, up, down;
1110
- return tslib_1.__generator(this, function (_b) {
1111
- switch (_b.label) {
1112
- case 0:
1113
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1114
- _a = tableOrName;
1115
- return [3 /*break*/, 3];
1116
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1117
- case 2:
1118
- _a = _b.sent();
1119
- _b.label = 3;
1120
- case 3:
1121
- table = _a;
1122
- up = this.dropPrimaryKeySql(table);
1123
- down = this.createPrimaryKeySql(table, table.primaryColumns.map(function (column) { return column.name; }));
1124
- return [4 /*yield*/, this.executeQueries(up, down)];
1125
- case 4:
1126
- _b.sent();
1127
- table.primaryColumns.forEach(function (column) {
1128
- column.isPrimary = false;
1129
- });
1130
- return [2 /*return*/];
1131
- }
1132
- });
906
+ async dropPrimaryKey(tableOrName) {
907
+ const table = InstanceChecker.isTable(tableOrName)
908
+ ? tableOrName
909
+ : await this.getCachedTable(tableOrName);
910
+ const up = this.dropPrimaryKeySql(table);
911
+ const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
912
+ await this.executeQueries(up, down);
913
+ table.primaryColumns.forEach((column) => {
914
+ column.isPrimary = false;
1133
915
  });
1134
- };
916
+ }
1135
917
  /**
1136
918
  * Creates a new unique constraint.
1137
919
  */
1138
- MysqlQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) {
1139
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1140
- return tslib_1.__generator(this, function (_a) {
1141
- throw new Error("MySql does not support unique constraints. Use unique index instead.");
1142
- });
1143
- });
1144
- };
920
+ async createUniqueConstraint(tableOrName, uniqueConstraint) {
921
+ throw new TypeORMError(`MySql does not support unique constraints. Use unique index instead.`);
922
+ }
1145
923
  /**
1146
924
  * Creates a new unique constraints.
1147
925
  */
1148
- MysqlQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
1149
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1150
- return tslib_1.__generator(this, function (_a) {
1151
- throw new Error("MySql does not support unique constraints. Use unique index instead.");
1152
- });
1153
- });
1154
- };
926
+ async createUniqueConstraints(tableOrName, uniqueConstraints) {
927
+ throw new TypeORMError(`MySql does not support unique constraints. Use unique index instead.`);
928
+ }
1155
929
  /**
1156
930
  * Drops an unique constraint.
1157
931
  */
1158
- MysqlQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) {
1159
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1160
- return tslib_1.__generator(this, function (_a) {
1161
- throw new Error("MySql does not support unique constraints. Use unique index instead.");
1162
- });
1163
- });
1164
- };
932
+ async dropUniqueConstraint(tableOrName, uniqueOrName) {
933
+ throw new TypeORMError(`MySql does not support unique constraints. Use unique index instead.`);
934
+ }
1165
935
  /**
1166
936
  * Drops an unique constraints.
1167
937
  */
1168
- MysqlQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
1169
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1170
- return tslib_1.__generator(this, function (_a) {
1171
- throw new Error("MySql does not support unique constraints. Use unique index instead.");
1172
- });
1173
- });
1174
- };
938
+ async dropUniqueConstraints(tableOrName, uniqueConstraints) {
939
+ throw new TypeORMError(`MySql does not support unique constraints. Use unique index instead.`);
940
+ }
1175
941
  /**
1176
942
  * Creates a new check constraint.
1177
943
  */
1178
- MysqlQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) {
1179
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1180
- return tslib_1.__generator(this, function (_a) {
1181
- throw new Error("MySql does not support check constraints.");
1182
- });
1183
- });
1184
- };
944
+ async createCheckConstraint(tableOrName, checkConstraint) {
945
+ throw new TypeORMError(`MySql does not support check constraints.`);
946
+ }
1185
947
  /**
1186
948
  * Creates a new check constraints.
1187
949
  */
1188
- MysqlQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) {
1189
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1190
- return tslib_1.__generator(this, function (_a) {
1191
- throw new Error("MySql does not support check constraints.");
1192
- });
1193
- });
1194
- };
950
+ async createCheckConstraints(tableOrName, checkConstraints) {
951
+ throw new TypeORMError(`MySql does not support check constraints.`);
952
+ }
1195
953
  /**
1196
954
  * Drops check constraint.
1197
955
  */
1198
- MysqlQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) {
1199
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1200
- return tslib_1.__generator(this, function (_a) {
1201
- throw new Error("MySql does not support check constraints.");
1202
- });
1203
- });
1204
- };
956
+ async dropCheckConstraint(tableOrName, checkOrName) {
957
+ throw new TypeORMError(`MySql does not support check constraints.`);
958
+ }
1205
959
  /**
1206
960
  * Drops check constraints.
1207
961
  */
1208
- MysqlQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) {
1209
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1210
- return tslib_1.__generator(this, function (_a) {
1211
- throw new Error("MySql does not support check constraints.");
1212
- });
1213
- });
1214
- };
962
+ async dropCheckConstraints(tableOrName, checkConstraints) {
963
+ throw new TypeORMError(`MySql does not support check constraints.`);
964
+ }
1215
965
  /**
1216
966
  * Creates a new exclusion constraint.
1217
967
  */
1218
- MysqlQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) {
1219
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1220
- return tslib_1.__generator(this, function (_a) {
1221
- throw new Error("MySql does not support exclusion constraints.");
1222
- });
1223
- });
1224
- };
968
+ async createExclusionConstraint(tableOrName, exclusionConstraint) {
969
+ throw new TypeORMError(`MySql does not support exclusion constraints.`);
970
+ }
1225
971
  /**
1226
972
  * Creates a new exclusion constraints.
1227
973
  */
1228
- MysqlQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) {
1229
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1230
- return tslib_1.__generator(this, function (_a) {
1231
- throw new Error("MySql does not support exclusion constraints.");
1232
- });
1233
- });
1234
- };
974
+ async createExclusionConstraints(tableOrName, exclusionConstraints) {
975
+ throw new TypeORMError(`MySql does not support exclusion constraints.`);
976
+ }
1235
977
  /**
1236
978
  * Drops exclusion constraint.
1237
979
  */
1238
- MysqlQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) {
1239
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1240
- return tslib_1.__generator(this, function (_a) {
1241
- throw new Error("MySql does not support exclusion constraints.");
1242
- });
1243
- });
1244
- };
980
+ async dropExclusionConstraint(tableOrName, exclusionOrName) {
981
+ throw new TypeORMError(`MySql does not support exclusion constraints.`);
982
+ }
1245
983
  /**
1246
984
  * Drops exclusion constraints.
1247
985
  */
1248
- MysqlQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) {
1249
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1250
- return tslib_1.__generator(this, function (_a) {
1251
- throw new Error("MySql does not support exclusion constraints.");
1252
- });
1253
- });
1254
- };
986
+ async dropExclusionConstraints(tableOrName, exclusionConstraints) {
987
+ throw new TypeORMError(`MySql does not support exclusion constraints.`);
988
+ }
1255
989
  /**
1256
990
  * Creates a new foreign key.
1257
991
  */
1258
- MysqlQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) {
1259
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1260
- var table, _a, up, down;
1261
- return tslib_1.__generator(this, function (_b) {
1262
- switch (_b.label) {
1263
- case 0:
1264
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1265
- _a = tableOrName;
1266
- return [3 /*break*/, 3];
1267
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1268
- case 2:
1269
- _a = _b.sent();
1270
- _b.label = 3;
1271
- case 3:
1272
- table = _a;
1273
- // new FK may be passed without name. In this case we generate FK name manually.
1274
- if (!foreignKey.name)
1275
- foreignKey.name = this.connection.namingStrategy.foreignKeyName(table.name, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
1276
- up = this.createForeignKeySql(table, foreignKey);
1277
- down = this.dropForeignKeySql(table, foreignKey);
1278
- return [4 /*yield*/, this.executeQueries(up, down)];
1279
- case 4:
1280
- _b.sent();
1281
- table.addForeignKey(foreignKey);
1282
- return [2 /*return*/];
1283
- }
1284
- });
1285
- });
1286
- };
992
+ async createForeignKey(tableOrName, foreignKey) {
993
+ const table = InstanceChecker.isTable(tableOrName)
994
+ ? tableOrName
995
+ : await this.getCachedTable(tableOrName);
996
+ // new FK may be passed without name. In this case we generate FK name manually.
997
+ if (!foreignKey.name)
998
+ foreignKey.name = this.connection.namingStrategy.foreignKeyName(table, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
999
+ const up = this.createForeignKeySql(table, foreignKey);
1000
+ const down = this.dropForeignKeySql(table, foreignKey);
1001
+ await this.executeQueries(up, down);
1002
+ table.addForeignKey(foreignKey);
1003
+ }
1287
1004
  /**
1288
1005
  * Creates a new foreign keys.
1289
1006
  */
1290
- MysqlQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
1291
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1292
- var promises;
1293
- var _this = this;
1294
- return tslib_1.__generator(this, function (_a) {
1295
- switch (_a.label) {
1296
- case 0:
1297
- promises = foreignKeys.map(function (foreignKey) { return _this.createForeignKey(tableOrName, foreignKey); });
1298
- return [4 /*yield*/, Promise.all(promises)];
1299
- case 1:
1300
- _a.sent();
1301
- return [2 /*return*/];
1302
- }
1303
- });
1304
- });
1305
- };
1007
+ async createForeignKeys(tableOrName, foreignKeys) {
1008
+ const promises = foreignKeys.map((foreignKey) => this.createForeignKey(tableOrName, foreignKey));
1009
+ await Promise.all(promises);
1010
+ }
1306
1011
  /**
1307
1012
  * Drops a foreign key.
1308
1013
  */
1309
- MysqlQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) {
1310
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1311
- var table, _a, foreignKey, up, down;
1312
- return tslib_1.__generator(this, function (_b) {
1313
- switch (_b.label) {
1314
- case 0:
1315
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1316
- _a = tableOrName;
1317
- return [3 /*break*/, 3];
1318
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1319
- case 2:
1320
- _a = _b.sent();
1321
- _b.label = 3;
1322
- case 3:
1323
- table = _a;
1324
- foreignKey = foreignKeyOrName instanceof TableForeignKey ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; });
1325
- if (!foreignKey)
1326
- throw new Error("Supplied foreign key was not found in table " + table.name);
1327
- up = this.dropForeignKeySql(table, foreignKey);
1328
- down = this.createForeignKeySql(table, foreignKey);
1329
- return [4 /*yield*/, this.executeQueries(up, down)];
1330
- case 4:
1331
- _b.sent();
1332
- table.removeForeignKey(foreignKey);
1333
- return [2 /*return*/];
1334
- }
1335
- });
1336
- });
1337
- };
1014
+ async dropForeignKey(tableOrName, foreignKeyOrName) {
1015
+ const table = InstanceChecker.isTable(tableOrName)
1016
+ ? tableOrName
1017
+ : await this.getCachedTable(tableOrName);
1018
+ const foreignKey = InstanceChecker.isTableForeignKey(foreignKeyOrName)
1019
+ ? foreignKeyOrName
1020
+ : table.foreignKeys.find((fk) => fk.name === foreignKeyOrName);
1021
+ if (!foreignKey)
1022
+ throw new TypeORMError(`Supplied foreign key was not found in table ${table.name}`);
1023
+ const up = this.dropForeignKeySql(table, foreignKey);
1024
+ const down = this.createForeignKeySql(table, foreignKey);
1025
+ await this.executeQueries(up, down);
1026
+ table.removeForeignKey(foreignKey);
1027
+ }
1338
1028
  /**
1339
1029
  * Drops a foreign keys from the table.
1340
1030
  */
1341
- MysqlQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
1342
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1343
- var promises;
1344
- var _this = this;
1345
- return tslib_1.__generator(this, function (_a) {
1346
- switch (_a.label) {
1347
- case 0:
1348
- promises = foreignKeys.map(function (foreignKey) { return _this.dropForeignKey(tableOrName, foreignKey); });
1349
- return [4 /*yield*/, Promise.all(promises)];
1350
- case 1:
1351
- _a.sent();
1352
- return [2 /*return*/];
1353
- }
1354
- });
1355
- });
1356
- };
1031
+ async dropForeignKeys(tableOrName, foreignKeys) {
1032
+ const promises = foreignKeys.map((foreignKey) => this.dropForeignKey(tableOrName, foreignKey));
1033
+ await Promise.all(promises);
1034
+ }
1357
1035
  /**
1358
1036
  * Creates a new index.
1359
1037
  */
1360
- MysqlQueryRunner.prototype.createIndex = function (tableOrName, index) {
1361
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1362
- var table, _a, up, down;
1363
- return tslib_1.__generator(this, function (_b) {
1364
- switch (_b.label) {
1365
- case 0:
1366
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1367
- _a = tableOrName;
1368
- return [3 /*break*/, 3];
1369
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1370
- case 2:
1371
- _a = _b.sent();
1372
- _b.label = 3;
1373
- case 3:
1374
- table = _a;
1375
- // new index may be passed without name. In this case we generate index name manually.
1376
- if (!index.name)
1377
- index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
1378
- up = this.createIndexSql(table, index);
1379
- down = this.dropIndexSql(table, index);
1380
- return [4 /*yield*/, this.executeQueries(up, down)];
1381
- case 4:
1382
- _b.sent();
1383
- table.addIndex(index, true);
1384
- return [2 /*return*/];
1385
- }
1386
- });
1387
- });
1388
- };
1038
+ async createIndex(tableOrName, index) {
1039
+ const table = InstanceChecker.isTable(tableOrName)
1040
+ ? tableOrName
1041
+ : await this.getCachedTable(tableOrName);
1042
+ // new index may be passed without name. In this case we generate index name manually.
1043
+ if (!index.name)
1044
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
1045
+ const up = this.createIndexSql(table, index);
1046
+ const down = this.dropIndexSql(table, index);
1047
+ await this.executeQueries(up, down);
1048
+ table.addIndex(index, true);
1049
+ }
1389
1050
  /**
1390
1051
  * Creates a new indices
1391
1052
  */
1392
- MysqlQueryRunner.prototype.createIndices = function (tableOrName, indices) {
1393
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1394
- var promises;
1395
- var _this = this;
1396
- return tslib_1.__generator(this, function (_a) {
1397
- switch (_a.label) {
1398
- case 0:
1399
- promises = indices.map(function (index) { return _this.createIndex(tableOrName, index); });
1400
- return [4 /*yield*/, Promise.all(promises)];
1401
- case 1:
1402
- _a.sent();
1403
- return [2 /*return*/];
1404
- }
1405
- });
1406
- });
1407
- };
1053
+ async createIndices(tableOrName, indices) {
1054
+ const promises = indices.map((index) => this.createIndex(tableOrName, index));
1055
+ await Promise.all(promises);
1056
+ }
1408
1057
  /**
1409
1058
  * Drops an index.
1410
1059
  */
1411
- MysqlQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) {
1412
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1413
- var table, _a, index, up, down;
1414
- return tslib_1.__generator(this, function (_b) {
1415
- switch (_b.label) {
1416
- case 0:
1417
- if (!(tableOrName instanceof Table)) return [3 /*break*/, 1];
1418
- _a = tableOrName;
1419
- return [3 /*break*/, 3];
1420
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1421
- case 2:
1422
- _a = _b.sent();
1423
- _b.label = 3;
1424
- case 3:
1425
- table = _a;
1426
- index = indexOrName instanceof TableIndex ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; });
1427
- if (!index)
1428
- throw new Error("Supplied index was not found in table " + table.name);
1429
- up = this.dropIndexSql(table, index);
1430
- down = this.createIndexSql(table, index);
1431
- return [4 /*yield*/, this.executeQueries(up, down)];
1432
- case 4:
1433
- _b.sent();
1434
- table.removeIndex(index, true);
1435
- return [2 /*return*/];
1436
- }
1437
- });
1438
- });
1439
- };
1060
+ async dropIndex(tableOrName, indexOrName) {
1061
+ const table = InstanceChecker.isTable(tableOrName)
1062
+ ? tableOrName
1063
+ : await this.getCachedTable(tableOrName);
1064
+ const index = InstanceChecker.isTableIndex(indexOrName)
1065
+ ? indexOrName
1066
+ : table.indices.find((i) => i.name === indexOrName);
1067
+ if (!index)
1068
+ throw new TypeORMError(`Supplied index ${indexOrName} was not found in table ${table.name}`);
1069
+ const up = this.dropIndexSql(table, index);
1070
+ const down = this.createIndexSql(table, index);
1071
+ await this.executeQueries(up, down);
1072
+ table.removeIndex(index, true);
1073
+ }
1440
1074
  /**
1441
1075
  * Drops an indices from the table.
1442
1076
  */
1443
- MysqlQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
1444
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1445
- var promises;
1446
- var _this = this;
1447
- return tslib_1.__generator(this, function (_a) {
1448
- switch (_a.label) {
1449
- case 0:
1450
- promises = indices.map(function (index) { return _this.dropIndex(tableOrName, index); });
1451
- return [4 /*yield*/, Promise.all(promises)];
1452
- case 1:
1453
- _a.sent();
1454
- return [2 /*return*/];
1455
- }
1456
- });
1457
- });
1458
- };
1077
+ async dropIndices(tableOrName, indices) {
1078
+ const promises = indices.map((index) => this.dropIndex(tableOrName, index));
1079
+ await Promise.all(promises);
1080
+ }
1459
1081
  /**
1460
1082
  * Clears all table contents.
1461
1083
  * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.
1462
1084
  */
1463
- MysqlQueryRunner.prototype.clearTable = function (tableOrName) {
1464
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1465
- return tslib_1.__generator(this, function (_a) {
1466
- switch (_a.label) {
1467
- case 0: return [4 /*yield*/, this.query("TRUNCATE TABLE " + this.escapePath(tableOrName))];
1468
- case 1:
1469
- _a.sent();
1470
- return [2 /*return*/];
1471
- }
1472
- });
1473
- });
1474
- };
1085
+ async clearTable(tableOrName) {
1086
+ await this.query(`TRUNCATE TABLE ${this.escapePath(tableOrName)}`);
1087
+ }
1475
1088
  /**
1476
1089
  * Removes all tables from the currently connected database.
1477
1090
  * Be careful using this method and avoid using it in production or migrations
1478
1091
  * (because it can clear all your database).
1479
1092
  */
1480
- MysqlQueryRunner.prototype.clearDatabase = function (database) {
1481
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1482
- var dbName, isDatabaseExist, selectViewDropsQuery, dropViewQueries, disableForeignKeysCheckQuery, dropTablesQuery, enableForeignKeysCheckQuery, dropQueries, error_1, rollbackError_1;
1483
- var _this = this;
1484
- return tslib_1.__generator(this, function (_a) {
1485
- switch (_a.label) {
1486
- case 0:
1487
- dbName = database ? database : this.driver.database;
1488
- if (!dbName) return [3 /*break*/, 2];
1489
- return [4 /*yield*/, this.hasDatabase(dbName)];
1490
- case 1:
1491
- isDatabaseExist = _a.sent();
1492
- if (!isDatabaseExist)
1493
- return [2 /*return*/, Promise.resolve()];
1494
- return [3 /*break*/, 3];
1495
- case 2: throw new Error("Can not clear database. No database is specified");
1496
- case 3: return [4 /*yield*/, this.startTransaction()];
1497
- case 4:
1498
- _a.sent();
1499
- _a.label = 5;
1500
- case 5:
1501
- _a.trys.push([5, 13, , 18]);
1502
- selectViewDropsQuery = "SELECT concat('DROP VIEW IF EXISTS `', table_schema, '`.`', table_name, '`') AS `query` FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = '" + dbName + "'";
1503
- return [4 /*yield*/, this.query(selectViewDropsQuery)];
1504
- case 6:
1505
- dropViewQueries = _a.sent();
1506
- return [4 /*yield*/, Promise.all(dropViewQueries.map(function (q) { return _this.query(q["query"]); }))];
1507
- case 7:
1508
- _a.sent();
1509
- disableForeignKeysCheckQuery = "SET FOREIGN_KEY_CHECKS = 0;";
1510
- dropTablesQuery = "SELECT concat('DROP TABLE IF EXISTS `', table_schema, '`.`', table_name, '`') AS `query` FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_SCHEMA` = '" + dbName + "'";
1511
- enableForeignKeysCheckQuery = "SET FOREIGN_KEY_CHECKS = 1;";
1512
- return [4 /*yield*/, this.query(disableForeignKeysCheckQuery)];
1513
- case 8:
1514
- _a.sent();
1515
- return [4 /*yield*/, this.query(dropTablesQuery)];
1516
- case 9:
1517
- dropQueries = _a.sent();
1518
- return [4 /*yield*/, Promise.all(dropQueries.map(function (query) { return _this.query(query["query"]); }))];
1519
- case 10:
1520
- _a.sent();
1521
- return [4 /*yield*/, this.query(enableForeignKeysCheckQuery)];
1522
- case 11:
1523
- _a.sent();
1524
- return [4 /*yield*/, this.commitTransaction()];
1525
- case 12:
1526
- _a.sent();
1527
- return [3 /*break*/, 18];
1528
- case 13:
1529
- error_1 = _a.sent();
1530
- _a.label = 14;
1531
- case 14:
1532
- _a.trys.push([14, 16, , 17]);
1533
- return [4 /*yield*/, this.rollbackTransaction()];
1534
- case 15:
1535
- _a.sent();
1536
- return [3 /*break*/, 17];
1537
- case 16:
1538
- rollbackError_1 = _a.sent();
1539
- return [3 /*break*/, 17];
1540
- case 17: throw error_1;
1541
- case 18: return [2 /*return*/];
1542
- }
1543
- });
1544
- });
1545
- };
1093
+ async clearDatabase(database) {
1094
+ const dbName = database ? database : this.driver.database;
1095
+ if (dbName) {
1096
+ const isDatabaseExist = await this.hasDatabase(dbName);
1097
+ if (!isDatabaseExist)
1098
+ return Promise.resolve();
1099
+ }
1100
+ else {
1101
+ throw new TypeORMError(`Can not clear database. No database is specified`);
1102
+ }
1103
+ const isAnotherTransactionActive = this.isTransactionActive;
1104
+ if (!isAnotherTransactionActive)
1105
+ await this.startTransaction();
1106
+ try {
1107
+ const selectViewDropsQuery = `SELECT concat('DROP VIEW IF EXISTS \`', table_schema, '\`.\`', table_name, '\`') AS \`query\` FROM \`INFORMATION_SCHEMA\`.\`VIEWS\` WHERE \`TABLE_SCHEMA\` = '${dbName}'`;
1108
+ const dropViewQueries = await this.query(selectViewDropsQuery);
1109
+ await Promise.all(dropViewQueries.map((q) => this.query(q["query"])));
1110
+ const disableForeignKeysCheckQuery = `SET FOREIGN_KEY_CHECKS = 0;`;
1111
+ const dropTablesQuery = `SELECT concat('DROP TABLE IF EXISTS \`', table_schema, '\`.\`', table_name, '\`') AS \`query\` FROM \`INFORMATION_SCHEMA\`.\`TABLES\` WHERE \`TABLE_SCHEMA\` = '${dbName}'`;
1112
+ const enableForeignKeysCheckQuery = `SET FOREIGN_KEY_CHECKS = 1;`;
1113
+ await this.query(disableForeignKeysCheckQuery);
1114
+ const dropQueries = await this.query(dropTablesQuery);
1115
+ await Promise.all(dropQueries.map((query) => this.query(query["query"])));
1116
+ await this.query(enableForeignKeysCheckQuery);
1117
+ if (!isAnotherTransactionActive)
1118
+ await this.commitTransaction();
1119
+ }
1120
+ catch (error) {
1121
+ try {
1122
+ // we throw original error even if rollback thrown an error
1123
+ if (!isAnotherTransactionActive)
1124
+ await this.rollbackTransaction();
1125
+ }
1126
+ catch (rollbackError) { }
1127
+ throw error;
1128
+ }
1129
+ }
1546
1130
  // -------------------------------------------------------------------------
1547
1131
  // Protected Methods
1548
1132
  // -------------------------------------------------------------------------
1549
- /**
1550
- * Returns current database.
1551
- */
1552
- MysqlQueryRunner.prototype.getCurrentDatabase = function () {
1553
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1554
- var currentDBQuery;
1555
- return tslib_1.__generator(this, function (_a) {
1556
- switch (_a.label) {
1557
- case 0: return [4 /*yield*/, this.query("SELECT DATABASE() AS `db_name`")];
1558
- case 1:
1559
- currentDBQuery = _a.sent();
1560
- return [2 /*return*/, currentDBQuery[0]["db_name"]];
1561
- }
1562
- });
1563
- });
1564
- };
1565
- MysqlQueryRunner.prototype.loadViews = function (viewNames) {
1566
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1567
- var hasTable, currentDatabase, viewsCondition, query, dbViews;
1568
- var _this = this;
1569
- return tslib_1.__generator(this, function (_a) {
1570
- switch (_a.label) {
1571
- case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())];
1572
- case 1:
1573
- hasTable = _a.sent();
1574
- if (!hasTable)
1575
- return [2 /*return*/, Promise.resolve([])];
1576
- return [4 /*yield*/, this.getCurrentDatabase()];
1577
- case 2:
1578
- currentDatabase = _a.sent();
1579
- viewsCondition = viewNames.map(function (tableName) {
1580
- var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
1581
- if (!name) {
1582
- name = database;
1583
- database = _this.driver.database || currentDatabase;
1584
- }
1585
- return "(`t`.`schema` = '" + database + "' AND `t`.`name` = '" + name + "')";
1586
- }).join(" OR ");
1587
- query = "SELECT `t`.*, `v`.`check_option` FROM " + this.escapePath(this.getTypeormMetadataTableName()) + " `t` " +
1588
- ("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 + ")" : ""));
1589
- return [4 /*yield*/, this.query(query)];
1590
- case 3:
1591
- dbViews = _a.sent();
1592
- return [2 /*return*/, dbViews.map(function (dbView) {
1593
- var view = new View();
1594
- var db = dbView["schema"] === currentDatabase ? undefined : dbView["schema"];
1595
- view.name = _this.driver.buildTableName(dbView["name"], undefined, db);
1596
- view.expression = dbView["value"];
1597
- return view;
1598
- })];
1599
- }
1600
- });
1133
+ async loadViews(viewNames) {
1134
+ const hasTable = await this.hasTable(this.getTypeormMetadataTableName());
1135
+ if (!hasTable) {
1136
+ return [];
1137
+ }
1138
+ if (!viewNames) {
1139
+ viewNames = [];
1140
+ }
1141
+ const currentDatabase = await this.getCurrentDatabase();
1142
+ const viewsCondition = viewNames
1143
+ .map((tableName) => {
1144
+ let { database, tableName: name } = this.driver.parseTableName(tableName);
1145
+ if (!database) {
1146
+ database = currentDatabase;
1147
+ }
1148
+ return `(\`t\`.\`schema\` = '${database}' AND \`t\`.\`name\` = '${name}')`;
1149
+ })
1150
+ .join(" OR ");
1151
+ const query = `SELECT \`t\`.*, \`v\`.\`check_option\` FROM ${this.escapePath(this.getTypeormMetadataTableName())} \`t\` ` +
1152
+ `INNER JOIN \`information_schema\`.\`views\` \`v\` ON \`v\`.\`table_schema\` = \`t\`.\`schema\` AND \`v\`.\`table_name\` = \`t\`.\`name\` WHERE \`t\`.\`type\` = '${MetadataTableType.VIEW}' ${viewsCondition ? `AND (${viewsCondition})` : ""}`;
1153
+ const dbViews = await this.query(query);
1154
+ return dbViews.map((dbView) => {
1155
+ const view = new View();
1156
+ const db = dbView["schema"] === currentDatabase
1157
+ ? undefined
1158
+ : dbView["schema"];
1159
+ view.database = dbView["schema"];
1160
+ view.name = this.driver.buildTableName(dbView["name"], undefined, db);
1161
+ view.expression = dbView["value"];
1162
+ return view;
1601
1163
  });
1602
- };
1164
+ }
1603
1165
  /**
1604
1166
  * Loads all tables (with given names) from the database and creates a Table from them.
1605
1167
  */
1606
- MysqlQueryRunner.prototype.loadTables = function (tableNames) {
1607
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1608
- var currentDatabase, tablesCondition, tablesSql, columnsSql, primaryKeySql, collationsSql, indicesCondition, indicesSql, foreignKeysCondition, foreignKeysSql, _a, dbTables, dbColumns, dbPrimaryKeys, dbCollations, dbIndices, dbForeignKeys, isMariaDb, dbVersion;
1609
- var _this = this;
1610
- return tslib_1.__generator(this, function (_b) {
1611
- switch (_b.label) {
1612
- case 0:
1613
- // if no tables given then no need to proceed
1614
- if (!tableNames || !tableNames.length)
1615
- return [2 /*return*/, []];
1616
- return [4 /*yield*/, this.getCurrentDatabase()];
1617
- case 1:
1618
- currentDatabase = _b.sent();
1619
- tablesCondition = tableNames.map(function (tableName) {
1620
- var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
1621
- if (!name) {
1622
- name = database;
1623
- database = _this.driver.database || currentDatabase;
1624
- }
1625
- return "(`TABLE_SCHEMA` = '" + database + "' AND `TABLE_NAME` = '" + name + "')";
1626
- }).join(" OR ");
1627
- tablesSql = "SELECT * FROM `INFORMATION_SCHEMA`.`TABLES` WHERE " + tablesCondition;
1628
- columnsSql = "SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE " + tablesCondition;
1629
- primaryKeySql = "SELECT * FROM `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` = 'PRIMARY' AND (" + tablesCondition + ")";
1630
- collationsSql = "SELECT `SCHEMA_NAME`, `DEFAULT_CHARACTER_SET_NAME` as `CHARSET`, `DEFAULT_COLLATION_NAME` AS `COLLATION` FROM `INFORMATION_SCHEMA`.`SCHEMATA`";
1631
- indicesCondition = tableNames.map(function (tableName) {
1632
- var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
1633
- if (!name) {
1634
- name = database;
1635
- database = _this.driver.database || currentDatabase;
1636
- }
1637
- return "(`s`.`TABLE_SCHEMA` = '" + database + "' AND `s`.`TABLE_NAME` = '" + name + "')";
1638
- }).join(" OR ");
1639
- indicesSql = "SELECT `s`.* FROM `INFORMATION_SCHEMA`.`STATISTICS` `s` " +
1640
- "LEFT JOIN `INFORMATION_SCHEMA`.`REFERENTIAL_CONSTRAINTS` `rc` ON `s`.`INDEX_NAME` = `rc`.`CONSTRAINT_NAME` " +
1641
- ("WHERE (" + indicesCondition + ") AND `s`.`INDEX_NAME` != 'PRIMARY' AND `rc`.`CONSTRAINT_NAME` IS NULL");
1642
- foreignKeysCondition = tableNames.map(function (tableName) {
1643
- var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
1644
- if (!name) {
1645
- name = database;
1646
- database = _this.driver.database || currentDatabase;
1647
- }
1648
- return "(`kcu`.`TABLE_SCHEMA` = '" + database + "' AND `kcu`.`TABLE_NAME` = '" + name + "')";
1649
- }).join(" OR ");
1650
- foreignKeysSql = "SELECT `kcu`.`TABLE_SCHEMA`, `kcu`.`TABLE_NAME`, `kcu`.`CONSTRAINT_NAME`, `kcu`.`COLUMN_NAME`, `kcu`.`REFERENCED_TABLE_SCHEMA`, " +
1651
- "`kcu`.`REFERENCED_TABLE_NAME`, `kcu`.`REFERENCED_COLUMN_NAME`, `rc`.`DELETE_RULE` `ON_DELETE`, `rc`.`UPDATE_RULE` `ON_UPDATE` " +
1652
- "FROM `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` `kcu` " +
1653
- "INNER JOIN `INFORMATION_SCHEMA`.`REFERENTIAL_CONSTRAINTS` `rc` ON `rc`.`constraint_name` = `kcu`.`constraint_name` " +
1654
- "WHERE " + foreignKeysCondition;
1655
- return [4 /*yield*/, Promise.all([
1656
- this.query(tablesSql),
1657
- this.query(columnsSql),
1658
- this.query(primaryKeySql),
1659
- this.query(collationsSql),
1660
- this.query(indicesSql),
1661
- this.query(foreignKeysSql)
1662
- ])];
1663
- case 2:
1664
- _a = tslib_1.__read.apply(void 0, [_b.sent(), 6]), dbTables = _a[0], dbColumns = _a[1], dbPrimaryKeys = _a[2], dbCollations = _a[3], dbIndices = _a[4], dbForeignKeys = _a[5];
1665
- // if tables were not found in the db, no need to proceed
1666
- if (!dbTables.length)
1667
- return [2 /*return*/, []];
1668
- isMariaDb = this.driver.options.type === "mariadb";
1669
- return [4 /*yield*/, this.getVersion()];
1670
- case 3:
1671
- dbVersion = _b.sent();
1672
- // create tables for loaded tables
1673
- return [2 /*return*/, Promise.all(dbTables.map(function (dbTable) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
1674
- var table, dbCollation, defaultCollation, defaultCharset, db, tableFullName, tableForeignKeyConstraints, tableIndexConstraints;
1675
- var _this = this;
1676
- return tslib_1.__generator(this, function (_a) {
1677
- table = new Table();
1678
- dbCollation = dbCollations.find(function (coll) { return coll["SCHEMA_NAME"] === dbTable["TABLE_SCHEMA"]; });
1679
- defaultCollation = dbCollation["COLLATION"];
1680
- defaultCharset = dbCollation["CHARSET"];
1681
- db = dbTable["TABLE_SCHEMA"] === currentDatabase ? undefined : dbTable["TABLE_SCHEMA"];
1682
- table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], undefined, db);
1683
- tableFullName = this.driver.buildTableName(dbTable["TABLE_NAME"], undefined, dbTable["TABLE_SCHEMA"]);
1684
- // create columns from the loaded columns
1685
- table.columns = dbColumns
1686
- .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn["TABLE_NAME"], undefined, dbColumn["TABLE_SCHEMA"]) === tableFullName; })
1687
- .map(function (dbColumn) {
1688
- var columnUniqueIndex = dbIndices.find(function (dbIndex) {
1689
- var indexTableFullName = _this.driver.buildTableName(dbIndex["TABLE_NAME"], undefined, dbIndex["TABLE_SCHEMA"]);
1690
- if (indexTableFullName !== tableFullName) {
1691
- return false;
1692
- }
1693
- // Index is not for this column
1694
- if (dbIndex["COLUMN_NAME"] !== dbColumn["COLUMN_NAME"]) {
1695
- return false;
1696
- }
1697
- var nonUnique = parseInt(dbIndex["NON_UNIQUE"], 10);
1698
- return nonUnique === 0;
1699
- });
1700
- var tableMetadata = _this.connection.entityMetadatas.find(function (metadata) { return metadata.tablePath === table.name; });
1701
- var hasIgnoredIndex = columnUniqueIndex && tableMetadata && tableMetadata.indices
1702
- .some(function (index) { return index.name === columnUniqueIndex["INDEX_NAME"] && index.synchronize === false; });
1703
- var isConstraintComposite = columnUniqueIndex
1704
- ? !!dbIndices.find(function (dbIndex) { return dbIndex["INDEX_NAME"] === columnUniqueIndex["INDEX_NAME"] && dbIndex["COLUMN_NAME"] !== dbColumn["COLUMN_NAME"]; })
1705
- : false;
1706
- var tableColumn = new TableColumn();
1707
- tableColumn.name = dbColumn["COLUMN_NAME"];
1708
- tableColumn.type = dbColumn["DATA_TYPE"].toLowerCase();
1709
- if (dbColumn["COLUMN_DEFAULT"] === null
1710
- || dbColumn["COLUMN_DEFAULT"] === undefined
1711
- || (isMariaDb && dbColumn["COLUMN_DEFAULT"] === "NULL")) {
1712
- tableColumn.default = undefined;
1713
- }
1714
- else if (/^CURRENT_TIMESTAMP(\([0-9]*\))?$/i.test(dbColumn["COLUMN_DEFAULT"])) {
1715
- // New versions of MariaDB return expressions in lowercase. We need to set it in
1716
- // uppercase so the comparison in MysqlDriver#compareDefaultValues does not fail.
1717
- tableColumn.default = dbColumn["COLUMN_DEFAULT"].toUpperCase();
1718
- }
1719
- else if (isMariaDb && VersionUtils.isGreaterOrEqual(dbVersion, "10.2.7")) {
1720
- // MariaDB started adding quotes to literals in COLUMN_DEFAULT since version 10.2.7
1721
- // See https://mariadb.com/kb/en/library/information-schema-columns-table/
1722
- tableColumn.default = dbColumn["COLUMN_DEFAULT"];
1723
- }
1724
- else {
1725
- tableColumn.default = "'" + dbColumn["COLUMN_DEFAULT"] + "'";
1726
- }
1727
- if (dbColumn["EXTRA"].indexOf("on update") !== -1) {
1728
- tableColumn.onUpdate = dbColumn["EXTRA"].substring(dbColumn["EXTRA"].indexOf("on update") + 10);
1729
- }
1730
- if (dbColumn["GENERATION_EXPRESSION"]) {
1731
- tableColumn.asExpression = dbColumn["GENERATION_EXPRESSION"];
1732
- tableColumn.generatedType = dbColumn["EXTRA"].indexOf("VIRTUAL") !== -1 ? "VIRTUAL" : "STORED";
1733
- }
1734
- tableColumn.isUnique = !!columnUniqueIndex && !hasIgnoredIndex && !isConstraintComposite;
1735
- tableColumn.isNullable = dbColumn["IS_NULLABLE"] === "YES";
1736
- tableColumn.isPrimary = dbPrimaryKeys.some(function (dbPrimaryKey) {
1737
- return _this.driver.buildTableName(dbPrimaryKey["TABLE_NAME"], undefined, dbPrimaryKey["TABLE_SCHEMA"]) === tableFullName && dbPrimaryKey["COLUMN_NAME"] === tableColumn.name;
1738
- });
1739
- tableColumn.zerofill = dbColumn["COLUMN_TYPE"].indexOf("zerofill") !== -1;
1740
- tableColumn.unsigned = tableColumn.zerofill ? true : dbColumn["COLUMN_TYPE"].indexOf("unsigned") !== -1;
1741
- if (_this.driver.withWidthColumnTypes.indexOf(tableColumn.type) !== -1) {
1742
- var width = dbColumn["COLUMN_TYPE"].substring(dbColumn["COLUMN_TYPE"].indexOf("(") + 1, dbColumn["COLUMN_TYPE"].indexOf(")"));
1743
- tableColumn.width = width && !_this.isDefaultColumnWidth(table, tableColumn, parseInt(width)) ? parseInt(width) : undefined;
1744
- }
1745
- tableColumn.isGenerated = dbColumn["EXTRA"].indexOf("auto_increment") !== -1;
1746
- if (tableColumn.isGenerated)
1747
- tableColumn.generationStrategy = "increment";
1748
- tableColumn.comment = dbColumn["COLUMN_COMMENT"];
1749
- if (dbColumn["CHARACTER_SET_NAME"])
1750
- tableColumn.charset = dbColumn["CHARACTER_SET_NAME"] === defaultCharset ? undefined : dbColumn["CHARACTER_SET_NAME"];
1751
- if (dbColumn["COLLATION_NAME"])
1752
- tableColumn.collation = dbColumn["COLLATION_NAME"] === defaultCollation ? undefined : dbColumn["COLLATION_NAME"];
1753
- // check only columns that have length property
1754
- if (_this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 && dbColumn["CHARACTER_MAXIMUM_LENGTH"]) {
1755
- var length_1 = dbColumn["CHARACTER_MAXIMUM_LENGTH"].toString();
1756
- tableColumn.length = !_this.isDefaultColumnLength(table, tableColumn, length_1) ? length_1 : "";
1757
- }
1758
- if (tableColumn.type === "decimal" || tableColumn.type === "double" || tableColumn.type === "float") {
1759
- if (dbColumn["NUMERIC_PRECISION"] !== null && !_this.isDefaultColumnPrecision(table, tableColumn, dbColumn["NUMERIC_PRECISION"]))
1760
- tableColumn.precision = parseInt(dbColumn["NUMERIC_PRECISION"]);
1761
- if (dbColumn["NUMERIC_SCALE"] !== null && !_this.isDefaultColumnScale(table, tableColumn, dbColumn["NUMERIC_SCALE"]))
1762
- tableColumn.scale = parseInt(dbColumn["NUMERIC_SCALE"]);
1763
- }
1764
- if (tableColumn.type === "enum" || tableColumn.type === "simple-enum" || tableColumn.type === "set") {
1765
- var colType = dbColumn["COLUMN_TYPE"];
1766
- var items = colType.substring(colType.indexOf("(") + 1, colType.indexOf(")")).split(",");
1767
- tableColumn.enum = items.map(function (item) {
1768
- return item.substring(1, item.length - 1);
1769
- });
1770
- tableColumn.length = "";
1771
- }
1772
- if ((tableColumn.type === "datetime" || tableColumn.type === "time" || tableColumn.type === "timestamp")
1773
- && dbColumn["DATETIME_PRECISION"] !== null && dbColumn["DATETIME_PRECISION"] !== undefined
1774
- && !_this.isDefaultColumnPrecision(table, tableColumn, parseInt(dbColumn["DATETIME_PRECISION"]))) {
1775
- tableColumn.precision = parseInt(dbColumn["DATETIME_PRECISION"]);
1776
- }
1777
- return tableColumn;
1778
- });
1779
- tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter(function (dbForeignKey) {
1780
- return _this.driver.buildTableName(dbForeignKey["TABLE_NAME"], undefined, dbForeignKey["TABLE_SCHEMA"]) === tableFullName;
1781
- }), function (dbForeignKey) { return dbForeignKey["CONSTRAINT_NAME"]; });
1782
- table.foreignKeys = tableForeignKeyConstraints.map(function (dbForeignKey) {
1783
- var foreignKeys = dbForeignKeys.filter(function (dbFk) { return dbFk["CONSTRAINT_NAME"] === dbForeignKey["CONSTRAINT_NAME"]; });
1784
- // if referenced table located in currently used db, we don't need to concat db name to table name.
1785
- var database = dbForeignKey["REFERENCED_TABLE_SCHEMA"] === currentDatabase ? undefined : dbForeignKey["REFERENCED_TABLE_SCHEMA"];
1786
- var referencedTableName = _this.driver.buildTableName(dbForeignKey["REFERENCED_TABLE_NAME"], undefined, database);
1787
- return new TableForeignKey({
1788
- name: dbForeignKey["CONSTRAINT_NAME"],
1789
- columnNames: foreignKeys.map(function (dbFk) { return dbFk["COLUMN_NAME"]; }),
1790
- referencedTableName: referencedTableName,
1791
- referencedColumnNames: foreignKeys.map(function (dbFk) { return dbFk["REFERENCED_COLUMN_NAME"]; }),
1792
- onDelete: dbForeignKey["ON_DELETE"],
1793
- onUpdate: dbForeignKey["ON_UPDATE"]
1794
- });
1795
- });
1796
- tableIndexConstraints = OrmUtils.uniq(dbIndices.filter(function (dbIndex) {
1797
- return _this.driver.buildTableName(dbIndex["TABLE_NAME"], undefined, dbIndex["TABLE_SCHEMA"]) === tableFullName;
1798
- }), function (dbIndex) { return dbIndex["INDEX_NAME"]; });
1799
- table.indices = tableIndexConstraints.map(function (constraint) {
1800
- var indices = dbIndices.filter(function (index) {
1801
- return index["TABLE_SCHEMA"] === constraint["TABLE_SCHEMA"]
1802
- && index["TABLE_NAME"] === constraint["TABLE_NAME"]
1803
- && index["INDEX_NAME"] === constraint["INDEX_NAME"];
1804
- });
1805
- var nonUnique = parseInt(constraint["NON_UNIQUE"], 10);
1806
- return new TableIndex({
1807
- table: table,
1808
- name: constraint["INDEX_NAME"],
1809
- columnNames: indices.map(function (i) { return i["COLUMN_NAME"]; }),
1810
- isUnique: nonUnique === 0,
1811
- isSpatial: constraint["INDEX_TYPE"] === "SPATIAL",
1812
- isFulltext: constraint["INDEX_TYPE"] === "FULLTEXT"
1813
- });
1814
- });
1815
- return [2 /*return*/, table];
1816
- });
1817
- }); }))];
1168
+ async loadTables(tableNames) {
1169
+ if (tableNames && tableNames.length === 0) {
1170
+ return [];
1171
+ }
1172
+ const currentDatabase = await this.getCurrentDatabase();
1173
+ // The following SQL brought to you by:
1174
+ // A terrible understanding of https://dev.mysql.com/doc/refman/8.0/en/information-schema-optimization.html
1175
+ //
1176
+ // Short Version:
1177
+ // INFORMATION_SCHEMA is a weird metadata virtual table and follows VERY FEW of the normal
1178
+ // query optimization rules. Depending on the columns you query against & the columns you're SELECTing
1179
+ // there can be a drastically different query performance - this is because the tables map to
1180
+ // data on the disk and some pieces of data require a scan of the data directory, the database files, etc
1181
+ // With most of these, you'll want to do an `EXPLAIN` when making changes to make sure
1182
+ // the changes you're making aren't changing the query performance profile negatively
1183
+ // When you do the explain you'll want to look at the `Extra` field -
1184
+ // It will look something like: "Using where; {FILE_OPENING}; Scanned {DB_NUM} databases"
1185
+ // FILE_OPENING will commonly be OPEN_FRM_ONLY or OPEN_FULL_TABLE - you want to aim to NOT do
1186
+ // an OPEN_FULL_TABLE unless necessary. DB_NUM may be a number or "all" - you really want to
1187
+ // keep this to 0 or 1. Ideally 0. "All" means you've scanned all databases - not good.
1188
+ //
1189
+ // For more info, see the above link to the MySQL docs.
1190
+ //
1191
+ // Something not noted in the docs is that complex `WHERE` clauses - such as `OR` expressions -
1192
+ // will cause the query to not hit the optimizations & do full scans. This is why
1193
+ // a number of queries below do `UNION`s of single `WHERE` clauses.
1194
+ const dbTables = [];
1195
+ if (!tableNames) {
1196
+ // Since we don't have any of this data we have to do a scan
1197
+ const tablesSql = `SELECT \`TABLE_SCHEMA\`, \`TABLE_NAME\` FROM \`INFORMATION_SCHEMA\`.\`TABLES\``;
1198
+ dbTables.push(...(await this.query(tablesSql)));
1199
+ }
1200
+ else {
1201
+ // Avoid data directory scan: TABLE_SCHEMA
1202
+ // Avoid database directory scan: TABLE_NAME
1203
+ // We only use `TABLE_SCHEMA` and `TABLE_NAME` which is `SKIP_OPEN_TABLE`
1204
+ const tablesSql = tableNames
1205
+ .filter((tableName) => tableName)
1206
+ .map((tableName) => {
1207
+ let { database, tableName: name } = this.driver.parseTableName(tableName);
1208
+ if (!database) {
1209
+ database = currentDatabase;
1210
+ }
1211
+ return `
1212
+ SELECT \`TABLE_SCHEMA\`,
1213
+ \`TABLE_NAME\`
1214
+ FROM \`INFORMATION_SCHEMA\`.\`TABLES\`
1215
+ WHERE \`TABLE_SCHEMA\` = '${database}'
1216
+ AND \`TABLE_NAME\` = '${name}'
1217
+ `;
1218
+ })
1219
+ .join(" UNION ");
1220
+ dbTables.push(...(await this.query(tablesSql)));
1221
+ }
1222
+ // if tables were not found in the db, no need to proceed
1223
+ if (!dbTables.length)
1224
+ return [];
1225
+ // Avoid data directory scan: TABLE_SCHEMA
1226
+ // Avoid database directory scan: TABLE_NAME
1227
+ // Full columns: CARDINALITY & INDEX_TYPE - everything else is FRM only
1228
+ const statsSubquerySql = dbTables
1229
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1230
+ return `
1231
+ SELECT
1232
+ *
1233
+ FROM \`INFORMATION_SCHEMA\`.\`STATISTICS\`
1234
+ WHERE
1235
+ \`TABLE_SCHEMA\` = '${TABLE_SCHEMA}'
1236
+ AND
1237
+ \`TABLE_NAME\` = '${TABLE_NAME}'
1238
+ `;
1239
+ })
1240
+ .join(" UNION ");
1241
+ // Avoid data directory scan: TABLE_SCHEMA
1242
+ // Avoid database directory scan: TABLE_NAME
1243
+ // All columns will hit the full table.
1244
+ const kcuSubquerySql = dbTables
1245
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1246
+ return `
1247
+ SELECT
1248
+ *
1249
+ FROM \`INFORMATION_SCHEMA\`.\`KEY_COLUMN_USAGE\` \`kcu\`
1250
+ WHERE
1251
+ \`kcu\`.\`TABLE_SCHEMA\` = '${TABLE_SCHEMA}'
1252
+ AND
1253
+ \`kcu\`.\`TABLE_NAME\` = '${TABLE_NAME}'
1254
+ `;
1255
+ })
1256
+ .join(" UNION ");
1257
+ // Avoid data directory scan: CONSTRAINT_SCHEMA
1258
+ // Avoid database directory scan: TABLE_NAME
1259
+ // All columns will hit the full table.
1260
+ const rcSubquerySql = dbTables
1261
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1262
+ return `
1263
+ SELECT
1264
+ *
1265
+ FROM \`INFORMATION_SCHEMA\`.\`REFERENTIAL_CONSTRAINTS\`
1266
+ WHERE
1267
+ \`CONSTRAINT_SCHEMA\` = '${TABLE_SCHEMA}'
1268
+ AND
1269
+ \`TABLE_NAME\` = '${TABLE_NAME}'
1270
+ `;
1271
+ })
1272
+ .join(" UNION ");
1273
+ // Avoid data directory scan: TABLE_SCHEMA
1274
+ // Avoid database directory scan: TABLE_NAME
1275
+ // OPEN_FRM_ONLY applies to all columns
1276
+ const columnsSql = dbTables
1277
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1278
+ return `
1279
+ SELECT
1280
+ *
1281
+ FROM
1282
+ \`INFORMATION_SCHEMA\`.\`COLUMNS\`
1283
+ WHERE
1284
+ \`TABLE_SCHEMA\` = '${TABLE_SCHEMA}'
1285
+ AND
1286
+ \`TABLE_NAME\` = '${TABLE_NAME}'
1287
+ `;
1288
+ })
1289
+ .join(" UNION ");
1290
+ // No Optimizations are available for COLLATIONS
1291
+ const collationsSql = `
1292
+ SELECT
1293
+ \`SCHEMA_NAME\`,
1294
+ \`DEFAULT_CHARACTER_SET_NAME\` as \`CHARSET\`,
1295
+ \`DEFAULT_COLLATION_NAME\` AS \`COLLATION\`
1296
+ FROM \`INFORMATION_SCHEMA\`.\`SCHEMATA\`
1297
+ `;
1298
+ // Key Column Usage but only for PKs
1299
+ const primaryKeySql = `SELECT * FROM (${kcuSubquerySql}) \`kcu\` WHERE \`CONSTRAINT_NAME\` = 'PRIMARY'`;
1300
+ // Combine stats & referential constraints
1301
+ const indicesSql = `
1302
+ SELECT
1303
+ \`s\`.*
1304
+ FROM (${statsSubquerySql}) \`s\`
1305
+ LEFT JOIN (${rcSubquerySql}) \`rc\`
1306
+ ON
1307
+ \`s\`.\`INDEX_NAME\` = \`rc\`.\`CONSTRAINT_NAME\`
1308
+ AND
1309
+ \`s\`.\`TABLE_SCHEMA\` = \`rc\`.\`CONSTRAINT_SCHEMA\`
1310
+ WHERE
1311
+ \`s\`.\`INDEX_NAME\` != 'PRIMARY'
1312
+ AND
1313
+ \`rc\`.\`CONSTRAINT_NAME\` IS NULL
1314
+ `;
1315
+ // Combine Key Column Usage & Referential Constraints
1316
+ const foreignKeysSql = `
1317
+ SELECT
1318
+ \`kcu\`.\`TABLE_SCHEMA\`,
1319
+ \`kcu\`.\`TABLE_NAME\`,
1320
+ \`kcu\`.\`CONSTRAINT_NAME\`,
1321
+ \`kcu\`.\`COLUMN_NAME\`,
1322
+ \`kcu\`.\`REFERENCED_TABLE_SCHEMA\`,
1323
+ \`kcu\`.\`REFERENCED_TABLE_NAME\`,
1324
+ \`kcu\`.\`REFERENCED_COLUMN_NAME\`,
1325
+ \`rc\`.\`DELETE_RULE\` \`ON_DELETE\`,
1326
+ \`rc\`.\`UPDATE_RULE\` \`ON_UPDATE\`
1327
+ FROM (${kcuSubquerySql}) \`kcu\`
1328
+ INNER JOIN (${rcSubquerySql}) \`rc\`
1329
+ ON
1330
+ \`rc\`.\`CONSTRAINT_SCHEMA\` = \`kcu\`.\`CONSTRAINT_SCHEMA\`
1331
+ AND
1332
+ \`rc\`.\`TABLE_NAME\` = \`kcu\`.\`TABLE_NAME\`
1333
+ AND
1334
+ \`rc\`.\`CONSTRAINT_NAME\` = \`kcu\`.\`CONSTRAINT_NAME\`
1335
+ `;
1336
+ const [dbColumns, dbPrimaryKeys, dbCollations, dbIndices, dbForeignKeys,] = await Promise.all([
1337
+ this.query(columnsSql),
1338
+ this.query(primaryKeySql),
1339
+ this.query(collationsSql),
1340
+ this.query(indicesSql),
1341
+ this.query(foreignKeysSql),
1342
+ ]);
1343
+ const isMariaDb = this.driver.options.type === "mariadb";
1344
+ const dbVersion = await this.getVersion();
1345
+ // create tables for loaded tables
1346
+ return Promise.all(dbTables.map(async (dbTable) => {
1347
+ const table = new Table();
1348
+ const dbCollation = dbCollations.find((coll) => coll["SCHEMA_NAME"] === dbTable["TABLE_SCHEMA"]);
1349
+ const defaultCollation = dbCollation["COLLATION"];
1350
+ const defaultCharset = dbCollation["CHARSET"];
1351
+ // We do not need to join database name, when database is by default.
1352
+ const db = dbTable["TABLE_SCHEMA"] === currentDatabase
1353
+ ? undefined
1354
+ : dbTable["TABLE_SCHEMA"];
1355
+ table.database = dbTable["TABLE_SCHEMA"];
1356
+ table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], undefined, db);
1357
+ // create columns from the loaded columns
1358
+ table.columns = dbColumns
1359
+ .filter((dbColumn) => dbColumn["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1360
+ dbColumn["TABLE_SCHEMA"] ===
1361
+ dbTable["TABLE_SCHEMA"])
1362
+ .map((dbColumn) => {
1363
+ const columnUniqueIndices = dbIndices.filter((dbIndex) => {
1364
+ return (dbIndex["TABLE_NAME"] ===
1365
+ dbTable["TABLE_NAME"] &&
1366
+ dbIndex["TABLE_SCHEMA"] ===
1367
+ dbTable["TABLE_SCHEMA"] &&
1368
+ dbIndex["COLUMN_NAME"] ===
1369
+ dbColumn["COLUMN_NAME"] &&
1370
+ parseInt(dbIndex["NON_UNIQUE"], 10) === 0);
1371
+ });
1372
+ const tableMetadata = this.connection.entityMetadatas.find((metadata) => this.getTablePath(table) ===
1373
+ this.getTablePath(metadata));
1374
+ const hasIgnoredIndex = columnUniqueIndices.length > 0 &&
1375
+ tableMetadata &&
1376
+ tableMetadata.indices.some((index) => {
1377
+ return columnUniqueIndices.some((uniqueIndex) => {
1378
+ return (index.name ===
1379
+ uniqueIndex["INDEX_NAME"] &&
1380
+ index.synchronize === false);
1381
+ });
1382
+ });
1383
+ const isConstraintComposite = columnUniqueIndices.every((uniqueIndex) => {
1384
+ return dbIndices.some((dbIndex) => dbIndex["INDEX_NAME"] ===
1385
+ uniqueIndex["INDEX_NAME"] &&
1386
+ dbIndex["COLUMN_NAME"] !==
1387
+ dbColumn["COLUMN_NAME"]);
1388
+ });
1389
+ const tableColumn = new TableColumn();
1390
+ tableColumn.name = dbColumn["COLUMN_NAME"];
1391
+ tableColumn.type = dbColumn["DATA_TYPE"].toLowerCase();
1392
+ tableColumn.zerofill =
1393
+ dbColumn["COLUMN_TYPE"].indexOf("zerofill") !== -1;
1394
+ tableColumn.unsigned = tableColumn.zerofill
1395
+ ? true
1396
+ : dbColumn["COLUMN_TYPE"].indexOf("unsigned") !== -1;
1397
+ if (this.driver.withWidthColumnTypes.indexOf(tableColumn.type) !== -1) {
1398
+ const width = dbColumn["COLUMN_TYPE"].substring(dbColumn["COLUMN_TYPE"].indexOf("(") + 1, dbColumn["COLUMN_TYPE"].indexOf(")"));
1399
+ tableColumn.width =
1400
+ width &&
1401
+ !this.isDefaultColumnWidth(table, tableColumn, parseInt(width))
1402
+ ? parseInt(width)
1403
+ : undefined;
1404
+ }
1405
+ if (dbColumn["COLUMN_DEFAULT"] === null ||
1406
+ dbColumn["COLUMN_DEFAULT"] === undefined ||
1407
+ (isMariaDb && dbColumn["COLUMN_DEFAULT"] === "NULL")) {
1408
+ tableColumn.default = undefined;
1409
+ }
1410
+ else if (/^CURRENT_TIMESTAMP(\([0-9]*\))?$/i.test(dbColumn["COLUMN_DEFAULT"])) {
1411
+ // New versions of MariaDB return expressions in lowercase. We need to set it in
1412
+ // uppercase so the comparison in MysqlDriver#compareDefaultValues does not fail.
1413
+ tableColumn.default =
1414
+ dbColumn["COLUMN_DEFAULT"].toUpperCase();
1818
1415
  }
1416
+ else if (isMariaDb &&
1417
+ VersionUtils.isGreaterOrEqual(dbVersion, "10.2.7")) {
1418
+ // MariaDB started adding quotes to literals in COLUMN_DEFAULT since version 10.2.7
1419
+ // See https://mariadb.com/kb/en/library/information-schema-columns-table/
1420
+ tableColumn.default = dbColumn["COLUMN_DEFAULT"];
1421
+ }
1422
+ else {
1423
+ tableColumn.default = `'${dbColumn["COLUMN_DEFAULT"]}'`;
1424
+ }
1425
+ if (dbColumn["EXTRA"].indexOf("on update") !== -1) {
1426
+ // New versions of MariaDB return expressions in lowercase. We need to set it in
1427
+ // uppercase so the comparison in MysqlDriver#compareExtraValues does not fail.
1428
+ tableColumn.onUpdate = dbColumn["EXTRA"]
1429
+ .substring(dbColumn["EXTRA"].indexOf("on update") + 10)
1430
+ .toUpperCase();
1431
+ }
1432
+ if (dbColumn["GENERATION_EXPRESSION"]) {
1433
+ tableColumn.asExpression =
1434
+ dbColumn["GENERATION_EXPRESSION"];
1435
+ tableColumn.generatedType =
1436
+ dbColumn["EXTRA"].indexOf("VIRTUAL") !== -1
1437
+ ? "VIRTUAL"
1438
+ : "STORED";
1439
+ }
1440
+ tableColumn.isUnique =
1441
+ columnUniqueIndices.length > 0 &&
1442
+ !hasIgnoredIndex &&
1443
+ !isConstraintComposite;
1444
+ tableColumn.isNullable =
1445
+ dbColumn["IS_NULLABLE"] === "YES";
1446
+ tableColumn.isPrimary = dbPrimaryKeys.some((dbPrimaryKey) => {
1447
+ return (dbPrimaryKey["TABLE_NAME"] ===
1448
+ dbColumn["TABLE_NAME"] &&
1449
+ dbPrimaryKey["TABLE_SCHEMA"] ===
1450
+ dbColumn["TABLE_SCHEMA"] &&
1451
+ dbPrimaryKey["COLUMN_NAME"] ===
1452
+ dbColumn["COLUMN_NAME"]);
1453
+ });
1454
+ tableColumn.isGenerated =
1455
+ dbColumn["EXTRA"].indexOf("auto_increment") !== -1;
1456
+ if (tableColumn.isGenerated)
1457
+ tableColumn.generationStrategy = "increment";
1458
+ tableColumn.comment =
1459
+ typeof dbColumn["COLUMN_COMMENT"] === "string" &&
1460
+ dbColumn["COLUMN_COMMENT"].length === 0
1461
+ ? undefined
1462
+ : dbColumn["COLUMN_COMMENT"];
1463
+ if (dbColumn["CHARACTER_SET_NAME"])
1464
+ tableColumn.charset =
1465
+ dbColumn["CHARACTER_SET_NAME"] ===
1466
+ defaultCharset
1467
+ ? undefined
1468
+ : dbColumn["CHARACTER_SET_NAME"];
1469
+ if (dbColumn["COLLATION_NAME"])
1470
+ tableColumn.collation =
1471
+ dbColumn["COLLATION_NAME"] === defaultCollation
1472
+ ? undefined
1473
+ : dbColumn["COLLATION_NAME"];
1474
+ // check only columns that have length property
1475
+ if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 &&
1476
+ dbColumn["CHARACTER_MAXIMUM_LENGTH"]) {
1477
+ const length = dbColumn["CHARACTER_MAXIMUM_LENGTH"].toString();
1478
+ tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length)
1479
+ ? length
1480
+ : "";
1481
+ }
1482
+ if (tableColumn.type === "decimal" ||
1483
+ tableColumn.type === "double" ||
1484
+ tableColumn.type === "float") {
1485
+ if (dbColumn["NUMERIC_PRECISION"] !== null &&
1486
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["NUMERIC_PRECISION"]))
1487
+ tableColumn.precision = parseInt(dbColumn["NUMERIC_PRECISION"]);
1488
+ if (dbColumn["NUMERIC_SCALE"] !== null &&
1489
+ !this.isDefaultColumnScale(table, tableColumn, dbColumn["NUMERIC_SCALE"]))
1490
+ tableColumn.scale = parseInt(dbColumn["NUMERIC_SCALE"]);
1491
+ }
1492
+ if (tableColumn.type === "enum" ||
1493
+ tableColumn.type === "simple-enum" ||
1494
+ tableColumn.type === "set") {
1495
+ const colType = dbColumn["COLUMN_TYPE"];
1496
+ const items = colType
1497
+ .substring(colType.indexOf("(") + 1, colType.lastIndexOf(")"))
1498
+ .split(",");
1499
+ tableColumn.enum = items.map((item) => {
1500
+ return item.substring(1, item.length - 1);
1501
+ });
1502
+ tableColumn.length = "";
1503
+ }
1504
+ if ((tableColumn.type === "datetime" ||
1505
+ tableColumn.type === "time" ||
1506
+ tableColumn.type === "timestamp") &&
1507
+ dbColumn["DATETIME_PRECISION"] !== null &&
1508
+ dbColumn["DATETIME_PRECISION"] !== undefined &&
1509
+ !this.isDefaultColumnPrecision(table, tableColumn, parseInt(dbColumn["DATETIME_PRECISION"]))) {
1510
+ tableColumn.precision = parseInt(dbColumn["DATETIME_PRECISION"]);
1511
+ }
1512
+ return tableColumn;
1819
1513
  });
1820
- });
1821
- };
1514
+ // find foreign key constraints of table, group them by constraint name and build TableForeignKey.
1515
+ const tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter((dbForeignKey) => {
1516
+ return (dbForeignKey["TABLE_NAME"] ===
1517
+ dbTable["TABLE_NAME"] &&
1518
+ dbForeignKey["TABLE_SCHEMA"] ===
1519
+ dbTable["TABLE_SCHEMA"]);
1520
+ }), (dbForeignKey) => dbForeignKey["CONSTRAINT_NAME"]);
1521
+ table.foreignKeys = tableForeignKeyConstraints.map((dbForeignKey) => {
1522
+ const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["CONSTRAINT_NAME"] ===
1523
+ dbForeignKey["CONSTRAINT_NAME"]);
1524
+ // if referenced table located in currently used db, we don't need to concat db name to table name.
1525
+ const database = dbForeignKey["REFERENCED_TABLE_SCHEMA"] ===
1526
+ currentDatabase
1527
+ ? undefined
1528
+ : dbForeignKey["REFERENCED_TABLE_SCHEMA"];
1529
+ const referencedTableName = this.driver.buildTableName(dbForeignKey["REFERENCED_TABLE_NAME"], undefined, database);
1530
+ return new TableForeignKey({
1531
+ name: dbForeignKey["CONSTRAINT_NAME"],
1532
+ columnNames: foreignKeys.map((dbFk) => dbFk["COLUMN_NAME"]),
1533
+ referencedDatabase: dbForeignKey["REFERENCED_TABLE_SCHEMA"],
1534
+ referencedTableName: referencedTableName,
1535
+ referencedColumnNames: foreignKeys.map((dbFk) => dbFk["REFERENCED_COLUMN_NAME"]),
1536
+ onDelete: dbForeignKey["ON_DELETE"],
1537
+ onUpdate: dbForeignKey["ON_UPDATE"],
1538
+ });
1539
+ });
1540
+ // find index constraints of table, group them by constraint name and build TableIndex.
1541
+ const tableIndexConstraints = OrmUtils.uniq(dbIndices.filter((dbIndex) => dbIndex["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1542
+ dbIndex["TABLE_SCHEMA"] === dbTable["TABLE_SCHEMA"]), (dbIndex) => dbIndex["INDEX_NAME"]);
1543
+ table.indices = tableIndexConstraints.map((constraint) => {
1544
+ const indices = dbIndices.filter((index) => {
1545
+ return (index["TABLE_SCHEMA"] ===
1546
+ constraint["TABLE_SCHEMA"] &&
1547
+ index["TABLE_NAME"] === constraint["TABLE_NAME"] &&
1548
+ index["INDEX_NAME"] === constraint["INDEX_NAME"]);
1549
+ });
1550
+ const nonUnique = parseInt(constraint["NON_UNIQUE"], 10);
1551
+ return new TableIndex({
1552
+ table: table,
1553
+ name: constraint["INDEX_NAME"],
1554
+ columnNames: indices.map((i) => i["COLUMN_NAME"]),
1555
+ isUnique: nonUnique === 0,
1556
+ isSpatial: constraint["INDEX_TYPE"] === "SPATIAL",
1557
+ isFulltext: constraint["INDEX_TYPE"] === "FULLTEXT",
1558
+ });
1559
+ });
1560
+ return table;
1561
+ }));
1562
+ }
1822
1563
  /**
1823
1564
  * Builds create table sql
1824
1565
  */
1825
- MysqlQueryRunner.prototype.createTableSql = function (table, createForeignKeys) {
1826
- var _this = this;
1827
- var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(column, true); }).join(", ");
1828
- var sql = "CREATE TABLE " + this.escapePath(table) + " (" + columnDefinitions;
1566
+ createTableSql(table, createForeignKeys) {
1567
+ const columnDefinitions = table.columns
1568
+ .map((column) => this.buildCreateColumnSql(column, true))
1569
+ .join(", ");
1570
+ let sql = `CREATE TABLE ${this.escapePath(table)} (${columnDefinitions}`;
1829
1571
  // we create unique indexes instead of unique constraints, because MySql does not have unique constraints.
1830
1572
  // if we mark column as Unique, it means that we create UNIQUE INDEX.
1831
1573
  table.columns
1832
- .filter(function (column) { return column.isUnique; })
1833
- .forEach(function (column) {
1834
- var isUniqueIndexExist = table.indices.some(function (index) {
1835
- return index.columnNames.length === 1 && !!index.isUnique && index.columnNames.indexOf(column.name) !== -1;
1574
+ .filter((column) => column.isUnique)
1575
+ .forEach((column) => {
1576
+ const isUniqueIndexExist = table.indices.some((index) => {
1577
+ return (index.columnNames.length === 1 &&
1578
+ !!index.isUnique &&
1579
+ index.columnNames.indexOf(column.name) !== -1);
1836
1580
  });
1837
- var isUniqueConstraintExist = table.uniques.some(function (unique) {
1838
- return unique.columnNames.length === 1 && unique.columnNames.indexOf(column.name) !== -1;
1581
+ const isUniqueConstraintExist = table.uniques.some((unique) => {
1582
+ return (unique.columnNames.length === 1 &&
1583
+ unique.columnNames.indexOf(column.name) !== -1);
1839
1584
  });
1840
1585
  if (!isUniqueIndexExist && !isUniqueConstraintExist)
1841
1586
  table.indices.push(new TableIndex({
1842
- name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),
1587
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
1843
1588
  columnNames: [column.name],
1844
- isUnique: true
1589
+ isUnique: true,
1845
1590
  }));
1846
1591
  });
1847
1592
  // as MySql does not have unique constraints, we must create table indices from table uniques and mark them as unique.
1848
1593
  if (table.uniques.length > 0) {
1849
- table.uniques.forEach(function (unique) {
1850
- var uniqueExist = table.indices.some(function (index) { return index.name === unique.name; });
1594
+ table.uniques.forEach((unique) => {
1595
+ const uniqueExist = table.indices.some((index) => index.name === unique.name);
1851
1596
  if (!uniqueExist) {
1852
1597
  table.indices.push(new TableIndex({
1853
1598
  name: unique.name,
1854
1599
  columnNames: unique.columnNames,
1855
- isUnique: true
1600
+ isUnique: true,
1856
1601
  }));
1857
1602
  }
1858
1603
  });
1859
1604
  }
1860
1605
  if (table.indices.length > 0) {
1861
- var indicesSql = table.indices.map(function (index) {
1862
- var columnNames = index.columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1606
+ const indicesSql = table.indices
1607
+ .map((index) => {
1608
+ const columnNames = index.columnNames
1609
+ .map((columnName) => `\`${columnName}\``)
1610
+ .join(", ");
1863
1611
  if (!index.name)
1864
- index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
1865
- var indexType = "";
1612
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
1613
+ let indexType = "";
1866
1614
  if (index.isUnique)
1867
1615
  indexType += "UNIQUE ";
1868
1616
  if (index.isSpatial)
1869
1617
  indexType += "SPATIAL ";
1870
1618
  if (index.isFulltext)
1871
1619
  indexType += "FULLTEXT ";
1872
- return indexType + "INDEX `" + index.name + "` (" + columnNames + ")";
1873
- }).join(", ");
1874
- sql += ", " + indicesSql;
1620
+ const indexParser = index.isFulltext && index.parser
1621
+ ? ` WITH PARSER ${index.parser}`
1622
+ : "";
1623
+ return `${indexType}INDEX \`${index.name}\` (${columnNames})${indexParser}`;
1624
+ })
1625
+ .join(", ");
1626
+ sql += `, ${indicesSql}`;
1875
1627
  }
1876
1628
  if (table.foreignKeys.length > 0 && createForeignKeys) {
1877
- var foreignKeysSql = table.foreignKeys.map(function (fk) {
1878
- var columnNames = fk.columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1629
+ const foreignKeysSql = table.foreignKeys
1630
+ .map((fk) => {
1631
+ const columnNames = fk.columnNames
1632
+ .map((columnName) => `\`${columnName}\``)
1633
+ .join(", ");
1879
1634
  if (!fk.name)
1880
- fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames);
1881
- var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1882
- var constraint = "CONSTRAINT `" + fk.name + "` FOREIGN KEY (" + columnNames + ") REFERENCES " + _this.escapePath(fk.referencedTableName) + " (" + referencedColumnNames + ")";
1635
+ fk.name = this.connection.namingStrategy.foreignKeyName(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
1636
+ const referencedColumnNames = fk.referencedColumnNames
1637
+ .map((columnName) => `\`${columnName}\``)
1638
+ .join(", ");
1639
+ let constraint = `CONSTRAINT \`${fk.name}\` FOREIGN KEY (${columnNames}) REFERENCES ${this.escapePath(this.getTablePath(fk))} (${referencedColumnNames})`;
1883
1640
  if (fk.onDelete)
1884
- constraint += " ON DELETE " + fk.onDelete;
1641
+ constraint += ` ON DELETE ${fk.onDelete}`;
1885
1642
  if (fk.onUpdate)
1886
- constraint += " ON UPDATE " + fk.onUpdate;
1643
+ constraint += ` ON UPDATE ${fk.onUpdate}`;
1887
1644
  return constraint;
1888
- }).join(", ");
1889
- sql += ", " + foreignKeysSql;
1645
+ })
1646
+ .join(", ");
1647
+ sql += `, ${foreignKeysSql}`;
1890
1648
  }
1891
1649
  if (table.primaryColumns.length > 0) {
1892
- var columnNames = table.primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
1893
- sql += ", PRIMARY KEY (" + columnNames + ")";
1650
+ const columnNames = table.primaryColumns
1651
+ .map((column) => `\`${column.name}\``)
1652
+ .join(", ");
1653
+ sql += `, PRIMARY KEY (${columnNames})`;
1894
1654
  }
1895
- sql += ") ENGINE=" + (table.engine || "InnoDB");
1655
+ sql += `) ENGINE=${table.engine || "InnoDB"}`;
1896
1656
  return new Query(sql);
1897
- };
1657
+ }
1898
1658
  /**
1899
1659
  * Builds drop table sql
1900
1660
  */
1901
- MysqlQueryRunner.prototype.dropTableSql = function (tableOrName) {
1902
- return new Query("DROP TABLE " + this.escapePath(tableOrName));
1903
- };
1904
- MysqlQueryRunner.prototype.createViewSql = function (view) {
1661
+ dropTableSql(tableOrName) {
1662
+ return new Query(`DROP TABLE ${this.escapePath(tableOrName)}`);
1663
+ }
1664
+ createViewSql(view) {
1905
1665
  if (typeof view.expression === "string") {
1906
- return new Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression);
1666
+ return new Query(`CREATE VIEW ${this.escapePath(view)} AS ${view.expression}`);
1907
1667
  }
1908
1668
  else {
1909
- return new Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression(this.connection).getQuery());
1669
+ return new Query(`CREATE VIEW ${this.escapePath(view)} AS ${view
1670
+ .expression(this.connection)
1671
+ .getQuery()}`);
1910
1672
  }
1911
- };
1912
- MysqlQueryRunner.prototype.insertViewDefinitionSql = function (view) {
1913
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1914
- var currentDatabase, expression, _a, query, parameters;
1915
- return tslib_1.__generator(this, function (_b) {
1916
- switch (_b.label) {
1917
- case 0: return [4 /*yield*/, this.getCurrentDatabase()];
1918
- case 1:
1919
- currentDatabase = _b.sent();
1920
- expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery();
1921
- _a = tslib_1.__read(this.connection.createQueryBuilder()
1922
- .insert()
1923
- .into(this.getTypeormMetadataTableName())
1924
- .values({ type: "VIEW", schema: currentDatabase, name: view.name, value: expression })
1925
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
1926
- return [2 /*return*/, new Query(query, parameters)];
1927
- }
1928
- });
1673
+ }
1674
+ async insertViewDefinitionSql(view) {
1675
+ const currentDatabase = await this.getCurrentDatabase();
1676
+ const expression = typeof view.expression === "string"
1677
+ ? view.expression.trim()
1678
+ : view.expression(this.connection).getQuery();
1679
+ return this.insertTypeormMetadataSql({
1680
+ type: MetadataTableType.VIEW,
1681
+ schema: currentDatabase,
1682
+ name: view.name,
1683
+ value: expression,
1929
1684
  });
1930
- };
1685
+ }
1931
1686
  /**
1932
1687
  * Builds drop view sql.
1933
1688
  */
1934
- MysqlQueryRunner.prototype.dropViewSql = function (viewOrPath) {
1935
- return new Query("DROP VIEW " + this.escapePath(viewOrPath));
1936
- };
1689
+ dropViewSql(viewOrPath) {
1690
+ return new Query(`DROP VIEW ${this.escapePath(viewOrPath)}`);
1691
+ }
1937
1692
  /**
1938
1693
  * Builds remove view sql.
1939
1694
  */
1940
- MysqlQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) {
1941
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1942
- var currentDatabase, viewName, qb, _a, query, parameters;
1943
- return tslib_1.__generator(this, function (_b) {
1944
- switch (_b.label) {
1945
- case 0: return [4 /*yield*/, this.getCurrentDatabase()];
1946
- case 1:
1947
- currentDatabase = _b.sent();
1948
- viewName = viewOrPath instanceof View ? viewOrPath.name : viewOrPath;
1949
- qb = this.connection.createQueryBuilder();
1950
- _a = tslib_1.__read(qb.delete()
1951
- .from(this.getTypeormMetadataTableName())
1952
- .where(qb.escape("type") + " = 'VIEW'")
1953
- .andWhere(qb.escape("schema") + " = :schema", { schema: currentDatabase })
1954
- .andWhere(qb.escape("name") + " = :name", { name: viewName })
1955
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
1956
- return [2 /*return*/, new Query(query, parameters)];
1957
- }
1958
- });
1695
+ async deleteViewDefinitionSql(viewOrPath) {
1696
+ const currentDatabase = await this.getCurrentDatabase();
1697
+ const viewName = InstanceChecker.isView(viewOrPath)
1698
+ ? viewOrPath.name
1699
+ : viewOrPath;
1700
+ return this.deleteTypeormMetadataSql({
1701
+ type: MetadataTableType.VIEW,
1702
+ schema: currentDatabase,
1703
+ name: viewName,
1959
1704
  });
1960
- };
1705
+ }
1961
1706
  /**
1962
1707
  * Builds create index sql.
1963
1708
  */
1964
- MysqlQueryRunner.prototype.createIndexSql = function (table, index) {
1965
- var columns = index.columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1966
- var indexType = "";
1709
+ createIndexSql(table, index) {
1710
+ const columns = index.columnNames
1711
+ .map((columnName) => `\`${columnName}\``)
1712
+ .join(", ");
1713
+ let indexType = "";
1967
1714
  if (index.isUnique)
1968
1715
  indexType += "UNIQUE ";
1969
1716
  if (index.isSpatial)
1970
1717
  indexType += "SPATIAL ";
1971
1718
  if (index.isFulltext)
1972
1719
  indexType += "FULLTEXT ";
1973
- return new Query("CREATE " + indexType + "INDEX `" + index.name + "` ON " + this.escapePath(table) + " (" + columns + ")");
1974
- };
1720
+ const indexParser = index.isFulltext && index.parser
1721
+ ? ` WITH PARSER ${index.parser}`
1722
+ : "";
1723
+ return new Query(`CREATE ${indexType}INDEX \`${index.name}\` ON ${this.escapePath(table)} (${columns})${indexParser}`);
1724
+ }
1975
1725
  /**
1976
1726
  * Builds drop index sql.
1977
1727
  */
1978
- MysqlQueryRunner.prototype.dropIndexSql = function (table, indexOrName) {
1979
- var indexName = indexOrName instanceof TableIndex ? indexOrName.name : indexOrName;
1980
- return new Query("DROP INDEX `" + indexName + "` ON " + this.escapePath(table));
1981
- };
1728
+ dropIndexSql(table, indexOrName) {
1729
+ let indexName = InstanceChecker.isTableIndex(indexOrName)
1730
+ ? indexOrName.name
1731
+ : indexOrName;
1732
+ return new Query(`DROP INDEX \`${indexName}\` ON ${this.escapePath(table)}`);
1733
+ }
1982
1734
  /**
1983
1735
  * Builds create primary key sql.
1984
1736
  */
1985
- MysqlQueryRunner.prototype.createPrimaryKeySql = function (table, columnNames) {
1986
- var columnNamesString = columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1987
- return new Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNamesString + ")");
1988
- };
1737
+ createPrimaryKeySql(table, columnNames) {
1738
+ const columnNamesString = columnNames
1739
+ .map((columnName) => `\`${columnName}\``)
1740
+ .join(", ");
1741
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNamesString})`);
1742
+ }
1989
1743
  /**
1990
1744
  * Builds drop primary key sql.
1991
1745
  */
1992
- MysqlQueryRunner.prototype.dropPrimaryKeySql = function (table) {
1993
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY");
1994
- };
1746
+ dropPrimaryKeySql(table) {
1747
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`);
1748
+ }
1995
1749
  /**
1996
1750
  * Builds create foreign key sql.
1997
1751
  */
1998
- MysqlQueryRunner.prototype.createForeignKeySql = function (table, foreignKey) {
1999
- var columnNames = foreignKey.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
2000
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "`" + column + "`"; }).join(",");
2001
- var sql = "ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT `" + foreignKey.name + "` FOREIGN KEY (" + columnNames + ") " +
2002
- ("REFERENCES " + this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
1752
+ createForeignKeySql(table, foreignKey) {
1753
+ const columnNames = foreignKey.columnNames
1754
+ .map((column) => `\`${column}\``)
1755
+ .join(", ");
1756
+ const referencedColumnNames = foreignKey.referencedColumnNames
1757
+ .map((column) => `\`${column}\``)
1758
+ .join(",");
1759
+ let sql = `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT \`${foreignKey.name}\` FOREIGN KEY (${columnNames}) ` +
1760
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
2003
1761
  if (foreignKey.onDelete)
2004
- sql += " ON DELETE " + foreignKey.onDelete;
1762
+ sql += ` ON DELETE ${foreignKey.onDelete}`;
2005
1763
  if (foreignKey.onUpdate)
2006
- sql += " ON UPDATE " + foreignKey.onUpdate;
1764
+ sql += ` ON UPDATE ${foreignKey.onUpdate}`;
2007
1765
  return new Query(sql);
2008
- };
1766
+ }
2009
1767
  /**
2010
1768
  * Builds drop foreign key sql.
2011
1769
  */
2012
- MysqlQueryRunner.prototype.dropForeignKeySql = function (table, foreignKeyOrName) {
2013
- var foreignKeyName = foreignKeyOrName instanceof TableForeignKey ? foreignKeyOrName.name : foreignKeyOrName;
2014
- return new Query("ALTER TABLE " + this.escapePath(table) + " DROP FOREIGN KEY `" + foreignKeyName + "`");
2015
- };
2016
- MysqlQueryRunner.prototype.parseTableName = function (target) {
2017
- var tableName = target instanceof Table ? target.name : target;
2018
- return {
2019
- database: tableName.indexOf(".") !== -1 ? tableName.split(".")[0] : this.driver.database,
2020
- tableName: tableName.indexOf(".") !== -1 ? tableName.split(".")[1] : tableName
2021
- };
2022
- };
1770
+ dropForeignKeySql(table, foreignKeyOrName) {
1771
+ const foreignKeyName = InstanceChecker.isTableForeignKey(foreignKeyOrName)
1772
+ ? foreignKeyOrName.name
1773
+ : foreignKeyOrName;
1774
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP FOREIGN KEY \`${foreignKeyName}\``);
1775
+ }
1776
+ /**
1777
+ * Escapes a given comment so it's safe to include in a query.
1778
+ */
1779
+ escapeComment(comment) {
1780
+ if (!comment || comment.length === 0) {
1781
+ return `''`;
1782
+ }
1783
+ comment = comment
1784
+ .replace(/\\/g, "\\\\") // MySQL allows escaping characters via backslashes
1785
+ .replace(/'/g, "''")
1786
+ .replace(/\u0000/g, ""); // Null bytes aren't allowed in comments
1787
+ return `'${comment}'`;
1788
+ }
2023
1789
  /**
2024
1790
  * Escapes given table or view path.
2025
1791
  */
2026
- MysqlQueryRunner.prototype.escapePath = function (target, disableEscape) {
2027
- var tableName = target instanceof Table || target instanceof View ? target.name : target;
2028
- return tableName.split(".").map(function (i) { return disableEscape ? i : "`" + i + "`"; }).join(".");
2029
- };
1792
+ escapePath(target) {
1793
+ const { database, tableName } = this.driver.parseTableName(target);
1794
+ if (database && database !== this.driver.database) {
1795
+ return `\`${database}\`.\`${tableName}\``;
1796
+ }
1797
+ return `\`${tableName}\``;
1798
+ }
2030
1799
  /**
2031
1800
  * Builds a part of query to create/change a column.
2032
1801
  */
2033
- MysqlQueryRunner.prototype.buildCreateColumnSql = function (column, skipPrimary, skipName) {
2034
- if (skipName === void 0) { skipName = false; }
2035
- var c = "";
1802
+ buildCreateColumnSql(column, skipPrimary, skipName = false) {
1803
+ let c = "";
2036
1804
  if (skipName) {
2037
1805
  c = this.connection.driver.createFullType(column);
2038
1806
  }
2039
1807
  else {
2040
- c = "`" + column.name + "` " + this.connection.driver.createFullType(column);
1808
+ c = `\`${column.name}\` ${this.connection.driver.createFullType(column)}`;
2041
1809
  }
2042
1810
  if (column.asExpression)
2043
- c += " AS (" + column.asExpression + ") " + (column.generatedType ? column.generatedType : "VIRTUAL");
1811
+ c += ` AS (${column.asExpression}) ${column.generatedType ? column.generatedType : "VIRTUAL"}`;
2044
1812
  // if you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to that column.
2045
1813
  if (column.zerofill) {
2046
1814
  c += " ZEROFILL";
@@ -2049,42 +1817,75 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
2049
1817
  c += " UNSIGNED";
2050
1818
  }
2051
1819
  if (column.enum)
2052
- c += " (" + column.enum.map(function (value) { return "'" + value.replace("'", "''") + "'"; }).join(", ") + ")";
1820
+ c += ` (${column.enum
1821
+ .map((value) => "'" + value.replace(/'/g, "''") + "'")
1822
+ .join(", ")})`;
2053
1823
  if (column.charset)
2054
- c += " CHARACTER SET \"" + column.charset + "\"";
1824
+ c += ` CHARACTER SET "${column.charset}"`;
2055
1825
  if (column.collation)
2056
- c += " COLLATE \"" + column.collation + "\"";
2057
- if (!column.isNullable)
2058
- c += " NOT NULL";
2059
- if (column.isNullable)
2060
- c += " NULL";
1826
+ c += ` COLLATE "${column.collation}"`;
1827
+ const isMariaDb = this.driver.options.type === "mariadb";
1828
+ if (isMariaDb &&
1829
+ column.asExpression &&
1830
+ ["VIRTUAL", "STORED"].includes(column.generatedType || "VIRTUAL")) {
1831
+ // do nothing - MariaDB does not support NULL/NOT NULL expressions for VIRTUAL columns and STORED columns
1832
+ }
1833
+ else {
1834
+ if (!column.isNullable)
1835
+ c += " NOT NULL";
1836
+ if (column.isNullable)
1837
+ c += " NULL";
1838
+ }
2061
1839
  if (column.isPrimary && !skipPrimary)
2062
1840
  c += " PRIMARY KEY";
2063
- if (column.isGenerated && column.generationStrategy === "increment") // don't use skipPrimary here since updates can update already exist primary without auto inc.
1841
+ if (column.isGenerated && column.generationStrategy === "increment")
1842
+ // don't use skipPrimary here since updates can update already exist primary without auto inc.
2064
1843
  c += " AUTO_INCREMENT";
2065
- if (column.comment)
2066
- c += " COMMENT '" + column.comment + "'";
1844
+ if (column.comment && column.comment.length > 0)
1845
+ c += ` COMMENT ${this.escapeComment(column.comment)}`;
2067
1846
  if (column.default !== undefined && column.default !== null)
2068
- c += " DEFAULT " + column.default;
1847
+ c += ` DEFAULT ${column.default}`;
2069
1848
  if (column.onUpdate)
2070
- c += " ON UPDATE " + column.onUpdate;
1849
+ c += ` ON UPDATE ${column.onUpdate}`;
2071
1850
  return c;
2072
- };
2073
- MysqlQueryRunner.prototype.getVersion = function () {
2074
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2075
- var result;
2076
- return tslib_1.__generator(this, function (_a) {
2077
- switch (_a.label) {
2078
- case 0: return [4 /*yield*/, this.query("SELECT VERSION() AS `version`")];
2079
- case 1:
2080
- result = _a.sent();
2081
- return [2 /*return*/, result[0]["version"]];
2082
- }
2083
- });
2084
- });
2085
- };
2086
- return MysqlQueryRunner;
2087
- }(BaseQueryRunner));
2088
- export { MysqlQueryRunner };
1851
+ }
1852
+ async getVersion() {
1853
+ const result = await this.query(`SELECT VERSION() AS \`version\``);
1854
+ return result[0]["version"];
1855
+ }
1856
+ /**
1857
+ * Checks if column display width is by default.
1858
+ */
1859
+ isDefaultColumnWidth(table, column, width) {
1860
+ // if table have metadata, we check if length is specified in column metadata
1861
+ if (this.connection.hasMetadata(table.name)) {
1862
+ const metadata = this.connection.getMetadata(table.name);
1863
+ const columnMetadata = metadata.findColumnWithDatabaseName(column.name);
1864
+ if (columnMetadata && columnMetadata.width)
1865
+ return false;
1866
+ }
1867
+ const defaultWidthForType = this.connection.driver.dataTypeDefaults &&
1868
+ this.connection.driver.dataTypeDefaults[column.type] &&
1869
+ this.connection.driver.dataTypeDefaults[column.type].width;
1870
+ if (defaultWidthForType) {
1871
+ // In MariaDB & MySQL 5.7, the default widths of certain numeric types are 1 less than
1872
+ // the usual defaults when the column is unsigned.
1873
+ const typesWithReducedUnsignedDefault = [
1874
+ "int",
1875
+ "tinyint",
1876
+ "smallint",
1877
+ "mediumint",
1878
+ ];
1879
+ const needsAdjustment = typesWithReducedUnsignedDefault.indexOf(column.type) !== -1;
1880
+ if (column.unsigned && needsAdjustment) {
1881
+ return defaultWidthForType - 1 === width;
1882
+ }
1883
+ else {
1884
+ return defaultWidthForType === width;
1885
+ }
1886
+ }
1887
+ return false;
1888
+ }
1889
+ }
2089
1890
 
2090
1891
  //# sourceMappingURL=MysqlQueryRunner.js.map