taon-typeorm 21.0.39 → 21.0.41

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 (1558) hide show
  1. package/VERIFIED-BUILD-DATA.jsonc +3 -3
  2. package/browser/package.json +1 -1
  3. package/browser-prod/fesm2022/taon-typeorm-browser-prod.mjs.map +1 -1
  4. package/browser-prod/package.json +1 -1
  5. package/lib/build-info._auto-generated_.d.ts +1 -1
  6. package/lib/build-info._auto-generated_.js +1 -1
  7. package/lib/package.json +1 -1
  8. package/lib-esm/app.d.ts +0 -0
  9. package/lib-esm/app.electron.d.ts +0 -0
  10. package/lib-esm/app.electron.js +82 -0
  11. package/lib-esm/app.electron.js.map +1 -0
  12. package/lib-esm/app.hosts.d.ts +3 -0
  13. package/lib-esm/app.hosts.js +48 -0
  14. package/lib-esm/app.hosts.js.map +1 -0
  15. package/lib-esm/app.js +51 -0
  16. package/lib-esm/app.js.map +1 -0
  17. package/lib-esm/app.vscode.d.ts +0 -0
  18. package/lib-esm/app.vscode.js +47 -0
  19. package/lib-esm/app.vscode.js.map +1 -0
  20. package/lib-esm/index.d.ts +1 -0
  21. package/lib-esm/index.js +2 -0
  22. package/lib-esm/index.js.map +1 -0
  23. package/lib-esm/lib/build-info._auto-generated_.d.ts +24 -0
  24. package/lib-esm/lib/build-info._auto-generated_.js +27 -0
  25. package/lib-esm/lib/build-info._auto-generated_.js.map +1 -0
  26. package/lib-esm/lib/env/env.angular-node-app.d.ts +66 -0
  27. package/lib-esm/lib/env/env.angular-node-app.js +135 -0
  28. package/lib-esm/lib/env/env.angular-node-app.js.map +1 -0
  29. package/lib-esm/lib/env/env.docs-webapp.d.ts +66 -0
  30. package/lib-esm/lib/env/env.docs-webapp.js +135 -0
  31. package/lib-esm/lib/env/env.docs-webapp.js.map +1 -0
  32. package/lib-esm/lib/env/env.electron-app.d.ts +66 -0
  33. package/lib-esm/lib/env/env.electron-app.js +135 -0
  34. package/lib-esm/lib/env/env.electron-app.js.map +1 -0
  35. package/lib-esm/lib/env/env.mobile-app.d.ts +66 -0
  36. package/lib-esm/lib/env/env.mobile-app.js +135 -0
  37. package/lib-esm/lib/env/env.mobile-app.js.map +1 -0
  38. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.d.ts +66 -0
  39. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js +135 -0
  40. package/lib-esm/lib/env/env.npm-lib-and-cli-tool.js.map +1 -0
  41. package/lib-esm/lib/env/env.vscode-plugin.d.ts +66 -0
  42. package/lib-esm/lib/env/env.vscode-plugin.js +135 -0
  43. package/lib-esm/lib/env/env.vscode-plugin.js.map +1 -0
  44. package/lib-esm/lib/env/index.d.ts +6 -0
  45. package/lib-esm/lib/env/index.js +7 -0
  46. package/lib-esm/lib/env/index.js.map +1 -0
  47. package/lib-esm/lib/index._auto-generated_.d.ts +0 -0
  48. package/lib-esm/lib/index._auto-generated_.js +6 -0
  49. package/lib-esm/lib/index._auto-generated_.js.map +1 -0
  50. package/lib-esm/lib/index.d.ts +1 -0
  51. package/lib-esm/lib/index.js +2 -0
  52. package/lib-esm/lib/index.js.map +1 -0
  53. package/lib-esm/lib/migrations/index.d.ts +1 -0
  54. package/lib-esm/lib/migrations/index.js +3 -0
  55. package/lib-esm/lib/migrations/index.js.map +1 -0
  56. package/lib-esm/lib/migrations/migrations_index._auto-generated_.d.ts +0 -0
  57. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js +4 -0
  58. package/lib-esm/lib/migrations/migrations_index._auto-generated_.js.map +1 -0
  59. package/lib-esm/lib/typeorm/cache/DbQueryResultCache.d.ts +52 -0
  60. package/lib-esm/lib/typeorm/cache/DbQueryResultCache.js +274 -0
  61. package/lib-esm/lib/typeorm/cache/DbQueryResultCache.js.map +1 -0
  62. package/lib-esm/lib/typeorm/cache/QueryResultCache.d.ts +39 -0
  63. package/lib-esm/lib/typeorm/cache/QueryResultCache.js +2 -0
  64. package/lib-esm/lib/typeorm/cache/QueryResultCache.js.map +1 -0
  65. package/lib-esm/lib/typeorm/cache/QueryResultCacheFactory.d.ts +13 -0
  66. package/lib-esm/lib/typeorm/cache/QueryResultCacheFactory.js +38 -0
  67. package/lib-esm/lib/typeorm/cache/QueryResultCacheFactory.js.map +1 -0
  68. package/lib-esm/lib/typeorm/cache/QueryResultCacheOptions.d.ts +26 -0
  69. package/lib-esm/lib/typeorm/cache/QueryResultCacheOptions.js +2 -0
  70. package/lib-esm/lib/typeorm/cache/QueryResultCacheOptions.js.map +1 -0
  71. package/lib-esm/lib/typeorm/cache/RedisQueryResultCache.d.ts +65 -0
  72. package/lib-esm/lib/typeorm/cache/RedisQueryResultCache.js +208 -0
  73. package/lib-esm/lib/typeorm/cache/RedisQueryResultCache.js.map +1 -0
  74. package/lib-esm/lib/typeorm/cli-ts-node-commonjs.d.ts +2 -0
  75. package/lib-esm/lib/typeorm/cli-ts-node-commonjs.js +6 -0
  76. package/lib-esm/lib/typeorm/cli-ts-node-commonjs.js.map +1 -0
  77. package/lib-esm/lib/typeorm/cli-ts-node-esm.d.ts +2 -0
  78. package/lib-esm/lib/typeorm/cli-ts-node-esm.js +22 -0
  79. package/lib-esm/lib/typeorm/cli-ts-node-esm.js.map +1 -0
  80. package/lib-esm/lib/typeorm/cli.d.ts +2 -0
  81. package/lib-esm/lib/typeorm/cli.js +41 -0
  82. package/lib-esm/lib/typeorm/cli.js.map +1 -0
  83. package/lib-esm/lib/typeorm/commands/CacheClearCommand.d.ts +12 -0
  84. package/lib-esm/lib/typeorm/commands/CacheClearCommand.js +47 -0
  85. package/lib-esm/lib/typeorm/commands/CacheClearCommand.js.map +1 -0
  86. package/lib-esm/lib/typeorm/commands/CommandUtils.d.ts +24 -0
  87. package/lib-esm/lib/typeorm/commands/CommandUtils.js +83 -0
  88. package/lib-esm/lib/typeorm/commands/CommandUtils.js.map +1 -0
  89. package/lib-esm/lib/typeorm/commands/EntityCreateCommand.d.ts +13 -0
  90. package/lib-esm/lib/typeorm/commands/EntityCreateCommand.js +46 -0
  91. package/lib-esm/lib/typeorm/commands/EntityCreateCommand.js.map +1 -0
  92. package/lib-esm/lib/typeorm/commands/InitCommand.d.ts +69 -0
  93. package/lib-esm/lib/typeorm/commands/InitCommand.js +613 -0
  94. package/lib-esm/lib/typeorm/commands/InitCommand.js.map +1 -0
  95. package/lib-esm/lib/typeorm/commands/MigrationCreateCommand.d.ts +22 -0
  96. package/lib-esm/lib/typeorm/commands/MigrationCreateCommand.js +84 -0
  97. package/lib-esm/lib/typeorm/commands/MigrationCreateCommand.js.map +1 -0
  98. package/lib-esm/lib/typeorm/commands/MigrationGenerateCommand.d.ts +38 -0
  99. package/lib-esm/lib/typeorm/commands/MigrationGenerateCommand.js +202 -0
  100. package/lib-esm/lib/typeorm/commands/MigrationGenerateCommand.js.map +1 -0
  101. package/lib-esm/lib/typeorm/commands/MigrationRevertCommand.d.ts +16 -0
  102. package/lib-esm/lib/typeorm/commands/MigrationRevertCommand.js +71 -0
  103. package/lib-esm/lib/typeorm/commands/MigrationRevertCommand.js.map +1 -0
  104. package/lib-esm/lib/typeorm/commands/MigrationRunCommand.d.ts +16 -0
  105. package/lib-esm/lib/typeorm/commands/MigrationRunCommand.js +75 -0
  106. package/lib-esm/lib/typeorm/commands/MigrationRunCommand.js.map +1 -0
  107. package/lib-esm/lib/typeorm/commands/MigrationShowCommand.d.ts +12 -0
  108. package/lib-esm/lib/typeorm/commands/MigrationShowCommand.js +42 -0
  109. package/lib-esm/lib/typeorm/commands/MigrationShowCommand.js.map +1 -0
  110. package/lib-esm/lib/typeorm/commands/QueryCommand.d.ts +14 -0
  111. package/lib-esm/lib/typeorm/commands/QueryCommand.js +62 -0
  112. package/lib-esm/lib/typeorm/commands/QueryCommand.js.map +1 -0
  113. package/lib-esm/lib/typeorm/commands/SchemaDropCommand.d.ts +12 -0
  114. package/lib-esm/lib/typeorm/commands/SchemaDropCommand.js +43 -0
  115. package/lib-esm/lib/typeorm/commands/SchemaDropCommand.js.map +1 -0
  116. package/lib-esm/lib/typeorm/commands/SchemaLogCommand.d.ts +12 -0
  117. package/lib-esm/lib/typeorm/commands/SchemaLogCommand.js +67 -0
  118. package/lib-esm/lib/typeorm/commands/SchemaLogCommand.js.map +1 -0
  119. package/lib-esm/lib/typeorm/commands/SchemaSyncCommand.d.ts +12 -0
  120. package/lib-esm/lib/typeorm/commands/SchemaSyncCommand.js +43 -0
  121. package/lib-esm/lib/typeorm/commands/SchemaSyncCommand.js.map +1 -0
  122. package/lib-esm/lib/typeorm/commands/SubscriberCreateCommand.d.ts +13 -0
  123. package/lib-esm/lib/typeorm/commands/SubscriberCreateCommand.js +46 -0
  124. package/lib-esm/lib/typeorm/commands/SubscriberCreateCommand.js.map +1 -0
  125. package/lib-esm/lib/typeorm/commands/VersionCommand.d.ts +10 -0
  126. package/lib-esm/lib/typeorm/commands/VersionCommand.js +52 -0
  127. package/lib-esm/lib/typeorm/commands/VersionCommand.js.map +1 -0
  128. package/lib-esm/lib/typeorm/common/DeepPartial.d.ts +6 -0
  129. package/lib-esm/lib/typeorm/common/DeepPartial.js +2 -0
  130. package/lib-esm/lib/typeorm/common/DeepPartial.js.map +1 -0
  131. package/lib-esm/lib/typeorm/common/EntityTarget.d.ts +9 -0
  132. package/lib-esm/lib/typeorm/common/EntityTarget.js +2 -0
  133. package/lib-esm/lib/typeorm/common/EntityTarget.js.map +1 -0
  134. package/lib-esm/lib/typeorm/common/MixedList.d.ts +8 -0
  135. package/lib-esm/lib/typeorm/common/MixedList.js +2 -0
  136. package/lib-esm/lib/typeorm/common/MixedList.js.map +1 -0
  137. package/lib-esm/lib/typeorm/common/NonNever.d.ts +6 -0
  138. package/lib-esm/lib/typeorm/common/NonNever.js +2 -0
  139. package/lib-esm/lib/typeorm/common/NonNever.js.map +1 -0
  140. package/lib-esm/lib/typeorm/common/ObjectLiteral.d.ts +6 -0
  141. package/lib-esm/lib/typeorm/common/ObjectLiteral.js +2 -0
  142. package/lib-esm/lib/typeorm/common/ObjectLiteral.js.map +1 -0
  143. package/lib-esm/lib/typeorm/common/ObjectType.d.ts +6 -0
  144. package/lib-esm/lib/typeorm/common/ObjectType.js +2 -0
  145. package/lib-esm/lib/typeorm/common/ObjectType.js.map +1 -0
  146. package/lib-esm/lib/typeorm/common/RelationType.d.ts +14 -0
  147. package/lib-esm/lib/typeorm/common/RelationType.js +2 -0
  148. package/lib-esm/lib/typeorm/common/RelationType.js.map +1 -0
  149. package/lib-esm/lib/typeorm/connection/BaseConnectionOptions.d.ts +7 -0
  150. package/lib-esm/lib/typeorm/connection/BaseConnectionOptions.js +2 -0
  151. package/lib-esm/lib/typeorm/connection/BaseConnectionOptions.js.map +1 -0
  152. package/lib-esm/lib/typeorm/connection/Connection.d.ts +10 -0
  153. package/lib-esm/lib/typeorm/connection/Connection.js +11 -0
  154. package/lib-esm/lib/typeorm/connection/Connection.js.map +1 -0
  155. package/lib-esm/lib/typeorm/connection/ConnectionManager.d.ts +33 -0
  156. package/lib-esm/lib/typeorm/connection/ConnectionManager.js +59 -0
  157. package/lib-esm/lib/typeorm/connection/ConnectionManager.js.map +1 -0
  158. package/lib-esm/lib/typeorm/connection/ConnectionMetadataBuilder.d.ts +24 -0
  159. package/lib-esm/lib/typeorm/connection/ConnectionMetadataBuilder.js +70 -0
  160. package/lib-esm/lib/typeorm/connection/ConnectionMetadataBuilder.js.map +1 -0
  161. package/lib-esm/lib/typeorm/connection/ConnectionOptions.d.ts +9 -0
  162. package/lib-esm/lib/typeorm/connection/ConnectionOptions.js +2 -0
  163. package/lib-esm/lib/typeorm/connection/ConnectionOptions.js.map +1 -0
  164. package/lib-esm/lib/typeorm/connection/ConnectionOptionsReader.d.ts +64 -0
  165. package/lib-esm/lib/typeorm/connection/ConnectionOptionsReader.js +223 -0
  166. package/lib-esm/lib/typeorm/connection/ConnectionOptionsReader.js.map +1 -0
  167. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsEnvReader.d.ts +30 -0
  168. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsEnvReader.js +106 -0
  169. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -0
  170. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsXmlReader.d.ts +16 -0
  171. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsXmlReader.js +65 -0
  172. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -0
  173. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsYmlReader.d.ts +12 -0
  174. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsYmlReader.js +27 -0
  175. package/lib-esm/lib/typeorm/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -0
  176. package/lib-esm/lib/typeorm/constants.d.ts +1 -0
  177. package/lib-esm/lib/typeorm/constants.js +3 -0
  178. package/lib-esm/lib/typeorm/constants.js.map +1 -0
  179. package/lib-esm/lib/typeorm/container.d.ts +39 -0
  180. package/lib-esm/lib/typeorm/container.js +53 -0
  181. package/lib-esm/lib/typeorm/container.js.map +1 -0
  182. package/lib-esm/lib/typeorm/data-source/BaseDataSourceOptions.d.ts +171 -0
  183. package/lib-esm/lib/typeorm/data-source/BaseDataSourceOptions.js +2 -0
  184. package/lib-esm/lib/typeorm/data-source/BaseDataSourceOptions.js.map +1 -0
  185. package/lib-esm/lib/typeorm/data-source/DataSource.d.ts +260 -0
  186. package/lib-esm/lib/typeorm/data-source/DataSource.js +524 -0
  187. package/lib-esm/lib/typeorm/data-source/DataSource.js.map +1 -0
  188. package/lib-esm/lib/typeorm/data-source/DataSourceOptions.d.ts +22 -0
  189. package/lib-esm/lib/typeorm/data-source/DataSourceOptions.js +3 -0
  190. package/lib-esm/lib/typeorm/data-source/DataSourceOptions.js.map +1 -0
  191. package/lib-esm/lib/typeorm/data-source/index.d.ts +2 -0
  192. package/lib-esm/lib/typeorm/data-source/index.js +3 -0
  193. package/lib-esm/lib/typeorm/data-source/index.js.map +1 -0
  194. package/lib-esm/lib/typeorm/decorator/Check.d.ts +12 -0
  195. package/lib-esm/lib/typeorm/decorator/Check.js +23 -0
  196. package/lib-esm/lib/typeorm/decorator/Check.js.map +1 -0
  197. package/lib-esm/lib/typeorm/decorator/EntityRepository.d.ts +9 -0
  198. package/lib-esm/lib/typeorm/decorator/EntityRepository.js +17 -0
  199. package/lib-esm/lib/typeorm/decorator/EntityRepository.js.map +1 -0
  200. package/lib-esm/lib/typeorm/decorator/Exclusion.d.ts +12 -0
  201. package/lib-esm/lib/typeorm/decorator/Exclusion.js +23 -0
  202. package/lib-esm/lib/typeorm/decorator/Exclusion.js.map +1 -0
  203. package/lib-esm/lib/typeorm/decorator/Generated.d.ts +10 -0
  204. package/lib-esm/lib/typeorm/decorator/Generated.js +20 -0
  205. package/lib-esm/lib/typeorm/decorator/Generated.js.map +1 -0
  206. package/lib-esm/lib/typeorm/decorator/Index.d.ts +49 -0
  207. package/lib-esm/lib/typeorm/decorator/Index.js +51 -0
  208. package/lib-esm/lib/typeorm/decorator/Index.js.map +1 -0
  209. package/lib-esm/lib/typeorm/decorator/Unique.d.ts +21 -0
  210. package/lib-esm/lib/typeorm/decorator/Unique.js +46 -0
  211. package/lib-esm/lib/typeorm/decorator/Unique.js.map +1 -0
  212. package/lib-esm/lib/typeorm/decorator/columns/Column.d.ts +74 -0
  213. package/lib-esm/lib/typeorm/decorator/columns/Column.js +74 -0
  214. package/lib-esm/lib/typeorm/decorator/columns/Column.js.map +1 -0
  215. package/lib-esm/lib/typeorm/decorator/columns/CreateDateColumn.d.ts +7 -0
  216. package/lib-esm/lib/typeorm/decorator/columns/CreateDateColumn.js +17 -0
  217. package/lib-esm/lib/typeorm/decorator/columns/CreateDateColumn.js.map +1 -0
  218. package/lib-esm/lib/typeorm/decorator/columns/DeleteDateColumn.d.ts +6 -0
  219. package/lib-esm/lib/typeorm/decorator/columns/DeleteDateColumn.js +16 -0
  220. package/lib-esm/lib/typeorm/decorator/columns/DeleteDateColumn.js.map +1 -0
  221. package/lib-esm/lib/typeorm/decorator/columns/ObjectIdColumn.d.ts +6 -0
  222. package/lib-esm/lib/typeorm/decorator/columns/ObjectIdColumn.js +23 -0
  223. package/lib-esm/lib/typeorm/decorator/columns/ObjectIdColumn.js.map +1 -0
  224. package/lib-esm/lib/typeorm/decorator/columns/PrimaryColumn.d.ts +21 -0
  225. package/lib-esm/lib/typeorm/decorator/columns/PrimaryColumn.js +59 -0
  226. package/lib-esm/lib/typeorm/decorator/columns/PrimaryColumn.js.map +1 -0
  227. package/lib-esm/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.d.ts +24 -0
  228. package/lib-esm/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.js +55 -0
  229. package/lib-esm/lib/typeorm/decorator/columns/PrimaryGeneratedColumn.js.map +1 -0
  230. package/lib-esm/lib/typeorm/decorator/columns/UpdateDateColumn.d.ts +6 -0
  231. package/lib-esm/lib/typeorm/decorator/columns/UpdateDateColumn.js +16 -0
  232. package/lib-esm/lib/typeorm/decorator/columns/UpdateDateColumn.js.map +1 -0
  233. package/lib-esm/lib/typeorm/decorator/columns/VersionColumn.d.ts +7 -0
  234. package/lib-esm/lib/typeorm/decorator/columns/VersionColumn.js +17 -0
  235. package/lib-esm/lib/typeorm/decorator/columns/VersionColumn.js.map +1 -0
  236. package/lib-esm/lib/typeorm/decorator/columns/ViewColumn.d.ts +5 -0
  237. package/lib-esm/lib/typeorm/decorator/columns/ViewColumn.js +15 -0
  238. package/lib-esm/lib/typeorm/decorator/columns/ViewColumn.js.map +1 -0
  239. package/lib-esm/lib/typeorm/decorator/columns/VirtualColumn.d.ts +10 -0
  240. package/lib-esm/lib/typeorm/decorator/columns/VirtualColumn.js +45 -0
  241. package/lib-esm/lib/typeorm/decorator/columns/VirtualColumn.js.map +1 -0
  242. package/lib-esm/lib/typeorm/decorator/entity/ChildEntity.d.ts +4 -0
  243. package/lib-esm/lib/typeorm/decorator/entity/ChildEntity.js +21 -0
  244. package/lib-esm/lib/typeorm/decorator/entity/ChildEntity.js.map +1 -0
  245. package/lib-esm/lib/typeorm/decorator/entity/Entity.d.ts +11 -0
  246. package/lib-esm/lib/typeorm/decorator/entity/Entity.js +27 -0
  247. package/lib-esm/lib/typeorm/decorator/entity/Entity.js.map +1 -0
  248. package/lib-esm/lib/typeorm/decorator/entity/TableInheritance.d.ts +8 -0
  249. package/lib-esm/lib/typeorm/decorator/entity/TableInheritance.js +18 -0
  250. package/lib-esm/lib/typeorm/decorator/entity/TableInheritance.js.map +1 -0
  251. package/lib-esm/lib/typeorm/decorator/entity-view/ViewEntity.d.ts +11 -0
  252. package/lib-esm/lib/typeorm/decorator/entity-view/ViewEntity.js +28 -0
  253. package/lib-esm/lib/typeorm/decorator/entity-view/ViewEntity.js.map +1 -0
  254. package/lib-esm/lib/typeorm/decorator/listeners/AfterInsert.d.ts +4 -0
  255. package/lib-esm/lib/typeorm/decorator/listeners/AfterInsert.js +15 -0
  256. package/lib-esm/lib/typeorm/decorator/listeners/AfterInsert.js.map +1 -0
  257. package/lib-esm/lib/typeorm/decorator/listeners/AfterLoad.d.ts +4 -0
  258. package/lib-esm/lib/typeorm/decorator/listeners/AfterLoad.js +15 -0
  259. package/lib-esm/lib/typeorm/decorator/listeners/AfterLoad.js.map +1 -0
  260. package/lib-esm/lib/typeorm/decorator/listeners/AfterRecover.d.ts +4 -0
  261. package/lib-esm/lib/typeorm/decorator/listeners/AfterRecover.js +15 -0
  262. package/lib-esm/lib/typeorm/decorator/listeners/AfterRecover.js.map +1 -0
  263. package/lib-esm/lib/typeorm/decorator/listeners/AfterRemove.d.ts +4 -0
  264. package/lib-esm/lib/typeorm/decorator/listeners/AfterRemove.js +15 -0
  265. package/lib-esm/lib/typeorm/decorator/listeners/AfterRemove.js.map +1 -0
  266. package/lib-esm/lib/typeorm/decorator/listeners/AfterSoftRemove.d.ts +4 -0
  267. package/lib-esm/lib/typeorm/decorator/listeners/AfterSoftRemove.js +15 -0
  268. package/lib-esm/lib/typeorm/decorator/listeners/AfterSoftRemove.js.map +1 -0
  269. package/lib-esm/lib/typeorm/decorator/listeners/AfterUpdate.d.ts +4 -0
  270. package/lib-esm/lib/typeorm/decorator/listeners/AfterUpdate.js +15 -0
  271. package/lib-esm/lib/typeorm/decorator/listeners/AfterUpdate.js.map +1 -0
  272. package/lib-esm/lib/typeorm/decorator/listeners/BeforeInsert.d.ts +4 -0
  273. package/lib-esm/lib/typeorm/decorator/listeners/BeforeInsert.js +15 -0
  274. package/lib-esm/lib/typeorm/decorator/listeners/BeforeInsert.js.map +1 -0
  275. package/lib-esm/lib/typeorm/decorator/listeners/BeforeRecover.d.ts +4 -0
  276. package/lib-esm/lib/typeorm/decorator/listeners/BeforeRecover.js +15 -0
  277. package/lib-esm/lib/typeorm/decorator/listeners/BeforeRecover.js.map +1 -0
  278. package/lib-esm/lib/typeorm/decorator/listeners/BeforeRemove.d.ts +4 -0
  279. package/lib-esm/lib/typeorm/decorator/listeners/BeforeRemove.js +15 -0
  280. package/lib-esm/lib/typeorm/decorator/listeners/BeforeRemove.js.map +1 -0
  281. package/lib-esm/lib/typeorm/decorator/listeners/BeforeSoftRemove.d.ts +4 -0
  282. package/lib-esm/lib/typeorm/decorator/listeners/BeforeSoftRemove.js +15 -0
  283. package/lib-esm/lib/typeorm/decorator/listeners/BeforeSoftRemove.js.map +1 -0
  284. package/lib-esm/lib/typeorm/decorator/listeners/BeforeUpdate.d.ts +4 -0
  285. package/lib-esm/lib/typeorm/decorator/listeners/BeforeUpdate.js +15 -0
  286. package/lib-esm/lib/typeorm/decorator/listeners/BeforeUpdate.js.map +1 -0
  287. package/lib-esm/lib/typeorm/decorator/listeners/EventSubscriber.d.ts +5 -0
  288. package/lib-esm/lib/typeorm/decorator/listeners/EventSubscriber.js +13 -0
  289. package/lib-esm/lib/typeorm/decorator/listeners/EventSubscriber.js.map +1 -0
  290. package/lib-esm/lib/typeorm/decorator/options/ColumnCommonOptions.d.ts +57 -0
  291. package/lib-esm/lib/typeorm/decorator/options/ColumnCommonOptions.js +2 -0
  292. package/lib-esm/lib/typeorm/decorator/options/ColumnCommonOptions.js.map +1 -0
  293. package/lib-esm/lib/typeorm/decorator/options/ColumnEmbeddedOptions.d.ts +16 -0
  294. package/lib-esm/lib/typeorm/decorator/options/ColumnEmbeddedOptions.js +2 -0
  295. package/lib-esm/lib/typeorm/decorator/options/ColumnEmbeddedOptions.js.map +1 -0
  296. package/lib-esm/lib/typeorm/decorator/options/ColumnEnumOptions.d.ts +13 -0
  297. package/lib-esm/lib/typeorm/decorator/options/ColumnEnumOptions.js +2 -0
  298. package/lib-esm/lib/typeorm/decorator/options/ColumnEnumOptions.js.map +1 -0
  299. package/lib-esm/lib/typeorm/decorator/options/ColumnHstoreOptions.d.ts +10 -0
  300. package/lib-esm/lib/typeorm/decorator/options/ColumnHstoreOptions.js +2 -0
  301. package/lib-esm/lib/typeorm/decorator/options/ColumnHstoreOptions.js.map +1 -0
  302. package/lib-esm/lib/typeorm/decorator/options/ColumnNumericOptions.d.ts +24 -0
  303. package/lib-esm/lib/typeorm/decorator/options/ColumnNumericOptions.js +2 -0
  304. package/lib-esm/lib/typeorm/decorator/options/ColumnNumericOptions.js.map +1 -0
  305. package/lib-esm/lib/typeorm/decorator/options/ColumnOptions.d.ts +158 -0
  306. package/lib-esm/lib/typeorm/decorator/options/ColumnOptions.js +2 -0
  307. package/lib-esm/lib/typeorm/decorator/options/ColumnOptions.js.map +1 -0
  308. package/lib-esm/lib/typeorm/decorator/options/ColumnWithLengthOptions.d.ts +10 -0
  309. package/lib-esm/lib/typeorm/decorator/options/ColumnWithLengthOptions.js +2 -0
  310. package/lib-esm/lib/typeorm/decorator/options/ColumnWithLengthOptions.js.map +1 -0
  311. package/lib-esm/lib/typeorm/decorator/options/ColumnWithWidthOptions.d.ts +19 -0
  312. package/lib-esm/lib/typeorm/decorator/options/ColumnWithWidthOptions.js +2 -0
  313. package/lib-esm/lib/typeorm/decorator/options/ColumnWithWidthOptions.js.map +1 -0
  314. package/lib-esm/lib/typeorm/decorator/options/EntityOptions.d.ts +42 -0
  315. package/lib-esm/lib/typeorm/decorator/options/EntityOptions.js +2 -0
  316. package/lib-esm/lib/typeorm/decorator/options/EntityOptions.js.map +1 -0
  317. package/lib-esm/lib/typeorm/decorator/options/IndexOptions.d.ts +52 -0
  318. package/lib-esm/lib/typeorm/decorator/options/IndexOptions.js +2 -0
  319. package/lib-esm/lib/typeorm/decorator/options/IndexOptions.js.map +1 -0
  320. package/lib-esm/lib/typeorm/decorator/options/JoinColumnOptions.d.ts +17 -0
  321. package/lib-esm/lib/typeorm/decorator/options/JoinColumnOptions.js +2 -0
  322. package/lib-esm/lib/typeorm/decorator/options/JoinColumnOptions.js.map +1 -0
  323. package/lib-esm/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.d.ts +29 -0
  324. package/lib-esm/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.js +2 -0
  325. package/lib-esm/lib/typeorm/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -0
  326. package/lib-esm/lib/typeorm/decorator/options/JoinTableOptions.d.ts +29 -0
  327. package/lib-esm/lib/typeorm/decorator/options/JoinTableOptions.js +2 -0
  328. package/lib-esm/lib/typeorm/decorator/options/JoinTableOptions.js.map +1 -0
  329. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +26 -0
  330. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.js +2 -0
  331. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -0
  332. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +31 -0
  333. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.js +2 -0
  334. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -0
  335. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.d.ts +17 -0
  336. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +2 -0
  337. package/lib-esm/lib/typeorm/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -0
  338. package/lib-esm/lib/typeorm/decorator/options/RelationOptions.d.ts +64 -0
  339. package/lib-esm/lib/typeorm/decorator/options/RelationOptions.js +2 -0
  340. package/lib-esm/lib/typeorm/decorator/options/RelationOptions.js.map +1 -0
  341. package/lib-esm/lib/typeorm/decorator/options/SpatialColumnOptions.d.ts +15 -0
  342. package/lib-esm/lib/typeorm/decorator/options/SpatialColumnOptions.js +2 -0
  343. package/lib-esm/lib/typeorm/decorator/options/SpatialColumnOptions.js.map +1 -0
  344. package/lib-esm/lib/typeorm/decorator/options/TransactionOptions.d.ts +5 -0
  345. package/lib-esm/lib/typeorm/decorator/options/TransactionOptions.js +2 -0
  346. package/lib-esm/lib/typeorm/decorator/options/TransactionOptions.js.map +1 -0
  347. package/lib-esm/lib/typeorm/decorator/options/UniqueOptions.d.ts +10 -0
  348. package/lib-esm/lib/typeorm/decorator/options/UniqueOptions.js +2 -0
  349. package/lib-esm/lib/typeorm/decorator/options/UniqueOptions.js.map +1 -0
  350. package/lib-esm/lib/typeorm/decorator/options/ValueTransformer.d.ts +13 -0
  351. package/lib-esm/lib/typeorm/decorator/options/ValueTransformer.js +2 -0
  352. package/lib-esm/lib/typeorm/decorator/options/ValueTransformer.js.map +1 -0
  353. package/lib-esm/lib/typeorm/decorator/options/ViewColumnOptions.d.ts +15 -0
  354. package/lib-esm/lib/typeorm/decorator/options/ViewColumnOptions.js +2 -0
  355. package/lib-esm/lib/typeorm/decorator/options/ViewColumnOptions.js.map +1 -0
  356. package/lib-esm/lib/typeorm/decorator/options/ViewEntityOptions.d.ts +39 -0
  357. package/lib-esm/lib/typeorm/decorator/options/ViewEntityOptions.js +2 -0
  358. package/lib-esm/lib/typeorm/decorator/options/ViewEntityOptions.js.map +1 -0
  359. package/lib-esm/lib/typeorm/decorator/options/VirtualColumnOptions.d.ts +27 -0
  360. package/lib-esm/lib/typeorm/decorator/options/VirtualColumnOptions.js +2 -0
  361. package/lib-esm/lib/typeorm/decorator/options/VirtualColumnOptions.js.map +1 -0
  362. package/lib-esm/lib/typeorm/decorator/relations/JoinColumn.d.ts +19 -0
  363. package/lib-esm/lib/typeorm/decorator/relations/JoinColumn.js +23 -0
  364. package/lib-esm/lib/typeorm/decorator/relations/JoinColumn.js.map +1 -0
  365. package/lib-esm/lib/typeorm/decorator/relations/JoinTable.d.ts +17 -0
  366. package/lib-esm/lib/typeorm/decorator/relations/JoinTable.js +29 -0
  367. package/lib-esm/lib/typeorm/decorator/relations/JoinTable.js.map +1 -0
  368. package/lib-esm/lib/typeorm/decorator/relations/ManyToMany.d.ts +14 -0
  369. package/lib-esm/lib/typeorm/decorator/relations/ManyToMany.js +42 -0
  370. package/lib-esm/lib/typeorm/decorator/relations/ManyToMany.js.map +1 -0
  371. package/lib-esm/lib/typeorm/decorator/relations/ManyToOne.d.ts +14 -0
  372. package/lib-esm/lib/typeorm/decorator/relations/ManyToOne.js +42 -0
  373. package/lib-esm/lib/typeorm/decorator/relations/ManyToOne.js.map +1 -0
  374. package/lib-esm/lib/typeorm/decorator/relations/OneToMany.d.ts +8 -0
  375. package/lib-esm/lib/typeorm/decorator/relations/OneToMany.js +33 -0
  376. package/lib-esm/lib/typeorm/decorator/relations/OneToMany.js.map +1 -0
  377. package/lib-esm/lib/typeorm/decorator/relations/OneToOne.d.ts +12 -0
  378. package/lib-esm/lib/typeorm/decorator/relations/OneToOne.js +41 -0
  379. package/lib-esm/lib/typeorm/decorator/relations/OneToOne.js.map +1 -0
  380. package/lib-esm/lib/typeorm/decorator/relations/RelationCount.d.ts +7 -0
  381. package/lib-esm/lib/typeorm/decorator/relations/RelationCount.js +18 -0
  382. package/lib-esm/lib/typeorm/decorator/relations/RelationCount.js.map +1 -0
  383. package/lib-esm/lib/typeorm/decorator/relations/RelationId.d.ts +7 -0
  384. package/lib-esm/lib/typeorm/decorator/relations/RelationId.js +18 -0
  385. package/lib-esm/lib/typeorm/decorator/relations/RelationId.js.map +1 -0
  386. package/lib-esm/lib/typeorm/decorator/tree/Tree.d.ts +9 -0
  387. package/lib-esm/lib/typeorm/decorator/tree/Tree.js +17 -0
  388. package/lib-esm/lib/typeorm/decorator/tree/Tree.js.map +1 -0
  389. package/lib-esm/lib/typeorm/decorator/tree/TreeChildren.d.ts +7 -0
  390. package/lib-esm/lib/typeorm/decorator/tree/TreeChildren.js +36 -0
  391. package/lib-esm/lib/typeorm/decorator/tree/TreeChildren.js.map +1 -0
  392. package/lib-esm/lib/typeorm/decorator/tree/TreeLevelColumn.d.ts +4 -0
  393. package/lib-esm/lib/typeorm/decorator/tree/TreeLevelColumn.js +15 -0
  394. package/lib-esm/lib/typeorm/decorator/tree/TreeLevelColumn.js.map +1 -0
  395. package/lib-esm/lib/typeorm/decorator/tree/TreeParent.d.ts +8 -0
  396. package/lib-esm/lib/typeorm/decorator/tree/TreeParent.js +35 -0
  397. package/lib-esm/lib/typeorm/decorator/tree/TreeParent.js.map +1 -0
  398. package/lib-esm/lib/typeorm/driver/Driver.d.ts +207 -0
  399. package/lib-esm/lib/typeorm/driver/Driver.js +2 -0
  400. package/lib-esm/lib/typeorm/driver/Driver.js.map +1 -0
  401. package/lib-esm/lib/typeorm/driver/DriverFactory.d.ts +11 -0
  402. package/lib-esm/lib/typeorm/driver/DriverFactory.js +112 -0
  403. package/lib-esm/lib/typeorm/driver/DriverFactory.js.map +1 -0
  404. package/lib-esm/lib/typeorm/driver/DriverUtils.d.ts +61 -0
  405. package/lib-esm/lib/typeorm/driver/DriverUtils.js +223 -0
  406. package/lib-esm/lib/typeorm/driver/DriverUtils.js.map +1 -0
  407. package/lib-esm/lib/typeorm/driver/Query.d.ts +9 -0
  408. package/lib-esm/lib/typeorm/driver/Query.js +13 -0
  409. package/lib-esm/lib/typeorm/driver/Query.js.map +1 -0
  410. package/lib-esm/lib/typeorm/driver/SqlInMemory.d.ts +8 -0
  411. package/lib-esm/lib/typeorm/driver/SqlInMemory.js +8 -0
  412. package/lib-esm/lib/typeorm/driver/SqlInMemory.js.map +1 -0
  413. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnection.d.ts +13 -0
  414. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnection.js +15 -0
  415. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -0
  416. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.d.ts +35 -0
  417. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js +2 -0
  418. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -0
  419. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionOptions.d.ts +35 -0
  420. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionOptions.js +3 -0
  421. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -0
  422. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlDriver.d.ts +250 -0
  423. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlDriver.js +876 -0
  424. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -0
  425. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +327 -0
  426. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlQueryRunner.js +1698 -0
  427. package/lib-esm/lib/typeorm/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -0
  428. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresConnectionOptions.d.ts +35 -0
  429. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresConnectionOptions.js +2 -0
  430. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -0
  431. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresDriver.d.ts +70 -0
  432. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresDriver.js +103 -0
  433. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -0
  434. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +48 -0
  435. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresQueryRunner.js +135 -0
  436. package/lib-esm/lib/typeorm/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -0
  437. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +60 -0
  438. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +2 -0
  439. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  440. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3Driver.d.ts +59 -0
  441. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3Driver.js +151 -0
  442. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  443. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +32 -0
  444. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3QueryRunner.js +126 -0
  445. package/lib-esm/lib/typeorm/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  446. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorConnectionOptions.d.ts +31 -0
  447. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorConnectionOptions.js +2 -0
  448. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorConnectionOptions.js.map +1 -0
  449. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorDriver.d.ts +27 -0
  450. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorDriver.js +79 -0
  451. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorDriver.js.map +1 -0
  452. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorQueryRunner.d.ts +33 -0
  453. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorQueryRunner.js +93 -0
  454. package/lib-esm/lib/typeorm/driver/capacitor/CapacitorQueryRunner.js.map +1 -0
  455. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachConnectionCredentialsOptions.d.ts +34 -0
  456. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +2 -0
  457. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -0
  458. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachConnectionOptions.d.ts +44 -0
  459. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachConnectionOptions.js +2 -0
  460. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -0
  461. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachDriver.d.ts +261 -0
  462. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachDriver.js +792 -0
  463. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachDriver.js.map +1 -0
  464. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachQueryRunner.d.ts +358 -0
  465. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachQueryRunner.js +2140 -0
  466. package/lib-esm/lib/typeorm/driver/cockroachdb/CockroachQueryRunner.js.map +1 -0
  467. package/lib-esm/lib/typeorm/driver/cordova/CordovaConnectionOptions.d.ts +24 -0
  468. package/lib-esm/lib/typeorm/driver/cordova/CordovaConnectionOptions.js +2 -0
  469. package/lib-esm/lib/typeorm/driver/cordova/CordovaConnectionOptions.js.map +1 -0
  470. package/lib-esm/lib/typeorm/driver/cordova/CordovaDriver.d.ts +25 -0
  471. package/lib-esm/lib/typeorm/driver/cordova/CordovaDriver.js +76 -0
  472. package/lib-esm/lib/typeorm/driver/cordova/CordovaDriver.js.map +1 -0
  473. package/lib-esm/lib/typeorm/driver/cordova/CordovaQueryRunner.d.ts +80 -0
  474. package/lib-esm/lib/typeorm/driver/cordova/CordovaQueryRunner.js +157 -0
  475. package/lib-esm/lib/typeorm/driver/cordova/CordovaQueryRunner.js.map +1 -0
  476. package/lib-esm/lib/typeorm/driver/expo/ExpoConnectionOptions.d.ts +19 -0
  477. package/lib-esm/lib/typeorm/driver/expo/ExpoConnectionOptions.js +2 -0
  478. package/lib-esm/lib/typeorm/driver/expo/ExpoConnectionOptions.js.map +1 -0
  479. package/lib-esm/lib/typeorm/driver/expo/ExpoDriver.d.ts +21 -0
  480. package/lib-esm/lib/typeorm/driver/expo/ExpoDriver.js +76 -0
  481. package/lib-esm/lib/typeorm/driver/expo/ExpoDriver.js.map +1 -0
  482. package/lib-esm/lib/typeorm/driver/expo/ExpoQueryRunner.d.ts +57 -0
  483. package/lib-esm/lib/typeorm/driver/expo/ExpoQueryRunner.js +161 -0
  484. package/lib-esm/lib/typeorm/driver/expo/ExpoQueryRunner.js.map +1 -0
  485. package/lib-esm/lib/typeorm/driver/mongodb/MongoConnectionOptions.d.ts +278 -0
  486. package/lib-esm/lib/typeorm/driver/mongodb/MongoConnectionOptions.js +3 -0
  487. package/lib-esm/lib/typeorm/driver/mongodb/MongoConnectionOptions.js.map +1 -0
  488. package/lib-esm/lib/typeorm/driver/mongodb/MongoDriver.d.ts +224 -0
  489. package/lib-esm/lib/typeorm/driver/mongodb/MongoDriver.js +448 -0
  490. package/lib-esm/lib/typeorm/driver/mongodb/MongoDriver.js.map +1 -0
  491. package/lib-esm/lib/typeorm/driver/mongodb/MongoQueryRunner.d.ts +548 -0
  492. package/lib-esm/lib/typeorm/driver/mongodb/MongoQueryRunner.js +743 -0
  493. package/lib-esm/lib/typeorm/driver/mongodb/MongoQueryRunner.js.map +1 -0
  494. package/lib-esm/lib/typeorm/driver/mongodb/typings.d.ts +5350 -0
  495. package/lib-esm/lib/typeorm/driver/mongodb/typings.js +3 -0
  496. package/lib-esm/lib/typeorm/driver/mongodb/typings.js.map +1 -0
  497. package/lib-esm/lib/typeorm/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +39 -0
  498. package/lib-esm/lib/typeorm/driver/mysql/MysqlConnectionCredentialsOptions.js +3 -0
  499. package/lib-esm/lib/typeorm/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -0
  500. package/lib-esm/lib/typeorm/driver/mysql/MysqlConnectionOptions.d.ts +126 -0
  501. package/lib-esm/lib/typeorm/driver/mysql/MysqlConnectionOptions.js +3 -0
  502. package/lib-esm/lib/typeorm/driver/mysql/MysqlConnectionOptions.js.map +1 -0
  503. package/lib-esm/lib/typeorm/driver/mysql/MysqlDriver.d.ts +262 -0
  504. package/lib-esm/lib/typeorm/driver/mysql/MysqlDriver.js +1112 -0
  505. package/lib-esm/lib/typeorm/driver/mysql/MysqlDriver.js.map +1 -0
  506. package/lib-esm/lib/typeorm/driver/mysql/MysqlQueryRunner.d.ts +328 -0
  507. package/lib-esm/lib/typeorm/driver/mysql/MysqlQueryRunner.js +2105 -0
  508. package/lib-esm/lib/typeorm/driver/mysql/MysqlQueryRunner.js.map +1 -0
  509. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.d.ts +45 -0
  510. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.js +2 -0
  511. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptConnectionOptions.js.map +1 -0
  512. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptDriver.d.ts +44 -0
  513. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptDriver.js +101 -0
  514. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptDriver.js.map +1 -0
  515. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptQueryRunner.d.ts +29 -0
  516. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptQueryRunner.js +87 -0
  517. package/lib-esm/lib/typeorm/driver/nativescript/NativescriptQueryRunner.js.map +1 -0
  518. package/lib-esm/lib/typeorm/driver/oracle/OracleConnectionCredentialsOptions.d.ts +41 -0
  519. package/lib-esm/lib/typeorm/driver/oracle/OracleConnectionCredentialsOptions.js +3 -0
  520. package/lib-esm/lib/typeorm/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -0
  521. package/lib-esm/lib/typeorm/driver/oracle/OracleConnectionOptions.d.ts +37 -0
  522. package/lib-esm/lib/typeorm/driver/oracle/OracleConnectionOptions.js +3 -0
  523. package/lib-esm/lib/typeorm/driver/oracle/OracleConnectionOptions.js.map +1 -0
  524. package/lib-esm/lib/typeorm/driver/oracle/OracleDriver.d.ts +240 -0
  525. package/lib-esm/lib/typeorm/driver/oracle/OracleDriver.js +852 -0
  526. package/lib-esm/lib/typeorm/driver/oracle/OracleDriver.js.map +1 -0
  527. package/lib-esm/lib/typeorm/driver/oracle/OracleQueryRunner.d.ts +333 -0
  528. package/lib-esm/lib/typeorm/driver/oracle/OracleQueryRunner.js +1840 -0
  529. package/lib-esm/lib/typeorm/driver/oracle/OracleQueryRunner.js.map +1 -0
  530. package/lib-esm/lib/typeorm/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +34 -0
  531. package/lib-esm/lib/typeorm/driver/postgres/PostgresConnectionCredentialsOptions.js +3 -0
  532. package/lib-esm/lib/typeorm/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -0
  533. package/lib-esm/lib/typeorm/driver/postgres/PostgresConnectionOptions.d.ts +67 -0
  534. package/lib-esm/lib/typeorm/driver/postgres/PostgresConnectionOptions.js +3 -0
  535. package/lib-esm/lib/typeorm/driver/postgres/PostgresConnectionOptions.js.map +1 -0
  536. package/lib-esm/lib/typeorm/driver/postgres/PostgresDriver.d.ts +290 -0
  537. package/lib-esm/lib/typeorm/driver/postgres/PostgresDriver.js +1282 -0
  538. package/lib-esm/lib/typeorm/driver/postgres/PostgresDriver.js.map +1 -0
  539. package/lib-esm/lib/typeorm/driver/postgres/PostgresQueryRunner.d.ts +398 -0
  540. package/lib-esm/lib/typeorm/driver/postgres/PostgresQueryRunner.js +2608 -0
  541. package/lib-esm/lib/typeorm/driver/postgres/PostgresQueryRunner.js.map +1 -0
  542. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.d.ts +24 -0
  543. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.js +2 -0
  544. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeConnectionOptions.js.map +1 -0
  545. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeDriver.d.ts +25 -0
  546. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeDriver.js +80 -0
  547. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeDriver.js.map +1 -0
  548. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeQueryRunner.d.ts +29 -0
  549. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeQueryRunner.js +87 -0
  550. package/lib-esm/lib/typeorm/driver/react-native/ReactNativeQueryRunner.js.map +1 -0
  551. package/lib-esm/lib/typeorm/driver/sap/SapConnectionCredentialsOptions.d.ts +45 -0
  552. package/lib-esm/lib/typeorm/driver/sap/SapConnectionCredentialsOptions.js +2 -0
  553. package/lib-esm/lib/typeorm/driver/sap/SapConnectionCredentialsOptions.js.map +1 -0
  554. package/lib-esm/lib/typeorm/driver/sap/SapConnectionOptions.d.ts +60 -0
  555. package/lib-esm/lib/typeorm/driver/sap/SapConnectionOptions.js +2 -0
  556. package/lib-esm/lib/typeorm/driver/sap/SapConnectionOptions.js.map +1 -0
  557. package/lib-esm/lib/typeorm/driver/sap/SapDriver.d.ts +216 -0
  558. package/lib-esm/lib/typeorm/driver/sap/SapDriver.js +677 -0
  559. package/lib-esm/lib/typeorm/driver/sap/SapDriver.js.map +1 -0
  560. package/lib-esm/lib/typeorm/driver/sap/SapQueryRunner.d.ts +348 -0
  561. package/lib-esm/lib/typeorm/driver/sap/SapQueryRunner.js +2027 -0
  562. package/lib-esm/lib/typeorm/driver/sap/SapQueryRunner.js.map +1 -0
  563. package/lib-esm/lib/typeorm/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
  564. package/lib-esm/lib/typeorm/driver/spanner/SpannerConnectionCredentialsOptions.js +2 -0
  565. package/lib-esm/lib/typeorm/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
  566. package/lib-esm/lib/typeorm/driver/spanner/SpannerConnectionOptions.d.ts +121 -0
  567. package/lib-esm/lib/typeorm/driver/spanner/SpannerConnectionOptions.js +2 -0
  568. package/lib-esm/lib/typeorm/driver/spanner/SpannerConnectionOptions.js.map +1 -0
  569. package/lib-esm/lib/typeorm/driver/spanner/SpannerDriver.d.ts +241 -0
  570. package/lib-esm/lib/typeorm/driver/spanner/SpannerDriver.js +637 -0
  571. package/lib-esm/lib/typeorm/driver/spanner/SpannerDriver.js.map +1 -0
  572. package/lib-esm/lib/typeorm/driver/spanner/SpannerQueryRunner.d.ts +349 -0
  573. package/lib-esm/lib/typeorm/driver/spanner/SpannerQueryRunner.js +1462 -0
  574. package/lib-esm/lib/typeorm/driver/spanner/SpannerQueryRunner.js.map +1 -0
  575. package/lib-esm/lib/typeorm/driver/sqlite/SqliteConnectionOptions.d.ts +42 -0
  576. package/lib-esm/lib/typeorm/driver/sqlite/SqliteConnectionOptions.js +2 -0
  577. package/lib-esm/lib/typeorm/driver/sqlite/SqliteConnectionOptions.js.map +1 -0
  578. package/lib-esm/lib/typeorm/driver/sqlite/SqliteDriver.d.ts +59 -0
  579. package/lib-esm/lib/typeorm/driver/sqlite/SqliteDriver.js +155 -0
  580. package/lib-esm/lib/typeorm/driver/sqlite/SqliteDriver.js.map +1 -0
  581. package/lib-esm/lib/typeorm/driver/sqlite/SqliteQueryRunner.d.ts +27 -0
  582. package/lib-esm/lib/typeorm/driver/sqlite/SqliteQueryRunner.js +104 -0
  583. package/lib-esm/lib/typeorm/driver/sqlite/SqliteQueryRunner.js.map +1 -0
  584. package/lib-esm/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +237 -0
  585. package/lib-esm/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.js +709 -0
  586. package/lib-esm/lib/typeorm/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -0
  587. package/lib-esm/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +301 -0
  588. package/lib-esm/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +1501 -0
  589. package/lib-esm/lib/typeorm/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -0
  590. package/lib-esm/lib/typeorm/driver/sqljs/SqljsConnectionOptions.d.ts +46 -0
  591. package/lib-esm/lib/typeorm/driver/sqljs/SqljsConnectionOptions.js +2 -0
  592. package/lib-esm/lib/typeorm/driver/sqljs/SqljsConnectionOptions.js.map +1 -0
  593. package/lib-esm/lib/typeorm/driver/sqljs/SqljsDriver.d.ts +66 -0
  594. package/lib-esm/lib/typeorm/driver/sqljs/SqljsDriver.js +288 -0
  595. package/lib-esm/lib/typeorm/driver/sqljs/SqljsDriver.js.map +1 -0
  596. package/lib-esm/lib/typeorm/driver/sqljs/SqljsQueryRunner.d.ts +35 -0
  597. package/lib-esm/lib/typeorm/driver/sqljs/SqljsQueryRunner.js +112 -0
  598. package/lib-esm/lib/typeorm/driver/sqljs/SqljsQueryRunner.js.map +1 -0
  599. package/lib-esm/lib/typeorm/driver/sqlserver/MssqlParameter.d.ts +44 -0
  600. package/lib-esm/lib/typeorm/driver/sqlserver/MssqlParameter.js +22 -0
  601. package/lib-esm/lib/typeorm/driver/sqlserver/MssqlParameter.js.map +1 -0
  602. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +49 -0
  603. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +3 -0
  604. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -0
  605. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerConnectionOptions.d.ts +237 -0
  606. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerConnectionOptions.js +3 -0
  607. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -0
  608. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerDriver.d.ts +253 -0
  609. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerDriver.js +917 -0
  610. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerDriver.js.map +1 -0
  611. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerQueryRunner.d.ts +356 -0
  612. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerQueryRunner.js +2438 -0
  613. package/lib-esm/lib/typeorm/driver/sqlserver/SqlServerQueryRunner.js.map +1 -0
  614. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  615. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +2 -0
  616. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  617. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  618. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +2 -0
  619. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  620. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  621. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +2 -0
  622. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  623. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  624. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +2 -0
  625. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  626. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  627. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +2 -0
  628. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  629. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  630. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/DefaultAuthentication.js +2 -0
  631. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  632. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  633. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/NtlmAuthentication.js +2 -0
  634. package/lib-esm/lib/typeorm/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  635. package/lib-esm/lib/typeorm/driver/types/ColumnTypes.d.ts +25 -0
  636. package/lib-esm/lib/typeorm/driver/types/ColumnTypes.js +2 -0
  637. package/lib-esm/lib/typeorm/driver/types/ColumnTypes.js.map +1 -0
  638. package/lib-esm/lib/typeorm/driver/types/CteCapabilities.d.ts +18 -0
  639. package/lib-esm/lib/typeorm/driver/types/CteCapabilities.js +2 -0
  640. package/lib-esm/lib/typeorm/driver/types/CteCapabilities.js.map +1 -0
  641. package/lib-esm/lib/typeorm/driver/types/DataTypeDefaults.d.ts +8 -0
  642. package/lib-esm/lib/typeorm/driver/types/DataTypeDefaults.js +2 -0
  643. package/lib-esm/lib/typeorm/driver/types/DataTypeDefaults.js.map +1 -0
  644. package/lib-esm/lib/typeorm/driver/types/DatabaseType.d.ts +4 -0
  645. package/lib-esm/lib/typeorm/driver/types/DatabaseType.js +2 -0
  646. package/lib-esm/lib/typeorm/driver/types/DatabaseType.js.map +1 -0
  647. package/lib-esm/lib/typeorm/driver/types/IsolationLevel.d.ts +1 -0
  648. package/lib-esm/lib/typeorm/driver/types/IsolationLevel.js +2 -0
  649. package/lib-esm/lib/typeorm/driver/types/IsolationLevel.js.map +1 -0
  650. package/lib-esm/lib/typeorm/driver/types/MappedColumnTypes.d.ts +112 -0
  651. package/lib-esm/lib/typeorm/driver/types/MappedColumnTypes.js +2 -0
  652. package/lib-esm/lib/typeorm/driver/types/MappedColumnTypes.js.map +1 -0
  653. package/lib-esm/lib/typeorm/driver/types/MetadataTableType.d.ts +5 -0
  654. package/lib-esm/lib/typeorm/driver/types/MetadataTableType.js +7 -0
  655. package/lib-esm/lib/typeorm/driver/types/MetadataTableType.js.map +1 -0
  656. package/lib-esm/lib/typeorm/driver/types/ReplicationMode.d.ts +1 -0
  657. package/lib-esm/lib/typeorm/driver/types/ReplicationMode.js +2 -0
  658. package/lib-esm/lib/typeorm/driver/types/ReplicationMode.js.map +1 -0
  659. package/lib-esm/lib/typeorm/driver/types/UpsertType.d.ts +1 -0
  660. package/lib-esm/lib/typeorm/driver/types/UpsertType.js +2 -0
  661. package/lib-esm/lib/typeorm/driver/types/UpsertType.js.map +1 -0
  662. package/lib-esm/lib/typeorm/entity-manager/EntityManager.d.ts +357 -0
  663. package/lib-esm/lib/typeorm/entity-manager/EntityManager.js +787 -0
  664. package/lib-esm/lib/typeorm/entity-manager/EntityManager.js.map +1 -0
  665. package/lib-esm/lib/typeorm/entity-manager/EntityManagerFactory.d.ts +12 -0
  666. package/lib-esm/lib/typeorm/entity-manager/EntityManagerFactory.js +23 -0
  667. package/lib-esm/lib/typeorm/entity-manager/EntityManagerFactory.js.map +1 -0
  668. package/lib-esm/lib/typeorm/entity-manager/MongoEntityManager.d.ts +300 -0
  669. package/lib-esm/lib/typeorm/entity-manager/MongoEntityManager.js +729 -0
  670. package/lib-esm/lib/typeorm/entity-manager/MongoEntityManager.js.map +1 -0
  671. package/lib-esm/lib/typeorm/entity-manager/SqljsEntityManager.d.ts +26 -0
  672. package/lib-esm/lib/typeorm/entity-manager/SqljsEntityManager.js +40 -0
  673. package/lib-esm/lib/typeorm/entity-manager/SqljsEntityManager.js.map +1 -0
  674. package/lib-esm/lib/typeorm/entity-schema/EntitySchema.d.ts +9 -0
  675. package/lib-esm/lib/typeorm/entity-schema/EntitySchema.js +11 -0
  676. package/lib-esm/lib/typeorm/entity-schema/EntitySchema.js.map +1 -0
  677. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaCheckOptions.d.ts +10 -0
  678. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaCheckOptions.js +2 -0
  679. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaCheckOptions.js.map +1 -0
  680. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaColumnOptions.d.ts +174 -0
  681. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaColumnOptions.js +2 -0
  682. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaColumnOptions.js.map +1 -0
  683. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.d.ts +18 -0
  684. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.js +18 -0
  685. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -0
  686. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.d.ts +6 -0
  687. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.js +13 -0
  688. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaEmbeddedError.js.map +1 -0
  689. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.d.ts +10 -0
  690. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.js +2 -0
  691. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaExclusionOptions.js.map +1 -0
  692. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaIndexOptions.d.ts +53 -0
  693. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaIndexOptions.js +2 -0
  694. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaIndexOptions.js.map +1 -0
  695. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaOptions.d.ts +103 -0
  696. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaOptions.js +86 -0
  697. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaOptions.js.map +1 -0
  698. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.d.ts +15 -0
  699. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.js +2 -0
  700. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -0
  701. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaRelationOptions.d.ts +95 -0
  702. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaRelationOptions.js +2 -0
  703. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaRelationOptions.js.map +1 -0
  704. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaTransformer.d.ts +13 -0
  705. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaTransformer.js +280 -0
  706. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaTransformer.js.map +1 -0
  707. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.d.ts +17 -0
  708. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.js +2 -0
  709. package/lib-esm/lib/typeorm/entity-schema/EntitySchemaUniqueOptions.js.map +1 -0
  710. package/lib-esm/lib/typeorm/error/AlreadyHasActiveConnectionError.d.ts +7 -0
  711. package/lib-esm/lib/typeorm/error/AlreadyHasActiveConnectionError.js +11 -0
  712. package/lib-esm/lib/typeorm/error/AlreadyHasActiveConnectionError.js.map +1 -0
  713. package/lib-esm/lib/typeorm/error/CannotAttachTreeChildrenEntityError.d.ts +7 -0
  714. package/lib-esm/lib/typeorm/error/CannotAttachTreeChildrenEntityError.js +11 -0
  715. package/lib-esm/lib/typeorm/error/CannotAttachTreeChildrenEntityError.js.map +1 -0
  716. package/lib-esm/lib/typeorm/error/CannotConnectAlreadyConnectedError.d.ts +7 -0
  717. package/lib-esm/lib/typeorm/error/CannotConnectAlreadyConnectedError.js +10 -0
  718. package/lib-esm/lib/typeorm/error/CannotConnectAlreadyConnectedError.js.map +1 -0
  719. package/lib-esm/lib/typeorm/error/CannotCreateEntityIdMapError.d.ts +9 -0
  720. package/lib-esm/lib/typeorm/error/CannotCreateEntityIdMapError.js +16 -0
  721. package/lib-esm/lib/typeorm/error/CannotCreateEntityIdMapError.js.map +1 -0
  722. package/lib-esm/lib/typeorm/error/CannotDetermineEntityError.d.ts +7 -0
  723. package/lib-esm/lib/typeorm/error/CannotDetermineEntityError.js +11 -0
  724. package/lib-esm/lib/typeorm/error/CannotDetermineEntityError.js.map +1 -0
  725. package/lib-esm/lib/typeorm/error/CannotExecuteNotConnectedError.d.ts +7 -0
  726. package/lib-esm/lib/typeorm/error/CannotExecuteNotConnectedError.js +10 -0
  727. package/lib-esm/lib/typeorm/error/CannotExecuteNotConnectedError.js.map +1 -0
  728. package/lib-esm/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.d.ts +7 -0
  729. package/lib-esm/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.js +10 -0
  730. package/lib-esm/lib/typeorm/error/CannotGetEntityManagerNotConnectedError.js.map +1 -0
  731. package/lib-esm/lib/typeorm/error/CannotReflectMethodParameterTypeError.d.ts +8 -0
  732. package/lib-esm/lib/typeorm/error/CannotReflectMethodParameterTypeError.js +13 -0
  733. package/lib-esm/lib/typeorm/error/CannotReflectMethodParameterTypeError.js.map +1 -0
  734. package/lib-esm/lib/typeorm/error/CircularRelationsError.d.ts +7 -0
  735. package/lib-esm/lib/typeorm/error/CircularRelationsError.js +11 -0
  736. package/lib-esm/lib/typeorm/error/CircularRelationsError.js.map +1 -0
  737. package/lib-esm/lib/typeorm/error/ColumnTypeUndefinedError.d.ts +8 -0
  738. package/lib-esm/lib/typeorm/error/ColumnTypeUndefinedError.js +14 -0
  739. package/lib-esm/lib/typeorm/error/ColumnTypeUndefinedError.js.map +1 -0
  740. package/lib-esm/lib/typeorm/error/ConnectionIsNotSetError.d.ts +7 -0
  741. package/lib-esm/lib/typeorm/error/ConnectionIsNotSetError.js +10 -0
  742. package/lib-esm/lib/typeorm/error/ConnectionIsNotSetError.js.map +1 -0
  743. package/lib-esm/lib/typeorm/error/ConnectionNotFoundError.d.ts +7 -0
  744. package/lib-esm/lib/typeorm/error/ConnectionNotFoundError.js +10 -0
  745. package/lib-esm/lib/typeorm/error/ConnectionNotFoundError.js.map +1 -0
  746. package/lib-esm/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.d.ts +7 -0
  747. package/lib-esm/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.js +13 -0
  748. package/lib-esm/lib/typeorm/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -0
  749. package/lib-esm/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.d.ts +7 -0
  750. package/lib-esm/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.js +13 -0
  751. package/lib-esm/lib/typeorm/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -0
  752. package/lib-esm/lib/typeorm/error/CustomRepositoryNotFoundError.d.ts +7 -0
  753. package/lib-esm/lib/typeorm/error/CustomRepositoryNotFoundError.js +13 -0
  754. package/lib-esm/lib/typeorm/error/CustomRepositoryNotFoundError.js.map +1 -0
  755. package/lib-esm/lib/typeorm/error/DataTypeNotSupportedError.d.ts +7 -0
  756. package/lib-esm/lib/typeorm/error/DataTypeNotSupportedError.js +9 -0
  757. package/lib-esm/lib/typeorm/error/DataTypeNotSupportedError.js.map +1 -0
  758. package/lib-esm/lib/typeorm/error/DriverOptionNotSetError.d.ts +7 -0
  759. package/lib-esm/lib/typeorm/error/DriverOptionNotSetError.js +11 -0
  760. package/lib-esm/lib/typeorm/error/DriverOptionNotSetError.js.map +1 -0
  761. package/lib-esm/lib/typeorm/error/DriverPackageNotInstalledError.d.ts +7 -0
  762. package/lib-esm/lib/typeorm/error/DriverPackageNotInstalledError.js +11 -0
  763. package/lib-esm/lib/typeorm/error/DriverPackageNotInstalledError.js.map +1 -0
  764. package/lib-esm/lib/typeorm/error/EntityMetadataNotFoundError.d.ts +6 -0
  765. package/lib-esm/lib/typeorm/error/EntityMetadataNotFoundError.js +24 -0
  766. package/lib-esm/lib/typeorm/error/EntityMetadataNotFoundError.js.map +1 -0
  767. package/lib-esm/lib/typeorm/error/EntityNotFoundError.d.ts +10 -0
  768. package/lib-esm/lib/typeorm/error/EntityNotFoundError.js +35 -0
  769. package/lib-esm/lib/typeorm/error/EntityNotFoundError.js.map +1 -0
  770. package/lib-esm/lib/typeorm/error/EntityPropertyNotFoundError.d.ts +8 -0
  771. package/lib-esm/lib/typeorm/error/EntityPropertyNotFoundError.js +12 -0
  772. package/lib-esm/lib/typeorm/error/EntityPropertyNotFoundError.js.map +1 -0
  773. package/lib-esm/lib/typeorm/error/FindRelationsNotFoundError.d.ts +7 -0
  774. package/lib-esm/lib/typeorm/error/FindRelationsNotFoundError.js +18 -0
  775. package/lib-esm/lib/typeorm/error/FindRelationsNotFoundError.js.map +1 -0
  776. package/lib-esm/lib/typeorm/error/ForbiddenTransactionModeOverrideError.d.ts +8 -0
  777. package/lib-esm/lib/typeorm/error/ForbiddenTransactionModeOverrideError.js +11 -0
  778. package/lib-esm/lib/typeorm/error/ForbiddenTransactionModeOverrideError.js.map +1 -0
  779. package/lib-esm/lib/typeorm/error/InitializedRelationError.d.ts +11 -0
  780. package/lib-esm/lib/typeorm/error/InitializedRelationError.js +15 -0
  781. package/lib-esm/lib/typeorm/error/InitializedRelationError.js.map +1 -0
  782. package/lib-esm/lib/typeorm/error/InsertValuesMissingError.d.ts +7 -0
  783. package/lib-esm/lib/typeorm/error/InsertValuesMissingError.js +11 -0
  784. package/lib-esm/lib/typeorm/error/InsertValuesMissingError.js.map +1 -0
  785. package/lib-esm/lib/typeorm/error/LimitOnUpdateNotSupportedError.d.ts +7 -0
  786. package/lib-esm/lib/typeorm/error/LimitOnUpdateNotSupportedError.js +10 -0
  787. package/lib-esm/lib/typeorm/error/LimitOnUpdateNotSupportedError.js.map +1 -0
  788. package/lib-esm/lib/typeorm/error/LockNotSupportedOnGivenDriverError.d.ts +7 -0
  789. package/lib-esm/lib/typeorm/error/LockNotSupportedOnGivenDriverError.js +10 -0
  790. package/lib-esm/lib/typeorm/error/LockNotSupportedOnGivenDriverError.js.map +1 -0
  791. package/lib-esm/lib/typeorm/error/MetadataAlreadyExistsError.d.ts +4 -0
  792. package/lib-esm/lib/typeorm/error/MetadataAlreadyExistsError.js +13 -0
  793. package/lib-esm/lib/typeorm/error/MetadataAlreadyExistsError.js.map +1 -0
  794. package/lib-esm/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.d.ts +4 -0
  795. package/lib-esm/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.js +11 -0
  796. package/lib-esm/lib/typeorm/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -0
  797. package/lib-esm/lib/typeorm/error/MissingDeleteDateColumnError.d.ts +5 -0
  798. package/lib-esm/lib/typeorm/error/MissingDeleteDateColumnError.js +7 -0
  799. package/lib-esm/lib/typeorm/error/MissingDeleteDateColumnError.js.map +1 -0
  800. package/lib-esm/lib/typeorm/error/MissingDriverError.d.ts +7 -0
  801. package/lib-esm/lib/typeorm/error/MissingDriverError.js +11 -0
  802. package/lib-esm/lib/typeorm/error/MissingDriverError.js.map +1 -0
  803. package/lib-esm/lib/typeorm/error/MissingJoinColumnError.d.ts +6 -0
  804. package/lib-esm/lib/typeorm/error/MissingJoinColumnError.js +18 -0
  805. package/lib-esm/lib/typeorm/error/MissingJoinColumnError.js.map +1 -0
  806. package/lib-esm/lib/typeorm/error/MissingJoinTableError.d.ts +6 -0
  807. package/lib-esm/lib/typeorm/error/MissingJoinTableError.js +18 -0
  808. package/lib-esm/lib/typeorm/error/MissingJoinTableError.js.map +1 -0
  809. package/lib-esm/lib/typeorm/error/MissingPrimaryColumnError.d.ts +5 -0
  810. package/lib-esm/lib/typeorm/error/MissingPrimaryColumnError.js +8 -0
  811. package/lib-esm/lib/typeorm/error/MissingPrimaryColumnError.js.map +1 -0
  812. package/lib-esm/lib/typeorm/error/MustBeEntityError.d.ts +7 -0
  813. package/lib-esm/lib/typeorm/error/MustBeEntityError.js +10 -0
  814. package/lib-esm/lib/typeorm/error/MustBeEntityError.js.map +1 -0
  815. package/lib-esm/lib/typeorm/error/NamingStrategyNotFoundError.d.ts +7 -0
  816. package/lib-esm/lib/typeorm/error/NamingStrategyNotFoundError.js +16 -0
  817. package/lib-esm/lib/typeorm/error/NamingStrategyNotFoundError.js.map +1 -0
  818. package/lib-esm/lib/typeorm/error/NestedSetMultipleRootError.d.ts +4 -0
  819. package/lib-esm/lib/typeorm/error/NestedSetMultipleRootError.js +7 -0
  820. package/lib-esm/lib/typeorm/error/NestedSetMultipleRootError.js.map +1 -0
  821. package/lib-esm/lib/typeorm/error/NoConnectionForRepositoryError.d.ts +7 -0
  822. package/lib-esm/lib/typeorm/error/NoConnectionForRepositoryError.js +11 -0
  823. package/lib-esm/lib/typeorm/error/NoConnectionForRepositoryError.js.map +1 -0
  824. package/lib-esm/lib/typeorm/error/NoConnectionOptionError.d.ts +7 -0
  825. package/lib-esm/lib/typeorm/error/NoConnectionOptionError.js +11 -0
  826. package/lib-esm/lib/typeorm/error/NoConnectionOptionError.js.map +1 -0
  827. package/lib-esm/lib/typeorm/error/NoNeedToReleaseEntityManagerError.d.ts +7 -0
  828. package/lib-esm/lib/typeorm/error/NoNeedToReleaseEntityManagerError.js +12 -0
  829. package/lib-esm/lib/typeorm/error/NoNeedToReleaseEntityManagerError.js.map +1 -0
  830. package/lib-esm/lib/typeorm/error/NoVersionOrUpdateDateColumnError.d.ts +7 -0
  831. package/lib-esm/lib/typeorm/error/NoVersionOrUpdateDateColumnError.js +10 -0
  832. package/lib-esm/lib/typeorm/error/NoVersionOrUpdateDateColumnError.js.map +1 -0
  833. package/lib-esm/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.d.ts +7 -0
  834. package/lib-esm/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.js +12 -0
  835. package/lib-esm/lib/typeorm/error/OffsetWithoutLimitNotSupportedError.js.map +1 -0
  836. package/lib-esm/lib/typeorm/error/OptimisticLockCanNotBeUsedError.d.ts +7 -0
  837. package/lib-esm/lib/typeorm/error/OptimisticLockCanNotBeUsedError.js +10 -0
  838. package/lib-esm/lib/typeorm/error/OptimisticLockCanNotBeUsedError.js.map +1 -0
  839. package/lib-esm/lib/typeorm/error/OptimisticLockVersionMismatchError.d.ts +7 -0
  840. package/lib-esm/lib/typeorm/error/OptimisticLockVersionMismatchError.js +10 -0
  841. package/lib-esm/lib/typeorm/error/OptimisticLockVersionMismatchError.js.map +1 -0
  842. package/lib-esm/lib/typeorm/error/PersistedEntityNotFoundError.d.ts +7 -0
  843. package/lib-esm/lib/typeorm/error/PersistedEntityNotFoundError.js +10 -0
  844. package/lib-esm/lib/typeorm/error/PersistedEntityNotFoundError.js.map +1 -0
  845. package/lib-esm/lib/typeorm/error/PessimisticLockTransactionRequiredError.d.ts +7 -0
  846. package/lib-esm/lib/typeorm/error/PessimisticLockTransactionRequiredError.js +10 -0
  847. package/lib-esm/lib/typeorm/error/PessimisticLockTransactionRequiredError.js.map +1 -0
  848. package/lib-esm/lib/typeorm/error/PrimaryColumnCannotBeNullableError.d.ts +4 -0
  849. package/lib-esm/lib/typeorm/error/PrimaryColumnCannotBeNullableError.js +8 -0
  850. package/lib-esm/lib/typeorm/error/PrimaryColumnCannotBeNullableError.js.map +1 -0
  851. package/lib-esm/lib/typeorm/error/QueryFailedError.d.ts +10 -0
  852. package/lib-esm/lib/typeorm/error/QueryFailedError.js +28 -0
  853. package/lib-esm/lib/typeorm/error/QueryFailedError.js.map +1 -0
  854. package/lib-esm/lib/typeorm/error/QueryRunnerAlreadyReleasedError.d.ts +4 -0
  855. package/lib-esm/lib/typeorm/error/QueryRunnerAlreadyReleasedError.js +7 -0
  856. package/lib-esm/lib/typeorm/error/QueryRunnerAlreadyReleasedError.js.map +1 -0
  857. package/lib-esm/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.d.ts +7 -0
  858. package/lib-esm/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.js +11 -0
  859. package/lib-esm/lib/typeorm/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -0
  860. package/lib-esm/lib/typeorm/error/RepositoryNotTreeError.d.ts +8 -0
  861. package/lib-esm/lib/typeorm/error/RepositoryNotTreeError.js +27 -0
  862. package/lib-esm/lib/typeorm/error/RepositoryNotTreeError.js.map +1 -0
  863. package/lib-esm/lib/typeorm/error/ReturningStatementNotSupportedError.d.ts +8 -0
  864. package/lib-esm/lib/typeorm/error/ReturningStatementNotSupportedError.js +11 -0
  865. package/lib-esm/lib/typeorm/error/ReturningStatementNotSupportedError.js.map +1 -0
  866. package/lib-esm/lib/typeorm/error/SubjectRemovedAndUpdatedError.d.ts +8 -0
  867. package/lib-esm/lib/typeorm/error/SubjectRemovedAndUpdatedError.js +11 -0
  868. package/lib-esm/lib/typeorm/error/SubjectRemovedAndUpdatedError.js.map +1 -0
  869. package/lib-esm/lib/typeorm/error/SubjectWithoutIdentifierError.d.ts +10 -0
  870. package/lib-esm/lib/typeorm/error/SubjectWithoutIdentifierError.js +12 -0
  871. package/lib-esm/lib/typeorm/error/SubjectWithoutIdentifierError.js.map +1 -0
  872. package/lib-esm/lib/typeorm/error/TransactionAlreadyStartedError.d.ts +7 -0
  873. package/lib-esm/lib/typeorm/error/TransactionAlreadyStartedError.js +10 -0
  874. package/lib-esm/lib/typeorm/error/TransactionAlreadyStartedError.js.map +1 -0
  875. package/lib-esm/lib/typeorm/error/TransactionNotStartedError.d.ts +7 -0
  876. package/lib-esm/lib/typeorm/error/TransactionNotStartedError.js +10 -0
  877. package/lib-esm/lib/typeorm/error/TransactionNotStartedError.js.map +1 -0
  878. package/lib-esm/lib/typeorm/error/TreeRepositoryNotSupportedError.d.ts +5 -0
  879. package/lib-esm/lib/typeorm/error/TreeRepositoryNotSupportedError.js +7 -0
  880. package/lib-esm/lib/typeorm/error/TreeRepositoryNotSupportedError.js.map +1 -0
  881. package/lib-esm/lib/typeorm/error/TypeORMError.d.ts +4 -0
  882. package/lib-esm/lib/typeorm/error/TypeORMError.js +18 -0
  883. package/lib-esm/lib/typeorm/error/TypeORMError.js.map +1 -0
  884. package/lib-esm/lib/typeorm/error/UpdateValuesMissingError.d.ts +4 -0
  885. package/lib-esm/lib/typeorm/error/UpdateValuesMissingError.js +7 -0
  886. package/lib-esm/lib/typeorm/error/UpdateValuesMissingError.js.map +1 -0
  887. package/lib-esm/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.d.ts +6 -0
  888. package/lib-esm/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.js +8 -0
  889. package/lib-esm/lib/typeorm/error/UsingJoinColumnIsNotAllowedError.js.map +1 -0
  890. package/lib-esm/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.d.ts +6 -0
  891. package/lib-esm/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +9 -0
  892. package/lib-esm/lib/typeorm/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -0
  893. package/lib-esm/lib/typeorm/error/UsingJoinTableIsNotAllowedError.d.ts +6 -0
  894. package/lib-esm/lib/typeorm/error/UsingJoinTableIsNotAllowedError.js +9 -0
  895. package/lib-esm/lib/typeorm/error/UsingJoinTableIsNotAllowedError.js.map +1 -0
  896. package/lib-esm/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.d.ts +6 -0
  897. package/lib-esm/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.js +9 -0
  898. package/lib-esm/lib/typeorm/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -0
  899. package/lib-esm/lib/typeorm/error/index.d.ts +61 -0
  900. package/lib-esm/lib/typeorm/error/index.js +62 -0
  901. package/lib-esm/lib/typeorm/error/index.js.map +1 -0
  902. package/lib-esm/lib/typeorm/find-options/EqualOperator.d.ts +5 -0
  903. package/lib-esm/lib/typeorm/find-options/EqualOperator.js +8 -0
  904. package/lib-esm/lib/typeorm/find-options/EqualOperator.js.map +1 -0
  905. package/lib-esm/lib/typeorm/find-options/FindManyOptions.d.ts +14 -0
  906. package/lib-esm/lib/typeorm/find-options/FindManyOptions.js +2 -0
  907. package/lib-esm/lib/typeorm/find-options/FindManyOptions.js.map +1 -0
  908. package/lib-esm/lib/typeorm/find-options/FindOneOptions.d.ts +88 -0
  909. package/lib-esm/lib/typeorm/find-options/FindOneOptions.js +2 -0
  910. package/lib-esm/lib/typeorm/find-options/FindOneOptions.js.map +1 -0
  911. package/lib-esm/lib/typeorm/find-options/FindOperator.d.ts +65 -0
  912. package/lib-esm/lib/typeorm/find-options/FindOperator.js +105 -0
  913. package/lib-esm/lib/typeorm/find-options/FindOperator.js.map +1 -0
  914. package/lib-esm/lib/typeorm/find-options/FindOperatorType.d.ts +4 -0
  915. package/lib-esm/lib/typeorm/find-options/FindOperatorType.js +2 -0
  916. package/lib-esm/lib/typeorm/find-options/FindOperatorType.js.map +1 -0
  917. package/lib-esm/lib/typeorm/find-options/FindOptionsOrder.d.ts +18 -0
  918. package/lib-esm/lib/typeorm/find-options/FindOptionsOrder.js +2 -0
  919. package/lib-esm/lib/typeorm/find-options/FindOptionsOrder.js.map +1 -0
  920. package/lib-esm/lib/typeorm/find-options/FindOptionsRelations.d.ts +18 -0
  921. package/lib-esm/lib/typeorm/find-options/FindOptionsRelations.js +2 -0
  922. package/lib-esm/lib/typeorm/find-options/FindOptionsRelations.js.map +1 -0
  923. package/lib-esm/lib/typeorm/find-options/FindOptionsSelect.d.ts +18 -0
  924. package/lib-esm/lib/typeorm/find-options/FindOptionsSelect.js +2 -0
  925. package/lib-esm/lib/typeorm/find-options/FindOptionsSelect.js.map +1 -0
  926. package/lib-esm/lib/typeorm/find-options/FindOptionsUtils.d.ts +190 -0
  927. package/lib-esm/lib/typeorm/find-options/FindOptionsUtils.js +315 -0
  928. package/lib-esm/lib/typeorm/find-options/FindOptionsUtils.js.map +1 -0
  929. package/lib-esm/lib/typeorm/find-options/FindOptionsWhere.d.ts +13 -0
  930. package/lib-esm/lib/typeorm/find-options/FindOptionsWhere.js +2 -0
  931. package/lib-esm/lib/typeorm/find-options/FindOptionsWhere.js.map +1 -0
  932. package/lib-esm/lib/typeorm/find-options/FindTreeOptions.d.ts +13 -0
  933. package/lib-esm/lib/typeorm/find-options/FindTreeOptions.js +2 -0
  934. package/lib-esm/lib/typeorm/find-options/FindTreeOptions.js.map +1 -0
  935. package/lib-esm/lib/typeorm/find-options/JoinOptions.d.ts +76 -0
  936. package/lib-esm/lib/typeorm/find-options/JoinOptions.js +2 -0
  937. package/lib-esm/lib/typeorm/find-options/JoinOptions.js.map +1 -0
  938. package/lib-esm/lib/typeorm/find-options/OrderByCondition.d.ts +17 -0
  939. package/lib-esm/lib/typeorm/find-options/OrderByCondition.js +2 -0
  940. package/lib-esm/lib/typeorm/find-options/OrderByCondition.js.map +1 -0
  941. package/lib-esm/lib/typeorm/find-options/mongodb/MongoFindManyOptions.d.ts +14 -0
  942. package/lib-esm/lib/typeorm/find-options/mongodb/MongoFindManyOptions.js +2 -0
  943. package/lib-esm/lib/typeorm/find-options/mongodb/MongoFindManyOptions.js.map +1 -0
  944. package/lib-esm/lib/typeorm/find-options/mongodb/MongoFindOneOptions.d.ts +11 -0
  945. package/lib-esm/lib/typeorm/find-options/mongodb/MongoFindOneOptions.js +2 -0
  946. package/lib-esm/lib/typeorm/find-options/mongodb/MongoFindOneOptions.js.map +1 -0
  947. package/lib-esm/lib/typeorm/find-options/operator/And.d.ts +2 -0
  948. package/lib-esm/lib/typeorm/find-options/operator/And.js +5 -0
  949. package/lib-esm/lib/typeorm/find-options/operator/And.js.map +1 -0
  950. package/lib-esm/lib/typeorm/find-options/operator/Any.d.ts +6 -0
  951. package/lib-esm/lib/typeorm/find-options/operator/Any.js +9 -0
  952. package/lib-esm/lib/typeorm/find-options/operator/Any.js.map +1 -0
  953. package/lib-esm/lib/typeorm/find-options/operator/ArrayContainedBy.d.ts +6 -0
  954. package/lib-esm/lib/typeorm/find-options/operator/ArrayContainedBy.js +9 -0
  955. package/lib-esm/lib/typeorm/find-options/operator/ArrayContainedBy.js.map +1 -0
  956. package/lib-esm/lib/typeorm/find-options/operator/ArrayContains.d.ts +6 -0
  957. package/lib-esm/lib/typeorm/find-options/operator/ArrayContains.js +9 -0
  958. package/lib-esm/lib/typeorm/find-options/operator/ArrayContains.js.map +1 -0
  959. package/lib-esm/lib/typeorm/find-options/operator/ArrayOverlap.d.ts +6 -0
  960. package/lib-esm/lib/typeorm/find-options/operator/ArrayOverlap.js +9 -0
  961. package/lib-esm/lib/typeorm/find-options/operator/ArrayOverlap.js.map +1 -0
  962. package/lib-esm/lib/typeorm/find-options/operator/Between.d.ts +6 -0
  963. package/lib-esm/lib/typeorm/find-options/operator/Between.js +9 -0
  964. package/lib-esm/lib/typeorm/find-options/operator/Between.js.map +1 -0
  965. package/lib-esm/lib/typeorm/find-options/operator/Equal.d.ts +11 -0
  966. package/lib-esm/lib/typeorm/find-options/operator/Equal.js +13 -0
  967. package/lib-esm/lib/typeorm/find-options/operator/Equal.js.map +1 -0
  968. package/lib-esm/lib/typeorm/find-options/operator/ILike.d.ts +6 -0
  969. package/lib-esm/lib/typeorm/find-options/operator/ILike.js +9 -0
  970. package/lib-esm/lib/typeorm/find-options/operator/ILike.js.map +1 -0
  971. package/lib-esm/lib/typeorm/find-options/operator/In.d.ts +6 -0
  972. package/lib-esm/lib/typeorm/find-options/operator/In.js +9 -0
  973. package/lib-esm/lib/typeorm/find-options/operator/In.js.map +1 -0
  974. package/lib-esm/lib/typeorm/find-options/operator/IsNull.d.ts +6 -0
  975. package/lib-esm/lib/typeorm/find-options/operator/IsNull.js +9 -0
  976. package/lib-esm/lib/typeorm/find-options/operator/IsNull.js.map +1 -0
  977. package/lib-esm/lib/typeorm/find-options/operator/LessThan.d.ts +6 -0
  978. package/lib-esm/lib/typeorm/find-options/operator/LessThan.js +9 -0
  979. package/lib-esm/lib/typeorm/find-options/operator/LessThan.js.map +1 -0
  980. package/lib-esm/lib/typeorm/find-options/operator/LessThanOrEqual.d.ts +6 -0
  981. package/lib-esm/lib/typeorm/find-options/operator/LessThanOrEqual.js +9 -0
  982. package/lib-esm/lib/typeorm/find-options/operator/LessThanOrEqual.js.map +1 -0
  983. package/lib-esm/lib/typeorm/find-options/operator/Like.d.ts +6 -0
  984. package/lib-esm/lib/typeorm/find-options/operator/Like.js +9 -0
  985. package/lib-esm/lib/typeorm/find-options/operator/Like.js.map +1 -0
  986. package/lib-esm/lib/typeorm/find-options/operator/MoreThan.d.ts +6 -0
  987. package/lib-esm/lib/typeorm/find-options/operator/MoreThan.js +9 -0
  988. package/lib-esm/lib/typeorm/find-options/operator/MoreThan.js.map +1 -0
  989. package/lib-esm/lib/typeorm/find-options/operator/MoreThanOrEqual.d.ts +6 -0
  990. package/lib-esm/lib/typeorm/find-options/operator/MoreThanOrEqual.js +9 -0
  991. package/lib-esm/lib/typeorm/find-options/operator/MoreThanOrEqual.js.map +1 -0
  992. package/lib-esm/lib/typeorm/find-options/operator/Not.d.ts +7 -0
  993. package/lib-esm/lib/typeorm/find-options/operator/Not.js +10 -0
  994. package/lib-esm/lib/typeorm/find-options/operator/Not.js.map +1 -0
  995. package/lib-esm/lib/typeorm/find-options/operator/Raw.d.ts +18 -0
  996. package/lib-esm/lib/typeorm/find-options/operator/Raw.js +8 -0
  997. package/lib-esm/lib/typeorm/find-options/operator/Raw.js.map +1 -0
  998. package/lib-esm/lib/typeorm/globals.d.ts +118 -0
  999. package/lib-esm/lib/typeorm/globals.js +169 -0
  1000. package/lib-esm/lib/typeorm/globals.js.map +1 -0
  1001. package/lib-esm/lib/typeorm/index.d.ts +173 -0
  1002. package/lib-esm/lib/typeorm/index.js +168 -0
  1003. package/lib-esm/lib/typeorm/index.js.map +1 -0
  1004. package/lib-esm/lib/typeorm/logger/AdvancedConsoleLogger.d.ts +41 -0
  1005. package/lib-esm/lib/typeorm/logger/AdvancedConsoleLogger.js +118 -0
  1006. package/lib-esm/lib/typeorm/logger/AdvancedConsoleLogger.js.map +1 -0
  1007. package/lib-esm/lib/typeorm/logger/DebugLogger.d.ts +40 -0
  1008. package/lib-esm/lib/typeorm/logger/DebugLogger.js +90 -0
  1009. package/lib-esm/lib/typeorm/logger/DebugLogger.js.map +1 -0
  1010. package/lib-esm/lib/typeorm/logger/FileLogger.d.ts +46 -0
  1011. package/lib-esm/lib/typeorm/logger/FileLogger.js +133 -0
  1012. package/lib-esm/lib/typeorm/logger/FileLogger.js.map +1 -0
  1013. package/lib-esm/lib/typeorm/logger/Logger.d.ts +31 -0
  1014. package/lib-esm/lib/typeorm/logger/Logger.js +2 -0
  1015. package/lib-esm/lib/typeorm/logger/Logger.js.map +1 -0
  1016. package/lib-esm/lib/typeorm/logger/LoggerFactory.d.ts +11 -0
  1017. package/lib-esm/lib/typeorm/logger/LoggerFactory.js +35 -0
  1018. package/lib-esm/lib/typeorm/logger/LoggerFactory.js.map +1 -0
  1019. package/lib-esm/lib/typeorm/logger/LoggerOptions.d.ts +13 -0
  1020. package/lib-esm/lib/typeorm/logger/LoggerOptions.js +2 -0
  1021. package/lib-esm/lib/typeorm/logger/LoggerOptions.js.map +1 -0
  1022. package/lib-esm/lib/typeorm/logger/SimpleConsoleLogger.d.ts +41 -0
  1023. package/lib-esm/lib/typeorm/logger/SimpleConsoleLogger.js +117 -0
  1024. package/lib-esm/lib/typeorm/logger/SimpleConsoleLogger.js.map +1 -0
  1025. package/lib-esm/lib/typeorm/metadata/CheckMetadata.d.ts +39 -0
  1026. package/lib-esm/lib/typeorm/metadata/CheckMetadata.js +55 -0
  1027. package/lib-esm/lib/typeorm/metadata/CheckMetadata.js.map +1 -0
  1028. package/lib-esm/lib/typeorm/metadata/ColumnMetadata.d.ts +315 -0
  1029. package/lib-esm/lib/typeorm/metadata/ColumnMetadata.js +787 -0
  1030. package/lib-esm/lib/typeorm/metadata/ColumnMetadata.js.map +1 -0
  1031. package/lib-esm/lib/typeorm/metadata/EmbeddedMetadata.d.ts +165 -0
  1032. package/lib-esm/lib/typeorm/metadata/EmbeddedMetadata.js +256 -0
  1033. package/lib-esm/lib/typeorm/metadata/EmbeddedMetadata.js.map +1 -0
  1034. package/lib-esm/lib/typeorm/metadata/EntityListenerMetadata.d.ts +48 -0
  1035. package/lib-esm/lib/typeorm/metadata/EntityListenerMetadata.js +84 -0
  1036. package/lib-esm/lib/typeorm/metadata/EntityListenerMetadata.js.map +1 -0
  1037. package/lib-esm/lib/typeorm/metadata/EntityMetadata.d.ts +561 -0
  1038. package/lib-esm/lib/typeorm/metadata/EntityMetadata.js +825 -0
  1039. package/lib-esm/lib/typeorm/metadata/EntityMetadata.js.map +1 -0
  1040. package/lib-esm/lib/typeorm/metadata/ExclusionMetadata.d.ts +39 -0
  1041. package/lib-esm/lib/typeorm/metadata/ExclusionMetadata.js +55 -0
  1042. package/lib-esm/lib/typeorm/metadata/ExclusionMetadata.js.map +1 -0
  1043. package/lib-esm/lib/typeorm/metadata/ForeignKeyMetadata.d.ts +77 -0
  1044. package/lib-esm/lib/typeorm/metadata/ForeignKeyMetadata.js +89 -0
  1045. package/lib-esm/lib/typeorm/metadata/ForeignKeyMetadata.js.map +1 -0
  1046. package/lib-esm/lib/typeorm/metadata/IndexMetadata.d.ts +111 -0
  1047. package/lib-esm/lib/typeorm/metadata/IndexMetadata.js +192 -0
  1048. package/lib-esm/lib/typeorm/metadata/IndexMetadata.js.map +1 -0
  1049. package/lib-esm/lib/typeorm/metadata/RelationCountMetadata.d.ts +46 -0
  1050. package/lib-esm/lib/typeorm/metadata/RelationCountMetadata.js +65 -0
  1051. package/lib-esm/lib/typeorm/metadata/RelationCountMetadata.js.map +1 -0
  1052. package/lib-esm/lib/typeorm/metadata/RelationIdMetadata.d.ts +53 -0
  1053. package/lib-esm/lib/typeorm/metadata/RelationIdMetadata.js +88 -0
  1054. package/lib-esm/lib/typeorm/metadata/RelationIdMetadata.js.map +1 -0
  1055. package/lib-esm/lib/typeorm/metadata/RelationMetadata.d.ts +290 -0
  1056. package/lib-esm/lib/typeorm/metadata/RelationMetadata.js +530 -0
  1057. package/lib-esm/lib/typeorm/metadata/RelationMetadata.js.map +1 -0
  1058. package/lib-esm/lib/typeorm/metadata/UniqueMetadata.d.ts +65 -0
  1059. package/lib-esm/lib/typeorm/metadata/UniqueMetadata.js +129 -0
  1060. package/lib-esm/lib/typeorm/metadata/UniqueMetadata.js.map +1 -0
  1061. package/lib-esm/lib/typeorm/metadata/types/ClosureTreeOptions.d.ts +10 -0
  1062. package/lib-esm/lib/typeorm/metadata/types/ClosureTreeOptions.js +2 -0
  1063. package/lib-esm/lib/typeorm/metadata/types/ClosureTreeOptions.js.map +1 -0
  1064. package/lib-esm/lib/typeorm/metadata/types/DeferrableType.d.ts +4 -0
  1065. package/lib-esm/lib/typeorm/metadata/types/DeferrableType.js +2 -0
  1066. package/lib-esm/lib/typeorm/metadata/types/DeferrableType.js.map +1 -0
  1067. package/lib-esm/lib/typeorm/metadata/types/EventListenerTypes.d.ts +20 -0
  1068. package/lib-esm/lib/typeorm/metadata/types/EventListenerTypes.js +17 -0
  1069. package/lib-esm/lib/typeorm/metadata/types/EventListenerTypes.js.map +1 -0
  1070. package/lib-esm/lib/typeorm/metadata/types/OnDeleteType.d.ts +4 -0
  1071. package/lib-esm/lib/typeorm/metadata/types/OnDeleteType.js +2 -0
  1072. package/lib-esm/lib/typeorm/metadata/types/OnDeleteType.js.map +1 -0
  1073. package/lib-esm/lib/typeorm/metadata/types/OnUpdateType.d.ts +4 -0
  1074. package/lib-esm/lib/typeorm/metadata/types/OnUpdateType.js +2 -0
  1075. package/lib-esm/lib/typeorm/metadata/types/OnUpdateType.js.map +1 -0
  1076. package/lib-esm/lib/typeorm/metadata/types/PropertyTypeInFunction.d.ts +4 -0
  1077. package/lib-esm/lib/typeorm/metadata/types/PropertyTypeInFunction.js +2 -0
  1078. package/lib-esm/lib/typeorm/metadata/types/PropertyTypeInFunction.js.map +1 -0
  1079. package/lib-esm/lib/typeorm/metadata/types/RelationTypeInFunction.d.ts +5 -0
  1080. package/lib-esm/lib/typeorm/metadata/types/RelationTypeInFunction.js +2 -0
  1081. package/lib-esm/lib/typeorm/metadata/types/RelationTypeInFunction.js.map +1 -0
  1082. package/lib-esm/lib/typeorm/metadata/types/RelationTypes.d.ts +4 -0
  1083. package/lib-esm/lib/typeorm/metadata/types/RelationTypes.js +2 -0
  1084. package/lib-esm/lib/typeorm/metadata/types/RelationTypes.js.map +1 -0
  1085. package/lib-esm/lib/typeorm/metadata/types/TableTypes.d.ts +4 -0
  1086. package/lib-esm/lib/typeorm/metadata/types/TableTypes.js +2 -0
  1087. package/lib-esm/lib/typeorm/metadata/types/TableTypes.js.map +1 -0
  1088. package/lib-esm/lib/typeorm/metadata/types/TreeTypes.d.ts +5 -0
  1089. package/lib-esm/lib/typeorm/metadata/types/TreeTypes.js +2 -0
  1090. package/lib-esm/lib/typeorm/metadata/types/TreeTypes.js.map +1 -0
  1091. package/lib-esm/lib/typeorm/metadata-args/CheckMetadataArgs.d.ts +17 -0
  1092. package/lib-esm/lib/typeorm/metadata-args/CheckMetadataArgs.js +2 -0
  1093. package/lib-esm/lib/typeorm/metadata-args/CheckMetadataArgs.js.map +1 -0
  1094. package/lib-esm/lib/typeorm/metadata-args/ColumnMetadataArgs.d.ts +25 -0
  1095. package/lib-esm/lib/typeorm/metadata-args/ColumnMetadataArgs.js +2 -0
  1096. package/lib-esm/lib/typeorm/metadata-args/ColumnMetadataArgs.js.map +1 -0
  1097. package/lib-esm/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.d.ts +13 -0
  1098. package/lib-esm/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.js +2 -0
  1099. package/lib-esm/lib/typeorm/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -0
  1100. package/lib-esm/lib/typeorm/metadata-args/EmbeddedMetadataArgs.d.ts +26 -0
  1101. package/lib-esm/lib/typeorm/metadata-args/EmbeddedMetadataArgs.js +2 -0
  1102. package/lib-esm/lib/typeorm/metadata-args/EmbeddedMetadataArgs.js.map +1 -0
  1103. package/lib-esm/lib/typeorm/metadata-args/EntityListenerMetadataArgs.d.ts +18 -0
  1104. package/lib-esm/lib/typeorm/metadata-args/EntityListenerMetadataArgs.js +2 -0
  1105. package/lib-esm/lib/typeorm/metadata-args/EntityListenerMetadataArgs.js.map +1 -0
  1106. package/lib-esm/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.d.ts +14 -0
  1107. package/lib-esm/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.js +2 -0
  1108. package/lib-esm/lib/typeorm/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -0
  1109. package/lib-esm/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.d.ts +9 -0
  1110. package/lib-esm/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.js +2 -0
  1111. package/lib-esm/lib/typeorm/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -0
  1112. package/lib-esm/lib/typeorm/metadata-args/ExclusionMetadataArgs.d.ts +17 -0
  1113. package/lib-esm/lib/typeorm/metadata-args/ExclusionMetadataArgs.js +2 -0
  1114. package/lib-esm/lib/typeorm/metadata-args/ExclusionMetadataArgs.js.map +1 -0
  1115. package/lib-esm/lib/typeorm/metadata-args/GeneratedMetadataArgs.d.ts +17 -0
  1116. package/lib-esm/lib/typeorm/metadata-args/GeneratedMetadataArgs.js +2 -0
  1117. package/lib-esm/lib/typeorm/metadata-args/GeneratedMetadataArgs.js.map +1 -0
  1118. package/lib-esm/lib/typeorm/metadata-args/IndexMetadataArgs.d.ts +70 -0
  1119. package/lib-esm/lib/typeorm/metadata-args/IndexMetadataArgs.js +2 -0
  1120. package/lib-esm/lib/typeorm/metadata-args/IndexMetadataArgs.js.map +1 -0
  1121. package/lib-esm/lib/typeorm/metadata-args/InheritanceMetadataArgs.d.ts +18 -0
  1122. package/lib-esm/lib/typeorm/metadata-args/InheritanceMetadataArgs.js +2 -0
  1123. package/lib-esm/lib/typeorm/metadata-args/InheritanceMetadataArgs.js.map +1 -0
  1124. package/lib-esm/lib/typeorm/metadata-args/JoinColumnMetadataArgs.d.ts +26 -0
  1125. package/lib-esm/lib/typeorm/metadata-args/JoinColumnMetadataArgs.js +2 -0
  1126. package/lib-esm/lib/typeorm/metadata-args/JoinColumnMetadataArgs.js.map +1 -0
  1127. package/lib-esm/lib/typeorm/metadata-args/JoinTableMetadataArgs.d.ts +37 -0
  1128. package/lib-esm/lib/typeorm/metadata-args/JoinTableMetadataArgs.js +2 -0
  1129. package/lib-esm/lib/typeorm/metadata-args/JoinTableMetadataArgs.js.map +1 -0
  1130. package/lib-esm/lib/typeorm/metadata-args/MetadataArgsStorage.d.ts +108 -0
  1131. package/lib-esm/lib/typeorm/metadata-args/MetadataArgsStorage.js +221 -0
  1132. package/lib-esm/lib/typeorm/metadata-args/MetadataArgsStorage.js.map +1 -0
  1133. package/lib-esm/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.d.ts +13 -0
  1134. package/lib-esm/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.js +2 -0
  1135. package/lib-esm/lib/typeorm/metadata-args/NamingStrategyMetadataArgs.js.map +1 -0
  1136. package/lib-esm/lib/typeorm/metadata-args/RelationCountMetadataArgs.d.ts +26 -0
  1137. package/lib-esm/lib/typeorm/metadata-args/RelationCountMetadataArgs.js +2 -0
  1138. package/lib-esm/lib/typeorm/metadata-args/RelationCountMetadataArgs.js.map +1 -0
  1139. package/lib-esm/lib/typeorm/metadata-args/RelationIdMetadataArgs.d.ts +26 -0
  1140. package/lib-esm/lib/typeorm/metadata-args/RelationIdMetadataArgs.js +2 -0
  1141. package/lib-esm/lib/typeorm/metadata-args/RelationIdMetadataArgs.js.map +1 -0
  1142. package/lib-esm/lib/typeorm/metadata-args/RelationMetadataArgs.d.ts +55 -0
  1143. package/lib-esm/lib/typeorm/metadata-args/RelationMetadataArgs.js +2 -0
  1144. package/lib-esm/lib/typeorm/metadata-args/RelationMetadataArgs.js.map +1 -0
  1145. package/lib-esm/lib/typeorm/metadata-args/TableMetadataArgs.d.ts +61 -0
  1146. package/lib-esm/lib/typeorm/metadata-args/TableMetadataArgs.js +2 -0
  1147. package/lib-esm/lib/typeorm/metadata-args/TableMetadataArgs.js.map +1 -0
  1148. package/lib-esm/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.d.ts +17 -0
  1149. package/lib-esm/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.js +2 -0
  1150. package/lib-esm/lib/typeorm/metadata-args/TransactionEntityMetadataArgs.js.map +1 -0
  1151. package/lib-esm/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.d.ts +25 -0
  1152. package/lib-esm/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.js +2 -0
  1153. package/lib-esm/lib/typeorm/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -0
  1154. package/lib-esm/lib/typeorm/metadata-args/TreeMetadataArgs.d.ts +19 -0
  1155. package/lib-esm/lib/typeorm/metadata-args/TreeMetadataArgs.js +2 -0
  1156. package/lib-esm/lib/typeorm/metadata-args/TreeMetadataArgs.js.map +1 -0
  1157. package/lib-esm/lib/typeorm/metadata-args/UniqueMetadataArgs.d.ts +24 -0
  1158. package/lib-esm/lib/typeorm/metadata-args/UniqueMetadataArgs.js +2 -0
  1159. package/lib-esm/lib/typeorm/metadata-args/UniqueMetadataArgs.js.map +1 -0
  1160. package/lib-esm/lib/typeorm/metadata-args/types/ColumnMode.d.ts +7 -0
  1161. package/lib-esm/lib/typeorm/metadata-args/types/ColumnMode.js +2 -0
  1162. package/lib-esm/lib/typeorm/metadata-args/types/ColumnMode.js.map +1 -0
  1163. package/lib-esm/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.d.ts +14 -0
  1164. package/lib-esm/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +141 -0
  1165. package/lib-esm/lib/typeorm/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -0
  1166. package/lib-esm/lib/typeorm/metadata-builder/EntityMetadataBuilder.d.ts +57 -0
  1167. package/lib-esm/lib/typeorm/metadata-builder/EntityMetadataBuilder.js +746 -0
  1168. package/lib-esm/lib/typeorm/metadata-builder/EntityMetadataBuilder.js.map +1 -0
  1169. package/lib-esm/lib/typeorm/metadata-builder/EntityMetadataValidator.d.ts +23 -0
  1170. package/lib-esm/lib/typeorm/metadata-builder/EntityMetadataValidator.js +241 -0
  1171. package/lib-esm/lib/typeorm/metadata-builder/EntityMetadataValidator.js.map +1 -0
  1172. package/lib-esm/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.d.ts +26 -0
  1173. package/lib-esm/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.js +278 -0
  1174. package/lib-esm/lib/typeorm/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -0
  1175. package/lib-esm/lib/typeorm/metadata-builder/MetadataUtils.d.ts +23 -0
  1176. package/lib-esm/lib/typeorm/metadata-builder/MetadataUtils.js +39 -0
  1177. package/lib-esm/lib/typeorm/metadata-builder/MetadataUtils.js.map +1 -0
  1178. package/lib-esm/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.d.ts +56 -0
  1179. package/lib-esm/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.js +180 -0
  1180. package/lib-esm/lib/typeorm/metadata-builder/RelationJoinColumnBuilder.js.map +1 -0
  1181. package/lib-esm/lib/typeorm/migration/Migration.d.ts +24 -0
  1182. package/lib-esm/lib/typeorm/migration/Migration.js +35 -0
  1183. package/lib-esm/lib/typeorm/migration/Migration.js.map +1 -0
  1184. package/lib-esm/lib/typeorm/migration/MigrationExecutor.d.ts +99 -0
  1185. package/lib-esm/lib/typeorm/migration/MigrationExecutor.js +521 -0
  1186. package/lib-esm/lib/typeorm/migration/MigrationExecutor.js.map +1 -0
  1187. package/lib-esm/lib/typeorm/migration/MigrationInterface.d.ts +18 -0
  1188. package/lib-esm/lib/typeorm/migration/MigrationInterface.js +2 -0
  1189. package/lib-esm/lib/typeorm/migration/MigrationInterface.js.map +1 -0
  1190. package/lib-esm/lib/typeorm/naming-strategy/DefaultNamingStrategy.d.ts +49 -0
  1191. package/lib-esm/lib/typeorm/naming-strategy/DefaultNamingStrategy.js +141 -0
  1192. package/lib-esm/lib/typeorm/naming-strategy/DefaultNamingStrategy.js.map +1 -0
  1193. package/lib-esm/lib/typeorm/naming-strategy/NamingStrategyInterface.d.ts +116 -0
  1194. package/lib-esm/lib/typeorm/naming-strategy/NamingStrategyInterface.js +2 -0
  1195. package/lib-esm/lib/typeorm/naming-strategy/NamingStrategyInterface.js.map +1 -0
  1196. package/lib-esm/lib/typeorm/persistence/EntityPersistExecutor.d.ts +21 -0
  1197. package/lib-esm/lib/typeorm/persistence/EntityPersistExecutor.js +178 -0
  1198. package/lib-esm/lib/typeorm/persistence/EntityPersistExecutor.js.map +1 -0
  1199. package/lib-esm/lib/typeorm/persistence/Subject.d.ts +155 -0
  1200. package/lib-esm/lib/typeorm/persistence/Subject.js +271 -0
  1201. package/lib-esm/lib/typeorm/persistence/Subject.js.map +1 -0
  1202. package/lib-esm/lib/typeorm/persistence/SubjectChangeMap.d.ts +23 -0
  1203. package/lib-esm/lib/typeorm/persistence/SubjectChangeMap.js +2 -0
  1204. package/lib-esm/lib/typeorm/persistence/SubjectChangeMap.js.map +1 -0
  1205. package/lib-esm/lib/typeorm/persistence/SubjectChangedColumnsComputer.d.ts +18 -0
  1206. package/lib-esm/lib/typeorm/persistence/SubjectChangedColumnsComputer.js +205 -0
  1207. package/lib-esm/lib/typeorm/persistence/SubjectChangedColumnsComputer.js.map +1 -0
  1208. package/lib-esm/lib/typeorm/persistence/SubjectDatabaseEntityLoader.d.ts +35 -0
  1209. package/lib-esm/lib/typeorm/persistence/SubjectDatabaseEntityLoader.js +150 -0
  1210. package/lib-esm/lib/typeorm/persistence/SubjectDatabaseEntityLoader.js.map +1 -0
  1211. package/lib-esm/lib/typeorm/persistence/SubjectExecutor.d.ts +118 -0
  1212. package/lib-esm/lib/typeorm/persistence/SubjectExecutor.js +826 -0
  1213. package/lib-esm/lib/typeorm/persistence/SubjectExecutor.js.map +1 -0
  1214. package/lib-esm/lib/typeorm/persistence/SubjectTopoligicalSorter.d.ts +45 -0
  1215. package/lib-esm/lib/typeorm/persistence/SubjectTopoligicalSorter.js +181 -0
  1216. package/lib-esm/lib/typeorm/persistence/SubjectTopoligicalSorter.js.map +1 -0
  1217. package/lib-esm/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.d.ts +19 -0
  1218. package/lib-esm/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.js +103 -0
  1219. package/lib-esm/lib/typeorm/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -0
  1220. package/lib-esm/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.d.ts +34 -0
  1221. package/lib-esm/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.js +210 -0
  1222. package/lib-esm/lib/typeorm/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -0
  1223. package/lib-esm/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.d.ts +27 -0
  1224. package/lib-esm/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.js +177 -0
  1225. package/lib-esm/lib/typeorm/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -0
  1226. package/lib-esm/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.d.ts +27 -0
  1227. package/lib-esm/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +151 -0
  1228. package/lib-esm/lib/typeorm/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -0
  1229. package/lib-esm/lib/typeorm/persistence/tree/ClosureSubjectExecutor.d.ts +26 -0
  1230. package/lib-esm/lib/typeorm/persistence/tree/ClosureSubjectExecutor.js +237 -0
  1231. package/lib-esm/lib/typeorm/persistence/tree/ClosureSubjectExecutor.js.map +1 -0
  1232. package/lib-esm/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.d.ts +18 -0
  1233. package/lib-esm/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.js +106 -0
  1234. package/lib-esm/lib/typeorm/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -0
  1235. package/lib-esm/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.d.ts +38 -0
  1236. package/lib-esm/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.js +269 -0
  1237. package/lib-esm/lib/typeorm/persistence/tree/NestedSetSubjectExecutor.js.map +1 -0
  1238. package/lib-esm/lib/typeorm/platform/PlatformTools.d.ts +67 -0
  1239. package/lib-esm/lib/typeorm/platform/PlatformTools.js +355 -0
  1240. package/lib-esm/lib/typeorm/platform/PlatformTools.js.map +1 -0
  1241. package/lib-esm/lib/typeorm/query-builder/Alias.d.ts +22 -0
  1242. package/lib-esm/lib/typeorm/query-builder/Alias.js +36 -0
  1243. package/lib-esm/lib/typeorm/query-builder/Alias.js.map +1 -0
  1244. package/lib-esm/lib/typeorm/query-builder/Brackets.d.ts +16 -0
  1245. package/lib-esm/lib/typeorm/query-builder/Brackets.js +18 -0
  1246. package/lib-esm/lib/typeorm/query-builder/Brackets.js.map +1 -0
  1247. package/lib-esm/lib/typeorm/query-builder/DeleteQueryBuilder.d.ts +91 -0
  1248. package/lib-esm/lib/typeorm/query-builder/DeleteQueryBuilder.js +198 -0
  1249. package/lib-esm/lib/typeorm/query-builder/DeleteQueryBuilder.js.map +1 -0
  1250. package/lib-esm/lib/typeorm/query-builder/InsertOrUpdateOptions.d.ts +3 -0
  1251. package/lib-esm/lib/typeorm/query-builder/InsertOrUpdateOptions.js +2 -0
  1252. package/lib-esm/lib/typeorm/query-builder/InsertOrUpdateOptions.js.map +1 -0
  1253. package/lib-esm/lib/typeorm/query-builder/InsertQueryBuilder.d.ts +117 -0
  1254. package/lib-esm/lib/typeorm/query-builder/InsertQueryBuilder.js +737 -0
  1255. package/lib-esm/lib/typeorm/query-builder/InsertQueryBuilder.js.map +1 -0
  1256. package/lib-esm/lib/typeorm/query-builder/JoinAttribute.d.ts +83 -0
  1257. package/lib-esm/lib/typeorm/query-builder/JoinAttribute.js +190 -0
  1258. package/lib-esm/lib/typeorm/query-builder/JoinAttribute.js.map +1 -0
  1259. package/lib-esm/lib/typeorm/query-builder/JoinOptions.d.ts +3 -0
  1260. package/lib-esm/lib/typeorm/query-builder/JoinOptions.js +2 -0
  1261. package/lib-esm/lib/typeorm/query-builder/JoinOptions.js.map +1 -0
  1262. package/lib-esm/lib/typeorm/query-builder/NotBrackets.d.ts +8 -0
  1263. package/lib-esm/lib/typeorm/query-builder/NotBrackets.js +9 -0
  1264. package/lib-esm/lib/typeorm/query-builder/NotBrackets.js.map +1 -0
  1265. package/lib-esm/lib/typeorm/query-builder/QueryBuilder.d.ts +267 -0
  1266. package/lib-esm/lib/typeorm/query-builder/QueryBuilder.js +1078 -0
  1267. package/lib-esm/lib/typeorm/query-builder/QueryBuilder.js.map +1 -0
  1268. package/lib-esm/lib/typeorm/query-builder/QueryBuilderCte.d.ts +17 -0
  1269. package/lib-esm/lib/typeorm/query-builder/QueryBuilderCte.js +2 -0
  1270. package/lib-esm/lib/typeorm/query-builder/QueryBuilderCte.js.map +1 -0
  1271. package/lib-esm/lib/typeorm/query-builder/QueryBuilderUtils.d.ts +10 -0
  1272. package/lib-esm/lib/typeorm/query-builder/QueryBuilderUtils.js +27 -0
  1273. package/lib-esm/lib/typeorm/query-builder/QueryBuilderUtils.js.map +1 -0
  1274. package/lib-esm/lib/typeorm/query-builder/QueryExpressionMap.d.ts +305 -0
  1275. package/lib-esm/lib/typeorm/query-builder/QueryExpressionMap.js +406 -0
  1276. package/lib-esm/lib/typeorm/query-builder/QueryExpressionMap.js.map +1 -0
  1277. package/lib-esm/lib/typeorm/query-builder/QueryPartialEntity.d.ts +15 -0
  1278. package/lib-esm/lib/typeorm/query-builder/QueryPartialEntity.js +2 -0
  1279. package/lib-esm/lib/typeorm/query-builder/QueryPartialEntity.js.map +1 -0
  1280. package/lib-esm/lib/typeorm/query-builder/RelationIdLoader.d.ts +70 -0
  1281. package/lib-esm/lib/typeorm/query-builder/RelationIdLoader.js +497 -0
  1282. package/lib-esm/lib/typeorm/query-builder/RelationIdLoader.js.map +1 -0
  1283. package/lib-esm/lib/typeorm/query-builder/RelationLoader.d.ts +59 -0
  1284. package/lib-esm/lib/typeorm/query-builder/RelationLoader.js +278 -0
  1285. package/lib-esm/lib/typeorm/query-builder/RelationLoader.js.map +1 -0
  1286. package/lib-esm/lib/typeorm/query-builder/RelationQueryBuilder.d.ts +69 -0
  1287. package/lib-esm/lib/typeorm/query-builder/RelationQueryBuilder.js +155 -0
  1288. package/lib-esm/lib/typeorm/query-builder/RelationQueryBuilder.js.map +1 -0
  1289. package/lib-esm/lib/typeorm/query-builder/RelationRemover.d.ts +16 -0
  1290. package/lib-esm/lib/typeorm/query-builder/RelationRemover.js +140 -0
  1291. package/lib-esm/lib/typeorm/query-builder/RelationRemover.js.map +1 -0
  1292. package/lib-esm/lib/typeorm/query-builder/RelationUpdater.d.ts +16 -0
  1293. package/lib-esm/lib/typeorm/query-builder/RelationUpdater.js +149 -0
  1294. package/lib-esm/lib/typeorm/query-builder/RelationUpdater.js.map +1 -0
  1295. package/lib-esm/lib/typeorm/query-builder/ReturningResultsEntityUpdator.d.ts +30 -0
  1296. package/lib-esm/lib/typeorm/query-builder/ReturningResultsEntityUpdator.js +165 -0
  1297. package/lib-esm/lib/typeorm/query-builder/ReturningResultsEntityUpdator.js.map +1 -0
  1298. package/lib-esm/lib/typeorm/query-builder/SelectQuery.d.ts +5 -0
  1299. package/lib-esm/lib/typeorm/query-builder/SelectQuery.js +2 -0
  1300. package/lib-esm/lib/typeorm/query-builder/SelectQuery.js.map +1 -0
  1301. package/lib-esm/lib/typeorm/query-builder/SelectQueryBuilder.d.ts +669 -0
  1302. package/lib-esm/lib/typeorm/query-builder/SelectQueryBuilder.js +2507 -0
  1303. package/lib-esm/lib/typeorm/query-builder/SelectQueryBuilder.js.map +1 -0
  1304. package/lib-esm/lib/typeorm/query-builder/SelectQueryBuilderOption.d.ts +1 -0
  1305. package/lib-esm/lib/typeorm/query-builder/SelectQueryBuilderOption.js +2 -0
  1306. package/lib-esm/lib/typeorm/query-builder/SelectQueryBuilderOption.js.map +1 -0
  1307. package/lib-esm/lib/typeorm/query-builder/SoftDeleteQueryBuilder.d.ts +138 -0
  1308. package/lib-esm/lib/typeorm/query-builder/SoftDeleteQueryBuilder.js +369 -0
  1309. package/lib-esm/lib/typeorm/query-builder/SoftDeleteQueryBuilder.js.map +1 -0
  1310. package/lib-esm/lib/typeorm/query-builder/UpdateQueryBuilder.d.ts +143 -0
  1311. package/lib-esm/lib/typeorm/query-builder/UpdateQueryBuilder.js +529 -0
  1312. package/lib-esm/lib/typeorm/query-builder/UpdateQueryBuilder.js.map +1 -0
  1313. package/lib-esm/lib/typeorm/query-builder/WhereClause.d.ts +16 -0
  1314. package/lib-esm/lib/typeorm/query-builder/WhereClause.js +2 -0
  1315. package/lib-esm/lib/typeorm/query-builder/WhereClause.js.map +1 -0
  1316. package/lib-esm/lib/typeorm/query-builder/WhereExpressionBuilder.d.ts +126 -0
  1317. package/lib-esm/lib/typeorm/query-builder/WhereExpressionBuilder.js +2 -0
  1318. package/lib-esm/lib/typeorm/query-builder/WhereExpressionBuilder.js.map +1 -0
  1319. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountAttribute.d.ts +53 -0
  1320. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountAttribute.js +92 -0
  1321. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountAttribute.js.map +1 -0
  1322. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.d.ts +8 -0
  1323. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.js +2 -0
  1324. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountLoadResult.js.map +1 -0
  1325. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountLoader.d.ts +11 -0
  1326. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountLoader.js +166 -0
  1327. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountLoader.js.map +1 -0
  1328. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.d.ts +7 -0
  1329. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +51 -0
  1330. package/lib-esm/lib/typeorm/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -0
  1331. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdAttribute.d.ts +64 -0
  1332. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdAttribute.js +103 -0
  1333. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdAttribute.js.map +1 -0
  1334. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.d.ts +5 -0
  1335. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.js +2 -0
  1336. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdLoadResult.js.map +1 -0
  1337. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdLoader.d.ts +11 -0
  1338. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdLoader.js +273 -0
  1339. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdLoader.js.map +1 -0
  1340. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.d.ts +7 -0
  1341. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +51 -0
  1342. package/lib-esm/lib/typeorm/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -0
  1343. package/lib-esm/lib/typeorm/query-builder/result/DeleteResult.d.ts +16 -0
  1344. package/lib-esm/lib/typeorm/query-builder/result/DeleteResult.js +21 -0
  1345. package/lib-esm/lib/typeorm/query-builder/result/DeleteResult.js.map +1 -0
  1346. package/lib-esm/lib/typeorm/query-builder/result/InsertResult.d.ts +22 -0
  1347. package/lib-esm/lib/typeorm/query-builder/result/InsertResult.js +25 -0
  1348. package/lib-esm/lib/typeorm/query-builder/result/InsertResult.js.map +1 -0
  1349. package/lib-esm/lib/typeorm/query-builder/result/UpdateResult.d.ts +26 -0
  1350. package/lib-esm/lib/typeorm/query-builder/result/UpdateResult.js +31 -0
  1351. package/lib-esm/lib/typeorm/query-builder/result/UpdateResult.js.map +1 -0
  1352. package/lib-esm/lib/typeorm/query-builder/transformer/DocumentToEntityTransformer.d.ts +12 -0
  1353. package/lib-esm/lib/typeorm/query-builder/transformer/DocumentToEntityTransformer.js +185 -0
  1354. package/lib-esm/lib/typeorm/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -0
  1355. package/lib-esm/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.d.ts +12 -0
  1356. package/lib-esm/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +111 -0
  1357. package/lib-esm/lib/typeorm/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -0
  1358. package/lib-esm/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.d.ts +14 -0
  1359. package/lib-esm/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.js +84 -0
  1360. package/lib-esm/lib/typeorm/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -0
  1361. package/lib-esm/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +55 -0
  1362. package/lib-esm/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.js +420 -0
  1363. package/lib-esm/lib/typeorm/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -0
  1364. package/lib-esm/lib/typeorm/query-runner/BaseQueryRunner.d.ts +203 -0
  1365. package/lib-esm/lib/typeorm/query-runner/BaseQueryRunner.js +458 -0
  1366. package/lib-esm/lib/typeorm/query-runner/BaseQueryRunner.js.map +1 -0
  1367. package/lib-esm/lib/typeorm/query-runner/QueryLock.d.ts +4 -0
  1368. package/lib-esm/lib/typeorm/query-runner/QueryLock.js +21 -0
  1369. package/lib-esm/lib/typeorm/query-runner/QueryLock.js.map +1 -0
  1370. package/lib-esm/lib/typeorm/query-runner/QueryResult.d.ts +17 -0
  1371. package/lib-esm/lib/typeorm/query-runner/QueryResult.js +18 -0
  1372. package/lib-esm/lib/typeorm/query-runner/QueryResult.js.map +1 -0
  1373. package/lib-esm/lib/typeorm/query-runner/QueryRunner.d.ts +359 -0
  1374. package/lib-esm/lib/typeorm/query-runner/QueryRunner.js +2 -0
  1375. package/lib-esm/lib/typeorm/query-runner/QueryRunner.js.map +1 -0
  1376. package/lib-esm/lib/typeorm/relation-path.d.ts +6 -0
  1377. package/lib-esm/lib/typeorm/relation-path.js +2 -0
  1378. package/lib-esm/lib/typeorm/relation-path.js.map +1 -0
  1379. package/lib-esm/lib/typeorm/repository/AbstractRepository.d.ts +51 -0
  1380. package/lib-esm/lib/typeorm/repository/AbstractRepository.js +94 -0
  1381. package/lib-esm/lib/typeorm/repository/AbstractRepository.js.map +1 -0
  1382. package/lib-esm/lib/typeorm/repository/BaseEntity.d.ts +297 -0
  1383. package/lib-esm/lib/typeorm/repository/BaseEntity.js +294 -0
  1384. package/lib-esm/lib/typeorm/repository/BaseEntity.js.map +1 -0
  1385. package/lib-esm/lib/typeorm/repository/EntityId.d.ts +2 -0
  1386. package/lib-esm/lib/typeorm/repository/EntityId.js +2 -0
  1387. package/lib-esm/lib/typeorm/repository/EntityId.js.map +1 -0
  1388. package/lib-esm/lib/typeorm/repository/FindTreesOptions.d.ts +9 -0
  1389. package/lib-esm/lib/typeorm/repository/FindTreesOptions.js +2 -0
  1390. package/lib-esm/lib/typeorm/repository/FindTreesOptions.js.map +1 -0
  1391. package/lib-esm/lib/typeorm/repository/MongoRepository.d.ts +262 -0
  1392. package/lib-esm/lib/typeorm/repository/MongoRepository.js +332 -0
  1393. package/lib-esm/lib/typeorm/repository/MongoRepository.js.map +1 -0
  1394. package/lib-esm/lib/typeorm/repository/RemoveOptions.d.ts +27 -0
  1395. package/lib-esm/lib/typeorm/repository/RemoveOptions.js +2 -0
  1396. package/lib-esm/lib/typeorm/repository/RemoveOptions.js.map +1 -0
  1397. package/lib-esm/lib/typeorm/repository/Repository.d.ts +291 -0
  1398. package/lib-esm/lib/typeorm/repository/Repository.js +303 -0
  1399. package/lib-esm/lib/typeorm/repository/Repository.js.map +1 -0
  1400. package/lib-esm/lib/typeorm/repository/SaveOptions.d.ts +35 -0
  1401. package/lib-esm/lib/typeorm/repository/SaveOptions.js +2 -0
  1402. package/lib-esm/lib/typeorm/repository/SaveOptions.js.map +1 -0
  1403. package/lib-esm/lib/typeorm/repository/TreeRepository.d.ts +55 -0
  1404. package/lib-esm/lib/typeorm/repository/TreeRepository.js +261 -0
  1405. package/lib-esm/lib/typeorm/repository/TreeRepository.js.map +1 -0
  1406. package/lib-esm/lib/typeorm/repository/UpsertOptions.d.ts +10 -0
  1407. package/lib-esm/lib/typeorm/repository/UpsertOptions.js +2 -0
  1408. package/lib-esm/lib/typeorm/repository/UpsertOptions.js.map +1 -0
  1409. package/lib-esm/lib/typeorm/schema-builder/MongoSchemaBuilder.d.ts +29 -0
  1410. package/lib-esm/lib/typeorm/schema-builder/MongoSchemaBuilder.js +62 -0
  1411. package/lib-esm/lib/typeorm/schema-builder/MongoSchemaBuilder.js.map +1 -0
  1412. package/lib-esm/lib/typeorm/schema-builder/RdbmsSchemaBuilder.d.ts +144 -0
  1413. package/lib-esm/lib/typeorm/schema-builder/RdbmsSchemaBuilder.js +843 -0
  1414. package/lib-esm/lib/typeorm/schema-builder/RdbmsSchemaBuilder.js.map +1 -0
  1415. package/lib-esm/lib/typeorm/schema-builder/SchemaBuilder.d.ts +14 -0
  1416. package/lib-esm/lib/typeorm/schema-builder/SchemaBuilder.js +2 -0
  1417. package/lib-esm/lib/typeorm/schema-builder/SchemaBuilder.js.map +1 -0
  1418. package/lib-esm/lib/typeorm/schema-builder/options/TableCheckOptions.d.ts +17 -0
  1419. package/lib-esm/lib/typeorm/schema-builder/options/TableCheckOptions.js +2 -0
  1420. package/lib-esm/lib/typeorm/schema-builder/options/TableCheckOptions.js.map +1 -0
  1421. package/lib-esm/lib/typeorm/schema-builder/options/TableColumnOptions.d.ts +122 -0
  1422. package/lib-esm/lib/typeorm/schema-builder/options/TableColumnOptions.js +2 -0
  1423. package/lib-esm/lib/typeorm/schema-builder/options/TableColumnOptions.js.map +1 -0
  1424. package/lib-esm/lib/typeorm/schema-builder/options/TableExclusionOptions.d.ts +13 -0
  1425. package/lib-esm/lib/typeorm/schema-builder/options/TableExclusionOptions.js +2 -0
  1426. package/lib-esm/lib/typeorm/schema-builder/options/TableExclusionOptions.js.map +1 -0
  1427. package/lib-esm/lib/typeorm/schema-builder/options/TableForeignKeyOptions.d.ts +44 -0
  1428. package/lib-esm/lib/typeorm/schema-builder/options/TableForeignKeyOptions.js +2 -0
  1429. package/lib-esm/lib/typeorm/schema-builder/options/TableForeignKeyOptions.js.map +1 -0
  1430. package/lib-esm/lib/typeorm/schema-builder/options/TableIndexOptions.d.ts +44 -0
  1431. package/lib-esm/lib/typeorm/schema-builder/options/TableIndexOptions.js +2 -0
  1432. package/lib-esm/lib/typeorm/schema-builder/options/TableIndexOptions.js.map +1 -0
  1433. package/lib-esm/lib/typeorm/schema-builder/options/TableOptions.d.ts +61 -0
  1434. package/lib-esm/lib/typeorm/schema-builder/options/TableOptions.js +2 -0
  1435. package/lib-esm/lib/typeorm/schema-builder/options/TableOptions.js.map +1 -0
  1436. package/lib-esm/lib/typeorm/schema-builder/options/TableUniqueOptions.d.ts +18 -0
  1437. package/lib-esm/lib/typeorm/schema-builder/options/TableUniqueOptions.js +2 -0
  1438. package/lib-esm/lib/typeorm/schema-builder/options/TableUniqueOptions.js.map +1 -0
  1439. package/lib-esm/lib/typeorm/schema-builder/options/ViewOptions.d.ts +26 -0
  1440. package/lib-esm/lib/typeorm/schema-builder/options/ViewOptions.js +2 -0
  1441. package/lib-esm/lib/typeorm/schema-builder/options/ViewOptions.js.map +1 -0
  1442. package/lib-esm/lib/typeorm/schema-builder/table/Table.d.ts +142 -0
  1443. package/lib-esm/lib/typeorm/schema-builder/table/Table.js +309 -0
  1444. package/lib-esm/lib/typeorm/schema-builder/table/Table.js.map +1 -0
  1445. package/lib-esm/lib/typeorm/schema-builder/table/TableCheck.d.ts +29 -0
  1446. package/lib-esm/lib/typeorm/schema-builder/table/TableCheck.js +55 -0
  1447. package/lib-esm/lib/typeorm/schema-builder/table/TableCheck.js.map +1 -0
  1448. package/lib-esm/lib/typeorm/schema-builder/table/TableColumn.d.ts +126 -0
  1449. package/lib-esm/lib/typeorm/schema-builder/table/TableColumn.js +195 -0
  1450. package/lib-esm/lib/typeorm/schema-builder/table/TableColumn.js.map +1 -0
  1451. package/lib-esm/lib/typeorm/schema-builder/table/TableExclusion.d.ts +25 -0
  1452. package/lib-esm/lib/typeorm/schema-builder/table/TableExclusion.js +49 -0
  1453. package/lib-esm/lib/typeorm/schema-builder/table/TableExclusion.js.map +1 -0
  1454. package/lib-esm/lib/typeorm/schema-builder/table/TableForeignKey.d.ts +57 -0
  1455. package/lib-esm/lib/typeorm/schema-builder/table/TableForeignKey.js +101 -0
  1456. package/lib-esm/lib/typeorm/schema-builder/table/TableForeignKey.js.map +1 -0
  1457. package/lib-esm/lib/typeorm/schema-builder/table/TableIndex.d.ts +56 -0
  1458. package/lib-esm/lib/typeorm/schema-builder/table/TableIndex.js +98 -0
  1459. package/lib-esm/lib/typeorm/schema-builder/table/TableIndex.js.map +1 -0
  1460. package/lib-esm/lib/typeorm/schema-builder/table/TableUnique.d.ts +30 -0
  1461. package/lib-esm/lib/typeorm/schema-builder/table/TableUnique.js +57 -0
  1462. package/lib-esm/lib/typeorm/schema-builder/table/TableUnique.js.map +1 -0
  1463. package/lib-esm/lib/typeorm/schema-builder/util/TableUtils.d.ts +6 -0
  1464. package/lib-esm/lib/typeorm/schema-builder/util/TableUtils.js +36 -0
  1465. package/lib-esm/lib/typeorm/schema-builder/util/TableUtils.js.map +1 -0
  1466. package/lib-esm/lib/typeorm/schema-builder/util/ViewUtils.d.ts +7 -0
  1467. package/lib-esm/lib/typeorm/schema-builder/util/ViewUtils.js +22 -0
  1468. package/lib-esm/lib/typeorm/schema-builder/util/ViewUtils.js.map +1 -0
  1469. package/lib-esm/lib/typeorm/schema-builder/view/View.d.ts +37 -0
  1470. package/lib-esm/lib/typeorm/schema-builder/view/View.js +73 -0
  1471. package/lib-esm/lib/typeorm/schema-builder/view/View.js.map +1 -0
  1472. package/lib-esm/lib/typeorm/subscriber/Broadcaster.d.ts +167 -0
  1473. package/lib-esm/lib/typeorm/subscriber/Broadcaster.js +609 -0
  1474. package/lib-esm/lib/typeorm/subscriber/Broadcaster.js.map +1 -0
  1475. package/lib-esm/lib/typeorm/subscriber/BroadcasterResult.d.ts +17 -0
  1476. package/lib-esm/lib/typeorm/subscriber/BroadcasterResult.js +23 -0
  1477. package/lib-esm/lib/typeorm/subscriber/BroadcasterResult.js.map +1 -0
  1478. package/lib-esm/lib/typeorm/subscriber/EntitySubscriberInterface.d.ts +92 -0
  1479. package/lib-esm/lib/typeorm/subscriber/EntitySubscriberInterface.js +2 -0
  1480. package/lib-esm/lib/typeorm/subscriber/EntitySubscriberInterface.js.map +1 -0
  1481. package/lib-esm/lib/typeorm/subscriber/event/InsertEvent.d.ts +31 -0
  1482. package/lib-esm/lib/typeorm/subscriber/event/InsertEvent.js +2 -0
  1483. package/lib-esm/lib/typeorm/subscriber/event/InsertEvent.js.map +1 -0
  1484. package/lib-esm/lib/typeorm/subscriber/event/LoadEvent.d.ts +31 -0
  1485. package/lib-esm/lib/typeorm/subscriber/event/LoadEvent.js +2 -0
  1486. package/lib-esm/lib/typeorm/subscriber/event/LoadEvent.js.map +1 -0
  1487. package/lib-esm/lib/typeorm/subscriber/event/RecoverEvent.d.ts +6 -0
  1488. package/lib-esm/lib/typeorm/subscriber/event/RecoverEvent.js +2 -0
  1489. package/lib-esm/lib/typeorm/subscriber/event/RecoverEvent.js.map +1 -0
  1490. package/lib-esm/lib/typeorm/subscriber/event/RemoveEvent.d.ts +40 -0
  1491. package/lib-esm/lib/typeorm/subscriber/event/RemoveEvent.js +2 -0
  1492. package/lib-esm/lib/typeorm/subscriber/event/RemoveEvent.js.map +1 -0
  1493. package/lib-esm/lib/typeorm/subscriber/event/SoftRemoveEvent.d.ts +6 -0
  1494. package/lib-esm/lib/typeorm/subscriber/event/SoftRemoveEvent.js +2 -0
  1495. package/lib-esm/lib/typeorm/subscriber/event/SoftRemoveEvent.js.map +1 -0
  1496. package/lib-esm/lib/typeorm/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  1497. package/lib-esm/lib/typeorm/subscriber/event/TransactionCommitEvent.js +2 -0
  1498. package/lib-esm/lib/typeorm/subscriber/event/TransactionCommitEvent.js.map +1 -0
  1499. package/lib-esm/lib/typeorm/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  1500. package/lib-esm/lib/typeorm/subscriber/event/TransactionRollbackEvent.js +2 -0
  1501. package/lib-esm/lib/typeorm/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  1502. package/lib-esm/lib/typeorm/subscriber/event/TransactionStartEvent.d.ts +22 -0
  1503. package/lib-esm/lib/typeorm/subscriber/event/TransactionStartEvent.js +2 -0
  1504. package/lib-esm/lib/typeorm/subscriber/event/TransactionStartEvent.js.map +1 -0
  1505. package/lib-esm/lib/typeorm/subscriber/event/UpdateEvent.d.ts +46 -0
  1506. package/lib-esm/lib/typeorm/subscriber/event/UpdateEvent.js +2 -0
  1507. package/lib-esm/lib/typeorm/subscriber/event/UpdateEvent.js.map +1 -0
  1508. package/lib-esm/lib/typeorm/util/ApplyValueTransformers.d.ts +5 -0
  1509. package/lib-esm/lib/typeorm/util/ApplyValueTransformers.js +20 -0
  1510. package/lib-esm/lib/typeorm/util/ApplyValueTransformers.js.map +1 -0
  1511. package/lib-esm/lib/typeorm/util/DateUtils.d.ts +58 -0
  1512. package/lib-esm/lib/typeorm/util/DateUtils.js +221 -0
  1513. package/lib-esm/lib/typeorm/util/DateUtils.js.map +1 -0
  1514. package/lib-esm/lib/typeorm/util/DepGraph.d.ts +64 -0
  1515. package/lib-esm/lib/typeorm/util/DepGraph.js +223 -0
  1516. package/lib-esm/lib/typeorm/util/DepGraph.js.map +1 -0
  1517. package/lib-esm/lib/typeorm/util/DirectoryExportedClassesLoader.d.ts +9 -0
  1518. package/lib-esm/lib/typeorm/util/DirectoryExportedClassesLoader.js +66 -0
  1519. package/lib-esm/lib/typeorm/util/DirectoryExportedClassesLoader.js.map +1 -0
  1520. package/lib-esm/lib/typeorm/util/ImportUtils.d.ts +1 -0
  1521. package/lib-esm/lib/typeorm/util/ImportUtils.js +79 -0
  1522. package/lib-esm/lib/typeorm/util/ImportUtils.js.map +1 -0
  1523. package/lib-esm/lib/typeorm/util/InstanceChecker.d.ts +63 -0
  1524. package/lib-esm/lib/typeorm/util/InstanceChecker.js +112 -0
  1525. package/lib-esm/lib/typeorm/util/InstanceChecker.js.map +1 -0
  1526. package/lib-esm/lib/typeorm/util/ObjectUtils.d.ts +37 -0
  1527. package/lib-esm/lib/typeorm/util/ObjectUtils.js +36 -0
  1528. package/lib-esm/lib/typeorm/util/ObjectUtils.js.map +1 -0
  1529. package/lib-esm/lib/typeorm/util/OrmUtils.d.ts +52 -0
  1530. package/lib-esm/lib/typeorm/util/OrmUtils.js +343 -0
  1531. package/lib-esm/lib/typeorm/util/OrmUtils.js.map +1 -0
  1532. package/lib-esm/lib/typeorm/util/PathUtils.d.ts +10 -0
  1533. package/lib-esm/lib/typeorm/util/PathUtils.js +33 -0
  1534. package/lib-esm/lib/typeorm/util/PathUtils.js.map +1 -0
  1535. package/lib-esm/lib/typeorm/util/RandomGenerator.d.ts +15 -0
  1536. package/lib-esm/lib/typeorm/util/RandomGenerator.js +149 -0
  1537. package/lib-esm/lib/typeorm/util/RandomGenerator.js.map +1 -0
  1538. package/lib-esm/lib/typeorm/util/StringUtils.d.ts +63 -0
  1539. package/lib-esm/lib/typeorm/util/StringUtils.js +107 -0
  1540. package/lib-esm/lib/typeorm/util/StringUtils.js.map +1 -0
  1541. package/lib-esm/lib/typeorm/util/TreeRepositoryUtils.d.ts +23 -0
  1542. package/lib-esm/lib/typeorm/util/TreeRepositoryUtils.js +55 -0
  1543. package/lib-esm/lib/typeorm/util/TreeRepositoryUtils.js.map +1 -0
  1544. package/lib-esm/lib/typeorm/util/VersionUtils.d.ts +4 -0
  1545. package/lib-esm/lib/typeorm/util/VersionUtils.js +15 -0
  1546. package/lib-esm/lib/typeorm/util/VersionUtils.js.map +1 -0
  1547. package/lib-esm/lib/typeorm/util/escapeRegExp.d.ts +1 -0
  1548. package/lib-esm/lib/typeorm/util/escapeRegExp.js +5 -0
  1549. package/lib-esm/lib/typeorm/util/escapeRegExp.js.map +1 -0
  1550. package/lib-prod/build-info._auto-generated_.d.ts +1 -1
  1551. package/lib-prod/build-info._auto-generated_.js +1 -1
  1552. package/lib-prod/package.json +1 -1
  1553. package/lib-prod/typeorm/constants.js.map +1 -1
  1554. package/package.json +1 -1
  1555. package/src.js +4 -20
  1556. package/websql/package.json +1 -1
  1557. package/websql-prod/fesm2022/taon-typeorm-websql-prod.mjs.map +1 -1
  1558. package/websql-prod/package.json +1 -1
@@ -0,0 +1,2608 @@
1
+ import { TypeORMError } from "../../error";
2
+ import { QueryFailedError } from "../../error/QueryFailedError";
3
+ import { QueryRunnerAlreadyReleasedError } from "../../error/QueryRunnerAlreadyReleasedError";
4
+ import { TransactionNotStartedError } from "../../error/TransactionNotStartedError";
5
+ import { BaseQueryRunner } from "../../query-runner/BaseQueryRunner";
6
+ import { QueryResult } from "../../query-runner/QueryResult";
7
+ import { Table } from "../../schema-builder/table/Table";
8
+ import { TableCheck } from "../../schema-builder/table/TableCheck";
9
+ import { TableColumn } from "../../schema-builder/table/TableColumn";
10
+ import { TableExclusion } from "../../schema-builder/table/TableExclusion";
11
+ import { TableForeignKey } from "../../schema-builder/table/TableForeignKey";
12
+ import { TableIndex } from "../../schema-builder/table/TableIndex";
13
+ import { TableUnique } from "../../schema-builder/table/TableUnique";
14
+ import { View } from "../../schema-builder/view/View";
15
+ import { Broadcaster } from "../../subscriber/Broadcaster";
16
+ import { InstanceChecker } from "../../util/InstanceChecker";
17
+ import { OrmUtils } from "../../util/OrmUtils";
18
+ import { VersionUtils } from "../../util/VersionUtils";
19
+ import { Query } from "../Query";
20
+ import { MetadataTableType } from "../types/MetadataTableType";
21
+ /**
22
+ * Runs queries on a single postgres database connection.
23
+ */
24
+ export class PostgresQueryRunner extends BaseQueryRunner {
25
+ // -------------------------------------------------------------------------
26
+ // Public Implemented Properties
27
+ // -------------------------------------------------------------------------
28
+ /**
29
+ * Database driver used by connection.
30
+ */
31
+ driver;
32
+ // -------------------------------------------------------------------------
33
+ // Protected Properties
34
+ // -------------------------------------------------------------------------
35
+ /**
36
+ * Promise used to obtain a database connection for a first time.
37
+ */
38
+ databaseConnectionPromise;
39
+ /**
40
+ * Special callback provided by a driver used to release a created connection.
41
+ */
42
+ releaseCallback;
43
+ // -------------------------------------------------------------------------
44
+ // Constructor
45
+ // -------------------------------------------------------------------------
46
+ constructor(driver, mode) {
47
+ super();
48
+ this.driver = driver;
49
+ this.connection = driver.connection;
50
+ this.mode = mode;
51
+ this.broadcaster = new Broadcaster(this);
52
+ }
53
+ // -------------------------------------------------------------------------
54
+ // Public Methods
55
+ // -------------------------------------------------------------------------
56
+ /**
57
+ * Creates/uses database connection from the connection pool to perform further operations.
58
+ * Returns obtained database connection.
59
+ */
60
+ connect() {
61
+ if (this.databaseConnection)
62
+ return Promise.resolve(this.databaseConnection);
63
+ if (this.databaseConnectionPromise)
64
+ return this.databaseConnectionPromise;
65
+ if (this.mode === "slave" && this.driver.isReplicated) {
66
+ this.databaseConnectionPromise = this.driver
67
+ .obtainSlaveConnection()
68
+ .then(([connection, release]) => {
69
+ this.driver.connectedQueryRunners.push(this);
70
+ this.databaseConnection = connection;
71
+ const onErrorCallback = (err) => this.releasePostgresConnection(err);
72
+ this.releaseCallback = (err) => {
73
+ this.databaseConnection.removeListener("error", onErrorCallback);
74
+ release(err);
75
+ };
76
+ this.databaseConnection.on("error", onErrorCallback);
77
+ return this.databaseConnection;
78
+ });
79
+ }
80
+ else {
81
+ // master
82
+ this.databaseConnectionPromise = this.driver
83
+ .obtainMasterConnection()
84
+ .then(([connection, release]) => {
85
+ this.driver.connectedQueryRunners.push(this);
86
+ this.databaseConnection = connection;
87
+ const onErrorCallback = (err) => this.releasePostgresConnection(err);
88
+ this.releaseCallback = (err) => {
89
+ this.databaseConnection.removeListener("error", onErrorCallback);
90
+ release(err);
91
+ };
92
+ this.databaseConnection.on("error", onErrorCallback);
93
+ return this.databaseConnection;
94
+ });
95
+ }
96
+ return this.databaseConnectionPromise;
97
+ }
98
+ /**
99
+ * Release a connection back to the pool, optionally specifying an Error to release with.
100
+ * Per pg-pool documentation this will prevent the pool from re-using the broken connection.
101
+ */
102
+ async releasePostgresConnection(err) {
103
+ if (this.isReleased) {
104
+ return;
105
+ }
106
+ this.isReleased = true;
107
+ if (this.releaseCallback) {
108
+ this.releaseCallback(err);
109
+ this.releaseCallback = undefined;
110
+ }
111
+ const index = this.driver.connectedQueryRunners.indexOf(this);
112
+ if (index !== -1) {
113
+ this.driver.connectedQueryRunners.splice(index, 1);
114
+ }
115
+ }
116
+ /**
117
+ * Releases used database connection.
118
+ * You cannot use query runner methods once its released.
119
+ */
120
+ release() {
121
+ return this.releasePostgresConnection();
122
+ }
123
+ /**
124
+ * Starts transaction.
125
+ */
126
+ async startTransaction(isolationLevel) {
127
+ this.isTransactionActive = true;
128
+ try {
129
+ await this.broadcaster.broadcast("BeforeTransactionStart");
130
+ }
131
+ catch (err) {
132
+ this.isTransactionActive = false;
133
+ throw err;
134
+ }
135
+ if (this.transactionDepth === 0) {
136
+ await this.query("START TRANSACTION");
137
+ if (isolationLevel) {
138
+ await this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
139
+ }
140
+ }
141
+ else {
142
+ await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`);
143
+ }
144
+ this.transactionDepth += 1;
145
+ await this.broadcaster.broadcast("AfterTransactionStart");
146
+ }
147
+ /**
148
+ * Commits transaction.
149
+ * Error will be thrown if transaction was not started.
150
+ */
151
+ async commitTransaction() {
152
+ if (!this.isTransactionActive)
153
+ throw new TransactionNotStartedError();
154
+ await this.broadcaster.broadcast("BeforeTransactionCommit");
155
+ if (this.transactionDepth > 1) {
156
+ await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`);
157
+ }
158
+ else {
159
+ await this.query("COMMIT");
160
+ this.isTransactionActive = false;
161
+ }
162
+ this.transactionDepth -= 1;
163
+ await this.broadcaster.broadcast("AfterTransactionCommit");
164
+ }
165
+ /**
166
+ * Rollbacks transaction.
167
+ * Error will be thrown if transaction was not started.
168
+ */
169
+ async rollbackTransaction() {
170
+ if (!this.isTransactionActive)
171
+ throw new TransactionNotStartedError();
172
+ await this.broadcaster.broadcast("BeforeTransactionRollback");
173
+ if (this.transactionDepth > 1) {
174
+ await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`);
175
+ }
176
+ else {
177
+ await this.query("ROLLBACK");
178
+ this.isTransactionActive = false;
179
+ }
180
+ this.transactionDepth -= 1;
181
+ await this.broadcaster.broadcast("AfterTransactionRollback");
182
+ }
183
+ /**
184
+ * Executes a given SQL query.
185
+ */
186
+ async query(query, parameters, useStructuredResult = false) {
187
+ if (this.isReleased)
188
+ throw new QueryRunnerAlreadyReleasedError();
189
+ const databaseConnection = await this.connect();
190
+ this.driver.connection.logger.logQuery(query, parameters, this);
191
+ try {
192
+ const queryStartTime = +new Date();
193
+ const raw = await databaseConnection.query(query, parameters);
194
+ // log slow queries if maxQueryExecution time is set
195
+ const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
196
+ const queryEndTime = +new Date();
197
+ const queryExecutionTime = queryEndTime - queryStartTime;
198
+ if (maxQueryExecutionTime &&
199
+ queryExecutionTime > maxQueryExecutionTime)
200
+ this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
201
+ const result = new QueryResult();
202
+ if (raw) {
203
+ if (raw.hasOwnProperty("rows")) {
204
+ result.records = raw.rows;
205
+ }
206
+ if (raw.hasOwnProperty("rowCount")) {
207
+ result.affected = raw.rowCount;
208
+ }
209
+ switch (raw.command) {
210
+ case "DELETE":
211
+ case "UPDATE":
212
+ // for UPDATE and DELETE query additionally return number of affected rows
213
+ result.raw = [raw.rows, raw.rowCount];
214
+ break;
215
+ default:
216
+ result.raw = raw.rows;
217
+ }
218
+ if (!useStructuredResult) {
219
+ return result.raw;
220
+ }
221
+ }
222
+ return result;
223
+ }
224
+ catch (err) {
225
+ this.driver.connection.logger.logQueryError(err, query, parameters, this);
226
+ throw new QueryFailedError(query, parameters, err);
227
+ }
228
+ }
229
+ /**
230
+ * Returns raw data stream.
231
+ */
232
+ async stream(query, parameters, onEnd, onError) {
233
+ const QueryStream = this.driver.loadStreamDependency();
234
+ if (this.isReleased)
235
+ throw new QueryRunnerAlreadyReleasedError();
236
+ const databaseConnection = await this.connect();
237
+ this.driver.connection.logger.logQuery(query, parameters, this);
238
+ const stream = databaseConnection.query(new QueryStream(query, parameters));
239
+ if (onEnd)
240
+ stream.on("end", onEnd);
241
+ if (onError)
242
+ stream.on("error", onError);
243
+ return stream;
244
+ }
245
+ /**
246
+ * Returns all available database names including system databases.
247
+ */
248
+ async getDatabases() {
249
+ return Promise.resolve([]);
250
+ }
251
+ /**
252
+ * Returns all available schema names including system schemas.
253
+ * If database parameter specified, returns schemas of that database.
254
+ */
255
+ async getSchemas(database) {
256
+ return Promise.resolve([]);
257
+ }
258
+ /**
259
+ * Checks if database with the given name exist.
260
+ */
261
+ async hasDatabase(database) {
262
+ const result = await this.query(`SELECT * FROM pg_database WHERE datname='${database}';`);
263
+ return result.length ? true : false;
264
+ }
265
+ /**
266
+ * Loads currently using database
267
+ */
268
+ async getCurrentDatabase() {
269
+ const query = await this.query(`SELECT * FROM current_database()`);
270
+ return query[0]["current_database"];
271
+ }
272
+ /**
273
+ * Checks if schema with the given name exist.
274
+ */
275
+ async hasSchema(schema) {
276
+ const result = await this.query(`SELECT * FROM "information_schema"."schemata" WHERE "schema_name" = '${schema}'`);
277
+ return result.length ? true : false;
278
+ }
279
+ /**
280
+ * Loads currently using database schema
281
+ */
282
+ async getCurrentSchema() {
283
+ const query = await this.query(`SELECT * FROM current_schema()`);
284
+ return query[0]["current_schema"];
285
+ }
286
+ /**
287
+ * Checks if table with the given name exist in the database.
288
+ */
289
+ async hasTable(tableOrName) {
290
+ const parsedTableName = this.driver.parseTableName(tableOrName);
291
+ if (!parsedTableName.schema) {
292
+ parsedTableName.schema = await this.getCurrentSchema();
293
+ }
294
+ const sql = `SELECT * FROM "information_schema"."tables" WHERE "table_schema" = '${parsedTableName.schema}' AND "table_name" = '${parsedTableName.tableName}'`;
295
+ const result = await this.query(sql);
296
+ return result.length ? true : false;
297
+ }
298
+ /**
299
+ * Checks if column with the given name exist in the given table.
300
+ */
301
+ async hasColumn(tableOrName, columnName) {
302
+ const parsedTableName = this.driver.parseTableName(tableOrName);
303
+ if (!parsedTableName.schema) {
304
+ parsedTableName.schema = await this.getCurrentSchema();
305
+ }
306
+ const sql = `SELECT * FROM "information_schema"."columns" WHERE "table_schema" = '${parsedTableName.schema}' AND "table_name" = '${parsedTableName.tableName}' AND "column_name" = '${columnName}'`;
307
+ const result = await this.query(sql);
308
+ return result.length ? true : false;
309
+ }
310
+ /**
311
+ * Creates a new database.
312
+ * Note: Postgres does not support database creation inside a transaction block.
313
+ */
314
+ async createDatabase(database, ifNotExist) {
315
+ if (ifNotExist) {
316
+ const databaseAlreadyExists = await this.hasDatabase(database);
317
+ if (databaseAlreadyExists)
318
+ return Promise.resolve();
319
+ }
320
+ const up = `CREATE DATABASE "${database}"`;
321
+ const down = `DROP DATABASE "${database}"`;
322
+ await this.executeQueries(new Query(up), new Query(down));
323
+ }
324
+ /**
325
+ * Drops database.
326
+ * Note: Postgres does not support database dropping inside a transaction block.
327
+ */
328
+ async dropDatabase(database, ifExist) {
329
+ const up = ifExist
330
+ ? `DROP DATABASE IF EXISTS "${database}"`
331
+ : `DROP DATABASE "${database}"`;
332
+ const down = `CREATE DATABASE "${database}"`;
333
+ await this.executeQueries(new Query(up), new Query(down));
334
+ }
335
+ /**
336
+ * Creates a new table schema.
337
+ */
338
+ async createSchema(schemaPath, ifNotExist) {
339
+ const schema = schemaPath.indexOf(".") === -1
340
+ ? schemaPath
341
+ : schemaPath.split(".")[1];
342
+ const up = ifNotExist
343
+ ? `CREATE SCHEMA IF NOT EXISTS "${schema}"`
344
+ : `CREATE SCHEMA "${schema}"`;
345
+ const down = `DROP SCHEMA "${schema}" CASCADE`;
346
+ await this.executeQueries(new Query(up), new Query(down));
347
+ }
348
+ /**
349
+ * Drops table schema.
350
+ */
351
+ async dropSchema(schemaPath, ifExist, isCascade) {
352
+ const schema = schemaPath.indexOf(".") === -1
353
+ ? schemaPath
354
+ : schemaPath.split(".")[1];
355
+ const up = ifExist
356
+ ? `DROP SCHEMA IF EXISTS "${schema}" ${isCascade ? "CASCADE" : ""}`
357
+ : `DROP SCHEMA "${schema}" ${isCascade ? "CASCADE" : ""}`;
358
+ const down = `CREATE SCHEMA "${schema}"`;
359
+ await this.executeQueries(new Query(up), new Query(down));
360
+ }
361
+ /**
362
+ * Creates a new table.
363
+ */
364
+ async createTable(table, ifNotExist = false, createForeignKeys = true, createIndices = true) {
365
+ if (ifNotExist) {
366
+ const isTableExist = await this.hasTable(table);
367
+ if (isTableExist)
368
+ return Promise.resolve();
369
+ }
370
+ const upQueries = [];
371
+ const downQueries = [];
372
+ // if table have column with ENUM type, we must create this type in postgres.
373
+ const enumColumns = table.columns.filter((column) => column.type === "enum" || column.type === "simple-enum");
374
+ const createdEnumTypes = [];
375
+ for (const column of enumColumns) {
376
+ // TODO: Should also check if values of existing type matches expected ones
377
+ const hasEnum = await this.hasEnumType(table, column);
378
+ const enumName = this.buildEnumName(table, column);
379
+ // if enum with the same "enumName" is defined more then once, me must prevent double creation
380
+ if (!hasEnum && createdEnumTypes.indexOf(enumName) === -1) {
381
+ createdEnumTypes.push(enumName);
382
+ upQueries.push(this.createEnumTypeSql(table, column, enumName));
383
+ downQueries.push(this.dropEnumTypeSql(table, column, enumName));
384
+ }
385
+ }
386
+ // if table have column with generated type, we must add the expression to the metadata table
387
+ const generatedColumns = table.columns.filter((column) => column.generatedType === "STORED" && column.asExpression);
388
+ for (const column of generatedColumns) {
389
+ const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
390
+ const tableName = tableNameWithSchema[1];
391
+ const schema = tableNameWithSchema[0];
392
+ const insertQuery = this.insertTypeormMetadataSql({
393
+ database: this.driver.database,
394
+ schema,
395
+ table: tableName,
396
+ type: MetadataTableType.GENERATED_COLUMN,
397
+ name: column.name,
398
+ value: column.asExpression,
399
+ });
400
+ const deleteQuery = this.deleteTypeormMetadataSql({
401
+ database: this.driver.database,
402
+ schema,
403
+ table: tableName,
404
+ type: MetadataTableType.GENERATED_COLUMN,
405
+ name: column.name,
406
+ });
407
+ upQueries.push(insertQuery);
408
+ downQueries.push(deleteQuery);
409
+ }
410
+ upQueries.push(this.createTableSql(table, createForeignKeys));
411
+ downQueries.push(this.dropTableSql(table));
412
+ // if createForeignKeys is true, we must drop created foreign keys in down query.
413
+ // createTable does not need separate method to create foreign keys, because it create fk's in the same query with table creation.
414
+ if (createForeignKeys)
415
+ table.foreignKeys.forEach((foreignKey) => downQueries.push(this.dropForeignKeySql(table, foreignKey)));
416
+ if (createIndices) {
417
+ table.indices.forEach((index) => {
418
+ // new index may be passed without name. In this case we generate index name manually.
419
+ if (!index.name)
420
+ index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
421
+ upQueries.push(this.createIndexSql(table, index));
422
+ downQueries.push(this.dropIndexSql(table, index));
423
+ });
424
+ }
425
+ await this.executeQueries(upQueries, downQueries);
426
+ }
427
+ /**
428
+ * Drops the table.
429
+ */
430
+ async dropTable(target, ifExist, dropForeignKeys = true, dropIndices = true) {
431
+ // It needs because if table does not exist and dropForeignKeys or dropIndices is true, we don't need
432
+ // to perform drop queries for foreign keys and indices.
433
+ if (ifExist) {
434
+ const isTableExist = await this.hasTable(target);
435
+ if (!isTableExist)
436
+ return Promise.resolve();
437
+ }
438
+ // if dropTable called with dropForeignKeys = true, we must create foreign keys in down query.
439
+ const createForeignKeys = dropForeignKeys;
440
+ const tablePath = this.getTablePath(target);
441
+ const table = await this.getCachedTable(tablePath);
442
+ const upQueries = [];
443
+ const downQueries = [];
444
+ if (dropIndices) {
445
+ table.indices.forEach((index) => {
446
+ upQueries.push(this.dropIndexSql(table, index));
447
+ downQueries.push(this.createIndexSql(table, index));
448
+ });
449
+ }
450
+ if (dropForeignKeys)
451
+ table.foreignKeys.forEach((foreignKey) => upQueries.push(this.dropForeignKeySql(table, foreignKey)));
452
+ upQueries.push(this.dropTableSql(table));
453
+ downQueries.push(this.createTableSql(table, createForeignKeys));
454
+ // if table had columns with generated type, we must remove the expression from the metadata table
455
+ const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
456
+ for (const column of generatedColumns) {
457
+ const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
458
+ const tableName = tableNameWithSchema[1];
459
+ const schema = tableNameWithSchema[0];
460
+ const deleteQuery = this.deleteTypeormMetadataSql({
461
+ database: this.driver.database,
462
+ schema,
463
+ table: tableName,
464
+ type: MetadataTableType.GENERATED_COLUMN,
465
+ name: column.name,
466
+ });
467
+ const insertQuery = this.insertTypeormMetadataSql({
468
+ database: this.driver.database,
469
+ schema,
470
+ table: tableName,
471
+ type: MetadataTableType.GENERATED_COLUMN,
472
+ name: column.name,
473
+ value: column.asExpression,
474
+ });
475
+ upQueries.push(deleteQuery);
476
+ downQueries.push(insertQuery);
477
+ }
478
+ await this.executeQueries(upQueries, downQueries);
479
+ }
480
+ /**
481
+ * Creates a new view.
482
+ */
483
+ async createView(view, syncWithMetadata = false) {
484
+ const upQueries = [];
485
+ const downQueries = [];
486
+ upQueries.push(this.createViewSql(view));
487
+ if (syncWithMetadata)
488
+ upQueries.push(await this.insertViewDefinitionSql(view));
489
+ downQueries.push(this.dropViewSql(view));
490
+ if (syncWithMetadata)
491
+ downQueries.push(await this.deleteViewDefinitionSql(view));
492
+ await this.executeQueries(upQueries, downQueries);
493
+ }
494
+ /**
495
+ * Drops the view.
496
+ */
497
+ async dropView(target) {
498
+ const viewName = InstanceChecker.isView(target) ? target.name : target;
499
+ const view = await this.getCachedView(viewName);
500
+ const upQueries = [];
501
+ const downQueries = [];
502
+ upQueries.push(await this.deleteViewDefinitionSql(view));
503
+ upQueries.push(this.dropViewSql(view));
504
+ downQueries.push(await this.insertViewDefinitionSql(view));
505
+ downQueries.push(this.createViewSql(view));
506
+ await this.executeQueries(upQueries, downQueries);
507
+ }
508
+ /**
509
+ * Renames the given table.
510
+ */
511
+ async renameTable(oldTableOrName, newTableName) {
512
+ const upQueries = [];
513
+ const downQueries = [];
514
+ const oldTable = InstanceChecker.isTable(oldTableOrName)
515
+ ? oldTableOrName
516
+ : await this.getCachedTable(oldTableOrName);
517
+ const newTable = oldTable.clone();
518
+ const { schema: schemaName, tableName: oldTableName } = this.driver.parseTableName(oldTable);
519
+ newTable.name = schemaName
520
+ ? `${schemaName}.${newTableName}`
521
+ : newTableName;
522
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(oldTable)} RENAME TO "${newTableName}"`));
523
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME TO "${oldTableName}"`));
524
+ // rename column primary key constraint if it has default constraint name
525
+ if (newTable.primaryColumns.length > 0 &&
526
+ !newTable.primaryColumns[0].primaryKeyConstraintName) {
527
+ const columnNames = newTable.primaryColumns.map((column) => column.name);
528
+ const oldPkName = this.connection.namingStrategy.primaryKeyName(oldTable, columnNames);
529
+ const newPkName = this.connection.namingStrategy.primaryKeyName(newTable, columnNames);
530
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${oldPkName}" TO "${newPkName}"`));
531
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${newPkName}" TO "${oldPkName}"`));
532
+ }
533
+ // rename sequences
534
+ newTable.columns.map((col) => {
535
+ if (col.isGenerated && col.generationStrategy === "increment") {
536
+ const sequencePath = this.buildSequencePath(oldTable, col.name);
537
+ const sequenceName = this.buildSequenceName(oldTable, col.name);
538
+ const newSequencePath = this.buildSequencePath(newTable, col.name);
539
+ const newSequenceName = this.buildSequenceName(newTable, col.name);
540
+ const up = `ALTER SEQUENCE ${this.escapePath(sequencePath)} RENAME TO "${newSequenceName}"`;
541
+ const down = `ALTER SEQUENCE ${this.escapePath(newSequencePath)} RENAME TO "${sequenceName}"`;
542
+ upQueries.push(new Query(up));
543
+ downQueries.push(new Query(down));
544
+ }
545
+ });
546
+ // rename unique constraints
547
+ newTable.uniques.forEach((unique) => {
548
+ const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(oldTable, unique.columnNames);
549
+ // Skip renaming if Unique has user defined constraint name
550
+ if (unique.name !== oldUniqueName)
551
+ return;
552
+ // build new constraint name
553
+ const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(newTable, unique.columnNames);
554
+ // build queries
555
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${unique.name}" TO "${newUniqueName}"`));
556
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${newUniqueName}" TO "${unique.name}"`));
557
+ // replace constraint name
558
+ unique.name = newUniqueName;
559
+ });
560
+ // rename index constraints
561
+ newTable.indices.forEach((index) => {
562
+ const oldIndexName = this.connection.namingStrategy.indexName(oldTable, index.columnNames, index.where);
563
+ // Skip renaming if Index has user defined constraint name
564
+ if (index.name !== oldIndexName)
565
+ return;
566
+ // build new constraint name
567
+ const { schema } = this.driver.parseTableName(newTable);
568
+ const newIndexName = this.connection.namingStrategy.indexName(newTable, index.columnNames, index.where);
569
+ // build queries
570
+ const up = schema
571
+ ? `ALTER INDEX "${schema}"."${index.name}" RENAME TO "${newIndexName}"`
572
+ : `ALTER INDEX "${index.name}" RENAME TO "${newIndexName}"`;
573
+ const down = schema
574
+ ? `ALTER INDEX "${schema}"."${newIndexName}" RENAME TO "${index.name}"`
575
+ : `ALTER INDEX "${newIndexName}" RENAME TO "${index.name}"`;
576
+ upQueries.push(new Query(up));
577
+ downQueries.push(new Query(down));
578
+ // replace constraint name
579
+ index.name = newIndexName;
580
+ });
581
+ // rename foreign key constraints
582
+ newTable.foreignKeys.forEach((foreignKey) => {
583
+ const oldForeignKeyName = this.connection.namingStrategy.foreignKeyName(oldTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
584
+ // Skip renaming if foreign key has user defined constraint name
585
+ if (foreignKey.name !== oldForeignKeyName)
586
+ return;
587
+ // build new constraint name
588
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(newTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
589
+ // build queries
590
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${foreignKey.name}" TO "${newForeignKeyName}"`));
591
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(newTable)} RENAME CONSTRAINT "${newForeignKeyName}" TO "${foreignKey.name}"`));
592
+ // replace constraint name
593
+ foreignKey.name = newForeignKeyName;
594
+ });
595
+ // rename ENUM types
596
+ const enumColumns = newTable.columns.filter((column) => column.type === "enum" || column.type === "simple-enum");
597
+ for (let column of enumColumns) {
598
+ // skip renaming for user-defined enum name
599
+ if (column.enumName)
600
+ continue;
601
+ const oldEnumType = await this.getUserDefinedTypeName(oldTable, column);
602
+ upQueries.push(new Query(`ALTER TYPE "${oldEnumType.schema}"."${oldEnumType.name}" RENAME TO ${this.buildEnumName(newTable, column, false)}`));
603
+ downQueries.push(new Query(`ALTER TYPE ${this.buildEnumName(newTable, column)} RENAME TO "${oldEnumType.name}"`));
604
+ }
605
+ await this.executeQueries(upQueries, downQueries);
606
+ }
607
+ /**
608
+ * Creates a new column from the column in the table.
609
+ */
610
+ async addColumn(tableOrName, column) {
611
+ const table = InstanceChecker.isTable(tableOrName)
612
+ ? tableOrName
613
+ : await this.getCachedTable(tableOrName);
614
+ const clonedTable = table.clone();
615
+ const upQueries = [];
616
+ const downQueries = [];
617
+ if (column.type === "enum" || column.type === "simple-enum") {
618
+ const hasEnum = await this.hasEnumType(table, column);
619
+ if (!hasEnum) {
620
+ upQueries.push(this.createEnumTypeSql(table, column));
621
+ downQueries.push(this.dropEnumTypeSql(table, column));
622
+ }
623
+ }
624
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, column)}`));
625
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
626
+ // create or update primary key constraint
627
+ if (column.isPrimary) {
628
+ const primaryColumns = clonedTable.primaryColumns;
629
+ // if table already have primary key, me must drop it and recreate again
630
+ if (primaryColumns.length > 0) {
631
+ const pkName = primaryColumns[0].primaryKeyConstraintName
632
+ ? primaryColumns[0].primaryKeyConstraintName
633
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
634
+ const columnNames = primaryColumns
635
+ .map((column) => `"${column.name}"`)
636
+ .join(", ");
637
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
638
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
639
+ }
640
+ primaryColumns.push(column);
641
+ const pkName = primaryColumns[0].primaryKeyConstraintName
642
+ ? primaryColumns[0].primaryKeyConstraintName
643
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
644
+ const columnNames = primaryColumns
645
+ .map((column) => `"${column.name}"`)
646
+ .join(", ");
647
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
648
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
649
+ }
650
+ // create column index
651
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
652
+ index.columnNames[0] === column.name);
653
+ if (columnIndex) {
654
+ upQueries.push(this.createIndexSql(table, columnIndex));
655
+ downQueries.push(this.dropIndexSql(table, columnIndex));
656
+ }
657
+ // create unique constraint
658
+ if (column.isUnique) {
659
+ const uniqueConstraint = new TableUnique({
660
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
661
+ columnNames: [column.name],
662
+ });
663
+ clonedTable.uniques.push(uniqueConstraint);
664
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${column.name}")`));
665
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
666
+ }
667
+ if (column.generatedType === "STORED" && column.asExpression) {
668
+ const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
669
+ const tableName = tableNameWithSchema[1];
670
+ const schema = tableNameWithSchema[0];
671
+ const insertQuery = this.insertTypeormMetadataSql({
672
+ database: this.driver.database,
673
+ schema,
674
+ table: tableName,
675
+ type: MetadataTableType.GENERATED_COLUMN,
676
+ name: column.name,
677
+ value: column.asExpression,
678
+ });
679
+ const deleteQuery = this.deleteTypeormMetadataSql({
680
+ database: this.driver.database,
681
+ schema,
682
+ table: tableName,
683
+ type: MetadataTableType.GENERATED_COLUMN,
684
+ name: column.name,
685
+ });
686
+ upQueries.push(insertQuery);
687
+ downQueries.push(deleteQuery);
688
+ }
689
+ // create column's comment
690
+ if (column.comment) {
691
+ upQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${column.name}" IS ${this.escapeComment(column.comment)}`));
692
+ downQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${column.name}" IS ${this.escapeComment(column.comment)}`));
693
+ }
694
+ await this.executeQueries(upQueries, downQueries);
695
+ clonedTable.addColumn(column);
696
+ this.replaceCachedTable(table, clonedTable);
697
+ }
698
+ /**
699
+ * Creates a new columns from the column in the table.
700
+ */
701
+ async addColumns(tableOrName, columns) {
702
+ for (const column of columns) {
703
+ await this.addColumn(tableOrName, column);
704
+ }
705
+ }
706
+ /**
707
+ * Renames column in the given table.
708
+ */
709
+ async renameColumn(tableOrName, oldTableColumnOrName, newTableColumnOrName) {
710
+ const table = InstanceChecker.isTable(tableOrName)
711
+ ? tableOrName
712
+ : await this.getCachedTable(tableOrName);
713
+ const oldColumn = InstanceChecker.isTableColumn(oldTableColumnOrName)
714
+ ? oldTableColumnOrName
715
+ : table.columns.find((c) => c.name === oldTableColumnOrName);
716
+ if (!oldColumn)
717
+ throw new TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
718
+ let newColumn;
719
+ if (InstanceChecker.isTableColumn(newTableColumnOrName)) {
720
+ newColumn = newTableColumnOrName;
721
+ }
722
+ else {
723
+ newColumn = oldColumn.clone();
724
+ newColumn.name = newTableColumnOrName;
725
+ }
726
+ return this.changeColumn(table, oldColumn, newColumn);
727
+ }
728
+ /**
729
+ * Changes a column in the table.
730
+ */
731
+ async changeColumn(tableOrName, oldTableColumnOrName, newColumn) {
732
+ const table = InstanceChecker.isTable(tableOrName)
733
+ ? tableOrName
734
+ : await this.getCachedTable(tableOrName);
735
+ let clonedTable = table.clone();
736
+ const upQueries = [];
737
+ const downQueries = [];
738
+ let defaultValueChanged = false;
739
+ const oldColumn = InstanceChecker.isTableColumn(oldTableColumnOrName)
740
+ ? oldTableColumnOrName
741
+ : table.columns.find((column) => column.name === oldTableColumnOrName);
742
+ if (!oldColumn)
743
+ throw new TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
744
+ if (oldColumn.type !== newColumn.type ||
745
+ oldColumn.length !== newColumn.length ||
746
+ newColumn.isArray !== oldColumn.isArray ||
747
+ (!oldColumn.generatedType &&
748
+ newColumn.generatedType === "STORED") ||
749
+ (oldColumn.asExpression !== newColumn.asExpression &&
750
+ newColumn.generatedType === "STORED")) {
751
+ // To avoid data conversion, we just recreate column
752
+ await this.dropColumn(table, oldColumn);
753
+ await this.addColumn(table, newColumn);
754
+ // update cloned table
755
+ clonedTable = table.clone();
756
+ }
757
+ else {
758
+ if (oldColumn.name !== newColumn.name) {
759
+ // rename column
760
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${oldColumn.name}" TO "${newColumn.name}"`));
761
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${newColumn.name}" TO "${oldColumn.name}"`));
762
+ // rename ENUM type
763
+ if (oldColumn.type === "enum" ||
764
+ oldColumn.type === "simple-enum") {
765
+ const oldEnumType = await this.getUserDefinedTypeName(table, oldColumn);
766
+ upQueries.push(new Query(`ALTER TYPE "${oldEnumType.schema}"."${oldEnumType.name}" RENAME TO ${this.buildEnumName(table, newColumn, false)}`));
767
+ downQueries.push(new Query(`ALTER TYPE ${this.buildEnumName(table, newColumn)} RENAME TO "${oldEnumType.name}"`));
768
+ }
769
+ // rename column primary key constraint
770
+ if (oldColumn.isPrimary === true &&
771
+ !oldColumn.primaryKeyConstraintName) {
772
+ const primaryColumns = clonedTable.primaryColumns;
773
+ // build old primary constraint name
774
+ const columnNames = primaryColumns.map((column) => column.name);
775
+ const oldPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
776
+ // replace old column name with new column name
777
+ columnNames.splice(columnNames.indexOf(oldColumn.name), 1);
778
+ columnNames.push(newColumn.name);
779
+ // build new primary constraint name
780
+ const newPkName = this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
781
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${oldPkName}" TO "${newPkName}"`));
782
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${newPkName}" TO "${oldPkName}"`));
783
+ }
784
+ // rename column sequence
785
+ if (oldColumn.isGenerated === true &&
786
+ newColumn.generationStrategy === "increment") {
787
+ const sequencePath = this.buildSequencePath(table, oldColumn.name);
788
+ const sequenceName = this.buildSequenceName(table, oldColumn.name);
789
+ const newSequencePath = this.buildSequencePath(table, newColumn.name);
790
+ const newSequenceName = this.buildSequenceName(table, newColumn.name);
791
+ const up = `ALTER SEQUENCE ${this.escapePath(sequencePath)} RENAME TO "${newSequenceName}"`;
792
+ const down = `ALTER SEQUENCE ${this.escapePath(newSequencePath)} RENAME TO "${sequenceName}"`;
793
+ upQueries.push(new Query(up));
794
+ downQueries.push(new Query(down));
795
+ }
796
+ // rename unique constraints
797
+ clonedTable.findColumnUniques(oldColumn).forEach((unique) => {
798
+ const oldUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
799
+ // Skip renaming if Unique has user defined constraint name
800
+ if (unique.name !== oldUniqueName)
801
+ return;
802
+ // build new constraint name
803
+ unique.columnNames.splice(unique.columnNames.indexOf(oldColumn.name), 1);
804
+ unique.columnNames.push(newColumn.name);
805
+ const newUniqueName = this.connection.namingStrategy.uniqueConstraintName(clonedTable, unique.columnNames);
806
+ // build queries
807
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${unique.name}" TO "${newUniqueName}"`));
808
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${newUniqueName}" TO "${unique.name}"`));
809
+ // replace constraint name
810
+ unique.name = newUniqueName;
811
+ });
812
+ // rename index constraints
813
+ clonedTable.findColumnIndices(oldColumn).forEach((index) => {
814
+ const oldIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
815
+ // Skip renaming if Index has user defined constraint name
816
+ if (index.name !== oldIndexName)
817
+ return;
818
+ // build new constraint name
819
+ index.columnNames.splice(index.columnNames.indexOf(oldColumn.name), 1);
820
+ index.columnNames.push(newColumn.name);
821
+ const { schema } = this.driver.parseTableName(table);
822
+ const newIndexName = this.connection.namingStrategy.indexName(clonedTable, index.columnNames, index.where);
823
+ // build queries
824
+ const up = schema
825
+ ? `ALTER INDEX "${schema}"."${index.name}" RENAME TO "${newIndexName}"`
826
+ : `ALTER INDEX "${index.name}" RENAME TO "${newIndexName}"`;
827
+ const down = schema
828
+ ? `ALTER INDEX "${schema}"."${newIndexName}" RENAME TO "${index.name}"`
829
+ : `ALTER INDEX "${newIndexName}" RENAME TO "${index.name}"`;
830
+ upQueries.push(new Query(up));
831
+ downQueries.push(new Query(down));
832
+ // replace constraint name
833
+ index.name = newIndexName;
834
+ });
835
+ // rename foreign key constraints
836
+ clonedTable
837
+ .findColumnForeignKeys(oldColumn)
838
+ .forEach((foreignKey) => {
839
+ const foreignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
840
+ // Skip renaming if foreign key has user defined constraint name
841
+ if (foreignKey.name !== foreignKeyName)
842
+ return;
843
+ // build new constraint name
844
+ foreignKey.columnNames.splice(foreignKey.columnNames.indexOf(oldColumn.name), 1);
845
+ foreignKey.columnNames.push(newColumn.name);
846
+ const newForeignKeyName = this.connection.namingStrategy.foreignKeyName(clonedTable, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
847
+ // build queries
848
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${foreignKey.name}" TO "${newForeignKeyName}"`));
849
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME CONSTRAINT "${newForeignKeyName}" TO "${foreignKey.name}"`));
850
+ // replace constraint name
851
+ foreignKey.name = newForeignKeyName;
852
+ });
853
+ // rename old column in the Table object
854
+ const oldTableColumn = clonedTable.columns.find((column) => column.name === oldColumn.name);
855
+ clonedTable.columns[clonedTable.columns.indexOf(oldTableColumn)].name = newColumn.name;
856
+ oldColumn.name = newColumn.name;
857
+ }
858
+ if (newColumn.precision !== oldColumn.precision ||
859
+ newColumn.scale !== oldColumn.scale) {
860
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" TYPE ${this.driver.createFullType(newColumn)}`));
861
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" TYPE ${this.driver.createFullType(oldColumn)}`));
862
+ }
863
+ if ((newColumn.type === "enum" ||
864
+ newColumn.type === "simple-enum") &&
865
+ (oldColumn.type === "enum" ||
866
+ oldColumn.type === "simple-enum") &&
867
+ (!OrmUtils.isArraysEqual(newColumn.enum, oldColumn.enum) ||
868
+ newColumn.enumName !== oldColumn.enumName)) {
869
+ const arraySuffix = newColumn.isArray ? "[]" : "";
870
+ // "public"."new_enum"
871
+ const newEnumName = this.buildEnumName(table, newColumn);
872
+ // "public"."old_enum"
873
+ const oldEnumName = this.buildEnumName(table, oldColumn);
874
+ // "old_enum"
875
+ const oldEnumNameWithoutSchema = this.buildEnumName(table, oldColumn, false);
876
+ //"public"."old_enum_old"
877
+ const oldEnumNameWithSchema_old = this.buildEnumName(table, oldColumn, true, false, true);
878
+ //"old_enum_old"
879
+ const oldEnumNameWithoutSchema_old = this.buildEnumName(table, oldColumn, false, false, true);
880
+ // rename old ENUM
881
+ upQueries.push(new Query(`ALTER TYPE ${oldEnumName} RENAME TO ${oldEnumNameWithoutSchema_old}`));
882
+ downQueries.push(new Query(`ALTER TYPE ${oldEnumNameWithSchema_old} RENAME TO ${oldEnumNameWithoutSchema}`));
883
+ // create new ENUM
884
+ upQueries.push(this.createEnumTypeSql(table, newColumn, newEnumName));
885
+ downQueries.push(this.dropEnumTypeSql(table, newColumn, newEnumName));
886
+ // if column have default value, we must drop it to avoid issues with type casting
887
+ if (oldColumn.default !== null &&
888
+ oldColumn.default !== undefined) {
889
+ // mark default as changed to prevent double update
890
+ defaultValueChanged = true;
891
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" DROP DEFAULT`));
892
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" SET DEFAULT ${oldColumn.default}`));
893
+ }
894
+ // build column types
895
+ const upType = `${newEnumName}${arraySuffix} USING "${newColumn.name}"::"text"::${newEnumName}${arraySuffix}`;
896
+ const downType = `${oldEnumNameWithSchema_old}${arraySuffix} USING "${newColumn.name}"::"text"::${oldEnumNameWithSchema_old}${arraySuffix}`;
897
+ // update column to use new type
898
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" TYPE ${upType}`));
899
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" TYPE ${downType}`));
900
+ // restore column default or create new one
901
+ if (newColumn.default !== null &&
902
+ newColumn.default !== undefined) {
903
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${newColumn.default}`));
904
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
905
+ }
906
+ // remove old ENUM
907
+ upQueries.push(this.dropEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old));
908
+ downQueries.push(this.createEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old));
909
+ }
910
+ if (oldColumn.isNullable !== newColumn.isNullable) {
911
+ if (newColumn.isNullable) {
912
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" DROP NOT NULL`));
913
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" SET NOT NULL`));
914
+ }
915
+ else {
916
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" SET NOT NULL`));
917
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" DROP NOT NULL`));
918
+ }
919
+ }
920
+ if (oldColumn.comment !== newColumn.comment) {
921
+ upQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${oldColumn.name}" IS ${this.escapeComment(newColumn.comment)}`));
922
+ downQueries.push(new Query(`COMMENT ON COLUMN ${this.escapePath(table)}."${newColumn.name}" IS ${this.escapeComment(oldColumn.comment)}`));
923
+ }
924
+ if (newColumn.isPrimary !== oldColumn.isPrimary) {
925
+ const primaryColumns = clonedTable.primaryColumns;
926
+ // if primary column state changed, we must always drop existed constraint.
927
+ if (primaryColumns.length > 0) {
928
+ const pkName = primaryColumns[0].primaryKeyConstraintName
929
+ ? primaryColumns[0].primaryKeyConstraintName
930
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
931
+ const columnNames = primaryColumns
932
+ .map((column) => `"${column.name}"`)
933
+ .join(", ");
934
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
935
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
936
+ }
937
+ if (newColumn.isPrimary === true) {
938
+ primaryColumns.push(newColumn);
939
+ // update column in table
940
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
941
+ column.isPrimary = true;
942
+ const pkName = primaryColumns[0].primaryKeyConstraintName
943
+ ? primaryColumns[0].primaryKeyConstraintName
944
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
945
+ const columnNames = primaryColumns
946
+ .map((column) => `"${column.name}"`)
947
+ .join(", ");
948
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
949
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
950
+ }
951
+ else {
952
+ const primaryColumn = primaryColumns.find((c) => c.name === newColumn.name);
953
+ primaryColumns.splice(primaryColumns.indexOf(primaryColumn), 1);
954
+ // update column in table
955
+ const column = clonedTable.columns.find((column) => column.name === newColumn.name);
956
+ column.isPrimary = false;
957
+ // if we have another primary keys, we must recreate constraint.
958
+ if (primaryColumns.length > 0) {
959
+ const pkName = primaryColumns[0]
960
+ .primaryKeyConstraintName
961
+ ? primaryColumns[0].primaryKeyConstraintName
962
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
963
+ const columnNames = primaryColumns
964
+ .map((column) => `"${column.name}"`)
965
+ .join(", ");
966
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
967
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
968
+ }
969
+ }
970
+ }
971
+ if (newColumn.isUnique !== oldColumn.isUnique) {
972
+ if (newColumn.isUnique === true) {
973
+ const uniqueConstraint = new TableUnique({
974
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [newColumn.name]),
975
+ columnNames: [newColumn.name],
976
+ });
977
+ clonedTable.uniques.push(uniqueConstraint);
978
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${newColumn.name}")`));
979
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
980
+ }
981
+ else {
982
+ const uniqueConstraint = clonedTable.uniques.find((unique) => {
983
+ return (unique.columnNames.length === 1 &&
984
+ !!unique.columnNames.find((columnName) => columnName === newColumn.name));
985
+ });
986
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(uniqueConstraint), 1);
987
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueConstraint.name}"`));
988
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE ("${newColumn.name}")`));
989
+ }
990
+ }
991
+ if (oldColumn.isGenerated !== newColumn.isGenerated) {
992
+ // if old column was "generated", we should clear defaults
993
+ if (oldColumn.isGenerated) {
994
+ if (oldColumn.generationStrategy === "uuid") {
995
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" DROP DEFAULT`));
996
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${oldColumn.name}" SET DEFAULT ${this.driver.uuidGenerator}`));
997
+ }
998
+ else if (oldColumn.generationStrategy === "increment") {
999
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
1000
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT nextval('${this.escapePath(this.buildSequencePath(table, newColumn))}')`));
1001
+ upQueries.push(new Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, newColumn))}`));
1002
+ downQueries.push(new Query(`CREATE SEQUENCE IF NOT EXISTS ${this.escapePath(this.buildSequencePath(table, newColumn))} OWNED BY ${this.escapePath(table)}."${newColumn.name}"`));
1003
+ }
1004
+ }
1005
+ if (newColumn.generationStrategy === "uuid") {
1006
+ if (newColumn.isGenerated === true) {
1007
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${this.driver.uuidGenerator}`));
1008
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
1009
+ }
1010
+ else {
1011
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
1012
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${this.driver.uuidGenerator}`));
1013
+ }
1014
+ }
1015
+ else if (newColumn.generationStrategy === "increment") {
1016
+ if (newColumn.isGenerated === true) {
1017
+ upQueries.push(new Query(`CREATE SEQUENCE IF NOT EXISTS ${this.escapePath(this.buildSequencePath(table, newColumn))} OWNED BY ${this.escapePath(table)}."${newColumn.name}"`));
1018
+ downQueries.push(new Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, newColumn))}`));
1019
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT nextval('${this.escapePath(this.buildSequencePath(table, newColumn))}')`));
1020
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
1021
+ }
1022
+ else {
1023
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
1024
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT nextval('${this.escapePath(this.buildSequencePath(table, newColumn))}')`));
1025
+ upQueries.push(new Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, newColumn))}`));
1026
+ downQueries.push(new Query(`CREATE SEQUENCE IF NOT EXISTS ${this.escapePath(this.buildSequencePath(table, newColumn))} OWNED BY ${this.escapePath(table)}."${newColumn.name}"`));
1027
+ }
1028
+ }
1029
+ }
1030
+ // the default might have changed when the enum changed
1031
+ if (newColumn.default !== oldColumn.default &&
1032
+ !defaultValueChanged) {
1033
+ if (newColumn.default !== null &&
1034
+ newColumn.default !== undefined) {
1035
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${newColumn.default}`));
1036
+ if (oldColumn.default !== null &&
1037
+ oldColumn.default !== undefined) {
1038
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${oldColumn.default}`));
1039
+ }
1040
+ else {
1041
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
1042
+ }
1043
+ }
1044
+ else if (oldColumn.default !== null &&
1045
+ oldColumn.default !== undefined) {
1046
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" DROP DEFAULT`));
1047
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" SET DEFAULT ${oldColumn.default}`));
1048
+ }
1049
+ }
1050
+ if ((newColumn.spatialFeatureType || "").toLowerCase() !==
1051
+ (oldColumn.spatialFeatureType || "").toLowerCase() ||
1052
+ newColumn.srid !== oldColumn.srid) {
1053
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" TYPE ${this.driver.createFullType(newColumn)}`));
1054
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ALTER COLUMN "${newColumn.name}" TYPE ${this.driver.createFullType(oldColumn)}`));
1055
+ }
1056
+ if (newColumn.generatedType !== oldColumn.generatedType) {
1057
+ // Convert generated column data to normal column
1058
+ if (!newColumn.generatedType ||
1059
+ newColumn.generatedType === "VIRTUAL") {
1060
+ // We can copy the generated data to the new column
1061
+ const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
1062
+ const tableName = tableNameWithSchema[1];
1063
+ const schema = tableNameWithSchema[0];
1064
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} RENAME COLUMN "${oldColumn.name}" TO "TEMP_OLD_${oldColumn.name}"`));
1065
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, newColumn)}`));
1066
+ upQueries.push(new Query(`UPDATE ${this.escapePath(table)} SET "${newColumn.name}" = "TEMP_OLD_${oldColumn.name}"`));
1067
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "TEMP_OLD_${oldColumn.name}"`));
1068
+ upQueries.push(this.deleteTypeormMetadataSql({
1069
+ database: this.driver.database,
1070
+ schema,
1071
+ table: tableName,
1072
+ type: MetadataTableType.GENERATED_COLUMN,
1073
+ name: oldColumn.name,
1074
+ }));
1075
+ // However, we can't copy it back on downgrade. It needs to regenerate.
1076
+ downQueries.push(this.insertTypeormMetadataSql({
1077
+ database: this.driver.database,
1078
+ schema,
1079
+ table: tableName,
1080
+ type: MetadataTableType.GENERATED_COLUMN,
1081
+ name: oldColumn.name,
1082
+ value: oldColumn.asExpression,
1083
+ }));
1084
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, oldColumn)}`));
1085
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${newColumn.name}"`));
1086
+ // downQueries.push(
1087
+ // this.deleteTypeormMetadataSql({
1088
+ // database: this.driver.database,
1089
+ // schema,
1090
+ // table: tableName,
1091
+ // type: MetadataTableType.GENERATED_COLUMN,
1092
+ // name: newColumn.name,
1093
+ // }),
1094
+ // )
1095
+ }
1096
+ }
1097
+ }
1098
+ await this.executeQueries(upQueries, downQueries);
1099
+ this.replaceCachedTable(table, clonedTable);
1100
+ }
1101
+ /**
1102
+ * Changes a column in the table.
1103
+ */
1104
+ async changeColumns(tableOrName, changedColumns) {
1105
+ for (const { oldColumn, newColumn } of changedColumns) {
1106
+ await this.changeColumn(tableOrName, oldColumn, newColumn);
1107
+ }
1108
+ }
1109
+ /**
1110
+ * Drops column in the table.
1111
+ */
1112
+ async dropColumn(tableOrName, columnOrName) {
1113
+ const table = InstanceChecker.isTable(tableOrName)
1114
+ ? tableOrName
1115
+ : await this.getCachedTable(tableOrName);
1116
+ const column = InstanceChecker.isTableColumn(columnOrName)
1117
+ ? columnOrName
1118
+ : table.findColumnByName(columnOrName);
1119
+ if (!column)
1120
+ throw new TypeORMError(`Column "${columnOrName}" was not found in table "${table.name}"`);
1121
+ const clonedTable = table.clone();
1122
+ const upQueries = [];
1123
+ const downQueries = [];
1124
+ // drop primary key constraint
1125
+ if (column.isPrimary) {
1126
+ const pkName = column.primaryKeyConstraintName
1127
+ ? column.primaryKeyConstraintName
1128
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
1129
+ const columnNames = clonedTable.primaryColumns
1130
+ .map((primaryColumn) => `"${primaryColumn.name}"`)
1131
+ .join(", ");
1132
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP CONSTRAINT "${pkName}"`));
1133
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
1134
+ // update column in table
1135
+ const tableColumn = clonedTable.findColumnByName(column.name);
1136
+ tableColumn.isPrimary = false;
1137
+ // if primary key have multiple columns, we must recreate it without dropped column
1138
+ if (clonedTable.primaryColumns.length > 0) {
1139
+ const pkName = clonedTable.primaryColumns[0]
1140
+ .primaryKeyConstraintName
1141
+ ? clonedTable.primaryColumns[0].primaryKeyConstraintName
1142
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, clonedTable.primaryColumns.map((column) => column.name));
1143
+ const columnNames = clonedTable.primaryColumns
1144
+ .map((primaryColumn) => `"${primaryColumn.name}"`)
1145
+ .join(", ");
1146
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
1147
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(clonedTable)} DROP CONSTRAINT "${pkName}"`));
1148
+ }
1149
+ }
1150
+ // drop column index
1151
+ const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
1152
+ index.columnNames[0] === column.name);
1153
+ if (columnIndex) {
1154
+ clonedTable.indices.splice(clonedTable.indices.indexOf(columnIndex), 1);
1155
+ upQueries.push(this.dropIndexSql(table, columnIndex));
1156
+ downQueries.push(this.createIndexSql(table, columnIndex));
1157
+ }
1158
+ // drop column check
1159
+ const columnCheck = clonedTable.checks.find((check) => !!check.columnNames &&
1160
+ check.columnNames.length === 1 &&
1161
+ check.columnNames[0] === column.name);
1162
+ if (columnCheck) {
1163
+ clonedTable.checks.splice(clonedTable.checks.indexOf(columnCheck), 1);
1164
+ upQueries.push(this.dropCheckConstraintSql(table, columnCheck));
1165
+ downQueries.push(this.createCheckConstraintSql(table, columnCheck));
1166
+ }
1167
+ // drop column unique
1168
+ const columnUnique = clonedTable.uniques.find((unique) => unique.columnNames.length === 1 &&
1169
+ unique.columnNames[0] === column.name);
1170
+ if (columnUnique) {
1171
+ clonedTable.uniques.splice(clonedTable.uniques.indexOf(columnUnique), 1);
1172
+ upQueries.push(this.dropUniqueConstraintSql(table, columnUnique));
1173
+ downQueries.push(this.createUniqueConstraintSql(table, columnUnique));
1174
+ }
1175
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP COLUMN "${column.name}"`));
1176
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD ${this.buildCreateColumnSql(table, column)}`));
1177
+ // drop enum type
1178
+ if (column.type === "enum" || column.type === "simple-enum") {
1179
+ const hasEnum = await this.hasEnumType(table, column);
1180
+ if (hasEnum) {
1181
+ const enumType = await this.getUserDefinedTypeName(table, column);
1182
+ const escapedEnumName = `"${enumType.schema}"."${enumType.name}"`;
1183
+ upQueries.push(this.dropEnumTypeSql(table, column, escapedEnumName));
1184
+ downQueries.push(this.createEnumTypeSql(table, column, escapedEnumName));
1185
+ }
1186
+ }
1187
+ if (column.generatedType === "STORED") {
1188
+ const tableNameWithSchema = (await this.getTableNameWithSchema(table.name)).split(".");
1189
+ const tableName = tableNameWithSchema[1];
1190
+ const schema = tableNameWithSchema[0];
1191
+ const deleteQuery = this.deleteTypeormMetadataSql({
1192
+ database: this.driver.database,
1193
+ schema,
1194
+ table: tableName,
1195
+ type: MetadataTableType.GENERATED_COLUMN,
1196
+ name: column.name,
1197
+ });
1198
+ const insertQuery = this.insertTypeormMetadataSql({
1199
+ database: this.driver.database,
1200
+ schema,
1201
+ table: tableName,
1202
+ type: MetadataTableType.GENERATED_COLUMN,
1203
+ name: column.name,
1204
+ value: column.asExpression,
1205
+ });
1206
+ upQueries.push(deleteQuery);
1207
+ downQueries.push(insertQuery);
1208
+ }
1209
+ await this.executeQueries(upQueries, downQueries);
1210
+ clonedTable.removeColumn(column);
1211
+ this.replaceCachedTable(table, clonedTable);
1212
+ }
1213
+ /**
1214
+ * Drops the columns in the table.
1215
+ */
1216
+ async dropColumns(tableOrName, columns) {
1217
+ for (const column of columns) {
1218
+ await this.dropColumn(tableOrName, column);
1219
+ }
1220
+ }
1221
+ /**
1222
+ * Creates a new primary key.
1223
+ */
1224
+ async createPrimaryKey(tableOrName, columnNames, constraintName) {
1225
+ const table = InstanceChecker.isTable(tableOrName)
1226
+ ? tableOrName
1227
+ : await this.getCachedTable(tableOrName);
1228
+ const clonedTable = table.clone();
1229
+ const up = this.createPrimaryKeySql(table, columnNames, constraintName);
1230
+ // mark columns as primary, because dropPrimaryKeySql build constraint name from table primary column names.
1231
+ clonedTable.columns.forEach((column) => {
1232
+ if (columnNames.find((columnName) => columnName === column.name))
1233
+ column.isPrimary = true;
1234
+ });
1235
+ const down = this.dropPrimaryKeySql(clonedTable);
1236
+ await this.executeQueries(up, down);
1237
+ this.replaceCachedTable(table, clonedTable);
1238
+ }
1239
+ /**
1240
+ * Updates composite primary keys.
1241
+ */
1242
+ async updatePrimaryKeys(tableOrName, columns) {
1243
+ const table = InstanceChecker.isTable(tableOrName)
1244
+ ? tableOrName
1245
+ : await this.getCachedTable(tableOrName);
1246
+ const clonedTable = table.clone();
1247
+ const columnNames = columns.map((column) => column.name);
1248
+ const upQueries = [];
1249
+ const downQueries = [];
1250
+ // if table already have primary columns, we must drop them.
1251
+ const primaryColumns = clonedTable.primaryColumns;
1252
+ if (primaryColumns.length > 0) {
1253
+ const pkName = primaryColumns[0].primaryKeyConstraintName
1254
+ ? primaryColumns[0].primaryKeyConstraintName
1255
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, primaryColumns.map((column) => column.name));
1256
+ const columnNamesString = primaryColumns
1257
+ .map((column) => `"${column.name}"`)
1258
+ .join(", ");
1259
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
1260
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNamesString})`));
1261
+ }
1262
+ // update columns in table.
1263
+ clonedTable.columns
1264
+ .filter((column) => columnNames.indexOf(column.name) !== -1)
1265
+ .forEach((column) => (column.isPrimary = true));
1266
+ const pkName = primaryColumns[0].primaryKeyConstraintName
1267
+ ? primaryColumns[0].primaryKeyConstraintName
1268
+ : this.connection.namingStrategy.primaryKeyName(clonedTable, columnNames);
1269
+ const columnNamesString = columnNames
1270
+ .map((columnName) => `"${columnName}"`)
1271
+ .join(", ");
1272
+ upQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNamesString})`));
1273
+ downQueries.push(new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
1274
+ await this.executeQueries(upQueries, downQueries);
1275
+ this.replaceCachedTable(table, clonedTable);
1276
+ }
1277
+ /**
1278
+ * Drops a primary key.
1279
+ */
1280
+ async dropPrimaryKey(tableOrName, constraintName) {
1281
+ const table = InstanceChecker.isTable(tableOrName)
1282
+ ? tableOrName
1283
+ : await this.getCachedTable(tableOrName);
1284
+ const up = this.dropPrimaryKeySql(table);
1285
+ const down = this.createPrimaryKeySql(table, table.primaryColumns.map((column) => column.name), constraintName);
1286
+ await this.executeQueries(up, down);
1287
+ table.primaryColumns.forEach((column) => {
1288
+ column.isPrimary = false;
1289
+ });
1290
+ }
1291
+ /**
1292
+ * Creates new unique constraint.
1293
+ */
1294
+ async createUniqueConstraint(tableOrName, uniqueConstraint) {
1295
+ const table = InstanceChecker.isTable(tableOrName)
1296
+ ? tableOrName
1297
+ : await this.getCachedTable(tableOrName);
1298
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
1299
+ if (!uniqueConstraint.name)
1300
+ uniqueConstraint.name =
1301
+ this.connection.namingStrategy.uniqueConstraintName(table, uniqueConstraint.columnNames);
1302
+ const up = this.createUniqueConstraintSql(table, uniqueConstraint);
1303
+ const down = this.dropUniqueConstraintSql(table, uniqueConstraint);
1304
+ await this.executeQueries(up, down);
1305
+ table.addUniqueConstraint(uniqueConstraint);
1306
+ }
1307
+ /**
1308
+ * Creates new unique constraints.
1309
+ */
1310
+ async createUniqueConstraints(tableOrName, uniqueConstraints) {
1311
+ for (const uniqueConstraint of uniqueConstraints) {
1312
+ await this.createUniqueConstraint(tableOrName, uniqueConstraint);
1313
+ }
1314
+ }
1315
+ /**
1316
+ * Drops unique constraint.
1317
+ */
1318
+ async dropUniqueConstraint(tableOrName, uniqueOrName) {
1319
+ const table = InstanceChecker.isTable(tableOrName)
1320
+ ? tableOrName
1321
+ : await this.getCachedTable(tableOrName);
1322
+ const uniqueConstraint = InstanceChecker.isTableUnique(uniqueOrName)
1323
+ ? uniqueOrName
1324
+ : table.uniques.find((u) => u.name === uniqueOrName);
1325
+ if (!uniqueConstraint)
1326
+ throw new TypeORMError(`Supplied unique constraint was not found in table ${table.name}`);
1327
+ const up = this.dropUniqueConstraintSql(table, uniqueConstraint);
1328
+ const down = this.createUniqueConstraintSql(table, uniqueConstraint);
1329
+ await this.executeQueries(up, down);
1330
+ table.removeUniqueConstraint(uniqueConstraint);
1331
+ }
1332
+ /**
1333
+ * Drops unique constraints.
1334
+ */
1335
+ async dropUniqueConstraints(tableOrName, uniqueConstraints) {
1336
+ for (const uniqueConstraint of uniqueConstraints) {
1337
+ await this.dropUniqueConstraint(tableOrName, uniqueConstraint);
1338
+ }
1339
+ }
1340
+ /**
1341
+ * Creates new check constraint.
1342
+ */
1343
+ async createCheckConstraint(tableOrName, checkConstraint) {
1344
+ const table = InstanceChecker.isTable(tableOrName)
1345
+ ? tableOrName
1346
+ : await this.getCachedTable(tableOrName);
1347
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
1348
+ if (!checkConstraint.name)
1349
+ checkConstraint.name =
1350
+ this.connection.namingStrategy.checkConstraintName(table, checkConstraint.expression);
1351
+ const up = this.createCheckConstraintSql(table, checkConstraint);
1352
+ const down = this.dropCheckConstraintSql(table, checkConstraint);
1353
+ await this.executeQueries(up, down);
1354
+ table.addCheckConstraint(checkConstraint);
1355
+ }
1356
+ /**
1357
+ * Creates new check constraints.
1358
+ */
1359
+ async createCheckConstraints(tableOrName, checkConstraints) {
1360
+ const promises = checkConstraints.map((checkConstraint) => this.createCheckConstraint(tableOrName, checkConstraint));
1361
+ await Promise.all(promises);
1362
+ }
1363
+ /**
1364
+ * Drops check constraint.
1365
+ */
1366
+ async dropCheckConstraint(tableOrName, checkOrName) {
1367
+ const table = InstanceChecker.isTable(tableOrName)
1368
+ ? tableOrName
1369
+ : await this.getCachedTable(tableOrName);
1370
+ const checkConstraint = InstanceChecker.isTableCheck(checkOrName)
1371
+ ? checkOrName
1372
+ : table.checks.find((c) => c.name === checkOrName);
1373
+ if (!checkConstraint)
1374
+ throw new TypeORMError(`Supplied check constraint was not found in table ${table.name}`);
1375
+ const up = this.dropCheckConstraintSql(table, checkConstraint);
1376
+ const down = this.createCheckConstraintSql(table, checkConstraint);
1377
+ await this.executeQueries(up, down);
1378
+ table.removeCheckConstraint(checkConstraint);
1379
+ }
1380
+ /**
1381
+ * Drops check constraints.
1382
+ */
1383
+ async dropCheckConstraints(tableOrName, checkConstraints) {
1384
+ const promises = checkConstraints.map((checkConstraint) => this.dropCheckConstraint(tableOrName, checkConstraint));
1385
+ await Promise.all(promises);
1386
+ }
1387
+ /**
1388
+ * Creates new exclusion constraint.
1389
+ */
1390
+ async createExclusionConstraint(tableOrName, exclusionConstraint) {
1391
+ const table = InstanceChecker.isTable(tableOrName)
1392
+ ? tableOrName
1393
+ : await this.getCachedTable(tableOrName);
1394
+ // new unique constraint may be passed without name. In this case we generate unique name manually.
1395
+ if (!exclusionConstraint.name)
1396
+ exclusionConstraint.name =
1397
+ this.connection.namingStrategy.exclusionConstraintName(table, exclusionConstraint.expression);
1398
+ const up = this.createExclusionConstraintSql(table, exclusionConstraint);
1399
+ const down = this.dropExclusionConstraintSql(table, exclusionConstraint);
1400
+ await this.executeQueries(up, down);
1401
+ table.addExclusionConstraint(exclusionConstraint);
1402
+ }
1403
+ /**
1404
+ * Creates new exclusion constraints.
1405
+ */
1406
+ async createExclusionConstraints(tableOrName, exclusionConstraints) {
1407
+ const promises = exclusionConstraints.map((exclusionConstraint) => this.createExclusionConstraint(tableOrName, exclusionConstraint));
1408
+ await Promise.all(promises);
1409
+ }
1410
+ /**
1411
+ * Drops exclusion constraint.
1412
+ */
1413
+ async dropExclusionConstraint(tableOrName, exclusionOrName) {
1414
+ const table = InstanceChecker.isTable(tableOrName)
1415
+ ? tableOrName
1416
+ : await this.getCachedTable(tableOrName);
1417
+ const exclusionConstraint = InstanceChecker.isTableExclusion(exclusionOrName)
1418
+ ? exclusionOrName
1419
+ : table.exclusions.find((c) => c.name === exclusionOrName);
1420
+ if (!exclusionConstraint)
1421
+ throw new TypeORMError(`Supplied exclusion constraint was not found in table ${table.name}`);
1422
+ const up = this.dropExclusionConstraintSql(table, exclusionConstraint);
1423
+ const down = this.createExclusionConstraintSql(table, exclusionConstraint);
1424
+ await this.executeQueries(up, down);
1425
+ table.removeExclusionConstraint(exclusionConstraint);
1426
+ }
1427
+ /**
1428
+ * Drops exclusion constraints.
1429
+ */
1430
+ async dropExclusionConstraints(tableOrName, exclusionConstraints) {
1431
+ const promises = exclusionConstraints.map((exclusionConstraint) => this.dropExclusionConstraint(tableOrName, exclusionConstraint));
1432
+ await Promise.all(promises);
1433
+ }
1434
+ /**
1435
+ * Creates a new foreign key.
1436
+ */
1437
+ async createForeignKey(tableOrName, foreignKey) {
1438
+ const table = InstanceChecker.isTable(tableOrName)
1439
+ ? tableOrName
1440
+ : await this.getCachedTable(tableOrName);
1441
+ // new FK may be passed without name. In this case we generate FK name manually.
1442
+ if (!foreignKey.name)
1443
+ foreignKey.name = this.connection.namingStrategy.foreignKeyName(table, foreignKey.columnNames, this.getTablePath(foreignKey), foreignKey.referencedColumnNames);
1444
+ const up = this.createForeignKeySql(table, foreignKey);
1445
+ const down = this.dropForeignKeySql(table, foreignKey);
1446
+ await this.executeQueries(up, down);
1447
+ table.addForeignKey(foreignKey);
1448
+ }
1449
+ /**
1450
+ * Creates a new foreign keys.
1451
+ */
1452
+ async createForeignKeys(tableOrName, foreignKeys) {
1453
+ for (const foreignKey of foreignKeys) {
1454
+ await this.createForeignKey(tableOrName, foreignKey);
1455
+ }
1456
+ }
1457
+ /**
1458
+ * Drops a foreign key from the table.
1459
+ */
1460
+ async dropForeignKey(tableOrName, foreignKeyOrName) {
1461
+ const table = InstanceChecker.isTable(tableOrName)
1462
+ ? tableOrName
1463
+ : await this.getCachedTable(tableOrName);
1464
+ const foreignKey = InstanceChecker.isTableForeignKey(foreignKeyOrName)
1465
+ ? foreignKeyOrName
1466
+ : table.foreignKeys.find((fk) => fk.name === foreignKeyOrName);
1467
+ if (!foreignKey)
1468
+ throw new TypeORMError(`Supplied foreign key was not found in table ${table.name}`);
1469
+ const up = this.dropForeignKeySql(table, foreignKey);
1470
+ const down = this.createForeignKeySql(table, foreignKey);
1471
+ await this.executeQueries(up, down);
1472
+ table.removeForeignKey(foreignKey);
1473
+ }
1474
+ /**
1475
+ * Drops a foreign keys from the table.
1476
+ */
1477
+ async dropForeignKeys(tableOrName, foreignKeys) {
1478
+ for (const foreignKey of foreignKeys) {
1479
+ await this.dropForeignKey(tableOrName, foreignKey);
1480
+ }
1481
+ }
1482
+ /**
1483
+ * Creates a new index.
1484
+ */
1485
+ async createIndex(tableOrName, index) {
1486
+ const table = InstanceChecker.isTable(tableOrName)
1487
+ ? tableOrName
1488
+ : await this.getCachedTable(tableOrName);
1489
+ // new index may be passed without name. In this case we generate index name manually.
1490
+ if (!index.name)
1491
+ index.name = this.generateIndexName(table, index);
1492
+ const up = this.createIndexSql(table, index);
1493
+ const down = this.dropIndexSql(table, index);
1494
+ await this.executeQueries(up, down);
1495
+ table.addIndex(index);
1496
+ }
1497
+ /**
1498
+ * Creates a new indices
1499
+ */
1500
+ async createIndices(tableOrName, indices) {
1501
+ for (const index of indices) {
1502
+ await this.createIndex(tableOrName, index);
1503
+ }
1504
+ }
1505
+ /**
1506
+ * Drops an index from the table.
1507
+ */
1508
+ async dropIndex(tableOrName, indexOrName) {
1509
+ const table = InstanceChecker.isTable(tableOrName)
1510
+ ? tableOrName
1511
+ : await this.getCachedTable(tableOrName);
1512
+ const index = InstanceChecker.isTableIndex(indexOrName)
1513
+ ? indexOrName
1514
+ : table.indices.find((i) => i.name === indexOrName);
1515
+ if (!index)
1516
+ throw new TypeORMError(`Supplied index ${indexOrName} was not found in table ${table.name}`);
1517
+ // old index may be passed without name. In this case we generate index name manually.
1518
+ if (!index.name)
1519
+ index.name = this.generateIndexName(table, index);
1520
+ const up = this.dropIndexSql(table, index);
1521
+ const down = this.createIndexSql(table, index);
1522
+ await this.executeQueries(up, down);
1523
+ table.removeIndex(index);
1524
+ }
1525
+ /**
1526
+ * Drops an indices from the table.
1527
+ */
1528
+ async dropIndices(tableOrName, indices) {
1529
+ for (const index of indices) {
1530
+ await this.dropIndex(tableOrName, index);
1531
+ }
1532
+ }
1533
+ /**
1534
+ * Clears all table contents.
1535
+ * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.
1536
+ */
1537
+ async clearTable(tableName) {
1538
+ await this.query(`TRUNCATE TABLE ${this.escapePath(tableName)}`);
1539
+ }
1540
+ /**
1541
+ * Removes all tables from the currently connected database.
1542
+ */
1543
+ async clearDatabase() {
1544
+ const schemas = [];
1545
+ this.connection.entityMetadatas
1546
+ .filter((metadata) => metadata.schema)
1547
+ .forEach((metadata) => {
1548
+ const isSchemaExist = !!schemas.find((schema) => schema === metadata.schema);
1549
+ if (!isSchemaExist)
1550
+ schemas.push(metadata.schema);
1551
+ });
1552
+ schemas.push(this.driver.options.schema || "current_schema()");
1553
+ const schemaNamesString = schemas
1554
+ .map((name) => {
1555
+ return name === "current_schema()" ? name : "'" + name + "'";
1556
+ })
1557
+ .join(", ");
1558
+ const isAnotherTransactionActive = this.isTransactionActive;
1559
+ if (!isAnotherTransactionActive)
1560
+ await this.startTransaction();
1561
+ try {
1562
+ const version = await this.getVersion();
1563
+ // drop views
1564
+ const selectViewDropsQuery = `SELECT 'DROP VIEW IF EXISTS "' || schemaname || '"."' || viewname || '" CASCADE;' as "query" ` +
1565
+ `FROM "pg_views" WHERE "schemaname" IN (${schemaNamesString}) AND "viewname" NOT IN ('geography_columns', 'geometry_columns', 'raster_columns', 'raster_overviews')`;
1566
+ const dropViewQueries = await this.query(selectViewDropsQuery);
1567
+ await Promise.all(dropViewQueries.map((q) => this.query(q["query"])));
1568
+ // drop materialized views
1569
+ // Note: materialized views introduced in Postgres 9.3
1570
+ if (VersionUtils.isGreaterOrEqual(version, "9.3")) {
1571
+ const selectMatViewDropsQuery = `SELECT 'DROP MATERIALIZED VIEW IF EXISTS "' || schemaname || '"."' || matviewname || '" CASCADE;' as "query" ` +
1572
+ `FROM "pg_matviews" WHERE "schemaname" IN (${schemaNamesString})`;
1573
+ const dropMatViewQueries = await this.query(selectMatViewDropsQuery);
1574
+ await Promise.all(dropMatViewQueries.map((q) => this.query(q["query"])));
1575
+ }
1576
+ // ignore spatial_ref_sys; it's a special table supporting PostGIS
1577
+ // TODO generalize this as this.driver.ignoreTables
1578
+ // drop tables
1579
+ const selectTableDropsQuery = `SELECT 'DROP TABLE IF EXISTS "' || schemaname || '"."' || tablename || '" CASCADE;' as "query" FROM "pg_tables" WHERE "schemaname" IN (${schemaNamesString}) AND "tablename" NOT IN ('spatial_ref_sys')`;
1580
+ const dropTableQueries = await this.query(selectTableDropsQuery);
1581
+ await Promise.all(dropTableQueries.map((q) => this.query(q["query"])));
1582
+ // drop enum types
1583
+ await this.dropEnumTypes(schemaNamesString);
1584
+ if (!isAnotherTransactionActive) {
1585
+ await this.commitTransaction();
1586
+ }
1587
+ }
1588
+ catch (error) {
1589
+ try {
1590
+ // we throw original error even if rollback thrown an error
1591
+ if (!isAnotherTransactionActive) {
1592
+ await this.rollbackTransaction();
1593
+ }
1594
+ }
1595
+ catch (rollbackError) { }
1596
+ throw error;
1597
+ }
1598
+ }
1599
+ // -------------------------------------------------------------------------
1600
+ // Protected Methods
1601
+ // -------------------------------------------------------------------------
1602
+ async loadViews(viewNames) {
1603
+ const hasTable = await this.hasTable(this.getTypeormMetadataTableName());
1604
+ if (!hasTable)
1605
+ return [];
1606
+ if (!viewNames) {
1607
+ viewNames = [];
1608
+ }
1609
+ const currentDatabase = await this.getCurrentDatabase();
1610
+ const currentSchema = await this.getCurrentSchema();
1611
+ const viewsCondition = viewNames.length === 0
1612
+ ? "1=1"
1613
+ : viewNames
1614
+ .map((tableName) => this.driver.parseTableName(tableName))
1615
+ .map(({ schema, tableName }) => {
1616
+ if (!schema) {
1617
+ schema =
1618
+ this.driver.options.schema || currentSchema;
1619
+ }
1620
+ return `("t"."schema" = '${schema}' AND "t"."name" = '${tableName}')`;
1621
+ })
1622
+ .join(" OR ");
1623
+ const query = `SELECT "t".* FROM ${this.escapePath(this.getTypeormMetadataTableName())} "t" ` +
1624
+ `INNER JOIN "pg_catalog"."pg_class" "c" ON "c"."relname" = "t"."name" ` +
1625
+ `INNER JOIN "pg_namespace" "n" ON "n"."oid" = "c"."relnamespace" AND "n"."nspname" = "t"."schema" ` +
1626
+ `WHERE "t"."type" IN ('${MetadataTableType.VIEW}', '${MetadataTableType.MATERIALIZED_VIEW}') ${viewsCondition ? `AND (${viewsCondition})` : ""}`;
1627
+ const dbViews = await this.query(query);
1628
+ return dbViews.map((dbView) => {
1629
+ const view = new View();
1630
+ const schema = dbView["schema"] === currentSchema &&
1631
+ !this.driver.options.schema
1632
+ ? undefined
1633
+ : dbView["schema"];
1634
+ view.database = currentDatabase;
1635
+ view.schema = dbView["schema"];
1636
+ view.name = this.driver.buildTableName(dbView["name"], schema);
1637
+ view.expression = dbView["value"];
1638
+ view.materialized =
1639
+ dbView["type"] === MetadataTableType.MATERIALIZED_VIEW;
1640
+ return view;
1641
+ });
1642
+ }
1643
+ /**
1644
+ * Loads all tables (with given names) from the database and creates a Table from them.
1645
+ */
1646
+ async loadTables(tableNames) {
1647
+ // if no tables given then no need to proceed
1648
+ if (tableNames && tableNames.length === 0) {
1649
+ return [];
1650
+ }
1651
+ const currentSchema = await this.getCurrentSchema();
1652
+ const currentDatabase = await this.getCurrentDatabase();
1653
+ const dbTables = [];
1654
+ if (!tableNames) {
1655
+ const tablesSql = `SELECT "table_schema", "table_name" FROM "information_schema"."tables"`;
1656
+ dbTables.push(...(await this.query(tablesSql)));
1657
+ }
1658
+ else {
1659
+ const tablesCondition = tableNames
1660
+ .map((tableName) => this.driver.parseTableName(tableName))
1661
+ .map(({ schema, tableName }) => {
1662
+ return `("table_schema" = '${schema || currentSchema}' AND "table_name" = '${tableName}')`;
1663
+ })
1664
+ .join(" OR ");
1665
+ const tablesSql = `SELECT "table_schema", "table_name" FROM "information_schema"."tables" WHERE ` +
1666
+ tablesCondition;
1667
+ dbTables.push(...(await this.query(tablesSql)));
1668
+ }
1669
+ // if tables were not found in the db, no need to proceed
1670
+ if (dbTables.length === 0) {
1671
+ return [];
1672
+ }
1673
+ /**
1674
+ * Uses standard SQL information_schema.columns table and postgres-specific
1675
+ * pg_catalog.pg_attribute table to get column information.
1676
+ * @see https://stackoverflow.com/a/19541865
1677
+ */
1678
+ const columnsCondition = dbTables
1679
+ .map(({ table_schema, table_name }) => {
1680
+ return `("table_schema" = '${table_schema}' AND "table_name" = '${table_name}')`;
1681
+ })
1682
+ .join(" OR ");
1683
+ const columnsSql = `SELECT columns.*, pg_catalog.col_description(('"' || table_catalog || '"."' || table_schema || '"."' || table_name || '"')::regclass::oid, ordinal_position) AS description, ` +
1684
+ `('"' || "udt_schema" || '"."' || "udt_name" || '"')::"regtype" AS "regtype", pg_catalog.format_type("col_attr"."atttypid", "col_attr"."atttypmod") AS "format_type" ` +
1685
+ `FROM "information_schema"."columns" ` +
1686
+ `LEFT JOIN "pg_catalog"."pg_attribute" AS "col_attr" ON "col_attr"."attname" = "columns"."column_name" ` +
1687
+ `AND "col_attr"."attrelid" = ( ` +
1688
+ `SELECT "cls"."oid" FROM "pg_catalog"."pg_class" AS "cls" ` +
1689
+ `LEFT JOIN "pg_catalog"."pg_namespace" AS "ns" ON "ns"."oid" = "cls"."relnamespace" ` +
1690
+ `WHERE "cls"."relname" = "columns"."table_name" ` +
1691
+ `AND "ns"."nspname" = "columns"."table_schema" ` +
1692
+ `) ` +
1693
+ `WHERE ` +
1694
+ columnsCondition;
1695
+ const constraintsCondition = dbTables
1696
+ .map(({ table_schema, table_name }) => {
1697
+ return `("ns"."nspname" = '${table_schema}' AND "t"."relname" = '${table_name}')`;
1698
+ })
1699
+ .join(" OR ");
1700
+ const constraintsSql = `SELECT "ns"."nspname" AS "table_schema", "t"."relname" AS "table_name", "cnst"."conname" AS "constraint_name", ` +
1701
+ `pg_get_constraintdef("cnst"."oid") AS "expression", ` +
1702
+ `CASE "cnst"."contype" WHEN 'p' THEN 'PRIMARY' WHEN 'u' THEN 'UNIQUE' WHEN 'c' THEN 'CHECK' WHEN 'x' THEN 'EXCLUDE' END AS "constraint_type", "a"."attname" AS "column_name" ` +
1703
+ `FROM "pg_constraint" "cnst" ` +
1704
+ `INNER JOIN "pg_class" "t" ON "t"."oid" = "cnst"."conrelid" ` +
1705
+ `INNER JOIN "pg_namespace" "ns" ON "ns"."oid" = "cnst"."connamespace" ` +
1706
+ `LEFT JOIN "pg_attribute" "a" ON "a"."attrelid" = "cnst"."conrelid" AND "a"."attnum" = ANY ("cnst"."conkey") ` +
1707
+ `WHERE "t"."relkind" IN ('r', 'p') AND (${constraintsCondition})`;
1708
+ const indicesSql = `SELECT "ns"."nspname" AS "table_schema", "t"."relname" AS "table_name", "i"."relname" AS "constraint_name", "a"."attname" AS "column_name", ` +
1709
+ `CASE "ix"."indisunique" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS "is_unique", pg_get_expr("ix"."indpred", "ix"."indrelid") AS "condition", ` +
1710
+ `"types"."typname" AS "type_name" ` +
1711
+ `FROM "pg_class" "t" ` +
1712
+ `INNER JOIN "pg_index" "ix" ON "ix"."indrelid" = "t"."oid" ` +
1713
+ `INNER JOIN "pg_attribute" "a" ON "a"."attrelid" = "t"."oid" AND "a"."attnum" = ANY ("ix"."indkey") ` +
1714
+ `INNER JOIN "pg_namespace" "ns" ON "ns"."oid" = "t"."relnamespace" ` +
1715
+ `INNER JOIN "pg_class" "i" ON "i"."oid" = "ix"."indexrelid" ` +
1716
+ `INNER JOIN "pg_type" "types" ON "types"."oid" = "a"."atttypid" ` +
1717
+ `LEFT JOIN "pg_constraint" "cnst" ON "cnst"."conname" = "i"."relname" ` +
1718
+ `WHERE "t"."relkind" IN ('r', 'p') AND "cnst"."contype" IS NULL AND (${constraintsCondition})`;
1719
+ const foreignKeysCondition = dbTables
1720
+ .map(({ table_schema, table_name }) => {
1721
+ return `("ns"."nspname" = '${table_schema}' AND "cl"."relname" = '${table_name}')`;
1722
+ })
1723
+ .join(" OR ");
1724
+ const hasRelispartitionColumn = await this.hasSupportForPartitionedTables();
1725
+ const isPartitionCondition = hasRelispartitionColumn
1726
+ ? ` AND "cl"."relispartition" = 'f'`
1727
+ : "";
1728
+ const foreignKeysSql = `SELECT "con"."conname" AS "constraint_name", "con"."nspname" AS "table_schema", "con"."relname" AS "table_name", "att2"."attname" AS "column_name", ` +
1729
+ `"ns"."nspname" AS "referenced_table_schema", "cl"."relname" AS "referenced_table_name", "att"."attname" AS "referenced_column_name", "con"."confdeltype" AS "on_delete", ` +
1730
+ `"con"."confupdtype" AS "on_update", "con"."condeferrable" AS "deferrable", "con"."condeferred" AS "deferred" ` +
1731
+ `FROM ( ` +
1732
+ `SELECT UNNEST ("con1"."conkey") AS "parent", UNNEST ("con1"."confkey") AS "child", "con1"."confrelid", "con1"."conrelid", "con1"."conname", "con1"."contype", "ns"."nspname", ` +
1733
+ `"cl"."relname", "con1"."condeferrable", ` +
1734
+ `CASE WHEN "con1"."condeferred" THEN 'INITIALLY DEFERRED' ELSE 'INITIALLY IMMEDIATE' END as condeferred, ` +
1735
+ `CASE "con1"."confdeltype" WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END as "confdeltype", ` +
1736
+ `CASE "con1"."confupdtype" WHEN 'a' THEN 'NO ACTION' WHEN 'r' THEN 'RESTRICT' WHEN 'c' THEN 'CASCADE' WHEN 'n' THEN 'SET NULL' WHEN 'd' THEN 'SET DEFAULT' END as "confupdtype" ` +
1737
+ `FROM "pg_class" "cl" ` +
1738
+ `INNER JOIN "pg_namespace" "ns" ON "cl"."relnamespace" = "ns"."oid" ` +
1739
+ `INNER JOIN "pg_constraint" "con1" ON "con1"."conrelid" = "cl"."oid" ` +
1740
+ `WHERE "con1"."contype" = 'f' AND (${foreignKeysCondition}) ` +
1741
+ `) "con" ` +
1742
+ `INNER JOIN "pg_attribute" "att" ON "att"."attrelid" = "con"."confrelid" AND "att"."attnum" = "con"."child" ` +
1743
+ `INNER JOIN "pg_class" "cl" ON "cl"."oid" = "con"."confrelid" ${isPartitionCondition}` +
1744
+ `INNER JOIN "pg_namespace" "ns" ON "cl"."relnamespace" = "ns"."oid" ` +
1745
+ `INNER JOIN "pg_attribute" "att2" ON "att2"."attrelid" = "con"."conrelid" AND "att2"."attnum" = "con"."parent"`;
1746
+ const [dbColumns, dbConstraints, dbIndices, dbForeignKeys,] = await Promise.all([
1747
+ this.query(columnsSql),
1748
+ this.query(constraintsSql),
1749
+ this.query(indicesSql),
1750
+ this.query(foreignKeysSql),
1751
+ ]);
1752
+ // create tables for loaded tables
1753
+ return Promise.all(dbTables.map(async (dbTable) => {
1754
+ const table = new Table();
1755
+ const getSchemaFromKey = (dbObject, key) => {
1756
+ return dbObject[key] === currentSchema &&
1757
+ (!this.driver.options.schema ||
1758
+ this.driver.options.schema === currentSchema)
1759
+ ? undefined
1760
+ : dbObject[key];
1761
+ };
1762
+ // We do not need to join schema name, when database is by default.
1763
+ const schema = getSchemaFromKey(dbTable, "table_schema");
1764
+ table.database = currentDatabase;
1765
+ table.schema = dbTable["table_schema"];
1766
+ table.name = this.driver.buildTableName(dbTable["table_name"], schema);
1767
+ // create columns from the loaded columns
1768
+ table.columns = await Promise.all(dbColumns
1769
+ .filter((dbColumn) => dbColumn["table_name"] ===
1770
+ dbTable["table_name"] &&
1771
+ dbColumn["table_schema"] ===
1772
+ dbTable["table_schema"])
1773
+ .map(async (dbColumn) => {
1774
+ const columnConstraints = dbConstraints.filter((dbConstraint) => {
1775
+ return (dbConstraint["table_name"] ===
1776
+ dbColumn["table_name"] &&
1777
+ dbConstraint["table_schema"] ===
1778
+ dbColumn["table_schema"] &&
1779
+ dbConstraint["column_name"] ===
1780
+ dbColumn["column_name"]);
1781
+ });
1782
+ const tableColumn = new TableColumn();
1783
+ tableColumn.name = dbColumn["column_name"];
1784
+ tableColumn.type = dbColumn["regtype"].toLowerCase();
1785
+ if (tableColumn.type === "numeric" ||
1786
+ tableColumn.type === "decimal" ||
1787
+ tableColumn.type === "float") {
1788
+ // If one of these properties was set, and another was not, Postgres sets '0' in to unspecified property
1789
+ // we set 'undefined' in to unspecified property to avoid changing column on sync
1790
+ if (dbColumn["numeric_precision"] !== null &&
1791
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) {
1792
+ tableColumn.precision =
1793
+ dbColumn["numeric_precision"];
1794
+ }
1795
+ else if (dbColumn["numeric_scale"] !== null &&
1796
+ !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) {
1797
+ tableColumn.precision = undefined;
1798
+ }
1799
+ if (dbColumn["numeric_scale"] !== null &&
1800
+ !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) {
1801
+ tableColumn.scale =
1802
+ dbColumn["numeric_scale"];
1803
+ }
1804
+ else if (dbColumn["numeric_precision"] !== null &&
1805
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) {
1806
+ tableColumn.scale = undefined;
1807
+ }
1808
+ }
1809
+ if (tableColumn.type === "interval" ||
1810
+ tableColumn.type === "time without time zone" ||
1811
+ tableColumn.type === "time with time zone" ||
1812
+ tableColumn.type ===
1813
+ "timestamp without time zone" ||
1814
+ tableColumn.type === "timestamp with time zone") {
1815
+ tableColumn.precision =
1816
+ !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["datetime_precision"])
1817
+ ? dbColumn["datetime_precision"]
1818
+ : undefined;
1819
+ }
1820
+ // check if column has user-defined data type.
1821
+ // NOTE: if ENUM type defined with "array:true" it comes with ARRAY type instead of USER-DEFINED
1822
+ if (dbColumn["data_type"] === "USER-DEFINED" ||
1823
+ dbColumn["data_type"] === "ARRAY") {
1824
+ const { name } = await this.getUserDefinedTypeName(table, tableColumn);
1825
+ // check if `enumName` is specified by user
1826
+ const builtEnumName = this.buildEnumName(table, tableColumn, false, true);
1827
+ const enumName = builtEnumName !== name ? name : undefined;
1828
+ // check if type is ENUM
1829
+ const sql = `SELECT "e"."enumlabel" AS "value" FROM "pg_enum" "e" ` +
1830
+ `INNER JOIN "pg_type" "t" ON "t"."oid" = "e"."enumtypid" ` +
1831
+ `INNER JOIN "pg_namespace" "n" ON "n"."oid" = "t"."typnamespace" ` +
1832
+ `WHERE "n"."nspname" = '${dbTable["table_schema"]}' AND "t"."typname" = '${enumName || name}'`;
1833
+ const results = await this.query(sql);
1834
+ if (results.length) {
1835
+ tableColumn.type = "enum";
1836
+ tableColumn.enum = results.map((result) => result["value"]);
1837
+ tableColumn.enumName = enumName;
1838
+ }
1839
+ if (dbColumn["data_type"] === "ARRAY") {
1840
+ tableColumn.isArray = true;
1841
+ const type = tableColumn.type.replace("[]", "");
1842
+ tableColumn.type =
1843
+ this.connection.driver.normalizeType({
1844
+ type: type,
1845
+ });
1846
+ }
1847
+ }
1848
+ if (tableColumn.type === "geometry") {
1849
+ const geometryColumnSql = `SELECT * FROM (
1850
+ SELECT
1851
+ "f_table_schema" "table_schema",
1852
+ "f_table_name" "table_name",
1853
+ "f_geometry_column" "column_name",
1854
+ "srid",
1855
+ "type"
1856
+ FROM "geometry_columns"
1857
+ ) AS _
1858
+ WHERE
1859
+ "column_name" = '${dbColumn["column_name"]}' AND
1860
+ "table_schema" = '${dbColumn["table_schema"]}' AND
1861
+ "table_name" = '${dbColumn["table_name"]}'`;
1862
+ const results = await this.query(geometryColumnSql);
1863
+ if (results.length > 0) {
1864
+ tableColumn.spatialFeatureType =
1865
+ results[0].type;
1866
+ tableColumn.srid = results[0].srid;
1867
+ }
1868
+ }
1869
+ if (tableColumn.type === "geography") {
1870
+ const geographyColumnSql = `SELECT * FROM (
1871
+ SELECT
1872
+ "f_table_schema" "table_schema",
1873
+ "f_table_name" "table_name",
1874
+ "f_geography_column" "column_name",
1875
+ "srid",
1876
+ "type"
1877
+ FROM "geography_columns"
1878
+ ) AS _
1879
+ WHERE
1880
+ "column_name" = '${dbColumn["column_name"]}' AND
1881
+ "table_schema" = '${dbColumn["table_schema"]}' AND
1882
+ "table_name" = '${dbColumn["table_name"]}'`;
1883
+ const results = await this.query(geographyColumnSql);
1884
+ if (results.length > 0) {
1885
+ tableColumn.spatialFeatureType =
1886
+ results[0].type;
1887
+ tableColumn.srid = results[0].srid;
1888
+ }
1889
+ }
1890
+ // check only columns that have length property
1891
+ if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1) {
1892
+ let length;
1893
+ if (tableColumn.isArray) {
1894
+ const match = /\((\d+)\)/.exec(dbColumn["format_type"]);
1895
+ length = match ? match[1] : undefined;
1896
+ }
1897
+ else if (dbColumn["character_maximum_length"]) {
1898
+ length =
1899
+ dbColumn["character_maximum_length"].toString();
1900
+ }
1901
+ if (length) {
1902
+ tableColumn.length =
1903
+ !this.isDefaultColumnLength(table, tableColumn, length)
1904
+ ? length
1905
+ : "";
1906
+ }
1907
+ }
1908
+ tableColumn.isNullable =
1909
+ dbColumn["is_nullable"] === "YES";
1910
+ const primaryConstraint = columnConstraints.find((constraint) => constraint["constraint_type"] === "PRIMARY");
1911
+ if (primaryConstraint) {
1912
+ tableColumn.isPrimary = true;
1913
+ // find another columns involved in primary key constraint
1914
+ const anotherPrimaryConstraints = dbConstraints.filter((constraint) => constraint["table_name"] ===
1915
+ dbColumn["table_name"] &&
1916
+ constraint["table_schema"] ===
1917
+ dbColumn["table_schema"] &&
1918
+ constraint["column_name"] !==
1919
+ dbColumn["column_name"] &&
1920
+ constraint["constraint_type"] ===
1921
+ "PRIMARY");
1922
+ // collect all column names
1923
+ const columnNames = anotherPrimaryConstraints.map((constraint) => constraint["column_name"]);
1924
+ columnNames.push(dbColumn["column_name"]);
1925
+ // build default primary key constraint name
1926
+ const pkName = this.connection.namingStrategy.primaryKeyName(table, columnNames);
1927
+ // if primary key has user-defined constraint name, write it in table column
1928
+ if (primaryConstraint["constraint_name"] !==
1929
+ pkName) {
1930
+ tableColumn.primaryKeyConstraintName =
1931
+ primaryConstraint["constraint_name"];
1932
+ }
1933
+ }
1934
+ const uniqueConstraints = columnConstraints.filter((constraint) => constraint["constraint_type"] === "UNIQUE");
1935
+ const isConstraintComposite = uniqueConstraints.every((uniqueConstraint) => {
1936
+ return dbConstraints.some((dbConstraint) => dbConstraint["constraint_type"] ===
1937
+ "UNIQUE" &&
1938
+ dbConstraint["constraint_name"] ===
1939
+ uniqueConstraint["constraint_name"] &&
1940
+ dbConstraint["column_name"] !==
1941
+ dbColumn["column_name"]);
1942
+ });
1943
+ tableColumn.isUnique =
1944
+ uniqueConstraints.length > 0 &&
1945
+ !isConstraintComposite;
1946
+ if (dbColumn.is_identity === "YES") {
1947
+ // Postgres 10+ Identity column
1948
+ tableColumn.isGenerated = true;
1949
+ tableColumn.generationStrategy = "identity";
1950
+ tableColumn.generatedIdentity =
1951
+ dbColumn.identity_generation;
1952
+ }
1953
+ else if (dbColumn["column_default"] !== null &&
1954
+ dbColumn["column_default"] !== undefined) {
1955
+ const serialDefaultName = `nextval('${this.buildSequenceName(table, dbColumn["column_name"])}'::regclass)`;
1956
+ const serialDefaultPath = `nextval('${this.buildSequencePath(table, dbColumn["column_name"])}'::regclass)`;
1957
+ const defaultWithoutQuotes = dbColumn["column_default"].replace(/"/g, "");
1958
+ if (defaultWithoutQuotes ===
1959
+ serialDefaultName ||
1960
+ defaultWithoutQuotes === serialDefaultPath) {
1961
+ tableColumn.isGenerated = true;
1962
+ tableColumn.generationStrategy = "increment";
1963
+ }
1964
+ else if (dbColumn["column_default"] ===
1965
+ "gen_random_uuid()" ||
1966
+ /^uuid_generate_v\d\(\)/.test(dbColumn["column_default"])) {
1967
+ if (tableColumn.type === "uuid") {
1968
+ tableColumn.isGenerated = true;
1969
+ tableColumn.generationStrategy = "uuid";
1970
+ }
1971
+ else {
1972
+ tableColumn.default =
1973
+ dbColumn["column_default"];
1974
+ }
1975
+ }
1976
+ else if (dbColumn["column_default"] === "now()" ||
1977
+ dbColumn["column_default"].indexOf("'now'::text") !== -1) {
1978
+ tableColumn.default =
1979
+ dbColumn["column_default"];
1980
+ }
1981
+ else {
1982
+ tableColumn.default = dbColumn["column_default"].replace(/::[\w\s\.\[\]\"]+/g, "");
1983
+ tableColumn.default =
1984
+ tableColumn.default.replace(/^(-?\d+)$/, "'$1'");
1985
+ }
1986
+ }
1987
+ if (dbColumn["is_generated"] === "ALWAYS" &&
1988
+ dbColumn["generation_expression"]) {
1989
+ // In postgres there is no VIRTUAL generated column type
1990
+ tableColumn.generatedType = "STORED";
1991
+ // We cannot relay on information_schema.columns.generation_expression, because it is formatted different.
1992
+ const asExpressionQuery = await this.selectTypeormMetadataSql({
1993
+ database: currentDatabase,
1994
+ schema: dbTable["table_schema"],
1995
+ table: dbTable["table_name"],
1996
+ type: MetadataTableType.GENERATED_COLUMN,
1997
+ name: tableColumn.name,
1998
+ });
1999
+ const results = await this.query(asExpressionQuery.query, asExpressionQuery.parameters);
2000
+ if (results[0] && results[0].value) {
2001
+ tableColumn.asExpression = results[0].value;
2002
+ }
2003
+ else {
2004
+ tableColumn.asExpression = "";
2005
+ }
2006
+ }
2007
+ tableColumn.comment = dbColumn["description"]
2008
+ ? dbColumn["description"]
2009
+ : undefined;
2010
+ if (dbColumn["character_set_name"])
2011
+ tableColumn.charset =
2012
+ dbColumn["character_set_name"];
2013
+ if (dbColumn["collation_name"])
2014
+ tableColumn.collation =
2015
+ dbColumn["collation_name"];
2016
+ return tableColumn;
2017
+ }));
2018
+ // find unique constraints of table, group them by constraint name and build TableUnique.
2019
+ const tableUniqueConstraints = OrmUtils.uniq(dbConstraints.filter((dbConstraint) => {
2020
+ return (dbConstraint["table_name"] ===
2021
+ dbTable["table_name"] &&
2022
+ dbConstraint["table_schema"] ===
2023
+ dbTable["table_schema"] &&
2024
+ dbConstraint["constraint_type"] === "UNIQUE");
2025
+ }), (dbConstraint) => dbConstraint["constraint_name"]);
2026
+ table.uniques = tableUniqueConstraints.map((constraint) => {
2027
+ const uniques = dbConstraints.filter((dbC) => dbC["constraint_name"] ===
2028
+ constraint["constraint_name"]);
2029
+ return new TableUnique({
2030
+ name: constraint["constraint_name"],
2031
+ columnNames: uniques.map((u) => u["column_name"]),
2032
+ deferrable: constraint["deferrable"]
2033
+ ? constraint["deferred"]
2034
+ : undefined,
2035
+ });
2036
+ });
2037
+ // find check constraints of table, group them by constraint name and build TableCheck.
2038
+ const tableCheckConstraints = OrmUtils.uniq(dbConstraints.filter((dbConstraint) => {
2039
+ return (dbConstraint["table_name"] ===
2040
+ dbTable["table_name"] &&
2041
+ dbConstraint["table_schema"] ===
2042
+ dbTable["table_schema"] &&
2043
+ dbConstraint["constraint_type"] === "CHECK");
2044
+ }), (dbConstraint) => dbConstraint["constraint_name"]);
2045
+ table.checks = tableCheckConstraints.map((constraint) => {
2046
+ const checks = dbConstraints.filter((dbC) => dbC["constraint_name"] ===
2047
+ constraint["constraint_name"]);
2048
+ return new TableCheck({
2049
+ name: constraint["constraint_name"],
2050
+ columnNames: checks.map((c) => c["column_name"]),
2051
+ expression: constraint["expression"].replace(/^\s*CHECK\s*\((.*)\)\s*$/i, "$1"),
2052
+ });
2053
+ });
2054
+ // find exclusion constraints of table, group them by constraint name and build TableExclusion.
2055
+ const tableExclusionConstraints = OrmUtils.uniq(dbConstraints.filter((dbConstraint) => {
2056
+ return (dbConstraint["table_name"] ===
2057
+ dbTable["table_name"] &&
2058
+ dbConstraint["table_schema"] ===
2059
+ dbTable["table_schema"] &&
2060
+ dbConstraint["constraint_type"] === "EXCLUDE");
2061
+ }), (dbConstraint) => dbConstraint["constraint_name"]);
2062
+ table.exclusions = tableExclusionConstraints.map((constraint) => {
2063
+ return new TableExclusion({
2064
+ name: constraint["constraint_name"],
2065
+ expression: constraint["expression"].substring(8), // trim EXCLUDE from start of expression
2066
+ });
2067
+ });
2068
+ // find foreign key constraints of table, group them by constraint name and build TableForeignKey.
2069
+ const tableForeignKeyConstraints = OrmUtils.uniq(dbForeignKeys.filter((dbForeignKey) => {
2070
+ return (dbForeignKey["table_name"] ===
2071
+ dbTable["table_name"] &&
2072
+ dbForeignKey["table_schema"] ===
2073
+ dbTable["table_schema"]);
2074
+ }), (dbForeignKey) => dbForeignKey["constraint_name"]);
2075
+ table.foreignKeys = tableForeignKeyConstraints.map((dbForeignKey) => {
2076
+ const foreignKeys = dbForeignKeys.filter((dbFk) => dbFk["constraint_name"] ===
2077
+ dbForeignKey["constraint_name"]);
2078
+ // if referenced table located in currently used schema, we don't need to concat schema name to table name.
2079
+ const schema = getSchemaFromKey(dbForeignKey, "referenced_table_schema");
2080
+ const referencedTableName = this.driver.buildTableName(dbForeignKey["referenced_table_name"], schema);
2081
+ return new TableForeignKey({
2082
+ name: dbForeignKey["constraint_name"],
2083
+ columnNames: foreignKeys.map((dbFk) => dbFk["column_name"]),
2084
+ referencedSchema: dbForeignKey["referenced_table_schema"],
2085
+ referencedTableName: referencedTableName,
2086
+ referencedColumnNames: foreignKeys.map((dbFk) => dbFk["referenced_column_name"]),
2087
+ onDelete: dbForeignKey["on_delete"],
2088
+ onUpdate: dbForeignKey["on_update"],
2089
+ deferrable: dbForeignKey["deferrable"]
2090
+ ? dbForeignKey["deferred"]
2091
+ : undefined,
2092
+ });
2093
+ });
2094
+ // find index constraints of table, group them by constraint name and build TableIndex.
2095
+ const tableIndexConstraints = OrmUtils.uniq(dbIndices.filter((dbIndex) => {
2096
+ return (dbIndex["table_name"] === dbTable["table_name"] &&
2097
+ dbIndex["table_schema"] === dbTable["table_schema"]);
2098
+ }), (dbIndex) => dbIndex["constraint_name"]);
2099
+ table.indices = tableIndexConstraints.map((constraint) => {
2100
+ const indices = dbIndices.filter((index) => {
2101
+ return (index["table_schema"] ===
2102
+ constraint["table_schema"] &&
2103
+ index["table_name"] === constraint["table_name"] &&
2104
+ index["constraint_name"] ===
2105
+ constraint["constraint_name"]);
2106
+ });
2107
+ return new TableIndex({
2108
+ table: table,
2109
+ name: constraint["constraint_name"],
2110
+ columnNames: indices.map((i) => i["column_name"]),
2111
+ isUnique: constraint["is_unique"] === "TRUE",
2112
+ where: constraint["condition"],
2113
+ isSpatial: indices.every((i) => this.driver.spatialTypes.indexOf(i["type_name"]) >= 0),
2114
+ isFulltext: false,
2115
+ });
2116
+ });
2117
+ return table;
2118
+ }));
2119
+ }
2120
+ /**
2121
+ * Builds create table sql.
2122
+ */
2123
+ createTableSql(table, createForeignKeys) {
2124
+ const columnDefinitions = table.columns
2125
+ .map((column) => this.buildCreateColumnSql(table, column))
2126
+ .join(", ");
2127
+ let sql = `CREATE TABLE ${this.escapePath(table)} (${columnDefinitions}`;
2128
+ table.columns
2129
+ .filter((column) => column.isUnique)
2130
+ .forEach((column) => {
2131
+ const isUniqueExist = table.uniques.some((unique) => unique.columnNames.length === 1 &&
2132
+ unique.columnNames[0] === column.name);
2133
+ if (!isUniqueExist)
2134
+ table.uniques.push(new TableUnique({
2135
+ name: this.connection.namingStrategy.uniqueConstraintName(table, [column.name]),
2136
+ columnNames: [column.name],
2137
+ }));
2138
+ });
2139
+ if (table.uniques.length > 0) {
2140
+ const uniquesSql = table.uniques
2141
+ .map((unique) => {
2142
+ const uniqueName = unique.name
2143
+ ? unique.name
2144
+ : this.connection.namingStrategy.uniqueConstraintName(table, unique.columnNames);
2145
+ const columnNames = unique.columnNames
2146
+ .map((columnName) => `"${columnName}"`)
2147
+ .join(", ");
2148
+ let constraint = `CONSTRAINT "${uniqueName}" UNIQUE (${columnNames})`;
2149
+ if (unique.deferrable)
2150
+ constraint += ` DEFERRABLE ${unique.deferrable}`;
2151
+ return constraint;
2152
+ })
2153
+ .join(", ");
2154
+ sql += `, ${uniquesSql}`;
2155
+ }
2156
+ if (table.checks.length > 0) {
2157
+ const checksSql = table.checks
2158
+ .map((check) => {
2159
+ const checkName = check.name
2160
+ ? check.name
2161
+ : this.connection.namingStrategy.checkConstraintName(table, check.expression);
2162
+ return `CONSTRAINT "${checkName}" CHECK (${check.expression})`;
2163
+ })
2164
+ .join(", ");
2165
+ sql += `, ${checksSql}`;
2166
+ }
2167
+ if (table.exclusions.length > 0) {
2168
+ const exclusionsSql = table.exclusions
2169
+ .map((exclusion) => {
2170
+ const exclusionName = exclusion.name
2171
+ ? exclusion.name
2172
+ : this.connection.namingStrategy.exclusionConstraintName(table, exclusion.expression);
2173
+ return `CONSTRAINT "${exclusionName}" EXCLUDE ${exclusion.expression}`;
2174
+ })
2175
+ .join(", ");
2176
+ sql += `, ${exclusionsSql}`;
2177
+ }
2178
+ if (table.foreignKeys.length > 0 && createForeignKeys) {
2179
+ const foreignKeysSql = table.foreignKeys
2180
+ .map((fk) => {
2181
+ const columnNames = fk.columnNames
2182
+ .map((columnName) => `"${columnName}"`)
2183
+ .join(", ");
2184
+ if (!fk.name)
2185
+ fk.name = this.connection.namingStrategy.foreignKeyName(table, fk.columnNames, this.getTablePath(fk), fk.referencedColumnNames);
2186
+ const referencedColumnNames = fk.referencedColumnNames
2187
+ .map((columnName) => `"${columnName}"`)
2188
+ .join(", ");
2189
+ let constraint = `CONSTRAINT "${fk.name}" FOREIGN KEY (${columnNames}) REFERENCES ${this.escapePath(this.getTablePath(fk))} (${referencedColumnNames})`;
2190
+ if (fk.onDelete)
2191
+ constraint += ` ON DELETE ${fk.onDelete}`;
2192
+ if (fk.onUpdate)
2193
+ constraint += ` ON UPDATE ${fk.onUpdate}`;
2194
+ if (fk.deferrable)
2195
+ constraint += ` DEFERRABLE ${fk.deferrable}`;
2196
+ return constraint;
2197
+ })
2198
+ .join(", ");
2199
+ sql += `, ${foreignKeysSql}`;
2200
+ }
2201
+ const primaryColumns = table.columns.filter((column) => column.isPrimary);
2202
+ if (primaryColumns.length > 0) {
2203
+ const primaryKeyName = primaryColumns[0].primaryKeyConstraintName
2204
+ ? primaryColumns[0].primaryKeyConstraintName
2205
+ : this.connection.namingStrategy.primaryKeyName(table, primaryColumns.map((column) => column.name));
2206
+ const columnNames = primaryColumns
2207
+ .map((column) => `"${column.name}"`)
2208
+ .join(", ");
2209
+ sql += `, CONSTRAINT "${primaryKeyName}" PRIMARY KEY (${columnNames})`;
2210
+ }
2211
+ sql += `)`;
2212
+ table.columns
2213
+ .filter((it) => it.comment)
2214
+ .forEach((it) => (sql += `; COMMENT ON COLUMN ${this.escapePath(table)}."${it.name}" IS ${this.escapeComment(it.comment)}`));
2215
+ return new Query(sql);
2216
+ }
2217
+ /**
2218
+ * Loads Postgres version.
2219
+ */
2220
+ async getVersion() {
2221
+ const result = await this.query(`SELECT version()`);
2222
+ return result[0]["version"].replace(/^PostgreSQL ([\d\.]+) .*$/, "$1");
2223
+ }
2224
+ /**
2225
+ * Builds drop table sql.
2226
+ */
2227
+ dropTableSql(tableOrPath) {
2228
+ return new Query(`DROP TABLE ${this.escapePath(tableOrPath)}`);
2229
+ }
2230
+ createViewSql(view) {
2231
+ const materializedClause = view.materialized ? "MATERIALIZED " : "";
2232
+ const viewName = this.escapePath(view);
2233
+ if (typeof view.expression === "string") {
2234
+ return new Query(`CREATE ${materializedClause}VIEW ${viewName} AS ${view.expression}`);
2235
+ }
2236
+ else {
2237
+ return new Query(`CREATE ${materializedClause}VIEW ${viewName} AS ${view
2238
+ .expression(this.connection)
2239
+ .getQuery()}`);
2240
+ }
2241
+ }
2242
+ async insertViewDefinitionSql(view) {
2243
+ const currentSchema = await this.getCurrentSchema();
2244
+ let { schema, tableName: name } = this.driver.parseTableName(view);
2245
+ if (!schema) {
2246
+ schema = currentSchema;
2247
+ }
2248
+ const type = view.materialized
2249
+ ? MetadataTableType.MATERIALIZED_VIEW
2250
+ : MetadataTableType.VIEW;
2251
+ const expression = typeof view.expression === "string"
2252
+ ? view.expression.trim()
2253
+ : view.expression(this.connection).getQuery();
2254
+ return this.insertTypeormMetadataSql({
2255
+ type,
2256
+ schema,
2257
+ name,
2258
+ value: expression,
2259
+ });
2260
+ }
2261
+ /**
2262
+ * Builds drop view sql.
2263
+ */
2264
+ dropViewSql(view) {
2265
+ const materializedClause = view.materialized ? "MATERIALIZED " : "";
2266
+ return new Query(`DROP ${materializedClause}VIEW ${this.escapePath(view)}`);
2267
+ }
2268
+ /**
2269
+ * Builds remove view sql.
2270
+ */
2271
+ async deleteViewDefinitionSql(view) {
2272
+ const currentSchema = await this.getCurrentSchema();
2273
+ let { schema, tableName: name } = this.driver.parseTableName(view);
2274
+ if (!schema) {
2275
+ schema = currentSchema;
2276
+ }
2277
+ const type = view.materialized
2278
+ ? MetadataTableType.MATERIALIZED_VIEW
2279
+ : MetadataTableType.VIEW;
2280
+ return this.deleteTypeormMetadataSql({ type, schema, name });
2281
+ }
2282
+ /**
2283
+ * Drops ENUM type from given schemas.
2284
+ */
2285
+ async dropEnumTypes(schemaNames) {
2286
+ const selectDropsQuery = `SELECT 'DROP TYPE IF EXISTS "' || n.nspname || '"."' || t.typname || '" CASCADE;' as "query" FROM "pg_type" "t" ` +
2287
+ `INNER JOIN "pg_enum" "e" ON "e"."enumtypid" = "t"."oid" ` +
2288
+ `INNER JOIN "pg_namespace" "n" ON "n"."oid" = "t"."typnamespace" ` +
2289
+ `WHERE "n"."nspname" IN (${schemaNames}) GROUP BY "n"."nspname", "t"."typname"`;
2290
+ const dropQueries = await this.query(selectDropsQuery);
2291
+ await Promise.all(dropQueries.map((q) => this.query(q["query"])));
2292
+ }
2293
+ /**
2294
+ * Checks if enum with the given name exist in the database.
2295
+ */
2296
+ async hasEnumType(table, column) {
2297
+ let { schema } = this.driver.parseTableName(table);
2298
+ if (!schema) {
2299
+ schema = await this.getCurrentSchema();
2300
+ }
2301
+ const enumName = this.buildEnumName(table, column, false, true);
2302
+ const sql = `SELECT "n"."nspname", "t"."typname" FROM "pg_type" "t" ` +
2303
+ `INNER JOIN "pg_namespace" "n" ON "n"."oid" = "t"."typnamespace" ` +
2304
+ `WHERE "n"."nspname" = '${schema}' AND "t"."typname" = '${enumName}'`;
2305
+ const result = await this.query(sql);
2306
+ return result.length ? true : false;
2307
+ }
2308
+ /**
2309
+ * Builds create ENUM type sql.
2310
+ */
2311
+ createEnumTypeSql(table, column, enumName) {
2312
+ if (!enumName)
2313
+ enumName = this.buildEnumName(table, column);
2314
+ const enumValues = column
2315
+ .enum.map((value) => `'${value.replace("'", "''")}'`)
2316
+ .join(", ");
2317
+ return new Query(`CREATE TYPE ${enumName} AS ENUM(${enumValues})`);
2318
+ }
2319
+ /**
2320
+ * Builds create ENUM type sql.
2321
+ */
2322
+ dropEnumTypeSql(table, column, enumName) {
2323
+ if (!enumName)
2324
+ enumName = this.buildEnumName(table, column);
2325
+ return new Query(`DROP TYPE ${enumName}`);
2326
+ }
2327
+ /**
2328
+ * Builds create index sql.
2329
+ */
2330
+ createIndexSql(table, index) {
2331
+ const columns = index.columnNames
2332
+ .map((columnName) => `"${columnName}"`)
2333
+ .join(", ");
2334
+ return new Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} ${index.isSpatial ? "USING GiST " : ""}(${columns}) ${index.where ? "WHERE " + index.where : ""}`);
2335
+ }
2336
+ /**
2337
+ * Builds drop index sql.
2338
+ */
2339
+ dropIndexSql(table, indexOrName) {
2340
+ let indexName = InstanceChecker.isTableIndex(indexOrName)
2341
+ ? indexOrName.name
2342
+ : indexOrName;
2343
+ const { schema } = this.driver.parseTableName(table);
2344
+ return schema
2345
+ ? new Query(`DROP INDEX "${schema}"."${indexName}"`)
2346
+ : new Query(`DROP INDEX "${indexName}"`);
2347
+ }
2348
+ /**
2349
+ * Builds create primary key sql.
2350
+ */
2351
+ createPrimaryKeySql(table, columnNames, constraintName) {
2352
+ const primaryKeyName = constraintName
2353
+ ? constraintName
2354
+ : this.connection.namingStrategy.primaryKeyName(table, columnNames);
2355
+ const columnNamesString = columnNames
2356
+ .map((columnName) => `"${columnName}"`)
2357
+ .join(", ");
2358
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${primaryKeyName}" PRIMARY KEY (${columnNamesString})`);
2359
+ }
2360
+ /**
2361
+ * Builds drop primary key sql.
2362
+ */
2363
+ dropPrimaryKeySql(table) {
2364
+ if (!table.primaryColumns.length)
2365
+ throw new TypeORMError(`Table ${table} has no primary keys.`);
2366
+ const columnNames = table.primaryColumns.map((column) => column.name);
2367
+ const constraintName = table.primaryColumns[0].primaryKeyConstraintName;
2368
+ const primaryKeyName = constraintName
2369
+ ? constraintName
2370
+ : this.connection.namingStrategy.primaryKeyName(table, columnNames);
2371
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${primaryKeyName}"`);
2372
+ }
2373
+ /**
2374
+ * Builds create unique constraint sql.
2375
+ */
2376
+ createUniqueConstraintSql(table, uniqueConstraint) {
2377
+ const columnNames = uniqueConstraint.columnNames
2378
+ .map((column) => `"` + column + `"`)
2379
+ .join(", ");
2380
+ let sql = `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${uniqueConstraint.name}" UNIQUE (${columnNames})`;
2381
+ if (uniqueConstraint.deferrable)
2382
+ sql += ` DEFERRABLE ${uniqueConstraint.deferrable}`;
2383
+ return new Query(sql);
2384
+ }
2385
+ /**
2386
+ * Builds drop unique constraint sql.
2387
+ */
2388
+ dropUniqueConstraintSql(table, uniqueOrName) {
2389
+ const uniqueName = InstanceChecker.isTableUnique(uniqueOrName)
2390
+ ? uniqueOrName.name
2391
+ : uniqueOrName;
2392
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${uniqueName}"`);
2393
+ }
2394
+ /**
2395
+ * Builds create check constraint sql.
2396
+ */
2397
+ createCheckConstraintSql(table, checkConstraint) {
2398
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${checkConstraint.name}" CHECK (${checkConstraint.expression})`);
2399
+ }
2400
+ /**
2401
+ * Builds drop check constraint sql.
2402
+ */
2403
+ dropCheckConstraintSql(table, checkOrName) {
2404
+ const checkName = InstanceChecker.isTableCheck(checkOrName)
2405
+ ? checkOrName.name
2406
+ : checkOrName;
2407
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${checkName}"`);
2408
+ }
2409
+ /**
2410
+ * Builds create exclusion constraint sql.
2411
+ */
2412
+ createExclusionConstraintSql(table, exclusionConstraint) {
2413
+ return new Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${exclusionConstraint.name}" EXCLUDE ${exclusionConstraint.expression}`);
2414
+ }
2415
+ /**
2416
+ * Builds drop exclusion constraint sql.
2417
+ */
2418
+ dropExclusionConstraintSql(table, exclusionOrName) {
2419
+ const exclusionName = InstanceChecker.isTableExclusion(exclusionOrName)
2420
+ ? exclusionOrName.name
2421
+ : exclusionOrName;
2422
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${exclusionName}"`);
2423
+ }
2424
+ /**
2425
+ * Builds create foreign key sql.
2426
+ */
2427
+ createForeignKeySql(table, foreignKey) {
2428
+ const columnNames = foreignKey.columnNames
2429
+ .map((column) => `"` + column + `"`)
2430
+ .join(", ");
2431
+ const referencedColumnNames = foreignKey.referencedColumnNames
2432
+ .map((column) => `"` + column + `"`)
2433
+ .join(",");
2434
+ let sql = `ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${foreignKey.name}" FOREIGN KEY (${columnNames}) ` +
2435
+ `REFERENCES ${this.escapePath(this.getTablePath(foreignKey))}(${referencedColumnNames})`;
2436
+ if (foreignKey.onDelete)
2437
+ sql += ` ON DELETE ${foreignKey.onDelete}`;
2438
+ if (foreignKey.onUpdate)
2439
+ sql += ` ON UPDATE ${foreignKey.onUpdate}`;
2440
+ if (foreignKey.deferrable)
2441
+ sql += ` DEFERRABLE ${foreignKey.deferrable}`;
2442
+ return new Query(sql);
2443
+ }
2444
+ /**
2445
+ * Builds drop foreign key sql.
2446
+ */
2447
+ dropForeignKeySql(table, foreignKeyOrName) {
2448
+ const foreignKeyName = InstanceChecker.isTableForeignKey(foreignKeyOrName)
2449
+ ? foreignKeyOrName.name
2450
+ : foreignKeyOrName;
2451
+ return new Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${foreignKeyName}"`);
2452
+ }
2453
+ /**
2454
+ * Builds sequence name from given table and column.
2455
+ */
2456
+ buildSequenceName(table, columnOrName) {
2457
+ const { tableName } = this.driver.parseTableName(table);
2458
+ const columnName = InstanceChecker.isTableColumn(columnOrName)
2459
+ ? columnOrName.name
2460
+ : columnOrName;
2461
+ let seqName = `${tableName}_${columnName}_seq`;
2462
+ if (seqName.length > this.connection.driver.maxAliasLength) {
2463
+ // note doesn't yet handle corner cases where .length differs from number of UTF-8 bytes
2464
+ seqName = `${tableName.substring(0, 29)}_${columnName.substring(0, Math.max(29, 63 - table.name.length - 5))}_seq`;
2465
+ }
2466
+ return seqName;
2467
+ }
2468
+ buildSequencePath(table, columnOrName) {
2469
+ const { schema } = this.driver.parseTableName(table);
2470
+ return schema
2471
+ ? `${schema}.${this.buildSequenceName(table, columnOrName)}`
2472
+ : this.buildSequenceName(table, columnOrName);
2473
+ }
2474
+ /**
2475
+ * Builds ENUM type name from given table and column.
2476
+ */
2477
+ buildEnumName(table, column, withSchema = true, disableEscape, toOld) {
2478
+ const { schema, tableName } = this.driver.parseTableName(table);
2479
+ let enumName = column.enumName
2480
+ ? column.enumName
2481
+ : `${tableName}_${column.name.toLowerCase()}_enum`;
2482
+ if (schema && withSchema)
2483
+ enumName = `${schema}.${enumName}`;
2484
+ if (toOld)
2485
+ enumName = enumName + "_old";
2486
+ return enumName
2487
+ .split(".")
2488
+ .map((i) => {
2489
+ return disableEscape ? i : `"${i}"`;
2490
+ })
2491
+ .join(".");
2492
+ }
2493
+ async getUserDefinedTypeName(table, column) {
2494
+ let { schema, tableName: name } = this.driver.parseTableName(table);
2495
+ if (!schema) {
2496
+ schema = await this.getCurrentSchema();
2497
+ }
2498
+ const result = await this.query(`SELECT "udt_schema", "udt_name" ` +
2499
+ `FROM "information_schema"."columns" WHERE "table_schema" = '${schema}' AND "table_name" = '${name}' AND "column_name"='${column.name}'`);
2500
+ // docs: https://www.postgresql.org/docs/current/xtypes.html
2501
+ // When you define a new base type, PostgreSQL automatically provides support for arrays of that type.
2502
+ // The array type typically has the same name as the base type with the underscore character (_) prepended.
2503
+ // ----
2504
+ // so, we must remove this underscore character from enum type name
2505
+ let udtName = result[0]["udt_name"];
2506
+ if (udtName.indexOf("_") === 0) {
2507
+ udtName = udtName.substr(1, udtName.length);
2508
+ }
2509
+ return {
2510
+ schema: result[0]["udt_schema"],
2511
+ name: udtName,
2512
+ };
2513
+ }
2514
+ /**
2515
+ * Escapes a given comment so it's safe to include in a query.
2516
+ */
2517
+ escapeComment(comment) {
2518
+ if (!comment || comment.length === 0) {
2519
+ return "NULL";
2520
+ }
2521
+ comment = comment.replace(/'/g, "''").replace(/\u0000/g, ""); // Null bytes aren't allowed in comments
2522
+ return `'${comment}'`;
2523
+ }
2524
+ /**
2525
+ * Escapes given table or view path.
2526
+ */
2527
+ escapePath(target) {
2528
+ const { schema, tableName } = this.driver.parseTableName(target);
2529
+ if (schema && schema !== this.driver.searchSchema) {
2530
+ return `"${schema}"."${tableName}"`;
2531
+ }
2532
+ return `"${tableName}"`;
2533
+ }
2534
+ /**
2535
+ * Get the table name with table schema
2536
+ * Note: Without ' or "
2537
+ */
2538
+ async getTableNameWithSchema(target) {
2539
+ const tableName = InstanceChecker.isTable(target) ? target.name : target;
2540
+ if (tableName.indexOf(".") === -1) {
2541
+ const schemaResult = await this.query(`SELECT current_schema()`);
2542
+ const schema = schemaResult[0]["current_schema"];
2543
+ return `${schema}.${tableName}`;
2544
+ }
2545
+ else {
2546
+ return `${tableName.split(".")[0]}.${tableName.split(".")[1]}`;
2547
+ }
2548
+ }
2549
+ /**
2550
+ * Builds a query for create column.
2551
+ */
2552
+ buildCreateColumnSql(table, column) {
2553
+ let c = '"' + column.name + '"';
2554
+ if (column.isGenerated === true &&
2555
+ column.generationStrategy !== "uuid") {
2556
+ if (column.generationStrategy === "identity") {
2557
+ // Postgres 10+ Identity generated column
2558
+ const generatedIdentityOrDefault = column.generatedIdentity || "BY DEFAULT";
2559
+ c += ` ${column.type} GENERATED ${generatedIdentityOrDefault} AS IDENTITY`;
2560
+ }
2561
+ else {
2562
+ // classic SERIAL primary column
2563
+ if (column.type === "integer" ||
2564
+ column.type === "int" ||
2565
+ column.type === "int4")
2566
+ c += " SERIAL";
2567
+ if (column.type === "smallint" || column.type === "int2")
2568
+ c += " SMALLSERIAL";
2569
+ if (column.type === "bigint" || column.type === "int8")
2570
+ c += " BIGSERIAL";
2571
+ }
2572
+ }
2573
+ if (column.type === "enum" || column.type === "simple-enum") {
2574
+ c += " " + this.buildEnumName(table, column);
2575
+ if (column.isArray)
2576
+ c += " array";
2577
+ }
2578
+ else if (!column.isGenerated || column.type === "uuid") {
2579
+ c += " " + this.connection.driver.createFullType(column);
2580
+ }
2581
+ // Postgres only supports the stored generated column type
2582
+ if (column.generatedType === "STORED" && column.asExpression) {
2583
+ c += ` GENERATED ALWAYS AS (${column.asExpression}) STORED`;
2584
+ }
2585
+ if (column.charset)
2586
+ c += ' CHARACTER SET "' + column.charset + '"';
2587
+ if (column.collation)
2588
+ c += ' COLLATE "' + column.collation + '"';
2589
+ if (column.isNullable !== true)
2590
+ c += " NOT NULL";
2591
+ if (column.default !== undefined && column.default !== null)
2592
+ c += " DEFAULT " + column.default;
2593
+ if (column.isGenerated &&
2594
+ column.generationStrategy === "uuid" &&
2595
+ !column.default)
2596
+ c += ` DEFAULT ${this.driver.uuidGenerator}`;
2597
+ return c;
2598
+ }
2599
+ /**
2600
+ * Checks if the PostgreSQL server has support for partitioned tables
2601
+ */
2602
+ async hasSupportForPartitionedTables() {
2603
+ const result = await this.query(`SELECT TRUE FROM information_schema.columns WHERE table_name = 'pg_class' and column_name = 'relispartition'`);
2604
+ return result.length ? true : false;
2605
+ }
2606
+ }
2607
+ //#endregion
2608
+ //# sourceMappingURL=PostgresQueryRunner.js.map