@optique/core 0.10.0-dev.296 → 0.10.0-dev.298
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 +60 -29
- package/dist/constructs.js +60 -29
- package/dist/dependency.cjs +77 -0
- package/dist/dependency.d.cts +36 -2
- package/dist/dependency.d.ts +36 -2
- package/dist/dependency.js +76 -1
- package/dist/index.cjs +2 -0
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/parser.d.cts +9 -0
- package/dist/parser.d.ts +9 -0
- package/dist/primitives.cjs +83 -11
- package/dist/primitives.js +84 -12
- package/package.json +1 -1
package/dist/dependency.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NonEmptyString } from "./nonempty.js";
|
|
2
2
|
import { Message } from "./message.js";
|
|
3
3
|
import { ValueParser, ValueParserResult } from "./valueparser.js";
|
|
4
|
-
import { Mode } from "./parser.js";
|
|
4
|
+
import { Mode, Suggestion } from "./parser.js";
|
|
5
5
|
|
|
6
6
|
//#region src/dependency.d.ts
|
|
7
7
|
|
|
@@ -30,11 +30,23 @@ declare const DependencyId: unique symbol;
|
|
|
30
30
|
* @since 0.10.0
|
|
31
31
|
*/
|
|
32
32
|
declare const DependencyIds: unique symbol;
|
|
33
|
+
/**
|
|
34
|
+
* A unique symbol used to store the default values function on derived parsers.
|
|
35
|
+
* This is used during partial dependency resolution to fill in missing values.
|
|
36
|
+
* @since 0.10.0
|
|
37
|
+
*/
|
|
38
|
+
declare const DefaultValues: unique symbol;
|
|
33
39
|
/**
|
|
34
40
|
* A unique symbol used to access the parseWithDependency method on derived parsers.
|
|
35
41
|
* @since 0.10.0
|
|
36
42
|
*/
|
|
37
43
|
declare const ParseWithDependency: unique symbol;
|
|
44
|
+
/**
|
|
45
|
+
* A unique symbol used to access the suggestWithDependency method on derived parsers.
|
|
46
|
+
* This method generates suggestions using the provided dependency values instead of defaults.
|
|
47
|
+
* @since 0.10.0
|
|
48
|
+
*/
|
|
49
|
+
declare const SuggestWithDependency: unique symbol;
|
|
38
50
|
/**
|
|
39
51
|
* Combines two modes into a single mode.
|
|
40
52
|
* If either mode is async, the result is async.
|
|
@@ -327,6 +339,12 @@ interface DerivedValueParser<M extends Mode = "sync", T = unknown, S = unknown>
|
|
|
327
339
|
* @internal
|
|
328
340
|
*/
|
|
329
341
|
readonly [DependencyIds]?: readonly symbol[];
|
|
342
|
+
/**
|
|
343
|
+
* The default values function for this parser's dependencies.
|
|
344
|
+
* Used during partial dependency resolution to fill in missing values.
|
|
345
|
+
* @internal
|
|
346
|
+
*/
|
|
347
|
+
readonly [DefaultValues]?: () => readonly unknown[];
|
|
330
348
|
/**
|
|
331
349
|
* Parses the input using the actual dependency value instead of the default.
|
|
332
350
|
* This method is used during dependency resolution in `complete()`.
|
|
@@ -337,6 +355,16 @@ interface DerivedValueParser<M extends Mode = "sync", T = unknown, S = unknown>
|
|
|
337
355
|
* @internal
|
|
338
356
|
*/
|
|
339
357
|
readonly [ParseWithDependency]: (input: string, dependencyValue: S) => ValueParserResult<T> | Promise<ValueParserResult<T>>;
|
|
358
|
+
/**
|
|
359
|
+
* Generates suggestions using the provided dependency value instead of the default.
|
|
360
|
+
* This method is used during shell completion when dependency sources have been parsed.
|
|
361
|
+
*
|
|
362
|
+
* @param prefix The input prefix to filter suggestions.
|
|
363
|
+
* @param dependencyValue The resolved dependency value.
|
|
364
|
+
* @returns An iterable of suggestions.
|
|
365
|
+
* @internal
|
|
366
|
+
*/
|
|
367
|
+
readonly [SuggestWithDependency]?: (prefix: string, dependencyValue: S) => Iterable<Suggestion> | AsyncIterable<Suggestion>;
|
|
340
368
|
}
|
|
341
369
|
/**
|
|
342
370
|
* Creates a dependency source from a {@link ValueParser}.
|
|
@@ -484,6 +512,12 @@ interface DeferredParseState<T = unknown> {
|
|
|
484
512
|
* If present, this is used instead of `dependencyId`.
|
|
485
513
|
*/
|
|
486
514
|
readonly dependencyIds?: readonly symbol[];
|
|
515
|
+
/**
|
|
516
|
+
* The default values to use for dependencies that are not provided.
|
|
517
|
+
* For multi-dependency parsers, this is a tuple of default values in order.
|
|
518
|
+
* For single-dependency parsers, this is the single default value.
|
|
519
|
+
*/
|
|
520
|
+
readonly defaultValues?: readonly unknown[];
|
|
487
521
|
/**
|
|
488
522
|
* The preliminary parse result using the default dependency value.
|
|
489
523
|
* This is used as a fallback if dependency resolution is not needed
|
|
@@ -713,4 +747,4 @@ type DependencyError = {
|
|
|
713
747
|
*/
|
|
714
748
|
declare function formatDependencyError(error: DependencyError): Message;
|
|
715
749
|
//#endregion
|
|
716
|
-
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue };
|
|
750
|
+
export { AnyDependencySource, CombineMode, CombinedDependencyMode, DefaultValues, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, SuggestWithDependency, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue };
|
package/dist/dependency.js
CHANGED
|
@@ -27,11 +27,23 @@ const DependencyId = Symbol.for("@optique/core/dependency/DependencyId");
|
|
|
27
27
|
*/
|
|
28
28
|
const DependencyIds = Symbol.for("@optique/core/dependency/DependencyIds");
|
|
29
29
|
/**
|
|
30
|
+
* A unique symbol used to store the default values function on derived parsers.
|
|
31
|
+
* This is used during partial dependency resolution to fill in missing values.
|
|
32
|
+
* @since 0.10.0
|
|
33
|
+
*/
|
|
34
|
+
const DefaultValues = Symbol.for("@optique/core/dependency/DefaultValues");
|
|
35
|
+
/**
|
|
30
36
|
* A unique symbol used to access the parseWithDependency method on derived parsers.
|
|
31
37
|
* @since 0.10.0
|
|
32
38
|
*/
|
|
33
39
|
const ParseWithDependency = Symbol.for("@optique/core/dependency/ParseWithDependency");
|
|
34
40
|
/**
|
|
41
|
+
* A unique symbol used to access the suggestWithDependency method on derived parsers.
|
|
42
|
+
* This method generates suggestions using the provided dependency values instead of defaults.
|
|
43
|
+
* @since 0.10.0
|
|
44
|
+
*/
|
|
45
|
+
const SuggestWithDependency = Symbol.for("@optique/core/dependency/SuggestWithDependency");
|
|
46
|
+
/**
|
|
35
47
|
* Creates a dependency source from a {@link ValueParser}.
|
|
36
48
|
*
|
|
37
49
|
* A dependency source wraps an existing value parser and enables creating
|
|
@@ -195,6 +207,7 @@ function createSyncDerivedFromParser(sourceId, options) {
|
|
|
195
207
|
[DerivedValueParserMarker]: true,
|
|
196
208
|
[DependencyId]: sourceId,
|
|
197
209
|
[DependencyIds]: allDependencyIds,
|
|
210
|
+
[DefaultValues]: options.defaultValues,
|
|
198
211
|
parse(input) {
|
|
199
212
|
const sourceValues = options.defaultValues();
|
|
200
213
|
const derivedParser = options.factory(...sourceValues);
|
|
@@ -222,6 +235,16 @@ function createSyncDerivedFromParser(sourceId, options) {
|
|
|
222
235
|
const sourceValues = options.defaultValues();
|
|
223
236
|
const derivedParser = options.factory(...sourceValues);
|
|
224
237
|
if (derivedParser.suggest) yield* derivedParser.suggest(prefix);
|
|
238
|
+
},
|
|
239
|
+
*[SuggestWithDependency](prefix, dependencyValue) {
|
|
240
|
+
let derivedParser;
|
|
241
|
+
try {
|
|
242
|
+
derivedParser = options.factory(...dependencyValue);
|
|
243
|
+
} catch {
|
|
244
|
+
const sourceValues = options.defaultValues();
|
|
245
|
+
derivedParser = options.factory(...sourceValues);
|
|
246
|
+
}
|
|
247
|
+
if (derivedParser.suggest) yield* derivedParser.suggest(prefix);
|
|
225
248
|
}
|
|
226
249
|
};
|
|
227
250
|
}
|
|
@@ -237,6 +260,7 @@ function createAsyncDerivedFromParserFromAsyncFactory(sourceId, options) {
|
|
|
237
260
|
[DerivedValueParserMarker]: true,
|
|
238
261
|
[DependencyId]: sourceId,
|
|
239
262
|
[DependencyIds]: allDependencyIds,
|
|
263
|
+
[DefaultValues]: options.defaultValues,
|
|
240
264
|
parse(input) {
|
|
241
265
|
const sourceValues = options.defaultValues();
|
|
242
266
|
const derivedParser = options.factory(...sourceValues);
|
|
@@ -264,6 +288,16 @@ function createAsyncDerivedFromParserFromAsyncFactory(sourceId, options) {
|
|
|
264
288
|
const sourceValues = options.defaultValues();
|
|
265
289
|
const derivedParser = options.factory(...sourceValues);
|
|
266
290
|
if (derivedParser.suggest) for await (const suggestion of derivedParser.suggest(prefix)) yield suggestion;
|
|
291
|
+
},
|
|
292
|
+
async *[SuggestWithDependency](prefix, dependencyValue) {
|
|
293
|
+
let derivedParser;
|
|
294
|
+
try {
|
|
295
|
+
derivedParser = options.factory(...dependencyValue);
|
|
296
|
+
} catch {
|
|
297
|
+
const sourceValues = options.defaultValues();
|
|
298
|
+
derivedParser = options.factory(...sourceValues);
|
|
299
|
+
}
|
|
300
|
+
if (derivedParser.suggest) for await (const suggestion of derivedParser.suggest(prefix)) yield suggestion;
|
|
267
301
|
}
|
|
268
302
|
};
|
|
269
303
|
}
|
|
@@ -279,6 +313,7 @@ function createAsyncDerivedFromParserFromSyncFactory(sourceId, options) {
|
|
|
279
313
|
[DerivedValueParserMarker]: true,
|
|
280
314
|
[DependencyId]: sourceId,
|
|
281
315
|
[DependencyIds]: allDependencyIds,
|
|
316
|
+
[DefaultValues]: options.defaultValues,
|
|
282
317
|
parse(input) {
|
|
283
318
|
const sourceValues = options.defaultValues();
|
|
284
319
|
const derivedParser = options.factory(...sourceValues);
|
|
@@ -306,6 +341,16 @@ function createAsyncDerivedFromParserFromSyncFactory(sourceId, options) {
|
|
|
306
341
|
const sourceValues = options.defaultValues();
|
|
307
342
|
const derivedParser = options.factory(...sourceValues);
|
|
308
343
|
if (derivedParser.suggest) yield* derivedParser.suggest(prefix);
|
|
344
|
+
},
|
|
345
|
+
*[SuggestWithDependency](prefix, dependencyValue) {
|
|
346
|
+
let derivedParser;
|
|
347
|
+
try {
|
|
348
|
+
derivedParser = options.factory(...dependencyValue);
|
|
349
|
+
} catch {
|
|
350
|
+
const sourceValues = options.defaultValues();
|
|
351
|
+
derivedParser = options.factory(...sourceValues);
|
|
352
|
+
}
|
|
353
|
+
if (derivedParser.suggest) yield* derivedParser.suggest(prefix);
|
|
309
354
|
}
|
|
310
355
|
};
|
|
311
356
|
}
|
|
@@ -360,6 +405,15 @@ function createSyncDerivedParser(sourceId, options) {
|
|
|
360
405
|
const sourceValue = options.defaultValue();
|
|
361
406
|
const derivedParser = options.factory(sourceValue);
|
|
362
407
|
if (derivedParser.suggest) yield* derivedParser.suggest(prefix);
|
|
408
|
+
},
|
|
409
|
+
*[SuggestWithDependency](prefix, dependencyValue) {
|
|
410
|
+
let derivedParser;
|
|
411
|
+
try {
|
|
412
|
+
derivedParser = options.factory(dependencyValue);
|
|
413
|
+
} catch {
|
|
414
|
+
derivedParser = options.factory(options.defaultValue());
|
|
415
|
+
}
|
|
416
|
+
if (derivedParser.suggest) yield* derivedParser.suggest(prefix);
|
|
363
417
|
}
|
|
364
418
|
};
|
|
365
419
|
}
|
|
@@ -400,6 +454,15 @@ function createAsyncDerivedParserFromAsyncFactory(sourceId, options) {
|
|
|
400
454
|
const sourceValue = options.defaultValue();
|
|
401
455
|
const derivedParser = options.factory(sourceValue);
|
|
402
456
|
if (derivedParser.suggest) for await (const suggestion of derivedParser.suggest(prefix)) yield suggestion;
|
|
457
|
+
},
|
|
458
|
+
async *[SuggestWithDependency](prefix, dependencyValue) {
|
|
459
|
+
let derivedParser;
|
|
460
|
+
try {
|
|
461
|
+
derivedParser = options.factory(dependencyValue);
|
|
462
|
+
} catch {
|
|
463
|
+
derivedParser = options.factory(options.defaultValue());
|
|
464
|
+
}
|
|
465
|
+
if (derivedParser.suggest) for await (const suggestion of derivedParser.suggest(prefix)) yield suggestion;
|
|
403
466
|
}
|
|
404
467
|
};
|
|
405
468
|
}
|
|
@@ -440,6 +503,15 @@ function createAsyncDerivedParserFromSyncFactory(sourceId, options) {
|
|
|
440
503
|
const sourceValue = options.defaultValue();
|
|
441
504
|
const derivedParser = options.factory(sourceValue);
|
|
442
505
|
if (derivedParser.suggest) yield* derivedParser.suggest(prefix);
|
|
506
|
+
},
|
|
507
|
+
*[SuggestWithDependency](prefix, dependencyValue) {
|
|
508
|
+
let derivedParser;
|
|
509
|
+
try {
|
|
510
|
+
derivedParser = options.factory(dependencyValue);
|
|
511
|
+
} catch {
|
|
512
|
+
derivedParser = options.factory(options.defaultValue());
|
|
513
|
+
}
|
|
514
|
+
if (derivedParser.suggest) yield* derivedParser.suggest(prefix);
|
|
443
515
|
}
|
|
444
516
|
};
|
|
445
517
|
}
|
|
@@ -471,12 +543,15 @@ function isDeferredParseState(value) {
|
|
|
471
543
|
*/
|
|
472
544
|
function createDeferredParseState(rawInput, parser, preliminaryResult) {
|
|
473
545
|
const multipleIds = DependencyIds in parser ? parser[DependencyIds] : void 0;
|
|
546
|
+
const defaultValuesFn = DefaultValues in parser ? parser[DefaultValues] : void 0;
|
|
547
|
+
const defaultVals = defaultValuesFn ? defaultValuesFn() : void 0;
|
|
474
548
|
return {
|
|
475
549
|
[DeferredParseMarker]: true,
|
|
476
550
|
rawInput,
|
|
477
551
|
parser,
|
|
478
552
|
dependencyId: parser[DependencyId],
|
|
479
553
|
dependencyIds: multipleIds,
|
|
554
|
+
defaultValues: defaultVals,
|
|
480
555
|
preliminaryResult
|
|
481
556
|
};
|
|
482
557
|
}
|
|
@@ -644,4 +719,4 @@ function formatDependencyError(error) {
|
|
|
644
719
|
}
|
|
645
720
|
|
|
646
721
|
//#endregion
|
|
647
|
-
export { DeferredParseMarker, DependencyId, DependencyIds, DependencyRegistry, DependencySourceMarker, DependencySourceStateMarker, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceStateMarker, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue };
|
|
722
|
+
export { DefaultValues, DeferredParseMarker, DependencyId, DependencyIds, DependencyRegistry, DependencySourceMarker, DependencySourceStateMarker, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceStateMarker, SuggestWithDependency, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue };
|
package/dist/index.cjs
CHANGED
|
@@ -11,6 +11,7 @@ const require_primitives = require('./primitives.cjs');
|
|
|
11
11
|
const require_parser = require('./parser.cjs');
|
|
12
12
|
const require_facade = require('./facade.cjs');
|
|
13
13
|
|
|
14
|
+
exports.DefaultValues = require_dependency.DefaultValues;
|
|
14
15
|
exports.DeferredParseMarker = require_dependency.DeferredParseMarker;
|
|
15
16
|
exports.DependencyId = require_dependency.DependencyId;
|
|
16
17
|
exports.DependencyIds = require_dependency.DependencyIds;
|
|
@@ -23,6 +24,7 @@ exports.ParseWithDependency = require_dependency.ParseWithDependency;
|
|
|
23
24
|
exports.PendingDependencySourceStateMarker = require_dependency.PendingDependencySourceStateMarker;
|
|
24
25
|
exports.RunError = require_facade.RunError;
|
|
25
26
|
exports.RunParserError = require_facade.RunParserError;
|
|
27
|
+
exports.SuggestWithDependency = require_dependency.SuggestWithDependency;
|
|
26
28
|
exports.TransformsDependencyValueMarker = require_dependency.TransformsDependencyValueMarker;
|
|
27
29
|
exports.WithDefaultError = require_modifiers.WithDefaultError;
|
|
28
30
|
exports.WrappedDependencySourceMarker = require_dependency.WrappedDependencySourceMarker;
|
package/dist/index.d.cts
CHANGED
|
@@ -5,9 +5,9 @@ import { DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, Doc
|
|
|
5
5
|
import { ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, FloatOptions, IntegerOptionsBigInt, IntegerOptionsNumber, LocaleOptions, StringOptions, UrlOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, choice, float, integer, isValueParser, locale, string, url, uuid } from "./valueparser.cjs";
|
|
6
6
|
import { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, tuple } from "./constructs.cjs";
|
|
7
7
|
import { MultipleErrorOptions, MultipleOptions, WithDefaultError, WithDefaultOptions, map, multiple, optional, withDefault } from "./modifiers.cjs";
|
|
8
|
-
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue } from "./dependency.cjs";
|
|
8
|
+
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DefaultValues, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, SuggestWithDependency, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue } from "./dependency.cjs";
|
|
9
9
|
import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, flag, option, passThrough } from "./primitives.cjs";
|
|
10
10
|
import { CombineModes, DocState, InferMode, InferValue, Mode, ModeIterable, ModeValue, Parser, ParserContext, ParserResult, Result, Suggestion, getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./parser.cjs";
|
|
11
11
|
import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.cjs";
|
|
12
12
|
import { RunError, RunOptions, RunParserError, run, runParser, runParserAsync, runParserSync } from "./facade.cjs";
|
|
13
|
-
export { AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandOptions, ConditionalErrorOptions, ConditionalOptions, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DuplicateOptionError, FlagErrorOptions, FlagOptions, FloatOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, Message, MessageFormatOptions, MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OrErrorOptions, OrOptions, ParseWithDependency, Parser, ParserContext, ParserResult, PassThroughFormat, PassThroughOptions, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, Result, RunError, RunOptions, RunParserError, ShellCompletion, ShowDefaultOptions, StringOptions, Suggestion, TransformsDependencyValueMarker, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, ValueSetOptions, WithDefaultError, WithDefaultOptions, WrappedDependencySourceMarker, argument, bash, choice, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractOptionNames, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getDocPage, getDocPageAsync, getDocPageSync, group, integer, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isNonEmptyString, isPendingDependencySourceState, isValueParser, isWrappedDependencySource, locale, longestMatch, map, merge, message, metavar, multiple, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, pwsh, run, runParser, runParserAsync, runParserSync, string, suggest, suggestAsync, suggestSync, text, transformsDependencyValue, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
|
13
|
+
export { AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandOptions, ConditionalErrorOptions, ConditionalOptions, DefaultValues, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DuplicateOptionError, FlagErrorOptions, FlagOptions, FloatOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, Message, MessageFormatOptions, MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OrErrorOptions, OrOptions, ParseWithDependency, Parser, ParserContext, ParserResult, PassThroughFormat, PassThroughOptions, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, Result, RunError, RunOptions, RunParserError, ShellCompletion, ShowDefaultOptions, StringOptions, SuggestWithDependency, Suggestion, TransformsDependencyValueMarker, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, ValueSetOptions, WithDefaultError, WithDefaultOptions, WrappedDependencySourceMarker, argument, bash, choice, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractOptionNames, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getDocPage, getDocPageAsync, getDocPageSync, group, integer, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isNonEmptyString, isPendingDependencySourceState, isValueParser, isWrappedDependencySource, locale, longestMatch, map, merge, message, metavar, multiple, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, pwsh, run, runParser, runParserAsync, runParserSync, string, suggest, suggestAsync, suggestSync, text, transformsDependencyValue, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
package/dist/index.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ import { DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, Doc
|
|
|
5
5
|
import { ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, FloatOptions, IntegerOptionsBigInt, IntegerOptionsNumber, LocaleOptions, StringOptions, UrlOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, choice, float, integer, isValueParser, locale, string, url, uuid } from "./valueparser.js";
|
|
6
6
|
import { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, tuple } from "./constructs.js";
|
|
7
7
|
import { MultipleErrorOptions, MultipleOptions, WithDefaultError, WithDefaultOptions, map, multiple, optional, withDefault } from "./modifiers.js";
|
|
8
|
-
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue } from "./dependency.js";
|
|
8
|
+
import { AnyDependencySource, CombineMode, CombinedDependencyMode, DefaultValues, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, SuggestWithDependency, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue } from "./dependency.js";
|
|
9
9
|
import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, flag, option, passThrough } from "./primitives.js";
|
|
10
10
|
import { CombineModes, DocState, InferMode, InferValue, Mode, ModeIterable, ModeValue, Parser, ParserContext, ParserResult, Result, Suggestion, getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./parser.js";
|
|
11
11
|
import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.js";
|
|
12
12
|
import { RunError, RunOptions, RunParserError, run, runParser, runParserAsync, runParserSync } from "./facade.js";
|
|
13
|
-
export { AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandOptions, ConditionalErrorOptions, ConditionalOptions, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DuplicateOptionError, FlagErrorOptions, FlagOptions, FloatOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, Message, MessageFormatOptions, MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OrErrorOptions, OrOptions, ParseWithDependency, Parser, ParserContext, ParserResult, PassThroughFormat, PassThroughOptions, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, Result, RunError, RunOptions, RunParserError, ShellCompletion, ShowDefaultOptions, StringOptions, Suggestion, TransformsDependencyValueMarker, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, ValueSetOptions, WithDefaultError, WithDefaultOptions, WrappedDependencySourceMarker, argument, bash, choice, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractOptionNames, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getDocPage, getDocPageAsync, getDocPageSync, group, integer, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isNonEmptyString, isPendingDependencySourceState, isValueParser, isWrappedDependencySource, locale, longestMatch, map, merge, message, metavar, multiple, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, pwsh, run, runParser, runParserAsync, runParserSync, string, suggest, suggestAsync, suggestSync, text, transformsDependencyValue, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
|
13
|
+
export { AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CombineMode, CombineModes, CombinedDependencyMode, CommandErrorOptions, CommandOptions, ConditionalErrorOptions, ConditionalOptions, DefaultValues, DeferredParseMarker, DeferredParseState, DependencyError, DependencyId, DependencyIds, DependencyMode, DependencyRegistry, DependencySource, DependencySourceMarker, DependencySourceState, DependencySourceStateMarker, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, DerivedValueParserMarker, DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, DocState, DuplicateOptionError, FlagErrorOptions, FlagOptions, FloatOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, Message, MessageFormatOptions, MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NoMatchContext, NonEmptyString, ObjectErrorOptions, ObjectOptions, OptionErrorOptions, OptionName, OptionOptions, OptionState, OrErrorOptions, OrOptions, ParseWithDependency, Parser, ParserContext, ParserResult, PassThroughFormat, PassThroughOptions, PendingDependencySourceState, PendingDependencySourceStateMarker, ResolvedDependency, Result, RunError, RunOptions, RunParserError, ShellCompletion, ShowDefaultOptions, StringOptions, SuggestWithDependency, Suggestion, TransformsDependencyValueMarker, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, ValueSetOptions, WithDefaultError, WithDefaultOptions, WrappedDependencySourceMarker, argument, bash, choice, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractOptionNames, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getDocPage, getDocPageAsync, getDocPageSync, group, integer, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isNonEmptyString, isPendingDependencySourceState, isValueParser, isWrappedDependencySource, locale, longestMatch, map, merge, message, metavar, multiple, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, pwsh, run, runParser, runParserAsync, runParserSync, string, suggest, suggestAsync, suggestSync, text, transformsDependencyValue, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { commandLine, envVar, formatMessage, message, metavar, optionName, optionNames, text, value, valueSet, values } from "./message.js";
|
|
2
2
|
import { bash, fish, nu, pwsh, zsh } from "./completion.js";
|
|
3
|
-
import { DeferredParseMarker, DependencyId, DependencyIds, DependencyRegistry, DependencySourceMarker, DependencySourceStateMarker, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceStateMarker, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue } from "./dependency.js";
|
|
3
|
+
import { DefaultValues, DeferredParseMarker, DependencyId, DependencyIds, DependencyRegistry, DependencySourceMarker, DependencySourceStateMarker, DerivedValueParserMarker, ParseWithDependency, PendingDependencySourceStateMarker, SuggestWithDependency, TransformsDependencyValueMarker, WrappedDependencySourceMarker, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, formatDependencyError, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue } from "./dependency.js";
|
|
4
4
|
import { extractArgumentMetavars, extractCommandNames, extractOptionNames, formatUsage, formatUsageTerm, normalizeUsage } from "./usage.js";
|
|
5
5
|
import { DuplicateOptionError, concat, conditional, group, longestMatch, merge, object, or, tuple } from "./constructs.js";
|
|
6
6
|
import { formatDocPage } from "./doc.js";
|
|
@@ -11,4 +11,4 @@ import { argument, command, constant, flag, option, passThrough } from "./primit
|
|
|
11
11
|
import { getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./parser.js";
|
|
12
12
|
import { RunError, RunParserError, run, runParser, runParserAsync, runParserSync } from "./facade.js";
|
|
13
13
|
|
|
14
|
-
export { DeferredParseMarker, DependencyId, DependencyIds, DependencyRegistry, DependencySourceMarker, DependencySourceStateMarker, DerivedValueParserMarker, DuplicateOptionError, ParseWithDependency, PendingDependencySourceStateMarker, RunError, RunParserError, TransformsDependencyValueMarker, WithDefaultError, WrappedDependencySourceMarker, argument, bash, choice, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractOptionNames, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getDocPage, getDocPageAsync, getDocPageSync, group, integer, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isNonEmptyString, isPendingDependencySourceState, isValueParser, isWrappedDependencySource, locale, longestMatch, map, merge, message, metavar, multiple, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, pwsh, run, runParser, runParserAsync, runParserSync, string, suggest, suggestAsync, suggestSync, text, transformsDependencyValue, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
|
14
|
+
export { DefaultValues, DeferredParseMarker, DependencyId, DependencyIds, DependencyRegistry, DependencySourceMarker, DependencySourceStateMarker, DerivedValueParserMarker, DuplicateOptionError, ParseWithDependency, PendingDependencySourceStateMarker, RunError, RunParserError, SuggestWithDependency, TransformsDependencyValueMarker, WithDefaultError, WrappedDependencySourceMarker, argument, bash, choice, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, dependency, deriveFrom, deriveFromAsync, deriveFromSync, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractOptionNames, fish, flag, float, formatDependencyError, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getDocPage, getDocPageAsync, getDocPageSync, group, integer, isDeferredParseState, isDependencySource, isDependencySourceState, isDerivedValueParser, isNonEmptyString, isPendingDependencySourceState, isValueParser, isWrappedDependencySource, locale, longestMatch, map, merge, message, metavar, multiple, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, pwsh, run, runParser, runParserAsync, runParserSync, string, suggest, suggestAsync, suggestSync, text, transformsDependencyValue, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
|
package/dist/parser.d.cts
CHANGED
|
@@ -187,6 +187,15 @@ interface ParserContext<TState> {
|
|
|
187
187
|
* @since 0.7.0
|
|
188
188
|
*/
|
|
189
189
|
readonly usage: Usage;
|
|
190
|
+
/**
|
|
191
|
+
* A registry containing resolved dependency values from DependencySource parsers.
|
|
192
|
+
* This is used during shell completion to provide suggestions based on
|
|
193
|
+
* the actual dependency values that have been parsed, rather than defaults.
|
|
194
|
+
* The type is `unknown` to avoid circular dependency issues; the actual type
|
|
195
|
+
* is `DependencyRegistry` from `./dependency.ts`.
|
|
196
|
+
* @since 0.10.0
|
|
197
|
+
*/
|
|
198
|
+
readonly dependencyRegistry?: unknown;
|
|
190
199
|
}
|
|
191
200
|
/**
|
|
192
201
|
* Represents a suggestion for command-line completion or guidance.
|
package/dist/parser.d.ts
CHANGED
|
@@ -187,6 +187,15 @@ interface ParserContext<TState> {
|
|
|
187
187
|
* @since 0.7.0
|
|
188
188
|
*/
|
|
189
189
|
readonly usage: Usage;
|
|
190
|
+
/**
|
|
191
|
+
* A registry containing resolved dependency values from DependencySource parsers.
|
|
192
|
+
* This is used during shell completion to provide suggestions based on
|
|
193
|
+
* the actual dependency values that have been parsed, rather than defaults.
|
|
194
|
+
* The type is `unknown` to avoid circular dependency issues; the actual type
|
|
195
|
+
* is `DependencyRegistry` from `./dependency.ts`.
|
|
196
|
+
* @since 0.10.0
|
|
197
|
+
*/
|
|
198
|
+
readonly dependencyRegistry?: unknown;
|
|
190
199
|
}
|
|
191
200
|
/**
|
|
192
201
|
* Represents a suggestion for command-line completion or guidance.
|
package/dist/primitives.cjs
CHANGED
|
@@ -53,6 +53,42 @@ function constant(value) {
|
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
|
+
* Internal helper to get suggestions from a value parser, using dependency values
|
|
57
|
+
* if the parser is a derived parser and dependency values are available.
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
function* getSuggestionsWithDependency(valueParser, prefix, dependencyRegistry) {
|
|
61
|
+
if (!valueParser.suggest) return;
|
|
62
|
+
if (require_dependency.isDerivedValueParser(valueParser) && require_dependency.SuggestWithDependency in valueParser) {
|
|
63
|
+
const derived = valueParser;
|
|
64
|
+
const suggestWithDep = derived[require_dependency.SuggestWithDependency];
|
|
65
|
+
if (suggestWithDep && dependencyRegistry) {
|
|
66
|
+
const depIds = require_dependency.DependencyIds in derived ? derived[require_dependency.DependencyIds] : [derived[require_dependency.DependencyId]];
|
|
67
|
+
const defaults = require_dependency.DefaultValues in derived ? derived[require_dependency.DefaultValues]?.() : void 0;
|
|
68
|
+
const registry = dependencyRegistry;
|
|
69
|
+
const dependencyValues = [];
|
|
70
|
+
let hasAnyValue = false;
|
|
71
|
+
for (let i = 0; i < depIds.length; i++) {
|
|
72
|
+
const depId = depIds[i];
|
|
73
|
+
if (registry.has(depId)) {
|
|
74
|
+
dependencyValues.push(registry.get(depId));
|
|
75
|
+
hasAnyValue = true;
|
|
76
|
+
} else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
|
|
77
|
+
else {
|
|
78
|
+
yield* valueParser.suggest(prefix);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (hasAnyValue) {
|
|
83
|
+
const depValue = depIds.length === 1 ? dependencyValues[0] : dependencyValues;
|
|
84
|
+
yield* suggestWithDep(prefix, depValue);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
yield* valueParser.suggest(prefix);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
56
92
|
* Internal sync helper for option suggest functionality.
|
|
57
93
|
* @internal
|
|
58
94
|
*/
|
|
@@ -64,7 +100,7 @@ function* suggestOptionSync(optionNames$1, valueParser, hidden, context, prefix)
|
|
|
64
100
|
const valuePart = prefix.slice(equalsIndex + 1);
|
|
65
101
|
if (optionNames$1.includes(optionPart)) {
|
|
66
102
|
if (valueParser && valueParser.suggest) {
|
|
67
|
-
const valueSuggestions = valueParser.
|
|
103
|
+
const valueSuggestions = getSuggestionsWithDependency(valueParser, valuePart, context.dependencyRegistry);
|
|
68
104
|
for (const suggestion of valueSuggestions) if (suggestion.kind === "literal") yield {
|
|
69
105
|
kind: "literal",
|
|
70
106
|
text: `${optionPart}=${suggestion.text}`,
|
|
@@ -93,9 +129,45 @@ function* suggestOptionSync(optionNames$1, valueParser, hidden, context, prefix)
|
|
|
93
129
|
const lastToken = context.buffer[context.buffer.length - 1];
|
|
94
130
|
if (optionNames$1.includes(lastToken)) shouldSuggestValues = true;
|
|
95
131
|
} else if (context.state === void 0 && context.buffer.length === 0) shouldSuggestValues = true;
|
|
96
|
-
if (shouldSuggestValues) yield* valueParser.
|
|
132
|
+
if (shouldSuggestValues) yield* getSuggestionsWithDependency(valueParser, prefix, context.dependencyRegistry);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Internal async helper to get suggestions from a value parser, using dependency values
|
|
138
|
+
* if the parser is a derived parser and dependency values are available.
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
async function* getSuggestionsWithDependencyAsync(valueParser, prefix, dependencyRegistry) {
|
|
142
|
+
if (!valueParser.suggest) return;
|
|
143
|
+
if (require_dependency.isDerivedValueParser(valueParser) && require_dependency.SuggestWithDependency in valueParser) {
|
|
144
|
+
const derived = valueParser;
|
|
145
|
+
const suggestWithDep = derived[require_dependency.SuggestWithDependency];
|
|
146
|
+
if (suggestWithDep && dependencyRegistry) {
|
|
147
|
+
const depIds = require_dependency.DependencyIds in derived ? derived[require_dependency.DependencyIds] : [derived[require_dependency.DependencyId]];
|
|
148
|
+
const defaults = require_dependency.DefaultValues in derived ? derived[require_dependency.DefaultValues]?.() : void 0;
|
|
149
|
+
const registry = dependencyRegistry;
|
|
150
|
+
const dependencyValues = [];
|
|
151
|
+
let hasAnyValue = false;
|
|
152
|
+
for (let i = 0; i < depIds.length; i++) {
|
|
153
|
+
const depId = depIds[i];
|
|
154
|
+
if (registry.has(depId)) {
|
|
155
|
+
dependencyValues.push(registry.get(depId));
|
|
156
|
+
hasAnyValue = true;
|
|
157
|
+
} else if (defaults && i < defaults.length) dependencyValues.push(defaults[i]);
|
|
158
|
+
else {
|
|
159
|
+
for await (const suggestion of valueParser.suggest(prefix)) yield suggestion;
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (hasAnyValue) {
|
|
164
|
+
const depValue = depIds.length === 1 ? dependencyValues[0] : dependencyValues;
|
|
165
|
+
for await (const suggestion of suggestWithDep(prefix, depValue)) yield suggestion;
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
97
168
|
}
|
|
98
169
|
}
|
|
170
|
+
for await (const suggestion of valueParser.suggest(prefix)) yield suggestion;
|
|
99
171
|
}
|
|
100
172
|
/**
|
|
101
173
|
* Internal async helper for option suggest functionality.
|
|
@@ -109,7 +181,7 @@ async function* suggestOptionAsync(optionNames$1, valueParser, hidden, context,
|
|
|
109
181
|
const valuePart = prefix.slice(equalsIndex + 1);
|
|
110
182
|
if (optionNames$1.includes(optionPart)) {
|
|
111
183
|
if (valueParser && valueParser.suggest) {
|
|
112
|
-
const valueSuggestions = valueParser.
|
|
184
|
+
const valueSuggestions = getSuggestionsWithDependencyAsync(valueParser, valuePart, context.dependencyRegistry);
|
|
113
185
|
for await (const suggestion of valueSuggestions) if (suggestion.kind === "literal") yield {
|
|
114
186
|
kind: "literal",
|
|
115
187
|
text: `${optionPart}=${suggestion.text}`,
|
|
@@ -138,7 +210,7 @@ async function* suggestOptionAsync(optionNames$1, valueParser, hidden, context,
|
|
|
138
210
|
const lastToken = context.buffer[context.buffer.length - 1];
|
|
139
211
|
if (optionNames$1.includes(lastToken)) shouldSuggestValues = true;
|
|
140
212
|
} else if (context.state === void 0 && context.buffer.length === 0) shouldSuggestValues = true;
|
|
141
|
-
if (shouldSuggestValues) for await (const suggestion of valueParser.
|
|
213
|
+
if (shouldSuggestValues) for await (const suggestion of getSuggestionsWithDependencyAsync(valueParser, prefix, context.dependencyRegistry)) yield suggestion;
|
|
142
214
|
}
|
|
143
215
|
}
|
|
144
216
|
}
|
|
@@ -146,17 +218,17 @@ async function* suggestOptionAsync(optionNames$1, valueParser, hidden, context,
|
|
|
146
218
|
* Internal sync helper for argument suggest functionality.
|
|
147
219
|
* @internal
|
|
148
220
|
*/
|
|
149
|
-
function* suggestArgumentSync(valueParser, hidden, prefix) {
|
|
221
|
+
function* suggestArgumentSync(valueParser, hidden, prefix, dependencyRegistry) {
|
|
150
222
|
if (hidden) return;
|
|
151
|
-
if (valueParser.suggest) yield* valueParser
|
|
223
|
+
if (valueParser.suggest) yield* getSuggestionsWithDependency(valueParser, prefix, dependencyRegistry);
|
|
152
224
|
}
|
|
153
225
|
/**
|
|
154
226
|
* Internal async helper for argument suggest functionality.
|
|
155
227
|
* @internal
|
|
156
228
|
*/
|
|
157
|
-
async function* suggestArgumentAsync(valueParser, hidden, prefix) {
|
|
229
|
+
async function* suggestArgumentAsync(valueParser, hidden, prefix, dependencyRegistry) {
|
|
158
230
|
if (hidden) return;
|
|
159
|
-
if (valueParser.suggest)
|
|
231
|
+
if (valueParser.suggest) yield* getSuggestionsWithDependencyAsync(valueParser, prefix, dependencyRegistry);
|
|
160
232
|
}
|
|
161
233
|
function option(...args) {
|
|
162
234
|
const lastArg = args.at(-1);
|
|
@@ -709,9 +781,9 @@ function argument(valueParser, options = {}) {
|
|
|
709
781
|
error: options.errors?.invalidValue ? typeof options.errors.invalidValue === "function" ? options.errors.invalidValue(state.error) : options.errors.invalidValue : require_message.message`${require_message.metavar(valueParser.metavar)}: ${state.error}`
|
|
710
782
|
};
|
|
711
783
|
},
|
|
712
|
-
suggest(
|
|
713
|
-
if (isAsync) return suggestArgumentAsync(valueParser, options.hidden ?? false, prefix);
|
|
714
|
-
return suggestArgumentSync(valueParser, options.hidden ?? false, prefix);
|
|
784
|
+
suggest(context, prefix) {
|
|
785
|
+
if (isAsync) return suggestArgumentAsync(valueParser, options.hidden ?? false, prefix, context.dependencyRegistry);
|
|
786
|
+
return suggestArgumentSync(valueParser, options.hidden ?? false, prefix, context.dependencyRegistry);
|
|
715
787
|
},
|
|
716
788
|
getDocFragments(_state, defaultValue) {
|
|
717
789
|
if (options.hidden) return {
|