@cloud-copilot/cli 0.1.1

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.
@@ -0,0 +1,546 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createConfig = createConfig;
4
+ exports.parseCliArguments = parseCliArguments;
5
+ exports.printHelpContents = printHelpContents;
6
+ const utils_js_1 = require("./utils.js");
7
+ function isBooleanOption(option) {
8
+ return option.values === 'none';
9
+ }
10
+ function isEnumOption(option) {
11
+ return option.type === 'enum';
12
+ }
13
+ /**
14
+ * Create a type safe configuration for CLI arguments.
15
+ *
16
+ * @param config the configuration for the CLI arguments.
17
+ * @returns the configuration object.
18
+ */
19
+ function createConfig(config) {
20
+ return config;
21
+ }
22
+ /**
23
+ * Parse CLI Arguments and return the parsed typesafe results.
24
+ *
25
+ * @param command the name of the command arguments are being parsed for.
26
+ * @param subcommands the list of subcommands that can be used, if any.
27
+ * @param cliOptions the configuration options for the CLI command.
28
+ * @param additionalArgs additional arguments to be used for parsing and displaying help.
29
+ * @returns the parsed arguments, operands, and subcommand if applicable.
30
+ */
31
+ function parseCliArguments(command, subcommands, cliOptions, additionalArgs) {
32
+ const args = additionalArgs?.args ?? process.argv.slice(2);
33
+ const env = additionalArgs?.env ?? process.env;
34
+ const parsedArgs = {};
35
+ const operands = [];
36
+ const booleanOptions = {};
37
+ const subcommandKeys = Object.keys(subcommands);
38
+ const numberOfSubcommands = subcommandKeys.length;
39
+ const combinedOptions = { ...cliOptions };
40
+ let subcommand;
41
+ if (args.length === 0 && additionalArgs?.showHelpIfNoArgs) {
42
+ printHelpContents(command, subcommands, cliOptions, additionalArgs);
43
+ (0, utils_js_1.exit)(0, undefined);
44
+ return {};
45
+ }
46
+ // Step 1: Initialize defaults
47
+ initializeOptionDefaults(parsedArgs, booleanOptions, cliOptions);
48
+ // Step 2: Handle environment variables
49
+ parseEnvironmentVariables(cliOptions, parsedArgs, env, additionalArgs?.envPrefix);
50
+ if (additionalArgs?.envPrefix) {
51
+ const prefix = additionalArgs.envPrefix + '_';
52
+ const envToKeys = Object.keys(cliOptions).reduce((acc, key) => {
53
+ acc[camelToCapitalSnakeCase(key)] = key;
54
+ return acc;
55
+ }, {});
56
+ for (const [key, value] of Object.entries(env)) {
57
+ if (key.startsWith(prefix)) {
58
+ const optionKey = key.slice(prefix.length);
59
+ const option = envToKeys[optionKey];
60
+ if (option) {
61
+ const config = combinedOptions[option];
62
+ if (isEnumOption(config)) {
63
+ if (config.values === 'single') {
64
+ const matchingValue = config.validValues.find((v) => v.toLowerCase() === value.toLowerCase());
65
+ if (!matchingValue) {
66
+ (0, utils_js_1.exit)(2, `Environment ${key} allows only the following values: ${config.validValues.join(', ')}`);
67
+ }
68
+ parsedArgs[option] = matchingValue;
69
+ }
70
+ else if (config.values === 'multiple') {
71
+ const invalidValues = [];
72
+ const validValues = [];
73
+ const values = value.split(' ');
74
+ for (const v of values) {
75
+ const matchingValue = config.validValues.find((valid) => valid.toLowerCase() === v.toLowerCase());
76
+ if (matchingValue) {
77
+ validValues.push(matchingValue);
78
+ }
79
+ else {
80
+ invalidValues.push(value);
81
+ }
82
+ }
83
+ if (invalidValues.length > 0) {
84
+ (0, utils_js_1.exit)(2, `Environment ${key} allows only the following values: ${config.validValues.join(', ')}`);
85
+ }
86
+ parsedArgs[option] = validValues;
87
+ }
88
+ }
89
+ else if (config.values === 'none') {
90
+ parsedArgs[option] = true;
91
+ }
92
+ else if (config.values === 'single') {
93
+ const { parsed, invalid } = validateTypes(config.type, value);
94
+ if (invalid.length > 0) {
95
+ (0, utils_js_1.exit)(2, `Environment ${key} expects a valid ${config.type}, but received: ${invalid.join(', ')}`);
96
+ }
97
+ parsedArgs[option] = parsed;
98
+ }
99
+ else if (config.values === 'multiple') {
100
+ const values = value.split(' ');
101
+ const { parsed, invalid } = validateTypes(config.type, values);
102
+ if (invalid.length > 0) {
103
+ (0, utils_js_1.exit)(2, `Environment ${key} expects a valid ${config.type}, but received: ${invalid.join(', ')}`);
104
+ }
105
+ parsedArgs[option] = parsed;
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ // Step 3: Group arguments into objects
112
+ const commandChunks = groupArguments(args);
113
+ // Step 4: Validation and parsing arguments
114
+ for (const { first, rest, isLast, isFirst } of commandChunks) {
115
+ // Handle --help and --version
116
+ if (first === '--help') {
117
+ printHelpContents(command, subcommands, cliOptions, additionalArgs, subcommand);
118
+ (0, utils_js_1.exit)(0, undefined);
119
+ }
120
+ if (first === '--version') {
121
+ if (additionalArgs?.version) {
122
+ (0, utils_js_1.exit)(0, additionalArgs?.version);
123
+ }
124
+ }
125
+ // Handle commands if applicable
126
+ if (isFirst && !first.startsWith('-')) {
127
+ if (numberOfSubcommands === 0) {
128
+ if (isLast) {
129
+ operands.push(first, ...rest);
130
+ }
131
+ else {
132
+ (0, utils_js_1.exit)(2, `Invalid: ${first}, all options must specified using a --argument`);
133
+ }
134
+ }
135
+ else {
136
+ if (!isLast && rest.length > 0) {
137
+ (0, utils_js_1.exit)(2, `Options must be specified using a --argument, ${rest.join(' ')} is ambiguous`);
138
+ }
139
+ const matchingCommands = subcommandKeys.filter((cmd) => cmd.toLowerCase().startsWith(first.toLowerCase()));
140
+ if (matchingCommands.length === 0) {
141
+ (0, utils_js_1.exit)(2, `Unknown command: ${first}`);
142
+ return {};
143
+ }
144
+ else if (matchingCommands.length > 1) {
145
+ (0, utils_js_1.exit)(2, `Ambiguous command: ${first}`);
146
+ return {};
147
+ }
148
+ subcommand = matchingCommands.at(0);
149
+ const subcommandOptions = subcommands[subcommand].options;
150
+ initializeOptionDefaults(parsedArgs, booleanOptions, subcommandOptions);
151
+ parseEnvironmentVariables(subcommandOptions, parsedArgs, env, additionalArgs?.envPrefix);
152
+ for (const [key, option] of Object.entries(subcommandOptions)) {
153
+ combinedOptions[key] = option;
154
+ }
155
+ operands.push(...rest);
156
+ }
157
+ }
158
+ // Validate options
159
+ if (first == '--') {
160
+ operands.push(...rest);
161
+ }
162
+ else if (first.startsWith('--')) {
163
+ const key = first.slice(2).replaceAll('-', '').toLowerCase();
164
+ const matchingOptions = Object.keys(combinedOptions).filter((k) => k.toLowerCase().startsWith(key));
165
+ let matchingOption = undefined;
166
+ if (matchingOptions.length === 1) {
167
+ matchingOption = matchingOptions[0];
168
+ }
169
+ else if (matchingOptions.length > 1) {
170
+ (0, utils_js_1.exit)(2, `Ambiguous argument: ${first}`);
171
+ }
172
+ else {
173
+ (0, utils_js_1.exit)(2, `Unknown argument: ${first}`);
174
+ }
175
+ if (!matchingOption) {
176
+ (0, utils_js_1.exit)(2, `Unknown option: ${first}`);
177
+ return {};
178
+ }
179
+ const optionConfig = combinedOptions[matchingOption];
180
+ if (isEnumOption(optionConfig)) {
181
+ if (rest.length === 0) {
182
+ if (optionConfig.values === 'single') {
183
+ (0, utils_js_1.exit)(2, `Option ${first} expects a value, but received none`);
184
+ }
185
+ else {
186
+ (0, utils_js_1.exit)(2, `Option ${first} expects at least one value, but received none`);
187
+ }
188
+ return {};
189
+ }
190
+ if (optionConfig.values === 'single') {
191
+ if (rest.length > 1 && !isLast) {
192
+ (0, utils_js_1.exit)(2, `Option ${first} expects a single value, but received multiple: ${rest.join(', ')}`);
193
+ }
194
+ const value = rest[0];
195
+ const matchingValue = optionConfig.validValues.find((v) => v.toLowerCase() === value.toLowerCase());
196
+ if (!matchingValue) {
197
+ (0, utils_js_1.exit)(2, `Option ${first} allows only the following values: ${optionConfig.validValues.join(', ')}`);
198
+ }
199
+ parsedArgs[matchingOption] = matchingValue;
200
+ operands.push(...rest.slice(1));
201
+ }
202
+ else if (optionConfig.values === 'multiple') {
203
+ const invalidValues = [];
204
+ const validValues = [];
205
+ for (const value of rest) {
206
+ const matchingValue = optionConfig.validValues.find((v) => v.toLowerCase() === value.toLowerCase());
207
+ if (matchingValue) {
208
+ validValues.push(matchingValue);
209
+ }
210
+ else {
211
+ invalidValues.push(value);
212
+ }
213
+ }
214
+ if (invalidValues.length > 0) {
215
+ (0, utils_js_1.exit)(2, `Option ${first} allows only the following values: ${optionConfig.validValues.join(', ')}`);
216
+ }
217
+ parsedArgs[matchingOption] = validValues;
218
+ }
219
+ }
220
+ else if (optionConfig.values === 'none') {
221
+ //set boolean value
222
+ parsedArgs[matchingOption] = true;
223
+ //Handle extra values
224
+ if (rest.length > 0) {
225
+ if (!isLast) {
226
+ (0, utils_js_1.exit)(2, `Boolean option ${first} does not accept values`);
227
+ }
228
+ else {
229
+ operands.push(...rest);
230
+ }
231
+ }
232
+ }
233
+ else if (optionConfig.values === 'single') {
234
+ if (rest.length === 0) {
235
+ (0, utils_js_1.exit)(2, `Option ${first} expects a value, but received none`);
236
+ }
237
+ //Validate the value
238
+ const { parsed, invalid } = validateTypes(optionConfig.type, rest[0]);
239
+ if (invalid.length > 0) {
240
+ (0, utils_js_1.exit)(2, `Option ${first} expects a valid ${optionConfig.type}, but received: ${invalid.join(', ')}`);
241
+ }
242
+ //Set the value
243
+ parsedArgs[matchingOption] = parsed;
244
+ if (rest.length > 1) {
245
+ if (!isLast) {
246
+ (0, utils_js_1.exit)(2, `Option ${first} expects a single value, but received multiple: ${rest.join(', ')}`);
247
+ }
248
+ else {
249
+ operands.push(...rest.slice(1));
250
+ }
251
+ }
252
+ }
253
+ else if (optionConfig.values === 'multiple') {
254
+ if (rest.length === 0) {
255
+ (0, utils_js_1.exit)(2, `Option ${first} expects at least one value, but received none`);
256
+ }
257
+ //Set the Value
258
+ //Validate the value
259
+ const { parsed, invalid } = validateTypes(optionConfig.type, rest);
260
+ if (invalid.length > 0) {
261
+ (0, utils_js_1.exit)(2, `Option ${first} expects a valid ${optionConfig.type}, but received: ${invalid.join(', ')}`);
262
+ }
263
+ parsedArgs[matchingOption] = parsed;
264
+ }
265
+ else {
266
+ throw new Error(`Unrecognized option values ${optionConfig.values}`);
267
+ }
268
+ }
269
+ else if (first.startsWith('-')) {
270
+ if (rest.length > 0 && !isLast) {
271
+ (0, utils_js_1.exit)(2, `Boolean option(s) ${first} should not have values`);
272
+ return {};
273
+ }
274
+ else if (isLast) {
275
+ operands.push(...rest);
276
+ }
277
+ // Short options (-s, -spq)
278
+ for (const char of first.slice(1)) {
279
+ if (!(char in booleanOptions)) {
280
+ (0, utils_js_1.exit)(2, `Unknown flag: -${char}`);
281
+ }
282
+ const key = booleanOptions[char];
283
+ parsedArgs[key] = true;
284
+ }
285
+ }
286
+ }
287
+ if (numberOfSubcommands > 0 && additionalArgs?.requireSubcommand && !subcommand) {
288
+ (0, utils_js_1.exit)(2, `A subcommand is required`);
289
+ }
290
+ // Step 4: Return results
291
+ return { args: parsedArgs, operands, command: subcommand, anyValues: args.length > 0 };
292
+ }
293
+ /**
294
+ * Initialize the default values for arguments
295
+ *
296
+ * @param parsedArgs the parsed arguments to default the values in
297
+ * @param cliOptions the configuration options for the CLI commands
298
+ */
299
+ function initializeOptionDefaults(parsedArgs, booleanOptions, cliOptions) {
300
+ for (const [key, option] of Object.entries(cliOptions)) {
301
+ if (option.values === 'none') {
302
+ parsedArgs[key] = false; //(option as BooleanOption).default
303
+ if (option.character) {
304
+ booleanOptions[option.character.toLowerCase()] = key;
305
+ }
306
+ }
307
+ else if (option.values === 'single') {
308
+ parsedArgs[key] = undefined;
309
+ }
310
+ else if (option.values === 'multiple') {
311
+ parsedArgs[key] = [];
312
+ }
313
+ }
314
+ }
315
+ /**
316
+ * Parse environment variables and set the values in the parsed arguments.
317
+ *
318
+ * @param options the configuration options for the CLI commands
319
+ * @param parsedArgs the parsed arguments to set the values in
320
+ * @param env the environment variables to get values from
321
+ * @param envPrefix the prefix to use for environment variables, if any
322
+ */
323
+ function parseEnvironmentVariables(options, parsedArgs, env, envPrefix) {
324
+ if (!envPrefix) {
325
+ return;
326
+ }
327
+ const prefix = envPrefix + '_';
328
+ const envToKeys = Object.keys(options).reduce((acc, key) => {
329
+ acc[camelToCapitalSnakeCase(key)] = key;
330
+ return acc;
331
+ }, {});
332
+ for (const [key, value] of Object.entries(env)) {
333
+ if (key.startsWith(prefix)) {
334
+ const optionKey = key.slice(prefix.length);
335
+ const option = envToKeys[optionKey];
336
+ if (option) {
337
+ const config = options[option];
338
+ if (isEnumOption(config)) {
339
+ if (config.values === 'single') {
340
+ const matchingValue = config.validValues.find((v) => v.toLowerCase() === value.toLowerCase());
341
+ if (!matchingValue) {
342
+ (0, utils_js_1.exit)(2, `Environment ${key} allows only the following values: ${config.validValues.join(', ')}`);
343
+ }
344
+ parsedArgs[option] = matchingValue;
345
+ }
346
+ else if (config.values === 'multiple') {
347
+ const invalidValues = [];
348
+ const validValues = [];
349
+ const values = value.split(' ');
350
+ for (const v of values) {
351
+ const matchingValue = config.validValues.find((valid) => valid.toLowerCase() === v.toLowerCase());
352
+ if (matchingValue) {
353
+ validValues.push(matchingValue);
354
+ }
355
+ else {
356
+ invalidValues.push(value);
357
+ }
358
+ }
359
+ if (invalidValues.length > 0) {
360
+ (0, utils_js_1.exit)(2, `Environment ${key} allows only the following values: ${config.validValues.join(', ')}`);
361
+ }
362
+ parsedArgs[option] = validValues;
363
+ }
364
+ }
365
+ else if (config.values === 'none') {
366
+ parsedArgs[option] = true;
367
+ }
368
+ else if (config.values === 'single') {
369
+ const { parsed, invalid } = validateTypes(config.type, value);
370
+ if (invalid.length > 0) {
371
+ (0, utils_js_1.exit)(2, `Environment ${key} expects a valid ${config.type}, but received: ${invalid.join(', ')}`);
372
+ }
373
+ parsedArgs[option] = parsed;
374
+ }
375
+ else if (config.values === 'multiple') {
376
+ const values = value.split(' ');
377
+ const { parsed, invalid } = validateTypes(config.type, values);
378
+ if (invalid.length > 0) {
379
+ (0, utils_js_1.exit)(2, `Environment ${key} expects a valid ${config.type}, but received: ${invalid.join(', ')}`);
380
+ }
381
+ parsedArgs[option] = parsed;
382
+ }
383
+ }
384
+ }
385
+ }
386
+ }
387
+ /**
388
+ * Groups arguments into chunks based on the -- separator.
389
+ *
390
+ * @param args
391
+ * @returns
392
+ */
393
+ function groupArguments(args) {
394
+ const grouped = [];
395
+ let currentChunk = [];
396
+ for (let i = 0; i < args.length; i++) {
397
+ const arg = args[i];
398
+ if (arg === '--') {
399
+ grouped.push({
400
+ first: arg,
401
+ rest: args.slice(i + 1),
402
+ isFirst: grouped.length === 0,
403
+ isLast: true
404
+ });
405
+ break;
406
+ }
407
+ if (arg.startsWith('-') && currentChunk.length > 0) {
408
+ grouped.push({
409
+ first: currentChunk.at(0),
410
+ rest: currentChunk.slice(1),
411
+ isFirst: grouped.length === 0,
412
+ isLast: false
413
+ });
414
+ currentChunk = [];
415
+ }
416
+ currentChunk.push(arg);
417
+ }
418
+ if (currentChunk.length > 0) {
419
+ grouped.push({
420
+ first: currentChunk.at(0),
421
+ rest: currentChunk.slice(1),
422
+ isFirst: grouped.length === 0,
423
+ isLast: true
424
+ });
425
+ }
426
+ return grouped;
427
+ }
428
+ /**
429
+ * Validate the types of a standard argument
430
+ *
431
+ * @param type the type the argument accepts
432
+ * @param values the values to validate
433
+ * @returns an object with the invalid values and the parsed values
434
+ */
435
+ function validateTypes(type, values) {
436
+ if (type === 'string') {
437
+ return { invalid: [], parsed: values };
438
+ }
439
+ if (!Array.isArray(values)) {
440
+ const isValid = !isNaN(Number(values));
441
+ if (isValid) {
442
+ return { invalid: [], parsed: Number(values) };
443
+ }
444
+ return { invalid: [values], parsed: 0 };
445
+ }
446
+ const invalid = values.filter((v) => isNaN(Number(v)));
447
+ if (invalid.length > 0) {
448
+ return { invalid, parsed: [] };
449
+ }
450
+ return { invalid: [], parsed: values.map(Number) };
451
+ }
452
+ function camelToCapitalSnakeCase(input) {
453
+ return input
454
+ .replace(/([a-z])([A-Z])/g, '$1_$2') // Insert underscore before capital letters
455
+ .toUpperCase(); // Convert to uppercase
456
+ }
457
+ function camelToKebabCase(input) {
458
+ return input
459
+ .replace(/([a-z])([A-Z])/g, '$1-$2') // Insert underscore before capital letters
460
+ .toLowerCase(); // Convert to uppercase
461
+ }
462
+ function printHelpContents(command, subcommands, cliOptions, additionalArgs, selectedSubcommand) {
463
+ const operandsName = additionalArgs?.operandsName ?? 'operands';
464
+ if (selectedSubcommand) {
465
+ let usageString = `Usage: ${command} ${selectedSubcommand} [options] [flags] [--] [${operandsName}1] [${operandsName}2]`;
466
+ console.log(usageString);
467
+ console.log(`\n${subcommands[selectedSubcommand].description}`);
468
+ console.log(`${selectedSubcommand} Options:`);
469
+ printOptions(subcommands[selectedSubcommand].options);
470
+ console.log('');
471
+ }
472
+ else {
473
+ let usageString = `Usage: ${command}`;
474
+ const subcommandKeys = Object.keys(subcommands);
475
+ if (subcommandKeys.length > 0 && additionalArgs?.requireSubcommand) {
476
+ usageString += ' <subcommand>';
477
+ }
478
+ else if (subcommandKeys.length > 0) {
479
+ usageString += ' [subcommand]';
480
+ }
481
+ usageString += ` [options] [flags] [--] [${operandsName}1] [${operandsName}2]`;
482
+ console.log(usageString);
483
+ const longestCommand = subcommandKeys.reduce((acc, cmd) => Math.max(acc, cmd.length), 0);
484
+ if (subcommandKeys.length > 0) {
485
+ console.log('Commands:');
486
+ for (const cmd of subcommandKeys) {
487
+ const description = subcommands[cmd].description;
488
+ console.log(` ${(cmd + ':').padEnd(longestCommand + 1)} ${description}`);
489
+ }
490
+ console.log(`\n Use ${command} <subcommand> --help for more information about a subcommand`);
491
+ }
492
+ }
493
+ console.log('Global Options:');
494
+ const globalOptions = {
495
+ ...cliOptions,
496
+ ...{
497
+ help: {
498
+ description: 'Print the help contents and exit'
499
+ }
500
+ }
501
+ };
502
+ if (additionalArgs?.version) {
503
+ globalOptions['version'] = {
504
+ description: 'Print the version and exit'
505
+ };
506
+ }
507
+ printOptions(globalOptions);
508
+ }
509
+ function printOptions(cliOptions) {
510
+ const longestOption = Object.keys(cliOptions).reduce((acc, key) => Math.max(acc, camelToKebabCase(key).length + 2), 0) + 1;
511
+ const terminalWidth = process.stdout.columns ?? 80;
512
+ const nonBooleanBuffer = ' ';
513
+ for (const [key, option] of Object.entries(cliOptions)) {
514
+ let optionString = ` --${camelToKebabCase(key)}:`.padEnd(longestOption + 3);
515
+ if (isBooleanOption(option)) {
516
+ optionString += `(-${option.character}) `;
517
+ }
518
+ else {
519
+ optionString += nonBooleanBuffer;
520
+ }
521
+ const leftBar = optionString.length;
522
+ optionString += option.description + '. ';
523
+ if (isEnumOption(option)) {
524
+ if (option.values === 'single') {
525
+ optionString += `Must be one of: ${option.validValues.join(', ')}.`;
526
+ }
527
+ else {
528
+ optionString += `Valid values: ${option.validValues.join(', ')}.`;
529
+ }
530
+ }
531
+ else if (option.values === 'single') {
532
+ optionString += `One ${option.type} required`;
533
+ }
534
+ else if (option.values === 'multiple') {
535
+ optionString += `Multiple ${option.type}s allowed`;
536
+ }
537
+ console.log(optionString.slice(0, terminalWidth));
538
+ let stringToPrint = optionString.slice(terminalWidth);
539
+ const secondLineLength = terminalWidth - leftBar;
540
+ while (stringToPrint.length > 0) {
541
+ console.log(' '.repeat(leftBar) + stringToPrint.slice(0, secondLineLength));
542
+ stringToPrint = stringToPrint.slice(secondLineLength);
543
+ }
544
+ }
545
+ }
546
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;AAoGA,oCAEC;AA0FD,8CAyTC;AA+MD,8CA6DC;AArwBD,yCAAiC;AA0EjC,SAAS,eAAe,CAAC,MAAmB;IAC1C,OAAQ,MAA0B,CAAC,MAAM,KAAK,MAAM,CAAA;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB;IACvC,OAAQ,MAAuB,CAAC,IAAI,KAAK,MAAM,CAAA;AACjD,CAAC;AAcD;;;;;GAKG;AACH,SAAgB,YAAY,CAAwC,MAAS;IAC3E,OAAO,MAAM,CAAA;AACf,CAAC;AAiFD;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAI/B,OAAe,EACf,WAAc,EACd,UAAqB,EACrB,cAAuC;IAEvC,MAAM,IAAI,GAAG,cAAc,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1D,MAAM,GAAG,GAAG,cAAc,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAA;IAC9C,MAAM,UAAU,GAAQ,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,cAAc,GAA2B,EAAE,CAAA;IACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAC/C,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAA;IACjD,MAAM,eAAe,GAAgC,EAAE,GAAG,UAAU,EAAE,CAAA;IACtE,IAAI,UAA8B,CAAA;IAElC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,cAAc,EAAE,gBAAgB,EAAE,CAAC;QAC1D,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAA;QACnE,IAAA,eAAI,EAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAClB,OAAO,EAAS,CAAA;IAClB,CAAC;IAED,8BAA8B;IAC9B,wBAAwB,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAA;IAEhE,uCAAuC;IACvC,yBAAyB,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;IAEjF,IAAI,cAAc,EAAE,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,GAAG,GAAG,CAAA;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC9C,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACX,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;YACvC,OAAO,GAAG,CAAA;QACZ,CAAC,EACD,EAA4B,CAC7B,CAAA;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;gBACnC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;oBACtC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;wBACzB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAM,CAAC,WAAW,EAAE,CAChD,CAAA;4BACD,IAAI,CAAC,aAAa,EAAE,CAAC;gCACnB,IAAA,eAAI,EACF,CAAC,EACD,eAAe,GAAG,sCAAsC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAA;4BACH,CAAC;4BACD,UAAU,CAAC,MAAM,CAAC,GAAG,aAAa,CAAA;wBACpC,CAAC;6BAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BACxC,MAAM,aAAa,GAAG,EAAE,CAAA;4BACxB,MAAM,WAAW,GAAG,EAAE,CAAA;4BACtB,MAAM,MAAM,GAAG,KAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;4BAChC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gCACvB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CACnD,CAAA;gCACD,IAAI,aAAa,EAAE,CAAC;oCAClB,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gCACjC,CAAC;qCAAM,CAAC;oCACN,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gCAC3B,CAAC;4BACH,CAAC;4BACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC7B,IAAA,eAAI,EACF,CAAC,EACD,eAAe,GAAG,sCAAsC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAA;4BACH,CAAC;4BACD,UAAU,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA;wBAClC,CAAC;oBACH,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;wBACpC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;oBAC3B,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACtC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,KAAM,CAAC,CAAA;wBAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvB,IAAA,eAAI,EACF,CAAC,EACD,eAAe,GAAG,oBAAoB,MAAM,CAAC,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzF,CAAA;wBACH,CAAC;wBACD,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;oBAC7B,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBACxC,MAAM,MAAM,GAAG,KAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAChC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;wBAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvB,IAAA,eAAI,EACF,CAAC,EACD,eAAe,GAAG,oBAAoB,MAAM,CAAC,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzF,CAAA;wBACH,CAAC;wBACD,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IAE1C,2CAA2C;IAC3C,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE,CAAC;QAC7D,8BAA8B;QAC9B,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAC,CAAA;YAC/E,IAAA,eAAI,EAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACpB,CAAC;QAED,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;gBAC5B,IAAA,eAAI,EAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,MAAM,EAAE,CAAC;oBACX,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAA;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAA,eAAI,EAAC,CAAC,EAAE,YAAY,KAAK,iDAAiD,CAAC,CAAA;gBAC7E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,IAAA,eAAI,EAAC,CAAC,EAAE,iDAAiD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBACzF,CAAC;gBACD,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACrD,GAAG,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAClD,CAAA;gBAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,IAAA,eAAI,EAAC,CAAC,EAAE,oBAAoB,KAAK,EAAE,CAAC,CAAA;oBACpC,OAAO,EAAS,CAAA;gBAClB,CAAC;qBAAM,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvC,IAAA,eAAI,EAAC,CAAC,EAAE,sBAAsB,KAAK,EAAE,CAAC,CAAA;oBACtC,OAAO,EAAS,CAAA;gBAClB,CAAC;gBACD,UAAU,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;gBACpC,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAA;gBACzD,wBAAwB,CAAC,UAAU,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAA;gBACvE,yBAAyB,CAAC,iBAAiB,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;gBACxF,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC9D,eAAe,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;gBAC/B,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACxB,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;YAC5D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAChE,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAChC,CAAA;YAED,IAAI,cAAc,GAAuB,SAAS,CAAA;YAClD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;YACrC,CAAC;iBAAM,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAA,eAAI,EAAC,CAAC,EAAE,uBAAuB,KAAK,EAAE,CAAC,CAAA;YACzC,CAAC;iBAAM,CAAC;gBACN,IAAA,eAAI,EAAC,CAAC,EAAE,qBAAqB,KAAK,EAAE,CAAC,CAAA;YACvC,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAA,eAAI,EAAC,CAAC,EAAE,mBAAmB,KAAK,EAAE,CAAC,CAAA;gBACnC,OAAO,EAAS,CAAA;YAClB,CAAC;YAED,MAAM,YAAY,GAAG,eAAe,CAAC,cAAe,CAAC,CAAA;YACrD,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,IAAI,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBACrC,IAAA,eAAI,EAAC,CAAC,EAAE,UAAU,KAAK,qCAAqC,CAAC,CAAA;oBAC/D,CAAC;yBAAM,CAAC;wBACN,IAAA,eAAI,EAAC,CAAC,EAAE,UAAU,KAAK,gDAAgD,CAAC,CAAA;oBAC1E,CAAC;oBACD,OAAO,EAAS,CAAA;gBAClB,CAAC;gBACD,IAAI,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACrC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC/B,IAAA,eAAI,EACF,CAAC,EACD,UAAU,KAAK,mDAAmD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAA;oBACH,CAAC;oBACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;oBACrB,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAC/C,CAAA;oBACD,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnB,IAAA,eAAI,EACF,CAAC,EACD,UAAU,KAAK,sCAAsC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3F,CAAA;oBACH,CAAC;oBACD,UAAU,CAAC,cAAc,CAAC,GAAG,aAAa,CAAA;oBAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjC,CAAC;qBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAC9C,MAAM,aAAa,GAAG,EAAE,CAAA;oBACxB,MAAM,WAAW,GAAG,EAAE,CAAA;oBACtB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;wBACzB,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAC/C,CAAA;wBACD,IAAI,aAAa,EAAE,CAAC;4BAClB,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;wBACjC,CAAC;6BAAM,CAAC;4BACN,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;wBAC3B,CAAC;oBACH,CAAC;oBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,IAAA,eAAI,EACF,CAAC,EACD,UAAU,KAAK,sCAAsC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3F,CAAA;oBACH,CAAC;oBACD,UAAU,CAAC,cAAc,CAAC,GAAG,WAAW,CAAA;gBAC1C,CAAC;YACH,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC1C,mBAAmB;gBACnB,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAA;gBACjC,qBAAqB;gBACrB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,IAAA,eAAI,EAAC,CAAC,EAAE,kBAAkB,KAAK,yBAAyB,CAAC,CAAA;oBAC3D,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,IAAA,eAAI,EAAC,CAAC,EAAE,UAAU,KAAK,qCAAqC,CAAC,CAAA;gBAC/D,CAAC;gBAED,oBAAoB;gBACpB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAA,eAAI,EACF,CAAC,EACD,UAAU,KAAK,oBAAoB,YAAY,CAAC,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5F,CAAA;gBACH,CAAC;gBAED,eAAe;gBACf,UAAU,CAAC,cAAc,CAAC,GAAG,MAAM,CAAA;gBAEnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,IAAA,eAAI,EACF,CAAC,EACD,UAAU,KAAK,mDAAmD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAA;oBACH,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;oBACjC,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACtB,IAAA,eAAI,EAAC,CAAC,EAAE,UAAU,KAAK,gDAAgD,CAAC,CAAA;gBAC1E,CAAC;gBACD,eAAe;gBACf,oBAAoB;gBACpB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAClE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAA,eAAI,EACF,CAAC,EACD,UAAU,KAAK,oBAAoB,YAAY,CAAC,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5F,CAAA;gBACH,CAAC;gBAED,UAAU,CAAC,cAAc,CAAC,GAAG,MAAM,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,8BAA8B,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;YACtE,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAA,eAAI,EAAC,CAAC,EAAE,qBAAqB,KAAK,yBAAyB,CAAC,CAAA;gBAC5D,OAAO,EAAS,CAAA;YAClB,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;YACxB,CAAC;YAED,2BAA2B;YAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,CAAC,IAAI,IAAI,cAAc,CAAC,EAAE,CAAC;oBAC9B,IAAA,eAAI,EAAC,CAAC,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAA;gBACnC,CAAC;gBACD,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;gBAChC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,mBAAmB,GAAG,CAAC,IAAI,cAAc,EAAE,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChF,IAAA,eAAI,EAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA;IACrC,CAAC;IAED,yBAAyB;IACzB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAA;AACxF,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAC/B,UAAe,EACf,cAAsC,EACtC,UAAa;IAEb,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA,CAAC,mCAAmC;YAC3D,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,cAAc,CAAE,MAA0B,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAA;YAC3E,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,UAAU,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;QAC7B,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACxC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QACtB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAChC,OAAoC,EACpC,UAAe,EACf,GAAuC,EACvC,SAA6B;IAE7B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,GAAG,GAAG,CAAA;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAC3C,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;QACvC,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAA4B,CAC7B,CAAA;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC9B,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAM,CAAC,WAAW,EAAE,CAChD,CAAA;wBACD,IAAI,CAAC,aAAa,EAAE,CAAC;4BACnB,IAAA,eAAI,EACF,CAAC,EACD,eAAe,GAAG,sCAAsC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAA;wBACH,CAAC;wBACD,UAAU,CAAC,MAAM,CAAC,GAAG,aAAa,CAAA;oBACpC,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBACxC,MAAM,aAAa,GAAG,EAAE,CAAA;wBACxB,MAAM,WAAW,GAAG,EAAE,CAAA;wBACtB,MAAM,MAAM,GAAG,KAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAChC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;4BACvB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CACnD,CAAA;4BACD,IAAI,aAAa,EAAE,CAAC;gCAClB,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;4BACjC,CAAC;iCAAM,CAAC;gCACN,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;4BAC3B,CAAC;wBACH,CAAC;wBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC7B,IAAA,eAAI,EACF,CAAC,EACD,eAAe,GAAG,sCAAsC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAA;wBACH,CAAC;wBACD,UAAU,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA;oBAClC,CAAC;gBACH,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACpC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;gBAC3B,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACtC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,KAAM,CAAC,CAAA;oBAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,IAAA,eAAI,EACF,CAAC,EACD,eAAe,GAAG,oBAAoB,MAAM,CAAC,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzF,CAAA;oBACH,CAAC;oBACD,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;gBAC7B,CAAC;qBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBACxC,MAAM,MAAM,GAAG,KAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAChC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;oBAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,IAAA,eAAI,EACF,CAAC,EACD,eAAe,GAAG,oBAAoB,MAAM,CAAC,IAAI,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzF,CAAA;oBACH,CAAC;oBACD,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,OAAO,GAAoB,EAAE,CAAA;IACnC,IAAI,YAAY,GAAa,EAAE,CAAA;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;gBAC7B,MAAM,EAAE,IAAI;aACb,CAAC,CAAA;YACF,MAAK;QACP,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE;gBAC1B,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;gBAC7B,MAAM,EAAE,KAAK;aACd,CAAC,CAAA;YACF,YAAY,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAE;YAC1B,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3B,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;YAC7B,MAAM,EAAE,IAAI;SACb,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CACpB,IAAyB,EACzB,MAAyB;IAEzB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IACxC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;QAChD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;IACzC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAChC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AACpD,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,2CAA2C;SAC/E,WAAW,EAAE,CAAA,CAAC,uBAAuB;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,2CAA2C;SAC/E,WAAW,EAAE,CAAA,CAAC,uBAAuB;AAC1C,CAAC;AAED,SAAgB,iBAAiB,CAI/B,OAAe,EACf,WAAc,EACd,UAAa,EACb,cAAuC,EACvC,kBAAuC;IAEvC,MAAM,YAAY,GAAG,cAAc,EAAE,YAAY,IAAI,UAAU,CAAA;IAE/D,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,WAAW,GAAG,UAAU,OAAO,IAAI,kBAAkB,4BAA4B,YAAY,OAAO,YAAY,IAAI,CAAA;QAExH,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/D,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,WAAW,CAAC,CAAA;QAC7C,YAAY,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAA;QACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;SAAM,CAAC;QACN,IAAI,WAAW,GAAG,UAAU,OAAO,EAAE,CAAA;QACrC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,EAAE,iBAAiB,EAAE,CAAC;YACnE,WAAW,IAAI,eAAe,CAAA;QAChC,CAAC;aAAM,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,WAAW,IAAI,eAAe,CAAA;QAChC,CAAC;QAED,WAAW,IAAI,4BAA4B,YAAY,OAAO,YAAY,IAAI,CAAA;QAE9E,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAExB,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAExF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACxB,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;gBACjC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,CAAA;gBAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;YAC3E,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,8DAA8D,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC9B,MAAM,aAAa,GAAgC;QACjD,GAAG,UAAU;QACb,GAAI;YACF,IAAI,EAAE;gBACJ,WAAW,EAAE,kCAAkC;aAChD;SACM;KACV,CAAA;IACD,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;QAC5B,aAAa,CAAC,SAAS,CAAC,GAAG;YACzB,WAAW,EAAE,4BAA4B;SACnC,CAAA;IACV,CAAC;IAED,YAAY,CAAC,aAAa,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,YAAY,CACnB,UAAqB;IAErB,MAAM,aAAa,GACjB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC5B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAC7D,CAAC,CACF,GAAG,CAAC,CAAA;IAEP,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IAElD,MAAM,gBAAgB,GAAG,OAAO,CAAA;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,YAAY,GAAG,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAA;QAC5E,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,YAAY,IAAI,KAAK,MAAM,CAAC,SAAS,IAAI,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,YAAY,IAAI,gBAAgB,CAAA;QAClC,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAA;QACnC,YAAY,IAAI,MAAM,CAAC,WAAW,GAAG,IAAI,CAAA;QACzC,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,YAAY,IAAI,mBAAmB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;YACrE,CAAC;iBAAM,CAAC;gBACN,YAAY,IAAI,iBAAiB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA;YACnE,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,YAAY,IAAI,OAAO,MAAM,CAAC,IAAI,WAAW,CAAA;QAC/C,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACxC,YAAY,IAAI,YAAY,MAAM,CAAC,IAAI,WAAW,CAAA;QACpD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,IAAI,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACrD,MAAM,gBAAgB,GAAG,aAAa,GAAG,OAAO,CAAA;QAEhD,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAA;YAC3E,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACvD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { createConfig, parseCliArguments, printHelpContents, type AdditionalCliArguments, type Config } from './cli.js';
2
+ export { readStdin } from './stdin.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,MAAM,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readStdin = exports.printHelpContents = exports.parseCliArguments = exports.createConfig = void 0;
4
+ var cli_js_1 = require("./cli.js");
5
+ Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return cli_js_1.createConfig; } });
6
+ Object.defineProperty(exports, "parseCliArguments", { enumerable: true, get: function () { return cli_js_1.parseCliArguments; } });
7
+ Object.defineProperty(exports, "printHelpContents", { enumerable: true, get: function () { return cli_js_1.printHelpContents; } });
8
+ var stdin_js_1 = require("./stdin.js");
9
+ Object.defineProperty(exports, "readStdin", { enumerable: true, get: function () { return stdin_js_1.readStdin; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAMiB;AALf,sGAAA,YAAY,OAAA;AACZ,2GAAA,iBAAiB,OAAA;AACjB,2GAAA,iBAAiB,OAAA;AAInB,uCAAsC;AAA7B,qGAAA,SAAS,OAAA"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Read from stdin until the stream ends, timeout, or an error occurs
3
+ *
4
+ * @returns the string input from stdin
5
+ */
6
+ export declare function readStdin(readWait: number | undefined): Promise<string>;
7
+ //# sourceMappingURL=stdin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.d.ts","sourceRoot":"","sources":["../../src/stdin.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA6B7E"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readStdin = readStdin;
4
+ const process_1 = require("process");
5
+ /**
6
+ * Read from stdin until the stream ends, timeout, or an error occurs
7
+ *
8
+ * @returns the string input from stdin
9
+ */
10
+ async function readStdin(readWait) {
11
+ return new Promise((resolve, reject) => {
12
+ // If the input is not a TTY, we are most likely receiving data from a pipe.
13
+ const definitelyReceivingData = !process.stdin.isTTY;
14
+ if (!readWait || readWait <= 0) {
15
+ readWait = definitelyReceivingData ? 10_000 : 20;
16
+ }
17
+ let data = '';
18
+ const timeout = setTimeout(() => {
19
+ if (data.length === 0) {
20
+ resolve(data);
21
+ }
22
+ }, readWait);
23
+ process_1.stdin.on('data', (chunk) => {
24
+ data += chunk;
25
+ });
26
+ process_1.stdin.on('end', () => {
27
+ resolve(data);
28
+ clearTimeout(timeout);
29
+ });
30
+ process_1.stdin.on('error', (err) => {
31
+ reject(err);
32
+ clearTimeout(timeout);
33
+ });
34
+ });
35
+ }
36
+ //# sourceMappingURL=stdin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.js","sourceRoot":"","sources":["../../src/stdin.ts"],"names":[],"mappings":";;AAOA,8BA6BC;AApCD,qCAA+B;AAE/B;;;;GAIG;AACI,KAAK,UAAU,SAAS,CAAC,QAA4B;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,4EAA4E;QAC5E,MAAM,uBAAuB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAA;QACpD,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAC/B,QAAQ,GAAG,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;QAClD,CAAC;QAED,IAAI,IAAI,GAAG,EAAE,CAAA;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC;QACH,CAAC,EAAE,QAAQ,CAAC,CAAA;QAEZ,eAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,eAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,CAAA;YACb,YAAY,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,eAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,CAAA;YACX,YAAY,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}