@runa-cmd/core 0.1.0 → 0.2.0-beta.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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +69 -58
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +5 -3
- package/dist/lifecycle.js.map +1 -1
- package/dist/parse/adapters/zod-v4.d.ts +3 -0
- package/dist/parse/adapters/zod-v4.d.ts.map +1 -0
- package/dist/parse/adapters/zod-v4.js +103 -0
- package/dist/parse/adapters/zod-v4.js.map +1 -0
- package/dist/parse/parseargs-bridge.d.ts +10 -0
- package/dist/parse/parseargs-bridge.d.ts.map +1 -1
- package/dist/parse/parseargs-bridge.js +10 -0
- package/dist/parse/parseargs-bridge.js.map +1 -1
- package/dist/parse/resolve.d.ts +13 -0
- package/dist/parse/resolve.d.ts.map +1 -1
- package/dist/parse/resolve.js +26 -28
- package/dist/parse/resolve.js.map +1 -1
- package/dist/parse/schema-adapter.d.ts +40 -0
- package/dist/parse/schema-adapter.d.ts.map +1 -0
- package/dist/parse/schema-adapter.js +4 -0
- package/dist/parse/schema-adapter.js.map +1 -0
- package/dist/parse/schema-walker.d.ts +3 -3
- package/dist/parse/schema-walker.d.ts.map +1 -1
- package/dist/parse/schema-walker.js +12 -104
- package/dist/parse/schema-walker.js.map +1 -1
- package/dist/parse/strict.d.ts +21 -0
- package/dist/parse/strict.d.ts.map +1 -0
- package/dist/parse/strict.js +42 -0
- package/dist/parse/strict.js.map +1 -0
- package/dist/parse/variadic.d.ts +2 -1
- package/dist/parse/variadic.d.ts.map +1 -1
- package/dist/parse/variadic.js +4 -24
- package/dist/parse/variadic.js.map +1 -1
- package/dist/plugin.d.ts +31 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +138 -0
- package/dist/plugin.js.map +1 -1
- package/dist/suggest.d.ts +17 -0
- package/dist/suggest.d.ts.map +1 -0
- package/dist/suggest.js +55 -0
- package/dist/suggest.js.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EACX,GAAG,EACH,SAAS,EACT,OAAO,EAOP,MAAM,YAAY,CAAC;AAkdpB;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAShD;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E"}
|
package/dist/cli.js
CHANGED
|
@@ -18,60 +18,15 @@ import { createHookRegistry } from './lifecycle.js';
|
|
|
18
18
|
import { buildParseArgsConfig } from './parse/parseargs-bridge.js';
|
|
19
19
|
import { resolveValues } from './parse/resolve.js';
|
|
20
20
|
import { walkSchema } from './parse/schema-walker.js';
|
|
21
|
-
import {
|
|
21
|
+
import { assertKnownOptions } from './parse/strict.js';
|
|
22
|
+
import { resolvePlugins, runPluginCleanup, runPluginSetup, STATIC_GLOBAL_OPTION_SOURCE, topologicalSort, validateOptionCollisions, } from './plugin.js';
|
|
23
|
+
import { findSuggestion } from './suggest.js';
|
|
22
24
|
/**
|
|
23
25
|
* Check if a value is a Command (branded object).
|
|
24
26
|
*/
|
|
25
27
|
function isCommand(value) {
|
|
26
28
|
return '_type' in value && value._type === 'runa:command';
|
|
27
29
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Levenshtein distance for "did you mean" suggestions.
|
|
30
|
-
*/
|
|
31
|
-
function levenshtein(a, b) {
|
|
32
|
-
const rows = b.length + 1;
|
|
33
|
-
const cols = a.length + 1;
|
|
34
|
-
// Use a flat array for guaranteed index access without non-null assertions
|
|
35
|
-
const matrix = new Array(rows * cols).fill(0);
|
|
36
|
-
const at = (i, j) => matrix[i * cols + j] ?? 0;
|
|
37
|
-
const set = (i, j, v) => {
|
|
38
|
-
matrix[i * cols + j] = v;
|
|
39
|
-
};
|
|
40
|
-
for (let i = 0; i < rows; i++)
|
|
41
|
-
set(i, 0, i);
|
|
42
|
-
for (let j = 0; j < cols; j++)
|
|
43
|
-
set(0, j, j);
|
|
44
|
-
for (let i = 1; i < rows; i++) {
|
|
45
|
-
for (let j = 1; j < cols; j++) {
|
|
46
|
-
if (b[i - 1] === a[j - 1]) {
|
|
47
|
-
set(i, j, at(i - 1, j - 1));
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
set(i, j, Math.min(at(i - 1, j - 1) + 1, // substitution
|
|
51
|
-
at(i, j - 1) + 1, // insertion
|
|
52
|
-
at(i - 1, j) + 1));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return at(b.length, a.length);
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Find the best suggestion for a misspelled command name.
|
|
60
|
-
* Returns undefined if no close match exists (distance > 3).
|
|
61
|
-
*/
|
|
62
|
-
function findSuggestion(input, candidates) {
|
|
63
|
-
let best;
|
|
64
|
-
let bestDist = Infinity;
|
|
65
|
-
for (const candidate of candidates) {
|
|
66
|
-
const dist = levenshtein(input, candidate);
|
|
67
|
-
if (dist < bestDist) {
|
|
68
|
-
bestDist = dist;
|
|
69
|
-
best = candidate;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// Only suggest if reasonably close
|
|
73
|
-
return bestDist <= 3 ? best : undefined;
|
|
74
|
-
}
|
|
75
30
|
/**
|
|
76
31
|
* Resolve a command from the command tree by walking argv tokens.
|
|
77
32
|
* Supports nested subcommands.
|
|
@@ -149,6 +104,12 @@ async function runCLILifecycle(config, argv) {
|
|
|
149
104
|
};
|
|
150
105
|
const mutableMiddleware = [...(config.middleware ?? [])];
|
|
151
106
|
let sortedPlugins = [];
|
|
107
|
+
// Registrant per global option name (Decision 9): statically-declared
|
|
108
|
+
// globals are seeded here; plugin registrations append via addGlobalOption.
|
|
109
|
+
const globalOptionSources = new Map();
|
|
110
|
+
for (const name of Object.keys(mutableGlobalOptions)) {
|
|
111
|
+
globalOptionSources.set(name, [STATIC_GLOBAL_OPTION_SOURCE]);
|
|
112
|
+
}
|
|
152
113
|
// Hook context that grows as we progress through the lifecycle
|
|
153
114
|
const hookCtx = {
|
|
154
115
|
cli: config.meta,
|
|
@@ -169,13 +130,30 @@ async function runCLILifecycle(config, argv) {
|
|
|
169
130
|
middleware: mutableMiddleware,
|
|
170
131
|
hookRegister: (name, handler) => hookRegistry.register(name, handler),
|
|
171
132
|
getSchema: () => getSchema({ ...config, commands: mutableCommands }, mutableGlobalOptions, mutableGlobalMeta.options),
|
|
133
|
+
globalOptionSources,
|
|
172
134
|
};
|
|
173
135
|
await runPluginSetup(sortedPlugins, pluginRefs);
|
|
174
136
|
}
|
|
137
|
+
// ─── Option collision validation (Decision 9) ─────
|
|
138
|
+
// Post-plugin-setup is the earliest point where the full option
|
|
139
|
+
// surface (plugin globals + plugin commands) exists. Runs before
|
|
140
|
+
// any parsing on every invocation; throws RunaError OPTION_COLLISION.
|
|
141
|
+
validateOptionCollisions(mutableCommands, mutableGlobalOptions, mutableGlobalMeta, globalOptionSources);
|
|
175
142
|
// ─── beforeParse ──────────────────────────────────
|
|
176
143
|
await hookRegistry.emit('beforeParse', hookCtx);
|
|
177
144
|
// Handlers may have mutated hookCtx.rawArgs
|
|
178
145
|
const currentArgv = hookCtx.rawArgs;
|
|
146
|
+
// ─── Rest split (Decision 5) ──────────────────────
|
|
147
|
+
// Split at the FIRST `--`: `head` flows through the entire pipeline
|
|
148
|
+
// (global extraction → resolution → parseArgs → strict check), `rest`
|
|
149
|
+
// bypasses everything and lands verbatim on the run context. Because
|
|
150
|
+
// the global extractor below only ever sees `head`, a token like
|
|
151
|
+
// `--help` after `--` can never be stolen as a global flag.
|
|
152
|
+
// Only the first `--` splits; later `--` tokens are ordinary rest content.
|
|
153
|
+
const sepIdx = currentArgv.indexOf('--');
|
|
154
|
+
const head = sepIdx === -1 ? currentArgv : currentArgv.slice(0, sepIdx);
|
|
155
|
+
const rest = sepIdx === -1 ? [] : currentArgv.slice(sepIdx + 1);
|
|
156
|
+
hookCtx.rawArgs = head;
|
|
179
157
|
// ─── Parse global options ─────────────────────────
|
|
180
158
|
let parsedGlobalOptions = {};
|
|
181
159
|
if (Object.keys(mutableGlobalOptions).length > 0) {
|
|
@@ -205,12 +183,13 @@ async function runCLILifecycle(config, argv) {
|
|
|
205
183
|
for (const [alias, canonical] of Object.entries(longAliasMap)) {
|
|
206
184
|
longNames.set(`--${alias}`, canonical);
|
|
207
185
|
}
|
|
208
|
-
// Manual argv split: extract global option tokens, leave the rest
|
|
186
|
+
// Manual argv split: extract global option tokens, leave the rest.
|
|
187
|
+
// Operates on `head` only — post-`--` tokens are never candidates.
|
|
209
188
|
const globalArgv = [];
|
|
210
189
|
const commandArgv = [];
|
|
211
190
|
let i = 0;
|
|
212
|
-
while (i <
|
|
213
|
-
const token =
|
|
191
|
+
while (i < head.length) {
|
|
192
|
+
const token = head[i] ?? '';
|
|
214
193
|
// Handle --opt=val form
|
|
215
194
|
const eqIdx = token.indexOf('=');
|
|
216
195
|
const tokenKey = eqIdx > 0 ? token.slice(0, eqIdx) : token;
|
|
@@ -231,8 +210,8 @@ async function runCLILifecycle(config, argv) {
|
|
|
231
210
|
// --opt val — string option, extract both tokens
|
|
232
211
|
globalArgv.push(token);
|
|
233
212
|
i++;
|
|
234
|
-
if (i <
|
|
235
|
-
globalArgv.push(
|
|
213
|
+
if (i < head.length) {
|
|
214
|
+
globalArgv.push(head[i] ?? '');
|
|
236
215
|
i++;
|
|
237
216
|
}
|
|
238
217
|
}
|
|
@@ -273,11 +252,38 @@ async function runCLILifecycle(config, argv) {
|
|
|
273
252
|
hookCtx.command = command.meta;
|
|
274
253
|
// ─── Parse command args + options ──────────────────
|
|
275
254
|
const optionMetadata = command.options ? walkSchema(command.options) : [];
|
|
276
|
-
const { parseArgsConfig, longAliasMap } = buildParseArgsConfig(optionMetadata, command.meta.options, !!command.args);
|
|
255
|
+
const { parseArgsConfig, longAliasMap, knownKeys, booleanKeys } = buildParseArgsConfig(optionMetadata, command.meta.options, !!command.args);
|
|
277
256
|
const cmdParseResult = parseArgs({
|
|
278
257
|
...parseArgsConfig,
|
|
279
258
|
args: remainingArgv,
|
|
280
259
|
});
|
|
260
|
+
// ─── Strict options check ─────────────────────────
|
|
261
|
+
if (config.strictOptions !== false) {
|
|
262
|
+
// Command canonical names + long aliases (= keys of the parseArgs config)
|
|
263
|
+
const suggestionCandidates = Object.keys(parseArgsConfig.options ?? {});
|
|
264
|
+
// Globals are extracted before command parsing, but their names must
|
|
265
|
+
// still be known here: parseArgs maps a stray global short flag to its
|
|
266
|
+
// bare character, and typo'd globals should suggest the global name.
|
|
267
|
+
for (const name of Object.keys(mutableGlobalOptions)) {
|
|
268
|
+
knownKeys.add(name);
|
|
269
|
+
suggestionCandidates.push(name);
|
|
270
|
+
for (const alias of mutableGlobalMeta.options[name]?.alias ?? []) {
|
|
271
|
+
if (alias.startsWith('--')) {
|
|
272
|
+
knownKeys.add(alias.slice(2));
|
|
273
|
+
suggestionCandidates.push(alias.slice(2));
|
|
274
|
+
}
|
|
275
|
+
else if (alias.startsWith('-') && alias.length === 2) {
|
|
276
|
+
knownKeys.add(alias.slice(1));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
assertKnownOptions({
|
|
281
|
+
producedKeys: Object.keys(cmdParseResult.values),
|
|
282
|
+
knownKeys,
|
|
283
|
+
booleanKeys,
|
|
284
|
+
suggestionCandidates,
|
|
285
|
+
});
|
|
286
|
+
}
|
|
281
287
|
// Load config values if configured
|
|
282
288
|
let configValues;
|
|
283
289
|
if (config.config) {
|
|
@@ -309,6 +315,7 @@ async function runCLILifecycle(config, argv) {
|
|
|
309
315
|
globalOptions: parsedGlobalOptions,
|
|
310
316
|
command: command.meta,
|
|
311
317
|
rawArgs: argv,
|
|
318
|
+
rest,
|
|
312
319
|
};
|
|
313
320
|
const innerFn = async () => {
|
|
314
321
|
commandResult = await command.run(runContext);
|
|
@@ -329,8 +336,11 @@ async function runCLILifecycle(config, argv) {
|
|
|
329
336
|
try {
|
|
330
337
|
await hookRegistry.emit('onError', hookCtx);
|
|
331
338
|
}
|
|
332
|
-
catch {
|
|
333
|
-
//
|
|
339
|
+
catch (hookErr) {
|
|
340
|
+
// D8: log to stderr, never rethrow — a broken error handler must
|
|
341
|
+
// not prevent cleanup, but its own defect must not vanish either
|
|
342
|
+
// (spec 2.5). The ORIGINAL error still drives exit behavior below.
|
|
343
|
+
console.error('runa: onError handler threw:', hookErr);
|
|
334
344
|
}
|
|
335
345
|
// If error was not handled, fall back to default behavior
|
|
336
346
|
if (!hookCtx.handled) {
|
|
@@ -344,8 +354,9 @@ async function runCLILifecycle(config, argv) {
|
|
|
344
354
|
try {
|
|
345
355
|
await hookRegistry.emit('cleanup', hookCtx);
|
|
346
356
|
}
|
|
347
|
-
catch {
|
|
348
|
-
//
|
|
357
|
+
catch (hookErr) {
|
|
358
|
+
// D8: same treatment as onError — log the defect, keep cleaning up.
|
|
359
|
+
console.error('runa: cleanup hook threw:', hookErr);
|
|
349
360
|
}
|
|
350
361
|
// Plugin cleanup in reverse topological order
|
|
351
362
|
if (sortedPlugins.length > 0) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export { jsonLoader } from './config/loader.js';
|
|
|
10
10
|
export { CommandError, CommandNotFoundError, RunaError, ValidationError, } from './errors.js';
|
|
11
11
|
export { getSchema } from './introspect.js';
|
|
12
12
|
export { defineMiddleware } from './middleware.js';
|
|
13
|
+
export type { SchemaAdapter, SchemaDescription } from './parse/schema-adapter.js';
|
|
13
14
|
export { definePlugin } from './plugin.js';
|
|
14
15
|
export type { ArgSchema, CLI, CLIConfig, CLIConfigOptions, CLIMeta, CLISchema, Command, CommandConfig, CommandMeta, CommandSchema, CommandTree, ConfigLoader, HookContext, HookHandler, HookName, InferArgs, InferOptions, Middleware, MiddlewareContext, MiddlewareFn, OptionMeta, OptionSchema, ParamMetadata, ParamType, PluginAPI, PluginCapabilities, PluginConfig, PluginMeta, RunContext, RunReturn, } from './types.js';
|
|
15
16
|
export { HOOK_NAMES, PARAM_TYPES } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,eAAe,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,eAAe,GACf,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,YAAY,EACX,SAAS,EACT,GAAG,EACH,SAAS,EACT,gBAAgB,EAChB,OAAO,EAEP,SAAS,EAET,OAAO,EAEP,aAAa,EAEb,WAAW,EACX,aAAa,EACb,WAAW,EAEX,YAAY,EACZ,WAAW,EACX,WAAW,EAEX,QAAQ,EAER,SAAS,EACT,YAAY,EAEZ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,YAAY,EAEZ,aAAa,EACb,SAAS,EACT,SAAS,EACT,kBAAkB,EAElB,YAAY,EACZ,UAAU,EAEV,UAAU,EACV,SAAS,GACT,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,+DAA+D;AAC/D,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,eAAe,GACf,MAAM,aAAa,CAAC;AACrB,+DAA+D;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,+DAA+D;AAC/D,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,eAAe,GACf,MAAM,aAAa,CAAC;AACrB,+DAA+D;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA+C3C,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/lifecycle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIrE,MAAM,WAAW,UAAU;IAC1B,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IACrD,8DAA8D;IAC9D,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,8DAA8D;IAC9D,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,EAAE,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIrE,MAAM,WAAW,UAAU;IAC1B,6DAA6D;IAC7D,cAAc,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IACrD,8DAA8D;IAC9D,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,8DAA8D;IAC9D,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,EAAE,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAiEjD"}
|
package/dist/lifecycle.js
CHANGED
|
@@ -41,9 +41,11 @@ export function createHookRegistry() {
|
|
|
41
41
|
try {
|
|
42
42
|
await handler(context);
|
|
43
43
|
}
|
|
44
|
-
catch {
|
|
45
|
-
//
|
|
46
|
-
//
|
|
44
|
+
catch (err) {
|
|
45
|
+
// D8: never rethrown (all handlers must run), but the
|
|
46
|
+
// handler's own defect must not vanish — log to stderr.
|
|
47
|
+
// Plugin cleanup() errors are reported separately.
|
|
48
|
+
console.error('runa: cleanup hook threw:', err);
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
return { shortCircuited: false };
|
package/dist/lifecycle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AA0BA;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEpD,OAAO;QACN,QAAQ,CAAC,IAAc,EAAE,OAAoB;YAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;QACF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAc,EAAE,OAAoB;YAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC9B,kEAAkE;gBAClE,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,MAAM,mBAAmB,GAAgB;oBACxC,GAAG,OAAO;oBACV,YAAY,EAAE,GAAG,EAAE;wBAClB,eAAe,GAAG,IAAI,CAAC;oBACxB,CAAC;iBACD,CAAC;gBAEF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACpC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;oBACnC,IAAI,eAAe,EAAE,CAAC;wBACrB,cAAc,GAAG,IAAI,CAAC;wBACtB,MAAM;oBACP,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,cAAc,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,4DAA4D;gBAC5D,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACJ,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;oBAAC,
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AA0BA;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEpD,OAAO;QACN,QAAQ,CAAC,IAAc,EAAE,OAAoB;YAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;QACF,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAc,EAAE,OAAoB;YAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC9B,kEAAkE;gBAClE,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,MAAM,mBAAmB,GAAgB;oBACxC,GAAG,OAAO;oBACV,YAAY,EAAE,GAAG,EAAE;wBAClB,eAAe,GAAG,IAAI,CAAC;oBACxB,CAAC;iBACD,CAAC;gBAEF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACpC,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;oBACnC,IAAI,eAAe,EAAE,CAAC;wBACrB,cAAc,GAAG,IAAI,CAAC;wBACtB,MAAM;oBACP,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,cAAc,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACxB,4DAA4D;gBAC5D,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACJ,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;oBACxB,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACd,sDAAsD;wBACtD,wDAAwD;wBACxD,mDAAmD;wBACnD,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;oBACjD,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;YAClC,CAAC;YAED,qDAAqD;YACrD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACpC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAED,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;QAClC,CAAC;QAED,WAAW,CAAC,IAAc;YACzB,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-v4.d.ts","sourceRoot":"","sources":["../../../src/parse/adapters/zod-v4.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,sBAAsB,CAAC;AA2I7E,eAAO,MAAM,YAAY,EAAE,aAwB1B,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// ─── Helper: access ._zod.def safely ───────────────────────
|
|
2
|
+
function getZodDef(schema) {
|
|
3
|
+
const s = schema;
|
|
4
|
+
if (!s._zod?.def) {
|
|
5
|
+
throw new Error('Cannot introspect Zod schema: ._zod.def is missing. Ensure you are using Zod v4.');
|
|
6
|
+
}
|
|
7
|
+
return s._zod.def;
|
|
8
|
+
}
|
|
9
|
+
function getDescription(schema) {
|
|
10
|
+
const s = schema;
|
|
11
|
+
return s.description;
|
|
12
|
+
}
|
|
13
|
+
function unwrapSchema(schema) {
|
|
14
|
+
let isOptional = false;
|
|
15
|
+
let defaultValue;
|
|
16
|
+
let hasDefault = false;
|
|
17
|
+
let description = getDescription(schema);
|
|
18
|
+
let current = schema;
|
|
19
|
+
// Iteratively unwrap layers
|
|
20
|
+
const maxDepth = 10; // safety limit
|
|
21
|
+
for (let i = 0; i < maxDepth; i++) {
|
|
22
|
+
const def = getZodDef(current);
|
|
23
|
+
if (def.type === 'optional') {
|
|
24
|
+
isOptional = true;
|
|
25
|
+
current = def.innerType;
|
|
26
|
+
if (!description)
|
|
27
|
+
description = getDescription(current);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (def.type === 'default') {
|
|
31
|
+
isOptional = true; // defaults make the field optional from the user's perspective
|
|
32
|
+
hasDefault = true;
|
|
33
|
+
defaultValue = def.defaultValue;
|
|
34
|
+
current = def.innerType;
|
|
35
|
+
if (!description)
|
|
36
|
+
description = getDescription(current);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (def.type === 'nullable') {
|
|
40
|
+
current = def.innerType;
|
|
41
|
+
if (!description)
|
|
42
|
+
description = getDescription(current);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
// Base type reached
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
baseDef: getZodDef(current),
|
|
50
|
+
isOptional,
|
|
51
|
+
hasDefault,
|
|
52
|
+
defaultValue: hasDefault ? defaultValue : undefined,
|
|
53
|
+
description,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
// ─── Detect base type ───────────────────────────────────────
|
|
57
|
+
function detectParamType(def) {
|
|
58
|
+
switch (def.type) {
|
|
59
|
+
case 'string':
|
|
60
|
+
return { kind: 'string' };
|
|
61
|
+
case 'number':
|
|
62
|
+
case 'int':
|
|
63
|
+
return { kind: 'number' };
|
|
64
|
+
case 'boolean':
|
|
65
|
+
return { kind: 'boolean' };
|
|
66
|
+
case 'enum': {
|
|
67
|
+
// Zod v4 uses `entries` (object { staging: 'staging', prod: 'prod' })
|
|
68
|
+
// not `values` (array). Extract the values from the entries object.
|
|
69
|
+
const entries = def.entries;
|
|
70
|
+
const values = entries ? Object.values(entries) : undefined;
|
|
71
|
+
return { kind: 'enum', enumValues: values };
|
|
72
|
+
}
|
|
73
|
+
case 'array':
|
|
74
|
+
return { kind: 'array' };
|
|
75
|
+
default:
|
|
76
|
+
// Fallback: treat unknown types as string
|
|
77
|
+
return { kind: 'string' };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// ─── Adapter ────────────────────────────────────────────────
|
|
81
|
+
export const zodV4Adapter = {
|
|
82
|
+
name: 'zod-v4',
|
|
83
|
+
supports(schema) {
|
|
84
|
+
if (schema === null || (typeof schema !== 'object' && typeof schema !== 'function')) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
const s = schema;
|
|
88
|
+
return s._zod?.def !== undefined;
|
|
89
|
+
},
|
|
90
|
+
describe(schema) {
|
|
91
|
+
const { baseDef, isOptional, hasDefault, defaultValue, description } = unwrapSchema(schema);
|
|
92
|
+
const { kind, enumValues } = detectParamType(baseDef);
|
|
93
|
+
return {
|
|
94
|
+
kind,
|
|
95
|
+
isOptional,
|
|
96
|
+
hasDefault,
|
|
97
|
+
defaultValue,
|
|
98
|
+
enumValues,
|
|
99
|
+
description,
|
|
100
|
+
};
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=zod-v4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-v4.js","sourceRoot":"","sources":["../../../src/parse/adapters/zod-v4.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,16 @@ export interface ParseArgsBridgeConfig {
|
|
|
10
10
|
parseArgsConfig: ParseArgsConfig;
|
|
11
11
|
/** Maps long alias names → canonical option name */
|
|
12
12
|
longAliasMap: Record<string, string>;
|
|
13
|
+
/**
|
|
14
|
+
* Every key util.parseArgs may legitimately produce for this config:
|
|
15
|
+
* canonical option names + registered long aliases, plus a defensive
|
|
16
|
+
* `no-{name}` per boolean option (parseArgs folds `--no-x` into `x: false`
|
|
17
|
+
* under allowNegative — pinned by parseargs-negation.test.ts — but the
|
|
18
|
+
* allowance guards against a future representation change).
|
|
19
|
+
*/
|
|
20
|
+
knownKeys: Set<string>;
|
|
21
|
+
/** Canonical names of boolean options (for the strict check's `no-*` allowance) */
|
|
22
|
+
booleanKeys: Set<string>;
|
|
13
23
|
}
|
|
14
24
|
/**
|
|
15
25
|
* Build a util.parseArgs configuration from schema walker output.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseargs-bridge.d.ts","sourceRoot":"","sources":["../../src/parse/parseargs-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI7D,MAAM,WAAW,qBAAqB;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"parseargs-bridge.d.ts","sourceRoot":"","sources":["../../src/parse/parseargs-bridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI7D,MAAM,WAAW,qBAAqB;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;;;;;OAMG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,mFAAmF;IACnF,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAID;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,aAAa,EAAE,EACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvC,OAAO,CAAC,EAAE,OAAO,GACf,qBAAqB,CAgEvB"}
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
10
10
|
const options = {};
|
|
11
11
|
const longAliasMap = {};
|
|
12
|
+
const knownKeys = new Set();
|
|
13
|
+
const booleanKeys = new Set();
|
|
12
14
|
for (const param of metadata) {
|
|
13
15
|
// Map Zod type → parseArgs type
|
|
14
16
|
// boolean → 'boolean' (enables --no-* negation)
|
|
@@ -27,6 +29,7 @@ export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
|
27
29
|
longAliasMap[longName] = param.name;
|
|
28
30
|
// Register the long alias in parseArgs too
|
|
29
31
|
options[longName] = { type: parseArgsType };
|
|
32
|
+
knownKeys.add(longName);
|
|
30
33
|
}
|
|
31
34
|
else if (alias.startsWith('-') && alias.length === 2) {
|
|
32
35
|
// Short alias: single char after '-'
|
|
@@ -40,6 +43,11 @@ export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
|
40
43
|
optConfig.default = param.defaultValue;
|
|
41
44
|
}
|
|
42
45
|
options[param.name] = optConfig;
|
|
46
|
+
knownKeys.add(param.name);
|
|
47
|
+
if (parseArgsType === 'boolean') {
|
|
48
|
+
booleanKeys.add(param.name);
|
|
49
|
+
knownKeys.add(`no-${param.name}`);
|
|
50
|
+
}
|
|
43
51
|
}
|
|
44
52
|
return {
|
|
45
53
|
parseArgsConfig: {
|
|
@@ -49,6 +57,8 @@ export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
|
49
57
|
allowNegative: true, // Enable --no-* boolean negation
|
|
50
58
|
},
|
|
51
59
|
longAliasMap,
|
|
60
|
+
knownKeys,
|
|
61
|
+
booleanKeys,
|
|
52
62
|
};
|
|
53
63
|
}
|
|
54
64
|
//# sourceMappingURL=parseargs-bridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseargs-bridge.js","sourceRoot":"","sources":["../../src/parse/parseargs-bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseargs-bridge.js","sourceRoot":"","sources":["../../src/parse/parseargs-bridge.ts"],"names":[],"mappings":"AA2BA,+DAA+D;AAE/D;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CACnC,QAAyB,EACzB,UAAuC,EACvC,OAAiB;IAEjB,MAAM,OAAO,GAA4C,EAAE,CAAC;IAC5D,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC9B,gCAAgC;QAChC,gDAAgD;QAChD,0DAA0D;QAC1D,MAAM,aAAa,GAAyB,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE/F,MAAM,SAAS,GAKX;YACH,IAAI,EAAE,aAAa;SACnB,CAAC;QAEF,4BAA4B;QAC5B,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;YACjB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,sEAAsE;oBACtE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChC,YAAY,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;oBACpC,2CAA2C;oBAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;oBAC5C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;qBAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxD,qCAAqC;oBACrC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;YACF,CAAC;QACF,CAAC;QAED,2DAA2D;QAC3D,4DAA4D;QAC5D,IAAI,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACrE,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,YAAuB,CAAC;QACnD,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACjC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAED,OAAO;QACN,eAAe,EAAE;YAChB,OAAO;YACP,gBAAgB,EAAE,OAAO,IAAI,KAAK;YAClC,MAAM,EAAE,KAAK,EAAE,uCAAuC;YACtD,aAAa,EAAE,IAAI,EAAE,iCAAiC;SACtD;QACD,YAAY;QACZ,SAAS;QACT,WAAW;KACX,CAAC;AACH,CAAC"}
|
package/dist/parse/resolve.d.ts
CHANGED
|
@@ -34,6 +34,19 @@ export interface ResolveOutput {
|
|
|
34
34
|
parsedArgs: Record<string, unknown>;
|
|
35
35
|
parsedOptions: Record<string, unknown>;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Pre-coerce a string to a number for z.number() fields.
|
|
39
|
+
* Empty/whitespace-only strings are returned UNCHANGED — Number('') === 0
|
|
40
|
+
* and Number(' ') === 0 would silently fabricate a value. Leaving the
|
|
41
|
+
* string intact lets Zod reject it as invalid_type, which flows through
|
|
42
|
+
* the existing humanizer to a ValidationError (exit 2).
|
|
43
|
+
*
|
|
44
|
+
* The single coercion site for ALL resolution sources (CLI arg, env var,
|
|
45
|
+
* config value) — a new source added later inherits the rule by construction.
|
|
46
|
+
*
|
|
47
|
+
* Exported for unit testing only — not part of the public API (not in index.ts).
|
|
48
|
+
*/
|
|
49
|
+
export declare function coerceNumberValue(value: unknown): unknown;
|
|
37
50
|
/**
|
|
38
51
|
* Resolve values from all sources and validate through Zod.
|
|
39
52
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/parse/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAY,KAAK,OAAO,EAAK,MAAM,KAAK,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAM7D,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC5B,qCAAqC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,sBAAsB;IACtB,OAAO,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,4CAA4C;IAC5C,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KAAE,CAAC;IAChD,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/parse/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAY,KAAK,OAAO,EAAK,MAAM,KAAK,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,aAAa,CAAC;AAM7D,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC5B,qCAAqC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,sBAAsB;IACtB,OAAO,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,4CAA4C;IAC5C,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KAAE,CAAC;IAChD,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AA+DD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKzD;AA+ID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAwDhE"}
|
package/dist/parse/resolve.js
CHANGED
|
@@ -60,6 +60,26 @@ function mapPositionals(positionals, argsSchemas) {
|
|
|
60
60
|
return result;
|
|
61
61
|
}
|
|
62
62
|
// ─── Value Resolution ───────────────────────────────────────
|
|
63
|
+
/**
|
|
64
|
+
* Pre-coerce a string to a number for z.number() fields.
|
|
65
|
+
* Empty/whitespace-only strings are returned UNCHANGED — Number('') === 0
|
|
66
|
+
* and Number(' ') === 0 would silently fabricate a value. Leaving the
|
|
67
|
+
* string intact lets Zod reject it as invalid_type, which flows through
|
|
68
|
+
* the existing humanizer to a ValidationError (exit 2).
|
|
69
|
+
*
|
|
70
|
+
* The single coercion site for ALL resolution sources (CLI arg, env var,
|
|
71
|
+
* config value) — a new source added later inherits the rule by construction.
|
|
72
|
+
*
|
|
73
|
+
* Exported for unit testing only — not part of the public API (not in index.ts).
|
|
74
|
+
*/
|
|
75
|
+
export function coerceNumberValue(value) {
|
|
76
|
+
if (typeof value !== 'string')
|
|
77
|
+
return value;
|
|
78
|
+
if (value.trim() === '')
|
|
79
|
+
return value;
|
|
80
|
+
const num = Number(value);
|
|
81
|
+
return Number.isNaN(num) ? value : num;
|
|
82
|
+
}
|
|
63
83
|
function resolveOptionValues(parseArgsValues, longAliasMap, optionsSchemas, optionsMeta, configValues, env, optionsMetadata) {
|
|
64
84
|
const resolved = {};
|
|
65
85
|
// Build a set of number fields for pre-coercion
|
|
@@ -80,43 +100,21 @@ function resolveOptionValues(parseArgsValues, longAliasMap, optionsSchemas, opti
|
|
|
80
100
|
for (const key of Object.keys(optionsSchemas)) {
|
|
81
101
|
// Priority 1: CLI arg
|
|
82
102
|
if (key in normalizedValues && normalizedValues[key] !== undefined) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (numberFields.has(key) && typeof value === 'string') {
|
|
86
|
-
const num = Number(value);
|
|
87
|
-
if (!Number.isNaN(num)) {
|
|
88
|
-
value = num;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
resolved[key] = value;
|
|
103
|
+
const value = normalizedValues[key];
|
|
104
|
+
resolved[key] = numberFields.has(key) ? coerceNumberValue(value) : value;
|
|
92
105
|
continue;
|
|
93
106
|
}
|
|
94
107
|
// Priority 2: Environment variable
|
|
95
108
|
const envName = optionsMeta?.[key]?.env;
|
|
96
109
|
if (envName && envName in env && env[envName] !== undefined) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (numberFields.has(key) && typeof value === 'string') {
|
|
100
|
-
const num = Number(value);
|
|
101
|
-
if (!Number.isNaN(num)) {
|
|
102
|
-
value = num;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
resolved[key] = value;
|
|
110
|
+
const value = env[envName];
|
|
111
|
+
resolved[key] = numberFields.has(key) ? coerceNumberValue(value) : value;
|
|
106
112
|
continue;
|
|
107
113
|
}
|
|
108
114
|
// Priority 3: Config file value
|
|
109
115
|
if (configValues && key in configValues && configValues[key] !== undefined) {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
// but defensive handling)
|
|
113
|
-
if (numberFields.has(key) && typeof value === 'string') {
|
|
114
|
-
const num = Number(value);
|
|
115
|
-
if (!Number.isNaN(num)) {
|
|
116
|
-
value = num;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
resolved[key] = value;
|
|
116
|
+
const value = configValues[key];
|
|
117
|
+
resolved[key] = numberFields.has(key) ? coerceNumberValue(value) : value;
|
|
120
118
|
}
|
|
121
119
|
// Priority 4: Omit — let Zod .default() handle it
|
|
122
120
|
}
|