@cli-forge/parser 1.0.2 → 1.2.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.
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './lib/helpers';
4
4
  export * from './lib/option-types';
5
5
  export * from './lib/utils/read-default-value';
6
6
  export * from './lib/utils/chain';
7
+ export * from './lib/localization';
7
8
  /**
8
9
  * Types and utilities for working with configuration files.
9
10
  */
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ tslib_1.__exportStar(require("./lib/helpers"), exports);
8
8
  tslib_1.__exportStar(require("./lib/option-types"), exports);
9
9
  tslib_1.__exportStar(require("./lib/utils/read-default-value"), exports);
10
10
  tslib_1.__exportStar(require("./lib/utils/chain"), exports);
11
+ tslib_1.__exportStar(require("./lib/localization"), exports);
11
12
  /**
12
13
  * Types and utilities for working with configuration files.
13
14
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,uDAA6B;AAC7B,2EAAiD;AACjD,wDAA8B;AAC9B,6DAAmC;AACnC,yEAA+C;AAC/C,4DAAkC;AAElC;;GAEG;AACH,iFAAyD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,uDAA6B;AAC7B,2EAAiD;AACjD,wDAA8B;AAC9B,6DAAmC;AACnC,yEAA+C;AAC/C,4DAAkC;AAClC,6DAAmC;AAEnC;;GAEG;AACH,iFAAyD"}
@@ -18,4 +18,4 @@ export type ConfigurationProvider<T> = {
18
18
  extends?: string;
19
19
  };
20
20
  };
21
- export declare function resolveConfiguration<T>(configurationRoot: string, loaders: ConfigurationProvider<T>[]): T;
21
+ export declare function resolveConfiguration<T>(configurationRoot: string, loaders: ConfigurationProvider<T>[], visited?: Map<ConfigurationProvider<T>, Set<string>>): T;
@@ -4,13 +4,16 @@ exports.resolveConfiguration = resolveConfiguration;
4
4
  const path_1 = require("path");
5
5
  // Runs all the configuration loaders in order to resolve the configuration file.
6
6
  // Recurses if the configuration file extends another configuration file.
7
- function resolveConfiguration(configurationRoot, loaders) {
7
+ // The `visited` map tracks resolved files per-loader to detect circular extends chains.
8
+ // It is created fresh for each top-level call and passed through recursive extends resolution.
9
+ function resolveConfiguration(configurationRoot, loaders, visited) {
10
+ const visitedMap = visited ?? new Map();
8
11
  function loadConfiguration(filename, provider) {
9
12
  const loaded = provider.load(filename);
10
13
  if (loaded.extends) {
11
14
  const extended = resolveConfiguration(loaded.extends.startsWith('.')
12
15
  ? (0, path_1.join)(configurationRoot, loaded.extends)
13
- : loaded.extends, loaders);
16
+ : loaded.extends, loaders, visitedMap);
14
17
  return { ...extended, ...loaded };
15
18
  }
16
19
  return loaded;
@@ -19,6 +22,12 @@ function resolveConfiguration(configurationRoot, loaders) {
19
22
  for (const loader of loaders) {
20
23
  const filename = loader.resolve(configurationRoot);
21
24
  if (filename) {
25
+ const loaderVisited = visitedMap.get(loader) ?? new Set();
26
+ if (loaderVisited.has(filename)) {
27
+ throw new Error(`Circular reference detected in configuration file: ${filename}. This is likely caused by an "extends" property pointing to a directory which doesn't contain a configuration file.`);
28
+ }
29
+ loaderVisited.add(filename);
30
+ visitedMap.set(loader, loaderVisited);
22
31
  combined = {
23
32
  ...loadConfiguration(filename, loader),
24
33
  ...combined,
@@ -1 +1 @@
1
- {"version":3,"file":"configuration-loader.js","sourceRoot":"","sources":["../../../src/lib/config-files/configuration-loader.ts"],"names":[],"mappings":";;AAwBA,oDAgCC;AAxDD,+BAA4B;AAsB5B,iFAAiF;AACjF,yEAAyE;AACzE,SAAgB,oBAAoB,CAClC,iBAAyB,EACzB,OAAmC;IAEnC,SAAS,iBAAiB,CACxB,QAAgB,EAChB,QAAkC;QAElC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,oBAAoB,CACnC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC5B,CAAC,CAAC,IAAA,WAAI,EAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC;gBACzC,CAAC,CAAC,MAAM,CAAC,OAAO,EAClB,OAAO,CACR,CAAC;YACF,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,GAAM,EAAO,CAAC;IAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,GAAG;gBACT,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACtC,GAAG,QAAQ;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"configuration-loader.js","sourceRoot":"","sources":["../../../src/lib/config-files/configuration-loader.ts"],"names":[],"mappings":";;AA0BA,oDA4CC;AAtED,+BAA4B;AAsB5B,iFAAiF;AACjF,yEAAyE;AACzE,wFAAwF;AACxF,+FAA+F;AAC/F,SAAgB,oBAAoB,CAClC,iBAAyB,EACzB,OAAmC,EACnC,OAAoD;IAEpD,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC;IAExC,SAAS,iBAAiB,CACxB,QAAgB,EAChB,QAAkC;QAElC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,oBAAoB,CACnC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC5B,CAAC,CAAC,IAAA,WAAI,EAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC;gBACzC,CAAC,CAAC,MAAM,CAAC,OAAO,EAClB,OAAO,EACP,UAAU,CACX,CAAC;YACF,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,GAAM,EAAO,CAAC;IAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACnD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAClE,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,sDAAsD,QAAQ,sHAAsH,CACrL,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YACtC,QAAQ,GAAG;gBACT,GAAG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACtC,GAAG,QAAQ;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -15,16 +15,11 @@ function getJsonFileConfigLoader(filename, transform) {
15
15
  return JSON.parse((0, fs_1.readFileSync)(filepath, 'utf-8'));
16
16
  }
17
17
  class JsonFileConfigLoader {
18
- seen = new Set();
19
18
  resolve(configurationRoot) {
20
19
  const nearestFile = (0, utils_js_1.traverseForFile)(filename, configurationRoot);
21
20
  if (!nearestFile || !nearestFile.endsWith('.json')) {
22
21
  return undefined;
23
22
  }
24
- if (this.seen.has(nearestFile)) {
25
- throw new Error(`Circular reference detected in configuration file: ${nearestFile}. This is likely caused by an "extends" property pointing to a directory which doesn't contain a configuration file.`);
26
- }
27
- this.seen.add(nearestFile);
28
23
  return nearestFile;
29
24
  }
30
25
  load(jsonFile) {
@@ -1 +1 @@
1
- {"version":3,"file":"json-file-loader.js","sourceRoot":"","sources":["../../../src/lib/config-files/json-file-loader.ts"],"names":[],"mappings":";;AAYA,0DAuCC;AAnDD,2BAAkC;AAClC,+BAA+B;AAG/B,yCAA6C;AAE7C;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,QAAgB,EAChB,SAA4B;IAE5B,SAAS,YAAY,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,oBAAoB;QAChB,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,OAAO,CAAC,iBAAyB;YAC/B,MAAM,WAAW,GAAG,IAAA,0BAAe,EAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACb,sDAAsD,WAAW,sHAAsH,CACxL,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC3B,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,QAAgB;YACnB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,CAAC,cAAO,CAAC,MAAM,CAAC;YACd,OAAO,wBAAwB,GAAG,QAAQ,CAAC;QAC7C,CAAC;KACF;IAED,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"json-file-loader.js","sourceRoot":"","sources":["../../../src/lib/config-files/json-file-loader.ts"],"names":[],"mappings":";;AAYA,0DA+BC;AA3CD,2BAAkC;AAClC,+BAA+B;AAG/B,yCAA6C;AAE7C;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,QAAgB,EAChB,SAA4B;IAE5B,SAAS,YAAY,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,oBAAoB;QACxB,OAAO,CAAC,iBAAyB;YAC/B,MAAM,WAAW,GAAG,IAAA,0BAAe,EAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,QAAgB;YACnB,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,CAAC,cAAO,CAAC,MAAM,CAAC;YACd,OAAO,wBAAwB,GAAG,QAAQ,CAAC;QAC7C,CAAC;KACF;IAED,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Localization dictionary type for translating option keys and other text.
3
+ * Each key maps to an object with a "default" value and optional locale-specific translations.
4
+ */
5
+ export type LocalizationDictionary = Record<string, {
6
+ default: string;
7
+ [locale: string]: string;
8
+ }>;
9
+ /**
10
+ * Localization function type for custom translation logic.
11
+ * This allows integration with existing localization libraries like i18next.
12
+ */
13
+ export type LocalizationFunction = (key: string) => string;
14
+ /**
15
+ * Detects the current locale from the system.
16
+ * Uses Intl.DateTimeFormat to determine the user's locale.
17
+ * @returns The detected locale string (e.g., "en-US", "es-ES")
18
+ */
19
+ export declare function detectLocale(): string;
20
+ /**
21
+ * Resolves a localized text value from a dictionary.
22
+ * @param key The key to look up in the dictionary
23
+ * @param dictionary The localization dictionary
24
+ * @param locale The target locale
25
+ * @returns The localized text, or the original key if not found
26
+ */
27
+ export declare function resolveLocalizedText(key: string, dictionary: LocalizationDictionary | undefined, locale: string | undefined): string;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.detectLocale = detectLocale;
4
+ exports.resolveLocalizedText = resolveLocalizedText;
5
+ /**
6
+ * Detects the current locale from the system.
7
+ * Uses Intl.DateTimeFormat to determine the user's locale.
8
+ * @returns The detected locale string (e.g., "en-US", "es-ES")
9
+ */
10
+ function detectLocale() {
11
+ return Intl.DateTimeFormat().resolvedOptions().locale;
12
+ }
13
+ /**
14
+ * Resolves a localized text value from a dictionary.
15
+ * @param key The key to look up in the dictionary
16
+ * @param dictionary The localization dictionary
17
+ * @param locale The target locale
18
+ * @returns The localized text, or the original key if not found
19
+ */
20
+ function resolveLocalizedText(key, dictionary, locale) {
21
+ if (!dictionary || !dictionary[key]) {
22
+ return key;
23
+ }
24
+ const entry = dictionary[key];
25
+ // If locale is specified and exists in the entry, use it
26
+ if (locale && entry[locale]) {
27
+ return entry[locale];
28
+ }
29
+ // Fall back to default
30
+ return entry.default;
31
+ }
32
+ //# sourceMappingURL=localization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localization.js","sourceRoot":"","sources":["../../src/lib/localization.ts"],"names":[],"mappings":";;AAuBA,oCAEC;AASD,oDAkBC;AAlCD;;;;GAIG;AACH,SAAgB,YAAY;IAC1B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,GAAW,EACX,UAA8C,EAC9C,MAA0B;IAE1B,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAE9B,yDAAyD;IACzD,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,uBAAuB;IACvB,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC"}
@@ -3,6 +3,7 @@ import { MakeUndefinedPropertiesOptional, WithOptional } from './option-types/ty
3
3
  import { InternalOptionConfig, ObjectOptionConfig, StringOptionConfig, NumberOptionConfig, BooleanOptionConfig, ArrayOptionConfig, OptionConfig } from './option-types';
4
4
  import { Parser, ParserContext } from './parsers/typings';
5
5
  import { ConfigurationProvider } from './config-files/configuration-loader';
6
+ import { LocalizationDictionary, LocalizationFunction } from './localization';
6
7
  /**
7
8
  * Defines the option configuration passed to {@link ArgvParser.env}.
8
9
  */
@@ -46,6 +47,23 @@ export type ParserOptions<T extends ParsedArgs = ParsedArgs> = {
46
47
  * @returns true if the argument was handled, false if it was not
47
48
  */
48
49
  unmatchedParser?: (arg: string, tokens: string[], parser: ArgvParser<T>) => boolean;
50
+ /**
51
+ * When set to true, throws a validation error if any unmatched arguments are encountered.
52
+ * Unmatched arguments are those that don't match any configured option or positional argument.
53
+ */
54
+ strict?: boolean;
55
+ /**
56
+ * When set to false, skips validation (required checks, choices, conflicts, etc.)
57
+ * while still normalizing options (defaults, env vars, coercion). Useful for
58
+ * best-effort discovery parsing. Defaults to true.
59
+ */
60
+ validate?: boolean;
61
+ /**
62
+ * When set to true (default), automatically allows options to be used with both camelCase and dashed formats.
63
+ * For example, an option named "someFlag" will accept both --someFlag and --some-flag.
64
+ * Set to false to disable this automatic aliasing behavior.
65
+ */
66
+ stripDashed?: boolean;
49
67
  };
50
68
  export interface ReadonlyArgvParser<TArgs extends ParsedArgs> {
51
69
  configuredOptions: Readonly<{
@@ -53,6 +71,17 @@ export interface ReadonlyArgvParser<TArgs extends ParsedArgs> {
53
71
  }>;
54
72
  configuredPositionals: readonly Readonly<InternalOptionConfig>[];
55
73
  options: Readonly<Required<ParserOptions<TArgs>>>;
74
+ /**
75
+ * Gets the display key for an option, which may be localized.
76
+ * @param key The storage key
77
+ * @returns The localized display key, or the original key if not localized
78
+ */
79
+ getDisplayKey(key: string): string;
80
+ /**
81
+ * Gets the localization dictionary if configured.
82
+ * @returns The localization dictionary, or undefined if not configured
83
+ */
84
+ getLocalizationDictionary(): LocalizationDictionary | undefined;
56
85
  }
57
86
  /**
58
87
  * The main parser class. This class is used to configure and parse arguments.
@@ -95,6 +124,12 @@ export declare class ArgvParser<TArgs extends ParsedArgs = {
95
124
  private envPrefix?;
96
125
  private shouldReadFromEnv?;
97
126
  private shouldReflectEnv?;
127
+ /**
128
+ * Localization dictionary for translating option keys and other text.
129
+ */
130
+ private localizationDictionary?;
131
+ private localizationLocale?;
132
+ private localizationFunction?;
98
133
  /**
99
134
  * Creates a new parser. Normally using {@link parser} is preferred.
100
135
  * @param options
@@ -163,12 +198,62 @@ export declare class ArgvParser<TArgs extends ParsedArgs = {
163
198
  * @param provider The configuration provider to register.
164
199
  */
165
200
  config(provider: ConfigurationProvider<TArgs>): this;
201
+ /**
202
+ * Sets up localization for option keys and other text.
203
+ * When localization is enabled, option keys will be displayed in the specified locale,
204
+ * but the default (non-localized) keys will still be accepted as aliases.
205
+ *
206
+ * @param dictionary The localization dictionary mapping keys to their translations
207
+ * @param locale The target locale (defaults to system locale if not provided)
208
+ * @returns The parser instance for chaining
209
+ *
210
+ * @example
211
+ * ```ts
212
+ * parser()
213
+ * .localize({
214
+ * name: { default: 'name', 'es-ES': 'nombre' },
215
+ * port: { default: 'port', 'es-ES': 'puerto' }
216
+ * }, 'es-ES')
217
+ * .option('name', { type: 'string' })
218
+ * .option('port', { type: 'number' });
219
+ * ```
220
+ */
221
+ localize(dictionary: LocalizationDictionary, locale?: string): this;
222
+ /**
223
+ * Sets up localization using a custom function for translating keys.
224
+ * This allows integration with existing localization libraries like i18next.
225
+ *
226
+ * @param fn A function that takes a key and returns its localized value
227
+ * @returns The parser instance for chaining
228
+ *
229
+ * @example
230
+ * ```ts
231
+ * import i18next from 'i18next';
232
+ *
233
+ * parser()
234
+ * .localize((key) => i18next.t(key))
235
+ * .option('name', { type: 'string' })
236
+ * .option('port', { type: 'number' });
237
+ * ```
238
+ */
239
+ localize(fn: LocalizationFunction): this;
240
+ /**
241
+ * Resolves a key to its localized text value.
242
+ * If no localization is configured, returns the key as-is.
243
+ * @param key The key to localize
244
+ * @returns The localized text, or the original key if not found
245
+ */
246
+ private localizedText;
166
247
  /**
167
248
  * Parses an array of arguments into a structured object.
168
249
  * @param argv The array of arguments to parse
250
+ * @param alreadyParsed Optional pre-parsed values to seed the result with.
251
+ * Already-set keys are preserved during parsing (e.g. positionals that
252
+ * already have a value are skipped). Validation and normalization still
253
+ * run on the complete result.
169
254
  * @returns The parsed arguments
170
255
  */
171
- parse(argv?: string[]): TArgs;
256
+ parse(argv?: string[], alreadyParsed?: Record<string, unknown>): TArgs;
172
257
  private normalizeOptions;
173
258
  private validateAndNormalizeResults;
174
259
  private readFromEnv;
@@ -187,6 +272,14 @@ export declare class ArgvParser<TArgs extends ParsedArgs = {
187
272
  * @param options The options that imply the other option.
188
273
  */
189
274
  implies(option: string, ...options: string[]): this;
275
+ /**
276
+ * Enables or disables strict mode. When strict mode is enabled, the parser throws a validation error
277
+ * when unmatched arguments are encountered. Unmatched arguments are those that don't match any
278
+ * configured option or positional argument.
279
+ * @param enable Whether to enable strict mode. Defaults to true.
280
+ * @returns The parser instance for method chaining.
281
+ */
282
+ strict(enable?: boolean): this;
190
283
  /**
191
284
  * Used to combine two parsers into a single parser. Mutates `this`, but returns with updated typings
192
285
  * @param parser The parser to augment the current parser with.
@@ -195,6 +288,17 @@ export declare class ArgvParser<TArgs extends ParsedArgs = {
195
288
  augment<TAugment extends ParsedArgs>(parser: ArgvParser<TAugment>): ArgvParser<TArgs & TAugment>;
196
289
  clone(parserOptions?: ParserOptions<TArgs>): ArgvParser<TArgs>;
197
290
  asReadonly(): ReadonlyArgvParser<TArgs>;
291
+ /**
292
+ * Gets the display key for an option, which may be localized.
293
+ * @param key The storage key
294
+ * @returns The localized display key, or the original key if not localized
295
+ */
296
+ getDisplayKey(key: string): string;
297
+ /**
298
+ * Gets the localization dictionary if configured.
299
+ * @returns The localization dictionary, or undefined if not configured
300
+ */
301
+ getLocalizationDictionary(): LocalizationDictionary | undefined;
198
302
  }
199
303
  /**
200
304
  * Small helper function to create a new parser instance.
@@ -11,6 +11,7 @@ const get_configured_key_1 = require("./utils/get-configured-key");
11
11
  const flags_1 = require("./utils/flags");
12
12
  const read_default_value_1 = require("./utils/read-default-value");
13
13
  const configuration_loader_1 = require("./config-files/configuration-loader");
14
+ const localization_1 = require("./localization");
14
15
  /**
15
16
  * The main parser class. This class is used to configure and parse arguments.
16
17
  *
@@ -48,6 +49,12 @@ class ArgvParser {
48
49
  envPrefix;
49
50
  shouldReadFromEnv;
50
51
  shouldReflectEnv;
52
+ /**
53
+ * Localization dictionary for translating option keys and other text.
54
+ */
55
+ localizationDictionary;
56
+ localizationLocale;
57
+ localizationFunction;
51
58
  /**
52
59
  * Creates a new parser. Normally using {@link parser} is preferred.
53
60
  * @param options
@@ -58,6 +65,9 @@ class ArgvParser {
58
65
  this.options = {
59
66
  extraParsers: {},
60
67
  unmatchedParser: () => false,
68
+ strict: false,
69
+ stripDashed: true,
70
+ validate: true,
61
71
  ...options,
62
72
  };
63
73
  this.parserMap = {
@@ -68,9 +78,31 @@ class ArgvParser {
68
78
  // Implementation
69
79
  option(name, config) {
70
80
  const thisAsNewType = this;
71
- if (name.includes('-')) {
81
+ // Support strip-dashed: add camelCase alias for dashed names
82
+ if (this.options.stripDashed && name.includes('-')) {
83
+ config.alias ??= [];
84
+ const camelCaseName = (0, case_transformations_1.fromDashedToCamelCase)(name);
85
+ if (!config.alias.includes(camelCaseName)) {
86
+ config.alias.push(camelCaseName);
87
+ }
88
+ }
89
+ // Support strip-dashed: add dashed alias for camelCase names
90
+ // Check if the name has uppercase letters (camelCase)
91
+ if (this.options.stripDashed && /[A-Z]/.test(name)) {
92
+ config.alias ??= [];
93
+ const dashedName = (0, case_transformations_1.fromCamelCaseToDashed)(name);
94
+ if (!config.alias.includes(dashedName)) {
95
+ config.alias.push(dashedName);
96
+ }
97
+ }
98
+ // If localization is configured and the key has a localized version,
99
+ // add it as an alias so both the default and localized names work
100
+ const localizedName = this.localizedText(name);
101
+ if (localizedName !== name) {
72
102
  config.alias ??= [];
73
- config.alias.push((0, case_transformations_1.fromDashedToCamelCase)(name));
103
+ if (!config.alias.includes(localizedName)) {
104
+ config.alias.push(localizedName);
105
+ }
74
106
  }
75
107
  const entry = {
76
108
  key: name,
@@ -109,14 +141,44 @@ class ArgvParser {
109
141
  this.configuredConfigurationProviders.push(provider);
110
142
  return this;
111
143
  }
144
+ localize(dictionaryOrFn, locale) {
145
+ if (typeof dictionaryOrFn === 'function') {
146
+ this.localizationFunction = dictionaryOrFn;
147
+ this.localizationDictionary = undefined;
148
+ this.localizationLocale = undefined;
149
+ }
150
+ else {
151
+ this.localizationDictionary = dictionaryOrFn;
152
+ this.localizationLocale = locale ?? (0, localization_1.detectLocale)();
153
+ this.localizationFunction = undefined;
154
+ }
155
+ return this;
156
+ }
157
+ /**
158
+ * Resolves a key to its localized text value.
159
+ * If no localization is configured, returns the key as-is.
160
+ * @param key The key to localize
161
+ * @returns The localized text, or the original key if not found
162
+ */
163
+ localizedText(key) {
164
+ if (this.localizationFunction) {
165
+ return this.localizationFunction(key);
166
+ }
167
+ return (0, localization_1.resolveLocalizedText)(key, this.localizationDictionary, this.localizationLocale);
168
+ }
112
169
  /**
113
170
  * Parses an array of arguments into a structured object.
114
171
  * @param argv The array of arguments to parse
172
+ * @param alreadyParsed Optional pre-parsed values to seed the result with.
173
+ * Already-set keys are preserved during parsing (e.g. positionals that
174
+ * already have a value are skipped). Validation and normalization still
175
+ * run on the complete result.
115
176
  * @returns The parsed arguments
116
177
  */
117
- parse(argv = (0, helpers_1.hideBin)(process.argv)) {
178
+ parse(argv = (0, helpers_1.hideBin)(process.argv), alreadyParsed) {
118
179
  const argvClone = [...argv];
119
180
  const result = {
181
+ ...alreadyParsed,
120
182
  unmatched: [],
121
183
  };
122
184
  let arg = argvClone.shift();
@@ -129,10 +191,13 @@ class ArgvParser {
129
191
  // Found a flag + value
130
192
  if ((0, flags_1.isFlag)(arg)) {
131
193
  const [maybeArg, maybeValue] = arg.split('=');
132
- const keys = (0, flags_1.readArgKeys)(maybeArg);
194
+ const keys = (0, flags_1.readArgKeys)(maybeArg, this.options.stripDashed);
133
195
  const configuredKeys = keys.map((key) => (0, get_configured_key_1.getConfiguredOptionKey)(key, this.configuredOptions));
134
- // Handles unmatched flags
135
- if (configuredKeys.some((key) => key === undefined)) {
196
+ // Deduplicate configured keys to avoid processing the same option twice
197
+ // Filter out undefined values - if ANY key matches, we have a match
198
+ const uniqueConfiguredKeys = Array.from(new Set(configuredKeys.filter((key) => key !== undefined)));
199
+ // Handles unmatched flags - only unmatched if NONE of the keys match
200
+ if (uniqueConfiguredKeys.length === 0) {
136
201
  if (this.options.unmatchedParser(arg, argvClone, this)) {
137
202
  arg = argvClone.shift();
138
203
  continue;
@@ -150,7 +215,7 @@ class ArgvParser {
150
215
  if (maybeValue) {
151
216
  argvClone.unshift(maybeValue);
152
217
  }
153
- for (const configuredKey of configuredKeys) {
218
+ for (const configuredKey of uniqueConfiguredKeys) {
154
219
  if (configuredKey) {
155
220
  const configuration = this.configuredOptions[configuredKey];
156
221
  const value = tryParseValue(this.parserMap[configuration.type], {
@@ -192,6 +257,9 @@ class ArgvParser {
192
257
  arg = argvClone.shift();
193
258
  }
194
259
  }
260
+ if (this.options.validate === false) {
261
+ return this.normalizeOptions(result);
262
+ }
195
263
  return this.validateAndNormalizeResults(result);
196
264
  }
197
265
  normalizeOptions(result) {
@@ -289,6 +357,14 @@ class ArgvParser {
289
357
  errors.push(e);
290
358
  }
291
359
  }
360
+ // Validate strict mode - check for unmatched arguments
361
+ if (this.options.strict && result.unmatched?.length) {
362
+ for (const unmatchedArg of result.unmatched) {
363
+ const error = new Error(`Unknown argument: ${unmatchedArg}`);
364
+ delete error.stack;
365
+ errors.push(error);
366
+ }
367
+ }
292
368
  if (errors.length) {
293
369
  const error = new ValidationFailedError(errors.map((error) => error instanceof Error ? error : new Error(error)), `Validation failed for one or more options`, partial);
294
370
  if (process.env[this.envPrefix
@@ -376,6 +452,17 @@ class ArgvParser {
376
452
  }
377
453
  return this;
378
454
  }
455
+ /**
456
+ * Enables or disables strict mode. When strict mode is enabled, the parser throws a validation error
457
+ * when unmatched arguments are encountered. Unmatched arguments are those that don't match any
458
+ * configured option or positional argument.
459
+ * @param enable Whether to enable strict mode. Defaults to true.
460
+ * @returns The parser instance for method chaining.
461
+ */
462
+ strict(enable = true) {
463
+ this.options.strict = enable;
464
+ return this;
465
+ }
379
466
  /**
380
467
  * Used to combine two parsers into a single parser. Mutates `this`, but returns with updated typings
381
468
  * @param parser The parser to augment the current parser with.
@@ -399,11 +486,35 @@ class ArgvParser {
399
486
  clone.configuredPositionals = [...this.configuredPositionals];
400
487
  clone.configuredConflicts = { ...this.configuredConflicts };
401
488
  clone.configuredImplies = { ...this.configuredImplies };
489
+ clone.localizationDictionary = this.localizationDictionary;
490
+ clone.localizationLocale = this.localizationLocale;
491
+ clone.localizationFunction = this.localizationFunction;
492
+ clone.envPrefix = this.envPrefix;
493
+ clone.shouldReadFromEnv = this.shouldReadFromEnv;
494
+ clone.shouldReflectEnv = this.shouldReflectEnv;
495
+ clone.configuredConfigurationProviders = [
496
+ ...this.configuredConfigurationProviders,
497
+ ];
402
498
  return clone;
403
499
  }
404
500
  asReadonly() {
405
501
  return this;
406
502
  }
503
+ /**
504
+ * Gets the display key for an option, which may be localized.
505
+ * @param key The storage key
506
+ * @returns The localized display key, or the original key if not localized
507
+ */
508
+ getDisplayKey(key) {
509
+ return this.localizedText(key);
510
+ }
511
+ /**
512
+ * Gets the localization dictionary if configured.
513
+ * @returns The localization dictionary, or undefined if not configured
514
+ */
515
+ getLocalizationDictionary() {
516
+ return this.localizationDictionary;
517
+ }
407
518
  }
408
519
  exports.ArgvParser = ArgvParser;
409
520
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/lib/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/lib/parser.ts"],"names":[],"mappings":";;;AAg9BA,wBAEC;AAuED,sCA0BC;AAljCD,uCAAoC;AASpC,uEAAuG;AAYvG,qDAAiD;AACjD,+CAAwE;AACxE,mEAAoE;AACpE,yCAAgE;AAChE,mEAA8D;AAC9D,8EAG6C;AAC7C,iDAKwB;AA+FxB;;;;GAIG;AACH,MAAa,UAAU;IAMrB;;OAEG;IACH,iBAAiB,CAAiD;IAElE;;OAEG;IACH,qBAAqB,CAAyB;IAE9C;;OAEG;IACH,mBAAmB,GAAgC,EAAE,CAAC;IAEtD;;OAEG;IACH,iBAAiB,GAAgC,EAAE,CAAC;IAEpD;;OAEG;IACH,OAAO,CAAiC;IAExC;;OAEG;IACH,SAAS,CAA8B;IAE/B,gCAAgC,GAEpC,EAAE,CAAC;IAEP;;OAEG;IACK,SAAS,CAAU;IACnB,iBAAiB,CAAW;IAC5B,gBAAgB,CAAW;IAEnC;;OAEG;IACK,sBAAsB,CAA0B;IAChD,kBAAkB,CAAU;IAC5B,oBAAoB,CAAwB;IAEpD;;;OAGG;IACH,YAAY,OAA8B;QACxC,IAAI,CAAC,iBAAiB,GAAG,EAA+C,CAAC;QACzE,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG;YACb,YAAY,EAAE,EAAE;YAChB,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK;YAC5B,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;YACd,GAAG,OAAO;SACuB,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG;YACf,GAAG,sBAAS;YACZ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY;SAC7B,CAAC;IACJ,CAAC;IA+FD,iBAAiB;IACjB,MAAM,CAAC,IAAY,EAAE,MAA2B;QAC9C,MAAM,aAAa,GAAG,IAA8B,CAAC;QAErD,6DAA6D;QAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,IAAA,4CAAqB,EAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,sDAAsD;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,IAAA,4CAAqB,EAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,GAAG,EAAE,IAAI;YACT,GAAG,MAAM;SACc,CAAC;QAE1B,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC9C,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAW,CAAC;IACrB,CAAC;IA4FD,iBAAiB;IACjB,UAAU,CAAC,IAAY,EAAE,MAA2B;QAClD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACvB,GAAG,MAAM;YACT,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAUD,GAAG,CAAC,EAAwC;QAC1C,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC;YAC7C,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,OAAO,IAAI,IAAI,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAsC;QAC3C,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAyCD,QAAQ,CACN,cAA6D,EAC7D,MAAe;QAEf,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAC;YAC3C,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;YAC7C,IAAI,CAAC,kBAAkB,GAAG,MAAM,IAAI,IAAA,2BAAY,GAAE,CAAC;YACnD,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,GAAW;QAC/B,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,IAAA,mCAAoB,EACzB,GAAG,EACH,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,kBAAkB,CACxB,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAiB,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE,aAAuC;QACnF,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAQ;YAClB,GAAG,aAAa;YAChB,SAAS,EAAE,EAAE;SACd,CAAC;QACF,IAAI,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;gBACzB,MAAM;YACR,CAAC;YACD,uBAAuB;YACvB,IAAI,IAAA,cAAM,EAAC,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,QAAwB,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC7E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,IAAA,2CAAsB,EAAQ,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAC3D,CAAC;gBACF,wEAAwE;gBACxE,oEAAoE;gBACpE,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CACrC,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAC3D,CAAC;gBACF,qEAAqE;gBACrE,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;wBACvD,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;wBACxB,SAAS;oBACX,CAAC;oBACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC3B,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;oBAC7B,6CAA6C;oBAC7C,OAAO,IAAI,IAAI,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;wBACjC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5B,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;oBAC3B,CAAC;oBACD,GAAG,GAAG,IAAI,CAAC;oBACX,SAAS;gBACX,CAAC;gBACD,IAAI,UAAU,EAAE,CAAC;oBACf,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAChC,CAAC;gBACD,KAAK,MAAM,aAAa,IAAI,oBAAoB,EAAE,CAAC;oBACjD,IAAI,aAAa,EAAE,CAAC;wBAClB,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;wBAC5D,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;4BAC9D,MAAM,EAAE,aAAa;4BACrB,MAAM,EAAE,SAAS;4BACjB,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;4BAClC,YAAY,EAAE,QAAQ;yBACvB,CAAC,CAAC;wBACH,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBAClC,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBACD,8BAA8B;YAChC,CAAC;iBAAM,CAAC;gBACN,IAAI,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;gBACnE,8DAA8D;gBAC9D,OAAO,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAChE,kBAAkB,EAAE,CAAC;oBACrB,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;gBACjE,CAAC;gBACD,IAAI,aAAa,IAAI,aAAa,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;oBACvD,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACvB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;wBAC9D,MAAM,EAAE,aAAa;wBACrB,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;qBACnC,CAAC,CAAC;oBACH,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBAClC,kBAAkB,EAAE,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC;wBACvD,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;wBACxB,SAAS;oBACX,CAAC;oBACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7B,CAAC;gBACD,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAU,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAU,CAAC;IAC3D,CAAC;IAEO,gBAAgB,CAAC,MAAW;QAClC,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC;gBACE,qEAAqE;gBACrE,CAAC,aAAa,CAAC,GAAG,KAAK,KAAK;oBAC1B,CAAC,CACC,OAAO,aAAa,CAAC,GAAG,KAAK,QAAQ;wBACrC,aAAa,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,CACrC;oBACD,IAAI,CAAC,iBAAiB,CAAC;oBACzB,iFAAiF;oBACjF,CAAC,aAAa,CAAC,GAAG;wBAChB,CAAC,CACC,OAAO,aAAa,CAAC,GAAG,KAAK,QAAQ;4BACrC,aAAa,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,CACrC,CAAC,EACJ,CAAC;oBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;oBACjD,IAAI,QAAQ,EAAE,CAAC;wBACb,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;oBAC3C,CAAC;gBACH,CAAC;gBACD,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAChD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBACvD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;wBAC9B,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;oBAC9C,CAAC;gBACH,CAAC;gBACD,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACxC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,IAAA,qCAAgB,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YACD,2DAA2D;YAC3D,IACE,aAAa,CAAC,IAAI,KAAK,QAAQ;gBAC/B,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAC3C,CAAC;gBACD,MAAM,YAAY,GAAG,aAA6C,CAAC;gBACnE,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;oBAC5B,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,yBAAyB,CACvD,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,EAC7B,YAAY,CACb,CAAC;oBACF,oDAAoD;oBACpD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;wBACzB,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAC3B,aAAa,CAAC,MACf,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,2BAA2B,CAAC,MAAW;QAC7C,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;QAElC,MAAM,iBAAiB,GAAG,CAAC,aAAmC,EAAE,EAAE;YAChE,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnE,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;wBACvC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,mBAAmB,aAAa,CAAC,GAAG,mBAAmB,QAAQ,EAAE,CAClE,CAAC;wBACF,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;wBAClC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACzB,OAAO,KAAK,CAAC,KAAK,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,oBAAoB,GAAG,CAAC,aAAmC,EAAE,EAAE;YACnE,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC9D,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;wBACpC,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,MAAM,aAAa,CAAC,GAAG,YAAY,KAAK,eAAe,CACxD,CAAC;wBACF,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;wBAClC,OAAO,KAAK,CAAC,KAAK,CAAC;wBACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,MAAM,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACH,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7D,kCAAkC;gBAClC,IACE,aAAa,CAAC,IAAI,KAAK,QAAQ;oBAC9B,aAA8C,CAAC,UAAU;oBAC1D,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAC3C,CAAC;oBACD,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,oCAAoC,CAClE,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,EAC7B,aAA6C,EAC7C,aAAa,CAAC,GAAG,EACjB,MAAM,CACP,CAAC;gBACJ,CAAC;gBACD,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAChD,iBAAiB,CAAC,aAAa,CAAC,CAAC;oBACjC,oBAAoB,CAAC,aAAa,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;YACpD,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,qBAAqB,YAAY,EAAE,CACpC,CAAC;gBACF,OAAO,KAAK,CAAC,KAAK,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,IAAI,qBAAqB,CACrC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAClD,EACD,2CAA2C,EAC3C,OAAO,CACR,CAAC;YACF,IACE,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS;gBACZ,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,kBAAkB;gBACrC,CAAC,CAAC,qBAAqB,CAC1B,KAAK,MAAM,EACZ,CAAC;gBACD,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;YAC1B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,WAAW,CAAC,aAAmC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;gBACvD,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,CAAC,QAAQ,CAAC;gBAClB,YAAY,EAAE,KAAK,aAAa,CAAC,GAAG,EAAE;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,aAAmC,EAAE,KAAU;QAChE,sBAAsB;QACtB;QACE,iEAAiE;QACjE,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,aAAa,CAAC,GAAG,KAAK,IAAI,CAAC;YAC9D,yCAAyC;YACzC,aAAa,CAAC,GAAG,KAAK,KAAK;YAC3B,CAAC,OAAO,aAAa,CAAC,GAAG,KAAK,QAAQ;gBACpC,aAAa,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,EACtC,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,eAAe,CAAqB;IACpC,YAAY,CAAoC;IAEhD,SAAS,CAAC,aAAmC;QACnD,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GACrC,OAAO,aAAa,CAAC,GAAG,KAAK,QAAQ;YACnC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;YACvD,CAAC,CAAC,OAAO,aAAa,CAAC,GAAG,KAAK,SAAS;gBACxC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;gBACvD,CAAC,CAAC;oBACE,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,aAAa,CAAC,GAAG;oBACnD,MAAM,EACJ,aAAa,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;iBACnE,CAAC;QACR,MAAM,MAAM,GAAG,IAAA,gCAAS,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,cAAc,CAAC,aAAmC;QACxD,IACE,IAAI,CAAC,YAAY,KAAK,SAAS;YAC/B,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,gCAAgC,CAAC,MAAM,EACrE,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,IAAA,2CAAoB,EACtC,OAAO,CAAC,GAAG,EAAE,EACb,IAAI,CAAC,gCAAgC,CACtC,CAAC;YACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,GAAkB,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,GAAG,OAAsC;QACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACZ,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,MAAc,EAAE,GAAG,OAAiB;QAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,GAAG,IAAI;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,OAAO,CACL,MAA4B;QAE5B,MAAM,aAAa,GAAG,IAA2C,CAAC;QAClE,aAAa,CAAC,iBAAiB,GAAG;YAChC,GAAG,IAAI,CAAC,iBAAiB;YACzB,GAAG,MAAM,CAAC,iBAAiB;SAC5B,CAAC;QACF,aAAa,CAAC,qBAAqB,GAAG;YACpC,GAAG,IAAI,CAAC,qBAAqB;YAC7B,GAAG,MAAM,CAAC,qBAAqB;SAChC,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,gBAAsC,IAAI,CAAC,OAAO;QACtD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;QAE5C,KAAK,CAAC,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxD,KAAK,CAAC,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9D,KAAK,CAAC,mBAAmB,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC5D,KAAK,CAAC,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxD,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC3D,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnD,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACvD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,KAAK,CAAC,gCAAgC,GAAG;YACvC,GAAG,IAAI,CAAC,gCAAgC;SACzC,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,yBAAyB;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;CACF;AAj0BD,gCAi0BC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,IAAoB;IACzC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CACrB,YAAqB,EACrB,KAAW;IAEX,IAAI,SAAS,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,GAAG,CACR;gBACE,OAAO,YAAY,CAAC,OAAO,KAAK,UAAU;oBACxC,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE;oBACxB,CAAC,CAAC,YAAY,CAAC,OAAO;aACzB,CAAC,IAAI,EAAY,CACnB;SACF,CAAC;QACF,YAAY,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC;QACrC,YAAY,CAAC,QAAQ,GAAG,CAAC,GAAkB,EAAE,EAAE;YAC7C,IACE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;gBAClB,CAAC,CAAC,mEAAmE;oBACnE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC,CAAC,iEAAiE;oBACjE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC1B,CAAC;gBACD,OAAO,kBAAkB,GAAG,QAC1B,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAC5C,WAAW,YAAY,CAAC,GAAG,uBAAuB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;QAChD,KAAK,CAAC;QACN,IAAI,MAAiE,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,wBACE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAC5C,WAAW,YAAY,CAAC,GAAG,EAAE,EAC7B,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5B,OAAO,CAAC,CAAC,KAAK,CAAC;YACf,MAAM,CAAC,CAAC;QACV,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,IAAI,KAAK,CACjB,kBAAkB,KAAK,QACrB,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAC5C,WAAW,YAAY,CAAC,GAAG,EAAE,CAC9B,CAAC;YACF,OAAO,CAAC,CAAC,KAAK,CAAC;YACf,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,IAAI,KAAK,CACjB,mBAAmB,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,WAC7D,YAAY,CAAC,GACf,EAAE,CACH,CAAC;QACF,OAAO,CAAC,CAAC,KAAK,CAAC;QACf,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,SAAgB,aAAa,CAC3B,MAAoC,EACpC,KAA0C;IAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,CAAC,MAAM,CAAC,GAAG,cAAc,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAChF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,yEAAyE;QACzE,4CAA4C;QAC5C,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAQ,KAAK,CAAC,MAAM,CAAC,MAA0B,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAChE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,sBAAY,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,IAAA,qCAAgB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;AACH,CAAC;AAED,MAAa,qBAAyB,SAAQ,cAAc;IAIjD;IAHT,YACE,MAAe,EACf,OAAe,EACR,WAAuB;QAE9B,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAFhB,gBAAW,GAAX,WAAW,CAAY;IAGhC,CAAC;CACF;AARD,sDAQC;AAED;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAChC,KAA0B,EAC1B,MAAoC;IAEpC,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAEhC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE9C,0CAA0C;QAC1C,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1E,UAAU,CAAC,OAAO,CAAC,GAAG,IAAA,qCAAgB,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,oCAAoC;QACpC,IACE,UAAU,CAAC,IAAI,KAAK,QAAQ;YAC5B,YAAY,IAAI,UAAU;YAC1B,UAAU,CAAC,OAAO,CAAC,KAAK,SAAS,EACjC,CAAC;YACD,UAAU,CAAC,OAAO,CAAC,GAAG,yBAAyB,CAC7C,UAAU,CAAC,OAAO,CAAC,EACnB,UAAU,CACX,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oCAAoC,CAC3C,KAAsC,EACtC,MAAoC,EACpC,OAAe,EACf,MAAe;IAEf,+DAA+D;IAC/D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAEhC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;QAEzC,+BAA+B;QAC/B,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7D,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,CAAC,KAAK,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,oCAAoC;QACpC,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;YAC/D,UAAU,CAAC,OAAO,CAAC,GAAG,oCAAoC,CACxD,UAAU,CAAC,OAAO,CAAC,EACnB,UAAU,EACV,QAAQ,EACR,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export declare function fromDashedToCamelCase(str: string): string;
2
+ export declare function fromCamelCaseToDashed(str: string): string;
2
3
  export declare function fromCamelOrDashedCaseToConstCase(str: string): string;
3
4
  export declare function getEnvKey(prefix: string | undefined, key: string): string;
@@ -1,11 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fromDashedToCamelCase = fromDashedToCamelCase;
4
+ exports.fromCamelCaseToDashed = fromCamelCaseToDashed;
4
5
  exports.fromCamelOrDashedCaseToConstCase = fromCamelOrDashedCaseToConstCase;
5
6
  exports.getEnvKey = getEnvKey;
6
7
  function fromDashedToCamelCase(str) {
7
8
  return str.replace(/-([a-z])/g, (match, letter) => letter.toUpperCase());
8
9
  }
10
+ function fromCamelCaseToDashed(str) {
11
+ // Convert camelCase to dashed-case
12
+ // someFlag -> some-flag
13
+ // someHTMLParser -> some-h-t-m-l-parser
14
+ // Avoid adding leading dash by checking if we're at the start
15
+ return str.replace(/([A-Z])/g, (match, p1, offset) => offset === 0 ? match.toLowerCase() : '-' + match.toLowerCase());
16
+ }
9
17
  function fromCamelOrDashedCaseToConstCase(str) {
10
18
  const parts = [];
11
19
  let currentPart = '';
@@ -1 +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"}
1
+ {"version":3,"file":"case-transformations.js","sourceRoot":"","sources":["../../../src/lib/utils/case-transformations.ts"],"names":[],"mappings":";;AAAA,sDAEC;AAED,sDAQC;AAED,4EA+BC;AAED,8BAIC;AAnDD,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,qBAAqB,CAAC,GAAW;IAC/C,mCAAmC;IACnC,wBAAwB;IACxB,wCAAwC;IACxC,8DAA8D;IAC9D,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CACnD,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAC/D,CAAC;AACJ,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"}
@@ -1,3 +1,3 @@
1
1
  export declare function isFlag(str: string): str is `-${string}`;
2
- export declare function readArgKeys(str: `-${string}`): string[];
2
+ export declare function readArgKeys(str: `-${string}`, stripDashed?: boolean): string[];
3
3
  export declare function isNextFlag(str: string): boolean;
@@ -7,12 +7,19 @@ const case_transformations_1 = require("./case-transformations");
7
7
  function isFlag(str) {
8
8
  return str.startsWith('-');
9
9
  }
10
- function readArgKeys(str) {
10
+ function readArgKeys(str, stripDashed = true) {
11
11
  // Long flags (e.g. --foo)
12
12
  if (str.startsWith('--')) {
13
13
  const key = str.slice(2);
14
14
  if (key.includes('-')) {
15
- return [(0, case_transformations_1.fromDashedToCamelCase)(key)];
15
+ if (stripDashed) {
16
+ // Return both camelCase and original dashed versions for strip-dashed support
17
+ return [(0, case_transformations_1.fromDashedToCamelCase)(key), key];
18
+ }
19
+ else {
20
+ // When stripDashed is false, only return the original dashed version
21
+ return [key];
22
+ }
16
23
  }
17
24
  return [str.slice(2)];
18
25
  // Short flag combinations (e.g. -xvf)
@@ -1 +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"}
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../../src/lib/utils/flags.ts"],"names":[],"mappings":";;AAEA,wBAEC;AACD,kCAmBC;AACD,gCAEC;AA3BD,iEAA+D;AAE/D,SAAgB,MAAM,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AACD,SAAgB,WAAW,CAAC,GAAiB,EAAE,WAAW,GAAG,IAAI;IAC/D,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,IAAI,WAAW,EAAE,CAAC;gBAChB,8EAA8E;gBAC9E,OAAO,CAAC,IAAA,4CAAqB,EAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,qEAAqE;gBACrE,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;QACH,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cli-forge/parser",
3
- "version": "1.0.2",
3
+ "version": "1.2.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0"
6
6
  },