@runa-cmd/core 0.1.0 → 0.2.0-beta.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.
- package/README.md +125 -23
- package/dist/cli.d.ts +20 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +392 -143
- package/dist/cli.js.map +1 -1
- package/dist/errors.d.ts +25 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +72 -6
- package/dist/errors.js.map +1 -1
- package/dist/flag-name.d.ts +12 -0
- package/dist/flag-name.d.ts.map +1 -0
- package/dist/flag-name.js +19 -0
- package/dist/flag-name.js.map +1 -0
- package/dist/help.d.ts +21 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +151 -0
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +10 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +9 -0
- package/dist/internal.js.map +1 -0
- package/dist/introspect.d.ts.map +1 -1
- package/dist/introspect.js +10 -3
- package/dist/introspect.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 +106 -0
- package/dist/parse/adapters/zod-v4.js.map +1 -0
- package/dist/parse/deprecated.d.ts +12 -0
- package/dist/parse/deprecated.d.ts.map +1 -0
- package/dist/parse/deprecated.js +21 -0
- package/dist/parse/deprecated.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 +20 -6
- package/dist/parse/parseargs-bridge.js.map +1 -1
- package/dist/parse/resolve.d.ts +44 -1
- package/dist/parse/resolve.d.ts.map +1 -1
- package/dist/parse/resolve.js +151 -73
- package/dist/parse/resolve.js.map +1 -1
- package/dist/parse/schema-adapter.d.ts +42 -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 +13 -104
- package/dist/parse/schema-walker.js.map +1 -1
- package/dist/parse/strict.d.ts +52 -0
- package/dist/parse/strict.d.ts.map +1 -0
- package/dist/parse/strict.js +68 -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 +41 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +189 -0
- package/dist/plugin.js.map +1 -1
- package/dist/stop.d.ts +25 -0
- package/dist/stop.d.ts.map +1 -0
- package/dist/stop.js +110 -0
- package/dist/stop.js.map +1 -0
- package/dist/suggest.d.ts +18 -0
- package/dist/suggest.d.ts.map +1 -0
- package/dist/suggest.js +56 -0
- package/dist/suggest.js.map +1 -0
- package/dist/tool-channel.d.ts +48 -0
- package/dist/tool-channel.d.ts.map +1 -0
- package/dist/tool-channel.js +46 -0
- package/dist/tool-channel.js.map +1 -0
- package/dist/types.d.ts +51 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +6 -2
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
|
+
// ADR-0009: 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,4DAA4D;wBAC5D,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;AAsJ7E,eAAO,MAAM,YAAY,EAAE,aAyB1B,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
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
|
+
const item = detectParamType(unwrapSchema(def.element).baseDef);
|
|
75
|
+
return { kind: 'array', itemKind: item.kind, enumValues: item.enumValues };
|
|
76
|
+
}
|
|
77
|
+
default:
|
|
78
|
+
// Fallback: treat unknown types as string
|
|
79
|
+
return { kind: 'string' };
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// ─── Adapter ────────────────────────────────────────────────
|
|
83
|
+
export const zodV4Adapter = {
|
|
84
|
+
name: 'zod-v4',
|
|
85
|
+
supports(schema) {
|
|
86
|
+
if (schema === null || (typeof schema !== 'object' && typeof schema !== 'function')) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
const s = schema;
|
|
90
|
+
return s._zod?.def !== undefined;
|
|
91
|
+
},
|
|
92
|
+
describe(schema) {
|
|
93
|
+
const { baseDef, isOptional, hasDefault, defaultValue, description } = unwrapSchema(schema);
|
|
94
|
+
const { kind, enumValues, itemKind } = detectParamType(baseDef);
|
|
95
|
+
return {
|
|
96
|
+
kind,
|
|
97
|
+
isOptional,
|
|
98
|
+
hasDefault,
|
|
99
|
+
defaultValue,
|
|
100
|
+
enumValues,
|
|
101
|
+
itemKind,
|
|
102
|
+
description,
|
|
103
|
+
};
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
//# 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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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { OptionMeta } from '../types.js';
|
|
2
|
+
export interface DeprecationInput {
|
|
3
|
+
/** Keys of the util.parseArgs result: holds only what the user passed */
|
|
4
|
+
provided: string[];
|
|
5
|
+
longAliasMap: Record<string, string>;
|
|
6
|
+
optionMeta?: Record<string, OptionMeta>;
|
|
7
|
+
configValues?: Record<string, unknown>;
|
|
8
|
+
env?: Record<string, string | undefined>;
|
|
9
|
+
}
|
|
10
|
+
/** The warnings for every deprecated option set from the CLI, env or config. */
|
|
11
|
+
export declare function deprecationWarnings(input: DeprecationInput): string[];
|
|
12
|
+
//# sourceMappingURL=deprecated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated.d.ts","sourceRoot":"","sources":["../../src/parse/deprecated.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAChC,yEAAyE;IACzE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAcrE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @runa-cmd/core — Deprecated option warnings
|
|
3
|
+
*
|
|
4
|
+
* `meta.options[name].deprecated` declares the notice once. It is shown in help
|
|
5
|
+
* and, through this module, whenever the option is actually used.
|
|
6
|
+
*/
|
|
7
|
+
import { longFlag } from '../flag-name.js';
|
|
8
|
+
/** The warnings for every deprecated option set from the CLI, env or config. */
|
|
9
|
+
export function deprecationWarnings(input) {
|
|
10
|
+
const { provided, longAliasMap, optionMeta, configValues, env = process.env } = input;
|
|
11
|
+
const fromCli = new Set(provided.map((key) => longAliasMap[key] ?? key));
|
|
12
|
+
return Object.entries(optionMeta ?? {}).flatMap(([name, meta]) => {
|
|
13
|
+
if (!meta.deprecated)
|
|
14
|
+
return [];
|
|
15
|
+
const isUsed = fromCli.has(name) ||
|
|
16
|
+
(meta.env !== undefined && env[meta.env] !== undefined) ||
|
|
17
|
+
configValues?.[name] !== undefined;
|
|
18
|
+
return isUsed ? [`Warning: ${longFlag(name)} is deprecated. ${meta.deprecated}`] : [];
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=deprecated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../src/parse/deprecated.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAY3C,gFAAgF;AAChF,MAAM,UAAU,mBAAmB,CAAC,KAAuB;IAC1D,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACtF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAEzE,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,MAAM,GACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACjB,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;YACvD,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;QAEpC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -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;
|
|
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;AAEjD,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,CAiEvB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { flagName } from '../flag-name.js';
|
|
1
2
|
// ─── Public API ─────────────────────────────────────────────
|
|
2
3
|
/**
|
|
3
4
|
* Build a util.parseArgs configuration from schema walker output.
|
|
@@ -9,6 +10,8 @@
|
|
|
9
10
|
export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
10
11
|
const options = {};
|
|
11
12
|
const longAliasMap = {};
|
|
13
|
+
const knownKeys = new Set();
|
|
14
|
+
const booleanKeys = new Set();
|
|
12
15
|
for (const param of metadata) {
|
|
13
16
|
// Map Zod type → parseArgs type
|
|
14
17
|
// boolean → 'boolean' (enables --no-* negation)
|
|
@@ -16,6 +19,7 @@ export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
|
16
19
|
const parseArgsType = param.zodType === 'boolean' ? 'boolean' : 'string';
|
|
17
20
|
const optConfig = {
|
|
18
21
|
type: parseArgsType,
|
|
22
|
+
...(param.isArray ? { multiple: true } : {}),
|
|
19
23
|
};
|
|
20
24
|
// Extract aliases from meta
|
|
21
25
|
const meta = optionMeta?.[param.name];
|
|
@@ -26,7 +30,8 @@ export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
|
26
30
|
const longName = alias.slice(2);
|
|
27
31
|
longAliasMap[longName] = param.name;
|
|
28
32
|
// Register the long alias in parseArgs too
|
|
29
|
-
options[longName] = { type: parseArgsType };
|
|
33
|
+
options[longName] = { type: parseArgsType, ...(param.isArray ? { multiple: true } : {}) };
|
|
34
|
+
knownKeys.add(longName);
|
|
30
35
|
}
|
|
31
36
|
else if (alias.startsWith('-') && alias.length === 2) {
|
|
32
37
|
// Short alias: single char after '-'
|
|
@@ -34,12 +39,19 @@ export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
}
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
// The flag is registered, not the key: `--darkColor` must stay unknown.
|
|
43
|
+
// It maps back like any long alias, so `--no-dark-mode` needs nothing else.
|
|
44
|
+
const flag = flagName(param.name);
|
|
45
|
+
if (flag !== param.name)
|
|
46
|
+
longAliasMap[flag] = param.name;
|
|
47
|
+
// Never pass schema defaults here: a value from parseArgs counts as a CLI
|
|
48
|
+
// argument and would beat env and config. Zod applies them last.
|
|
49
|
+
options[flag] = optConfig;
|
|
50
|
+
knownKeys.add(flag);
|
|
51
|
+
if (parseArgsType === 'boolean') {
|
|
52
|
+
booleanKeys.add(flag);
|
|
53
|
+
knownKeys.add(`no-${flag}`);
|
|
41
54
|
}
|
|
42
|
-
options[param.name] = optConfig;
|
|
43
55
|
}
|
|
44
56
|
return {
|
|
45
57
|
parseArgsConfig: {
|
|
@@ -49,6 +61,8 @@ export function buildParseArgsConfig(metadata, optionMeta, hasArgs) {
|
|
|
49
61
|
allowNegative: true, // Enable --no-* boolean negation
|
|
50
62
|
},
|
|
51
63
|
longAliasMap,
|
|
64
|
+
knownKeys,
|
|
65
|
+
booleanKeys,
|
|
52
66
|
};
|
|
53
67
|
}
|
|
54
68
|
//# 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":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAqB3C,+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,GAIX;YACH,IAAI,EAAE,aAAa;YACnB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,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,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1F,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,wEAAwE;QACxE,4EAA4E;QAC5E,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI;YAAE,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;QAEzD,0EAA0E;QAC1E,iEAAiE;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QAC1B,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACjC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC7B,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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Merge priority: CLI args > env vars > config file > Zod defaults.
|
|
5
5
|
* Maps positionals to args by insertion order.
|
|
6
|
-
* Pre-coerces number strings before Zod .parse().
|
|
6
|
+
* Pre-coerces number and boolean strings before Zod .parse().
|
|
7
7
|
*/
|
|
8
8
|
import { type ZodType } from 'zod';
|
|
9
9
|
import type { OptionMeta } from '../types.js';
|
|
@@ -34,6 +34,35 @@ export interface ResolveOutput {
|
|
|
34
34
|
parsedArgs: Record<string, unknown>;
|
|
35
35
|
parsedOptions: Record<string, unknown>;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Decide which tokens after `--` are operands and which stay in ctx.rest
|
|
39
|
+
* (ADR-0022): they fill the positionals still empty, where a variadic counts
|
|
40
|
+
* as one. So `lint -- -a -b` fills `files`, while `lint a.ts -- --fix` keeps
|
|
41
|
+
* `--fix` for ctx.rest.
|
|
42
|
+
*/
|
|
43
|
+
export declare function distributeRest(positionals: string[], rest: string[], argsSchemas: Record<string, ZodType>): {
|
|
44
|
+
positionals: string[];
|
|
45
|
+
rest: string[];
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Pre-coerce a string to a number for z.number() fields.
|
|
49
|
+
* Empty/whitespace-only strings are returned UNCHANGED — Number('') === 0
|
|
50
|
+
* and Number(' ') === 0 would silently fabricate a value. Leaving the
|
|
51
|
+
* string intact lets Zod reject it as invalid_type, which flows through
|
|
52
|
+
* the existing humanizer to a ValidationError (exit 2).
|
|
53
|
+
*
|
|
54
|
+
* Exported for unit testing only — not part of the public API (not in index.ts).
|
|
55
|
+
*/
|
|
56
|
+
export declare function coerceNumberValue(value: unknown): unknown;
|
|
57
|
+
/**
|
|
58
|
+
* Pre-coerce a string to a boolean for z.boolean() fields. Env vars are always
|
|
59
|
+
* strings, and `--flag=false` also reaches here as one. Anything but
|
|
60
|
+
* true/false/1/0 is returned UNCHANGED so Zod rejects it instead of guessing:
|
|
61
|
+
* `MINIFY=quizas` must not silently mean either value.
|
|
62
|
+
*
|
|
63
|
+
* Exported for unit testing only — not part of the public API (not in index.ts).
|
|
64
|
+
*/
|
|
65
|
+
export declare function coerceBooleanValue(value: unknown): unknown;
|
|
37
66
|
/**
|
|
38
67
|
* Resolve values from all sources and validate through Zod.
|
|
39
68
|
*
|
|
@@ -45,4 +74,18 @@ export interface ResolveOutput {
|
|
|
45
74
|
* 5. Return typed results or throw ValidationError
|
|
46
75
|
*/
|
|
47
76
|
export declare function resolveValues(input: ResolveInput): ResolveOutput;
|
|
77
|
+
export interface ResolveToolInput {
|
|
78
|
+
/** The call's arguments, as one object */
|
|
79
|
+
input: Record<string, unknown>;
|
|
80
|
+
schemas: ResolveInput['schemas'];
|
|
81
|
+
meta?: ResolveInput['meta'];
|
|
82
|
+
configValues?: Record<string, unknown>;
|
|
83
|
+
env?: Record<string, string | undefined>;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Same resolution as resolveValues, from an object instead of parsed argv. Each
|
|
87
|
+
* key names its target, so there are no positions, tokens or aliases to read:
|
|
88
|
+
* arrays, objects and numbers arrive as they are, and data is never a route.
|
|
89
|
+
*/
|
|
90
|
+
export declare function resolveToolInput(toolInput: ResolveToolInput): ResolveOutput;
|
|
48
91
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -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;
|
|
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;AAGhD,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;AA6DD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC7B,WAAW,EAAE,MAAM,EAAE,EACrB,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC;IAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAW3C;AAID;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKzD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM1D;AAoKD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAyBhE;AAED,MAAM,WAAW,gBAAgB;IAChC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,GAAG,aAAa,CAiC3E"}
|