sqlew 5.0.7 → 5.1.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 (471) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +100 -242
  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/pr-adr.d.ts +22 -0
  49. package/dist/cli/hooks/pr-adr.d.ts.map +1 -0
  50. package/dist/cli/hooks/pr-adr.js +72 -0
  51. package/dist/cli/hooks/pr-adr.js.map +1 -0
  52. package/dist/cli.d.ts.map +1 -1
  53. package/dist/cli.js +9 -13
  54. package/dist/cli.js.map +1 -1
  55. package/dist/config/cloud-config-loader.d.ts +8 -8
  56. package/dist/config/cloud-config-loader.d.ts.map +1 -1
  57. package/dist/config/cloud-config-loader.js +12 -12
  58. package/dist/config/cloud-config-loader.js.map +1 -1
  59. package/dist/config/global-config.d.ts +17 -45
  60. package/dist/config/global-config.d.ts.map +1 -1
  61. package/dist/config/global-config.js +169 -30
  62. package/dist/config/global-config.js.map +1 -1
  63. package/dist/config/loader.d.ts +1 -18
  64. package/dist/config/loader.d.ts.map +1 -1
  65. package/dist/config/loader.js +1 -89
  66. package/dist/config/loader.js.map +1 -1
  67. package/dist/config/types.d.ts +2 -64
  68. package/dist/config/types.d.ts.map +1 -1
  69. package/dist/config/types.js +0 -18
  70. package/dist/config/types.js.map +1 -1
  71. package/dist/database/index.d.ts +1 -2
  72. package/dist/database/index.d.ts.map +1 -1
  73. package/dist/database/index.js +1 -3
  74. package/dist/database/index.js.map +1 -1
  75. package/dist/database/operations/queries.d.ts +0 -4
  76. package/dist/database/operations/queries.d.ts.map +1 -1
  77. package/dist/database/operations/queries.js +0 -8
  78. package/dist/database/operations/queries.js.map +1 -1
  79. package/dist/index.d.ts +1 -1
  80. package/dist/index.js +4 -4
  81. package/dist/index.js.map +1 -1
  82. package/dist/init-rules.d.ts.map +1 -1
  83. package/dist/init-rules.js +0 -1
  84. package/dist/init-rules.js.map +1 -1
  85. package/dist/knexfile.d.ts.map +1 -1
  86. package/dist/knexfile.js +2 -1
  87. package/dist/knexfile.js.map +1 -1
  88. package/dist/migration/local-to-global.d.ts +19 -0
  89. package/dist/migration/local-to-global.d.ts.map +1 -0
  90. package/dist/migration/local-to-global.js +133 -0
  91. package/dist/migration/local-to-global.js.map +1 -0
  92. package/dist/saas-connector/client/types.d.ts +1 -1
  93. package/dist/saas-connector/client/types.d.ts.map +1 -1
  94. package/dist/schema.js +1 -1
  95. package/dist/server/setup.d.ts.map +1 -1
  96. package/dist/server/setup.js +15 -7
  97. package/dist/server/setup.js.map +1 -1
  98. package/dist/tests/backend/backend-factory.test.js +2 -2
  99. package/dist/tests/backend/backend-factory.test.js.map +1 -1
  100. package/dist/tests/docker/native/constraint-operations.test.d.ts +2 -17
  101. package/dist/tests/docker/native/constraint-operations.test.d.ts.map +1 -1
  102. package/dist/tests/docker/native/constraint-operations.test.js +3 -82
  103. package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
  104. package/dist/tests/docker/native/db-init.d.ts +3 -34
  105. package/dist/tests/docker/native/db-init.d.ts.map +1 -1
  106. package/dist/tests/docker/native/db-init.js +15 -77
  107. package/dist/tests/docker/native/db-init.js.map +1 -1
  108. package/dist/tests/docker/native/decision-operations.test.d.ts +2 -10
  109. package/dist/tests/docker/native/decision-operations.test.d.ts.map +1 -1
  110. package/dist/tests/docker/native/decision-operations.test.js +2 -84
  111. package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
  112. package/dist/tests/docker/native/help-system.test.d.ts +2 -5
  113. package/dist/tests/docker/native/help-system.test.d.ts.map +1 -1
  114. package/dist/tests/docker/native/help-system.test.js +2 -47
  115. package/dist/tests/docker/native/help-system.test.js.map +1 -1
  116. package/dist/tests/docker/native/suggest-tool.test.d.ts +3 -11
  117. package/dist/tests/docker/native/suggest-tool.test.d.ts.map +1 -1
  118. package/dist/tests/docker/native/suggest-tool.test.js +3 -60
  119. package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
  120. package/dist/tests/docker/native/test-harness.d.ts +2 -23
  121. package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
  122. package/dist/tests/docker/native/test-harness.js +5 -59
  123. package/dist/tests/docker/native/test-harness.js.map +1 -1
  124. package/dist/tests/feature/decision/analytics.test.js +2 -1
  125. package/dist/tests/feature/decision/analytics.test.js.map +1 -1
  126. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +2 -7
  127. package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
  128. package/dist/tests/feature/decision/batch-validation.test.js +2 -1
  129. package/dist/tests/feature/decision/batch-validation.test.js.map +1 -1
  130. package/dist/tests/integration/auto-trigger-suggestions.test.js +4 -37
  131. package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
  132. package/dist/tests/integration/hybrid-similarity-detection.test.js +2 -1
  133. package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
  134. package/dist/tests/integration/json-export-import.test.d.ts.map +1 -0
  135. package/dist/tests/integration/json-export-import.test.js.map +1 -0
  136. package/dist/tests/unit/case-insensitive-validator.test.d.ts +0 -7
  137. package/dist/tests/unit/case-insensitive-validator.test.d.ts.map +1 -1
  138. package/dist/tests/unit/case-insensitive-validator.test.js +0 -22
  139. package/dist/tests/unit/case-insensitive-validator.test.js.map +1 -1
  140. package/dist/tests/unit/config/cloud-config-loader.test.js +4 -2
  141. package/dist/tests/unit/config/cloud-config-loader.test.js.map +1 -1
  142. package/dist/tests/unit/config/global-db-migration.test.d.ts +12 -0
  143. package/dist/tests/unit/config/global-db-migration.test.d.ts.map +1 -0
  144. package/dist/tests/unit/config/global-db-migration.test.js +117 -0
  145. package/dist/tests/unit/config/global-db-migration.test.js.map +1 -0
  146. package/dist/tests/unit/constraint-scorer.test.d.ts +2 -7
  147. package/dist/tests/unit/constraint-scorer.test.d.ts.map +1 -1
  148. package/dist/tests/unit/constraint-scorer.test.js +2 -28
  149. package/dist/tests/unit/constraint-scorer.test.js.map +1 -1
  150. package/dist/tests/unit/universal-knex.test.js +9 -0
  151. package/dist/tests/unit/universal-knex.test.js.map +1 -1
  152. package/dist/tests/unit/validation/parameter-validation.test.js +0 -24
  153. package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
  154. package/dist/tests/utils/db-config.d.ts.map +1 -1
  155. package/dist/tests/utils/db-config.js +0 -9
  156. package/dist/tests/utils/db-config.js.map +1 -1
  157. package/dist/tests/utils/db-import.d.ts.map +1 -1
  158. package/dist/tests/utils/db-import.js +0 -3
  159. package/dist/tests/utils/db-import.js.map +1 -1
  160. package/dist/tests/utils/db-schema.d.ts.map +1 -1
  161. package/dist/tests/utils/db-schema.js +48 -51
  162. package/dist/tests/utils/db-schema.js.map +1 -1
  163. package/dist/tests/utils/db-seeding.d.ts.map +1 -1
  164. package/dist/tests/utils/db-seeding.js +0 -3
  165. package/dist/tests/utils/db-seeding.js.map +1 -1
  166. package/dist/tests/utils/index.d.ts +0 -1
  167. package/dist/tests/utils/index.d.ts.map +1 -1
  168. package/dist/tests/utils/index.js +0 -2
  169. package/dist/tests/utils/index.js.map +1 -1
  170. package/dist/tests/utils/test-helpers.d.ts +6 -76
  171. package/dist/tests/utils/test-helpers.d.ts.map +1 -1
  172. package/dist/tests/utils/test-helpers.js +56 -162
  173. package/dist/tests/utils/test-helpers.js.map +1 -1
  174. package/dist/tests/utils/test-lifecycle.d.ts +2 -28
  175. package/dist/tests/utils/test-lifecycle.d.ts.map +1 -1
  176. package/dist/tests/utils/test-lifecycle.js +2 -31
  177. package/dist/tests/utils/test-lifecycle.js.map +1 -1
  178. package/dist/tools/context/index.d.ts +0 -1
  179. package/dist/tools/context/index.d.ts.map +1 -1
  180. package/dist/tools/context/index.js +0 -2
  181. package/dist/tools/context/index.js.map +1 -1
  182. package/dist/tools/context/types.d.ts +1 -1
  183. package/dist/tools/context/types.d.ts.map +1 -1
  184. package/dist/types/actions.d.ts +6 -29
  185. package/dist/types/actions.d.ts.map +1 -1
  186. package/dist/types/actions.js +1 -2
  187. package/dist/types/actions.js.map +1 -1
  188. package/dist/types/constraint/params.d.ts +24 -1
  189. package/dist/types/constraint/params.d.ts.map +1 -1
  190. package/dist/types/constraint/params.js +3 -0
  191. package/dist/types/constraint/params.js.map +1 -1
  192. package/dist/types/constraint/responses.d.ts +18 -1
  193. package/dist/types/constraint/responses.d.ts.map +1 -1
  194. package/dist/types/constraint/responses.js +3 -0
  195. package/dist/types/constraint/responses.js.map +1 -1
  196. package/dist/types/decision/batch.d.ts +2 -5
  197. package/dist/types/decision/batch.d.ts.map +1 -1
  198. package/dist/types/decision/batch.js +3 -3
  199. package/dist/types/decision/batch.js.map +1 -1
  200. package/dist/types/decision/params.d.ts +7 -4
  201. package/dist/types/decision/params.d.ts.map +1 -1
  202. package/dist/types/decision/responses.d.ts +49 -35
  203. package/dist/types/decision/responses.d.ts.map +1 -1
  204. package/dist/types/decision/templates.d.ts +2 -18
  205. package/dist/types/decision/templates.d.ts.map +1 -1
  206. package/dist/types/decision/templates.js +3 -3
  207. package/dist/types/decision/templates.js.map +1 -1
  208. package/dist/types/enums.d.ts +11 -13
  209. package/dist/types/enums.d.ts.map +1 -1
  210. package/dist/types/enums.js +5 -13
  211. package/dist/types/enums.js.map +1 -1
  212. package/dist/types/import-export.d.ts +7 -30
  213. package/dist/types/import-export.d.ts.map +1 -1
  214. package/dist/types/import-export.js +1 -2
  215. package/dist/types/import-export.js.map +1 -1
  216. package/dist/types/index.d.ts +18 -22
  217. package/dist/types/index.d.ts.map +1 -1
  218. package/dist/types/index.js +4 -32
  219. package/dist/types/index.js.map +1 -1
  220. package/dist/types/master-entities.d.ts +1 -10
  221. package/dist/types/master-entities.d.ts.map +1 -1
  222. package/dist/types/master-entities.js +1 -2
  223. package/dist/types/master-entities.js.map +1 -1
  224. package/dist/types/transaction-entities.d.ts +2 -21
  225. package/dist/types/transaction-entities.d.ts.map +1 -1
  226. package/dist/types/transaction-entities.js +1 -1
  227. package/dist/types/validation.d.ts +1 -16
  228. package/dist/types/validation.d.ts.map +1 -1
  229. package/dist/types/validation.js +1 -2
  230. package/dist/types/validation.js.map +1 -1
  231. package/dist/types/view-entities.d.ts +3 -12
  232. package/dist/types/view-entities.d.ts.map +1 -1
  233. package/dist/types/view-entities.js +1 -1
  234. package/dist/types.d.ts +4 -718
  235. package/dist/types.d.ts.map +1 -1
  236. package/dist/types.js +5 -39
  237. package/dist/types.js.map +1 -1
  238. package/dist/utils/parameter-validator.d.ts +2 -2
  239. package/dist/utils/parameter-validator.d.ts.map +1 -1
  240. package/dist/utils/parameter-validator.js.map +1 -1
  241. package/docs/ADR_CONCEPTS.md +66 -58
  242. package/docs/CLI_USAGE.md +392 -0
  243. package/docs/CONFIGURATION.md +157 -922
  244. package/docs/CROSS_DATABASE.md +1 -88
  245. package/docs/DATABASE_AUTH.md +24 -47
  246. package/docs/HOOKS_GUIDE.md +40 -112
  247. package/docs/MIGRATION_TO_SAAS.md +3 -3
  248. package/docs/SHARED_DATABASE.md +108 -0
  249. package/package.json +4 -3
  250. package/dist/adapters/auth/auth-types.d.ts +0 -30
  251. package/dist/adapters/auth/auth-types.d.ts.map +0 -1
  252. package/dist/adapters/auth/auth-types.js +0 -30
  253. package/dist/adapters/auth/auth-types.js.map +0 -1
  254. package/dist/cli/db-dump.d.ts +0 -36
  255. package/dist/cli/db-dump.d.ts.map +0 -1
  256. package/dist/cli/db-dump.js +0 -384
  257. package/dist/cli/db-dump.js.map +0 -1
  258. package/dist/database/config/config-ops.d.ts +0 -42
  259. package/dist/database/config/config-ops.d.ts.map +0 -1
  260. package/dist/database/config/config-ops.js +0 -102
  261. package/dist/database/config/config-ops.js.map +0 -1
  262. package/dist/formatters/adr-formatter.d.ts +0 -22
  263. package/dist/formatters/adr-formatter.d.ts.map +0 -1
  264. package/dist/formatters/adr-formatter.js +0 -127
  265. package/dist/formatters/adr-formatter.js.map +0 -1
  266. package/dist/formatters/confluence-formatter.d.ts +0 -26
  267. package/dist/formatters/confluence-formatter.d.ts.map +0 -1
  268. package/dist/formatters/confluence-formatter.js +0 -129
  269. package/dist/formatters/confluence-formatter.js.map +0 -1
  270. package/dist/formatters/index.d.ts +0 -34
  271. package/dist/formatters/index.d.ts.map +0 -1
  272. package/dist/formatters/index.js +0 -57
  273. package/dist/formatters/index.js.map +0 -1
  274. package/dist/formatters/markdown-formatter.d.ts +0 -16
  275. package/dist/formatters/markdown-formatter.d.ts.map +0 -1
  276. package/dist/formatters/markdown-formatter.js +0 -110
  277. package/dist/formatters/markdown-formatter.js.map +0 -1
  278. package/dist/formatters/notion-formatter.d.ts +0 -29
  279. package/dist/formatters/notion-formatter.d.ts.map +0 -1
  280. package/dist/formatters/notion-formatter.js +0 -177
  281. package/dist/formatters/notion-formatter.js.map +0 -1
  282. package/dist/formatters/types.d.ts +0 -31
  283. package/dist/formatters/types.d.ts.map +0 -1
  284. package/dist/formatters/types.js +0 -6
  285. package/dist/formatters/types.js.map +0 -1
  286. package/dist/tests/database/sql-dump/converters.test.d.ts +0 -7
  287. package/dist/tests/database/sql-dump/converters.test.d.ts.map +0 -1
  288. package/dist/tests/database/sql-dump/converters.test.js +0 -314
  289. package/dist/tests/database/sql-dump/converters.test.js.map +0 -1
  290. package/dist/tests/database/sql-dump/default-conversions.test.d.ts +0 -8
  291. package/dist/tests/database/sql-dump/default-conversions.test.d.ts.map +0 -1
  292. package/dist/tests/database/sql-dump/default-conversions.test.js +0 -141
  293. package/dist/tests/database/sql-dump/default-conversions.test.js.map +0 -1
  294. package/dist/tests/database/sql-dump/table-ordering.test.d.ts +0 -27
  295. package/dist/tests/database/sql-dump/table-ordering.test.d.ts.map +0 -1
  296. package/dist/tests/database/sql-dump/table-ordering.test.js +0 -284
  297. package/dist/tests/database/sql-dump/table-ordering.test.js.map +0 -1
  298. package/dist/tests/database/sql-dump/type-conversion.test.d.ts +0 -8
  299. package/dist/tests/database/sql-dump/type-conversion.test.d.ts.map +0 -1
  300. package/dist/tests/database/sql-dump/type-conversion.test.js +0 -361
  301. package/dist/tests/database/sql-dump/type-conversion.test.js.map +0 -1
  302. package/dist/tests/docker/cross-database.test.d.ts +0 -21
  303. package/dist/tests/docker/cross-database.test.d.ts.map +0 -1
  304. package/dist/tests/docker/cross-database.test.js +0 -308
  305. package/dist/tests/docker/cross-database.test.js.map +0 -1
  306. package/dist/tests/docker/dump-import.test.d.ts +0 -15
  307. package/dist/tests/docker/dump-import.test.d.ts.map +0 -1
  308. package/dist/tests/docker/dump-import.test.js +0 -424
  309. package/dist/tests/docker/dump-import.test.js.map +0 -1
  310. package/dist/tests/docker/fk-constraints.test.d.ts +0 -13
  311. package/dist/tests/docker/fk-constraints.test.d.ts.map +0 -1
  312. package/dist/tests/docker/fk-constraints.test.js +0 -381
  313. package/dist/tests/docker/fk-constraints.test.js.map +0 -1
  314. package/dist/tests/docker/indexes.test.d.ts +0 -12
  315. package/dist/tests/docker/indexes.test.d.ts.map +0 -1
  316. package/dist/tests/docker/indexes.test.js +0 -250
  317. package/dist/tests/docker/indexes.test.js.map +0 -1
  318. package/dist/tests/docker/integration.test.d.ts +0 -16
  319. package/dist/tests/docker/integration.test.d.ts.map +0 -1
  320. package/dist/tests/docker/integration.test.js +0 -323
  321. package/dist/tests/docker/integration.test.js.map +0 -1
  322. package/dist/tests/docker/multi-project-migration.test.d.ts +0 -17
  323. package/dist/tests/docker/multi-project-migration.test.d.ts.map +0 -1
  324. package/dist/tests/docker/multi-project-migration.test.js +0 -394
  325. package/dist/tests/docker/multi-project-migration.test.js.map +0 -1
  326. package/dist/tests/docker/schema-migration.test.d.ts +0 -8
  327. package/dist/tests/docker/schema-migration.test.d.ts.map +0 -1
  328. package/dist/tests/docker/schema-migration.test.js +0 -98
  329. package/dist/tests/docker/schema-migration.test.js.map +0 -1
  330. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts +0 -5
  331. package/dist/tests/integration/e2e-workflow1-debug.test.d.ts.map +0 -1
  332. package/dist/tests/integration/e2e-workflow1-debug.test.js +0 -85
  333. package/dist/tests/integration/e2e-workflow1-debug.test.js.map +0 -1
  334. package/dist/tests/integration/suggest-simple.test.d.ts +0 -5
  335. package/dist/tests/integration/suggest-simple.test.d.ts.map +0 -1
  336. package/dist/tests/integration/suggest-simple.test.js +0 -90
  337. package/dist/tests/integration/suggest-simple.test.js.map +0 -1
  338. package/dist/tests/migrations/test-all-versions-real.d.ts +0 -8
  339. package/dist/tests/migrations/test-all-versions-real.d.ts.map +0 -1
  340. package/dist/tests/migrations/test-all-versions-real.js +0 -236
  341. package/dist/tests/migrations/test-all-versions-real.js.map +0 -1
  342. package/dist/tests/migrations/test-all-versions.d.ts +0 -14
  343. package/dist/tests/migrations/test-all-versions.d.ts.map +0 -1
  344. package/dist/tests/migrations/test-all-versions.js +0 -519
  345. package/dist/tests/migrations/test-all-versions.js.map +0 -1
  346. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts +0 -7
  347. package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts.map +0 -1
  348. package/dist/tests/migrations/v4/v4-fresh-install.test.js +0 -168
  349. package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +0 -1
  350. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts +0 -13
  351. package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts.map +0 -1
  352. package/dist/tests/migrations/v4/v4-migrate-data.test.js +0 -264
  353. package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +0 -1
  354. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts +0 -2
  355. package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts.map +0 -1
  356. package/dist/tests/unit/utils/case-insensitive-validator.test.js +0 -97
  357. package/dist/tests/unit/utils/case-insensitive-validator.test.js.map +0 -1
  358. package/dist/tests/utils/json-export-import.test.d.ts.map +0 -1
  359. package/dist/tests/utils/json-export-import.test.js.map +0 -1
  360. package/dist/tests/utils/task-helpers.d.ts +0 -67
  361. package/dist/tests/utils/task-helpers.d.ts.map +0 -1
  362. package/dist/tests/utils/task-helpers.js +0 -134
  363. package/dist/tests/utils/task-helpers.js.map +0 -1
  364. package/dist/tools/context/actions/export.d.ts +0 -35
  365. package/dist/tools/context/actions/export.d.ts.map +0 -1
  366. package/dist/tools/context/actions/export.js +0 -93
  367. package/dist/tools/context/actions/export.js.map +0 -1
  368. package/dist/types/file/params.d.ts +0 -40
  369. package/dist/types/file/params.d.ts.map +0 -1
  370. package/dist/types/file/params.js +0 -6
  371. package/dist/types/file/params.js.map +0 -1
  372. package/dist/types/file/responses.d.ts +0 -2
  373. package/dist/types/file/responses.d.ts.map +0 -1
  374. package/dist/types/file/responses.js +0 -2
  375. package/dist/types/file/responses.js.map +0 -1
  376. package/dist/types/task/params.d.ts +0 -173
  377. package/dist/types/task/params.d.ts.map +0 -1
  378. package/dist/types/task/params.js +0 -8
  379. package/dist/types/task/params.js.map +0 -1
  380. package/dist/types/task/responses.d.ts +0 -334
  381. package/dist/types/task/responses.d.ts.map +0 -1
  382. package/dist/types/task/responses.js +0 -8
  383. package/dist/types/task/responses.js.map +0 -1
  384. package/dist/utils/sql-dump/core/dependency-sort.d.ts +0 -16
  385. package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +0 -1
  386. package/dist/utils/sql-dump/core/dependency-sort.js +0 -105
  387. package/dist/utils/sql-dump/core/dependency-sort.js.map +0 -1
  388. package/dist/utils/sql-dump/core/generate-dump.d.ts +0 -13
  389. package/dist/utils/sql-dump/core/generate-dump.d.ts.map +0 -1
  390. package/dist/utils/sql-dump/core/generate-dump.js +0 -201
  391. package/dist/utils/sql-dump/core/generate-dump.js.map +0 -1
  392. package/dist/utils/sql-dump/core/index-export.d.ts +0 -10
  393. package/dist/utils/sql-dump/core/index-export.d.ts.map +0 -1
  394. package/dist/utils/sql-dump/core/index-export.js +0 -173
  395. package/dist/utils/sql-dump/core/index-export.js.map +0 -1
  396. package/dist/utils/sql-dump/core/sequence-reset.d.ts +0 -6
  397. package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +0 -1
  398. package/dist/utils/sql-dump/core/sequence-reset.js +0 -28
  399. package/dist/utils/sql-dump/core/sequence-reset.js.map +0 -1
  400. package/dist/utils/sql-dump/core/table-export.d.ts +0 -2
  401. package/dist/utils/sql-dump/core/table-export.d.ts.map +0 -1
  402. package/dist/utils/sql-dump/core/table-export.js +0 -4
  403. package/dist/utils/sql-dump/core/table-export.js.map +0 -1
  404. package/dist/utils/sql-dump/core/view-export.d.ts +0 -2
  405. package/dist/utils/sql-dump/core/view-export.d.ts.map +0 -1
  406. package/dist/utils/sql-dump/core/view-export.js +0 -4
  407. package/dist/utils/sql-dump/core/view-export.js.map +0 -1
  408. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +0 -14
  409. package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +0 -1
  410. package/dist/utils/sql-dump/formatters/bulk-insert.js +0 -177
  411. package/dist/utils/sql-dump/formatters/bulk-insert.js.map +0 -1
  412. package/dist/utils/sql-dump/formatters/identifiers.d.ts +0 -6
  413. package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +0 -1
  414. package/dist/utils/sql-dump/formatters/identifiers.js +0 -16
  415. package/dist/utils/sql-dump/formatters/identifiers.js.map +0 -1
  416. package/dist/utils/sql-dump/formatters/value-formatter.d.ts +0 -14
  417. package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +0 -1
  418. package/dist/utils/sql-dump/formatters/value-formatter.js +0 -281
  419. package/dist/utils/sql-dump/formatters/value-formatter.js.map +0 -1
  420. package/dist/utils/sql-dump/generators/controls.d.ts +0 -10
  421. package/dist/utils/sql-dump/generators/controls.d.ts.map +0 -1
  422. package/dist/utils/sql-dump/generators/controls.js +0 -36
  423. package/dist/utils/sql-dump/generators/controls.js.map +0 -1
  424. package/dist/utils/sql-dump/generators/headers.d.ts +0 -6
  425. package/dist/utils/sql-dump/generators/headers.d.ts.map +0 -1
  426. package/dist/utils/sql-dump/generators/headers.js +0 -19
  427. package/dist/utils/sql-dump/generators/headers.js.map +0 -1
  428. package/dist/utils/sql-dump/index.d.ts +0 -14
  429. package/dist/utils/sql-dump/index.d.ts.map +0 -1
  430. package/dist/utils/sql-dump/index.js +0 -16
  431. package/dist/utils/sql-dump/index.js.map +0 -1
  432. package/dist/utils/sql-dump/schema/indexes.d.ts +0 -20
  433. package/dist/utils/sql-dump/schema/indexes.d.ts.map +0 -1
  434. package/dist/utils/sql-dump/schema/indexes.js +0 -108
  435. package/dist/utils/sql-dump/schema/indexes.js.map +0 -1
  436. package/dist/utils/sql-dump/schema/primary-keys.d.ts +0 -6
  437. package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +0 -1
  438. package/dist/utils/sql-dump/schema/primary-keys.js +0 -41
  439. package/dist/utils/sql-dump/schema/primary-keys.js.map +0 -1
  440. package/dist/utils/sql-dump/schema/tables.d.ts +0 -15
  441. package/dist/utils/sql-dump/schema/tables.d.ts.map +0 -1
  442. package/dist/utils/sql-dump/schema/tables.js +0 -518
  443. package/dist/utils/sql-dump/schema/tables.js.map +0 -1
  444. package/dist/utils/sql-dump/schema/views.d.ts +0 -11
  445. package/dist/utils/sql-dump/schema/views.d.ts.map +0 -1
  446. package/dist/utils/sql-dump/schema/views.js +0 -116
  447. package/dist/utils/sql-dump/schema/views.js.map +0 -1
  448. package/dist/utils/sql-dump/types.d.ts +0 -10
  449. package/dist/utils/sql-dump/types.d.ts.map +0 -1
  450. package/dist/utils/sql-dump/types.js +0 -3
  451. package/dist/utils/sql-dump/types.js.map +0 -1
  452. package/dist/utils/sql-dump-converters.d.ts +0 -188
  453. package/dist/utils/sql-dump-converters.d.ts.map +0 -1
  454. package/dist/utils/sql-dump-converters.js +0 -315
  455. package/dist/utils/sql-dump-converters.js.map +0 -1
  456. package/dist/watcher/gitignore-parser.d.ts +0 -70
  457. package/dist/watcher/gitignore-parser.d.ts.map +0 -1
  458. package/dist/watcher/gitignore-parser.js +0 -195
  459. package/dist/watcher/gitignore-parser.js.map +0 -1
  460. package/dist/watcher/index.d.ts +0 -9
  461. package/dist/watcher/index.d.ts.map +0 -1
  462. package/dist/watcher/index.js +0 -8
  463. package/dist/watcher/index.js.map +0 -1
  464. package/docs/HOW_TO_UNINSTALL.md +0 -199
  465. package/docs/MIGRATION_CLEANUP_GUIDE.md +0 -212
  466. package/docs/SLASH_COMMANDS.md +0 -329
  467. package/docs/cli/DATABASE_MIGRATION.md +0 -290
  468. package/docs/cli/DATA_EXPORT_IMPORT.md +0 -701
  469. package/docs/cli/README.md +0 -276
  470. /package/dist/tests/{utils → integration}/json-export-import.test.d.ts +0 -0
  471. /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"}