incur 0.3.5 → 0.3.6
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.
- package/README.md +61 -0
- package/dist/Cli.d.ts +15 -0
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +207 -11
- package/dist/Cli.js.map +1 -1
- package/dist/Filter.js +0 -18
- package/dist/Filter.js.map +1 -1
- package/dist/Help.d.ts +4 -0
- package/dist/Help.d.ts.map +1 -1
- package/dist/Help.js +17 -14
- package/dist/Help.js.map +1 -1
- package/dist/Parser.d.ts +2 -0
- package/dist/Parser.d.ts.map +1 -1
- package/dist/Parser.js +69 -37
- package/dist/Parser.js.map +1 -1
- package/dist/bin.d.ts +1 -0
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +17 -2
- package/dist/bin.js.map +1 -1
- package/dist/internal/command.d.ts +2 -0
- package/dist/internal/command.d.ts.map +1 -1
- package/dist/internal/command.js +1 -0
- package/dist/internal/command.js.map +1 -1
- package/dist/internal/configSchema.d.ts +8 -0
- package/dist/internal/configSchema.d.ts.map +1 -0
- package/dist/internal/configSchema.js +57 -0
- package/dist/internal/configSchema.js.map +1 -0
- package/dist/internal/helpers.d.ts +5 -0
- package/dist/internal/helpers.d.ts.map +1 -0
- package/dist/internal/helpers.js +9 -0
- package/dist/internal/helpers.js.map +1 -0
- package/examples/npm/.npmrc.json +21 -0
- package/examples/npm/config.schema.json +137 -0
- package/package.json +1 -1
- package/src/Cli.test-d.ts +39 -0
- package/src/Cli.test.ts +554 -3
- package/src/Cli.ts +266 -11
- package/src/Filter.ts +0 -17
- package/src/Help.test.ts +66 -0
- package/src/Help.ts +20 -13
- package/src/Parser.test-d.ts +22 -0
- package/src/Parser.test.ts +89 -0
- package/src/Parser.ts +86 -35
- package/src/bin.ts +21 -2
- package/src/e2e.test.ts +1 -1
- package/src/internal/command.ts +3 -0
- package/src/internal/configSchema.test.ts +193 -0
- package/src/internal/configSchema.ts +66 -0
- package/src/internal/helpers.ts +9 -0
package/README.md
CHANGED
|
@@ -816,6 +816,67 @@ Every incur CLI includes these flags automatically:
|
|
|
816
816
|
| `--token-offset <n>` | Skip first n tokens of output (for pagination) |
|
|
817
817
|
| `--verbose` | Include full envelope (`ok`, `data`, `meta`) |
|
|
818
818
|
|
|
819
|
+
### Config file
|
|
820
|
+
|
|
821
|
+
Load option defaults from a JSON config file. Opt in with `config` on `Cli.create()`:
|
|
822
|
+
|
|
823
|
+
```ts
|
|
824
|
+
const cli = Cli.create('my-cli', {
|
|
825
|
+
config: {
|
|
826
|
+
flag: 'config',
|
|
827
|
+
files: ['my-cli.json', '~/.config/my-cli/config.json'],
|
|
828
|
+
},
|
|
829
|
+
})
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
- `flag` — registers `--config <path>` and `--no-config` as global flags. The flag name is configurable (`{ flag: 'settings' }` → `--settings`/`--no-settings`). Omit to auto-load only.
|
|
833
|
+
- `files` — ordered search paths. First existing file wins. Supports resolving `~`. Defaults to `['<cli>.json']`.
|
|
834
|
+
- `loader` — custom loader function for non-JSON formats. Receives the resolved path (or `undefined`) and returns the config tree:
|
|
835
|
+
|
|
836
|
+
```ts
|
|
837
|
+
const cli = Cli.create('my-cli', {
|
|
838
|
+
config: {
|
|
839
|
+
files: ['my-cli.toml'],
|
|
840
|
+
async loader(path) {
|
|
841
|
+
if (!path) return undefined
|
|
842
|
+
return TOML.parse(await readFile(path, 'utf8'))
|
|
843
|
+
},
|
|
844
|
+
},
|
|
845
|
+
})
|
|
846
|
+
```
|
|
847
|
+
|
|
848
|
+
Config files use a structured format with `options` and `commands` keys, mirroring the `Cli.create()` / `.command()` hierarchy:
|
|
849
|
+
|
|
850
|
+
```json
|
|
851
|
+
{
|
|
852
|
+
"options": {
|
|
853
|
+
"verbose": true
|
|
854
|
+
},
|
|
855
|
+
"commands": {
|
|
856
|
+
"echo": {
|
|
857
|
+
"options": {
|
|
858
|
+
"upper": true,
|
|
859
|
+
"prefix": "cfg"
|
|
860
|
+
}
|
|
861
|
+
},
|
|
862
|
+
"project": {
|
|
863
|
+
"commands": {
|
|
864
|
+
"list": {
|
|
865
|
+
"options": {
|
|
866
|
+
"limit": 25,
|
|
867
|
+
"save-dev": true
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
```
|
|
875
|
+
|
|
876
|
+
Precedence is `argv > config > zod defaults`. Only command `options` are loaded — `args`, `env`, and built-in commands are unaffected.
|
|
877
|
+
|
|
878
|
+
Use `incur gen` to auto-generate a `config.schema.json` to distribute with your CLI for consumer autocomplete.
|
|
879
|
+
|
|
819
880
|
### Filtering output
|
|
820
881
|
|
|
821
882
|
Use `--filter-output` to prune command output to specific keys. Supports dot-notation for nested keys, array slices, and comma-separated paths:
|
package/dist/Cli.d.ts
CHANGED
|
@@ -126,6 +126,15 @@ export declare namespace create {
|
|
|
126
126
|
aliases?: string[] | undefined;
|
|
127
127
|
/** Zod schema for positional arguments. */
|
|
128
128
|
args?: args | undefined;
|
|
129
|
+
/** Enable config-file defaults for command options. */
|
|
130
|
+
config?: {
|
|
131
|
+
/** Global flag name for specifying a config file path (e.g. `'config'` → `--config <path>`). Omit to auto-load only, with no CLI flag. */
|
|
132
|
+
flag?: string | undefined;
|
|
133
|
+
/** Ordered list of file paths to search. First existing file wins. Supports `~` for home dir. Defaults to `['<cli>.json']` relative to cwd. */
|
|
134
|
+
files?: string[] | undefined;
|
|
135
|
+
/** Custom config loader. Receives the resolved file path (or `undefined` if no file was found). Returns the parsed config tree, or `undefined` for no defaults. When omitted, the framework reads and parses JSON. */
|
|
136
|
+
loader?: ((path: string | undefined) => Record<string, unknown> | undefined | Promise<Record<string, unknown> | undefined>) | undefined;
|
|
137
|
+
} | undefined;
|
|
129
138
|
/** A short description of what the CLI does. */
|
|
130
139
|
description?: string | undefined;
|
|
131
140
|
/** Zod schema for environment variables. Keys are the variable names (e.g. `NPM_TOKEN`). */
|
|
@@ -245,6 +254,12 @@ type InternalFetchGateway = {
|
|
|
245
254
|
};
|
|
246
255
|
/** @internal Maps CLI instances to their command maps. */
|
|
247
256
|
export declare const toCommands: WeakMap<Cli<{}, undefined, undefined>, Map<string, CommandEntry>>;
|
|
257
|
+
/** @internal Maps root CLI instances to their command definitions. */
|
|
258
|
+
export declare const toRootDefinition: WeakMap<Root<_args, _options>, CommandDefinition<any, any, any, undefined, undefined, undefined>>;
|
|
259
|
+
/** @internal Maps CLI instances to their root options schema. */
|
|
260
|
+
export declare const toRootOptions: WeakMap<Cli<{}, undefined, undefined>, z.ZodObject<any, z.core.$strip>>;
|
|
261
|
+
/** @internal Maps CLI instances to whether config file loading is enabled. */
|
|
262
|
+
export declare const toConfigEnabled: WeakMap<Cli<{}, undefined, undefined>, boolean>;
|
|
248
263
|
/** @internal A CTA block with a description and list of suggested commands. */
|
|
249
264
|
type CtaBlock<commands extends CommandsMap = Commands> = {
|
|
250
265
|
/** Commands to suggest. */
|
package/dist/Cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
package/dist/Cli.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as os from 'node:os';
|
|
3
|
+
import * as path from 'node:path';
|
|
1
4
|
import { estimateTokenCount, sliceByTokens } from 'tokenx';
|
|
2
5
|
import * as Completions from './Completions.js';
|
|
3
|
-
import { IncurError, ValidationError } from './Errors.js';
|
|
6
|
+
import { IncurError, ParseError, ValidationError } from './Errors.js';
|
|
4
7
|
import * as Fetch from './Fetch.js';
|
|
5
8
|
import * as Filter from './Filter.js';
|
|
6
9
|
import * as Formatter from './Formatter.js';
|
|
7
10
|
import * as Help from './Help.js';
|
|
8
11
|
import { builtinCommands, shells } from './internal/command.js';
|
|
9
12
|
import * as Command from './internal/command.js';
|
|
13
|
+
import { isRecord } from './internal/helpers.js';
|
|
10
14
|
import { detectRunner } from './internal/pm.js';
|
|
11
15
|
import * as Mcp from './Mcp.js';
|
|
12
16
|
import * as Openapi from './Openapi.js';
|
|
@@ -93,6 +97,7 @@ export function create(nameOrDefinition, definition) {
|
|
|
93
97
|
return serveImpl(name, commands, argv, {
|
|
94
98
|
...serveOptions,
|
|
95
99
|
aliases: def.aliases,
|
|
100
|
+
config: def.config,
|
|
96
101
|
description: def.description,
|
|
97
102
|
envSchema: def.env,
|
|
98
103
|
format: def.format,
|
|
@@ -113,6 +118,10 @@ export function create(nameOrDefinition, definition) {
|
|
|
113
118
|
};
|
|
114
119
|
if (rootDef)
|
|
115
120
|
toRootDefinition.set(cli, rootDef);
|
|
121
|
+
if (def.options)
|
|
122
|
+
toRootOptions.set(cli, def.options);
|
|
123
|
+
if (def.config !== undefined)
|
|
124
|
+
toConfigEnabled.set(cli, true);
|
|
116
125
|
if (def.outputPolicy)
|
|
117
126
|
toOutputPolicy.set(cli, def.outputPolicy);
|
|
118
127
|
toMiddlewares.set(cli, middlewares);
|
|
@@ -124,7 +133,26 @@ export function create(nameOrDefinition, definition) {
|
|
|
124
133
|
async function serveImpl(name, commands, argv, options = {}) {
|
|
125
134
|
const stdout = options.stdout ?? ((s) => process.stdout.write(s));
|
|
126
135
|
const exit = options.exit ?? ((code) => process.exit(code));
|
|
127
|
-
const
|
|
136
|
+
const human = process.stdout.isTTY === true;
|
|
137
|
+
const configEnabled = options.config !== undefined;
|
|
138
|
+
const configFlag = options.config?.flag;
|
|
139
|
+
function writeln(s) {
|
|
140
|
+
stdout(s.endsWith('\n') ? s : `${s}\n`);
|
|
141
|
+
}
|
|
142
|
+
let builtinFlags;
|
|
143
|
+
try {
|
|
144
|
+
builtinFlags = extractBuiltinFlags(argv, { configFlag });
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
148
|
+
if (human)
|
|
149
|
+
writeln(formatHumanError({ code: 'UNKNOWN', message }));
|
|
150
|
+
else
|
|
151
|
+
writeln(Formatter.format({ code: 'UNKNOWN', message }, 'toon'));
|
|
152
|
+
exit(1);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const { verbose, format: formatFlag, formatExplicit, filterOutput, tokenLimit, tokenOffset, tokenCount, llms, llmsFull, mcp: mcpFlag, help, version, schema, configPath, configDisabled, rest: filtered, } = builtinFlags;
|
|
128
156
|
// --mcp: start as MCP stdio server
|
|
129
157
|
if (mcpFlag) {
|
|
130
158
|
await Mcp.serve(name, options.version ?? '0.0.0', commands, {
|
|
@@ -176,11 +204,6 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
176
204
|
}
|
|
177
205
|
return;
|
|
178
206
|
}
|
|
179
|
-
// Human mode: stdout is a TTY.
|
|
180
|
-
const human = process.stdout.isTTY === true;
|
|
181
|
-
function writeln(s) {
|
|
182
|
-
stdout(s.endsWith('\n') ? s : `${s}\n`);
|
|
183
|
-
}
|
|
184
207
|
// Skills staleness check (skip for built-in commands)
|
|
185
208
|
if (!llms && !llmsFull && !schema && !help && !version) {
|
|
186
209
|
const isSkillsAdd = filtered[0] === 'skills' || (filtered[0] === name && filtered[1] === 'skills');
|
|
@@ -412,6 +435,7 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
412
435
|
writeln(Help.formatCommand(name, {
|
|
413
436
|
alias: cmd.alias,
|
|
414
437
|
aliases: options.aliases,
|
|
438
|
+
configFlag,
|
|
415
439
|
description: cmd.description ?? options.description,
|
|
416
440
|
version: options.version,
|
|
417
441
|
args: cmd.args,
|
|
@@ -432,6 +456,7 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
432
456
|
else {
|
|
433
457
|
writeln(Help.formatRoot(name, {
|
|
434
458
|
aliases: options.aliases,
|
|
459
|
+
configFlag,
|
|
435
460
|
description: options.description,
|
|
436
461
|
version: options.version,
|
|
437
462
|
commands: collectHelpCommands(commands),
|
|
@@ -474,6 +499,7 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
474
499
|
writeln(Help.formatCommand(name, {
|
|
475
500
|
alias: cmd.alias,
|
|
476
501
|
aliases: options.aliases,
|
|
502
|
+
configFlag,
|
|
477
503
|
description: cmd.description ?? options.description,
|
|
478
504
|
version: options.version,
|
|
479
505
|
args: cmd.args,
|
|
@@ -490,6 +516,7 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
490
516
|
else {
|
|
491
517
|
writeln(Help.formatRoot(helpName, {
|
|
492
518
|
aliases: isRoot ? options.aliases : undefined,
|
|
519
|
+
configFlag,
|
|
493
520
|
description: helpDesc,
|
|
494
521
|
version: isRoot ? options.version : undefined,
|
|
495
522
|
commands: collectHelpCommands(helpCmds),
|
|
@@ -507,6 +534,7 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
507
534
|
writeln(Help.formatCommand(commandName, {
|
|
508
535
|
alias: cmd.alias,
|
|
509
536
|
aliases: isRootCmd ? options.aliases : undefined,
|
|
537
|
+
configFlag,
|
|
510
538
|
description: cmd.description,
|
|
511
539
|
version: isRootCmd ? options.version : undefined,
|
|
512
540
|
args: cmd.args,
|
|
@@ -526,6 +554,7 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
526
554
|
if (schema) {
|
|
527
555
|
if ('help' in resolved) {
|
|
528
556
|
writeln(Help.formatRoot(`${name} ${resolved.path}`, {
|
|
557
|
+
configFlag,
|
|
529
558
|
description: resolved.description,
|
|
530
559
|
commands: collectHelpCommands(resolved.commands),
|
|
531
560
|
}));
|
|
@@ -558,6 +587,7 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
558
587
|
}
|
|
559
588
|
if ('help' in resolved) {
|
|
560
589
|
writeln(Help.formatRoot(`${name} ${resolved.path}`, {
|
|
590
|
+
configFlag,
|
|
561
591
|
description: resolved.description,
|
|
562
592
|
commands: collectHelpCommands(resolved.commands),
|
|
563
593
|
}));
|
|
@@ -817,9 +847,33 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
817
847
|
];
|
|
818
848
|
if (human)
|
|
819
849
|
emitDeprecationWarnings(rest, command.options, command.alias);
|
|
850
|
+
let defaults;
|
|
851
|
+
if (configEnabled) {
|
|
852
|
+
try {
|
|
853
|
+
defaults = await loadCommandOptionDefaults(name, path, {
|
|
854
|
+
configDisabled,
|
|
855
|
+
configPath,
|
|
856
|
+
files: options.config?.files,
|
|
857
|
+
loader: options.config?.loader,
|
|
858
|
+
});
|
|
859
|
+
}
|
|
860
|
+
catch (error) {
|
|
861
|
+
write({
|
|
862
|
+
ok: false,
|
|
863
|
+
error: {
|
|
864
|
+
code: error instanceof IncurError ? error.code : 'UNKNOWN',
|
|
865
|
+
message: error instanceof Error ? error.message : String(error),
|
|
866
|
+
},
|
|
867
|
+
meta: { command: path, duration: `${Math.round(performance.now() - start)}ms` },
|
|
868
|
+
});
|
|
869
|
+
exit(error instanceof IncurError ? (error.exitCode ?? 1) : 1);
|
|
870
|
+
return;
|
|
871
|
+
}
|
|
872
|
+
}
|
|
820
873
|
const result = await Command.execute(command, {
|
|
821
874
|
agent: !human,
|
|
822
875
|
argv: rest,
|
|
876
|
+
defaults,
|
|
823
877
|
env: options.envSchema,
|
|
824
878
|
envSource: options.env,
|
|
825
879
|
format,
|
|
@@ -868,7 +922,7 @@ async function serveImpl(name, commands, argv, options = {}) {
|
|
|
868
922
|
writeln(formatHumanValidationError(name, path, command, new ValidationError({
|
|
869
923
|
message: result.error.message,
|
|
870
924
|
fieldErrors: result.error.fieldErrors,
|
|
871
|
-
}), options.env));
|
|
925
|
+
}), options.env, configFlag));
|
|
872
926
|
exit(1);
|
|
873
927
|
return;
|
|
874
928
|
}
|
|
@@ -1126,7 +1180,7 @@ async function executeCommand(path, command, rest, inputOptions, start, options)
|
|
|
1126
1180
|
}, 200);
|
|
1127
1181
|
}
|
|
1128
1182
|
/** @internal Formats a validation error for TTY with usage hint. */
|
|
1129
|
-
function formatHumanValidationError(cli, path, command, error, envSource) {
|
|
1183
|
+
function formatHumanValidationError(cli, path, command, error, envSource, configFlag) {
|
|
1130
1184
|
const lines = [];
|
|
1131
1185
|
for (const fe of error.fieldErrors)
|
|
1132
1186
|
lines.push(`Error: missing required argument <${fe.path}>`);
|
|
@@ -1134,6 +1188,7 @@ function formatHumanValidationError(cli, path, command, error, envSource) {
|
|
|
1134
1188
|
lines.push('');
|
|
1135
1189
|
lines.push(Help.formatCommand(path === cli ? cli : `${cli} ${path}`, {
|
|
1136
1190
|
alias: command.alias,
|
|
1191
|
+
configFlag,
|
|
1137
1192
|
description: command.description,
|
|
1138
1193
|
args: command.args,
|
|
1139
1194
|
env: command.env,
|
|
@@ -1207,7 +1262,7 @@ function resolveCommand(commands, tokens) {
|
|
|
1207
1262
|
};
|
|
1208
1263
|
}
|
|
1209
1264
|
/** @internal Extracts built-in flags (--verbose, --format, --json, --llms, --help, --version) from argv. */
|
|
1210
|
-
function extractBuiltinFlags(argv) {
|
|
1265
|
+
function extractBuiltinFlags(argv, options = {}) {
|
|
1211
1266
|
let verbose = false;
|
|
1212
1267
|
let llms = false;
|
|
1213
1268
|
let llmsFull = false;
|
|
@@ -1217,11 +1272,16 @@ function extractBuiltinFlags(argv) {
|
|
|
1217
1272
|
let schema = false;
|
|
1218
1273
|
let format = 'toon';
|
|
1219
1274
|
let formatExplicit = false;
|
|
1275
|
+
let configPath;
|
|
1276
|
+
let configDisabled = false;
|
|
1220
1277
|
let filterOutput;
|
|
1221
1278
|
let tokenLimit;
|
|
1222
1279
|
let tokenOffset;
|
|
1223
1280
|
let tokenCount = false;
|
|
1224
1281
|
const rest = [];
|
|
1282
|
+
const cfgFlag = options.configFlag ? `--${options.configFlag}` : undefined;
|
|
1283
|
+
const cfgFlagEq = options.configFlag ? `--${options.configFlag}=` : undefined;
|
|
1284
|
+
const noCfgFlag = options.configFlag ? `--no-${options.configFlag}` : undefined;
|
|
1225
1285
|
for (let i = 0; i < argv.length; i++) {
|
|
1226
1286
|
const token = argv[i];
|
|
1227
1287
|
if (token === '--verbose')
|
|
@@ -1247,6 +1307,25 @@ function extractBuiltinFlags(argv) {
|
|
|
1247
1307
|
formatExplicit = true;
|
|
1248
1308
|
i++;
|
|
1249
1309
|
}
|
|
1310
|
+
else if (cfgFlag && token === cfgFlag) {
|
|
1311
|
+
const value = argv[i + 1];
|
|
1312
|
+
if (value === undefined)
|
|
1313
|
+
throw new ParseError({ message: `Missing value for flag: ${cfgFlag}` });
|
|
1314
|
+
configPath = value;
|
|
1315
|
+
configDisabled = false;
|
|
1316
|
+
i++;
|
|
1317
|
+
}
|
|
1318
|
+
else if (cfgFlagEq && token.startsWith(cfgFlagEq)) {
|
|
1319
|
+
const value = token.slice(cfgFlagEq.length);
|
|
1320
|
+
if (value.length === 0)
|
|
1321
|
+
throw new ParseError({ message: `Missing value for flag: ${cfgFlag}` });
|
|
1322
|
+
configPath = value;
|
|
1323
|
+
configDisabled = false;
|
|
1324
|
+
}
|
|
1325
|
+
else if (noCfgFlag && token === noCfgFlag) {
|
|
1326
|
+
configPath = undefined;
|
|
1327
|
+
configDisabled = true;
|
|
1328
|
+
}
|
|
1250
1329
|
else if (token === '--filter-output' && argv[i + 1]) {
|
|
1251
1330
|
filterOutput = argv[i + 1];
|
|
1252
1331
|
i++;
|
|
@@ -1268,6 +1347,8 @@ function extractBuiltinFlags(argv) {
|
|
|
1268
1347
|
verbose,
|
|
1269
1348
|
format,
|
|
1270
1349
|
formatExplicit,
|
|
1350
|
+
configPath,
|
|
1351
|
+
configDisabled,
|
|
1271
1352
|
filterOutput,
|
|
1272
1353
|
tokenLimit,
|
|
1273
1354
|
tokenOffset,
|
|
@@ -1281,6 +1362,117 @@ function extractBuiltinFlags(argv) {
|
|
|
1281
1362
|
rest,
|
|
1282
1363
|
};
|
|
1283
1364
|
}
|
|
1365
|
+
/** @internal Loads config-backed option defaults for the active command. */
|
|
1366
|
+
async function loadCommandOptionDefaults(cli, path, options = {}) {
|
|
1367
|
+
if (options.configDisabled)
|
|
1368
|
+
return undefined;
|
|
1369
|
+
const { loader } = options;
|
|
1370
|
+
// Resolve the target file path
|
|
1371
|
+
let targetPath;
|
|
1372
|
+
if (options.configPath) {
|
|
1373
|
+
targetPath = resolveConfigPath(options.configPath);
|
|
1374
|
+
}
|
|
1375
|
+
else {
|
|
1376
|
+
const searchPaths = options.files ?? [`${cli}.json`];
|
|
1377
|
+
targetPath = await findFirstExisting(searchPaths);
|
|
1378
|
+
}
|
|
1379
|
+
// Load and parse the config
|
|
1380
|
+
let parsed;
|
|
1381
|
+
if (loader) {
|
|
1382
|
+
const result = await loader(targetPath);
|
|
1383
|
+
if (result === undefined)
|
|
1384
|
+
return undefined;
|
|
1385
|
+
if (!isRecord(result))
|
|
1386
|
+
throw new ParseError({ message: 'Config loader must return a plain object or undefined' });
|
|
1387
|
+
parsed = result;
|
|
1388
|
+
}
|
|
1389
|
+
else {
|
|
1390
|
+
if (!targetPath)
|
|
1391
|
+
return undefined;
|
|
1392
|
+
const result = await readJsonConfig(targetPath, !!options.configPath);
|
|
1393
|
+
if (!result)
|
|
1394
|
+
return undefined;
|
|
1395
|
+
parsed = result;
|
|
1396
|
+
}
|
|
1397
|
+
// Extract the command section from the config tree
|
|
1398
|
+
return extractCommandSection(parsed, cli, path);
|
|
1399
|
+
}
|
|
1400
|
+
/** @internal Resolves a config file path, expanding `~` to home dir. */
|
|
1401
|
+
function resolveConfigPath(filePath) {
|
|
1402
|
+
if (filePath.startsWith('~/') || filePath === '~') {
|
|
1403
|
+
return path.join(os.homedir(), filePath.slice(1));
|
|
1404
|
+
}
|
|
1405
|
+
return path.resolve(process.cwd(), filePath);
|
|
1406
|
+
}
|
|
1407
|
+
/** @internal Returns the first readable file from a list of paths, or `undefined`. */
|
|
1408
|
+
async function findFirstExisting(paths) {
|
|
1409
|
+
for (const p of paths) {
|
|
1410
|
+
const resolved = resolveConfigPath(p);
|
|
1411
|
+
try {
|
|
1412
|
+
await fs.access(resolved, fs.constants.R_OK);
|
|
1413
|
+
return resolved;
|
|
1414
|
+
}
|
|
1415
|
+
catch { }
|
|
1416
|
+
}
|
|
1417
|
+
return undefined;
|
|
1418
|
+
}
|
|
1419
|
+
/** @internal Reads and parses a JSON config file. */
|
|
1420
|
+
async function readJsonConfig(targetPath, explicit) {
|
|
1421
|
+
let raw;
|
|
1422
|
+
try {
|
|
1423
|
+
raw = await fs.readFile(targetPath, 'utf8');
|
|
1424
|
+
}
|
|
1425
|
+
catch (error) {
|
|
1426
|
+
if (error.code === 'ENOENT') {
|
|
1427
|
+
if (explicit)
|
|
1428
|
+
throw new ParseError({ message: `Config file not found: ${targetPath}` });
|
|
1429
|
+
return undefined;
|
|
1430
|
+
}
|
|
1431
|
+
throw error;
|
|
1432
|
+
}
|
|
1433
|
+
let parsed;
|
|
1434
|
+
try {
|
|
1435
|
+
parsed = JSON.parse(raw);
|
|
1436
|
+
}
|
|
1437
|
+
catch (error) {
|
|
1438
|
+
throw new ParseError({
|
|
1439
|
+
message: `Invalid JSON config file: ${targetPath}`,
|
|
1440
|
+
cause: error instanceof Error ? error : undefined,
|
|
1441
|
+
});
|
|
1442
|
+
}
|
|
1443
|
+
if (!isRecord(parsed))
|
|
1444
|
+
throw new ParseError({
|
|
1445
|
+
message: `Invalid config file: expected a top-level object in ${targetPath}`,
|
|
1446
|
+
});
|
|
1447
|
+
return parsed;
|
|
1448
|
+
}
|
|
1449
|
+
/** @internal Walks the nested config tree to extract option defaults for a command path. */
|
|
1450
|
+
function extractCommandSection(parsed, cli, path) {
|
|
1451
|
+
const segments = path === cli ? [] : path.split(' ');
|
|
1452
|
+
let node = parsed;
|
|
1453
|
+
for (const seg of segments) {
|
|
1454
|
+
if (!isRecord(node))
|
|
1455
|
+
return undefined;
|
|
1456
|
+
const commands = node.commands;
|
|
1457
|
+
if (!isRecord(commands))
|
|
1458
|
+
return undefined;
|
|
1459
|
+
node = commands[seg];
|
|
1460
|
+
if (node === undefined)
|
|
1461
|
+
return undefined;
|
|
1462
|
+
}
|
|
1463
|
+
if (!isRecord(node))
|
|
1464
|
+
throw new ParseError({
|
|
1465
|
+
message: `Invalid config section for '${path}': expected an object`,
|
|
1466
|
+
});
|
|
1467
|
+
const options = node.options;
|
|
1468
|
+
if (options === undefined)
|
|
1469
|
+
return undefined;
|
|
1470
|
+
if (!isRecord(options))
|
|
1471
|
+
throw new ParseError({
|
|
1472
|
+
message: `Invalid config 'options' for '${path}': expected an object`,
|
|
1473
|
+
});
|
|
1474
|
+
return Object.keys(options).length > 0 ? options : undefined;
|
|
1475
|
+
}
|
|
1284
1476
|
/** @internal Collects immediate child commands/groups for help output. */
|
|
1285
1477
|
function collectHelpCommands(commands) {
|
|
1286
1478
|
const result = [];
|
|
@@ -1339,7 +1531,11 @@ export const toCommands = new WeakMap();
|
|
|
1339
1531
|
/** @internal Maps CLI instances to their middleware arrays. */
|
|
1340
1532
|
const toMiddlewares = new WeakMap();
|
|
1341
1533
|
/** @internal Maps root CLI instances to their command definitions. */
|
|
1342
|
-
const toRootDefinition = new WeakMap();
|
|
1534
|
+
export const toRootDefinition = new WeakMap();
|
|
1535
|
+
/** @internal Maps CLI instances to their root options schema. */
|
|
1536
|
+
export const toRootOptions = new WeakMap();
|
|
1537
|
+
/** @internal Maps CLI instances to whether config file loading is enabled. */
|
|
1538
|
+
export const toConfigEnabled = new WeakMap();
|
|
1343
1539
|
/** @internal Maps CLI instances to their output policy. */
|
|
1344
1540
|
const toOutputPolicy = new WeakMap();
|
|
1345
1541
|
/** @internal Sentinel symbol for `ok()` and `error()` return values. */
|