@cli-forge/parser 0.10.0 → 0.11.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 (131) hide show
  1. package/LICENSE.md +5 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/config-files/configuration-loader.js.map +1 -0
  4. package/dist/lib/config-files/index.js.map +1 -0
  5. package/dist/lib/config-files/json-file-loader.js.map +1 -0
  6. package/dist/lib/config-files/package-json-loader.js.map +1 -0
  7. package/dist/lib/config-files/utils.js.map +1 -0
  8. package/dist/lib/helpers.js.map +1 -0
  9. package/dist/lib/option-types/array.js.map +1 -0
  10. package/dist/lib/option-types/boolean.js.map +1 -0
  11. package/{src → dist}/lib/option-types/common.d.ts +1 -1
  12. package/dist/lib/option-types/common.js.map +1 -0
  13. package/dist/lib/option-types/index.d.ts +15 -0
  14. package/{src → dist}/lib/option-types/index.js +1 -0
  15. package/dist/lib/option-types/index.js.map +1 -0
  16. package/dist/lib/option-types/number.js.map +1 -0
  17. package/dist/lib/option-types/object.d.ts +74 -0
  18. package/dist/lib/option-types/object.js.map +1 -0
  19. package/dist/lib/option-types/option-config-to-type.d.ts +9 -0
  20. package/dist/lib/option-types/option-config-to-type.js.map +1 -0
  21. package/dist/lib/option-types/option-config.d.ts +24 -0
  22. package/dist/lib/option-types/option-config.js.map +1 -0
  23. package/dist/lib/option-types/string.js.map +1 -0
  24. package/dist/lib/option-types/type-resolution.d.ts +126 -0
  25. package/dist/lib/option-types/type-resolution.js +7 -0
  26. package/dist/lib/option-types/type-resolution.js.map +1 -0
  27. package/dist/lib/parser.d.ts +218 -0
  28. package/{src → dist}/lib/parser.js +83 -13
  29. package/dist/lib/parser.js.map +1 -0
  30. package/dist/lib/parsers/array.js.map +1 -0
  31. package/dist/lib/parsers/boolean.js.map +1 -0
  32. package/dist/lib/parsers/number.js.map +1 -0
  33. package/{src → dist}/lib/parsers/object.d.ts +1 -1
  34. package/{src → dist}/lib/parsers/object.js +22 -1
  35. package/dist/lib/parsers/object.js.map +1 -0
  36. package/dist/lib/parsers/parser-map.js.map +1 -0
  37. package/dist/lib/parsers/string.js.map +1 -0
  38. package/dist/lib/parsers/typings.d.ts +11 -0
  39. package/dist/lib/parsers/typings.js.map +1 -0
  40. package/dist/lib/utils/case-transformations.js.map +1 -0
  41. package/dist/lib/utils/chain.d.ts +331 -0
  42. package/dist/lib/utils/chain.js.map +1 -0
  43. package/dist/lib/utils/flags.js.map +1 -0
  44. package/dist/lib/utils/get-configured-key.d.ts +3 -0
  45. package/dist/lib/utils/get-configured-key.js.map +1 -0
  46. package/dist/lib/utils/read-default-value.d.ts +2 -0
  47. package/{src → dist}/lib/utils/read-default-value.js +2 -0
  48. package/dist/lib/utils/read-default-value.js.map +1 -0
  49. package/package.json +17 -6
  50. package/src/lib/config-files/README.md +10 -0
  51. package/src/index.js.map +0 -1
  52. package/src/lib/config-files/configuration-loader.js.map +0 -1
  53. package/src/lib/config-files/index.js.map +0 -1
  54. package/src/lib/config-files/json-file-loader.js.map +0 -1
  55. package/src/lib/config-files/package-json-loader.js.map +0 -1
  56. package/src/lib/config-files/utils.js.map +0 -1
  57. package/src/lib/helpers.js.map +0 -1
  58. package/src/lib/option-types/array.js.map +0 -1
  59. package/src/lib/option-types/boolean.js.map +0 -1
  60. package/src/lib/option-types/common.js.map +0 -1
  61. package/src/lib/option-types/index.d.ts +0 -14
  62. package/src/lib/option-types/index.js.map +0 -1
  63. package/src/lib/option-types/number.js.map +0 -1
  64. package/src/lib/option-types/object.d.ts +0 -10
  65. package/src/lib/option-types/object.js.map +0 -1
  66. package/src/lib/option-types/option-config-to-type.d.ts +0 -26
  67. package/src/lib/option-types/option-config-to-type.js.map +0 -1
  68. package/src/lib/option-types/option-config.d.ts +0 -15
  69. package/src/lib/option-types/option-config.js.map +0 -1
  70. package/src/lib/option-types/string.js.map +0 -1
  71. package/src/lib/parser.d.ts +0 -269
  72. package/src/lib/parser.js.map +0 -1
  73. package/src/lib/parsers/array.js.map +0 -1
  74. package/src/lib/parsers/boolean.js.map +0 -1
  75. package/src/lib/parsers/number.js.map +0 -1
  76. package/src/lib/parsers/object.js.map +0 -1
  77. package/src/lib/parsers/parser-map.js.map +0 -1
  78. package/src/lib/parsers/string.js.map +0 -1
  79. package/src/lib/parsers/typings.d.ts +0 -11
  80. package/src/lib/parsers/typings.js.map +0 -1
  81. package/src/lib/utils/case-transformations.js.map +0 -1
  82. package/src/lib/utils/chain.d.ts +0 -397
  83. package/src/lib/utils/chain.js.map +0 -1
  84. package/src/lib/utils/flags.js.map +0 -1
  85. package/src/lib/utils/get-configured-key.d.ts +0 -3
  86. package/src/lib/utils/get-configured-key.js.map +0 -1
  87. package/src/lib/utils/read-default-value.d.ts +0 -2
  88. package/src/lib/utils/read-default-value.js.map +0 -1
  89. /package/{src → dist}/index.d.ts +0 -0
  90. /package/{src → dist}/index.js +0 -0
  91. /package/{src → dist}/lib/config-files/configuration-loader.d.ts +0 -0
  92. /package/{src → dist}/lib/config-files/configuration-loader.js +0 -0
  93. /package/{src → dist}/lib/config-files/index.d.ts +0 -0
  94. /package/{src → dist}/lib/config-files/index.js +0 -0
  95. /package/{src → dist}/lib/config-files/json-file-loader.d.ts +0 -0
  96. /package/{src → dist}/lib/config-files/json-file-loader.js +0 -0
  97. /package/{src → dist}/lib/config-files/package-json-loader.d.ts +0 -0
  98. /package/{src → dist}/lib/config-files/package-json-loader.js +0 -0
  99. /package/{src → dist}/lib/config-files/utils.d.ts +0 -0
  100. /package/{src → dist}/lib/config-files/utils.js +0 -0
  101. /package/{src → dist}/lib/helpers.d.ts +0 -0
  102. /package/{src → dist}/lib/helpers.js +0 -0
  103. /package/{src → dist}/lib/option-types/array.d.ts +0 -0
  104. /package/{src → dist}/lib/option-types/array.js +0 -0
  105. /package/{src → dist}/lib/option-types/boolean.d.ts +0 -0
  106. /package/{src → dist}/lib/option-types/boolean.js +0 -0
  107. /package/{src → dist}/lib/option-types/common.js +0 -0
  108. /package/{src → dist}/lib/option-types/number.d.ts +0 -0
  109. /package/{src → dist}/lib/option-types/number.js +0 -0
  110. /package/{src → dist}/lib/option-types/object.js +0 -0
  111. /package/{src → dist}/lib/option-types/option-config-to-type.js +0 -0
  112. /package/{src → dist}/lib/option-types/option-config.js +0 -0
  113. /package/{src → dist}/lib/option-types/string.d.ts +0 -0
  114. /package/{src → dist}/lib/option-types/string.js +0 -0
  115. /package/{src → dist}/lib/parsers/array.d.ts +0 -0
  116. /package/{src → dist}/lib/parsers/array.js +0 -0
  117. /package/{src → dist}/lib/parsers/boolean.d.ts +0 -0
  118. /package/{src → dist}/lib/parsers/boolean.js +0 -0
  119. /package/{src → dist}/lib/parsers/number.d.ts +0 -0
  120. /package/{src → dist}/lib/parsers/number.js +0 -0
  121. /package/{src → dist}/lib/parsers/parser-map.d.ts +0 -0
  122. /package/{src → dist}/lib/parsers/parser-map.js +0 -0
  123. /package/{src → dist}/lib/parsers/string.d.ts +0 -0
  124. /package/{src → dist}/lib/parsers/string.js +0 -0
  125. /package/{src → dist}/lib/parsers/typings.js +0 -0
  126. /package/{src → dist}/lib/utils/case-transformations.d.ts +0 -0
  127. /package/{src → dist}/lib/utils/case-transformations.js +0 -0
  128. /package/{src → dist}/lib/utils/chain.js +0 -0
  129. /package/{src → dist}/lib/utils/flags.d.ts +0 -0
  130. /package/{src → dist}/lib/utils/flags.js +0 -0
  131. /package/{src → dist}/lib/utils/get-configured-key.js +0 -0
@@ -65,12 +65,7 @@ class ArgvParser {
65
65
  ...this.options.extraParsers,
66
66
  };
67
67
  }
68
- /**
69
- * Registers a new option with the parser.
70
- * @param name The name of the option
71
- * @param config The configuration for the option. See {@link OptionConfig}
72
- * @returns Updated parser instance with the new option registered.
73
- */
68
+ // Implementation
74
69
  option(name, config) {
75
70
  const thisAsNewType = this;
76
71
  if (name.includes('-')) {
@@ -87,12 +82,7 @@ class ArgvParser {
87
82
  }
88
83
  return this;
89
84
  }
90
- /**
91
- * Registers a new positional argument with the parser.
92
- * @param name The name of the positional argument
93
- * @param config The configuration for the positional argument. See {@link OptionConfig}
94
- * @returns Updated parser instance with the new positional argument registered.
95
- */
85
+ // Implementation
96
86
  positional(name, config) {
97
87
  return this.option(name, {
98
88
  ...config,
@@ -234,6 +224,17 @@ class ArgvParser {
234
224
  normalized[configuration.key] ??= (0, read_default_value_1.readDefaultValue)(configuration)[0];
235
225
  }
236
226
  }
227
+ // Apply nested defaults for object options (before coerce)
228
+ if (configuration.type === 'object' && normalized[configuration.key] !== undefined) {
229
+ const objectConfig = configuration;
230
+ if (objectConfig.properties) {
231
+ normalized[configuration.key] = applyNestedObjectDefaults(normalized[configuration.key], objectConfig);
232
+ // Now apply coerce after defaults have been applied
233
+ if (configuration.coerce) {
234
+ normalized[configuration.key] = configuration.coerce(normalized[configuration.key]);
235
+ }
236
+ }
237
+ }
237
238
  this.reflectEnv(configuration, normalized[configuration.key]);
238
239
  }
239
240
  return normalized;
@@ -271,6 +272,12 @@ class ArgvParser {
271
272
  const configuration = this.configuredOptions[configurationKey];
272
273
  try {
273
274
  validateOption(configuration, normalized[configuration.key]);
275
+ // Handle nested object properties
276
+ if (configuration.type === 'object' &&
277
+ configuration.properties &&
278
+ normalized[configuration.key] !== undefined) {
279
+ normalized[configuration.key] = normalizeAndValidateObjectProperties(normalized[configuration.key], configuration, configuration.key, errors);
280
+ }
274
281
  if (normalized[configuration.key] !== undefined) {
275
282
  validateConflicts(configuration);
276
283
  validateImplications(configuration);
@@ -427,7 +434,8 @@ function validateOption(optionConfig, value) {
427
434
  return true;
428
435
  };
429
436
  }
430
- if (optionConfig.validate && value !== undefined) {
437
+ if (optionConfig.validate && value != undefined) {
438
+ value;
431
439
  let result;
432
440
  try {
433
441
  result = optionConfig.validate(value);
@@ -458,6 +466,11 @@ function tryParseValue(parser, input) {
458
466
  }
459
467
  try {
460
468
  const val = parser(input);
469
+ // For object types, defer coerce until after nested defaults are applied
470
+ // For other types, apply coerce immediately
471
+ if (input.config.type === 'object') {
472
+ return val;
473
+ }
461
474
  return input.config.coerce?.(val) ?? val;
462
475
  }
463
476
  catch (e) {
@@ -478,4 +491,61 @@ class ValidationFailedError extends AggregateError {
478
491
  }
479
492
  }
480
493
  exports.ValidationFailedError = ValidationFailedError;
494
+ /**
495
+ * Applies default values to nested properties of an object option recursively.
496
+ * This is called during normalization, before coerce is applied.
497
+ * This function is only called when the parent object exists (has at least one property set).
498
+ * @param value The current value of the object
499
+ * @param config The object option configuration
500
+ * @returns The object with defaults applied to nested properties
501
+ */
502
+ function applyNestedObjectDefaults(value, config) {
503
+ const normalized = { ...value };
504
+ for (const propKey in config.properties) {
505
+ const propConfig = config.properties[propKey];
506
+ // Apply defaults for undefined properties
507
+ if (normalized[propKey] === undefined && propConfig.default !== undefined) {
508
+ normalized[propKey] = (0, read_default_value_1.readDefaultValue)(propConfig)[0];
509
+ }
510
+ // Recursively handle nested objects
511
+ if (propConfig.type === 'object' &&
512
+ 'properties' in propConfig &&
513
+ normalized[propKey] !== undefined) {
514
+ normalized[propKey] = applyNestedObjectDefaults(normalized[propKey], propConfig);
515
+ }
516
+ }
517
+ return normalized;
518
+ }
519
+ /**
520
+ * Validates nested properties of an object option recursively.
521
+ * This is called during validation, after defaults have been applied and before coerce.
522
+ * Checks required properties at any depth.
523
+ * @param value The current value of the object
524
+ * @param config The object option configuration
525
+ * @param keyPath The path to this property for error messages
526
+ * @param errors Array to collect validation errors
527
+ * @returns The validated value
528
+ */
529
+ function normalizeAndValidateObjectProperties(value, config, keyPath, errors) {
530
+ // If the object is undefined and not required, skip processing
531
+ if (value === undefined) {
532
+ return value;
533
+ }
534
+ const normalized = { ...value };
535
+ for (const propKey in config.properties) {
536
+ const propConfig = config.properties[propKey];
537
+ const propPath = `${keyPath}.${propKey}`;
538
+ // Validate required properties
539
+ if (propConfig.required && normalized[propKey] === undefined) {
540
+ const e = new Error(`Missing required option ${propPath}`);
541
+ delete e.stack;
542
+ errors.push(e);
543
+ }
544
+ // Recursively handle nested objects
545
+ if (propConfig.type === 'object' && 'properties' in propConfig) {
546
+ normalized[propKey] = normalizeAndValidateObjectProperties(normalized[propKey], propConfig, propPath, errors);
547
+ }
548
+ }
549
+ return normalized;
550
+ }
481
551
  //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/lib/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/lib/parsers/array.ts"],"names":[],"mappings":";;;AACA,0CAA4C;AAG5C,MAAM,UAAU,GAAG;IACjB,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;CACA,CAAC;AACX,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE;IAChC,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,OAAO,GAAoC,KAAK,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,KAAK,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,GAAG,IAAI,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;gBACvB,OAAO,GAAG,IAA+B,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACxB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,GAAG,GAAG,EAAE,CAAC;YACX,CAAC;iBAAM,CAAC;gBACN,GAAG,IAAI,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEK,MAAM,WAAW,GAAwC,CAE9D,EACA,MAAM,EACN,MAAM,EACN,OAAO,GACoC,EAAE,EAAE;IAC/C,MAAM,MAAM,GACV,MAAM,CAAC,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAM;QACvB,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAM,CAAC;IACpC,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACzB,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,MAAM;QACR,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACrD,CAAC,CAAC;AA1BW,QAAA,WAAW,eA0BtB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../src/lib/parsers/boolean.ts"],"names":[],"mappings":";;;AACA,0CAA4C;AAGrC,MAAM,aAAa,GAA0C,CAAC,EACnE,MAAM,EACN,YAAY,GACb,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,YAAY,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;QACnB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC,CAAC;AApBW,QAAA,aAAa,iBAoBxB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/lib/parsers/number.ts"],"names":[],"mappings":";;;AACA,0CAA4C;AAC5C,uCAAyC;AAGlC,MAAM,YAAY,GAAyC,CAAC,EACjE,MAAM,GACP,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,sBAAY,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,IAAI,sBAAY,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
@@ -1,3 +1,3 @@
1
1
  import { Internal, ObjectOptionConfig } from '../option-types';
2
2
  import { Parser } from './typings';
3
- export declare const objectParser: Parser<Internal<ObjectOptionConfig>>;
3
+ export declare const objectParser: Parser<Internal<ObjectOptionConfig<any, any, any>>>;
@@ -11,7 +11,28 @@ const objectParser = ({ tokens, config, providedFlag, current, }) => {
11
11
  // We don't care about the first part, as the base parser has already matched the flag.
12
12
  const parts = providedFlag?.split('.').slice(1);
13
13
  if (!parts?.length) {
14
- throw new Error(`${config.key} is configured as an object, but no properties were provided. Pass properties like so: --${config.key}.foo bar --${config.key}.baz qux`);
14
+ // When no dot notation is provided (e.g., just --config), try to parse as JSON string
15
+ const token = tokens.shift();
16
+ if (!token) {
17
+ throw new Error(`${config.key} is configured as an object, but no value was provided. Pass properties like so: --${config.key}.foo bar --${config.key}.baz qux, or provide a JSON string: --${config.key} '{"foo": "bar"}'`);
18
+ }
19
+ try {
20
+ const parsed = JSON.parse(token);
21
+ if (typeof parsed !== 'object' ||
22
+ parsed === null ||
23
+ Array.isArray(parsed)) {
24
+ throw new Error(`Expected ${config.key} to be a JSON object, but got ${typeof parsed}`);
25
+ }
26
+ // Merge parsed JSON with existing values, with JSON taking precedence (last value wins)
27
+ // This matches the behavior of dot notation where later flags override earlier ones
28
+ return { ...current, ...parsed };
29
+ }
30
+ catch (e) {
31
+ if (e instanceof SyntaxError) {
32
+ throw new Error(`Failed to parse ${config.key} as JSON: ${e.message}. Either provide a valid JSON string or use dot notation: --${config.key}.foo bar`);
33
+ }
34
+ throw e;
35
+ }
15
36
  }
16
37
  const { config: propConfig, readValue, setValue } = parsePath(parts);
17
38
  const currentValue = readValue();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/lib/parsers/object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-map.js","sourceRoot":"","sources":["../../../src/lib/parsers/parser-map.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAC1C,qCAAwC;AACxC,qCAAwC;AACxC,mCAAsC;AACtC,qCAAwC;AAG3B,QAAA,SAAS,GAAgC;IACpD,MAAM,EAAE,qBAAY;IACpB,MAAM,EAAE,qBAAY;IACpB,OAAO,EAAE,uBAAa;IACtB,KAAK,EAAE,mBAAW;IAClB,MAAM,EAAE,qBAAY;CACrB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../src/lib/parsers/string.ts"],"names":[],"mappings":";;;AACA,0CAA4C;AAC5C,uCAAyC;AAGlC,MAAM,YAAY,GAAyC,CAAC,EACjE,MAAM,GACP,EAAE,EAAE;IACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,sBAAY,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,IAAI,sBAAY,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
@@ -0,0 +1,11 @@
1
+ import { UnknownOptionConfig } from '../option-types';
2
+ export type ParserContext<TConfig extends UnknownOptionConfig> = {
3
+ config: TConfig;
4
+ tokens: string[];
5
+ current?: any;
6
+ providedFlag?: string;
7
+ };
8
+ export type Parser<TConfig extends UnknownOptionConfig, T = any> = (input: ParserContext<TConfig>) => T;
9
+ export declare class NoValueError extends Error {
10
+ constructor();
11
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typings.js","sourceRoot":"","sources":["../../../src/lib/parsers/typings.ts"],"names":[],"mappings":";;;AAWA,MAAa,YAAa,SAAQ,KAAK;IACrC;QACE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5B,CAAC;CACF;AAJD,oCAIC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-transformations.js","sourceRoot":"","sources":["../../../src/lib/utils/case-transformations.ts"],"names":[],"mappings":";;AAAA,sDAEC;AAED,4EA+BC;AAED,8BAIC;AAzCD,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAgB,gCAAgC,CAAC,GAAW;IAC1D,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,IAAwB,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;YACD,WAAW,GAAG,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,oDAAoD;QACpD,IAAI,IAAI,IAAI,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,WAAW,GAAG,IAAI,CAAC;YACnB,sCAAsC;QACxC,CAAC;aAAM,IACL,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI;YAC5B,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;YAC3B,WAAW,CAAC,MAAM,GAAG,CAAC,EACtB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,WAAW,IAAI,IAAI,CAAC;QACtB,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,SAAS,CAAC,MAA0B,EAAE,GAAW;IAC/D,OAAO,MAAM;QACX,CAAC,CAAC,GAAG,MAAM,IAAI,gCAAgC,CAAC,GAAG,CAAC,EAAE;QACtD,CAAC,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,331 @@
1
+ import { UnknownOptionConfig } from '../option-types';
2
+ import { ArgvParser, ParsedArgs } from '../parser';
3
+ type UnaryFunction<T, R> = (arg: T) => R;
4
+ /**
5
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
6
+ *
7
+ * Used to convert code that looks like:
8
+ * ```typescript
9
+ * const a = addB(addC({ a: 'a' }));
10
+ * ```
11
+ * to:
12
+ * ```typescript
13
+ * const a = chain({ a: 'a' }, addB, addC);
14
+ * ```
15
+ *
16
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
17
+ *
18
+ * @param initial Initial value to pass through the chain
19
+ * @param fns Functions to apply to the initial value, and each subsequent value
20
+ * @returns Updated value after all functions have been applied
21
+ * @hidden docs for {@link chain} are found on the main signature.
22
+ */
23
+ export declare function chain<T0, R>(initial: T0, fn0: UnaryFunction<T0, R>): R;
24
+ /**
25
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
26
+ *
27
+ * Used to convert code that looks like:
28
+ * ```typescript
29
+ * const a = addB(addC({ a: 'a' }));
30
+ * ```
31
+ * to:
32
+ * ```typescript
33
+ * const a = chain({ a: 'a' }, addB, addC);
34
+ * ```
35
+ *
36
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
37
+ *
38
+ * @param initial Initial value to pass through the chain
39
+ * @param fns Functions to apply to the initial value, and each subsequent value
40
+ * @returns Updated value after all functions have been applied
41
+ * @hidden docs for {@link chain} are found on the main signature.
42
+ */
43
+ export declare function chain<T0, T1, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, R>): R;
44
+ /**
45
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
46
+ *
47
+ * Used to convert code that looks like:
48
+ * ```typescript
49
+ * const a = addB(addC({ a: 'a' }));
50
+ * ```
51
+ * to:
52
+ * ```typescript
53
+ * const a = chain({ a: 'a' }, addB, addC);
54
+ * ```
55
+ *
56
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
57
+ *
58
+ * @param initial Initial value to pass through the chain
59
+ * @param fns Functions to apply to the initial value, and each subsequent value
60
+ * @returns Updated value after all functions have been applied
61
+ * @hidden docs for {@link chain} are found on the main signature.
62
+ */
63
+ export declare function chain<T0, T1, T2, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, R>): R;
64
+ /**
65
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
66
+ *
67
+ * Used to convert code that looks like:
68
+ * ```typescript
69
+ * const a = addB(addC({ a: 'a' }));
70
+ * ```
71
+ * to:
72
+ * ```typescript
73
+ * const a = chain({ a: 'a' }, addB, addC);
74
+ * ```
75
+ *
76
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
77
+ *
78
+ * @param initial Initial value to pass through the chain
79
+ * @param fns Functions to apply to the initial value, and each subsequent value
80
+ * @returns Updated value after all functions have been applied
81
+ * @hidden docs for {@link chain} are found on the main signature.
82
+ */
83
+ export declare function chain<T0, T1, T2, T3, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, R>): R;
84
+ /**
85
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
86
+ *
87
+ * Used to convert code that looks like:
88
+ * ```typescript
89
+ * const a = addB(addC({ a: 'a' }));
90
+ * ```
91
+ * to:
92
+ * ```typescript
93
+ * const a = chain({ a: 'a' }, addB, addC);
94
+ * ```
95
+ *
96
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
97
+ *
98
+ * @param initial Initial value to pass through the chain
99
+ * @param fns Functions to apply to the initial value, and each subsequent value
100
+ * @returns Updated value after all functions have been applied
101
+ * @hidden docs for {@link chain} are found on the main signature.
102
+ */
103
+ export declare function chain<T0, T1, T2, T3, T4, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, R>): R;
104
+ /**
105
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
106
+ *
107
+ * Used to convert code that looks like:
108
+ * ```typescript
109
+ * const a = addB(addC({ a: 'a' }));
110
+ * ```
111
+ * to:
112
+ * ```typescript
113
+ * const a = chain({ a: 'a' }, addB, addC);
114
+ * ```
115
+ *
116
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
117
+ *
118
+ * @param initial Initial value to pass through the chain
119
+ * @param fns Functions to apply to the initial value, and each subsequent value
120
+ * @returns Updated value after all functions have been applied
121
+ * @hidden docs for {@link chain} are found on the main signature.
122
+ */
123
+ export declare function chain<T0, T1, T2, T3, T4, T5, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, R>): R;
124
+ /**
125
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
126
+ *
127
+ * Used to convert code that looks like:
128
+ * ```typescript
129
+ * const a = addB(addC({ a: 'a' }));
130
+ * ```
131
+ * to:
132
+ * ```typescript
133
+ * const a = chain({ a: 'a' }, addB, addC);
134
+ * ```
135
+ *
136
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
137
+ *
138
+ * @param initial Initial value to pass through the chain
139
+ * @param fns Functions to apply to the initial value, and each subsequent value
140
+ * @returns Updated value after all functions have been applied
141
+ * @hidden docs for {@link chain} are found on the main signature.
142
+ */
143
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, R>): R;
144
+ /**
145
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
146
+ *
147
+ * Used to convert code that looks like:
148
+ * ```typescript
149
+ * const a = addB(addC({ a: 'a' }));
150
+ * ```
151
+ * to:
152
+ * ```typescript
153
+ * const a = chain({ a: 'a' }, addB, addC);
154
+ * ```
155
+ *
156
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
157
+ *
158
+ * @param initial Initial value to pass through the chain
159
+ * @param fns Functions to apply to the initial value, and each subsequent value
160
+ * @returns Updated value after all functions have been applied
161
+ * @hidden docs for {@link chain} are found on the main signature.
162
+ */
163
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, R>): R;
164
+ /**
165
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
166
+ *
167
+ * Used to convert code that looks like:
168
+ * ```typescript
169
+ * const a = addB(addC({ a: 'a' }));
170
+ * ```
171
+ * to:
172
+ * ```typescript
173
+ * const a = chain({ a: 'a' }, addB, addC);
174
+ * ```
175
+ *
176
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
177
+ *
178
+ * @param initial Initial value to pass through the chain
179
+ * @param fns Functions to apply to the initial value, and each subsequent value
180
+ * @returns Updated value after all functions have been applied
181
+ * @hidden docs for {@link chain} are found on the main signature.
182
+ */
183
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, R>): R;
184
+ /**
185
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
186
+ *
187
+ * Used to convert code that looks like:
188
+ * ```typescript
189
+ * const a = addB(addC({ a: 'a' }));
190
+ * ```
191
+ * to:
192
+ * ```typescript
193
+ * const a = chain({ a: 'a' }, addB, addC);
194
+ * ```
195
+ *
196
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
197
+ *
198
+ * @param initial Initial value to pass through the chain
199
+ * @param fns Functions to apply to the initial value, and each subsequent value
200
+ * @returns Updated value after all functions have been applied
201
+ * @hidden docs for {@link chain} are found on the main signature.
202
+ */
203
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, R>): R;
204
+ /**
205
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
206
+ *
207
+ * Used to convert code that looks like:
208
+ * ```typescript
209
+ * const a = addB(addC({ a: 'a' }));
210
+ * ```
211
+ * to:
212
+ * ```typescript
213
+ * const a = chain({ a: 'a' }, addB, addC);
214
+ * ```
215
+ *
216
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
217
+ *
218
+ * @param initial Initial value to pass through the chain
219
+ * @param fns Functions to apply to the initial value, and each subsequent value
220
+ * @returns Updated value after all functions have been applied
221
+ * @hidden docs for {@link chain} are found on the main signature.
222
+ */
223
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, R>): R;
224
+ /**
225
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
226
+ *
227
+ * Used to convert code that looks like:
228
+ * ```typescript
229
+ * const a = addB(addC({ a: 'a' }));
230
+ * ```
231
+ * to:
232
+ * ```typescript
233
+ * const a = chain({ a: 'a' }, addB, addC);
234
+ * ```
235
+ *
236
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
237
+ *
238
+ * @param initial Initial value to pass through the chain
239
+ * @param fns Functions to apply to the initial value, and each subsequent value
240
+ * @returns Updated value after all functions have been applied
241
+ * @hidden docs for {@link chain} are found on the main signature.
242
+ */
243
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, R>): R;
244
+ /**
245
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
246
+ *
247
+ * Used to convert code that looks like:
248
+ * ```typescript
249
+ * const a = addB(addC({ a: 'a' }));
250
+ * ```
251
+ * to:
252
+ * ```typescript
253
+ * const a = chain({ a: 'a' }, addB, addC);
254
+ * ```
255
+ *
256
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
257
+ *
258
+ * @param initial Initial value to pass through the chain
259
+ * @param fns Functions to apply to the initial value, and each subsequent value
260
+ * @returns Updated value after all functions have been applied
261
+ * @hidden docs for {@link chain} are found on the main signature.
262
+ */
263
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, T12>, fn12: UnaryFunction<T12, R>): R;
264
+ /**
265
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
266
+ *
267
+ * Used to convert code that looks like:
268
+ * ```typescript
269
+ * const a = addB(addC({ a: 'a' }));
270
+ * ```
271
+ * to:
272
+ * ```typescript
273
+ * const a = chain({ a: 'a' }, addB, addC);
274
+ * ```
275
+ *
276
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
277
+ *
278
+ * @param initial Initial value to pass through the chain
279
+ * @param fns Functions to apply to the initial value, and each subsequent value
280
+ * @returns Updated value after all functions have been applied
281
+ * @hidden docs for {@link chain} are found on the main signature.
282
+ */
283
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, T12>, fn12: UnaryFunction<T12, T13>, fn13: UnaryFunction<T13, R>): R;
284
+ /**
285
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
286
+ *
287
+ * Used to convert code that looks like:
288
+ * ```typescript
289
+ * const a = addB(addC({ a: 'a' }));
290
+ * ```
291
+ * to:
292
+ * ```typescript
293
+ * const a = chain({ a: 'a' }, addB, addC);
294
+ * ```
295
+ *
296
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
297
+ *
298
+ * @param initial Initial value to pass through the chain
299
+ * @param fns Functions to apply to the initial value, and each subsequent value
300
+ * @returns Updated value after all functions have been applied
301
+ * @hidden docs for {@link chain} are found on the main signature.
302
+ */
303
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, T12>, fn12: UnaryFunction<T12, T13>, fn13: UnaryFunction<T13, T14>, fn14: UnaryFunction<T14, R>): R;
304
+ /**
305
+ * Applies a series of functions to an initial value, passing the result of each function to the next.
306
+ *
307
+ * Used to convert code that looks like:
308
+ * ```typescript
309
+ * const a = addB(addC({ a: 'a' }));
310
+ * ```
311
+ * to:
312
+ * ```typescript
313
+ * const a = chain({ a: 'a' }, addB, addC);
314
+ * ```
315
+ *
316
+ * See [composable-options](/examples/composable-options) for an example of how this can be used.
317
+ *
318
+ * @param {T0} initial Initial value to pass through the chain
319
+ * @param fns Functions to apply to the initial value, and each subsequent value
320
+ * @returns {R} Updated value after all functions have been applied
321
+ */
322
+ export declare function chain<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R>(initial: T0, fn0: UnaryFunction<T0, T1>, fn1: UnaryFunction<T1, T2>, fn2: UnaryFunction<T2, T3>, fn3: UnaryFunction<T3, T4>, fn4: UnaryFunction<T4, T5>, fn5: UnaryFunction<T5, T6>, fn6: UnaryFunction<T6, T7>, fn7: UnaryFunction<T7, T8>, fn8: UnaryFunction<T8, T9>, fn9: UnaryFunction<T9, T10>, fn10: UnaryFunction<T10, T11>, fn11: UnaryFunction<T11, T12>, fn12: UnaryFunction<T12, T13>, fn13: UnaryFunction<T13, T14>, fn14: UnaryFunction<T14, T15>, fn15: UnaryFunction<T15, R>): R;
323
+ /**
324
+ * A composition helper to be used with {@link chain}.
325
+ *
326
+ * @param name The name of the option to add
327
+ * @param config The configuration for the option
328
+ * @returns A unary function that adds an option to an {@link ArgvParser}.
329
+ */
330
+ export declare function makeComposableOption<const TKey extends string, const TOptionConfig extends UnknownOptionConfig>(name: TKey, config: TOptionConfig): <const T extends ParsedArgs>(argv: ArgvParser<T>) => ArgvParser<T & { [key in TKey]: import("../option-types").WithOptional<import("../option-types").ResolveOptionType<TOptionConfig>, TOptionConfig>; }>;
331
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/lib/utils/chain.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,wFAAwF;AACxF,4FAA4F;AAC5F,0GAA0G;AAC1G,oGAAoG;AACpG,+CAA+C;;AA4kB/C,sBAKC;AASD,oDAMC;AAlDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,SAAgB,KAAK,CACnB,OAAW,EACX,GAAG,GAA8B;IAEjC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAGlC,IAAU,EAAE,MAAqB;IACjC,OAAO,CAA6B,IAAmB,EAAE,EAAE,CACzD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../src/lib/utils/flags.ts"],"names":[],"mappings":";;AAEA,wBAEC;AACD,kCAaC;AACD,gCAEC;AArBD,iEAA+D;AAE/D,SAAgB,MAAM,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AACD,SAAgB,WAAW,CAAC,GAAiB;IAC3C,0BAA0B;IAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAA,4CAAqB,EAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,sCAAsC;IACxC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;AACzC,CAAC;AACD,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { UnknownOptionConfig } from '../option-types';
2
+ import { ParsedArgs } from '../parser';
3
+ export declare function getConfiguredOptionKey<T extends ParsedArgs>(key: string, configuredOptions: Partial<Record<keyof T, UnknownOptionConfig>>): keyof T | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-configured-key.js","sourceRoot":"","sources":["../../../src/lib/utils/get-configured-key.ts"],"names":[],"mappings":";;AAGA,wDA+CC;AA/CD,SAAgB,sBAAsB,CACpC,GAAW,EACX,iBAAgE;IAEhE,IAAI,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC7B,OAAO,GAAc,CAAC;IACxB,CAAC;IAED,SAAS,0BAA0B,CAAC,GAAW;QAC7C,IACE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,GAAG,CAAC,MAAM,GAAG,CAAC;YACd,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAC/B,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,wBAAwB,CAAC,GAAW;QAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,wCAAwC;IACxC,MAAM,aAAa,GAAG,wBAAwB,CAC5C,0BAA0B,CAAC,GAAG,CAAC,CAChC,CAAC;IAEF,IAAI,aAAa,IAAI,iBAAiB,EAAE,CAAC;QACvC,OAAO,aAAwB,CAAC;IAClC,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,iBAAiB,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,aAAwB,CAAC;QAClC,CAAC;QACD,4CAA4C;QAC5C,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACxE,OAAO,aAAwB,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { UnknownOptionConfig, OptionConfigToType } from '../option-types';
2
+ export declare function readDefaultValue<const T extends UnknownOptionConfig>(option: T): [OptionConfigToType<T> | undefined, string | undefined];
@@ -13,6 +13,8 @@ function readDefaultValue(option) {
13
13
  const factory = declaredDefault.factory;
14
14
  return [factory(), declaredDefault.description];
15
15
  }
16
+ // Plain object default (e.g., for object options with default: { foo: 'bar' })
17
+ return [declaredDefault, undefined];
16
18
  }
17
19
  else {
18
20
  return [declaredDefault, undefined];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-default-value.js","sourceRoot":"","sources":["../../../src/lib/utils/read-default-value.ts"],"names":[],"mappings":";;AAOA,4CAsBC;AAtBD,SAAgB,gBAAgB,CAC9B,MAAS;IAET,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,MAAM,CAAC,OAA4B,CAAC;QAC5D,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,OAAO,IAAI,eAAe,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAqC,CAAC;gBACpE,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;gBACjC,MAAM,OAAO,GACX,eAAe,CAAC,OAA6C,CAAC;gBAChE,OAAO,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;YAClD,CAAC;YACD,+EAA+E;YAC/E,OAAO,CAAC,eAA+C,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC"}