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