mycontext-cli 4.2.16 → 4.2.17
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/README.md +38 -37
- package/dist/cli.js +15 -44
- package/dist/cli.js.map +1 -1
- package/dist/commands/generate-components.d.ts.map +1 -1
- package/dist/commands/generate-components.js +21 -18
- package/dist/commands/generate-components.js.map +1 -1
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +242 -158
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init-interactive.d.ts.map +1 -1
- package/dist/commands/init-interactive.js +30 -2
- package/dist/commands/init-interactive.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +194 -38
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/setup-complete.d.ts.map +1 -1
- package/dist/commands/setup-complete.js +4 -6
- package/dist/commands/setup-complete.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +10 -58
- package/dist/commands/workflow.js.map +1 -1
- package/dist/core/ai/AICore.d.ts +4 -0
- package/dist/core/ai/AICore.d.ts.map +1 -1
- package/dist/core/ai/AICore.js +6 -0
- package/dist/core/ai/AICore.js.map +1 -1
- package/dist/tui/DashboardMode.d.ts +14 -0
- package/dist/tui/DashboardMode.d.ts.map +1 -0
- package/dist/tui/DashboardMode.js +75 -0
- package/dist/tui/DashboardMode.js.map +1 -0
- package/dist/tui/TUIClient.d.ts +9 -0
- package/dist/tui/TUIClient.d.ts.map +1 -1
- package/dist/tui/TUIClient.js +63 -0
- package/dist/tui/TUIClient.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/living-context.d.ts +1 -0
- package/dist/types/living-context.d.ts.map +1 -1
- package/dist/types/tui.d.ts +3 -1
- package/dist/types/tui.d.ts.map +1 -1
- package/dist/utils/contextEnricher.d.ts +2 -1
- package/dist/utils/contextEnricher.d.ts.map +1 -1
- package/dist/utils/contextEnricher.js +138 -1
- package/dist/utils/contextEnricher.js.map +1 -1
- package/dist/utils/contextRenderer.d.ts +3 -0
- package/dist/utils/contextRenderer.d.ts.map +1 -1
- package/dist/utils/contextRenderer.js +65 -0
- package/dist/utils/contextRenderer.js.map +1 -1
- package/dist/utils/fileSystem.d.ts.map +1 -1
- package/dist/utils/fileSystem.js +32 -1
- package/dist/utils/fileSystem.js.map +1 -1
- package/dist/utils/geminiClient.d.ts.map +1 -1
- package/dist/utils/geminiClient.js +10 -5
- package/dist/utils/geminiClient.js.map +1 -1
- package/dist/utils/githubModelsClient.d.ts.map +1 -1
- package/dist/utils/githubModelsClient.js +4 -1
- package/dist/utils/githubModelsClient.js.map +1 -1
- package/dist/utils/openRouterClient.d.ts.map +1 -1
- package/dist/utils/openRouterClient.js +1 -0
- package/dist/utils/openRouterClient.js.map +1 -1
- package/dist/utils/unifiedDesignContextLoader.d.ts.map +1 -1
- package/dist/utils/unifiedDesignContextLoader.js +14 -0
- package/dist/utils/unifiedDesignContextLoader.js.map +1 -1
- package/package.json +24 -21
- package/dist/commands/assemble-features.d.ts +0 -40
- package/dist/commands/assemble-features.d.ts.map +0 -1
- package/dist/commands/assemble-features.js +0 -383
- package/dist/commands/assemble-features.js.map +0 -1
- package/dist/commands/compile-prd.d.ts +0 -18
- package/dist/commands/compile-prd.d.ts.map +0 -1
- package/dist/commands/compile-prd.js +0 -253
- package/dist/commands/compile-prd.js.map +0 -1
- package/dist/commands/generate-context-files.d.ts +0 -44
- package/dist/commands/generate-context-files.d.ts.map +0 -1
- package/dist/commands/generate-context-files.js +0 -871
- package/dist/commands/generate-context-files.js.map +0 -1
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.CompilePRDCommand = void 0;
|
|
40
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
-
const fs = __importStar(require("fs-extra"));
|
|
42
|
-
const path_1 = __importDefault(require("path"));
|
|
43
|
-
const hybridAIClient_1 = require("../utils/hybridAIClient");
|
|
44
|
-
const spinner_1 = require("../utils/spinner");
|
|
45
|
-
const fileNames_1 = require("../constants/fileNames");
|
|
46
|
-
const nextStepsSuggester_1 = require("../utils/nextStepsSuggester");
|
|
47
|
-
class CompilePRDCommand {
|
|
48
|
-
constructor() {
|
|
49
|
-
this.aiClient = new hybridAIClient_1.HybridAIClient();
|
|
50
|
-
}
|
|
51
|
-
async execute(options) {
|
|
52
|
-
const projectPath = options.projectPath || process.cwd();
|
|
53
|
-
const contextDir = path_1.default.join(projectPath, ".mycontext");
|
|
54
|
-
console.log(chalk_1.default.blue.bold("🧠 Compiling PRD from User-Centric Context"));
|
|
55
|
-
console.log(chalk_1.default.gray("Compiling comprehensive PRD from user interaction documentation...\n"));
|
|
56
|
-
// Check if context files exist
|
|
57
|
-
const contextFiles = await this.checkContextFiles(contextDir);
|
|
58
|
-
if (contextFiles.missing.length > 0) {
|
|
59
|
-
console.error(chalk_1.default.red("❌ Missing required user interaction context files:"));
|
|
60
|
-
contextFiles.missing.forEach((file) => console.error(chalk_1.default.gray(` • ${file}`)));
|
|
61
|
-
console.error(chalk_1.default.red("\nPlease run 'mycontext generate-context-files' to create user interaction documentation."));
|
|
62
|
-
console.error(chalk_1.default.gray("💡 Tip: Review and edit the context files first - this is why MyContext works!"));
|
|
63
|
-
console.error(chalk_1.default.gray("Add missing business logic, correct AI mistakes, and clarify requirements.\n"));
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
// Check if PRD already exists
|
|
67
|
-
const prdPath = path_1.default.join(contextDir, fileNames_1.CONTEXT_FILES.PRD);
|
|
68
|
-
if ((await fs.pathExists(prdPath)) && !options.force) {
|
|
69
|
-
console.log(chalk_1.default.yellow(`⚠️ PRD already exists at .mycontext/${fileNames_1.CONTEXT_FILES.PRD}`));
|
|
70
|
-
console.log(chalk_1.default.yellow("Use --force to overwrite existing PRD.\n"));
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
try {
|
|
74
|
-
// Read context files
|
|
75
|
-
const contextData = await this.readContextFiles(contextDir, contextFiles.existing, contextFiles.mapping);
|
|
76
|
-
// Show file mapping if any alternative files were used
|
|
77
|
-
const alternativeMappings = Object.entries(contextFiles.mapping).filter(([expected, actual]) => expected !== actual);
|
|
78
|
-
if (alternativeMappings.length > 0) {
|
|
79
|
-
console.log(chalk_1.default.blue("📁 File Mapping Used:"));
|
|
80
|
-
alternativeMappings.forEach(([expected, actual]) => {
|
|
81
|
-
console.log(chalk_1.default.gray(` ${expected} ← ${actual}`));
|
|
82
|
-
});
|
|
83
|
-
console.log("");
|
|
84
|
-
}
|
|
85
|
-
// Generate PRD
|
|
86
|
-
await this.generatePRD(contextDir, contextData, contextFiles.mapping);
|
|
87
|
-
console.log(chalk_1.default.green.bold("\n✅ PRD Compiled Successfully!"));
|
|
88
|
-
console.log(chalk_1.default.gray("\nGenerated file:"));
|
|
89
|
-
console.log(chalk_1.default.gray(" • 02-prd.md - User-Centric Product Requirements Document"));
|
|
90
|
-
console.log(chalk_1.default.blue.bold("\n🧠 Next Steps (Human-in-the-Loop Workflow):"));
|
|
91
|
-
console.log(chalk_1.default.gray("1. 📖 Review the compiled PRD for accuracy"));
|
|
92
|
-
console.log(chalk_1.default.gray("2. ✏️ Edit PRD to correct any AI misunderstandings"));
|
|
93
|
-
console.log(chalk_1.default.gray("3. 🎯 Add missing business requirements"));
|
|
94
|
-
console.log(chalk_1.default.gray("4. 🔍 Clarify ambiguous areas"));
|
|
95
|
-
console.log(chalk_1.default.gray("5. 💡 This step ensures perfect components later!"));
|
|
96
|
-
console.log(chalk_1.default.gray("6. Run 'mycontext generate types' to generate TypeScript types from your corrected PRD"));
|
|
97
|
-
console.log(chalk_1.default.gray("7. Run 'mycontext generate brand-kit' to create brand guidelines"));
|
|
98
|
-
console.log(chalk_1.default.gray("8. Run 'mycontext generate components-list' to plan components"));
|
|
99
|
-
console.log(chalk_1.default.gray("9. Run 'mycontext generate-components all --with-tests' to generate components"));
|
|
100
|
-
}
|
|
101
|
-
catch (error) {
|
|
102
|
-
console.error(chalk_1.default.red("❌ PRD compilation failed:"), error);
|
|
103
|
-
// Don't re-throw - let the CLI handle it
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
async checkContextFiles(contextDir) {
|
|
107
|
-
const existing = [];
|
|
108
|
-
const missing = [];
|
|
109
|
-
const mapping = {};
|
|
110
|
-
// Use standardized required files
|
|
111
|
-
const requiredFiles = fileNames_1.REQUIRED_FILES.COMPILE_PRD;
|
|
112
|
-
// Check for each required file and its variants
|
|
113
|
-
for (const canonicalFile of requiredFiles) {
|
|
114
|
-
const variants = (0, fileNames_1.getAllFileNameVariants)(canonicalFile);
|
|
115
|
-
let found = false;
|
|
116
|
-
for (const variant of variants) {
|
|
117
|
-
if (await fs.pathExists(path_1.default.join(contextDir, variant))) {
|
|
118
|
-
existing.push(canonicalFile);
|
|
119
|
-
mapping[canonicalFile] = variant;
|
|
120
|
-
found = true;
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
if (!found) {
|
|
125
|
-
missing.push(canonicalFile);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return { existing, missing, mapping };
|
|
129
|
-
}
|
|
130
|
-
async readContextFiles(contextDir, files, mapping) {
|
|
131
|
-
const contextData = {};
|
|
132
|
-
for (const file of files) {
|
|
133
|
-
const actualFile = mapping[file] || file;
|
|
134
|
-
const filePath = path_1.default.join(contextDir, actualFile);
|
|
135
|
-
const content = await fs.readFile(filePath, "utf-8");
|
|
136
|
-
contextData[file] = content;
|
|
137
|
-
}
|
|
138
|
-
return contextData;
|
|
139
|
-
}
|
|
140
|
-
async generatePRD(contextDir, contextData, mapping) {
|
|
141
|
-
const spinner = new spinner_1.EnhancedSpinner("Compiling PRD from context files...");
|
|
142
|
-
spinner.start();
|
|
143
|
-
try {
|
|
144
|
-
const prompt = this.buildPRDPrompt(contextData);
|
|
145
|
-
const response = await this.aiClient.generateText(prompt, {
|
|
146
|
-
temperature: 0.7,
|
|
147
|
-
maxTokens: 4000,
|
|
148
|
-
});
|
|
149
|
-
const content = this.formatPRDContent(response.text, contextData, mapping);
|
|
150
|
-
await fs.writeFile(path_1.default.join(contextDir, fileNames_1.CONTEXT_FILES.PRD), content);
|
|
151
|
-
spinner.succeed("PRD compiled");
|
|
152
|
-
// Show next steps
|
|
153
|
-
const workflowContext = await nextStepsSuggester_1.NextStepsSuggester.getWorkflowContext();
|
|
154
|
-
workflowContext.lastCommand = "compile-prd";
|
|
155
|
-
workflowContext.hasPRD = true;
|
|
156
|
-
const nextSteps = nextStepsSuggester_1.NextStepsSuggester.getNextSteps(workflowContext);
|
|
157
|
-
nextStepsSuggester_1.NextStepsSuggester.displayNextSteps(nextSteps);
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
160
|
-
spinner.fail("PRD compilation failed");
|
|
161
|
-
// Don't re-throw - let the CLI handle it
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
buildPRDPrompt(contextData) {
|
|
165
|
-
const features = contextData["01a-features.md"] || "";
|
|
166
|
-
const userFlows = contextData["01b-user-flows.md"] || "";
|
|
167
|
-
const edgeCases = contextData["01c-edge-cases.md"] || "";
|
|
168
|
-
const technicalSpecs = contextData["01d-technical-specs.md"] || "";
|
|
169
|
-
return `You are a product manager creating a comprehensive Product Requirements Document (PRD) by compiling user-centric context documentation.
|
|
170
|
-
|
|
171
|
-
Create a well-structured PRD that synthesizes the following user interaction documentation:
|
|
172
|
-
|
|
173
|
-
## User Interaction Documentation:
|
|
174
|
-
${features}
|
|
175
|
-
|
|
176
|
-
## User Journey Flows:
|
|
177
|
-
${userFlows}
|
|
178
|
-
|
|
179
|
-
## User Error Scenarios:
|
|
180
|
-
${edgeCases}
|
|
181
|
-
|
|
182
|
-
## User-Centric Technical Implementation:
|
|
183
|
-
${technicalSpecs}
|
|
184
|
-
|
|
185
|
-
Generate a comprehensive PRD that includes:
|
|
186
|
-
|
|
187
|
-
1. **Executive Summary** - High-level project overview and objectives
|
|
188
|
-
2. **Product Overview** - What we're building and why
|
|
189
|
-
3. **Target Users** - User personas and target audience
|
|
190
|
-
4. **Core Features** - Primary functionality organized by priority
|
|
191
|
-
5. **User Stories** - Detailed user stories with acceptance criteria
|
|
192
|
-
6. **User Experience** - Key user flows and interaction patterns
|
|
193
|
-
7. **Technical Requirements** - Architecture, technology stack, and constraints
|
|
194
|
-
8. **Non-Functional Requirements** - Performance, security, accessibility
|
|
195
|
-
9. **Success Metrics** - How we measure success
|
|
196
|
-
10. **Timeline and Milestones** - Development phases and deliverables
|
|
197
|
-
11. **Risks and Mitigation** - Potential issues and solutions
|
|
198
|
-
12. **Dependencies** - External dependencies and integrations
|
|
199
|
-
|
|
200
|
-
Ensure the PRD is:
|
|
201
|
-
- Comprehensive yet concise
|
|
202
|
-
- Well-organized with clear sections
|
|
203
|
-
- Includes specific, measurable requirements
|
|
204
|
-
- Addresses both functional and non-functional needs
|
|
205
|
-
- Provides clear guidance for development teams
|
|
206
|
-
|
|
207
|
-
Format the output as a professional markdown document with clear headings, bullet points, and structured content.`;
|
|
208
|
-
}
|
|
209
|
-
formatPRDContent(response, contextData, mapping) {
|
|
210
|
-
const timestamp = new Date().toISOString();
|
|
211
|
-
const contextFiles = Object.keys(contextData).join(", ");
|
|
212
|
-
return `# Product Requirements Document (PRD)
|
|
213
|
-
|
|
214
|
-
${response}
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
## Document Information
|
|
219
|
-
|
|
220
|
-
- **Generated**: ${timestamp}
|
|
221
|
-
- **Source Context Files**: ${contextFiles}
|
|
222
|
-
- **Generated by**: MyContext CLI - AI-powered component generation platform
|
|
223
|
-
- **Version**: 1.0
|
|
224
|
-
|
|
225
|
-
## Context File References
|
|
226
|
-
|
|
227
|
-
This PRD was compiled from the following context files:
|
|
228
|
-
${Object.keys(contextData)
|
|
229
|
-
.map((file) => {
|
|
230
|
-
const actualFile = mapping[file] || file;
|
|
231
|
-
const description = this.getContextFileDescription(file);
|
|
232
|
-
return actualFile !== file
|
|
233
|
-
? `- \`${file}\` (from \`${actualFile}\`) - ${description}`
|
|
234
|
-
: `- \`${file}\` - ${description}`;
|
|
235
|
-
})
|
|
236
|
-
.join("\n")}
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
*This document serves as the single source of truth for product requirements and should be updated as the project evolves.*
|
|
240
|
-
`;
|
|
241
|
-
}
|
|
242
|
-
getContextFileDescription(filename) {
|
|
243
|
-
const descriptions = {
|
|
244
|
-
"01a-features.md": "User actions and system responses documentation",
|
|
245
|
-
"01b-user-flows.md": "Complete user journey interactions and flows",
|
|
246
|
-
"01c-edge-cases.md": "User error scenarios and recovery documentation",
|
|
247
|
-
"01d-technical-specs.md": "Technical implementation supporting user experience",
|
|
248
|
-
};
|
|
249
|
-
return descriptions[filename] || "User-centric context file";
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
exports.CompilePRDCommand = CompilePRDCommand;
|
|
253
|
-
//# sourceMappingURL=compile-prd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compile-prd.js","sourceRoot":"","sources":["../../src/commands/compile-prd.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
interface ContextFilesOptions {
|
|
2
|
-
description?: string;
|
|
3
|
-
projectPath?: string;
|
|
4
|
-
verbose?: boolean;
|
|
5
|
-
force?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare class GenerateContextFilesCommand {
|
|
8
|
-
private aiClient;
|
|
9
|
-
private spinner;
|
|
10
|
-
private contextValidator;
|
|
11
|
-
constructor();
|
|
12
|
-
execute(options: ContextFilesOptions): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Validate context and detect gaps
|
|
15
|
-
*/
|
|
16
|
-
private validateContext;
|
|
17
|
-
/**
|
|
18
|
-
* Save auto-generated features for review
|
|
19
|
-
*/
|
|
20
|
-
private saveAutoGeneratedFeatures;
|
|
21
|
-
private checkExistingFiles;
|
|
22
|
-
private generateFeaturesFile;
|
|
23
|
-
private generateUserFlowsFile;
|
|
24
|
-
private generateEdgeCasesFile;
|
|
25
|
-
private generateTechnicalSpecsFile;
|
|
26
|
-
private buildFeaturesPrompt;
|
|
27
|
-
private buildUserFlowsPrompt;
|
|
28
|
-
private buildEdgeCasesPrompt;
|
|
29
|
-
private buildTechnicalSpecsPrompt;
|
|
30
|
-
private formatFeaturesContent;
|
|
31
|
-
private formatUserFlowsContent;
|
|
32
|
-
private formatEdgeCasesContent;
|
|
33
|
-
private formatTechnicalSpecsContent;
|
|
34
|
-
/**
|
|
35
|
-
* Get context content for generation - prefer PRD over description
|
|
36
|
-
*/
|
|
37
|
-
private getContextForGeneration;
|
|
38
|
-
/**
|
|
39
|
-
* Check if PRD content is just a template/starter sample
|
|
40
|
-
*/
|
|
41
|
-
private isTemplatePRD;
|
|
42
|
-
}
|
|
43
|
-
export {};
|
|
44
|
-
//# sourceMappingURL=generate-context-files.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-context-files.d.ts","sourceRoot":"","sources":["../../src/commands/generate-context-files.ts"],"names":[],"mappings":"AAeA,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,gBAAgB,CAAmB;;IAQrC,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6I1D;;OAEG;YACW,eAAe;IAY7B;;OAEG;YACW,yBAAyB;YAiBzB,kBAAkB;YAkBlB,oBAAoB;YA6BpB,qBAAqB;YA6BrB,qBAAqB;YA6BrB,0BAA0B;IAgCxC,OAAO,CAAC,mBAAmB;IA4G3B,OAAO,CAAC,oBAAoB;IAyH5B,OAAO,CAAC,oBAAoB;IAsH5B,OAAO,CAAC,yBAAyB;IA6HjC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,2BAA2B;IAWnC;;OAEG;YACW,uBAAuB;IAoGrC;;OAEG;IACH,OAAO,CAAC,aAAa;CA2CtB"}
|