@optique/core 1.1.0-dev.2096 → 1.1.0-dev.2146

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 (69) hide show
  1. package/dist/annotation-state.cjs +26 -26
  2. package/dist/annotation-state.d.cts +133 -1
  3. package/dist/annotation-state.d.ts +133 -1
  4. package/dist/annotations.cjs +2 -2
  5. package/dist/constructs.cjs +141 -73
  6. package/dist/constructs.js +70 -2
  7. package/dist/dependency-metadata.cjs +12 -12
  8. package/dist/dependency-metadata.d.cts +34 -3
  9. package/dist/dependency-metadata.d.ts +34 -3
  10. package/dist/dependency-runtime.cjs +37 -13
  11. package/dist/dependency-runtime.d.cts +197 -2
  12. package/dist/dependency-runtime.d.ts +197 -2
  13. package/dist/dependency-runtime.js +22 -1
  14. package/dist/dependency.cjs +7 -7
  15. package/dist/displaywidth.d.cts +12 -0
  16. package/dist/displaywidth.d.ts +12 -0
  17. package/dist/execution-context.d.cts +23 -0
  18. package/dist/execution-context.d.ts +23 -0
  19. package/dist/extension.cjs +14 -14
  20. package/dist/facade.cjs +46 -36
  21. package/dist/facade.js +31 -21
  22. package/dist/index.cjs +22 -21
  23. package/dist/index.d.cts +2 -2
  24. package/dist/index.d.ts +2 -2
  25. package/dist/index.js +3 -3
  26. package/dist/input-trace.d.cts +2 -1
  27. package/dist/input-trace.d.ts +2 -1
  28. package/dist/internal/annotations.cjs +3 -0
  29. package/dist/internal/annotations.d.cts +47 -5
  30. package/dist/internal/annotations.d.ts +47 -5
  31. package/dist/internal/annotations.js +1 -1
  32. package/dist/internal/command-alias.cjs +16 -0
  33. package/dist/internal/command-alias.js +14 -0
  34. package/dist/internal/dependency.cjs +131 -0
  35. package/dist/internal/dependency.d.cts +311 -2
  36. package/dist/internal/dependency.d.ts +311 -2
  37. package/dist/internal/dependency.js +119 -1
  38. package/dist/internal/parser.cjs +35 -13
  39. package/dist/internal/parser.d.cts +44 -3
  40. package/dist/internal/parser.d.ts +44 -3
  41. package/dist/internal/parser.js +28 -6
  42. package/dist/modifiers.cjs +41 -41
  43. package/dist/parser.cjs +11 -11
  44. package/dist/phase2-seed.cjs +2 -2
  45. package/dist/phase2-seed.d.cts +50 -0
  46. package/dist/phase2-seed.d.ts +50 -0
  47. package/dist/primitives.cjs +74 -33
  48. package/dist/primitives.d.cts +10 -0
  49. package/dist/primitives.d.ts +10 -0
  50. package/dist/primitives.js +54 -13
  51. package/dist/suggestion.cjs +72 -2
  52. package/dist/suggestion.d.cts +188 -0
  53. package/dist/suggestion.d.ts +188 -0
  54. package/dist/suggestion.js +71 -3
  55. package/dist/usage-internals.cjs +5 -1
  56. package/dist/usage-internals.js +5 -1
  57. package/dist/usage.cjs +9 -1
  58. package/dist/usage.d.cts +14 -0
  59. package/dist/usage.d.ts +14 -0
  60. package/dist/usage.js +9 -1
  61. package/dist/validate.cjs +1 -0
  62. package/dist/validate.d.cts +99 -0
  63. package/dist/validate.d.ts +99 -0
  64. package/dist/validate.js +1 -1
  65. package/dist/valueparser.cjs +333 -79
  66. package/dist/valueparser.d.cts +197 -1
  67. package/dist/valueparser.d.ts +197 -1
  68. package/dist/valueparser.js +334 -81
  69. package/package.json +19 -4
package/dist/facade.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { injectAnnotations, isInjectedAnnotationWrapper, unwrapInjectedAnnotationWrapper } from "./internal/annotations.js";
2
2
  import { commandLine, formatMessage, lineBreak, message, optionName, text, value } from "./message.js";
3
- import { bash, fish, nu, pwsh, zsh } from "./completion.js";
4
3
  import { validateCommandNames, validateContextIds, validateMetaNameCollisions, validateOptionNames, validateProgramName } from "./validate.js";
5
4
  import { formatUsage, isSuggestionHidden } from "./usage.js";
6
5
  import { formatDocPage } from "./doc.js";
@@ -8,6 +7,8 @@ import { dispatchByMode } from "./internal/mode-dispatch.js";
8
7
  import { collectExplicitSourceValues, collectExplicitSourceValuesAsync, createDependencyRuntimeContext } from "./dependency-runtime.js";
9
8
  import { createInputTrace } from "./input-trace.js";
10
9
  import { createParserContext, getDocPage } from "./internal/parser.js";
10
+ import { bash, fish, nu, pwsh, zsh } from "./completion.js";
11
+ import { allowDuplicateLeadingCommandNamesKey, hiddenCommandAliasesKey } from "./internal/command-alias.js";
11
12
  import { completeOrExtractPhase2Seed } from "./phase2-seed.js";
12
13
  import { group, longestMatch, object } from "./constructs.js";
13
14
  import { multiple, optional, withDefault } from "./modifiers.js";
@@ -15,6 +16,14 @@ import { string } from "./valueparser.js";
15
16
  import { argument, command, constant, flag, option } from "./primitives.js";
16
17
 
17
18
  //#region src/facade.ts
19
+ /**
20
+ * Combines built-in meta commands while intentionally bypassing duplicate
21
+ * leading command name validation in `createLongestMatch()`.
22
+ */
23
+ function longestMatchForMetaCommands(...parsers) {
24
+ const options = { [allowDuplicateLeadingCommandNamesKey]: true };
25
+ return longestMatch(...parsers, options);
26
+ }
18
27
  const SuppressedErrorCtor = typeof SuppressedError === "function" ? SuppressedError : (() => {
19
28
  class SuppressedErrorPolyfill extends Error {
20
29
  error;
@@ -278,6 +287,10 @@ async function extractPhase2SeedAsync(parser, args) {
278
287
  } while (context.buffer.length > 0);
279
288
  return await completeOrExtractPhase2Seed(parser, context.state, createPhase2SeedExec(parser, context));
280
289
  }
290
+ function getMetaCommandAliases(names) {
291
+ const [, firstAlias, ...restAliases] = names;
292
+ return firstAlias == null ? void 0 : [firstAlias, ...restAliases];
293
+ }
281
294
  /**
282
295
  * Creates help parsers based on the sub-config.
283
296
  */
@@ -287,12 +300,12 @@ function createHelpParser(commandConfig, optionConfig) {
287
300
  if (commandConfig) {
288
301
  const names = commandConfig.names ?? ["help"];
289
302
  const innerParser = multiple(argument(string({ metavar: "COMMAND" }), { description: message`Command name to show help for.` }));
290
- const commandParsers = [];
291
- for (let i = 0; i < names.length; i++) commandParsers.push(command(names[i], innerParser, {
303
+ const aliases = getMetaCommandAliases(names);
304
+ helpCommand = command(names[0], innerParser, {
292
305
  description: message`Show help information.`,
293
- hidden: i === 0 ? commandConfig.hidden : true
294
- }));
295
- helpCommand = commandParsers.length === 1 ? commandParsers[0] : longestMatch(...commandParsers);
306
+ ...aliases != null ? { [hiddenCommandAliasesKey]: aliases } : {},
307
+ hidden: commandConfig.hidden
308
+ });
296
309
  }
297
310
  if (optionConfig) {
298
311
  const names = optionConfig.names ?? ["--help"];
@@ -315,12 +328,12 @@ function createVersionParser(commandConfig, optionConfig) {
315
328
  if (commandConfig) {
316
329
  const names = commandConfig.names ?? ["version"];
317
330
  const innerParser = object({});
318
- const commandParsers = [];
319
- for (let i = 0; i < names.length; i++) commandParsers.push(command(names[i], innerParser, {
331
+ const aliases = getMetaCommandAliases(names);
332
+ versionCommand = command(names[0], innerParser, {
320
333
  description: message`Show version information.`,
321
- hidden: i === 0 ? commandConfig.hidden : true
322
- }));
323
- versionCommand = commandParsers.length === 1 ? commandParsers[0] : longestMatch(...commandParsers);
334
+ ...aliases != null ? { [hiddenCommandAliasesKey]: aliases } : {},
335
+ hidden: commandConfig.hidden
336
+ });
324
337
  }
325
338
  if (optionConfig) {
326
339
  const names = optionConfig.names ?? ["--version"];
@@ -358,12 +371,12 @@ function createCompletionParser(programName, availableShells, commandConfig, opt
358
371
  description: message`Generate shell completion script or provide completions.`,
359
372
  footer: message`Examples:${lineBreak()} Bash: ${commandLine(`eval "$(${programName} ${displayName} bash)"`)}${lineBreak()} zsh: ${commandLine(`eval "$(${programName} ${displayName} zsh)"`)}${lineBreak()} fish: ${commandLine(`eval "$(${programName} ${displayName} fish)"`)}${lineBreak()} PowerShell: ${commandLine(`${programName} ${displayName} pwsh > ${programName}-completion.ps1; . ./${programName}-completion.ps1`)}${lineBreak()} Nushell: ${commandLine(`${programName} ${displayName} nu | save ${programName}-completion.nu; source ./${programName}-completion.nu`)}`
360
373
  };
361
- const commandParsers = [];
362
- for (let i = 0; i < names.length; i++) commandParsers.push(command(names[i], completionInner, {
374
+ const aliases = getMetaCommandAliases(names);
375
+ completionCommand = command(names[0], completionInner, {
363
376
  ...completionCommandConfig,
364
- hidden: i === 0 ? commandConfig.hidden : true
365
- }));
366
- completionCommand = commandParsers.length === 1 ? commandParsers[0] : longestMatch(...commandParsers);
377
+ ...aliases != null ? { [hiddenCommandAliasesKey]: aliases } : {},
378
+ hidden: commandConfig.hidden
379
+ });
367
380
  }
368
381
  if (optionConfig) {
369
382
  const names = optionConfig.names ?? ["--completion"];
@@ -463,9 +476,7 @@ function combineWithHelpVersion(originalParser, helpParsers, versionParsers, com
463
476
  }));
464
477
  const mainParserIndex = parsers.length - 1;
465
478
  if (parsers.length === 1) return parsers[0];
466
- let combined;
467
- if (parsers.length === 2) combined = longestMatch(parsers[0], parsers[1]);
468
- else combined = longestMatch(...parsers);
479
+ let combined = longestMatchForMetaCommands(...parsers);
469
480
  const topUsage = combined.usage[0];
470
481
  if (topUsage?.type === "exclusive" && mainParserIndex > 0) {
471
482
  const terms = [...topUsage.terms];
@@ -1080,8 +1091,7 @@ function runParser(parserOrProgram, programNameOrArgs, argsOrOptions, optionsPar
1080
1091
  for (const [label, optParsers] of Object.entries(groupedMetaOptions)) if (optParsers.length === 1) commandParsers.push(group(label, optParsers[0]));
1081
1092
  else commandParsers.push(group(label, longestMatch(...optParsers)));
1082
1093
  if (commandParsers.length === 1) helpGeneratorParser = commandParsers[0];
1083
- else if (commandParsers.length === 2) helpGeneratorParser = longestMatch(commandParsers[0], commandParsers[1]);
1084
- else helpGeneratorParser = longestMatch(...commandParsers);
1094
+ else helpGeneratorParser = longestMatchForMetaCommands(...commandParsers);
1085
1095
  }
1086
1096
  const reportInvalidHelpCommand = (validationError) => {
1087
1097
  stderr(`Usage: ${indentLines(formatUsage(programName, augmentedParser.usage, {
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
- const require_annotations = require('./internal/annotations.cjs');
1
+ const require_internal_annotations = require('./internal/annotations.cjs');
2
2
  const require_message = require('./message.cjs');
3
- const require_completion = require('./completion.cjs');
4
3
  const require_usage = require('./usage.cjs');
5
4
  const require_doc = require('./doc.cjs');
6
- const require_dependency = require('./internal/dependency.cjs');
7
- const require_parser = require('./internal/parser.cjs');
5
+ const require_internal_dependency = require('./internal/dependency.cjs');
6
+ const require_internal_parser = require('./internal/parser.cjs');
7
+ const require_completion = require('./completion.cjs');
8
8
  const require_constructs = require('./constructs.cjs');
9
9
  const require_modifiers = require('./modifiers.cjs');
10
10
  const require_nonempty = require('./nonempty.cjs');
@@ -30,13 +30,13 @@ exports.commandLine = require_message.commandLine;
30
30
  exports.concat = require_constructs.concat;
31
31
  exports.conditional = require_constructs.conditional;
32
32
  exports.constant = require_primitives.constant;
33
- exports.createParserContext = require_parser.createParserContext;
33
+ exports.createParserContext = require_internal_parser.createParserContext;
34
34
  exports.deduplicateDocEntries = require_doc.deduplicateDocEntries;
35
35
  exports.deduplicateDocFragments = require_doc.deduplicateDocFragments;
36
- exports.dependency = require_dependency.dependency;
37
- exports.deriveFrom = require_dependency.deriveFrom;
38
- exports.deriveFromAsync = require_dependency.deriveFromAsync;
39
- exports.deriveFromSync = require_dependency.deriveFromSync;
36
+ exports.dependency = require_internal_dependency.dependency;
37
+ exports.deriveFrom = require_internal_dependency.deriveFrom;
38
+ exports.deriveFromAsync = require_internal_dependency.deriveFromAsync;
39
+ exports.deriveFromSync = require_internal_dependency.deriveFromSync;
40
40
  exports.domain = require_valueparser.domain;
41
41
  exports.email = require_valueparser.email;
42
42
  exports.ensureNonEmptyString = require_nonempty.ensureNonEmptyString;
@@ -47,6 +47,7 @@ exports.extractLiteralValues = require_usage.extractLiteralValues;
47
47
  exports.extractOptionNames = require_usage.extractOptionNames;
48
48
  exports.fail = require_primitives.fail;
49
49
  exports.fileSize = require_valueparser.fileSize;
50
+ exports.firstOf = require_valueparser.firstOf;
50
51
  exports.fish = require_completion.fish;
51
52
  exports.flag = require_primitives.flag;
52
53
  exports.float = require_valueparser.float;
@@ -54,18 +55,18 @@ exports.formatDocPage = require_doc.formatDocPage;
54
55
  exports.formatMessage = require_message.formatMessage;
55
56
  exports.formatUsage = require_usage.formatUsage;
56
57
  exports.formatUsageTerm = require_usage.formatUsageTerm;
57
- exports.getAnnotations = require_annotations.getAnnotations;
58
- exports.getDocPage = require_parser.getDocPage;
59
- exports.getDocPageAsync = require_parser.getDocPageAsync;
60
- exports.getDocPageSync = require_parser.getDocPageSync;
58
+ exports.getAnnotations = require_internal_annotations.getAnnotations;
59
+ exports.getDocPage = require_internal_parser.getDocPage;
60
+ exports.getDocPageAsync = require_internal_parser.getDocPageAsync;
61
+ exports.getDocPageSync = require_internal_parser.getDocPageSync;
61
62
  exports.group = require_constructs.group;
62
63
  exports.hostname = require_valueparser.hostname;
63
64
  exports.integer = require_valueparser.integer;
64
65
  exports.ip = require_valueparser.ip;
65
66
  exports.ipv4 = require_valueparser.ipv4;
66
67
  exports.ipv6 = require_valueparser.ipv6;
67
- exports.isDependencySource = require_dependency.isDependencySource;
68
- exports.isDerivedValueParser = require_dependency.isDerivedValueParser;
68
+ exports.isDependencySource = require_internal_dependency.isDependencySource;
69
+ exports.isDerivedValueParser = require_internal_dependency.isDerivedValueParser;
69
70
  exports.isDocEntryHidden = require_doc.isDocEntryHidden;
70
71
  exports.isDocHidden = require_usage.isDocHidden;
71
72
  exports.isNonEmptyString = require_nonempty.isNonEmptyString;
@@ -94,9 +95,9 @@ exports.optionName = require_message.optionName;
94
95
  exports.optionNames = require_message.optionNames;
95
96
  exports.optional = require_modifiers.optional;
96
97
  exports.or = require_constructs.or;
97
- exports.parse = require_parser.parse;
98
- exports.parseAsync = require_parser.parseAsync;
99
- exports.parseSync = require_parser.parseSync;
98
+ exports.parse = require_internal_parser.parse;
99
+ exports.parseAsync = require_internal_parser.parseAsync;
100
+ exports.parseSync = require_internal_parser.parseSync;
100
101
  exports.passThrough = require_primitives.passThrough;
101
102
  exports.port = require_valueparser.port;
102
103
  exports.portRange = require_valueparser.portRange;
@@ -111,9 +112,9 @@ exports.semVer = require_valueparser.semVer;
111
112
  exports.seq = require_constructs.seq;
112
113
  exports.socketAddress = require_valueparser.socketAddress;
113
114
  exports.string = require_valueparser.string;
114
- exports.suggest = require_parser.suggest;
115
- exports.suggestAsync = require_parser.suggestAsync;
116
- exports.suggestSync = require_parser.suggestSync;
115
+ exports.suggest = require_internal_parser.suggest;
116
+ exports.suggestAsync = require_internal_parser.suggestAsync;
117
+ exports.suggestSync = require_internal_parser.suggestSync;
117
118
  exports.text = require_message.text;
118
119
  exports.tuple = require_constructs.tuple;
119
120
  exports.url = require_valueparser.url;
package/dist/index.d.cts CHANGED
@@ -3,7 +3,7 @@ import { NonEmptyString, ensureNonEmptyString, isNonEmptyString } from "./nonemp
3
3
  import { Message, MessageFormatOptions, MessageTerm, ValueSetOptions, commandLine, envVar, formatMessage, lineBreak, link, message, metavar, optionName, optionNames, text, value, valueSet, values } from "./message.cjs";
4
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
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, Color, ColorFormat, ColorOptions, DeferredMap, DomainOptions, EmailOptions, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FloatOptions, HostnameOptions, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, LocaleOptions, MacAddressOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SocketAddressOptions, SocketAddressValue, StringOptions, UrlOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, checkBooleanOption, checkEnumOption, choice, cidr, color, domain, email, fileSize, float, hostname, integer, ip, ipv4, ipv6, isValueParser, json, locale, macAddress, port, portRange, semVer, socketAddress, string, url, uuid } from "./valueparser.cjs";
6
+ import { ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, DeferredMap, DomainOptions, EmailOptions, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FirstOfOptions, FloatOptions, HostnameOptions, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, LocaleOptions, MacAddressOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SocketAddressOptions, SocketAddressValue, StringOptions, UrlOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, checkBooleanOption, checkEnumOption, choice, cidr, color, domain, email, fileSize, firstOf, float, hostname, integer, ip, ipv4, ipv6, isValueParser, json, locale, macAddress, port, portRange, semVer, socketAddress, string, url, uuid } from "./valueparser.cjs";
7
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
8
  import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.cjs";
9
9
  import { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, GroupOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, SeqOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, seq, tuple } from "./constructs.cjs";
@@ -12,4 +12,4 @@ import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMod
12
12
  import { CommandSubConfig, ContextOptionsParam, ExtractRequiredOptions, OptionSubConfig, RunOptions, RunParserError, RunWithOptions, SubstituteParserValue, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.cjs";
13
13
  import { MultipleErrorOptions, MultipleOptions, WithDefaultError, WithDefaultOptions, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.cjs";
14
14
  import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, negatableFlag, option, passThrough } from "./primitives.cjs";
15
- export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, 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, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FlagErrorOptions, FlagOptions, FloatOptions, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, 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, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SeqOptions, 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, color, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, 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, json, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
15
+ export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, 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, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FirstOfOptions, FlagErrorOptions, FlagOptions, FloatOptions, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, 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, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SeqOptions, 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, color, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, 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, json, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { NonEmptyString, ensureNonEmptyString, isNonEmptyString } from "./nonemp
3
3
  import { Message, MessageFormatOptions, MessageTerm, ValueSetOptions, commandLine, envVar, formatMessage, lineBreak, link, message, metavar, optionName, optionNames, text, value, valueSet, values } from "./message.js";
4
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
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, Color, ColorFormat, ColorOptions, DeferredMap, DomainOptions, EmailOptions, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FloatOptions, HostnameOptions, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, LocaleOptions, MacAddressOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SocketAddressOptions, SocketAddressValue, StringOptions, UrlOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, checkBooleanOption, checkEnumOption, choice, cidr, color, domain, email, fileSize, float, hostname, integer, ip, ipv4, ipv6, isValueParser, json, locale, macAddress, port, portRange, semVer, socketAddress, string, url, uuid } from "./valueparser.js";
6
+ import { ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, DeferredMap, DomainOptions, EmailOptions, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FirstOfOptions, FloatOptions, HostnameOptions, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, LocaleOptions, MacAddressOptions, PortOptionsBigInt, PortOptionsNumber, PortRangeOptionsBigInt, PortRangeOptionsNumber, PortRangeValueBigInt, PortRangeValueNumber, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SocketAddressOptions, SocketAddressValue, StringOptions, UrlOptions, Uuid, UuidOptions, ValueParser, ValueParserResult, checkBooleanOption, checkEnumOption, choice, cidr, color, domain, email, fileSize, firstOf, float, hostname, integer, ip, ipv4, ipv6, isValueParser, json, locale, macAddress, port, portRange, semVer, socketAddress, string, url, uuid } from "./valueparser.js";
7
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
8
  import { ShellCompletion, bash, fish, nu, pwsh, zsh } from "./completion.js";
9
9
  import { ConditionalErrorOptions, ConditionalOptions, DuplicateOptionError, GroupOptions, LongestMatchErrorOptions, LongestMatchOptions, MergeOptions, NoMatchContext, ObjectErrorOptions, ObjectOptions, OrErrorOptions, OrOptions, SeqOptions, TupleOptions, concat, conditional, group, longestMatch, merge, object, or, seq, tuple } from "./constructs.js";
@@ -12,4 +12,4 @@ import { AnyDependencySource, CombineMode, CombinedDependencyMode, DependencyMod
12
12
  import { CommandSubConfig, ContextOptionsParam, ExtractRequiredOptions, OptionSubConfig, RunOptions, RunParserError, RunWithOptions, SubstituteParserValue, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.js";
13
13
  import { MultipleErrorOptions, MultipleOptions, WithDefaultError, WithDefaultOptions, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.js";
14
14
  import { ArgumentErrorOptions, ArgumentOptions, CommandErrorOptions, CommandOptions, FlagErrorOptions, FlagOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, OptionErrorOptions, OptionOptions, OptionState, PassThroughFormat, PassThroughOptions, argument, command, constant, fail, flag, negatableFlag, option, passThrough } from "./primitives.js";
15
- export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, 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, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FlagErrorOptions, FlagOptions, FloatOptions, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, 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, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SeqOptions, 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, color, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, 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, json, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
15
+ export { type Annotations, AnyDependencySource, ArgumentErrorOptions, ArgumentOptions, ChoiceOptions, ChoiceOptionsBase, ChoiceOptionsNumber, ChoiceOptionsString, CidrOptions, CidrValue, Color, ColorFormat, ColorOptions, 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, FileSizeOptions, FileSizeOptionsBigInt, FileSizeOptionsNumber, FileSizeUnit, FirstOfOptions, FlagErrorOptions, FlagOptions, FloatOptions, GroupOptions, HiddenVisibility, HostnameOptions, InferMode, InferValue, IntegerOptionsBigInt, IntegerOptionsNumber, IpOptions, Ipv4Options, Ipv6Options, Json, JsonOptions, LocaleOptions, LongestMatchErrorOptions, LongestMatchOptions, MacAddressOptions, MergeOptions, type Message, type MessageFormatOptions, type MessageTerm, Mode, ModeIterable, ModeValue, MultipleErrorOptions, MultipleOptions, NegatableFlagErrorOptions, NegatableFlagNameList, NegatableFlagNames, NegatableFlagOptions, NegatableFlagState, 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, SemVer, SemVerOptionsObject, SemVerOptionsString, SemVerString, SeqOptions, 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, color, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, 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, json, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
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
- import { bash, fish, nu, pwsh, zsh } from "./completion.js";
4
3
  import { cloneUsage, cloneUsageTerm, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, formatUsage, formatUsageTerm, isDocHidden, isSuggestionHidden, isUsageHidden, mergeHidden, normalizeUsage } from "./usage.js";
5
4
  import { cloneDocEntry, deduplicateDocEntries, deduplicateDocFragments, formatDocPage, isDocEntryHidden } from "./doc.js";
6
5
  import { dependency, deriveFrom, deriveFromAsync, deriveFromSync, isDependencySource, isDerivedValueParser } from "./internal/dependency.js";
7
6
  import { createParserContext, getDocPage, getDocPageAsync, getDocPageSync, parse, parseAsync, parseSync, suggest, suggestAsync, suggestSync } from "./internal/parser.js";
7
+ import { bash, fish, nu, pwsh, zsh } from "./completion.js";
8
8
  import { DuplicateOptionError, concat, conditional, group, longestMatch, merge, object, or, seq, tuple } from "./constructs.js";
9
9
  import { WithDefaultError, map, multiple, nonEmpty, optional, withDefault } from "./modifiers.js";
10
10
  import { ensureNonEmptyString, isNonEmptyString } from "./nonempty.js";
11
- import { checkBooleanOption, checkEnumOption, choice, cidr, color, domain, email, fileSize, float, hostname, integer, ip, ipv4, ipv6, isValueParser, json, locale, macAddress, port, portRange, semVer, socketAddress, string, url, uuid } from "./valueparser.js";
11
+ import { checkBooleanOption, checkEnumOption, choice, cidr, color, domain, email, fileSize, firstOf, float, hostname, integer, ip, ipv4, ipv6, isValueParser, json, locale, macAddress, port, portRange, semVer, socketAddress, string, url, uuid } from "./valueparser.js";
12
12
  import { argument, command, constant, fail, flag, negatableFlag, option, passThrough } from "./primitives.js";
13
13
  import { RunParserError, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync } from "./facade.js";
14
14
 
15
- export { DuplicateOptionError, RunParserError, WithDefaultError, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, color, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, 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, json, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
15
+ export { DuplicateOptionError, RunParserError, WithDefaultError, argument, bash, checkBooleanOption, checkEnumOption, choice, cidr, cloneDocEntry, cloneUsage, cloneUsageTerm, color, command, commandLine, concat, conditional, constant, createParserContext, deduplicateDocEntries, deduplicateDocFragments, dependency, deriveFrom, deriveFromAsync, deriveFromSync, domain, email, ensureNonEmptyString, envVar, extractArgumentMetavars, extractCommandNames, extractLiteralValues, extractOptionNames, fail, fileSize, firstOf, 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, json, lineBreak, link, locale, longestMatch, macAddress, map, merge, mergeHidden, message, metavar, multiple, negatableFlag, nonEmpty, normalizeUsage, nu, object, option, optionName, optionNames, optional, or, parse, parseAsync, parseSync, passThrough, port, portRange, pwsh, runParser, runParserAsync, runParserSync, runWith, runWithAsync, runWithSync, semVer, seq, socketAddress, string, suggest, suggestAsync, suggestSync, text, tuple, url, uuid, value, valueSet, values, withDefault, zsh };
@@ -73,5 +73,6 @@ interface InputTrace {
73
73
  * @internal
74
74
  * @since 1.0.0
75
75
  */
76
+ declare function createInputTrace(): InputTrace;
76
77
  //#endregion
77
- export { InputTrace };
78
+ export { InputTrace, TraceEntry, createInputTrace };
@@ -73,5 +73,6 @@ interface InputTrace {
73
73
  * @internal
74
74
  * @since 1.0.0
75
75
  */
76
+ declare function createInputTrace(): InputTrace;
76
77
  //#endregion
77
- export { InputTrace };
78
+ export { InputTrace, TraceEntry, createInputTrace };
@@ -306,6 +306,9 @@ function unwrapInjectedAnnotationState(value) {
306
306
  //#endregion
307
307
  exports.annotateFreshArray = annotateFreshArray;
308
308
  exports.annotationKey = annotationKey;
309
+ exports.annotationStateValueKey = annotationStateValueKey;
310
+ exports.annotationWrapperKey = annotationWrapperKey;
311
+ exports.firstPassAnnotationKey = firstPassAnnotationKey;
309
312
  exports.getAnnotations = getAnnotations;
310
313
  exports.hasMeaningfulAnnotations = hasMeaningfulAnnotations;
311
314
  exports.inheritAnnotations = inheritAnnotations;
@@ -1,5 +1,38 @@
1
1
  //#region src/internal/annotations.d.ts
2
-
2
+ /**
3
+ * Runtime context extension system for Optique parsers.
4
+ *
5
+ * This module provides the annotations system that allows external runtime data
6
+ * to be passed to parsers during the parsing session. This enables use cases like
7
+ * config file fallbacks, environment-based validation, and shared context.
8
+ *
9
+ * @module
10
+ * @since 0.10.0
11
+ */
12
+ /**
13
+ * Annotation key symbol for storing data in parser state.
14
+ * @since 0.10.0
15
+ */
16
+ declare const annotationKey: unique symbol;
17
+ /**
18
+ * Internal marker attached during the first pass of `runWith()` so wrappers
19
+ * with side effects can defer work until two-pass contexts have resolved.
20
+ *
21
+ * @internal
22
+ */
23
+ declare const firstPassAnnotationKey: unique symbol;
24
+ /**
25
+ * Internal key for preserving primitive parser state values when annotations
26
+ * are injected into non-object states.
27
+ * @internal
28
+ */
29
+ declare const annotationStateValueKey: unique symbol;
30
+ /**
31
+ * Internal marker key that indicates annotation wrapping was injected by
32
+ * Optique internals for non-object states.
33
+ * @internal
34
+ */
35
+ declare const annotationWrapperKey: unique symbol;
3
36
  /**
4
37
  * Annotations that can be passed to parsers during execution.
5
38
  * Allows external packages to provide additional data that parsers can access
@@ -53,7 +86,7 @@ declare function getAnnotations(state: unknown): Annotations | undefined;
53
86
  * @returns The target array, with annotations copied when available.
54
87
  * @internal
55
88
  */
56
-
89
+ declare function annotateFreshArray<T>(source: unknown, target: readonly T[]): readonly T[];
57
90
  /**
58
91
  * Propagates annotations from one parser state to another.
59
92
  *
@@ -85,7 +118,7 @@ declare function inheritAnnotations<T>(source: unknown, target: T): T;
85
118
  * @returns `true` when the record has at least one own symbol key.
86
119
  * @internal
87
120
  */
88
-
121
+ declare function hasMeaningfulAnnotations(annotations: Annotations | null | undefined): annotations is Annotations;
89
122
  /**
90
123
  * Injects annotations into parser state while preserving state shape.
91
124
  *
@@ -111,7 +144,16 @@ declare function injectAnnotations<TState>(state: TState, annotations: Annotatio
111
144
  * otherwise the original value.
112
145
  * @internal
113
146
  */
114
-
147
+ declare function unwrapInjectedAnnotationWrapper<T>(value: T): T;
148
+ /**
149
+ * Returns whether the given value is an internal primitive-state annotation
150
+ * wrapper that was injected by Optique.
151
+ *
152
+ * @param value Value to check.
153
+ * @returns `true` if the value is an injected internal wrapper.
154
+ * @internal
155
+ */
156
+ declare function isInjectedAnnotationWrapper(value: unknown): boolean;
115
157
  /**
116
158
  * Returns whether the given value is an injected annotation state wrapper.
117
159
  *
@@ -137,4 +179,4 @@ declare function isInjectedAnnotationState(value: unknown): boolean;
137
179
  */
138
180
  declare function unwrapInjectedAnnotationState<T>(value: T): T;
139
181
  //#endregion
140
- export { Annotations, ParseOptions, getAnnotations, inheritAnnotations, injectAnnotations, isInjectedAnnotationState, unwrapInjectedAnnotationState };
182
+ export { Annotations, ParseOptions, annotateFreshArray, annotationKey, annotationStateValueKey, annotationWrapperKey, firstPassAnnotationKey, getAnnotations, hasMeaningfulAnnotations, inheritAnnotations, injectAnnotations, isInjectedAnnotationState, isInjectedAnnotationWrapper, unwrapInjectedAnnotationState, unwrapInjectedAnnotationWrapper };
@@ -1,5 +1,38 @@
1
1
  //#region src/internal/annotations.d.ts
2
-
2
+ /**
3
+ * Runtime context extension system for Optique parsers.
4
+ *
5
+ * This module provides the annotations system that allows external runtime data
6
+ * to be passed to parsers during the parsing session. This enables use cases like
7
+ * config file fallbacks, environment-based validation, and shared context.
8
+ *
9
+ * @module
10
+ * @since 0.10.0
11
+ */
12
+ /**
13
+ * Annotation key symbol for storing data in parser state.
14
+ * @since 0.10.0
15
+ */
16
+ declare const annotationKey: unique symbol;
17
+ /**
18
+ * Internal marker attached during the first pass of `runWith()` so wrappers
19
+ * with side effects can defer work until two-pass contexts have resolved.
20
+ *
21
+ * @internal
22
+ */
23
+ declare const firstPassAnnotationKey: unique symbol;
24
+ /**
25
+ * Internal key for preserving primitive parser state values when annotations
26
+ * are injected into non-object states.
27
+ * @internal
28
+ */
29
+ declare const annotationStateValueKey: unique symbol;
30
+ /**
31
+ * Internal marker key that indicates annotation wrapping was injected by
32
+ * Optique internals for non-object states.
33
+ * @internal
34
+ */
35
+ declare const annotationWrapperKey: unique symbol;
3
36
  /**
4
37
  * Annotations that can be passed to parsers during execution.
5
38
  * Allows external packages to provide additional data that parsers can access
@@ -53,7 +86,7 @@ declare function getAnnotations(state: unknown): Annotations | undefined;
53
86
  * @returns The target array, with annotations copied when available.
54
87
  * @internal
55
88
  */
56
-
89
+ declare function annotateFreshArray<T>(source: unknown, target: readonly T[]): readonly T[];
57
90
  /**
58
91
  * Propagates annotations from one parser state to another.
59
92
  *
@@ -85,7 +118,7 @@ declare function inheritAnnotations<T>(source: unknown, target: T): T;
85
118
  * @returns `true` when the record has at least one own symbol key.
86
119
  * @internal
87
120
  */
88
-
121
+ declare function hasMeaningfulAnnotations(annotations: Annotations | null | undefined): annotations is Annotations;
89
122
  /**
90
123
  * Injects annotations into parser state while preserving state shape.
91
124
  *
@@ -111,7 +144,16 @@ declare function injectAnnotations<TState>(state: TState, annotations: Annotatio
111
144
  * otherwise the original value.
112
145
  * @internal
113
146
  */
114
-
147
+ declare function unwrapInjectedAnnotationWrapper<T>(value: T): T;
148
+ /**
149
+ * Returns whether the given value is an internal primitive-state annotation
150
+ * wrapper that was injected by Optique.
151
+ *
152
+ * @param value Value to check.
153
+ * @returns `true` if the value is an injected internal wrapper.
154
+ * @internal
155
+ */
156
+ declare function isInjectedAnnotationWrapper(value: unknown): boolean;
115
157
  /**
116
158
  * Returns whether the given value is an injected annotation state wrapper.
117
159
  *
@@ -137,4 +179,4 @@ declare function isInjectedAnnotationState(value: unknown): boolean;
137
179
  */
138
180
  declare function unwrapInjectedAnnotationState<T>(value: T): T;
139
181
  //#endregion
140
- export { Annotations, ParseOptions, getAnnotations, inheritAnnotations, injectAnnotations, isInjectedAnnotationState, unwrapInjectedAnnotationState };
182
+ export { Annotations, ParseOptions, annotateFreshArray, annotationKey, annotationStateValueKey, annotationWrapperKey, firstPassAnnotationKey, getAnnotations, hasMeaningfulAnnotations, inheritAnnotations, injectAnnotations, isInjectedAnnotationState, isInjectedAnnotationWrapper, unwrapInjectedAnnotationState, unwrapInjectedAnnotationWrapper };
@@ -303,4 +303,4 @@ function unwrapInjectedAnnotationState(value) {
303
303
  }
304
304
 
305
305
  //#endregion
306
- export { annotateFreshArray, annotationKey, getAnnotations, hasMeaningfulAnnotations, inheritAnnotations, injectAnnotations, isInjectedAnnotationState, isInjectedAnnotationWrapper, unwrapInjectedAnnotationState, unwrapInjectedAnnotationWrapper };
306
+ export { annotateFreshArray, annotationKey, annotationStateValueKey, annotationWrapperKey, firstPassAnnotationKey, getAnnotations, hasMeaningfulAnnotations, inheritAnnotations, injectAnnotations, isInjectedAnnotationState, isInjectedAnnotationWrapper, unwrapInjectedAnnotationState, unwrapInjectedAnnotationWrapper };
@@ -0,0 +1,16 @@
1
+
2
+ //#region src/internal/command-alias.ts
3
+ /**
4
+ * Internal key used to bypass duplicate leading command name validation when
5
+ * composing built-in meta commands with user parsers.
6
+ */
7
+ const allowDuplicateLeadingCommandNamesKey = Symbol("allowDuplicateLeadingCommandNames");
8
+ /**
9
+ * Internal command() option key for aliases that are accepted by parsing but
10
+ * omitted from completion and typo-suggestion display.
11
+ */
12
+ const hiddenCommandAliasesKey = Symbol("hiddenCommandAliases");
13
+
14
+ //#endregion
15
+ exports.allowDuplicateLeadingCommandNamesKey = allowDuplicateLeadingCommandNamesKey;
16
+ exports.hiddenCommandAliasesKey = hiddenCommandAliasesKey;
@@ -0,0 +1,14 @@
1
+ //#region src/internal/command-alias.ts
2
+ /**
3
+ * Internal key used to bypass duplicate leading command name validation when
4
+ * composing built-in meta commands with user parsers.
5
+ */
6
+ const allowDuplicateLeadingCommandNamesKey = Symbol("allowDuplicateLeadingCommandNames");
7
+ /**
8
+ * Internal command() option key for aliases that are accepted by parsing but
9
+ * omitted from completion and typo-suggestion display.
10
+ */
11
+ const hiddenCommandAliasesKey = Symbol("hiddenCommandAliases");
12
+
13
+ //#endregion
14
+ export { allowDuplicateLeadingCommandNamesKey, hiddenCommandAliasesKey };