@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 +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/config-files/configuration-loader.d.ts +1 -1
- package/dist/lib/config-files/configuration-loader.js +11 -2
- package/dist/lib/config-files/configuration-loader.js.map +1 -1
- package/dist/lib/config-files/json-file-loader.js +0 -5
- package/dist/lib/config-files/json-file-loader.js.map +1 -1
- package/dist/lib/localization.d.ts +27 -0
- package/dist/lib/localization.js +32 -0
- package/dist/lib/localization.js.map +1 -0
- package/dist/lib/parser.d.ts +105 -1
- package/dist/lib/parser.js +118 -7
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/utils/case-transformations.d.ts +1 -0
- package/dist/lib/utils/case-transformations.js +8 -0
- package/dist/lib/utils/case-transformations.js.map +1 -1
- package/dist/lib/utils/flags.d.ts +1 -1
- package/dist/lib/utils/flags.js +9 -2
- package/dist/lib/utils/flags.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
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;
|
|
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
|
-
|
|
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":";;
|
|
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,
|
|
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"}
|
package/dist/lib/parser.d.ts
CHANGED
|
@@ -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.
|
package/dist/lib/parser.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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
|
-
//
|
|
135
|
-
if
|
|
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
|
|
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
|
/**
|
package/dist/lib/parser.js.map
CHANGED
|
@@ -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":"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"}
|
|
@@ -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;
|
|
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}
|
|
2
|
+
export declare function readArgKeys(str: `-${string}`, stripDashed?: boolean): string[];
|
|
3
3
|
export declare function isNextFlag(str: string): boolean;
|
package/dist/lib/utils/flags.js
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
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"}
|