@tronsfey/openapi2cli 1.0.10 → 1.0.12

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,223 @@
1
+ "use strict";
2
+ /**
3
+ * Shell completion script generators for openapi2cli.
4
+ *
5
+ * Each function returns a string that can be sourced by the user's shell.
6
+ * Dynamic operation completion (after `run --oas <spec>`) is handled by
7
+ * calling back into the hidden `__completions` subcommand.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.generateBashCompletion = generateBashCompletion;
11
+ exports.generateZshCompletion = generateZshCompletion;
12
+ exports.generateFishCompletion = generateFishCompletion;
13
+ const RUN_FLAGS = '--oas --bearer --api-key --api-key-header --basic --header --endpoint --help';
14
+ const GENERATE_FLAGS = '--oas --name --output --overwrite --help';
15
+ const TOP_COMMANDS = 'generate run completion help';
16
+ const COMPLETION_SHELLS = 'bash zsh fish';
17
+ // ─── Bash ─────────────────────────────────────────────────────────────────────
18
+ function generateBashCompletion() {
19
+ return [
20
+ '# bash completion for openapi2cli',
21
+ '# Source this file or add the following line to ~/.bashrc / ~/.bash_profile:',
22
+ '# eval "$(openapi2cli completion bash)"',
23
+ '',
24
+ '_openapi2cli() {',
25
+ ' local cur prev words cword',
26
+ ' _init_completion 2>/dev/null || {',
27
+ ' COMPREPLY=()',
28
+ ' cur="${COMP_WORDS[COMP_CWORD]}"',
29
+ ' prev="${COMP_WORDS[COMP_CWORD-1]}"',
30
+ ' words=("${COMP_WORDS[@]}")',
31
+ ' cword=$COMP_CWORD',
32
+ ' }',
33
+ '',
34
+ ' # Find the subcommand (first non-flag word after "openapi2cli")',
35
+ ' local subcmd=""',
36
+ ' local oas_path=""',
37
+ ' local group=""',
38
+ ' local i',
39
+ ' for ((i=1; i<cword; i++)); do',
40
+ ' case "${words[i]}" in',
41
+ ' --oas) oas_path="${words[i+1]:-}"; ((i++)) ;;',
42
+ ' generate|run|completion) subcmd="${words[i]}" ;;',
43
+ ' --*) ;; # skip other flags',
44
+ ' *) [[ -n "$subcmd" && -z "$group" ]] && group="${words[i]}" ;;',
45
+ ' esac',
46
+ ' done',
47
+ '',
48
+ ' case "$prev" in',
49
+ ' --oas|--output)',
50
+ ' COMPREPLY=($(compgen -f -- "$cur"))',
51
+ ' return ;;',
52
+ ' --format)',
53
+ ' COMPREPLY=($(compgen -W "json yaml table" -- "$cur"))',
54
+ ' return ;;',
55
+ ' --api-key-header)',
56
+ ' COMPREPLY=($(compgen -W "X-Api-Key Authorization X-Token" -- "$cur"))',
57
+ ' return ;;',
58
+ ' completion)',
59
+ ` COMPREPLY=($(compgen -W "${COMPLETION_SHELLS}" -- "$cur"))`,
60
+ ' return ;;',
61
+ ' esac',
62
+ '',
63
+ ' case "$subcmd" in',
64
+ ' "")',
65
+ ` COMPREPLY=($(compgen -W "${TOP_COMMANDS}" -- "$cur"))`,
66
+ ' ;;',
67
+ ' generate)',
68
+ ` COMPREPLY=($(compgen -W "${GENERATE_FLAGS}" -- "$cur"))`,
69
+ ' ;;',
70
+ ' run)',
71
+ ' if [[ -n "$oas_path" && -n "$group" ]]; then',
72
+ ' # Complete operation names within the group',
73
+ ' local ops',
74
+ ' ops=$(openapi2cli __completions --oas "$oas_path" --group "$group" 2>/dev/null)',
75
+ ' COMPREPLY=($(compgen -W "$ops" -- "$cur"))',
76
+ ' elif [[ -n "$oas_path" && "$cur" != -* ]]; then',
77
+ ' # Complete group names',
78
+ ' local groups',
79
+ ' groups=$(openapi2cli __completions --oas "$oas_path" 2>/dev/null)',
80
+ ' COMPREPLY=($(compgen -W "$groups" -- "$cur"))',
81
+ ' else',
82
+ ` COMPREPLY=($(compgen -W "${RUN_FLAGS}" -- "$cur"))`,
83
+ ' fi',
84
+ ' ;;',
85
+ ' esac',
86
+ '}',
87
+ '',
88
+ 'complete -F _openapi2cli openapi2cli',
89
+ '',
90
+ ].join('\n');
91
+ }
92
+ // ─── Zsh ──────────────────────────────────────────────────────────────────────
93
+ function generateZshCompletion() {
94
+ return [
95
+ '#compdef openapi2cli',
96
+ '# zsh completion for openapi2cli',
97
+ '# Source this file or add the following to ~/.zshrc:',
98
+ '# eval "$(openapi2cli completion zsh)"',
99
+ '',
100
+ '_openapi2cli() {',
101
+ ' local state line',
102
+ ' typeset -A opt_args',
103
+ '',
104
+ ' _arguments -C \\',
105
+ " '(-h --help)'{-h,--help}'[Show help]' \\",
106
+ " '(-V --version)'{-V,--version}'[Show version]' \\",
107
+ " '1: :->subcmd' \\",
108
+ " '*:: :->args'",
109
+ '',
110
+ ' case $state in',
111
+ ' subcmd)',
112
+ ' local -a cmds',
113
+ ' cmds=(',
114
+ " 'generate:Generate a Commander.js CLI project from an OpenAPI spec'",
115
+ " 'run:Directly call an OpenAPI endpoint without generating code'",
116
+ " 'completion:Output shell completion script'",
117
+ " 'help:Display help'",
118
+ ' )',
119
+ " _describe 'command' cmds",
120
+ ' ;;',
121
+ ' args)',
122
+ ' case $line[1] in',
123
+ ' generate)',
124
+ ' _arguments \\',
125
+ " '--oas[Path or URL to the OpenAPI spec file]:spec:_files' \\",
126
+ " '--name[CLI executable name]:name' \\",
127
+ " '--output[Output directory]:dir:_files -/' \\",
128
+ " '--overwrite[Overwrite existing output directory]' \\",
129
+ " '(-h --help)'{-h,--help}'[Show help]'",
130
+ ' ;;',
131
+ ' run)',
132
+ ' _arguments -C \\',
133
+ " '--oas[Path or URL to the OpenAPI spec file]:spec:_files' \\",
134
+ " '--bearer[Bearer token]:token' \\",
135
+ " '--api-key[API key value]:key' \\",
136
+ " '--api-key-header[API key header name]:header:(X-Api-Key Authorization X-Token)' \\",
137
+ " '--basic[HTTP Basic credentials (user\\:pass)]:credentials' \\",
138
+ " '--header[Extra HTTP header (Name\\: Value)]:header' \\",
139
+ " '--endpoint[Override base URL]:url' \\",
140
+ " '(-h --help)'{-h,--help}'[Show help]' \\",
141
+ " '1: :->group' \\",
142
+ " '2: :->operation' \\",
143
+ " '*:: :->op_args'",
144
+ '',
145
+ ' local oas_path="${opt_args[--oas]}"',
146
+ '',
147
+ ' case $state in',
148
+ ' group)',
149
+ ' if [[ -n "$oas_path" ]]; then',
150
+ ' local -a groups',
151
+ ' groups=($(openapi2cli __completions --oas "$oas_path" 2>/dev/null))',
152
+ " _describe 'command group' groups",
153
+ ' fi',
154
+ ' ;;',
155
+ ' operation)',
156
+ ' if [[ -n "$oas_path" && -n "$line[1]" ]]; then',
157
+ ' local -a ops',
158
+ ' ops=($(openapi2cli __completions --oas "$oas_path" --group "$line[1]" 2>/dev/null))',
159
+ " _describe 'operation' ops",
160
+ ' fi',
161
+ ' ;;',
162
+ ' op_args)',
163
+ ' _arguments \\',
164
+ " '--format[Output format]:fmt:(json yaml table)' \\",
165
+ " '--query[JMESPath expression]:expr' \\",
166
+ " '--all-pages[Auto-paginate]' \\",
167
+ " '--verbose[Log HTTP method and URL]'",
168
+ ' ;;',
169
+ ' esac',
170
+ ' ;;',
171
+ ' completion)',
172
+ " _arguments '1: :(bash zsh fish)'",
173
+ ' ;;',
174
+ ' esac',
175
+ ' ;;',
176
+ ' esac',
177
+ '}',
178
+ '',
179
+ '_openapi2cli "$@"',
180
+ '',
181
+ ].join('\n');
182
+ }
183
+ // ─── Fish ─────────────────────────────────────────────────────────────────────
184
+ function generateFishCompletion() {
185
+ return [
186
+ '# fish completion for openapi2cli',
187
+ '# Save this file to: ~/.config/fish/completions/openapi2cli.fish',
188
+ '# Or run: openapi2cli completion fish > ~/.config/fish/completions/openapi2cli.fish',
189
+ '',
190
+ '# Disable file completions for the main command',
191
+ 'complete -c openapi2cli -f',
192
+ '',
193
+ '# Top-level subcommands',
194
+ "complete -c openapi2cli -n '__fish_use_subcommand' -a 'generate' -d 'Generate a CLI project from an OpenAPI spec'",
195
+ "complete -c openapi2cli -n '__fish_use_subcommand' -a 'run' -d 'Call an OpenAPI endpoint directly'",
196
+ "complete -c openapi2cli -n '__fish_use_subcommand' -a 'completion' -d 'Output shell completion script'",
197
+ "complete -c openapi2cli -n '__fish_use_subcommand' -a 'help' -d 'Display help'",
198
+ '',
199
+ '# generate flags',
200
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from generate' -l oas -r -d 'Path or URL to the OpenAPI spec'",
201
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from generate' -l name -r -d 'CLI executable name'",
202
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from generate' -l output -r -d 'Output directory'",
203
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from generate' -l overwrite -d 'Overwrite existing output'",
204
+ '',
205
+ '# run flags',
206
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l oas -r -d 'Path or URL to the OpenAPI spec'",
207
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l bearer -r -d 'Bearer token'",
208
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l api-key -r -d 'API key value'",
209
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l api-key-header -r -d 'API key header name'",
210
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l basic -r -d 'HTTP Basic credentials (user:pass)'",
211
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l header -r -d 'Extra HTTP header (Name: Value)'",
212
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l endpoint -r -d 'Override base URL'",
213
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l format -r -d 'Output format' -a 'json yaml table'",
214
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l query -r -d 'JMESPath expression'",
215
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l all-pages -d 'Auto-paginate'",
216
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from run' -l verbose -d 'Log HTTP method and URL'",
217
+ '',
218
+ '# completion shells',
219
+ "complete -c openapi2cli -n '__fish_seen_subcommand_from completion' -a 'bash zsh fish' -d 'Shell type'",
220
+ '',
221
+ ].join('\n');
222
+ }
223
+ //# sourceMappingURL=completer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completer.js","sourceRoot":"","sources":["../src/completer.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -42,28 +42,118 @@ const chalk_1 = __importDefault(require("chalk"));
42
42
  const ora_1 = __importDefault(require("ora"));
43
43
  const fse = __importStar(require("fs-extra"));
44
44
  const path = __importStar(require("path"));
45
- const oas_parser_1 = require("./parser/oas-parser");
45
+ const cache_1 = require("./cache");
46
46
  const schema_analyzer_1 = require("./analyzer/schema-analyzer");
47
47
  const command_generator_1 = require("./generator/command-generator");
48
+ const proxy_runner_1 = require("./runner/proxy-runner");
49
+ const completer_1 = require("./completer");
50
+ const package_json_1 = require("../package.json");
48
51
  const program = new commander_1.Command();
49
52
  program
50
53
  .name('openapi2cli')
51
- .description('Generate a typed CLI from an OpenAPI 3.x specification')
52
- .version('1.0.0')
54
+ .description('Generate a typed CLI from an OpenAPI 3.x specification, or proxy one directly')
55
+ .version(package_json_1.version)
56
+ .enablePositionalOptions(true);
57
+ // ─── generate ────────────────────────────────────────────────────────────────
58
+ program
59
+ .command('generate')
60
+ .description('Generate a Commander.js CLI project from an OpenAPI spec')
53
61
  .requiredOption('--oas <path-or-url>', 'Path or URL to the OpenAPI spec file')
54
62
  .requiredOption('--name <cli-name>', 'Name for the generated CLI tool')
55
63
  .requiredOption('--output <dir>', 'Output directory for the generated project')
56
64
  .option('--overwrite', 'Overwrite output directory if it exists', false)
65
+ .option('--no-cache', 'Bypass spec cache (always re-fetch remote specs)')
66
+ .option('--cache-ttl <seconds>', 'Remote spec cache TTL in seconds', parseInt, 3600)
67
+ .action(async (opts) => {
68
+ await generate(opts);
69
+ });
70
+ // ─── run (proxy mode) ────────────────────────────────────────────────────────
71
+ program
72
+ .command('run', { isDefault: false })
73
+ .description('Directly call an OpenAPI endpoint without generating code')
74
+ .requiredOption('--oas <path-or-url>', 'Path or URL to the OpenAPI spec file')
75
+ .option('--bearer <token>', 'Bearer token → Authorization: Bearer <token>')
76
+ .option('--api-key <key>', 'API key value')
77
+ .option('--api-key-header <header>', 'Header name for API key (default: X-Api-Key)', 'X-Api-Key')
78
+ .option('--basic <credentials>', 'HTTP Basic credentials (user:password)')
79
+ .option('--header <header>', 'Extra HTTP header "Name: Value" (repeatable)', collect, [])
80
+ .option('--endpoint <url>', 'Override base URL from the spec')
81
+ .option('--timeout <ms>', 'Request timeout in milliseconds', parseInt, 30000)
82
+ .option('--retries <n>', 'Max retry attempts for 5xx/network errors', parseInt, 3)
83
+ .option('--no-cache', 'Bypass spec cache (always re-fetch remote specs)')
84
+ .option('--cache-ttl <seconds>', 'Remote spec cache TTL in seconds', parseInt, 3600)
85
+ .allowUnknownOption(true)
86
+ .passThroughOptions(true)
87
+ .action(async function (opts) {
88
+ // Commander uses `cache: false` when user passes --no-cache
89
+ const proxyOpts = { ...opts, noCache: opts.cache === false };
90
+ const remaining = this.args;
91
+ await (0, proxy_runner_1.proxyRun)(proxyOpts, remaining);
92
+ });
93
+ // ─── completion ──────────────────────────────────────────────────────────────
94
+ program
95
+ .command('completion [shell]')
96
+ .description('Output shell completion script (bash, zsh, fish)')
97
+ .action((shell) => {
98
+ const s = (shell ?? 'bash').toLowerCase();
99
+ if (s === 'bash') {
100
+ process.stdout.write((0, completer_1.generateBashCompletion)());
101
+ }
102
+ else if (s === 'zsh') {
103
+ process.stdout.write((0, completer_1.generateZshCompletion)());
104
+ }
105
+ else if (s === 'fish') {
106
+ process.stdout.write((0, completer_1.generateFishCompletion)());
107
+ }
108
+ else {
109
+ console.error(chalk_1.default.red('Unknown shell:'), shell);
110
+ console.error('Supported shells: bash, zsh, fish');
111
+ process.exit(1);
112
+ }
113
+ });
114
+ // ─── __completions (hidden — used by completion scripts) ─────────────────────
115
+ program
116
+ .command('__completions', { hidden: true })
117
+ .option('--oas <path>', 'Path or URL to the OpenAPI spec')
118
+ .option('--group <group>', 'Return operation names for this group')
119
+ .option('--flat', 'Return flat (untagged) operation names')
57
120
  .action(async (opts) => {
58
- await run(opts);
121
+ if (!opts.oas)
122
+ return;
123
+ try {
124
+ // Use cache with a generous TTL so completions are fast
125
+ const api = await (0, cache_1.parseOASWithCache)(opts.oas, { ttlMs: 3600000 });
126
+ const structure = (0, schema_analyzer_1.analyzeSchema)(api, '_proxy_');
127
+ if (opts.group) {
128
+ const g = structure.groups.find(gr => gr.name === opts.group);
129
+ if (g)
130
+ process.stdout.write(g.subcommands.map(s => s.name).join('\n') + '\n');
131
+ }
132
+ else if (opts.flat) {
133
+ process.stdout.write(structure.flatCommands.map(s => s.name).join('\n') + '\n');
134
+ }
135
+ else {
136
+ process.stdout.write(structure.groups.map(g => g.name).join('\n') + '\n');
137
+ if (structure.flatCommands.length > 0) {
138
+ process.stdout.write(structure.flatCommands.map(s => s.name).join('\n') + '\n');
139
+ }
140
+ }
141
+ }
142
+ catch {
143
+ // Silently fail — completion should never break the user's shell
144
+ }
59
145
  });
60
146
  program.parseAsync(process.argv).catch((err) => {
61
147
  console.error(chalk_1.default.red('Fatal:'), err.message);
62
148
  process.exit(1);
63
149
  });
64
- async function run(opts) {
150
+ // ─── helpers ─────────────────────────────────────────────────────────────────
151
+ function collect(val, acc) {
152
+ acc.push(val);
153
+ return acc;
154
+ }
155
+ async function generate(opts) {
65
156
  const outputDir = path.resolve(process.cwd(), opts.output);
66
- // Pre-flight: check output directory
67
157
  if (await fse.pathExists(outputDir)) {
68
158
  if (!opts.overwrite) {
69
159
  console.error(chalk_1.default.red('Error:'), `Output directory already exists: ${outputDir}`);
@@ -72,18 +162,19 @@ async function run(opts) {
72
162
  }
73
163
  await fse.remove(outputDir);
74
164
  }
75
- // Step 1: Parse OAS
76
165
  const parseSpinner = (0, ora_1.default)('Parsing OpenAPI spec...').start();
77
166
  let api;
78
167
  try {
79
- api = await (0, oas_parser_1.parseOAS)(opts.oas);
168
+ api = await (0, cache_1.parseOASWithCache)(opts.oas, {
169
+ noCache: opts.cache === false,
170
+ ttlMs: opts.cacheTtl * 1000,
171
+ });
80
172
  parseSpinner.succeed(chalk_1.default.green(`Parsed: ${api.info.title} v${api.info.version}`));
81
173
  }
82
174
  catch (err) {
83
175
  parseSpinner.fail('Failed to parse OpenAPI spec');
84
176
  throw err;
85
177
  }
86
- // Step 2: Analyze schema
87
178
  const analyzeSpinner = (0, ora_1.default)('Analyzing schema...').start();
88
179
  const structure = (0, schema_analyzer_1.analyzeSchema)(api, opts.name);
89
180
  const groupCount = structure.groups.length;
@@ -93,7 +184,6 @@ async function run(opts) {
93
184
  flatCount > 0 ? `${flatCount} flat command(s)` : '',
94
185
  ].filter(Boolean).join(', ');
95
186
  analyzeSpinner.succeed(chalk_1.default.green(`Found ${summary}`));
96
- // Print any naming warnings collected during analysis
97
187
  if (structure.warnings.length > 0) {
98
188
  console.log('');
99
189
  console.log(chalk_1.default.yellow(' ⚠ 规范性警告 (建议修复 OpenAPI 定义):'));
@@ -102,7 +192,6 @@ async function run(opts) {
102
192
  }
103
193
  console.log('');
104
194
  }
105
- // Step 3: Generate project files
106
195
  const genSpinner = (0, ora_1.default)('Generating project files...').start();
107
196
  let files;
108
197
  try {
@@ -113,13 +202,11 @@ async function run(opts) {
113
202
  genSpinner.fail('Failed to generate project files');
114
203
  throw err;
115
204
  }
116
- // Step 4: Write files to output directory
117
205
  const writeSpinner = (0, ora_1.default)(`Writing to ${outputDir}...`).start();
118
206
  for (const file of files) {
119
207
  const dest = path.join(outputDir, file.relativePath);
120
208
  await fse.outputFile(dest, file.content, 'utf-8');
121
209
  }
122
- // Make the bin file executable
123
210
  const binPath = path.join(outputDir, 'bin', opts.name);
124
211
  if (await fse.pathExists(binPath)) {
125
212
  await fse.chmod(binPath, 0o755);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export interface RuntimeAuth {
2
+ bearer?: string;
3
+ apiKey?: string;
4
+ apiKeyHeader?: string;
5
+ basic?: string;
6
+ extraHeaders?: Record<string, string>;
7
+ }
8
+ export interface RuntimeClientOptions {
9
+ /** Request timeout in milliseconds. Default: 30 000 ms. */
10
+ timeout?: number;
11
+ /** Maximum number of retry attempts for retryable errors. Default: 3. */
12
+ maxRetries?: number;
13
+ }
14
+ export interface RequestOptions {
15
+ method: string;
16
+ path: string;
17
+ pathParams: Record<string, string>;
18
+ queryParams: Record<string, string>;
19
+ body?: unknown;
20
+ verbose?: boolean;
21
+ allPages?: boolean;
22
+ }
23
+ export declare function createRuntimeClient(baseURL: string, auth: RuntimeAuth, options?: RuntimeClientOptions): {
24
+ request({ method, path, pathParams, queryParams, body, verbose, allPages, }: RequestOptions): Promise<unknown>;
25
+ requestStream({ method, path, pathParams, queryParams, body, verbose, }: RequestOptions): AsyncGenerator<string, void, unknown>;
26
+ };
27
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/runner/http-client.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAqED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,oBAAyB;iFAgB7B,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;6EAgDjC,cAAc,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;EAuC5D"}