@breadstone-infrastructure/utilities 0.0.230 → 0.0.232
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/cli/CliParser.d.ts +86 -0
- package/cli/CliParser.d.ts.map +1 -0
- package/cli/CliParser.js +214 -0
- package/cli/CliParser.js.map +1 -0
- package/cli/Program.d.ts.map +1 -1
- package/cli/Program.js +6 -9
- package/cli/Program.js.map +1 -1
- package/cli/ProgramCommands.d.ts +0 -7
- package/cli/ProgramCommands.d.ts.map +1 -1
- package/cli/ProgramCommands.js +6 -32
- package/cli/ProgramCommands.js.map +1 -1
- package/cli/interfaces/IProgramArgOptions.d.ts +25 -2
- package/cli/interfaces/IProgramArgOptions.d.ts.map +1 -1
- package/cli/interfaces/IProgramArgOptions.js +0 -1
- package/cli/interfaces/IProgramArgOptions.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.d.ts.map +1 -1
- package/index.js +3 -3
- package/index.js.map +1 -1
- package/logging/vnext/LoggerExtensions.d.ts +31 -1
- package/logging/vnext/LoggerExtensions.d.ts.map +1 -1
- package/logging/vnext/LoggerExtensions.js +26 -2
- package/logging/vnext/LoggerExtensions.js.map +1 -1
- package/package.json +3 -5
- package/terminal/TerminalProgressBar.d.ts +48 -0
- package/terminal/TerminalProgressBar.d.ts.map +1 -0
- package/terminal/TerminalProgressBar.js +84 -0
- package/terminal/TerminalProgressBar.js.map +1 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { IProgramArgOptions } from './interfaces/IProgramArgOptions';
|
|
2
|
+
/**
|
|
3
|
+
* Describes the initialization options for a {@link CliParser} instance.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface ICliParserInit {
|
|
8
|
+
readonly description?: string;
|
|
9
|
+
readonly epilog?: string;
|
|
10
|
+
readonly addHelp?: boolean;
|
|
11
|
+
readonly prog?: string;
|
|
12
|
+
readonly usage?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A lightweight CLI argument parser built on top of `node:util.parseArgs`.
|
|
16
|
+
*
|
|
17
|
+
* Supports short aliases (including multi-character), long aliases,
|
|
18
|
+
* type coercion, required validation, choices validation, default values,
|
|
19
|
+
* and automatic help text generation.
|
|
20
|
+
*
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export declare class CliParser {
|
|
24
|
+
private readonly _description;
|
|
25
|
+
private readonly _epilog;
|
|
26
|
+
private readonly _addHelp;
|
|
27
|
+
private readonly _prog;
|
|
28
|
+
private readonly _usage;
|
|
29
|
+
private readonly _arguments;
|
|
30
|
+
/**
|
|
31
|
+
* Creates a new instance of CliParser.
|
|
32
|
+
*
|
|
33
|
+
* @param init - Optional initialization options.
|
|
34
|
+
*/
|
|
35
|
+
constructor(init?: ICliParserInit);
|
|
36
|
+
/**
|
|
37
|
+
* Registers an argument with a single alias.
|
|
38
|
+
*
|
|
39
|
+
* @param alias - The argument alias (e.g. `--verbose` or `-v`).
|
|
40
|
+
* @param options - The argument options.
|
|
41
|
+
*/
|
|
42
|
+
addArgument(alias: string, options: IProgramArgOptions): void;
|
|
43
|
+
/**
|
|
44
|
+
* Registers an argument with a short and long alias.
|
|
45
|
+
*
|
|
46
|
+
* @param shortAlias - The short alias (e.g. `-v`).
|
|
47
|
+
* @param longAlias - The long alias (e.g. `--verbose`).
|
|
48
|
+
* @param options - The argument options.
|
|
49
|
+
*/
|
|
50
|
+
addArgument(shortAlias: string, longAlias: string, options: IProgramArgOptions): void;
|
|
51
|
+
/**
|
|
52
|
+
* Parses the given arguments.
|
|
53
|
+
*
|
|
54
|
+
* @param argv - The arguments to parse. Defaults to `process.argv.slice(2)`.
|
|
55
|
+
* @returns A record mapping camelCase argument names to their parsed values.
|
|
56
|
+
*/
|
|
57
|
+
parseArgs(argv?: Array<string>): Record<string, unknown>;
|
|
58
|
+
/**
|
|
59
|
+
* Formats the help text for this parser.
|
|
60
|
+
*
|
|
61
|
+
* @returns The formatted help text.
|
|
62
|
+
*/
|
|
63
|
+
formatHelp(): string;
|
|
64
|
+
/**
|
|
65
|
+
* Expands multi-character short options to their long equivalents.
|
|
66
|
+
* Required because `node:util.parseArgs` only supports single-character short options.
|
|
67
|
+
*/
|
|
68
|
+
private expandMultiCharShorts;
|
|
69
|
+
/**
|
|
70
|
+
* Builds the `node:util.parseArgs` options configuration.
|
|
71
|
+
*/
|
|
72
|
+
private buildNodeOptions;
|
|
73
|
+
/**
|
|
74
|
+
* Builds the result record with type coercion, defaults, and validation applied.
|
|
75
|
+
*/
|
|
76
|
+
private buildResult;
|
|
77
|
+
/**
|
|
78
|
+
* Formats a single help line for an argument.
|
|
79
|
+
*/
|
|
80
|
+
private static formatArgLine;
|
|
81
|
+
/**
|
|
82
|
+
* Converts a kebab-case string to camelCase.
|
|
83
|
+
*/
|
|
84
|
+
private static kebabToCamelCase;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=CliParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliParser.d.ts","sourceRoot":"","sources":["../../src/cli/CliParser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAI1E;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAcD;;;;;;;;GAQG;AACH,qBAAa,SAAS;IAIlB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IAMxD;;;;OAIG;gBACgB,IAAI,CAAC,EAAE,cAAc;IAaxC;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IACpE;;;;;;OAMG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IA6B5F;;;;;OAKG;IACI,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA4B/D;;;;OAIG;IACI,UAAU,IAAI,MAAM;IA0C3B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAgB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoCnB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAmB5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAMlC"}
|
package/cli/CliParser.js
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// #region Imports
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CliParser = void 0;
|
|
5
|
+
const node_util_1 = require("node:util");
|
|
6
|
+
/**
|
|
7
|
+
* A lightweight CLI argument parser built on top of `node:util.parseArgs`.
|
|
8
|
+
*
|
|
9
|
+
* Supports short aliases (including multi-character), long aliases,
|
|
10
|
+
* type coercion, required validation, choices validation, default values,
|
|
11
|
+
* and automatic help text generation.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
class CliParser {
|
|
16
|
+
// #region Fields
|
|
17
|
+
_description;
|
|
18
|
+
_epilog;
|
|
19
|
+
_addHelp;
|
|
20
|
+
_prog;
|
|
21
|
+
_usage;
|
|
22
|
+
_arguments;
|
|
23
|
+
// #endregion
|
|
24
|
+
// #region Ctor
|
|
25
|
+
/**
|
|
26
|
+
* Creates a new instance of CliParser.
|
|
27
|
+
*
|
|
28
|
+
* @param init - Optional initialization options.
|
|
29
|
+
*/
|
|
30
|
+
constructor(init) {
|
|
31
|
+
this._description = init?.description ?? '';
|
|
32
|
+
this._epilog = init?.epilog ?? '';
|
|
33
|
+
this._addHelp = init?.addHelp ?? true;
|
|
34
|
+
this._prog = init?.prog ?? '';
|
|
35
|
+
this._usage = init?.usage ?? '';
|
|
36
|
+
this._arguments = [];
|
|
37
|
+
}
|
|
38
|
+
addArgument(...args) {
|
|
39
|
+
let short;
|
|
40
|
+
let long;
|
|
41
|
+
let options;
|
|
42
|
+
if (args.length === 3) {
|
|
43
|
+
short = args[0];
|
|
44
|
+
long = args[1];
|
|
45
|
+
options = args[2];
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const alias = args[0];
|
|
49
|
+
options = args[1];
|
|
50
|
+
if (alias.startsWith('--')) {
|
|
51
|
+
long = alias;
|
|
52
|
+
}
|
|
53
|
+
else if (alias.startsWith('-')) {
|
|
54
|
+
short = alias;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const shortName = short?.replace(/^-+/, '');
|
|
58
|
+
const longName = long?.replace(/^-+/, '');
|
|
59
|
+
const baseName = longName ?? shortName ?? '';
|
|
60
|
+
const destKey = CliParser.kebabToCamelCase(baseName);
|
|
61
|
+
this._arguments.push({ short: shortName, long: longName, destKey, options });
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Parses the given arguments.
|
|
65
|
+
*
|
|
66
|
+
* @param argv - The arguments to parse. Defaults to `process.argv.slice(2)`.
|
|
67
|
+
* @returns A record mapping camelCase argument names to their parsed values.
|
|
68
|
+
*/
|
|
69
|
+
parseArgs(argv) {
|
|
70
|
+
const rawArgs = argv ?? process.argv.slice(2);
|
|
71
|
+
if (this._addHelp && (rawArgs.includes('--help') || rawArgs.includes('-h'))) {
|
|
72
|
+
console.log(this.formatHelp());
|
|
73
|
+
process.exit(0);
|
|
74
|
+
}
|
|
75
|
+
const expandedArgs = this.expandMultiCharShorts(rawArgs);
|
|
76
|
+
const nodeOptions = this.buildNodeOptions();
|
|
77
|
+
let values;
|
|
78
|
+
try {
|
|
79
|
+
const parsed = (0, node_util_1.parseArgs)({
|
|
80
|
+
args: expandedArgs,
|
|
81
|
+
options: nodeOptions,
|
|
82
|
+
strict: false,
|
|
83
|
+
allowPositionals: true,
|
|
84
|
+
});
|
|
85
|
+
values = parsed.values;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw new Error(`Argument parsing failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
89
|
+
}
|
|
90
|
+
return this.buildResult(values);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Formats the help text for this parser.
|
|
94
|
+
*
|
|
95
|
+
* @returns The formatted help text.
|
|
96
|
+
*/
|
|
97
|
+
formatHelp() {
|
|
98
|
+
const lines = [];
|
|
99
|
+
if (this._usage) {
|
|
100
|
+
lines.push(`usage: ${this._prog || 'program'} ${this._usage}`);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
lines.push(`usage: ${this._prog || 'program'} [options]`);
|
|
104
|
+
}
|
|
105
|
+
lines.push('');
|
|
106
|
+
if (this._description) {
|
|
107
|
+
lines.push(this._description);
|
|
108
|
+
lines.push('');
|
|
109
|
+
}
|
|
110
|
+
if (this._arguments.length > 0 || this._addHelp) {
|
|
111
|
+
lines.push('options:');
|
|
112
|
+
if (this._addHelp) {
|
|
113
|
+
lines.push(CliParser.formatArgLine('-h', '--help', undefined, 'Show this help message and exit'));
|
|
114
|
+
}
|
|
115
|
+
for (const arg of this._arguments) {
|
|
116
|
+
lines.push(CliParser.formatArgLine(arg.short ? `-${arg.short}` : undefined, arg.long ? `--${arg.long}` : undefined, arg.options.metavar, arg.options.help));
|
|
117
|
+
}
|
|
118
|
+
lines.push('');
|
|
119
|
+
}
|
|
120
|
+
if (this._epilog) {
|
|
121
|
+
lines.push(this._epilog);
|
|
122
|
+
}
|
|
123
|
+
return lines.join('\n');
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Expands multi-character short options to their long equivalents.
|
|
127
|
+
* Required because `node:util.parseArgs` only supports single-character short options.
|
|
128
|
+
*/
|
|
129
|
+
expandMultiCharShorts(argv) {
|
|
130
|
+
const shortToLong = new Map();
|
|
131
|
+
for (const arg of this._arguments) {
|
|
132
|
+
if (arg.short && arg.long && arg.short.length > 1) {
|
|
133
|
+
shortToLong.set(`-${arg.short}`, `--${arg.long}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (shortToLong.size === 0) {
|
|
137
|
+
return argv;
|
|
138
|
+
}
|
|
139
|
+
return argv.map((token) => shortToLong.get(token) ?? token);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Builds the `node:util.parseArgs` options configuration.
|
|
143
|
+
*/
|
|
144
|
+
buildNodeOptions() {
|
|
145
|
+
const nodeOptions = {};
|
|
146
|
+
for (const arg of this._arguments) {
|
|
147
|
+
const name = arg.long ?? arg.short ?? '';
|
|
148
|
+
if (!name) {
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
const option = { type: 'string' };
|
|
152
|
+
if (arg.short && arg.long && arg.short.length === 1) {
|
|
153
|
+
option.short = arg.short;
|
|
154
|
+
}
|
|
155
|
+
nodeOptions[name] = option;
|
|
156
|
+
}
|
|
157
|
+
return nodeOptions;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Builds the result record with type coercion, defaults, and validation applied.
|
|
161
|
+
*/
|
|
162
|
+
buildResult(values) {
|
|
163
|
+
const result = {};
|
|
164
|
+
for (const arg of this._arguments) {
|
|
165
|
+
const name = arg.long ?? arg.short ?? '';
|
|
166
|
+
let value = values[name];
|
|
167
|
+
if (value === undefined) {
|
|
168
|
+
if (arg.options.required && arg.options.default === undefined) {
|
|
169
|
+
const displayName = arg.long ? `--${arg.long}` : `-${arg.short}`;
|
|
170
|
+
throw new Error(`Argument '${displayName}' is required.`);
|
|
171
|
+
}
|
|
172
|
+
value = arg.options.default;
|
|
173
|
+
}
|
|
174
|
+
else if (typeof arg.options.type === 'function' && typeof value === 'string') {
|
|
175
|
+
value = arg.options.type(value);
|
|
176
|
+
}
|
|
177
|
+
if (value !== undefined && value !== null && arg.options.choices?.length) {
|
|
178
|
+
const stringValue = String(value);
|
|
179
|
+
if (!arg.options.choices.includes(stringValue)) {
|
|
180
|
+
const displayName = arg.long ? `--${arg.long}` : `-${arg.short}`;
|
|
181
|
+
throw new Error(`Invalid value '${stringValue}' for argument '${displayName}'. ` +
|
|
182
|
+
`Allowed values: ${arg.options.choices.join(', ')}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
result[arg.destKey] = value;
|
|
186
|
+
}
|
|
187
|
+
return result;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Formats a single help line for an argument.
|
|
191
|
+
*/
|
|
192
|
+
static formatArgLine(short, long, metavar, help) {
|
|
193
|
+
const parts = [];
|
|
194
|
+
if (short) {
|
|
195
|
+
parts.push(short);
|
|
196
|
+
}
|
|
197
|
+
if (long) {
|
|
198
|
+
parts.push(long);
|
|
199
|
+
}
|
|
200
|
+
const aliasStr = parts.join(', ');
|
|
201
|
+
const metaStr = metavar ? ` ${metavar.toUpperCase()}` : '';
|
|
202
|
+
const label = ` ${aliasStr}${metaStr}`;
|
|
203
|
+
const padding = Math.max(2, 30 - label.length);
|
|
204
|
+
return `${label}${' '.repeat(padding)}${help ?? ''}`;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Converts a kebab-case string to camelCase.
|
|
208
|
+
*/
|
|
209
|
+
static kebabToCamelCase(value) {
|
|
210
|
+
return value.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
exports.CliParser = CliParser;
|
|
214
|
+
//# sourceMappingURL=CliParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CliParser.js","sourceRoot":"","sources":["../../src/cli/CliParser.ts"],"names":[],"mappings":"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"}
|
package/cli/Program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Program.d.ts","sourceRoot":"","sources":["../../src/cli/Program.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD;;;;;GAKG;AACH,8BAAsB,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"Program.d.ts","sourceRoot":"","sources":["../../src/cli/Program.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD;;;;;GAKG;AACH,8BAAsB,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IAMpC;;;;OAIG;IACH,SAAS,aAAa,IAAI,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,YAAY;IAiB3F;;;;;OAKG;IACH,IAAW,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,CAE1C;IAED;;;;;OAKG;IACH,IAAW,QAAQ,IAAI,gBAAgB,CAEtC;IAED;;;;;OAKG;IACH,IAAW,IAAI,IAAI,YAAY,CAE9B;IAMM,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK;IAIjC;;;;;;;OAOG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BlC;;;;;;OAMG;IACU,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAcnC;;;;;;;;;OASG;cACa,OAAO,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAc7D;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAajF;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAa5D;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAmBvB"}
|
package/cli/Program.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// #region Imports
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Program = void 0;
|
|
5
|
-
const argparse_1 = require("argparse");
|
|
6
5
|
const String_1 = require("../system/String");
|
|
7
6
|
const Time_1 = require("../system/Time");
|
|
8
7
|
const TerminalColors_1 = require("../terminal/TerminalColors");
|
|
9
8
|
const TerminalSymbols_1 = require("../terminal/TerminalSymbols");
|
|
9
|
+
const CliParser_1 = require("./CliParser");
|
|
10
10
|
const ProgramArgs_1 = require("./ProgramArgs");
|
|
11
11
|
const ProgramCommands_1 = require("./ProgramCommands");
|
|
12
12
|
const ProgramConfig_1 = require("./ProgramConfig");
|
|
@@ -34,13 +34,10 @@ class Program {
|
|
|
34
34
|
this._programConfig = new ProgramConfig_1.ProgramConfig(init);
|
|
35
35
|
this._programCommands = commands ?? new ProgramCommands_1.ProgramCommands(init);
|
|
36
36
|
this._programArgs = args ?? new ProgramArgs_1.ProgramArgs();
|
|
37
|
-
this._parser = new
|
|
37
|
+
this._parser = new CliParser_1.CliParser({
|
|
38
38
|
description: init?.description,
|
|
39
39
|
epilog: init?.epilog,
|
|
40
|
-
|
|
41
|
-
add_help: init?.addHelp,
|
|
42
|
-
// eslint-disable-next-line camelcase
|
|
43
|
-
prefix_chars: init?.prefixChars ?? '-',
|
|
40
|
+
addHelp: init?.addHelp,
|
|
44
41
|
prog: init?.prog,
|
|
45
42
|
usage: init?.usage
|
|
46
43
|
});
|
|
@@ -99,13 +96,13 @@ class Program {
|
|
|
99
96
|
// Ensure that the program args already defined in the command args.
|
|
100
97
|
this.args.options.forEach((x) => {
|
|
101
98
|
if (typeof x.alias === 'string') {
|
|
102
|
-
this._parser.
|
|
99
|
+
this._parser.addArgument(x.alias, x.options);
|
|
103
100
|
}
|
|
104
101
|
else {
|
|
105
|
-
this._parser.
|
|
102
|
+
this._parser.addArgument(x.alias[0], x.alias[1], x.options);
|
|
106
103
|
}
|
|
107
104
|
});
|
|
108
|
-
const parsedArgs = this._parser.
|
|
105
|
+
const parsedArgs = this._parser.parseArgs();
|
|
109
106
|
void this.config.loadAsync();
|
|
110
107
|
this.config.assign(parsedArgs);
|
|
111
108
|
}
|
package/cli/Program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Program.js","sourceRoot":"","sources":["../../src/cli/Program.ts"],"names":[],"mappings":";AACA,kBAAkB;;;AAElB,
|
|
1
|
+
{"version":3,"file":"Program.js","sourceRoot":"","sources":["../../src/cli/Program.ts"],"names":[],"mappings":"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"}
|
package/cli/ProgramCommands.d.ts
CHANGED
|
@@ -56,11 +56,4 @@ export declare class ProgramCommands implements IProgramCommands {
|
|
|
56
56
|
dispose(): Promise<void>;
|
|
57
57
|
private ensureCommand;
|
|
58
58
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Converts object keys from snake_case to camelCase.
|
|
61
|
-
*
|
|
62
|
-
* @param obj - The object to be converted.
|
|
63
|
-
* @returns A new object with camelCase keys.
|
|
64
|
-
*/
|
|
65
|
-
export declare function convertKeysToCamelCase(obj: Record<string, any>): Record<string, any>;
|
|
66
59
|
//# sourceMappingURL=ProgramCommands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgramCommands.d.ts","sourceRoot":"","sources":["../../src/cli/ProgramCommands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProgramCommands.d.ts","sourceRoot":"","sources":["../../src/cli/ProgramCommands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAsBnE;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IAIpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,YAAY,CAA4B;IAMhD;;;;OAIG;gBACgB,IAAI,CAAC,EAAE,YAAY;IAkBtC;;;;;;;OAOG;IACI,QAAQ,CAAC,QAAQ,SAAS,KAAK,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,sBAAsB,CAAC,EAAE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,GAAG,IAAI;IAU1K;;;;;OAKG;IAEU,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxD;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;IA8B1D;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAarD;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC,OAAO,CAAC,aAAa;CAaxB"}
|
package/cli/ProgramCommands.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
// #region Imports
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.ProgramCommands = void 0;
|
|
5
|
-
|
|
6
|
-
const argparse_1 = require("argparse");
|
|
5
|
+
const CliParser_1 = require("./CliParser");
|
|
7
6
|
/**
|
|
8
7
|
* @private
|
|
9
8
|
*/
|
|
@@ -24,13 +23,10 @@ class ProgramCommands {
|
|
|
24
23
|
constructor(init) {
|
|
25
24
|
this._commandTypes = [];
|
|
26
25
|
this._commandInstances = [];
|
|
27
|
-
this._parser = new
|
|
26
|
+
this._parser = new CliParser_1.CliParser({
|
|
28
27
|
description: init?.description,
|
|
29
28
|
epilog: init?.epilog,
|
|
30
|
-
|
|
31
|
-
add_help: init?.addHelp,
|
|
32
|
-
// eslint-disable-next-line camelcase
|
|
33
|
-
prefix_chars: init?.prefixChars ?? '-',
|
|
29
|
+
addHelp: init?.addHelp,
|
|
34
30
|
prog: init?.prog,
|
|
35
31
|
usage: init?.usage
|
|
36
32
|
});
|
|
@@ -95,14 +91,13 @@ class ProgramCommands {
|
|
|
95
91
|
this._currentArgs = entry.instance.args ?? [];
|
|
96
92
|
this._currentArgs.forEach((x) => {
|
|
97
93
|
if (typeof x.alias === 'string') {
|
|
98
|
-
this._parser.
|
|
94
|
+
this._parser.addArgument(x.alias, x.options);
|
|
99
95
|
}
|
|
100
96
|
else {
|
|
101
|
-
this._parser.
|
|
97
|
+
this._parser.addArgument(x.alias[0], x.alias[1], x.options);
|
|
102
98
|
}
|
|
103
99
|
});
|
|
104
|
-
|
|
105
|
-
const parserArgs = convertKeysToCamelCase(this._parser.parse_args(args));
|
|
100
|
+
const parserArgs = this._parser.parseArgs(args);
|
|
106
101
|
entry.instance.configure(parserArgs);
|
|
107
102
|
return;
|
|
108
103
|
}
|
|
@@ -144,27 +139,6 @@ class ProgramCommands {
|
|
|
144
139
|
}
|
|
145
140
|
}
|
|
146
141
|
exports.ProgramCommands = ProgramCommands;
|
|
147
|
-
/**
|
|
148
|
-
* Converts object keys from snake_case to camelCase.
|
|
149
|
-
*
|
|
150
|
-
* @param obj - The object to be converted.
|
|
151
|
-
* @returns A new object with camelCase keys.
|
|
152
|
-
*/
|
|
153
|
-
function convertKeysToCamelCase(obj) {
|
|
154
|
-
if (Array.isArray(obj)) {
|
|
155
|
-
return obj.map((item) => typeof item === 'object' && item !== null ? convertKeysToCamelCase(item) : item);
|
|
156
|
-
}
|
|
157
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
158
|
-
if (typeof obj === 'object' && obj !== null) {
|
|
159
|
-
const newObject = {};
|
|
160
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
161
|
-
const camelCaseKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
162
|
-
newObject[camelCaseKey] = typeof value === 'object' && value !== null ? convertKeysToCamelCase(value) : value;
|
|
163
|
-
}
|
|
164
|
-
return newObject;
|
|
165
|
-
}
|
|
166
|
-
return obj;
|
|
167
|
-
}
|
|
168
142
|
class CommandNotFoundError extends Error {
|
|
169
143
|
constructor(command, commands) {
|
|
170
144
|
super(`The command '${command}' was not found. Available commands: ${commands.join(', ')}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgramCommands.js","sourceRoot":"","sources":["../../src/cli/ProgramCommands.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;
|
|
1
|
+
{"version":3,"file":"ProgramCommands.js","sourceRoot":"","sources":["../../src/cli/ProgramCommands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,32 @@
|
|
|
1
|
-
import type { ArgumentOptions } from 'argparse';
|
|
2
1
|
/**
|
|
3
2
|
* Represents the program argument options.
|
|
4
3
|
*
|
|
5
4
|
* @public
|
|
6
5
|
*/
|
|
7
|
-
export interface IProgramArgOptions
|
|
6
|
+
export interface IProgramArgOptions {
|
|
7
|
+
/**
|
|
8
|
+
* A custom type coercion function applied to the raw string value.
|
|
9
|
+
*/
|
|
10
|
+
readonly type?: (value: string) => unknown;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the argument is required.
|
|
13
|
+
*/
|
|
14
|
+
readonly required?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The default value if the argument is not provided.
|
|
17
|
+
*/
|
|
18
|
+
readonly default?: unknown;
|
|
19
|
+
/**
|
|
20
|
+
* A display name for the argument value in help text.
|
|
21
|
+
*/
|
|
22
|
+
readonly metavar?: string;
|
|
23
|
+
/**
|
|
24
|
+
* The help text describing the argument.
|
|
25
|
+
*/
|
|
26
|
+
readonly help?: string;
|
|
27
|
+
/**
|
|
28
|
+
* A list of allowed values for the argument.
|
|
29
|
+
*/
|
|
30
|
+
readonly choices?: Array<string>;
|
|
8
31
|
}
|
|
9
32
|
//# sourceMappingURL=IProgramArgOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProgramArgOptions.d.ts","sourceRoot":"","sources":["../../../src/cli/interfaces/IProgramArgOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IProgramArgOptions.d.ts","sourceRoot":"","sources":["../../../src/cli/interfaces/IProgramArgOptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAE/B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CAEpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IProgramArgOptions.js","sourceRoot":"","sources":["../../../src/cli/interfaces/IProgramArgOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IProgramArgOptions.js","sourceRoot":"","sources":["../../../src/cli/interfaces/IProgramArgOptions.ts"],"names":[],"mappings":""}
|
package/index.d.ts
CHANGED
|
@@ -35,7 +35,6 @@ export * from './io/TemporaryFile.js';
|
|
|
35
35
|
export type * from './io/writer/interfaces/IFileWriter.js';
|
|
36
36
|
export * from './io/writer/TextFileWriter.js';
|
|
37
37
|
export type * from './logging/LogLevel.js';
|
|
38
|
-
export * from './system/Args.js';
|
|
39
38
|
export * from './system/Array.js';
|
|
40
39
|
export * from './system/Assign.js';
|
|
41
40
|
export * from './system/Boolean.js';
|
|
@@ -59,7 +58,8 @@ export type { IFileSystem, IFileSystemEventMap } from './io/interfaces/IFileSyst
|
|
|
59
58
|
export type { IFileTracker } from './io/interfaces/IFileTracker.js';
|
|
60
59
|
export { ConsoleLogger } from './logging/vnext/ConsoleLogger.js';
|
|
61
60
|
export type { ILogger } from './logging/vnext/interfaces/ILogger.js';
|
|
62
|
-
export { logBanner, logEmptyLine, logPair, logSeparator, logSummary, logTag, logTask, logTree } from './logging/vnext/LoggerExtensions.js';
|
|
61
|
+
export { logBanner, logEmptyLine, logPair, logProgress, logSeparator, logSummary, logTag, logTask, logTree } from './logging/vnext/LoggerExtensions.js';
|
|
62
|
+
export type { ILogProgressHandle } from './logging/vnext/LoggerExtensions.js';
|
|
63
63
|
export { t } from './logging/vnext/styles/Style.js';
|
|
64
64
|
export { bgBlack, bgBlue, bgBlueBright, bgCyan, bgCyanBright, bgGray, bgGreen, bgGreenBright, bgMagenta, bgMagentaBright, bgRainbow, bgRed, bgRedBright, bgWhite, bgWhiteBright, bgYellow, bgYellowBright, black, blink, blue, blueBright, bold, cyan, cyanBright, dim, doubleunderline, gray, green, greenBright, hidden, inverse, italic, magenta, magentaBright, rainbow, red, redBright, reset, strikethrough, style, symbol, text, underline, white, whiteBright, yellow, yellowBright } from './logging/vnext/styles/StyleDirectives.js';
|
|
65
65
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,YAAY,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,YAAY,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,YAAY,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC;AACpD,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,mBAAmB,uCAAuC,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,mBAAmB,uCAAuC,CAAC;AAC3D,cAAc,+BAA+B,CAAC;AAC9C,mBAAmB,uBAAuB,CAAC;AAC3C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
18
|
-
exports.yellowBright = exports.yellow = exports.whiteBright = exports.white = exports.underline = exports.text = exports.symbol = exports.style = exports.strikethrough = exports.reset = exports.redBright = exports.red = exports.rainbow = exports.magentaBright = void 0;
|
|
17
|
+
exports.italic = exports.inverse = exports.hidden = exports.greenBright = exports.green = exports.gray = exports.doubleunderline = exports.dim = exports.cyanBright = exports.cyan = exports.bold = exports.blueBright = exports.blue = exports.blink = exports.black = exports.bgYellowBright = exports.bgYellow = exports.bgWhiteBright = exports.bgWhite = exports.bgRedBright = exports.bgRed = exports.bgRainbow = exports.bgMagentaBright = exports.bgMagenta = exports.bgGreenBright = exports.bgGreen = exports.bgGray = exports.bgCyanBright = exports.bgCyan = exports.bgBlueBright = exports.bgBlue = exports.bgBlack = exports.t = exports.logTree = exports.logTask = exports.logTag = exports.logSummary = exports.logSeparator = exports.logProgress = exports.logPair = exports.logEmptyLine = exports.logBanner = exports.ConsoleLogger = exports.FileTracker = exports.FileSystem = exports.FileCache = exports.Languages = exports.Program = exports.ProgramBuilder = exports.ProgramCommandBase = void 0;
|
|
18
|
+
exports.yellowBright = exports.yellow = exports.whiteBright = exports.white = exports.underline = exports.text = exports.symbol = exports.style = exports.strikethrough = exports.reset = exports.redBright = exports.red = exports.rainbow = exports.magentaBright = exports.magenta = void 0;
|
|
19
19
|
require("reflect-metadata");
|
|
20
20
|
var ProgramCommandBase_js_1 = require("./cli/abstracts/ProgramCommandBase.js");
|
|
21
21
|
Object.defineProperty(exports, "ProgramCommandBase", { enumerable: true, get: function () { return ProgramCommandBase_js_1.ProgramCommandBase; } });
|
|
@@ -46,7 +46,6 @@ __exportStar(require("./io/Template.js"), exports);
|
|
|
46
46
|
__exportStar(require("./io/TemporaryDirectory.js"), exports);
|
|
47
47
|
__exportStar(require("./io/TemporaryFile.js"), exports);
|
|
48
48
|
__exportStar(require("./io/writer/TextFileWriter.js"), exports);
|
|
49
|
-
__exportStar(require("./system/Args.js"), exports);
|
|
50
49
|
__exportStar(require("./system/Array.js"), exports);
|
|
51
50
|
__exportStar(require("./system/Assign.js"), exports);
|
|
52
51
|
__exportStar(require("./system/Boolean.js"), exports);
|
|
@@ -73,6 +72,7 @@ var LoggerExtensions_js_1 = require("./logging/vnext/LoggerExtensions.js");
|
|
|
73
72
|
Object.defineProperty(exports, "logBanner", { enumerable: true, get: function () { return LoggerExtensions_js_1.logBanner; } });
|
|
74
73
|
Object.defineProperty(exports, "logEmptyLine", { enumerable: true, get: function () { return LoggerExtensions_js_1.logEmptyLine; } });
|
|
75
74
|
Object.defineProperty(exports, "logPair", { enumerable: true, get: function () { return LoggerExtensions_js_1.logPair; } });
|
|
75
|
+
Object.defineProperty(exports, "logProgress", { enumerable: true, get: function () { return LoggerExtensions_js_1.logProgress; } });
|
|
76
76
|
Object.defineProperty(exports, "logSeparator", { enumerable: true, get: function () { return LoggerExtensions_js_1.logSeparator; } });
|
|
77
77
|
Object.defineProperty(exports, "logSummary", { enumerable: true, get: function () { return LoggerExtensions_js_1.logSummary; } });
|
|
78
78
|
Object.defineProperty(exports, "logTag", { enumerable: true, get: function () { return LoggerExtensions_js_1.logTag; } });
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,4BAA0B;AAE1B,+EAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAC3B,sEAAkE;AAAzD,mHAAA,cAAc,OAAA;AAOvB,+CAA2C;AAAlC,qGAAA,OAAO,OAAA;AAGhB,2DAAyC;AACzC,sEAAoD;AACpD,oDAAkC;AAClC,iDAA+B;AAC/B,gEAA8C;AAC9C,oDAAgD;AAAvC,yGAAA,SAAS,OAAA;AAClB,gEAA8C;AAC9C,oDAAkC;AAClC,+CAA6B;AAC7B,uDAAqC;AACrC,uDAAqC;AACrC,yDAAuC;AACvC,4DAA0C;AAC1C,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAE3B,gEAA8C;AAC9C,+CAA6B;AAC7B,mDAAiC;AACjC,6DAA2C;AAC3C,wDAAsC;AAEtC,gEAA8C;AAE9C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ILogger } from './interfaces/ILogger';
|
|
2
1
|
import { InspectColor } from 'util';
|
|
2
|
+
import type { ILogger } from './interfaces/ILogger';
|
|
3
3
|
interface ILogControlOptions {
|
|
4
4
|
prefix?: string;
|
|
5
5
|
prefixSpaceLength?: number;
|
|
@@ -87,5 +87,35 @@ export declare function logBanner(logger: ILogger, type: 'info' | 'success' | 'w
|
|
|
87
87
|
* @param {ILogger} logger - The logger.
|
|
88
88
|
*/
|
|
89
89
|
export declare function logEmptyLine(logger: ILogger): void;
|
|
90
|
+
/**
|
|
91
|
+
* The result of a `logProgress` call.
|
|
92
|
+
*
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
export interface ILogProgressHandle {
|
|
96
|
+
/**
|
|
97
|
+
* Reports progress. Call this after each processed item.
|
|
98
|
+
*
|
|
99
|
+
* @param current - The current progress value.
|
|
100
|
+
* @param label - An optional label to display after the bar.
|
|
101
|
+
*/
|
|
102
|
+
report(current: number, label?: string): void;
|
|
103
|
+
/**
|
|
104
|
+
* Disposes the progress bar, completing it and writing a newline.
|
|
105
|
+
*
|
|
106
|
+
* @param label - An optional label to display after the completed bar.
|
|
107
|
+
*/
|
|
108
|
+
dispose(label?: string): void;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Logs a progress bar to the console and returns a handle to update and dispose it.
|
|
112
|
+
*
|
|
113
|
+
* @public
|
|
114
|
+
* @param logger - The logger (unused but kept for API consistency).
|
|
115
|
+
* @param total - The total number of items to process.
|
|
116
|
+
* @param options - The options for the progress bar.
|
|
117
|
+
* @returns A handle with `report` and `dispose` methods.
|
|
118
|
+
*/
|
|
119
|
+
export declare function logProgress(logger: ILogger, total: number, options?: ILogControlOptions): ILogProgressHandle;
|
|
90
120
|
export {};
|
|
91
121
|
//# sourceMappingURL=LoggerExtensions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoggerExtensions.d.ts","sourceRoot":"","sources":["../../../src/logging/vnext/LoggerExtensions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LoggerExtensions.d.ts","sourceRoot":"","sources":["../../../src/logging/vnext/LoggerExtensions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAMpD,UAAU,kBAAkB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,YAAY;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC/B;AAED,UAAU,wBAAyB,SAAQ,kBAAkB;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAyBtH;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAiBlE;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAQnF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;IACtD,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAatC;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAG1G;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAmBnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG;IACzG,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,IAAI,CA6C3C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAElD;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAE/B;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9C;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,CAc5G"}
|
|
@@ -10,10 +10,12 @@ exports.logPair = logPair;
|
|
|
10
10
|
exports.logTask = logTask;
|
|
11
11
|
exports.logBanner = logBanner;
|
|
12
12
|
exports.logEmptyLine = logEmptyLine;
|
|
13
|
-
|
|
14
|
-
const StyleDirectives_1 = require("./styles/StyleDirectives");
|
|
13
|
+
exports.logProgress = logProgress;
|
|
15
14
|
const process_1 = require("process");
|
|
16
15
|
const String_1 = require("../../system/String");
|
|
16
|
+
const TerminalProgressBar_1 = require("../../terminal/TerminalProgressBar");
|
|
17
|
+
const Style_1 = require("./styles/Style");
|
|
18
|
+
const StyleDirectives_1 = require("./styles/StyleDirectives");
|
|
17
19
|
/**
|
|
18
20
|
* Logs a tree-like structure.
|
|
19
21
|
*
|
|
@@ -207,6 +209,28 @@ function logBanner(logger, type, message, options) {
|
|
|
207
209
|
function logEmptyLine(logger) {
|
|
208
210
|
logger.log((0, Style_1.t) `${String_1.StringExtensions.newLine}`);
|
|
209
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Logs a progress bar to the console and returns a handle to update and dispose it.
|
|
214
|
+
*
|
|
215
|
+
* @public
|
|
216
|
+
* @param logger - The logger (unused but kept for API consistency).
|
|
217
|
+
* @param total - The total number of items to process.
|
|
218
|
+
* @param options - The options for the progress bar.
|
|
219
|
+
* @returns A handle with `report` and `dispose` methods.
|
|
220
|
+
*/
|
|
221
|
+
function logProgress(logger, total, options) {
|
|
222
|
+
const prefix = `${space(options?.prefixSpaceLength)}${options?.prefix ?? ''}`;
|
|
223
|
+
const progressBar = new TerminalProgressBar_1.TerminalProgressBar(total, prefix);
|
|
224
|
+
progressBar.update(0);
|
|
225
|
+
return {
|
|
226
|
+
report(current, label) {
|
|
227
|
+
progressBar.update(current, label);
|
|
228
|
+
},
|
|
229
|
+
dispose(label) {
|
|
230
|
+
progressBar.complete(label);
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
}
|
|
210
234
|
/**
|
|
211
235
|
* Returns a space string.
|
|
212
236
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoggerExtensions.js","sourceRoot":"","sources":["../../../src/logging/vnext/LoggerExtensions.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,kBAAkB;;
|
|
1
|
+
{"version":3,"file":"LoggerExtensions.js","sourceRoot":"","sources":["../../../src/logging/vnext/LoggerExtensions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@breadstone-infrastructure/utilities",
|
|
3
3
|
"description": "Common utility classes and functions",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.232",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "andre.wehlert <awehlert@breadstone.de> (https://www.breadstone.de)",
|
|
7
7
|
"repository": {
|
|
@@ -13,15 +13,13 @@
|
|
|
13
13
|
"module": "./index.js",
|
|
14
14
|
"types": "./index.d.ts",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"argparse": "^2.0.1",
|
|
17
16
|
"dir-glob": "^3.0.1",
|
|
18
17
|
"es-toolkit": "^1.45.1",
|
|
19
18
|
"fast-glob": "^3.3.3",
|
|
20
19
|
"fs-extra": "^11.3.4",
|
|
21
20
|
"jsonc-parser": "^3.3.1",
|
|
22
|
-
"ts-morph": "^
|
|
23
|
-
"xml2js": "^0.6.2"
|
|
24
|
-
"yargs": "^18.0.0"
|
|
21
|
+
"ts-morph": "^28.0.0",
|
|
22
|
+
"xml2js": "^0.6.2"
|
|
25
23
|
},
|
|
26
24
|
"exports": {
|
|
27
25
|
".": {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a terminal progress bar that displays real item-based progress.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export declare class TerminalProgressBar {
|
|
7
|
+
private readonly _total;
|
|
8
|
+
private readonly _width;
|
|
9
|
+
private readonly _prefix;
|
|
10
|
+
private _current;
|
|
11
|
+
/**
|
|
12
|
+
* Constructs a new instance of the `TerminalProgressBar` class.
|
|
13
|
+
*
|
|
14
|
+
* @param total - The total number of items to process.
|
|
15
|
+
* @param prefix - The prefix label to display before the bar.
|
|
16
|
+
* @param width - The width of the bar in characters.
|
|
17
|
+
*/
|
|
18
|
+
constructor(total: number, prefix?: string, width?: number);
|
|
19
|
+
/**
|
|
20
|
+
* Increments the progress by one and re-renders the bar.
|
|
21
|
+
*
|
|
22
|
+
* @public
|
|
23
|
+
* @param label - An optional label to display after the progress.
|
|
24
|
+
*/
|
|
25
|
+
tick(label?: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Updates the progress to a specific value and re-renders the bar.
|
|
28
|
+
*
|
|
29
|
+
* @public
|
|
30
|
+
* @param current - The current progress value.
|
|
31
|
+
* @param label - An optional label to display after the progress.
|
|
32
|
+
*/
|
|
33
|
+
update(current: number, label?: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Completes the progress bar, filling it to 100% and writing a newline.
|
|
36
|
+
*
|
|
37
|
+
* @public
|
|
38
|
+
* @param label - An optional label to display after the completed bar.
|
|
39
|
+
*/
|
|
40
|
+
complete(label?: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Renders the progress bar to stdout.
|
|
43
|
+
*
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
private render;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=TerminalProgressBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TerminalProgressBar.d.ts","sourceRoot":"","sources":["../../src/terminal/TerminalProgressBar.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,qBAAa,mBAAmB;IAI5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAS;IAMzB;;;;;;OAMG;gBACgB,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,EAAE,KAAK,GAAE,MAAW;IAWzE;;;;;OAKG;IACI,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKjC;;;;;;OAMG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKpD;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAMrC;;;;OAIG;IACH,OAAO,CAAC,MAAM;CAcjB"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// #region Imports
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.TerminalProgressBar = void 0;
|
|
5
|
+
const process_1 = require("process");
|
|
6
|
+
// #endregion
|
|
7
|
+
/**
|
|
8
|
+
* Represents a terminal progress bar that displays real item-based progress.
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class TerminalProgressBar {
|
|
13
|
+
// #region Fields
|
|
14
|
+
_total;
|
|
15
|
+
_width;
|
|
16
|
+
_prefix;
|
|
17
|
+
_current;
|
|
18
|
+
// #endregion
|
|
19
|
+
// #region Ctor
|
|
20
|
+
/**
|
|
21
|
+
* Constructs a new instance of the `TerminalProgressBar` class.
|
|
22
|
+
*
|
|
23
|
+
* @param total - The total number of items to process.
|
|
24
|
+
* @param prefix - The prefix label to display before the bar.
|
|
25
|
+
* @param width - The width of the bar in characters.
|
|
26
|
+
*/
|
|
27
|
+
constructor(total, prefix = '', width = 30) {
|
|
28
|
+
this._total = total;
|
|
29
|
+
this._width = width;
|
|
30
|
+
this._prefix = prefix;
|
|
31
|
+
this._current = 0;
|
|
32
|
+
}
|
|
33
|
+
// #endregion
|
|
34
|
+
// #region Methods
|
|
35
|
+
/**
|
|
36
|
+
* Increments the progress by one and re-renders the bar.
|
|
37
|
+
*
|
|
38
|
+
* @public
|
|
39
|
+
* @param label - An optional label to display after the progress.
|
|
40
|
+
*/
|
|
41
|
+
tick(label) {
|
|
42
|
+
this._current = Math.min(this._current + 1, this._total);
|
|
43
|
+
this.render(label);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Updates the progress to a specific value and re-renders the bar.
|
|
47
|
+
*
|
|
48
|
+
* @public
|
|
49
|
+
* @param current - The current progress value.
|
|
50
|
+
* @param label - An optional label to display after the progress.
|
|
51
|
+
*/
|
|
52
|
+
update(current, label) {
|
|
53
|
+
this._current = Math.min(current, this._total);
|
|
54
|
+
this.render(label);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Completes the progress bar, filling it to 100% and writing a newline.
|
|
58
|
+
*
|
|
59
|
+
* @public
|
|
60
|
+
* @param label - An optional label to display after the completed bar.
|
|
61
|
+
*/
|
|
62
|
+
complete(label) {
|
|
63
|
+
this._current = this._total;
|
|
64
|
+
this.render(label);
|
|
65
|
+
process_1.stdout.write('\n');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Renders the progress bar to stdout.
|
|
69
|
+
*
|
|
70
|
+
* @private
|
|
71
|
+
*/
|
|
72
|
+
render(label) {
|
|
73
|
+
const ratio = this._total > 0 ? this._current / this._total : 0;
|
|
74
|
+
const filled = Math.round(this._width * ratio);
|
|
75
|
+
const empty = this._width - filled;
|
|
76
|
+
const bar = '\u2588'.repeat(filled) + '\u2591'.repeat(empty);
|
|
77
|
+
const percent = Math.round(ratio * 100);
|
|
78
|
+
process_1.stdout.clearLine(0);
|
|
79
|
+
process_1.stdout.cursorTo(0);
|
|
80
|
+
process_1.stdout.write(`${this._prefix}${bar} ${percent}% (${this._current}/${this._total})${label ? ` ${label}` : ''}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.TerminalProgressBar = TerminalProgressBar;
|
|
84
|
+
//# sourceMappingURL=TerminalProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TerminalProgressBar.js","sourceRoot":"","sources":["../../src/terminal/TerminalProgressBar.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAElB,qCAAiC;AAEjC,aAAa;AAEb;;;;GAIG;AACH,MAAa,mBAAmB;IAE5B,iBAAiB;IAEA,MAAM,CAAS;IACf,MAAM,CAAS;IACf,OAAO,CAAS;IACzB,QAAQ,CAAS;IAEzB,aAAa;IAEb,eAAe;IAEf;;;;;;OAMG;IACH,YAAmB,KAAa,EAAE,SAAiB,EAAE,EAAE,QAAgB,EAAE;QACrE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;;OAKG;IACI,IAAI,CAAC,KAAc;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,OAAe,EAAE,KAAc;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACI,QAAQ,CAAC,KAAc;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnB,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAc;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAExC,gBAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpB,gBAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnB,gBAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,OAAO,MAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnH,CAAC;CAIJ;AArFD,kDAqFC"}
|