@optique/core 1.0.0-dev.1598 → 1.0.0-dev.1608
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/constructs.cjs +194 -223
- package/dist/constructs.js +194 -223
- package/dist/dependency-metadata.cjs +140 -0
- package/dist/dependency-metadata.d.cts +108 -0
- package/dist/dependency-metadata.d.ts +108 -0
- package/dist/dependency-metadata.js +139 -0
- package/dist/dependency-runtime.cjs +328 -0
- package/dist/dependency-runtime.d.cts +123 -0
- package/dist/dependency-runtime.d.ts +123 -0
- package/dist/dependency-runtime.js +323 -0
- package/dist/dependency.cjs +14 -0
- package/dist/dependency.d.cts +19 -1
- package/dist/dependency.d.ts +19 -1
- package/dist/dependency.js +14 -1
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/modifiers.cjs +64 -0
- package/dist/modifiers.js +64 -0
- package/dist/parser.d.cts +17 -0
- package/dist/parser.d.ts +17 -0
- package/dist/primitives.cjs +7 -0
- package/dist/primitives.js +7 -0
- package/package.json +1 -1
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import { dependencyId, isDeferredParseState, isDependencySourceState, isPendingDependencySourceState, parseWithDependency } from "./dependency.js";
|
|
2
|
+
|
|
3
|
+
//#region src/dependency-runtime.ts
|
|
4
|
+
const symbolIds = /* @__PURE__ */ new WeakMap();
|
|
5
|
+
let symbolCounter = 0;
|
|
6
|
+
function stableSymbolKey(sym) {
|
|
7
|
+
const registeredKey = Symbol.keyFor(sym);
|
|
8
|
+
if (registeredKey !== void 0) return `reg:${registeredKey}`;
|
|
9
|
+
let id = symbolIds.get(sym);
|
|
10
|
+
if (id === void 0) {
|
|
11
|
+
id = `sym:${symbolCounter++}`;
|
|
12
|
+
symbolIds.set(sym, id);
|
|
13
|
+
}
|
|
14
|
+
return id;
|
|
15
|
+
}
|
|
16
|
+
var DependencyRuntimeContextImpl = class {
|
|
17
|
+
registry;
|
|
18
|
+
#replayCache = /* @__PURE__ */ new Map();
|
|
19
|
+
#failedSources = /* @__PURE__ */ new Set();
|
|
20
|
+
constructor(registry) {
|
|
21
|
+
this.registry = registry;
|
|
22
|
+
}
|
|
23
|
+
registerSource(sourceId, value, _origin) {
|
|
24
|
+
this.registry.set(sourceId, value);
|
|
25
|
+
}
|
|
26
|
+
hasSource(sourceId) {
|
|
27
|
+
return this.registry.has(sourceId);
|
|
28
|
+
}
|
|
29
|
+
getSource(sourceId) {
|
|
30
|
+
return this.registry.get(sourceId);
|
|
31
|
+
}
|
|
32
|
+
resolveDependencies(request) {
|
|
33
|
+
return resolveRequest(this, request);
|
|
34
|
+
}
|
|
35
|
+
getReplayResult(key) {
|
|
36
|
+
return this.#replayCache.get(serializeReplayKey(key));
|
|
37
|
+
}
|
|
38
|
+
setReplayResult(key, result) {
|
|
39
|
+
this.#replayCache.set(serializeReplayKey(key), result);
|
|
40
|
+
}
|
|
41
|
+
markSourceFailed(sourceId) {
|
|
42
|
+
this.#failedSources.add(sourceId);
|
|
43
|
+
}
|
|
44
|
+
isSourceFailed(sourceId) {
|
|
45
|
+
return this.#failedSources.has(sourceId);
|
|
46
|
+
}
|
|
47
|
+
getSuggestionDependencies(request) {
|
|
48
|
+
return resolveRequest(this, request);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
function resolveRequest(ctx, request) {
|
|
52
|
+
const values = [];
|
|
53
|
+
const usedDefaults = [];
|
|
54
|
+
let resolvedCount = 0;
|
|
55
|
+
let defaultedCount = 0;
|
|
56
|
+
for (let i = 0; i < request.dependencyIds.length; i++) {
|
|
57
|
+
const id = request.dependencyIds[i];
|
|
58
|
+
if (ctx.hasSource(id)) {
|
|
59
|
+
values.push(ctx.getSource(id));
|
|
60
|
+
usedDefaults.push(false);
|
|
61
|
+
resolvedCount++;
|
|
62
|
+
} else if (ctx.isSourceFailed(id)) {
|
|
63
|
+
values.push(void 0);
|
|
64
|
+
usedDefaults.push(false);
|
|
65
|
+
} else if (request.defaultValues != null && i < request.defaultValues.length) {
|
|
66
|
+
values.push(request.defaultValues[i]);
|
|
67
|
+
usedDefaults.push(true);
|
|
68
|
+
defaultedCount++;
|
|
69
|
+
} else {
|
|
70
|
+
values.push(void 0);
|
|
71
|
+
usedDefaults.push(false);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const total = request.dependencyIds.length;
|
|
75
|
+
const foundOrDefaulted = resolvedCount + defaultedCount;
|
|
76
|
+
let kind;
|
|
77
|
+
if (foundOrDefaulted === total) kind = "resolved";
|
|
78
|
+
else if (resolvedCount === 0 && defaultedCount === 0) kind = "missing";
|
|
79
|
+
else kind = "partial";
|
|
80
|
+
return {
|
|
81
|
+
kind,
|
|
82
|
+
values,
|
|
83
|
+
usedDefaults
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** Length-prefix a segment so that no delimiter escaping is needed. */
|
|
87
|
+
function lengthPrefix(s) {
|
|
88
|
+
return `${s.length}:${s}`;
|
|
89
|
+
}
|
|
90
|
+
function serializePathSegment(p) {
|
|
91
|
+
if (typeof p === "string") return lengthPrefix(`s${p}`);
|
|
92
|
+
if (typeof p === "number") return lengthPrefix(`n${p}`);
|
|
93
|
+
return lengthPrefix(`y${stableSymbolKey(p)}`);
|
|
94
|
+
}
|
|
95
|
+
function serializeReplayKey(key) {
|
|
96
|
+
const pathStr = key.path.map(serializePathSegment).join("");
|
|
97
|
+
return `${pathStr}\x01${lengthPrefix(key.rawInput)}\x01${key.dependencyFingerprint}\x01${key.parserFingerprint}`;
|
|
98
|
+
}
|
|
99
|
+
/** Minimal registry implementation for standalone use. */
|
|
100
|
+
var SimpleRegistry = class SimpleRegistry {
|
|
101
|
+
#map = /* @__PURE__ */ new Map();
|
|
102
|
+
set(id, value) {
|
|
103
|
+
this.#map.set(id, value);
|
|
104
|
+
}
|
|
105
|
+
get(id) {
|
|
106
|
+
return this.#map.get(id);
|
|
107
|
+
}
|
|
108
|
+
has(id) {
|
|
109
|
+
return this.#map.has(id);
|
|
110
|
+
}
|
|
111
|
+
clone() {
|
|
112
|
+
const copy = new SimpleRegistry();
|
|
113
|
+
for (const [k, v] of this.#map) copy.set(k, v);
|
|
114
|
+
return copy;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Creates a new {@link DependencyRuntimeContext}.
|
|
119
|
+
*
|
|
120
|
+
* @param registry Optional existing registry to wrap for bridge interop.
|
|
121
|
+
* @returns A new runtime context.
|
|
122
|
+
* @internal
|
|
123
|
+
* @since 1.0.0
|
|
124
|
+
*/
|
|
125
|
+
function createDependencyRuntimeContext(registry) {
|
|
126
|
+
return new DependencyRuntimeContextImpl(registry ?? new SimpleRegistry());
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Collects explicit source values from parser states and registers them
|
|
130
|
+
* in the runtime context.
|
|
131
|
+
*
|
|
132
|
+
* @param nodes The runtime nodes to inspect.
|
|
133
|
+
* @param runtime The dependency runtime context.
|
|
134
|
+
* @internal
|
|
135
|
+
* @since 1.0.0
|
|
136
|
+
*/
|
|
137
|
+
function collectExplicitSourceValues(nodes, runtime) {
|
|
138
|
+
for (const node of nodes) {
|
|
139
|
+
const meta = node.parser.dependencyMetadata;
|
|
140
|
+
if (meta?.source == null) continue;
|
|
141
|
+
if (meta.source.extractSourceValue == null) continue;
|
|
142
|
+
const result = meta.source.extractSourceValue(node.state);
|
|
143
|
+
if (result == null) continue;
|
|
144
|
+
if (result.success) runtime.registerSource(meta.source.sourceId, result.value, "cli");
|
|
145
|
+
else runtime.markSourceFailed(meta.source.sourceId);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Checks if a value is a plain object (not a class instance) for the
|
|
150
|
+
* purpose of recursive state traversal.
|
|
151
|
+
*/
|
|
152
|
+
function isPlainObject(value) {
|
|
153
|
+
if (typeof value !== "object" || value === null) return false;
|
|
154
|
+
const proto = Object.getPrototypeOf(value);
|
|
155
|
+
return proto === Object.prototype || proto === null;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Resolves a single {@link DeferredParseState} using the dependency runtime.
|
|
159
|
+
*
|
|
160
|
+
* Returns the replay result if all dependencies are available, or the
|
|
161
|
+
* preliminary result if dependencies are missing.
|
|
162
|
+
*/
|
|
163
|
+
function resolveSingleDeferred(deferred, runtime) {
|
|
164
|
+
const isMultiDep = deferred.dependencyIds != null && deferred.dependencyIds.length > 0;
|
|
165
|
+
const depIds = isMultiDep ? deferred.dependencyIds : [deferred.dependencyId];
|
|
166
|
+
const resolution = runtime.resolveDependencies({
|
|
167
|
+
dependencyIds: depIds,
|
|
168
|
+
defaultValues: deferred.defaultValues
|
|
169
|
+
});
|
|
170
|
+
if (resolution.kind !== "resolved") return deferred.preliminaryResult;
|
|
171
|
+
const depValue = isMultiDep ? resolution.values : resolution.values[0];
|
|
172
|
+
const result = deferred.parser[parseWithDependency](deferred.rawInput, depValue);
|
|
173
|
+
if (result instanceof Promise) return deferred.preliminaryResult;
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Recursively collects dependency source values from {@link DependencySourceState}
|
|
178
|
+
* objects found in the state tree and registers them in the runtime.
|
|
179
|
+
*
|
|
180
|
+
* This must run BEFORE deferred resolution so that all source values
|
|
181
|
+
* are available when replaying derived parsers.
|
|
182
|
+
*/
|
|
183
|
+
function collectSourcesFromState(state, runtime, visited = /* @__PURE__ */ new WeakSet()) {
|
|
184
|
+
if (state == null || typeof state !== "object") return;
|
|
185
|
+
if (visited.has(state)) return;
|
|
186
|
+
visited.add(state);
|
|
187
|
+
if (isDependencySourceState(state)) {
|
|
188
|
+
const depId = state[dependencyId];
|
|
189
|
+
const result = state.result;
|
|
190
|
+
if (depId != null && result.success) runtime.registerSource(depId, result.value, "cli");
|
|
191
|
+
else if (depId != null) runtime.markSourceFailed(depId);
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
if (isDeferredParseState(state)) return;
|
|
195
|
+
if (Array.isArray(state)) {
|
|
196
|
+
for (const item of state) collectSourcesFromState(item, runtime, visited);
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (typeof state === "object") for (const key of Reflect.ownKeys(state)) collectSourcesFromState(state[key], runtime, visited);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Recursively resolves all {@link DeferredParseState} objects in a state
|
|
203
|
+
* tree using the dependency runtime (sync).
|
|
204
|
+
*
|
|
205
|
+
* Performs a two-pass traversal:
|
|
206
|
+
* 1. Collect all {@link DependencySourceState} values into the runtime.
|
|
207
|
+
* 2. Resolve all {@link DeferredParseState} using the populated runtime.
|
|
208
|
+
*
|
|
209
|
+
* This replaces the old `resolveDeferredParseStates` with runtime-based
|
|
210
|
+
* resolution. Only traverses plain objects and arrays; class instances
|
|
211
|
+
* and primitives are returned as-is.
|
|
212
|
+
*
|
|
213
|
+
* @param state The state tree to resolve.
|
|
214
|
+
* @param runtime The dependency runtime context.
|
|
215
|
+
* @returns The resolved state tree.
|
|
216
|
+
* @internal
|
|
217
|
+
* @since 1.0.0
|
|
218
|
+
*/
|
|
219
|
+
function resolveStateWithRuntime(state, runtime) {
|
|
220
|
+
collectSourcesFromState(state, runtime);
|
|
221
|
+
return resolveDeferredInState(state, runtime);
|
|
222
|
+
}
|
|
223
|
+
/** Pass 2 helper: recursively replace DeferredParseState with resolved values. */
|
|
224
|
+
function resolveDeferredInState(state, runtime, visited = /* @__PURE__ */ new WeakSet()) {
|
|
225
|
+
if (state == null) return state;
|
|
226
|
+
if (typeof state === "object") {
|
|
227
|
+
if (visited.has(state)) return state;
|
|
228
|
+
visited.add(state);
|
|
229
|
+
}
|
|
230
|
+
if (isDeferredParseState(state)) return resolveSingleDeferred(state, runtime);
|
|
231
|
+
if (isDependencySourceState(state)) return state;
|
|
232
|
+
if (Array.isArray(state)) return state.map((item) => resolveDeferredInState(item, runtime, visited));
|
|
233
|
+
if (isPlainObject(state)) {
|
|
234
|
+
const resolved = Object.create(Object.getPrototypeOf(state));
|
|
235
|
+
for (const key of Reflect.ownKeys(state)) resolved[key] = resolveDeferredInState(state[key], runtime, visited);
|
|
236
|
+
return resolved;
|
|
237
|
+
}
|
|
238
|
+
return state;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Async version of {@link resolveStateWithRuntime}.
|
|
242
|
+
*
|
|
243
|
+
* @param state The state tree to resolve.
|
|
244
|
+
* @param runtime The dependency runtime context.
|
|
245
|
+
* @returns The resolved state tree.
|
|
246
|
+
* @internal
|
|
247
|
+
* @since 1.0.0
|
|
248
|
+
*/
|
|
249
|
+
function resolveStateWithRuntimeAsync(state, runtime) {
|
|
250
|
+
collectSourcesFromState(state, runtime);
|
|
251
|
+
return resolveDeferredInStateAsync(state, runtime);
|
|
252
|
+
}
|
|
253
|
+
/** Async pass 2 helper. */
|
|
254
|
+
async function resolveDeferredInStateAsync(state, runtime, visited = /* @__PURE__ */ new WeakSet()) {
|
|
255
|
+
if (state == null) return state;
|
|
256
|
+
if (typeof state === "object") {
|
|
257
|
+
if (visited.has(state)) return state;
|
|
258
|
+
visited.add(state);
|
|
259
|
+
}
|
|
260
|
+
if (isDeferredParseState(state)) {
|
|
261
|
+
const deferred = state;
|
|
262
|
+
const isMultiDep = deferred.dependencyIds != null && deferred.dependencyIds.length > 0;
|
|
263
|
+
const depIds = isMultiDep ? deferred.dependencyIds : [deferred.dependencyId];
|
|
264
|
+
const resolution = runtime.resolveDependencies({
|
|
265
|
+
dependencyIds: depIds,
|
|
266
|
+
defaultValues: deferred.defaultValues
|
|
267
|
+
});
|
|
268
|
+
if (resolution.kind !== "resolved") return deferred.preliminaryResult;
|
|
269
|
+
const depValue = isMultiDep ? resolution.values : resolution.values[0];
|
|
270
|
+
return Promise.resolve(deferred.parser[parseWithDependency](deferred.rawInput, depValue));
|
|
271
|
+
}
|
|
272
|
+
if (isDependencySourceState(state)) return state;
|
|
273
|
+
if (Array.isArray(state)) return Promise.all(state.map((item) => resolveDeferredInStateAsync(item, runtime, visited)));
|
|
274
|
+
if (isPlainObject(state)) {
|
|
275
|
+
const resolved = Object.create(Object.getPrototypeOf(state));
|
|
276
|
+
const keys = Reflect.ownKeys(state);
|
|
277
|
+
await Promise.all(keys.map(async (key) => {
|
|
278
|
+
resolved[key] = await resolveDeferredInStateAsync(state[key], runtime, visited);
|
|
279
|
+
}));
|
|
280
|
+
return resolved;
|
|
281
|
+
}
|
|
282
|
+
return state;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Determines whether a parser state represents an explicit match (the user
|
|
286
|
+
* provided input) rather than an initial/pending state.
|
|
287
|
+
*/
|
|
288
|
+
function isMatchedState(fieldState, parser) {
|
|
289
|
+
if (fieldState === void 0) return false;
|
|
290
|
+
if (Array.isArray(fieldState) && fieldState.length === 1 && isPendingDependencySourceState(fieldState[0])) return false;
|
|
291
|
+
if (isPendingDependencySourceState(fieldState)) return false;
|
|
292
|
+
if (fieldState === parser.initialState) return false;
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Builds {@link RuntimeNode}s from field→parser pairs and a state record.
|
|
297
|
+
*
|
|
298
|
+
* Used by `object()` and `merge()` constructs.
|
|
299
|
+
*
|
|
300
|
+
* @param pairs Field→parser pairs.
|
|
301
|
+
* @param state The state record keyed by field name.
|
|
302
|
+
* @param parentPath Optional parent path prefix.
|
|
303
|
+
* @returns An array of runtime nodes.
|
|
304
|
+
* @internal
|
|
305
|
+
* @since 1.0.0
|
|
306
|
+
*/
|
|
307
|
+
function buildRuntimeNodesFromPairs(pairs, state, parentPath) {
|
|
308
|
+
const prefix = parentPath ?? [];
|
|
309
|
+
const nodes = [];
|
|
310
|
+
for (const [field, parser] of pairs) {
|
|
311
|
+
const fieldState = Object.hasOwn(state, field) ? state[field] : void 0;
|
|
312
|
+
nodes.push({
|
|
313
|
+
path: [...prefix, field],
|
|
314
|
+
parser,
|
|
315
|
+
state: fieldState,
|
|
316
|
+
matched: isMatchedState(fieldState, parser)
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
return nodes;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
//#endregion
|
|
323
|
+
export { buildRuntimeNodesFromPairs, collectExplicitSourceValues, collectSourcesFromState, createDependencyRuntimeContext, resolveStateWithRuntime, resolveStateWithRuntimeAsync };
|
package/dist/dependency.cjs
CHANGED
|
@@ -33,6 +33,16 @@ const dependencyIds = Symbol.for("@optique/core/dependency/dependencyIds");
|
|
|
33
33
|
*/
|
|
34
34
|
const defaultValues = Symbol.for("@optique/core/dependency/defaultValues");
|
|
35
35
|
/**
|
|
36
|
+
* A unique symbol used to store the single default value thunk on derived
|
|
37
|
+
* parsers created by {@link DependencySource.derive}. Unlike
|
|
38
|
+
* {@link defaultValues} (which `createDeferredParseState` reads eagerly),
|
|
39
|
+
* this symbol is only read by the dependency-metadata bridge so that
|
|
40
|
+
* single-source defaults are accessible without double evaluation.
|
|
41
|
+
* @internal
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
*/
|
|
44
|
+
const singleDefaultValue = Symbol.for("@optique/core/dependency/singleDefaultValue");
|
|
45
|
+
/**
|
|
36
46
|
* A unique symbol used to access the parseWithDependency method on derived parsers.
|
|
37
47
|
* @since 0.10.0
|
|
38
48
|
*/
|
|
@@ -504,6 +514,7 @@ function createSyncDerivedParser(sourceId, options) {
|
|
|
504
514
|
},
|
|
505
515
|
[derivedValueParserMarker]: true,
|
|
506
516
|
[dependencyId]: sourceId,
|
|
517
|
+
[singleDefaultValue]: options.defaultValue,
|
|
507
518
|
parse(input) {
|
|
508
519
|
let derivedParser;
|
|
509
520
|
try {
|
|
@@ -596,6 +607,7 @@ function createAsyncDerivedParserFromAsyncFactory(sourceId, options) {
|
|
|
596
607
|
},
|
|
597
608
|
[derivedValueParserMarker]: true,
|
|
598
609
|
[dependencyId]: sourceId,
|
|
610
|
+
[singleDefaultValue]: options.defaultValue,
|
|
599
611
|
parse(input) {
|
|
600
612
|
let derivedParser;
|
|
601
613
|
try {
|
|
@@ -675,6 +687,7 @@ function createAsyncDerivedParserFromSyncFactory(sourceId, options) {
|
|
|
675
687
|
},
|
|
676
688
|
[derivedValueParserMarker]: true,
|
|
677
689
|
[dependencyId]: sourceId,
|
|
690
|
+
[singleDefaultValue]: options.defaultValue,
|
|
678
691
|
parse(input) {
|
|
679
692
|
let derivedParser;
|
|
680
693
|
try {
|
|
@@ -999,6 +1012,7 @@ exports.isPendingDependencySourceState = isPendingDependencySourceState;
|
|
|
999
1012
|
exports.isWrappedDependencySource = isWrappedDependencySource;
|
|
1000
1013
|
exports.parseWithDependency = parseWithDependency;
|
|
1001
1014
|
exports.pendingDependencySourceStateMarker = pendingDependencySourceStateMarker;
|
|
1015
|
+
exports.singleDefaultValue = singleDefaultValue;
|
|
1002
1016
|
exports.suggestWithDependency = suggestWithDependency;
|
|
1003
1017
|
exports.transformsDependencyValue = transformsDependencyValue;
|
|
1004
1018
|
exports.transformsDependencyValueMarker = transformsDependencyValueMarker;
|
package/dist/dependency.d.cts
CHANGED
|
@@ -37,6 +37,16 @@ declare const dependencyIds: unique symbol;
|
|
|
37
37
|
* @since 0.10.0
|
|
38
38
|
*/
|
|
39
39
|
declare const defaultValues: unique symbol;
|
|
40
|
+
/**
|
|
41
|
+
* A unique symbol used to store the single default value thunk on derived
|
|
42
|
+
* parsers created by {@link DependencySource.derive}. Unlike
|
|
43
|
+
* {@link defaultValues} (which `createDeferredParseState` reads eagerly),
|
|
44
|
+
* this symbol is only read by the dependency-metadata bridge so that
|
|
45
|
+
* single-source defaults are accessible without double evaluation.
|
|
46
|
+
* @internal
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
*/
|
|
49
|
+
declare const singleDefaultValue: unique symbol;
|
|
40
50
|
/**
|
|
41
51
|
* A unique symbol used to access the parseWithDependency method on derived parsers.
|
|
42
52
|
* @since 0.10.0
|
|
@@ -363,6 +373,14 @@ interface DerivedValueParser<M extends Mode = "sync", T = unknown, S = unknown>
|
|
|
363
373
|
* @internal
|
|
364
374
|
*/
|
|
365
375
|
readonly [defaultValues]?: () => readonly unknown[];
|
|
376
|
+
/**
|
|
377
|
+
* The single default value thunk for single-source derived parsers.
|
|
378
|
+
* Read by the dependency-metadata bridge; not consumed by
|
|
379
|
+
* `createDeferredParseState()`.
|
|
380
|
+
* @internal
|
|
381
|
+
* @since 1.0.0
|
|
382
|
+
*/
|
|
383
|
+
readonly [singleDefaultValue]?: () => S;
|
|
366
384
|
/**
|
|
367
385
|
* Parses the input using the actual dependency value instead of the default.
|
|
368
386
|
* This method is used during dependency resolution in `complete()`.
|
|
@@ -791,4 +809,4 @@ type DependencyError = {
|
|
|
791
809
|
*/
|
|
792
810
|
declare function formatDependencyError(error: DependencyError): Message;
|
|
793
811
|
//#endregion
|
|
794
|
-
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
|
812
|
+
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
package/dist/dependency.d.ts
CHANGED
|
@@ -37,6 +37,16 @@ declare const dependencyIds: unique symbol;
|
|
|
37
37
|
* @since 0.10.0
|
|
38
38
|
*/
|
|
39
39
|
declare const defaultValues: unique symbol;
|
|
40
|
+
/**
|
|
41
|
+
* A unique symbol used to store the single default value thunk on derived
|
|
42
|
+
* parsers created by {@link DependencySource.derive}. Unlike
|
|
43
|
+
* {@link defaultValues} (which `createDeferredParseState` reads eagerly),
|
|
44
|
+
* this symbol is only read by the dependency-metadata bridge so that
|
|
45
|
+
* single-source defaults are accessible without double evaluation.
|
|
46
|
+
* @internal
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
*/
|
|
49
|
+
declare const singleDefaultValue: unique symbol;
|
|
40
50
|
/**
|
|
41
51
|
* A unique symbol used to access the parseWithDependency method on derived parsers.
|
|
42
52
|
* @since 0.10.0
|
|
@@ -363,6 +373,14 @@ interface DerivedValueParser<M extends Mode = "sync", T = unknown, S = unknown>
|
|
|
363
373
|
* @internal
|
|
364
374
|
*/
|
|
365
375
|
readonly [defaultValues]?: () => readonly unknown[];
|
|
376
|
+
/**
|
|
377
|
+
* The single default value thunk for single-source derived parsers.
|
|
378
|
+
* Read by the dependency-metadata bridge; not consumed by
|
|
379
|
+
* `createDeferredParseState()`.
|
|
380
|
+
* @internal
|
|
381
|
+
* @since 1.0.0
|
|
382
|
+
*/
|
|
383
|
+
readonly [singleDefaultValue]?: () => S;
|
|
366
384
|
/**
|
|
367
385
|
* Parses the input using the actual dependency value instead of the default.
|
|
368
386
|
* This method is used during dependency resolution in `complete()`.
|
|
@@ -791,4 +809,4 @@ type DependencyError = {
|
|
|
791
809
|
*/
|
|
792
810
|
declare function formatDependencyError(error: DependencyError): Message;
|
|
793
811
|
//#endregion
|
|
794
|
-
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
|
812
|
+
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
package/dist/dependency.js
CHANGED
|
@@ -33,6 +33,16 @@ const dependencyIds = Symbol.for("@optique/core/dependency/dependencyIds");
|
|
|
33
33
|
*/
|
|
34
34
|
const defaultValues = Symbol.for("@optique/core/dependency/defaultValues");
|
|
35
35
|
/**
|
|
36
|
+
* A unique symbol used to store the single default value thunk on derived
|
|
37
|
+
* parsers created by {@link DependencySource.derive}. Unlike
|
|
38
|
+
* {@link defaultValues} (which `createDeferredParseState` reads eagerly),
|
|
39
|
+
* this symbol is only read by the dependency-metadata bridge so that
|
|
40
|
+
* single-source defaults are accessible without double evaluation.
|
|
41
|
+
* @internal
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
*/
|
|
44
|
+
const singleDefaultValue = Symbol.for("@optique/core/dependency/singleDefaultValue");
|
|
45
|
+
/**
|
|
36
46
|
* A unique symbol used to access the parseWithDependency method on derived parsers.
|
|
37
47
|
* @since 0.10.0
|
|
38
48
|
*/
|
|
@@ -504,6 +514,7 @@ function createSyncDerivedParser(sourceId, options) {
|
|
|
504
514
|
},
|
|
505
515
|
[derivedValueParserMarker]: true,
|
|
506
516
|
[dependencyId]: sourceId,
|
|
517
|
+
[singleDefaultValue]: options.defaultValue,
|
|
507
518
|
parse(input) {
|
|
508
519
|
let derivedParser;
|
|
509
520
|
try {
|
|
@@ -596,6 +607,7 @@ function createAsyncDerivedParserFromAsyncFactory(sourceId, options) {
|
|
|
596
607
|
},
|
|
597
608
|
[derivedValueParserMarker]: true,
|
|
598
609
|
[dependencyId]: sourceId,
|
|
610
|
+
[singleDefaultValue]: options.defaultValue,
|
|
599
611
|
parse(input) {
|
|
600
612
|
let derivedParser;
|
|
601
613
|
try {
|
|
@@ -675,6 +687,7 @@ function createAsyncDerivedParserFromSyncFactory(sourceId, options) {
|
|
|
675
687
|
},
|
|
676
688
|
[derivedValueParserMarker]: true,
|
|
677
689
|
[dependencyId]: sourceId,
|
|
690
|
+
[singleDefaultValue]: options.defaultValue,
|
|
678
691
|
parse(input) {
|
|
679
692
|
let derivedParser;
|
|
680
693
|
try {
|
|
@@ -973,4 +986,4 @@ function formatDependencyError(error) {
|
|
|
973
986
|
}
|
|
974
987
|
|
|
975
988
|
//#endregion
|
|
976
|
-
export { DependencyRegistry, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
|
989
|
+
export { DependencyRegistry, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker };
|
package/dist/index.cjs
CHANGED
|
@@ -124,6 +124,7 @@ exports.runParserSync = require_facade.runParserSync;
|
|
|
124
124
|
exports.runWith = require_facade.runWith;
|
|
125
125
|
exports.runWithAsync = require_facade.runWithAsync;
|
|
126
126
|
exports.runWithSync = require_facade.runWithSync;
|
|
127
|
+
exports.singleDefaultValue = require_dependency.singleDefaultValue;
|
|
127
128
|
exports.socketAddress = require_valueparser.socketAddress;
|
|
128
129
|
exports.string = require_valueparser.string;
|
|
129
130
|
exports.suggest = require_parser.suggest;
|
package/dist/index.d.cts
CHANGED
|
@@ -6,10 +6,10 @@ import { DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, Doc
|
|
|
6
6
|
import { ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, DeferredMap, DomainOptions, EmailOptions, FloatOptions, HostnameOptions, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, LocaleOptions, MacAddressOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, SocketAddressOptions, SocketAddressValue, StringOptions, UrlOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, checkBooleanOption, checkEnumOption, choice, cidr, domain, email, float, hostname, integer, ip, ipv4, ipv6, isValueParser, locale, macAddress, port, portRange, socketAddress, string, url, uuid } from "./valueparser.cjs";
|
|
7
7
|
import { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, GroupOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, tuple } from "./constructs.cjs";
|
|
8
8
|
import { MultipleErrorOptions, MultipleOptions, WithDefaultError, WithDefaultOptions, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.cjs";
|
|
9
|
-
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker } from "./dependency.cjs";
|
|
9
|
+
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker } from "./dependency.cjs";
|
|
10
10
|
import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, option, passThrough } from "./primitives.cjs";
|
|
11
11
|
import { CombineModes, DocState, ExecutionContext, ExecutionPhase, InferMode, InferValue, Mode, ModeIterable, ModeValue, ParseFrame, Parser, ParserContext, ParserResult, Result, Suggestion, createParserContext, getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./parser.cjs";
|
|
12
12
|
import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.cjs";
|
|
13
13
|
import { ParserValuePlaceholder, SourceContext } from "./context.cjs";
|
|
14
14
|
import { CommandSubConfig, ContextOptionsParam, ExtractRequiredOptions, OptionSubConfig, RunOptions, RunParserError, RunWithOptions, SubstituteParserValue, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.cjs";
|
|
15
|
-
export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandOptions, CommandSubConfig, ConditionalErrorOptions, ConditionalOptions, ContextOptionsParam, DeferredMap, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DomainOptions, DuplicateOptionError, EmailOptions, ExecutionContext, ExecutionPhase, ExtractRequiredOptions, FlagErrorOptions, FlagOptions, FloatOptions, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OptionSubConfig, OrErrorOptions, OrOptions, ParseFrame, type ParseOptions, Parser, ParserContext, ParserResult, ParserValuePlaceholder, PassThroughFormat, PassThroughOptions, PendingDependencySourceState, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, ResolvedDependency, Result, RunOptions, RunParserError, RunWithOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, StringOptions, SubstituteParserValue, Suggestion, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, annotationKey, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createParserContext, createPendingDependencySourceState, deduplicateDocEntries, deduplicateDocFragments, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDefaultValuesFunction, getDependencyIds, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isPendingDependencySourceState, isSuggestionHidden, isUsageHidden, isValueParser, isWrappedDependencySource, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, parseWithDependency, passThrough, pendingDependencySourceStateMarker, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, socketAddress, string, suggest, suggestAsync, suggestSync, suggestWithDependency, text, transformsDependencyValue, transformsDependencyValueMarker, tuple, url, uuid, value, valueSet, values, withDefault, wrappedDependencySourceMarker, zsh };
|
|
15
|
+
export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandOptions, CommandSubConfig, ConditionalErrorOptions, ConditionalOptions, ContextOptionsParam, DeferredMap, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DomainOptions, DuplicateOptionError, EmailOptions, ExecutionContext, ExecutionPhase, ExtractRequiredOptions, FlagErrorOptions, FlagOptions, FloatOptions, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OptionSubConfig, OrErrorOptions, OrOptions, ParseFrame, type ParseOptions, Parser, ParserContext, ParserResult, ParserValuePlaceholder, PassThroughFormat, PassThroughOptions, PendingDependencySourceState, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, ResolvedDependency, Result, RunOptions, RunParserError, RunWithOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, StringOptions, SubstituteParserValue, Suggestion, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, annotationKey, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createParserContext, createPendingDependencySourceState, deduplicateDocEntries, deduplicateDocFragments, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDefaultValuesFunction, getDependencyIds, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isPendingDependencySourceState, isSuggestionHidden, isUsageHidden, isValueParser, isWrappedDependencySource, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, parseWithDependency, passThrough, pendingDependencySourceStateMarker, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, singleDefaultValue, socketAddress, string, suggest, suggestAsync, suggestSync, suggestWithDependency, text, transformsDependencyValue, transformsDependencyValueMarker, tuple, url, uuid, value, valueSet, values, withDefault, wrappedDependencySourceMarker, zsh };
|
package/dist/index.d.ts
CHANGED
|
@@ -6,10 +6,10 @@ import { DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, Doc
|
|
|
6
6
|
import { ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, DeferredMap, DomainOptions, EmailOptions, FloatOptions, HostnameOptions, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, LocaleOptions, MacAddressOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, SocketAddressOptions, SocketAddressValue, StringOptions, UrlOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, checkBooleanOption, checkEnumOption, choice, cidr, domain, email, float, hostname, integer, ip, ipv4, ipv6, isValueParser, locale, macAddress, port, portRange, socketAddress, string, url, uuid } from "./valueparser.js";
|
|
7
7
|
import { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, GroupOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, tuple } from "./constructs.js";
|
|
8
8
|
import { MultipleErrorOptions, MultipleOptions, WithDefaultError, WithDefaultOptions, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.js";
|
|
9
|
-
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker } from "./dependency.js";
|
|
9
|
+
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, PendingDependencySourceState, ResolvedDependency, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker } from "./dependency.js";
|
|
10
10
|
import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, option, passThrough } from "./primitives.js";
|
|
11
11
|
import { CombineModes, DocState, ExecutionContext, ExecutionPhase, InferMode, InferValue, Mode, ModeIterable, ModeValue, ParseFrame, Parser, ParserContext, ParserResult, Result, Suggestion, createParserContext, getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./parser.js";
|
|
12
12
|
import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.js";
|
|
13
13
|
import { ParserValuePlaceholder, SourceContext } from "./context.js";
|
|
14
14
|
import { CommandSubConfig, ContextOptionsParam, ExtractRequiredOptions, OptionSubConfig, RunOptions, RunParserError, RunWithOptions, SubstituteParserValue, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.js";
|
|
15
|
-
export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandOptions, CommandSubConfig, ConditionalErrorOptions, ConditionalOptions, ContextOptionsParam, DeferredMap, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DomainOptions, DuplicateOptionError, EmailOptions, ExecutionContext, ExecutionPhase, ExtractRequiredOptions, FlagErrorOptions, FlagOptions, FloatOptions, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OptionSubConfig, OrErrorOptions, OrOptions, ParseFrame, type ParseOptions, Parser, ParserContext, ParserResult, ParserValuePlaceholder, PassThroughFormat, PassThroughOptions, PendingDependencySourceState, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, ResolvedDependency, Result, RunOptions, RunParserError, RunWithOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, StringOptions, SubstituteParserValue, Suggestion, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, annotationKey, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createParserContext, createPendingDependencySourceState, deduplicateDocEntries, deduplicateDocFragments, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDefaultValuesFunction, getDependencyIds, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isPendingDependencySourceState, isSuggestionHidden, isUsageHidden, isValueParser, isWrappedDependencySource, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, parseWithDependency, passThrough, pendingDependencySourceStateMarker, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, socketAddress, string, suggest, suggestAsync, suggestSync, suggestWithDependency, text, transformsDependencyValue, transformsDependencyValueMarker, tuple, url, uuid, value, valueSet, values, withDefault, wrappedDependencySourceMarker, zsh };
|
|
15
|
+
export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandOptions, CommandSubConfig, ConditionalErrorOptions, ConditionalOptions, ContextOptionsParam, DeferredMap, DeferredParseState, DependencyError, DependencyMode, DependencyRegistry, DependencySource, DependencySourceState, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DomainOptions, DuplicateOptionError, EmailOptions, ExecutionContext, ExecutionPhase, ExtractRequiredOptions, FlagErrorOptions, FlagOptions, FloatOptions, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OptionSubConfig, OrErrorOptions, OrOptions, ParseFrame, type ParseOptions, Parser, ParserContext, ParserResult, ParserValuePlaceholder, PassThroughFormat, PassThroughOptions, PendingDependencySourceState, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, ResolvedDependency, Result, RunOptions, RunParserError, RunWithOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, StringOptions, SubstituteParserValue, Suggestion, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, annotationKey, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createParserContext, createPendingDependencySourceState, deduplicateDocEntries, deduplicateDocFragments, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDefaultValuesFunction, getDependencyIds, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isPendingDependencySourceState, isSuggestionHidden, isUsageHidden, isValueParser, isWrappedDependencySource, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, parseWithDependency, passThrough, pendingDependencySourceStateMarker, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, singleDefaultValue, socketAddress, string, suggest, suggestAsync, suggestSync, suggestWithDependency, text, transformsDependencyValue, transformsDependencyValueMarker, tuple, url, uuid, value, valueSet, values, withDefault, wrappedDependencySourceMarker, zsh };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { annotationKey, getAnnotations } from "./annotations.js";
|
|
2
2
|
import { commandLine, envVar, formatMessage, lineBreak, link, message, metavar, optionName, optionNames, text, value, valueSet, values } from "./message.js";
|
|
3
3
|
import { bash, fish, nu, pwsh, zsh } from "./completion.js";
|
|
4
|
-
import { DependencyRegistry, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker } from "./dependency.js";
|
|
4
|
+
import { DependencyRegistry, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, formatDependencyError, getDefaultValuesFunction, getDependencyIds, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, parseWithDependency, pendingDependencySourceStateMarker, singleDefaultValue, suggestWithDependency, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker } from "./dependency.js";
|
|
5
5
|
import { cloneUsage, cloneUsageTerm, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.js";
|
|
6
6
|
import { cloneDocEntry, deduplicateDocEntries, deduplicateDocFragments, formatDocPage, isDocEntryHidden } from "./doc.js";
|
|
7
7
|
import { DuplicateOptionError, concat, conditional, group, longestMatch, merge, object, or, tuple } from "./constructs.js";
|
|
@@ -12,4 +12,4 @@ import { argument, command, constant, fail, flag, option, passThrough } from "./
|
|
|
12
12
|
import { createParserContext, getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./parser.js";
|
|
13
13
|
import { RunParserError, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.js";
|
|
14
14
|
|
|
15
|
-
export { DependencyRegistry, DuplicateOptionError, RunParserError, WithDefaultError, annotationKey, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createParserContext, createPendingDependencySourceState, deduplicateDocEntries, deduplicateDocFragments, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDefaultValuesFunction, getDependencyIds, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isPendingDependencySourceState, isSuggestionHidden, isUsageHidden, isValueParser, isWrappedDependencySource, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, parseWithDependency, passThrough, pendingDependencySourceStateMarker, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, socketAddress, string, suggest, suggestAsync, suggestSync, suggestWithDependency, text, transformsDependencyValue, transformsDependencyValueMarker, tuple, url, uuid, value, valueSet, values, withDefault, wrappedDependencySourceMarker, zsh };
|
|
15
|
+
export { DependencyRegistry, DuplicateOptionError, RunParserError, WithDefaultError, annotationKey, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createParserContext, createPendingDependencySourceState, deduplicateDocEntries, deduplicateDocFragments, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDefaultValuesFunction, getDependencyIds, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isPendingDependencySourceState, isSuggestionHidden, isUsageHidden, isValueParser, isWrappedDependencySource, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, parseWithDependency, passThrough, pendingDependencySourceStateMarker, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, singleDefaultValue, socketAddress, string, suggest, suggestAsync, suggestSync, suggestWithDependency, text, transformsDependencyValue, transformsDependencyValueMarker, tuple, url, uuid, value, valueSet, values, withDefault, wrappedDependencySourceMarker, zsh };
|