@tachui/cli 0.8.1-alpha → 0.8.8

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.
Files changed (75) hide show
  1. package/README.md +37 -412
  2. package/bin/tacho.js +59 -7
  3. package/dist/commands/analyze-imports.d.ts +18 -0
  4. package/dist/commands/analyze-imports.d.ts.map +1 -0
  5. package/dist/commands/analyze-imports.js +152 -0
  6. package/dist/commands/analyze-imports.js.map +1 -0
  7. package/dist/commands/analyze.js +1 -1
  8. package/dist/commands/analyze.js.map +1 -1
  9. package/dist/commands/dev.js +3 -3
  10. package/dist/commands/dev.js.map +1 -1
  11. package/dist/commands/generate.d.ts +1 -1
  12. package/dist/commands/generate.d.ts.map +1 -1
  13. package/dist/commands/generate.js +1 -22
  14. package/dist/commands/generate.js.map +1 -1
  15. package/dist/commands/init.d.ts +10 -1
  16. package/dist/commands/init.d.ts.map +1 -1
  17. package/dist/commands/init.js +170 -680
  18. package/dist/commands/init.js.map +1 -1
  19. package/dist/commands/migrate/remove-modifier-trigger.d.ts +3 -0
  20. package/dist/commands/migrate/remove-modifier-trigger.d.ts.map +1 -0
  21. package/dist/commands/migrate/remove-modifier-trigger.js +103 -0
  22. package/dist/commands/migrate/remove-modifier-trigger.js.map +1 -0
  23. package/dist/commands/migrate.d.ts.map +1 -1
  24. package/dist/commands/migrate.js +8 -6
  25. package/dist/commands/migrate.js.map +1 -1
  26. package/dist/commands/modifier-docs.d.ts +24 -0
  27. package/dist/commands/modifier-docs.d.ts.map +1 -0
  28. package/dist/commands/modifier-docs.js +375 -0
  29. package/dist/commands/modifier-docs.js.map +1 -0
  30. package/dist/import-optimizer.d.ts +50 -0
  31. package/dist/import-optimizer.d.ts.map +1 -0
  32. package/dist/import-optimizer.js +227 -0
  33. package/dist/import-optimizer.js.map +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +14 -3
  36. package/dist/index.js.map +1 -1
  37. package/dist/migrations/remove-modifier-trigger.d.ts +7 -0
  38. package/dist/migrations/remove-modifier-trigger.d.ts.map +1 -0
  39. package/dist/migrations/remove-modifier-trigger.js +99 -0
  40. package/dist/migrations/remove-modifier-trigger.js.map +1 -0
  41. package/dist/scaffold/core-version-map.d.ts +2 -0
  42. package/dist/scaffold/core-version-map.d.ts.map +1 -0
  43. package/dist/scaffold/core-version-map.js +130 -0
  44. package/dist/scaffold/core-version-map.js.map +1 -0
  45. package/dist/scaffold/create-project.d.ts +15 -0
  46. package/dist/scaffold/create-project.d.ts.map +1 -0
  47. package/dist/scaffold/create-project.js +84 -0
  48. package/dist/scaffold/create-project.js.map +1 -0
  49. package/dist/scaffold/package-root.d.ts +2 -0
  50. package/dist/scaffold/package-root.d.ts.map +1 -0
  51. package/dist/scaffold/package-root.js +34 -0
  52. package/dist/scaffold/package-root.js.map +1 -0
  53. package/dist/scaffold/templates.d.ts +11 -0
  54. package/dist/scaffold/templates.d.ts.map +1 -0
  55. package/dist/scaffold/templates.js +26 -0
  56. package/dist/scaffold/templates.js.map +1 -0
  57. package/dist/scaffold/validators.d.ts +2 -0
  58. package/dist/scaffold/validators.d.ts.map +1 -0
  59. package/dist/scaffold/validators.js +32 -0
  60. package/dist/scaffold/validators.js.map +1 -0
  61. package/package.json +7 -3
  62. package/templates/advanced/README.md.template +23 -0
  63. package/templates/advanced/index.html.template +23 -0
  64. package/templates/advanced/package.json.template +20 -0
  65. package/templates/advanced/src/App.ts.template +54 -0
  66. package/templates/advanced/src/main.ts.template +4 -0
  67. package/templates/advanced/tsconfig.json.template +14 -0
  68. package/templates/advanced/vite.config.ts.template +11 -0
  69. package/templates/basic/README.md.template +17 -0
  70. package/templates/basic/index.html.template +22 -0
  71. package/templates/basic/package.json.template +20 -0
  72. package/templates/basic/src/App.ts.template +35 -0
  73. package/templates/basic/src/main.ts.template +4 -0
  74. package/templates/basic/tsconfig.json.template +14 -0
  75. package/templates/basic/vite.config.ts.template +11 -0
@@ -0,0 +1,375 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * TachUI CLI - Modifier Documentation Command
4
+ *
5
+ * Provides comprehensive documentation and insights for all modifiers across plugins
6
+ */
7
+ import { Command } from 'commander';
8
+ import { modifierParameterRegistry, } from '@tachui/devtools';
9
+ import chalk from 'chalk';
10
+ import Table from 'cli-table3';
11
+ import { createRequire } from 'node:module';
12
+ import { dirname, join } from 'node:path';
13
+ import { readFile } from 'node:fs/promises';
14
+ const program = new Command();
15
+ const require = createRequire(import.meta.url);
16
+ program
17
+ .name('tachui-modifier-docs')
18
+ .description('Comprehensive documentation for TachUI modifiers')
19
+ .version('1.0.0');
20
+ program
21
+ .command('list')
22
+ .description('List all available modifiers')
23
+ .option('-c, --category <category>', 'Filter by category (layout, appearance, interaction, etc.)')
24
+ .option('-p, --plugin <plugin>', 'Filter by plugin (@tachui/core, @tachui/modifiers, etc.)')
25
+ .option('-s, --search <query>', 'Search modifiers by name or description')
26
+ .option('-f, --format <format>', 'Output format', 'table')
27
+ .action(async (options) => {
28
+ await listModifiers(options);
29
+ });
30
+ program
31
+ .command('show <modifierName>')
32
+ .description('Show detailed information for a specific modifier')
33
+ .option('-f, --format <format>', 'Output format', 'markdown')
34
+ .action(async (modifierName, options) => {
35
+ await showModifierDetails(modifierName, options);
36
+ });
37
+ program
38
+ .command('generate')
39
+ .description('Generate complete modifier documentation')
40
+ .option('-o, --output <file>', 'Output file path', 'modifier-docs.md')
41
+ .option('-f, --format <format>', 'Output format', 'markdown')
42
+ .action(async (options) => {
43
+ await generateFullDocumentation(options);
44
+ });
45
+ program
46
+ .command('validate <modifierName>')
47
+ .description('Validate modifier parameters')
48
+ .argument('<parameters>', 'Parameters in JSON format')
49
+ .action(async (modifierName, parameters) => {
50
+ await validateModifierParameters(modifierName, parameters);
51
+ });
52
+ program
53
+ .command('cheat-sheet')
54
+ .description('Display a quick reference cheat sheet')
55
+ .action(async () => {
56
+ await showCheatSheet();
57
+ });
58
+ program
59
+ .command('conflicts')
60
+ .description('Show modifier registration conflicts from the latest type generation snapshot')
61
+ .option('-f, --format <format>', 'Output format', 'table')
62
+ .action(async (options) => {
63
+ await showModifierConflicts(options);
64
+ });
65
+ async function listModifiers(options) {
66
+ let modifiers = modifierParameterRegistry.getAllModifiers();
67
+ // Apply filters
68
+ if (options.category) {
69
+ modifiers = modifiers.filter((m) => m.category === options.category);
70
+ }
71
+ if (options.plugin) {
72
+ modifiers = modifiers.filter((m) => m.plugin === options.plugin);
73
+ }
74
+ if (options.search) {
75
+ modifiers = modifierParameterRegistry.searchModifiers(options.search);
76
+ }
77
+ if (modifiers.length === 0) {
78
+ console.log(chalk.yellow('No modifiers found matching your criteria'));
79
+ return;
80
+ }
81
+ switch (options.format) {
82
+ case 'json':
83
+ console.log(JSON.stringify(modifiers, null, 2));
84
+ break;
85
+ case 'markdown':
86
+ console.log(generateMarkdownList(modifiers));
87
+ break;
88
+ case 'table':
89
+ default:
90
+ displayModifiersTable(modifiers);
91
+ break;
92
+ }
93
+ }
94
+ function displayModifiersTable(modifiers) {
95
+ const table = new Table({
96
+ head: [
97
+ chalk.blue('Modifier'),
98
+ chalk.blue('Plugin'),
99
+ chalk.blue('Category'),
100
+ chalk.blue('Parameters'),
101
+ chalk.blue('Bundle Size'),
102
+ chalk.blue('SwiftUI'),
103
+ ],
104
+ colWidths: [15, 20, 15, 25, 12, 20],
105
+ });
106
+ for (const modifier of modifiers) {
107
+ const paramCount = modifier.parameters.length;
108
+ const paramText = paramCount === 0
109
+ ? 'none'
110
+ : paramCount === 1
111
+ ? '1 param'
112
+ : `${paramCount} params`;
113
+ table.push([
114
+ chalk.cyan(modifier.name),
115
+ modifier.plugin,
116
+ modifier.category,
117
+ paramText,
118
+ modifier.bundleSize,
119
+ modifier.swiftUIEquivalent || 'N/A',
120
+ ]);
121
+ }
122
+ console.log(table.toString());
123
+ console.log(chalk.green(`\nFound ${modifiers.length} modifiers`));
124
+ }
125
+ function generateMarkdownList(modifiers) {
126
+ let markdown = `# TachUI Modifiers\n\n`;
127
+ const groupedByCategory = modifiers.reduce((acc, mod) => {
128
+ if (!acc[mod.category])
129
+ acc[mod.category] = [];
130
+ acc[mod.category].push(mod);
131
+ return acc;
132
+ }, {});
133
+ for (const [category, mods] of Object.entries(groupedByCategory)) {
134
+ markdown += `## ${category.charAt(0).toUpperCase() + category.slice(1)}\n\n`;
135
+ for (const mod of mods) {
136
+ markdown += `- **${mod.name}** (${mod.plugin}) - ${mod.description}\n`;
137
+ }
138
+ markdown += '\n';
139
+ }
140
+ return markdown;
141
+ }
142
+ async function showModifierDetails(modifierName, options) {
143
+ const modifier = modifierParameterRegistry.getModifier(modifierName);
144
+ if (!modifier) {
145
+ console.error(chalk.red(`❌ Modifier '${modifierName}' not found`));
146
+ console.log(chalk.yellow('💡 Use `tachui modifier-docs list` to see available modifiers'));
147
+ return;
148
+ }
149
+ switch (options.format) {
150
+ case 'json':
151
+ console.log(JSON.stringify(modifier, null, 2));
152
+ break;
153
+ case 'markdown':
154
+ default:
155
+ displayModifierDetails(modifier);
156
+ break;
157
+ }
158
+ }
159
+ function displayModifierDetails(modifier) {
160
+ console.log(chalk.blue.bold(`\n.${modifier.name}()\n`));
161
+ console.log(modifier.description);
162
+ console.log('');
163
+ // Metadata
164
+ console.log(chalk.gray('Plugin:'), modifier.plugin);
165
+ console.log(chalk.gray('Category:'), modifier.category);
166
+ console.log(chalk.gray('Bundle Size:'), modifier.bundleSize);
167
+ if (modifier.swiftUIEquivalent) {
168
+ console.log(chalk.gray('SwiftUI:'), modifier.swiftUIEquivalent);
169
+ }
170
+ console.log('');
171
+ // Parameters
172
+ if (modifier.parameters.length > 0) {
173
+ console.log(chalk.yellow.bold('Parameters:\n'));
174
+ for (const param of modifier.parameters) {
175
+ const required = param.required
176
+ ? chalk.red('required')
177
+ : chalk.gray('optional');
178
+ const defaultVal = param.defaultValue !== undefined
179
+ ? chalk.gray(` (default: ${JSON.stringify(param.defaultValue)})`)
180
+ : '';
181
+ console.log(`${chalk.cyan(param.name)}: ${chalk.green(param.type)} ${required}${defaultVal}`);
182
+ console.log(` ${param.description}`);
183
+ if (param.examples?.length > 0) {
184
+ console.log(` ${chalk.gray('Examples:')} ${param.examples.join(', ')}`);
185
+ }
186
+ if (param.validation) {
187
+ const validation = param.validation;
188
+ const validationRules = [];
189
+ if (validation.min !== undefined)
190
+ validationRules.push(`min: ${validation.min}`);
191
+ if (validation.max !== undefined)
192
+ validationRules.push(`max: ${validation.max}`);
193
+ if (validation.enum)
194
+ validationRules.push(`values: ${validation.enum.join('|')}`);
195
+ if (validation.pattern)
196
+ validationRules.push(`pattern: ${validation.pattern}`);
197
+ if (validationRules.length > 0) {
198
+ console.log(` ${chalk.gray('Validation:')} ${validationRules.join(', ')}`);
199
+ }
200
+ }
201
+ console.log('');
202
+ }
203
+ }
204
+ else {
205
+ console.log(chalk.gray('No parameters required\n'));
206
+ }
207
+ // Usage examples
208
+ console.log(chalk.yellow.bold('Usage Examples:\n'));
209
+ console.log(chalk.gray('Basic:'));
210
+ for (const example of modifier.usage.basic) {
211
+ console.log(` ${chalk.cyan(`component.${example}`)}`);
212
+ }
213
+ if (modifier.usage.advanced?.length > 0) {
214
+ console.log('');
215
+ console.log(chalk.gray('Advanced:'));
216
+ for (const example of modifier.usage.advanced) {
217
+ console.log(` ${chalk.cyan(`component.${example}`)}`);
218
+ }
219
+ }
220
+ // Related modifiers
221
+ if (modifier.relatedModifiers?.length > 0) {
222
+ console.log('');
223
+ console.log(chalk.yellow.bold('Related Modifiers:'));
224
+ console.log(modifier.relatedModifiers.map((m) => chalk.cyan(m)).join(', '));
225
+ }
226
+ }
227
+ async function generateFullDocumentation(options) {
228
+ console.log(chalk.blue('🔄 Generating comprehensive modifier documentation...'));
229
+ const documentation = modifierParameterRegistry.generateDocumentation();
230
+ if (options.output) {
231
+ const { writeFileSync } = await import('fs-extra');
232
+ writeFileSync(options.output, documentation);
233
+ console.log(chalk.green(`✅ Documentation saved to: ${options.output}`));
234
+ }
235
+ else {
236
+ console.log(documentation);
237
+ }
238
+ }
239
+ async function validateModifierParameters(modifierName, parametersJson) {
240
+ try {
241
+ const parameters = JSON.parse(parametersJson);
242
+ const validation = modifierParameterRegistry.validateParameters(modifierName, parameters);
243
+ if (validation.valid) {
244
+ console.log(chalk.green(`✅ Parameters for '${modifierName}' are valid`));
245
+ }
246
+ else {
247
+ console.log(chalk.red(`❌ Validation failed for '${modifierName}':`));
248
+ for (const error of validation.errors) {
249
+ console.log(chalk.red(` • ${error}`));
250
+ }
251
+ }
252
+ }
253
+ catch (error) {
254
+ console.error(chalk.red('❌ Invalid JSON parameters:', error));
255
+ }
256
+ }
257
+ async function showCheatSheet() {
258
+ console.log(chalk.blue.bold('\n🚀 TachUI Modifier Quick Reference\n'));
259
+ const categories = [
260
+ {
261
+ name: 'Layout',
262
+ modifiers: ['padding', 'frame', 'fixedSize', 'aspectRatio'],
263
+ color: 'cyan',
264
+ },
265
+ {
266
+ name: 'Appearance',
267
+ modifiers: ['backgroundColor', 'shadow', 'cornerRadius', 'opacity'],
268
+ color: 'magenta',
269
+ },
270
+ {
271
+ name: 'Interaction',
272
+ modifiers: ['hover', 'onTap', 'disabled', 'gesture'],
273
+ color: 'yellow',
274
+ },
275
+ {
276
+ name: 'Animation',
277
+ modifiers: ['transition', 'scale', 'rotate', 'animation'],
278
+ color: 'green',
279
+ },
280
+ {
281
+ name: 'Responsive',
282
+ modifiers: ['responsive', 'breakpoint'],
283
+ color: 'blue',
284
+ },
285
+ ];
286
+ for (const category of categories) {
287
+ console.log(chalk.bold(`${category.name} Modifiers:`));
288
+ for (const modifierName of category.modifiers) {
289
+ const modifier = modifierParameterRegistry.getModifier(modifierName);
290
+ if (modifier) {
291
+ const example = modifier.usage.basic[0] || `${modifierName}()`;
292
+ console.log(` ${chalk.cyan(`.${modifierName}()`)} - ${modifier.description}`);
293
+ console.log(` ${chalk.gray(`component.${example}`)}`);
294
+ }
295
+ }
296
+ console.log('');
297
+ }
298
+ console.log(chalk.yellow.bold('💡 Pro Tips:'));
299
+ console.log(' • Chain modifiers: .padding(16).backgroundColor("#f0f0f0").cornerRadius(8)');
300
+ console.log(' • Use responsive: .responsive({ sm: padding(8), lg: padding(24) })');
301
+ console.log(' • Import specifically: import { padding } from "@tachui/modifiers/layout"');
302
+ console.log(' • Check bundle sizes with: tachui modifier-docs list');
303
+ console.log('');
304
+ }
305
+ async function showModifierConflicts(options) {
306
+ const snapshot = await loadModifierSnapshot();
307
+ if (!snapshot) {
308
+ console.error(chalk.red('❌ No modifier metadata snapshot found. Run `pnpm --filter @tachui/core generate-modifier-types` first.'));
309
+ return;
310
+ }
311
+ if (options.format === 'json') {
312
+ console.log(JSON.stringify(snapshot.conflicts, null, 2));
313
+ return;
314
+ }
315
+ if (snapshot.conflicts.length === 0) {
316
+ console.log(chalk.green('✅ No modifier conflicts detected.'));
317
+ console.log(chalk.gray(`Total modifiers analysed: ${snapshot.totalModifiers} (generated ${snapshot.generatedAt})`));
318
+ return;
319
+ }
320
+ const table = new Table({
321
+ head: [
322
+ chalk.blue('Modifier'),
323
+ chalk.blue('Plugins'),
324
+ chalk.blue('Categories'),
325
+ ],
326
+ colWidths: [20, 35, 20],
327
+ wordWrap: true,
328
+ });
329
+ for (const conflict of snapshot.conflicts) {
330
+ const plugins = conflict.entries
331
+ .map((entry) => `${entry.plugin} (priority ${entry.priority})`)
332
+ .join('\n');
333
+ const categories = Array.from(new Set(conflict.entries.map((entry) => entry.category))).join(', ');
334
+ table.push([
335
+ chalk.cyan(conflict.name),
336
+ plugins,
337
+ categories || 'n/a',
338
+ ]);
339
+ }
340
+ console.log(chalk.yellow(`⚠️ Detected ${snapshot.conflicts.length} modifier conflict${snapshot.conflicts.length === 1 ? '' : 's'}. Review the plugins involved below:\n`));
341
+ console.log(table.toString());
342
+ console.log(chalk.gray(`Snapshot generated at ${snapshot.generatedAt}. Re-run the generator after resolving conflicts.`));
343
+ }
344
+ async function loadModifierSnapshot() {
345
+ try {
346
+ const pkgPath = require.resolve('@tachui/core/package.json');
347
+ const coreDir = dirname(pkgPath);
348
+ const candidates = [
349
+ join(coreDir, 'dist/types/modifier-metadata.snapshot.json'),
350
+ join(coreDir, 'src/types/modifier-metadata.snapshot.json'),
351
+ ];
352
+ for (const path of candidates) {
353
+ try {
354
+ const data = await readFile(path, 'utf8');
355
+ return JSON.parse(data);
356
+ }
357
+ catch (error) {
358
+ if (error?.code !== 'ENOENT') {
359
+ throw error;
360
+ }
361
+ }
362
+ }
363
+ }
364
+ catch {
365
+ return null;
366
+ }
367
+ return null;
368
+ }
369
+ // Export functions for programmatic use
370
+ export { listModifiers, showModifierDetails, generateFullDocumentation, validateModifierParameters, showCheatSheet, showModifierConflicts, };
371
+ // CLI execution
372
+ if (import.meta.url === `file://${process.argv[1]}`) {
373
+ program.parse();
374
+ }
375
+ //# sourceMappingURL=modifier-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modifier-docs.js","sourceRoot":"","sources":["../../src/commands/modifier-docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Auto-sensing Build-Time Import Optimizer
3
+ *
4
+ * Analyzes usage patterns and suggests optimal import paths for bundle size
5
+ */
6
+ interface ImportAnalysis {
7
+ file: string;
8
+ imports: {
9
+ specifier: string;
10
+ source: string;
11
+ suggestedSource?: string;
12
+ bundleImpact: 'minimal' | 'moderate' | 'significant';
13
+ reasoning: string;
14
+ }[];
15
+ }
16
+ interface ImportOptimization {
17
+ from: string;
18
+ to: string;
19
+ savings: string;
20
+ risk: 'low' | 'medium' | 'high';
21
+ }
22
+ export declare class ImportOptimizer {
23
+ private packageMap;
24
+ constructor();
25
+ private buildPackageMap;
26
+ /**
27
+ * Analyze imports in a TypeScript/JavaScript file
28
+ */
29
+ analyzeFile(filePath: string): ImportAnalysis;
30
+ /**
31
+ * Analyze entire project and suggest optimizations
32
+ */
33
+ analyzeProject(projectRoot: string): Promise<ImportOptimization[]>;
34
+ private extractNamedImports;
35
+ private findOptimalImport;
36
+ private calculateBundleImpact;
37
+ private calculateSavings;
38
+ private assessRisk;
39
+ private dedupeOptimizations;
40
+ /**
41
+ * Generate import optimization report
42
+ */
43
+ generateReport(optimizations: ImportOptimization[]): string;
44
+ }
45
+ /**
46
+ * CLI command for running import optimization
47
+ */
48
+ export declare function runImportOptimizer(projectRoot?: string): Promise<void>;
49
+ export {};
50
+ //# sourceMappingURL=import-optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-optimizer.d.ts","sourceRoot":"","sources":["../src/import-optimizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,YAAY,EAAE,SAAS,GAAG,UAAU,GAAG,aAAa,CAAA;QACpD,SAAS,EAAE,MAAM,CAAA;KAClB,EAAE,CAAA;CACJ;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;CAChC;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAOf;;IAMH,OAAO,CAAC,eAAe;IAuCvB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAwC7C;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA0BxE,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,cAAc,CAAC,aAAa,EAAE,kBAAkB,EAAE,GAAG,MAAM;CAyC5D;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,GAAE,MAAsB,iBAY3E"}