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,177 +0,0 @@
1
- // formatters/bulk-insert.ts - Bulk INSERT statement generation
2
- import knex from 'knex';
3
- import { quoteIdentifier } from './identifiers.js';
4
- import { formatValue, convertValueWithType } from './value-formatter.js';
5
- /**
6
- * Extract column names from INSERT SQL statement
7
- * E.g., 'insert into "m_agents" ("id", "name", "is_reusable") values ...' => ["id", "name", "is_reusable"]
8
- */
9
- function extractColumnNamesFromInsertSql(sql) {
10
- // Match: insert into "table" ("col1", "col2", "col3") values
11
- // Or: insert into `table` (`col1`, `col2`) values
12
- // Or: INSERT INTO table (col1, col2) VALUES
13
- const match = sql.match(/insert\s+(?:ignore\s+)?into\s+[`"]?\w+[`"]?\s*\((.*?)\)\s*values/i);
14
- if (!match) {
15
- return [];
16
- }
17
- const columnsPart = match[1];
18
- // Split by comma and extract column names (removing quotes and whitespace)
19
- return columnsPart
20
- .split(',')
21
- .map(col => col.trim().replace(/[`"]/g, ''));
22
- }
23
- /**
24
- * Embed bindings from Knex parameterized query into plain SQL
25
- * with optional type-aware conversion for cross-database migrations
26
- */
27
- function embedBindings(sql, bindings, format, columnTypes, columnNames, columnInfo // NEW: columnInfo from knex(table).columnInfo()
28
- ) {
29
- // Detect source format (for now, assume SQLite as source)
30
- // TODO: Make this configurable or detect from the knex instance
31
- const sourceFormat = 'sqlite';
32
- if (format === 'postgresql') {
33
- // PostgreSQL: $1, $2, ... (replace in reverse order to avoid $10 matching $1)
34
- let result = sql;
35
- for (let i = bindings.length; i >= 1; i--) {
36
- const placeholder = `$${i}`;
37
- // For multi-row inserts, column names repeat: $1-$5 map to cols 0-4, $6-$10 map to cols 0-4, etc.
38
- const columnIndex = columnNames && columnNames.length > 0 ? (i - 1) % columnNames.length : i - 1;
39
- const columnName = columnNames?.[columnIndex] || '';
40
- // Use new convertValueWithType with columnInfo if available
41
- const value = columnInfo
42
- ? convertValueWithType(bindings[i - 1], columnName, columnInfo, sourceFormat, format)
43
- : formatValue(bindings[i - 1], format);
44
- result = result.replace(new RegExp(`\\${placeholder}\\b`, 'g'), value);
45
- }
46
- return result;
47
- }
48
- else {
49
- // MySQL/SQLite: ? placeholders
50
- let result = sql;
51
- let bindingIndex = 0;
52
- result = result.replace(/\?/g, () => {
53
- if (bindingIndex >= bindings.length) {
54
- throw new Error(`Not enough bindings: ${bindings.length} provided, more needed`);
55
- }
56
- // For multi-row inserts, column names repeat
57
- const columnIndex = columnNames && columnNames.length > 0 ? bindingIndex % columnNames.length : bindingIndex;
58
- const columnName = columnNames?.[columnIndex] || '';
59
- // Use new convertValueWithType with columnInfo if available
60
- const value = columnInfo
61
- ? convertValueWithType(bindings[bindingIndex], columnName, columnInfo, sourceFormat, format)
62
- : formatValue(bindings[bindingIndex], format);
63
- bindingIndex++;
64
- return value;
65
- });
66
- return result;
67
- }
68
- }
69
- /**
70
- * Create a throwaway Knex instance for SQL generation
71
- */
72
- function createKnexForFormat(format) {
73
- const client = format === 'mysql' ? 'mysql2' : format === 'postgresql' ? 'pg' : 'better-sqlite3';
74
- return knex({
75
- client,
76
- connection: client === 'better-sqlite3' ? { filename: ':memory:' } : {},
77
- useNullAsDefault: client === 'better-sqlite3',
78
- });
79
- }
80
- /**
81
- * Generate a bulk INSERT statement for a table with conflict resolution
82
- *
83
- * REFACTORED: Uses Knex query builder instead of manual string construction
84
- */
85
- export function generateBulkInsert(table, rows, format, options = {}) {
86
- if (rows.length === 0) {
87
- return [];
88
- }
89
- const { chunkSize = 100, conflictMode = 'error', primaryKeys = [], columnTypes, columnInfo, } = options;
90
- const statements = [];
91
- const targetKnex = createKnexForFormat(format);
92
- try {
93
- // Split into chunks to avoid too-large statements
94
- for (let i = 0; i < rows.length; i += chunkSize) {
95
- const chunk = rows.slice(i, i + chunkSize);
96
- // Use Knex to generate parameterized INSERT
97
- let builder = targetKnex(table).insert(chunk);
98
- // Handle conflict modes with Knex-specific methods
99
- if (conflictMode === 'ignore') {
100
- if (format === 'mysql') {
101
- // MySQL: INSERT IGNORE is handled via raw SQL modification
102
- const { sql, bindings } = builder.toSQL().toNative();
103
- const ignoreSql = sql.replace(/^insert into/i, 'INSERT IGNORE INTO');
104
- const columnNames = extractColumnNamesFromInsertSql(ignoreSql);
105
- const embedded = embedBindings(ignoreSql, bindings, format, columnTypes, columnNames, columnInfo);
106
- statements.push(embedded + ';');
107
- continue;
108
- }
109
- else if (format === 'postgresql') {
110
- // PostgreSQL: ON CONFLICT DO NOTHING
111
- // Note: Knex's onConflict() requires specifying columns, so we use raw SQL
112
- const { sql, bindings } = builder.toSQL().toNative();
113
- const conflictSql = sql + ' ON CONFLICT DO NOTHING';
114
- const columnNames = extractColumnNamesFromInsertSql(conflictSql);
115
- const embedded = embedBindings(conflictSql, bindings, format, columnTypes, columnNames, columnInfo);
116
- statements.push(embedded + ';');
117
- continue;
118
- }
119
- else {
120
- // SQLite: INSERT OR IGNORE
121
- const { sql, bindings } = builder.toSQL().toNative();
122
- const ignoreSql = sql.replace(/^insert into/i, 'INSERT OR IGNORE INTO');
123
- const columnNames = extractColumnNamesFromInsertSql(ignoreSql);
124
- const embedded = embedBindings(ignoreSql, bindings, format, columnTypes, columnNames, columnInfo);
125
- statements.push(embedded + ';');
126
- continue;
127
- }
128
- }
129
- else if (conflictMode === 'replace') {
130
- // REPLACE mode requires primary keys
131
- if (primaryKeys.length === 0) {
132
- throw new Error(`Cannot use 'replace' mode for table ${table}: no primary key found`);
133
- }
134
- const { sql, bindings } = builder.toSQL().toNative();
135
- const columns = Object.keys(chunk[0]);
136
- const nonPkColumns = columns.filter(col => !primaryKeys.includes(col));
137
- const columnNames = extractColumnNamesFromInsertSql(sql);
138
- if (format === 'mysql') {
139
- // MySQL: ON DUPLICATE KEY UPDATE
140
- const updateClauses = nonPkColumns.map(col => `${quoteIdentifier(col, format)} = VALUES(${quoteIdentifier(col, format)})`);
141
- const finalSql = `${sql}\nON DUPLICATE KEY UPDATE\n ${updateClauses.join(',\n ')}`;
142
- const embedded = embedBindings(finalSql, bindings, format, columnTypes, columnNames, columnInfo);
143
- statements.push(embedded + ';');
144
- }
145
- else if (format === 'postgresql') {
146
- // PostgreSQL: ON CONFLICT DO UPDATE
147
- const quotedPks = primaryKeys.map(pk => quoteIdentifier(pk, format));
148
- const updateClauses = nonPkColumns.map(col => `${quoteIdentifier(col, format)} = EXCLUDED.${quoteIdentifier(col, format)}`);
149
- const finalSql = `${sql}\nON CONFLICT (${quotedPks.join(', ')}) DO UPDATE SET\n ${updateClauses.join(',\n ')}`;
150
- const embedded = embedBindings(finalSql, bindings, format, columnTypes, columnNames, columnInfo);
151
- statements.push(embedded + ';');
152
- }
153
- else {
154
- // SQLite: ON CONFLICT DO UPDATE
155
- const quotedPks = primaryKeys.map(pk => quoteIdentifier(pk, format));
156
- const updateClauses = nonPkColumns.map(col => `${quoteIdentifier(col, format)} = excluded.${quoteIdentifier(col, format)}`);
157
- const finalSql = `${sql}\nON CONFLICT (${quotedPks.join(', ')}) DO UPDATE SET\n ${updateClauses.join(',\n ')}`;
158
- const embedded = embedBindings(finalSql, bindings, format, columnTypes, columnNames, columnInfo);
159
- statements.push(embedded + ';');
160
- }
161
- }
162
- else {
163
- // ERROR mode: Standard INSERT
164
- const { sql, bindings } = builder.toSQL().toNative();
165
- const columnNames = extractColumnNamesFromInsertSql(sql);
166
- const embedded = embedBindings(sql, bindings, format, columnTypes, columnNames, columnInfo);
167
- statements.push(embedded + ';');
168
- }
169
- }
170
- return statements;
171
- }
172
- finally {
173
- // Clean up Knex instance
174
- targetKnex.destroy();
175
- }
176
- }
177
- //# sourceMappingURL=bulk-insert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bulk-insert.js","sourceRoot":"","sources":["../../../../src/utils/sql-dump/formatters/bulk-insert.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { DatabaseFormat } from '../types.js';
2
- /**
3
- * Quote identifier (table or column name) for target database
4
- */
5
- export declare function quoteIdentifier(name: string, format: DatabaseFormat): string;
6
- //# sourceMappingURL=identifiers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../../../../src/utils/sql-dump/formatters/identifiers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAU5E"}
@@ -1,16 +0,0 @@
1
- // formatters/identifiers.ts - Identifier quoting utilities
2
- /**
3
- * Quote identifier (table or column name) for target database
4
- */
5
- export function quoteIdentifier(name, format) {
6
- switch (format) {
7
- case 'mysql':
8
- return `\`${name}\``;
9
- case 'postgresql':
10
- case 'sqlite':
11
- return `"${name}"`;
12
- default:
13
- return `"${name}"`;
14
- }
15
- }
16
- //# sourceMappingURL=identifiers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../../../../src/utils/sql-dump/formatters/identifiers.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAI3D;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,MAAsB;IAClE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,KAAK,IAAI,IAAI,CAAC;QACvB,KAAK,YAAY,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,IAAI,IAAI,GAAG,CAAC;QACrB;YACE,OAAO,IAAI,IAAI,GAAG,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { DatabaseFormat } from '../types.js';
2
- /**
3
- * Format a value for SQL insertion
4
- */
5
- export declare function formatValue(value: any, format: DatabaseFormat, table?: string, column?: string, columnType?: string): string;
6
- /**
7
- * Convert value with type-aware conversion for cross-database migration
8
- * Uses Knex columnInfo() metadata for accurate type detection
9
- *
10
- * @internal - Exported for testing only
11
- */
12
- export declare function convertValueWithType(value: any, columnName: string, columnInfo: Map<string, any>, // From knex(table).columnInfo()
13
- sourceFormat: DatabaseFormat, targetFormat: DatabaseFormat): string;
14
- //# sourceMappingURL=value-formatter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"value-formatter.d.ts","sourceRoot":"","sources":["../../../../src/utils/sql-dump/formatters/value-formatter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAqE5H;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,GAAG,EACV,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,gCAAgC;AAC9D,YAAY,EAAE,cAAc,EAC5B,YAAY,EAAE,cAAc,GAC3B,MAAM,CA8NR"}
@@ -1,281 +0,0 @@
1
- // formatters/value-formatter.ts - Value formatting for SQL insertion
2
- /**
3
- * Format a value for SQL insertion
4
- */
5
- export function formatValue(value, format, table, column, columnType) {
6
- // Handle NULL
7
- if (value === null || value === undefined) {
8
- return 'NULL';
9
- }
10
- // Special case: knex_migrations.migration_time
11
- // Convert Unix timestamp (milliseconds) to datetime/timestamp string
12
- if (table === 'knex_migrations' && column === 'migration_time' && typeof value === 'number') {
13
- if (format === 'mysql') {
14
- const date = new Date(value);
15
- const year = date.getFullYear();
16
- const month = String(date.getMonth() + 1).padStart(2, '0');
17
- const day = String(date.getDate()).padStart(2, '0');
18
- const hours = String(date.getHours()).padStart(2, '0');
19
- const minutes = String(date.getMinutes()).padStart(2, '0');
20
- const seconds = String(date.getSeconds()).padStart(2, '0');
21
- return `'${year}-${month}-${day} ${hours}:${minutes}:${seconds}'`;
22
- }
23
- else if (format === 'postgresql') {
24
- // PostgreSQL: Use to_timestamp() function
25
- return `to_timestamp(${value / 1000})`; // Convert milliseconds to seconds
26
- }
27
- }
28
- // Handle numbers
29
- if (typeof value === 'number') {
30
- // Special case: PostgreSQL boolean columns stored as 0/1 in SQLite
31
- if (format === 'postgresql' && columnType === 'boolean') {
32
- return value === 1 ? 'TRUE' : 'FALSE';
33
- }
34
- return String(value);
35
- }
36
- // Handle booleans
37
- if (typeof value === 'boolean') {
38
- if (format === 'postgresql') {
39
- return value ? 'TRUE' : 'FALSE';
40
- }
41
- // MySQL and SQLite use 0/1
42
- return value ? '1' : '0';
43
- }
44
- // Handle Buffer (binary data)
45
- if (Buffer.isBuffer(value)) {
46
- if (format === 'postgresql') {
47
- // PostgreSQL bytea hex format
48
- return `'\\x${value.toString('hex')}'::bytea`;
49
- }
50
- // MySQL and SQLite hex format
51
- return `X'${value.toString('hex')}'`;
52
- }
53
- // Handle strings
54
- if (typeof value === 'string') {
55
- // Escape single quotes by doubling them
56
- const escaped = value.replace(/'/g, "''");
57
- // Also escape backslashes for MySQL
58
- const finalEscaped = format === 'mysql' ? escaped.replace(/\\/g, '\\\\') : escaped;
59
- return `'${finalEscaped}'`;
60
- }
61
- // Handle objects/arrays (JSON)
62
- if (typeof value === 'object') {
63
- const jsonStr = JSON.stringify(value).replace(/'/g, "''");
64
- return `'${jsonStr}'`;
65
- }
66
- // Fallback
67
- return 'NULL';
68
- }
69
- /**
70
- * Convert value with type-aware conversion for cross-database migration
71
- * Uses Knex columnInfo() metadata for accurate type detection
72
- *
73
- * @internal - Exported for testing only
74
- */
75
- export function convertValueWithType(value, columnName, columnInfo, // From knex(table).columnInfo()
76
- sourceFormat, targetFormat) {
77
- // Handle NULL
78
- if (value === null || value === undefined) {
79
- return 'NULL';
80
- }
81
- const colMeta = columnInfo.get(columnName);
82
- if (!colMeta) {
83
- // Fallback to basic formatValue
84
- return formatValue(value, targetFormat);
85
- }
86
- const colType = (colMeta.type || '').toLowerCase();
87
- // Boolean conversion - enhanced detection
88
- // Knex columnInfo types: 'boolean' (PostgreSQL), 'tinyint' (MySQL), 'integer' (SQLite boolean stored as 0/1)
89
- const isBooleanColumn = colType.includes('bool') ||
90
- colType === 'tinyint' ||
91
- colType === 'bit' ||
92
- colMeta.type === 'boolean' ||
93
- // Additional heuristic: maxLength === 1 for tinyint(1) in MySQL
94
- (colType === 'integer' && colMeta.maxLength === 1);
95
- if (isBooleanColumn) {
96
- // Normalize value to boolean
97
- const boolValue = Boolean(value);
98
- if (targetFormat === 'postgresql') {
99
- return boolValue ? 'TRUE' : 'FALSE';
100
- }
101
- // SQLite and MySQL use 0/1
102
- return boolValue ? '1' : '0';
103
- }
104
- // Timestamp/DateTime conversion - enhanced with columnInfo metadata
105
- const isTimestampColumn = colType.includes('timestamp') ||
106
- colType.includes('datetime') ||
107
- colType.includes('date') ||
108
- colType === 'time';
109
- if (isTimestampColumn) {
110
- if (typeof value === 'number') {
111
- // Unix timestamp - check if milliseconds or seconds based on magnitude
112
- const timestamp = value > 10000000000 ? value : value * 1000;
113
- const date = new Date(timestamp);
114
- // ISO 8601 format: YYYY-MM-DD HH:MM:SS
115
- const year = date.getUTCFullYear();
116
- const month = String(date.getUTCMonth() + 1).padStart(2, '0');
117
- const day = String(date.getUTCDate()).padStart(2, '0');
118
- const hours = String(date.getUTCHours()).padStart(2, '0');
119
- const minutes = String(date.getUTCMinutes()).padStart(2, '0');
120
- const seconds = String(date.getUTCSeconds()).padStart(2, '0');
121
- const isoString = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
122
- if (targetFormat === 'postgresql') {
123
- return `'${isoString}'::timestamp`;
124
- }
125
- else if (targetFormat === 'mysql') {
126
- return `'${isoString}'`;
127
- }
128
- return `'${isoString}'`;
129
- }
130
- else if (typeof value === 'string') {
131
- // Detect ISO 8601 format (e.g., '2025-11-05T00:07:53.343Z')
132
- // ISO 8601 pattern: YYYY-MM-DDTHH:MM:SS.sssZ or with timezone offset
133
- const iso8601Pattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[+-]\d{2}:\d{2})?$/;
134
- if (iso8601Pattern.test(value)) {
135
- // Parse ISO 8601 string and convert to database-compatible format
136
- const date = new Date(value);
137
- const year = date.getUTCFullYear();
138
- const month = String(date.getUTCMonth() + 1).padStart(2, '0');
139
- const day = String(date.getUTCDate()).padStart(2, '0');
140
- const hours = String(date.getUTCHours()).padStart(2, '0');
141
- const minutes = String(date.getUTCMinutes()).padStart(2, '0');
142
- const seconds = String(date.getUTCSeconds()).padStart(2, '0');
143
- const isoString = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
144
- if (targetFormat === 'postgresql') {
145
- return `'${isoString}'::timestamp`;
146
- }
147
- else if (targetFormat === 'mysql') {
148
- return `'${isoString}'`;
149
- }
150
- return `'${isoString}'`;
151
- }
152
- // Already formatted string - ensure proper escaping
153
- const escaped = value.replace(/'/g, "''");
154
- if (targetFormat === 'postgresql') {
155
- return `'${escaped}'::timestamp`;
156
- }
157
- return `'${escaped}'`;
158
- }
159
- else if (value instanceof Date) {
160
- // Date object
161
- const year = value.getUTCFullYear();
162
- const month = String(value.getUTCMonth() + 1).padStart(2, '0');
163
- const day = String(value.getUTCDate()).padStart(2, '0');
164
- const hours = String(value.getUTCHours()).padStart(2, '0');
165
- const minutes = String(value.getUTCMinutes()).padStart(2, '0');
166
- const seconds = String(value.getUTCSeconds()).padStart(2, '0');
167
- const isoString = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
168
- if (targetFormat === 'postgresql') {
169
- return `'${isoString}'::timestamp`;
170
- }
171
- return `'${isoString}'`;
172
- }
173
- }
174
- // Binary/Buffer handling - enhanced with proper encoding
175
- const isBinaryColumn = colType.includes('blob') ||
176
- colType.includes('bytea') ||
177
- colType.includes('binary') ||
178
- colType.includes('varbinary');
179
- if (Buffer.isBuffer(value) || isBinaryColumn) {
180
- const bufferValue = Buffer.isBuffer(value) ? value : Buffer.from(value);
181
- const hexString = bufferValue.toString('hex');
182
- if (targetFormat === 'postgresql') {
183
- // PostgreSQL bytea hex format: '\x...'::bytea
184
- return `'\\x${hexString}'::bytea`;
185
- }
186
- else if (targetFormat === 'mysql') {
187
- // MySQL binary hex format: X'...' or 0x...
188
- return `X'${hexString}'`;
189
- }
190
- // SQLite hex format
191
- return `X'${hexString}'`;
192
- }
193
- // JSON handling - enhanced with proper type casting
194
- const isJsonColumn = colType.includes('json') ||
195
- colType === 'jsonb';
196
- if (isJsonColumn) {
197
- let jsonStr;
198
- if (typeof value === 'string') {
199
- // Already stringified by Knex - validate and escape
200
- try {
201
- JSON.parse(value); // Validate
202
- jsonStr = value.replace(/'/g, "''");
203
- }
204
- catch {
205
- // Invalid JSON string - treat as regular string
206
- jsonStr = JSON.stringify(value).replace(/'/g, "''");
207
- }
208
- }
209
- else if (typeof value === 'object') {
210
- // Object that needs stringification
211
- jsonStr = JSON.stringify(value).replace(/'/g, "''");
212
- }
213
- else {
214
- // Primitive value - stringify
215
- jsonStr = JSON.stringify(value).replace(/'/g, "''");
216
- }
217
- if (targetFormat === 'postgresql') {
218
- // Use JSONB for better performance
219
- return `'${jsonStr}'::jsonb`;
220
- }
221
- else if (targetFormat === 'mysql') {
222
- // MySQL 5.7+ JSON type
223
- return `'${jsonStr}'`;
224
- }
225
- // SQLite stores JSON as TEXT
226
- return `'${jsonStr}'`;
227
- }
228
- // PostgreSQL Arrays - enhanced detection
229
- const isArrayColumn = colType.includes('array') || colType.includes('[]');
230
- if ((isArrayColumn || Array.isArray(value)) && targetFormat === 'postgresql') {
231
- if (Array.isArray(value)) {
232
- // Convert array elements recursively
233
- const arrayStr = value
234
- .map(v => {
235
- if (v === null || v === undefined)
236
- return 'NULL';
237
- if (typeof v === 'string') {
238
- const escaped = v.replace(/'/g, "''").replace(/\\/g, '\\\\');
239
- return `'${escaped}'`;
240
- }
241
- if (typeof v === 'number')
242
- return String(v);
243
- if (typeof v === 'boolean')
244
- return v ? 'TRUE' : 'FALSE';
245
- // Objects - stringify
246
- return `'${JSON.stringify(v).replace(/'/g, "''")}'`;
247
- })
248
- .join(',');
249
- return `ARRAY[${arrayStr}]`;
250
- }
251
- else if (typeof value === 'string') {
252
- // Already formatted array string - pass through
253
- return value;
254
- }
255
- }
256
- // PostgreSQL Enum types
257
- const isEnumColumn = colType === 'enum' || colType.includes('user-defined');
258
- if (isEnumColumn && targetFormat === 'postgresql') {
259
- // Enum values must be quoted strings
260
- const escaped = String(value).replace(/'/g, "''");
261
- return `'${escaped}'`;
262
- }
263
- // Text columns with object values (fallback)
264
- if (colType === 'text' && typeof value === 'object' && !Buffer.isBuffer(value)) {
265
- const jsonStr = JSON.stringify(value).replace(/'/g, "''");
266
- return `'${jsonStr}'`;
267
- }
268
- // Numeric types - ensure no quotes
269
- const isNumericColumn = colType.includes('int') ||
270
- colType.includes('decimal') ||
271
- colType.includes('numeric') ||
272
- colType.includes('real') ||
273
- colType.includes('float') ||
274
- colType.includes('double');
275
- if (isNumericColumn && typeof value === 'number') {
276
- return String(value);
277
- }
278
- // Fallback to basic formatValue
279
- return formatValue(value, targetFormat);
280
- }
281
- //# sourceMappingURL=value-formatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"value-formatter.js","sourceRoot":"","sources":["../../../../src/utils/sql-dump/formatters/value-formatter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { DatabaseFormat } from '../types.js';
2
- /**
3
- * Generate foreign key disable/enable statements
4
- */
5
- export declare function generateForeignKeyControls(format: DatabaseFormat, enable: boolean): string;
6
- /**
7
- * Generate transaction control statements
8
- */
9
- export declare function generateTransactionControl(format: DatabaseFormat, isStart: boolean): string;
10
- //# sourceMappingURL=controls.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../../src/utils/sql-dump/generators/controls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAe1F;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAQ3F"}
@@ -1,36 +0,0 @@
1
- // generators/controls.ts - Foreign key and transaction control statements
2
- /**
3
- * Generate foreign key disable/enable statements
4
- */
5
- export function generateForeignKeyControls(format, enable) {
6
- if (format === 'mysql') {
7
- return enable
8
- ? 'SET FOREIGN_KEY_CHECKS=1;'
9
- : 'SET FOREIGN_KEY_CHECKS=0;';
10
- }
11
- else if (format === 'postgresql') {
12
- return enable
13
- ? 'SET session_replication_role = DEFAULT;'
14
- : 'SET session_replication_role = replica;';
15
- }
16
- else {
17
- // SQLite
18
- return enable
19
- ? 'PRAGMA foreign_keys = ON;'
20
- : 'PRAGMA foreign_keys = OFF;';
21
- }
22
- }
23
- /**
24
- * Generate transaction control statements
25
- */
26
- export function generateTransactionControl(format, isStart) {
27
- if (isStart) {
28
- return format === 'mysql' ? 'START TRANSACTION;'
29
- : format === 'postgresql' ? 'BEGIN;'
30
- : 'BEGIN TRANSACTION;';
31
- }
32
- else {
33
- return 'COMMIT;';
34
- }
35
- }
36
- //# sourceMappingURL=controls.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls.js","sourceRoot":"","sources":["../../../../src/utils/sql-dump/generators/controls.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAI1E;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAsB,EAAE,MAAe;IAChF,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM;YACX,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,2BAA2B,CAAC;IAClC,CAAC;SAAM,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QACnC,OAAO,MAAM;YACX,CAAC,CAAC,yCAAyC;YAC3C,CAAC,CAAC,yCAAyC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,SAAS;QACT,OAAO,MAAM;YACX,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,4BAA4B,CAAC;IACnC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAsB,EAAE,OAAgB;IACjF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAoB;YAC3C,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ;gBACpC,CAAC,CAAC,oBAAoB,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { DatabaseFormat } from '../types.js';
2
- /**
3
- * Generate header comments for SQL dump
4
- */
5
- export declare function generateHeader(format: DatabaseFormat): string;
6
- //# sourceMappingURL=headers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../../src/utils/sql-dump/generators/headers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAa7D"}
@@ -1,19 +0,0 @@
1
- // generators/headers.ts - SQL dump header generation
2
- /**
3
- * Generate header comments for SQL dump
4
- */
5
- export function generateHeader(format) {
6
- const timestamp = new Date().toISOString();
7
- return `-- SQL Dump generated by sqlew
8
- -- Date: ${timestamp}
9
- -- Target: ${format.toUpperCase()}
10
- --
11
- -- This dump is wrapped in a transaction.
12
- -- On error, all changes will be rolled back automatically.
13
- --
14
- -- Usage (empty database):
15
- -- ${format === 'mysql' ? 'mysql mydb < dump.sql' : format === 'postgresql' ? 'psql -d mydb -f dump.sql' : 'sqlite3 mydb.db < dump.sql'}
16
-
17
- `;
18
- }
19
- //# sourceMappingURL=headers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"headers.js","sourceRoot":"","sources":["../../../../src/utils/sql-dump/generators/headers.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAIrD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO;WACE,SAAS;aACP,MAAM,CAAC,WAAW,EAAE;;;;;;OAM1B,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,4BAA4B;;CAExI,CAAC;AACF,CAAC"}