sqlew 5.0.8 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +19 -10
  3. package/dist/adapters/auth/auth-factory.d.ts +2 -81
  4. package/dist/adapters/auth/auth-factory.d.ts.map +1 -1
  5. package/dist/adapters/auth/auth-factory.js +2 -82
  6. package/dist/adapters/auth/auth-factory.js.map +1 -1
  7. package/dist/adapters/auth/base-auth-provider.d.ts +18 -303
  8. package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -1
  9. package/dist/adapters/auth/base-auth-provider.js +2 -104
  10. package/dist/adapters/auth/base-auth-provider.js.map +1 -1
  11. package/dist/adapters/auth/direct-auth-provider.d.ts +4 -348
  12. package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -1
  13. package/dist/adapters/auth/direct-auth-provider.js +6 -356
  14. package/dist/adapters/auth/direct-auth-provider.js.map +1 -1
  15. package/dist/adapters/base-adapter.d.ts +31 -598
  16. package/dist/adapters/base-adapter.d.ts.map +1 -1
  17. package/dist/adapters/base-adapter.js +10 -458
  18. package/dist/adapters/base-adapter.js.map +1 -1
  19. package/dist/adapters/index.d.ts +1 -11
  20. package/dist/adapters/index.d.ts.map +1 -1
  21. package/dist/adapters/index.js +1 -11
  22. package/dist/adapters/index.js.map +1 -1
  23. package/dist/adapters/mysql-adapter.d.ts +15 -541
  24. package/dist/adapters/mysql-adapter.d.ts.map +1 -1
  25. package/dist/adapters/mysql-adapter.js +24 -561
  26. package/dist/adapters/mysql-adapter.js.map +1 -1
  27. package/dist/adapters/postgresql-adapter.d.ts +15 -203
  28. package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
  29. package/dist/adapters/postgresql-adapter.js +24 -223
  30. package/dist/adapters/postgresql-adapter.js.map +1 -1
  31. package/dist/adapters/sqlite-adapter.d.ts +4 -28
  32. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  33. package/dist/adapters/sqlite-adapter.js +4 -32
  34. package/dist/adapters/sqlite-adapter.js.map +1 -1
  35. package/dist/adapters/types.d.ts +1 -4
  36. package/dist/adapters/types.d.ts.map +1 -1
  37. package/dist/backend/backend-factory.d.ts +3 -3
  38. package/dist/backend/backend-factory.js +3 -3
  39. package/dist/backend/local-backend.d.ts.map +1 -1
  40. package/dist/backend/local-backend.js +0 -5
  41. package/dist/backend/local-backend.js.map +1 -1
  42. package/dist/cli/db-export.d.ts.map +1 -1
  43. package/dist/cli/db-export.js +54 -32
  44. package/dist/cli/db-export.js.map +1 -1
  45. package/dist/cli/db-import.d.ts.map +1 -1
  46. package/dist/cli/db-import.js +32 -31
  47. package/dist/cli/db-import.js.map +1 -1
  48. package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -1
  49. package/dist/cli/hooks/on-exit-plan.js +42 -1
  50. package/dist/cli/hooks/on-exit-plan.js.map +1 -1
  51. package/dist/cli/hooks/on-prompt.d.ts.map +1 -1
  52. package/dist/cli/hooks/on-prompt.js +5 -0
  53. package/dist/cli/hooks/on-prompt.js.map +1 -1
  54. package/dist/cli/hooks/plan-processor.d.ts.map +1 -1
  55. package/dist/cli/hooks/plan-processor.js +16 -2
  56. package/dist/cli/hooks/plan-processor.js.map +1 -1
  57. package/dist/cli/hooks/stdin-parser.d.ts +41 -0
  58. package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
  59. package/dist/cli/hooks/stdin-parser.js +140 -4
  60. package/dist/cli/hooks/stdin-parser.js.map +1 -1
  61. package/dist/cli/hooks/track-plan.d.ts +13 -0
  62. package/dist/cli/hooks/track-plan.d.ts.map +1 -1
  63. package/dist/cli/hooks/track-plan.js +58 -3
  64. package/dist/cli/hooks/track-plan.js.map +1 -1
  65. package/dist/cli.d.ts.map +1 -1
  66. package/dist/cli.js +1 -12
  67. package/dist/cli.js.map +1 -1
  68. package/dist/config/cloud-config-loader.d.ts +8 -8
  69. package/dist/config/cloud-config-loader.d.ts.map +1 -1
  70. package/dist/config/cloud-config-loader.js +12 -12
  71. package/dist/config/cloud-config-loader.js.map +1 -1
  72. package/dist/config/global-config.d.ts +24 -46
  73. package/dist/config/global-config.d.ts.map +1 -1
  74. package/dist/config/global-config.js +174 -56
  75. package/dist/config/global-config.js.map +1 -1
  76. package/dist/config/loader.d.ts +1 -18
  77. package/dist/config/loader.d.ts.map +1 -1
  78. package/dist/config/loader.js +1 -89
  79. package/dist/config/loader.js.map +1 -1
  80. package/dist/config/types.d.ts +2 -64
  81. package/dist/config/types.d.ts.map +1 -1
  82. package/dist/config/types.js +0 -18
  83. package/dist/config/types.js.map +1 -1
  84. package/dist/database/index.d.ts +1 -2
  85. package/dist/database/index.d.ts.map +1 -1
  86. package/dist/database/index.js +1 -3
  87. package/dist/database/index.js.map +1 -1
  88. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts.map +1 -1
  89. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js +2 -1
  90. package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js.map +1 -1
  91. package/dist/database/operations/queries.d.ts +0 -4
  92. package/dist/database/operations/queries.d.ts.map +1 -1
  93. package/dist/database/operations/queries.js +0 -8
  94. package/dist/database/operations/queries.js.map +1 -1
  95. package/dist/index.d.ts +1 -1
  96. package/dist/index.js +2 -2
  97. package/dist/index.js.map +1 -1
  98. package/dist/init-rules.d.ts.map +1 -1
  99. package/dist/init-rules.js +0 -1
  100. package/dist/init-rules.js.map +1 -1
  101. package/dist/knexfile.d.ts.map +1 -1
  102. package/dist/knexfile.js +2 -1
  103. package/dist/knexfile.js.map +1 -1
  104. package/dist/migration/local-to-global.d.ts +19 -0
  105. package/dist/migration/local-to-global.d.ts.map +1 -0
  106. package/dist/migration/local-to-global.js +133 -0
  107. package/dist/migration/local-to-global.js.map +1 -0
  108. package/dist/saas-connector/client/types.d.ts +1 -1
  109. package/dist/saas-connector/client/types.d.ts.map +1 -1
  110. package/dist/schema.js +1 -1
  111. package/dist/server/setup.d.ts.map +1 -1
  112. package/dist/server/setup.js +15 -7
  113. package/dist/server/setup.js.map +1 -1
  114. package/dist/tests/backend/backend-factory.test.js +2 -2
  115. package/dist/tests/backend/backend-factory.test.js.map +1 -1
  116. package/dist/tests/docker/native/constraint-operations.test.d.ts +2 -17
  117. package/dist/tests/docker/native/constraint-operations.test.d.ts.map +1 -1
  118. package/dist/tests/docker/native/constraint-operations.test.js +3 -82
  119. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  120. package/dist/tests/docker/native/db-init.d.ts +3 -34
  121. package/dist/tests/docker/native/db-init.d.ts.map +1 -1
  122. package/dist/tests/docker/native/db-init.js +15 -77
  123. package/dist/tests/docker/native/db-init.js.map +1 -1
  124. package/dist/tests/docker/native/decision-operations.test.d.ts +2 -10
  125. package/dist/tests/docker/native/decision-operations.test.d.ts.map +1 -1
  126. package/dist/tests/docker/native/decision-operations.test.js +2 -84
  127. package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
  128. package/dist/tests/docker/native/help-system.test.d.ts +2 -5
  129. package/dist/tests/docker/native/help-system.test.d.ts.map +1 -1
  130. package/dist/tests/docker/native/help-system.test.js +2 -47
  131. package/dist/tests/docker/native/help-system.test.js.map +1 -1
  132. package/dist/tests/docker/native/suggest-tool.test.d.ts +3 -11
  133. package/dist/tests/docker/native/suggest-tool.test.d.ts.map +1 -1
  134. package/dist/tests/docker/native/suggest-tool.test.js +3 -60
  135. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
  136. package/dist/tests/docker/native/test-harness.d.ts +2 -23
  137. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  138. package/dist/tests/docker/native/test-harness.js +5 -59
  139. package/dist/tests/docker/native/test-harness.js.map +1 -1
  140. package/dist/tests/feature/decision/analytics.test.js +2 -1
  141. package/dist/tests/feature/decision/analytics.test.js.map +1 -1
  142. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +2 -7
  143. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
  144. package/dist/tests/feature/decision/batch-validation.test.js +2 -1
  145. package/dist/tests/feature/decision/batch-validation.test.js.map +1 -1
  146. package/dist/tests/integration/auto-trigger-suggestions.test.js +4 -37
  147. package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
  148. package/dist/tests/integration/hybrid-similarity-detection.test.js +2 -1
  149. package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
  150. package/dist/tests/integration/json-export-import.test.d.ts.map +1 -0
  151. package/dist/tests/integration/json-export-import.test.js.map +1 -0
  152. package/dist/tests/unit/case-insensitive-validator.test.d.ts +0 -7
  153. package/dist/tests/unit/case-insensitive-validator.test.d.ts.map +1 -1
  154. package/dist/tests/unit/case-insensitive-validator.test.js +0 -22
  155. package/dist/tests/unit/case-insensitive-validator.test.js.map +1 -1
  156. package/dist/tests/unit/config/cloud-config-loader.test.js +4 -2
  157. package/dist/tests/unit/config/cloud-config-loader.test.js.map +1 -1
  158. package/dist/tests/unit/config/global-db-migration.test.d.ts +12 -0
  159. package/dist/tests/unit/config/global-db-migration.test.d.ts.map +1 -0
  160. package/dist/tests/unit/config/global-db-migration.test.js +117 -0
  161. package/dist/tests/unit/config/global-db-migration.test.js.map +1 -0
  162. package/dist/tests/unit/constraint-scorer.test.d.ts +2 -7
  163. package/dist/tests/unit/constraint-scorer.test.d.ts.map +1 -1
  164. package/dist/tests/unit/constraint-scorer.test.js +2 -28
  165. package/dist/tests/unit/constraint-scorer.test.js.map +1 -1
  166. package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts +9 -0
  167. package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts.map +1 -0
  168. package/dist/tests/unit/hooks/grok-hook-normalization.test.js +98 -0
  169. package/dist/tests/unit/hooks/grok-hook-normalization.test.js.map +1 -0
  170. package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts +7 -0
  171. package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts.map +1 -0
  172. package/dist/tests/unit/hooks/grok-plan-template-injection.test.js +55 -0
  173. package/dist/tests/unit/hooks/grok-plan-template-injection.test.js.map +1 -0
  174. package/dist/tests/unit/universal-knex.test.js +9 -0
  175. package/dist/tests/unit/universal-knex.test.js.map +1 -1
  176. package/dist/tests/unit/validation/parameter-validation.test.js +0 -24
  177. package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
  178. package/dist/tests/utils/db-config.d.ts.map +1 -1
  179. package/dist/tests/utils/db-config.js +0 -9
  180. package/dist/tests/utils/db-config.js.map +1 -1
  181. package/dist/tests/utils/db-import.d.ts.map +1 -1
  182. package/dist/tests/utils/db-import.js +0 -3
  183. package/dist/tests/utils/db-import.js.map +1 -1
  184. package/dist/tests/utils/db-schema.d.ts.map +1 -1
  185. package/dist/tests/utils/db-schema.js +48 -51
  186. package/dist/tests/utils/db-schema.js.map +1 -1
  187. package/dist/tests/utils/db-seeding.d.ts.map +1 -1
  188. package/dist/tests/utils/db-seeding.js +0 -3
  189. package/dist/tests/utils/db-seeding.js.map +1 -1
  190. package/dist/tests/utils/index.d.ts +0 -1
  191. package/dist/tests/utils/index.d.ts.map +1 -1
  192. package/dist/tests/utils/index.js +0 -2
  193. package/dist/tests/utils/index.js.map +1 -1
  194. package/dist/tests/utils/test-helpers.d.ts +6 -76
  195. package/dist/tests/utils/test-helpers.d.ts.map +1 -1
  196. package/dist/tests/utils/test-helpers.js +56 -162
  197. package/dist/tests/utils/test-helpers.js.map +1 -1
  198. package/dist/tests/utils/test-lifecycle.d.ts +2 -28
  199. package/dist/tests/utils/test-lifecycle.d.ts.map +1 -1
  200. package/dist/tests/utils/test-lifecycle.js +2 -31
  201. package/dist/tests/utils/test-lifecycle.js.map +1 -1
  202. package/dist/tools/context/index.d.ts +0 -1
  203. package/dist/tools/context/index.d.ts.map +1 -1
  204. package/dist/tools/context/index.js +0 -2
  205. package/dist/tools/context/index.js.map +1 -1
  206. package/dist/tools/context/types.d.ts +1 -1
  207. package/dist/tools/context/types.d.ts.map +1 -1
  208. package/dist/types/actions.d.ts +6 -29
  209. package/dist/types/actions.d.ts.map +1 -1
  210. package/dist/types/actions.js +1 -2
  211. package/dist/types/actions.js.map +1 -1
  212. package/dist/types/constraint/params.d.ts +24 -1
  213. package/dist/types/constraint/params.d.ts.map +1 -1
  214. package/dist/types/constraint/params.js +3 -0
  215. package/dist/types/constraint/params.js.map +1 -1
  216. package/dist/types/constraint/responses.d.ts +18 -1
  217. package/dist/types/constraint/responses.d.ts.map +1 -1
  218. package/dist/types/constraint/responses.js +3 -0
  219. package/dist/types/constraint/responses.js.map +1 -1
  220. package/dist/types/decision/batch.d.ts +2 -5
  221. package/dist/types/decision/batch.d.ts.map +1 -1
  222. package/dist/types/decision/batch.js +3 -3
  223. package/dist/types/decision/batch.js.map +1 -1
  224. package/dist/types/decision/params.d.ts +7 -4
  225. package/dist/types/decision/params.d.ts.map +1 -1
  226. package/dist/types/decision/responses.d.ts +49 -35
  227. package/dist/types/decision/responses.d.ts.map +1 -1
  228. package/dist/types/decision/templates.d.ts +2 -18
  229. package/dist/types/decision/templates.d.ts.map +1 -1
  230. package/dist/types/decision/templates.js +3 -3
  231. package/dist/types/decision/templates.js.map +1 -1
  232. package/dist/types/enums.d.ts +11 -13
  233. package/dist/types/enums.d.ts.map +1 -1
  234. package/dist/types/enums.js +5 -13
  235. package/dist/types/enums.js.map +1 -1
  236. package/dist/types/import-export.d.ts +7 -30
  237. package/dist/types/import-export.d.ts.map +1 -1
  238. package/dist/types/import-export.js +1 -2
  239. package/dist/types/import-export.js.map +1 -1
  240. package/dist/types/index.d.ts +18 -22
  241. package/dist/types/index.d.ts.map +1 -1
  242. package/dist/types/index.js +4 -32
  243. package/dist/types/index.js.map +1 -1
  244. package/dist/types/master-entities.d.ts +1 -10
  245. package/dist/types/master-entities.d.ts.map +1 -1
  246. package/dist/types/master-entities.js +1 -2
  247. package/dist/types/master-entities.js.map +1 -1
  248. package/dist/types/transaction-entities.d.ts +2 -21
  249. package/dist/types/transaction-entities.d.ts.map +1 -1
  250. package/dist/types/transaction-entities.js +1 -1
  251. package/dist/types/validation.d.ts +1 -16
  252. package/dist/types/validation.d.ts.map +1 -1
  253. package/dist/types/validation.js +1 -2
  254. package/dist/types/validation.js.map +1 -1
  255. package/dist/types/view-entities.d.ts +3 -12
  256. package/dist/types/view-entities.d.ts.map +1 -1
  257. package/dist/types/view-entities.js +1 -1
  258. package/dist/types.d.ts +4 -718
  259. package/dist/types.d.ts.map +1 -1
  260. package/dist/types.js +5 -39
  261. package/dist/types.js.map +1 -1
  262. package/dist/utils/parameter-validator.d.ts +2 -2
  263. package/dist/utils/parameter-validator.d.ts.map +1 -1
  264. package/dist/utils/parameter-validator.js.map +1 -1
  265. package/dist/utils/path-normalize.d.ts +23 -0
  266. package/dist/utils/path-normalize.d.ts.map +1 -0
  267. package/dist/utils/path-normalize.js +38 -0
  268. package/dist/utils/path-normalize.js.map +1 -0
  269. package/dist/utils/project-root.d.ts +6 -3
  270. package/dist/utils/project-root.d.ts.map +1 -1
  271. package/dist/utils/project-root.js +11 -3
  272. package/dist/utils/project-root.js.map +1 -1
  273. package/dist/watcher/base-watcher.d.ts +0 -4
  274. package/dist/watcher/base-watcher.d.ts.map +1 -1
  275. package/dist/watcher/base-watcher.js +11 -22
  276. package/dist/watcher/base-watcher.js.map +1 -1
  277. package/docs/CLI_USAGE.md +27 -107
  278. package/docs/CONFIGURATION.md +10 -5
  279. package/docs/DATABASE_AUTH.md +3 -3
  280. package/docs/HOOKS_GUIDE.md +40 -6
  281. package/docs/MIGRATION_TO_SAAS.md +2 -2
  282. package/docs/SHARED_DATABASE.md +108 -0
  283. package/package.json +4 -3
  284. package/dist/adapters/auth/auth-types.d.ts +0 -30
  285. package/dist/adapters/auth/auth-types.d.ts.map +0 -1
  286. package/dist/adapters/auth/auth-types.js +0 -30
  287. package/dist/adapters/auth/auth-types.js.map +0 -1
  288. package/dist/cli/db-dump.d.ts +0 -36
  289. package/dist/cli/db-dump.d.ts.map +0 -1
  290. package/dist/cli/db-dump.js +0 -384
  291. package/dist/cli/db-dump.js.map +0 -1
  292. package/dist/database/config/config-ops.d.ts +0 -42
  293. package/dist/database/config/config-ops.d.ts.map +0 -1
  294. package/dist/database/config/config-ops.js +0 -102
  295. package/dist/database/config/config-ops.js.map +0 -1
  296. package/dist/formatters/adr-formatter.d.ts +0 -22
  297. package/dist/formatters/adr-formatter.d.ts.map +0 -1
  298. package/dist/formatters/adr-formatter.js +0 -127
  299. package/dist/formatters/adr-formatter.js.map +0 -1
  300. package/dist/formatters/confluence-formatter.d.ts +0 -26
  301. package/dist/formatters/confluence-formatter.d.ts.map +0 -1
  302. package/dist/formatters/confluence-formatter.js +0 -129
  303. package/dist/formatters/confluence-formatter.js.map +0 -1
  304. package/dist/formatters/index.d.ts +0 -34
  305. package/dist/formatters/index.d.ts.map +0 -1
  306. package/dist/formatters/index.js +0 -57
  307. package/dist/formatters/index.js.map +0 -1
  308. package/dist/formatters/markdown-formatter.d.ts +0 -16
  309. package/dist/formatters/markdown-formatter.d.ts.map +0 -1
  310. package/dist/formatters/markdown-formatter.js +0 -110
  311. package/dist/formatters/markdown-formatter.js.map +0 -1
  312. package/dist/formatters/notion-formatter.d.ts +0 -29
  313. package/dist/formatters/notion-formatter.d.ts.map +0 -1
  314. package/dist/formatters/notion-formatter.js +0 -177
  315. package/dist/formatters/notion-formatter.js.map +0 -1
  316. package/dist/formatters/types.d.ts +0 -31
  317. package/dist/formatters/types.d.ts.map +0 -1
  318. package/dist/formatters/types.js +0 -6
  319. package/dist/formatters/types.js.map +0 -1
  320. package/dist/tests/database/sql-dump/converters.test.d.ts +0 -7
  321. package/dist/tests/database/sql-dump/converters.test.d.ts.map +0 -1
  322. package/dist/tests/database/sql-dump/converters.test.js +0 -314
  323. package/dist/tests/database/sql-dump/converters.test.js.map +0 -1
  324. package/dist/tests/database/sql-dump/default-conversions.test.d.ts +0 -8
  325. package/dist/tests/database/sql-dump/default-conversions.test.d.ts.map +0 -1
  326. package/dist/tests/database/sql-dump/default-conversions.test.js +0 -141
  327. package/dist/tests/database/sql-dump/default-conversions.test.js.map +0 -1
  328. package/dist/tests/database/sql-dump/table-ordering.test.d.ts +0 -27
  329. package/dist/tests/database/sql-dump/table-ordering.test.d.ts.map +0 -1
  330. package/dist/tests/database/sql-dump/table-ordering.test.js +0 -284
  331. package/dist/tests/database/sql-dump/table-ordering.test.js.map +0 -1
  332. package/dist/tests/database/sql-dump/type-conversion.test.d.ts +0 -8
  333. package/dist/tests/database/sql-dump/type-conversion.test.d.ts.map +0 -1
  334. package/dist/tests/database/sql-dump/type-conversion.test.js +0 -361
  335. package/dist/tests/database/sql-dump/type-conversion.test.js.map +0 -1
  336. package/dist/tests/docker/cross-database.test.d.ts +0 -21
  337. package/dist/tests/docker/cross-database.test.d.ts.map +0 -1
  338. package/dist/tests/docker/cross-database.test.js +0 -308
  339. package/dist/tests/docker/cross-database.test.js.map +0 -1
  340. package/dist/tests/docker/dump-import.test.d.ts +0 -15
  341. package/dist/tests/docker/dump-import.test.d.ts.map +0 -1
  342. package/dist/tests/docker/dump-import.test.js +0 -424
  343. package/dist/tests/docker/dump-import.test.js.map +0 -1
  344. package/dist/tests/docker/fk-constraints.test.d.ts +0 -13
  345. package/dist/tests/docker/fk-constraints.test.d.ts.map +0 -1
  346. package/dist/tests/docker/fk-constraints.test.js +0 -381
  347. package/dist/tests/docker/fk-constraints.test.js.map +0 -1
  348. package/dist/tests/docker/indexes.test.d.ts +0 -12
  349. package/dist/tests/docker/indexes.test.d.ts.map +0 -1
  350. package/dist/tests/docker/indexes.test.js +0 -250
  351. package/dist/tests/docker/indexes.test.js.map +0 -1
  352. package/dist/tests/docker/integration.test.d.ts +0 -16
  353. package/dist/tests/docker/integration.test.d.ts.map +0 -1
  354. package/dist/tests/docker/integration.test.js +0 -323
  355. package/dist/tests/docker/integration.test.js.map +0 -1
  356. package/dist/tests/docker/multi-project-migration.test.d.ts +0 -17
  357. package/dist/tests/docker/multi-project-migration.test.d.ts.map +0 -1
  358. package/dist/tests/docker/multi-project-migration.test.js +0 -394
  359. package/dist/tests/docker/multi-project-migration.test.js.map +0 -1
  360. package/dist/tests/docker/schema-migration.test.d.ts +0 -8
  361. package/dist/tests/docker/schema-migration.test.d.ts.map +0 -1
  362. package/dist/tests/docker/schema-migration.test.js +0 -98
  363. package/dist/tests/docker/schema-migration.test.js.map +0 -1
  364. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts +0 -5
  365. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts.map +0 -1
  366. package/dist/tests/integration/e2e-workflow1-debug.test.js +0 -85
  367. package/dist/tests/integration/e2e-workflow1-debug.test.js.map +0 -1
  368. package/dist/tests/integration/suggest-simple.test.d.ts +0 -5
  369. package/dist/tests/integration/suggest-simple.test.d.ts.map +0 -1
  370. package/dist/tests/integration/suggest-simple.test.js +0 -90
  371. package/dist/tests/integration/suggest-simple.test.js.map +0 -1
  372. package/dist/tests/migrations/test-all-versions-real.d.ts +0 -8
  373. package/dist/tests/migrations/test-all-versions-real.d.ts.map +0 -1
  374. package/dist/tests/migrations/test-all-versions-real.js +0 -236
  375. package/dist/tests/migrations/test-all-versions-real.js.map +0 -1
  376. package/dist/tests/migrations/test-all-versions.d.ts +0 -14
  377. package/dist/tests/migrations/test-all-versions.d.ts.map +0 -1
  378. package/dist/tests/migrations/test-all-versions.js +0 -519
  379. package/dist/tests/migrations/test-all-versions.js.map +0 -1
  380. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts +0 -7
  381. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts.map +0 -1
  382. package/dist/tests/migrations/v4/v4-fresh-install.test.js +0 -168
  383. package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +0 -1
  384. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts +0 -13
  385. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts.map +0 -1
  386. package/dist/tests/migrations/v4/v4-migrate-data.test.js +0 -264
  387. package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +0 -1
  388. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts +0 -2
  389. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts.map +0 -1
  390. package/dist/tests/unit/utils/case-insensitive-validator.test.js +0 -97
  391. package/dist/tests/unit/utils/case-insensitive-validator.test.js.map +0 -1
  392. package/dist/tests/utils/json-export-import.test.d.ts.map +0 -1
  393. package/dist/tests/utils/json-export-import.test.js.map +0 -1
  394. package/dist/tests/utils/task-helpers.d.ts +0 -67
  395. package/dist/tests/utils/task-helpers.d.ts.map +0 -1
  396. package/dist/tests/utils/task-helpers.js +0 -134
  397. package/dist/tests/utils/task-helpers.js.map +0 -1
  398. package/dist/tools/context/actions/export.d.ts +0 -35
  399. package/dist/tools/context/actions/export.d.ts.map +0 -1
  400. package/dist/tools/context/actions/export.js +0 -93
  401. package/dist/tools/context/actions/export.js.map +0 -1
  402. package/dist/types/file/params.d.ts +0 -40
  403. package/dist/types/file/params.d.ts.map +0 -1
  404. package/dist/types/file/params.js +0 -6
  405. package/dist/types/file/params.js.map +0 -1
  406. package/dist/types/file/responses.d.ts +0 -2
  407. package/dist/types/file/responses.d.ts.map +0 -1
  408. package/dist/types/file/responses.js +0 -2
  409. package/dist/types/file/responses.js.map +0 -1
  410. package/dist/types/task/params.d.ts +0 -173
  411. package/dist/types/task/params.d.ts.map +0 -1
  412. package/dist/types/task/params.js +0 -8
  413. package/dist/types/task/params.js.map +0 -1
  414. package/dist/types/task/responses.d.ts +0 -334
  415. package/dist/types/task/responses.d.ts.map +0 -1
  416. package/dist/types/task/responses.js +0 -8
  417. package/dist/types/task/responses.js.map +0 -1
  418. package/dist/utils/sql-dump/core/dependency-sort.d.ts +0 -16
  419. package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +0 -1
  420. package/dist/utils/sql-dump/core/dependency-sort.js +0 -105
  421. package/dist/utils/sql-dump/core/dependency-sort.js.map +0 -1
  422. package/dist/utils/sql-dump/core/generate-dump.d.ts +0 -13
  423. package/dist/utils/sql-dump/core/generate-dump.d.ts.map +0 -1
  424. package/dist/utils/sql-dump/core/generate-dump.js +0 -201
  425. package/dist/utils/sql-dump/core/generate-dump.js.map +0 -1
  426. package/dist/utils/sql-dump/core/index-export.d.ts +0 -10
  427. package/dist/utils/sql-dump/core/index-export.d.ts.map +0 -1
  428. package/dist/utils/sql-dump/core/index-export.js +0 -173
  429. package/dist/utils/sql-dump/core/index-export.js.map +0 -1
  430. package/dist/utils/sql-dump/core/sequence-reset.d.ts +0 -6
  431. package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +0 -1
  432. package/dist/utils/sql-dump/core/sequence-reset.js +0 -28
  433. package/dist/utils/sql-dump/core/sequence-reset.js.map +0 -1
  434. package/dist/utils/sql-dump/core/table-export.d.ts +0 -2
  435. package/dist/utils/sql-dump/core/table-export.d.ts.map +0 -1
  436. package/dist/utils/sql-dump/core/table-export.js +0 -4
  437. package/dist/utils/sql-dump/core/table-export.js.map +0 -1
  438. package/dist/utils/sql-dump/core/view-export.d.ts +0 -2
  439. package/dist/utils/sql-dump/core/view-export.d.ts.map +0 -1
  440. package/dist/utils/sql-dump/core/view-export.js +0 -4
  441. package/dist/utils/sql-dump/core/view-export.js.map +0 -1
  442. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +0 -14
  443. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +0 -1
  444. package/dist/utils/sql-dump/formatters/bulk-insert.js +0 -177
  445. package/dist/utils/sql-dump/formatters/bulk-insert.js.map +0 -1
  446. package/dist/utils/sql-dump/formatters/identifiers.d.ts +0 -6
  447. package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +0 -1
  448. package/dist/utils/sql-dump/formatters/identifiers.js +0 -16
  449. package/dist/utils/sql-dump/formatters/identifiers.js.map +0 -1
  450. package/dist/utils/sql-dump/formatters/value-formatter.d.ts +0 -14
  451. package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +0 -1
  452. package/dist/utils/sql-dump/formatters/value-formatter.js +0 -281
  453. package/dist/utils/sql-dump/formatters/value-formatter.js.map +0 -1
  454. package/dist/utils/sql-dump/generators/controls.d.ts +0 -10
  455. package/dist/utils/sql-dump/generators/controls.d.ts.map +0 -1
  456. package/dist/utils/sql-dump/generators/controls.js +0 -36
  457. package/dist/utils/sql-dump/generators/controls.js.map +0 -1
  458. package/dist/utils/sql-dump/generators/headers.d.ts +0 -6
  459. package/dist/utils/sql-dump/generators/headers.d.ts.map +0 -1
  460. package/dist/utils/sql-dump/generators/headers.js +0 -19
  461. package/dist/utils/sql-dump/generators/headers.js.map +0 -1
  462. package/dist/utils/sql-dump/index.d.ts +0 -14
  463. package/dist/utils/sql-dump/index.d.ts.map +0 -1
  464. package/dist/utils/sql-dump/index.js +0 -16
  465. package/dist/utils/sql-dump/index.js.map +0 -1
  466. package/dist/utils/sql-dump/schema/indexes.d.ts +0 -20
  467. package/dist/utils/sql-dump/schema/indexes.d.ts.map +0 -1
  468. package/dist/utils/sql-dump/schema/indexes.js +0 -108
  469. package/dist/utils/sql-dump/schema/indexes.js.map +0 -1
  470. package/dist/utils/sql-dump/schema/primary-keys.d.ts +0 -6
  471. package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +0 -1
  472. package/dist/utils/sql-dump/schema/primary-keys.js +0 -41
  473. package/dist/utils/sql-dump/schema/primary-keys.js.map +0 -1
  474. package/dist/utils/sql-dump/schema/tables.d.ts +0 -15
  475. package/dist/utils/sql-dump/schema/tables.d.ts.map +0 -1
  476. package/dist/utils/sql-dump/schema/tables.js +0 -518
  477. package/dist/utils/sql-dump/schema/tables.js.map +0 -1
  478. package/dist/utils/sql-dump/schema/views.d.ts +0 -11
  479. package/dist/utils/sql-dump/schema/views.d.ts.map +0 -1
  480. package/dist/utils/sql-dump/schema/views.js +0 -116
  481. package/dist/utils/sql-dump/schema/views.js.map +0 -1
  482. package/dist/utils/sql-dump/types.d.ts +0 -10
  483. package/dist/utils/sql-dump/types.d.ts.map +0 -1
  484. package/dist/utils/sql-dump/types.js +0 -3
  485. package/dist/utils/sql-dump/types.js.map +0 -1
  486. package/dist/utils/sql-dump-converters.d.ts +0 -188
  487. package/dist/utils/sql-dump-converters.d.ts.map +0 -1
  488. package/dist/utils/sql-dump-converters.js +0 -315
  489. package/dist/utils/sql-dump-converters.js.map +0 -1
  490. package/dist/watcher/gitignore-parser.d.ts +0 -70
  491. package/dist/watcher/gitignore-parser.d.ts.map +0 -1
  492. package/dist/watcher/gitignore-parser.js +0 -195
  493. package/dist/watcher/gitignore-parser.js.map +0 -1
  494. package/dist/watcher/index.d.ts +0 -9
  495. package/dist/watcher/index.d.ts.map +0 -1
  496. package/dist/watcher/index.js +0 -8
  497. package/dist/watcher/index.js.map +0 -1
  498. /package/dist/tests/{utils → integration}/json-export-import.test.d.ts +0 -0
  499. /package/dist/tests/{utils → integration}/json-export-import.test.js +0 -0
@@ -1,518 +0,0 @@
1
- // schema/tables.ts - Table detection and CREATE TABLE statement generation
2
- import { SchemaInspector } from 'knex-schema-inspector';
3
- import { quoteIdentifier } from '../formatters/identifiers.js';
4
- import { debugLog } from '../../debug-logger.js';
5
- /**
6
- * Convert data type from source format to target format using metadata
7
- */
8
- function convertDataType(columnType, targetFormat, maxLength) {
9
- const upperType = columnType.toUpperCase();
10
- if (targetFormat === 'mysql') {
11
- // MySQL-specific conversions
12
- if (upperType.includes('SERIAL') || upperType.includes('BIGSERIAL')) {
13
- return 'BIGINT AUTO_INCREMENT';
14
- }
15
- if (upperType.includes('TEXT')) {
16
- return 'TEXT';
17
- }
18
- if (upperType.includes('VARCHAR')) {
19
- // Use maxLength from metadata
20
- const length = maxLength && maxLength <= 191 ? maxLength : 191;
21
- return `VARCHAR(${length})`;
22
- }
23
- if (upperType.includes('TIMESTAMP') || upperType.includes('TIMESTAMPTZ')) {
24
- return 'DATETIME';
25
- }
26
- if (upperType.includes('BOOLEAN') || upperType === 'BOOL') {
27
- return 'TINYINT(1)';
28
- }
29
- if (upperType === 'INTEGER' || upperType === 'INT') {
30
- return 'INT';
31
- }
32
- if (upperType.includes('BIGINT')) {
33
- return 'BIGINT';
34
- }
35
- }
36
- else if (targetFormat === 'postgresql') {
37
- // PostgreSQL-specific conversions
38
- if (upperType.includes('AUTOINCREMENT') || upperType.includes('AUTO_INCREMENT')) {
39
- return 'SERIAL';
40
- }
41
- if (upperType.includes('DATETIME')) {
42
- return 'TIMESTAMP';
43
- }
44
- if (upperType.includes('TINYINT') || upperType === 'BIT') {
45
- return 'BOOLEAN';
46
- }
47
- if (upperType.includes('TEXT')) {
48
- return 'TEXT';
49
- }
50
- if (upperType.includes('VARCHAR')) {
51
- const length = maxLength || 255;
52
- return `VARCHAR(${length})`;
53
- }
54
- }
55
- else if (targetFormat === 'sqlite') {
56
- // SQLite-specific conversions
57
- if (upperType.includes('SERIAL') || upperType.includes('AUTO_INCREMENT') || upperType.includes('AUTOINCREMENT')) {
58
- return 'INTEGER';
59
- }
60
- if (upperType.includes('VARCHAR') || upperType.includes('TEXT')) {
61
- return 'TEXT';
62
- }
63
- if (upperType.includes('TINYINT') || upperType.includes('BOOLEAN')) {
64
- return 'INTEGER';
65
- }
66
- if (upperType.includes('DATETIME') || upperType.includes('TIMESTAMP')) {
67
- return 'INTEGER'; // SQLite stores as Unix timestamp
68
- }
69
- }
70
- // Default: return as-is
71
- return columnType;
72
- }
73
- /**
74
- * Convert default value from SQLite functions to target format
75
- * Handles: unixepoch() → UNIX_TIMESTAMP() / EXTRACT(epoch FROM NOW())
76
- * strftime() → DATE_FORMAT() / TO_CHAR()
77
- *
78
- * PostgreSQL-specific: Skip nextval() sequences (auto-increment, should use SERIAL)
79
- */
80
- function convertDefaultValue(defaultValue, targetFormat) {
81
- if (!defaultValue) {
82
- return null;
83
- }
84
- const lower = defaultValue.toLowerCase().trim();
85
- // PostgreSQL: Skip nextval() sequences (SERIAL columns handle auto-increment)
86
- // Example: nextval('table_id_seq'::regclass)
87
- if (lower.includes('nextval')) {
88
- return null; // Skip DEFAULT - column should use SERIAL type instead
89
- }
90
- // SQLite unixepoch() conversions
91
- if (lower.includes('unixepoch()') || lower === 'unixepoch()') {
92
- if (targetFormat === 'mysql') {
93
- // MySQL 8.0+: Use CAST to explicitly convert UNIX_TIMESTAMP() to SIGNED INTEGER
94
- // Wrapped in parentheses for expression syntax
95
- return '(CAST(UNIX_TIMESTAMP() AS SIGNED))';
96
- }
97
- else if (targetFormat === 'postgresql') {
98
- return 'EXTRACT(epoch FROM NOW())::INTEGER';
99
- }
100
- return null; // Remove for SQLite
101
- }
102
- // SQLite strftime('%s', 'now') - Unix timestamp (INTEGER)
103
- // Must check BEFORE generic strftime to handle this specific case
104
- if (lower.includes("strftime('%s'") || lower.includes('strftime("%s"')) {
105
- if (targetFormat === 'mysql') {
106
- // MySQL 8.0+: Use CAST to explicitly convert UNIX_TIMESTAMP() to SIGNED INTEGER
107
- // Wrapped in parentheses for expression syntax
108
- return '(CAST(UNIX_TIMESTAMP() AS SIGNED))';
109
- }
110
- else if (targetFormat === 'postgresql') {
111
- return 'EXTRACT(epoch FROM NOW())::INTEGER';
112
- }
113
- return null;
114
- }
115
- // MySQL UNIX_TIMESTAMP() - already MySQL syntax, needs CAST wrapping
116
- // Match both "unix_timestamp()" and "UNIX_TIMESTAMP()" case-insensitively
117
- if (lower.includes('unix_timestamp')) {
118
- if (targetFormat === 'mysql') {
119
- // MySQL 8.0+: Wrap UNIX_TIMESTAMP() with CAST for type safety
120
- return '(CAST(UNIX_TIMESTAMP() AS SIGNED))';
121
- }
122
- else if (targetFormat === 'postgresql') {
123
- return 'EXTRACT(epoch FROM NOW())::INTEGER';
124
- }
125
- else if (targetFormat === 'sqlite') {
126
- return 'unixepoch()';
127
- }
128
- return null;
129
- }
130
- // SQLite strftime conversions (datetime formats)
131
- if (lower.includes('strftime')) {
132
- if (targetFormat === 'mysql') {
133
- // strftime('%Y-%m-%d %H:%M:%S', 'now') → NOW()
134
- return 'NOW()';
135
- }
136
- else if (targetFormat === 'postgresql') {
137
- return 'NOW()';
138
- }
139
- return null;
140
- }
141
- // Remove parentheses for simple values
142
- let cleanValue = defaultValue;
143
- if (lower.startsWith('(') && lower.endsWith(')')) {
144
- cleanValue = defaultValue.substring(1, defaultValue.length - 1);
145
- }
146
- // For numeric defaults, normalize floating point values
147
- // Remove trailing .0 (e.g., 1.0 → 1) to avoid type mismatches
148
- const trimmed = cleanValue.trim();
149
- if (/^\d+\.0+$/.test(trimmed)) {
150
- return trimmed.replace(/\.0+$/, '');
151
- }
152
- // Quote string literals if not already quoted and not a number
153
- if (!/^['"]/.test(trimmed) && !/^-?\d+(\.\d+)?$/.test(trimmed) && !/^(true|false|null|current_timestamp|now\(\)|unix_timestamp\(\))$/i.test(trimmed)) {
154
- return `'${trimmed}'`;
155
- }
156
- return trimmed;
157
- }
158
- /**
159
- * Build column definition from Column metadata
160
- */
161
- function buildColumnDefinition(col, targetFormat) {
162
- const quotedName = quoteIdentifier(col.name, targetFormat);
163
- let dataType = convertDataType(col.data_type, targetFormat, col.max_length);
164
- // MySQL: TEXT columns cannot be used in UNIQUE/PRIMARY KEY constraints without prefix length
165
- // Convert TEXT to VARCHAR(191) for utf8mb4 compatibility (768 bytes ÷ 4 bytes/char = 191)
166
- if (targetFormat === 'mysql' && dataType.toUpperCase() === 'TEXT') {
167
- if (col.is_unique || col.is_primary_key || col.foreign_key_table || col.in_composite_unique) {
168
- dataType = 'VARCHAR(191)';
169
- }
170
- }
171
- let def = `${quotedName} ${dataType}`;
172
- // Handle NOT NULL constraint
173
- if (col.is_nullable === false) {
174
- def += ' NOT NULL';
175
- }
176
- // Handle DEFAULT value
177
- if (col.default_value !== null && col.default_value !== undefined) {
178
- let convertedDefault = convertDefaultValue(String(col.default_value), targetFormat);
179
- if (convertedDefault !== null && convertedDefault !== '') {
180
- // MySQL restrictions for DEFAULT values
181
- const isTextColumn = dataType.toUpperCase().includes('TEXT') || dataType.toUpperCase().includes('BLOB');
182
- const isFunctionCall = convertedDefault.includes('(') && convertedDefault.includes(')');
183
- const isIntegerColumn = dataType.toUpperCase().includes('INT');
184
- const isBooleanColumn = dataType.toUpperCase().includes('BOOLEAN');
185
- // PostgreSQL: Convert integer defaults to boolean for BOOLEAN columns
186
- if (targetFormat === 'postgresql' && isBooleanColumn && /^[01]$/.test(convertedDefault)) {
187
- convertedDefault = convertedDefault === '1' ? 'TRUE' : 'FALSE';
188
- }
189
- if (targetFormat === 'mysql') {
190
- // MySQL doesn't allow DEFAULT on TEXT/BLOB columns
191
- if (isTextColumn) {
192
- // Skip DEFAULT - application must handle at runtime
193
- }
194
- // MySQL DOES support certain function calls as DEFAULT for INTEGER columns
195
- // (e.g., UNIX_TIMESTAMP(), CURRENT_TIMESTAMP)
196
- // Only skip if conversion returned null (meaning function not supported)
197
- else {
198
- def += ` DEFAULT ${convertedDefault}`;
199
- }
200
- }
201
- else {
202
- def += ` DEFAULT ${convertedDefault}`;
203
- }
204
- }
205
- }
206
- // Handle AUTO_INCREMENT for MySQL
207
- // SQLite source: INTEGER PRIMARY KEY columns are implicitly auto-increment
208
- const isIntegerPrimaryKey = col.is_primary_key &&
209
- (col.data_type.toUpperCase().includes('INTEGER') || col.data_type.toUpperCase() === 'INT');
210
- const isAutoIncrement = col.is_generated || isIntegerPrimaryKey;
211
- if (targetFormat === 'mysql' && isAutoIncrement && col.generation_expression === null) {
212
- if (!def.includes('AUTO_INCREMENT')) {
213
- def += ' AUTO_INCREMENT';
214
- }
215
- }
216
- // Handle SERIAL for PostgreSQL (when source is MySQL/SQLite with auto-increment)
217
- // SERIAL = INTEGER + AUTO_INCREMENT sequence
218
- if (targetFormat === 'postgresql' && isAutoIncrement && col.generation_expression === null) {
219
- // Replace INT/INTEGER/BIGINT with SERIAL/BIGSERIAL
220
- if (!def.includes('SERIAL')) {
221
- if (dataType.toUpperCase() === 'BIGINT') {
222
- def = def.replace(/BIGINT/i, 'BIGSERIAL');
223
- }
224
- else if (dataType.toUpperCase() === 'INT' || dataType.toUpperCase() === 'INTEGER') {
225
- def = def.replace(/\bINT(EGER)?\b/i, 'SERIAL');
226
- }
227
- }
228
- }
229
- // Handle UNIQUE constraint (skip if already PRIMARY KEY)
230
- if (col.is_unique && !col.is_primary_key) {
231
- def += ' UNIQUE';
232
- }
233
- return def;
234
- }
235
- /**
236
- * Build FOREIGN KEY definition from ForeignKey metadata
237
- * Supports both single-column and composite (multi-column) foreign keys
238
- */
239
- function buildForeignKeyDefinition(fk, targetFormat) {
240
- // Handle both single column (string) and composite (array) foreign keys
241
- const columns = Array.isArray(fk.column) ? fk.column : [fk.column];
242
- const foreignColumns = Array.isArray(fk.foreign_key_column) ? fk.foreign_key_column : [fk.foreign_key_column];
243
- const quotedColumns = columns.map(col => quoteIdentifier(col, targetFormat)).join(', ');
244
- const quotedForeignTable = quoteIdentifier(fk.foreign_key_table, targetFormat);
245
- const quotedForeignColumns = foreignColumns.map(col => quoteIdentifier(col, targetFormat)).join(', ');
246
- let fkDef = `FOREIGN KEY (${quotedColumns}) REFERENCES ${quotedForeignTable}(${quotedForeignColumns})`;
247
- // Add ON DELETE clause
248
- if (fk.on_delete && fk.on_delete !== 'NO ACTION') {
249
- fkDef += ` ON DELETE ${fk.on_delete}`;
250
- }
251
- // Add ON UPDATE clause
252
- if (fk.on_update && fk.on_update !== 'NO ACTION') {
253
- fkDef += ` ON UPDATE ${fk.on_update}`;
254
- }
255
- return fkDef;
256
- }
257
- /**
258
- * Get all table names from the database (excluding system tables)
259
- * @param knex Knex instance
260
- * @param includeKnexTables Include knex_* migration tables
261
- * @param tablePrefix Filter tables by prefix (default: 'v4_' for v4 schema only)
262
- */
263
- export async function getAllTables(knex, includeKnexTables = false, tablePrefix = 'v4_') {
264
- const client = knex.client.config.client;
265
- let tables = [];
266
- if (client === 'better-sqlite3' || client === 'sqlite3') {
267
- const knexFilter = includeKnexTables ? '' : "AND name NOT LIKE 'knex_%'";
268
- const result = await knex.raw(`
269
- SELECT name FROM sqlite_master
270
- WHERE type='table'
271
- AND name NOT LIKE 'sqlite_%'
272
- ${knexFilter}
273
- ORDER BY name
274
- `);
275
- tables = result.map((row) => row.name);
276
- }
277
- else if (client === 'mysql' || client === 'mysql2') {
278
- const result = await knex.raw('SHOW TABLES');
279
- const tableKey = Object.keys(result[0][0])[0];
280
- tables = result[0].map((row) => row[tableKey]);
281
- if (!includeKnexTables) {
282
- tables = tables.filter((t) => !t.startsWith('knex_'));
283
- }
284
- }
285
- else if (client === 'pg') {
286
- const knexFilter = includeKnexTables ? '' : "AND tablename NOT LIKE 'knex_%'";
287
- const result = await knex.raw(`
288
- SELECT tablename FROM pg_tables
289
- WHERE schemaname = 'public'
290
- ${knexFilter}
291
- ORDER BY tablename
292
- `);
293
- tables = result.rows.map((row) => row.tablename);
294
- }
295
- else {
296
- throw new Error(`Unsupported database client: ${client}`);
297
- }
298
- // Filter by table prefix (default: v4_ for current schema)
299
- if (tablePrefix) {
300
- tables = tables.filter((t) => t.startsWith(tablePrefix));
301
- }
302
- return tables;
303
- }
304
- /**
305
- * Get CREATE TABLE statement for a table using knex-schema-inspector
306
- * Replaces regex-based SQL conversion with metadata-driven approach
307
- */
308
- export async function getCreateTableStatement(knex, table, targetFormat) {
309
- const client = knex.client.config.client;
310
- // Initialize schema inspector (database-agnostic)
311
- const inspector = SchemaInspector(knex);
312
- // Get column metadata
313
- const columns = await inspector.columnInfo(table);
314
- if (columns.length === 0) {
315
- throw new Error(`Table ${table} not found or has no columns`);
316
- }
317
- // Fix: knex-schema-inspector doesn't detect composite PRIMARY KEYs and UNIQUE constraints properly
318
- // Manually detect them using database-specific queries
319
- const compositeUniqueConstraints = []; // Track composite UNIQUE constraints
320
- let compositePrimaryKey = null; // Track composite PRIMARY KEY
321
- if (client === 'pg') {
322
- // PostgreSQL: Query pg_constraint for composite PRIMARY KEY and UNIQUE constraints
323
- const constraints = await knex.raw(`
324
- SELECT
325
- con.conname AS constraint_name,
326
- con.contype AS constraint_type,
327
- ARRAY_AGG(att.attname ORDER BY u.attposition) AS columns
328
- FROM pg_constraint con
329
- JOIN pg_class rel ON rel.oid = con.conrelid
330
- JOIN pg_namespace nsp ON nsp.oid = rel.relnamespace
331
- CROSS JOIN LATERAL UNNEST(con.conkey) WITH ORDINALITY AS u(attnum, attposition)
332
- JOIN pg_attribute att ON att.attnum = u.attnum AND att.attrelid = con.conrelid
333
- WHERE rel.relname = ?
334
- AND nsp.nspname = 'public'
335
- AND con.contype IN ('p', 'u')
336
- GROUP BY con.conname, con.contype
337
- `, [table]);
338
- for (const constraint of constraints.rows) {
339
- // PostgreSQL returns arrays as strings like "{col1,col2}" - parse them
340
- let columnNames;
341
- if (typeof constraint.columns === 'string') {
342
- // Parse PostgreSQL array format: "{col1,col2}" → ["col1", "col2"]
343
- columnNames = constraint.columns
344
- .replace(/^\{/, '') //Remove leading {
345
- .replace(/\}$/, '') // Remove trailing }
346
- .split(',')
347
- .map((col) => col.trim());
348
- }
349
- else if (Array.isArray(constraint.columns)) {
350
- columnNames = constraint.columns;
351
- }
352
- else {
353
- continue; // Skip invalid format
354
- }
355
- if (constraint.constraint_type === 'p' && columnNames.length > 1) {
356
- // Multi-column PRIMARY KEY
357
- compositePrimaryKey = columnNames;
358
- debugLog('DEBUG', `Found composite PRIMARY KEY on ${table}(${columnNames.join(', ')})`);
359
- }
360
- else if (constraint.constraint_type === 'u') {
361
- if (columnNames.length === 1) {
362
- // Single-column UNIQUE
363
- const col = columns.find(c => c.name === columnNames[0]);
364
- if (col && !col.is_primary_key) {
365
- col.is_unique = true;
366
- debugLog('DEBUG', `Marked ${table}.${col.name} as UNIQUE`);
367
- }
368
- }
369
- else if (columnNames.length > 1) {
370
- // Multi-column UNIQUE
371
- compositeUniqueConstraints.push(columnNames);
372
- debugLog('DEBUG', `Found composite UNIQUE on ${table}(${columnNames.join(', ')})`);
373
- }
374
- }
375
- }
376
- }
377
- else if (client === 'better-sqlite3' || client === 'sqlite3') {
378
- const indexResult = await knex.raw(`PRAGMA index_list(${table})`);
379
- // Knex raw() returns an array directly for SQLite
380
- const indexes = Array.isArray(indexResult) ? indexResult : [];
381
- for (const index of indexes) {
382
- // Check for PRIMARY KEY index
383
- if (index.origin === 'pk' && index.unique === 1) {
384
- const indexInfoResult = await knex.raw(`PRAGMA index_info(${index.name})`);
385
- const indexInfo = Array.isArray(indexInfoResult) ? indexInfoResult : [];
386
- const columnNames = indexInfo.map((idxCol) => idxCol.name);
387
- if (columnNames.length > 1) {
388
- // Composite PRIMARY KEY detected
389
- compositePrimaryKey = columnNames;
390
- debugLog('DEBUG', `Found composite PRIMARY KEY on ${table}(${columnNames.join(', ')}) from ${index.name}`);
391
- }
392
- }
393
- // Check if this is a UNIQUE index (skip PRIMARY KEY indexes)
394
- else if (index.unique === 1 && index.origin !== 'pk') {
395
- // Get columns in this index
396
- const indexInfoResult = await knex.raw(`PRAGMA index_info(${index.name})`);
397
- const indexInfo = Array.isArray(indexInfoResult) ? indexInfoResult : [];
398
- const columnNames = indexInfo.map((idxCol) => idxCol.name);
399
- if (columnNames.length === 1) {
400
- // Single-column UNIQUE - mark column as unique
401
- const col = columns.find(c => c.name === columnNames[0]);
402
- if (col && !col.is_primary_key) {
403
- col.is_unique = true;
404
- debugLog('DEBUG', `Marked ${table}.${col.name} as UNIQUE (single-column from ${index.name})`);
405
- }
406
- }
407
- else if (columnNames.length > 1) {
408
- // Composite UNIQUE - add to table-level constraints
409
- compositeUniqueConstraints.push(columnNames);
410
- debugLog('DEBUG', `Found composite UNIQUE on ${table}(${columnNames.join(', ')}) from ${index.name}`);
411
- // For MySQL: Convert TEXT to VARCHAR(191) for columns in composite UNIQUE
412
- if (targetFormat === 'mysql') {
413
- for (const colName of columnNames) {
414
- const col = columns.find(c => c.name === colName);
415
- if (col && !col.is_primary_key) {
416
- // Mark as part of composite unique (will be converted to VARCHAR later)
417
- col.in_composite_unique = true;
418
- }
419
- }
420
- }
421
- }
422
- }
423
- }
424
- }
425
- // Build column definitions using buildColumnDefinition()
426
- const columnDefs = columns.map(col => buildColumnDefinition(col, targetFormat));
427
- // Add PRIMARY KEY constraint (with MySQL prefix length handling)
428
- // Use composite PRIMARY KEY if detected, otherwise fall back to column metadata
429
- const pkColumns = compositePrimaryKey || columns.filter(col => col.is_primary_key).map(col => col.name);
430
- if (pkColumns.length > 0) {
431
- // For MySQL: Apply (191) prefix to TEXT/long VARCHAR columns
432
- if (targetFormat === 'mysql') {
433
- const processedPkCols = pkColumns.map((colName) => {
434
- const col = columns.find(c => c.name === colName);
435
- if (col && (col.data_type.toUpperCase() === 'TEXT' ||
436
- (col.data_type.toUpperCase().includes('VARCHAR') && col.max_length && col.max_length > 191))) {
437
- return `${quoteIdentifier(colName, targetFormat)}(191)`;
438
- }
439
- return quoteIdentifier(colName, targetFormat);
440
- }).join(', ');
441
- columnDefs.push(`PRIMARY KEY (${processedPkCols})`);
442
- }
443
- else {
444
- const quotedPkColumns = pkColumns.map(col => quoteIdentifier(col, targetFormat));
445
- columnDefs.push(`PRIMARY KEY (${quotedPkColumns.join(', ')})`);
446
- }
447
- }
448
- // Add FOREIGN KEY constraints using buildForeignKeyDefinition()
449
- let foreignKeys = await inspector.foreignKeys(table);
450
- // PostgreSQL: Manually query composite foreign keys (knex-schema-inspector misses them)
451
- if (client === 'pg') {
452
- const compositeFks = await knex.raw(`
453
- SELECT
454
- con.conname AS constraint_name,
455
- ARRAY_AGG(att.attname ORDER BY u.attposition) AS columns,
456
- ref_class.relname AS foreign_table,
457
- ARRAY_AGG(ref_att.attname ORDER BY u.attposition) AS foreign_columns,
458
- con.confdeltype AS on_delete,
459
- con.confupdtype AS on_update
460
- FROM pg_constraint con
461
- JOIN pg_class rel ON rel.oid = con.conrelid
462
- JOIN pg_namespace nsp ON nsp.oid = rel.relnamespace
463
- JOIN pg_class ref_class ON ref_class.oid = con.confrelid
464
- CROSS JOIN LATERAL UNNEST(con.conkey) WITH ORDINALITY AS u(attnum, attposition)
465
- JOIN pg_attribute att ON att.attnum = u.attnum AND att.attrelid = con.conrelid
466
- JOIN pg_attribute ref_att ON ref_att.attnum = con.confkey[u.attposition] AND ref_att.attrelid = con.confrelid
467
- WHERE rel.relname = ?
468
- AND nsp.nspname = 'public'
469
- AND con.contype = 'f'
470
- GROUP BY con.conname, ref_class.relname, con.confdeltype, con.confupdtype
471
- `, [table]);
472
- for (const fk of compositeFks.rows) {
473
- // Parse PostgreSQL arrays
474
- const columns = typeof fk.columns === 'string'
475
- ? fk.columns.replace(/^\{/, '').replace(/\}$/, '').split(',').map((s) => s.trim())
476
- : fk.columns;
477
- const foreignColumns = typeof fk.foreign_columns === 'string'
478
- ? fk.foreign_columns.replace(/^\{/, '').replace(/\}$/, '').split(',').map((s) => s.trim())
479
- : fk.foreign_columns;
480
- // Convert PostgreSQL delete/update action codes to SQL keywords
481
- const onDelete = fk.on_delete === 'c' ? 'CASCADE' : fk.on_delete === 'r' ? 'RESTRICT' : fk.on_delete === 'n' ? 'SET NULL' : 'NO ACTION';
482
- const onUpdate = fk.on_update === 'c' ? 'CASCADE' : fk.on_update === 'r' ? 'RESTRICT' : fk.on_update === 'n' ? 'SET NULL' : 'NO ACTION';
483
- // Create ForeignKey-like object
484
- const compositeFk = {
485
- table: table,
486
- column: columns, // Array for composite FK
487
- foreign_key_table: fk.foreign_table,
488
- foreign_key_column: foreignColumns, // Array for composite FK
489
- on_delete: onDelete,
490
- on_update: onUpdate,
491
- constraint_name: fk.constraint_name
492
- };
493
- // Check if already exists in foreignKeys (single-column FKs from inspector)
494
- const isDuplicate = foreignKeys.some((existingFk) => existingFk.constraint_name === compositeFk.constraint_name);
495
- if (!isDuplicate) {
496
- foreignKeys.push(compositeFk);
497
- debugLog('DEBUG', `Found composite FOREIGN KEY on ${table}(${columns.join(', ')}) → ${fk.foreign_table}(${foreignColumns.join(', ')})`);
498
- }
499
- }
500
- }
501
- for (const fk of foreignKeys) {
502
- columnDefs.push(buildForeignKeyDefinition(fk, targetFormat));
503
- }
504
- // Add composite UNIQUE constraints (from SQLite multi-column UNIQUE indexes)
505
- for (const uniqueCols of compositeUniqueConstraints) {
506
- const quotedCols = uniqueCols.map(col => quoteIdentifier(col, targetFormat)).join(', ');
507
- columnDefs.push(`UNIQUE (${quotedCols})`);
508
- }
509
- // Build CREATE TABLE statement with IF NOT EXISTS for idempotency
510
- const quotedTable = quoteIdentifier(table, targetFormat);
511
- const createSql = `CREATE TABLE IF NOT EXISTS ${quotedTable} (\n ${columnDefs.join(',\n ')}\n)`;
512
- // Add database-specific table options
513
- if (targetFormat === 'mysql') {
514
- return createSql + ' ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;';
515
- }
516
- return createSql + ';';
517
- }
518
- //# sourceMappingURL=tables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/utils/sql-dump/schema/tables.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD;;GAEG;AACH,SAAS,eAAe,CAAC,UAAkB,EAAE,YAA4B,EAAE,SAAyB;IAClG,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAE3C,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QAC7B,6BAA6B;QAC7B,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACpE,OAAO,uBAAuB,CAAC;QACjC,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,8BAA8B;YAC9B,MAAM,MAAM,GAAG,SAAS,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;YAC/D,OAAO,WAAW,MAAM,GAAG,CAAC;QAC9B,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACzE,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAC1D,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;QACzC,kCAAkC;QAClC,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAChF,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnC,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,SAAS,IAAI,GAAG,CAAC;YAChC,OAAO,WAAW,MAAM,GAAG,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,8BAA8B;QAC9B,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAChH,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACtE,OAAO,SAAS,CAAC,CAAC,kCAAkC;QACtD,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,YAA2B,EAAE,YAA4B;IACpF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhD,8EAA8E;IAC9E,6CAA6C;IAC7C,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,CAAC,uDAAuD;IACtE,CAAC;IAED,iCAAiC;IACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC7D,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;YAC7B,gFAAgF;YAChF,+CAA+C;YAC/C,OAAO,oCAAoC,CAAC;QAC9C,CAAC;aAAM,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YACzC,OAAO,oCAAoC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,oBAAoB;IACnC,CAAC;IAED,0DAA0D;IAC1D,kEAAkE;IAClE,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACvE,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;YAC7B,gFAAgF;YAChF,+CAA+C;YAC/C,OAAO,oCAAoC,CAAC;QAC9C,CAAC;aAAM,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YACzC,OAAO,oCAAoC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,0EAA0E;IAC1E,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,OAAO,oCAAoC,CAAC;QAC9C,CAAC;aAAM,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YACzC,OAAO,oCAAoC,CAAC;QAC9C,CAAC;aAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iDAAiD;IACjD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;YAC7B,+CAA+C;YAC/C,OAAO,OAAO,CAAC;QACjB,CAAC;aAAM,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uCAAuC;IACvC,IAAI,UAAU,GAAG,YAAY,CAAC;IAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,wDAAwD;IACxD,8DAA8D;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrJ,OAAO,IAAI,OAAO,GAAG,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,GAAW,EAAE,YAA4B;IACtE,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAI,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAE5E,6FAA6F;IAC7F,0FAA0F;IAC1F,IAAI,YAAY,KAAK,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QAClE,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,iBAAiB,IAAK,GAAW,CAAC,mBAAmB,EAAE,CAAC;YACrG,QAAQ,GAAG,cAAc,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,GAAG,GAAG,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC;IAEtC,6BAA6B;IAC7B,IAAI,GAAG,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QAC9B,GAAG,IAAI,WAAW,CAAC;IACrB,CAAC;IAED,uBAAuB;IACvB,IAAI,GAAG,CAAC,aAAa,KAAK,IAAI,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAClE,IAAI,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,CAAC;QACpF,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,EAAE,EAAE,CAAC;YACzD,wCAAwC;YACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxG,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxF,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAEnE,sEAAsE;YACtE,IAAI,YAAY,KAAK,YAAY,IAAI,eAAe,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACxF,gBAAgB,GAAG,gBAAgB,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YACjE,CAAC;YAED,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBAC7B,mDAAmD;gBACnD,IAAI,YAAY,EAAE,CAAC;oBACjB,oDAAoD;gBACtD,CAAC;gBACD,2EAA2E;gBAC3E,8CAA8C;gBAC9C,yEAAyE;qBACpE,CAAC;oBACJ,GAAG,IAAI,YAAY,gBAAgB,EAAE,CAAC;gBACxC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,IAAI,YAAY,gBAAgB,EAAE,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,2EAA2E;IAC3E,MAAM,mBAAmB,GAAG,GAAG,CAAC,cAAc;QAC5C,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IAC7F,MAAM,eAAe,GAAG,GAAG,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAEhE,IAAI,YAAY,KAAK,OAAO,IAAI,eAAe,IAAI,GAAG,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;QACtF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,GAAG,IAAI,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,6CAA6C;IAC7C,IAAI,YAAY,KAAK,YAAY,IAAI,eAAe,IAAI,GAAG,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;QAC3F,mDAAmD;QACnD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACxC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC5C,CAAC;iBAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;gBACpF,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;QACzC,GAAG,IAAI,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,EAAc,EAAE,YAA4B;IAC7E,wEAAwE;IACxE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAE9G,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,kBAAkB,GAAG,eAAe,CAAC,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC/E,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEtG,IAAI,KAAK,GAAG,gBAAgB,aAAa,gBAAgB,kBAAkB,IAAI,oBAAoB,GAAG,CAAC;IAEvG,uBAAuB;IACvB,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QACjD,KAAK,IAAI,cAAc,EAAE,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,uBAAuB;IACvB,IAAI,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QACjD,KAAK,IAAI,cAAc,EAAE,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAU,EAAE,iBAAiB,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK;IAC3F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAEzC,IAAI,MAAM,GAAa,EAAE,CAAC;IAE1B,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;;;;QAI1B,UAAU;;KAEb,CAAC,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iCAAiC,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;;;QAG1B,UAAU;;KAEb,CAAC,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,2DAA2D;IAC3D,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAAU,EAAE,KAAa,EAAE,YAA4B;IACnG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAEzC,kDAAkD;IAClD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAExC,sBAAsB;IACtB,MAAM,OAAO,GAAa,MAAM,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAE5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,8BAA8B,CAAC,CAAC;IAChE,CAAC;IAED,mGAAmG;IACnG,uDAAuD;IACvD,MAAM,0BAA0B,GAAe,EAAE,CAAC,CAAC,qCAAqC;IACxF,IAAI,mBAAmB,GAAoB,IAAI,CAAC,CAAC,8BAA8B;IAE/E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,mFAAmF;QACnF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;KAclC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEZ,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YAC1C,uEAAuE;YACvE,IAAI,WAAqB,CAAC;YAC1B,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3C,kEAAkE;gBAClE,WAAW,GAAG,UAAU,CAAC,OAAO;qBAC7B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,kBAAkB;qBACrC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB;qBACvC,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,sBAAsB;YAClC,CAAC;YAED,IAAI,UAAU,CAAC,eAAe,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjE,2BAA2B;gBAC3B,mBAAmB,GAAG,WAAW,CAAC;gBAClC,QAAQ,CAAC,OAAO,EAAE,kCAAkC,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1F,CAAC;iBAAM,IAAI,UAAU,CAAC,eAAe,KAAK,GAAG,EAAE,CAAC;gBAC9C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,uBAAuB;oBACvB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;wBAC/B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;wBACrB,QAAQ,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,CAAC,IAAI,YAAY,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;qBAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,sBAAsB;oBACtB,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC7C,QAAQ,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrF,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,CAAC,CAAC;QAElE,kDAAkD;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,8BAA8B;YAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAEhE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,iCAAiC;oBACjC,mBAAmB,GAAG,WAAW,CAAC;oBAClC,QAAQ,CAAC,OAAO,EAAE,kCAAkC,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7G,CAAC;YACH,CAAC;YACD,6DAA6D;iBACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACrD,4BAA4B;gBAC5B,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;gBAC3E,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;gBAExE,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAEhE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,+CAA+C;oBAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;wBAC/B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;wBACrB,QAAQ,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,GAAG,CAAC,IAAI,kCAAkC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;oBAChG,CAAC;gBACH,CAAC;qBAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,oDAAoD;oBACpD,0BAA0B,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC7C,QAAQ,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAEtG,0EAA0E;oBAC1E,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;wBAC7B,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;4BAClC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;4BAClD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gCAC/B,wEAAwE;gCACvE,GAAW,CAAC,mBAAmB,GAAG,IAAI,CAAC;4BAC1C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,UAAU,GAAa,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAE1F,iEAAiE;IACjE,gFAAgF;IAChF,MAAM,SAAS,GAAG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,6DAA6D;QAC7D,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;YAC7B,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;gBAClD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,MAAM;oBAC9C,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;oBACjG,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;gBAC1D,CAAC;gBACD,OAAO,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,gBAAgB,eAAe,GAAG,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;YACjF,UAAU,CAAC,IAAI,CAAC,gBAAgB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,IAAI,WAAW,GAAiB,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnE,wFAAwF;IACxF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;KAmBnC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAEZ,KAAK,MAAM,EAAE,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;YACnC,0BAA0B;YAC1B,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ;gBAC5C,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1F,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;YACf,MAAM,cAAc,GAAG,OAAO,EAAE,CAAC,eAAe,KAAK,QAAQ;gBAC3D,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClG,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC;YAEvB,gEAAgE;YAChE,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;YACxI,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;YAExI,gCAAgC;YAChC,MAAM,WAAW,GAAe;gBAC9B,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,OAAO,EAAG,yBAAyB;gBAC3C,iBAAiB,EAAE,EAAE,CAAC,aAAa;gBACnC,kBAAkB,EAAE,cAAc,EAAG,yBAAyB;gBAC9D,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,QAAQ;gBACnB,eAAe,EAAE,EAAE,CAAC,eAAe;aACpC,CAAC;YAEF,4EAA4E;YAC5E,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAClD,UAAU,CAAC,eAAe,KAAK,WAAW,CAAC,eAAe,CAC3D,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9B,QAAQ,CAAC,OAAO,EAAE,kCAAkC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1I,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,6EAA6E;IAC7E,KAAK,MAAM,UAAU,IAAI,0BAA0B,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,UAAU,CAAC,IAAI,CAAC,WAAW,UAAU,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,kEAAkE;IAClE,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,8BAA8B,WAAW,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAElG,sCAAsC;IACtC,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,SAAS,GAAG,oEAAoE,CAAC;IAC1F,CAAC;IAED,OAAO,SAAS,GAAG,GAAG,CAAC;AACzB,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { Knex } from 'knex';
2
- import type { DatabaseFormat } from '../types.js';
3
- /**
4
- * Get all view names from the database
5
- */
6
- export declare function getAllViews(knex: Knex): Promise<string[]>;
7
- /**
8
- * Get CREATE VIEW statement for a view
9
- */
10
- export declare function getCreateViewStatement(knex: Knex, viewName: string, targetFormat: DatabaseFormat): Promise<string>;
11
- //# sourceMappingURL=views.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../../../src/utils/sql-dump/schema/views.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMlD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA6B/D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAuFxH"}