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,38 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var tslib_1 = require("tslib");
4
- var TransactionAlreadyStartedError_1 = require("../../error/TransactionAlreadyStartedError");
5
- var TransactionNotStartedError_1 = require("../../error/TransactionNotStartedError");
6
- var TableColumn_1 = require("../../schema-builder/table/TableColumn");
7
- var Table_1 = require("../../schema-builder/table/Table");
8
- var TableForeignKey_1 = require("../../schema-builder/table/TableForeignKey");
9
- var TableIndex_1 = require("../../schema-builder/table/TableIndex");
10
- var QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
11
- var View_1 = require("../../schema-builder/view/View");
12
- var Query_1 = require("../Query");
13
- var OrmUtils_1 = require("../../util/OrmUtils");
14
- var QueryFailedError_1 = require("../../error/QueryFailedError");
15
- var TableUnique_1 = require("../../schema-builder/table/TableUnique");
16
- var BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
17
- var Broadcaster_1 = require("../../subscriber/Broadcaster");
18
- var index_1 = require("../../index");
19
- var VersionUtils_1 = require("../../util/VersionUtils");
3
+ exports.MysqlQueryRunner = void 0;
4
+ const QueryResult_1 = require("../../query-runner/QueryResult");
5
+ const TransactionNotStartedError_1 = require("../../error/TransactionNotStartedError");
6
+ const TableColumn_1 = require("../../schema-builder/table/TableColumn");
7
+ const Table_1 = require("../../schema-builder/table/Table");
8
+ const TableForeignKey_1 = require("../../schema-builder/table/TableForeignKey");
9
+ const TableIndex_1 = require("../../schema-builder/table/TableIndex");
10
+ const QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
11
+ const View_1 = require("../../schema-builder/view/View");
12
+ const Query_1 = require("../Query");
13
+ const OrmUtils_1 = require("../../util/OrmUtils");
14
+ const QueryFailedError_1 = require("../../error/QueryFailedError");
15
+ const TableUnique_1 = require("../../schema-builder/table/TableUnique");
16
+ const BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
17
+ const Broadcaster_1 = require("../../subscriber/Broadcaster");
18
+ const VersionUtils_1 = require("../../util/VersionUtils");
19
+ const error_1 = require("../../error");
20
+ const MetadataTableType_1 = require("../types/MetadataTableType");
21
+ const InstanceChecker_1 = require("../../util/InstanceChecker");
20
22
  /**
21
23
  * Runs queries on a single mysql database connection.
22
24
  */
23
- var MysqlQueryRunner = /** @class */ (function (_super) {
24
- tslib_1.__extends(MysqlQueryRunner, _super);
25
+ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
25
26
  // -------------------------------------------------------------------------
26
27
  // Constructor
27
28
  // -------------------------------------------------------------------------
28
- function MysqlQueryRunner(driver, mode) {
29
- if (mode === void 0) { mode = "master"; }
30
- var _this = _super.call(this) || this;
31
- _this.driver = driver;
32
- _this.connection = driver.connection;
33
- _this.broadcaster = new Broadcaster_1.Broadcaster(_this);
34
- _this.mode = mode;
35
- return _this;
29
+ constructor(driver, mode) {
30
+ super();
31
+ this.driver = driver;
32
+ this.connection = driver.connection;
33
+ this.broadcaster = new Broadcaster_1.Broadcaster(this);
34
+ this.mode = mode;
36
35
  }
37
36
  // -------------------------------------------------------------------------
38
37
  // Public Methods
@@ -41,2008 +40,1778 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
41
40
  * Creates/uses database connection from the connection pool to perform further operations.
42
41
  * Returns obtained database connection.
43
42
  */
44
- MysqlQueryRunner.prototype.connect = function () {
45
- var _this = this;
43
+ connect() {
46
44
  if (this.databaseConnection)
47
45
  return Promise.resolve(this.databaseConnection);
48
46
  if (this.databaseConnectionPromise)
49
47
  return this.databaseConnectionPromise;
50
48
  if (this.mode === "slave" && this.driver.isReplicated) {
51
- this.databaseConnectionPromise = this.driver.obtainSlaveConnection().then(function (connection) {
52
- _this.databaseConnection = connection;
53
- return _this.databaseConnection;
49
+ this.databaseConnectionPromise = this.driver
50
+ .obtainSlaveConnection()
51
+ .then((connection) => {
52
+ this.databaseConnection = connection;
53
+ return this.databaseConnection;
54
54
  });
55
55
  }
56
- else { // master
57
- this.databaseConnectionPromise = this.driver.obtainMasterConnection().then(function (connection) {
58
- _this.databaseConnection = connection;
59
- return _this.databaseConnection;
56
+ else {
57
+ // master
58
+ this.databaseConnectionPromise = this.driver
59
+ .obtainMasterConnection()
60
+ .then((connection) => {
61
+ this.databaseConnection = connection;
62
+ return this.databaseConnection;
60
63
  });
61
64
  }
62
65
  return this.databaseConnectionPromise;
63
- };
66
+ }
64
67
  /**
65
68
  * Releases used database connection.
66
69
  * You cannot use query runner methods once its released.
67
70
  */
68
- MysqlQueryRunner.prototype.release = function () {
71
+ release() {
69
72
  this.isReleased = true;
70
73
  if (this.databaseConnection)
71
74
  this.databaseConnection.release();
72
75
  return Promise.resolve();
73
- };
76
+ }
74
77
  /**
75
78
  * Starts transaction on the current connection.
76
79
  */
77
- MysqlQueryRunner.prototype.startTransaction = function (isolationLevel) {
78
- return tslib_1.__awaiter(this, void 0, void 0, function () {
79
- return tslib_1.__generator(this, function (_a) {
80
- switch (_a.label) {
81
- case 0:
82
- if (this.isTransactionActive)
83
- throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
84
- this.isTransactionActive = true;
85
- if (!isolationLevel) return [3 /*break*/, 3];
86
- return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)];
87
- case 1:
88
- _a.sent();
89
- return [4 /*yield*/, this.query("START TRANSACTION")];
90
- case 2:
91
- _a.sent();
92
- return [3 /*break*/, 5];
93
- case 3: return [4 /*yield*/, this.query("START TRANSACTION")];
94
- case 4:
95
- _a.sent();
96
- _a.label = 5;
97
- case 5: return [2 /*return*/];
98
- }
99
- });
100
- });
101
- };
80
+ async startTransaction(isolationLevel) {
81
+ this.isTransactionActive = true;
82
+ try {
83
+ await this.broadcaster.broadcast("BeforeTransactionStart");
84
+ }
85
+ catch (err) {
86
+ this.isTransactionActive = false;
87
+ throw err;
88
+ }
89
+ if (this.transactionDepth === 0) {
90
+ if (isolationLevel) {
91
+ await this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
92
+ }
93
+ await this.query("START TRANSACTION");
94
+ }
95
+ else {
96
+ await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`);
97
+ }
98
+ this.transactionDepth += 1;
99
+ await this.broadcaster.broadcast("AfterTransactionStart");
100
+ }
102
101
  /**
103
102
  * Commits transaction.
104
103
  * Error will be thrown if transaction was not started.
105
104
  */
106
- MysqlQueryRunner.prototype.commitTransaction = function () {
107
- return tslib_1.__awaiter(this, void 0, void 0, function () {
108
- return tslib_1.__generator(this, function (_a) {
109
- switch (_a.label) {
110
- case 0:
111
- if (!this.isTransactionActive)
112
- throw new TransactionNotStartedError_1.TransactionNotStartedError();
113
- return [4 /*yield*/, this.query("COMMIT")];
114
- case 1:
115
- _a.sent();
116
- this.isTransactionActive = false;
117
- return [2 /*return*/];
118
- }
119
- });
120
- });
121
- };
105
+ async commitTransaction() {
106
+ if (!this.isTransactionActive)
107
+ throw new TransactionNotStartedError_1.TransactionNotStartedError();
108
+ await this.broadcaster.broadcast("BeforeTransactionCommit");
109
+ if (this.transactionDepth > 1) {
110
+ await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`);
111
+ }
112
+ else {
113
+ await this.query("COMMIT");
114
+ this.isTransactionActive = false;
115
+ }
116
+ this.transactionDepth -= 1;
117
+ await this.broadcaster.broadcast("AfterTransactionCommit");
118
+ }
122
119
  /**
123
120
  * Rollbacks transaction.
124
121
  * Error will be thrown if transaction was not started.
125
122
  */
126
- MysqlQueryRunner.prototype.rollbackTransaction = function () {
127
- return tslib_1.__awaiter(this, void 0, void 0, function () {
128
- return tslib_1.__generator(this, function (_a) {
129
- switch (_a.label) {
130
- case 0:
131
- if (!this.isTransactionActive)
132
- throw new TransactionNotStartedError_1.TransactionNotStartedError();
133
- return [4 /*yield*/, this.query("ROLLBACK")];
134
- case 1:
135
- _a.sent();
136
- this.isTransactionActive = false;
137
- return [2 /*return*/];
138
- }
139
- });
140
- });
141
- };
123
+ async rollbackTransaction() {
124
+ if (!this.isTransactionActive)
125
+ throw new TransactionNotStartedError_1.TransactionNotStartedError();
126
+ await this.broadcaster.broadcast("BeforeTransactionRollback");
127
+ if (this.transactionDepth > 1) {
128
+ await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`);
129
+ }
130
+ else {
131
+ await this.query("ROLLBACK");
132
+ this.isTransactionActive = false;
133
+ }
134
+ this.transactionDepth -= 1;
135
+ await this.broadcaster.broadcast("AfterTransactionRollback");
136
+ }
142
137
  /**
143
138
  * Executes a raw SQL query.
144
139
  */
145
- MysqlQueryRunner.prototype.query = function (query, parameters) {
146
- var _this = this;
140
+ async query(query, parameters, useStructuredResult = false) {
147
141
  if (this.isReleased)
148
142
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
149
- return new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
150
- var databaseConnection, queryStartTime_1, err_1;
151
- var _this = this;
152
- return tslib_1.__generator(this, function (_a) {
153
- switch (_a.label) {
154
- case 0:
155
- _a.trys.push([0, 2, , 3]);
156
- return [4 /*yield*/, this.connect()];
157
- case 1:
158
- databaseConnection = _a.sent();
159
- this.driver.connection.logger.logQuery(query, parameters, this);
160
- queryStartTime_1 = +new Date();
161
- databaseConnection.query(query, parameters, function (err, result) {
162
- // log slow queries if maxQueryExecution time is set
163
- var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;
164
- var queryEndTime = +new Date();
165
- var queryExecutionTime = queryEndTime - queryStartTime_1;
166
- if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
167
- _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);
168
- if (err) {
169
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
170
- return fail(new QueryFailedError_1.QueryFailedError(query, parameters, err));
171
- }
172
- ok(result);
173
- });
174
- return [3 /*break*/, 3];
175
- case 2:
176
- err_1 = _a.sent();
177
- fail(err_1);
178
- return [3 /*break*/, 3];
179
- case 3: return [2 /*return*/];
180
- }
181
- });
182
- }); });
183
- };
143
+ return new Promise(async (ok, fail) => {
144
+ try {
145
+ const databaseConnection = await this.connect();
146
+ this.driver.connection.logger.logQuery(query, parameters, this);
147
+ const queryStartTime = +new Date();
148
+ databaseConnection.query(query, parameters, (err, raw) => {
149
+ // log slow queries if maxQueryExecution time is set
150
+ const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
151
+ const queryEndTime = +new Date();
152
+ const queryExecutionTime = queryEndTime - queryStartTime;
153
+ if (maxQueryExecutionTime &&
154
+ queryExecutionTime > maxQueryExecutionTime)
155
+ this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
156
+ if (err) {
157
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
158
+ return fail(new QueryFailedError_1.QueryFailedError(query, parameters, err));
159
+ }
160
+ const result = new QueryResult_1.QueryResult();
161
+ result.raw = raw;
162
+ try {
163
+ result.records = Array.from(raw);
164
+ }
165
+ catch {
166
+ // Do nothing.
167
+ }
168
+ if (raw === null || raw === void 0 ? void 0 : raw.hasOwnProperty("affectedRows")) {
169
+ result.affected = raw.affectedRows;
170
+ }
171
+ if (useStructuredResult) {
172
+ ok(result);
173
+ }
174
+ else {
175
+ ok(result.raw);
176
+ }
177
+ });
178
+ }
179
+ catch (err) {
180
+ fail(err);
181
+ }
182
+ });
183
+ }
184
184
  /**
185
185
  * Returns raw data stream.
186
186
  */
187
- MysqlQueryRunner.prototype.stream = function (query, parameters, onEnd, onError) {
188
- var _this = this;
187
+ stream(query, parameters, onEnd, onError) {
189
188
  if (this.isReleased)
190
189
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
191
- return new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
192
- var databaseConnection, databaseQuery, err_2;
193
- return tslib_1.__generator(this, function (_a) {
194
- switch (_a.label) {
195
- case 0:
196
- _a.trys.push([0, 2, , 3]);
197
- return [4 /*yield*/, this.connect()];
198
- case 1:
199
- databaseConnection = _a.sent();
200
- this.driver.connection.logger.logQuery(query, parameters, this);
201
- databaseQuery = databaseConnection.query(query, parameters);
202
- if (onEnd)
203
- databaseQuery.on("end", onEnd);
204
- if (onError)
205
- databaseQuery.on("error", onError);
206
- ok(databaseQuery.stream());
207
- return [3 /*break*/, 3];
208
- case 2:
209
- err_2 = _a.sent();
210
- fail(err_2);
211
- return [3 /*break*/, 3];
212
- case 3: return [2 /*return*/];
213
- }
214
- });
215
- }); });
216
- };
190
+ return new Promise(async (ok, fail) => {
191
+ try {
192
+ const databaseConnection = await this.connect();
193
+ this.driver.connection.logger.logQuery(query, parameters, this);
194
+ const databaseQuery = databaseConnection.query(query, parameters);
195
+ if (onEnd)
196
+ databaseQuery.on("end", onEnd);
197
+ if (onError)
198
+ databaseQuery.on("error", onError);
199
+ ok(databaseQuery.stream());
200
+ }
201
+ catch (err) {
202
+ fail(err);
203
+ }
204
+ });
205
+ }
217
206
  /**
218
207
  * Returns all available database names including system databases.
219
208
  */
220
- MysqlQueryRunner.prototype.getDatabases = function () {
221
- return tslib_1.__awaiter(this, void 0, void 0, function () {
222
- return tslib_1.__generator(this, function (_a) {
223
- return [2 /*return*/, Promise.resolve([])];
224
- });
225
- });
226
- };
209
+ async getDatabases() {
210
+ return Promise.resolve([]);
211
+ }
227
212
  /**
228
213
  * Returns all available schema names including system schemas.
229
214
  * If database parameter specified, returns schemas of that database.
230
215
  */
231
- MysqlQueryRunner.prototype.getSchemas = function (database) {
232
- return tslib_1.__awaiter(this, void 0, void 0, function () {
233
- return tslib_1.__generator(this, function (_a) {
234
- throw new Error("MySql driver does not support table schemas");
235
- });
236
- });
237
- };
216
+ async getSchemas(database) {
217
+ throw new error_1.TypeORMError(`MySql driver does not support table schemas`);
218
+ }
238
219
  /**
239
220
  * Checks if database with the given name exist.
240
221
  */
241
- MysqlQueryRunner.prototype.hasDatabase = function (database) {
242
- return tslib_1.__awaiter(this, void 0, void 0, function () {
243
- var result;
244
- return tslib_1.__generator(this, function (_a) {
245
- switch (_a.label) {
246
- case 0: return [4 /*yield*/, this.query("SELECT * FROM `INFORMATION_SCHEMA`.`SCHEMATA` WHERE `SCHEMA_NAME` = '" + database + "'")];
247
- case 1:
248
- result = _a.sent();
249
- return [2 /*return*/, result.length ? true : false];
250
- }
251
- });
252
- });
253
- };
222
+ async hasDatabase(database) {
223
+ const result = await this.query(`SELECT * FROM \`INFORMATION_SCHEMA\`.\`SCHEMATA\` WHERE \`SCHEMA_NAME\` = '${database}'`);
224
+ return result.length ? true : false;
225
+ }
226
+ /**
227
+ * Loads currently using database
228
+ */
229
+ async getCurrentDatabase() {
230
+ const query = await this.query(`SELECT DATABASE() AS \`db_name\``);
231
+ return query[0]["db_name"];
232
+ }
254
233
  /**
255
234
  * Checks if schema with the given name exist.
256
235
  */
257
- MysqlQueryRunner.prototype.hasSchema = function (schema) {
258
- return tslib_1.__awaiter(this, void 0, void 0, function () {
259
- return tslib_1.__generator(this, function (_a) {
260
- throw new Error("MySql driver does not support table schemas");
261
- });
262
- });
263
- };
236
+ async hasSchema(schema) {
237
+ throw new error_1.TypeORMError(`MySql driver does not support table schemas`);
238
+ }
239
+ /**
240
+ * Loads currently using database schema
241
+ */
242
+ async getCurrentSchema() {
243
+ const query = await this.query(`SELECT SCHEMA() AS \`schema_name\``);
244
+ return query[0]["schema_name"];
245
+ }
264
246
  /**
265
247
  * Checks if table with the given name exist in the database.
266
248
  */
267
- MysqlQueryRunner.prototype.hasTable = function (tableOrName) {
268
- return tslib_1.__awaiter(this, void 0, void 0, function () {
269
- var parsedTableName, sql, result;
270
- return tslib_1.__generator(this, function (_a) {
271
- switch (_a.label) {
272
- case 0:
273
- parsedTableName = this.parseTableName(tableOrName);
274
- sql = "SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA` = '" + parsedTableName.database + "' AND `TABLE_NAME` = '" + parsedTableName.tableName + "'";
275
- return [4 /*yield*/, this.query(sql)];
276
- case 1:
277
- result = _a.sent();
278
- return [2 /*return*/, result.length ? true : false];
279
- }
280
- });
281
- });
282
- };
249
+ async hasTable(tableOrName) {
250
+ const parsedTableName = this.driver.parseTableName(tableOrName);
251
+ const sql = `SELECT * FROM \`INFORMATION_SCHEMA\`.\`COLUMNS\` WHERE \`TABLE_SCHEMA\` = '${parsedTableName.database}' AND \`TABLE_NAME\` = '${parsedTableName.tableName}'`;
252
+ const result = await this.query(sql);
253
+ return result.length ? true : false;
254
+ }
283
255
  /**
284
256
  * Checks if column with the given name exist in the given table.
285
257
  */
286
- MysqlQueryRunner.prototype.hasColumn = function (tableOrName, column) {
287
- return tslib_1.__awaiter(this, void 0, void 0, function () {
288
- var parsedTableName, columnName, sql, result;
289
- return tslib_1.__generator(this, function (_a) {
290
- switch (_a.label) {
291
- case 0:
292
- parsedTableName = this.parseTableName(tableOrName);
293
- columnName = column instanceof TableColumn_1.TableColumn ? column.name : column;
294
- sql = "SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA` = '" + parsedTableName.database + "' AND `TABLE_NAME` = '" + parsedTableName.tableName + "' AND `COLUMN_NAME` = '" + columnName + "'";
295
- return [4 /*yield*/, this.query(sql)];
296
- case 1:
297
- result = _a.sent();
298
- return [2 /*return*/, result.length ? true : false];
299
- }
300
- });
301
- });
302
- };
258
+ async hasColumn(tableOrName, column) {
259
+ const parsedTableName = this.driver.parseTableName(tableOrName);
260
+ const columnName = InstanceChecker_1.InstanceChecker.isTableColumn(column)
261
+ ? column.name
262
+ : column;
263
+ const sql = `SELECT * FROM \`INFORMATION_SCHEMA\`.\`COLUMNS\` WHERE \`TABLE_SCHEMA\` = '${parsedTableName.database}' AND \`TABLE_NAME\` = '${parsedTableName.tableName}' AND \`COLUMN_NAME\` = '${columnName}'`;
264
+ const result = await this.query(sql);
265
+ return result.length ? true : false;
266
+ }
303
267
  /**
304
268
  * Creates a new database.
305
269
  */
306
- MysqlQueryRunner.prototype.createDatabase = function (database, ifNotExist) {
307
- return tslib_1.__awaiter(this, void 0, void 0, function () {
308
- var up, down;
309
- return tslib_1.__generator(this, function (_a) {
310
- switch (_a.label) {
311
- case 0:
312
- up = ifNotExist ? "CREATE DATABASE IF NOT EXISTS `" + database + "`" : "CREATE DATABASE `" + database + "`";
313
- down = "DROP DATABASE `" + database + "`";
314
- return [4 /*yield*/, this.executeQueries(new Query_1.Query(up), new Query_1.Query(down))];
315
- case 1:
316
- _a.sent();
317
- return [2 /*return*/];
318
- }
319
- });
320
- });
321
- };
270
+ async createDatabase(database, ifNotExist) {
271
+ const up = ifNotExist
272
+ ? `CREATE DATABASE IF NOT EXISTS \`${database}\``
273
+ : `CREATE DATABASE \`${database}\``;
274
+ const down = `DROP DATABASE \`${database}\``;
275
+ await this.executeQueries(new Query_1.Query(up), new Query_1.Query(down));
276
+ }
322
277
  /**
323
278
  * Drops database.
324
279
  */
325
- MysqlQueryRunner.prototype.dropDatabase = function (database, ifExist) {
326
- return tslib_1.__awaiter(this, void 0, void 0, function () {
327
- var up, down;
328
- return tslib_1.__generator(this, function (_a) {
329
- switch (_a.label) {
330
- case 0:
331
- up = ifExist ? "DROP DATABASE IF EXISTS `" + database + "`" : "DROP DATABASE `" + database + "`";
332
- down = "CREATE DATABASE `" + database + "`";
333
- return [4 /*yield*/, this.executeQueries(new Query_1.Query(up), new Query_1.Query(down))];
334
- case 1:
335
- _a.sent();
336
- return [2 /*return*/];
337
- }
338
- });
339
- });
340
- };
280
+ async dropDatabase(database, ifExist) {
281
+ const up = ifExist
282
+ ? `DROP DATABASE IF EXISTS \`${database}\``
283
+ : `DROP DATABASE \`${database}\``;
284
+ const down = `CREATE DATABASE \`${database}\``;
285
+ await this.executeQueries(new Query_1.Query(up), new Query_1.Query(down));
286
+ }
341
287
  /**
342
288
  * Creates a new table schema.
343
289
  */
344
- MysqlQueryRunner.prototype.createSchema = function (schema, ifNotExist) {
345
- return tslib_1.__awaiter(this, void 0, void 0, function () {
346
- return tslib_1.__generator(this, function (_a) {
347
- throw new Error("Schema create queries are not supported by MySql driver.");
348
- });
349
- });
350
- };
290
+ async createSchema(schemaPath, ifNotExist) {
291
+ throw new error_1.TypeORMError(`Schema create queries are not supported by MySql driver.`);
292
+ }
351
293
  /**
352
294
  * Drops table schema.
353
295
  */
354
- MysqlQueryRunner.prototype.dropSchema = function (schemaPath, ifExist) {
355
- return tslib_1.__awaiter(this, void 0, void 0, function () {
356
- return tslib_1.__generator(this, function (_a) {
357
- throw new Error("Schema drop queries are not supported by MySql driver.");
358
- });
359
- });
360
- };
296
+ async dropSchema(schemaPath, ifExist) {
297
+ throw new error_1.TypeORMError(`Schema drop queries are not supported by MySql driver.`);
298
+ }
361
299
  /**
362
300
  * Creates a new table.
363
301
  */
364
- MysqlQueryRunner.prototype.createTable = function (table, ifNotExist, createForeignKeys) {
365
- if (ifNotExist === void 0) { ifNotExist = false; }
366
- if (createForeignKeys === void 0) { createForeignKeys = true; }
367
- return tslib_1.__awaiter(this, void 0, void 0, function () {
368
- var isTableExist, upQueries, downQueries;
369
- var _this = this;
370
- return tslib_1.__generator(this, function (_a) {
371
- switch (_a.label) {
372
- case 0:
373
- if (!ifNotExist) return [3 /*break*/, 2];
374
- return [4 /*yield*/, this.hasTable(table)];
375
- case 1:
376
- isTableExist = _a.sent();
377
- if (isTableExist)
378
- return [2 /*return*/, Promise.resolve()];
379
- _a.label = 2;
380
- case 2:
381
- upQueries = [];
382
- downQueries = [];
383
- upQueries.push(this.createTableSql(table, createForeignKeys));
384
- downQueries.push(this.dropTableSql(table));
385
- // we must first drop indices, than drop foreign keys, because drop queries runs in reversed order
386
- // and foreign keys will be dropped first as indices. This order is very important, because we can't drop index
387
- // if it related to the foreign key.
388
- // createTable does not need separate method to create indices, because it create indices in the same query with table creation.
389
- table.indices.forEach(function (index) { return downQueries.push(_this.dropIndexSql(table, index)); });
390
- // if createForeignKeys is true, we must drop created foreign keys in down query.
391
- // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
392
- if (createForeignKeys)
393
- table.foreignKeys.forEach(function (foreignKey) { return downQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
394
- return [2 /*return*/, this.executeQueries(upQueries, downQueries)];
395
- }
396
- });
397
- });
398
- };
302
+ async createTable(table, ifNotExist = false, createForeignKeys = true) {
303
+ if (ifNotExist) {
304
+ const isTableExist = await this.hasTable(table);
305
+ if (isTableExist)
306
+ return Promise.resolve();
307
+ }
308
+ const upQueries = [];
309
+ const downQueries = [];
310
+ upQueries.push(this.createTableSql(table, createForeignKeys));
311
+ downQueries.push(this.dropTableSql(table));
312
+ // we must first drop indices, than drop foreign keys, because drop queries runs in reversed order
313
+ // and foreign keys will be dropped first as indices. This order is very important, because we can't drop index
314
+ // if it related to the foreign key.
315
+ // createTable does not need separate method to create indices, because it create indices in the same query with table creation.
316
+ table.indices.forEach((index) => downQueries.push(this.dropIndexSql(table, index)));
317
+ // if createForeignKeys is true, we must drop created foreign keys in down query.
318
+ // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
319
+ if (createForeignKeys)
320
+ table.foreignKeys.forEach((foreignKey) => downQueries.push(this.dropForeignKeySql(table, foreignKey)));
321
+ return this.executeQueries(upQueries, downQueries);
322
+ }
399
323
  /**
400
324
  * Drop the table.
401
325
  */
402
- MysqlQueryRunner.prototype.dropTable = function (target, ifExist, dropForeignKeys) {
403
- if (dropForeignKeys === void 0) { dropForeignKeys = true; }
404
- return tslib_1.__awaiter(this, void 0, void 0, function () {
405
- var isTableExist, createForeignKeys, tableName, table, upQueries, downQueries;
406
- var _this = this;
407
- return tslib_1.__generator(this, function (_a) {
408
- switch (_a.label) {
409
- case 0:
410
- if (!ifExist) return [3 /*break*/, 2];
411
- return [4 /*yield*/, this.hasTable(target)];
412
- case 1:
413
- isTableExist = _a.sent();
414
- if (!isTableExist)
415
- return [2 /*return*/, Promise.resolve()];
416
- _a.label = 2;
417
- case 2:
418
- createForeignKeys = dropForeignKeys;
419
- tableName = target instanceof Table_1.Table ? target.name : target;
420
- return [4 /*yield*/, this.getCachedTable(tableName)];
421
- case 3:
422
- table = _a.sent();
423
- upQueries = [];
424
- downQueries = [];
425
- if (dropForeignKeys)
426
- table.foreignKeys.forEach(function (foreignKey) { return upQueries.push(_this.dropForeignKeySql(table, foreignKey)); });
427
- table.indices.forEach(function (index) { return upQueries.push(_this.dropIndexSql(table, index)); });
428
- upQueries.push(this.dropTableSql(table));
429
- downQueries.push(this.createTableSql(table, createForeignKeys));
430
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
431
- case 4:
432
- _a.sent();
433
- return [2 /*return*/];
434
- }
435
- });
436
- });
437
- };
326
+ async dropTable(target, ifExist, dropForeignKeys = true) {
327
+ // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need
328
+ // to perform drop queries for foreign keys and indices.
329
+ if (ifExist) {
330
+ const isTableExist = await this.hasTable(target);
331
+ if (!isTableExist)
332
+ return Promise.resolve();
333
+ }
334
+ // if dropTable called with dropForeignKeys = true, we must create foreign keys in down query.
335
+ const createForeignKeys = dropForeignKeys;
336
+ const tablePath = this.getTablePath(target);
337
+ const table = await this.getCachedTable(tablePath);
338
+ const upQueries = [];
339
+ const downQueries = [];
340
+ if (dropForeignKeys)
341
+ table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
342
+ table.indices.forEach((index) => upQueries.push(this.dropIndexSql(table, index)));
343
+ upQueries.push(this.dropTableSql(table));
344
+ downQueries.push(this.createTableSql(table, createForeignKeys));
345
+ await this.executeQueries(upQueries, downQueries);
346
+ }
438
347
  /**
439
348
  * Creates a new view.
440
349
  */
441
- MysqlQueryRunner.prototype.createView = function (view) {
442
- return tslib_1.__awaiter(this, void 0, void 0, function () {
443
- var upQueries, downQueries, _a, _b, _c, _d;
444
- return tslib_1.__generator(this, function (_e) {
445
- switch (_e.label) {
446
- case 0:
447
- upQueries = [];
448
- downQueries = [];
449
- upQueries.push(this.createViewSql(view));
450
- _b = (_a = upQueries).push;
451
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
452
- case 1:
453
- _b.apply(_a, [_e.sent()]);
454
- downQueries.push(this.dropViewSql(view));
455
- _d = (_c = downQueries).push;
456
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
457
- case 2:
458
- _d.apply(_c, [_e.sent()]);
459
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
460
- case 3:
461
- _e.sent();
462
- return [2 /*return*/];
463
- }
464
- });
465
- });
466
- };
350
+ async createView(view) {
351
+ const upQueries = [];
352
+ const downQueries = [];
353
+ upQueries.push(this.createViewSql(view));
354
+ upQueries.push(await this.insertViewDefinitionSql(view));
355
+ downQueries.push(this.dropViewSql(view));
356
+ downQueries.push(await this.deleteViewDefinitionSql(view));
357
+ await this.executeQueries(upQueries, downQueries);
358
+ }
467
359
  /**
468
360
  * Drops the view.
469
361
  */
470
- MysqlQueryRunner.prototype.dropView = function (target) {
471
- return tslib_1.__awaiter(this, void 0, void 0, function () {
472
- var viewName, view, upQueries, downQueries, _a, _b, _c, _d;
473
- return tslib_1.__generator(this, function (_e) {
474
- switch (_e.label) {
475
- case 0:
476
- viewName = target instanceof View_1.View ? target.name : target;
477
- return [4 /*yield*/, this.getCachedView(viewName)];
478
- case 1:
479
- view = _e.sent();
480
- upQueries = [];
481
- downQueries = [];
482
- _b = (_a = upQueries).push;
483
- return [4 /*yield*/, this.deleteViewDefinitionSql(view)];
484
- case 2:
485
- _b.apply(_a, [_e.sent()]);
486
- upQueries.push(this.dropViewSql(view));
487
- _d = (_c = downQueries).push;
488
- return [4 /*yield*/, this.insertViewDefinitionSql(view)];
489
- case 3:
490
- _d.apply(_c, [_e.sent()]);
491
- downQueries.push(this.createViewSql(view));
492
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
493
- case 4:
494
- _e.sent();
495
- return [2 /*return*/];
496
- }
497
- });
498
- });
499
- };
362
+ async dropView(target) {
363
+ const viewName = InstanceChecker_1.InstanceChecker.isView(target) ? target.name : target;
364
+ const view = await this.getCachedView(viewName);
365
+ const upQueries = [];
366
+ const downQueries = [];
367
+ upQueries.push(await this.deleteViewDefinitionSql(view));
368
+ upQueries.push(this.dropViewSql(view));
369
+ downQueries.push(await this.insertViewDefinitionSql(view));
370
+ downQueries.push(this.createViewSql(view));
371
+ await this.executeQueries(upQueries, downQueries);
372
+ }
500
373
  /**
501
374
  * Renames a table.
502
375
  */
503
- MysqlQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
504
- return tslib_1.__awaiter(this, void 0, void 0, function () {
505
- var upQueries, downQueries, oldTable, _a, newTable, dbName;
506
- var _this = this;
507
- return tslib_1.__generator(this, function (_b) {
508
- switch (_b.label) {
509
- case 0:
510
- upQueries = [];
511
- downQueries = [];
512
- if (!(oldTableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
513
- _a = oldTableOrName;
514
- return [3 /*break*/, 3];
515
- case 1: return [4 /*yield*/, this.getCachedTable(oldTableOrName)];
516
- case 2:
517
- _a = _b.sent();
518
- _b.label = 3;
519
- case 3:
520
- oldTable = _a;
521
- newTable = oldTable.clone();
522
- dbName = oldTable.name.indexOf(".") === -1 ? undefined : oldTable.name.split(".")[0];
523
- newTable.name = dbName ? dbName + "." + newTableName : newTableName;
524
- // rename table
525
- upQueries.push(new Query_1.Query("RENAME TABLE " + this.escapePath(oldTable.name) + " TO " + this.escapePath(newTable.name)));
526
- downQueries.push(new Query_1.Query("RENAME TABLE " + this.escapePath(newTable.name) + " TO " + this.escapePath(oldTable.name)));
527
- // rename index constraints
528
- newTable.indices.forEach(function (index) {
529
- // build new constraint name
530
- var columnNames = index.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
531
- var newIndexName = _this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
532
- // build queries
533
- var indexType = "";
534
- if (index.isUnique)
535
- indexType += "UNIQUE ";
536
- if (index.isSpatial)
537
- indexType += "SPATIAL ";
538
- if (index.isFulltext)
539
- indexType += "FULLTEXT ";
540
- upQueries.push(new Query_1.Query("ALTER TABLE " + _this.escapePath(newTable) + " DROP INDEX `" + index.name + "`, ADD " + indexType + "INDEX `" + newIndexName + "` (" + columnNames + ")"));
541
- downQueries.push(new Query_1.Query("ALTER TABLE " + _this.escapePath(newTable) + " DROP INDEX `" + newIndexName + "`, ADD " + indexType + "INDEX `" + index.name + "` (" + columnNames + ")"));
542
- // replace constraint name
543
- index.name = newIndexName;
544
- });
545
- // rename foreign key constraint
546
- newTable.foreignKeys.forEach(function (foreignKey) {
547
- // build new constraint name
548
- var columnNames = foreignKey.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
549
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "`" + column + "`"; }).join(",");
550
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
551
- // build queries
552
- var up = "ALTER TABLE " + _this.escapePath(newTable) + " DROP FOREIGN KEY `" + foreignKey.name + "`, ADD CONSTRAINT `" + newForeignKeyName + "` FOREIGN KEY (" + columnNames + ") " +
553
- ("REFERENCES " + _this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
554
- if (foreignKey.onDelete)
555
- up += " ON DELETE " + foreignKey.onDelete;
556
- if (foreignKey.onUpdate)
557
- up += " ON UPDATE " + foreignKey.onUpdate;
558
- var down = "ALTER TABLE " + _this.escapePath(newTable) + " DROP FOREIGN KEY `" + newForeignKeyName + "`, ADD CONSTRAINT `" + foreignKey.name + "` FOREIGN KEY (" + columnNames + ") " +
559
- ("REFERENCES " + _this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
560
- if (foreignKey.onDelete)
561
- down += " ON DELETE " + foreignKey.onDelete;
562
- if (foreignKey.onUpdate)
563
- down += " ON UPDATE " + foreignKey.onUpdate;
564
- upQueries.push(new Query_1.Query(up));
565
- downQueries.push(new Query_1.Query(down));
566
- // replace constraint name
567
- foreignKey.name = newForeignKeyName;
568
- });
569
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
570
- case 4:
571
- _b.sent();
572
- // rename old table and replace it in cached tabled;
573
- oldTable.name = newTable.name;
574
- this.replaceCachedTable(oldTable, newTable);
575
- return [2 /*return*/];
576
- }
577
- });
376
+ async renameTable(oldTableOrName, newTableName) {
377
+ const upQueries = [];
378
+ const downQueries = [];
379
+ const oldTable = InstanceChecker_1.InstanceChecker.isTable(oldTableOrName)
380
+ ? oldTableOrName
381
+ : await this.getCachedTable(oldTableOrName);
382
+ const newTable = oldTable.clone();
383
+ const { database } = this.driver.parseTableName(oldTable);
384
+ newTable.name = database ? `${database}.${newTableName}` : newTableName;
385
+ // rename table
386
+ upQueries.push(new Query_1.Query(`RENAME TABLE ${this.escapePath(oldTable)} TO ${this.escapePath(newTable)}`));
387
+ downQueries.push(new Query_1.Query(`RENAME TABLE ${this.escapePath(newTable)} TO ${this.escapePath(oldTable)}`));
388
+ // rename index constraints
389
+ newTable.indices.forEach((index) => {
390
+ // build new constraint name
391
+ const columnNames = index.columnNames
392
+ .map((column) => `\`${column}\``)
393
+ .join(", ");
394
+ const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
395
+ // build queries
396
+ let indexType = "";
397
+ if (index.isUnique)
398
+ indexType += "UNIQUE ";
399
+ if (index.isSpatial)
400
+ indexType += "SPATIAL ";
401
+ if (index.isFulltext)
402
+ indexType += "FULLTEXT ";
403
+ const indexParser = index.isFulltext && index.parser
404
+ ? ` WITH PARSER ${index.parser}`
405
+ : "";
406
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(newTable)} DROP INDEX \`${index.name}\`, ADD ${indexType}INDEX \`${newIndexName}\` (${columnNames})${indexParser}`));
407
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(newTable)} DROP INDEX \`${newIndexName}\`, ADD ${indexType}INDEX \`${index.name}\` (${columnNames})${indexParser}`));
408
+ // replace constraint name
409
+ index.name = newIndexName;
410
+ });
411
+ // rename foreign key constraint
412
+ newTable.foreignKeys.forEach((foreignKey) => {
413
+ // build new constraint name
414
+ const columnNames = foreignKey.columnNames
415
+ .map((column) => `\`${column}\``)
416
+ .join(", ");
417
+ const referencedColumnNames = foreignKey.referencedColumnNames
418
+ .map((column) => `\`${column}\``)
419
+ .join(",");
420
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
421
+ // build queries
422
+ let up = `ALTER TABLE ${this.escapePath(newTable)} DROP FOREIGN KEY \`${foreignKey.name}\`, ADD CONSTRAINT \`${newForeignKeyName}\` FOREIGN KEY (${columnNames}) ` +
423
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
424
+ if (foreignKey.onDelete)
425
+ up += ` ON DELETE ${foreignKey.onDelete}`;
426
+ if (foreignKey.onUpdate)
427
+ up += ` ON UPDATE ${foreignKey.onUpdate}`;
428
+ let down = `ALTER TABLE ${this.escapePath(newTable)} DROP FOREIGN KEY \`${newForeignKeyName}\`, ADD CONSTRAINT \`${foreignKey.name}\` FOREIGN KEY (${columnNames}) ` +
429
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
430
+ if (foreignKey.onDelete)
431
+ down += ` ON DELETE ${foreignKey.onDelete}`;
432
+ if (foreignKey.onUpdate)
433
+ down += ` ON UPDATE ${foreignKey.onUpdate}`;
434
+ upQueries.push(new Query_1.Query(up));
435
+ downQueries.push(new Query_1.Query(down));
436
+ // replace constraint name
437
+ foreignKey.name = newForeignKeyName;
578
438
  });
579
- };
439
+ await this.executeQueries(upQueries, downQueries);
440
+ // rename old table and replace it in cached tabled;
441
+ oldTable.name = newTable.name;
442
+ this.replaceCachedTable(oldTable, newTable);
443
+ }
580
444
  /**
581
445
  * Creates a new column from the column in the table.
582
446
  */
583
- MysqlQueryRunner.prototype.addColumn = function (tableOrName, column) {
584
- return tslib_1.__awaiter(this, void 0, void 0, function () {
585
- var table, _a, clonedTable, upQueries, downQueries, skipColumnLevelPrimary, generatedColumn, nonGeneratedColumn, primaryColumns, columnNames, nonGeneratedColumn, columnIndex, uniqueIndex;
586
- return tslib_1.__generator(this, function (_b) {
587
- switch (_b.label) {
588
- case 0:
589
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
590
- _a = tableOrName;
591
- return [3 /*break*/, 3];
592
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
593
- case 2:
594
- _a = _b.sent();
595
- _b.label = 3;
596
- case 3:
597
- table = _a;
598
- clonedTable = table.clone();
599
- upQueries = [];
600
- downQueries = [];
601
- skipColumnLevelPrimary = clonedTable.primaryColumns.length > 0;
602
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(column, skipColumnLevelPrimary, false)));
603
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN `" + column.name + "`"));
604
- // create or update primary key constraint
605
- if (column.isPrimary && skipColumnLevelPrimary) {
606
- generatedColumn = clonedTable.columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
607
- if (generatedColumn) {
608
- nonGeneratedColumn = generatedColumn.clone();
609
- nonGeneratedColumn.isGenerated = false;
610
- nonGeneratedColumn.generationStrategy = undefined;
611
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + column.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
612
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(column, true)));
613
- }
614
- primaryColumns = clonedTable.primaryColumns;
615
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
616
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
617
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
618
- primaryColumns.push(column);
619
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
620
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
621
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
622
- // if we previously dropped AUTO_INCREMENT property, we must bring it back
623
- if (generatedColumn) {
624
- nonGeneratedColumn = generatedColumn.clone();
625
- nonGeneratedColumn.isGenerated = false;
626
- nonGeneratedColumn.generationStrategy = undefined;
627
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(column, true)));
628
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + column.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
629
- }
630
- }
631
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
632
- if (columnIndex) {
633
- upQueries.push(this.createIndexSql(table, columnIndex));
634
- downQueries.push(this.dropIndexSql(table, columnIndex));
635
- }
636
- else if (column.isUnique) {
637
- uniqueIndex = new TableIndex_1.TableIndex({
638
- name: this.connection.namingStrategy.indexName(table.name, [column.name]),
639
- columnNames: [column.name],
640
- isUnique: true
641
- });
642
- clonedTable.indices.push(uniqueIndex);
643
- clonedTable.uniques.push(new TableUnique_1.TableUnique({
644
- name: uniqueIndex.name,
645
- columnNames: uniqueIndex.columnNames
646
- }));
647
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD UNIQUE INDEX `" + uniqueIndex.name + "` (`" + column.name + "`)"));
648
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP INDEX `" + uniqueIndex.name + "`"));
649
- }
650
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
651
- case 4:
652
- _b.sent();
653
- clonedTable.addColumn(column);
654
- this.replaceCachedTable(table, clonedTable);
655
- return [2 /*return*/];
656
- }
447
+ async addColumn(tableOrName, column) {
448
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
449
+ ? tableOrName
450
+ : await this.getCachedTable(tableOrName);
451
+ const clonedTable = table.clone();
452
+ const upQueries = [];
453
+ const downQueries = [];
454
+ const skipColumnLevelPrimary = clonedTable.primaryColumns.length > 0;
455
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(column, skipColumnLevelPrimary, false)}`));
456
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN \`${column.name}\``));
457
+ // create or update primary key constraint
458
+ if (column.isPrimary && skipColumnLevelPrimary) {
459
+ // if we already have generated column, we must temporary drop AUTO_INCREMENT property.
460
+ const generatedColumn = clonedTable.columns.find((column) => column.isGenerated &&
461
+ column.generationStrategy === "increment");
462
+ if (generatedColumn) {
463
+ const nonGeneratedColumn = generatedColumn.clone();
464
+ nonGeneratedColumn.isGenerated = false;
465
+ nonGeneratedColumn.generationStrategy = undefined;
466
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${column.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
467
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(column, true)}`));
468
+ }
469
+ const primaryColumns = clonedTable.primaryColumns;
470
+ let columnNames = primaryColumns
471
+ .map((column) => `\`${column.name}\``)
472
+ .join(", ");
473
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
474
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
475
+ primaryColumns.push(column);
476
+ columnNames = primaryColumns
477
+ .map((column) => `\`${column.name}\``)
478
+ .join(", ");
479
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
480
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
481
+ // if we previously dropped AUTO_INCREMENT property, we must bring it back
482
+ if (generatedColumn) {
483
+ const nonGeneratedColumn = generatedColumn.clone();
484
+ nonGeneratedColumn.isGenerated = false;
485
+ nonGeneratedColumn.generationStrategy = undefined;
486
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(column, true)}`));
487
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${column.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
488
+ }
489
+ }
490
+ // create column index
491
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
492
+ index.columnNames[0] === column.name);
493
+ if (columnIndex) {
494
+ upQueries.push(this.createIndexSql(table, columnIndex));
495
+ downQueries.push(this.dropIndexSql(table, columnIndex));
496
+ }
497
+ else if (column.isUnique) {
498
+ const uniqueIndex = new TableIndex_1.TableIndex({
499
+ name: this.connection.namingStrategy.indexName(table, [
500
+ column.name,
501
+ ]),
502
+ columnNames: [column.name],
503
+ isUnique: true,
657
504
  });
658
- });
659
- };
505
+ clonedTable.indices.push(uniqueIndex);
506
+ clonedTable.uniques.push(new TableUnique_1.TableUnique({
507
+ name: uniqueIndex.name,
508
+ columnNames: uniqueIndex.columnNames,
509
+ }));
510
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD UNIQUE INDEX \`${uniqueIndex.name}\` (\`${column.name}\`)`));
511
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${uniqueIndex.name}\``));
512
+ }
513
+ await this.executeQueries(upQueries, downQueries);
514
+ clonedTable.addColumn(column);
515
+ this.replaceCachedTable(table, clonedTable);
516
+ }
660
517
  /**
661
518
  * Creates a new columns from the column in the table.
662
519
  */
663
- MysqlQueryRunner.prototype.addColumns = function (tableOrName, columns) {
664
- return tslib_1.__awaiter(this, void 0, void 0, function () {
665
- var _this = this;
666
- return tslib_1.__generator(this, function (_a) {
667
- switch (_a.label) {
668
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(columns, function (column) { return _this.addColumn(tableOrName, column); })];
669
- case 1:
670
- _a.sent();
671
- return [2 /*return*/];
672
- }
673
- });
674
- });
675
- };
520
+ async addColumns(tableOrName, columns) {
521
+ for (const column of columns) {
522
+ await this.addColumn(tableOrName, column);
523
+ }
524
+ }
676
525
  /**
677
526
  * Renames column in the given table.
678
527
  */
679
- MysqlQueryRunner.prototype.renameColumn = function (tableOrName, oldTableColumnOrName, newTableColumnOrName) {
680
- return tslib_1.__awaiter(this, void 0, void 0, function () {
681
- var table, _a, oldColumn, newColumn;
682
- return tslib_1.__generator(this, function (_b) {
683
- switch (_b.label) {
684
- case 0:
685
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
686
- _a = tableOrName;
687
- return [3 /*break*/, 3];
688
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
689
- case 2:
690
- _a = _b.sent();
691
- _b.label = 3;
692
- case 3:
693
- table = _a;
694
- oldColumn = oldTableColumnOrName instanceof TableColumn_1.TableColumn ? oldTableColumnOrName : table.columns.find(function (c) { return c.name === oldTableColumnOrName; });
695
- if (!oldColumn)
696
- throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
697
- newColumn = undefined;
698
- if (newTableColumnOrName instanceof TableColumn_1.TableColumn) {
699
- newColumn = newTableColumnOrName;
700
- }
701
- else {
702
- newColumn = oldColumn.clone();
703
- newColumn.name = newTableColumnOrName;
704
- }
705
- return [4 /*yield*/, this.changeColumn(table, oldColumn, newColumn)];
706
- case 4:
707
- _b.sent();
708
- return [2 /*return*/];
709
- }
710
- });
711
- });
712
- };
528
+ async renameColumn(tableOrName, oldTableColumnOrName, newTableColumnOrName) {
529
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
530
+ ? tableOrName
531
+ : await this.getCachedTable(tableOrName);
532
+ const oldColumn = InstanceChecker_1.InstanceChecker.isTableColumn(oldTableColumnOrName)
533
+ ? oldTableColumnOrName
534
+ : table.columns.find((c) => c.name === oldTableColumnOrName);
535
+ if (!oldColumn)
536
+ throw new error_1.TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
537
+ let newColumn = undefined;
538
+ if (InstanceChecker_1.InstanceChecker.isTableColumn(newTableColumnOrName)) {
539
+ newColumn = newTableColumnOrName;
540
+ }
541
+ else {
542
+ newColumn = oldColumn.clone();
543
+ newColumn.name = newTableColumnOrName;
544
+ }
545
+ await this.changeColumn(table, oldColumn, newColumn);
546
+ }
713
547
  /**
714
548
  * Changes a column in the table.
715
549
  */
716
- MysqlQueryRunner.prototype.changeColumn = function (tableOrName, oldColumnOrName, newColumn) {
717
- return tslib_1.__awaiter(this, void 0, void 0, function () {
718
- var table, _a, clonedTable, upQueries, downQueries, oldColumn, oldTableColumn, generatedColumn, nonGeneratedColumn, primaryColumns, columnNames, column, columnNames, primaryColumn, column, columnNames, nonGeneratedColumn, uniqueIndex, uniqueIndex_1, tableUnique;
719
- var _this = this;
720
- return tslib_1.__generator(this, function (_b) {
721
- switch (_b.label) {
722
- case 0:
723
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
724
- _a = tableOrName;
725
- return [3 /*break*/, 3];
726
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
727
- case 2:
728
- _a = _b.sent();
729
- _b.label = 3;
730
- case 3:
731
- table = _a;
732
- clonedTable = table.clone();
733
- upQueries = [];
734
- downQueries = [];
735
- oldColumn = oldColumnOrName instanceof TableColumn_1.TableColumn
736
- ? oldColumnOrName
737
- : table.columns.find(function (column) { return column.name === oldColumnOrName; });
738
- if (!oldColumn)
739
- throw new Error("Column \"" + oldColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
740
- if (!((newColumn.isGenerated !== oldColumn.isGenerated && newColumn.generationStrategy !== "uuid")
741
- || oldColumn.type !== newColumn.type
742
- || oldColumn.length !== newColumn.length
743
- || oldColumn.generatedType !== newColumn.generatedType)) return [3 /*break*/, 6];
744
- return [4 /*yield*/, this.dropColumn(table, oldColumn)];
745
- case 4:
746
- _b.sent();
747
- return [4 /*yield*/, this.addColumn(table, newColumn)];
748
- case 5:
749
- _b.sent();
750
- // update cloned table
751
- clonedTable = table.clone();
752
- return [3 /*break*/, 7];
753
- case 6:
754
- if (newColumn.name !== oldColumn.name) {
755
- // We don't change any column properties, just rename it.
756
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + oldColumn.name + "` `" + newColumn.name + "` " + this.buildCreateColumnSql(oldColumn, true, true)));
757
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + newColumn.name + "` `" + oldColumn.name + "` " + this.buildCreateColumnSql(oldColumn, true, true)));
758
- // rename index constraints
759
- clonedTable.findColumnIndices(oldColumn).forEach(function (index) {
760
- // build new constraint name
761
- index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
762
- index.columnNames.push(newColumn.name);
763
- var columnNames = index.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
764
- var newIndexName = _this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
765
- // build queries
766
- var indexType = "";
767
- if (index.isUnique)
768
- indexType += "UNIQUE ";
769
- if (index.isSpatial)
770
- indexType += "SPATIAL ";
771
- if (index.isFulltext)
772
- indexType += "FULLTEXT ";
773
- upQueries.push(new Query_1.Query("ALTER TABLE " + _this.escapePath(table) + " DROP INDEX `" + index.name + "`, ADD " + indexType + "INDEX `" + newIndexName + "` (" + columnNames + ")"));
774
- downQueries.push(new Query_1.Query("ALTER TABLE " + _this.escapePath(table) + " DROP INDEX `" + newIndexName + "`, ADD " + indexType + "INDEX `" + index.name + "` (" + columnNames + ")"));
775
- // replace constraint name
776
- index.name = newIndexName;
777
- });
778
- // rename foreign key constraints
779
- clonedTable.findColumnForeignKeys(oldColumn).forEach(function (foreignKey) {
780
- // build new constraint name
781
- foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
782
- foreignKey.columnNames.push(newColumn.name);
783
- var columnNames = foreignKey.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
784
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "`" + column + "`"; }).join(",");
785
- var newForeignKeyName = _this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
786
- // build queries
787
- var up = "ALTER TABLE " + _this.escapePath(table) + " DROP FOREIGN KEY `" + foreignKey.name + "`, ADD CONSTRAINT `" + newForeignKeyName + "` FOREIGN KEY (" + columnNames + ") " +
788
- ("REFERENCES " + _this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
789
- if (foreignKey.onDelete)
790
- up += " ON DELETE " + foreignKey.onDelete;
791
- if (foreignKey.onUpdate)
792
- up += " ON UPDATE " + foreignKey.onUpdate;
793
- var down = "ALTER TABLE " + _this.escapePath(table) + " DROP FOREIGN KEY `" + newForeignKeyName + "`, ADD CONSTRAINT `" + foreignKey.name + "` FOREIGN KEY (" + columnNames + ") " +
794
- ("REFERENCES " + _this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
795
- if (foreignKey.onDelete)
796
- down += " ON DELETE " + foreignKey.onDelete;
797
- if (foreignKey.onUpdate)
798
- down += " ON UPDATE " + foreignKey.onUpdate;
799
- upQueries.push(new Query_1.Query(up));
800
- downQueries.push(new Query_1.Query(down));
801
- // replace constraint name
802
- foreignKey.name = newForeignKeyName;
803
- });
804
- oldTableColumn = clonedTable.columns.find(function (column) { return column.name === oldColumn.name; });
805
- clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
806
- oldColumn.name = newColumn.name;
807
- }
808
- if (this.isColumnChanged(oldColumn, newColumn, true)) {
809
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + oldColumn.name + "` " + this.buildCreateColumnSql(newColumn, true)));
810
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + newColumn.name + "` " + this.buildCreateColumnSql(oldColumn, true)));
811
- }
812
- if (newColumn.isPrimary !== oldColumn.isPrimary) {
813
- generatedColumn = clonedTable.columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
814
- if (generatedColumn) {
815
- nonGeneratedColumn = generatedColumn.clone();
816
- nonGeneratedColumn.isGenerated = false;
817
- nonGeneratedColumn.generationStrategy = undefined;
818
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
819
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
820
- }
821
- primaryColumns = clonedTable.primaryColumns;
822
- // if primary column state changed, we must always drop existed constraint.
823
- if (primaryColumns.length > 0) {
824
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
825
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
826
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
827
- }
828
- if (newColumn.isPrimary === true) {
829
- primaryColumns.push(newColumn);
830
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
831
- column.isPrimary = true;
832
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
833
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
834
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
835
- }
836
- else {
837
- primaryColumn = primaryColumns.find(function (c) { return c.name === newColumn.name; });
838
- primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
839
- column = clonedTable.columns.find(function (column) { return column.name === newColumn.name; });
840
- column.isPrimary = false;
841
- // if we have another primary keys, we must recreate constraint.
842
- if (primaryColumns.length > 0) {
843
- columnNames = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
844
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames + ")"));
845
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
846
- }
847
- }
848
- // if we have generated column, and we dropped AUTO_INCREMENT property before, we must bring it back
849
- if (generatedColumn) {
850
- nonGeneratedColumn = generatedColumn.clone();
851
- nonGeneratedColumn.isGenerated = false;
852
- nonGeneratedColumn.generationStrategy = undefined;
853
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
854
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
855
- }
856
- }
857
- if (newColumn.isUnique !== oldColumn.isUnique) {
858
- if (newColumn.isUnique === true) {
859
- uniqueIndex = new TableIndex_1.TableIndex({
860
- name: this.connection.namingStrategy.indexName(table.name, [newColumn.name]),
861
- columnNames: [newColumn.name],
862
- isUnique: true
863
- });
864
- clonedTable.indices.push(uniqueIndex);
865
- clonedTable.uniques.push(new TableUnique_1.TableUnique({
866
- name: uniqueIndex.name,
867
- columnNames: uniqueIndex.columnNames
868
- }));
869
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD UNIQUE INDEX `" + uniqueIndex.name + "` (`" + newColumn.name + "`)"));
870
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP INDEX `" + uniqueIndex.name + "`"));
871
- }
872
- else {
873
- uniqueIndex_1 = clonedTable.indices.find(function (index) {
874
- return index.columnNames.length === 1 && index.isUnique === true && !!index.columnNames.find(function (columnName) { return columnName === newColumn.name; });
875
- });
876
- clonedTable.indices.splice(clonedTable.indices.indexOf(uniqueIndex_1), 1);
877
- tableUnique = clonedTable.uniques.find(function (unique) { return unique.name === uniqueIndex_1.name; });
878
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(tableUnique), 1);
879
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP INDEX `" + uniqueIndex_1.name + "`"));
880
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD UNIQUE INDEX `" + uniqueIndex_1.name + "` (`" + newColumn.name + "`)"));
881
- }
882
- }
883
- _b.label = 7;
884
- case 7: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
885
- case 8:
886
- _b.sent();
887
- this.replaceCachedTable(table, clonedTable);
888
- return [2 /*return*/];
550
+ async changeColumn(tableOrName, oldColumnOrName, newColumn) {
551
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
552
+ ? tableOrName
553
+ : await this.getCachedTable(tableOrName);
554
+ let clonedTable = table.clone();
555
+ const upQueries = [];
556
+ const downQueries = [];
557
+ const oldColumn = InstanceChecker_1.InstanceChecker.isTableColumn(oldColumnOrName)
558
+ ? oldColumnOrName
559
+ : table.columns.find((column) => column.name === oldColumnOrName);
560
+ if (!oldColumn)
561
+ throw new error_1.TypeORMError(`Column "${oldColumnOrName}" was not found in the "${table.name}" table.`);
562
+ if ((newColumn.isGenerated !== oldColumn.isGenerated &&
563
+ newColumn.generationStrategy !== "uuid") ||
564
+ oldColumn.type !== newColumn.type ||
565
+ oldColumn.length !== newColumn.length ||
566
+ oldColumn.generatedType !== newColumn.generatedType) {
567
+ await this.dropColumn(table, oldColumn);
568
+ await this.addColumn(table, newColumn);
569
+ // update cloned table
570
+ clonedTable = table.clone();
571
+ }
572
+ else {
573
+ if (newColumn.name !== oldColumn.name) {
574
+ // We don't change any column properties, just rename it.
575
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${oldColumn.name}\` \`${newColumn.name}\` ${this.buildCreateColumnSql(oldColumn, true, true)}`));
576
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${newColumn.name}\` \`${oldColumn.name}\` ${this.buildCreateColumnSql(oldColumn, true, true)}`));
577
+ // rename index constraints
578
+ clonedTable.findColumnIndices(oldColumn).forEach((index) => {
579
+ // build new constraint name
580
+ index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
581
+ index.columnNames.push(newColumn.name);
582
+ const columnNames = index.columnNames
583
+ .map((column) => `\`${column}\``)
584
+ .join(", ");
585
+ const newIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
586
+ // build queries
587
+ let indexType = "";
588
+ if (index.isUnique)
589
+ indexType += "UNIQUE ";
590
+ if (index.isSpatial)
591
+ indexType += "SPATIAL ";
592
+ if (index.isFulltext)
593
+ indexType += "FULLTEXT ";
594
+ const indexParser = index.isFulltext && index.parser
595
+ ? ` WITH PARSER ${index.parser}`
596
+ : "";
597
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${index.name}\`, ADD ${indexType}INDEX \`${newIndexName}\` (${columnNames})${indexParser}`));
598
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${newIndexName}\`, ADD ${indexType}INDEX \`${index.name}\` (${columnNames})${indexParser}`));
599
+ // replace constraint name
600
+ index.name = newIndexName;
601
+ });
602
+ // rename foreign key constraints
603
+ clonedTable
604
+ .findColumnForeignKeys(oldColumn)
605
+ .forEach((foreignKey) => {
606
+ // build new constraint name
607
+ foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
608
+ foreignKey.columnNames.push(newColumn.name);
609
+ const columnNames = foreignKey.columnNames
610
+ .map((column) => `\`${column}\``)
611
+ .join(", ");
612
+ const referencedColumnNames = foreignKey.referencedColumnNames
613
+ .map((column) => `\`${column}\``)
614
+ .join(",");
615
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
616
+ // build queries
617
+ let up = `ALTER TABLE ${this.escapePath(table)} DROP FOREIGN KEY \`${foreignKey.name}\`, ADD CONSTRAINT \`${newForeignKeyName}\` FOREIGN KEY (${columnNames}) ` +
618
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
619
+ if (foreignKey.onDelete)
620
+ up += ` ON DELETE ${foreignKey.onDelete}`;
621
+ if (foreignKey.onUpdate)
622
+ up += ` ON UPDATE ${foreignKey.onUpdate}`;
623
+ let down = `ALTER TABLE ${this.escapePath(table)} DROP FOREIGN KEY \`${newForeignKeyName}\`, ADD CONSTRAINT \`${foreignKey.name}\` FOREIGN KEY (${columnNames}) ` +
624
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
625
+ if (foreignKey.onDelete)
626
+ down += ` ON DELETE ${foreignKey.onDelete}`;
627
+ if (foreignKey.onUpdate)
628
+ down += ` ON UPDATE ${foreignKey.onUpdate}`;
629
+ upQueries.push(new Query_1.Query(up));
630
+ downQueries.push(new Query_1.Query(down));
631
+ // replace constraint name
632
+ foreignKey.name = newForeignKeyName;
633
+ });
634
+ // rename old column in the Table object
635
+ const oldTableColumn = clonedTable.columns.find((column) => column.name === oldColumn.name);
636
+ clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
637
+ oldColumn.name = newColumn.name;
638
+ }
639
+ if (this.isColumnChanged(oldColumn, newColumn, true, true)) {
640
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${oldColumn.name}\` ${this.buildCreateColumnSql(newColumn, true)}`));
641
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${newColumn.name}\` ${this.buildCreateColumnSql(oldColumn, true)}`));
642
+ }
643
+ if (newColumn.isPrimary !== oldColumn.isPrimary) {
644
+ // if table have generated column, we must drop AUTO_INCREMENT before changing primary constraints.
645
+ const generatedColumn = clonedTable.columns.find((column) => column.isGenerated &&
646
+ column.generationStrategy === "increment");
647
+ if (generatedColumn) {
648
+ const nonGeneratedColumn = generatedColumn.clone();
649
+ nonGeneratedColumn.isGenerated = false;
650
+ nonGeneratedColumn.generationStrategy = undefined;
651
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
652
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
889
653
  }
890
- });
891
- });
892
- };
654
+ const primaryColumns = clonedTable.primaryColumns;
655
+ // if primary column state changed, we must always drop existed constraint.
656
+ if (primaryColumns.length > 0) {
657
+ const columnNames = primaryColumns
658
+ .map((column) => `\`${column.name}\``)
659
+ .join(", ");
660
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
661
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
662
+ }
663
+ if (newColumn.isPrimary === true) {
664
+ primaryColumns.push(newColumn);
665
+ // update column in table
666
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
667
+ column.isPrimary = true;
668
+ const columnNames = primaryColumns
669
+ .map((column) => `\`${column.name}\``)
670
+ .join(", ");
671
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
672
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
673
+ }
674
+ else {
675
+ const primaryColumn = primaryColumns.find((c) => c.name === newColumn.name);
676
+ primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
677
+ // update column in table
678
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
679
+ column.isPrimary = false;
680
+ // if we have another primary keys, we must recreate constraint.
681
+ if (primaryColumns.length > 0) {
682
+ const columnNames = primaryColumns
683
+ .map((column) => `\`${column.name}\``)
684
+ .join(", ");
685
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
686
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
687
+ }
688
+ }
689
+ // if we have generated column, and we dropped AUTO_INCREMENT property before, we must bring it back
690
+ if (generatedColumn) {
691
+ const nonGeneratedColumn = generatedColumn.clone();
692
+ nonGeneratedColumn.isGenerated = false;
693
+ nonGeneratedColumn.generationStrategy = undefined;
694
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
695
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
696
+ }
697
+ }
698
+ if (newColumn.isUnique !== oldColumn.isUnique) {
699
+ if (newColumn.isUnique === true) {
700
+ const uniqueIndex = new TableIndex_1.TableIndex({
701
+ name: this.connection.namingStrategy.indexName(table, [
702
+ newColumn.name,
703
+ ]),
704
+ columnNames: [newColumn.name],
705
+ isUnique: true,
706
+ });
707
+ clonedTable.indices.push(uniqueIndex);
708
+ clonedTable.uniques.push(new TableUnique_1.TableUnique({
709
+ name: uniqueIndex.name,
710
+ columnNames: uniqueIndex.columnNames,
711
+ }));
712
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD UNIQUE INDEX \`${uniqueIndex.name}\` (\`${newColumn.name}\`)`));
713
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${uniqueIndex.name}\``));
714
+ }
715
+ else {
716
+ const uniqueIndex = clonedTable.indices.find((index) => {
717
+ return (index.columnNames.length === 1 &&
718
+ index.isUnique === true &&
719
+ !!index.columnNames.find((columnName) => columnName === newColumn.name));
720
+ });
721
+ clonedTable.indices.splice(clonedTable.indices.indexOf(uniqueIndex), 1);
722
+ const tableUnique = clonedTable.uniques.find((unique) => unique.name === uniqueIndex.name);
723
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(tableUnique), 1);
724
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${uniqueIndex.name}\``));
725
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD UNIQUE INDEX \`${uniqueIndex.name}\` (\`${newColumn.name}\`)`));
726
+ }
727
+ }
728
+ }
729
+ await this.executeQueries(upQueries, downQueries);
730
+ this.replaceCachedTable(table, clonedTable);
731
+ }
893
732
  /**
894
733
  * Changes a column in the table.
895
734
  */
896
- MysqlQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
897
- return tslib_1.__awaiter(this, void 0, void 0, function () {
898
- var _this = this;
899
- return tslib_1.__generator(this, function (_a) {
900
- switch (_a.label) {
901
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(changedColumns, function (changedColumn) { return _this.changeColumn(tableOrName, changedColumn.oldColumn, changedColumn.newColumn); })];
902
- case 1:
903
- _a.sent();
904
- return [2 /*return*/];
905
- }
906
- });
907
- });
908
- };
735
+ async changeColumns(tableOrName, changedColumns) {
736
+ for (const { oldColumn, newColumn } of changedColumns) {
737
+ await this.changeColumn(tableOrName, oldColumn, newColumn);
738
+ }
739
+ }
909
740
  /**
910
741
  * Drops column in the table.
911
742
  */
912
- MysqlQueryRunner.prototype.dropColumn = function (tableOrName, columnOrName) {
913
- return tslib_1.__awaiter(this, void 0, void 0, function () {
914
- var table, _a, column, clonedTable, upQueries, downQueries, generatedColumn, nonGeneratedColumn, columnNames, tableColumn, columnNames_1, nonGeneratedColumn, columnIndex, uniqueName_1, foundUnique, indexName_1, foundIndex;
915
- return tslib_1.__generator(this, function (_b) {
916
- switch (_b.label) {
917
- case 0:
918
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
919
- _a = tableOrName;
920
- return [3 /*break*/, 3];
921
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
922
- case 2:
923
- _a = _b.sent();
924
- _b.label = 3;
925
- case 3:
926
- table = _a;
927
- column = columnOrName instanceof TableColumn_1.TableColumn ? columnOrName : table.findColumnByName(columnOrName);
928
- if (!column)
929
- throw new Error("Column \"" + columnOrName + "\" was not found in table \"" + table.name + "\"");
930
- clonedTable = table.clone();
931
- upQueries = [];
932
- downQueries = [];
933
- // drop primary key constraint
934
- if (column.isPrimary) {
935
- generatedColumn = clonedTable.columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
936
- if (generatedColumn) {
937
- nonGeneratedColumn = generatedColumn.clone();
938
- nonGeneratedColumn.isGenerated = false;
939
- nonGeneratedColumn.generationStrategy = undefined;
940
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
941
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
942
- }
943
- columnNames = clonedTable.primaryColumns.map(function (primaryColumn) { return "`" + primaryColumn.name + "`"; }).join(", ");
944
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP PRIMARY KEY"));
945
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD PRIMARY KEY (" + columnNames + ")"));
946
- tableColumn = clonedTable.findColumnByName(column.name);
947
- tableColumn.isPrimary = false;
948
- // if primary key have multiple columns, we must recreate it without dropped column
949
- if (clonedTable.primaryColumns.length > 0) {
950
- columnNames_1 = clonedTable.primaryColumns.map(function (primaryColumn) { return "`" + primaryColumn.name + "`"; }).join(", ");
951
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(clonedTable) + " ADD PRIMARY KEY (" + columnNames_1 + ")"));
952
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(clonedTable) + " DROP PRIMARY KEY"));
953
- }
954
- // 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
955
- if (generatedColumn && generatedColumn.name !== column.name) {
956
- nonGeneratedColumn = generatedColumn.clone();
957
- nonGeneratedColumn.isGenerated = false;
958
- nonGeneratedColumn.generationStrategy = undefined;
959
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
960
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
961
- }
962
- }
963
- columnIndex = clonedTable.indices.find(function (index) { return index.columnNames.length === 1 && index.columnNames[0] === column.name; });
964
- if (columnIndex) {
965
- clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
966
- upQueries.push(this.dropIndexSql(table, columnIndex));
967
- downQueries.push(this.createIndexSql(table, columnIndex));
968
- }
969
- else if (column.isUnique) {
970
- uniqueName_1 = this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]);
971
- foundUnique = clonedTable.uniques.find(function (unique) { return unique.name === uniqueName_1; });
972
- if (foundUnique)
973
- clonedTable.uniques.splice(clonedTable.uniques.indexOf(foundUnique), 1);
974
- indexName_1 = this.connection.namingStrategy.indexName(table.name, [column.name]);
975
- foundIndex = clonedTable.indices.find(function (index) { return index.name === indexName_1; });
976
- if (foundIndex)
977
- clonedTable.indices.splice(clonedTable.indices.indexOf(foundIndex), 1);
978
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP INDEX `" + indexName_1 + "`"));
979
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD UNIQUE INDEX `" + indexName_1 + "` (`" + column.name + "`)"));
980
- }
981
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP COLUMN `" + column.name + "`"));
982
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD " + this.buildCreateColumnSql(column, true)));
983
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
984
- case 4:
985
- _b.sent();
986
- clonedTable.removeColumn(column);
987
- this.replaceCachedTable(table, clonedTable);
988
- return [2 /*return*/];
989
- }
990
- });
991
- });
992
- };
743
+ async dropColumn(tableOrName, columnOrName) {
744
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
745
+ ? tableOrName
746
+ : await this.getCachedTable(tableOrName);
747
+ const column = InstanceChecker_1.InstanceChecker.isTableColumn(columnOrName)
748
+ ? columnOrName
749
+ : table.findColumnByName(columnOrName);
750
+ if (!column)
751
+ throw new error_1.TypeORMError(`Column "${columnOrName}" was not found in table "${table.name}"`);
752
+ const clonedTable = table.clone();
753
+ const upQueries = [];
754
+ const downQueries = [];
755
+ // drop primary key constraint
756
+ if (column.isPrimary) {
757
+ // if table have generated column, we must drop AUTO_INCREMENT before changing primary constraints.
758
+ const generatedColumn = clonedTable.columns.find((column) => column.isGenerated &&
759
+ column.generationStrategy === "increment");
760
+ if (generatedColumn) {
761
+ const nonGeneratedColumn = generatedColumn.clone();
762
+ nonGeneratedColumn.isGenerated = false;
763
+ nonGeneratedColumn.generationStrategy = undefined;
764
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
765
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
766
+ }
767
+ // dropping primary key constraint
768
+ const columnNames = clonedTable.primaryColumns
769
+ .map((primaryColumn) => `\`${primaryColumn.name}\``)
770
+ .join(", ");
771
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP PRIMARY KEY`));
772
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD PRIMARY KEY (${columnNames})`));
773
+ // update column in table
774
+ const tableColumn = clonedTable.findColumnByName(column.name);
775
+ tableColumn.isPrimary = false;
776
+ // if primary key have multiple columns, we must recreate it without dropped column
777
+ if (clonedTable.primaryColumns.length > 0) {
778
+ const columnNames = clonedTable.primaryColumns
779
+ .map((primaryColumn) => `\`${primaryColumn.name}\``)
780
+ .join(", ");
781
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD PRIMARY KEY (${columnNames})`));
782
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP PRIMARY KEY`));
783
+ }
784
+ // 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
785
+ if (generatedColumn && generatedColumn.name !== column.name) {
786
+ const nonGeneratedColumn = generatedColumn.clone();
787
+ nonGeneratedColumn.isGenerated = false;
788
+ nonGeneratedColumn.generationStrategy = undefined;
789
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
790
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
791
+ }
792
+ }
793
+ // drop column index
794
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
795
+ index.columnNames[0] === column.name);
796
+ if (columnIndex) {
797
+ clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
798
+ upQueries.push(this.dropIndexSql(table, columnIndex));
799
+ downQueries.push(this.createIndexSql(table, columnIndex));
800
+ }
801
+ else if (column.isUnique) {
802
+ // we splice constraints both from table uniques and indices.
803
+ const uniqueName = this.connection.namingStrategy.uniqueConstraintName(table, [
804
+ column.name,
805
+ ]);
806
+ const foundUnique = clonedTable.uniques.find((unique) => unique.name === uniqueName);
807
+ if (foundUnique)
808
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(foundUnique), 1);
809
+ const indexName = this.connection.namingStrategy.indexName(table, [
810
+ column.name,
811
+ ]);
812
+ const foundIndex = clonedTable.indices.find((index) => index.name === indexName);
813
+ if (foundIndex)
814
+ clonedTable.indices.splice(clonedTable.indices.indexOf(foundIndex), 1);
815
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP INDEX \`${indexName}\``));
816
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD UNIQUE INDEX \`${indexName}\` (\`${column.name}\`)`));
817
+ }
818
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN \`${column.name}\``));
819
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(column, true)}`));
820
+ await this.executeQueries(upQueries, downQueries);
821
+ clonedTable.removeColumn(column);
822
+ this.replaceCachedTable(table, clonedTable);
823
+ }
993
824
  /**
994
825
  * Drops the columns in the table.
995
826
  */
996
- MysqlQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
997
- return tslib_1.__awaiter(this, void 0, void 0, function () {
998
- var _this = this;
999
- return tslib_1.__generator(this, function (_a) {
1000
- switch (_a.label) {
1001
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(columns, function (column) { return _this.dropColumn(tableOrName, column); })];
1002
- case 1:
1003
- _a.sent();
1004
- return [2 /*return*/];
1005
- }
1006
- });
1007
- });
1008
- };
827
+ async dropColumns(tableOrName, columns) {
828
+ for (const column of columns) {
829
+ await this.dropColumn(tableOrName, column);
830
+ }
831
+ }
1009
832
  /**
1010
833
  * Creates a new primary key.
1011
834
  */
1012
- MysqlQueryRunner.prototype.createPrimaryKey = function (tableOrName, columnNames) {
1013
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1014
- var table, _a, clonedTable, up, down;
1015
- return tslib_1.__generator(this, function (_b) {
1016
- switch (_b.label) {
1017
- case 0:
1018
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1019
- _a = tableOrName;
1020
- return [3 /*break*/, 3];
1021
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1022
- case 2:
1023
- _a = _b.sent();
1024
- _b.label = 3;
1025
- case 3:
1026
- table = _a;
1027
- clonedTable = table.clone();
1028
- up = this.createPrimaryKeySql(table, columnNames);
1029
- down = this.dropPrimaryKeySql(table);
1030
- return [4 /*yield*/, this.executeQueries(up, down)];
1031
- case 4:
1032
- _b.sent();
1033
- clonedTable.columns.forEach(function (column) {
1034
- if (columnNames.find(function (columnName) { return columnName === column.name; }))
1035
- column.isPrimary = true;
1036
- });
1037
- this.replaceCachedTable(table, clonedTable);
1038
- return [2 /*return*/];
1039
- }
1040
- });
835
+ async createPrimaryKey(tableOrName, columnNames) {
836
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
837
+ ? tableOrName
838
+ : await this.getCachedTable(tableOrName);
839
+ const clonedTable = table.clone();
840
+ const up = this.createPrimaryKeySql(table, columnNames);
841
+ const down = this.dropPrimaryKeySql(table);
842
+ await this.executeQueries(up, down);
843
+ clonedTable.columns.forEach((column) => {
844
+ if (columnNames.find((columnName) => columnName === column.name))
845
+ column.isPrimary = true;
1041
846
  });
1042
- };
847
+ this.replaceCachedTable(table, clonedTable);
848
+ }
1043
849
  /**
1044
850
  * Updates composite primary keys.
1045
851
  */
1046
- MysqlQueryRunner.prototype.updatePrimaryKeys = function (tableOrName, columns) {
1047
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1048
- var table, _a, clonedTable, columnNames, upQueries, downQueries, generatedColumn, nonGeneratedColumn, primaryColumns, columnNames_2, columnNamesString, newOrExistGeneratedColumn, nonGeneratedColumn, changedGeneratedColumn;
1049
- return tslib_1.__generator(this, function (_b) {
1050
- switch (_b.label) {
1051
- case 0:
1052
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1053
- _a = tableOrName;
1054
- return [3 /*break*/, 3];
1055
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1056
- case 2:
1057
- _a = _b.sent();
1058
- _b.label = 3;
1059
- case 3:
1060
- table = _a;
1061
- clonedTable = table.clone();
1062
- columnNames = columns.map(function (column) { return column.name; });
1063
- upQueries = [];
1064
- downQueries = [];
1065
- generatedColumn = clonedTable.columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
1066
- if (generatedColumn) {
1067
- nonGeneratedColumn = generatedColumn.clone();
1068
- nonGeneratedColumn.isGenerated = false;
1069
- nonGeneratedColumn.generationStrategy = undefined;
1070
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + generatedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
1071
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(generatedColumn, true)));
1072
- }
1073
- primaryColumns = clonedTable.primaryColumns;
1074
- if (primaryColumns.length > 0) {
1075
- columnNames_2 = primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
1076
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
1077
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNames_2 + ")"));
1078
- }
1079
- // update columns in table.
1080
- clonedTable.columns
1081
- .filter(function (column) { return columnNames.indexOf(column.name) !== -1; })
1082
- .forEach(function (column) { return column.isPrimary = true; });
1083
- columnNamesString = columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1084
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNamesString + ")"));
1085
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY"));
1086
- newOrExistGeneratedColumn = generatedColumn ? generatedColumn : columns.find(function (column) { return column.isGenerated && column.generationStrategy === "increment"; });
1087
- if (newOrExistGeneratedColumn) {
1088
- nonGeneratedColumn = newOrExistGeneratedColumn.clone();
1089
- nonGeneratedColumn.isGenerated = false;
1090
- nonGeneratedColumn.generationStrategy = undefined;
1091
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + nonGeneratedColumn.name + "` " + this.buildCreateColumnSql(newOrExistGeneratedColumn, true)));
1092
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " CHANGE `" + newOrExistGeneratedColumn.name + "` " + this.buildCreateColumnSql(nonGeneratedColumn, true)));
1093
- changedGeneratedColumn = clonedTable.columns.find(function (column) { return column.name === newOrExistGeneratedColumn.name; });
1094
- changedGeneratedColumn.isGenerated = true;
1095
- changedGeneratedColumn.generationStrategy = "increment";
1096
- }
1097
- return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1098
- case 4:
1099
- _b.sent();
1100
- this.replaceCachedTable(table, clonedTable);
1101
- return [2 /*return*/];
1102
- }
1103
- });
1104
- });
1105
- };
852
+ async updatePrimaryKeys(tableOrName, columns) {
853
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
854
+ ? tableOrName
855
+ : await this.getCachedTable(tableOrName);
856
+ const clonedTable = table.clone();
857
+ const columnNames = columns.map((column) => column.name);
858
+ const upQueries = [];
859
+ const downQueries = [];
860
+ // if table have generated column, we must drop AUTO_INCREMENT before changing primary constraints.
861
+ const generatedColumn = clonedTable.columns.find((column) => column.isGenerated && column.generationStrategy === "increment");
862
+ if (generatedColumn) {
863
+ const nonGeneratedColumn = generatedColumn.clone();
864
+ nonGeneratedColumn.isGenerated = false;
865
+ nonGeneratedColumn.generationStrategy = undefined;
866
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${generatedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
867
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(generatedColumn, true)}`));
868
+ }
869
+ // if table already have primary columns, we must drop them.
870
+ const primaryColumns = clonedTable.primaryColumns;
871
+ if (primaryColumns.length > 0) {
872
+ const columnNames = primaryColumns
873
+ .map((column) => `\`${column.name}\``)
874
+ .join(", ");
875
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
876
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNames})`));
877
+ }
878
+ // update columns in table.
879
+ clonedTable.columns
880
+ .filter((column) => columnNames.indexOf(column.name) !== -1)
881
+ .forEach((column) => (column.isPrimary = true));
882
+ const columnNamesString = columnNames
883
+ .map((columnName) => `\`${columnName}\``)
884
+ .join(", ");
885
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNamesString})`));
886
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`));
887
+ // if we already have generated column or column is changed to generated, and we dropped AUTO_INCREMENT property before, we must bring it back
888
+ const newOrExistGeneratedColumn = generatedColumn
889
+ ? generatedColumn
890
+ : columns.find((column) => column.isGenerated &&
891
+ column.generationStrategy === "increment");
892
+ if (newOrExistGeneratedColumn) {
893
+ const nonGeneratedColumn = newOrExistGeneratedColumn.clone();
894
+ nonGeneratedColumn.isGenerated = false;
895
+ nonGeneratedColumn.generationStrategy = undefined;
896
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${nonGeneratedColumn.name}\` ${this.buildCreateColumnSql(newOrExistGeneratedColumn, true)}`));
897
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} CHANGE \`${newOrExistGeneratedColumn.name}\` ${this.buildCreateColumnSql(nonGeneratedColumn, true)}`));
898
+ // if column changed to generated, we must update it in table
899
+ const changedGeneratedColumn = clonedTable.columns.find((column) => column.name === newOrExistGeneratedColumn.name);
900
+ changedGeneratedColumn.isGenerated = true;
901
+ changedGeneratedColumn.generationStrategy = "increment";
902
+ }
903
+ await this.executeQueries(upQueries, downQueries);
904
+ this.replaceCachedTable(table, clonedTable);
905
+ }
1106
906
  /**
1107
907
  * Drops a primary key.
1108
908
  */
1109
- MysqlQueryRunner.prototype.dropPrimaryKey = function (tableOrName) {
1110
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1111
- var table, _a, up, down;
1112
- return tslib_1.__generator(this, function (_b) {
1113
- switch (_b.label) {
1114
- case 0:
1115
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1116
- _a = tableOrName;
1117
- return [3 /*break*/, 3];
1118
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1119
- case 2:
1120
- _a = _b.sent();
1121
- _b.label = 3;
1122
- case 3:
1123
- table = _a;
1124
- up = this.dropPrimaryKeySql(table);
1125
- down = this.createPrimaryKeySql(table, table.primaryColumns.map(function (column) { return column.name; }));
1126
- return [4 /*yield*/, this.executeQueries(up, down)];
1127
- case 4:
1128
- _b.sent();
1129
- table.primaryColumns.forEach(function (column) {
1130
- column.isPrimary = false;
1131
- });
1132
- return [2 /*return*/];
1133
- }
1134
- });
909
+ async dropPrimaryKey(tableOrName) {
910
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
911
+ ? tableOrName
912
+ : await this.getCachedTable(tableOrName);
913
+ const up = this.dropPrimaryKeySql(table);
914
+ const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name));
915
+ await this.executeQueries(up, down);
916
+ table.primaryColumns.forEach((column) => {
917
+ column.isPrimary = false;
1135
918
  });
1136
- };
919
+ }
1137
920
  /**
1138
921
  * Creates a new unique constraint.
1139
922
  */
1140
- MysqlQueryRunner.prototype.createUniqueConstraint = function (tableOrName, uniqueConstraint) {
1141
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1142
- return tslib_1.__generator(this, function (_a) {
1143
- throw new Error("MySql does not support unique constraints. Use unique index instead.");
1144
- });
1145
- });
1146
- };
923
+ async createUniqueConstraint(tableOrName, uniqueConstraint) {
924
+ throw new error_1.TypeORMError(`MySql does not support unique constraints. Use unique index instead.`);
925
+ }
1147
926
  /**
1148
927
  * Creates a new unique constraints.
1149
928
  */
1150
- MysqlQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
1151
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1152
- return tslib_1.__generator(this, function (_a) {
1153
- throw new Error("MySql does not support unique constraints. Use unique index instead.");
1154
- });
1155
- });
1156
- };
929
+ async createUniqueConstraints(tableOrName, uniqueConstraints) {
930
+ throw new error_1.TypeORMError(`MySql does not support unique constraints. Use unique index instead.`);
931
+ }
1157
932
  /**
1158
933
  * Drops an unique constraint.
1159
934
  */
1160
- MysqlQueryRunner.prototype.dropUniqueConstraint = function (tableOrName, uniqueOrName) {
1161
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1162
- return tslib_1.__generator(this, function (_a) {
1163
- throw new Error("MySql does not support unique constraints. Use unique index instead.");
1164
- });
1165
- });
1166
- };
935
+ async dropUniqueConstraint(tableOrName, uniqueOrName) {
936
+ throw new error_1.TypeORMError(`MySql does not support unique constraints. Use unique index instead.`);
937
+ }
1167
938
  /**
1168
939
  * Drops an unique constraints.
1169
940
  */
1170
- MysqlQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
1171
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1172
- return tslib_1.__generator(this, function (_a) {
1173
- throw new Error("MySql does not support unique constraints. Use unique index instead.");
1174
- });
1175
- });
1176
- };
941
+ async dropUniqueConstraints(tableOrName, uniqueConstraints) {
942
+ throw new error_1.TypeORMError(`MySql does not support unique constraints. Use unique index instead.`);
943
+ }
1177
944
  /**
1178
945
  * Creates a new check constraint.
1179
946
  */
1180
- MysqlQueryRunner.prototype.createCheckConstraint = function (tableOrName, checkConstraint) {
1181
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1182
- return tslib_1.__generator(this, function (_a) {
1183
- throw new Error("MySql does not support check constraints.");
1184
- });
1185
- });
1186
- };
947
+ async createCheckConstraint(tableOrName, checkConstraint) {
948
+ throw new error_1.TypeORMError(`MySql does not support check constraints.`);
949
+ }
1187
950
  /**
1188
951
  * Creates a new check constraints.
1189
952
  */
1190
- MysqlQueryRunner.prototype.createCheckConstraints = function (tableOrName, checkConstraints) {
1191
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1192
- return tslib_1.__generator(this, function (_a) {
1193
- throw new Error("MySql does not support check constraints.");
1194
- });
1195
- });
1196
- };
953
+ async createCheckConstraints(tableOrName, checkConstraints) {
954
+ throw new error_1.TypeORMError(`MySql does not support check constraints.`);
955
+ }
1197
956
  /**
1198
957
  * Drops check constraint.
1199
958
  */
1200
- MysqlQueryRunner.prototype.dropCheckConstraint = function (tableOrName, checkOrName) {
1201
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1202
- return tslib_1.__generator(this, function (_a) {
1203
- throw new Error("MySql does not support check constraints.");
1204
- });
1205
- });
1206
- };
959
+ async dropCheckConstraint(tableOrName, checkOrName) {
960
+ throw new error_1.TypeORMError(`MySql does not support check constraints.`);
961
+ }
1207
962
  /**
1208
963
  * Drops check constraints.
1209
964
  */
1210
- MysqlQueryRunner.prototype.dropCheckConstraints = function (tableOrName, checkConstraints) {
1211
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1212
- return tslib_1.__generator(this, function (_a) {
1213
- throw new Error("MySql does not support check constraints.");
1214
- });
1215
- });
1216
- };
965
+ async dropCheckConstraints(tableOrName, checkConstraints) {
966
+ throw new error_1.TypeORMError(`MySql does not support check constraints.`);
967
+ }
1217
968
  /**
1218
969
  * Creates a new exclusion constraint.
1219
970
  */
1220
- MysqlQueryRunner.prototype.createExclusionConstraint = function (tableOrName, exclusionConstraint) {
1221
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1222
- return tslib_1.__generator(this, function (_a) {
1223
- throw new Error("MySql does not support exclusion constraints.");
1224
- });
1225
- });
1226
- };
971
+ async createExclusionConstraint(tableOrName, exclusionConstraint) {
972
+ throw new error_1.TypeORMError(`MySql does not support exclusion constraints.`);
973
+ }
1227
974
  /**
1228
975
  * Creates a new exclusion constraints.
1229
976
  */
1230
- MysqlQueryRunner.prototype.createExclusionConstraints = function (tableOrName, exclusionConstraints) {
1231
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1232
- return tslib_1.__generator(this, function (_a) {
1233
- throw new Error("MySql does not support exclusion constraints.");
1234
- });
1235
- });
1236
- };
977
+ async createExclusionConstraints(tableOrName, exclusionConstraints) {
978
+ throw new error_1.TypeORMError(`MySql does not support exclusion constraints.`);
979
+ }
1237
980
  /**
1238
981
  * Drops exclusion constraint.
1239
982
  */
1240
- MysqlQueryRunner.prototype.dropExclusionConstraint = function (tableOrName, exclusionOrName) {
1241
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1242
- return tslib_1.__generator(this, function (_a) {
1243
- throw new Error("MySql does not support exclusion constraints.");
1244
- });
1245
- });
1246
- };
983
+ async dropExclusionConstraint(tableOrName, exclusionOrName) {
984
+ throw new error_1.TypeORMError(`MySql does not support exclusion constraints.`);
985
+ }
1247
986
  /**
1248
987
  * Drops exclusion constraints.
1249
988
  */
1250
- MysqlQueryRunner.prototype.dropExclusionConstraints = function (tableOrName, exclusionConstraints) {
1251
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1252
- return tslib_1.__generator(this, function (_a) {
1253
- throw new Error("MySql does not support exclusion constraints.");
1254
- });
1255
- });
1256
- };
989
+ async dropExclusionConstraints(tableOrName, exclusionConstraints) {
990
+ throw new error_1.TypeORMError(`MySql does not support exclusion constraints.`);
991
+ }
1257
992
  /**
1258
993
  * Creates a new foreign key.
1259
994
  */
1260
- MysqlQueryRunner.prototype.createForeignKey = function (tableOrName, foreignKey) {
1261
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1262
- var table, _a, up, down;
1263
- return tslib_1.__generator(this, function (_b) {
1264
- switch (_b.label) {
1265
- case 0:
1266
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1267
- _a = tableOrName;
1268
- return [3 /*break*/, 3];
1269
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1270
- case 2:
1271
- _a = _b.sent();
1272
- _b.label = 3;
1273
- case 3:
1274
- table = _a;
1275
- // new FK may be passed without name. In this case we generate FK name manually.
1276
- if (!foreignKey.name)
1277
- foreignKey.name = this.connection.namingStrategy.foreignKeyName(table.name, foreignKey.columnNames, foreignKey.referencedTableName, foreignKey.referencedColumnNames);
1278
- up = this.createForeignKeySql(table, foreignKey);
1279
- down = this.dropForeignKeySql(table, foreignKey);
1280
- return [4 /*yield*/, this.executeQueries(up, down)];
1281
- case 4:
1282
- _b.sent();
1283
- table.addForeignKey(foreignKey);
1284
- return [2 /*return*/];
1285
- }
1286
- });
1287
- });
1288
- };
995
+ async createForeignKey(tableOrName, foreignKey) {
996
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
997
+ ? tableOrName
998
+ : await this.getCachedTable(tableOrName);
999
+ // new FK may be passed without name. In this case we generate FK name manually.
1000
+ if (!foreignKey.name)
1001
+ foreignKey.name = this.connection.namingStrategy.foreignKeyName(table, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
1002
+ const up = this.createForeignKeySql(table, foreignKey);
1003
+ const down = this.dropForeignKeySql(table, foreignKey);
1004
+ await this.executeQueries(up, down);
1005
+ table.addForeignKey(foreignKey);
1006
+ }
1289
1007
  /**
1290
1008
  * Creates a new foreign keys.
1291
1009
  */
1292
- MysqlQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
1293
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1294
- var promises;
1295
- var _this = this;
1296
- return tslib_1.__generator(this, function (_a) {
1297
- switch (_a.label) {
1298
- case 0:
1299
- promises = foreignKeys.map(function (foreignKey) { return _this.createForeignKey(tableOrName, foreignKey); });
1300
- return [4 /*yield*/, Promise.all(promises)];
1301
- case 1:
1302
- _a.sent();
1303
- return [2 /*return*/];
1304
- }
1305
- });
1306
- });
1307
- };
1010
+ async createForeignKeys(tableOrName, foreignKeys) {
1011
+ const promises = foreignKeys.map((foreignKey) => this.createForeignKey(tableOrName, foreignKey));
1012
+ await Promise.all(promises);
1013
+ }
1308
1014
  /**
1309
1015
  * Drops a foreign key.
1310
1016
  */
1311
- MysqlQueryRunner.prototype.dropForeignKey = function (tableOrName, foreignKeyOrName) {
1312
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1313
- var table, _a, foreignKey, up, down;
1314
- return tslib_1.__generator(this, function (_b) {
1315
- switch (_b.label) {
1316
- case 0:
1317
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1318
- _a = tableOrName;
1319
- return [3 /*break*/, 3];
1320
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1321
- case 2:
1322
- _a = _b.sent();
1323
- _b.label = 3;
1324
- case 3:
1325
- table = _a;
1326
- foreignKey = foreignKeyOrName instanceof TableForeignKey_1.TableForeignKey ? foreignKeyOrName : table.foreignKeys.find(function (fk) { return fk.name === foreignKeyOrName; });
1327
- if (!foreignKey)
1328
- throw new Error("Supplied foreign key was not found in table " + table.name);
1329
- up = this.dropForeignKeySql(table, foreignKey);
1330
- down = this.createForeignKeySql(table, foreignKey);
1331
- return [4 /*yield*/, this.executeQueries(up, down)];
1332
- case 4:
1333
- _b.sent();
1334
- table.removeForeignKey(foreignKey);
1335
- return [2 /*return*/];
1336
- }
1337
- });
1338
- });
1339
- };
1017
+ async dropForeignKey(tableOrName, foreignKeyOrName) {
1018
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1019
+ ? tableOrName
1020
+ : await this.getCachedTable(tableOrName);
1021
+ const foreignKey = InstanceChecker_1.InstanceChecker.isTableForeignKey(foreignKeyOrName)
1022
+ ? foreignKeyOrName
1023
+ : table.foreignKeys.find((fk) => fk.name === foreignKeyOrName);
1024
+ if (!foreignKey)
1025
+ throw new error_1.TypeORMError(`Supplied foreign key was not found in table ${table.name}`);
1026
+ const up = this.dropForeignKeySql(table, foreignKey);
1027
+ const down = this.createForeignKeySql(table, foreignKey);
1028
+ await this.executeQueries(up, down);
1029
+ table.removeForeignKey(foreignKey);
1030
+ }
1340
1031
  /**
1341
1032
  * Drops a foreign keys from the table.
1342
1033
  */
1343
- MysqlQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
1344
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1345
- var promises;
1346
- var _this = this;
1347
- return tslib_1.__generator(this, function (_a) {
1348
- switch (_a.label) {
1349
- case 0:
1350
- promises = foreignKeys.map(function (foreignKey) { return _this.dropForeignKey(tableOrName, foreignKey); });
1351
- return [4 /*yield*/, Promise.all(promises)];
1352
- case 1:
1353
- _a.sent();
1354
- return [2 /*return*/];
1355
- }
1356
- });
1357
- });
1358
- };
1034
+ async dropForeignKeys(tableOrName, foreignKeys) {
1035
+ const promises = foreignKeys.map((foreignKey) => this.dropForeignKey(tableOrName, foreignKey));
1036
+ await Promise.all(promises);
1037
+ }
1359
1038
  /**
1360
1039
  * Creates a new index.
1361
1040
  */
1362
- MysqlQueryRunner.prototype.createIndex = function (tableOrName, index) {
1363
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1364
- var table, _a, up, down;
1365
- return tslib_1.__generator(this, function (_b) {
1366
- switch (_b.label) {
1367
- case 0:
1368
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1369
- _a = tableOrName;
1370
- return [3 /*break*/, 3];
1371
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1372
- case 2:
1373
- _a = _b.sent();
1374
- _b.label = 3;
1375
- case 3:
1376
- table = _a;
1377
- // new index may be passed without name. In this case we generate index name manually.
1378
- if (!index.name)
1379
- index.name = this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
1380
- up = this.createIndexSql(table, index);
1381
- down = this.dropIndexSql(table, index);
1382
- return [4 /*yield*/, this.executeQueries(up, down)];
1383
- case 4:
1384
- _b.sent();
1385
- table.addIndex(index, true);
1386
- return [2 /*return*/];
1387
- }
1388
- });
1389
- });
1390
- };
1041
+ async createIndex(tableOrName, index) {
1042
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1043
+ ? tableOrName
1044
+ : await this.getCachedTable(tableOrName);
1045
+ // new index may be passed without name. In this case we generate index name manually.
1046
+ if (!index.name)
1047
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
1048
+ const up = this.createIndexSql(table, index);
1049
+ const down = this.dropIndexSql(table, index);
1050
+ await this.executeQueries(up, down);
1051
+ table.addIndex(index, true);
1052
+ }
1391
1053
  /**
1392
1054
  * Creates a new indices
1393
1055
  */
1394
- MysqlQueryRunner.prototype.createIndices = function (tableOrName, indices) {
1395
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1396
- var promises;
1397
- var _this = this;
1398
- return tslib_1.__generator(this, function (_a) {
1399
- switch (_a.label) {
1400
- case 0:
1401
- promises = indices.map(function (index) { return _this.createIndex(tableOrName, index); });
1402
- return [4 /*yield*/, Promise.all(promises)];
1403
- case 1:
1404
- _a.sent();
1405
- return [2 /*return*/];
1406
- }
1407
- });
1408
- });
1409
- };
1056
+ async createIndices(tableOrName, indices) {
1057
+ const promises = indices.map((index) => this.createIndex(tableOrName, index));
1058
+ await Promise.all(promises);
1059
+ }
1410
1060
  /**
1411
1061
  * Drops an index.
1412
1062
  */
1413
- MysqlQueryRunner.prototype.dropIndex = function (tableOrName, indexOrName) {
1414
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1415
- var table, _a, index, up, down;
1416
- return tslib_1.__generator(this, function (_b) {
1417
- switch (_b.label) {
1418
- case 0:
1419
- if (!(tableOrName instanceof Table_1.Table)) return [3 /*break*/, 1];
1420
- _a = tableOrName;
1421
- return [3 /*break*/, 3];
1422
- case 1: return [4 /*yield*/, this.getCachedTable(tableOrName)];
1423
- case 2:
1424
- _a = _b.sent();
1425
- _b.label = 3;
1426
- case 3:
1427
- table = _a;
1428
- index = indexOrName instanceof TableIndex_1.TableIndex ? indexOrName : table.indices.find(function (i) { return i.name === indexOrName; });
1429
- if (!index)
1430
- throw new Error("Supplied index was not found in table " + table.name);
1431
- up = this.dropIndexSql(table, index);
1432
- down = this.createIndexSql(table, index);
1433
- return [4 /*yield*/, this.executeQueries(up, down)];
1434
- case 4:
1435
- _b.sent();
1436
- table.removeIndex(index, true);
1437
- return [2 /*return*/];
1438
- }
1439
- });
1440
- });
1441
- };
1063
+ async dropIndex(tableOrName, indexOrName) {
1064
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
1065
+ ? tableOrName
1066
+ : await this.getCachedTable(tableOrName);
1067
+ const index = InstanceChecker_1.InstanceChecker.isTableIndex(indexOrName)
1068
+ ? indexOrName
1069
+ : table.indices.find((i) => i.name === indexOrName);
1070
+ if (!index)
1071
+ throw new error_1.TypeORMError(`Supplied index ${indexOrName} was not found in table ${table.name}`);
1072
+ const up = this.dropIndexSql(table, index);
1073
+ const down = this.createIndexSql(table, index);
1074
+ await this.executeQueries(up, down);
1075
+ table.removeIndex(index, true);
1076
+ }
1442
1077
  /**
1443
1078
  * Drops an indices from the table.
1444
1079
  */
1445
- MysqlQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
1446
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1447
- var promises;
1448
- var _this = this;
1449
- return tslib_1.__generator(this, function (_a) {
1450
- switch (_a.label) {
1451
- case 0:
1452
- promises = indices.map(function (index) { return _this.dropIndex(tableOrName, index); });
1453
- return [4 /*yield*/, Promise.all(promises)];
1454
- case 1:
1455
- _a.sent();
1456
- return [2 /*return*/];
1457
- }
1458
- });
1459
- });
1460
- };
1080
+ async dropIndices(tableOrName, indices) {
1081
+ const promises = indices.map((index) => this.dropIndex(tableOrName, index));
1082
+ await Promise.all(promises);
1083
+ }
1461
1084
  /**
1462
1085
  * Clears all table contents.
1463
1086
  * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.
1464
1087
  */
1465
- MysqlQueryRunner.prototype.clearTable = function (tableOrName) {
1466
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1467
- return tslib_1.__generator(this, function (_a) {
1468
- switch (_a.label) {
1469
- case 0: return [4 /*yield*/, this.query("TRUNCATE TABLE " + this.escapePath(tableOrName))];
1470
- case 1:
1471
- _a.sent();
1472
- return [2 /*return*/];
1473
- }
1474
- });
1475
- });
1476
- };
1088
+ async clearTable(tableOrName) {
1089
+ await this.query(`TRUNCATE TABLE ${this.escapePath(tableOrName)}`);
1090
+ }
1477
1091
  /**
1478
1092
  * Removes all tables from the currently connected database.
1479
1093
  * Be careful using this method and avoid using it in production or migrations
1480
1094
  * (because it can clear all your database).
1481
1095
  */
1482
- MysqlQueryRunner.prototype.clearDatabase = function (database) {
1483
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1484
- var dbName, isDatabaseExist, selectViewDropsQuery, dropViewQueries, disableForeignKeysCheckQuery, dropTablesQuery, enableForeignKeysCheckQuery, dropQueries, error_1, rollbackError_1;
1485
- var _this = this;
1486
- return tslib_1.__generator(this, function (_a) {
1487
- switch (_a.label) {
1488
- case 0:
1489
- dbName = database ? database : this.driver.database;
1490
- if (!dbName) return [3 /*break*/, 2];
1491
- return [4 /*yield*/, this.hasDatabase(dbName)];
1492
- case 1:
1493
- isDatabaseExist = _a.sent();
1494
- if (!isDatabaseExist)
1495
- return [2 /*return*/, Promise.resolve()];
1496
- return [3 /*break*/, 3];
1497
- case 2: throw new Error("Can not clear database. No database is specified");
1498
- case 3: return [4 /*yield*/, this.startTransaction()];
1499
- case 4:
1500
- _a.sent();
1501
- _a.label = 5;
1502
- case 5:
1503
- _a.trys.push([5, 13, , 18]);
1504
- selectViewDropsQuery = "SELECT concat('DROP VIEW IF EXISTS `', table_schema, '`.`', table_name, '`') AS `query` FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = '" + dbName + "'";
1505
- return [4 /*yield*/, this.query(selectViewDropsQuery)];
1506
- case 6:
1507
- dropViewQueries = _a.sent();
1508
- return [4 /*yield*/, Promise.all(dropViewQueries.map(function (q) { return _this.query(q["query"]); }))];
1509
- case 7:
1510
- _a.sent();
1511
- disableForeignKeysCheckQuery = "SET FOREIGN_KEY_CHECKS = 0;";
1512
- dropTablesQuery = "SELECT concat('DROP TABLE IF EXISTS `', table_schema, '`.`', table_name, '`') AS `query` FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_SCHEMA` = '" + dbName + "'";
1513
- enableForeignKeysCheckQuery = "SET FOREIGN_KEY_CHECKS = 1;";
1514
- return [4 /*yield*/, this.query(disableForeignKeysCheckQuery)];
1515
- case 8:
1516
- _a.sent();
1517
- return [4 /*yield*/, this.query(dropTablesQuery)];
1518
- case 9:
1519
- dropQueries = _a.sent();
1520
- return [4 /*yield*/, Promise.all(dropQueries.map(function (query) { return _this.query(query["query"]); }))];
1521
- case 10:
1522
- _a.sent();
1523
- return [4 /*yield*/, this.query(enableForeignKeysCheckQuery)];
1524
- case 11:
1525
- _a.sent();
1526
- return [4 /*yield*/, this.commitTransaction()];
1527
- case 12:
1528
- _a.sent();
1529
- return [3 /*break*/, 18];
1530
- case 13:
1531
- error_1 = _a.sent();
1532
- _a.label = 14;
1533
- case 14:
1534
- _a.trys.push([14, 16, , 17]);
1535
- return [4 /*yield*/, this.rollbackTransaction()];
1536
- case 15:
1537
- _a.sent();
1538
- return [3 /*break*/, 17];
1539
- case 16:
1540
- rollbackError_1 = _a.sent();
1541
- return [3 /*break*/, 17];
1542
- case 17: throw error_1;
1543
- case 18: return [2 /*return*/];
1544
- }
1545
- });
1546
- });
1547
- };
1096
+ async clearDatabase(database) {
1097
+ const dbName = database ? database : this.driver.database;
1098
+ if (dbName) {
1099
+ const isDatabaseExist = await this.hasDatabase(dbName);
1100
+ if (!isDatabaseExist)
1101
+ return Promise.resolve();
1102
+ }
1103
+ else {
1104
+ throw new error_1.TypeORMError(`Can not clear database. No database is specified`);
1105
+ }
1106
+ const isAnotherTransactionActive = this.isTransactionActive;
1107
+ if (!isAnotherTransactionActive)
1108
+ await this.startTransaction();
1109
+ try {
1110
+ const selectViewDropsQuery = `SELECT concat('DROP VIEW IF EXISTS \`', table_schema, '\`.\`', table_name, '\`') AS \`query\` FROM \`INFORMATION_SCHEMA\`.\`VIEWS\` WHERE \`TABLE_SCHEMA\` = '${dbName}'`;
1111
+ const dropViewQueries = await this.query(selectViewDropsQuery);
1112
+ await Promise.all(dropViewQueries.map((q) => this.query(q["query"])));
1113
+ const disableForeignKeysCheckQuery = `SET FOREIGN_KEY_CHECKS = 0;`;
1114
+ const dropTablesQuery = `SELECT concat('DROP TABLE IF EXISTS \`', table_schema, '\`.\`', table_name, '\`') AS \`query\` FROM \`INFORMATION_SCHEMA\`.\`TABLES\` WHERE \`TABLE_SCHEMA\` = '${dbName}'`;
1115
+ const enableForeignKeysCheckQuery = `SET FOREIGN_KEY_CHECKS = 1;`;
1116
+ await this.query(disableForeignKeysCheckQuery);
1117
+ const dropQueries = await this.query(dropTablesQuery);
1118
+ await Promise.all(dropQueries.map((query) => this.query(query["query"])));
1119
+ await this.query(enableForeignKeysCheckQuery);
1120
+ if (!isAnotherTransactionActive)
1121
+ await this.commitTransaction();
1122
+ }
1123
+ catch (error) {
1124
+ try {
1125
+ // we throw original error even if rollback thrown an error
1126
+ if (!isAnotherTransactionActive)
1127
+ await this.rollbackTransaction();
1128
+ }
1129
+ catch (rollbackError) { }
1130
+ throw error;
1131
+ }
1132
+ }
1548
1133
  // -------------------------------------------------------------------------
1549
1134
  // Protected Methods
1550
1135
  // -------------------------------------------------------------------------
1551
- /**
1552
- * Returns current database.
1553
- */
1554
- MysqlQueryRunner.prototype.getCurrentDatabase = function () {
1555
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1556
- var currentDBQuery;
1557
- return tslib_1.__generator(this, function (_a) {
1558
- switch (_a.label) {
1559
- case 0: return [4 /*yield*/, this.query("SELECT DATABASE() AS `db_name`")];
1560
- case 1:
1561
- currentDBQuery = _a.sent();
1562
- return [2 /*return*/, currentDBQuery[0]["db_name"]];
1563
- }
1564
- });
1565
- });
1566
- };
1567
- MysqlQueryRunner.prototype.loadViews = function (viewNames) {
1568
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1569
- var hasTable, currentDatabase, viewsCondition, query, dbViews;
1570
- var _this = this;
1571
- return tslib_1.__generator(this, function (_a) {
1572
- switch (_a.label) {
1573
- case 0: return [4 /*yield*/, this.hasTable(this.getTypeormMetadataTableName())];
1574
- case 1:
1575
- hasTable = _a.sent();
1576
- if (!hasTable)
1577
- return [2 /*return*/, Promise.resolve([])];
1578
- return [4 /*yield*/, this.getCurrentDatabase()];
1579
- case 2:
1580
- currentDatabase = _a.sent();
1581
- viewsCondition = viewNames.map(function (tableName) {
1582
- var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
1583
- if (!name) {
1584
- name = database;
1585
- database = _this.driver.database || currentDatabase;
1586
- }
1587
- return "(`t`.`schema` = '" + database + "' AND `t`.`name` = '" + name + "')";
1588
- }).join(" OR ");
1589
- query = "SELECT `t`.*, `v`.`check_option` FROM " + this.escapePath(this.getTypeormMetadataTableName()) + " `t` " +
1590
- ("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 + ")" : ""));
1591
- return [4 /*yield*/, this.query(query)];
1592
- case 3:
1593
- dbViews = _a.sent();
1594
- return [2 /*return*/, dbViews.map(function (dbView) {
1595
- var view = new View_1.View();
1596
- var db = dbView["schema"] === currentDatabase ? undefined : dbView["schema"];
1597
- view.name = _this.driver.buildTableName(dbView["name"], undefined, db);
1598
- view.expression = dbView["value"];
1599
- return view;
1600
- })];
1601
- }
1602
- });
1136
+ async loadViews(viewNames) {
1137
+ const hasTable = await this.hasTable(this.getTypeormMetadataTableName());
1138
+ if (!hasTable) {
1139
+ return [];
1140
+ }
1141
+ if (!viewNames) {
1142
+ viewNames = [];
1143
+ }
1144
+ const currentDatabase = await this.getCurrentDatabase();
1145
+ const viewsCondition = viewNames
1146
+ .map((tableName) => {
1147
+ let { database, tableName: name } = this.driver.parseTableName(tableName);
1148
+ if (!database) {
1149
+ database = currentDatabase;
1150
+ }
1151
+ return `(\`t\`.\`schema\` = '${database}' AND \`t\`.\`name\` = '${name}')`;
1152
+ })
1153
+ .join(" OR ");
1154
+ const query = `SELECT \`t\`.*, \`v\`.\`check_option\` FROM ${this.escapePath(this.getTypeormMetadataTableName())} \`t\` ` +
1155
+ `INNER JOIN \`information_schema\`.\`views\` \`v\` ON \`v\`.\`table_schema\` = \`t\`.\`schema\` AND \`v\`.\`table_name\` = \`t\`.\`name\` WHERE \`t\`.\`type\` = '${MetadataTableType_1.MetadataTableType.VIEW}' ${viewsCondition ? `AND (${viewsCondition})` : ""}`;
1156
+ const dbViews = await this.query(query);
1157
+ return dbViews.map((dbView) => {
1158
+ const view = new View_1.View();
1159
+ const db = dbView["schema"] === currentDatabase
1160
+ ? undefined
1161
+ : dbView["schema"];
1162
+ view.database = dbView["schema"];
1163
+ view.name = this.driver.buildTableName(dbView["name"], undefined, db);
1164
+ view.expression = dbView["value"];
1165
+ return view;
1603
1166
  });
1604
- };
1167
+ }
1605
1168
  /**
1606
1169
  * Loads all tables (with given names) from the database and creates a Table from them.
1607
1170
  */
1608
- MysqlQueryRunner.prototype.loadTables = function (tableNames) {
1609
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1610
- var currentDatabase, tablesCondition, tablesSql, columnsSql, primaryKeySql, collationsSql, indicesCondition, indicesSql, foreignKeysCondition, foreignKeysSql, _a, dbTables, dbColumns, dbPrimaryKeys, dbCollations, dbIndices, dbForeignKeys, isMariaDb, dbVersion;
1611
- var _this = this;
1612
- return tslib_1.__generator(this, function (_b) {
1613
- switch (_b.label) {
1614
- case 0:
1615
- // if no tables given then no need to proceed
1616
- if (!tableNames || !tableNames.length)
1617
- return [2 /*return*/, []];
1618
- return [4 /*yield*/, this.getCurrentDatabase()];
1619
- case 1:
1620
- currentDatabase = _b.sent();
1621
- tablesCondition = tableNames.map(function (tableName) {
1622
- var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
1623
- if (!name) {
1624
- name = database;
1625
- database = _this.driver.database || currentDatabase;
1626
- }
1627
- return "(`TABLE_SCHEMA` = '" + database + "' AND `TABLE_NAME` = '" + name + "')";
1628
- }).join(" OR ");
1629
- tablesSql = "SELECT * FROM `INFORMATION_SCHEMA`.`TABLES` WHERE " + tablesCondition;
1630
- columnsSql = "SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE " + tablesCondition;
1631
- primaryKeySql = "SELECT * FROM `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` = 'PRIMARY' AND (" + tablesCondition + ")";
1632
- collationsSql = "SELECT `SCHEMA_NAME`, `DEFAULT_CHARACTER_SET_NAME` as `CHARSET`, `DEFAULT_COLLATION_NAME` AS `COLLATION` FROM `INFORMATION_SCHEMA`.`SCHEMATA`";
1633
- indicesCondition = tableNames.map(function (tableName) {
1634
- var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
1635
- if (!name) {
1636
- name = database;
1637
- database = _this.driver.database || currentDatabase;
1638
- }
1639
- return "(`s`.`TABLE_SCHEMA` = '" + database + "' AND `s`.`TABLE_NAME` = '" + name + "')";
1640
- }).join(" OR ");
1641
- indicesSql = "SELECT `s`.* FROM `INFORMATION_SCHEMA`.`STATISTICS` `s` " +
1642
- "LEFT JOIN `INFORMATION_SCHEMA`.`REFERENTIAL_CONSTRAINTS` `rc` ON `s`.`INDEX_NAME` = `rc`.`CONSTRAINT_NAME` " +
1643
- ("WHERE (" + indicesCondition + ") AND `s`.`INDEX_NAME` != 'PRIMARY' AND `rc`.`CONSTRAINT_NAME` IS NULL");
1644
- foreignKeysCondition = tableNames.map(function (tableName) {
1645
- var _a = tslib_1.__read(tableName.split("."), 2), database = _a[0], name = _a[1];
1646
- if (!name) {
1647
- name = database;
1648
- database = _this.driver.database || currentDatabase;
1649
- }
1650
- return "(`kcu`.`TABLE_SCHEMA` = '" + database + "' AND `kcu`.`TABLE_NAME` = '" + name + "')";
1651
- }).join(" OR ");
1652
- foreignKeysSql = "SELECT `kcu`.`TABLE_SCHEMA`, `kcu`.`TABLE_NAME`, `kcu`.`CONSTRAINT_NAME`, `kcu`.`COLUMN_NAME`, `kcu`.`REFERENCED_TABLE_SCHEMA`, " +
1653
- "`kcu`.`REFERENCED_TABLE_NAME`, `kcu`.`REFERENCED_COLUMN_NAME`, `rc`.`DELETE_RULE` `ON_DELETE`, `rc`.`UPDATE_RULE` `ON_UPDATE` " +
1654
- "FROM `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` `kcu` " +
1655
- "INNER JOIN `INFORMATION_SCHEMA`.`REFERENTIAL_CONSTRAINTS` `rc` ON `rc`.`constraint_name` = `kcu`.`constraint_name` " +
1656
- "WHERE " + foreignKeysCondition;
1657
- return [4 /*yield*/, Promise.all([
1658
- this.query(tablesSql),
1659
- this.query(columnsSql),
1660
- this.query(primaryKeySql),
1661
- this.query(collationsSql),
1662
- this.query(indicesSql),
1663
- this.query(foreignKeysSql)
1664
- ])];
1665
- case 2:
1666
- _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];
1667
- // if tables were not found in the db, no need to proceed
1668
- if (!dbTables.length)
1669
- return [2 /*return*/, []];
1670
- isMariaDb = this.driver.options.type === "mariadb";
1671
- return [4 /*yield*/, this.getVersion()];
1672
- case 3:
1673
- dbVersion = _b.sent();
1674
- // create tables for loaded tables
1675
- return [2 /*return*/, Promise.all(dbTables.map(function (dbTable) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
1676
- var table, dbCollation, defaultCollation, defaultCharset, db, tableFullName, tableForeignKeyConstraints, tableIndexConstraints;
1677
- var _this = this;
1678
- return tslib_1.__generator(this, function (_a) {
1679
- table = new Table_1.Table();
1680
- dbCollation = dbCollations.find(function (coll) { return coll["SCHEMA_NAME"] === dbTable["TABLE_SCHEMA"]; });
1681
- defaultCollation = dbCollation["COLLATION"];
1682
- defaultCharset = dbCollation["CHARSET"];
1683
- db = dbTable["TABLE_SCHEMA"] === currentDatabase ? undefined : dbTable["TABLE_SCHEMA"];
1684
- table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], undefined, db);
1685
- tableFullName = this.driver.buildTableName(dbTable["TABLE_NAME"], undefined, dbTable["TABLE_SCHEMA"]);
1686
- // create columns from the loaded columns
1687
- table.columns = dbColumns
1688
- .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn["TABLE_NAME"], undefined, dbColumn["TABLE_SCHEMA"]) === tableFullName; })
1689
- .map(function (dbColumn) {
1690
- var columnUniqueIndex = dbIndices.find(function (dbIndex) {
1691
- var indexTableFullName = _this.driver.buildTableName(dbIndex["TABLE_NAME"], undefined, dbIndex["TABLE_SCHEMA"]);
1692
- if (indexTableFullName !== tableFullName) {
1693
- return false;
1694
- }
1695
- // Index is not for this column
1696
- if (dbIndex["COLUMN_NAME"] !== dbColumn["COLUMN_NAME"]) {
1697
- return false;
1698
- }
1699
- var nonUnique = parseInt(dbIndex["NON_UNIQUE"], 10);
1700
- return nonUnique === 0;
1701
- });
1702
- var tableMetadata = _this.connection.entityMetadatas.find(function (metadata) { return metadata.tablePath === table.name; });
1703
- var hasIgnoredIndex = columnUniqueIndex && tableMetadata && tableMetadata.indices
1704
- .some(function (index) { return index.name === columnUniqueIndex["INDEX_NAME"] && index.synchronize === false; });
1705
- var isConstraintComposite = columnUniqueIndex
1706
- ? !!dbIndices.find(function (dbIndex) { return dbIndex["INDEX_NAME"] === columnUniqueIndex["INDEX_NAME"] && dbIndex["COLUMN_NAME"] !== dbColumn["COLUMN_NAME"]; })
1707
- : false;
1708
- var tableColumn = new TableColumn_1.TableColumn();
1709
- tableColumn.name = dbColumn["COLUMN_NAME"];
1710
- tableColumn.type = dbColumn["DATA_TYPE"].toLowerCase();
1711
- if (dbColumn["COLUMN_DEFAULT"] === null
1712
- || dbColumn["COLUMN_DEFAULT"] === undefined
1713
- || (isMariaDb && dbColumn["COLUMN_DEFAULT"] === "NULL")) {
1714
- tableColumn.default = undefined;
1715
- }
1716
- else if (/^CURRENT_TIMESTAMP(\([0-9]*\))?$/i.test(dbColumn["COLUMN_DEFAULT"])) {
1717
- // New versions of MariaDB return expressions in lowercase. We need to set it in
1718
- // uppercase so the comparison in MysqlDriver#compareDefaultValues does not fail.
1719
- tableColumn.default = dbColumn["COLUMN_DEFAULT"].toUpperCase();
1720
- }
1721
- else if (isMariaDb && VersionUtils_1.VersionUtils.isGreaterOrEqual(dbVersion, "10.2.7")) {
1722
- // MariaDB started adding quotes to literals in COLUMN_DEFAULT since version 10.2.7
1723
- // See https://mariadb.com/kb/en/library/information-schema-columns-table/
1724
- tableColumn.default = dbColumn["COLUMN_DEFAULT"];
1725
- }
1726
- else {
1727
- tableColumn.default = "'" + dbColumn["COLUMN_DEFAULT"] + "'";
1728
- }
1729
- if (dbColumn["EXTRA"].indexOf("on update") !== -1) {
1730
- tableColumn.onUpdate = dbColumn["EXTRA"].substring(dbColumn["EXTRA"].indexOf("on update") + 10);
1731
- }
1732
- if (dbColumn["GENERATION_EXPRESSION"]) {
1733
- tableColumn.asExpression = dbColumn["GENERATION_EXPRESSION"];
1734
- tableColumn.generatedType = dbColumn["EXTRA"].indexOf("VIRTUAL") !== -1 ? "VIRTUAL" : "STORED";
1735
- }
1736
- tableColumn.isUnique = !!columnUniqueIndex && !hasIgnoredIndex && !isConstraintComposite;
1737
- tableColumn.isNullable = dbColumn["IS_NULLABLE"] === "YES";
1738
- tableColumn.isPrimary = dbPrimaryKeys.some(function (dbPrimaryKey) {
1739
- return _this.driver.buildTableName(dbPrimaryKey["TABLE_NAME"], undefined, dbPrimaryKey["TABLE_SCHEMA"]) === tableFullName && dbPrimaryKey["COLUMN_NAME"] === tableColumn.name;
1740
- });
1741
- tableColumn.zerofill = dbColumn["COLUMN_TYPE"].indexOf("zerofill") !== -1;
1742
- tableColumn.unsigned = tableColumn.zerofill ? true : dbColumn["COLUMN_TYPE"].indexOf("unsigned") !== -1;
1743
- if (_this.driver.withWidthColumnTypes.indexOf(tableColumn.type) !== -1) {
1744
- var width = dbColumn["COLUMN_TYPE"].substring(dbColumn["COLUMN_TYPE"].indexOf("(") + 1, dbColumn["COLUMN_TYPE"].indexOf(")"));
1745
- tableColumn.width = width && !_this.isDefaultColumnWidth(table, tableColumn, parseInt(width)) ? parseInt(width) : undefined;
1746
- }
1747
- tableColumn.isGenerated = dbColumn["EXTRA"].indexOf("auto_increment") !== -1;
1748
- if (tableColumn.isGenerated)
1749
- tableColumn.generationStrategy = "increment";
1750
- tableColumn.comment = dbColumn["COLUMN_COMMENT"];
1751
- if (dbColumn["CHARACTER_SET_NAME"])
1752
- tableColumn.charset = dbColumn["CHARACTER_SET_NAME"] === defaultCharset ? undefined : dbColumn["CHARACTER_SET_NAME"];
1753
- if (dbColumn["COLLATION_NAME"])
1754
- tableColumn.collation = dbColumn["COLLATION_NAME"] === defaultCollation ? undefined : dbColumn["COLLATION_NAME"];
1755
- // check only columns that have length property
1756
- if (_this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 && dbColumn["CHARACTER_MAXIMUM_LENGTH"]) {
1757
- var length = dbColumn["CHARACTER_MAXIMUM_LENGTH"].toString();
1758
- tableColumn.length = !_this.isDefaultColumnLength(table, tableColumn, length) ? length : "";
1759
- }
1760
- if (tableColumn.type === "decimal" || tableColumn.type === "double" || tableColumn.type === "float") {
1761
- if (dbColumn["NUMERIC_PRECISION"] !== null && !_this.isDefaultColumnPrecision(table, tableColumn, dbColumn["NUMERIC_PRECISION"]))
1762
- tableColumn.precision = parseInt(dbColumn["NUMERIC_PRECISION"]);
1763
- if (dbColumn["NUMERIC_SCALE"] !== null && !_this.isDefaultColumnScale(table, tableColumn, dbColumn["NUMERIC_SCALE"]))
1764
- tableColumn.scale = parseInt(dbColumn["NUMERIC_SCALE"]);
1765
- }
1766
- if (tableColumn.type === "enum" || tableColumn.type === "simple-enum" || tableColumn.type === "set") {
1767
- var colType = dbColumn["COLUMN_TYPE"];
1768
- var items = colType.substring(colType.indexOf("(") + 1, colType.indexOf(")")).split(",");
1769
- tableColumn.enum = items.map(function (item) {
1770
- return item.substring(1, item.length - 1);
1771
- });
1772
- tableColumn.length = "";
1773
- }
1774
- if ((tableColumn.type === "datetime" || tableColumn.type === "time" || tableColumn.type === "timestamp")
1775
- && dbColumn["DATETIME_PRECISION"] !== null && dbColumn["DATETIME_PRECISION"] !== undefined
1776
- && !_this.isDefaultColumnPrecision(table, tableColumn, parseInt(dbColumn["DATETIME_PRECISION"]))) {
1777
- tableColumn.precision = parseInt(dbColumn["DATETIME_PRECISION"]);
1778
- }
1779
- return tableColumn;
1780
- });
1781
- tableForeignKeyConstraints = OrmUtils_1.OrmUtils.uniq(dbForeignKeys.filter(function (dbForeignKey) {
1782
- return _this.driver.buildTableName(dbForeignKey["TABLE_NAME"], undefined, dbForeignKey["TABLE_SCHEMA"]) === tableFullName;
1783
- }), function (dbForeignKey) { return dbForeignKey["CONSTRAINT_NAME"]; });
1784
- table.foreignKeys = tableForeignKeyConstraints.map(function (dbForeignKey) {
1785
- var foreignKeys = dbForeignKeys.filter(function (dbFk) { return dbFk["CONSTRAINT_NAME"] === dbForeignKey["CONSTRAINT_NAME"]; });
1786
- // if referenced table located in currently used db, we don't need to concat db name to table name.
1787
- var database = dbForeignKey["REFERENCED_TABLE_SCHEMA"] === currentDatabase ? undefined : dbForeignKey["REFERENCED_TABLE_SCHEMA"];
1788
- var referencedTableName = _this.driver.buildTableName(dbForeignKey["REFERENCED_TABLE_NAME"], undefined, database);
1789
- return new TableForeignKey_1.TableForeignKey({
1790
- name: dbForeignKey["CONSTRAINT_NAME"],
1791
- columnNames: foreignKeys.map(function (dbFk) { return dbFk["COLUMN_NAME"]; }),
1792
- referencedTableName: referencedTableName,
1793
- referencedColumnNames: foreignKeys.map(function (dbFk) { return dbFk["REFERENCED_COLUMN_NAME"]; }),
1794
- onDelete: dbForeignKey["ON_DELETE"],
1795
- onUpdate: dbForeignKey["ON_UPDATE"]
1796
- });
1797
- });
1798
- tableIndexConstraints = OrmUtils_1.OrmUtils.uniq(dbIndices.filter(function (dbIndex) {
1799
- return _this.driver.buildTableName(dbIndex["TABLE_NAME"], undefined, dbIndex["TABLE_SCHEMA"]) === tableFullName;
1800
- }), function (dbIndex) { return dbIndex["INDEX_NAME"]; });
1801
- table.indices = tableIndexConstraints.map(function (constraint) {
1802
- var indices = dbIndices.filter(function (index) {
1803
- return index["TABLE_SCHEMA"] === constraint["TABLE_SCHEMA"]
1804
- && index["TABLE_NAME"] === constraint["TABLE_NAME"]
1805
- && index["INDEX_NAME"] === constraint["INDEX_NAME"];
1806
- });
1807
- var nonUnique = parseInt(constraint["NON_UNIQUE"], 10);
1808
- return new TableIndex_1.TableIndex({
1809
- table: table,
1810
- name: constraint["INDEX_NAME"],
1811
- columnNames: indices.map(function (i) { return i["COLUMN_NAME"]; }),
1812
- isUnique: nonUnique === 0,
1813
- isSpatial: constraint["INDEX_TYPE"] === "SPATIAL",
1814
- isFulltext: constraint["INDEX_TYPE"] === "FULLTEXT"
1815
- });
1816
- });
1817
- return [2 /*return*/, table];
1818
- });
1819
- }); }))];
1171
+ async loadTables(tableNames) {
1172
+ if (tableNames && tableNames.length === 0) {
1173
+ return [];
1174
+ }
1175
+ const currentDatabase = await this.getCurrentDatabase();
1176
+ // The following SQL brought to you by:
1177
+ // A terrible understanding of https://dev.mysql.com/doc/refman/8.0/en/information-schema-optimization.html
1178
+ //
1179
+ // Short Version:
1180
+ // INFORMATION_SCHEMA is a weird metadata virtual table and follows VERY FEW of the normal
1181
+ // query optimization rules. Depending on the columns you query against & the columns you're SELECTing
1182
+ // there can be a drastically different query performance - this is because the tables map to
1183
+ // data on the disk and some pieces of data require a scan of the data directory, the database files, etc
1184
+ // With most of these, you'll want to do an `EXPLAIN` when making changes to make sure
1185
+ // the changes you're making aren't changing the query performance profile negatively
1186
+ // When you do the explain you'll want to look at the `Extra` field -
1187
+ // It will look something like: "Using where; {FILE_OPENING}; Scanned {DB_NUM} databases"
1188
+ // FILE_OPENING will commonly be OPEN_FRM_ONLY or OPEN_FULL_TABLE - you want to aim to NOT do
1189
+ // an OPEN_FULL_TABLE unless necessary. DB_NUM may be a number or "all" - you really want to
1190
+ // keep this to 0 or 1. Ideally 0. "All" means you've scanned all databases - not good.
1191
+ //
1192
+ // For more info, see the above link to the MySQL docs.
1193
+ //
1194
+ // Something not noted in the docs is that complex `WHERE` clauses - such as `OR` expressions -
1195
+ // will cause the query to not hit the optimizations & do full scans. This is why
1196
+ // a number of queries below do `UNION`s of single `WHERE` clauses.
1197
+ const dbTables = [];
1198
+ if (!tableNames) {
1199
+ // Since we don't have any of this data we have to do a scan
1200
+ const tablesSql = `SELECT \`TABLE_SCHEMA\`, \`TABLE_NAME\` FROM \`INFORMATION_SCHEMA\`.\`TABLES\``;
1201
+ dbTables.push(...(await this.query(tablesSql)));
1202
+ }
1203
+ else {
1204
+ // Avoid data directory scan: TABLE_SCHEMA
1205
+ // Avoid database directory scan: TABLE_NAME
1206
+ // We only use `TABLE_SCHEMA` and `TABLE_NAME` which is `SKIP_OPEN_TABLE`
1207
+ const tablesSql = tableNames
1208
+ .filter((tableName) => tableName)
1209
+ .map((tableName) => {
1210
+ let { database, tableName: name } = this.driver.parseTableName(tableName);
1211
+ if (!database) {
1212
+ database = currentDatabase;
1213
+ }
1214
+ return `
1215
+ SELECT \`TABLE_SCHEMA\`,
1216
+ \`TABLE_NAME\`
1217
+ FROM \`INFORMATION_SCHEMA\`.\`TABLES\`
1218
+ WHERE \`TABLE_SCHEMA\` = '${database}'
1219
+ AND \`TABLE_NAME\` = '${name}'
1220
+ `;
1221
+ })
1222
+ .join(" UNION ");
1223
+ dbTables.push(...(await this.query(tablesSql)));
1224
+ }
1225
+ // if tables were not found in the db, no need to proceed
1226
+ if (!dbTables.length)
1227
+ return [];
1228
+ // Avoid data directory scan: TABLE_SCHEMA
1229
+ // Avoid database directory scan: TABLE_NAME
1230
+ // Full columns: CARDINALITY & INDEX_TYPE - everything else is FRM only
1231
+ const statsSubquerySql = dbTables
1232
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1233
+ return `
1234
+ SELECT
1235
+ *
1236
+ FROM \`INFORMATION_SCHEMA\`.\`STATISTICS\`
1237
+ WHERE
1238
+ \`TABLE_SCHEMA\` = '${TABLE_SCHEMA}'
1239
+ AND
1240
+ \`TABLE_NAME\` = '${TABLE_NAME}'
1241
+ `;
1242
+ })
1243
+ .join(" UNION ");
1244
+ // Avoid data directory scan: TABLE_SCHEMA
1245
+ // Avoid database directory scan: TABLE_NAME
1246
+ // All columns will hit the full table.
1247
+ const kcuSubquerySql = dbTables
1248
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1249
+ return `
1250
+ SELECT
1251
+ *
1252
+ FROM \`INFORMATION_SCHEMA\`.\`KEY_COLUMN_USAGE\` \`kcu\`
1253
+ WHERE
1254
+ \`kcu\`.\`TABLE_SCHEMA\` = '${TABLE_SCHEMA}'
1255
+ AND
1256
+ \`kcu\`.\`TABLE_NAME\` = '${TABLE_NAME}'
1257
+ `;
1258
+ })
1259
+ .join(" UNION ");
1260
+ // Avoid data directory scan: CONSTRAINT_SCHEMA
1261
+ // Avoid database directory scan: TABLE_NAME
1262
+ // All columns will hit the full table.
1263
+ const rcSubquerySql = dbTables
1264
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1265
+ return `
1266
+ SELECT
1267
+ *
1268
+ FROM \`INFORMATION_SCHEMA\`.\`REFERENTIAL_CONSTRAINTS\`
1269
+ WHERE
1270
+ \`CONSTRAINT_SCHEMA\` = '${TABLE_SCHEMA}'
1271
+ AND
1272
+ \`TABLE_NAME\` = '${TABLE_NAME}'
1273
+ `;
1274
+ })
1275
+ .join(" UNION ");
1276
+ // Avoid data directory scan: TABLE_SCHEMA
1277
+ // Avoid database directory scan: TABLE_NAME
1278
+ // OPEN_FRM_ONLY applies to all columns
1279
+ const columnsSql = dbTables
1280
+ .map(({ TABLE_SCHEMA, TABLE_NAME }) => {
1281
+ return `
1282
+ SELECT
1283
+ *
1284
+ FROM
1285
+ \`INFORMATION_SCHEMA\`.\`COLUMNS\`
1286
+ WHERE
1287
+ \`TABLE_SCHEMA\` = '${TABLE_SCHEMA}'
1288
+ AND
1289
+ \`TABLE_NAME\` = '${TABLE_NAME}'
1290
+ `;
1291
+ })
1292
+ .join(" UNION ");
1293
+ // No Optimizations are available for COLLATIONS
1294
+ const collationsSql = `
1295
+ SELECT
1296
+ \`SCHEMA_NAME\`,
1297
+ \`DEFAULT_CHARACTER_SET_NAME\` as \`CHARSET\`,
1298
+ \`DEFAULT_COLLATION_NAME\` AS \`COLLATION\`
1299
+ FROM \`INFORMATION_SCHEMA\`.\`SCHEMATA\`
1300
+ `;
1301
+ // Key Column Usage but only for PKs
1302
+ const primaryKeySql = `SELECT * FROM (${kcuSubquerySql}) \`kcu\` WHERE \`CONSTRAINT_NAME\` = 'PRIMARY'`;
1303
+ // Combine stats & referential constraints
1304
+ const indicesSql = `
1305
+ SELECT
1306
+ \`s\`.*
1307
+ FROM (${statsSubquerySql}) \`s\`
1308
+ LEFT JOIN (${rcSubquerySql}) \`rc\`
1309
+ ON
1310
+ \`s\`.\`INDEX_NAME\` = \`rc\`.\`CONSTRAINT_NAME\`
1311
+ AND
1312
+ \`s\`.\`TABLE_SCHEMA\` = \`rc\`.\`CONSTRAINT_SCHEMA\`
1313
+ WHERE
1314
+ \`s\`.\`INDEX_NAME\` != 'PRIMARY'
1315
+ AND
1316
+ \`rc\`.\`CONSTRAINT_NAME\` IS NULL
1317
+ `;
1318
+ // Combine Key Column Usage & Referential Constraints
1319
+ const foreignKeysSql = `
1320
+ SELECT
1321
+ \`kcu\`.\`TABLE_SCHEMA\`,
1322
+ \`kcu\`.\`TABLE_NAME\`,
1323
+ \`kcu\`.\`CONSTRAINT_NAME\`,
1324
+ \`kcu\`.\`COLUMN_NAME\`,
1325
+ \`kcu\`.\`REFERENCED_TABLE_SCHEMA\`,
1326
+ \`kcu\`.\`REFERENCED_TABLE_NAME\`,
1327
+ \`kcu\`.\`REFERENCED_COLUMN_NAME\`,
1328
+ \`rc\`.\`DELETE_RULE\` \`ON_DELETE\`,
1329
+ \`rc\`.\`UPDATE_RULE\` \`ON_UPDATE\`
1330
+ FROM (${kcuSubquerySql}) \`kcu\`
1331
+ INNER JOIN (${rcSubquerySql}) \`rc\`
1332
+ ON
1333
+ \`rc\`.\`CONSTRAINT_SCHEMA\` = \`kcu\`.\`CONSTRAINT_SCHEMA\`
1334
+ AND
1335
+ \`rc\`.\`TABLE_NAME\` = \`kcu\`.\`TABLE_NAME\`
1336
+ AND
1337
+ \`rc\`.\`CONSTRAINT_NAME\` = \`kcu\`.\`CONSTRAINT_NAME\`
1338
+ `;
1339
+ const [dbColumns, dbPrimaryKeys, dbCollations, dbIndices, dbForeignKeys,] = await Promise.all([
1340
+ this.query(columnsSql),
1341
+ this.query(primaryKeySql),
1342
+ this.query(collationsSql),
1343
+ this.query(indicesSql),
1344
+ this.query(foreignKeysSql),
1345
+ ]);
1346
+ const isMariaDb = this.driver.options.type === "mariadb";
1347
+ const dbVersion = await this.getVersion();
1348
+ // create tables for loaded tables
1349
+ return Promise.all(dbTables.map(async (dbTable) => {
1350
+ const table = new Table_1.Table();
1351
+ const dbCollation = dbCollations.find((coll) => coll["SCHEMA_NAME"] === dbTable["TABLE_SCHEMA"]);
1352
+ const defaultCollation = dbCollation["COLLATION"];
1353
+ const defaultCharset = dbCollation["CHARSET"];
1354
+ // We do not need to join database name, when database is by default.
1355
+ const db = dbTable["TABLE_SCHEMA"] === currentDatabase
1356
+ ? undefined
1357
+ : dbTable["TABLE_SCHEMA"];
1358
+ table.database = dbTable["TABLE_SCHEMA"];
1359
+ table.name = this.driver.buildTableName(dbTable["TABLE_NAME"], undefined, db);
1360
+ // create columns from the loaded columns
1361
+ table.columns = dbColumns
1362
+ .filter((dbColumn) => dbColumn["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1363
+ dbColumn["TABLE_SCHEMA"] ===
1364
+ dbTable["TABLE_SCHEMA"])
1365
+ .map((dbColumn) => {
1366
+ const columnUniqueIndices = dbIndices.filter((dbIndex) => {
1367
+ return (dbIndex["TABLE_NAME"] ===
1368
+ dbTable["TABLE_NAME"] &&
1369
+ dbIndex["TABLE_SCHEMA"] ===
1370
+ dbTable["TABLE_SCHEMA"] &&
1371
+ dbIndex["COLUMN_NAME"] ===
1372
+ dbColumn["COLUMN_NAME"] &&
1373
+ parseInt(dbIndex["NON_UNIQUE"], 10) === 0);
1374
+ });
1375
+ const tableMetadata = this.connection.entityMetadatas.find((metadata) => this.getTablePath(table) ===
1376
+ this.getTablePath(metadata));
1377
+ const hasIgnoredIndex = columnUniqueIndices.length > 0 &&
1378
+ tableMetadata &&
1379
+ tableMetadata.indices.some((index) => {
1380
+ return columnUniqueIndices.some((uniqueIndex) => {
1381
+ return (index.name ===
1382
+ uniqueIndex["INDEX_NAME"] &&
1383
+ index.synchronize === false);
1384
+ });
1385
+ });
1386
+ const isConstraintComposite = columnUniqueIndices.every((uniqueIndex) => {
1387
+ return dbIndices.some((dbIndex) => dbIndex["INDEX_NAME"] ===
1388
+ uniqueIndex["INDEX_NAME"] &&
1389
+ dbIndex["COLUMN_NAME"] !==
1390
+ dbColumn["COLUMN_NAME"]);
1391
+ });
1392
+ const tableColumn = new TableColumn_1.TableColumn();
1393
+ tableColumn.name = dbColumn["COLUMN_NAME"];
1394
+ tableColumn.type = dbColumn["DATA_TYPE"].toLowerCase();
1395
+ tableColumn.zerofill =
1396
+ dbColumn["COLUMN_TYPE"].indexOf("zerofill") !== -1;
1397
+ tableColumn.unsigned = tableColumn.zerofill
1398
+ ? true
1399
+ : dbColumn["COLUMN_TYPE"].indexOf("unsigned") !== -1;
1400
+ if (this.driver.withWidthColumnTypes.indexOf(tableColumn.type) !== -1) {
1401
+ const width = dbColumn["COLUMN_TYPE"].substring(dbColumn["COLUMN_TYPE"].indexOf("(") + 1, dbColumn["COLUMN_TYPE"].indexOf(")"));
1402
+ tableColumn.width =
1403
+ width &&
1404
+ !this.isDefaultColumnWidth(table, tableColumn, parseInt(width))
1405
+ ? parseInt(width)
1406
+ : undefined;
1407
+ }
1408
+ if (dbColumn["COLUMN_DEFAULT"] === null ||
1409
+ dbColumn["COLUMN_DEFAULT"] === undefined ||
1410
+ (isMariaDb && dbColumn["COLUMN_DEFAULT"] === "NULL")) {
1411
+ tableColumn.default = undefined;
1412
+ }
1413
+ else if (/^CURRENT_TIMESTAMP(\([0-9]*\))?$/i.test(dbColumn["COLUMN_DEFAULT"])) {
1414
+ // New versions of MariaDB return expressions in lowercase. We need to set it in
1415
+ // uppercase so the comparison in MysqlDriver#compareDefaultValues does not fail.
1416
+ tableColumn.default =
1417
+ dbColumn["COLUMN_DEFAULT"].toUpperCase();
1820
1418
  }
1419
+ else if (isMariaDb &&
1420
+ VersionUtils_1.VersionUtils.isGreaterOrEqual(dbVersion, "10.2.7")) {
1421
+ // MariaDB started adding quotes to literals in COLUMN_DEFAULT since version 10.2.7
1422
+ // See https://mariadb.com/kb/en/library/information-schema-columns-table/
1423
+ tableColumn.default = dbColumn["COLUMN_DEFAULT"];
1424
+ }
1425
+ else {
1426
+ tableColumn.default = `'${dbColumn["COLUMN_DEFAULT"]}'`;
1427
+ }
1428
+ if (dbColumn["EXTRA"].indexOf("on update") !== -1) {
1429
+ // New versions of MariaDB return expressions in lowercase. We need to set it in
1430
+ // uppercase so the comparison in MysqlDriver#compareExtraValues does not fail.
1431
+ tableColumn.onUpdate = dbColumn["EXTRA"]
1432
+ .substring(dbColumn["EXTRA"].indexOf("on update") + 10)
1433
+ .toUpperCase();
1434
+ }
1435
+ if (dbColumn["GENERATION_EXPRESSION"]) {
1436
+ tableColumn.asExpression =
1437
+ dbColumn["GENERATION_EXPRESSION"];
1438
+ tableColumn.generatedType =
1439
+ dbColumn["EXTRA"].indexOf("VIRTUAL") !== -1
1440
+ ? "VIRTUAL"
1441
+ : "STORED";
1442
+ }
1443
+ tableColumn.isUnique =
1444
+ columnUniqueIndices.length > 0 &&
1445
+ !hasIgnoredIndex &&
1446
+ !isConstraintComposite;
1447
+ tableColumn.isNullable =
1448
+ dbColumn["IS_NULLABLE"] === "YES";
1449
+ tableColumn.isPrimary = dbPrimaryKeys.some((dbPrimaryKey) => {
1450
+ return (dbPrimaryKey["TABLE_NAME"] ===
1451
+ dbColumn["TABLE_NAME"] &&
1452
+ dbPrimaryKey["TABLE_SCHEMA"] ===
1453
+ dbColumn["TABLE_SCHEMA"] &&
1454
+ dbPrimaryKey["COLUMN_NAME"] ===
1455
+ dbColumn["COLUMN_NAME"]);
1456
+ });
1457
+ tableColumn.isGenerated =
1458
+ dbColumn["EXTRA"].indexOf("auto_increment") !== -1;
1459
+ if (tableColumn.isGenerated)
1460
+ tableColumn.generationStrategy = "increment";
1461
+ tableColumn.comment =
1462
+ typeof dbColumn["COLUMN_COMMENT"] === "string" &&
1463
+ dbColumn["COLUMN_COMMENT"].length === 0
1464
+ ? undefined
1465
+ : dbColumn["COLUMN_COMMENT"];
1466
+ if (dbColumn["CHARACTER_SET_NAME"])
1467
+ tableColumn.charset =
1468
+ dbColumn["CHARACTER_SET_NAME"] ===
1469
+ defaultCharset
1470
+ ? undefined
1471
+ : dbColumn["CHARACTER_SET_NAME"];
1472
+ if (dbColumn["COLLATION_NAME"])
1473
+ tableColumn.collation =
1474
+ dbColumn["COLLATION_NAME"] === defaultCollation
1475
+ ? undefined
1476
+ : dbColumn["COLLATION_NAME"];
1477
+ // check only columns that have length property
1478
+ if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 &&
1479
+ dbColumn["CHARACTER_MAXIMUM_LENGTH"]) {
1480
+ const length = dbColumn["CHARACTER_MAXIMUM_LENGTH"].toString();
1481
+ tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length)
1482
+ ? length
1483
+ : "";
1484
+ }
1485
+ if (tableColumn.type === "decimal" ||
1486
+ tableColumn.type === "double" ||
1487
+ tableColumn.type === "float") {
1488
+ if (dbColumn["NUMERIC_PRECISION"] !== null &&
1489
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["NUMERIC_PRECISION"]))
1490
+ tableColumn.precision = parseInt(dbColumn["NUMERIC_PRECISION"]);
1491
+ if (dbColumn["NUMERIC_SCALE"] !== null &&
1492
+ !this.isDefaultColumnScale(table, tableColumn, dbColumn["NUMERIC_SCALE"]))
1493
+ tableColumn.scale = parseInt(dbColumn["NUMERIC_SCALE"]);
1494
+ }
1495
+ if (tableColumn.type === "enum" ||
1496
+ tableColumn.type === "simple-enum" ||
1497
+ tableColumn.type === "set") {
1498
+ const colType = dbColumn["COLUMN_TYPE"];
1499
+ const items = colType
1500
+ .substring(colType.indexOf("(") + 1, colType.lastIndexOf(")"))
1501
+ .split(",");
1502
+ tableColumn.enum = items.map((item) => {
1503
+ return item.substring(1, item.length - 1);
1504
+ });
1505
+ tableColumn.length = "";
1506
+ }
1507
+ if ((tableColumn.type === "datetime" ||
1508
+ tableColumn.type === "time" ||
1509
+ tableColumn.type === "timestamp") &&
1510
+ dbColumn["DATETIME_PRECISION"] !== null &&
1511
+ dbColumn["DATETIME_PRECISION"] !== undefined &&
1512
+ !this.isDefaultColumnPrecision(table, tableColumn, parseInt(dbColumn["DATETIME_PRECISION"]))) {
1513
+ tableColumn.precision = parseInt(dbColumn["DATETIME_PRECISION"]);
1514
+ }
1515
+ return tableColumn;
1821
1516
  });
1822
- });
1823
- };
1517
+ // find foreign key constraints of table, group them by constraint name and build TableForeignKey.
1518
+ const tableForeignKeyConstraints = OrmUtils_1.OrmUtils.uniq(dbForeignKeys.filter((dbForeignKey) => {
1519
+ return (dbForeignKey["TABLE_NAME"] ===
1520
+ dbTable["TABLE_NAME"] &&
1521
+ dbForeignKey["TABLE_SCHEMA"] ===
1522
+ dbTable["TABLE_SCHEMA"]);
1523
+ }), (dbForeignKey) => dbForeignKey["CONSTRAINT_NAME"]);
1524
+ table.foreignKeys = tableForeignKeyConstraints.map((dbForeignKey) => {
1525
+ const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["CONSTRAINT_NAME"] ===
1526
+ dbForeignKey["CONSTRAINT_NAME"]);
1527
+ // if referenced table located in currently used db, we don't need to concat db name to table name.
1528
+ const database = dbForeignKey["REFERENCED_TABLE_SCHEMA"] ===
1529
+ currentDatabase
1530
+ ? undefined
1531
+ : dbForeignKey["REFERENCED_TABLE_SCHEMA"];
1532
+ const referencedTableName = this.driver.buildTableName(dbForeignKey["REFERENCED_TABLE_NAME"], undefined, database);
1533
+ return new TableForeignKey_1.TableForeignKey({
1534
+ name: dbForeignKey["CONSTRAINT_NAME"],
1535
+ columnNames: foreignKeys.map((dbFk) => dbFk["COLUMN_NAME"]),
1536
+ referencedDatabase: dbForeignKey["REFERENCED_TABLE_SCHEMA"],
1537
+ referencedTableName: referencedTableName,
1538
+ referencedColumnNames: foreignKeys.map((dbFk) => dbFk["REFERENCED_COLUMN_NAME"]),
1539
+ onDelete: dbForeignKey["ON_DELETE"],
1540
+ onUpdate: dbForeignKey["ON_UPDATE"],
1541
+ });
1542
+ });
1543
+ // find index constraints of table, group them by constraint name and build TableIndex.
1544
+ const tableIndexConstraints = OrmUtils_1.OrmUtils.uniq(dbIndices.filter((dbIndex) => dbIndex["TABLE_NAME"] === dbTable["TABLE_NAME"] &&
1545
+ dbIndex["TABLE_SCHEMA"] === dbTable["TABLE_SCHEMA"]), (dbIndex) => dbIndex["INDEX_NAME"]);
1546
+ table.indices = tableIndexConstraints.map((constraint) => {
1547
+ const indices = dbIndices.filter((index) => {
1548
+ return (index["TABLE_SCHEMA"] ===
1549
+ constraint["TABLE_SCHEMA"] &&
1550
+ index["TABLE_NAME"] === constraint["TABLE_NAME"] &&
1551
+ index["INDEX_NAME"] === constraint["INDEX_NAME"]);
1552
+ });
1553
+ const nonUnique = parseInt(constraint["NON_UNIQUE"], 10);
1554
+ return new TableIndex_1.TableIndex({
1555
+ table: table,
1556
+ name: constraint["INDEX_NAME"],
1557
+ columnNames: indices.map((i) => i["COLUMN_NAME"]),
1558
+ isUnique: nonUnique === 0,
1559
+ isSpatial: constraint["INDEX_TYPE"] === "SPATIAL",
1560
+ isFulltext: constraint["INDEX_TYPE"] === "FULLTEXT",
1561
+ });
1562
+ });
1563
+ return table;
1564
+ }));
1565
+ }
1824
1566
  /**
1825
1567
  * Builds create table sql
1826
1568
  */
1827
- MysqlQueryRunner.prototype.createTableSql = function (table, createForeignKeys) {
1828
- var _this = this;
1829
- var columnDefinitions = table.columns.map(function (column) { return _this.buildCreateColumnSql(column, true); }).join(", ");
1830
- var sql = "CREATE TABLE " + this.escapePath(table) + " (" + columnDefinitions;
1569
+ createTableSql(table, createForeignKeys) {
1570
+ const columnDefinitions = table.columns
1571
+ .map((column) => this.buildCreateColumnSql(column, true))
1572
+ .join(", ");
1573
+ let sql = `CREATE TABLE ${this.escapePath(table)} (${columnDefinitions}`;
1831
1574
  // we create unique indexes instead of unique constraints, because MySql does not have unique constraints.
1832
1575
  // if we mark column as Unique, it means that we create UNIQUE INDEX.
1833
1576
  table.columns
1834
- .filter(function (column) { return column.isUnique; })
1835
- .forEach(function (column) {
1836
- var isUniqueIndexExist = table.indices.some(function (index) {
1837
- return index.columnNames.length === 1 && !!index.isUnique && index.columnNames.indexOf(column.name) !== -1;
1577
+ .filter((column) => column.isUnique)
1578
+ .forEach((column) => {
1579
+ const isUniqueIndexExist = table.indices.some((index) => {
1580
+ return (index.columnNames.length === 1 &&
1581
+ !!index.isUnique &&
1582
+ index.columnNames.indexOf(column.name) !== -1);
1838
1583
  });
1839
- var isUniqueConstraintExist = table.uniques.some(function (unique) {
1840
- return unique.columnNames.length === 1 && unique.columnNames.indexOf(column.name) !== -1;
1584
+ const isUniqueConstraintExist = table.uniques.some((unique) => {
1585
+ return (unique.columnNames.length === 1 &&
1586
+ unique.columnNames.indexOf(column.name) !== -1);
1841
1587
  });
1842
1588
  if (!isUniqueIndexExist && !isUniqueConstraintExist)
1843
1589
  table.indices.push(new TableIndex_1.TableIndex({
1844
- name: _this.connection.namingStrategy.uniqueConstraintName(table.name, [column.name]),
1590
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
1845
1591
  columnNames: [column.name],
1846
- isUnique: true
1592
+ isUnique: true,
1847
1593
  }));
1848
1594
  });
1849
1595
  // as MySql does not have unique constraints, we must create table indices from table uniques and mark them as unique.
1850
1596
  if (table.uniques.length > 0) {
1851
- table.uniques.forEach(function (unique) {
1852
- var uniqueExist = table.indices.some(function (index) { return index.name === unique.name; });
1597
+ table.uniques.forEach((unique) => {
1598
+ const uniqueExist = table.indices.some((index) => index.name === unique.name);
1853
1599
  if (!uniqueExist) {
1854
1600
  table.indices.push(new TableIndex_1.TableIndex({
1855
1601
  name: unique.name,
1856
1602
  columnNames: unique.columnNames,
1857
- isUnique: true
1603
+ isUnique: true,
1858
1604
  }));
1859
1605
  }
1860
1606
  });
1861
1607
  }
1862
1608
  if (table.indices.length > 0) {
1863
- var indicesSql = table.indices.map(function (index) {
1864
- var columnNames = index.columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1609
+ const indicesSql = table.indices
1610
+ .map((index) => {
1611
+ const columnNames = index.columnNames
1612
+ .map((columnName) => `\`${columnName}\``)
1613
+ .join(", ");
1865
1614
  if (!index.name)
1866
- index.name = _this.connection.namingStrategy.indexName(table.name, index.columnNames, index.where);
1867
- var indexType = "";
1615
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
1616
+ let indexType = "";
1868
1617
  if (index.isUnique)
1869
1618
  indexType += "UNIQUE ";
1870
1619
  if (index.isSpatial)
1871
1620
  indexType += "SPATIAL ";
1872
1621
  if (index.isFulltext)
1873
1622
  indexType += "FULLTEXT ";
1874
- return indexType + "INDEX `" + index.name + "` (" + columnNames + ")";
1875
- }).join(", ");
1876
- sql += ", " + indicesSql;
1623
+ const indexParser = index.isFulltext && index.parser
1624
+ ? ` WITH PARSER ${index.parser}`
1625
+ : "";
1626
+ return `${indexType}INDEX \`${index.name}\` (${columnNames})${indexParser}`;
1627
+ })
1628
+ .join(", ");
1629
+ sql += `, ${indicesSql}`;
1877
1630
  }
1878
1631
  if (table.foreignKeys.length > 0 && createForeignKeys) {
1879
- var foreignKeysSql = table.foreignKeys.map(function (fk) {
1880
- var columnNames = fk.columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1632
+ const foreignKeysSql = table.foreignKeys
1633
+ .map((fk) => {
1634
+ const columnNames = fk.columnNames
1635
+ .map((columnName) => `\`${columnName}\``)
1636
+ .join(", ");
1881
1637
  if (!fk.name)
1882
- fk.name = _this.connection.namingStrategy.foreignKeyName(table.name, fk.columnNames, fk.referencedTableName, fk.referencedColumnNames);
1883
- var referencedColumnNames = fk.referencedColumnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1884
- var constraint = "CONSTRAINT `" + fk.name + "` FOREIGN KEY (" + columnNames + ") REFERENCES " + _this.escapePath(fk.referencedTableName) + " (" + referencedColumnNames + ")";
1638
+ fk.name = this.connection.namingStrategy.foreignKeyName(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
1639
+ const referencedColumnNames = fk.referencedColumnNames
1640
+ .map((columnName) => `\`${columnName}\``)
1641
+ .join(", ");
1642
+ let constraint = `CONSTRAINT \`${fk.name}\` FOREIGN KEY (${columnNames}) REFERENCES ${this.escapePath(this.getTablePath(fk))} (${referencedColumnNames})`;
1885
1643
  if (fk.onDelete)
1886
- constraint += " ON DELETE " + fk.onDelete;
1644
+ constraint += ` ON DELETE ${fk.onDelete}`;
1887
1645
  if (fk.onUpdate)
1888
- constraint += " ON UPDATE " + fk.onUpdate;
1646
+ constraint += ` ON UPDATE ${fk.onUpdate}`;
1889
1647
  return constraint;
1890
- }).join(", ");
1891
- sql += ", " + foreignKeysSql;
1648
+ })
1649
+ .join(", ");
1650
+ sql += `, ${foreignKeysSql}`;
1892
1651
  }
1893
1652
  if (table.primaryColumns.length > 0) {
1894
- var columnNames = table.primaryColumns.map(function (column) { return "`" + column.name + "`"; }).join(", ");
1895
- sql += ", PRIMARY KEY (" + columnNames + ")";
1653
+ const columnNames = table.primaryColumns
1654
+ .map((column) => `\`${column.name}\``)
1655
+ .join(", ");
1656
+ sql += `, PRIMARY KEY (${columnNames})`;
1896
1657
  }
1897
- sql += ") ENGINE=" + (table.engine || "InnoDB");
1658
+ sql += `) ENGINE=${table.engine || "InnoDB"}`;
1898
1659
  return new Query_1.Query(sql);
1899
- };
1660
+ }
1900
1661
  /**
1901
1662
  * Builds drop table sql
1902
1663
  */
1903
- MysqlQueryRunner.prototype.dropTableSql = function (tableOrName) {
1904
- return new Query_1.Query("DROP TABLE " + this.escapePath(tableOrName));
1905
- };
1906
- MysqlQueryRunner.prototype.createViewSql = function (view) {
1664
+ dropTableSql(tableOrName) {
1665
+ return new Query_1.Query(`DROP TABLE ${this.escapePath(tableOrName)}`);
1666
+ }
1667
+ createViewSql(view) {
1907
1668
  if (typeof view.expression === "string") {
1908
- return new Query_1.Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression);
1669
+ return new Query_1.Query(`CREATE VIEW ${this.escapePath(view)} AS ${view.expression}`);
1909
1670
  }
1910
1671
  else {
1911
- return new Query_1.Query("CREATE VIEW " + this.escapePath(view) + " AS " + view.expression(this.connection).getQuery());
1672
+ return new Query_1.Query(`CREATE VIEW ${this.escapePath(view)} AS ${view
1673
+ .expression(this.connection)
1674
+ .getQuery()}`);
1912
1675
  }
1913
- };
1914
- MysqlQueryRunner.prototype.insertViewDefinitionSql = function (view) {
1915
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1916
- var currentDatabase, expression, _a, query, parameters;
1917
- return tslib_1.__generator(this, function (_b) {
1918
- switch (_b.label) {
1919
- case 0: return [4 /*yield*/, this.getCurrentDatabase()];
1920
- case 1:
1921
- currentDatabase = _b.sent();
1922
- expression = typeof view.expression === "string" ? view.expression.trim() : view.expression(this.connection).getQuery();
1923
- _a = tslib_1.__read(this.connection.createQueryBuilder()
1924
- .insert()
1925
- .into(this.getTypeormMetadataTableName())
1926
- .values({ type: "VIEW", schema: currentDatabase, name: view.name, value: expression })
1927
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
1928
- return [2 /*return*/, new Query_1.Query(query, parameters)];
1929
- }
1930
- });
1676
+ }
1677
+ async insertViewDefinitionSql(view) {
1678
+ const currentDatabase = await this.getCurrentDatabase();
1679
+ const expression = typeof view.expression === "string"
1680
+ ? view.expression.trim()
1681
+ : view.expression(this.connection).getQuery();
1682
+ return this.insertTypeormMetadataSql({
1683
+ type: MetadataTableType_1.MetadataTableType.VIEW,
1684
+ schema: currentDatabase,
1685
+ name: view.name,
1686
+ value: expression,
1931
1687
  });
1932
- };
1688
+ }
1933
1689
  /**
1934
1690
  * Builds drop view sql.
1935
1691
  */
1936
- MysqlQueryRunner.prototype.dropViewSql = function (viewOrPath) {
1937
- return new Query_1.Query("DROP VIEW " + this.escapePath(viewOrPath));
1938
- };
1692
+ dropViewSql(viewOrPath) {
1693
+ return new Query_1.Query(`DROP VIEW ${this.escapePath(viewOrPath)}`);
1694
+ }
1939
1695
  /**
1940
1696
  * Builds remove view sql.
1941
1697
  */
1942
- MysqlQueryRunner.prototype.deleteViewDefinitionSql = function (viewOrPath) {
1943
- return tslib_1.__awaiter(this, void 0, void 0, function () {
1944
- var currentDatabase, viewName, qb, _a, query, parameters;
1945
- return tslib_1.__generator(this, function (_b) {
1946
- switch (_b.label) {
1947
- case 0: return [4 /*yield*/, this.getCurrentDatabase()];
1948
- case 1:
1949
- currentDatabase = _b.sent();
1950
- viewName = viewOrPath instanceof View_1.View ? viewOrPath.name : viewOrPath;
1951
- qb = this.connection.createQueryBuilder();
1952
- _a = tslib_1.__read(qb.delete()
1953
- .from(this.getTypeormMetadataTableName())
1954
- .where(qb.escape("type") + " = 'VIEW'")
1955
- .andWhere(qb.escape("schema") + " = :schema", { schema: currentDatabase })
1956
- .andWhere(qb.escape("name") + " = :name", { name: viewName })
1957
- .getQueryAndParameters(), 2), query = _a[0], parameters = _a[1];
1958
- return [2 /*return*/, new Query_1.Query(query, parameters)];
1959
- }
1960
- });
1698
+ async deleteViewDefinitionSql(viewOrPath) {
1699
+ const currentDatabase = await this.getCurrentDatabase();
1700
+ const viewName = InstanceChecker_1.InstanceChecker.isView(viewOrPath)
1701
+ ? viewOrPath.name
1702
+ : viewOrPath;
1703
+ return this.deleteTypeormMetadataSql({
1704
+ type: MetadataTableType_1.MetadataTableType.VIEW,
1705
+ schema: currentDatabase,
1706
+ name: viewName,
1961
1707
  });
1962
- };
1708
+ }
1963
1709
  /**
1964
1710
  * Builds create index sql.
1965
1711
  */
1966
- MysqlQueryRunner.prototype.createIndexSql = function (table, index) {
1967
- var columns = index.columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1968
- var indexType = "";
1712
+ createIndexSql(table, index) {
1713
+ const columns = index.columnNames
1714
+ .map((columnName) => `\`${columnName}\``)
1715
+ .join(", ");
1716
+ let indexType = "";
1969
1717
  if (index.isUnique)
1970
1718
  indexType += "UNIQUE ";
1971
1719
  if (index.isSpatial)
1972
1720
  indexType += "SPATIAL ";
1973
1721
  if (index.isFulltext)
1974
1722
  indexType += "FULLTEXT ";
1975
- return new Query_1.Query("CREATE " + indexType + "INDEX `" + index.name + "` ON " + this.escapePath(table) + " (" + columns + ")");
1976
- };
1723
+ const indexParser = index.isFulltext && index.parser
1724
+ ? ` WITH PARSER ${index.parser}`
1725
+ : "";
1726
+ return new Query_1.Query(`CREATE ${indexType}INDEX \`${index.name}\` ON ${this.escapePath(table)} (${columns})${indexParser}`);
1727
+ }
1977
1728
  /**
1978
1729
  * Builds drop index sql.
1979
1730
  */
1980
- MysqlQueryRunner.prototype.dropIndexSql = function (table, indexOrName) {
1981
- var indexName = indexOrName instanceof TableIndex_1.TableIndex ? indexOrName.name : indexOrName;
1982
- return new Query_1.Query("DROP INDEX `" + indexName + "` ON " + this.escapePath(table));
1983
- };
1731
+ dropIndexSql(table, indexOrName) {
1732
+ let indexName = InstanceChecker_1.InstanceChecker.isTableIndex(indexOrName)
1733
+ ? indexOrName.name
1734
+ : indexOrName;
1735
+ return new Query_1.Query(`DROP INDEX \`${indexName}\` ON ${this.escapePath(table)}`);
1736
+ }
1984
1737
  /**
1985
1738
  * Builds create primary key sql.
1986
1739
  */
1987
- MysqlQueryRunner.prototype.createPrimaryKeySql = function (table, columnNames) {
1988
- var columnNamesString = columnNames.map(function (columnName) { return "`" + columnName + "`"; }).join(", ");
1989
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD PRIMARY KEY (" + columnNamesString + ")");
1990
- };
1740
+ createPrimaryKeySql(table, columnNames) {
1741
+ const columnNamesString = columnNames
1742
+ .map((columnName) => `\`${columnName}\``)
1743
+ .join(", ");
1744
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD PRIMARY KEY (${columnNamesString})`);
1745
+ }
1991
1746
  /**
1992
1747
  * Builds drop primary key sql.
1993
1748
  */
1994
- MysqlQueryRunner.prototype.dropPrimaryKeySql = function (table) {
1995
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP PRIMARY KEY");
1996
- };
1749
+ dropPrimaryKeySql(table) {
1750
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP PRIMARY KEY`);
1751
+ }
1997
1752
  /**
1998
1753
  * Builds create foreign key sql.
1999
1754
  */
2000
- MysqlQueryRunner.prototype.createForeignKeySql = function (table, foreignKey) {
2001
- var columnNames = foreignKey.columnNames.map(function (column) { return "`" + column + "`"; }).join(", ");
2002
- var referencedColumnNames = foreignKey.referencedColumnNames.map(function (column) { return "`" + column + "`"; }).join(",");
2003
- var sql = "ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT `" + foreignKey.name + "` FOREIGN KEY (" + columnNames + ") " +
2004
- ("REFERENCES " + this.escapePath(foreignKey.referencedTableName) + "(" + referencedColumnNames + ")");
1755
+ createForeignKeySql(table, foreignKey) {
1756
+ const columnNames = foreignKey.columnNames
1757
+ .map((column) => `\`${column}\``)
1758
+ .join(", ");
1759
+ const referencedColumnNames = foreignKey.referencedColumnNames
1760
+ .map((column) => `\`${column}\``)
1761
+ .join(",");
1762
+ let sql = `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT \`${foreignKey.name}\` FOREIGN KEY (${columnNames}) ` +
1763
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
2005
1764
  if (foreignKey.onDelete)
2006
- sql += " ON DELETE " + foreignKey.onDelete;
1765
+ sql += ` ON DELETE ${foreignKey.onDelete}`;
2007
1766
  if (foreignKey.onUpdate)
2008
- sql += " ON UPDATE " + foreignKey.onUpdate;
1767
+ sql += ` ON UPDATE ${foreignKey.onUpdate}`;
2009
1768
  return new Query_1.Query(sql);
2010
- };
1769
+ }
2011
1770
  /**
2012
1771
  * Builds drop foreign key sql.
2013
1772
  */
2014
- MysqlQueryRunner.prototype.dropForeignKeySql = function (table, foreignKeyOrName) {
2015
- var foreignKeyName = foreignKeyOrName instanceof TableForeignKey_1.TableForeignKey ? foreignKeyOrName.name : foreignKeyOrName;
2016
- return new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP FOREIGN KEY `" + foreignKeyName + "`");
2017
- };
2018
- MysqlQueryRunner.prototype.parseTableName = function (target) {
2019
- var tableName = target instanceof Table_1.Table ? target.name : target;
2020
- return {
2021
- database: tableName.indexOf(".") !== -1 ? tableName.split(".")[0] : this.driver.database,
2022
- tableName: tableName.indexOf(".") !== -1 ? tableName.split(".")[1] : tableName
2023
- };
2024
- };
1773
+ dropForeignKeySql(table, foreignKeyOrName) {
1774
+ const foreignKeyName = InstanceChecker_1.InstanceChecker.isTableForeignKey(foreignKeyOrName)
1775
+ ? foreignKeyOrName.name
1776
+ : foreignKeyOrName;
1777
+ return new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP FOREIGN KEY \`${foreignKeyName}\``);
1778
+ }
1779
+ /**
1780
+ * Escapes a given comment so it's safe to include in a query.
1781
+ */
1782
+ escapeComment(comment) {
1783
+ if (!comment || comment.length === 0) {
1784
+ return `''`;
1785
+ }
1786
+ comment = comment
1787
+ .replace(/\\/g, "\\\\") // MySQL allows escaping characters via backslashes
1788
+ .replace(/'/g, "''")
1789
+ .replace(/\u0000/g, ""); // Null bytes aren't allowed in comments
1790
+ return `'${comment}'`;
1791
+ }
2025
1792
  /**
2026
1793
  * Escapes given table or view path.
2027
1794
  */
2028
- MysqlQueryRunner.prototype.escapePath = function (target, disableEscape) {
2029
- var tableName = target instanceof Table_1.Table || target instanceof View_1.View ? target.name : target;
2030
- return tableName.split(".").map(function (i) { return disableEscape ? i : "`" + i + "`"; }).join(".");
2031
- };
1795
+ escapePath(target) {
1796
+ const { database, tableName } = this.driver.parseTableName(target);
1797
+ if (database && database !== this.driver.database) {
1798
+ return `\`${database}\`.\`${tableName}\``;
1799
+ }
1800
+ return `\`${tableName}\``;
1801
+ }
2032
1802
  /**
2033
1803
  * Builds a part of query to create/change a column.
2034
1804
  */
2035
- MysqlQueryRunner.prototype.buildCreateColumnSql = function (column, skipPrimary, skipName) {
2036
- if (skipName === void 0) { skipName = false; }
2037
- var c = "";
1805
+ buildCreateColumnSql(column, skipPrimary, skipName = false) {
1806
+ let c = "";
2038
1807
  if (skipName) {
2039
1808
  c = this.connection.driver.createFullType(column);
2040
1809
  }
2041
1810
  else {
2042
- c = "`" + column.name + "` " + this.connection.driver.createFullType(column);
1811
+ c = `\`${column.name}\` ${this.connection.driver.createFullType(column)}`;
2043
1812
  }
2044
1813
  if (column.asExpression)
2045
- c += " AS (" + column.asExpression + ") " + (column.generatedType ? column.generatedType : "VIRTUAL");
1814
+ c += ` AS (${column.asExpression}) ${column.generatedType ? column.generatedType : "VIRTUAL"}`;
2046
1815
  // if you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to that column.
2047
1816
  if (column.zerofill) {
2048
1817
  c += " ZEROFILL";
@@ -2051,42 +1820,76 @@ var MysqlQueryRunner = /** @class */ (function (_super) {
2051
1820
  c += " UNSIGNED";
2052
1821
  }
2053
1822
  if (column.enum)
2054
- c += " (" + column.enum.map(function (value) { return "'" + value.replace("'", "''") + "'"; }).join(", ") + ")";
1823
+ c += ` (${column.enum
1824
+ .map((value) => "'" + value.replace(/'/g, "''") + "'")
1825
+ .join(", ")})`;
2055
1826
  if (column.charset)
2056
- c += " CHARACTER SET \"" + column.charset + "\"";
1827
+ c += ` CHARACTER SET "${column.charset}"`;
2057
1828
  if (column.collation)
2058
- c += " COLLATE \"" + column.collation + "\"";
2059
- if (!column.isNullable)
2060
- c += " NOT NULL";
2061
- if (column.isNullable)
2062
- c += " NULL";
1829
+ c += ` COLLATE "${column.collation}"`;
1830
+ const isMariaDb = this.driver.options.type === "mariadb";
1831
+ if (isMariaDb &&
1832
+ column.asExpression &&
1833
+ ["VIRTUAL", "STORED"].includes(column.generatedType || "VIRTUAL")) {
1834
+ // do nothing - MariaDB does not support NULL/NOT NULL expressions for VIRTUAL columns and STORED columns
1835
+ }
1836
+ else {
1837
+ if (!column.isNullable)
1838
+ c += " NOT NULL";
1839
+ if (column.isNullable)
1840
+ c += " NULL";
1841
+ }
2063
1842
  if (column.isPrimary && !skipPrimary)
2064
1843
  c += " PRIMARY KEY";
2065
- if (column.isGenerated && column.generationStrategy === "increment") // don't use skipPrimary here since updates can update already exist primary without auto inc.
1844
+ if (column.isGenerated && column.generationStrategy === "increment")
1845
+ // don't use skipPrimary here since updates can update already exist primary without auto inc.
2066
1846
  c += " AUTO_INCREMENT";
2067
- if (column.comment)
2068
- c += " COMMENT '" + column.comment + "'";
1847
+ if (column.comment && column.comment.length > 0)
1848
+ c += ` COMMENT ${this.escapeComment(column.comment)}`;
2069
1849
  if (column.default !== undefined && column.default !== null)
2070
- c += " DEFAULT " + column.default;
1850
+ c += ` DEFAULT ${column.default}`;
2071
1851
  if (column.onUpdate)
2072
- c += " ON UPDATE " + column.onUpdate;
1852
+ c += ` ON UPDATE ${column.onUpdate}`;
2073
1853
  return c;
2074
- };
2075
- MysqlQueryRunner.prototype.getVersion = function () {
2076
- return tslib_1.__awaiter(this, void 0, void 0, function () {
2077
- var result;
2078
- return tslib_1.__generator(this, function (_a) {
2079
- switch (_a.label) {
2080
- case 0: return [4 /*yield*/, this.query("SELECT VERSION() AS `version`")];
2081
- case 1:
2082
- result = _a.sent();
2083
- return [2 /*return*/, result[0]["version"]];
2084
- }
2085
- });
2086
- });
2087
- };
2088
- return MysqlQueryRunner;
2089
- }(BaseQueryRunner_1.BaseQueryRunner));
1854
+ }
1855
+ async getVersion() {
1856
+ const result = await this.query(`SELECT VERSION() AS \`version\``);
1857
+ return result[0]["version"];
1858
+ }
1859
+ /**
1860
+ * Checks if column display width is by default.
1861
+ */
1862
+ isDefaultColumnWidth(table, column, width) {
1863
+ // if table have metadata, we check if length is specified in column metadata
1864
+ if (this.connection.hasMetadata(table.name)) {
1865
+ const metadata = this.connection.getMetadata(table.name);
1866
+ const columnMetadata = metadata.findColumnWithDatabaseName(column.name);
1867
+ if (columnMetadata && columnMetadata.width)
1868
+ return false;
1869
+ }
1870
+ const defaultWidthForType = this.connection.driver.dataTypeDefaults &&
1871
+ this.connection.driver.dataTypeDefaults[column.type] &&
1872
+ this.connection.driver.dataTypeDefaults[column.type].width;
1873
+ if (defaultWidthForType) {
1874
+ // In MariaDB & MySQL 5.7, the default widths of certain numeric types are 1 less than
1875
+ // the usual defaults when the column is unsigned.
1876
+ const typesWithReducedUnsignedDefault = [
1877
+ "int",
1878
+ "tinyint",
1879
+ "smallint",
1880
+ "mediumint",
1881
+ ];
1882
+ const needsAdjustment = typesWithReducedUnsignedDefault.indexOf(column.type) !== -1;
1883
+ if (column.unsigned && needsAdjustment) {
1884
+ return defaultWidthForType - 1 === width;
1885
+ }
1886
+ else {
1887
+ return defaultWidthForType === width;
1888
+ }
1889
+ }
1890
+ return false;
1891
+ }
1892
+ }
2090
1893
  exports.MysqlQueryRunner = MysqlQueryRunner;
2091
1894
 
2092
1895
  //# sourceMappingURL=MysqlQueryRunner.js.map