@refrakt-md/cli 0.4.0 → 0.5.1

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 (87) hide show
  1. package/dist/bin.js +499 -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/edit.d.ts +8 -0
  8. package/dist/commands/edit.d.ts.map +1 -0
  9. package/dist/commands/edit.js +100 -0
  10. package/dist/commands/edit.js.map +1 -0
  11. package/dist/commands/extract.d.ts +10 -0
  12. package/dist/commands/extract.d.ts.map +1 -0
  13. package/dist/commands/extract.js +158 -0
  14. package/dist/commands/extract.js.map +1 -0
  15. package/dist/commands/inspect.d.ts +33 -0
  16. package/dist/commands/inspect.d.ts.map +1 -0
  17. package/dist/commands/inspect.js +269 -0
  18. package/dist/commands/inspect.js.map +1 -0
  19. package/dist/commands/scaffold-css.d.ts +6 -0
  20. package/dist/commands/scaffold-css.d.ts.map +1 -0
  21. package/dist/commands/scaffold-css.js +113 -0
  22. package/dist/commands/scaffold-css.js.map +1 -0
  23. package/dist/commands/theme.d.ts +10 -0
  24. package/dist/commands/theme.d.ts.map +1 -0
  25. package/dist/commands/theme.js +160 -0
  26. package/dist/commands/theme.js.map +1 -0
  27. package/dist/commands/validate.d.ts +6 -0
  28. package/dist/commands/validate.d.ts.map +1 -0
  29. package/dist/commands/validate.js +70 -0
  30. package/dist/commands/validate.js.map +1 -0
  31. package/dist/commands/write.d.ts +7 -0
  32. package/dist/commands/write.d.ts.map +1 -1
  33. package/dist/commands/write.js +66 -10
  34. package/dist/commands/write.js.map +1 -1
  35. package/dist/config-file.d.ts +15 -0
  36. package/dist/config-file.d.ts.map +1 -0
  37. package/dist/config-file.js +47 -0
  38. package/dist/config-file.js.map +1 -0
  39. package/dist/config.d.ts +2 -1
  40. package/dist/config.d.ts.map +1 -1
  41. package/dist/config.js +30 -2
  42. package/dist/config.js.map +1 -1
  43. package/dist/extractors/index.d.ts +3 -0
  44. package/dist/extractors/index.d.ts.map +1 -0
  45. package/dist/extractors/index.js +15 -0
  46. package/dist/extractors/index.js.map +1 -0
  47. package/dist/extractors/python.d.ts +6 -0
  48. package/dist/extractors/python.d.ts.map +1 -0
  49. package/dist/extractors/python.js +8 -0
  50. package/dist/extractors/python.js.map +1 -0
  51. package/dist/extractors/types.d.ts +55 -0
  52. package/dist/extractors/types.d.ts.map +1 -0
  53. package/dist/extractors/types.js +2 -0
  54. package/dist/extractors/types.js.map +1 -0
  55. package/dist/extractors/typescript.d.ts +28 -0
  56. package/dist/extractors/typescript.d.ts.map +1 -0
  57. package/dist/extractors/typescript.js +566 -0
  58. package/dist/extractors/typescript.js.map +1 -0
  59. package/dist/lib/css-audit.d.ts +23 -0
  60. package/dist/lib/css-audit.d.ts.map +1 -0
  61. package/dist/lib/css-audit.js +99 -0
  62. package/dist/lib/css-audit.js.map +1 -0
  63. package/dist/lib/css-resolve.d.ts +20 -0
  64. package/dist/lib/css-resolve.d.ts.map +1 -0
  65. package/dist/lib/css-resolve.js +57 -0
  66. package/dist/lib/css-resolve.js.map +1 -0
  67. package/dist/lib/fixtures.d.ts +10 -0
  68. package/dist/lib/fixtures.d.ts.map +1 -0
  69. package/dist/lib/fixtures.js +356 -0
  70. package/dist/lib/fixtures.js.map +1 -0
  71. package/dist/lib/format.d.ts +35 -0
  72. package/dist/lib/format.d.ts.map +1 -0
  73. package/dist/lib/format.js +215 -0
  74. package/dist/lib/format.js.map +1 -0
  75. package/dist/lib/layout-generator.d.ts +8 -0
  76. package/dist/lib/layout-generator.d.ts.map +1 -0
  77. package/dist/lib/layout-generator.js +22 -0
  78. package/dist/lib/layout-generator.js.map +1 -0
  79. package/dist/lib/symbol-generator.d.ts +14 -0
  80. package/dist/lib/symbol-generator.d.ts.map +1 -0
  81. package/dist/lib/symbol-generator.js +202 -0
  82. package/dist/lib/symbol-generator.js.map +1 -0
  83. package/dist/lib/variants.d.ts +17 -0
  84. package/dist/lib/variants.d.ts.map +1 -0
  85. package/dist/lib/variants.js +32 -0
  86. package/dist/lib/variants.js.map +1 -0
  87. package/package.json +9 -3
package/dist/bin.js CHANGED
@@ -8,6 +8,27 @@ 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
+ }
23
+ else if (command === 'theme') {
24
+ runTheme(args.slice(1));
25
+ }
26
+ else if (command === 'extract') {
27
+ runExtract(args.slice(1));
28
+ }
29
+ else if (command === 'edit') {
30
+ runEdit(args.slice(1));
31
+ }
11
32
  else if (command.startsWith('-')) {
12
33
  console.error(`Error: Unknown flag "${command}"\n`);
13
34
  printUsage();
@@ -23,29 +44,187 @@ function printUsage() {
23
44
  Usage: refrakt <command> [options]
24
45
 
25
46
  Commands:
26
- write <prompt> Generate a Markdown content file using AI
47
+ write <prompt> Generate a Markdown content file using AI
48
+ inspect <rune> Show identity transform output for a rune
49
+ contracts [options] Generate structure contracts from theme config
50
+ scaffold-css Generate CSS stub files for all runes
51
+ validate Validate theme config and manifest
52
+ theme <subcommand> Manage themes (install, info)
53
+ extract <path> Extract symbols from source code into {% symbol %} Markdown
54
+ edit Launch the browser-based content editor
27
55
 
28
56
  Write Options:
29
- --output, -o <path> Write output to file instead of stdout
30
- --provider, -p <name> Provider: anthropic, ollama (default: auto-detect)
57
+ --output, -o <path> Write output to a single file
58
+ --output-dir, -d <dir> Generate multiple files into a directory
59
+ --provider, -p <name> Provider: anthropic, gemini, ollama (default: auto-detect)
31
60
  --model, -m <name> Model name (default: per-provider)
32
61
  --help, -h Show this help message
33
62
 
63
+ Inspect Options:
64
+ --list List all available runes
65
+ --json Output as JSON
66
+ --audit Check CSS coverage for generated selectors
67
+ --all Audit all runes (use with --audit)
68
+ --css <dir> CSS directory for audit (auto-detected by default)
69
+ --theme <name> Theme to use (default: base)
70
+ --items <n> Number of repeated children (default: 3)
71
+ --<attr>=<value> Set a rune attribute (e.g., --type=warning)
72
+ --<attr>=all Expand all variants for that attribute
73
+
34
74
  Provider auto-detection:
35
75
  1. ANTHROPIC_API_KEY env var → Anthropic
36
- 2. OLLAMA_HOST env var → Ollama
37
- 3. Default → Ollama at localhost:11434
76
+ 2. GOOGLE_API_KEY env var → Gemini Flash
77
+ 3. OLLAMA_HOST env var → Ollama
78
+ 4. Default → Ollama at localhost:11434
79
+
80
+ Contracts Options:
81
+ --output, -o <path> Write contracts to a file (default: stdout)
82
+ --check Validate existing file is up to date (exit 1 if stale)
83
+
84
+ Scaffold-CSS Options:
85
+ --output-dir, -d <dir> Output directory (default: ./styles/runes)
86
+ --force Overwrite existing files
87
+
88
+ Validate Options:
89
+ --config <path> Path to theme config module (default: auto-detect)
90
+ --manifest <path> Path to manifest.json (default: auto-detect)
91
+
92
+ Theme Subcommands:
93
+ theme install <source> Install a theme (directory, .tgz, or npm package)
94
+ theme info Show current theme details
95
+
96
+ Extract Options:
97
+ --output, -o <path> Output directory for generated files (required)
98
+ --lang <language> Language: typescript, python (default: auto-detect)
99
+ --validate Check if generated files are up to date (exit 1 if stale)
100
+ --source-url <url> Base URL for source code links
101
+ --title <name> Navigation section title (default: "API Reference")
38
102
 
39
103
  Examples:
40
- refrakt write "Create a getting started guide"
41
- refrakt write -o content/docs/api.md "Write an API reference page"
104
+ refrakt inspect hint --type=warning
105
+ refrakt inspect hint --type=all
106
+ refrakt inspect api --method=POST --path="/users"
107
+ refrakt inspect --list
108
+ refrakt inspect --list --json
109
+ refrakt inspect hint --audit
110
+ refrakt inspect --all --audit
111
+ refrakt inspect hint --audit --css path/to/styles
112
+ refrakt write -d content/ "Set up a docs site with index, guides, and blog"
42
113
  refrakt write -p ollama -m llama3.2 "Write a FAQ page"
43
- ANTHROPIC_API_KEY=sk-... refrakt write "Create a landing page"
114
+ refrakt contracts -o packages/lumina/contracts/structures.json
115
+ refrakt contracts --check -o packages/lumina/contracts/structures.json
116
+ refrakt theme install ./my-theme
117
+ refrakt theme install @my-org/my-theme
118
+ refrakt theme info
119
+ refrakt extract ./src -o ./content/api
120
+ refrakt extract ./src -o ./content/api --source-url https://github.com/my/repo/blob/main/src
121
+ refrakt extract ./src -o ./content/api --validate
122
+ refrakt edit
123
+ refrakt edit --port 3000 --content-dir ./content
124
+ refrakt edit --dev-server http://localhost:5173
125
+
126
+ Edit Options:
127
+ --port, -p <number> Editor port (default: 4800)
128
+ --content-dir <dir> Content directory (default: from refrakt.config.json)
129
+ --dev-server <url> URL of running dev server for live preview
130
+ --no-open Don't auto-open browser
44
131
  `);
45
132
  }
133
+ function runInspect(inspectArgs) {
134
+ let runeName;
135
+ let list = false;
136
+ let json = false;
137
+ let audit = false;
138
+ let all = false;
139
+ let cssDir;
140
+ let theme = 'base';
141
+ let items = 3;
142
+ const flags = {};
143
+ for (let i = 0; i < inspectArgs.length; i++) {
144
+ const arg = inspectArgs[i];
145
+ if (arg === '--list') {
146
+ list = true;
147
+ }
148
+ else if (arg === '--json') {
149
+ json = true;
150
+ }
151
+ else if (arg === '--audit') {
152
+ audit = true;
153
+ }
154
+ else if (arg === '--all') {
155
+ all = true;
156
+ }
157
+ else if (arg === '--css') {
158
+ cssDir = inspectArgs[++i];
159
+ if (!cssDir) {
160
+ console.error('Error: --css requires a directory path');
161
+ process.exit(1);
162
+ }
163
+ }
164
+ else if (arg === '--theme') {
165
+ theme = inspectArgs[++i];
166
+ if (!theme) {
167
+ console.error('Error: --theme requires a value');
168
+ process.exit(1);
169
+ }
170
+ }
171
+ else if (arg === '--items') {
172
+ const val = inspectArgs[++i];
173
+ if (!val) {
174
+ console.error('Error: --items requires a number');
175
+ process.exit(1);
176
+ }
177
+ items = parseInt(val, 10);
178
+ }
179
+ else if (arg === '--help' || arg === '-h') {
180
+ printUsage();
181
+ process.exit(0);
182
+ }
183
+ else if (arg.startsWith('--') && arg.includes('=')) {
184
+ // --attr=value flags (rune-specific attributes)
185
+ const eqIdx = arg.indexOf('=');
186
+ const key = arg.slice(2, eqIdx);
187
+ const value = arg.slice(eqIdx + 1);
188
+ flags[key] = value;
189
+ }
190
+ else if (arg.startsWith('--')) {
191
+ // --attr value flags (rune-specific attributes)
192
+ const key = arg.slice(2);
193
+ const value = inspectArgs[++i];
194
+ if (!value) {
195
+ console.error(`Error: --${key} requires a value`);
196
+ process.exit(1);
197
+ }
198
+ flags[key] = value;
199
+ }
200
+ else if (!runeName) {
201
+ runeName = arg;
202
+ }
203
+ else {
204
+ console.error(`Error: Unexpected argument "${arg}"\n`);
205
+ printUsage();
206
+ process.exit(1);
207
+ }
208
+ }
209
+ // Dynamic imports to avoid loading heavy dependencies at parse time
210
+ Promise.all([
211
+ import('./commands/inspect.js'),
212
+ import('@refrakt-md/runes'),
213
+ import('@refrakt-md/transform'),
214
+ import('@refrakt-md/theme-base'),
215
+ import('@markdoc/markdoc'),
216
+ ]).then(([{ inspectCommand }, { runes, tags, nodes, serializeTree, extractHeadings }, { createTransform, renderToHtml, extractSelectors }, { baseConfig }, markdocModule,]) => {
217
+ const Markdoc = markdocModule.default ?? markdocModule;
218
+ return inspectCommand({ runeName, list, json, audit, all, cssDir, theme, items, flags }, { Markdoc, runes, tags, nodes, serializeTree, extractHeadings, createTransform, renderToHtml, extractSelectors, baseConfig });
219
+ }).catch((err) => {
220
+ console.error(`\nError: ${err.message}`);
221
+ process.exit(1);
222
+ });
223
+ }
46
224
  function runWrite(writeArgs) {
47
225
  let prompt;
48
226
  let output;
227
+ let outputDir;
49
228
  let providerName;
50
229
  let model;
51
230
  for (let i = 0; i < writeArgs.length; i++) {
@@ -57,6 +236,13 @@ function runWrite(writeArgs) {
57
236
  process.exit(1);
58
237
  }
59
238
  }
239
+ else if (arg === '--output-dir' || arg === '-d') {
240
+ outputDir = writeArgs[++i];
241
+ if (!outputDir) {
242
+ console.error('Error: --output-dir requires a directory path');
243
+ process.exit(1);
244
+ }
245
+ }
60
246
  else if (arg === '--provider' || arg === '-p') {
61
247
  providerName = writeArgs[++i];
62
248
  if (!providerName) {
@@ -94,6 +280,10 @@ function runWrite(writeArgs) {
94
280
  printUsage();
95
281
  process.exit(1);
96
282
  }
283
+ if (output && outputDir) {
284
+ console.error('Error: --output and --output-dir are mutually exclusive\n');
285
+ process.exit(1);
286
+ }
97
287
  // Dynamic imports to avoid loading @refrakt-md/runes at parse time
98
288
  // (markdoc CJS/ESM interop requires Node.js 22.12+ or a bundler)
99
289
  Promise.all([
@@ -108,7 +298,307 @@ function runWrite(writeArgs) {
108
298
  console.error(`\nError: ${err.message}`);
109
299
  process.exit(1);
110
300
  }
111
- return writeCommand({ prompt: prompt, provider: resolved.provider, model, output });
301
+ const modelName = model ?? resolved.defaultModel;
302
+ return writeCommand({ prompt: prompt, provider: resolved.provider, providerName: resolved.name, modelName, model, output, outputDir });
303
+ }).catch((err) => {
304
+ console.error(`\nError: ${err.message}`);
305
+ process.exit(1);
306
+ });
307
+ }
308
+ function runContracts(contractsArgs) {
309
+ let output;
310
+ let check = false;
311
+ for (let i = 0; i < contractsArgs.length; i++) {
312
+ const arg = contractsArgs[i];
313
+ if (arg === '--output' || arg === '-o') {
314
+ output = contractsArgs[++i];
315
+ if (!output) {
316
+ console.error('Error: --output requires a file path');
317
+ process.exit(1);
318
+ }
319
+ }
320
+ else if (arg === '--check') {
321
+ check = true;
322
+ }
323
+ else if (arg === '--help' || arg === '-h') {
324
+ printUsage();
325
+ process.exit(0);
326
+ }
327
+ else if (arg.startsWith('-')) {
328
+ console.error(`Error: Unknown flag "${arg}"\n`);
329
+ printUsage();
330
+ process.exit(1);
331
+ }
332
+ else {
333
+ console.error(`Error: Unexpected argument "${arg}"\n`);
334
+ printUsage();
335
+ process.exit(1);
336
+ }
337
+ }
338
+ import('./commands/contracts.js').then(({ contractsCommand }) => {
339
+ contractsCommand({ output, check });
340
+ }).catch((err) => {
341
+ console.error(`\nError: ${err.message}`);
342
+ process.exit(1);
343
+ });
344
+ }
345
+ function runScaffoldCss(scaffoldArgs) {
346
+ let outputDir = './styles/runes';
347
+ let force = false;
348
+ for (let i = 0; i < scaffoldArgs.length; i++) {
349
+ const arg = scaffoldArgs[i];
350
+ if (arg === '--output-dir' || arg === '-d') {
351
+ outputDir = scaffoldArgs[++i];
352
+ if (!outputDir) {
353
+ console.error('Error: --output-dir requires a directory path');
354
+ process.exit(1);
355
+ }
356
+ }
357
+ else if (arg === '--force') {
358
+ force = true;
359
+ }
360
+ else if (arg === '--help' || arg === '-h') {
361
+ printUsage();
362
+ process.exit(0);
363
+ }
364
+ else if (arg.startsWith('-')) {
365
+ console.error(`Error: Unknown flag "${arg}"\n`);
366
+ printUsage();
367
+ process.exit(1);
368
+ }
369
+ else {
370
+ console.error(`Error: Unexpected argument "${arg}"\n`);
371
+ printUsage();
372
+ process.exit(1);
373
+ }
374
+ }
375
+ import('./commands/scaffold-css.js').then(({ scaffoldCssCommand }) => {
376
+ scaffoldCssCommand({ outputDir, force });
377
+ }).catch((err) => {
378
+ console.error(`\nError: ${err.message}`);
379
+ process.exit(1);
380
+ });
381
+ }
382
+ function runValidate(validateArgs) {
383
+ let configPath;
384
+ let manifestPath;
385
+ for (let i = 0; i < validateArgs.length; i++) {
386
+ const arg = validateArgs[i];
387
+ if (arg === '--config') {
388
+ configPath = validateArgs[++i];
389
+ if (!configPath) {
390
+ console.error('Error: --config requires a file path');
391
+ process.exit(1);
392
+ }
393
+ }
394
+ else if (arg === '--manifest') {
395
+ manifestPath = validateArgs[++i];
396
+ if (!manifestPath) {
397
+ console.error('Error: --manifest requires a file path');
398
+ process.exit(1);
399
+ }
400
+ }
401
+ else if (arg === '--help' || arg === '-h') {
402
+ printUsage();
403
+ process.exit(0);
404
+ }
405
+ else if (arg.startsWith('-')) {
406
+ console.error(`Error: Unknown flag "${arg}"\n`);
407
+ printUsage();
408
+ process.exit(1);
409
+ }
410
+ else {
411
+ console.error(`Error: Unexpected argument "${arg}"\n`);
412
+ printUsage();
413
+ process.exit(1);
414
+ }
415
+ }
416
+ import('./commands/validate.js').then(({ validateCommand }) => {
417
+ validateCommand({ configPath, manifestPath });
418
+ }).catch((err) => {
419
+ console.error(`\nError: ${err.message}`);
420
+ process.exit(1);
421
+ });
422
+ }
423
+ function runTheme(themeArgs) {
424
+ const subcommand = themeArgs[0];
425
+ if (!subcommand || subcommand === '--help' || subcommand === '-h') {
426
+ console.log(`
427
+ Usage: refrakt theme <subcommand> [options]
428
+
429
+ Subcommands:
430
+ install <source> Install a theme (directory, .tgz, or npm package name)
431
+ info Show current theme details
432
+
433
+ Examples:
434
+ refrakt theme install ./my-theme
435
+ refrakt theme install @my-org/my-theme
436
+ refrakt theme info
437
+ `);
438
+ process.exit(subcommand ? 0 : 1);
439
+ }
440
+ if (subcommand === 'install') {
441
+ const source = themeArgs[1];
442
+ if (!source) {
443
+ console.error('Error: Missing source argument\n');
444
+ console.error('Usage: refrakt theme install <directory | .tgz | package-name>');
445
+ process.exit(1);
446
+ }
447
+ import('./commands/theme.js').then(({ themeInstallCommand }) => {
448
+ return themeInstallCommand({ source });
449
+ }).catch((err) => {
450
+ console.error(`\nError: ${err.message}`);
451
+ process.exit(1);
452
+ });
453
+ }
454
+ else if (subcommand === 'info') {
455
+ import('./commands/theme.js').then(({ themeInfoCommand }) => {
456
+ return themeInfoCommand({});
457
+ }).catch((err) => {
458
+ console.error(`\nError: ${err.message}`);
459
+ process.exit(1);
460
+ });
461
+ }
462
+ else {
463
+ console.error(`Error: Unknown theme subcommand "${subcommand}"\n`);
464
+ console.error('Available subcommands: install, info');
465
+ process.exit(1);
466
+ }
467
+ }
468
+ function runExtract(extractArgs) {
469
+ let input;
470
+ let output;
471
+ let lang;
472
+ let validate = false;
473
+ let sourceUrl;
474
+ let title;
475
+ for (let i = 0; i < extractArgs.length; i++) {
476
+ const arg = extractArgs[i];
477
+ if (arg === '--output' || arg === '-o') {
478
+ output = extractArgs[++i];
479
+ if (!output) {
480
+ console.error('Error: --output requires a path');
481
+ process.exit(1);
482
+ }
483
+ }
484
+ else if (arg === '--lang') {
485
+ lang = extractArgs[++i];
486
+ if (!lang) {
487
+ console.error('Error: --lang requires a value');
488
+ process.exit(1);
489
+ }
490
+ if (lang !== 'typescript' && lang !== 'python') {
491
+ console.error(`Error: Unsupported language "${lang}". Supported: typescript, python`);
492
+ process.exit(1);
493
+ }
494
+ }
495
+ else if (arg === '--validate') {
496
+ validate = true;
497
+ }
498
+ else if (arg === '--source-url') {
499
+ sourceUrl = extractArgs[++i];
500
+ if (!sourceUrl) {
501
+ console.error('Error: --source-url requires a URL');
502
+ process.exit(1);
503
+ }
504
+ }
505
+ else if (arg === '--title') {
506
+ title = extractArgs[++i];
507
+ if (!title) {
508
+ console.error('Error: --title requires a value');
509
+ process.exit(1);
510
+ }
511
+ }
512
+ else if (arg === '--help' || arg === '-h') {
513
+ printUsage();
514
+ process.exit(0);
515
+ }
516
+ else if (arg.startsWith('-')) {
517
+ console.error(`Error: Unknown flag "${arg}"\n`);
518
+ printUsage();
519
+ process.exit(1);
520
+ }
521
+ else if (!input) {
522
+ input = arg;
523
+ }
524
+ else {
525
+ console.error(`Error: Unexpected argument "${arg}"\n`);
526
+ printUsage();
527
+ process.exit(1);
528
+ }
529
+ }
530
+ if (!input) {
531
+ console.error('Error: Missing input path\n');
532
+ printUsage();
533
+ process.exit(1);
534
+ }
535
+ if (!output && !validate) {
536
+ console.error('Error: --output is required (or use --validate)\n');
537
+ process.exit(1);
538
+ }
539
+ import('./commands/extract.js').then(({ extractCommand }) => {
540
+ return extractCommand({
541
+ input: input,
542
+ output: output ?? './content/api',
543
+ lang: lang,
544
+ validate,
545
+ sourceUrl,
546
+ title,
547
+ });
548
+ }).catch((err) => {
549
+ console.error(`\nError: ${err.message}`);
550
+ process.exit(1);
551
+ });
552
+ }
553
+ function runEdit(editArgs) {
554
+ let port;
555
+ let contentDir;
556
+ let devServer;
557
+ let noOpen = false;
558
+ for (let i = 0; i < editArgs.length; i++) {
559
+ const arg = editArgs[i];
560
+ if (arg === '--port' || arg === '-p') {
561
+ const val = editArgs[++i];
562
+ if (!val) {
563
+ console.error('Error: --port requires a number');
564
+ process.exit(1);
565
+ }
566
+ port = parseInt(val, 10);
567
+ }
568
+ else if (arg === '--content-dir') {
569
+ contentDir = editArgs[++i];
570
+ if (!contentDir) {
571
+ console.error('Error: --content-dir requires a directory path');
572
+ process.exit(1);
573
+ }
574
+ }
575
+ else if (arg === '--dev-server') {
576
+ devServer = editArgs[++i];
577
+ if (!devServer) {
578
+ console.error('Error: --dev-server requires a URL');
579
+ process.exit(1);
580
+ }
581
+ }
582
+ else if (arg === '--no-open') {
583
+ noOpen = true;
584
+ }
585
+ else if (arg === '--help' || arg === '-h') {
586
+ printUsage();
587
+ process.exit(0);
588
+ }
589
+ else if (arg.startsWith('-')) {
590
+ console.error(`Error: Unknown flag "${arg}"\n`);
591
+ printUsage();
592
+ process.exit(1);
593
+ }
594
+ else {
595
+ console.error(`Error: Unexpected argument "${arg}"\n`);
596
+ printUsage();
597
+ process.exit(1);
598
+ }
599
+ }
600
+ import('./commands/edit.js').then(({ editCommand }) => {
601
+ return editCommand({ port, contentDir, devServer, noOpen });
112
602
  }).catch((err) => {
113
603
  console.error(`\nError: ${err.message}`);
114
604
  process.exit(1);
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;IAC1D,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;KAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IACpC,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,KAAK,CAAC,CAAC;IACpD,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;KAAM,CAAC;IACP,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,KAAK,CAAC,CAAC;IACvD,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,UAAU;IAClB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsBZ,CAAC,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,SAAmB;IACpC,IAAI,MAA0B,CAAC;IAC/B,IAAI,MAA0B,CAAC;IAC/B,IAAI,YAAgC,CAAC;IACrC,IAAI,KAAyB,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAEzB,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjD,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC9C,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC7C,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC;YAChD,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,CAAC;QACd,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,KAAK,CAAC,CAAC;YACvD,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,mEAAmE;IACnE,iEAAiE;IACjE,OAAO,CAAC,GAAG,CAAC;QACX,MAAM,CAAC,aAAa,CAAC;QACrB,MAAM,CAAC,qBAAqB,CAAC;KAC7B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE;QAClD,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACJ,QAAQ,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,YAAa,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,MAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,YAAa,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC"}
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,8 @@
1
+ export interface EditOptions {
2
+ port?: number;
3
+ contentDir?: string;
4
+ devServer?: string;
5
+ noOpen?: boolean;
6
+ }
7
+ export declare function editCommand(options: EditOptions): Promise<void>;
8
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCrE"}