@optique/core 1.0.0-dev.908 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/annotation-state.cjs +425 -0
  2. package/dist/annotation-state.d.cts +24 -0
  3. package/dist/annotation-state.d.ts +24 -0
  4. package/dist/annotation-state.js +414 -0
  5. package/dist/annotations.cjs +2 -248
  6. package/dist/annotations.d.cts +2 -137
  7. package/dist/annotations.d.ts +2 -137
  8. package/dist/annotations.js +2 -238
  9. package/dist/completion.cjs +611 -100
  10. package/dist/completion.d.cts +1 -1
  11. package/dist/completion.d.ts +1 -1
  12. package/dist/completion.js +611 -100
  13. package/dist/constructs.cjs +3338 -827
  14. package/dist/constructs.d.cts +48 -7
  15. package/dist/constructs.d.ts +48 -7
  16. package/dist/constructs.js +3338 -827
  17. package/dist/context.cjs +0 -23
  18. package/dist/context.d.cts +119 -53
  19. package/dist/context.d.ts +119 -53
  20. package/dist/context.js +0 -22
  21. package/dist/dependency-metadata.cjs +139 -0
  22. package/dist/dependency-metadata.d.cts +112 -0
  23. package/dist/dependency-metadata.d.ts +112 -0
  24. package/dist/dependency-metadata.js +138 -0
  25. package/dist/dependency-runtime.cjs +698 -0
  26. package/dist/dependency-runtime.d.cts +149 -0
  27. package/dist/dependency-runtime.d.ts +149 -0
  28. package/dist/dependency-runtime.js +687 -0
  29. package/dist/dependency.cjs +7 -928
  30. package/dist/dependency.d.cts +2 -794
  31. package/dist/dependency.d.ts +2 -794
  32. package/dist/dependency.js +2 -899
  33. package/dist/displaywidth.cjs +44 -0
  34. package/dist/displaywidth.js +43 -0
  35. package/dist/doc.cjs +285 -23
  36. package/dist/doc.d.cts +57 -2
  37. package/dist/doc.d.ts +57 -2
  38. package/dist/doc.js +283 -25
  39. package/dist/execution-context.cjs +56 -0
  40. package/dist/execution-context.js +53 -0
  41. package/dist/extension.cjs +87 -0
  42. package/dist/extension.d.cts +97 -0
  43. package/dist/extension.d.ts +97 -0
  44. package/dist/extension.js +76 -0
  45. package/dist/facade.cjs +718 -523
  46. package/dist/facade.d.cts +87 -18
  47. package/dist/facade.d.ts +87 -18
  48. package/dist/facade.js +718 -523
  49. package/dist/index.cjs +14 -29
  50. package/dist/index.d.cts +10 -10
  51. package/dist/index.d.ts +10 -10
  52. package/dist/index.js +7 -7
  53. package/dist/input-trace.cjs +56 -0
  54. package/dist/input-trace.d.cts +77 -0
  55. package/dist/input-trace.d.ts +77 -0
  56. package/dist/input-trace.js +55 -0
  57. package/dist/internal/annotations.cjs +316 -0
  58. package/dist/internal/annotations.d.cts +140 -0
  59. package/dist/internal/annotations.d.ts +140 -0
  60. package/dist/internal/annotations.js +306 -0
  61. package/dist/internal/dependency.cjs +984 -0
  62. package/dist/internal/dependency.d.cts +539 -0
  63. package/dist/internal/dependency.d.ts +539 -0
  64. package/dist/internal/dependency.js +964 -0
  65. package/dist/{mode-dispatch.cjs → internal/mode-dispatch.cjs} +1 -3
  66. package/dist/{mode-dispatch.d.cts → internal/mode-dispatch.d.cts} +3 -7
  67. package/dist/{mode-dispatch.d.ts → internal/mode-dispatch.d.ts} +3 -7
  68. package/dist/{mode-dispatch.js → internal/mode-dispatch.js} +1 -3
  69. package/dist/internal/parser.cjs +728 -0
  70. package/dist/internal/parser.d.cts +947 -0
  71. package/dist/internal/parser.d.ts +947 -0
  72. package/dist/internal/parser.js +711 -0
  73. package/dist/message.cjs +84 -26
  74. package/dist/message.d.cts +49 -9
  75. package/dist/message.d.ts +49 -9
  76. package/dist/message.js +84 -27
  77. package/dist/modifiers.cjs +1023 -240
  78. package/dist/modifiers.d.cts +42 -1
  79. package/dist/modifiers.d.ts +42 -1
  80. package/dist/modifiers.js +1023 -240
  81. package/dist/parser.cjs +11 -463
  82. package/dist/parser.d.cts +3 -537
  83. package/dist/parser.d.ts +3 -537
  84. package/dist/parser.js +2 -433
  85. package/dist/phase2-seed.cjs +59 -0
  86. package/dist/phase2-seed.js +56 -0
  87. package/dist/primitives.cjs +557 -208
  88. package/dist/primitives.d.cts +10 -14
  89. package/dist/primitives.d.ts +10 -14
  90. package/dist/primitives.js +557 -208
  91. package/dist/program.cjs +5 -1
  92. package/dist/program.d.cts +5 -3
  93. package/dist/program.d.ts +5 -3
  94. package/dist/program.js +6 -1
  95. package/dist/suggestion.cjs +22 -8
  96. package/dist/suggestion.js +22 -8
  97. package/dist/usage-internals.cjs +3 -2
  98. package/dist/usage-internals.js +4 -2
  99. package/dist/usage.cjs +195 -40
  100. package/dist/usage.d.cts +92 -11
  101. package/dist/usage.d.ts +92 -11
  102. package/dist/usage.js +194 -41
  103. package/dist/validate.cjs +170 -0
  104. package/dist/validate.js +164 -0
  105. package/dist/valueparser.cjs +1278 -191
  106. package/dist/valueparser.d.cts +330 -20
  107. package/dist/valueparser.d.ts +330 -20
  108. package/dist/valueparser.js +1277 -192
  109. package/package.json +9 -9
package/dist/index.cjs CHANGED
@@ -1,64 +1,58 @@
1
- const require_annotations = require('./annotations.cjs');
1
+ const require_annotations = require('./internal/annotations.cjs');
2
2
  const require_message = require('./message.cjs');
3
3
  const require_completion = require('./completion.cjs');
4
- const require_dependency = require('./dependency.cjs');
5
4
  const require_usage = require('./usage.cjs');
6
- const require_constructs = require('./constructs.cjs');
7
5
  const require_doc = require('./doc.cjs');
6
+ const require_dependency = require('./internal/dependency.cjs');
7
+ const require_parser = require('./internal/parser.cjs');
8
+ const require_constructs = require('./constructs.cjs');
8
9
  const require_modifiers = require('./modifiers.cjs');
9
10
  const require_nonempty = require('./nonempty.cjs');
10
11
  const require_valueparser = require('./valueparser.cjs');
11
12
  const require_primitives = require('./primitives.cjs');
12
- const require_parser = require('./parser.cjs');
13
13
  const require_facade = require('./facade.cjs');
14
14
 
15
- exports.DependencyRegistry = require_dependency.DependencyRegistry;
16
15
  exports.DuplicateOptionError = require_constructs.DuplicateOptionError;
17
16
  exports.RunParserError = require_facade.RunParserError;
18
17
  exports.WithDefaultError = require_modifiers.WithDefaultError;
19
- exports.annotationKey = require_annotations.annotationKey;
20
18
  exports.argument = require_primitives.argument;
21
19
  exports.bash = require_completion.bash;
20
+ exports.checkBooleanOption = require_valueparser.checkBooleanOption;
21
+ exports.checkEnumOption = require_valueparser.checkEnumOption;
22
22
  exports.choice = require_valueparser.choice;
23
23
  exports.cidr = require_valueparser.cidr;
24
+ exports.cloneDocEntry = require_doc.cloneDocEntry;
25
+ exports.cloneUsage = require_usage.cloneUsage;
26
+ exports.cloneUsageTerm = require_usage.cloneUsageTerm;
24
27
  exports.command = require_primitives.command;
25
28
  exports.commandLine = require_message.commandLine;
26
29
  exports.concat = require_constructs.concat;
27
30
  exports.conditional = require_constructs.conditional;
28
31
  exports.constant = require_primitives.constant;
29
- exports.createDeferredParseState = require_dependency.createDeferredParseState;
30
- exports.createDependencySourceState = require_dependency.createDependencySourceState;
31
- exports.createPendingDependencySourceState = require_dependency.createPendingDependencySourceState;
32
- exports.defaultValues = require_dependency.defaultValues;
33
- exports.deferredParseMarker = require_dependency.deferredParseMarker;
32
+ exports.createParserContext = require_parser.createParserContext;
33
+ exports.deduplicateDocEntries = require_doc.deduplicateDocEntries;
34
+ exports.deduplicateDocFragments = require_doc.deduplicateDocFragments;
34
35
  exports.dependency = require_dependency.dependency;
35
- exports.dependencyId = require_dependency.dependencyId;
36
- exports.dependencyIds = require_dependency.dependencyIds;
37
- exports.dependencySourceMarker = require_dependency.dependencySourceMarker;
38
- exports.dependencySourceStateMarker = require_dependency.dependencySourceStateMarker;
39
36
  exports.deriveFrom = require_dependency.deriveFrom;
40
37
  exports.deriveFromAsync = require_dependency.deriveFromAsync;
41
38
  exports.deriveFromSync = require_dependency.deriveFromSync;
42
- exports.derivedValueParserMarker = require_dependency.derivedValueParserMarker;
43
39
  exports.domain = require_valueparser.domain;
44
40
  exports.email = require_valueparser.email;
45
41
  exports.ensureNonEmptyString = require_nonempty.ensureNonEmptyString;
46
42
  exports.envVar = require_message.envVar;
47
43
  exports.extractArgumentMetavars = require_usage.extractArgumentMetavars;
48
44
  exports.extractCommandNames = require_usage.extractCommandNames;
45
+ exports.extractLiteralValues = require_usage.extractLiteralValues;
49
46
  exports.extractOptionNames = require_usage.extractOptionNames;
50
47
  exports.fail = require_primitives.fail;
51
48
  exports.fish = require_completion.fish;
52
49
  exports.flag = require_primitives.flag;
53
50
  exports.float = require_valueparser.float;
54
- exports.formatDependencyError = require_dependency.formatDependencyError;
55
51
  exports.formatDocPage = require_doc.formatDocPage;
56
52
  exports.formatMessage = require_message.formatMessage;
57
53
  exports.formatUsage = require_usage.formatUsage;
58
54
  exports.formatUsageTerm = require_usage.formatUsageTerm;
59
55
  exports.getAnnotations = require_annotations.getAnnotations;
60
- exports.getDefaultValuesFunction = require_dependency.getDefaultValuesFunction;
61
- exports.getDependencyIds = require_dependency.getDependencyIds;
62
56
  exports.getDocPage = require_parser.getDocPage;
63
57
  exports.getDocPageAsync = require_parser.getDocPageAsync;
64
58
  exports.getDocPageSync = require_parser.getDocPageSync;
@@ -68,17 +62,14 @@ exports.integer = require_valueparser.integer;
68
62
  exports.ip = require_valueparser.ip;
69
63
  exports.ipv4 = require_valueparser.ipv4;
70
64
  exports.ipv6 = require_valueparser.ipv6;
71
- exports.isDeferredParseState = require_dependency.isDeferredParseState;
72
65
  exports.isDependencySource = require_dependency.isDependencySource;
73
- exports.isDependencySourceState = require_dependency.isDependencySourceState;
74
66
  exports.isDerivedValueParser = require_dependency.isDerivedValueParser;
67
+ exports.isDocEntryHidden = require_doc.isDocEntryHidden;
75
68
  exports.isDocHidden = require_usage.isDocHidden;
76
69
  exports.isNonEmptyString = require_nonempty.isNonEmptyString;
77
- exports.isPendingDependencySourceState = require_dependency.isPendingDependencySourceState;
78
70
  exports.isSuggestionHidden = require_usage.isSuggestionHidden;
79
71
  exports.isUsageHidden = require_usage.isUsageHidden;
80
72
  exports.isValueParser = require_valueparser.isValueParser;
81
- exports.isWrappedDependencySource = require_dependency.isWrappedDependencySource;
82
73
  exports.lineBreak = require_message.lineBreak;
83
74
  exports.link = require_message.link;
84
75
  exports.locale = require_valueparser.locale;
@@ -102,9 +93,7 @@ exports.or = require_constructs.or;
102
93
  exports.parse = require_parser.parse;
103
94
  exports.parseAsync = require_parser.parseAsync;
104
95
  exports.parseSync = require_parser.parseSync;
105
- exports.parseWithDependency = require_dependency.parseWithDependency;
106
96
  exports.passThrough = require_primitives.passThrough;
107
- exports.pendingDependencySourceStateMarker = require_dependency.pendingDependencySourceStateMarker;
108
97
  exports.port = require_valueparser.port;
109
98
  exports.portRange = require_valueparser.portRange;
110
99
  exports.pwsh = require_completion.pwsh;
@@ -119,10 +108,7 @@ exports.string = require_valueparser.string;
119
108
  exports.suggest = require_parser.suggest;
120
109
  exports.suggestAsync = require_parser.suggestAsync;
121
110
  exports.suggestSync = require_parser.suggestSync;
122
- exports.suggestWithDependency = require_dependency.suggestWithDependency;
123
111
  exports.text = require_message.text;
124
- exports.transformsDependencyValue = require_dependency.transformsDependencyValue;
125
- exports.transformsDependencyValueMarker = require_dependency.transformsDependencyValueMarker;
126
112
  exports.tuple = require_constructs.tuple;
127
113
  exports.url = require_valueparser.url;
128
114
  exports.uuid = require_valueparser.uuid;
@@ -130,5 +116,4 @@ exports.value = require_message.value;
130
116
  exports.valueSet = require_message.valueSet;
131
117
  exports.values = require_message.values;
132
118
  exports.withDefault = require_modifiers.withDefault;
133
- exports.wrappedDependencySourceMarker = require_dependency.wrappedDependencySourceMarker;
134
119
  exports.zsh = require_completion.zsh;
package/dist/index.d.cts CHANGED
@@ -1,15 +1,15 @@
1
- import { Annotations, ParseOptions, annotationKey, getAnnotations } from "./annotations.cjs";
1
+ import { Annotations, ParseOptions, getAnnotations } from "./internal/annotations.cjs";
2
2
  import { NonEmptyString, ensureNonEmptyString, isNonEmptyString } from "./nonempty.cjs";
3
3
  import { Message, MessageFormatOptions, MessageTerm, ValueSetOptions, commandLine, envVar, formatMessage, lineBreak, link, message, metavar, optionName, optionNames, text, value, valueSet, values } from "./message.cjs";
4
- import { HiddenVisibility, OptionName, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, extractArgumentMetavars, extractCommandNames, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.cjs";
5
- import { DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, ShowChoicesOptions, ShowDefaultOptions, formatDocPage } from "./doc.cjs";
6
- import { ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, 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, choice, cidr, domain, email, float, hostname, integer, ip, ipv4, ipv6, isValueParser, locale, macAddress, port, portRange, socketAddress, string, url, uuid } from "./valueparser.cjs";
4
+ import { HiddenVisibility, OptionName, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, cloneUsage, cloneUsageTerm, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.cjs";
5
+ import { DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, ShowChoicesOptions, ShowDefaultOptions, cloneDocEntry, deduplicateDocEntries, deduplicateDocFragments, formatDocPage, isDocEntryHidden } from "./doc.cjs";
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
+ 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 "./internal/parser.cjs";
8
+ import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.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";
10
+ import { ParserValuePlaceholder, SourceContext, SourceContextRequest } from "./context.cjs";
11
+ import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.cjs";
12
+ import { CommandSubConfig, ContextOptionsParam, ExtractRequiredOptions, OptionSubConfig, RunOptions, RunParserError, RunWithOptions, SubstituteParserValue, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.cjs";
8
13
  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";
10
14
  import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, option, passThrough } from "./primitives.cjs";
11
- 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";
12
- import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.cjs";
13
- import { ParserValuePlaceholder, SourceContext } from "./context.cjs";
14
- import { CommandSubConfig, 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, 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, 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, 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, choice, cidr, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, 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, 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, DependencyMode, DependencySource, 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, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, Result, RunOptions, RunParserError, RunWithOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, SourceContextRequest, StringOptions, SubstituteParserValue, Suggestion, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { Annotations, ParseOptions, annotationKey, getAnnotations } from "./annotations.js";
1
+ import { Annotations, ParseOptions, getAnnotations } from "./internal/annotations.js";
2
2
  import { NonEmptyString, ensureNonEmptyString, isNonEmptyString } from "./nonempty.js";
3
3
  import { Message, MessageFormatOptions, MessageTerm, ValueSetOptions, commandLine, envVar, formatMessage, lineBreak, link, message, metavar, optionName, optionNames, text, value, valueSet, values } from "./message.js";
4
- import { HiddenVisibility, OptionName, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, extractArgumentMetavars, extractCommandNames, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.js";
5
- import { DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, ShowChoicesOptions, ShowDefaultOptions, formatDocPage } from "./doc.js";
6
- import { ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, 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, choice, cidr, domain, email, float, hostname, integer, ip, ipv4, ipv6, isValueParser, locale, macAddress, port, portRange, socketAddress, string, url, uuid } from "./valueparser.js";
4
+ import { HiddenVisibility, OptionName, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, cloneUsage, cloneUsageTerm, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.js";
5
+ import { DocEntry, DocFragment, DocFragments, DocPage, DocPageFormatOptions, DocSection, ShowChoicesOptions, ShowDefaultOptions, cloneDocEntry, deduplicateDocEntries, deduplicateDocFragments, formatDocPage, isDocEntryHidden } from "./doc.js";
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
+ 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 "./internal/parser.js";
8
+ import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.js";
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.js";
10
+ import { ParserValuePlaceholder, SourceContext, SourceContextRequest } from "./context.js";
11
+ import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMode, DependencySource, DependencyValue, DependencyValues, DeriveAsyncOptions, DeriveFromAsyncOptions, DeriveFromOptions, DeriveFromSyncOptions, DeriveOptions, DeriveSyncOptions, DerivedValueParser, dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
12
+ import { CommandSubConfig, ContextOptionsParam, ExtractRequiredOptions, OptionSubConfig, RunOptions, RunParserError, RunWithOptions, SubstituteParserValue, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.js";
8
13
  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";
10
14
  import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, option, passThrough } from "./primitives.js";
11
- 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";
12
- import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.js";
13
- import { ParserValuePlaceholder, SourceContext } from "./context.js";
14
- import { CommandSubConfig, 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, 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, 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, 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, choice, cidr, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, 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, 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, DependencyMode, DependencySource, 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, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, Result, RunOptions, RunParserError, RunWithOptions, ShellCompletion, ShowChoicesOptions, ShowDefaultOptions, SocketAddressOptions, SocketAddressValue, SourceContext, SourceContextRequest, StringOptions, SubstituteParserValue, Suggestion, TupleOptions, UrlOptions, Usage, UsageFormatOptions, UsageTerm, UsageTermFormatOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, type ValueSetOptions, WithDefaultError, WithDefaultOptions, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
- import { annotationKey, getAnnotations } from "./annotations.js";
1
+ import { getAnnotations } from "./internal/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";
5
- import { extractArgumentMetavars, extractCommandNames, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.js";
4
+ import { cloneUsage, cloneUsageTerm, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.js";
5
+ import { cloneDocEntry, deduplicateDocEntries, deduplicateDocFragments, formatDocPage, isDocEntryHidden } from "./doc.js";
6
+ import { dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
7
+ import { createParserContext, getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./internal/parser.js";
6
8
  import { DuplicateOptionError, concat, conditional, group, longestMatch, merge, object, or, tuple } from "./constructs.js";
7
- import { formatDocPage } from "./doc.js";
8
9
  import { WithDefaultError, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.js";
9
10
  import { ensureNonEmptyString, isNonEmptyString } from "./nonempty.js";
10
- import { choice, cidr, domain, email, float, hostname, integer, ip, ipv4, ipv6, isValueParser, locale, macAddress, port, portRange, socketAddress, string, url, uuid } from "./valueparser.js";
11
+ import { checkBooleanOption, checkEnumOption, choice, cidr, domain, email, float, hostname, integer, ip, ipv4, ipv6, isValueParser, locale, macAddress, port, portRange, socketAddress, string, url, uuid } from "./valueparser.js";
11
12
  import { argument, command, constant, fail, flag, option, passThrough } from "./primitives.js";
12
- import { 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, choice, cidr, command, commandLine, concat, conditional, constant, createDeferredParseState, createDependencySourceState, createPendingDependencySourceState, defaultValues, deferredParseMarker, dependency, dependencyId, dependencyIds, dependencySourceMarker, dependencySourceStateMarker, deriveFrom, deriveFromAsync, deriveFromSync, derivedValueParserMarker, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, 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, 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 { DuplicateOptionError, RunParserError, WithDefaultError, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fish, flag, float, formatDocPage, formatMessage, formatUsage, formatUsageTerm, getAnnotations, getDocPage, getDocPageAsync, getDocPageSync, group, hostname, integer, ip, ipv4, ipv6, isDependencySource, isDerivedValueParser, isDocEntryHidden, isDocHidden, isNonEmptyString, isSuggestionHidden, isUsageHidden, isValueParser, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
@@ -0,0 +1,56 @@
1
+
2
+ //#region src/input-trace.ts
3
+ const symbolKeys = /* @__PURE__ */ new WeakMap();
4
+ let symbolCounter = 0;
5
+ /** Length-prefix a raw segment so that no delimiter escaping is needed. */
6
+ function lengthPrefix(s) {
7
+ return `${s.length}:${s}`;
8
+ }
9
+ function serializeKey(key) {
10
+ if (typeof key === "string") return lengthPrefix(`s${key}`);
11
+ if (typeof key === "number") return lengthPrefix(`n${key}`);
12
+ const registeredKey = Symbol.keyFor(key);
13
+ if (registeredKey !== void 0) return lengthPrefix(`r${registeredKey}`);
14
+ let id = symbolKeys.get(key);
15
+ if (id === void 0) {
16
+ id = `y${symbolCounter++}`;
17
+ symbolKeys.set(key, id);
18
+ }
19
+ return lengthPrefix(id);
20
+ }
21
+ function serializePath(path) {
22
+ if (path.length === 0) return "";
23
+ return path.map(serializeKey).join("");
24
+ }
25
+ var InputTraceImpl = class InputTraceImpl {
26
+ #entries;
27
+ constructor(entries) {
28
+ this.#entries = entries ?? /* @__PURE__ */ new Map();
29
+ }
30
+ get(path) {
31
+ return this.#entries.get(serializePath(path));
32
+ }
33
+ set(path, entry) {
34
+ const copy = new Map(this.#entries);
35
+ copy.set(serializePath(path), entry);
36
+ return new InputTraceImpl(copy);
37
+ }
38
+ delete(path) {
39
+ const copy = new Map(this.#entries);
40
+ copy.delete(serializePath(path));
41
+ return new InputTraceImpl(copy);
42
+ }
43
+ };
44
+ /**
45
+ * Creates a new empty {@link InputTrace}.
46
+ *
47
+ * @returns An empty immutable input trace.
48
+ * @internal
49
+ * @since 1.0.0
50
+ */
51
+ function createInputTrace() {
52
+ return new InputTraceImpl();
53
+ }
54
+
55
+ //#endregion
56
+ exports.createInputTrace = createInputTrace;
@@ -0,0 +1,77 @@
1
+ import { ValueParserResult } from "./valueparser.cjs";
2
+
3
+ //#region src/input-trace.d.ts
4
+
5
+ /**
6
+ * A replayable record of raw input consumed by a single parser node.
7
+ *
8
+ * @internal
9
+ * @since 1.0.0
10
+ */
11
+ interface TraceEntry {
12
+ /** The kind of input that was consumed. */
13
+ readonly kind: "option-value" | "argument-value" | "literal" | "custom";
14
+ /** The raw input string to be replayed. */
15
+ readonly rawInput: string;
16
+ /** The tokens consumed from the buffer. */
17
+ readonly consumed: readonly string[];
18
+ /** The preliminary parse result using default dependency values. */
19
+ readonly preliminaryResult?: ValueParserResult<unknown>;
20
+ /**
21
+ * Snapshotted default dependency values captured during parse.
22
+ *
23
+ * Present when a derived parser snapshots default dependency values during
24
+ * parse, including both `derive()` and `deriveFrom()` parsers.
25
+ * This avoids re-evaluating dynamic default thunks during replay.
26
+ */
27
+ readonly defaultDependencyValues?: readonly unknown[];
28
+ /** The option names that matched (e.g., `["--env", "-e"]`). */
29
+ readonly optionNames?: readonly string[];
30
+ /** The metavar of the value parser. */
31
+ readonly metavar?: string;
32
+ }
33
+ /**
34
+ * An immutable, path-keyed store of {@link TraceEntry} records.
35
+ *
36
+ * Each entry is keyed by a path of `PropertyKey` segments (strings, numbers,
37
+ * or symbols) corresponding to the position of the parser in the parse tree.
38
+ *
39
+ * All mutation methods return a new `InputTrace` instance; the original is
40
+ * never modified.
41
+ *
42
+ * @internal
43
+ * @since 1.0.0
44
+ */
45
+ interface InputTrace {
46
+ /**
47
+ * Retrieves the trace entry at the given path.
48
+ *
49
+ * @param path The path segments identifying the entry.
50
+ * @returns The entry, or `undefined` if no entry exists at that path.
51
+ */
52
+ get(path: readonly PropertyKey[]): TraceEntry | undefined;
53
+ /**
54
+ * Returns a new trace with the entry set at the given path.
55
+ *
56
+ * @param path The path segments identifying the entry.
57
+ * @param entry The trace entry to store.
58
+ * @returns A new `InputTrace` with the entry stored.
59
+ */
60
+ set(path: readonly PropertyKey[], entry: TraceEntry): InputTrace;
61
+ /**
62
+ * Returns a new trace with the entry at the given path removed.
63
+ *
64
+ * @param path The path segments identifying the entry to remove.
65
+ * @returns A new `InputTrace` without the entry.
66
+ */
67
+ delete(path: readonly PropertyKey[]): InputTrace;
68
+ }
69
+ /**
70
+ * Creates a new empty {@link InputTrace}.
71
+ *
72
+ * @returns An empty immutable input trace.
73
+ * @internal
74
+ * @since 1.0.0
75
+ */
76
+ //#endregion
77
+ export { InputTrace };
@@ -0,0 +1,77 @@
1
+ import { ValueParserResult } from "./valueparser.js";
2
+
3
+ //#region src/input-trace.d.ts
4
+
5
+ /**
6
+ * A replayable record of raw input consumed by a single parser node.
7
+ *
8
+ * @internal
9
+ * @since 1.0.0
10
+ */
11
+ interface TraceEntry {
12
+ /** The kind of input that was consumed. */
13
+ readonly kind: "option-value" | "argument-value" | "literal" | "custom";
14
+ /** The raw input string to be replayed. */
15
+ readonly rawInput: string;
16
+ /** The tokens consumed from the buffer. */
17
+ readonly consumed: readonly string[];
18
+ /** The preliminary parse result using default dependency values. */
19
+ readonly preliminaryResult?: ValueParserResult<unknown>;
20
+ /**
21
+ * Snapshotted default dependency values captured during parse.
22
+ *
23
+ * Present when a derived parser snapshots default dependency values during
24
+ * parse, including both `derive()` and `deriveFrom()` parsers.
25
+ * This avoids re-evaluating dynamic default thunks during replay.
26
+ */
27
+ readonly defaultDependencyValues?: readonly unknown[];
28
+ /** The option names that matched (e.g., `["--env", "-e"]`). */
29
+ readonly optionNames?: readonly string[];
30
+ /** The metavar of the value parser. */
31
+ readonly metavar?: string;
32
+ }
33
+ /**
34
+ * An immutable, path-keyed store of {@link TraceEntry} records.
35
+ *
36
+ * Each entry is keyed by a path of `PropertyKey` segments (strings, numbers,
37
+ * or symbols) corresponding to the position of the parser in the parse tree.
38
+ *
39
+ * All mutation methods return a new `InputTrace` instance; the original is
40
+ * never modified.
41
+ *
42
+ * @internal
43
+ * @since 1.0.0
44
+ */
45
+ interface InputTrace {
46
+ /**
47
+ * Retrieves the trace entry at the given path.
48
+ *
49
+ * @param path The path segments identifying the entry.
50
+ * @returns The entry, or `undefined` if no entry exists at that path.
51
+ */
52
+ get(path: readonly PropertyKey[]): TraceEntry | undefined;
53
+ /**
54
+ * Returns a new trace with the entry set at the given path.
55
+ *
56
+ * @param path The path segments identifying the entry.
57
+ * @param entry The trace entry to store.
58
+ * @returns A new `InputTrace` with the entry stored.
59
+ */
60
+ set(path: readonly PropertyKey[], entry: TraceEntry): InputTrace;
61
+ /**
62
+ * Returns a new trace with the entry at the given path removed.
63
+ *
64
+ * @param path The path segments identifying the entry to remove.
65
+ * @returns A new `InputTrace` without the entry.
66
+ */
67
+ delete(path: readonly PropertyKey[]): InputTrace;
68
+ }
69
+ /**
70
+ * Creates a new empty {@link InputTrace}.
71
+ *
72
+ * @returns An empty immutable input trace.
73
+ * @internal
74
+ * @since 1.0.0
75
+ */
76
+ //#endregion
77
+ export { InputTrace };
@@ -0,0 +1,55 @@
1
+ //#region src/input-trace.ts
2
+ const symbolKeys = /* @__PURE__ */ new WeakMap();
3
+ let symbolCounter = 0;
4
+ /** Length-prefix a raw segment so that no delimiter escaping is needed. */
5
+ function lengthPrefix(s) {
6
+ return `${s.length}:${s}`;
7
+ }
8
+ function serializeKey(key) {
9
+ if (typeof key === "string") return lengthPrefix(`s${key}`);
10
+ if (typeof key === "number") return lengthPrefix(`n${key}`);
11
+ const registeredKey = Symbol.keyFor(key);
12
+ if (registeredKey !== void 0) return lengthPrefix(`r${registeredKey}`);
13
+ let id = symbolKeys.get(key);
14
+ if (id === void 0) {
15
+ id = `y${symbolCounter++}`;
16
+ symbolKeys.set(key, id);
17
+ }
18
+ return lengthPrefix(id);
19
+ }
20
+ function serializePath(path) {
21
+ if (path.length === 0) return "";
22
+ return path.map(serializeKey).join("");
23
+ }
24
+ var InputTraceImpl = class InputTraceImpl {
25
+ #entries;
26
+ constructor(entries) {
27
+ this.#entries = entries ?? /* @__PURE__ */ new Map();
28
+ }
29
+ get(path) {
30
+ return this.#entries.get(serializePath(path));
31
+ }
32
+ set(path, entry) {
33
+ const copy = new Map(this.#entries);
34
+ copy.set(serializePath(path), entry);
35
+ return new InputTraceImpl(copy);
36
+ }
37
+ delete(path) {
38
+ const copy = new Map(this.#entries);
39
+ copy.delete(serializePath(path));
40
+ return new InputTraceImpl(copy);
41
+ }
42
+ };
43
+ /**
44
+ * Creates a new empty {@link InputTrace}.
45
+ *
46
+ * @returns An empty immutable input trace.
47
+ * @internal
48
+ * @since 1.0.0
49
+ */
50
+ function createInputTrace() {
51
+ return new InputTraceImpl();
52
+ }
53
+
54
+ //#endregion
55
+ export { createInputTrace };