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,139 +1,20 @@
1
1
  import { BaseAdapter } from './base-adapter.js';
2
- /**
3
- * MySQL adapter implementation with authentication support.
4
- *
5
- * This adapter provides MySQL-specific implementations for database operations,
6
- * integrating with the authentication layer for secure connections via SSH tunnels,
7
- * direct connections, or cloud IAM (AWS RDS, GCP Cloud SQL).
8
- *
9
- * **MySQL-Specific Features:**
10
- * - ON DUPLICATE KEY UPDATE for upserts
11
- * - JSON_EXTRACT() and JSON_OBJECT() for JSON operations
12
- * - GROUP_CONCAT() for string aggregation
13
- * - LAST_INSERT_ID() for retrieving inserted IDs
14
- * - UNIX_TIMESTAMP() and FROM_UNIXTIME() for epoch conversions
15
- * - AUTO_INCREMENT with UNSIGNED for ID columns
16
- * - UTF8MB4 character set support for full Unicode
17
- *
18
- * **Supported MySQL Versions:**
19
- * - MySQL 8.0+ (full feature support)
20
- * - MySQL 5.7+ (basic feature support)
21
- *
22
- * **Authentication Methods:**
23
- * - Direct: Standard username/password authentication
24
- * - SSH Tunnel: Connect via SSH bastion host
25
- * - AWS RDS IAM: Token-based authentication for AWS RDS
26
- * - GCP Cloud SQL IAM: Token-based authentication for Cloud SQL
27
- *
28
- * @extends BaseAdapter
29
- *
30
- * @example
31
- * // Direct connection
32
- * const adapter = new MySQLAdapter({
33
- * type: 'mysql',
34
- * connection: {
35
- * host: 'localhost',
36
- * port: 3306,
37
- * database: 'mydb'
38
- * },
39
- * auth: {
40
- * type: 'direct',
41
- * user: 'root',
42
- * password: 'password'
43
- * }
44
- * });
45
- *
46
- * @example
47
- * // SSH tunnel connection
48
- * const adapter = new MySQLAdapter({
49
- * type: 'mysql',
50
- * connection: {
51
- * host: 'db.internal',
52
- * port: 3306,
53
- * database: 'production'
54
- * },
55
- * auth: {
56
- * type: 'ssh',
57
- * user: 'dbuser',
58
- * password: 'dbpass',
59
- * ssh: {
60
- * host: 'bastion.example.com',
61
- * username: 'deploy',
62
- * privateKeyPath: '/path/to/key.pem'
63
- * }
64
- * }
65
- * });
66
- *
67
- * @example
68
- * // AWS RDS IAM authentication
69
- * const adapter = new MySQLAdapter({
70
- * type: 'mysql',
71
- * connection: {
72
- * host: 'mydb.cluster-xxx.us-east-1.rds.amazonaws.com',
73
- * port: 3306,
74
- * database: 'production'
75
- * },
76
- * auth: {
77
- * type: 'aws-iam',
78
- * region: 'us-east-1'
79
- * }
80
- * });
81
- */
2
+ /** MySQL adapter with authentication support. */
82
3
  export class MySQLAdapter extends BaseAdapter {
83
- // Feature detection
84
- supportsReturning = false; // MySQL doesn't support RETURNING clause
85
- supportsJSON = true; // MySQL 5.7+ has native JSON support
86
- supportsUpsert = true; // ON DUPLICATE KEY UPDATE
87
- supportsCTE = true; // MySQL 8.0+ supports WITH clause
88
- supportsWindowFunctions = true; // MySQL 8.0+ supports window functions
89
- supportsSavepoints = true; // Full savepoint support
4
+ supportsReturning = false;
5
+ supportsJSON = true;
6
+ supportsUpsert = true;
7
+ supportsCTE = true;
8
+ supportsWindowFunctions = true;
9
+ supportsSavepoints = true;
90
10
  databaseName = 'mysql';
91
- /**
92
- * Creates a new MySQL adapter instance.
93
- *
94
- * @param {DatabaseConfig} config - Database configuration with auth settings
95
- */
96
11
  constructor(config) {
97
12
  super(config);
98
13
  }
99
- /**
100
- * Returns the Knex dialect for MySQL.
101
- *
102
- * Uses 'mysql2' driver which supports:
103
- * - Prepared statements
104
- * - Binary protocol
105
- * - Promise-based API
106
- * - Full Unicode (UTF8MB4)
107
- *
108
- * @returns {string} 'mysql2' dialect identifier
109
- */
110
14
  getDialect() {
111
15
  return 'mysql2';
112
16
  }
113
- /**
114
- * Initializes MySQL-specific session settings.
115
- *
116
- * **Configuration Applied:**
117
- * - Character set: UTF8MB4 for full Unicode support (including emojis)
118
- * - Collation: utf8mb4_unicode_ci for proper sorting
119
- * - SQL mode: TRADITIONAL for strict SQL compliance
120
- * - Timezone: UTC for consistent timestamp handling
121
- * - Transaction isolation: READ COMMITTED (default)
122
- *
123
- * **Important Notes:**
124
- * - UTF8MB4 requires MySQL 5.5.3+
125
- * - These settings apply to the current session only
126
- * - Connection pool creates new sessions with these settings
127
- *
128
- * @returns {Promise<void>}
129
- *
130
- * @throws {Error} If MySQL server version is incompatible
131
- *
132
- * @example
133
- * // Called automatically after connect()
134
- * await adapter.connect();
135
- * // Session is now configured with UTF8MB4 and UTC timezone
136
- */
17
+ /** Initializes MySQL-specific session settings (UTF8MB4, UTC, TRADITIONAL). */
137
18
  async initialize() {
138
19
  const knex = this.getKnex();
139
20
  // Validate database exists
@@ -164,46 +45,7 @@ export class MySQLAdapter extends BaseAdapter {
164
45
  // Set SQL mode for strict compliance and safety
165
46
  await knex.raw("SET sql_mode = 'TRADITIONAL'");
166
47
  }
167
- // ============================================================================
168
- // Query Adaptations - MySQL-specific implementations
169
- // ============================================================================
170
- /**
171
- * Inserts a row and returns the inserted record.
172
- *
173
- * MySQL doesn't support RETURNING clause, so this method:
174
- * 1. Inserts the row
175
- * 2. Retrieves LAST_INSERT_ID()
176
- * 3. Queries the inserted row by ID
177
- *
178
- * **Important Notes:**
179
- * - Assumes table has an auto-increment `id` column
180
- * - LAST_INSERT_ID() is connection-specific (thread-safe)
181
- * - For tables without auto-increment ID, use composite unique keys
182
- *
183
- * @template T - Record type
184
- * @param {string} table - Table name
185
- * @param {Partial<T>} data - Data to insert
186
- * @returns {Promise<T>} Inserted record
187
- *
188
- * @throws {Error} If insert fails or record cannot be retrieved
189
- *
190
- * @example
191
- * // Insert user and return full record
192
- * const user = await adapter.insertReturning<User>('users', {
193
- * name: 'Alice',
194
- * email: 'alice@example.com'
195
- * });
196
- * console.log(user.id); // Auto-generated ID
197
- *
198
- * @example
199
- * // With transaction
200
- * await adapter.transaction(async (trx) => {
201
- * const user = await adapter.insertReturning<User>('users', {
202
- * name: 'Bob'
203
- * });
204
- * await trx('profiles').insert({ user_id: user.id });
205
- * });
206
- */
48
+ /** Inserts a row and returns the inserted record via LAST_INSERT_ID(). */
207
49
  async insertReturning(table, data) {
208
50
  const knex = this.getKnex();
209
51
  // Insert and get the auto-increment ID
@@ -215,43 +57,7 @@ export class MySQLAdapter extends BaseAdapter {
215
57
  }
216
58
  return result;
217
59
  }
218
- /**
219
- * Upserts a row using MySQL's ON DUPLICATE KEY UPDATE syntax.
220
- *
221
- * **Behavior:**
222
- * - If row with conflicting key exists: UPDATE specified columns
223
- * - If no conflict: INSERT new row
224
- * - Returns number of affected rows (1 = insert, 2 = update)
225
- *
226
- * **Important Notes:**
227
- * - Requires UNIQUE index or PRIMARY KEY on conflictColumns
228
- * - MySQL counts updates as 2 affected rows (1 delete + 1 insert internally)
229
- * - If updateColumns not specified, updates all columns except conflict columns
230
- *
231
- * @template T - Record type
232
- * @param {string} table - Table name
233
- * @param {Partial<T>} data - Data to insert/update
234
- * @param {string[]} conflictColumns - Columns that define uniqueness (must have UNIQUE index)
235
- * @param {string[]} [updateColumns] - Columns to update on conflict (default: all except conflict columns)
236
- * @returns {Promise<number>} Affected rows (1 = insert, 2 = update)
237
- *
238
- * @throws {Error} If conflictColumns don't have UNIQUE index
239
- *
240
- * @example
241
- * // Upsert user by email (UNIQUE index on email)
242
- * await adapter.upsert('users',
243
- * { email: 'alice@example.com', name: 'Alice Updated', age: 30 },
244
- * ['email'], // Conflict column
245
- * ['name', 'age'] // Update these on conflict
246
- * );
247
- *
248
- * @example
249
- * // Upsert with composite key
250
- * await adapter.upsert('user_settings',
251
- * { user_id: 1, setting_key: 'theme', value: 'dark' },
252
- * ['user_id', 'setting_key'] // Composite UNIQUE key
253
- * );
254
- */
60
+ /** Upserts a row using ON DUPLICATE KEY UPDATE. */
255
61
  async upsert(table, data, conflictColumns, updateColumns) {
256
62
  const knex = this.getKnex();
257
63
  // Determine which columns to update on conflict
@@ -268,76 +74,14 @@ export class MySQLAdapter extends BaseAdapter {
268
74
  .merge(updateData);
269
75
  return result.length;
270
76
  }
271
- /**
272
- * Extracts a value from a JSON column using JSON_EXTRACT().
273
- *
274
- * **MySQL JSON Path Syntax:**
275
- * - `$` - Root element
276
- * - `$.key` - Object member
277
- * - `$[n]` - Array element
278
- * - `$.key[n]` - Nested access
279
- * - `$.*.key` - Wildcard member
280
- *
281
- * **Important Notes:**
282
- * - Returns JSON value (may need JSON_UNQUOTE() for strings)
283
- * - Path must start with `$` (auto-prepended if missing)
284
- * - Returns NULL if path doesn't exist
285
- *
286
- * @param {string} column - JSON column name
287
- * @param {string} path - JSON path (e.g., '$.address.city' or 'address.city')
288
- * @returns {Knex.Raw} Raw SQL expression for JSON extraction
289
- *
290
- * @example
291
- * // Extract nested value
292
- * const query = knex('users').select(
293
- * adapter.jsonExtract('metadata', '$.address.city').as('city')
294
- * );
295
- * // SELECT JSON_EXTRACT(`metadata`, '$.address.city') AS `city` FROM `users`
296
- *
297
- * @example
298
- * // Array element access
299
- * const query = knex('orders').select(
300
- * adapter.jsonExtract('items', '$[0].name').as('first_item')
301
- * );
302
- */
77
+ /** Extracts a value from a JSON column using JSON_EXTRACT(). */
303
78
  jsonExtract(column, path) {
304
79
  const knex = this.getKnex();
305
80
  // Ensure path starts with $ for MySQL JSON path syntax
306
81
  const jsonPath = path.startsWith('$') ? path : `$.${path}`;
307
82
  return knex.raw('JSON_EXTRACT(??, ?)', [column, jsonPath]);
308
83
  }
309
- /**
310
- * Builds a JSON object from field values using JSON_OBJECT().
311
- *
312
- * **Behavior:**
313
- * - Takes key-value pairs and returns JSON object
314
- * - Automatically handles NULL values
315
- * - Returns NULL if all values are NULL
316
- *
317
- * @param {Record<string, any>} fields - Object with key-value pairs
318
- * @returns {Knex.Raw} Raw SQL expression for JSON object construction
319
- *
320
- * @example
321
- * // Build JSON object from columns
322
- * const query = knex('users').select(
323
- * adapter.jsonBuildObject({
324
- * name: knex.ref('name'),
325
- * email: knex.ref('email'),
326
- * age: knex.ref('age')
327
- * }).as('user_json')
328
- * );
329
- * // SELECT JSON_OBJECT('name', `name`, 'email', `email`, 'age', `age`) AS `user_json`
330
- *
331
- * @example
332
- * // With literal values
333
- * const query = knex('orders').insert({
334
- * metadata: adapter.jsonBuildObject({
335
- * source: 'web',
336
- * campaign: 'summer-sale',
337
- * discount: 10
338
- * })
339
- * });
340
- */
84
+ /** Builds a JSON object using JSON_OBJECT(). */
341
85
  jsonBuildObject(fields) {
342
86
  const knex = this.getKnex();
343
87
  const keys = Object.keys(fields);
@@ -352,328 +96,47 @@ export class MySQLAdapter extends BaseAdapter {
352
96
  const placeholders = args.map(() => '?').join(', ');
353
97
  return knex.raw(`JSON_OBJECT(${placeholders})`, args);
354
98
  }
355
- /**
356
- * Returns current Unix timestamp using UNIX_TIMESTAMP().
357
- *
358
- * **Behavior:**
359
- * - Returns seconds since Unix epoch (1970-01-01 00:00:00 UTC)
360
- * - Always returns UTC timestamp regardless of session timezone
361
- * - Integer value (no fractional seconds)
362
- *
363
- * @returns {Knex.Raw} Raw SQL expression for current timestamp
364
- *
365
- * @example
366
- * // Insert with current timestamp
367
- * await knex('events').insert({
368
- * name: 'user_login',
369
- * created_at: adapter.currentTimestamp()
370
- * });
371
- * // INSERT INTO `events` (`name`, `created_at`) VALUES ('user_login', UNIX_TIMESTAMP())
372
- *
373
- * @example
374
- * // Update with current timestamp
375
- * await knex('users')
376
- * .where({ id: userId })
377
- * .update({ last_seen: adapter.currentTimestamp() });
378
- */
99
+ /** Returns current Unix timestamp using UNIX_TIMESTAMP(). */
379
100
  currentTimestamp() {
380
101
  return this.getKnex().raw('UNIX_TIMESTAMP()');
381
102
  }
382
- /**
383
- * Converts Unix epoch timestamp to MySQL datetime using FROM_UNIXTIME().
384
- *
385
- * **Behavior:**
386
- * - Converts integer epoch to DATETIME
387
- * - Returns UTC datetime (session timezone affects display)
388
- * - Handles NULL values
389
- *
390
- * @param {string} epochColumn - Column containing Unix epoch timestamp
391
- * @returns {Knex.Raw} Raw SQL expression for epoch conversion
392
- *
393
- * @example
394
- * // Convert epoch to datetime for display
395
- * const query = knex('events').select(
396
- * 'name',
397
- * adapter.fromUnixEpoch('created_at').as('created_datetime')
398
- * );
399
- * // SELECT `name`, FROM_UNIXTIME(`created_at`) AS `created_datetime` FROM `events`
400
- *
401
- * @example
402
- * // Filter by datetime range using epoch column
403
- * const query = knex('logs')
404
- * .where(adapter.fromUnixEpoch('timestamp'), '>=', '2024-01-01')
405
- * .andWhere(adapter.fromUnixEpoch('timestamp'), '<', '2024-02-01');
406
- */
103
+ /** Converts Unix epoch to datetime using FROM_UNIXTIME(). */
407
104
  fromUnixEpoch(epochColumn) {
408
105
  return this.getKnex().raw('FROM_UNIXTIME(??)', [epochColumn]);
409
106
  }
410
- /**
411
- * Converts MySQL datetime to Unix epoch using UNIX_TIMESTAMP().
412
- *
413
- * **Behavior:**
414
- * - Converts DATETIME/TIMESTAMP to integer epoch
415
- * - Assumes input is UTC
416
- * - Handles NULL values
417
- *
418
- * @param {string} timestampColumn - Column containing datetime value
419
- * @returns {Knex.Raw} Raw SQL expression for datetime conversion
420
- *
421
- * @example
422
- * // Convert datetime to epoch for storage
423
- * const query = knex('events').insert({
424
- * name: 'signup',
425
- * timestamp: adapter.toUnixEpoch('NOW()')
426
- * });
427
- *
428
- * @example
429
- * // Calculate time difference in seconds
430
- * const query = knex('sessions').select(
431
- * knex.raw('?? - ??', [
432
- * adapter.toUnixEpoch('logout_time'),
433
- * adapter.toUnixEpoch('login_time')
434
- * ]).as('duration_seconds')
435
- * );
436
- */
107
+ /** Converts datetime to Unix epoch using UNIX_TIMESTAMP(). */
437
108
  toUnixEpoch(timestampColumn) {
438
109
  return this.getKnex().raw('UNIX_TIMESTAMP(??)', [timestampColumn]);
439
110
  }
440
- /**
441
- * Concatenates string values using CONCAT().
442
- *
443
- * **Behavior:**
444
- * - Returns NULL if any argument is NULL
445
- * - Automatically converts non-string types to strings
446
- * - Empty strings are preserved
447
- *
448
- * **Alternative:** Use CONCAT_WS() for separator-based concatenation
449
- *
450
- * @param {...(string | Knex.Raw)[]} values - Values to concatenate
451
- * @returns {Knex.Raw} Raw SQL expression for concatenation
452
- *
453
- * @example
454
- * // Concatenate columns
455
- * const query = knex('users').select(
456
- * adapter.concat(
457
- * knex.ref('first_name'),
458
- * ' ',
459
- * knex.ref('last_name')
460
- * ).as('full_name')
461
- * );
462
- * // SELECT CONCAT(`first_name`, ' ', `last_name`) AS `full_name` FROM `users`
463
- *
464
- * @example
465
- * // Build URL from parts
466
- * const query = knex('products').select(
467
- * adapter.concat(
468
- * 'https://example.com/products/',
469
- * knex.ref('slug')
470
- * ).as('url')
471
- * );
472
- */
111
+ /** Concatenates string values using CONCAT(). */
473
112
  concat(...values) {
474
113
  const knex = this.getKnex();
475
114
  const placeholders = values.map(() => '?').join(', ');
476
115
  return knex.raw(`CONCAT(${placeholders})`, values);
477
116
  }
478
- /**
479
- * Aggregates strings with separator using GROUP_CONCAT().
480
- *
481
- * **Behavior:**
482
- * - Concatenates values from multiple rows into single string
483
- * - Default separator: comma (,)
484
- * - NULL values are skipped
485
- * - Result may be truncated by group_concat_max_len setting
486
- *
487
- * **Important Notes:**
488
- * - Default max length: 1024 bytes (can be increased with SET group_concat_max_len)
489
- * - Use with GROUP BY for grouped aggregation
490
- * - For large results, increase group_concat_max_len session variable
491
- *
492
- * @param {string} column - Column to aggregate
493
- * @param {string} [separator=','] - Separator between values
494
- * @returns {Knex.Raw} Raw SQL expression for string aggregation
495
- *
496
- * @example
497
- * // Get comma-separated list of tags
498
- * const query = knex('posts')
499
- * .select('posts.id', 'posts.title')
500
- * .select(adapter.stringAgg('tags.name').as('tags'))
501
- * .leftJoin('post_tags', 'posts.id', 'post_tags.post_id')
502
- * .leftJoin('tags', 'post_tags.tag_id', 'tags.id')
503
- * .groupBy('posts.id');
504
- * // Result: { id: 1, title: 'Post', tags: 'javascript,typescript,node' }
505
- *
506
- * @example
507
- * // Custom separator
508
- * const query = knex('users')
509
- * .select('department')
510
- * .select(adapter.stringAgg('name', '; ').as('members'))
511
- * .groupBy('department');
512
- */
117
+ /** Aggregates strings with separator using GROUP_CONCAT(). */
513
118
  stringAgg(column, separator = ',') {
514
119
  return this.getKnex().raw('GROUP_CONCAT(?? SEPARATOR ?)', [column, separator]);
515
120
  }
516
- // ============================================================================
517
- // Transaction Support
518
- // ============================================================================
519
- /**
520
- * Executes a callback within a database transaction.
521
- *
522
- * Delegates to BaseAdapter's transaction() method, which uses Knex's
523
- * transaction management with automatic commit/rollback.
524
- *
525
- * **MySQL Transaction Characteristics:**
526
- * - Default isolation level: REPEATABLE READ
527
- * - Supports nested transactions via savepoints
528
- * - Automatic rollback on error
529
- * - Deadlock detection and retry recommended for production
530
- *
531
- * @template T - Return type
532
- * @param {Function} callback - Transaction callback
533
- * @param {Object} [options] - Transaction options
534
- * @param {string} [options.isolationLevel] - Isolation level
535
- * @returns {Promise<T>} Transaction result
536
- *
537
- * @example
538
- * // Bank transfer with transaction
539
- * await adapter.transaction(async (trx) => {
540
- * await trx('accounts')
541
- * .where({ id: fromAccount })
542
- * .decrement('balance', amount);
543
- *
544
- * await trx('accounts')
545
- * .where({ id: toAccount })
546
- * .increment('balance', amount);
547
- * });
548
- *
549
- * @example
550
- * // With isolation level
551
- * await adapter.transaction(async (trx) => {
552
- * // ... transaction operations ...
553
- * }, { isolationLevel: 'serializable' });
554
- */
121
+ /** Executes a callback within a MySQL transaction. */
555
122
  async transaction(callback, options) {
556
- // Delegate to BaseAdapter's implementation
557
123
  return super.transaction(callback, options);
558
124
  }
559
- /**
560
- * Creates a savepoint within a transaction.
561
- *
562
- * **MySQL Savepoint Behavior:**
563
- * - Allows partial rollback within transaction
564
- * - Savepoint names are case-insensitive
565
- * - Automatically released on transaction commit
566
- * - Rolled back on transaction rollback
567
- *
568
- * @template T - Return type
569
- * @param {Knex.Transaction} trx - Parent transaction
570
- * @param {Function} callback - Savepoint callback
571
- * @returns {Promise<T>} Savepoint result
572
- *
573
- * @throws {Error} If savepoint operation fails
574
- *
575
- * @example
576
- * // Use savepoint for partial rollback
577
- * await adapter.transaction(async (trx) => {
578
- * await trx('users').insert({ name: 'Alice' });
579
- *
580
- * try {
581
- * await adapter.savepoint(trx, async (sp) => {
582
- * await sp('users').insert({ name: 'Bob' });
583
- * throw new Error('Bob insert failed');
584
- * });
585
- * } catch (error) {
586
- * // Bob insert rolled back, Alice insert preserved
587
- * }
588
- *
589
- * await trx('users').insert({ name: 'Charlie' });
590
- * });
591
- */
125
+ /** Creates a savepoint within a transaction. */
592
126
  async savepoint(trx, callback) {
593
127
  return trx.savepoint(callback);
594
128
  }
595
- // ============================================================================
596
- // Schema Management
597
- // ============================================================================
598
- /**
599
- * Checks if a table exists in the database.
600
- *
601
- * Queries INFORMATION_SCHEMA.TABLES which is the standard MySQL approach
602
- * for table existence checking.
603
- *
604
- * **Important Notes:**
605
- * - Case sensitivity depends on operating system (Linux: case-sensitive, Windows: case-insensitive)
606
- * - Uses current database (from connection config)
607
- * - Checks both base tables and views
608
- *
609
- * @param {string} tableName - Table name to check
610
- * @returns {Promise<boolean>} True if table exists, false otherwise
611
- *
612
- * @example
613
- * // Check before creating table
614
- * if (!(await adapter.tableExists('users'))) {
615
- * await knex.schema.createTable('users', (table) => {
616
- * adapter.autoIncrementColumn(table);
617
- * table.string('name');
618
- * });
619
- * }
620
- *
621
- * @example
622
- * // Conditional migration
623
- * if (await adapter.tableExists('old_table')) {
624
- * await knex.raw('RENAME TABLE old_table TO new_table');
625
- * }
626
- */
129
+ /** Checks if a table exists via INFORMATION_SCHEMA. */
627
130
  async tableExists(tableName) {
628
131
  const knex = this.getKnex();
629
132
  const database = this.config.connection.database;
630
- const result = await knex.raw(`SELECT TABLE_NAME
631
- FROM INFORMATION_SCHEMA.TABLES
632
- WHERE TABLE_SCHEMA = ?
133
+ const result = await knex.raw(`SELECT TABLE_NAME
134
+ FROM INFORMATION_SCHEMA.TABLES
135
+ WHERE TABLE_SCHEMA = ?
633
136
  AND TABLE_NAME = ?`, [database, tableName]);
634
137
  return result[0].length > 0;
635
138
  }
636
- /**
637
- * Adds an auto-increment primary key column to a table.
638
- *
639
- * **MySQL AUTO_INCREMENT Behavior:**
640
- * - Generates sequential integer IDs starting from 1
641
- * - Must be indexed (PRIMARY KEY or UNIQUE)
642
- * - Only one AUTO_INCREMENT column per table
643
- * - Uses UNSIGNED INT for larger range (0 to 4,294,967,295)
644
- *
645
- * **Column Characteristics:**
646
- * - Type: INTEGER UNSIGNED
647
- * - Primary Key: Yes
648
- * - Auto Increment: Yes
649
- * - Not Nullable: Yes
650
- *
651
- * @param {Knex.CreateTableBuilder} table - Knex table builder
652
- * @param {string} [columnName='id'] - Column name (default: 'id')
653
- *
654
- * @example
655
- * // Create table with auto-increment ID
656
- * await knex.schema.createTable('users', (table) => {
657
- * adapter.autoIncrementColumn(table);
658
- * table.string('name').notNullable();
659
- * table.string('email').unique();
660
- * table.timestamps(true, true);
661
- * });
662
- * // CREATE TABLE `users` (
663
- * // `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
664
- * // `name` VARCHAR(255) NOT NULL,
665
- * // `email` VARCHAR(255) UNIQUE,
666
- * // `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
667
- * // `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
668
- * // )
669
- *
670
- * @example
671
- * // Custom column name
672
- * await knex.schema.createTable('orders', (table) => {
673
- * adapter.autoIncrementColumn(table, 'order_id');
674
- * table.integer('user_id').unsigned().notNullable();
675
- * });
676
- */
139
+ /** Adds an auto-increment primary key column (UNSIGNED INT). */
677
140
  autoIncrementColumn(table, columnName = 'id') {
678
141
  // Use increments() which creates UNSIGNED INT AUTO_INCREMENT PRIMARY KEY
679
142
  table.increments(columnName).unsigned();
@@ -1 +1 @@
1
- {"version":3,"file":"mysql-adapter.js","sourceRoot":"","sources":["../../src/adapters/mysql-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mysql-adapter.js","sourceRoot":"","sources":["../../src/adapters/mysql-adapter.ts"],"names":[],"mappings":"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"}