chkit 0.1.2-beta.5 → 0.2.0-beta.11

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 (305) hide show
  1. package/README.md +69 -56
  2. package/dist/bin/chkit.js +57 -26
  3. package/dist/bin/chkit.js.map +1 -1
  4. package/dist/commands/drift/compare.d.ts +26 -2
  5. package/dist/commands/drift/compare.d.ts.map +1 -1
  6. package/dist/commands/drift/compare.js +147 -41
  7. package/dist/commands/drift/compare.js.map +1 -1
  8. package/dist/commands/drift/payload.d.ts.map +1 -1
  9. package/dist/commands/drift/payload.js +39 -8
  10. package/dist/commands/drift/payload.js.map +1 -1
  11. package/dist/commands/generate/command.d.ts.map +1 -1
  12. package/dist/commands/generate/command.js +20 -22
  13. package/dist/commands/generate/command.js.map +1 -1
  14. package/dist/commands/generate/dictionary-password-warnings.d.ts +3 -0
  15. package/dist/commands/generate/dictionary-password-warnings.d.ts.map +1 -0
  16. package/dist/commands/generate/dictionary-password-warnings.js +7 -0
  17. package/dist/commands/generate/dictionary-password-warnings.js.map +1 -0
  18. package/dist/commands/generate/output.d.ts +2 -2
  19. package/dist/commands/generate/output.d.ts.map +1 -1
  20. package/dist/commands/generate/output.js +8 -2
  21. package/dist/commands/generate/output.js.map +1 -1
  22. package/dist/commands/generate/plan-pipeline.d.ts +2 -1
  23. package/dist/commands/generate/plan-pipeline.d.ts.map +1 -1
  24. package/dist/commands/generate/plan-pipeline.js +69 -27
  25. package/dist/commands/generate/plan-pipeline.js.map +1 -1
  26. package/dist/commands/generate/rename-mappings.d.ts +14 -0
  27. package/dist/commands/generate/rename-mappings.d.ts.map +1 -1
  28. package/dist/commands/generate/rename-mappings.js +131 -19
  29. package/dist/commands/generate/rename-mappings.js.map +1 -1
  30. package/dist/commands/init.d.ts +2 -0
  31. package/dist/commands/init.d.ts.map +1 -1
  32. package/dist/commands/init.js +21 -4
  33. package/dist/commands/init.js.map +1 -1
  34. package/dist/commands/migrate/abandon.d.ts +38 -0
  35. package/dist/commands/migrate/abandon.d.ts.map +1 -0
  36. package/dist/commands/migrate/abandon.js +75 -0
  37. package/dist/commands/migrate/abandon.js.map +1 -0
  38. package/dist/commands/migrate/apply.d.ts +7 -0
  39. package/dist/commands/migrate/apply.d.ts.map +1 -1
  40. package/dist/commands/migrate/apply.js +45 -6
  41. package/dist/commands/migrate/apply.js.map +1 -1
  42. package/dist/commands/migrate/async-apply.d.ts.map +1 -1
  43. package/dist/commands/migrate/async-apply.js +78 -16
  44. package/dist/commands/migrate/async-apply.js.map +1 -1
  45. package/dist/commands/migrate/command.d.ts +44 -1
  46. package/dist/commands/migrate/command.d.ts.map +1 -1
  47. package/dist/commands/migrate/command.js +148 -34
  48. package/dist/commands/migrate/command.js.map +1 -1
  49. package/dist/commands/migrate/empty.d.ts +8 -0
  50. package/dist/commands/migrate/empty.d.ts.map +1 -0
  51. package/dist/commands/migrate/empty.js +17 -0
  52. package/dist/commands/migrate/empty.js.map +1 -0
  53. package/dist/commands/migrate/errors.d.ts +22 -0
  54. package/dist/commands/migrate/errors.d.ts.map +1 -0
  55. package/dist/commands/migrate/errors.js +31 -0
  56. package/dist/commands/migrate/errors.js.map +1 -0
  57. package/dist/commands/migrate/output.d.ts +31 -0
  58. package/dist/commands/migrate/output.d.ts.map +1 -1
  59. package/dist/commands/migrate/output.js +120 -9
  60. package/dist/commands/migrate/output.js.map +1 -1
  61. package/dist/commands/migrate/prompts.d.ts +1 -0
  62. package/dist/commands/migrate/prompts.d.ts.map +1 -1
  63. package/dist/commands/migrate/prompts.js +3 -0
  64. package/dist/commands/migrate/prompts.js.map +1 -1
  65. package/dist/commands/migrate/recovery.d.ts +90 -0
  66. package/dist/commands/migrate/recovery.d.ts.map +1 -0
  67. package/dist/commands/migrate/recovery.js +163 -0
  68. package/dist/commands/migrate/recovery.js.map +1 -0
  69. package/dist/commands/migrate/retry.d.ts +37 -0
  70. package/dist/commands/migrate/retry.d.ts.map +1 -0
  71. package/dist/commands/migrate/retry.js +46 -0
  72. package/dist/commands/migrate/retry.js.map +1 -0
  73. package/dist/commands/plugin.js +3 -1
  74. package/dist/commands/plugin.js.map +1 -1
  75. package/dist/commands/registry.d.ts +2 -0
  76. package/dist/commands/registry.d.ts.map +1 -0
  77. package/dist/commands/registry.js +228 -0
  78. package/dist/commands/registry.js.map +1 -0
  79. package/dist/commands/snapshot/command.d.ts +3 -0
  80. package/dist/commands/snapshot/command.d.ts.map +1 -0
  81. package/dist/commands/snapshot/command.js +32 -0
  82. package/dist/commands/snapshot/command.js.map +1 -0
  83. package/dist/commands/snapshot/output.d.ts +24 -0
  84. package/dist/commands/snapshot/output.d.ts.map +1 -0
  85. package/dist/commands/snapshot/output.js +86 -0
  86. package/dist/commands/snapshot/output.js.map +1 -0
  87. package/dist/commands/snapshot/rebuild.d.ts +19 -0
  88. package/dist/commands/snapshot/rebuild.d.ts.map +1 -0
  89. package/dist/commands/snapshot/rebuild.js +77 -0
  90. package/dist/commands/snapshot/rebuild.js.map +1 -0
  91. package/dist/internal-plugins/core/plugin.d.ts.map +1 -1
  92. package/dist/internal-plugins/core/plugin.js +2 -0
  93. package/dist/internal-plugins/core/plugin.js.map +1 -1
  94. package/dist/registry/build.d.ts +17 -0
  95. package/dist/registry/build.d.ts.map +1 -0
  96. package/dist/registry/build.js +94 -0
  97. package/dist/registry/build.js.map +1 -0
  98. package/dist/registry/dependencies.d.ts +19 -0
  99. package/dist/registry/dependencies.d.ts.map +1 -0
  100. package/dist/registry/dependencies.js +105 -0
  101. package/dist/registry/dependencies.js.map +1 -0
  102. package/dist/registry/files.d.ts +4 -0
  103. package/dist/registry/files.d.ts.map +1 -0
  104. package/dist/registry/files.js +33 -0
  105. package/dist/registry/files.js.map +1 -0
  106. package/dist/registry/install.d.ts +55 -0
  107. package/dist/registry/install.d.ts.map +1 -0
  108. package/dist/registry/install.js +175 -0
  109. package/dist/registry/install.js.map +1 -0
  110. package/dist/registry/model.d.ts +172 -0
  111. package/dist/registry/model.d.ts.map +1 -0
  112. package/dist/registry/model.js +161 -0
  113. package/dist/registry/model.js.map +1 -0
  114. package/dist/registry/project-config.d.ts +18 -0
  115. package/dist/registry/project-config.d.ts.map +1 -0
  116. package/dist/registry/project-config.js +337 -0
  117. package/dist/registry/project-config.js.map +1 -0
  118. package/dist/registry/resolve.d.ts +7 -0
  119. package/dist/registry/resolve.d.ts.map +1 -0
  120. package/dist/registry/resolve.js +129 -0
  121. package/dist/registry/resolve.js.map +1 -0
  122. package/dist/runtime/argv.d.ts +3 -0
  123. package/dist/runtime/argv.d.ts.map +1 -0
  124. package/dist/runtime/argv.js +29 -0
  125. package/dist/runtime/argv.js.map +1 -0
  126. package/dist/runtime/command-dispatch.d.ts.map +1 -1
  127. package/dist/runtime/command-dispatch.js +5 -0
  128. package/dist/runtime/command-dispatch.js.map +1 -1
  129. package/dist/runtime/config-merge.d.ts.map +1 -1
  130. package/dist/runtime/config-merge.js +2 -1
  131. package/dist/runtime/config-merge.js.map +1 -1
  132. package/dist/runtime/global-flags.d.ts +4 -0
  133. package/dist/runtime/global-flags.d.ts.map +1 -1
  134. package/dist/runtime/global-flags.js +1 -0
  135. package/dist/runtime/global-flags.js.map +1 -1
  136. package/dist/runtime/help.d.ts.map +1 -1
  137. package/dist/runtime/help.js +3 -0
  138. package/dist/runtime/help.js.map +1 -1
  139. package/dist/runtime/journal-store.d.ts.map +1 -1
  140. package/dist/runtime/journal-store.js +55 -26
  141. package/dist/runtime/journal-store.js.map +1 -1
  142. package/dist/runtime/json-output.d.ts +1 -1
  143. package/dist/runtime/json-output.d.ts.map +1 -1
  144. package/dist/runtime/json-output.js.map +1 -1
  145. package/dist/runtime/migration-store.d.ts +1 -1
  146. package/dist/runtime/migration-store.d.ts.map +1 -1
  147. package/dist/runtime/migration-store.js +17 -16
  148. package/dist/runtime/migration-store.js.map +1 -1
  149. package/dist/runtime/plugin-runtime/executor-debug.d.ts.map +1 -1
  150. package/dist/runtime/plugin-runtime/executor-debug.js +2 -0
  151. package/dist/runtime/plugin-runtime/executor-debug.js.map +1 -1
  152. package/dist/runtime/plugin-runtime/loader.js +1 -1
  153. package/dist/runtime/plugin-runtime/loader.js.map +1 -1
  154. package/dist/runtime/safety-markers.d.ts.map +1 -1
  155. package/dist/runtime/safety-markers.js +13 -2
  156. package/dist/runtime/safety-markers.js.map +1 -1
  157. package/dist/runtime/schema-loader.d.ts +20 -1
  158. package/dist/runtime/schema-loader.d.ts.map +1 -1
  159. package/dist/runtime/schema-loader.js +26 -0
  160. package/dist/runtime/schema-loader.js.map +1 -1
  161. package/dist/runtime/snapshot-document.d.ts +33 -0
  162. package/dist/runtime/snapshot-document.d.ts.map +1 -0
  163. package/dist/runtime/snapshot-document.js +65 -0
  164. package/dist/runtime/snapshot-document.js.map +1 -0
  165. package/package.json +17 -7
  166. package/dist/bin/clickhouse-resource.d.ts +0 -4
  167. package/dist/bin/clickhouse-resource.d.ts.map +0 -1
  168. package/dist/bin/clickhouse-resource.js +0 -11
  169. package/dist/bin/clickhouse-resource.js.map +0 -1
  170. package/dist/bin/command-dispatch.d.ts +0 -13
  171. package/dist/bin/command-dispatch.d.ts.map +0 -1
  172. package/dist/bin/command-dispatch.js +0 -186
  173. package/dist/bin/command-dispatch.js.map +0 -1
  174. package/dist/bin/command-registry.d.ts +0 -34
  175. package/dist/bin/command-registry.d.ts.map +0 -1
  176. package/dist/bin/command-registry.js +0 -87
  177. package/dist/bin/command-registry.js.map +0 -1
  178. package/dist/bin/commands/check.d.ts +0 -3
  179. package/dist/bin/commands/check.d.ts.map +0 -1
  180. package/dist/bin/commands/check.js +0 -181
  181. package/dist/bin/commands/check.js.map +0 -1
  182. package/dist/bin/commands/codegen.d.ts +0 -2
  183. package/dist/bin/commands/codegen.d.ts.map +0 -1
  184. package/dist/bin/commands/codegen.js +0 -25
  185. package/dist/bin/commands/codegen.js.map +0 -1
  186. package/dist/bin/commands/drift.d.ts +0 -27
  187. package/dist/bin/commands/drift.d.ts.map +0 -1
  188. package/dist/bin/commands/drift.js +0 -220
  189. package/dist/bin/commands/drift.js.map +0 -1
  190. package/dist/bin/commands/generate/output.d.ts +0 -8
  191. package/dist/bin/commands/generate/output.d.ts.map +0 -1
  192. package/dist/bin/commands/generate/output.js +0 -58
  193. package/dist/bin/commands/generate/output.js.map +0 -1
  194. package/dist/bin/commands/generate/plan-pipeline.d.ts +0 -7
  195. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +0 -1
  196. package/dist/bin/commands/generate/plan-pipeline.js +0 -143
  197. package/dist/bin/commands/generate/plan-pipeline.js.map +0 -1
  198. package/dist/bin/commands/generate/rename-mappings.d.ts +0 -29
  199. package/dist/bin/commands/generate/rename-mappings.d.ts.map +0 -1
  200. package/dist/bin/commands/generate/rename-mappings.js +0 -195
  201. package/dist/bin/commands/generate/rename-mappings.js.map +0 -1
  202. package/dist/bin/commands/generate.d.ts +0 -3
  203. package/dist/bin/commands/generate.d.ts.map +0 -1
  204. package/dist/bin/commands/generate.js +0 -158
  205. package/dist/bin/commands/generate.js.map +0 -1
  206. package/dist/bin/commands/init.d.ts +0 -2
  207. package/dist/bin/commands/init.d.ts.map +0 -1
  208. package/dist/bin/commands/init.js +0 -12
  209. package/dist/bin/commands/init.js.map +0 -1
  210. package/dist/bin/commands/migrate.d.ts +0 -3
  211. package/dist/bin/commands/migrate.d.ts.map +0 -1
  212. package/dist/bin/commands/migrate.js +0 -288
  213. package/dist/bin/commands/migrate.js.map +0 -1
  214. package/dist/bin/commands/plugin-like.d.ts +0 -38
  215. package/dist/bin/commands/plugin-like.d.ts.map +0 -1
  216. package/dist/bin/commands/plugin-like.js +0 -101
  217. package/dist/bin/commands/plugin-like.js.map +0 -1
  218. package/dist/bin/commands/plugin.d.ts +0 -3
  219. package/dist/bin/commands/plugin.d.ts.map +0 -1
  220. package/dist/bin/commands/plugin.js +0 -148
  221. package/dist/bin/commands/plugin.js.map +0 -1
  222. package/dist/bin/commands/pull.d.ts +0 -2
  223. package/dist/bin/commands/pull.d.ts.map +0 -1
  224. package/dist/bin/commands/pull.js +0 -25
  225. package/dist/bin/commands/pull.js.map +0 -1
  226. package/dist/bin/commands/status.d.ts +0 -3
  227. package/dist/bin/commands/status.d.ts.map +0 -1
  228. package/dist/bin/commands/status.js +0 -63
  229. package/dist/bin/commands/status.js.map +0 -1
  230. package/dist/bin/commands/typegen.d.ts +0 -2
  231. package/dist/bin/commands/typegen.d.ts.map +0 -1
  232. package/dist/bin/commands/typegen.js +0 -25
  233. package/dist/bin/commands/typegen.js.map +0 -1
  234. package/dist/bin/config.d.ts +0 -13
  235. package/dist/bin/config.d.ts.map +0 -1
  236. package/dist/bin/config.js +0 -48
  237. package/dist/bin/config.js.map +0 -1
  238. package/dist/bin/debug.d.ts +0 -3
  239. package/dist/bin/debug.d.ts.map +0 -1
  240. package/dist/bin/debug.js +0 -14
  241. package/dist/bin/debug.js.map +0 -1
  242. package/dist/bin/global-flags.d.ts +0 -16
  243. package/dist/bin/global-flags.d.ts.map +0 -1
  244. package/dist/bin/global-flags.js +0 -7
  245. package/dist/bin/global-flags.js.map +0 -1
  246. package/dist/bin/help.d.ts +0 -5
  247. package/dist/bin/help.d.ts.map +0 -1
  248. package/dist/bin/help.js +0 -84
  249. package/dist/bin/help.js.map +0 -1
  250. package/dist/bin/internal-plugins/index.d.ts +0 -3
  251. package/dist/bin/internal-plugins/index.d.ts.map +0 -1
  252. package/dist/bin/internal-plugins/index.js +0 -5
  253. package/dist/bin/internal-plugins/index.js.map +0 -1
  254. package/dist/bin/internal-plugins/skill-hint.d.ts +0 -31
  255. package/dist/bin/internal-plugins/skill-hint.d.ts.map +0 -1
  256. package/dist/bin/internal-plugins/skill-hint.js +0 -172
  257. package/dist/bin/internal-plugins/skill-hint.js.map +0 -1
  258. package/dist/bin/journal-store.d.ts +0 -10
  259. package/dist/bin/journal-store.d.ts.map +0 -1
  260. package/dist/bin/journal-store.js +0 -137
  261. package/dist/bin/journal-store.js.map +0 -1
  262. package/dist/bin/json-output.d.ts +0 -5
  263. package/dist/bin/json-output.d.ts.map +0 -1
  264. package/dist/bin/json-output.js +0 -21
  265. package/dist/bin/json-output.js.map +0 -1
  266. package/dist/bin/lib.d.ts +0 -5
  267. package/dist/bin/lib.d.ts.map +0 -1
  268. package/dist/bin/lib.js +0 -5
  269. package/dist/bin/lib.js.map +0 -1
  270. package/dist/bin/logging.d.ts +0 -3
  271. package/dist/bin/logging.d.ts.map +0 -1
  272. package/dist/bin/logging.js +0 -31
  273. package/dist/bin/logging.js.map +0 -1
  274. package/dist/bin/migration-store.d.ts +0 -22
  275. package/dist/bin/migration-store.d.ts.map +0 -1
  276. package/dist/bin/migration-store.js +0 -60
  277. package/dist/bin/migration-store.js.map +0 -1
  278. package/dist/bin/plugin-runtime.d.ts +0 -45
  279. package/dist/bin/plugin-runtime.d.ts.map +0 -1
  280. package/dist/bin/plugin-runtime.js +0 -513
  281. package/dist/bin/plugin-runtime.js.map +0 -1
  282. package/dist/bin/safety-markers.d.ts +0 -23
  283. package/dist/bin/safety-markers.d.ts.map +0 -1
  284. package/dist/bin/safety-markers.js +0 -85
  285. package/dist/bin/safety-markers.js.map +0 -1
  286. package/dist/bin/schema-loader.d.ts +0 -3
  287. package/dist/bin/schema-loader.d.ts.map +0 -1
  288. package/dist/bin/schema-loader.js +0 -11
  289. package/dist/bin/schema-loader.js.map +0 -1
  290. package/dist/bin/table-scope.d.ts +0 -38
  291. package/dist/bin/table-scope.d.ts.map +0 -1
  292. package/dist/bin/table-scope.js +0 -167
  293. package/dist/bin/table-scope.js.map +0 -1
  294. package/dist/bin/version.d.ts +0 -2
  295. package/dist/bin/version.d.ts.map +0 -1
  296. package/dist/bin/version.js +0 -5
  297. package/dist/bin/version.js.map +0 -1
  298. package/dist/drift-diff.d.ts +0 -8
  299. package/dist/drift-diff.d.ts.map +0 -1
  300. package/dist/drift-diff.js +0 -46
  301. package/dist/drift-diff.js.map +0 -1
  302. package/dist/drift.d.ts +0 -66
  303. package/dist/drift.d.ts.map +0 -1
  304. package/dist/drift.js +0 -220
  305. package/dist/drift.js.map +0 -1
@@ -1,181 +0,0 @@
1
- import { mkdir } from 'node:fs/promises';
2
- import { summarizeDriftReasons } from '../../drift.js';
3
- import { typedFlags } from '../../plugins.js';
4
- import { debug } from '../debug.js';
5
- import { GLOBAL_FLAGS } from '../global-flags.js';
6
- import { emitJson } from '../json-output.js';
7
- import { createJournalStore } from '../journal-store.js';
8
- import { findChecksumMismatches, listMigrations, readSnapshot } from '../migration-store.js';
9
- import { resolveTableScope, tableKeysFromDefinitions } from '../table-scope.js';
10
- import { buildDriftPayload } from './drift.js';
11
- export const checkCommand = {
12
- name: 'check',
13
- description: 'Run policy checks for CI and release gates',
14
- flags: [
15
- { name: '--strict', type: 'boolean', description: 'Enable all policy checks' },
16
- ],
17
- run: cmdCheck,
18
- };
19
- async function cmdCheck(runCtx) {
20
- const { flags, config, configPath, dirs, pluginRuntime, ctx } = runCtx;
21
- const f = typedFlags(flags, [...GLOBAL_FLAGS, { name: '--strict', type: 'boolean', description: 'Enable all policy checks' }]);
22
- const strict = f['--strict'] === true;
23
- const jsonMode = f['--json'] === true;
24
- const tableSelector = f['--table'];
25
- const { migrationsDir, metaDir } = dirs;
26
- debug('check', `flags: strict=${strict}, json=${jsonMode}`);
27
- await mkdir(migrationsDir, { recursive: true });
28
- if (!ctx.hasExecutor) {
29
- throw new Error('clickhouse config is required for check (journal is stored in ClickHouse)');
30
- }
31
- const db = ctx.executor;
32
- const database = config.clickhouse?.database;
33
- {
34
- const journalStore = createJournalStore(db);
35
- const files = await listMigrations(migrationsDir);
36
- const journal = await journalStore.readJournal();
37
- const databaseMissing = journalStore.databaseMissing;
38
- const appliedNames = new Set(journal.applied.map((entry) => entry.name));
39
- const pending = files.filter((f) => !appliedNames.has(f));
40
- const checksumMismatches = await findChecksumMismatches(migrationsDir, journal);
41
- const snapshot = await readSnapshot(metaDir);
42
- const tableScope = resolveTableScope(tableSelector, tableKeysFromDefinitions(snapshot?.definitions ?? []));
43
- if (tableScope.enabled && tableScope.matchCount === 0) {
44
- const payload = {
45
- strict,
46
- ok: true,
47
- failedChecks: [],
48
- pendingCount: 0,
49
- checksumMismatchCount: 0,
50
- drifted: false,
51
- driftEvaluated: false,
52
- driftReasonCounts: {},
53
- driftReasonTotals: { total: 0, object: 0, table: 0 },
54
- plugins: {},
55
- scope: tableScope,
56
- warning: `No tables matched selector "${tableScope.selector ?? ''}".`,
57
- };
58
- if (jsonMode) {
59
- emitJson('check', payload);
60
- }
61
- else {
62
- console.log(`No tables matched selector "${tableScope.selector ?? ''}". Check is a no-op.`);
63
- }
64
- return;
65
- }
66
- const drift = snapshot ? await buildDriftPayload(config, metaDir, snapshot, tableScope, db) : null;
67
- const policy = {
68
- failOnPending: strict ? true : config.check?.failOnPending ?? true,
69
- failOnChecksumMismatch: strict ? true : config.check?.failOnChecksumMismatch ?? true,
70
- failOnDrift: strict ? true : config.check?.failOnDrift ?? true,
71
- };
72
- await pluginRuntime.runOnConfigLoaded({
73
- command: 'check',
74
- config,
75
- configPath,
76
- tableScope,
77
- flags,
78
- });
79
- const pluginResults = await pluginRuntime.runOnCheck({
80
- command: 'check',
81
- config,
82
- configPath,
83
- jsonMode,
84
- tableScope,
85
- flags,
86
- });
87
- const failedChecks = [];
88
- if (policy.failOnPending && pending.length > 0)
89
- failedChecks.push('pending_migrations');
90
- if (policy.failOnChecksumMismatch && checksumMismatches.length > 0)
91
- failedChecks.push('checksum_mismatch');
92
- if (policy.failOnDrift && drift?.drifted)
93
- failedChecks.push('schema_drift');
94
- for (const result of pluginResults) {
95
- const hasErrorFinding = result.findings.some((finding) => finding.severity === 'error');
96
- if (result.evaluated && !result.ok && hasErrorFinding) {
97
- failedChecks.push(`plugin:${result.plugin}`);
98
- }
99
- }
100
- debug('check', `results: pending=${pending.length}, checksumMismatches=${checksumMismatches.length}, drift=${drift?.drifted ?? 'n/a'}, pluginChecks=${pluginResults.length}, failedChecks=[${failedChecks.join(', ')}]`);
101
- const ok = failedChecks.length === 0;
102
- const driftReasonSummary = drift
103
- ? summarizeDriftReasons({
104
- objectDrift: drift.objectDrift,
105
- tableDrift: drift.tableDrift,
106
- })
107
- : { counts: {}, total: 0, object: 0, table: 0 };
108
- const payload = {
109
- strict,
110
- policy,
111
- ok,
112
- failedChecks,
113
- pendingCount: pending.length,
114
- checksumMismatchCount: checksumMismatches.length,
115
- drifted: drift?.drifted ?? false,
116
- driftEvaluated: drift !== null,
117
- driftReasonCounts: driftReasonSummary.counts,
118
- driftReasonTotals: {
119
- total: driftReasonSummary.total,
120
- object: driftReasonSummary.object,
121
- table: driftReasonSummary.table,
122
- },
123
- plugins: Object.fromEntries(pluginResults.map((result) => [
124
- result.plugin,
125
- {
126
- evaluated: result.evaluated,
127
- ok: result.ok,
128
- findingCodes: result.findings.map((finding) => finding.code),
129
- ...(result.metadata ?? {}),
130
- },
131
- ])),
132
- scope: tableScope,
133
- ...(databaseMissing ? { databaseMissing: true, database } : {}),
134
- };
135
- if (jsonMode) {
136
- emitJson('check', payload);
137
- if (!ok)
138
- process.exitCode = 1;
139
- return;
140
- }
141
- if (databaseMissing) {
142
- console.log(`\u26A0 Database "${database}" does not exist on the target server.`);
143
- console.log(' It will be created when you run: chkit migrate --apply\n');
144
- }
145
- console.log(`Check status: ${ok ? 'ok' : 'failed'}`);
146
- console.log(`Policy: pending=${policy.failOnPending ? 'on' : 'off'}, checksum=${policy.failOnChecksumMismatch ? 'on' : 'off'}, drift=${policy.failOnDrift ? 'on' : 'off'}`);
147
- console.log(`Pending migrations: ${pending.length}`);
148
- console.log(`Checksum mismatches: ${checksumMismatches.length}`);
149
- if (tableScope.enabled) {
150
- console.log(`Table scope: ${tableScope.selector ?? ''} (${tableScope.matchCount} matched)`);
151
- for (const table of tableScope.matchedTables)
152
- console.log(`- ${table}`);
153
- }
154
- if (drift === null) {
155
- console.log('Schema drift: not evaluated (missing snapshot or clickhouse config)');
156
- }
157
- else {
158
- console.log(`Schema drift: ${drift.drifted ? 'yes' : 'no'}`);
159
- const summary = summarizeDriftReasons({
160
- objectDrift: drift.objectDrift,
161
- tableDrift: drift.tableDrift,
162
- });
163
- console.log(`Drift reasons: total=${summary.total}, object=${summary.object}, table=${summary.table}`);
164
- }
165
- if (pluginResults.length > 0) {
166
- console.log('Plugin checks:');
167
- for (const result of pluginResults) {
168
- const findingCodes = result.findings.map((finding) => finding.code);
169
- console.log(`- ${result.plugin}: ${result.ok ? 'ok' : 'failed'}${findingCodes.length > 0 ? ` (${findingCodes.join(', ')})` : ''}`);
170
- }
171
- await pluginRuntime.runOnCheckReport(pluginResults, (line) => {
172
- console.log(line);
173
- });
174
- }
175
- if (!ok) {
176
- console.log(`Failed checks: ${failedChecks.join(', ')}`);
177
- process.exitCode = 1;
178
- }
179
- }
180
- }
181
- //# sourceMappingURL=check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/bin/commands/check.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function cmdCodegen(args: string[]): Promise<void>;
2
- //# sourceMappingURL=codegen.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/codegen.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB9D"}
@@ -1,25 +0,0 @@
1
- import { buildPluginLikeContext, runPluginLikeCommand } from './plugin-like.js';
2
- export async function cmdCodegen(args) {
3
- const context = await buildPluginLikeContext({
4
- args,
5
- command: 'codegen',
6
- handleInvalidPluginOptions: true,
7
- });
8
- if (!context)
9
- return;
10
- const pluginName = 'codegen';
11
- const commandName = 'codegen';
12
- await runPluginLikeCommand({
13
- context,
14
- pluginName,
15
- commandName,
16
- commandArgs: context.commandArgs,
17
- missingPluginMessage() {
18
- return 'Codegen plugin is not configured. Add a plugin with manifest.name "codegen" to config.plugins.';
19
- },
20
- missingCommandMessage({ availableCommands }) {
21
- return `Codegen plugin is configured but does not expose command "${commandName}". Available: ${availableCommands.length > 0 ? availableCommands.join(', ') : '(none)'}.`;
22
- },
23
- });
24
- }
25
- //# sourceMappingURL=codegen.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/bin/commands/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE/E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;QAC3C,IAAI;QACJ,OAAO,EAAE,SAAS;QAClB,0BAA0B,EAAE,IAAI;KACjC,CAAC,CAAA;IACF,IAAI,CAAC,OAAO;QAAE,OAAM;IAEpB,MAAM,UAAU,GAAG,SAAS,CAAA;IAC5B,MAAM,WAAW,GAAG,SAAS,CAAA;IAC7B,MAAM,oBAAoB,CAAC;QACzB,OAAO;QACP,UAAU;QACV,WAAW;QACX,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,oBAAoB;YAClB,OAAO,gGAAgG,CAAA;QACzG,CAAC;QACD,qBAAqB,CAAC,EAAE,iBAAiB,EAAE;YACzC,OAAO,6DAA6D,WAAW,iBAAiB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAA;QAC3K,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,27 +0,0 @@
1
- import { type ClickHouseExecutor } from '@chkit/clickhouse';
2
- import type { ChxConfig, Snapshot } from '@chkit/core';
3
- import { type CommandDef } from '../../plugins.js';
4
- import { type ObjectDriftDetail, type TableDriftDetail } from '../../drift.js';
5
- import { type TableScope } from '../table-scope.js';
6
- interface DriftPayload {
7
- scope?: TableScope;
8
- snapshotFile: string;
9
- expectedCount: number;
10
- actualCount: number;
11
- drifted: boolean;
12
- databaseMissing?: boolean;
13
- database?: string;
14
- missing: string[];
15
- extra: string[];
16
- kindMismatches: Array<{
17
- expected: string;
18
- actual: string;
19
- object: string;
20
- }>;
21
- objectDrift: ObjectDriftDetail[];
22
- tableDrift: TableDriftDetail[];
23
- }
24
- export declare const driftCommand: CommandDef;
25
- export declare function buildDriftPayload(config: ChxConfig, metaDir: string, snapshot: Snapshot, scope?: TableScope, executor?: ClickHouseExecutor): Promise<DriftPayload>;
26
- export {};
27
- //# sourceMappingURL=drift.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drift.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/drift.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,KAAK,kBAAkB,EAAwB,MAAM,mBAAmB,CAAA;AACzG,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAA;AAEvE,OAAO,EAAc,KAAK,UAAU,EAA0B,MAAM,kBAAkB,CAAA;AAEtF,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,gBAAgB,CAAA;AAIvB,OAAO,EAA+C,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEhG,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,cAAc,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3E,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAC/B;AAED,eAAO,MAAM,YAAY,EAAE,UAK1B,CAAA;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAAC,YAAY,CAAC,CA6FvB"}
@@ -1,220 +0,0 @@
1
- import { join } from 'node:path';
2
- import { isUnknownDatabaseError } from '@chkit/clickhouse';
3
- import { typedFlags } from '../../plugins.js';
4
- import { GLOBAL_FLAGS } from '../global-flags.js';
5
- import { compareSchemaObjects, compareTableShape, } from '../../drift.js';
6
- import { debug } from '../debug.js';
7
- import { emitJson } from '../json-output.js';
8
- import { readSnapshot } from '../migration-store.js';
9
- import { resolveTableScope, tableKeysFromDefinitions } from '../table-scope.js';
10
- export const driftCommand = {
11
- name: 'drift',
12
- description: 'Compare snapshot state with current ClickHouse objects',
13
- flags: [],
14
- run: cmdDrift,
15
- };
16
- export async function buildDriftPayload(config, metaDir, snapshot, scope, executor) {
17
- const selectedTables = scope?.enabled && scope.matchCount > 0 ? new Set(scope.matchedTables) : undefined;
18
- if (!executor)
19
- throw new Error('clickhouse config is required for drift checks');
20
- const db = executor;
21
- debug('drift', `building drift payload — expected: ${snapshot.definitions.length} definitions`);
22
- let actualObjects;
23
- try {
24
- actualObjects = await db.listSchemaObjects();
25
- }
26
- catch (error) {
27
- if (isUnknownDatabaseError(error)) {
28
- const allExpected = snapshot.definitions
29
- .filter((def) => {
30
- if (!selectedTables)
31
- return true;
32
- if (def.kind !== 'table')
33
- return true;
34
- return selectedTables.has(`${def.database}.${def.name}`);
35
- })
36
- .map((def) => `${def.database}.${def.name}`);
37
- return {
38
- scope,
39
- snapshotFile: join(metaDir, 'snapshot.json'),
40
- expectedCount: allExpected.length,
41
- actualCount: 0,
42
- drifted: allExpected.length > 0,
43
- databaseMissing: true,
44
- database: config.clickhouse?.database,
45
- missing: allExpected,
46
- extra: [],
47
- kindMismatches: [],
48
- objectDrift: [],
49
- tableDrift: [],
50
- };
51
- }
52
- throw error;
53
- }
54
- const expectedObjects = snapshot.definitions
55
- .filter((def) => {
56
- if (!selectedTables)
57
- return true;
58
- if (def.kind !== 'table')
59
- return true;
60
- return selectedTables.has(`${def.database}.${def.name}`);
61
- })
62
- .map((def) => ({
63
- kind: def.kind,
64
- database: def.database,
65
- name: def.name,
66
- }));
67
- const expectedDatabases = new Set(expectedObjects.map((def) => def.database));
68
- const actualInScope = actualObjects.filter((item) => expectedDatabases.has(item.database));
69
- const { missing, extra, kindMismatches, objectDrift } = compareSchemaObjects(expectedObjects, actualInScope);
70
- const expectedTables = snapshot.definitions.filter((def) => {
71
- if (def.kind !== 'table')
72
- return false;
73
- if (!selectedTables)
74
- return true;
75
- return selectedTables.has(`${def.database}.${def.name}`);
76
- });
77
- const expectedTableMap = new Map(expectedTables.map((table) => [`${table.database}.${table.name}`, table]));
78
- const actualTables = await db.listTableDetails([...expectedDatabases]);
79
- const tableDrift = actualTables
80
- .map((actual) => {
81
- const expected = expectedTableMap.get(`${actual.database}.${actual.name}`);
82
- if (!expected)
83
- return null;
84
- return compareTableShape(expected, actual);
85
- })
86
- .filter((item) => item !== null)
87
- .sort((a, b) => a.table.localeCompare(b.table));
88
- debug('drift', `comparison: missing=${missing.length}, extra=${extra.length}, kindMismatches=${kindMismatches.length}, objectDrift=${objectDrift.length}, tableDrift=${tableDrift.length}`);
89
- const drifted = missing.length > 0 ||
90
- extra.length > 0 ||
91
- kindMismatches.length > 0 ||
92
- objectDrift.length > 0 ||
93
- tableDrift.length > 0;
94
- return {
95
- scope,
96
- snapshotFile: join(metaDir, 'snapshot.json'),
97
- expectedCount: expectedObjects.length,
98
- actualCount: actualInScope.length,
99
- drifted,
100
- missing,
101
- extra,
102
- kindMismatches,
103
- objectDrift,
104
- tableDrift,
105
- };
106
- }
107
- async function cmdDrift(runCtx) {
108
- const { flags, config, dirs, ctx } = runCtx;
109
- const f = typedFlags(flags, GLOBAL_FLAGS);
110
- const tableSelector = f['--table'];
111
- const jsonMode = f['--json'] === true;
112
- const { metaDir } = dirs;
113
- const snapshot = await readSnapshot(metaDir);
114
- if (!snapshot) {
115
- throw new Error('Snapshot not found. Run `chkit generate` before drift checks.');
116
- }
117
- const scope = resolveTableScope(tableSelector, tableKeysFromDefinitions(snapshot.definitions));
118
- if (scope.enabled && scope.matchCount === 0) {
119
- const payload = {
120
- scope,
121
- snapshotFile: join(metaDir, 'snapshot.json'),
122
- expectedCount: 0,
123
- actualCount: 0,
124
- drifted: false,
125
- missing: [],
126
- extra: [],
127
- kindMismatches: [],
128
- objectDrift: [],
129
- tableDrift: [],
130
- };
131
- if (jsonMode) {
132
- emitJson('drift', {
133
- ...payload,
134
- warning: `No tables matched selector "${scope.selector ?? ''}".`,
135
- });
136
- return;
137
- }
138
- console.log(`No tables matched selector "${scope.selector ?? ''}". Drift check is a no-op.`);
139
- return;
140
- }
141
- if (!ctx.hasExecutor) {
142
- throw new Error('clickhouse config is required for drift checks');
143
- }
144
- const payload = await buildDriftPayload(config, metaDir, snapshot, scope, ctx.executor);
145
- if (jsonMode) {
146
- emitJson('drift', payload);
147
- return;
148
- }
149
- if (payload.databaseMissing) {
150
- console.log(`\u26A0 Database "${payload.database ?? ''}" does not exist on the target server.`);
151
- console.log(' It will be created when you run: chkit migrate --apply\n');
152
- }
153
- console.log(`Expected objects: ${payload.expectedCount}`);
154
- console.log(`Actual objects: ${payload.actualCount}`);
155
- console.log(`Drifted: ${payload.drifted ? 'yes' : 'no'}`);
156
- if (payload.scope?.enabled) {
157
- console.log(`Table scope: ${payload.scope.selector ?? ''} (${payload.scope.matchCount} matched)`);
158
- for (const table of payload.scope.matchedTables)
159
- console.log(`- ${table}`);
160
- }
161
- if (payload.missing.length > 0) {
162
- console.log('\nMissing objects:');
163
- for (const item of payload.missing)
164
- console.log(`- ${item}`);
165
- }
166
- if (payload.extra.length > 0) {
167
- console.log('\nUnexpected objects:');
168
- for (const item of payload.extra)
169
- console.log(`- ${item}`);
170
- }
171
- if (payload.kindMismatches.length > 0) {
172
- console.log('\nKind mismatches:');
173
- for (const item of payload.kindMismatches) {
174
- console.log(`- ${item.object}: expected=${item.expected} actual=${item.actual}`);
175
- }
176
- }
177
- if (payload.objectDrift.length > 0) {
178
- console.log('\nObject drift reasons:');
179
- for (const item of payload.objectDrift) {
180
- if (item.code === 'kind_mismatch') {
181
- console.log(`- ${item.code} ${item.object}: expected=${item.expectedKind ?? ''} actual=${item.actualKind ?? ''}`);
182
- continue;
183
- }
184
- console.log(`- ${item.code} ${item.object}`);
185
- }
186
- }
187
- if (payload.tableDrift.length > 0) {
188
- console.log('\nTable shape drift:');
189
- for (const item of payload.tableDrift) {
190
- console.log(`- ${item.table}`);
191
- if (item.missingColumns.length > 0)
192
- console.log(` missingColumns=${item.missingColumns.join(',')}`);
193
- if (item.extraColumns.length > 0)
194
- console.log(` extraColumns=${item.extraColumns.join(',')}`);
195
- if (item.changedColumns.length > 0)
196
- console.log(` changedColumns=${item.changedColumns.join(',')}`);
197
- if (item.settingDiffs.length > 0)
198
- console.log(` settingDiffs=${item.settingDiffs.join(',')}`);
199
- if (item.indexDiffs.length > 0)
200
- console.log(` indexDiffs=${item.indexDiffs.join(',')}`);
201
- if (item.ttlMismatch)
202
- console.log(' ttlMismatch=true');
203
- if (item.engineMismatch)
204
- console.log(' engineMismatch=true');
205
- if (item.primaryKeyMismatch)
206
- console.log(' primaryKeyMismatch=true');
207
- if (item.orderByMismatch)
208
- console.log(' orderByMismatch=true');
209
- if (item.uniqueKeyMismatch)
210
- console.log(' uniqueKeyMismatch=true');
211
- if (item.partitionByMismatch)
212
- console.log(' partitionByMismatch=true');
213
- if (item.projectionDiffs.length > 0) {
214
- console.log(` projectionDiffs=${item.projectionDiffs.join(',')}`);
215
- }
216
- console.log(` reasonCodes=${item.reasonCodes.join(',')}`);
217
- }
218
- }
219
- }
220
- //# sourceMappingURL=drift.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drift.js","sourceRoot":"","sources":["../../../src/bin/commands/drift.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { MigrationPlan, SchemaDefinition } from '@chkit/core';
2
- import type { TableScope } from '../../table-scope.js';
3
- export declare function emitGeneratePlanOutput(plan: MigrationPlan, jsonMode: boolean, scope: TableScope): void;
4
- export declare function emitGenerateApplyOutput(result: {
5
- migrationFile: string | null;
6
- snapshotFile: string;
7
- }, definitions: SchemaDefinition[], plan: MigrationPlan, jsonMode: boolean, scope: TableScope): void;
8
- //# sourceMappingURL=output.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/bin/commands/generate/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGlE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAoBtD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CA8BtG;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EAC9D,WAAW,EAAE,gBAAgB,EAAE,EAC/B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,UAAU,GAChB,IAAI,CAgCN"}
@@ -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"}