chkit 0.1.0-beta.10

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 (138) hide show
  1. package/README.md +76 -0
  2. package/dist/bin/chkit.d.ts +3 -0
  3. package/dist/bin/chkit.d.ts.map +1 -0
  4. package/dist/bin/chkit.js +304 -0
  5. package/dist/bin/chkit.js.map +1 -0
  6. package/dist/bin/command-registry.d.ts +34 -0
  7. package/dist/bin/command-registry.d.ts.map +1 -0
  8. package/dist/bin/command-registry.js +87 -0
  9. package/dist/bin/command-registry.js.map +1 -0
  10. package/dist/bin/commands/check.d.ts +3 -0
  11. package/dist/bin/commands/check.d.ts.map +1 -0
  12. package/dist/bin/commands/check.js +131 -0
  13. package/dist/bin/commands/check.js.map +1 -0
  14. package/dist/bin/commands/codegen.d.ts +2 -0
  15. package/dist/bin/commands/codegen.d.ts.map +1 -0
  16. package/dist/bin/commands/codegen.js +25 -0
  17. package/dist/bin/commands/codegen.js.map +1 -0
  18. package/dist/bin/commands/drift.d.ts +23 -0
  19. package/dist/bin/commands/drift.d.ts.map +1 -0
  20. package/dist/bin/commands/drift.js +179 -0
  21. package/dist/bin/commands/drift.js.map +1 -0
  22. package/dist/bin/commands/generate/output.d.ts +8 -0
  23. package/dist/bin/commands/generate/output.d.ts.map +1 -0
  24. package/dist/bin/commands/generate/output.js +58 -0
  25. package/dist/bin/commands/generate/output.js.map +1 -0
  26. package/dist/bin/commands/generate/plan-pipeline.d.ts +7 -0
  27. package/dist/bin/commands/generate/plan-pipeline.d.ts.map +1 -0
  28. package/dist/bin/commands/generate/plan-pipeline.js +143 -0
  29. package/dist/bin/commands/generate/plan-pipeline.js.map +1 -0
  30. package/dist/bin/commands/generate/rename-mappings.d.ts +29 -0
  31. package/dist/bin/commands/generate/rename-mappings.d.ts.map +1 -0
  32. package/dist/bin/commands/generate/rename-mappings.js +195 -0
  33. package/dist/bin/commands/generate/rename-mappings.js.map +1 -0
  34. package/dist/bin/commands/generate.d.ts +3 -0
  35. package/dist/bin/commands/generate.d.ts.map +1 -0
  36. package/dist/bin/commands/generate.js +154 -0
  37. package/dist/bin/commands/generate.js.map +1 -0
  38. package/dist/bin/commands/init.d.ts +2 -0
  39. package/dist/bin/commands/init.d.ts.map +1 -0
  40. package/dist/bin/commands/init.js +12 -0
  41. package/dist/bin/commands/init.js.map +1 -0
  42. package/dist/bin/commands/migrate.d.ts +3 -0
  43. package/dist/bin/commands/migrate.d.ts.map +1 -0
  44. package/dist/bin/commands/migrate.js +270 -0
  45. package/dist/bin/commands/migrate.js.map +1 -0
  46. package/dist/bin/commands/plugin-like.d.ts +38 -0
  47. package/dist/bin/commands/plugin-like.d.ts.map +1 -0
  48. package/dist/bin/commands/plugin-like.js +101 -0
  49. package/dist/bin/commands/plugin-like.js.map +1 -0
  50. package/dist/bin/commands/plugin.d.ts +3 -0
  51. package/dist/bin/commands/plugin.d.ts.map +1 -0
  52. package/dist/bin/commands/plugin.js +148 -0
  53. package/dist/bin/commands/plugin.js.map +1 -0
  54. package/dist/bin/commands/pull.d.ts +2 -0
  55. package/dist/bin/commands/pull.d.ts.map +1 -0
  56. package/dist/bin/commands/pull.js +25 -0
  57. package/dist/bin/commands/pull.js.map +1 -0
  58. package/dist/bin/commands/status.d.ts +3 -0
  59. package/dist/bin/commands/status.d.ts.map +1 -0
  60. package/dist/bin/commands/status.js +53 -0
  61. package/dist/bin/commands/status.js.map +1 -0
  62. package/dist/bin/commands/typegen.d.ts +2 -0
  63. package/dist/bin/commands/typegen.d.ts.map +1 -0
  64. package/dist/bin/commands/typegen.js +25 -0
  65. package/dist/bin/commands/typegen.js.map +1 -0
  66. package/dist/bin/config.d.ts +13 -0
  67. package/dist/bin/config.d.ts.map +1 -0
  68. package/dist/bin/config.js +39 -0
  69. package/dist/bin/config.js.map +1 -0
  70. package/dist/bin/global-flags.d.ts +16 -0
  71. package/dist/bin/global-flags.d.ts.map +1 -0
  72. package/dist/bin/global-flags.js +7 -0
  73. package/dist/bin/global-flags.js.map +1 -0
  74. package/dist/bin/help.d.ts +5 -0
  75. package/dist/bin/help.d.ts.map +1 -0
  76. package/dist/bin/help.js +84 -0
  77. package/dist/bin/help.js.map +1 -0
  78. package/dist/bin/internal-plugins/index.d.ts +3 -0
  79. package/dist/bin/internal-plugins/index.d.ts.map +1 -0
  80. package/dist/bin/internal-plugins/index.js +5 -0
  81. package/dist/bin/internal-plugins/index.js.map +1 -0
  82. package/dist/bin/internal-plugins/skill-hint.d.ts +16 -0
  83. package/dist/bin/internal-plugins/skill-hint.d.ts.map +1 -0
  84. package/dist/bin/internal-plugins/skill-hint.js +101 -0
  85. package/dist/bin/internal-plugins/skill-hint.js.map +1 -0
  86. package/dist/bin/journal-store.d.ts +13 -0
  87. package/dist/bin/journal-store.d.ts.map +1 -0
  88. package/dist/bin/journal-store.js +79 -0
  89. package/dist/bin/journal-store.js.map +1 -0
  90. package/dist/bin/json-output.d.ts +8 -0
  91. package/dist/bin/json-output.d.ts.map +1 -0
  92. package/dist/bin/json-output.js +21 -0
  93. package/dist/bin/json-output.js.map +1 -0
  94. package/dist/bin/lib.d.ts +8 -0
  95. package/dist/bin/lib.d.ts.map +1 -0
  96. package/dist/bin/lib.js +8 -0
  97. package/dist/bin/lib.js.map +1 -0
  98. package/dist/bin/migration-store.d.ts +22 -0
  99. package/dist/bin/migration-store.d.ts.map +1 -0
  100. package/dist/bin/migration-store.js +60 -0
  101. package/dist/bin/migration-store.js.map +1 -0
  102. package/dist/bin/plugin-runtime.d.ts +42 -0
  103. package/dist/bin/plugin-runtime.d.ts.map +1 -0
  104. package/dist/bin/plugin-runtime.js +298 -0
  105. package/dist/bin/plugin-runtime.js.map +1 -0
  106. package/dist/bin/safety-markers.d.ts +24 -0
  107. package/dist/bin/safety-markers.d.ts.map +1 -0
  108. package/dist/bin/safety-markers.js +94 -0
  109. package/dist/bin/safety-markers.js.map +1 -0
  110. package/dist/bin/schema-loader.d.ts +3 -0
  111. package/dist/bin/schema-loader.d.ts.map +1 -0
  112. package/dist/bin/schema-loader.js +6 -0
  113. package/dist/bin/schema-loader.js.map +1 -0
  114. package/dist/bin/table-scope.d.ts +39 -0
  115. package/dist/bin/table-scope.d.ts.map +1 -0
  116. package/dist/bin/table-scope.js +167 -0
  117. package/dist/bin/table-scope.js.map +1 -0
  118. package/dist/bin/version.d.ts +2 -0
  119. package/dist/bin/version.d.ts.map +1 -0
  120. package/dist/bin/version.js +5 -0
  121. package/dist/bin/version.js.map +1 -0
  122. package/dist/drift-diff.d.ts +8 -0
  123. package/dist/drift-diff.d.ts.map +1 -0
  124. package/dist/drift-diff.js +46 -0
  125. package/dist/drift-diff.js.map +1 -0
  126. package/dist/drift.d.ts +65 -0
  127. package/dist/drift.d.ts.map +1 -0
  128. package/dist/drift.js +204 -0
  129. package/dist/drift.js.map +1 -0
  130. package/dist/index.d.ts +2 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +2 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/plugins.d.ts +142 -0
  135. package/dist/plugins.d.ts.map +1 -0
  136. package/dist/plugins.js +11 -0
  137. package/dist/plugins.js.map +1 -0
  138. package/package.json +33 -0
package/README.md ADDED
@@ -0,0 +1,76 @@
1
+ # chkit
2
+
3
+ ClickHouse schema and migration CLI for TypeScript projects.
4
+
5
+ Define your ClickHouse schema in TypeScript, generate migrations automatically, detect drift, and run CI checks -- all from a single CLI.
6
+
7
+ ## Features
8
+
9
+ - **Schema-as-code** -- Define tables, views, and materialized views in TypeScript using a declarative DSL
10
+ - **Automatic migration generation** -- Diff your schema changes and generate timestamped SQL migrations with rename detection
11
+ - **Safe migrations** -- Destructive operations are flagged with risk levels and require explicit confirmation
12
+ - **Drift detection** -- Compare your local schema against a live ClickHouse instance to catch out-of-band changes
13
+ - **CI gate** -- Run `chkit check` to fail builds on pending migrations, checksum mismatches, or schema drift
14
+ - **TypeScript codegen** -- Generate row types and optional Zod schemas from your schema definitions (`@chkit/plugin-codegen`)
15
+ - **Schema pulling** -- Introspect an existing ClickHouse database into local schema files (`@chkit/plugin-pull`)
16
+ - **Data backfill** -- Time-windowed, checkpointed backfill operations with retry logic (`@chkit/plugin-backfill`)
17
+ - **JSON output** -- Every command supports `--json` for scripting and automation
18
+
19
+ ## Install
20
+
21
+ ```bash
22
+ bun add -d chkit
23
+ ```
24
+
25
+ ## Usage
26
+
27
+ ```bash
28
+ # Scaffold a new project
29
+ bunx chkit init
30
+
31
+ # Generate a migration from schema changes
32
+ bunx chkit generate --name add-users-table
33
+
34
+ # Preview and apply pending migrations
35
+ bunx chkit migrate --apply
36
+
37
+ # Check migration status
38
+ bunx chkit status
39
+
40
+ # Detect schema drift
41
+ bunx chkit drift
42
+
43
+ # CI gate (fails on pending migrations or drift)
44
+ bunx chkit check
45
+ ```
46
+
47
+ All commands support `--json` for machine-readable output and `--config <path>` to specify a custom config file.
48
+
49
+ ## Plugins
50
+
51
+ | Plugin | Description |
52
+ |--------|-------------|
53
+ | [`@chkit/plugin-codegen`](https://www.npmjs.com/package/@chkit/plugin-codegen) | Generate TypeScript row types and Zod schemas |
54
+ | [`@chkit/plugin-pull`](https://www.npmjs.com/package/@chkit/plugin-pull) | Pull schemas from a live ClickHouse instance |
55
+ | [`@chkit/plugin-backfill`](https://www.npmjs.com/package/@chkit/plugin-backfill) | Time-windowed data backfill with checkpoints |
56
+ | [`@chkit/plugin-obsessiondb`](https://www.npmjs.com/package/@chkit/plugin-obsessiondb) | Auto-rewrite Shared engines for ObsessionDB compatibility |
57
+
58
+ ## AI Agent Skill
59
+
60
+ Install the chkit agent skill so AI coding assistants understand chkit:
61
+
62
+ ```bash
63
+ npx skills add obsessiondb/chkit
64
+ ```
65
+
66
+ ## Documentation
67
+
68
+ See the [chkit documentation](https://chkit.obsessiondb.com).
69
+
70
+ ## License
71
+
72
+ [MIT](../../LICENSE)
73
+
74
+ ---
75
+
76
+ Sponsored by [ObsessionDB](https://obsessiondb.com)
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=chkit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chkit.d.ts","sourceRoot":"","sources":["../../src/bin/chkit.ts"],"names":[],"mappings":""}
@@ -0,0 +1,304 @@
1
+ #!/usr/bin/env node
2
+ import process from 'node:process';
3
+ import { typedFlags } from '../plugins.js';
4
+ import { createCommandRegistry } from './command-registry.js';
5
+ import { generateCommand } from './commands/generate.js';
6
+ import { migrateCommand } from './commands/migrate.js';
7
+ import { statusCommand } from './commands/status.js';
8
+ import { driftCommand } from './commands/drift.js';
9
+ import { checkCommand } from './commands/check.js';
10
+ import { pluginCommand } from './commands/plugin.js';
11
+ import { cmdInit } from './commands/init.js';
12
+ import { loadConfig, resolveDirs } from './config.js';
13
+ import { GLOBAL_FLAGS } from './global-flags.js';
14
+ import { formatGlobalHelp, formatCommandHelp } from './help.js';
15
+ import { parseFlags, UnknownFlagError, MissingFlagValueError } from '@chkit/core';
16
+ import { loadPluginRuntime } from './plugin-runtime.js';
17
+ import { resolveTableScope, tableKeysFromDefinitions } from './table-scope.js';
18
+ import { loadSchemaDefinitions } from './schema-loader.js';
19
+ import { getInternalPlugins } from './internal-plugins/index.js';
20
+ import { CLI_VERSION } from './version.js';
21
+ const WELL_KNOWN_PLUGIN_COMMANDS = {
22
+ codegen: 'Codegen',
23
+ pull: 'Pull',
24
+ };
25
+ function extractConfigPath(argv) {
26
+ const idx = argv.indexOf('--config');
27
+ if (idx === -1)
28
+ return undefined;
29
+ return argv[idx + 1];
30
+ }
31
+ /** Strip global flags (--config, --json, --table) from argv, returning their values and the rest. */
32
+ function stripGlobalFlags(argv) {
33
+ const rest = [];
34
+ let jsonMode = false;
35
+ let tableSelector;
36
+ for (let i = 0; i < argv.length; i++) {
37
+ const token = argv[i];
38
+ if (token === '--json') {
39
+ jsonMode = true;
40
+ continue;
41
+ }
42
+ if (token === '--config' && i + 1 < argv.length) {
43
+ i++;
44
+ continue;
45
+ }
46
+ if (token === '--table' && i + 1 < argv.length) {
47
+ tableSelector = argv[i + 1];
48
+ i++;
49
+ continue;
50
+ }
51
+ rest.push(token);
52
+ }
53
+ return { jsonMode, tableSelector, rest };
54
+ }
55
+ function exitIfNeeded() {
56
+ const code = typeof process.exitCode === 'number'
57
+ ? process.exitCode
58
+ : process.exitCode
59
+ ? Number(process.exitCode)
60
+ : 0;
61
+ if (Number.isFinite(code) && code > 0) {
62
+ process.exit(code);
63
+ }
64
+ }
65
+ function collectExtensions(runtime) {
66
+ return runtime.plugins.flatMap((p) => {
67
+ const extensions = p.plugin.extendCommands;
68
+ if (!extensions || extensions.length === 0)
69
+ return [];
70
+ return [{ pluginName: p.plugin.manifest.name, extensions }];
71
+ });
72
+ }
73
+ function collectPluginCommands(runtime) {
74
+ return runtime.plugins.flatMap((p) => {
75
+ const commands = p.plugin.commands;
76
+ if (!commands || commands.length === 0)
77
+ return [];
78
+ return [{ pluginName: p.plugin.manifest.name, commands, manifestName: p.plugin.manifest.name }];
79
+ });
80
+ }
81
+ async function main() {
82
+ const argv = process.argv.slice(2);
83
+ const commandName = argv[0];
84
+ if (!commandName || commandName === '-h' || commandName === '--help') {
85
+ const configPathArg = extractConfigPath(argv);
86
+ try {
87
+ const { config, path: configPath } = await loadConfig(configPathArg);
88
+ const pluginRuntime = await loadPluginRuntime({ config, configPath, cliVersion: CLI_VERSION });
89
+ const registry = createCommandRegistry({
90
+ coreCommands: [generateCommand, migrateCommand, statusCommand, driftCommand, checkCommand, pluginCommand],
91
+ globalFlags: GLOBAL_FLAGS,
92
+ pluginExtensions: collectExtensions(pluginRuntime),
93
+ pluginCommands: collectPluginCommands(pluginRuntime),
94
+ });
95
+ console.log(formatGlobalHelp(registry, CLI_VERSION));
96
+ }
97
+ catch {
98
+ const registry = createCommandRegistry({
99
+ coreCommands: [generateCommand, migrateCommand, statusCommand, driftCommand, checkCommand, pluginCommand],
100
+ globalFlags: GLOBAL_FLAGS,
101
+ pluginExtensions: [],
102
+ pluginCommands: [],
103
+ });
104
+ console.log(formatGlobalHelp(registry, CLI_VERSION));
105
+ }
106
+ return;
107
+ }
108
+ if (commandName === '-v' || commandName === '--version') {
109
+ console.log(CLI_VERSION);
110
+ return;
111
+ }
112
+ if (commandName === 'init') {
113
+ await cmdInit();
114
+ return;
115
+ }
116
+ const configPathArg = extractConfigPath(argv);
117
+ const { config, path: configPath } = await loadConfig(configPathArg);
118
+ const pluginRuntime = await loadPluginRuntime({
119
+ config,
120
+ configPath,
121
+ cliVersion: CLI_VERSION,
122
+ internalPlugins: getInternalPlugins(),
123
+ });
124
+ const initCtx = {
125
+ command: commandName,
126
+ isInteractive: process.stdin.isTTY === true && process.stderr.isTTY === true,
127
+ jsonMode: argv.includes('--json'),
128
+ };
129
+ await pluginRuntime.runOnInit(initCtx);
130
+ _onComplete = (exitCode) => pluginRuntime.runOnComplete({ ...initCtx, exitCode });
131
+ const registry = createCommandRegistry({
132
+ coreCommands: [generateCommand, migrateCommand, statusCommand, driftCommand, checkCommand, pluginCommand],
133
+ globalFlags: GLOBAL_FLAGS,
134
+ pluginExtensions: collectExtensions(pluginRuntime),
135
+ pluginCommands: collectPluginCommands(pluginRuntime),
136
+ });
137
+ const resolved = registry.get(commandName);
138
+ if (!resolved) {
139
+ const wellKnown = WELL_KNOWN_PLUGIN_COMMANDS[commandName];
140
+ if (wellKnown) {
141
+ console.error(`${wellKnown} plugin is not configured. Add it to config.plugins first.`);
142
+ process.exitCode = 1;
143
+ return;
144
+ }
145
+ console.error(`Unknown command: ${commandName}`);
146
+ console.log('');
147
+ console.log(formatGlobalHelp(registry, CLI_VERSION));
148
+ process.exitCode = 1;
149
+ return;
150
+ }
151
+ if (argv.includes('--help') || argv.includes('-h')) {
152
+ console.log(formatCommandHelp(resolved, registry.globalFlags));
153
+ return;
154
+ }
155
+ if (resolved.isPlugin && !resolved.run) {
156
+ const argsAfterCommand = argv.slice(1);
157
+ let subcommandName;
158
+ if (resolved.subcommands) {
159
+ // Match against known subcommand names to avoid confusing flag values
160
+ // (e.g., config paths) with subcommand candidates
161
+ const matchedSub = resolved.subcommands.find((s) => argsAfterCommand.includes(s.name));
162
+ if (matchedSub) {
163
+ subcommandName = matchedSub.name;
164
+ }
165
+ else if (resolved.subcommands.length === 1) {
166
+ subcommandName = resolved.subcommands[0]?.name;
167
+ }
168
+ else {
169
+ console.log(formatCommandHelp(resolved, registry.globalFlags));
170
+ return;
171
+ }
172
+ }
173
+ const allPluginFlags = registry.resolveFlags(commandName, subcommandName);
174
+ let flags;
175
+ try {
176
+ flags = parseFlags(argsAfterCommand, allPluginFlags);
177
+ }
178
+ catch (error) {
179
+ if (error instanceof UnknownFlagError || error instanceof MissingFlagValueError) {
180
+ console.error(error.message);
181
+ process.exitCode = 1;
182
+ return;
183
+ }
184
+ throw error;
185
+ }
186
+ const gf = typedFlags(flags, GLOBAL_FLAGS);
187
+ const jsonMode = gf['--json'] === true;
188
+ const tableSelector = gf['--table'];
189
+ let tableScope;
190
+ try {
191
+ const definitions = await loadSchemaDefinitions(config.schema);
192
+ tableScope = resolveTableScope(tableSelector, tableKeysFromDefinitions(definitions));
193
+ }
194
+ catch {
195
+ tableScope = resolveTableScope(tableSelector, []);
196
+ }
197
+ try {
198
+ await pluginRuntime.runOnConfigLoaded({
199
+ command: commandName,
200
+ config,
201
+ configPath,
202
+ tableScope,
203
+ flags,
204
+ });
205
+ }
206
+ catch (error) {
207
+ const message = error instanceof Error ? error.message : String(error);
208
+ if (jsonMode) {
209
+ console.log(JSON.stringify({ ok: false, error: message }));
210
+ }
211
+ else {
212
+ console.error(message);
213
+ }
214
+ process.exitCode = 2;
215
+ return;
216
+ }
217
+ const pluginName = resolved.pluginName ?? commandName;
218
+ const pluginCommandName = subcommandName ?? commandName;
219
+ const { printOutput } = await import('./json-output.js');
220
+ const exitCode = await pluginRuntime.runPluginCommand(pluginName, pluginCommandName, {
221
+ config,
222
+ configPath,
223
+ jsonMode,
224
+ tableScope,
225
+ args: [],
226
+ flags,
227
+ print(value) {
228
+ printOutput(value, jsonMode);
229
+ },
230
+ });
231
+ if (exitCode !== 0)
232
+ process.exitCode = exitCode;
233
+ return;
234
+ }
235
+ // For the 'plugin' command, use lenient flag extraction since plugin-specific
236
+ // flags are handled by the plugin's own parser
237
+ if (commandName === 'plugin') {
238
+ const { jsonMode, tableSelector } = stripGlobalFlags(argv.slice(1));
239
+ const flags = {};
240
+ if (jsonMode)
241
+ flags['--json'] = true;
242
+ if (tableSelector)
243
+ flags['--table'] = tableSelector;
244
+ const dirs = resolveDirs(config);
245
+ if (!resolved.run)
246
+ throw new Error(`Command '${commandName}' has no run handler`);
247
+ await resolved.run({
248
+ command: commandName,
249
+ flags,
250
+ config,
251
+ configPath,
252
+ dirs,
253
+ pluginRuntime,
254
+ });
255
+ return;
256
+ }
257
+ const allFlags = registry.resolveFlags(commandName);
258
+ let flags;
259
+ try {
260
+ flags = parseFlags(argv.slice(1), allFlags);
261
+ }
262
+ catch (error) {
263
+ if (error instanceof UnknownFlagError || error instanceof MissingFlagValueError) {
264
+ console.error(error.message);
265
+ process.exitCode = 1;
266
+ return;
267
+ }
268
+ throw error;
269
+ }
270
+ const dirs = resolveDirs(config);
271
+ if (!resolved.run)
272
+ throw new Error(`Command '${commandName}' has no run handler`);
273
+ await resolved.run({
274
+ command: commandName,
275
+ flags,
276
+ config,
277
+ configPath,
278
+ dirs,
279
+ pluginRuntime,
280
+ });
281
+ }
282
+ let _onComplete;
283
+ function resolveExitCode() {
284
+ if (typeof process.exitCode === 'number')
285
+ return process.exitCode;
286
+ return process.exitCode ? Number(process.exitCode) : 0;
287
+ }
288
+ main()
289
+ .then(async () => {
290
+ const code = resolveExitCode();
291
+ await _onComplete?.(code);
292
+ exitIfNeeded();
293
+ })
294
+ .catch(async (error) => {
295
+ try {
296
+ await _onComplete?.(1);
297
+ }
298
+ catch {
299
+ // onComplete errors must not mask the original error
300
+ }
301
+ console.error(error instanceof Error ? error.message : String(error));
302
+ process.exit(1);
303
+ });
304
+ //# sourceMappingURL=chkit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chkit.js","sourceRoot":"","sources":["../../src/bin/chkit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ChxPluginCommand, CommandDef, CommandExtension, FlagDef } from '../plugins.js';
2
+ export interface RegisteredCommand {
3
+ name: string;
4
+ description: string;
5
+ flags: readonly FlagDef[];
6
+ pluginFlags: Array<{
7
+ pluginName: string;
8
+ flags: readonly FlagDef[];
9
+ }>;
10
+ isPlugin: boolean;
11
+ pluginName?: string;
12
+ subcommands?: RegisteredCommand[];
13
+ run: CommandDef['run'] | null;
14
+ }
15
+ export interface CommandRegistry {
16
+ commands: RegisteredCommand[];
17
+ globalFlags: readonly FlagDef[];
18
+ get(name: string): RegisteredCommand | undefined;
19
+ resolveFlags(name: string, subcommand?: string): FlagDef[];
20
+ }
21
+ export declare function createCommandRegistry(input: {
22
+ coreCommands: CommandDef[];
23
+ globalFlags: readonly FlagDef[];
24
+ pluginExtensions: Array<{
25
+ pluginName: string;
26
+ extensions: CommandExtension[];
27
+ }>;
28
+ pluginCommands: Array<{
29
+ pluginName: string;
30
+ commands: ChxPluginCommand[];
31
+ manifestName: string;
32
+ }>;
33
+ }): CommandRegistry;
34
+ //# sourceMappingURL=command-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../../src/bin/command-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5F,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;IACzB,WAAW,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAA;KAAE,CAAC,CAAA;IACrE,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAA;IACjC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B,WAAW,EAAE,SAAS,OAAO,EAAE,CAAA;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAA;IAChD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;CAC3D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,YAAY,EAAE,UAAU,EAAE,CAAA;IAC1B,WAAW,EAAE,SAAS,OAAO,EAAE,CAAA;IAC/B,gBAAgB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC,CAAA;IAC/E,cAAc,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAClG,GAAG,eAAe,CAwFlB"}
@@ -0,0 +1,87 @@
1
+ export function createCommandRegistry(input) {
2
+ const commands = [];
3
+ const byName = new Map();
4
+ for (const cmd of input.coreCommands) {
5
+ const registered = {
6
+ name: cmd.name,
7
+ description: cmd.description,
8
+ flags: cmd.flags,
9
+ pluginFlags: [],
10
+ isPlugin: false,
11
+ run: cmd.run,
12
+ };
13
+ commands.push(registered);
14
+ byName.set(cmd.name, registered);
15
+ }
16
+ for (const { pluginName, extensions } of input.pluginExtensions) {
17
+ for (const ext of extensions) {
18
+ const targets = Array.isArray(ext.command) ? ext.command : [ext.command];
19
+ for (const target of targets) {
20
+ const cmd = byName.get(target);
21
+ if (cmd) {
22
+ cmd.pluginFlags.push({ pluginName, flags: ext.flags });
23
+ }
24
+ }
25
+ }
26
+ }
27
+ for (const { pluginName, commands: pluginCmds, manifestName } of input.pluginCommands) {
28
+ if (pluginCmds.length === 1 && pluginCmds[0]?.name === manifestName) {
29
+ const cmd = pluginCmds[0];
30
+ const registered = {
31
+ name: manifestName,
32
+ description: cmd.description ?? '',
33
+ flags: cmd.flags ?? [],
34
+ pluginFlags: [],
35
+ isPlugin: true,
36
+ pluginName,
37
+ run: null,
38
+ };
39
+ commands.push(registered);
40
+ byName.set(manifestName, registered);
41
+ }
42
+ else if (pluginCmds.length > 0) {
43
+ const subcommands = pluginCmds.map((cmd) => ({
44
+ name: cmd.name,
45
+ description: cmd.description ?? '',
46
+ flags: cmd.flags ?? [],
47
+ pluginFlags: [],
48
+ isPlugin: true,
49
+ pluginName,
50
+ run: null,
51
+ }));
52
+ const registered = {
53
+ name: pluginName,
54
+ description: `Plugin: ${pluginName}`,
55
+ flags: [],
56
+ pluginFlags: [],
57
+ isPlugin: true,
58
+ pluginName,
59
+ subcommands,
60
+ run: null,
61
+ };
62
+ commands.push(registered);
63
+ byName.set(pluginName, registered);
64
+ }
65
+ }
66
+ return {
67
+ commands,
68
+ globalFlags: input.globalFlags,
69
+ get(name) {
70
+ return byName.get(name);
71
+ },
72
+ resolveFlags(name, subcommand) {
73
+ const cmd = byName.get(name);
74
+ if (!cmd)
75
+ return [...input.globalFlags];
76
+ let commandFlags = cmd.flags;
77
+ if (subcommand && cmd.subcommands) {
78
+ const sub = cmd.subcommands.find((s) => s.name === subcommand);
79
+ if (sub)
80
+ commandFlags = sub.flags;
81
+ }
82
+ const pluginFlagDefs = cmd.pluginFlags.flatMap((pf) => pf.flags);
83
+ return [...input.globalFlags, ...commandFlags, ...pluginFlagDefs];
84
+ },
85
+ };
86
+ }
87
+ //# sourceMappingURL=command-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-registry.js","sourceRoot":"","sources":["../../src/bin/command-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CommandDef } from '../../plugins.js';
2
+ export declare const checkCommand: CommandDef;
3
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAA;AAMrE,eAAO,MAAM,YAAY,EAAE,UAO1B,CAAA"}