@optique/core 1.0.0-dev.1596 → 1.0.0-dev.1602

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.
@@ -0,0 +1,123 @@
1
+ import { DependencyRegistryLike } from "./registry-types.js";
2
+ import { ValueParserResult } from "./valueparser.js";
3
+
4
+ //#region src/dependency-runtime.d.ts
5
+
6
+ /**
7
+ * The origin of a dependency source value.
8
+ *
9
+ * @internal
10
+ * @since 1.0.0
11
+ */
12
+ type DependencyValueOrigin = "cli" | "default" | "config" | "env" | "prompt" | "derived-precomplete";
13
+ /**
14
+ * A request to resolve one or more dependency values.
15
+ *
16
+ * @internal
17
+ * @since 1.0.0
18
+ */
19
+ interface DependencyRequest {
20
+ /** The dependency source IDs to resolve. */
21
+ readonly dependencyIds: readonly symbol[];
22
+ /** Optional default values (one per ID) for missing sources. */
23
+ readonly defaultValues?: readonly unknown[];
24
+ }
25
+ /**
26
+ * The result of a dependency resolution request.
27
+ *
28
+ * @internal
29
+ * @since 1.0.0
30
+ */
31
+ interface DependencyResolution {
32
+ /**
33
+ * - `"resolved"`: all dependency values are available.
34
+ * - `"partial"`: some are available, some are missing.
35
+ * - `"missing"`: none are available.
36
+ */
37
+ readonly kind: "resolved" | "partial" | "missing";
38
+ /** The resolved values (one per requested ID, `undefined` for missing). */
39
+ readonly values: readonly unknown[];
40
+ /** For each position, whether the value came from a default. */
41
+ readonly usedDefaults: readonly boolean[];
42
+ }
43
+ /**
44
+ * A failure that occurred while evaluating a missing-source default.
45
+ * Returned by `fillMissingSourceDefaults()` so the caller can propagate
46
+ * the error instead of silently treating the source as absent.
47
+ *
48
+ * @internal
49
+ * @since 1.0.0
50
+ */
51
+
52
+ /**
53
+ * A key for caching replayed parse results.
54
+ *
55
+ * @internal
56
+ * @since 1.0.0
57
+ */
58
+ interface ReplayKey {
59
+ /** Path from root to the parser node. */
60
+ readonly path: readonly PropertyKey[];
61
+ /** The raw input string that was parsed. */
62
+ readonly rawInput: string;
63
+ /** A stable fingerprint of the dependency values used. */
64
+ readonly dependencyFingerprint: string;
65
+ /**
66
+ * A per-parser identity string that disambiguates different derived
67
+ * parsers sharing the same path (e.g., alternative branches).
68
+ * @since 1.0.0
69
+ */
70
+ readonly parserFingerprint: string;
71
+ }
72
+ /**
73
+ * A runtime node representing a child parser's position, metadata, and state.
74
+ * Used as input to the shared runtime helpers.
75
+ *
76
+ * @internal
77
+ * @since 1.0.0
78
+ */
79
+
80
+ /**
81
+ * Dependency runtime context for centralized dependency resolution.
82
+ *
83
+ * @internal
84
+ * @since 1.0.0
85
+ */
86
+ interface DependencyRuntimeContext {
87
+ /** The underlying registry (for bridge interop). */
88
+ readonly registry: DependencyRegistryLike;
89
+ /** Register a source value with its origin. */
90
+ registerSource(sourceId: symbol, value: unknown, origin: DependencyValueOrigin): void;
91
+ /** Check if a source has been registered. */
92
+ hasSource(sourceId: symbol): boolean;
93
+ /** Get a registered source value. */
94
+ getSource(sourceId: symbol): unknown;
95
+ /** Resolve dependency values for a request. */
96
+ resolveDependencies(request: DependencyRequest): DependencyResolution;
97
+ /** Get a cached replay result. */
98
+ getReplayResult(key: ReplayKey): ValueParserResult<unknown> | undefined;
99
+ /** Cache a replay result. */
100
+ setReplayResult(key: ReplayKey, result: ValueParserResult<unknown>): void;
101
+ /**
102
+ * Mark a source as explicitly failed (user provided input that did
103
+ * not pass validation). Derived parsers should not fall back to
104
+ * defaults for failed sources.
105
+ */
106
+ markSourceFailed(sourceId: symbol): void;
107
+ /**
108
+ * Check if a source was explicitly attempted but failed validation.
109
+ */
110
+ isSourceFailed(sourceId: symbol): boolean;
111
+ /** Resolve dependencies for suggestions (same semantics as resolve). */
112
+ getSuggestionDependencies(request: DependencyRequest): DependencyResolution;
113
+ }
114
+ /**
115
+ * Creates a new {@link DependencyRuntimeContext}.
116
+ *
117
+ * @param registry Optional existing registry to wrap for bridge interop.
118
+ * @returns A new runtime context.
119
+ * @internal
120
+ * @since 1.0.0
121
+ */
122
+ //#endregion
123
+ export { DependencyRuntimeContext };
@@ -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;
@@ -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 };
@@ -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 };
@@ -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 };
@@ -2,6 +2,7 @@ const require_annotations = require('./annotations.cjs');
2
2
  const require_message = require('./message.cjs');
3
3
  const require_dependency = require('./dependency.cjs');
4
4
  const require_mode_dispatch = require('./mode-dispatch.cjs');
5
+ const require_dependency_metadata = require('./dependency-metadata.cjs');
5
6
 
6
7
  //#region src/modifiers.ts
7
8
  /**
@@ -186,6 +187,10 @@ function optional(parser) {
186
187
  enumerable: false
187
188
  });
188
189
  }
190
+ if (parser.dependencyMetadata != null) {
191
+ const composed = require_dependency_metadata.composeDependencyMetadata(parser.dependencyMetadata, "optional");
192
+ if (composed != null) optionalParser.dependencyMetadata = composed;
193
+ }
189
194
  return optionalParser;
190
195
  }
191
196
  /**
@@ -434,6 +439,28 @@ function withDefault(parser, defaultValue, options) {
434
439
  enumerable: false
435
440
  });
436
441
  }
442
+ if (parser.dependencyMetadata != null) {
443
+ const composed = require_dependency_metadata.composeDependencyMetadata(parser.dependencyMetadata, "withDefault", { defaultValue: () => {
444
+ let v;
445
+ try {
446
+ v = typeof defaultValue === "function" ? defaultValue() : defaultValue;
447
+ } catch (e) {
448
+ const error = e instanceof WithDefaultError ? e.errorMessage : require_message.message`${e instanceof Error ? e.message : String(e)}`;
449
+ return {
450
+ success: false,
451
+ error
452
+ };
453
+ }
454
+ if (typeof parser.normalizeValue === "function") try {
455
+ v = parser.normalizeValue(v);
456
+ } catch {}
457
+ return {
458
+ success: true,
459
+ value: v
460
+ };
461
+ } });
462
+ if (composed != null) withDefaultParser.dependencyMetadata = composed;
463
+ }
437
464
  return withDefaultParser;
438
465
  }
439
466
  /**
@@ -559,6 +586,43 @@ function map(parser, transform) {
559
586
  configurable: true,
560
587
  enumerable: false
561
588
  });
589
+ if (parser.dependencyMetadata != null) {
590
+ let composed = require_dependency_metadata.composeDependencyMetadata(parser.dependencyMetadata, "map");
591
+ if (composed?.derived != null) {
592
+ const innerReplay = composed.derived.replayParse;
593
+ const applyMappedReplay = (r) => {
594
+ if (!r.success) return r;
595
+ if (r.deferred) try {
596
+ return {
597
+ success: true,
598
+ value: transform(r.value),
599
+ deferred: true
600
+ };
601
+ } catch {
602
+ return {
603
+ success: true,
604
+ value: void 0,
605
+ deferred: true
606
+ };
607
+ }
608
+ return {
609
+ success: true,
610
+ value: transform(r.value)
611
+ };
612
+ };
613
+ composed = {
614
+ ...composed,
615
+ derived: {
616
+ ...composed.derived,
617
+ replayParse: (rawInput, depValues) => {
618
+ const result = innerReplay(rawInput, depValues);
619
+ return result instanceof Promise ? result.then(applyMappedReplay) : applyMappedReplay(result);
620
+ }
621
+ }
622
+ };
623
+ }
624
+ if (composed != null) mappedParser.dependencyMetadata = composed;
625
+ }
562
626
  return mappedParser;
563
627
  }
564
628
  /**
package/dist/modifiers.js CHANGED
@@ -2,6 +2,7 @@ import { annotateFreshArray, getAnnotations, inheritAnnotations, isInjectedAnnot
2
2
  import { formatMessage, message, text } from "./message.js";
3
3
  import { createDependencySourceState, dependencyId, isDependencySourceState, isPendingDependencySourceState, isWrappedDependencySource, transformsDependencyValue, transformsDependencyValueMarker, wrappedDependencySourceMarker } from "./dependency.js";
4
4
  import { dispatchByMode, dispatchIterableByMode, mapModeValue } from "./mode-dispatch.js";
5
+ import { composeDependencyMetadata } from "./dependency-metadata.js";
5
6
 
6
7
  //#region src/modifiers.ts
7
8
  /**
@@ -186,6 +187,10 @@ function optional(parser) {
186
187
  enumerable: false
187
188
  });
188
189
  }
190
+ if (parser.dependencyMetadata != null) {
191
+ const composed = composeDependencyMetadata(parser.dependencyMetadata, "optional");
192
+ if (composed != null) optionalParser.dependencyMetadata = composed;
193
+ }
189
194
  return optionalParser;
190
195
  }
191
196
  /**
@@ -434,6 +439,28 @@ function withDefault(parser, defaultValue, options) {
434
439
  enumerable: false
435
440
  });
436
441
  }
442
+ if (parser.dependencyMetadata != null) {
443
+ const composed = composeDependencyMetadata(parser.dependencyMetadata, "withDefault", { defaultValue: () => {
444
+ let v;
445
+ try {
446
+ v = typeof defaultValue === "function" ? defaultValue() : defaultValue;
447
+ } catch (e) {
448
+ const error = e instanceof WithDefaultError ? e.errorMessage : message`${e instanceof Error ? e.message : String(e)}`;
449
+ return {
450
+ success: false,
451
+ error
452
+ };
453
+ }
454
+ if (typeof parser.normalizeValue === "function") try {
455
+ v = parser.normalizeValue(v);
456
+ } catch {}
457
+ return {
458
+ success: true,
459
+ value: v
460
+ };
461
+ } });
462
+ if (composed != null) withDefaultParser.dependencyMetadata = composed;
463
+ }
437
464
  return withDefaultParser;
438
465
  }
439
466
  /**
@@ -559,6 +586,43 @@ function map(parser, transform) {
559
586
  configurable: true,
560
587
  enumerable: false
561
588
  });
589
+ if (parser.dependencyMetadata != null) {
590
+ let composed = composeDependencyMetadata(parser.dependencyMetadata, "map");
591
+ if (composed?.derived != null) {
592
+ const innerReplay = composed.derived.replayParse;
593
+ const applyMappedReplay = (r) => {
594
+ if (!r.success) return r;
595
+ if (r.deferred) try {
596
+ return {
597
+ success: true,
598
+ value: transform(r.value),
599
+ deferred: true
600
+ };
601
+ } catch {
602
+ return {
603
+ success: true,
604
+ value: void 0,
605
+ deferred: true
606
+ };
607
+ }
608
+ return {
609
+ success: true,
610
+ value: transform(r.value)
611
+ };
612
+ };
613
+ composed = {
614
+ ...composed,
615
+ derived: {
616
+ ...composed.derived,
617
+ replayParse: (rawInput, depValues) => {
618
+ const result = innerReplay(rawInput, depValues);
619
+ return result instanceof Promise ? result.then(applyMappedReplay) : applyMappedReplay(result);
620
+ }
621
+ }
622
+ };
623
+ }
624
+ if (composed != null) mappedParser.dependencyMetadata = composed;
625
+ }
562
626
  return mappedParser;
563
627
  }
564
628
  /**
package/dist/parser.d.cts CHANGED
@@ -4,6 +4,8 @@ import { Usage } from "./usage.cjs";
4
4
  import { DocFragments, DocPage } from "./doc.cjs";
5
5
  import { DependencyRegistryLike } from "./registry-types.cjs";
6
6
  import { DeferredMap, ValueParserResult } from "./valueparser.cjs";
7
+ import { ParserDependencyMetadata } from "./dependency-metadata.cjs";
8
+ import { DependencyRuntimeContext } from "./dependency-runtime.cjs";
7
9
  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
10
  import { MultipleErrorOptions, MultipleOptions, WithDefaultError, WithDefaultOptions, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.cjs";
9
11
  import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, option, passThrough } from "./primitives.cjs";
@@ -251,6 +253,14 @@ interface Parser<M extends Mode = "sync", TValue = unknown, TState = unknown> {
251
253
  * @since 1.0.0
252
254
  */
253
255
  normalizeValue?(value: TValue): TValue;
256
+ /**
257
+ * Internal dependency metadata describing this parser's dependency
258
+ * capabilities. Used by the dependency runtime to resolve dependencies
259
+ * without relying on state-shape protocols.
260
+ * @internal
261
+ * @since 1.0.0
262
+ */
263
+ readonly dependencyMetadata?: ParserDependencyMetadata;
254
264
  }
255
265
  /**
256
266
  * Parser-local frame data containing the input buffer and parser state.
@@ -308,6 +318,13 @@ interface ExecutionContext {
308
318
  * @since 0.10.0
309
319
  */
310
320
  readonly dependencyRegistry?: DependencyRegistryLike;
321
+ /**
322
+ * The dependency runtime context for dependency resolution.
323
+ * Coexists with `dependencyRegistry` during the transition period.
324
+ * @internal
325
+ * @since 1.0.0
326
+ */
327
+ readonly dependencyRuntime?: DependencyRuntimeContext;
311
328
  }
312
329
  /**
313
330
  * The context of the parser, which includes the input buffer and the state.