sqlew 3.6.10 → 3.7.1

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 (372) hide show
  1. package/CHANGELOG.md +346 -0
  2. package/README.md +54 -39
  3. package/assets/config.example.toml +93 -0
  4. package/assets/kanban-visualizer.png +0 -0
  5. package/assets/sample-agents/sqlew-architect.md +32 -13
  6. package/assets/sample-agents/sqlew-researcher.md +70 -17
  7. package/assets/sample-agents/sqlew-scrum-master.md +60 -25
  8. package/assets/schema.sql +2 -2
  9. package/dist/adapters/auth/auth-factory.d.ts +86 -0
  10. package/dist/adapters/auth/auth-factory.d.ts.map +1 -0
  11. package/dist/adapters/auth/auth-factory.js +103 -0
  12. package/dist/adapters/auth/auth-factory.js.map +1 -0
  13. package/dist/adapters/auth/auth-types.d.ts +30 -0
  14. package/dist/adapters/auth/auth-types.d.ts.map +1 -0
  15. package/dist/adapters/auth/auth-types.js +30 -0
  16. package/dist/adapters/auth/auth-types.js.map +1 -0
  17. package/dist/adapters/auth/base-auth-provider.d.ts +327 -0
  18. package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -0
  19. package/dist/adapters/auth/base-auth-provider.js +111 -0
  20. package/dist/adapters/auth/base-auth-provider.js.map +1 -0
  21. package/dist/adapters/auth/direct-auth-provider.d.ts +356 -0
  22. package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -0
  23. package/dist/adapters/auth/direct-auth-provider.js +406 -0
  24. package/dist/adapters/auth/direct-auth-provider.js.map +1 -0
  25. package/dist/adapters/base-adapter.d.ts +638 -0
  26. package/dist/adapters/base-adapter.d.ts.map +1 -0
  27. package/dist/adapters/base-adapter.js +557 -0
  28. package/dist/adapters/base-adapter.js.map +1 -0
  29. package/dist/adapters/index.d.ts +13 -2
  30. package/dist/adapters/index.d.ts.map +1 -1
  31. package/dist/adapters/index.js +27 -5
  32. package/dist/adapters/index.js.map +1 -1
  33. package/dist/adapters/mysql-adapter.d.ts +547 -6
  34. package/dist/adapters/mysql-adapter.d.ts.map +1 -1
  35. package/dist/adapters/mysql-adapter.js +651 -32
  36. package/dist/adapters/mysql-adapter.js.map +1 -1
  37. package/dist/adapters/postgresql-adapter.d.ts +15 -4
  38. package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
  39. package/dist/adapters/postgresql-adapter.js +19 -2
  40. package/dist/adapters/postgresql-adapter.js.map +1 -1
  41. package/dist/adapters/sqlite-adapter.d.ts +35 -5
  42. package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
  43. package/dist/adapters/sqlite-adapter.js +57 -18
  44. package/dist/adapters/sqlite-adapter.js.map +1 -1
  45. package/dist/cli/db-dump.d.ts +32 -0
  46. package/dist/cli/db-dump.d.ts.map +1 -0
  47. package/dist/cli/db-dump.js +409 -0
  48. package/dist/cli/db-dump.js.map +1 -0
  49. package/dist/cli.js +24 -14
  50. package/dist/cli.js.map +1 -1
  51. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
  52. package/dist/{migrations → config}/knex/bootstrap/20251025020452_create_master_tables.js +7 -2
  53. package/dist/config/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
  54. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
  55. package/dist/{migrations → config}/knex/bootstrap/20251025021152_create_transaction_tables.js +49 -50
  56. package/dist/config/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
  57. package/dist/config/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
  58. package/dist/config/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
  59. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
  60. package/dist/{migrations → config}/knex/bootstrap/20251025021416_seed_master_data.js +11 -6
  61. package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
  62. package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
  63. package/dist/{migrations → config}/knex/bootstrap/20251025070349_create_views.js +66 -14
  64. package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +1 -0
  65. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  66. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +22 -0
  67. package/dist/config/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  68. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  69. package/dist/config/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  70. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
  71. package/dist/{migrations → config}/knex/enhancements/20251025090000_create_help_system_tables.js +6 -0
  72. package/dist/config/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
  73. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  74. package/dist/{migrations → config}/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js +6 -0
  75. package/dist/config/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  76. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
  77. package/dist/{migrations → config}/knex/enhancements/20251025100000_seed_help_metadata.js +6 -0
  78. package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
  79. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  80. package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
  81. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  82. package/dist/{migrations → config}/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js +7 -0
  83. package/dist/config/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  84. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
  85. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js +62 -0
  86. package/dist/config/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
  87. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
  88. package/dist/config/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
  89. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
  90. package/dist/{migrations → config}/knex/enhancements/20251027020000_update_agent_reusability.js +6 -0
  91. package/dist/config/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
  92. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -0
  93. package/dist/{migrations → config}/knex/enhancements/20251028000000_simplify_agent_system.js +6 -0
  94. package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -0
  95. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts +13 -0
  96. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.d.ts.map +1 -0
  97. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js +48 -0
  98. package/dist/config/knex/enhancements/20251031000000_drop_orphaned_message_view.js.map +1 -0
  99. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts +24 -0
  100. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.d.ts.map +1 -0
  101. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js +189 -0
  102. package/dist/config/knex/enhancements/20251104000003_rename_constraints_created_by_to_agent_id.js.map +1 -0
  103. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts +16 -0
  104. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +1 -0
  105. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +65 -0
  106. package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +1 -0
  107. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts +23 -0
  108. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.d.ts.map +1 -0
  109. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js +118 -0
  110. package/dist/config/knex/enhancements/20251105000001_rename_decision_context_decided_by_to_agent_id.js.map +1 -0
  111. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
  112. package/dist/config/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
  113. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
  114. package/dist/config/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
  115. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
  116. package/dist/config/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
  117. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
  118. package/dist/config/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
  119. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
  120. package/dist/config/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
  121. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
  122. package/dist/config/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
  123. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
  124. package/dist/config/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
  125. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts +49 -0
  126. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -0
  127. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +864 -0
  128. package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +1 -0
  129. package/dist/config/loader.d.ts +19 -1
  130. package/dist/config/loader.d.ts.map +1 -1
  131. package/dist/config/loader.js +149 -4
  132. package/dist/config/loader.js.map +1 -1
  133. package/dist/config/types.d.ts +261 -2
  134. package/dist/config/types.d.ts.map +1 -1
  135. package/dist/config/types.js.map +1 -1
  136. package/dist/config/writer.d.ts +65 -0
  137. package/dist/config/writer.d.ts.map +1 -0
  138. package/dist/config/writer.js +139 -0
  139. package/dist/config/writer.js.map +1 -0
  140. package/dist/database.d.ts +11 -2
  141. package/dist/database.d.ts.map +1 -1
  142. package/dist/database.js +62 -6
  143. package/dist/database.js.map +1 -1
  144. package/dist/index.js +173 -39
  145. package/dist/index.js.map +1 -1
  146. package/dist/knexfile.d.ts.map +1 -1
  147. package/dist/knexfile.js +88 -12
  148. package/dist/knexfile.js.map +1 -1
  149. package/dist/tests/all-features.test.js +15 -3
  150. package/dist/tests/all-features.test.js.map +1 -1
  151. package/dist/tests/config-loader.test.d.ts +6 -0
  152. package/dist/tests/config-loader.test.d.ts.map +1 -0
  153. package/dist/tests/config-loader.test.js +201 -0
  154. package/dist/tests/config-loader.test.js.map +1 -0
  155. package/dist/tests/connection-manager-integration.test.d.ts +2 -0
  156. package/dist/tests/connection-manager-integration.test.d.ts.map +1 -0
  157. package/dist/tests/connection-manager-integration.test.js +431 -0
  158. package/dist/tests/connection-manager-integration.test.js.map +1 -0
  159. package/dist/tests/connection-manager.test.d.ts +2 -0
  160. package/dist/tests/connection-manager.test.d.ts.map +1 -0
  161. package/dist/tests/connection-manager.test.js +361 -0
  162. package/dist/tests/connection-manager.test.js.map +1 -0
  163. package/dist/tests/dump-import.test.d.ts +15 -0
  164. package/dist/tests/dump-import.test.d.ts.map +1 -0
  165. package/dist/tests/dump-import.test.js +430 -0
  166. package/dist/tests/dump-import.test.js.map +1 -0
  167. package/dist/tests/migration-idempotency.test.d.ts +2 -0
  168. package/dist/tests/migration-idempotency.test.d.ts.map +1 -0
  169. package/dist/tests/migration-idempotency.test.js +330 -0
  170. package/dist/tests/migration-idempotency.test.js.map +1 -0
  171. package/dist/tests/migration-upgrade-paths.test.d.ts +2 -0
  172. package/dist/tests/migration-upgrade-paths.test.d.ts.map +1 -0
  173. package/dist/tests/migration-upgrade-paths.test.js +248 -0
  174. package/dist/tests/migration-upgrade-paths.test.js.map +1 -0
  175. package/dist/tests/migrations/test-all-versions-real.js +3 -0
  176. package/dist/tests/migrations/test-all-versions-real.js.map +1 -1
  177. package/dist/tests/multi-project-migration.test.d.ts +17 -0
  178. package/dist/tests/multi-project-migration.test.d.ts.map +1 -0
  179. package/dist/tests/multi-project-migration.test.js +399 -0
  180. package/dist/tests/multi-project-migration.test.js.map +1 -0
  181. package/dist/tests/multi-project.test.d.ts +5 -0
  182. package/dist/tests/multi-project.test.d.ts.map +1 -0
  183. package/dist/tests/multi-project.test.js +238 -0
  184. package/dist/tests/multi-project.test.js.map +1 -0
  185. package/dist/tests/schema-migration.test.d.ts +8 -0
  186. package/dist/tests/schema-migration.test.d.ts.map +1 -0
  187. package/dist/tests/schema-migration.test.js +108 -0
  188. package/dist/tests/schema-migration.test.js.map +1 -0
  189. package/dist/tests/sql-dump-converters.test.d.ts +7 -0
  190. package/dist/tests/sql-dump-converters.test.d.ts.map +1 -0
  191. package/dist/tests/sql-dump-converters.test.js +314 -0
  192. package/dist/tests/sql-dump-converters.test.js.map +1 -0
  193. package/dist/tests/sql-dump-cross-database.test.d.ts +21 -0
  194. package/dist/tests/sql-dump-cross-database.test.d.ts.map +1 -0
  195. package/dist/tests/sql-dump-cross-database.test.js +314 -0
  196. package/dist/tests/sql-dump-cross-database.test.js.map +1 -0
  197. package/dist/tests/sql-dump-default-conversions.test.d.ts +8 -0
  198. package/dist/tests/sql-dump-default-conversions.test.d.ts.map +1 -0
  199. package/dist/tests/sql-dump-default-conversions.test.js +141 -0
  200. package/dist/tests/sql-dump-default-conversions.test.js.map +1 -0
  201. package/dist/tests/sql-dump-fk-constraints.test.d.ts +13 -0
  202. package/dist/tests/sql-dump-fk-constraints.test.d.ts.map +1 -0
  203. package/dist/tests/sql-dump-fk-constraints.test.js +381 -0
  204. package/dist/tests/sql-dump-fk-constraints.test.js.map +1 -0
  205. package/dist/tests/sql-dump-indexes.test.d.ts +12 -0
  206. package/dist/tests/sql-dump-indexes.test.d.ts.map +1 -0
  207. package/dist/tests/sql-dump-indexes.test.js +269 -0
  208. package/dist/tests/sql-dump-indexes.test.js.map +1 -0
  209. package/dist/tests/sql-dump-integration.test.d.ts +16 -0
  210. package/dist/tests/sql-dump-integration.test.d.ts.map +1 -0
  211. package/dist/tests/sql-dump-integration.test.js +342 -0
  212. package/dist/tests/sql-dump-integration.test.js.map +1 -0
  213. package/dist/tests/sql-dump-table-ordering.test.d.ts +8 -0
  214. package/dist/tests/sql-dump-table-ordering.test.d.ts.map +1 -0
  215. package/dist/tests/sql-dump-table-ordering.test.js +253 -0
  216. package/dist/tests/sql-dump-table-ordering.test.js.map +1 -0
  217. package/dist/tests/tasks.link-file-backward-compat.test.js +11 -1
  218. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -1
  219. package/dist/tests/tasks.watch-files-action.test.js +11 -1
  220. package/dist/tests/tasks.watch-files-action.test.js.map +1 -1
  221. package/dist/tests/type-conversion.test.d.ts +8 -0
  222. package/dist/tests/type-conversion.test.d.ts.map +1 -0
  223. package/dist/tests/type-conversion.test.js +312 -0
  224. package/dist/tests/type-conversion.test.js.map +1 -0
  225. package/dist/tests/utils/test-helpers.d.ts +93 -0
  226. package/dist/tests/utils/test-helpers.d.ts.map +1 -0
  227. package/dist/tests/utils/test-helpers.js +407 -0
  228. package/dist/tests/utils/test-helpers.js.map +1 -0
  229. package/dist/tools/config.d.ts +58 -0
  230. package/dist/tools/config.d.ts.map +1 -0
  231. package/dist/tools/config.js +281 -0
  232. package/dist/tools/config.js.map +1 -0
  233. package/dist/tools/constraints.d.ts.map +1 -1
  234. package/dist/tools/constraints.js +138 -122
  235. package/dist/tools/constraints.js.map +1 -1
  236. package/dist/tools/context.d.ts.map +1 -1
  237. package/dist/tools/context.js +216 -109
  238. package/dist/tools/context.js.map +1 -1
  239. package/dist/tools/files.d.ts.map +1 -1
  240. package/dist/tools/files.js +123 -102
  241. package/dist/tools/files.js.map +1 -1
  242. package/dist/tools/tasks.d.ts.map +1 -1
  243. package/dist/tools/tasks.js +593 -518
  244. package/dist/tools/tasks.js.map +1 -1
  245. package/dist/tools/utils.d.ts +5 -0
  246. package/dist/tools/utils.d.ts.map +1 -1
  247. package/dist/tools/utils.js +176 -122
  248. package/dist/tools/utils.js.map +1 -1
  249. package/dist/types.d.ts +9 -26
  250. package/dist/types.d.ts.map +1 -1
  251. package/dist/utils/cleanup.d.ts +3 -0
  252. package/dist/utils/cleanup.d.ts.map +1 -1
  253. package/dist/utils/cleanup.js +14 -2
  254. package/dist/utils/cleanup.js.map +1 -1
  255. package/dist/utils/connection-manager.d.ts +59 -0
  256. package/dist/utils/connection-manager.d.ts.map +1 -0
  257. package/dist/utils/connection-manager.js +178 -0
  258. package/dist/utils/connection-manager.js.map +1 -0
  259. package/dist/utils/debug-logger.d.ts +8 -4
  260. package/dist/utils/debug-logger.d.ts.map +1 -1
  261. package/dist/utils/debug-logger.js +27 -7
  262. package/dist/utils/debug-logger.js.map +1 -1
  263. package/dist/utils/error-handler.d.ts +6 -4
  264. package/dist/utils/error-handler.d.ts.map +1 -1
  265. package/dist/utils/error-handler.js +34 -9
  266. package/dist/utils/error-handler.js.map +1 -1
  267. package/dist/utils/parameter-validator.d.ts.map +1 -1
  268. package/dist/utils/parameter-validator.js +50 -16
  269. package/dist/utils/parameter-validator.js.map +1 -1
  270. package/dist/utils/project-context.d.ts +111 -0
  271. package/dist/utils/project-context.d.ts.map +1 -0
  272. package/dist/utils/project-context.js +187 -0
  273. package/dist/utils/project-context.js.map +1 -0
  274. package/dist/utils/sql-dump-converters.d.ts +188 -0
  275. package/dist/utils/sql-dump-converters.d.ts.map +1 -0
  276. package/dist/utils/sql-dump-converters.js +311 -0
  277. package/dist/utils/sql-dump-converters.js.map +1 -0
  278. package/dist/utils/sql-dump.d.ts +102 -0
  279. package/dist/utils/sql-dump.d.ts.map +1 -0
  280. package/dist/utils/sql-dump.js +1550 -0
  281. package/dist/utils/sql-dump.js.map +1 -0
  282. package/dist/utils/vcs-adapter.d.ts +42 -0
  283. package/dist/utils/vcs-adapter.d.ts.map +1 -1
  284. package/dist/utils/vcs-adapter.js +154 -0
  285. package/dist/utils/vcs-adapter.js.map +1 -1
  286. package/docs/BASEADAPTER_IMPLEMENTATION.md +399 -0
  287. package/docs/DATABASE_AUTH.md +445 -0
  288. package/docs/DATABASE_MIGRATION.md +247 -0
  289. package/docs/MULTI_PROJECT_ARCHITECTURE.md +497 -0
  290. package/package.json +12 -4
  291. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +0 -1
  292. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +0 -1
  293. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +0 -1
  294. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +0 -1
  295. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +0 -1
  296. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +0 -1
  297. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +0 -1
  298. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +0 -1
  299. package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +0 -1
  300. package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +0 -1
  301. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
  302. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js +0 -15
  303. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
  304. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
  305. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +0 -1
  306. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +0 -1
  307. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +0 -1
  308. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
  309. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
  310. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +0 -1
  311. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +0 -1
  312. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
  313. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +0 -1
  314. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
  315. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
  316. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
  317. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js +0 -34
  318. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +0 -1
  319. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
  320. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
  321. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +0 -1
  322. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +0 -1
  323. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +0 -1
  324. package/dist/migrations/knex/enhancements/20251028000000_simplify_agent_system.js.map +0 -1
  325. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +0 -1
  326. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +0 -1
  327. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +0 -1
  328. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +0 -1
  329. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +0 -1
  330. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +0 -1
  331. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +0 -1
  332. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +0 -1
  333. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +0 -1
  334. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +0 -1
  335. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +0 -1
  336. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +0 -1
  337. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +0 -1
  338. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +0 -1
  339. /package/dist/{migrations → config}/knex/bootstrap/20251025020452_create_master_tables.d.ts +0 -0
  340. /package/dist/{migrations → config}/knex/bootstrap/20251025021152_create_transaction_tables.d.ts +0 -0
  341. /package/dist/{migrations → config}/knex/bootstrap/20251025021351_create_indexes.d.ts +0 -0
  342. /package/dist/{migrations → config}/knex/bootstrap/20251025021351_create_indexes.js +0 -0
  343. /package/dist/{migrations → config}/knex/bootstrap/20251025021416_seed_master_data.d.ts +0 -0
  344. /package/dist/{migrations → config}/knex/bootstrap/20251025070349_create_views.d.ts +0 -0
  345. /package/dist/{migrations → config}/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts +0 -0
  346. /package/dist/{migrations → config}/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts +0 -0
  347. /package/dist/{migrations → config}/knex/enhancements/20251025082220_fix_task_dependencies_columns.js +0 -0
  348. /package/dist/{migrations → config}/knex/enhancements/20251025090000_create_help_system_tables.d.ts +0 -0
  349. /package/dist/{migrations → config}/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts +0 -0
  350. /package/dist/{migrations → config}/knex/enhancements/20251025100000_seed_help_metadata.d.ts +0 -0
  351. /package/dist/{migrations → config}/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts +0 -0
  352. /package/dist/{migrations → config}/knex/enhancements/20251025100100_seed_remaining_use_cases.js +0 -0
  353. /package/dist/{migrations → config}/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts +0 -0
  354. /package/dist/{migrations → config}/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts +0 -0
  355. /package/dist/{migrations → config}/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts +0 -0
  356. /package/dist/{migrations → config}/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js +0 -0
  357. /package/dist/{migrations → config}/knex/enhancements/20251027020000_update_agent_reusability.d.ts +0 -0
  358. /package/dist/{migrations → config}/knex/enhancements/20251028000000_simplify_agent_system.d.ts +0 -0
  359. /package/dist/{migrations → config}/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +0 -0
  360. /package/dist/{migrations → config}/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +0 -0
  361. /package/dist/{migrations → config}/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +0 -0
  362. /package/dist/{migrations → config}/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +0 -0
  363. /package/dist/{migrations → config}/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +0 -0
  364. /package/dist/{migrations → config}/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +0 -0
  365. /package/dist/{migrations → config}/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +0 -0
  366. /package/dist/{migrations → config}/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +0 -0
  367. /package/dist/{migrations → config}/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +0 -0
  368. /package/dist/{migrations → config}/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +0 -0
  369. /package/dist/{migrations → config}/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +0 -0
  370. /package/dist/{migrations → config}/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +0 -0
  371. /package/dist/{migrations → config}/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +0 -0
  372. /package/dist/{migrations → config}/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +0 -0
@@ -0,0 +1,314 @@
1
+ /**
2
+ * Unit tests for SQL dump converter functions
3
+ *
4
+ * Tests regex pattern conversions for cross-database SQL migration
5
+ */
6
+ import { describe, it } from 'node:test';
7
+ import assert from 'node:assert';
8
+ import { convertIdentifierQuotes, convertAutoIncrement, convertTimestampFunctions, convertBooleanDefaults, convertDataTypes, removeCheckConstraints, removeSqliteDefaultFunctions, } from '../utils/sql-dump-converters.js';
9
+ describe('SQL Dump Converters', () => {
10
+ describe('convertIdentifierQuotes', () => {
11
+ it('should convert double quotes to backticks for MySQL', () => {
12
+ const input = 'CREATE TABLE "users" ("id" INTEGER, "name" TEXT)';
13
+ const expected = 'CREATE TABLE `users` (`id` INTEGER, `name` TEXT)';
14
+ assert.strictEqual(convertIdentifierQuotes(input, 'mysql'), expected);
15
+ });
16
+ it('should convert backticks to double quotes for PostgreSQL', () => {
17
+ const input = 'CREATE TABLE `users` (`id` INT, `name` VARCHAR)';
18
+ const expected = 'CREATE TABLE "users" ("id" INT, "name" VARCHAR)';
19
+ assert.strictEqual(convertIdentifierQuotes(input, 'postgresql'), expected);
20
+ });
21
+ it('should convert backticks to double quotes for SQLite', () => {
22
+ const input = 'CREATE TABLE `users` (`id` INT)';
23
+ const expected = 'CREATE TABLE "users" ("id" INT)';
24
+ assert.strictEqual(convertIdentifierQuotes(input, 'sqlite'), expected);
25
+ });
26
+ it('should handle identifiers with dots and hyphens (PostgreSQL)', () => {
27
+ const input = 'SELECT `schema.table`, `my-column` FROM `table`';
28
+ const expected = 'SELECT "schema.table", "my-column" FROM "table"';
29
+ assert.strictEqual(convertIdentifierQuotes(input, 'postgresql'), expected);
30
+ });
31
+ it('should handle empty string', () => {
32
+ assert.strictEqual(convertIdentifierQuotes('', 'mysql'), '');
33
+ });
34
+ it('should handle SQL with no identifier quotes', () => {
35
+ const input = 'SELECT * FROM users';
36
+ assert.strictEqual(convertIdentifierQuotes(input, 'mysql'), input);
37
+ });
38
+ });
39
+ describe('convertAutoIncrement', () => {
40
+ it('should convert AUTOINCREMENT to AUTO_INCREMENT (SQLite → MySQL)', () => {
41
+ const input = 'id INTEGER PRIMARY KEY AUTOINCREMENT';
42
+ const expected = 'id INTEGER PRIMARY KEY AUTO_INCREMENT';
43
+ assert.strictEqual(convertAutoIncrement(input, 'sqlite', 'mysql'), expected);
44
+ });
45
+ it('should convert AUTOINCREMENT to GENERATED BY DEFAULT AS IDENTITY (SQLite → PostgreSQL)', () => {
46
+ const input = 'id INTEGER AUTOINCREMENT';
47
+ const expected = 'id INTEGER GENERATED BY DEFAULT AS IDENTITY';
48
+ assert.strictEqual(convertAutoIncrement(input, 'sqlite', 'postgresql'), expected);
49
+ });
50
+ it('should convert INTEGER PRIMARY KEY AUTOINCREMENT to SERIAL PRIMARY KEY (SQLite → PostgreSQL)', () => {
51
+ const input = 'id INTEGER PRIMARY KEY AUTOINCREMENT';
52
+ const expected = 'id SERIAL PRIMARY KEY';
53
+ assert.strictEqual(convertAutoIncrement(input, 'sqlite', 'postgresql'), expected);
54
+ });
55
+ it('should convert AUTO_INCREMENT to AUTOINCREMENT (MySQL → SQLite)', () => {
56
+ const input = 'id INT PRIMARY KEY AUTO_INCREMENT';
57
+ const expected = 'id INT PRIMARY KEY AUTOINCREMENT';
58
+ assert.strictEqual(convertAutoIncrement(input, 'mysql', 'sqlite'), expected);
59
+ });
60
+ it('should convert AUTO_INCREMENT to GENERATED ALWAYS AS IDENTITY (MySQL → PostgreSQL)', () => {
61
+ const input = 'id INT AUTO_INCREMENT';
62
+ const expected = 'id INT GENERATED ALWAYS AS IDENTITY';
63
+ assert.strictEqual(convertAutoIncrement(input, 'mysql', 'postgresql'), expected);
64
+ });
65
+ it('should convert SERIAL to INTEGER (PostgreSQL → SQLite)', () => {
66
+ const input = 'id SERIAL PRIMARY KEY';
67
+ const expected = 'id INTEGER PRIMARY KEY';
68
+ assert.strictEqual(convertAutoIncrement(input, 'postgresql', 'sqlite'), expected);
69
+ });
70
+ it('should convert GENERATED BY DEFAULT AS IDENTITY to AUTOINCREMENT (PostgreSQL → SQLite)', () => {
71
+ const input = 'id INTEGER GENERATED BY DEFAULT AS IDENTITY';
72
+ const expected = 'id INTEGER AUTOINCREMENT';
73
+ assert.strictEqual(convertAutoIncrement(input, 'postgresql', 'sqlite'), expected);
74
+ });
75
+ it('should convert SERIAL to INT (PostgreSQL → MySQL)', () => {
76
+ const input = 'id SERIAL PRIMARY KEY';
77
+ const expected = 'id INT PRIMARY KEY';
78
+ assert.strictEqual(convertAutoIncrement(input, 'postgresql', 'mysql'), expected);
79
+ });
80
+ it('should be case insensitive', () => {
81
+ const input = 'id INTEGER autoincrement';
82
+ const expected = 'id INTEGER AUTO_INCREMENT';
83
+ assert.strictEqual(convertAutoIncrement(input, 'sqlite', 'mysql'), expected);
84
+ });
85
+ it('should handle no autoincrement keywords', () => {
86
+ const input = 'id INTEGER';
87
+ assert.strictEqual(convertAutoIncrement(input, 'sqlite', 'mysql'), input);
88
+ });
89
+ });
90
+ describe('convertTimestampFunctions', () => {
91
+ it('should convert unixepoch() to UNIX_TIMESTAMP() (SQLite → MySQL)', () => {
92
+ const input = 'SELECT unixepoch() AS current_time';
93
+ const expected = 'SELECT UNIX_TIMESTAMP() AS current_time';
94
+ assert.strictEqual(convertTimestampFunctions(input, 'mysql'), expected);
95
+ });
96
+ it('should convert datetime(ts, \'unixepoch\') to FROM_UNIXTIME(ts) (SQLite → MySQL)', () => {
97
+ const input = "SELECT datetime(created_at, 'unixepoch')";
98
+ const expected = 'SELECT FROM_UNIXTIME(created_at)';
99
+ assert.strictEqual(convertTimestampFunctions(input, 'mysql'), expected);
100
+ });
101
+ it('should convert unixepoch() to extract(epoch from now())::integer (SQLite → PostgreSQL)', () => {
102
+ const input = 'SELECT unixepoch()';
103
+ const expected = 'SELECT extract(epoch from now())::integer';
104
+ assert.strictEqual(convertTimestampFunctions(input, 'postgresql'), expected);
105
+ });
106
+ it('should convert datetime(ts, \'unixepoch\') to to_timestamp(ts) (SQLite → PostgreSQL)', () => {
107
+ const input = "SELECT datetime(ts, 'unixepoch')";
108
+ const expected = 'SELECT to_timestamp(ts)';
109
+ assert.strictEqual(convertTimestampFunctions(input, 'postgresql'), expected);
110
+ });
111
+ it('should convert UNIX_TIMESTAMP() to unixepoch() (MySQL → SQLite)', () => {
112
+ const input = 'SELECT UNIX_TIMESTAMP()';
113
+ const expected = 'SELECT unixepoch()';
114
+ assert.strictEqual(convertTimestampFunctions(input, 'sqlite'), expected);
115
+ });
116
+ it('should convert FROM_UNIXTIME(ts) to datetime(ts, \'unixepoch\') (MySQL → SQLite)', () => {
117
+ const input = 'SELECT FROM_UNIXTIME(created_at)';
118
+ const expected = "SELECT datetime(created_at, 'unixepoch')";
119
+ assert.strictEqual(convertTimestampFunctions(input, 'sqlite'), expected);
120
+ });
121
+ it('should convert extract(epoch from now())::integer to unixepoch() (PostgreSQL → SQLite)', () => {
122
+ const input = 'SELECT extract(epoch from now())::integer';
123
+ const expected = 'SELECT unixepoch()';
124
+ assert.strictEqual(convertTimestampFunctions(input, 'sqlite'), expected);
125
+ });
126
+ it('should handle multiple function conversions in one statement', () => {
127
+ const input = "SELECT unixepoch(), datetime(ts, 'unixepoch')";
128
+ const expected = 'SELECT UNIX_TIMESTAMP(), FROM_UNIXTIME(ts)';
129
+ assert.strictEqual(convertTimestampFunctions(input, 'mysql'), expected);
130
+ });
131
+ it('should handle empty string', () => {
132
+ assert.strictEqual(convertTimestampFunctions('', 'mysql'), '');
133
+ });
134
+ });
135
+ describe('convertBooleanDefaults', () => {
136
+ it('should convert boolean default \'0\' to false (PostgreSQL)', () => {
137
+ const input = "is_active BOOLEAN default '0'";
138
+ const expected = 'is_active boolean default false';
139
+ assert.strictEqual(convertBooleanDefaults(input, 'postgresql'), expected);
140
+ });
141
+ it('should convert boolean default \'1\' to true (PostgreSQL)', () => {
142
+ const input = "is_active BOOLEAN default '1'";
143
+ const expected = 'is_active boolean default true';
144
+ assert.strictEqual(convertBooleanDefaults(input, 'postgresql'), expected);
145
+ });
146
+ it('should convert boolean default 0 to false (PostgreSQL)', () => {
147
+ const input = 'is_active BOOLEAN default 0';
148
+ const expected = 'is_active boolean default false';
149
+ assert.strictEqual(convertBooleanDefaults(input, 'postgresql'), expected);
150
+ });
151
+ it('should convert boolean default 1 to true (PostgreSQL)', () => {
152
+ const input = 'is_active BOOLEAN default 1';
153
+ const expected = 'is_active boolean default true';
154
+ assert.strictEqual(convertBooleanDefaults(input, 'postgresql'), expected);
155
+ });
156
+ it('should be case insensitive', () => {
157
+ const input = 'is_active boolean DEFAULT 1';
158
+ const expected = 'is_active boolean default true';
159
+ assert.strictEqual(convertBooleanDefaults(input, 'postgresql'), expected);
160
+ });
161
+ it('should not convert for MySQL or SQLite', () => {
162
+ const input = "is_active BOOLEAN default '1'";
163
+ assert.strictEqual(convertBooleanDefaults(input, 'mysql'), input);
164
+ assert.strictEqual(convertBooleanDefaults(input, 'sqlite'), input);
165
+ });
166
+ it('should handle multiple boolean columns', () => {
167
+ const input = "is_active BOOLEAN default '1', is_deleted BOOLEAN default '0'";
168
+ const expected = 'is_active boolean default true, is_deleted boolean default false';
169
+ assert.strictEqual(convertBooleanDefaults(input, 'postgresql'), expected);
170
+ });
171
+ });
172
+ describe('convertDataTypes', () => {
173
+ it('should convert TEXT with default to VARCHAR(255) (MySQL)', () => {
174
+ const input = "name TEXT default 'anonymous'";
175
+ const expected = "name VARCHAR(255) default 'anonymous'";
176
+ assert.strictEqual(convertDataTypes(input, 'mysql'), expected);
177
+ });
178
+ it('should convert TEXT NOT NULL with default to VARCHAR(255) (MySQL)', () => {
179
+ const input = "name TEXT NOT NULL default 'anonymous'";
180
+ const expected = "name VARCHAR(255) NOT NULL default 'anonymous'";
181
+ assert.strictEqual(convertDataTypes(input, 'mysql'), expected);
182
+ });
183
+ it('should not convert TEXT without default (MySQL)', () => {
184
+ const input = 'description TEXT';
185
+ assert.strictEqual(convertDataTypes(input, 'mysql'), input);
186
+ });
187
+ it('should convert datetime to TIMESTAMP (PostgreSQL)', () => {
188
+ const input = 'created_at datetime';
189
+ const expected = 'created_at TIMESTAMP';
190
+ assert.strictEqual(convertDataTypes(input, 'postgresql'), expected);
191
+ });
192
+ it('should be case insensitive for TEXT', () => {
193
+ const input = "name text default 'test'";
194
+ const expected = "name VARCHAR(255) default 'test'";
195
+ assert.strictEqual(convertDataTypes(input, 'mysql'), expected);
196
+ });
197
+ it('should handle multiple columns', () => {
198
+ const input = "name TEXT default 'anon', status TEXT default 'active'";
199
+ const expected = "name VARCHAR(255) default 'anon', status VARCHAR(255) default 'active'";
200
+ assert.strictEqual(convertDataTypes(input, 'mysql'), expected);
201
+ });
202
+ it('should not convert for SQLite', () => {
203
+ const input = 'created_at datetime';
204
+ assert.strictEqual(convertDataTypes(input, 'sqlite'), input);
205
+ });
206
+ });
207
+ describe('removeCheckConstraints', () => {
208
+ it('should remove simple CHECK constraint', () => {
209
+ const input = 'CREATE TABLE t (id INT check (id > 0))';
210
+ const expected = 'CREATE TABLE t (id INT)';
211
+ assert.strictEqual(removeCheckConstraints(input), expected);
212
+ });
213
+ it('should remove CHECK constraint with nested parentheses', () => {
214
+ const input = "CREATE TABLE t (status TEXT check (status in ('active', 'inactive')))";
215
+ const expected = 'CREATE TABLE t (status TEXT)';
216
+ assert.strictEqual(removeCheckConstraints(input), expected);
217
+ });
218
+ it('should remove multiple CHECK constraints', () => {
219
+ const input = "id INT check (id > 0), name TEXT check (length(name) > 0)";
220
+ const expected = 'id INT, name TEXT';
221
+ assert.strictEqual(removeCheckConstraints(input), expected);
222
+ });
223
+ it('should be case insensitive', () => {
224
+ const input = 'id INT CHECK (id > 0)';
225
+ const expected = 'id INT';
226
+ assert.strictEqual(removeCheckConstraints(input), expected);
227
+ });
228
+ it('should handle complex nested constraints', () => {
229
+ const input = "priority INTEGER check (priority in (1, 2, 3))";
230
+ const expected = 'priority INTEGER';
231
+ assert.strictEqual(removeCheckConstraints(input), expected);
232
+ });
233
+ it('should handle SQL with no CHECK constraints', () => {
234
+ const input = 'CREATE TABLE t (id INT, name TEXT)';
235
+ assert.strictEqual(removeCheckConstraints(input), input);
236
+ });
237
+ it('should handle empty string', () => {
238
+ assert.strictEqual(removeCheckConstraints(''), '');
239
+ });
240
+ });
241
+ describe('removeSqliteDefaultFunctions', () => {
242
+ it('should remove default (strftime(...)) function', () => {
243
+ const input = "created_at INTEGER default (strftime('%s', 'now'))";
244
+ const expected = 'created_at INTEGER default 0';
245
+ assert.strictEqual(removeSqliteDefaultFunctions(input), expected);
246
+ });
247
+ it('should remove default strftime(...) function (no parens)', () => {
248
+ const input = "created_at INTEGER default strftime('%s', 'now')";
249
+ const expected = 'created_at INTEGER default 0';
250
+ assert.strictEqual(removeSqliteDefaultFunctions(input), expected);
251
+ });
252
+ it('should remove multiple strftime functions', () => {
253
+ const input = "created_at INTEGER default (strftime('%s', 'now')), updated_at INTEGER default strftime('%s', 'now')";
254
+ const expected = 'created_at INTEGER default 0, updated_at INTEGER default 0';
255
+ assert.strictEqual(removeSqliteDefaultFunctions(input), expected);
256
+ });
257
+ it('should be case insensitive', () => {
258
+ const input = "created_at INTEGER DEFAULT (STRFTIME('%s', 'now'))";
259
+ const expected = 'created_at INTEGER default 0';
260
+ assert.strictEqual(removeSqliteDefaultFunctions(input), expected);
261
+ });
262
+ it('should handle SQL with no strftime functions', () => {
263
+ const input = 'created_at INTEGER default 0';
264
+ assert.strictEqual(removeSqliteDefaultFunctions(input), input);
265
+ });
266
+ it('should handle empty string', () => {
267
+ assert.strictEqual(removeSqliteDefaultFunctions(''), '');
268
+ });
269
+ });
270
+ describe('Edge cases and integration', () => {
271
+ it('should handle combined conversions (SQLite → MySQL)', () => {
272
+ let sql = 'CREATE TABLE "users" ("id" INTEGER AUTOINCREMENT, "name" TEXT default \'test\')';
273
+ sql = convertIdentifierQuotes(sql, 'mysql');
274
+ sql = convertAutoIncrement(sql, 'sqlite', 'mysql');
275
+ sql = convertDataTypes(sql, 'mysql');
276
+ const expected = 'CREATE TABLE `users` (`id` INTEGER AUTO_INCREMENT, `name` VARCHAR(255) default \'test\')';
277
+ assert.strictEqual(sql, expected);
278
+ });
279
+ it('should handle combined conversions (SQLite → PostgreSQL)', () => {
280
+ let sql = 'CREATE TABLE "users" ("id" INTEGER AUTOINCREMENT, "active" BOOLEAN default 1)';
281
+ sql = convertIdentifierQuotes(sql, 'postgresql');
282
+ sql = convertAutoIncrement(sql, 'sqlite', 'postgresql');
283
+ sql = convertBooleanDefaults(sql, 'postgresql');
284
+ const expected = 'CREATE TABLE "users" ("id" INTEGER GENERATED BY DEFAULT AS IDENTITY, "active" boolean default true)';
285
+ assert.strictEqual(sql, expected);
286
+ });
287
+ it('should handle view conversions with timestamp functions', () => {
288
+ let sql = 'CREATE VIEW v_recent AS SELECT unixepoch() as ts';
289
+ sql = convertTimestampFunctions(sql, 'mysql');
290
+ const expected = 'CREATE VIEW v_recent AS SELECT UNIX_TIMESTAMP() as ts';
291
+ assert.strictEqual(sql, expected);
292
+ });
293
+ it('should handle empty SQL gracefully', () => {
294
+ assert.strictEqual(convertIdentifierQuotes('', 'mysql'), '');
295
+ assert.strictEqual(convertAutoIncrement('', 'sqlite', 'mysql'), '');
296
+ assert.strictEqual(convertTimestampFunctions('', 'mysql'), '');
297
+ assert.strictEqual(convertBooleanDefaults('', 'postgresql'), '');
298
+ assert.strictEqual(convertDataTypes('', 'mysql'), '');
299
+ assert.strictEqual(removeCheckConstraints(''), '');
300
+ assert.strictEqual(removeSqliteDefaultFunctions(''), '');
301
+ });
302
+ it('should handle SQL with no matches gracefully', () => {
303
+ const sql = 'SELECT * FROM users WHERE id = 1';
304
+ assert.strictEqual(convertIdentifierQuotes(sql, 'mysql'), sql);
305
+ assert.strictEqual(convertAutoIncrement(sql, 'sqlite', 'mysql'), sql);
306
+ assert.strictEqual(convertTimestampFunctions(sql, 'mysql'), sql);
307
+ assert.strictEqual(convertBooleanDefaults(sql, 'postgresql'), sql);
308
+ assert.strictEqual(convertDataTypes(sql, 'mysql'), sql);
309
+ assert.strictEqual(removeCheckConstraints(sql), sql);
310
+ assert.strictEqual(removeSqliteDefaultFunctions(sql), sql);
311
+ });
312
+ });
313
+ });
314
+ //# sourceMappingURL=sql-dump-converters.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-dump-converters.test.js","sourceRoot":"","sources":["../../src/tests/sql-dump-converters.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Automated Cross-Database SQL Dump Export/Import Tests
3
+ *
4
+ * Tests complete export/import workflow:
5
+ * SQLite → MySQL/MariaDB/PostgreSQL
6
+ *
7
+ * Verifies:
8
+ * - SQL dump generation
9
+ * - Import into Docker containers
10
+ * - Schema integrity (table counts, row counts)
11
+ * - Constraint preservation (FK, UNIQUE, PRIMARY KEY)
12
+ * - Data type conversions (TEXT→VARCHAR, boolean, datetime)
13
+ *
14
+ * Prerequisites:
15
+ * - Docker containers running (MySQL, MariaDB, PostgreSQL)
16
+ * - Run: docker-compose -f docker/docker-compose.yml up -d
17
+ *
18
+ * Skip in CI: Set SKIP_DOCKER_TESTS=true or CI=true
19
+ */
20
+ export {};
21
+ //# sourceMappingURL=sql-dump-cross-database.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-dump-cross-database.test.d.ts","sourceRoot":"","sources":["../../src/tests/sql-dump-cross-database.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}