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,424 +0,0 @@
1
- /**
2
- * Cross-database migration integration tests
3
- *
4
- * Tests full migration workflow:
5
- * 1. Generate SQL dump from SQLite
6
- * 2. Import to PostgreSQL
7
- * 3. Import to MySQL
8
- * 4. Verify data integrity
9
- *
10
- * Prerequisites:
11
- * - Docker installed and running
12
- * - Run: docker-compose -f docker/docker-compose.test.yml up -d
13
- */
14
- import knex from 'knex';
15
- import { generateSqlDump } from '../../utils/sql-dump/index.js';
16
- import { describe, it, before, after } from 'node:test';
17
- import assert from 'node:assert';
18
- import { writeFileSync, unlinkSync } from 'node:fs';
19
- import { exec } from 'node:child_process';
20
- import { promisify } from 'node:util';
21
- import { getTestConfig, getDockerExecPrefix, getDockerConfig } from '../database/testing-config.js';
22
- const execAsync = promisify(exec);
23
- /**
24
- * Execute async command with 30-second timeout to prevent hanging
25
- * (Docker commands can stall on Windows/WSL or when containers are not responding)
26
- */
27
- const execAsyncWithTimeout = async (command, options = {}) => {
28
- return execAsync(command, {
29
- timeout: 30000, // 30-second timeout prevents hanging
30
- encoding: 'utf8', // Force UTF-8 to prevent Buffer type issues
31
- ...options
32
- });
33
- };
34
- // Test database configurations (using centralized config)
35
- const configs = {
36
- sqlite: getTestConfig('sqlite'),
37
- postgresql: getTestConfig('postgresql'),
38
- mysql: getTestConfig('mysql'),
39
- };
40
- describe('Cross-Database Migration Tests', () => {
41
- let sqliteDb;
42
- let postgresDb;
43
- let mysqlDb;
44
- before(async () => {
45
- // Connect to all databases
46
- sqliteDb = knex(configs.sqlite);
47
- postgresDb = knex(configs.postgresql);
48
- mysqlDb = knex(configs.mysql);
49
- // Verify connections
50
- console.log(' Verifying database connections...');
51
- await postgresDb.raw('SELECT 1');
52
- await mysqlDb.raw('SELECT 1');
53
- console.log(' ✅ All databases connected');
54
- });
55
- after(async () => {
56
- // Cleanup
57
- await sqliteDb.destroy();
58
- await postgresDb.destroy();
59
- await mysqlDb.destroy();
60
- });
61
- describe('SQLite → PostgreSQL Migration', () => {
62
- it('should generate PostgreSQL dump from SQLite', async () => {
63
- console.log(' Generating PostgreSQL dump...');
64
- const dump = await generateSqlDump(sqliteDb, 'postgresql', {
65
- includeHeader: true,
66
- includeSchema: true,
67
- chunkSize: 100,
68
- });
69
- assert.ok(dump.length > 0, 'Dump should not be empty');
70
- assert.ok(dump.includes('CREATE TABLE') || dump.includes('create table'), 'Dump should contain CREATE TABLE statements');
71
- assert.ok(dump.includes('INSERT INTO') || dump.includes('insert into'), 'Dump should contain INSERT statements');
72
- console.log(` ✅ Generated ${dump.length} characters`);
73
- });
74
- it('should import dump to PostgreSQL', async () => {
75
- console.log(' Importing to PostgreSQL...');
76
- // Generate dump (exclude knex_ tables as they have timestamp conversion issues)
77
- const allTables = await sqliteDb.raw(`
78
- SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'knex_%'
79
- `);
80
- const pgTables = allTables.map((row) => row.name);
81
- const dump = await generateSqlDump(sqliteDb, 'postgresql', {
82
- tables: pgTables,
83
- includeSchema: true,
84
- chunkSize: 50,
85
- });
86
- // Drop existing tables
87
- await postgresDb.raw('DROP SCHEMA public CASCADE');
88
- await postgresDb.raw('CREATE SCHEMA public');
89
- // Write dump to temporary file and import using docker exec psql
90
- const tempFile = '/tmp/sqlew-pg-test.sql';
91
- writeFileSync(tempFile, dump);
92
- try {
93
- // Copy file to container and execute
94
- const pgDocker = getDockerConfig('postgresql');
95
- const pgPrefix = getDockerExecPrefix('postgresql');
96
- await execAsyncWithTimeout(`docker cp ${tempFile} ${pgDocker.name}:/tmp/import.sql`);
97
- await execAsyncWithTimeout(`${pgPrefix} psql -U ${pgDocker.user} -d ${pgDocker.database} -f /tmp/import.sql -v ON_ERROR_STOP=1 -q`, { maxBuffer: 10 * 1024 * 1024 });
98
- }
99
- finally {
100
- unlinkSync(tempFile);
101
- }
102
- // Verify tables exist
103
- const tables = await postgresDb.raw(`
104
- SELECT tablename FROM pg_tables WHERE schemaname = 'public'
105
- `);
106
- assert.ok(tables.rows.length > 0, 'Tables should be created');
107
- console.log(` ✅ Imported ${tables.rows.length} tables`);
108
- });
109
- it('should verify data integrity (row counts)', async () => {
110
- console.log(' Verifying data integrity...');
111
- const testTables = ['v4_tasks', 't_decisions'];
112
- for (const table of testTables) {
113
- const sqliteCount = await sqliteDb(table).count('* as count').first();
114
- const pgCount = await postgresDb(table).count('* as count').first();
115
- // PostgreSQL returns bigint as string, convert both to numbers for comparison
116
- assert.strictEqual(Number(pgCount?.count), Number(sqliteCount?.count), `Table ${table} row count should match`);
117
- console.log(` ✅ ${table}: ${sqliteCount?.count} rows`);
118
- }
119
- });
120
- });
121
- describe('SQLite → MySQL Migration', () => {
122
- it('should generate MySQL dump from SQLite', async () => {
123
- console.log(' Generating MySQL dump...');
124
- const dump = await generateSqlDump(sqliteDb, 'mysql', {
125
- includeHeader: true,
126
- includeSchema: true,
127
- chunkSize: 100,
128
- });
129
- assert.ok(dump.length > 0, 'Dump should not be empty');
130
- assert.ok(dump.includes('CREATE TABLE') || dump.includes('create table'), 'Dump should contain CREATE TABLE statements');
131
- console.log(` ✅ Generated ${dump.length} characters`);
132
- });
133
- it('should import dump to MySQL', async () => {
134
- console.log(' Importing to MySQL...');
135
- // Generate dump (exclude knex_ tables as they have timestamp conversion issues)
136
- const allTablesForMysql = await sqliteDb.raw(`
137
- SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'knex_%'
138
- `);
139
- const mysqlTables = allTablesForMysql.map((row) => row.name);
140
- const dump = await generateSqlDump(sqliteDb, 'mysql', {
141
- tables: mysqlTables,
142
- includeSchema: true,
143
- chunkSize: 50,
144
- });
145
- // Drop existing views and tables (disable FK checks first)
146
- await mysqlDb.raw('SET FOREIGN_KEY_CHECKS=0');
147
- // Drop views first (SHOW FULL TABLES WHERE Table_type = 'VIEW')
148
- const existingViews = await mysqlDb.raw(`SHOW FULL TABLES WHERE Table_type = 'VIEW'`);
149
- for (const row of existingViews[0]) {
150
- const viewName = Object.values(row)[0];
151
- await mysqlDb.raw(`DROP VIEW IF EXISTS \`${viewName}\``);
152
- }
153
- // Then drop tables
154
- const existingTables = await mysqlDb.raw('SHOW TABLES');
155
- for (const row of existingTables[0]) {
156
- const tableName = Object.values(row)[0];
157
- await mysqlDb.raw(`DROP TABLE IF EXISTS \`${tableName}\``);
158
- }
159
- await mysqlDb.raw('SET FOREIGN_KEY_CHECKS=1');
160
- // Write dump to temporary file and import using docker exec mysql
161
- const tempFile = '/tmp/sqlew-mysql-test.sql';
162
- writeFileSync(tempFile, dump);
163
- try {
164
- // Copy file to container and execute
165
- const mysqlDocker = getDockerConfig('mysql');
166
- const mysqlPrefix = getDockerExecPrefix('mysql');
167
- await execAsyncWithTimeout(`docker cp ${tempFile} ${mysqlDocker.name}:/tmp/import.sql`);
168
- await execAsyncWithTimeout(`${mysqlPrefix} sh -c "mysql -u ${mysqlDocker.user} -p${mysqlDocker.password} ${mysqlDocker.database} < /tmp/import.sql"`, { maxBuffer: 10 * 1024 * 1024 });
169
- }
170
- finally {
171
- unlinkSync(tempFile);
172
- }
173
- // Verify tables exist
174
- const newTables = await mysqlDb.raw('SHOW TABLES');
175
- assert.ok(newTables[0].length > 0, 'Tables should be created');
176
- console.log(` ✅ Imported ${newTables[0].length} tables`);
177
- });
178
- it('should verify data integrity (row counts)', async () => {
179
- console.log(' Verifying data integrity...');
180
- const testTables = ['v4_tasks', 't_decisions'];
181
- for (const table of testTables) {
182
- const sqliteCount = await sqliteDb(table).count('* as count').first();
183
- const mysqlCount = await mysqlDb(table).count('* as count').first();
184
- // MySQL may return bigint as string, convert both to numbers for comparison
185
- assert.strictEqual(Number(mysqlCount?.count), Number(sqliteCount?.count), `Table ${table} row count should match`);
186
- console.log(` ✅ ${table}: ${sqliteCount?.count} rows`);
187
- }
188
- });
189
- });
190
- describe('Data Value Verification', () => {
191
- it('should verify boolean values converted correctly (PostgreSQL)', async () => {
192
- console.log(' Verifying boolean conversions...');
193
- // Use t_constraints which has 'active' boolean field
194
- const sqliteConstraints = await sqliteDb('t_constraints').select('*').limit(3);
195
- const pgConstraints = await postgresDb('t_constraints').select('*').limit(3);
196
- for (let i = 0; i < sqliteConstraints.length; i++) {
197
- // SQLite stores booleans as 0/1, PostgreSQL as TRUE/FALSE
198
- assert.strictEqual(Boolean(sqliteConstraints[i].active), pgConstraints[i].active, 'Boolean active should match');
199
- }
200
- console.log(' ✅ Boolean conversions verified');
201
- });
202
- it('should verify string values with quotes (SQL injection prevention)', async () => {
203
- console.log(' Verifying string escaping...');
204
- // Find tasks with quotes in titles
205
- const sqliteTasks = await sqliteDb('v4_tasks')
206
- .select('*')
207
- .whereRaw("title LIKE '%''%'")
208
- .limit(3);
209
- if (sqliteTasks.length > 0) {
210
- const pgTasks = await postgresDb('v4_tasks')
211
- .select('*')
212
- .whereIn('id', sqliteTasks.map(t => t.id));
213
- for (let i = 0; i < sqliteTasks.length; i++) {
214
- assert.strictEqual(sqliteTasks[i].title, pgTasks[i].title, 'Quoted strings should match');
215
- }
216
- console.log(` ✅ ${sqliteTasks.length} tasks with quotes verified`);
217
- }
218
- else {
219
- console.log(' ℹ️ No tasks with quotes found (test skipped)');
220
- }
221
- });
222
- });
223
- describe('PostgreSQL Source Schema Export', () => {
224
- it('should export PRIMARY KEY constraints from PostgreSQL', async () => {
225
- console.log(' Testing PostgreSQL PRIMARY KEY export...');
226
- // Get a table with PRIMARY KEY from PostgreSQL
227
- const createSql = await generateSqlDump(postgresDb, 'postgresql', {
228
- tables: ['v4_tasks'],
229
- includeSchema: true,
230
- chunkSize: 0, // Schema only
231
- });
232
- assert.ok(createSql.includes('PRIMARY KEY'), 'Should include PRIMARY KEY constraint');
233
- console.log(' ✅ PRIMARY KEY exported');
234
- });
235
- it('should export FOREIGN KEY constraints from PostgreSQL', async () => {
236
- console.log(' Testing PostgreSQL FOREIGN KEY export...');
237
- // Get a table with FOREIGN KEY from PostgreSQL
238
- const createSql = await generateSqlDump(postgresDb, 'postgresql', {
239
- tables: ['v4_tasks'],
240
- includeSchema: true,
241
- chunkSize: 0, // Schema only
242
- });
243
- assert.ok(createSql.includes('FOREIGN KEY') || createSql.includes('REFERENCES'), 'Should include FOREIGN KEY constraint');
244
- console.log(' ✅ FOREIGN KEY exported');
245
- });
246
- it('should convert PostgreSQL → MySQL (with constraints)', async () => {
247
- console.log(' Testing PostgreSQL → MySQL conversion...');
248
- const dump = await generateSqlDump(postgresDb, 'mysql', {
249
- tables: ['v4_tasks'],
250
- includeSchema: true,
251
- chunkSize: 0,
252
- });
253
- // Verify MySQL syntax
254
- assert.ok(dump.includes('`'), 'Should use MySQL backtick quotes');
255
- assert.ok(dump.includes('PRIMARY KEY'), 'Should preserve PRIMARY KEY');
256
- console.log(' ✅ PostgreSQL → MySQL conversion works');
257
- });
258
- it('should convert PostgreSQL → SQLite (with SERIAL → AUTOINCREMENT)', async () => {
259
- console.log(' Testing PostgreSQL → SQLite conversion...');
260
- const dump = await generateSqlDump(postgresDb, 'sqlite', {
261
- tables: ['v4_tasks'],
262
- includeSchema: true,
263
- chunkSize: 0,
264
- });
265
- // Verify SQLite syntax (SERIAL → INTEGER, IDENTITY → AUTOINCREMENT)
266
- assert.ok(dump.includes('"'), 'Should use double quotes');
267
- assert.ok(!dump.includes('SERIAL'), 'Should not contain SERIAL keyword');
268
- console.log(' ✅ PostgreSQL → SQLite conversion works');
269
- });
270
- it('should handle multi-column PRIMARY KEY from PostgreSQL', async () => {
271
- console.log(' Testing multi-column PRIMARY KEY...');
272
- // Create a temporary table with multi-column PK
273
- await postgresDb.raw(`
274
- CREATE TABLE IF NOT EXISTS test_multi_pk (
275
- col1 INTEGER NOT NULL,
276
- col2 INTEGER NOT NULL,
277
- value TEXT,
278
- PRIMARY KEY (col1, col2)
279
- )
280
- `);
281
- try {
282
- const dump = await generateSqlDump(postgresDb, 'postgresql', {
283
- tables: ['test_multi_pk'],
284
- includeSchema: true,
285
- chunkSize: 0,
286
- });
287
- assert.ok(dump.includes('PRIMARY KEY ("col1", "col2")') || dump.includes('PRIMARY KEY ('), 'Should include multi-column PRIMARY KEY');
288
- console.log(' ✅ Multi-column PRIMARY KEY exported');
289
- }
290
- finally {
291
- await postgresDb.raw('DROP TABLE IF EXISTS test_multi_pk');
292
- }
293
- });
294
- it('should handle composite FOREIGN KEY from PostgreSQL', async () => {
295
- console.log(' Testing composite FOREIGN KEY...');
296
- // Create temporary tables with composite FK
297
- await postgresDb.raw(`
298
- CREATE TABLE IF NOT EXISTS test_parent (
299
- id1 INTEGER NOT NULL,
300
- id2 INTEGER NOT NULL,
301
- PRIMARY KEY (id1, id2)
302
- )
303
- `);
304
- await postgresDb.raw(`
305
- CREATE TABLE IF NOT EXISTS test_child (
306
- child_id SERIAL PRIMARY KEY,
307
- parent_id1 INTEGER,
308
- parent_id2 INTEGER,
309
- FOREIGN KEY (parent_id1, parent_id2) REFERENCES test_parent(id1, id2)
310
- )
311
- `);
312
- try {
313
- const dump = await generateSqlDump(postgresDb, 'postgresql', {
314
- tables: ['test_child'],
315
- includeSchema: true,
316
- chunkSize: 0,
317
- });
318
- assert.ok(dump.includes('FOREIGN KEY'), 'Should include FOREIGN KEY constraint');
319
- console.log(' ✅ Composite FOREIGN KEY exported');
320
- }
321
- finally {
322
- await postgresDb.raw('DROP TABLE IF EXISTS test_child');
323
- await postgresDb.raw('DROP TABLE IF EXISTS test_parent');
324
- }
325
- });
326
- it('should handle UNIQUE constraints from PostgreSQL', async () => {
327
- console.log(' Testing UNIQUE constraints...');
328
- // Create temporary table with UNIQUE constraint
329
- await postgresDb.raw(`
330
- CREATE TABLE IF NOT EXISTS test_unique (
331
- id SERIAL PRIMARY KEY,
332
- email TEXT UNIQUE,
333
- username TEXT
334
- )
335
- `);
336
- try {
337
- const dump = await generateSqlDump(postgresDb, 'postgresql', {
338
- tables: ['test_unique'],
339
- includeSchema: true,
340
- chunkSize: 0,
341
- });
342
- assert.ok(dump.includes('UNIQUE'), 'Should include UNIQUE constraint');
343
- console.log(' ✅ UNIQUE constraint exported');
344
- }
345
- finally {
346
- await postgresDb.raw('DROP TABLE IF EXISTS test_unique');
347
- }
348
- });
349
- it('should handle ON DELETE/ON UPDATE rules from PostgreSQL', async () => {
350
- console.log(' Testing FK ON DELETE/UPDATE rules...');
351
- // Create temporary tables with FK rules
352
- await postgresDb.raw(`
353
- CREATE TABLE IF NOT EXISTS test_fk_parent (
354
- id SERIAL PRIMARY KEY,
355
- name TEXT
356
- )
357
- `);
358
- await postgresDb.raw(`
359
- CREATE TABLE IF NOT EXISTS test_fk_child (
360
- id SERIAL PRIMARY KEY,
361
- parent_id INTEGER,
362
- FOREIGN KEY (parent_id) REFERENCES test_fk_parent(id) ON DELETE CASCADE ON UPDATE CASCADE
363
- )
364
- `);
365
- try {
366
- const dump = await generateSqlDump(postgresDb, 'postgresql', {
367
- tables: ['test_fk_child'],
368
- includeSchema: true,
369
- chunkSize: 0,
370
- });
371
- assert.ok(dump.includes('ON DELETE CASCADE') || dump.includes('CASCADE'), 'Should include ON DELETE CASCADE');
372
- assert.ok(dump.includes('ON UPDATE CASCADE') || dump.includes('CASCADE'), 'Should include ON UPDATE CASCADE');
373
- console.log(' ✅ FK rules (ON DELETE/UPDATE) exported');
374
- }
375
- finally {
376
- await postgresDb.raw('DROP TABLE IF EXISTS test_fk_child');
377
- await postgresDb.raw('DROP TABLE IF EXISTS test_fk_parent');
378
- }
379
- });
380
- it('should handle DEFAULT values from PostgreSQL (excluding nextval)', async () => {
381
- console.log(' Testing DEFAULT value handling...');
382
- // Create temporary table with various defaults
383
- await postgresDb.raw(`
384
- CREATE TABLE IF NOT EXISTS test_defaults (
385
- id SERIAL PRIMARY KEY,
386
- status TEXT DEFAULT 'active',
387
- created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
388
- count INTEGER DEFAULT 0
389
- )
390
- `);
391
- try {
392
- const dump = await generateSqlDump(postgresDb, 'postgresql', {
393
- tables: ['test_defaults'],
394
- includeSchema: true,
395
- chunkSize: 0,
396
- });
397
- assert.ok(dump.includes("DEFAULT 'active'") || dump.includes('DEFAULT'), 'Should include DEFAULT values');
398
- assert.ok(!dump.includes('nextval'), 'Should skip nextval sequences');
399
- console.log(' ✅ DEFAULT values exported (nextval skipped)');
400
- }
401
- finally {
402
- await postgresDb.raw('DROP TABLE IF EXISTS test_defaults');
403
- }
404
- });
405
- it('should generate idempotent PostgreSQL → PostgreSQL dump', async () => {
406
- console.log(' Testing PostgreSQL idempotent dump...');
407
- const dump1 = await generateSqlDump(postgresDb, 'postgresql', {
408
- tables: ['v4_tasks'],
409
- includeSchema: true,
410
- chunkSize: 0,
411
- });
412
- const dump2 = await generateSqlDump(postgresDb, 'postgresql', {
413
- tables: ['v4_tasks'],
414
- includeSchema: true,
415
- chunkSize: 0,
416
- });
417
- // Schema should be identical (modulo whitespace/comments)
418
- const normalize = (sql) => sql.replace(/--.*$/gm, '').replace(/\s+/g, ' ').trim();
419
- assert.strictEqual(normalize(dump1), normalize(dump2), 'Idempotent dumps should be identical');
420
- console.log(' ✅ Idempotent PostgreSQL dump verified');
421
- });
422
- });
423
- });
424
- //# sourceMappingURL=dump-import.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dump-import.test.js","sourceRoot":"","sources":["../../../src/tests/docker/dump-import.test.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Foreign Key Constraint Validation Tests
3
- *
4
- * Tests FK constraint preservation and enforcement during cross-database migrations.
5
- * Specifically designed to catch SQLite→MySQL FK errors.
6
- *
7
- * Uses DRY shared test utilities from test-helpers.ts
8
- *
9
- * NOTE: These tests require Docker containers (MySQL, PostgreSQL)
10
- * Set SKIP_DOCKER_TESTS=true or CI=true to skip in CI environments
11
- */
12
- export {};
13
- //# sourceMappingURL=fk-constraints.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fk-constraints.test.d.ts","sourceRoot":"","sources":["../../../src/tests/docker/fk-constraints.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}