@refrakt-md/cli 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/bin.js +277 -9
  2. package/dist/bin.js.map +1 -1
  3. package/dist/commands/contracts.d.ts +6 -0
  4. package/dist/commands/contracts.d.ts.map +1 -0
  5. package/dist/commands/contracts.js +41 -0
  6. package/dist/commands/contracts.js.map +1 -0
  7. package/dist/commands/inspect.d.ts +33 -0
  8. package/dist/commands/inspect.d.ts.map +1 -0
  9. package/dist/commands/inspect.js +269 -0
  10. package/dist/commands/inspect.js.map +1 -0
  11. package/dist/commands/scaffold-css.d.ts +6 -0
  12. package/dist/commands/scaffold-css.d.ts.map +1 -0
  13. package/dist/commands/scaffold-css.js +113 -0
  14. package/dist/commands/scaffold-css.js.map +1 -0
  15. package/dist/commands/validate.d.ts +6 -0
  16. package/dist/commands/validate.d.ts.map +1 -0
  17. package/dist/commands/validate.js +70 -0
  18. package/dist/commands/validate.js.map +1 -0
  19. package/dist/commands/write.d.ts +7 -0
  20. package/dist/commands/write.d.ts.map +1 -1
  21. package/dist/commands/write.js +66 -10
  22. package/dist/commands/write.js.map +1 -1
  23. package/dist/config.d.ts +2 -1
  24. package/dist/config.d.ts.map +1 -1
  25. package/dist/config.js +30 -2
  26. package/dist/config.js.map +1 -1
  27. package/dist/lib/css-audit.d.ts +23 -0
  28. package/dist/lib/css-audit.d.ts.map +1 -0
  29. package/dist/lib/css-audit.js +99 -0
  30. package/dist/lib/css-audit.js.map +1 -0
  31. package/dist/lib/css-resolve.d.ts +20 -0
  32. package/dist/lib/css-resolve.d.ts.map +1 -0
  33. package/dist/lib/css-resolve.js +57 -0
  34. package/dist/lib/css-resolve.js.map +1 -0
  35. package/dist/lib/fixtures.d.ts +10 -0
  36. package/dist/lib/fixtures.d.ts.map +1 -0
  37. package/dist/lib/fixtures.js +356 -0
  38. package/dist/lib/fixtures.js.map +1 -0
  39. package/dist/lib/format.d.ts +35 -0
  40. package/dist/lib/format.d.ts.map +1 -0
  41. package/dist/lib/format.js +215 -0
  42. package/dist/lib/format.js.map +1 -0
  43. package/dist/lib/variants.d.ts +17 -0
  44. package/dist/lib/variants.d.ts.map +1 -0
  45. package/dist/lib/variants.js +32 -0
  46. package/dist/lib/variants.js.map +1 -0
  47. package/package.json +7 -3
package/dist/bin.js CHANGED
@@ -8,6 +8,18 @@ if (!command || command === '--help' || command === '-h') {
8
8
  if (command === 'write') {
9
9
  runWrite(args.slice(1));
10
10
  }
11
+ else if (command === 'inspect') {
12
+ runInspect(args.slice(1));
13
+ }
14
+ else if (command === 'contracts') {
15
+ runContracts(args.slice(1));
16
+ }
17
+ else if (command === 'scaffold-css') {
18
+ runScaffoldCss(args.slice(1));
19
+ }
20
+ else if (command === 'validate') {
21
+ runValidate(args.slice(1));
22
+ }
11
23
  else if (command.startsWith('-')) {
12
24
  console.error(`Error: Unknown flag "${command}"\n`);
13
25
  printUsage();
@@ -23,29 +35,158 @@ function printUsage() {
23
35
  Usage: refrakt <command> [options]
24
36
 
25
37
  Commands:
26
- write <prompt> Generate a Markdown content file using AI
38
+ write <prompt> Generate a Markdown content file using AI
39
+ inspect <rune> Show identity transform output for a rune
40
+ contracts [options] Generate structure contracts from theme config
41
+ scaffold-css Generate CSS stub files for all runes
42
+ validate Validate theme config and manifest
27
43
 
28
44
  Write Options:
29
- --output, -o <path> Write output to file instead of stdout
30
- --provider, -p <name> Provider: anthropic, ollama (default: auto-detect)
45
+ --output, -o <path> Write output to a single file
46
+ --output-dir, -d <dir> Generate multiple files into a directory
47
+ --provider, -p <name> Provider: anthropic, gemini, ollama (default: auto-detect)
31
48
  --model, -m <name> Model name (default: per-provider)
32
49
  --help, -h Show this help message
33
50
 
51
+ Inspect Options:
52
+ --list List all available runes
53
+ --json Output as JSON
54
+ --audit Check CSS coverage for generated selectors
55
+ --all Audit all runes (use with --audit)
56
+ --css <dir> CSS directory for audit (auto-detected by default)
57
+ --theme <name> Theme to use (default: base)
58
+ --items <n> Number of repeated children (default: 3)
59
+ --<attr>=<value> Set a rune attribute (e.g., --type=warning)
60
+ --<attr>=all Expand all variants for that attribute
61
+
34
62
  Provider auto-detection:
35
63
  1. ANTHROPIC_API_KEY env var → Anthropic
36
- 2. OLLAMA_HOST env var → Ollama
37
- 3. Default → Ollama at localhost:11434
64
+ 2. GOOGLE_API_KEY env var → Gemini Flash
65
+ 3. OLLAMA_HOST env var → Ollama
66
+ 4. Default → Ollama at localhost:11434
67
+
68
+ Contracts Options:
69
+ --output, -o <path> Write contracts to a file (default: stdout)
70
+ --check Validate existing file is up to date (exit 1 if stale)
71
+
72
+ Scaffold-CSS Options:
73
+ --output-dir, -d <dir> Output directory (default: ./styles/runes)
74
+ --force Overwrite existing files
75
+
76
+ Validate Options:
77
+ --config <path> Path to theme config module (default: auto-detect)
78
+ --manifest <path> Path to manifest.json (default: auto-detect)
38
79
 
39
80
  Examples:
40
- refrakt write "Create a getting started guide"
41
- refrakt write -o content/docs/api.md "Write an API reference page"
81
+ refrakt inspect hint --type=warning
82
+ refrakt inspect hint --type=all
83
+ refrakt inspect api --method=POST --path="/users"
84
+ refrakt inspect --list
85
+ refrakt inspect --list --json
86
+ refrakt inspect hint --audit
87
+ refrakt inspect --all --audit
88
+ refrakt inspect hint --audit --css path/to/styles
89
+ refrakt write -d content/ "Set up a docs site with index, guides, and blog"
42
90
  refrakt write -p ollama -m llama3.2 "Write a FAQ page"
43
- ANTHROPIC_API_KEY=sk-... refrakt write "Create a landing page"
91
+ refrakt contracts -o packages/lumina/contracts/structures.json
92
+ refrakt contracts --check -o packages/lumina/contracts/structures.json
44
93
  `);
45
94
  }
95
+ function runInspect(inspectArgs) {
96
+ let runeName;
97
+ let list = false;
98
+ let json = false;
99
+ let audit = false;
100
+ let all = false;
101
+ let cssDir;
102
+ let theme = 'base';
103
+ let items = 3;
104
+ const flags = {};
105
+ for (let i = 0; i < inspectArgs.length; i++) {
106
+ const arg = inspectArgs[i];
107
+ if (arg === '--list') {
108
+ list = true;
109
+ }
110
+ else if (arg === '--json') {
111
+ json = true;
112
+ }
113
+ else if (arg === '--audit') {
114
+ audit = true;
115
+ }
116
+ else if (arg === '--all') {
117
+ all = true;
118
+ }
119
+ else if (arg === '--css') {
120
+ cssDir = inspectArgs[++i];
121
+ if (!cssDir) {
122
+ console.error('Error: --css requires a directory path');
123
+ process.exit(1);
124
+ }
125
+ }
126
+ else if (arg === '--theme') {
127
+ theme = inspectArgs[++i];
128
+ if (!theme) {
129
+ console.error('Error: --theme requires a value');
130
+ process.exit(1);
131
+ }
132
+ }
133
+ else if (arg === '--items') {
134
+ const val = inspectArgs[++i];
135
+ if (!val) {
136
+ console.error('Error: --items requires a number');
137
+ process.exit(1);
138
+ }
139
+ items = parseInt(val, 10);
140
+ }
141
+ else if (arg === '--help' || arg === '-h') {
142
+ printUsage();
143
+ process.exit(0);
144
+ }
145
+ else if (arg.startsWith('--') && arg.includes('=')) {
146
+ // --attr=value flags (rune-specific attributes)
147
+ const eqIdx = arg.indexOf('=');
148
+ const key = arg.slice(2, eqIdx);
149
+ const value = arg.slice(eqIdx + 1);
150
+ flags[key] = value;
151
+ }
152
+ else if (arg.startsWith('--')) {
153
+ // --attr value flags (rune-specific attributes)
154
+ const key = arg.slice(2);
155
+ const value = inspectArgs[++i];
156
+ if (!value) {
157
+ console.error(`Error: --${key} requires a value`);
158
+ process.exit(1);
159
+ }
160
+ flags[key] = value;
161
+ }
162
+ else if (!runeName) {
163
+ runeName = arg;
164
+ }
165
+ else {
166
+ console.error(`Error: Unexpected argument "${arg}"\n`);
167
+ printUsage();
168
+ process.exit(1);
169
+ }
170
+ }
171
+ // Dynamic imports to avoid loading heavy dependencies at parse time
172
+ Promise.all([
173
+ import('./commands/inspect.js'),
174
+ import('@refrakt-md/runes'),
175
+ import('@refrakt-md/transform'),
176
+ import('@refrakt-md/theme-base'),
177
+ import('@markdoc/markdoc'),
178
+ ]).then(([{ inspectCommand }, { runes, tags, nodes, serializeTree, extractHeadings }, { createTransform, renderToHtml, extractSelectors }, { baseConfig }, markdocModule,]) => {
179
+ const Markdoc = markdocModule.default ?? markdocModule;
180
+ return inspectCommand({ runeName, list, json, audit, all, cssDir, theme, items, flags }, { Markdoc, runes, tags, nodes, serializeTree, extractHeadings, createTransform, renderToHtml, extractSelectors, baseConfig });
181
+ }).catch((err) => {
182
+ console.error(`\nError: ${err.message}`);
183
+ process.exit(1);
184
+ });
185
+ }
46
186
  function runWrite(writeArgs) {
47
187
  let prompt;
48
188
  let output;
189
+ let outputDir;
49
190
  let providerName;
50
191
  let model;
51
192
  for (let i = 0; i < writeArgs.length; i++) {
@@ -57,6 +198,13 @@ function runWrite(writeArgs) {
57
198
  process.exit(1);
58
199
  }
59
200
  }
201
+ else if (arg === '--output-dir' || arg === '-d') {
202
+ outputDir = writeArgs[++i];
203
+ if (!outputDir) {
204
+ console.error('Error: --output-dir requires a directory path');
205
+ process.exit(1);
206
+ }
207
+ }
60
208
  else if (arg === '--provider' || arg === '-p') {
61
209
  providerName = writeArgs[++i];
62
210
  if (!providerName) {
@@ -94,6 +242,10 @@ function runWrite(writeArgs) {
94
242
  printUsage();
95
243
  process.exit(1);
96
244
  }
245
+ if (output && outputDir) {
246
+ console.error('Error: --output and --output-dir are mutually exclusive\n');
247
+ process.exit(1);
248
+ }
97
249
  // Dynamic imports to avoid loading @refrakt-md/runes at parse time
98
250
  // (markdoc CJS/ESM interop requires Node.js 22.12+ or a bundler)
99
251
  Promise.all([
@@ -108,7 +260,123 @@ function runWrite(writeArgs) {
108
260
  console.error(`\nError: ${err.message}`);
109
261
  process.exit(1);
110
262
  }
111
- return writeCommand({ prompt: prompt, provider: resolved.provider, model, output });
263
+ const modelName = model ?? resolved.defaultModel;
264
+ return writeCommand({ prompt: prompt, provider: resolved.provider, providerName: resolved.name, modelName, model, output, outputDir });
265
+ }).catch((err) => {
266
+ console.error(`\nError: ${err.message}`);
267
+ process.exit(1);
268
+ });
269
+ }
270
+ function runContracts(contractsArgs) {
271
+ let output;
272
+ let check = false;
273
+ for (let i = 0; i < contractsArgs.length; i++) {
274
+ const arg = contractsArgs[i];
275
+ if (arg === '--output' || arg === '-o') {
276
+ output = contractsArgs[++i];
277
+ if (!output) {
278
+ console.error('Error: --output requires a file path');
279
+ process.exit(1);
280
+ }
281
+ }
282
+ else if (arg === '--check') {
283
+ check = true;
284
+ }
285
+ else if (arg === '--help' || arg === '-h') {
286
+ printUsage();
287
+ process.exit(0);
288
+ }
289
+ else if (arg.startsWith('-')) {
290
+ console.error(`Error: Unknown flag "${arg}"\n`);
291
+ printUsage();
292
+ process.exit(1);
293
+ }
294
+ else {
295
+ console.error(`Error: Unexpected argument "${arg}"\n`);
296
+ printUsage();
297
+ process.exit(1);
298
+ }
299
+ }
300
+ import('./commands/contracts.js').then(({ contractsCommand }) => {
301
+ contractsCommand({ output, check });
302
+ }).catch((err) => {
303
+ console.error(`\nError: ${err.message}`);
304
+ process.exit(1);
305
+ });
306
+ }
307
+ function runScaffoldCss(scaffoldArgs) {
308
+ let outputDir = './styles/runes';
309
+ let force = false;
310
+ for (let i = 0; i < scaffoldArgs.length; i++) {
311
+ const arg = scaffoldArgs[i];
312
+ if (arg === '--output-dir' || arg === '-d') {
313
+ outputDir = scaffoldArgs[++i];
314
+ if (!outputDir) {
315
+ console.error('Error: --output-dir requires a directory path');
316
+ process.exit(1);
317
+ }
318
+ }
319
+ else if (arg === '--force') {
320
+ force = true;
321
+ }
322
+ else if (arg === '--help' || arg === '-h') {
323
+ printUsage();
324
+ process.exit(0);
325
+ }
326
+ else if (arg.startsWith('-')) {
327
+ console.error(`Error: Unknown flag "${arg}"\n`);
328
+ printUsage();
329
+ process.exit(1);
330
+ }
331
+ else {
332
+ console.error(`Error: Unexpected argument "${arg}"\n`);
333
+ printUsage();
334
+ process.exit(1);
335
+ }
336
+ }
337
+ import('./commands/scaffold-css.js').then(({ scaffoldCssCommand }) => {
338
+ scaffoldCssCommand({ outputDir, force });
339
+ }).catch((err) => {
340
+ console.error(`\nError: ${err.message}`);
341
+ process.exit(1);
342
+ });
343
+ }
344
+ function runValidate(validateArgs) {
345
+ let configPath;
346
+ let manifestPath;
347
+ for (let i = 0; i < validateArgs.length; i++) {
348
+ const arg = validateArgs[i];
349
+ if (arg === '--config') {
350
+ configPath = validateArgs[++i];
351
+ if (!configPath) {
352
+ console.error('Error: --config requires a file path');
353
+ process.exit(1);
354
+ }
355
+ }
356
+ else if (arg === '--manifest') {
357
+ manifestPath = validateArgs[++i];
358
+ if (!manifestPath) {
359
+ console.error('Error: --manifest requires a file path');
360
+ process.exit(1);
361
+ }
362
+ }
363
+ else if (arg === '--help' || arg === '-h') {
364
+ printUsage();
365
+ process.exit(0);
366
+ }
367
+ else if (arg.startsWith('-')) {
368
+ console.error(`Error: Unknown flag "${arg}"\n`);
369
+ printUsage();
370
+ process.exit(1);
371
+ }
372
+ else {
373
+ console.error(`Error: Unexpected argument "${arg}"\n`);
374
+ printUsage();
375
+ process.exit(1);
376
+ }
377
+ }
378
+ import('./commands/validate.js').then(({ validateCommand }) => {
379
+ validateCommand({ configPath, manifestPath });
112
380
  }).catch((err) => {
113
381
  console.error(`\nError: ${err.message}`);
114
382
  process.exit(1);
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export interface ContractsOptions {
2
+ output?: string;
3
+ check?: boolean;
4
+ }
5
+ export declare function contractsCommand(opts: ContractsOptions): void;
6
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/commands/contracts.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,gBAAgB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAqC7D"}
@@ -0,0 +1,41 @@
1
+ import { writeFileSync, readFileSync, existsSync, mkdirSync } from 'fs';
2
+ import { dirname, resolve } from 'path';
3
+ import { generateStructureContract } from '@refrakt-md/transform';
4
+ import { baseConfig } from '@refrakt-md/theme-base';
5
+ export function contractsCommand(opts) {
6
+ const contract = generateStructureContract(baseConfig);
7
+ const json = JSON.stringify(contract, null, '\t') + '\n';
8
+ if (opts.check) {
9
+ if (!opts.output) {
10
+ console.error('Error: --check requires --output to specify the file to validate against');
11
+ process.exit(1);
12
+ }
13
+ const target = resolve(opts.output);
14
+ if (!existsSync(target)) {
15
+ console.error(`FAIL: ${target} does not exist. Run without --check to generate it.`);
16
+ process.exit(1);
17
+ }
18
+ const existing = readFileSync(target, 'utf-8');
19
+ if (existing === json) {
20
+ console.log(`OK: ${target} is up to date (${Object.keys(contract.runes).length} runes)`);
21
+ }
22
+ else {
23
+ console.error(`FAIL: ${target} is out of date. Run \`refrakt contracts -o ${opts.output}\` to regenerate.`);
24
+ process.exit(1);
25
+ }
26
+ return;
27
+ }
28
+ if (opts.output) {
29
+ const target = resolve(opts.output);
30
+ const dir = dirname(target);
31
+ if (!existsSync(dir)) {
32
+ mkdirSync(dir, { recursive: true });
33
+ }
34
+ writeFileSync(target, json);
35
+ console.log(`Written ${target} (${Object.keys(contract.runes).length} runes)`);
36
+ }
37
+ else {
38
+ process.stdout.write(json);
39
+ }
40
+ }
41
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/commands/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOpD,MAAM,UAAU,gBAAgB,CAAC,IAAsB;IACtD,MAAM,QAAQ,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IAEzD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,sDAAsD,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,mBAAmB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,SAAS,MAAM,+CAA+C,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAC;YAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,OAAO;IACR,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC;IAChF,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;AACF,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Rune } from '@refrakt-md/runes';
2
+ import type { ThemeConfig } from '@refrakt-md/transform';
3
+ /** Dependencies injected at runtime via dynamic imports */
4
+ export interface InspectDeps {
5
+ Markdoc: {
6
+ parse: (source: string) => any;
7
+ transform: (ast: any, config: any) => any;
8
+ };
9
+ runes: Record<string, Rune>;
10
+ tags: Record<string, any>;
11
+ nodes: Record<string, any>;
12
+ serializeTree: (tree: any) => unknown;
13
+ extractHeadings: (ast: any) => any[];
14
+ createTransform: (config: ThemeConfig) => (tree: any) => any;
15
+ renderToHtml: (node: any, options?: {
16
+ pretty?: boolean;
17
+ }) => string;
18
+ extractSelectors: (node: any, prefix: string) => string[];
19
+ baseConfig: ThemeConfig;
20
+ }
21
+ export interface InspectOptions {
22
+ runeName?: string;
23
+ list: boolean;
24
+ json: boolean;
25
+ audit: boolean;
26
+ all: boolean;
27
+ theme: string;
28
+ items: number;
29
+ cssDir?: string;
30
+ flags: Record<string, string>;
31
+ }
32
+ export declare function inspectCommand(options: InspectOptions, deps: InspectDeps): Promise<void>;
33
+ //# sourceMappingURL=inspect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAyBzD,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC;QAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAA;KAAE,CAAC;IACvF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC;IACtC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,CAAC;IACrC,eAAe,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7D,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,MAAM,CAAC;IACpE,gBAAgB,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC1D,UAAU,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,wBAAsB,cAAc,CACnC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAyEf"}