@wundr.io/cli 1.0.12 → 1.0.13
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/LICENSE +21 -0
- package/dist/ai/ai-service.d.ts +152 -0
- package/dist/ai/ai-service.d.ts.map +1 -0
- package/dist/ai/ai-service.js +430 -0
- package/dist/ai/ai-service.js.map +1 -0
- package/dist/ai/claude-client.d.ts +130 -0
- package/dist/ai/claude-client.d.ts.map +1 -0
- package/dist/ai/claude-client.js +340 -0
- package/dist/ai/claude-client.js.map +1 -0
- package/dist/ai/conversation-manager.d.ts +164 -0
- package/dist/ai/conversation-manager.d.ts.map +1 -0
- package/dist/ai/conversation-manager.js +614 -0
- package/dist/ai/conversation-manager.js.map +1 -0
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +8 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/cli.d.ts +36 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +192 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/ai.d.ts +89 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +954 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/alignment.d.ts +78 -0
- package/dist/commands/alignment.d.ts.map +1 -0
- package/dist/commands/alignment.js +817 -0
- package/dist/commands/alignment.js.map +1 -0
- package/dist/commands/analyze-optimized.d.ts +14 -0
- package/dist/commands/analyze-optimized.d.ts.map +1 -0
- package/dist/commands/analyze-optimized.js +609 -0
- package/dist/commands/analyze-optimized.js.map +1 -0
- package/dist/commands/analyze.d.ts +65 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +435 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/batch.d.ts +93 -0
- package/dist/commands/batch.d.ts.map +1 -0
- package/dist/commands/batch.js +854 -0
- package/dist/commands/batch.js.map +1 -0
- package/dist/commands/chat.d.ts +72 -0
- package/dist/commands/chat.d.ts.map +1 -0
- package/dist/commands/chat.js +678 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/claude-init.d.ts +28 -0
- package/dist/commands/claude-init.d.ts.map +1 -0
- package/dist/commands/claude-init.js +591 -0
- package/dist/commands/claude-init.js.map +1 -0
- package/dist/commands/claude-setup.d.ts +119 -0
- package/dist/commands/claude-setup.d.ts.map +1 -0
- package/dist/commands/claude-setup.js +1079 -0
- package/dist/commands/claude-setup.js.map +1 -0
- package/dist/commands/computer-setup.d.ts +8 -0
- package/dist/commands/computer-setup.d.ts.map +1 -0
- package/dist/commands/computer-setup.js +877 -0
- package/dist/commands/computer-setup.js.map +1 -0
- package/dist/commands/create-command.d.ts +7 -0
- package/dist/commands/create-command.d.ts.map +1 -0
- package/dist/commands/create-command.js +158 -0
- package/dist/commands/create-command.js.map +1 -0
- package/dist/commands/create.d.ts +74 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +556 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/dashboard.d.ts +91 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +538 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/govern.d.ts +70 -0
- package/dist/commands/govern.d.ts.map +1 -0
- package/dist/commands/govern.js +481 -0
- package/dist/commands/govern.js.map +1 -0
- package/dist/commands/governance.d.ts +17 -0
- package/dist/commands/governance.d.ts.map +1 -0
- package/dist/commands/governance.js +703 -0
- package/dist/commands/governance.js.map +1 -0
- package/dist/commands/guardian.d.ts +20 -0
- package/dist/commands/guardian.d.ts.map +1 -0
- package/dist/commands/guardian.js +597 -0
- package/dist/commands/guardian.js.map +1 -0
- package/dist/commands/init.d.ts +59 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +650 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/orchestrator.d.ts +7 -0
- package/dist/commands/orchestrator.d.ts.map +1 -0
- package/dist/commands/orchestrator.js +578 -0
- package/dist/commands/orchestrator.js.map +1 -0
- package/dist/commands/performance-optimizer.d.ts +30 -0
- package/dist/commands/performance-optimizer.d.ts.map +1 -0
- package/dist/commands/performance-optimizer.js +650 -0
- package/dist/commands/performance-optimizer.js.map +1 -0
- package/dist/commands/plugins.d.ts +87 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +685 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/rag.d.ts +7 -0
- package/dist/commands/rag.d.ts.map +1 -0
- package/dist/commands/rag.js +751 -0
- package/dist/commands/rag.js.map +1 -0
- package/dist/commands/session.d.ts +41 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +441 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/setup.d.ts +24 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +172 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/test-init.d.ts +9 -0
- package/dist/commands/test-init.d.ts.map +1 -0
- package/dist/commands/test-init.js +222 -0
- package/dist/commands/test-init.js.map +1 -0
- package/dist/commands/test.d.ts +25 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +217 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/watch.d.ts +76 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +613 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/commands/worktree.d.ts +63 -0
- package/dist/commands/worktree.d.ts.map +1 -0
- package/dist/commands/worktree.js +774 -0
- package/dist/commands/worktree.js.map +1 -0
- package/dist/context/context-manager.d.ts +155 -0
- package/dist/context/context-manager.d.ts.map +1 -0
- package/dist/context/context-manager.js +383 -0
- package/dist/context/context-manager.js.map +1 -0
- package/dist/context/index.d.ts +3 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +6 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/session-manager.d.ts +207 -0
- package/dist/context/session-manager.d.ts.map +1 -0
- package/dist/context/session-manager.js +686 -0
- package/dist/context/session-manager.js.map +1 -0
- package/dist/framework/command-interface.d.ts +349 -0
- package/dist/framework/command-interface.d.ts.map +1 -0
- package/dist/framework/command-interface.js +101 -0
- package/dist/framework/command-interface.js.map +1 -0
- package/dist/framework/command-registry.d.ts +173 -0
- package/dist/framework/command-registry.d.ts.map +1 -0
- package/dist/framework/command-registry.js +734 -0
- package/dist/framework/command-registry.js.map +1 -0
- package/dist/framework/completion-exporter.d.ts +79 -0
- package/dist/framework/completion-exporter.d.ts.map +1 -0
- package/dist/framework/completion-exporter.js +259 -0
- package/dist/framework/completion-exporter.js.map +1 -0
- package/dist/framework/debug-logger.d.ts +163 -0
- package/dist/framework/debug-logger.d.ts.map +1 -0
- package/dist/framework/debug-logger.js +373 -0
- package/dist/framework/debug-logger.js.map +1 -0
- package/dist/framework/error-handler.d.ts +196 -0
- package/dist/framework/error-handler.d.ts.map +1 -0
- package/dist/framework/error-handler.js +613 -0
- package/dist/framework/error-handler.js.map +1 -0
- package/dist/framework/help-generator.d.ts +78 -0
- package/dist/framework/help-generator.d.ts.map +1 -0
- package/dist/framework/help-generator.js +414 -0
- package/dist/framework/help-generator.js.map +1 -0
- package/dist/framework/index.d.ts +62 -0
- package/dist/framework/index.d.ts.map +1 -0
- package/dist/framework/index.js +95 -0
- package/dist/framework/index.js.map +1 -0
- package/dist/framework/interactive-repl.d.ts +138 -0
- package/dist/framework/interactive-repl.d.ts.map +1 -0
- package/dist/framework/interactive-repl.js +567 -0
- package/dist/framework/interactive-repl.js.map +1 -0
- package/dist/framework/output-formatter.d.ts +274 -0
- package/dist/framework/output-formatter.d.ts.map +1 -0
- package/dist/framework/output-formatter.js +545 -0
- package/dist/framework/output-formatter.js.map +1 -0
- package/dist/framework/progress-manager.d.ts +192 -0
- package/dist/framework/progress-manager.d.ts.map +1 -0
- package/dist/framework/progress-manager.js +408 -0
- package/dist/framework/progress-manager.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/interactive/interactive-mode.d.ts +76 -0
- package/dist/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/interactive/interactive-mode.js +732 -0
- package/dist/interactive/interactive-mode.js.map +1 -0
- package/dist/nlp/command-mapper.d.ts +174 -0
- package/dist/nlp/command-mapper.d.ts.map +1 -0
- package/dist/nlp/command-mapper.js +624 -0
- package/dist/nlp/command-mapper.js.map +1 -0
- package/dist/nlp/command-parser.d.ts +106 -0
- package/dist/nlp/command-parser.d.ts.map +1 -0
- package/dist/nlp/command-parser.js +417 -0
- package/dist/nlp/command-parser.js.map +1 -0
- package/dist/nlp/index.d.ts +5 -0
- package/dist/nlp/index.d.ts.map +1 -0
- package/dist/nlp/index.js +8 -0
- package/dist/nlp/index.js.map +1 -0
- package/dist/nlp/intent-classifier.d.ts +59 -0
- package/dist/nlp/intent-classifier.d.ts.map +1 -0
- package/dist/nlp/intent-classifier.js +384 -0
- package/dist/nlp/intent-classifier.js.map +1 -0
- package/dist/nlp/intent-parser.d.ts +152 -0
- package/dist/nlp/intent-parser.d.ts.map +1 -0
- package/dist/nlp/intent-parser.js +746 -0
- package/dist/nlp/intent-parser.js.map +1 -0
- package/dist/plugins/plugin-manager.d.ts +121 -0
- package/dist/plugins/plugin-manager.d.ts.map +1 -0
- package/dist/plugins/plugin-manager.js +606 -0
- package/dist/plugins/plugin-manager.js.map +1 -0
- package/dist/types/index.d.ts +224 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/backup-rollback-manager.d.ts +72 -0
- package/dist/utils/backup-rollback-manager.d.ts.map +1 -0
- package/dist/utils/backup-rollback-manager.js +288 -0
- package/dist/utils/backup-rollback-manager.js.map +1 -0
- package/dist/utils/claude-config-installer.d.ts +98 -0
- package/dist/utils/claude-config-installer.d.ts.map +1 -0
- package/dist/utils/claude-config-installer.js +678 -0
- package/dist/utils/claude-config-installer.js.map +1 -0
- package/dist/utils/config-manager.d.ts +73 -0
- package/dist/utils/config-manager.d.ts.map +1 -0
- package/dist/utils/config-manager.js +339 -0
- package/dist/utils/config-manager.js.map +1 -0
- package/dist/utils/error-handler.d.ts +46 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +169 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/logger.d.ts +25 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +105 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +23 -23
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateCommands = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
6
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
|
+
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
8
|
+
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
9
|
+
const error_handler_1 = require("../utils/error-handler");
|
|
10
|
+
const logger_1 = require("../utils/logger");
|
|
11
|
+
// import { projectTemplates } from '@wundr/project-templates';
|
|
12
|
+
// TODO: Fix this import - project-templates package needs to be created
|
|
13
|
+
const projectTemplates = {
|
|
14
|
+
createProject: async (options) => {
|
|
15
|
+
console.log('Creating project with options:', options);
|
|
16
|
+
// TODO: Implement actual project creation logic
|
|
17
|
+
console.log('Project creation not yet implemented');
|
|
18
|
+
},
|
|
19
|
+
createInteractive: async () => {
|
|
20
|
+
console.log('Interactive project creation not yet implemented');
|
|
21
|
+
// TODO: Implement interactive project creation
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Create commands for generating components, services, and templates
|
|
26
|
+
*/
|
|
27
|
+
class CreateCommands {
|
|
28
|
+
program;
|
|
29
|
+
configManager;
|
|
30
|
+
pluginManager;
|
|
31
|
+
constructor(program, configManager, pluginManager) {
|
|
32
|
+
this.program = program;
|
|
33
|
+
this.configManager = configManager;
|
|
34
|
+
this.pluginManager = pluginManager;
|
|
35
|
+
this.registerCommands();
|
|
36
|
+
}
|
|
37
|
+
registerCommands() {
|
|
38
|
+
const createCmd = this.program
|
|
39
|
+
.command('create')
|
|
40
|
+
.description('create new wundr-compliant projects, components, services, and templates');
|
|
41
|
+
// Create new project (full wundr-compliant project)
|
|
42
|
+
createCmd
|
|
43
|
+
.command('project <type> [name]')
|
|
44
|
+
.alias('p')
|
|
45
|
+
.description('create a new wundr-compliant project')
|
|
46
|
+
.option('-f, --framework <framework>', 'framework to use')
|
|
47
|
+
.option('-d, --description <description>', 'project description')
|
|
48
|
+
.option('-a, --author <author>', 'project author')
|
|
49
|
+
.option('--no-git', 'skip git initialization')
|
|
50
|
+
.option('--no-install', 'skip dependency installation')
|
|
51
|
+
.option('--typescript', 'use TypeScript', true)
|
|
52
|
+
.option('--testing', 'include testing setup', true)
|
|
53
|
+
.option('--ci', 'include CI/CD workflows', true)
|
|
54
|
+
.option('--docker', 'include Docker configuration')
|
|
55
|
+
.option('-p, --path <path>', 'path to create project in')
|
|
56
|
+
.action(async (type, name, options) => {
|
|
57
|
+
await this.createProject(type, name, options);
|
|
58
|
+
});
|
|
59
|
+
// Quick project creation commands
|
|
60
|
+
createCmd
|
|
61
|
+
.command('frontend <name>')
|
|
62
|
+
.description('create a frontend application')
|
|
63
|
+
.option('-f, --framework <framework>', 'framework (next|react|vue)', 'next')
|
|
64
|
+
.action(async (name, options) => {
|
|
65
|
+
await projectTemplates.createProject({
|
|
66
|
+
name,
|
|
67
|
+
type: 'frontend',
|
|
68
|
+
framework: options.framework,
|
|
69
|
+
install: true,
|
|
70
|
+
git: true,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
createCmd
|
|
74
|
+
.command('backend <name>')
|
|
75
|
+
.description('create a backend API')
|
|
76
|
+
.option('-f, --framework <framework>', 'framework (fastify|express|nestjs)', 'fastify')
|
|
77
|
+
.action(async (name, options) => {
|
|
78
|
+
await projectTemplates.createProject({
|
|
79
|
+
name,
|
|
80
|
+
type: 'backend',
|
|
81
|
+
framework: options.framework,
|
|
82
|
+
install: true,
|
|
83
|
+
git: true,
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
createCmd
|
|
87
|
+
.command('monorepo <name>')
|
|
88
|
+
.description('create a monorepo platform')
|
|
89
|
+
.action(async (name) => {
|
|
90
|
+
await projectTemplates.createProject({
|
|
91
|
+
name,
|
|
92
|
+
type: 'monorepo',
|
|
93
|
+
framework: 'turborepo',
|
|
94
|
+
install: true,
|
|
95
|
+
git: true,
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
createCmd
|
|
99
|
+
.command('fullstack <name>')
|
|
100
|
+
.description('create a full-stack application')
|
|
101
|
+
.action(async (name) => {
|
|
102
|
+
await projectTemplates.createProject({
|
|
103
|
+
name,
|
|
104
|
+
type: 'monorepo',
|
|
105
|
+
framework: 'turborepo',
|
|
106
|
+
install: true,
|
|
107
|
+
git: true,
|
|
108
|
+
description: 'Full-stack wundr-compliant application',
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
// Create component
|
|
112
|
+
createCmd
|
|
113
|
+
.command('component <name>')
|
|
114
|
+
.description('create a new component')
|
|
115
|
+
.option('--type <type>', 'component type (react, vue, angular)', 'react')
|
|
116
|
+
.option('--template <template>', 'component template')
|
|
117
|
+
.option('--with-tests', 'generate test files')
|
|
118
|
+
.option('--with-stories', 'generate storybook stories')
|
|
119
|
+
.action(async (name, options) => {
|
|
120
|
+
await this.createComponent(name, options);
|
|
121
|
+
});
|
|
122
|
+
// Create service
|
|
123
|
+
createCmd
|
|
124
|
+
.command('service <name>')
|
|
125
|
+
.description('create a new service')
|
|
126
|
+
.option('--type <type>', 'service type (api, worker, microservice)', 'api')
|
|
127
|
+
.option('--framework <framework>', 'framework (express, fastify, nest)', 'express')
|
|
128
|
+
.option('--with-tests', 'generate test files')
|
|
129
|
+
.option('--with-docs', 'generate API documentation')
|
|
130
|
+
.action(async (name, options) => {
|
|
131
|
+
await this.createService(name, options);
|
|
132
|
+
});
|
|
133
|
+
// Create package
|
|
134
|
+
createCmd
|
|
135
|
+
.command('package <name>')
|
|
136
|
+
.description('create a new package in monorepo')
|
|
137
|
+
.option('--type <type>', 'package type (library, app, tool)', 'library')
|
|
138
|
+
.option('--template <template>', 'package template')
|
|
139
|
+
.option('--public', 'make package public')
|
|
140
|
+
.action(async (name, options) => {
|
|
141
|
+
await this.createPackage(name, options);
|
|
142
|
+
});
|
|
143
|
+
// Create template
|
|
144
|
+
createCmd
|
|
145
|
+
.command('template <name>')
|
|
146
|
+
.description('create a new template')
|
|
147
|
+
.option('--from <source>', 'create template from existing code')
|
|
148
|
+
.option('--interactive', 'use interactive template creation')
|
|
149
|
+
.action(async (name, options) => {
|
|
150
|
+
await this.createTemplate(name, options);
|
|
151
|
+
});
|
|
152
|
+
// Create workflow
|
|
153
|
+
createCmd
|
|
154
|
+
.command('workflow <name>')
|
|
155
|
+
.description('create a new workflow or automation')
|
|
156
|
+
.option('--type <type>', 'workflow type (ci, deployment, analysis)', 'ci')
|
|
157
|
+
.option('--platform <platform>', 'platform (github, gitlab, jenkins)', 'github')
|
|
158
|
+
.action(async (name, options) => {
|
|
159
|
+
await this.createWorkflow(name, options);
|
|
160
|
+
});
|
|
161
|
+
// Create config
|
|
162
|
+
createCmd
|
|
163
|
+
.command('config <name>')
|
|
164
|
+
.description('create configuration files')
|
|
165
|
+
.option('--type <type>', 'config type (eslint, prettier, jest, typescript)')
|
|
166
|
+
.option('--preset <preset>', 'configuration preset')
|
|
167
|
+
.action(async (name, options) => {
|
|
168
|
+
await this.createConfig(name, options);
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Create a new wundr-compliant project
|
|
173
|
+
*/
|
|
174
|
+
async createProject(type, name, options) {
|
|
175
|
+
try {
|
|
176
|
+
// If no name provided, launch interactive mode
|
|
177
|
+
if (!name) {
|
|
178
|
+
await projectTemplates.createInteractive();
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
// Validate project type
|
|
182
|
+
const validTypes = [
|
|
183
|
+
'frontend',
|
|
184
|
+
'backend',
|
|
185
|
+
'fullstack',
|
|
186
|
+
'monorepo',
|
|
187
|
+
'library',
|
|
188
|
+
'cli',
|
|
189
|
+
];
|
|
190
|
+
if (!validTypes.includes(type)) {
|
|
191
|
+
logger_1.logger.error(`Invalid project type: ${type}`);
|
|
192
|
+
logger_1.logger.info(`Valid types: ${validTypes.join(', ')}`);
|
|
193
|
+
process.exit(1);
|
|
194
|
+
}
|
|
195
|
+
logger_1.logger.info(`Creating ${type} project: ${chalk_1.default.cyan(name)}`);
|
|
196
|
+
// Create project with options
|
|
197
|
+
await projectTemplates.createProject({
|
|
198
|
+
name,
|
|
199
|
+
type: type,
|
|
200
|
+
framework: options.framework,
|
|
201
|
+
description: options.description,
|
|
202
|
+
author: options.author,
|
|
203
|
+
git: options.git,
|
|
204
|
+
install: options.install,
|
|
205
|
+
typescript: options.typescript,
|
|
206
|
+
testing: options.testing,
|
|
207
|
+
ci: options.ci,
|
|
208
|
+
docker: options.docker,
|
|
209
|
+
path: options.path,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
throw error_handler_1.errorHandler.createError('WUNDR_CREATE_PROJECT_FAILED', 'Failed to create project', { type, name, options }, true);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Create a new component
|
|
218
|
+
*/
|
|
219
|
+
async createComponent(name, options) {
|
|
220
|
+
try {
|
|
221
|
+
logger_1.logger.info(`Creating component: ${chalk_1.default.cyan(name)}`);
|
|
222
|
+
const componentData = await this.gatherComponentData(name, options);
|
|
223
|
+
const outputPath = await this.determineOutputPath('components', name);
|
|
224
|
+
await this.generateFromTemplate('component', componentData, outputPath);
|
|
225
|
+
if (options.withTests) {
|
|
226
|
+
await this.generateFromTemplate('component-test', componentData, outputPath);
|
|
227
|
+
}
|
|
228
|
+
if (options.withStories) {
|
|
229
|
+
await this.generateFromTemplate('component-stories', componentData, outputPath);
|
|
230
|
+
}
|
|
231
|
+
logger_1.logger.success(`Component ${name} created successfully at ${outputPath}`);
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
throw error_handler_1.errorHandler.createError('WUNDR_CREATE_COMPONENT_FAILED', 'Failed to create component', { name, options }, true);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Create a new service
|
|
239
|
+
*/
|
|
240
|
+
async createService(name, options) {
|
|
241
|
+
try {
|
|
242
|
+
logger_1.logger.info(`Creating service: ${chalk_1.default.cyan(name)}`);
|
|
243
|
+
const serviceData = await this.gatherServiceData(name, options);
|
|
244
|
+
const outputPath = await this.determineOutputPath('services', name);
|
|
245
|
+
await this.generateFromTemplate('service', serviceData, outputPath);
|
|
246
|
+
if (options.withTests) {
|
|
247
|
+
await this.generateFromTemplate('service-test', serviceData, outputPath);
|
|
248
|
+
}
|
|
249
|
+
if (options.withDocs) {
|
|
250
|
+
await this.generateApiDocs(serviceData, outputPath);
|
|
251
|
+
}
|
|
252
|
+
logger_1.logger.success(`Service ${name} created successfully at ${outputPath}`);
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
throw error_handler_1.errorHandler.createError('WUNDR_CREATE_SERVICE_FAILED', 'Failed to create service', { name, options }, true);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Create a new package in monorepo
|
|
260
|
+
*/
|
|
261
|
+
async createPackage(name, options) {
|
|
262
|
+
try {
|
|
263
|
+
logger_1.logger.info(`Creating package: ${chalk_1.default.cyan(name)}`);
|
|
264
|
+
const packageData = await this.gatherPackageData(name, options);
|
|
265
|
+
const outputPath = await this.determinePackagePath(name, options.type);
|
|
266
|
+
await this.generateFromTemplate('package', packageData, outputPath);
|
|
267
|
+
await this.updateWorkspaceConfig(name, options.type);
|
|
268
|
+
logger_1.logger.success(`Package ${name} created successfully at ${outputPath}`);
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
throw error_handler_1.errorHandler.createError('WUNDR_CREATE_PACKAGE_FAILED', 'Failed to create package', { name, options }, true);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Create a new template
|
|
276
|
+
*/
|
|
277
|
+
async createTemplate(name, options) {
|
|
278
|
+
try {
|
|
279
|
+
logger_1.logger.info(`Creating template: ${chalk_1.default.cyan(name)}`);
|
|
280
|
+
if (options.interactive) {
|
|
281
|
+
await this.interactiveTemplateCreation(name);
|
|
282
|
+
}
|
|
283
|
+
else if (options.from) {
|
|
284
|
+
await this.createTemplateFromSource(name, options.from);
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
await this.createBlankTemplate(name);
|
|
288
|
+
}
|
|
289
|
+
logger_1.logger.success(`Template ${name} created successfully`);
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
throw error_handler_1.errorHandler.createError('WUNDR_CREATE_TEMPLATE_FAILED', 'Failed to create template', { name, options }, true);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Create a new workflow
|
|
297
|
+
*/
|
|
298
|
+
async createWorkflow(name, options) {
|
|
299
|
+
try {
|
|
300
|
+
logger_1.logger.info(`Creating workflow: ${chalk_1.default.cyan(name)}`);
|
|
301
|
+
const workflowData = await this.gatherWorkflowData(name, options);
|
|
302
|
+
const outputPath = this.getWorkflowPath(options.platform);
|
|
303
|
+
await this.generateFromTemplate('workflow', workflowData, outputPath);
|
|
304
|
+
logger_1.logger.success(`Workflow ${name} created successfully at ${outputPath}`);
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
throw error_handler_1.errorHandler.createError('WUNDR_CREATE_WORKFLOW_FAILED', 'Failed to create workflow', { name, options }, true);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Create configuration files
|
|
312
|
+
*/
|
|
313
|
+
async createConfig(name, options) {
|
|
314
|
+
try {
|
|
315
|
+
logger_1.logger.info(`Creating config: ${chalk_1.default.cyan(name)}`);
|
|
316
|
+
const configData = await this.gatherConfigData(name, options);
|
|
317
|
+
const outputPath = process.cwd();
|
|
318
|
+
await this.generateFromTemplate('config', configData, outputPath);
|
|
319
|
+
logger_1.logger.success(`Configuration ${name} created successfully`);
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
throw error_handler_1.errorHandler.createError('WUNDR_CREATE_CONFIG_FAILED', 'Failed to create configuration', { name, options }, true);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Data gathering methods
|
|
327
|
+
*/
|
|
328
|
+
async gatherComponentData(name, options) {
|
|
329
|
+
return {
|
|
330
|
+
name,
|
|
331
|
+
type: options.type,
|
|
332
|
+
template: options.template,
|
|
333
|
+
className: this.toPascalCase(name),
|
|
334
|
+
fileName: this.toKebabCase(name),
|
|
335
|
+
withTests: options.withTests,
|
|
336
|
+
withStories: options.withStories,
|
|
337
|
+
timestamp: new Date().toISOString(),
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
async gatherServiceData(name, options) {
|
|
341
|
+
return {
|
|
342
|
+
name,
|
|
343
|
+
type: options.type,
|
|
344
|
+
framework: options.framework,
|
|
345
|
+
className: this.toPascalCase(name),
|
|
346
|
+
fileName: this.toKebabCase(name),
|
|
347
|
+
withTests: options.withTests,
|
|
348
|
+
withDocs: options.withDocs,
|
|
349
|
+
timestamp: new Date().toISOString(),
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
async gatherPackageData(name, options) {
|
|
353
|
+
const packageName = name.startsWith('@') ? name : `@wundr/${name}`;
|
|
354
|
+
return {
|
|
355
|
+
name: packageName,
|
|
356
|
+
shortName: name,
|
|
357
|
+
type: options.type,
|
|
358
|
+
template: options.template,
|
|
359
|
+
public: options.public,
|
|
360
|
+
className: this.toPascalCase(name),
|
|
361
|
+
fileName: this.toKebabCase(name),
|
|
362
|
+
timestamp: new Date().toISOString(),
|
|
363
|
+
};
|
|
364
|
+
}
|
|
365
|
+
async gatherWorkflowData(name, options) {
|
|
366
|
+
return {
|
|
367
|
+
name,
|
|
368
|
+
type: options.type,
|
|
369
|
+
platform: options.platform,
|
|
370
|
+
fileName: this.toKebabCase(name),
|
|
371
|
+
timestamp: new Date().toISOString(),
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
async gatherConfigData(name, options) {
|
|
375
|
+
return {
|
|
376
|
+
name,
|
|
377
|
+
type: options.type,
|
|
378
|
+
preset: options.preset,
|
|
379
|
+
fileName: this.getConfigFileName(name, options.type),
|
|
380
|
+
timestamp: new Date().toISOString(),
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Template generation methods
|
|
385
|
+
*/
|
|
386
|
+
async generateFromTemplate(templateType, data, outputPath) {
|
|
387
|
+
const templatePath = this.getTemplatePath(templateType);
|
|
388
|
+
if (!(await fs_extra_1.default.pathExists(templatePath))) {
|
|
389
|
+
throw new Error(`Template ${templateType} not found`);
|
|
390
|
+
}
|
|
391
|
+
await fs_extra_1.default.ensureDir(outputPath);
|
|
392
|
+
// Copy template files and replace placeholders
|
|
393
|
+
await this.copyTemplateWithReplacements(templatePath, outputPath, data);
|
|
394
|
+
}
|
|
395
|
+
async copyTemplateWithReplacements(srcPath, destPath, data) {
|
|
396
|
+
const files = await fs_extra_1.default.readdir(srcPath);
|
|
397
|
+
for (const file of files) {
|
|
398
|
+
const srcFile = path_1.default.join(srcPath, file);
|
|
399
|
+
const destFile = path_1.default.join(destPath, this.replacePlaceholders(file, data));
|
|
400
|
+
const stat = await fs_extra_1.default.stat(srcFile);
|
|
401
|
+
if (stat.isDirectory()) {
|
|
402
|
+
await fs_extra_1.default.ensureDir(destFile);
|
|
403
|
+
await this.copyTemplateWithReplacements(srcFile, destFile, data);
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
const content = await fs_extra_1.default.readFile(srcFile, 'utf8');
|
|
407
|
+
const processedContent = this.replacePlaceholders(content, data);
|
|
408
|
+
await fs_extra_1.default.writeFile(destFile, processedContent);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
replacePlaceholders(content, data) {
|
|
413
|
+
let result = content;
|
|
414
|
+
Object.entries(data).forEach(([key, value]) => {
|
|
415
|
+
const placeholder = new RegExp(`{{${key}}}`, 'g');
|
|
416
|
+
result = result.replace(placeholder, String(value));
|
|
417
|
+
});
|
|
418
|
+
return result;
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Path determination methods
|
|
422
|
+
*/
|
|
423
|
+
async determineOutputPath(category, name) {
|
|
424
|
+
const projectRoot = process.cwd();
|
|
425
|
+
const srcPath = path_1.default.join(projectRoot, 'src');
|
|
426
|
+
if (await fs_extra_1.default.pathExists(srcPath)) {
|
|
427
|
+
return path_1.default.join(srcPath, category, this.toKebabCase(name));
|
|
428
|
+
}
|
|
429
|
+
return path_1.default.join(projectRoot, category, this.toKebabCase(name));
|
|
430
|
+
}
|
|
431
|
+
async determinePackagePath(name, type) {
|
|
432
|
+
const projectRoot = process.cwd();
|
|
433
|
+
const packagesPath = path_1.default.join(projectRoot, 'packages');
|
|
434
|
+
const appsPath = path_1.default.join(projectRoot, 'apps');
|
|
435
|
+
if (type === 'app' && (await fs_extra_1.default.pathExists(appsPath))) {
|
|
436
|
+
return path_1.default.join(appsPath, this.toKebabCase(name));
|
|
437
|
+
}
|
|
438
|
+
return path_1.default.join(packagesPath, this.toKebabCase(name));
|
|
439
|
+
}
|
|
440
|
+
getWorkflowPath(platform) {
|
|
441
|
+
const paths = {
|
|
442
|
+
github: '.github/workflows',
|
|
443
|
+
gitlab: '.gitlab-ci',
|
|
444
|
+
jenkins: 'jenkins',
|
|
445
|
+
};
|
|
446
|
+
return paths[platform] || '.github/workflows';
|
|
447
|
+
}
|
|
448
|
+
getTemplatePath(templateType) {
|
|
449
|
+
return path_1.default.join(__dirname, '../../templates', templateType);
|
|
450
|
+
}
|
|
451
|
+
getConfigFileName(name, type) {
|
|
452
|
+
const fileNames = {
|
|
453
|
+
eslint: '.eslintrc.js',
|
|
454
|
+
prettier: '.prettierrc.js',
|
|
455
|
+
jest: 'jest.config.js',
|
|
456
|
+
typescript: 'tsconfig.json',
|
|
457
|
+
};
|
|
458
|
+
return fileNames[type] || `${name}.config.js`;
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Utility methods
|
|
462
|
+
*/
|
|
463
|
+
toPascalCase(str) {
|
|
464
|
+
return str
|
|
465
|
+
.split(/[-_\s]/)
|
|
466
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
467
|
+
.join('');
|
|
468
|
+
}
|
|
469
|
+
toKebabCase(str) {
|
|
470
|
+
return str
|
|
471
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
472
|
+
.replace(/[\s_]+/g, '-')
|
|
473
|
+
.toLowerCase();
|
|
474
|
+
}
|
|
475
|
+
async updateWorkspaceConfig(name, type) {
|
|
476
|
+
const packageJsonPath = path_1.default.join(process.cwd(), 'package.json');
|
|
477
|
+
if (await fs_extra_1.default.pathExists(packageJsonPath)) {
|
|
478
|
+
const packageJson = await fs_extra_1.default.readJson(packageJsonPath);
|
|
479
|
+
if (packageJson.workspaces) {
|
|
480
|
+
const workspace = type === 'app' ? 'apps/*' : 'packages/*';
|
|
481
|
+
if (!packageJson.workspaces.includes(workspace)) {
|
|
482
|
+
packageJson.workspaces.push(workspace);
|
|
483
|
+
await fs_extra_1.default.writeJson(packageJsonPath, packageJson, { spaces: 2 });
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
async generateApiDocs(serviceData, outputPath) {
|
|
489
|
+
// Generate API documentation based on service type and framework
|
|
490
|
+
const docsPath = path_1.default.join(outputPath, 'docs');
|
|
491
|
+
await fs_extra_1.default.ensureDir(docsPath);
|
|
492
|
+
const apiDoc = `# ${serviceData.name} API Documentation
|
|
493
|
+
|
|
494
|
+
## Overview
|
|
495
|
+
|
|
496
|
+
Service: ${serviceData.name}
|
|
497
|
+
Type: ${serviceData.type}
|
|
498
|
+
Framework: ${serviceData.framework}
|
|
499
|
+
|
|
500
|
+
## Endpoints
|
|
501
|
+
|
|
502
|
+
### GET /health
|
|
503
|
+
Health check endpoint
|
|
504
|
+
|
|
505
|
+
### GET /api/${serviceData.fileName}
|
|
506
|
+
Get ${serviceData.name} data
|
|
507
|
+
|
|
508
|
+
### POST /api/${serviceData.fileName}
|
|
509
|
+
Create new ${serviceData.name}
|
|
510
|
+
|
|
511
|
+
## Authentication
|
|
512
|
+
|
|
513
|
+
[Add authentication details here]
|
|
514
|
+
|
|
515
|
+
## Error Handling
|
|
516
|
+
|
|
517
|
+
[Add error handling information here]
|
|
518
|
+
`;
|
|
519
|
+
await fs_extra_1.default.writeFile(path_1.default.join(docsPath, 'api.md'), apiDoc);
|
|
520
|
+
}
|
|
521
|
+
async interactiveTemplateCreation(name) {
|
|
522
|
+
const answers = await inquirer_1.default.prompt([
|
|
523
|
+
{
|
|
524
|
+
type: 'input',
|
|
525
|
+
name: 'description',
|
|
526
|
+
message: 'Template description:',
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
type: 'checkbox',
|
|
530
|
+
name: 'features',
|
|
531
|
+
message: 'Template features:',
|
|
532
|
+
choices: [
|
|
533
|
+
'TypeScript',
|
|
534
|
+
'React',
|
|
535
|
+
'Vue',
|
|
536
|
+
'Node.js',
|
|
537
|
+
'Testing',
|
|
538
|
+
'Storybook',
|
|
539
|
+
'Documentation',
|
|
540
|
+
],
|
|
541
|
+
},
|
|
542
|
+
]);
|
|
543
|
+
// Create template based on answers
|
|
544
|
+
logger_1.logger.debug('Creating interactive template with:', answers);
|
|
545
|
+
}
|
|
546
|
+
async createTemplateFromSource(name, sourcePath) {
|
|
547
|
+
logger_1.logger.debug(`Creating template ${name} from source: ${sourcePath}`);
|
|
548
|
+
// Implementation for creating template from existing source
|
|
549
|
+
}
|
|
550
|
+
async createBlankTemplate(name) {
|
|
551
|
+
logger_1.logger.debug(`Creating blank template: ${name}`);
|
|
552
|
+
// Implementation for creating blank template structure
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
exports.CreateCommands = CreateCommands;
|
|
556
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { PluginManager } from '../plugins/plugin-manager';
|
|
2
|
+
import type { ConfigManager } from '../utils/config-manager';
|
|
3
|
+
import type { Command } from 'commander';
|
|
4
|
+
/**
|
|
5
|
+
* Dashboard commands for web interface and visualization
|
|
6
|
+
*/
|
|
7
|
+
export declare class DashboardCommands {
|
|
8
|
+
private program;
|
|
9
|
+
private configManager;
|
|
10
|
+
private pluginManager;
|
|
11
|
+
constructor(program: Command, configManager: ConfigManager, pluginManager: PluginManager);
|
|
12
|
+
private registerCommands;
|
|
13
|
+
/**
|
|
14
|
+
* Start the web dashboard
|
|
15
|
+
*/
|
|
16
|
+
private startDashboard;
|
|
17
|
+
/**
|
|
18
|
+
* Stop the web dashboard
|
|
19
|
+
*/
|
|
20
|
+
private stopDashboard;
|
|
21
|
+
/**
|
|
22
|
+
* Check dashboard status
|
|
23
|
+
*/
|
|
24
|
+
private checkDashboardStatus;
|
|
25
|
+
/**
|
|
26
|
+
* Generate dashboard reports
|
|
27
|
+
*/
|
|
28
|
+
private generateReport;
|
|
29
|
+
/**
|
|
30
|
+
* Export dashboard data
|
|
31
|
+
*/
|
|
32
|
+
private exportData;
|
|
33
|
+
/**
|
|
34
|
+
* Import data into dashboard
|
|
35
|
+
*/
|
|
36
|
+
private importData;
|
|
37
|
+
/**
|
|
38
|
+
* Set dashboard configuration
|
|
39
|
+
*/
|
|
40
|
+
private setDashboardConfig;
|
|
41
|
+
/**
|
|
42
|
+
* Get dashboard configuration
|
|
43
|
+
*/
|
|
44
|
+
private getDashboardConfig;
|
|
45
|
+
/**
|
|
46
|
+
* Add a new widget
|
|
47
|
+
*/
|
|
48
|
+
private addWidget;
|
|
49
|
+
/**
|
|
50
|
+
* Remove a widget
|
|
51
|
+
*/
|
|
52
|
+
private removeWidget;
|
|
53
|
+
/**
|
|
54
|
+
* List all widgets
|
|
55
|
+
*/
|
|
56
|
+
private listWidgets;
|
|
57
|
+
/**
|
|
58
|
+
* Manage dashboard themes
|
|
59
|
+
*/
|
|
60
|
+
private manageTheme;
|
|
61
|
+
/**
|
|
62
|
+
* Helper methods for dashboard operations
|
|
63
|
+
*/
|
|
64
|
+
private isDashboardRunning;
|
|
65
|
+
private ensureDashboardAssets;
|
|
66
|
+
private startDashboardServer;
|
|
67
|
+
private saveDashboardProcess;
|
|
68
|
+
private loadDashboardProcess;
|
|
69
|
+
private cleanupDashboardProcess;
|
|
70
|
+
private openBrowser;
|
|
71
|
+
private collectReportData;
|
|
72
|
+
private formatReport;
|
|
73
|
+
private getDefaultReportPath;
|
|
74
|
+
private saveReport;
|
|
75
|
+
private collectExportData;
|
|
76
|
+
private formatExportData;
|
|
77
|
+
private getDefaultExportPath;
|
|
78
|
+
private saveExportData;
|
|
79
|
+
private loadImportData;
|
|
80
|
+
private validateImportData;
|
|
81
|
+
private mergeImportData;
|
|
82
|
+
private replaceImportData;
|
|
83
|
+
private saveWidget;
|
|
84
|
+
private deleteWidget;
|
|
85
|
+
private getAllWidgets;
|
|
86
|
+
private listThemes;
|
|
87
|
+
private setTheme;
|
|
88
|
+
private createTheme;
|
|
89
|
+
private deleteTheme;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,aAAa;gBAFb,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa;IAKtC,OAAO,CAAC,gBAAgB;IA4HxB;;OAEG;YACW,cAAc;IA+C5B;;OAEG;YACW,aAAa;IA2B3B;;OAEG;YACW,oBAAoB;IA0BlC;;OAEG;YACW,cAAc;IAsB5B;;OAEG;YACW,UAAU;IAsBxB;;OAEG;YACW,UAAU;IA4BxB;;OAEG;YACW,kBAAkB;IAehC;;OAEG;YACW,kBAAkB;IAmBhC;;OAEG;YACW,SAAS;IA0BvB;;OAEG;YACW,YAAY;IAgB1B;;OAEG;YACW,WAAW;IA4BzB;;OAEG;YACW,WAAW;IA4BzB;;OAEG;YACW,kBAAkB;YAclB,qBAAqB;YASrB,oBAAoB;YA2BpB,oBAAoB;YASpB,oBAAoB;YAQpB,uBAAuB;YAOvB,WAAW;YAMX,iBAAiB;YAKjB,YAAY;IAK1B,OAAO,CAAC,oBAAoB;YAId,UAAU;YAUV,iBAAiB;YAIjB,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;YAId,cAAc;YAKd,cAAc;YAId,kBAAkB;YAKlB,eAAe;YAKf,iBAAiB;YAMjB,UAAU;YAWV,YAAY;YAYZ,aAAa;YAkBb,UAAU;YAMV,QAAQ;YAMR,WAAW;YAKX,WAAW;CAI1B"}
|