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,17 +0,0 @@
1
- /**
2
- * Multi-Project Schema Migration Tests (v3.7.0)
3
- *
4
- * Tests comprehensive cross-database migration following user requirements:
5
- * 1. Initialize SQLite, MySQL, MariaDB, PostgreSQL with migrations
6
- * 2. Seed each database with multi-project test data
7
- * 3. Export each database using sql-dump
8
- * 4. Drop all schemas
9
- * 5. Test whether dump SQL can be imported to all databases
10
- *
11
- * Uses DRY shared test utilities from test-helpers.ts
12
- *
13
- * NOTE: These tests require Docker containers (MySQL, MariaDB, PostgreSQL)
14
- * Set SKIP_DOCKER_TESTS=true or CI=true to skip in CI environments
15
- */
16
- export {};
17
- //# sourceMappingURL=multi-project-migration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-project-migration.test.d.ts","sourceRoot":"","sources":["../../../src/tests/docker/multi-project-migration.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
@@ -1,394 +0,0 @@
1
- /**
2
- * Multi-Project Schema Migration Tests (v3.7.0)
3
- *
4
- * Tests comprehensive cross-database migration following user requirements:
5
- * 1. Initialize SQLite, MySQL, MariaDB, PostgreSQL with migrations
6
- * 2. Seed each database with multi-project test data
7
- * 3. Export each database using sql-dump
8
- * 4. Drop all schemas
9
- * 5. Test whether dump SQL can be imported to all databases
10
- *
11
- * Uses DRY shared test utilities from test-helpers.ts
12
- *
13
- * NOTE: These tests require Docker containers (MySQL, MariaDB, PostgreSQL)
14
- * Set SKIP_DOCKER_TESTS=true or CI=true to skip in CI environments
15
- */
16
- // Skip Docker-dependent tests in CI environments
17
- if (process.env.SKIP_DOCKER_TESTS === 'true' || process.env.CI === 'true') {
18
- console.log('⏭️ Skipping Docker-dependent multi-project migration tests (CI environment)');
19
- process.exit(0);
20
- }
21
- // Skip when run as part of broader test suites (Docker containers are shared resources)
22
- // Only run when explicitly invoked via 'npm run test:docker' or run individually
23
- const isDockerTestSuite = process.env.npm_lifecycle_event === 'test:docker';
24
- const isMainTestSuite = process.env.npm_lifecycle_event === 'test' ||
25
- process.env.npm_lifecycle_event === 'test:database' ||
26
- process.env.npm_lifecycle_event === 'test:integration';
27
- if (!isDockerTestSuite && isMainTestSuite) {
28
- console.log('⏭️ Skipping Docker-dependent tests (requires exclusive Docker access)');
29
- console.log(' Run individually or use: npm run test:docker');
30
- process.exit(0);
31
- }
32
- import { describe, it, before, after } from 'node:test';
33
- import assert from 'node:assert';
34
- import { generateSqlDump } from '../../utils/sql-dump/index.js';
35
- import { getDbConfig, connectDb, disconnectDb, dropAllTables, getTables, assertTableCountsMatch, assertRowCountsMatch, assertFKConstraintsExist, seedTestData, assertSeededDataExists, importSqlToDocker, } from '../utils/test-helpers.js';
36
- import { join } from 'node:path';
37
- import { existsSync, mkdirSync, unlinkSync } from 'node:fs';
38
- // Test database path
39
- const testDbPath = join(process.cwd(), '.sqlew/test-multi-project.db');
40
- describe('Multi-Project Schema Migration Tests (v3.7.0)', () => {
41
- let sqliteDb;
42
- let mysqlDb;
43
- let mariadbDb;
44
- let postgresDb;
45
- before(async () => {
46
- console.log(' 📦 Setting up test databases...');
47
- // Ensure test directory exists
48
- const testDir = join(process.cwd(), '.sqlew');
49
- if (!existsSync(testDir)) {
50
- mkdirSync(testDir, { recursive: true });
51
- }
52
- // Remove existing test database
53
- if (existsSync(testDbPath)) {
54
- unlinkSync(testDbPath);
55
- }
56
- // Connect to all databases
57
- const sqliteConfig = getDbConfig('sqlite', testDbPath);
58
- const mysqlConfig = getDbConfig('mysql');
59
- const mariadbConfig = getDbConfig('mariadb');
60
- const postgresConfig = getDbConfig('postgresql');
61
- sqliteDb = await connectDb(sqliteConfig);
62
- mysqlDb = await connectDb(mysqlConfig);
63
- mariadbDb = await connectDb(mariadbConfig);
64
- postgresDb = await connectDb(postgresConfig);
65
- console.log(' ✅ All databases connected');
66
- });
67
- after(async () => {
68
- if (sqliteDb)
69
- await disconnectDb(sqliteDb);
70
- if (mysqlDb)
71
- await disconnectDb(mysqlDb);
72
- if (mariadbDb)
73
- await disconnectDb(mariadbDb);
74
- if (postgresDb)
75
- await disconnectDb(postgresDb);
76
- // Clean up test database
77
- if (existsSync(testDbPath)) {
78
- unlinkSync(testDbPath);
79
- }
80
- });
81
- // ========================================================================
82
- // REQUIREMENT 1: Initialize databases with migrations
83
- // ========================================================================
84
- describe('Requirement 1: Initialize databases with migrations', () => {
85
- it('should initialize SQLite with migrations', async () => {
86
- console.log(' 🔄 Running SQLite migrations...');
87
- const [batchNo, log] = await sqliteDb.migrate.latest();
88
- console.log(` ✅ Migrations completed (batch ${batchNo}, ${log.length} migrations)`);
89
- // Verify multi-project tables exist
90
- const hasMProjects = await sqliteDb.schema.hasTable('m_projects');
91
- const hasTDecisions = await sqliteDb.schema.hasTable('t_decisions');
92
- const hasTTasks = await sqliteDb.schema.hasTable('v4_tasks');
93
- assert.ok(hasMProjects, 'Should have m_projects table');
94
- assert.ok(hasTDecisions, 'Should have t_decisions table');
95
- assert.ok(hasTTasks, 'Should have v4_tasks table');
96
- // Verify project_id columns exist
97
- const hasProjectIdInDecisions = await sqliteDb.schema.hasColumn('t_decisions', 'project_id');
98
- const hasProjectIdInTasks = await sqliteDb.schema.hasColumn('v4_tasks', 'project_id');
99
- assert.ok(hasProjectIdInDecisions, 't_decisions should have project_id');
100
- assert.ok(hasProjectIdInTasks, 'v4_tasks should have project_id');
101
- console.log(' ✅ Multi-project schema verified');
102
- });
103
- });
104
- // ========================================================================
105
- // REQUIREMENT 2: Seed each database with test data
106
- // ========================================================================
107
- describe('Requirement 2: Seed with multi-project test data', () => {
108
- it('should seed SQLite with multi-project data', async () => {
109
- console.log(' 🌱 Seeding SQLite with test data...');
110
- await seedTestData(sqliteDb);
111
- await assertSeededDataExists(sqliteDb);
112
- // Verify multi-project isolation
113
- // Note: Migration creates 1 default project (mcp-sqlew), we add 2 test projects
114
- const projects = await sqliteDb('m_projects').select();
115
- assert.ok(projects.length >= 2, 'Should have at least 2 test projects');
116
- const decisions = await sqliteDb('t_decisions').select();
117
- assert.strictEqual(decisions.length, 2, 'Should have 2 decisions');
118
- // Verify decisions are in different projects
119
- const project1Decisions = decisions.filter(d => d.project_id === 10);
120
- const project2Decisions = decisions.filter(d => d.project_id === 20);
121
- assert.strictEqual(project1Decisions.length, 1, 'Project 10 should have 1 decision');
122
- assert.strictEqual(project2Decisions.length, 1, 'Project 20 should have 1 decision');
123
- console.log(' ✅ Multi-project data seeded and verified');
124
- });
125
- });
126
- // ========================================================================
127
- // REQUIREMENT 3: Export each database using sql-dump
128
- // ========================================================================
129
- describe('Requirement 3: Export databases using sql-dump', () => {
130
- it('should export SQLite to MySQL format', async () => {
131
- console.log(' 📤 Exporting SQLite → MySQL...');
132
- const dump = await generateSqlDump(sqliteDb, 'mysql', {
133
- includeHeader: true,
134
- includeSchema: true,
135
- chunkSize: 100,
136
- });
137
- // Verify dump contains schema and data
138
- assert.ok(dump.includes('CREATE TABLE'), 'Should contain CREATE TABLE statements');
139
- assert.ok(dump.includes('INSERT INTO') || dump.includes('insert into'), 'Should contain INSERT statements');
140
- assert.ok(dump.includes('m_projects'), 'Should include m_projects table');
141
- assert.ok(dump.includes('t_decisions'), 'Should include t_decisions table');
142
- console.log(` ✅ MySQL dump generated (${dump.length} chars)`);
143
- });
144
- it('should export SQLite to PostgreSQL format', async () => {
145
- console.log(' 📤 Exporting SQLite → PostgreSQL...');
146
- const dump = await generateSqlDump(sqliteDb, 'postgresql', {
147
- includeHeader: true,
148
- includeSchema: true,
149
- chunkSize: 100,
150
- });
151
- // Verify PostgreSQL-specific syntax
152
- assert.ok(dump.includes('CREATE TABLE'), 'Should contain CREATE TABLE statements');
153
- assert.ok(dump.includes('INSERT INTO') || dump.includes('insert into'), 'Should contain INSERT statements');
154
- assert.ok(dump.includes('SERIAL') || dump.includes('PRIMARY KEY'), 'Should use PostgreSQL syntax');
155
- console.log(` ✅ PostgreSQL dump generated (${dump.length} chars)`);
156
- });
157
- });
158
- // ========================================================================
159
- // REQUIREMENT 4: Drop all schemas
160
- // ========================================================================
161
- describe('Requirement 4: Drop all schemas from databases', () => {
162
- it('should drop all tables from MySQL', async () => {
163
- console.log(' 🗑️ Dropping MySQL tables...');
164
- await dropAllTables(mysqlDb, 'mysql');
165
- const tables = await getTables(mysqlDb, 'mysql');
166
- assert.strictEqual(tables.length, 0, 'MySQL should have no tables');
167
- console.log(' ✅ MySQL tables dropped');
168
- });
169
- it('should drop all tables from MariaDB', async () => {
170
- console.log(' 🗑️ Dropping MariaDB tables...');
171
- await dropAllTables(mariadbDb, 'mariadb');
172
- const tables = await getTables(mariadbDb, 'mariadb');
173
- assert.strictEqual(tables.length, 0, 'MariaDB should have no tables');
174
- console.log(' ✅ MariaDB tables dropped');
175
- });
176
- it('should drop all tables from PostgreSQL', async () => {
177
- console.log(' 🗑️ Dropping PostgreSQL tables...');
178
- await dropAllTables(postgresDb, 'postgresql');
179
- const tables = await getTables(postgresDb, 'postgresql');
180
- assert.strictEqual(tables.length, 0, 'PostgreSQL should have no tables');
181
- console.log(' ✅ PostgreSQL tables dropped');
182
- });
183
- });
184
- // ========================================================================
185
- // REQUIREMENT 5: Test whether dump SQL can be imported
186
- // ========================================================================
187
- describe('Requirement 5: Import dump SQL to all databases', () => {
188
- it('should import SQLite dump to MySQL', async () => {
189
- console.log(' 📥 Importing SQLite dump → MySQL...');
190
- // Generate dump
191
- const dump = await generateSqlDump(sqliteDb, 'mysql', {
192
- includeSchema: true,
193
- chunkSize: 100,
194
- });
195
- // Import via Docker
196
- const config = getDbConfig('mysql');
197
- await importSqlToDocker(dump, config.containerName, 'mysql');
198
- console.log(' ✅ Import completed');
199
- // Verify tables exist
200
- await assertTableCountsMatch(sqliteDb, 'sqlite', mysqlDb, 'mysql');
201
- // Verify multi-project tables
202
- const hasProjects = await mysqlDb.schema.hasTable('m_projects');
203
- const hasDecisions = await mysqlDb.schema.hasTable('t_decisions');
204
- assert.ok(hasProjects, 'MySQL should have m_projects table');
205
- assert.ok(hasDecisions, 'MySQL should have t_decisions table');
206
- // Verify data
207
- await assertRowCountsMatch(sqliteDb, mysqlDb, 'm_projects');
208
- await assertRowCountsMatch(sqliteDb, mysqlDb, 't_decisions');
209
- console.log(' ✅ MySQL data verified');
210
- });
211
- it('should import SQLite dump to MariaDB', async () => {
212
- console.log(' 📥 Importing SQLite dump → MariaDB...');
213
- // Generate dump
214
- const dump = await generateSqlDump(sqliteDb, 'mysql', {
215
- includeSchema: true,
216
- chunkSize: 100,
217
- });
218
- // Import via Docker
219
- const config = getDbConfig('mariadb');
220
- await importSqlToDocker(dump, config.containerName, 'mariadb');
221
- console.log(' ✅ Import completed');
222
- // Verify tables exist
223
- await assertTableCountsMatch(sqliteDb, 'sqlite', mariadbDb, 'mariadb');
224
- // Verify data
225
- await assertRowCountsMatch(sqliteDb, mariadbDb, 'm_projects');
226
- await assertRowCountsMatch(sqliteDb, mariadbDb, 't_decisions');
227
- console.log(' ✅ MariaDB data verified');
228
- });
229
- it('should import SQLite dump to PostgreSQL', async () => {
230
- console.log(' 📥 Importing SQLite dump → PostgreSQL...');
231
- // Generate dump
232
- const dump = await generateSqlDump(sqliteDb, 'postgresql', {
233
- includeSchema: true,
234
- chunkSize: 100,
235
- });
236
- // Import via Docker
237
- const config = getDbConfig('postgresql');
238
- await importSqlToDocker(dump, config.containerName, 'postgresql');
239
- console.log(' ✅ Import completed');
240
- // Verify tables exist
241
- await assertTableCountsMatch(sqliteDb, 'sqlite', postgresDb, 'postgresql');
242
- // Verify data
243
- await assertRowCountsMatch(sqliteDb, postgresDb, 'm_projects');
244
- await assertRowCountsMatch(sqliteDb, postgresDb, 't_decisions');
245
- console.log(' ✅ PostgreSQL data verified');
246
- });
247
- });
248
- // ========================================================================
249
- // BONUS: Verify multi-project schema integrity
250
- // ========================================================================
251
- describe('Bonus: Verify multi-project schema integrity', () => {
252
- it('should verify composite PRIMARY KEY on MySQL', async () => {
253
- console.log(' 🔍 Verifying MySQL composite PRIMARY KEY...');
254
- const pkQuery = await mysqlDb.raw(`
255
- SELECT COLUMN_NAME
256
- FROM INFORMATION_SCHEMA.COLUMNS
257
- WHERE TABLE_SCHEMA = 'mcp_test'
258
- AND TABLE_NAME = 't_decisions'
259
- AND COLUMN_KEY = 'PRI'
260
- ORDER BY ORDINAL_POSITION
261
- `);
262
- const pkColumns = pkQuery[0].map((r) => r.COLUMN_NAME);
263
- assert.deepStrictEqual(pkColumns, ['key_id', 'project_id'], 'Should have composite PK (key_id, project_id)');
264
- console.log(' ✅ MySQL composite PK verified');
265
- });
266
- it('should verify composite PRIMARY KEY on PostgreSQL', async () => {
267
- console.log(' 🔍 Verifying PostgreSQL composite PRIMARY KEY...');
268
- const pkQuery = await postgresDb.raw(`
269
- SELECT a.attname
270
- FROM pg_index i
271
- JOIN pg_attribute a ON a.attrelid = i.indrelid AND a.attnum = ANY(i.indkey)
272
- WHERE i.indrelid = 't_decisions'::regclass AND i.indisprimary
273
- ORDER BY array_position(i.indkey, a.attnum)
274
- `);
275
- const pkColumns = pkQuery.rows.map((r) => r.attname);
276
- assert.deepStrictEqual(pkColumns, ['key_id', 'project_id'], 'Should have composite PK (key_id, project_id)');
277
- console.log(' ✅ PostgreSQL composite PK verified');
278
- });
279
- it('should verify FK constraints preserved on MySQL', async () => {
280
- console.log(' 🔍 Verifying MySQL FK constraints...');
281
- // t_decisions should have FK to m_projects
282
- await assertFKConstraintsExist(mysqlDb, 'mysql', 't_decisions', 1);
283
- // v4_tasks should have FK to m_projects
284
- await assertFKConstraintsExist(mysqlDb, 'mysql', 'v4_tasks', 1);
285
- console.log(' ✅ MySQL FK constraints verified');
286
- });
287
- it('should verify FK constraints preserved on PostgreSQL', async () => {
288
- console.log(' 🔍 Verifying PostgreSQL FK constraints...');
289
- // t_decisions should have FK to m_projects
290
- await assertFKConstraintsExist(postgresDb, 'postgresql', 't_decisions', 1);
291
- // v4_tasks should have FK to m_projects
292
- await assertFKConstraintsExist(postgresDb, 'postgresql', 'v4_tasks', 1);
293
- console.log(' ✅ PostgreSQL FK constraints verified');
294
- });
295
- it('should verify multi-project data isolation', async () => {
296
- console.log(' 🔍 Verifying multi-project data isolation...');
297
- // MySQL: Verify data is properly isolated by project_id
298
- const mysqlDecisions = await mysqlDb('t_decisions').select();
299
- const mysqlProjects = mysqlDecisions.map(d => d.project_id).sort((a, b) => a - b);
300
- assert.deepStrictEqual(mysqlProjects, [10, 20], 'MySQL should have decisions in projects 10 and 20');
301
- // PostgreSQL: Verify same isolation
302
- const pgDecisions = await postgresDb('t_decisions').select();
303
- const pgProjects = pgDecisions.map(d => d.project_id).sort((a, b) => a - b);
304
- assert.deepStrictEqual(pgProjects, [10, 20], 'PostgreSQL should have decisions in projects 10 and 20');
305
- console.log(' ✅ Multi-project isolation verified');
306
- });
307
- });
308
- // ========================================================================
309
- // VALIDATION: Detect TEXT PRIMARY KEY and nullable composite PK errors
310
- // ========================================================================
311
- describe('Schema Validation: TEXT PRIMARY KEY and nullable composite PK', () => {
312
- it('should validate no TEXT columns used as PRIMARY KEY in MySQL dump', async () => {
313
- console.log(' 🔍 Validating MySQL dump for TEXT PRIMARY KEY errors...');
314
- // Generate MySQL dump
315
- const dump = await generateSqlDump(sqliteDb, 'mysql', {
316
- includeSchema: true,
317
- chunkSize: 100,
318
- });
319
- // Check for TEXT PRIMARY KEY pattern (MariaDB 10.5 incompatible)
320
- const textPrimaryKeyPattern = /\bTEXT\s+PRIMARY\s+KEY/gi;
321
- const matches = dump.match(textPrimaryKeyPattern);
322
- if (matches) {
323
- console.log(` ❌ Found ${matches.length} TEXT PRIMARY KEY instances (MariaDB 10.5 incompatible):`);
324
- const lines = dump.split('\n');
325
- lines.forEach((line, idx) => {
326
- if (textPrimaryKeyPattern.test(line)) {
327
- console.log(` Line ${idx + 1}: ${line.trim()}`);
328
- }
329
- });
330
- }
331
- assert.strictEqual(matches, null, 'MySQL dump should not contain TEXT PRIMARY KEY (MariaDB 10.5 incompatible)');
332
- console.log(' ✅ No TEXT PRIMARY KEY found in MySQL dump');
333
- });
334
- it('should validate no nullable columns in composite PRIMARY KEY in MySQL dump', async () => {
335
- console.log(' 🔍 Validating MySQL dump for nullable composite PRIMARY KEY errors...');
336
- // Generate MySQL dump
337
- const dump = await generateSqlDump(sqliteDb, 'mysql', {
338
- includeSchema: true,
339
- chunkSize: 100,
340
- });
341
- // Extract CREATE TABLE statements
342
- const createTableRegex = /CREATE TABLE[^;]+;/gi;
343
- const createStatements = dump.match(createTableRegex) || [];
344
- const errors = [];
345
- for (const stmt of createStatements) {
346
- // Check if statement has composite PRIMARY KEY
347
- const compositePkMatch = stmt.match(/PRIMARY\s+KEY\s*\(([^)]+)\)/i);
348
- if (!compositePkMatch)
349
- continue;
350
- const pkColumns = compositePkMatch[1].split(',').map(c => c.trim().replace(/[`"']/g, ''));
351
- if (pkColumns.length < 2)
352
- continue; // Not a composite PK
353
- // Extract table name
354
- const tableNameMatch = stmt.match(/CREATE TABLE\s+[`"]?(\w+)[`"]?/i);
355
- const tableName = tableNameMatch ? tableNameMatch[1] : 'unknown';
356
- // Check if any PK column is nullable
357
- for (const col of pkColumns) {
358
- // Pattern: column_name type NULL or column_name type (without NOT NULL)
359
- const colDefPattern = new RegExp(`[(\`"]?${col}[)\`"]?\\s+\\w+(?:\\(\\d+\\))?\\s+(?!NOT\\s+NULL)`, 'i');
360
- if (colDefPattern.test(stmt) && /\s+NULL\s+/i.test(stmt)) {
361
- errors.push(`Table ${tableName}: Composite PRIMARY KEY column '${col}' appears nullable`);
362
- }
363
- }
364
- }
365
- if (errors.length > 0) {
366
- console.log(` ❌ Found ${errors.length} nullable composite PRIMARY KEY errors:`);
367
- errors.forEach(err => console.log(` - ${err}`));
368
- assert.fail(`Found nullable columns in composite PRIMARY KEY: ${errors.join('; ')}`);
369
- }
370
- console.log(' ✅ No nullable composite PRIMARY KEY found in MySQL dump');
371
- });
372
- // Note: v4_config removed in v4.0 - config is now in-memory
373
- // Test 'should validate m_config table uses single-column PRIMARY KEY' removed
374
- it('should validate m_help_tools.tool_name is VARCHAR not TEXT', async () => {
375
- console.log(' 🔍 Validating m_help_tools.tool_name data type...');
376
- // Generate MySQL dump
377
- const dump = await generateSqlDump(sqliteDb, 'mysql', {
378
- includeSchema: true,
379
- chunkSize: 100,
380
- });
381
- // Find m_help_tools CREATE TABLE statement (multi-line safe)
382
- const helpToolsMatch = dump.match(/CREATE TABLE[\s\S]*?m_help_tools[\s\S]*?;/i);
383
- assert.ok(helpToolsMatch, 'Should find m_help_tools table in dump');
384
- const helpToolsStmt = helpToolsMatch[0];
385
- // Check tool_name is VARCHAR, not TEXT
386
- const toolNamePattern = /tool_name[\s\S]*?(VARCHAR|TEXT)/i;
387
- const match = helpToolsStmt.match(toolNamePattern);
388
- assert.ok(match, 'Should find tool_name column definition');
389
- assert.strictEqual(match[1].toUpperCase(), 'VARCHAR', 'tool_name should be VARCHAR not TEXT (MariaDB 10.5 compatibility)');
390
- console.log(' ✅ m_help_tools.tool_name correctly uses VARCHAR');
391
- });
392
- });
393
- });
394
- //# sourceMappingURL=multi-project-migration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-project-migration.test.js","sourceRoot":"","sources":["../../../src/tests/docker/multi-project-migration.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Schema-only migration tests (CREATE TABLE + CREATE VIEW)
3
- *
4
- * Tests that schema structures can be migrated across databases
5
- * without data type conversion issues.
6
- */
7
- export {};
8
- //# sourceMappingURL=schema-migration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-migration.test.d.ts","sourceRoot":"","sources":["../../../src/tests/docker/schema-migration.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,98 +0,0 @@
1
- /**
2
- * Schema-only migration tests (CREATE TABLE + CREATE VIEW)
3
- *
4
- * Tests that schema structures can be migrated across databases
5
- * without data type conversion issues.
6
- */
7
- import knex from 'knex';
8
- import { generateSqlDump } from '../../utils/sql-dump/index.js';
9
- import { describe, it, before, after } from 'node:test';
10
- import assert from 'node:assert';
11
- import { writeFileSync, unlinkSync } from 'node:fs';
12
- import { exec } from 'node:child_process';
13
- import { promisify } from 'node:util';
14
- import { getTestConfig, getDockerExecPrefix } from '../database/testing-config.js';
15
- const execAsync = promisify(exec);
16
- // Test database configurations
17
- const configs = {
18
- sqlite: getTestConfig('sqlite'),
19
- postgresql: getTestConfig('postgresql'),
20
- };
21
- describe('Schema Migration Tests (No Data)', () => {
22
- let sqliteDb;
23
- let postgresDb;
24
- before(async () => {
25
- sqliteDb = knex(configs.sqlite);
26
- postgresDb = knex(configs.postgresql);
27
- console.log(' Verifying database connections...');
28
- await postgresDb.raw('SELECT 1');
29
- console.log(' ✅ Databases connected');
30
- });
31
- after(async () => {
32
- await sqliteDb.destroy();
33
- await postgresDb.destroy();
34
- });
35
- it('should generate schema-only dump (CREATE TABLE + CREATE VIEW)', async () => {
36
- console.log(' Generating schema-only dump...');
37
- const dump = await generateSqlDump(sqliteDb, 'postgresql', {
38
- includeHeader: true,
39
- includeSchema: true,
40
- chunkSize: 0, // No data, schema only
41
- });
42
- // Verify schema elements present
43
- assert.ok(dump.includes('CREATE TABLE'), 'Should contain CREATE TABLE statements');
44
- assert.ok(dump.includes('CREATE VIEW'), 'Should contain CREATE VIEW statements');
45
- assert.ok(!dump.includes('insert into'), 'Should NOT contain INSERT statements');
46
- console.log(` ✅ Schema dump generated (${dump.length} chars)`);
47
- });
48
- it('should migrate schema to PostgreSQL successfully', async () => {
49
- console.log(' Migrating schema to PostgreSQL...');
50
- // Generate schema-only dump
51
- const dump = await generateSqlDump(sqliteDb, 'postgresql', {
52
- includeSchema: true,
53
- chunkSize: 0, // Schema only, no data
54
- });
55
- // Drop and recreate schema
56
- await postgresDb.raw('DROP SCHEMA public CASCADE');
57
- await postgresDb.raw('CREATE SCHEMA public');
58
- // Import via psql
59
- const tempFile = '/tmp/sqlew-schema-test.sql';
60
- writeFileSync(tempFile, dump);
61
- try {
62
- const dockerPrefix = getDockerExecPrefix('postgresql');
63
- const containerName = dockerPrefix.split(' ')[2]; // Extract container name from "docker exec container_name"
64
- await execAsync(`docker cp ${tempFile} ${containerName}:/tmp/schema.sql`);
65
- await execAsync(`${dockerPrefix} psql -U mcp_user -d mcp_test -f /tmp/schema.sql -v ON_ERROR_STOP=1 -q`);
66
- }
67
- finally {
68
- unlinkSync(tempFile);
69
- }
70
- // Verify tables created
71
- const tables = await postgresDb.raw(`
72
- SELECT tablename FROM pg_tables WHERE schemaname = 'public' AND tablename LIKE 'm_%' OR tablename LIKE 't_%'
73
- `);
74
- assert.ok(tables.rows.length > 10, 'Should create multiple tables');
75
- console.log(` ✅ Schema migrated: ${tables.rows.length} tables created`);
76
- // Verify views created
77
- const views = await postgresDb.raw(`
78
- SELECT viewname FROM pg_views WHERE schemaname = 'public'
79
- `);
80
- assert.ok(views.rows.length > 0, 'Should create views');
81
- console.log(` ✅ Views created: ${views.rows.length} views`);
82
- });
83
- it('should verify view definitions are valid', async () => {
84
- console.log(' Verifying view definitions...');
85
- // Query each view to ensure it's valid SQL
86
- const views = await postgresDb.raw(`
87
- SELECT viewname FROM pg_views WHERE schemaname = 'public'
88
- `);
89
- for (const row of views.rows) {
90
- const viewName = row.viewname;
91
- // Query the view (should not throw)
92
- await postgresDb.raw(`SELECT * FROM "${viewName}" LIMIT 0`);
93
- console.log(` ✅ View "${viewName}" is valid`);
94
- }
95
- console.log(` ✅ All ${views.rows.length} views are valid`);
96
- });
97
- });
98
- //# sourceMappingURL=schema-migration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-migration.test.js","sourceRoot":"","sources":["../../../src/tests/docker/schema-migration.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Workflow 1 Debug - Isolate the failure
3
- */
4
- export {};
5
- //# sourceMappingURL=e2e-workflow1-debug.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"e2e-workflow1-debug.test.d.ts","sourceRoot":"","sources":["../../../src/tests/integration/e2e-workflow1-debug.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}