codingbuddy 0.2.5 โ 0.2.7
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/dist/src/cli/cli.types.d.ts +2 -0
- package/dist/src/cli/init/config.writer.d.ts +2 -1
- package/dist/src/cli/init/config.writer.js +11 -1
- package/dist/src/cli/init/config.writer.js.map +1 -1
- package/dist/src/cli/init/init.command.js +92 -36
- package/dist/src/cli/init/init.command.js.map +1 -1
- package/dist/src/cli/init/templates/frameworks/default.template.d.ts +2 -0
- package/dist/src/cli/init/templates/frameworks/default.template.js +75 -0
- package/dist/src/cli/init/templates/frameworks/default.template.js.map +1 -0
- package/dist/src/cli/init/templates/frameworks/express.template.d.ts +2 -0
- package/dist/src/cli/init/templates/frameworks/express.template.js +58 -0
- package/dist/src/cli/init/templates/frameworks/express.template.js.map +1 -0
- package/dist/src/cli/init/templates/frameworks/index.d.ts +9 -0
- package/dist/src/cli/init/templates/frameworks/index.js +24 -0
- package/dist/src/cli/init/templates/frameworks/index.js.map +1 -0
- package/dist/src/cli/init/templates/frameworks/nestjs.template.d.ts +2 -0
- package/dist/src/cli/init/templates/frameworks/nestjs.template.js +62 -0
- package/dist/src/cli/init/templates/frameworks/nestjs.template.js.map +1 -0
- package/dist/src/cli/init/templates/frameworks/nextjs.template.d.ts +2 -0
- package/dist/src/cli/init/templates/frameworks/nextjs.template.js +68 -0
- package/dist/src/cli/init/templates/frameworks/nextjs.template.js.map +1 -0
- package/dist/src/cli/init/templates/frameworks/node.template.d.ts +2 -0
- package/dist/src/cli/init/templates/frameworks/node.template.js +55 -0
- package/dist/src/cli/init/templates/frameworks/node.template.js.map +1 -0
- package/dist/src/cli/init/templates/frameworks/react.template.d.ts +2 -0
- package/dist/src/cli/init/templates/frameworks/react.template.js +61 -0
- package/dist/src/cli/init/templates/frameworks/react.template.js.map +1 -0
- package/dist/src/cli/init/templates/index.d.ts +4 -0
- package/dist/src/cli/init/templates/index.js +13 -0
- package/dist/src/cli/init/templates/index.js.map +1 -0
- package/dist/src/cli/init/templates/template.renderer.d.ts +3 -0
- package/dist/src/cli/init/templates/template.renderer.js +162 -0
- package/dist/src/cli/init/templates/template.renderer.js.map +1 -0
- package/dist/src/cli/init/templates/template.selector.d.ts +5 -0
- package/dist/src/cli/init/templates/template.selector.js +60 -0
- package/dist/src/cli/init/templates/template.selector.js.map +1 -0
- package/dist/src/cli/init/templates/template.types.d.ts +33 -0
- package/dist/src/cli/init/templates/template.types.js +3 -0
- package/dist/src/cli/init/templates/template.types.js.map +1 -0
- package/dist/src/config/config-diff.service.d.ts +23 -0
- package/dist/src/config/config-diff.service.js +166 -0
- package/dist/src/config/config-diff.service.js.map +1 -0
- package/dist/src/config/config.module.js +3 -2
- package/dist/src/config/config.module.js.map +1 -1
- package/dist/src/config/index.d.ts +2 -0
- package/dist/src/config/index.js +3 -1
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/mcp/mcp.module.js +7 -1
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/mcp/mcp.service.d.ts +6 -1
- package/dist/src/mcp/mcp.service.js +37 -2
- package/dist/src/mcp/mcp.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -3,8 +3,9 @@ export declare const CONFIG_FILE_NAMES: readonly ["codingbuddy.config.js", "codi
|
|
|
3
3
|
export type ConfigFormat = 'js' | 'json';
|
|
4
4
|
export interface WriteConfigOptions {
|
|
5
5
|
format?: ConfigFormat;
|
|
6
|
+
raw?: boolean;
|
|
6
7
|
}
|
|
7
8
|
export declare function formatConfigAsJs(config: CodingBuddyConfig): string;
|
|
8
9
|
export declare function formatConfigAsJson(config: CodingBuddyConfig): string;
|
|
9
10
|
export declare function findExistingConfig(projectRoot: string): Promise<string | null>;
|
|
10
|
-
export declare function writeConfig(projectRoot: string, config: CodingBuddyConfig, options?: WriteConfigOptions): Promise<string>;
|
|
11
|
+
export declare function writeConfig(projectRoot: string, config: CodingBuddyConfig | string, options?: WriteConfigOptions): Promise<string>;
|
|
@@ -35,7 +35,17 @@ async function findExistingConfig(projectRoot) {
|
|
|
35
35
|
async function writeConfig(projectRoot, config, options = {}) {
|
|
36
36
|
const format = options.format ?? 'js';
|
|
37
37
|
const fileName = format === 'json' ? 'codingbuddy.config.json' : 'codingbuddy.config.js';
|
|
38
|
-
|
|
38
|
+
let content;
|
|
39
|
+
if (options.raw && typeof config === 'string') {
|
|
40
|
+
content = config;
|
|
41
|
+
}
|
|
42
|
+
else if (typeof config === 'object') {
|
|
43
|
+
content =
|
|
44
|
+
format === 'json' ? formatConfigAsJson(config) : formatConfigAsJs(config);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
throw new Error('Invalid config: expected object or string with raw option');
|
|
48
|
+
}
|
|
39
49
|
const filePath = path.join(projectRoot, fileName);
|
|
40
50
|
await fs.writeFile(filePath, content, 'utf-8');
|
|
41
51
|
return filePath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.writer.js","sourceRoot":"","sources":["../../../../src/cli/init/config.writer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.writer.js","sourceRoot":"","sources":["../../../../src/cli/init/config.writer.ts"],"names":[],"mappings":";;;AAoCA,4CAMC;AAKD,gDAEC;AAOD,gDAaC;AAUD,kCA8BC;AAvGD,kCAAkC;AAClC,6BAA6B;AAMhB,QAAA,iBAAiB,GAAG;IAC/B,uBAAuB;IACvB,yBAAyB;CACjB,CAAC;AAoBX,SAAgB,gBAAgB,CAAC,MAAyB;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpD,OAAO;mBACU,WAAW;CAC7B,CAAC;AACF,CAAC;AAKD,SAAgB,kBAAkB,CAAC,MAAyB;IAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;AAChD,CAAC;AAOM,KAAK,UAAU,kBAAkB,CACtC,WAAmB;IAEnB,KAAK,MAAM,QAAQ,IAAI,yBAAiB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAUM,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,MAAkC,EAClC,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IAEtC,MAAM,QAAQ,GACZ,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAE1E,IAAI,OAAe,CAAC;IAEpB,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAE9C,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;SAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAEtC,OAAO;YACL,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAElD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE/C,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -6,6 +6,7 @@ const analyzer_1 = require("../../analyzer");
|
|
|
6
6
|
const config_generator_1 = require("./config.generator");
|
|
7
7
|
const config_writer_1 = require("./config.writer");
|
|
8
8
|
const console_1 = require("../utils/console");
|
|
9
|
+
const templates_1 = require("./templates");
|
|
9
10
|
function getApiKey(options) {
|
|
10
11
|
if (options.apiKey) {
|
|
11
12
|
return options.apiKey;
|
|
@@ -15,18 +16,97 @@ function getApiKey(options) {
|
|
|
15
16
|
}
|
|
16
17
|
return null;
|
|
17
18
|
}
|
|
19
|
+
async function runTemplateInit(options, console) {
|
|
20
|
+
console.log.step('๐', 'Analyzing project...');
|
|
21
|
+
const analyzer = new analyzer_1.AnalyzerService();
|
|
22
|
+
const analysis = await analyzer.analyzeProject(options.projectRoot);
|
|
23
|
+
console.log.success('Project analysis complete');
|
|
24
|
+
if (analysis.packageInfo) {
|
|
25
|
+
console.log.step('๐ฆ', `Package: ${analysis.packageInfo.name}`);
|
|
26
|
+
}
|
|
27
|
+
if (analysis.detectedPatterns.length > 0) {
|
|
28
|
+
console.log.step('๐๏ธ', `Patterns: ${analysis.detectedPatterns.join(', ')}`);
|
|
29
|
+
}
|
|
30
|
+
console.log.step('๐', `Files: ${analysis.directoryStructure.totalFiles}`);
|
|
31
|
+
console.log.step('๐', 'Selecting template...');
|
|
32
|
+
const { template, reason, detectedFrameworks } = (0, templates_1.selectTemplate)(analysis);
|
|
33
|
+
console.log.success(`Template: ${template.metadata.name}`);
|
|
34
|
+
console.log.info(` ${reason}`);
|
|
35
|
+
if (detectedFrameworks.length > 0) {
|
|
36
|
+
console.log.info(` Detected: ${detectedFrameworks.join(', ')}`);
|
|
37
|
+
}
|
|
38
|
+
console.log.step('โจ', 'Generating configuration...');
|
|
39
|
+
const projectName = analysis.packageInfo?.name;
|
|
40
|
+
const renderOptions = {
|
|
41
|
+
projectName,
|
|
42
|
+
language: options.language,
|
|
43
|
+
};
|
|
44
|
+
const configContent = options.format === 'json'
|
|
45
|
+
? (0, templates_1.renderConfigAsJson)(template, renderOptions)
|
|
46
|
+
: (0, templates_1.renderConfigAsJs)(template, renderOptions);
|
|
47
|
+
console.log.step('๐พ', 'Writing configuration file...');
|
|
48
|
+
const configPath = await (0, config_writer_1.writeConfig)(options.projectRoot, configContent, {
|
|
49
|
+
format: options.format,
|
|
50
|
+
raw: true,
|
|
51
|
+
});
|
|
52
|
+
console.log.success(`Configuration saved to ${configPath}`);
|
|
53
|
+
console.log.success('');
|
|
54
|
+
console.log.step('โ
', `codingbuddy.config.${options.format} created!`);
|
|
55
|
+
console.log.info('');
|
|
56
|
+
console.log.info('Please review the generated configuration.');
|
|
57
|
+
console.log.info('');
|
|
58
|
+
console.log.info('๐ก TIP: Use MCP tools to get config update suggestions');
|
|
59
|
+
console.log.info(' as your project evolves.');
|
|
60
|
+
return {
|
|
61
|
+
success: true,
|
|
62
|
+
configPath,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async function runAiInit(options, console) {
|
|
66
|
+
const apiKey = getApiKey(options);
|
|
67
|
+
if (!apiKey) {
|
|
68
|
+
console.log.error('No API key provided for AI generation.');
|
|
69
|
+
console.log.info('Set ANTHROPIC_API_KEY environment variable or use --api-key option.');
|
|
70
|
+
console.log.info('');
|
|
71
|
+
console.log.info('๐ก TIP: Run without --ai flag to use template-based generation');
|
|
72
|
+
console.log.info(' (no API key required)');
|
|
73
|
+
return {
|
|
74
|
+
success: false,
|
|
75
|
+
error: 'No API key provided. Set ANTHROPIC_API_KEY or remove --ai flag for template mode.',
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
console.log.step('๐', 'Analyzing project...');
|
|
79
|
+
const analyzer = new analyzer_1.AnalyzerService();
|
|
80
|
+
const analysis = await analyzer.analyzeProject(options.projectRoot);
|
|
81
|
+
console.log.success('Project analysis complete');
|
|
82
|
+
if (analysis.packageInfo) {
|
|
83
|
+
console.log.step('๐ฆ', `Package: ${analysis.packageInfo.name}`);
|
|
84
|
+
}
|
|
85
|
+
if (analysis.detectedPatterns.length > 0) {
|
|
86
|
+
console.log.step('๐๏ธ', `Patterns: ${analysis.detectedPatterns.join(', ')}`);
|
|
87
|
+
}
|
|
88
|
+
console.log.step('๐', `Files: ${analysis.directoryStructure.totalFiles}`);
|
|
89
|
+
console.log.step('๐ค', 'AI is generating configuration...');
|
|
90
|
+
const generator = new config_generator_1.ConfigGenerator({ apiKey });
|
|
91
|
+
const config = await generator.generate(analysis);
|
|
92
|
+
console.log.success('Configuration generated');
|
|
93
|
+
console.log.step('๐พ', 'Writing configuration file...');
|
|
94
|
+
const configPath = await (0, config_writer_1.writeConfig)(options.projectRoot, config, {
|
|
95
|
+
format: options.format,
|
|
96
|
+
});
|
|
97
|
+
console.log.success(`Configuration saved to ${configPath}`);
|
|
98
|
+
console.log.success('');
|
|
99
|
+
console.log.step('โ
', `codingbuddy.config.${options.format} created!`);
|
|
100
|
+
console.log.info('');
|
|
101
|
+
console.log.info('Please review the generated configuration.');
|
|
102
|
+
return {
|
|
103
|
+
success: true,
|
|
104
|
+
configPath,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
18
107
|
async function runInit(options) {
|
|
19
108
|
const console = (0, console_1.createConsoleUtils)();
|
|
20
109
|
try {
|
|
21
|
-
const apiKey = getApiKey(options);
|
|
22
|
-
if (!apiKey) {
|
|
23
|
-
console.log.error('No API key provided.');
|
|
24
|
-
console.log.info('Set ANTHROPIC_API_KEY environment variable or use --api-key option.');
|
|
25
|
-
return {
|
|
26
|
-
success: false,
|
|
27
|
-
error: 'No API key provided. Set ANTHROPIC_API_KEY environment variable.',
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
110
|
const existingConfig = await (0, config_writer_1.findExistingConfig)(options.projectRoot);
|
|
31
111
|
if (existingConfig && !options.force) {
|
|
32
112
|
console.log.error(`Configuration file already exists: ${existingConfig}`);
|
|
@@ -39,34 +119,10 @@ async function runInit(options) {
|
|
|
39
119
|
if (existingConfig && options.force) {
|
|
40
120
|
console.log.warn(`Overwriting existing config: ${existingConfig}`);
|
|
41
121
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const analysis = await analyzer.analyzeProject(options.projectRoot);
|
|
45
|
-
console.log.success('Project analysis complete');
|
|
46
|
-
if (analysis.packageInfo) {
|
|
47
|
-
console.log.step('๐ฆ', `Package: ${analysis.packageInfo.name}`);
|
|
48
|
-
}
|
|
49
|
-
if (analysis.detectedPatterns.length > 0) {
|
|
50
|
-
console.log.step('๐๏ธ', `Patterns: ${analysis.detectedPatterns.join(', ')}`);
|
|
122
|
+
if (options.useAi) {
|
|
123
|
+
return await runAiInit(options, console);
|
|
51
124
|
}
|
|
52
|
-
|
|
53
|
-
console.log.step('๐ค', 'AI is generating configuration...');
|
|
54
|
-
const generator = new config_generator_1.ConfigGenerator({ apiKey });
|
|
55
|
-
const config = await generator.generate(analysis);
|
|
56
|
-
console.log.success('Configuration generated');
|
|
57
|
-
console.log.step('๐พ', 'Writing configuration file...');
|
|
58
|
-
const configPath = await (0, config_writer_1.writeConfig)(options.projectRoot, config, {
|
|
59
|
-
format: options.format,
|
|
60
|
-
});
|
|
61
|
-
console.log.success(`Configuration saved to ${configPath}`);
|
|
62
|
-
console.log.success('');
|
|
63
|
-
console.log.step('โ
', `codingbuddy.config.${options.format} created!`);
|
|
64
|
-
console.log.info('');
|
|
65
|
-
console.log.info('Please review the generated configuration.');
|
|
66
|
-
return {
|
|
67
|
-
success: true,
|
|
68
|
-
configPath,
|
|
69
|
-
};
|
|
125
|
+
return await runTemplateInit(options, console);
|
|
70
126
|
}
|
|
71
127
|
catch (error) {
|
|
72
128
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../../src/cli/init/init.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultTemplate = void 0;
|
|
4
|
+
exports.defaultTemplate = {
|
|
5
|
+
metadata: {
|
|
6
|
+
id: 'default',
|
|
7
|
+
name: 'Default',
|
|
8
|
+
description: 'Generic project template',
|
|
9
|
+
matchPatterns: [],
|
|
10
|
+
},
|
|
11
|
+
config: {
|
|
12
|
+
language: 'ko',
|
|
13
|
+
techStack: {},
|
|
14
|
+
architecture: {},
|
|
15
|
+
conventions: {
|
|
16
|
+
naming: {
|
|
17
|
+
files: 'kebab-case',
|
|
18
|
+
functions: 'camelCase',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
testStrategy: {
|
|
22
|
+
approach: 'tdd',
|
|
23
|
+
coverage: 90,
|
|
24
|
+
mockingStrategy: 'minimal',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
comments: {
|
|
28
|
+
header: `// ============================================================
|
|
29
|
+
// CodingBuddy Configuration
|
|
30
|
+
// Project Configuration File
|
|
31
|
+
//
|
|
32
|
+
// This file is used by AI coding assistants to understand project context.
|
|
33
|
+
// Modify the values to match your project.
|
|
34
|
+
// ============================================================`,
|
|
35
|
+
language: `// ๐ Language Setting
|
|
36
|
+
// Specify the language for AI responses. ('ko', 'en', 'ja', etc.)`,
|
|
37
|
+
projectInfo: `// ๐ฆ Project Information
|
|
38
|
+
// projectName: Project name
|
|
39
|
+
// description: Project description`,
|
|
40
|
+
techStack: `// ๐ ๏ธ Tech Stack
|
|
41
|
+
// Define the technologies used in your project.
|
|
42
|
+
//
|
|
43
|
+
// techStack: {
|
|
44
|
+
// languages: ['TypeScript', 'Python'],
|
|
45
|
+
// frontend: ['React', 'Next.js'],
|
|
46
|
+
// backend: ['NestJS', 'FastAPI'],
|
|
47
|
+
// database: ['PostgreSQL', 'Redis'],
|
|
48
|
+
// infrastructure: ['Docker', 'AWS'],
|
|
49
|
+
// tools: ['GitHub Actions', 'Sentry'],
|
|
50
|
+
// }`,
|
|
51
|
+
architecture: `// ๐๏ธ Architecture
|
|
52
|
+
// Define your project structure and patterns.
|
|
53
|
+
//
|
|
54
|
+
// architecture: {
|
|
55
|
+
// pattern: 'feature-based', // 'layered', 'clean', 'modular'
|
|
56
|
+
// componentStyle: 'grouped', // 'flat', 'feature-based'
|
|
57
|
+
// structure: ['src', 'lib', 'tests'],
|
|
58
|
+
// }`,
|
|
59
|
+
conventions: `// ๐ Coding Conventions
|
|
60
|
+
// Define naming rules and code style.`,
|
|
61
|
+
testStrategy: `// ๐งช Test Strategy
|
|
62
|
+
// approach: 'tdd' (test first) | 'test-after' (implement then test) | 'mixed'
|
|
63
|
+
// coverage: Target test coverage (%)
|
|
64
|
+
// mockingStrategy: 'minimal' | 'no-mocks' | 'extensive'`,
|
|
65
|
+
footer: `// ============================================================
|
|
66
|
+
// ๐ก TIP: Sync with MCP
|
|
67
|
+
//
|
|
68
|
+
// codingbuddy MCP analyzes your project and suggests config updates.
|
|
69
|
+
// When your project changes, use 'suggest_config_updates' tool to check.
|
|
70
|
+
//
|
|
71
|
+
// ๐ Docs: https://github.com/JeremyDev87/codingbuddy
|
|
72
|
+
// ============================================================`,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=default.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/default.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,eAAe,GAAmB;IAC7C,QAAQ,EAAE;QACR,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,0BAA0B;QACvC,aAAa,EAAE,EAAE;KAClB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE;qEACuD;QACjE,WAAW,EAAE;;sCAEqB;QAClC,SAAS,EAAE;;;;;;;;;;OAUR;QACH,YAAY,EAAE;;;;;;;OAOX;QACH,WAAW,EAAE;yCACwB;QACrC,YAAY,EAAE;;;2DAGyC;QACvD,MAAM,EAAE;;;;;;;kEAOsD;KAC/D;CACF,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expressTemplate = void 0;
|
|
4
|
+
exports.expressTemplate = {
|
|
5
|
+
metadata: {
|
|
6
|
+
id: 'express',
|
|
7
|
+
name: 'Express',
|
|
8
|
+
description: 'Express.js backend API server',
|
|
9
|
+
matchPatterns: ['express', 'fastify', 'koa'],
|
|
10
|
+
},
|
|
11
|
+
config: {
|
|
12
|
+
language: 'ko',
|
|
13
|
+
techStack: {
|
|
14
|
+
languages: ['TypeScript'],
|
|
15
|
+
backend: ['Express'],
|
|
16
|
+
},
|
|
17
|
+
architecture: {
|
|
18
|
+
pattern: 'layered',
|
|
19
|
+
structure: ['routes', 'controllers', 'services', 'models'],
|
|
20
|
+
},
|
|
21
|
+
conventions: {
|
|
22
|
+
naming: {
|
|
23
|
+
files: 'kebab-case',
|
|
24
|
+
functions: 'camelCase',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
testStrategy: {
|
|
28
|
+
approach: 'tdd',
|
|
29
|
+
coverage: 90,
|
|
30
|
+
mockingStrategy: 'minimal',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
comments: {
|
|
34
|
+
header: `// ============================================================
|
|
35
|
+
// CodingBuddy Configuration
|
|
36
|
+
// Express Project Configuration File
|
|
37
|
+
//
|
|
38
|
+
// This file is used by AI coding assistants to understand project context.
|
|
39
|
+
// Modify the values to match your project.
|
|
40
|
+
// ============================================================`,
|
|
41
|
+
language: `// ๐ Language Setting`,
|
|
42
|
+
projectInfo: `// ๐ฆ Project Information`,
|
|
43
|
+
techStack: `// ๐ ๏ธ Tech Stack
|
|
44
|
+
// Add middleware and databases.
|
|
45
|
+
// Example: backend: ['Express', 'Passport'], database: ['MongoDB']`,
|
|
46
|
+
architecture: `// ๐๏ธ Architecture
|
|
47
|
+
// Express recommends routes โ controllers โ services โ models pattern.`,
|
|
48
|
+
conventions: `// ๐ Coding Conventions`,
|
|
49
|
+
testStrategy: `// ๐งช Test Strategy
|
|
50
|
+
// Recommended to use supertest for API testing.`,
|
|
51
|
+
footer: `// ============================================================
|
|
52
|
+
// ๐ก TIP: Sync with MCP
|
|
53
|
+
//
|
|
54
|
+
// codingbuddy MCP analyzes your project and suggests config updates.
|
|
55
|
+
// ============================================================`,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=express.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/express.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,eAAe,GAAmB;IAC7C,QAAQ,EAAE;QACR,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+BAA+B;QAC5C,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;KAC7C;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,YAAY,CAAC;YACzB,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC;SAC3D;QACD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE,wBAAwB;QAClC,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE;;sEAEuD;QAClE,YAAY,EAAE;0EACwD;QACtE,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE;mDACiC;QAC/C,MAAM,EAAE;;;;kEAIsD;KAC/D;CACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ConfigTemplate } from '../template.types';
|
|
2
|
+
import { nextjsTemplate } from './nextjs.template';
|
|
3
|
+
import { reactTemplate } from './react.template';
|
|
4
|
+
import { nestjsTemplate } from './nestjs.template';
|
|
5
|
+
import { expressTemplate } from './express.template';
|
|
6
|
+
import { nodeTemplate } from './node.template';
|
|
7
|
+
import { defaultTemplate } from './default.template';
|
|
8
|
+
export declare const TEMPLATES: ConfigTemplate[];
|
|
9
|
+
export { nextjsTemplate, reactTemplate, nestjsTemplate, expressTemplate, nodeTemplate, defaultTemplate, };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultTemplate = exports.nodeTemplate = exports.expressTemplate = exports.nestjsTemplate = exports.reactTemplate = exports.nextjsTemplate = exports.TEMPLATES = void 0;
|
|
4
|
+
const nextjs_template_1 = require("./nextjs.template");
|
|
5
|
+
Object.defineProperty(exports, "nextjsTemplate", { enumerable: true, get: function () { return nextjs_template_1.nextjsTemplate; } });
|
|
6
|
+
const react_template_1 = require("./react.template");
|
|
7
|
+
Object.defineProperty(exports, "reactTemplate", { enumerable: true, get: function () { return react_template_1.reactTemplate; } });
|
|
8
|
+
const nestjs_template_1 = require("./nestjs.template");
|
|
9
|
+
Object.defineProperty(exports, "nestjsTemplate", { enumerable: true, get: function () { return nestjs_template_1.nestjsTemplate; } });
|
|
10
|
+
const express_template_1 = require("./express.template");
|
|
11
|
+
Object.defineProperty(exports, "expressTemplate", { enumerable: true, get: function () { return express_template_1.expressTemplate; } });
|
|
12
|
+
const node_template_1 = require("./node.template");
|
|
13
|
+
Object.defineProperty(exports, "nodeTemplate", { enumerable: true, get: function () { return node_template_1.nodeTemplate; } });
|
|
14
|
+
const default_template_1 = require("./default.template");
|
|
15
|
+
Object.defineProperty(exports, "defaultTemplate", { enumerable: true, get: function () { return default_template_1.defaultTemplate; } });
|
|
16
|
+
exports.TEMPLATES = [
|
|
17
|
+
nextjs_template_1.nextjsTemplate,
|
|
18
|
+
react_template_1.reactTemplate,
|
|
19
|
+
nestjs_template_1.nestjsTemplate,
|
|
20
|
+
express_template_1.expressTemplate,
|
|
21
|
+
node_template_1.nodeTemplate,
|
|
22
|
+
default_template_1.defaultTemplate,
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/index.ts"],"names":[],"mappings":";;;AAOA,uDAAmD;AAqBjD,+FArBO,gCAAc,OAqBP;AApBhB,qDAAiD;AAqB/C,8FArBO,8BAAa,OAqBP;AApBf,uDAAmD;AAqBjD,+FArBO,gCAAc,OAqBP;AApBhB,yDAAqD;AAqBnD,gGArBO,kCAAe,OAqBP;AApBjB,mDAA+C;AAqB7C,6FArBO,4BAAY,OAqBP;AApBd,yDAAqD;AAqBnD,gGArBO,kCAAe,OAqBP;AAhBJ,QAAA,SAAS,GAAqB;IACzC,gCAAc;IACd,8BAAa;IACb,gCAAc;IACd,kCAAe;IACf,4BAAY;IACZ,kCAAe;CAChB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nestjsTemplate = void 0;
|
|
4
|
+
exports.nestjsTemplate = {
|
|
5
|
+
metadata: {
|
|
6
|
+
id: 'nestjs',
|
|
7
|
+
name: 'NestJS',
|
|
8
|
+
description: 'NestJS backend framework with dependency injection',
|
|
9
|
+
matchPatterns: ['@nestjs/core', 'nestjs'],
|
|
10
|
+
},
|
|
11
|
+
config: {
|
|
12
|
+
language: 'ko',
|
|
13
|
+
techStack: {
|
|
14
|
+
languages: ['TypeScript'],
|
|
15
|
+
backend: ['NestJS'],
|
|
16
|
+
},
|
|
17
|
+
architecture: {
|
|
18
|
+
pattern: 'layered',
|
|
19
|
+
structure: ['modules', 'controllers', 'services', 'repositories'],
|
|
20
|
+
},
|
|
21
|
+
conventions: {
|
|
22
|
+
naming: {
|
|
23
|
+
files: 'kebab-case',
|
|
24
|
+
components: 'PascalCase',
|
|
25
|
+
functions: 'camelCase',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
testStrategy: {
|
|
29
|
+
approach: 'tdd',
|
|
30
|
+
coverage: 90,
|
|
31
|
+
mockingStrategy: 'minimal',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
comments: {
|
|
35
|
+
header: `// ============================================================
|
|
36
|
+
// CodingBuddy Configuration
|
|
37
|
+
// NestJS Project Configuration File
|
|
38
|
+
//
|
|
39
|
+
// This file is used by AI coding assistants to understand project context.
|
|
40
|
+
// Modify the values to match your project.
|
|
41
|
+
// ============================================================`,
|
|
42
|
+
language: `// ๐ Language Setting`,
|
|
43
|
+
projectInfo: `// ๐ฆ Project Information`,
|
|
44
|
+
techStack: `// ๐ ๏ธ Tech Stack
|
|
45
|
+
// Add NestJS modules and databases.
|
|
46
|
+
// Example: backend: ['NestJS', 'TypeORM'], database: ['PostgreSQL']`,
|
|
47
|
+
architecture: `// ๐๏ธ Architecture
|
|
48
|
+
// NestJS uses module-based layered architecture.
|
|
49
|
+
// structure: Project layer structure`,
|
|
50
|
+
conventions: `// ๐ Coding Conventions
|
|
51
|
+
// Follows NestJS official style guide.`,
|
|
52
|
+
testStrategy: `// ๐งช Test Strategy
|
|
53
|
+
// Uses NestJS @nestjs/testing module.
|
|
54
|
+
// e2e tests are located in the test/ directory.`,
|
|
55
|
+
footer: `// ============================================================
|
|
56
|
+
// ๐ก TIP: Sync with MCP
|
|
57
|
+
//
|
|
58
|
+
// codingbuddy MCP analyzes your project and suggests config updates.
|
|
59
|
+
// ============================================================`,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=nestjs.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestjs.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/nestjs.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,cAAc,GAAmB;IAC5C,QAAQ,EAAE;QACR,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oDAAoD;QACjE,aAAa,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;KAC1C;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,YAAY,CAAC;YACzB,OAAO,EAAE,CAAC,QAAQ,CAAC;SACpB;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,CAAC;SAClE;QACD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,YAAY;gBACxB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE,wBAAwB;QAClC,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE;;uEAEwD;QACnE,YAAY,EAAE;;wCAEsB;QACpC,WAAW,EAAE;0CACyB;QACtC,YAAY,EAAE;;mDAEiC;QAC/C,MAAM,EAAE;;;;kEAIsD;KAC/D;CACF,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nextjsTemplate = void 0;
|
|
4
|
+
exports.nextjsTemplate = {
|
|
5
|
+
metadata: {
|
|
6
|
+
id: 'nextjs',
|
|
7
|
+
name: 'Next.js',
|
|
8
|
+
description: 'Next.js fullstack React framework with App Router',
|
|
9
|
+
matchPatterns: ['next', 'nextjs'],
|
|
10
|
+
},
|
|
11
|
+
config: {
|
|
12
|
+
language: 'ko',
|
|
13
|
+
techStack: {
|
|
14
|
+
languages: ['TypeScript'],
|
|
15
|
+
frontend: ['React', 'Next.js'],
|
|
16
|
+
},
|
|
17
|
+
architecture: {
|
|
18
|
+
pattern: 'feature-based',
|
|
19
|
+
componentStyle: 'grouped',
|
|
20
|
+
},
|
|
21
|
+
conventions: {
|
|
22
|
+
naming: {
|
|
23
|
+
files: 'kebab-case',
|
|
24
|
+
components: 'PascalCase',
|
|
25
|
+
functions: 'camelCase',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
testStrategy: {
|
|
29
|
+
approach: 'tdd',
|
|
30
|
+
coverage: 90,
|
|
31
|
+
mockingStrategy: 'minimal',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
comments: {
|
|
35
|
+
header: `// ============================================================
|
|
36
|
+
// CodingBuddy Configuration
|
|
37
|
+
// Next.js Project Configuration File
|
|
38
|
+
//
|
|
39
|
+
// This file is used by AI coding assistants to understand project context.
|
|
40
|
+
// Modify the values to match your project.
|
|
41
|
+
// ============================================================`,
|
|
42
|
+
language: `// ๐ Language Setting
|
|
43
|
+
// Specify the language for AI responses. ('ko', 'en', 'ja', etc.)`,
|
|
44
|
+
projectInfo: `// ๐ฆ Project Information
|
|
45
|
+
// projectName and description are auto-detected. Modify if needed.`,
|
|
46
|
+
techStack: `// ๐ ๏ธ Tech Stack
|
|
47
|
+
// Auto-detected values. Add additional technologies to the arrays.
|
|
48
|
+
// Example: backend: ['Prisma', 'tRPC'], database: ['PostgreSQL']`,
|
|
49
|
+
architecture: `// ๐๏ธ Architecture
|
|
50
|
+
// pattern: 'feature-based' | 'layered' | 'clean' | 'modular'
|
|
51
|
+
// componentStyle: 'flat' | 'grouped' | 'feature-based'`,
|
|
52
|
+
conventions: `// ๐ Coding Conventions
|
|
53
|
+
// Define naming rules for your project.`,
|
|
54
|
+
testStrategy: `// ๐งช Test Strategy
|
|
55
|
+
// approach: 'tdd' (test first) | 'test-after' | 'mixed'
|
|
56
|
+
// coverage: Target test coverage (%)
|
|
57
|
+
// mockingStrategy: 'minimal' | 'no-mocks' | 'extensive'`,
|
|
58
|
+
footer: `// ============================================================
|
|
59
|
+
// ๐ก TIP: Sync with MCP
|
|
60
|
+
//
|
|
61
|
+
// codingbuddy MCP analyzes your project and suggests config updates.
|
|
62
|
+
// When adding new dependencies, use 'suggest_config_updates' tool to check.
|
|
63
|
+
//
|
|
64
|
+
// ๐ Docs: https://github.com/JeremyDev87/codingbuddy
|
|
65
|
+
// ============================================================`,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=nextjs.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nextjs.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/nextjs.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,cAAc,GAAmB;IAC5C,QAAQ,EAAE;QACR,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,mDAAmD;QAChE,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KAClC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,YAAY,CAAC;YACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;SAC/B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,eAAe;YACxB,cAAc,EAAE,SAAS;SAC1B;QACD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,YAAY;gBACxB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE;qEACuD;QACjE,WAAW,EAAE;sEACqD;QAClE,SAAS,EAAE;;oEAEqD;QAChE,YAAY,EAAE;;0DAEwC;QACtD,WAAW,EAAE;2CAC0B;QACvC,YAAY,EAAE;;;2DAGyC;QACvD,MAAM,EAAE;;;;;;;kEAOsD;KAC/D;CACF,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nodeTemplate = void 0;
|
|
4
|
+
exports.nodeTemplate = {
|
|
5
|
+
metadata: {
|
|
6
|
+
id: 'node',
|
|
7
|
+
name: 'Node.js',
|
|
8
|
+
description: 'Generic Node.js project (CLI tools, libraries, etc.)',
|
|
9
|
+
matchPatterns: ['node', 'nodejs'],
|
|
10
|
+
},
|
|
11
|
+
config: {
|
|
12
|
+
language: 'ko',
|
|
13
|
+
techStack: {
|
|
14
|
+
languages: ['TypeScript'],
|
|
15
|
+
},
|
|
16
|
+
architecture: {
|
|
17
|
+
pattern: 'modular',
|
|
18
|
+
},
|
|
19
|
+
conventions: {
|
|
20
|
+
naming: {
|
|
21
|
+
files: 'kebab-case',
|
|
22
|
+
functions: 'camelCase',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
testStrategy: {
|
|
26
|
+
approach: 'tdd',
|
|
27
|
+
coverage: 90,
|
|
28
|
+
mockingStrategy: 'minimal',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
comments: {
|
|
32
|
+
header: `// ============================================================
|
|
33
|
+
// CodingBuddy Configuration
|
|
34
|
+
// Node.js Project Configuration File
|
|
35
|
+
//
|
|
36
|
+
// This file is used by AI coding assistants to understand project context.
|
|
37
|
+
// Modify the values to match your project.
|
|
38
|
+
// ============================================================`,
|
|
39
|
+
language: `// ๐ Language Setting`,
|
|
40
|
+
projectInfo: `// ๐ฆ Project Information`,
|
|
41
|
+
techStack: `// ๐ ๏ธ Tech Stack
|
|
42
|
+
// Add libraries you use.
|
|
43
|
+
// Example: tools: ['Commander', 'Chalk']`,
|
|
44
|
+
architecture: `// ๐๏ธ Architecture
|
|
45
|
+
// pattern: 'modular' | 'layered' | 'plugin-based'`,
|
|
46
|
+
conventions: `// ๐ Coding Conventions`,
|
|
47
|
+
testStrategy: `// ๐งช Test Strategy`,
|
|
48
|
+
footer: `// ============================================================
|
|
49
|
+
// ๐ก TIP: Sync with MCP
|
|
50
|
+
//
|
|
51
|
+
// codingbuddy MCP analyzes your project and suggests config updates.
|
|
52
|
+
// ============================================================`,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=node.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.template.js","sourceRoot":"","sources":["../../../../../../src/cli/init/templates/frameworks/node.template.ts"],"names":[],"mappings":";;;AAMa,QAAA,YAAY,GAAmB;IAC1C,QAAQ,EAAE;QACR,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,sDAAsD;QACnE,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KAClC;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE;YACT,SAAS,EAAE,CAAC,YAAY,CAAC;SAC1B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,SAAS;SACnB;QACD,WAAW,EAAE;YACX,MAAM,EAAE;gBACN,KAAK,EAAE,YAAY;gBACnB,SAAS,EAAE,WAAW;aACvB;SACF;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,SAAS;SAC3B;KACF;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;;;;;;gEAMoD;QAC5D,QAAQ,EAAE,wBAAwB;QAClC,WAAW,EAAE,2BAA2B;QACxC,SAAS,EAAE;;4CAE6B;QACxC,YAAY,EAAE;qDACmC;QACjD,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE,qBAAqB;QACnC,MAAM,EAAE;;;;kEAIsD;KAC/D;CACF,CAAC"}
|