chkit 0.1.2-beta.7 → 0.2.0-beta.12

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 (322) hide show
  1. package/README.md +69 -56
  2. package/dist/bin/chkit.js +82 -31
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/commands/check/output.js +1 -1
  5. package/dist/commands/check/output.js.map +1 -1
  6. package/dist/commands/drift/command.d.ts.map +1 -1
  7. package/dist/commands/drift/command.js +9 -0
  8. package/dist/commands/drift/command.js.map +1 -1
  9. package/dist/commands/drift/compare.d.ts +52 -4
  10. package/dist/commands/drift/compare.d.ts.map +1 -1
  11. package/dist/commands/drift/compare.js +258 -49
  12. package/dist/commands/drift/compare.js.map +1 -1
  13. package/dist/commands/drift/payload.d.ts +1 -0
  14. package/dist/commands/drift/payload.d.ts.map +1 -1
  15. package/dist/commands/drift/payload.js +59 -10
  16. package/dist/commands/drift/payload.js.map +1 -1
  17. package/dist/commands/generate/command.d.ts.map +1 -1
  18. package/dist/commands/generate/command.js +73 -33
  19. package/dist/commands/generate/command.js.map +1 -1
  20. package/dist/commands/generate/cutover.d.ts +56 -0
  21. package/dist/commands/generate/cutover.d.ts.map +1 -0
  22. package/dist/commands/generate/cutover.js +138 -0
  23. package/dist/commands/generate/cutover.js.map +1 -0
  24. package/dist/commands/generate/output.d.ts +3 -2
  25. package/dist/commands/generate/output.d.ts.map +1 -1
  26. package/dist/commands/generate/output.js +17 -2
  27. package/dist/commands/generate/output.js.map +1 -1
  28. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -1
  29. package/dist/commands/generate/plan-pipeline.js +35 -36
  30. package/dist/commands/generate/plan-pipeline.js.map +1 -1
  31. package/dist/commands/init.d.ts +2 -0
  32. package/dist/commands/init.d.ts.map +1 -1
  33. package/dist/commands/init.js +21 -4
  34. package/dist/commands/init.js.map +1 -1
  35. package/dist/commands/migrate/abandon.d.ts +39 -0
  36. package/dist/commands/migrate/abandon.d.ts.map +1 -0
  37. package/dist/commands/migrate/abandon.js +76 -0
  38. package/dist/commands/migrate/abandon.js.map +1 -0
  39. package/dist/commands/migrate/apply.d.ts +10 -1
  40. package/dist/commands/migrate/apply.d.ts.map +1 -1
  41. package/dist/commands/migrate/apply.js +108 -10
  42. package/dist/commands/migrate/apply.js.map +1 -1
  43. package/dist/commands/migrate/async-apply.d.ts +11 -3
  44. package/dist/commands/migrate/async-apply.d.ts.map +1 -1
  45. package/dist/commands/migrate/async-apply.js +113 -27
  46. package/dist/commands/migrate/async-apply.js.map +1 -1
  47. package/dist/commands/migrate/command.d.ts +46 -1
  48. package/dist/commands/migrate/command.d.ts.map +1 -1
  49. package/dist/commands/migrate/command.js +159 -35
  50. package/dist/commands/migrate/command.js.map +1 -1
  51. package/dist/commands/migrate/empty.d.ts +8 -0
  52. package/dist/commands/migrate/empty.d.ts.map +1 -0
  53. package/dist/commands/migrate/empty.js +17 -0
  54. package/dist/commands/migrate/empty.js.map +1 -0
  55. package/dist/commands/migrate/errors.d.ts +22 -0
  56. package/dist/commands/migrate/errors.d.ts.map +1 -0
  57. package/dist/commands/migrate/errors.js +31 -0
  58. package/dist/commands/migrate/errors.js.map +1 -0
  59. package/dist/commands/migrate/output.d.ts +31 -0
  60. package/dist/commands/migrate/output.d.ts.map +1 -1
  61. package/dist/commands/migrate/output.js +120 -9
  62. package/dist/commands/migrate/output.js.map +1 -1
  63. package/dist/commands/migrate/prompts.d.ts +1 -0
  64. package/dist/commands/migrate/prompts.d.ts.map +1 -1
  65. package/dist/commands/migrate/prompts.js +3 -0
  66. package/dist/commands/migrate/prompts.js.map +1 -1
  67. package/dist/commands/migrate/recovery.d.ts +90 -0
  68. package/dist/commands/migrate/recovery.d.ts.map +1 -0
  69. package/dist/commands/migrate/recovery.js +163 -0
  70. package/dist/commands/migrate/recovery.js.map +1 -0
  71. package/dist/commands/migrate/retry.d.ts +37 -0
  72. package/dist/commands/migrate/retry.d.ts.map +1 -0
  73. package/dist/commands/migrate/retry.js +46 -0
  74. package/dist/commands/migrate/retry.js.map +1 -0
  75. package/dist/commands/migrate/settings.d.ts +8 -0
  76. package/dist/commands/migrate/settings.d.ts.map +1 -0
  77. package/dist/commands/migrate/settings.js +40 -0
  78. package/dist/commands/migrate/settings.js.map +1 -0
  79. package/dist/commands/plugin.d.ts.map +1 -1
  80. package/dist/commands/plugin.js +28 -4
  81. package/dist/commands/plugin.js.map +1 -1
  82. package/dist/commands/query.d.ts.map +1 -1
  83. package/dist/commands/query.js +11 -15
  84. package/dist/commands/query.js.map +1 -1
  85. package/dist/commands/registry.d.ts +2 -0
  86. package/dist/commands/registry.d.ts.map +1 -0
  87. package/dist/commands/registry.js +228 -0
  88. package/dist/commands/registry.js.map +1 -0
  89. package/dist/commands/snapshot/command.d.ts +3 -0
  90. package/dist/commands/snapshot/command.d.ts.map +1 -0
  91. package/dist/commands/snapshot/command.js +32 -0
  92. package/dist/commands/snapshot/command.js.map +1 -0
  93. package/dist/commands/snapshot/output.d.ts +24 -0
  94. package/dist/commands/snapshot/output.d.ts.map +1 -0
  95. package/dist/commands/snapshot/output.js +86 -0
  96. package/dist/commands/snapshot/output.js.map +1 -0
  97. package/dist/commands/snapshot/rebuild.d.ts +19 -0
  98. package/dist/commands/snapshot/rebuild.d.ts.map +1 -0
  99. package/dist/commands/snapshot/rebuild.js +94 -0
  100. package/dist/commands/snapshot/rebuild.js.map +1 -0
  101. package/dist/internal-plugins/core/plugin.d.ts.map +1 -1
  102. package/dist/internal-plugins/core/plugin.js +2 -0
  103. package/dist/internal-plugins/core/plugin.js.map +1 -1
  104. package/dist/registry/build.d.ts +17 -0
  105. package/dist/registry/build.d.ts.map +1 -0
  106. package/dist/registry/build.js +94 -0
  107. package/dist/registry/build.js.map +1 -0
  108. package/dist/registry/dependencies.d.ts +19 -0
  109. package/dist/registry/dependencies.d.ts.map +1 -0
  110. package/dist/registry/dependencies.js +105 -0
  111. package/dist/registry/dependencies.js.map +1 -0
  112. package/dist/registry/files.d.ts +4 -0
  113. package/dist/registry/files.d.ts.map +1 -0
  114. package/dist/registry/files.js +33 -0
  115. package/dist/registry/files.js.map +1 -0
  116. package/dist/registry/install.d.ts +55 -0
  117. package/dist/registry/install.d.ts.map +1 -0
  118. package/dist/registry/install.js +175 -0
  119. package/dist/registry/install.js.map +1 -0
  120. package/dist/registry/model.d.ts +172 -0
  121. package/dist/registry/model.d.ts.map +1 -0
  122. package/dist/registry/model.js +161 -0
  123. package/dist/registry/model.js.map +1 -0
  124. package/dist/registry/project-config.d.ts +18 -0
  125. package/dist/registry/project-config.d.ts.map +1 -0
  126. package/dist/registry/project-config.js +337 -0
  127. package/dist/registry/project-config.js.map +1 -0
  128. package/dist/registry/resolve.d.ts +7 -0
  129. package/dist/registry/resolve.d.ts.map +1 -0
  130. package/dist/registry/resolve.js +136 -0
  131. package/dist/registry/resolve.js.map +1 -0
  132. package/dist/runtime/argv.d.ts +3 -0
  133. package/dist/runtime/argv.d.ts.map +1 -0
  134. package/dist/runtime/argv.js +29 -0
  135. package/dist/runtime/argv.js.map +1 -0
  136. package/dist/runtime/command-dispatch.d.ts +2 -1
  137. package/dist/runtime/command-dispatch.d.ts.map +1 -1
  138. package/dist/runtime/command-dispatch.js +15 -7
  139. package/dist/runtime/command-dispatch.js.map +1 -1
  140. package/dist/runtime/config-merge.d.ts.map +1 -1
  141. package/dist/runtime/config-merge.js +2 -1
  142. package/dist/runtime/config-merge.js.map +1 -1
  143. package/dist/runtime/config.d.ts.map +1 -1
  144. package/dist/runtime/config.js +2 -1
  145. package/dist/runtime/config.js.map +1 -1
  146. package/dist/runtime/global-flags.d.ts +4 -0
  147. package/dist/runtime/global-flags.d.ts.map +1 -1
  148. package/dist/runtime/global-flags.js +1 -0
  149. package/dist/runtime/global-flags.js.map +1 -1
  150. package/dist/runtime/help.d.ts +1 -1
  151. package/dist/runtime/help.d.ts.map +1 -1
  152. package/dist/runtime/help.js +13 -4
  153. package/dist/runtime/help.js.map +1 -1
  154. package/dist/runtime/journal-store.d.ts.map +1 -1
  155. package/dist/runtime/journal-store.js +178 -42
  156. package/dist/runtime/journal-store.js.map +1 -1
  157. package/dist/runtime/json-output.d.ts +15 -1
  158. package/dist/runtime/json-output.d.ts.map +1 -1
  159. package/dist/runtime/json-output.js +43 -2
  160. package/dist/runtime/json-output.js.map +1 -1
  161. package/dist/runtime/migration-store.d.ts +1 -1
  162. package/dist/runtime/migration-store.d.ts.map +1 -1
  163. package/dist/runtime/migration-store.js +17 -16
  164. package/dist/runtime/migration-store.js.map +1 -1
  165. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -1
  166. package/dist/runtime/plugin-runtime/executor-debug.js +10 -8
  167. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -1
  168. package/dist/runtime/plugin-runtime/loader.js +1 -1
  169. package/dist/runtime/plugin-runtime/loader.js.map +1 -1
  170. package/dist/runtime/safety-markers.d.ts +4 -2
  171. package/dist/runtime/safety-markers.d.ts.map +1 -1
  172. package/dist/runtime/safety-markers.js +4 -2
  173. package/dist/runtime/safety-markers.js.map +1 -1
  174. package/dist/runtime/schema-loader.d.ts +20 -1
  175. package/dist/runtime/schema-loader.d.ts.map +1 -1
  176. package/dist/runtime/schema-loader.js +26 -0
  177. package/dist/runtime/schema-loader.js.map +1 -1
  178. package/dist/runtime/snapshot-document.d.ts +33 -0
  179. package/dist/runtime/snapshot-document.d.ts.map +1 -0
  180. package/dist/runtime/snapshot-document.js +65 -0
  181. package/dist/runtime/snapshot-document.js.map +1 -0
  182. package/package.json +20 -7
  183. package/dist/bin/clickhouse-resource.d.ts +0 -4
  184. package/dist/bin/clickhouse-resource.d.ts.map +0 -1
  185. package/dist/bin/clickhouse-resource.js +0 -11
  186. package/dist/bin/clickhouse-resource.js.map +0 -1
  187. package/dist/bin/command-dispatch.d.ts +0 -13
  188. package/dist/bin/command-dispatch.d.ts.map +0 -1
  189. package/dist/bin/command-dispatch.js +0 -186
  190. package/dist/bin/command-dispatch.js.map +0 -1
  191. package/dist/bin/command-registry.d.ts +0 -34
  192. package/dist/bin/command-registry.d.ts.map +0 -1
  193. package/dist/bin/command-registry.js +0 -87
  194. package/dist/bin/command-registry.js.map +0 -1
  195. package/dist/bin/commands/check.d.ts +0 -3
  196. package/dist/bin/commands/check.d.ts.map +0 -1
  197. package/dist/bin/commands/check.js +0 -181
  198. package/dist/bin/commands/check.js.map +0 -1
  199. package/dist/bin/commands/codegen.d.ts +0 -2
  200. package/dist/bin/commands/codegen.d.ts.map +0 -1
  201. package/dist/bin/commands/codegen.js +0 -25
  202. package/dist/bin/commands/codegen.js.map +0 -1
  203. package/dist/bin/commands/drift.d.ts +0 -27
  204. package/dist/bin/commands/drift.d.ts.map +0 -1
  205. package/dist/bin/commands/drift.js +0 -220
  206. package/dist/bin/commands/drift.js.map +0 -1
  207. package/dist/bin/commands/generate/output.d.ts +0 -8
  208. package/dist/bin/commands/generate/output.d.ts.map +0 -1
  209. package/dist/bin/commands/generate/output.js +0 -58
  210. package/dist/bin/commands/generate/output.js.map +0 -1
  211. package/dist/bin/commands/generate/plan-pipeline.d.ts +0 -7
  212. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +0 -1
  213. package/dist/bin/commands/generate/plan-pipeline.js +0 -143
  214. package/dist/bin/commands/generate/plan-pipeline.js.map +0 -1
  215. package/dist/bin/commands/generate/rename-mappings.d.ts +0 -29
  216. package/dist/bin/commands/generate/rename-mappings.d.ts.map +0 -1
  217. package/dist/bin/commands/generate/rename-mappings.js +0 -195
  218. package/dist/bin/commands/generate/rename-mappings.js.map +0 -1
  219. package/dist/bin/commands/generate.d.ts +0 -3
  220. package/dist/bin/commands/generate.d.ts.map +0 -1
  221. package/dist/bin/commands/generate.js +0 -158
  222. package/dist/bin/commands/generate.js.map +0 -1
  223. package/dist/bin/commands/init.d.ts +0 -2
  224. package/dist/bin/commands/init.d.ts.map +0 -1
  225. package/dist/bin/commands/init.js +0 -12
  226. package/dist/bin/commands/init.js.map +0 -1
  227. package/dist/bin/commands/migrate.d.ts +0 -3
  228. package/dist/bin/commands/migrate.d.ts.map +0 -1
  229. package/dist/bin/commands/migrate.js +0 -288
  230. package/dist/bin/commands/migrate.js.map +0 -1
  231. package/dist/bin/commands/plugin-like.d.ts +0 -38
  232. package/dist/bin/commands/plugin-like.d.ts.map +0 -1
  233. package/dist/bin/commands/plugin-like.js +0 -101
  234. package/dist/bin/commands/plugin-like.js.map +0 -1
  235. package/dist/bin/commands/plugin.d.ts +0 -3
  236. package/dist/bin/commands/plugin.d.ts.map +0 -1
  237. package/dist/bin/commands/plugin.js +0 -148
  238. package/dist/bin/commands/plugin.js.map +0 -1
  239. package/dist/bin/commands/pull.d.ts +0 -2
  240. package/dist/bin/commands/pull.d.ts.map +0 -1
  241. package/dist/bin/commands/pull.js +0 -25
  242. package/dist/bin/commands/pull.js.map +0 -1
  243. package/dist/bin/commands/status.d.ts +0 -3
  244. package/dist/bin/commands/status.d.ts.map +0 -1
  245. package/dist/bin/commands/status.js +0 -63
  246. package/dist/bin/commands/status.js.map +0 -1
  247. package/dist/bin/commands/typegen.d.ts +0 -2
  248. package/dist/bin/commands/typegen.d.ts.map +0 -1
  249. package/dist/bin/commands/typegen.js +0 -25
  250. package/dist/bin/commands/typegen.js.map +0 -1
  251. package/dist/bin/config.d.ts +0 -13
  252. package/dist/bin/config.d.ts.map +0 -1
  253. package/dist/bin/config.js +0 -48
  254. package/dist/bin/config.js.map +0 -1
  255. package/dist/bin/debug.d.ts +0 -3
  256. package/dist/bin/debug.d.ts.map +0 -1
  257. package/dist/bin/debug.js +0 -14
  258. package/dist/bin/debug.js.map +0 -1
  259. package/dist/bin/global-flags.d.ts +0 -16
  260. package/dist/bin/global-flags.d.ts.map +0 -1
  261. package/dist/bin/global-flags.js +0 -7
  262. package/dist/bin/global-flags.js.map +0 -1
  263. package/dist/bin/help.d.ts +0 -5
  264. package/dist/bin/help.d.ts.map +0 -1
  265. package/dist/bin/help.js +0 -84
  266. package/dist/bin/help.js.map +0 -1
  267. package/dist/bin/internal-plugins/index.d.ts +0 -3
  268. package/dist/bin/internal-plugins/index.d.ts.map +0 -1
  269. package/dist/bin/internal-plugins/index.js +0 -5
  270. package/dist/bin/internal-plugins/index.js.map +0 -1
  271. package/dist/bin/internal-plugins/skill-hint.d.ts +0 -31
  272. package/dist/bin/internal-plugins/skill-hint.d.ts.map +0 -1
  273. package/dist/bin/internal-plugins/skill-hint.js +0 -172
  274. package/dist/bin/internal-plugins/skill-hint.js.map +0 -1
  275. package/dist/bin/journal-store.d.ts +0 -10
  276. package/dist/bin/journal-store.d.ts.map +0 -1
  277. package/dist/bin/journal-store.js +0 -137
  278. package/dist/bin/journal-store.js.map +0 -1
  279. package/dist/bin/json-output.d.ts +0 -5
  280. package/dist/bin/json-output.d.ts.map +0 -1
  281. package/dist/bin/json-output.js +0 -21
  282. package/dist/bin/json-output.js.map +0 -1
  283. package/dist/bin/lib.d.ts +0 -5
  284. package/dist/bin/lib.d.ts.map +0 -1
  285. package/dist/bin/lib.js +0 -5
  286. package/dist/bin/lib.js.map +0 -1
  287. package/dist/bin/logging.d.ts +0 -3
  288. package/dist/bin/logging.d.ts.map +0 -1
  289. package/dist/bin/logging.js +0 -31
  290. package/dist/bin/logging.js.map +0 -1
  291. package/dist/bin/migration-store.d.ts +0 -22
  292. package/dist/bin/migration-store.d.ts.map +0 -1
  293. package/dist/bin/migration-store.js +0 -60
  294. package/dist/bin/migration-store.js.map +0 -1
  295. package/dist/bin/plugin-runtime.d.ts +0 -45
  296. package/dist/bin/plugin-runtime.d.ts.map +0 -1
  297. package/dist/bin/plugin-runtime.js +0 -513
  298. package/dist/bin/plugin-runtime.js.map +0 -1
  299. package/dist/bin/safety-markers.d.ts +0 -23
  300. package/dist/bin/safety-markers.d.ts.map +0 -1
  301. package/dist/bin/safety-markers.js +0 -85
  302. package/dist/bin/safety-markers.js.map +0 -1
  303. package/dist/bin/schema-loader.d.ts +0 -3
  304. package/dist/bin/schema-loader.d.ts.map +0 -1
  305. package/dist/bin/schema-loader.js +0 -11
  306. package/dist/bin/schema-loader.js.map +0 -1
  307. package/dist/bin/table-scope.d.ts +0 -38
  308. package/dist/bin/table-scope.d.ts.map +0 -1
  309. package/dist/bin/table-scope.js +0 -167
  310. package/dist/bin/table-scope.js.map +0 -1
  311. package/dist/bin/version.d.ts +0 -2
  312. package/dist/bin/version.d.ts.map +0 -1
  313. package/dist/bin/version.js +0 -5
  314. package/dist/bin/version.js.map +0 -1
  315. package/dist/drift-diff.d.ts +0 -8
  316. package/dist/drift-diff.d.ts.map +0 -1
  317. package/dist/drift-diff.js +0 -46
  318. package/dist/drift-diff.js.map +0 -1
  319. package/dist/drift.d.ts +0 -66
  320. package/dist/drift.d.ts.map +0 -1
  321. package/dist/drift.js +0 -220
  322. package/dist/drift.js.map +0 -1
@@ -1,58 +0,0 @@
1
- import { emitJson, summarizePlan } from '../../lib.js';
2
- export function emitGeneratePlanOutput(plan, jsonMode, scope) {
3
- const payload = {
4
- scope,
5
- mode: 'plan',
6
- operationCount: plan.operations.length,
7
- riskSummary: plan.riskSummary,
8
- operations: plan.operations,
9
- renameSuggestions: plan.renameSuggestions,
10
- };
11
- if (jsonMode) {
12
- emitJson('generate', payload);
13
- return;
14
- }
15
- console.log(`Planned operations: ${payload.operationCount}`);
16
- console.log(`Risk summary: safe=${payload.riskSummary.safe}, caution=${payload.riskSummary.caution}, danger=${payload.riskSummary.danger}`);
17
- for (const line of summarizePlan(payload.operations))
18
- console.log(`- ${line}`);
19
- if (payload.renameSuggestions.length > 0) {
20
- console.log('\nRename suggestions (review and confirm manually):');
21
- for (const suggestion of payload.renameSuggestions) {
22
- console.log(`- ${suggestion.kind} ${suggestion.database}.${suggestion.table}: ${suggestion.from} -> ${suggestion.to} [${suggestion.confidence}]`);
23
- console.log(` ${suggestion.reason}`);
24
- console.log(` Confirm with: ${suggestion.confirmationSQL}`);
25
- }
26
- }
27
- }
28
- export function emitGenerateApplyOutput(result, definitions, plan, jsonMode, scope) {
29
- const payload = {
30
- scope,
31
- migrationFile: result.migrationFile,
32
- snapshotFile: result.snapshotFile,
33
- definitionCount: definitions.length,
34
- operationCount: plan.operations.length,
35
- riskSummary: plan.riskSummary,
36
- };
37
- if (jsonMode) {
38
- emitJson('generate', payload);
39
- return;
40
- }
41
- if (result.migrationFile) {
42
- console.log(`Generated migration: ${result.migrationFile}`);
43
- }
44
- else {
45
- console.log('No migration generated: plan is empty.');
46
- }
47
- if (scope.enabled) {
48
- console.log(`Table scope: ${scope.selector ?? ''} (${scope.matchCount} matched)`);
49
- for (const table of scope.matchedTables) {
50
- console.log(`- ${table}`);
51
- }
52
- }
53
- console.log(`Updated snapshot: ${result.snapshotFile}`);
54
- console.log(`Definitions: ${definitions.length}`);
55
- console.log(`Operations: ${plan.operations.length}`);
56
- console.log(`Risk summary: safe=${plan.riskSummary.safe}, caution=${plan.riskSummary.caution}, danger=${plan.riskSummary.danger}`);
57
- }
58
- //# sourceMappingURL=output.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../../src/bin/commands/generate/output.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { ColumnRenameSuggestion, MigrationPlan, SchemaDefinition } from '@chkit/core';
2
- import type { ColumnRenameMapping, TableRenameMapping } from './rename-mappings.js';
3
- export declare function applySelectedRenameSuggestions(plan: MigrationPlan, selectedSuggestions: ColumnRenameSuggestion[]): MigrationPlan;
4
- export declare function applyExplicitTableRenames(plan: MigrationPlan, mappings: TableRenameMapping[]): MigrationPlan;
5
- export declare function buildExplicitColumnRenameSuggestions(plan: MigrationPlan, mappings: ColumnRenameMapping[]): ColumnRenameSuggestion[];
6
- export declare function assertCliColumnMappingsResolvable(cliMappings: ColumnRenameMapping[], plan: MigrationPlan, nextDefinitions: SchemaDefinition[]): void;
7
- //# sourceMappingURL=plan-pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-pipeline.d.ts","sourceRoot":"","sources":["../../../../src/bin/commands/generate/plan-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EAEtB,aAAa,EAEb,gBAAgB,EACjB,MAAM,aAAa,CAAA;AAEpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEnF,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,aAAa,EACnB,mBAAmB,EAAE,sBAAsB,EAAE,GAC5C,aAAa,CAwCf;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,aAAa,CA8Cf;AAED,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,mBAAmB,EAAE,GAC9B,sBAAsB,EAAE,CA2B1B;AAED,wBAAgB,iCAAiC,CAC/C,WAAW,EAAE,mBAAmB,EAAE,EAClC,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,gBAAgB,EAAE,GAClC,IAAI,CAsBN"}
@@ -1,143 +0,0 @@
1
- export function applySelectedRenameSuggestions(plan, selectedSuggestions) {
2
- if (selectedSuggestions.length === 0)
3
- return plan;
4
- const operationKeysToRemove = new Set();
5
- const renameOperations = [];
6
- for (const suggestion of selectedSuggestions) {
7
- operationKeysToRemove.add(suggestion.dropOperationKey);
8
- operationKeysToRemove.add(suggestion.addOperationKey);
9
- renameOperations.push({
10
- type: 'alter_table_rename_column',
11
- key: `table:${suggestion.database}.${suggestion.table}:column_rename:${suggestion.from}:${suggestion.to}`,
12
- risk: 'caution',
13
- sql: suggestion.confirmationSQL,
14
- });
15
- }
16
- const operations = [
17
- ...plan.operations.filter((operation) => !operationKeysToRemove.has(operation.key)),
18
- ...renameOperations,
19
- ].sort((a, b) => {
20
- const rankOrder = rankOperation(a) - rankOperation(b);
21
- if (rankOrder !== 0)
22
- return rankOrder;
23
- return a.key.localeCompare(b.key);
24
- });
25
- return {
26
- operations,
27
- riskSummary: summarizeRisk(operations),
28
- renameSuggestions: plan.renameSuggestions.filter((suggestion) => !selectedSuggestions.some((selected) => selected.database === suggestion.database &&
29
- selected.table === suggestion.table &&
30
- selected.from === suggestion.from &&
31
- selected.to === suggestion.to)),
32
- };
33
- }
34
- export function applyExplicitTableRenames(plan, mappings) {
35
- if (mappings.length === 0)
36
- return plan;
37
- const operationKeysToRemove = new Set();
38
- const extraOperations = [];
39
- const createDatabaseOps = new Set(plan.operations.filter((operation) => operation.type === 'create_database').map((operation) => operation.key));
40
- for (const mapping of mappings) {
41
- operationKeysToRemove.add(`table:${mapping.oldDatabase}.${mapping.oldName}`);
42
- operationKeysToRemove.add(`table:${mapping.newDatabase}.${mapping.newName}`);
43
- if (mapping.oldDatabase !== mapping.newDatabase) {
44
- const dbKey = `database:${mapping.newDatabase}`;
45
- if (!createDatabaseOps.has(dbKey)) {
46
- extraOperations.push({
47
- type: 'create_database',
48
- key: dbKey,
49
- risk: 'safe',
50
- sql: `CREATE DATABASE IF NOT EXISTS ${mapping.newDatabase};`,
51
- });
52
- createDatabaseOps.add(dbKey);
53
- }
54
- }
55
- extraOperations.push({
56
- type: 'alter_table_rename_table',
57
- key: `table:${mapping.newDatabase}.${mapping.newName}:rename_table`,
58
- risk: 'caution',
59
- sql: `RENAME TABLE ${mapping.oldDatabase}.${mapping.oldName} TO ${mapping.newDatabase}.${mapping.newName};`,
60
- });
61
- }
62
- const operations = [
63
- ...plan.operations.filter((operation) => !operationKeysToRemove.has(operation.key)),
64
- ...extraOperations,
65
- ].sort((a, b) => {
66
- const rankOrder = rankOperation(a) - rankOperation(b);
67
- if (rankOrder !== 0)
68
- return rankOrder;
69
- return a.key.localeCompare(b.key);
70
- });
71
- return {
72
- operations,
73
- riskSummary: summarizeRisk(operations),
74
- renameSuggestions: plan.renameSuggestions,
75
- };
76
- }
77
- export function buildExplicitColumnRenameSuggestions(plan, mappings) {
78
- if (mappings.length === 0)
79
- return [];
80
- const operationKeys = new Set(plan.operations.map((operation) => operation.key));
81
- const suggestions = [];
82
- for (const mapping of mappings) {
83
- const dropOperationKey = `table:${mapping.database}.${mapping.table}:column:${mapping.from}`;
84
- const addOperationKey = `table:${mapping.database}.${mapping.table}:column:${mapping.to}`;
85
- if (!operationKeys.has(dropOperationKey) || !operationKeys.has(addOperationKey))
86
- continue;
87
- suggestions.push({
88
- kind: 'column',
89
- database: mapping.database,
90
- table: mapping.table,
91
- from: mapping.from,
92
- to: mapping.to,
93
- confidence: 'high',
94
- reason: mapping.source === 'cli'
95
- ? 'Explicitly confirmed by --rename-column mapping.'
96
- : 'Explicitly confirmed by schema metadata (renamedFrom).',
97
- dropOperationKey,
98
- addOperationKey,
99
- confirmationSQL: `ALTER TABLE ${mapping.database}.${mapping.table} RENAME COLUMN \`${mapping.from}\` TO \`${mapping.to}\`;`,
100
- });
101
- }
102
- return suggestions;
103
- }
104
- export function assertCliColumnMappingsResolvable(cliMappings, plan, nextDefinitions) {
105
- for (const mapping of cliMappings) {
106
- if (!tableExists(nextDefinitions, mapping.database, mapping.table)) {
107
- throw new Error(`--rename-column mapping "${mapping.database}.${mapping.table}.${mapping.from}=${mapping.to}" is invalid: target table is missing from current schema.`);
108
- }
109
- const hasDrop = plan.operations.some((operation) => operation.type === 'alter_table_drop_column' &&
110
- operation.key === `table:${mapping.database}.${mapping.table}:column:${mapping.from}`);
111
- const hasAdd = plan.operations.some((operation) => operation.type === 'alter_table_add_column' &&
112
- operation.key === `table:${mapping.database}.${mapping.table}:column:${mapping.to}`);
113
- if (hasDrop && hasAdd)
114
- continue;
115
- throw new Error(`--rename-column mapping "${mapping.database}.${mapping.table}.${mapping.from}=${mapping.to}" is invalid: planner did not find both matching drop and add operations.`);
116
- }
117
- }
118
- function rankOperation(op) {
119
- if (op.type.startsWith('drop_'))
120
- return 0;
121
- if (op.type === 'create_database')
122
- return 1;
123
- if (op.type === 'alter_table_rename_table')
124
- return 2;
125
- if (op.type.startsWith('alter_'))
126
- return 3;
127
- if (op.type === 'create_table')
128
- return 4;
129
- if (op.type === 'create_view')
130
- return 5;
131
- return 6;
132
- }
133
- function summarizeRisk(operations) {
134
- const riskSummary = { safe: 0, caution: 0, danger: 0 };
135
- for (const operation of operations) {
136
- riskSummary[operation.risk] = (riskSummary[operation.risk] ?? 0) + 1;
137
- }
138
- return riskSummary;
139
- }
140
- function tableExists(definitions, database, name) {
141
- return definitions.some((definition) => definition.kind === 'table' && definition.database === database && definition.name === name);
142
- }
143
- //# sourceMappingURL=plan-pipeline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-pipeline.js","sourceRoot":"","sources":["../../../../src/bin/commands/generate/plan-pipeline.ts"],"names":[],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import type { SchemaDefinition } from '@chkit/core';
2
- export interface TableRenameMapping {
3
- oldDatabase: string;
4
- oldName: string;
5
- newDatabase: string;
6
- newName: string;
7
- source: 'cli' | 'schema';
8
- }
9
- export interface ColumnRenameMapping {
10
- database: string;
11
- table: string;
12
- from: string;
13
- to: string;
14
- source: 'cli' | 'schema';
15
- }
16
- export declare function parseRenameTableMappings(values: string[]): TableRenameMapping[];
17
- export declare function parseRenameColumnMappings(values: string[]): ColumnRenameMapping[];
18
- export declare function collectSchemaRenameMappings(definitions: SchemaDefinition[]): {
19
- tableMappings: TableRenameMapping[];
20
- columnMappings: ColumnRenameMapping[];
21
- };
22
- export declare function mergeTableMappings(schemaMappings: TableRenameMapping[], cliMappings: TableRenameMapping[]): TableRenameMapping[];
23
- export declare function mergeColumnMappings(schemaMappings: ColumnRenameMapping[], cliMappings: ColumnRenameMapping[]): ColumnRenameMapping[];
24
- export declare function resolveActiveTableMappings(previousDefinitions: SchemaDefinition[], nextDefinitions: SchemaDefinition[], mappings: TableRenameMapping[]): TableRenameMapping[];
25
- export declare function assertNoConflictingTableMappings(mappings: TableRenameMapping[]): void;
26
- export declare function assertNoConflictingColumnMappings(mappings: ColumnRenameMapping[]): void;
27
- export declare function assertCliTableMappingsResolvable(cliMappings: TableRenameMapping[], previousDefinitions: SchemaDefinition[], nextDefinitions: SchemaDefinition[]): void;
28
- export declare function remapOldDefinitionsForTableRenames(previousDefinitions: SchemaDefinition[], mappings: TableRenameMapping[]): SchemaDefinition[];
29
- //# sourceMappingURL=rename-mappings.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rename-mappings.d.ts","sourceRoot":"","sources":["../../../../src/bin/commands/generate/rename-mappings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAmB,MAAM,aAAa,CAAA;AAEpE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;CACzB;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAkB/E;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAuBjF;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,gBAAgB,EAAE,GAC9B;IAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;IAAC,cAAc,EAAE,mBAAmB,EAAE,CAAA;CAAE,CA4BhF;AAED,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,kBAAkB,EAAE,EACpC,WAAW,EAAE,kBAAkB,EAAE,GAChC,kBAAkB,EAAE,CAiBtB;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,mBAAmB,EAAE,EACrC,WAAW,EAAE,mBAAmB,EAAE,GACjC,mBAAmB,EAAE,CAiBvB;AAED,wBAAgB,0BAA0B,CACxC,mBAAmB,EAAE,gBAAgB,EAAE,EACvC,eAAe,EAAE,gBAAgB,EAAE,EACnC,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,kBAAkB,EAAE,CAMtB;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,IAAI,CA2BrF;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAmBvF;AAED,wBAAgB,gCAAgC,CAC9C,WAAW,EAAE,kBAAkB,EAAE,EACjC,mBAAmB,EAAE,gBAAgB,EAAE,EACvC,eAAe,EAAE,gBAAgB,EAAE,GAClC,IAAI,CAmBN;AAED,wBAAgB,kCAAkC,CAChD,mBAAmB,EAAE,gBAAgB,EAAE,EACvC,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,gBAAgB,EAAE,CAmBpB"}
@@ -1,195 +0,0 @@
1
- export function parseRenameTableMappings(values) {
2
- return values.map((mapping) => {
3
- const [fromRaw, toRaw, ...rest] = mapping.split('=').map((part) => part.trim());
4
- if (!fromRaw || !toRaw || rest.length > 0) {
5
- throw new Error(`Invalid --rename-table mapping "${mapping}". Expected format: old_db.old_table=new_db.new_table`);
6
- }
7
- const from = parseQualifiedTable(fromRaw);
8
- const to = parseQualifiedTable(toRaw);
9
- return {
10
- oldDatabase: from.database,
11
- oldName: from.name,
12
- newDatabase: to.database,
13
- newName: to.name,
14
- source: 'cli',
15
- };
16
- });
17
- }
18
- export function parseRenameColumnMappings(values) {
19
- return values.map((mapping) => {
20
- const [fromRaw, toRaw, ...rest] = mapping.split('=').map((part) => part.trim());
21
- if (!fromRaw || !toRaw || rest.length > 0) {
22
- throw new Error(`Invalid --rename-column mapping "${mapping}". Expected format: db.table.old_column=new_column`);
23
- }
24
- const parts = fromRaw.split('.').map((part) => part.trim());
25
- if (parts.length !== 3 || parts.some((part) => part.length === 0)) {
26
- throw new Error(`Invalid --rename-column source "${fromRaw}". Expected format: db.table.old_column`);
27
- }
28
- return {
29
- database: parts[0],
30
- table: parts[1],
31
- from: parts[2],
32
- to: toRaw,
33
- source: 'cli',
34
- };
35
- });
36
- }
37
- export function collectSchemaRenameMappings(definitions) {
38
- const tableMappings = [];
39
- const columnMappings = [];
40
- for (const definition of definitions) {
41
- if (definition.kind !== 'table')
42
- continue;
43
- if (definition.renamedFrom) {
44
- tableMappings.push({
45
- oldDatabase: definition.renamedFrom.database ?? definition.database,
46
- oldName: definition.renamedFrom.name,
47
- newDatabase: definition.database,
48
- newName: definition.name,
49
- source: 'schema',
50
- });
51
- }
52
- for (const column of definition.columns) {
53
- if (!column.renamedFrom)
54
- continue;
55
- columnMappings.push({
56
- database: definition.database,
57
- table: definition.name,
58
- from: column.renamedFrom,
59
- to: column.name,
60
- source: 'schema',
61
- });
62
- }
63
- }
64
- return { tableMappings, columnMappings };
65
- }
66
- export function mergeTableMappings(schemaMappings, cliMappings) {
67
- const merged = [...schemaMappings];
68
- for (const cliMapping of cliMappings) {
69
- const cliOldKey = `${cliMapping.oldDatabase}.${cliMapping.oldName}`;
70
- const cliNewKey = `${cliMapping.newDatabase}.${cliMapping.newName}`;
71
- for (let i = merged.length - 1; i >= 0; i -= 1) {
72
- const entry = merged[i];
73
- if (!entry)
74
- continue;
75
- const oldKey = `${entry.oldDatabase}.${entry.oldName}`;
76
- const newKey = `${entry.newDatabase}.${entry.newName}`;
77
- if (oldKey === cliOldKey || newKey === cliNewKey) {
78
- merged.splice(i, 1);
79
- }
80
- }
81
- merged.push(cliMapping);
82
- }
83
- return merged;
84
- }
85
- export function mergeColumnMappings(schemaMappings, cliMappings) {
86
- const merged = [...schemaMappings];
87
- for (const cliMapping of cliMappings) {
88
- const cliFromKey = `${cliMapping.database}.${cliMapping.table}.${cliMapping.from}`;
89
- const cliToKey = `${cliMapping.database}.${cliMapping.table}.${cliMapping.to}`;
90
- for (let i = merged.length - 1; i >= 0; i -= 1) {
91
- const entry = merged[i];
92
- if (!entry)
93
- continue;
94
- const fromKey = `${entry.database}.${entry.table}.${entry.from}`;
95
- const toKey = `${entry.database}.${entry.table}.${entry.to}`;
96
- if (fromKey === cliFromKey || toKey === cliToKey) {
97
- merged.splice(i, 1);
98
- }
99
- }
100
- merged.push(cliMapping);
101
- }
102
- return merged;
103
- }
104
- export function resolveActiveTableMappings(previousDefinitions, nextDefinitions, mappings) {
105
- return mappings.filter((mapping) => tableExists(previousDefinitions, mapping.oldDatabase, mapping.oldName) &&
106
- tableExists(nextDefinitions, mapping.newDatabase, mapping.newName));
107
- }
108
- export function assertNoConflictingTableMappings(mappings) {
109
- const byOld = new Map();
110
- const byNew = new Map();
111
- for (const mapping of mappings) {
112
- const oldKey = `${mapping.oldDatabase}.${mapping.oldName}`;
113
- const newKey = `${mapping.newDatabase}.${mapping.newName}`;
114
- const existingOld = byOld.get(oldKey);
115
- if (existingOld && (existingOld.newDatabase !== mapping.newDatabase || existingOld.newName !== mapping.newName)) {
116
- throw new Error(`Conflicting table rename source mapping for "${oldKey}".`);
117
- }
118
- byOld.set(oldKey, mapping);
119
- const existingNew = byNew.get(newKey);
120
- if (existingNew && (existingNew.oldDatabase !== mapping.oldDatabase || existingNew.oldName !== mapping.oldName)) {
121
- throw new Error(`Conflicting table rename target mapping for "${newKey}".`);
122
- }
123
- byNew.set(newKey, mapping);
124
- }
125
- for (const key of byOld.keys()) {
126
- if (byNew.has(key)) {
127
- throw new Error(`Unsupported chained or cyclic table rename mapping involving "${key}". Use direct one-step mappings only.`);
128
- }
129
- }
130
- }
131
- export function assertNoConflictingColumnMappings(mappings) {
132
- const byFrom = new Map();
133
- const byTo = new Map();
134
- for (const mapping of mappings) {
135
- const fromKey = `${mapping.database}.${mapping.table}.${mapping.from}`;
136
- const toKey = `${mapping.database}.${mapping.table}.${mapping.to}`;
137
- const existingFrom = byFrom.get(fromKey);
138
- if (existingFrom && existingFrom.to !== mapping.to) {
139
- throw new Error(`Conflicting column rename source mapping for "${fromKey}".`);
140
- }
141
- byFrom.set(fromKey, mapping);
142
- const existingTo = byTo.get(toKey);
143
- if (existingTo && existingTo.from !== mapping.from) {
144
- throw new Error(`Conflicting column rename target mapping for "${toKey}".`);
145
- }
146
- byTo.set(toKey, mapping);
147
- }
148
- }
149
- export function assertCliTableMappingsResolvable(cliMappings, previousDefinitions, nextDefinitions) {
150
- for (const mapping of cliMappings) {
151
- const hasOld = tableExists(previousDefinitions, mapping.oldDatabase, mapping.oldName);
152
- const hasNew = tableExists(nextDefinitions, mapping.newDatabase, mapping.newName);
153
- if (hasOld && hasNew)
154
- continue;
155
- if (!hasOld && !hasNew) {
156
- throw new Error(`--rename-table mapping "${mapping.oldDatabase}.${mapping.oldName}=${mapping.newDatabase}.${mapping.newName}" is invalid: source table is missing from previous snapshot and target table is missing from current schema.`);
157
- }
158
- if (!hasOld) {
159
- throw new Error(`--rename-table mapping "${mapping.oldDatabase}.${mapping.oldName}=${mapping.newDatabase}.${mapping.newName}" is invalid: source table is missing from previous snapshot.`);
160
- }
161
- throw new Error(`--rename-table mapping "${mapping.oldDatabase}.${mapping.oldName}=${mapping.newDatabase}.${mapping.newName}" is invalid: target table is missing from current schema.`);
162
- }
163
- }
164
- export function remapOldDefinitionsForTableRenames(previousDefinitions, mappings) {
165
- if (mappings.length === 0)
166
- return previousDefinitions;
167
- const mappingByOld = new Map();
168
- for (const mapping of mappings) {
169
- mappingByOld.set(`${mapping.oldDatabase}.${mapping.oldName}`, mapping);
170
- }
171
- return previousDefinitions.map((definition) => {
172
- if (definition.kind !== 'table')
173
- return definition;
174
- const mapping = mappingByOld.get(`${definition.database}.${definition.name}`);
175
- if (!mapping)
176
- return definition;
177
- const remapped = {
178
- ...definition,
179
- database: mapping.newDatabase,
180
- name: mapping.newName,
181
- };
182
- return remapped;
183
- });
184
- }
185
- function parseQualifiedTable(input) {
186
- const [database, name, ...rest] = input.split('.').map((part) => part.trim());
187
- if (!database || !name || rest.length > 0) {
188
- throw new Error(`Invalid table reference "${input}". Expected format: database.table`);
189
- }
190
- return { database, name };
191
- }
192
- function tableExists(definitions, database, name) {
193
- return definitions.some((definition) => definition.kind === 'table' && definition.database === database && definition.name === name);
194
- }
195
- //# sourceMappingURL=rename-mappings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rename-mappings.js","sourceRoot":"","sources":["../../../../src/bin/commands/generate/rename-mappings.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { type CommandDef } from '../../plugins.js';
2
- export declare const generateCommand: CommandDef;
3
- //# sourceMappingURL=generate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/generate.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,UAAU,EAA0B,MAAM,kBAAkB,CAAA;AA2CnG,eAAO,MAAM,eAAe,EAAE,UAK7B,CAAA"}
@@ -1,158 +0,0 @@
1
- import { generateArtifacts } from '@chkit/codegen';
2
- import process from 'node:process';
3
- import { ChxValidationError, planDiff } from '@chkit/core';
4
- import { defineFlags, typedFlags } from '../../plugins.js';
5
- import { GLOBAL_FLAGS } from '../global-flags.js';
6
- import { CLI_VERSION, emitJson, loadSchemaDefinitions, readSnapshot, } from '../lib.js';
7
- import { buildScopedSnapshotDefinitions, filterPlanByTableScope, resolveTableScope, tableKeysFromDefinitions, } from '../table-scope.js';
8
- import { applyExplicitTableRenames, applySelectedRenameSuggestions, assertCliColumnMappingsResolvable, buildExplicitColumnRenameSuggestions, } from './generate/plan-pipeline.js';
9
- import { assertCliTableMappingsResolvable, assertNoConflictingColumnMappings, assertNoConflictingTableMappings, collectSchemaRenameMappings, mergeColumnMappings, mergeTableMappings, parseRenameColumnMappings, parseRenameTableMappings, remapOldDefinitionsForTableRenames, resolveActiveTableMappings, } from './generate/rename-mappings.js';
10
- import { emitGenerateApplyOutput, emitGeneratePlanOutput } from './generate/output.js';
11
- import { debug } from '../debug.js';
12
- const GENERATE_FLAGS = defineFlags([
13
- { name: '--name', type: 'string', description: 'Migration name', placeholder: '<name>' },
14
- { name: '--migration-id', type: 'string', description: 'Deterministic migration file prefix', placeholder: '<id>' },
15
- { name: '--rename-table', type: 'string[]', description: 'Explicit table rename mapping', placeholder: '<mapping>' },
16
- { name: '--rename-column', type: 'string[]', description: 'Explicit column rename mapping', placeholder: '<mapping>' },
17
- { name: '--dryrun', type: 'boolean', description: 'Print plan without writing artifacts' },
18
- ]);
19
- export const generateCommand = {
20
- name: 'generate',
21
- description: 'Generate migration artifacts from schema definitions',
22
- flags: GENERATE_FLAGS,
23
- run: cmdGenerate,
24
- };
25
- async function cmdGenerate(ctx) {
26
- const { flags, config, configPath, dirs, pluginRuntime } = ctx;
27
- const f = typedFlags(flags, [...GLOBAL_FLAGS, ...GENERATE_FLAGS]);
28
- const migrationName = f['--name'];
29
- const migrationId = f['--migration-id'];
30
- const tableSelector = f['--table'];
31
- const planMode = f['--dryrun'] === true;
32
- const jsonMode = f['--json'] === true;
33
- debug('generate', `flags: name=${migrationName ?? '(auto)'}, dryrun=${planMode}, json=${jsonMode}`);
34
- await pluginRuntime.runOnConfigLoaded({
35
- command: 'generate',
36
- config,
37
- configPath,
38
- tableScope: resolveTableScope(tableSelector, []),
39
- flags,
40
- });
41
- let definitions = await loadSchemaDefinitions(config.schema);
42
- definitions = await pluginRuntime.runOnSchemaLoaded({
43
- command: 'generate',
44
- config,
45
- tableScope: resolveTableScope(tableSelector, tableKeysFromDefinitions(definitions)),
46
- flags,
47
- definitions,
48
- });
49
- const renameTableValues = f['--rename-table'] ?? [];
50
- const renameColumnValues = f['--rename-column'] ?? [];
51
- const cliTableMappings = parseRenameTableMappings(renameTableValues);
52
- const cliColumnMappings = parseRenameColumnMappings(renameColumnValues);
53
- const schemaMappings = collectSchemaRenameMappings(definitions);
54
- const tableMappings = mergeTableMappings(schemaMappings.tableMappings, cliTableMappings);
55
- const columnMappings = mergeColumnMappings(schemaMappings.columnMappings, cliColumnMappings);
56
- const { migrationsDir, metaDir } = dirs;
57
- const previousDefinitions = (await readSnapshot(metaDir))?.definitions ?? [];
58
- const resolvedScope = resolveTableScope(tableSelector, [
59
- ...tableKeysFromDefinitions(previousDefinitions),
60
- ...tableKeysFromDefinitions(definitions),
61
- ]);
62
- if (resolvedScope.enabled && resolvedScope.matchCount === 0) {
63
- if (jsonMode) {
64
- emitJson('generate', {
65
- scope: resolvedScope,
66
- mode: planMode ? 'plan' : 'apply',
67
- operationCount: 0,
68
- riskSummary: { safe: 0, caution: 0, danger: 0 },
69
- operations: [],
70
- renameSuggestions: [],
71
- warning: `No tables matched selector "${resolvedScope.selector ?? ''}".`,
72
- });
73
- }
74
- else {
75
- console.log(`No tables matched selector "${resolvedScope.selector ?? ''}". No changes planned.`);
76
- }
77
- return;
78
- }
79
- assertNoConflictingTableMappings(tableMappings);
80
- assertNoConflictingColumnMappings(columnMappings);
81
- assertCliTableMappingsResolvable(cliTableMappings, previousDefinitions, definitions);
82
- const activeTableMappings = resolveActiveTableMappings(previousDefinitions, definitions, tableMappings);
83
- const remappedPreviousDefinitions = remapOldDefinitionsForTableRenames(previousDefinitions, activeTableMappings);
84
- debug('generate', `previous snapshot: ${previousDefinitions.length} definitions, current: ${definitions.length} definitions`);
85
- let plan;
86
- try {
87
- plan = planDiff(remappedPreviousDefinitions, definitions);
88
- }
89
- catch (error) {
90
- if (error instanceof ChxValidationError) {
91
- if (jsonMode) {
92
- emitJson('generate', {
93
- error: 'validation_failed',
94
- issues: error.issues,
95
- });
96
- process.exitCode = 1;
97
- return;
98
- }
99
- const details = error.issues.map((issue) => `- [${issue.code}] ${issue.message}`).join('\n');
100
- throw new Error(`${error.message}\n${details}`);
101
- }
102
- throw error;
103
- }
104
- plan = applyExplicitTableRenames(plan, activeTableMappings);
105
- assertCliColumnMappingsResolvable(cliColumnMappings, plan, definitions);
106
- plan = applySelectedRenameSuggestions(plan, buildExplicitColumnRenameSuggestions(plan, columnMappings));
107
- plan = await pluginRuntime.runOnPlanCreated({
108
- command: 'generate',
109
- config,
110
- tableScope: resolvedScope,
111
- flags,
112
- }, plan);
113
- if (resolvedScope.enabled) {
114
- plan = filterPlanByTableScope(plan, new Set(resolvedScope.matchedTables), {
115
- renameMappings: activeTableMappings,
116
- }).plan;
117
- }
118
- if (planMode) {
119
- emitGeneratePlanOutput(plan, jsonMode, resolvedScope);
120
- return;
121
- }
122
- const artifactDefinitions = resolvedScope.enabled
123
- ? buildScopedSnapshotDefinitions({
124
- previousDefinitions,
125
- nextDefinitions: definitions,
126
- matchedTables: new Set(resolvedScope.matchedTables),
127
- renameMappings: activeTableMappings,
128
- })
129
- : definitions;
130
- debug('generate', `plan: ${plan.operations.length} operations — writing artifacts`);
131
- const result = await generateArtifacts({
132
- definitions: artifactDefinitions,
133
- migrationsDir,
134
- metaDir,
135
- migrationName,
136
- migrationId,
137
- plan,
138
- cliVersion: CLI_VERSION,
139
- });
140
- const codegenPlugin = pluginRuntime.plugins.find((entry) => entry.plugin.manifest.name === 'codegen');
141
- const codegenRunOnGenerate = codegenPlugin ? codegenPlugin.options.runOnGenerate !== false : false;
142
- if (codegenPlugin && codegenRunOnGenerate) {
143
- const codegenExitCode = await pluginRuntime.runPluginCommand('codegen', 'codegen', {
144
- config,
145
- configPath,
146
- jsonMode: false,
147
- tableScope: resolvedScope,
148
- args: [],
149
- flags: {},
150
- print() { },
151
- });
152
- if (codegenExitCode !== 0) {
153
- throw new Error(`Plugin "codegen" failed in generate integration with exit code ${codegenExitCode}.`);
154
- }
155
- }
156
- emitGenerateApplyOutput(result, artifactDefinitions, plan, jsonMode, resolvedScope);
157
- }
158
- //# sourceMappingURL=generate.js.map