figma-to-code-agent 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +69 -77
  3. package/README.zh-CN.md +173 -0
  4. package/dist/agent/ConversationContext.d.ts +91 -0
  5. package/dist/agent/ConversationContext.d.ts.map +1 -0
  6. package/dist/agent/ConversationContext.js +271 -0
  7. package/dist/agent/ConversationContext.js.map +1 -0
  8. package/dist/agent/DecisionEngine.d.ts +77 -0
  9. package/dist/agent/DecisionEngine.d.ts.map +1 -0
  10. package/dist/agent/DecisionEngine.js +414 -0
  11. package/dist/agent/DecisionEngine.js.map +1 -0
  12. package/dist/agent/ExecutionOrchestrator.d.ts +55 -0
  13. package/dist/agent/ExecutionOrchestrator.d.ts.map +1 -0
  14. package/dist/agent/ExecutionOrchestrator.js +360 -0
  15. package/dist/agent/ExecutionOrchestrator.js.map +1 -0
  16. package/dist/agent/IntentUnderstandingEngine.d.ts +43 -0
  17. package/dist/agent/IntentUnderstandingEngine.d.ts.map +1 -0
  18. package/dist/agent/IntentUnderstandingEngine.js +261 -0
  19. package/dist/agent/IntentUnderstandingEngine.js.map +1 -0
  20. package/dist/agent/index.d.ts +9 -0
  21. package/dist/agent/index.d.ts.map +1 -0
  22. package/dist/agent/index.js +30 -0
  23. package/dist/agent/index.js.map +1 -0
  24. package/dist/agent/types.d.ts +111 -0
  25. package/dist/agent/types.d.ts.map +1 -0
  26. package/dist/agent/types.js +6 -0
  27. package/dist/agent/types.js.map +1 -0
  28. package/dist/cli/InteractiveCLI.d.ts +109 -0
  29. package/dist/cli/InteractiveCLI.d.ts.map +1 -0
  30. package/dist/cli/InteractiveCLI.js +534 -0
  31. package/dist/cli/InteractiveCLI.js.map +1 -0
  32. package/dist/cli/ProgressDisplay.d.ts +117 -0
  33. package/dist/cli/ProgressDisplay.d.ts.map +1 -0
  34. package/dist/cli/ProgressDisplay.js +370 -0
  35. package/dist/cli/ProgressDisplay.js.map +1 -0
  36. package/dist/cli/index.d.ts +6 -0
  37. package/dist/cli/index.d.ts.map +1 -0
  38. package/dist/cli/index.js +22 -0
  39. package/dist/cli/index.js.map +1 -0
  40. package/dist/consistency/DesignConsistencyChecker.d.ts +125 -0
  41. package/dist/consistency/DesignConsistencyChecker.d.ts.map +1 -0
  42. package/dist/consistency/DesignConsistencyChecker.js +448 -0
  43. package/dist/consistency/DesignConsistencyChecker.js.map +1 -0
  44. package/dist/consistency/index.d.ts +5 -0
  45. package/dist/consistency/index.d.ts.map +1 -0
  46. package/dist/consistency/index.js +21 -0
  47. package/dist/consistency/index.js.map +1 -0
  48. package/dist/context/CodeStyleMatcher.d.ts +124 -0
  49. package/dist/context/CodeStyleMatcher.d.ts.map +1 -0
  50. package/dist/context/CodeStyleMatcher.js +558 -0
  51. package/dist/context/CodeStyleMatcher.js.map +1 -0
  52. package/dist/context/IncrementalUpdater.d.ts +97 -0
  53. package/dist/context/IncrementalUpdater.d.ts.map +1 -0
  54. package/dist/context/IncrementalUpdater.js +431 -0
  55. package/dist/context/IncrementalUpdater.js.map +1 -0
  56. package/dist/context/index.d.ts +6 -0
  57. package/dist/context/index.d.ts.map +1 -0
  58. package/dist/context/index.js +22 -0
  59. package/dist/context/index.js.map +1 -0
  60. package/dist/feedback/FeedbackLoop.d.ts +125 -0
  61. package/dist/feedback/FeedbackLoop.d.ts.map +1 -0
  62. package/dist/feedback/FeedbackLoop.js +353 -0
  63. package/dist/feedback/FeedbackLoop.js.map +1 -0
  64. package/dist/feedback/index.d.ts +5 -0
  65. package/dist/feedback/index.d.ts.map +1 -0
  66. package/dist/feedback/index.js +21 -0
  67. package/dist/feedback/index.js.map +1 -0
  68. package/dist/mcp/FigmaMCPIntegration.d.ts +72 -0
  69. package/dist/mcp/FigmaMCPIntegration.d.ts.map +1 -0
  70. package/dist/mcp/FigmaMCPIntegration.js +173 -0
  71. package/dist/mcp/FigmaMCPIntegration.js.map +1 -0
  72. package/dist/mcp/MCPServiceManager.d.ts +109 -0
  73. package/dist/mcp/MCPServiceManager.d.ts.map +1 -0
  74. package/dist/mcp/MCPServiceManager.js +237 -0
  75. package/dist/mcp/MCPServiceManager.js.map +1 -0
  76. package/dist/mcp/MCPToolAdapter.d.ts +73 -0
  77. package/dist/mcp/MCPToolAdapter.d.ts.map +1 -0
  78. package/dist/mcp/MCPToolAdapter.js +249 -0
  79. package/dist/mcp/MCPToolAdapter.js.map +1 -0
  80. package/dist/mcp/index.d.ts +7 -0
  81. package/dist/mcp/index.d.ts.map +1 -0
  82. package/dist/mcp/index.js +23 -0
  83. package/dist/mcp/index.js.map +1 -0
  84. package/dist/mcp-server/MCPServer.d.ts +125 -0
  85. package/dist/mcp-server/MCPServer.d.ts.map +1 -0
  86. package/dist/mcp-server/MCPServer.js +449 -0
  87. package/dist/mcp-server/MCPServer.js.map +1 -0
  88. package/dist/mcp-server/index.d.ts +5 -0
  89. package/dist/mcp-server/index.d.ts.map +1 -0
  90. package/dist/mcp-server/index.js +21 -0
  91. package/dist/mcp-server/index.js.map +1 -0
  92. package/dist/monitoring/ExecutionSummary.d.ts +160 -0
  93. package/dist/monitoring/ExecutionSummary.d.ts.map +1 -0
  94. package/dist/monitoring/ExecutionSummary.js +345 -0
  95. package/dist/monitoring/ExecutionSummary.js.map +1 -0
  96. package/dist/monitoring/Logger.d.ts +139 -0
  97. package/dist/monitoring/Logger.d.ts.map +1 -0
  98. package/dist/monitoring/Logger.js +406 -0
  99. package/dist/monitoring/Logger.js.map +1 -0
  100. package/dist/monitoring/index.d.ts +6 -0
  101. package/dist/monitoring/index.d.ts.map +1 -0
  102. package/dist/monitoring/index.js +22 -0
  103. package/dist/monitoring/index.js.map +1 -0
  104. package/dist/performance/LLMCache.d.ts +133 -0
  105. package/dist/performance/LLMCache.d.ts.map +1 -0
  106. package/dist/performance/LLMCache.js +358 -0
  107. package/dist/performance/LLMCache.js.map +1 -0
  108. package/dist/performance/ParallelProcessor.d.ts +89 -0
  109. package/dist/performance/ParallelProcessor.d.ts.map +1 -0
  110. package/dist/performance/ParallelProcessor.js +253 -0
  111. package/dist/performance/ParallelProcessor.js.map +1 -0
  112. package/dist/performance/TokenMonitor.d.ts +166 -0
  113. package/dist/performance/TokenMonitor.d.ts.map +1 -0
  114. package/dist/performance/TokenMonitor.js +315 -0
  115. package/dist/performance/TokenMonitor.js.map +1 -0
  116. package/dist/performance/index.d.ts +7 -0
  117. package/dist/performance/index.d.ts.map +1 -0
  118. package/dist/performance/index.js +23 -0
  119. package/dist/performance/index.js.map +1 -0
  120. package/dist/prototype/InteractivePrototypeGenerator.d.ts +175 -0
  121. package/dist/prototype/InteractivePrototypeGenerator.d.ts.map +1 -0
  122. package/dist/prototype/InteractivePrototypeGenerator.js +624 -0
  123. package/dist/prototype/InteractivePrototypeGenerator.js.map +1 -0
  124. package/dist/prototype/index.d.ts +5 -0
  125. package/dist/prototype/index.d.ts.map +1 -0
  126. package/dist/prototype/index.js +21 -0
  127. package/dist/prototype/index.js.map +1 -0
  128. package/dist/skill/SkillConfig.d.ts +66 -0
  129. package/dist/skill/SkillConfig.d.ts.map +1 -0
  130. package/dist/skill/SkillConfig.js +233 -0
  131. package/dist/skill/SkillConfig.js.map +1 -0
  132. package/dist/skill/SkillInterface.d.ts +102 -0
  133. package/dist/skill/SkillInterface.d.ts.map +1 -0
  134. package/dist/skill/SkillInterface.js +425 -0
  135. package/dist/skill/SkillInterface.js.map +1 -0
  136. package/dist/skill/index.d.ts +7 -0
  137. package/dist/skill/index.d.ts.map +1 -0
  138. package/dist/skill/index.js +23 -0
  139. package/dist/skill/index.js.map +1 -0
  140. package/dist/skill/types.d.ts +103 -0
  141. package/dist/skill/types.d.ts.map +1 -0
  142. package/dist/skill/types.js +6 -0
  143. package/dist/skill/types.js.map +1 -0
  144. package/dist/templates/TemplateManager.d.ts +147 -0
  145. package/dist/templates/TemplateManager.d.ts.map +1 -0
  146. package/dist/templates/TemplateManager.js +418 -0
  147. package/dist/templates/TemplateManager.js.map +1 -0
  148. package/dist/templates/index.d.ts +6 -0
  149. package/dist/templates/index.d.ts.map +1 -0
  150. package/dist/templates/index.js +10 -0
  151. package/dist/templates/index.js.map +1 -0
  152. package/dist/tools/CodeGenerationTool.d.ts +32 -0
  153. package/dist/tools/CodeGenerationTool.d.ts.map +1 -0
  154. package/dist/tools/CodeGenerationTool.js +63 -0
  155. package/dist/tools/CodeGenerationTool.js.map +1 -0
  156. package/dist/tools/FigmaExtractionTool.d.ts +45 -0
  157. package/dist/tools/FigmaExtractionTool.d.ts.map +1 -0
  158. package/dist/tools/FigmaExtractionTool.js +105 -0
  159. package/dist/tools/FigmaExtractionTool.js.map +1 -0
  160. package/dist/tools/ProjectAnalysisTool.d.ts +104 -0
  161. package/dist/tools/ProjectAnalysisTool.d.ts.map +1 -0
  162. package/dist/tools/ProjectAnalysisTool.js +428 -0
  163. package/dist/tools/ProjectAnalysisTool.js.map +1 -0
  164. package/dist/tools/ToolRegistry.d.ts +59 -0
  165. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  166. package/dist/tools/ToolRegistry.js +162 -0
  167. package/dist/tools/ToolRegistry.js.map +1 -0
  168. package/dist/tools/TransformationTool.d.ts +30 -0
  169. package/dist/tools/TransformationTool.d.ts.map +1 -0
  170. package/dist/tools/TransformationTool.js +50 -0
  171. package/dist/tools/TransformationTool.js.map +1 -0
  172. package/dist/tools/index.d.ts +10 -0
  173. package/dist/tools/index.d.ts.map +1 -0
  174. package/dist/tools/index.js +32 -0
  175. package/dist/tools/index.js.map +1 -0
  176. package/dist/tools/types.d.ts +74 -0
  177. package/dist/tools/types.d.ts.map +1 -0
  178. package/dist/tools/types.js +6 -0
  179. package/dist/tools/types.js.map +1 -0
  180. package/dist/transformation/transformers/LayoutOptimizer.d.ts +8 -0
  181. package/dist/transformation/transformers/LayoutOptimizer.d.ts.map +1 -1
  182. package/dist/transformation/transformers/LayoutOptimizer.js +157 -15
  183. package/dist/transformation/transformers/LayoutOptimizer.js.map +1 -1
  184. package/dist/version/VersionManager.d.ts +128 -0
  185. package/dist/version/VersionManager.d.ts.map +1 -0
  186. package/dist/version/VersionManager.js +400 -0
  187. package/dist/version/VersionManager.js.map +1 -0
  188. package/dist/version/index.d.ts +5 -0
  189. package/dist/version/index.d.ts.map +1 -0
  190. package/dist/version/index.js +21 -0
  191. package/dist/version/index.js.map +1 -0
  192. package/package.json +3 -1
  193. package/QUICKSTART.md +0 -178
@@ -0,0 +1,147 @@
1
+ /**
2
+ * 模板管理器
3
+ * 支持自定义代码模板和设计模式库
4
+ */
5
+ export interface Template {
6
+ id: string;
7
+ name: string;
8
+ description: string;
9
+ category: 'component' | 'layout' | 'pattern' | 'utility';
10
+ framework: 'react' | 'vue' | 'both';
11
+ content: string;
12
+ variables: TemplateVariable[];
13
+ metadata: TemplateMetadata;
14
+ }
15
+ export interface TemplateVariable {
16
+ name: string;
17
+ type: 'string' | 'boolean' | 'number' | 'array' | 'object';
18
+ description: string;
19
+ required: boolean;
20
+ default?: any;
21
+ validation?: VariableValidation;
22
+ }
23
+ export interface VariableValidation {
24
+ pattern?: string;
25
+ min?: number;
26
+ max?: number;
27
+ enum?: any[];
28
+ }
29
+ export interface TemplateMetadata {
30
+ author?: string;
31
+ version?: string;
32
+ tags?: string[];
33
+ dependencies?: string[];
34
+ examples?: TemplateExample[];
35
+ }
36
+ export interface TemplateExample {
37
+ name: string;
38
+ description: string;
39
+ variables: Record<string, any>;
40
+ expectedOutput?: string;
41
+ }
42
+ export interface TemplateContext {
43
+ variables: Record<string, any>;
44
+ helpers?: Record<string, (...args: any[]) => any>;
45
+ }
46
+ export interface AppliedTemplate {
47
+ code: string;
48
+ imports: string[];
49
+ dependencies: string[];
50
+ warnings: string[];
51
+ }
52
+ /**
53
+ * 模板管理器
54
+ */
55
+ export declare class TemplateManager {
56
+ private templates;
57
+ private templatePaths;
58
+ constructor(templatePaths?: string[]);
59
+ /**
60
+ * 加载模板目录
61
+ */
62
+ loadTemplatesFromDirectory(dirPath: string): Promise<void>;
63
+ /**
64
+ * 加载单个模板
65
+ */
66
+ loadTemplate(filePath: string): Promise<Template>;
67
+ /**
68
+ * 注册模板
69
+ */
70
+ registerTemplate(template: Template): void;
71
+ /**
72
+ * 获取模板
73
+ */
74
+ getTemplate(id: string): Template | null;
75
+ /**
76
+ * 查询模板
77
+ */
78
+ queryTemplates(query: {
79
+ category?: Template['category'];
80
+ framework?: Template['framework'];
81
+ tags?: string[];
82
+ }): Template[];
83
+ /**
84
+ * 应用模板
85
+ */
86
+ applyTemplate(templateId: string, context: TemplateContext): Promise<AppliedTemplate>;
87
+ /**
88
+ * 验证模板
89
+ */
90
+ private validateTemplate;
91
+ /**
92
+ * 验证变量
93
+ */
94
+ private validateVariables;
95
+ /**
96
+ * 检查类型
97
+ */
98
+ private checkType;
99
+ /**
100
+ * 验证值
101
+ */
102
+ private validateValue;
103
+ /**
104
+ * 替换变量
105
+ */
106
+ private replaceVariables;
107
+ /**
108
+ * 替换条件语句
109
+ */
110
+ private replaceConditionals;
111
+ /**
112
+ * 替换循环语句
113
+ */
114
+ private replaceLoops;
115
+ /**
116
+ * 替换辅助函数
117
+ */
118
+ private replaceHelpers;
119
+ /**
120
+ * 提取导入语句
121
+ */
122
+ private extractImports;
123
+ /**
124
+ * 收集警告
125
+ */
126
+ private collectWarnings;
127
+ /**
128
+ * 列出所有模板
129
+ */
130
+ listTemplates(): Template[];
131
+ /**
132
+ * 导出模板
133
+ */
134
+ exportTemplate(templateId: string, outputPath: string): void;
135
+ /**
136
+ * 创建模板示例
137
+ */
138
+ createTemplateExample(template: Template, exampleName: string): string;
139
+ /**
140
+ * 验证模板语法
141
+ */
142
+ validateTemplateSyntax(content: string): {
143
+ valid: boolean;
144
+ errors: string[];
145
+ };
146
+ }
147
+ //# sourceMappingURL=TemplateManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateManager.d.ts","sourceRoot":"","sources":["../../src/templates/TemplateManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,418 @@
1
+ "use strict";
2
+ /**
3
+ * 模板管理器
4
+ * 支持自定义代码模板和设计模式库
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.TemplateManager = void 0;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ /**
44
+ * 模板管理器
45
+ */
46
+ class TemplateManager {
47
+ constructor(templatePaths) {
48
+ this.templates = new Map();
49
+ this.templatePaths = [];
50
+ this.templatePaths = templatePaths || [];
51
+ }
52
+ /**
53
+ * 加载模板目录
54
+ */
55
+ async loadTemplatesFromDirectory(dirPath) {
56
+ if (!fs.existsSync(dirPath)) {
57
+ throw new Error(`Template directory not found: ${dirPath}`);
58
+ }
59
+ const files = fs.readdirSync(dirPath);
60
+ for (const file of files) {
61
+ if (file.endsWith('.template.json')) {
62
+ const filePath = path.join(dirPath, file);
63
+ await this.loadTemplate(filePath);
64
+ }
65
+ }
66
+ }
67
+ /**
68
+ * 加载单个模板
69
+ */
70
+ async loadTemplate(filePath) {
71
+ const content = fs.readFileSync(filePath, 'utf-8');
72
+ const template = JSON.parse(content);
73
+ // 验证模板
74
+ this.validateTemplate(template);
75
+ // 注册模板
76
+ this.templates.set(template.id, template);
77
+ return template;
78
+ }
79
+ /**
80
+ * 注册模板
81
+ */
82
+ registerTemplate(template) {
83
+ this.validateTemplate(template);
84
+ this.templates.set(template.id, template);
85
+ }
86
+ /**
87
+ * 获取模板
88
+ */
89
+ getTemplate(id) {
90
+ return this.templates.get(id) || null;
91
+ }
92
+ /**
93
+ * 查询模板
94
+ */
95
+ queryTemplates(query) {
96
+ let results = Array.from(this.templates.values());
97
+ if (query.category) {
98
+ results = results.filter((t) => t.category === query.category);
99
+ }
100
+ if (query.framework) {
101
+ results = results.filter((t) => t.framework === query.framework || t.framework === 'both');
102
+ }
103
+ if (query.tags && query.tags.length > 0) {
104
+ results = results.filter((t) => query.tags.some((tag) => t.metadata.tags?.includes(tag)));
105
+ }
106
+ return results;
107
+ }
108
+ /**
109
+ * 应用模板
110
+ */
111
+ async applyTemplate(templateId, context) {
112
+ const template = this.getTemplate(templateId);
113
+ if (!template) {
114
+ throw new Error(`Template not found: ${templateId}`);
115
+ }
116
+ // 验证变量
117
+ this.validateVariables(template, context.variables);
118
+ // 替换变量
119
+ const code = this.replaceVariables(template.content, context);
120
+ // 提取导入语句
121
+ const imports = this.extractImports(code);
122
+ // 收集依赖
123
+ const dependencies = template.metadata.dependencies || [];
124
+ // 收集警告
125
+ const warnings = this.collectWarnings(template, context);
126
+ return {
127
+ code,
128
+ imports,
129
+ dependencies,
130
+ warnings,
131
+ };
132
+ }
133
+ /**
134
+ * 验证模板
135
+ */
136
+ validateTemplate(template) {
137
+ if (!template.id) {
138
+ throw new Error('Template must have an id');
139
+ }
140
+ if (!template.name) {
141
+ throw new Error('Template must have a name');
142
+ }
143
+ if (!template.content) {
144
+ throw new Error('Template must have content');
145
+ }
146
+ if (!template.variables) {
147
+ template.variables = [];
148
+ }
149
+ if (!template.metadata) {
150
+ template.metadata = {};
151
+ }
152
+ }
153
+ /**
154
+ * 验证变量
155
+ */
156
+ validateVariables(template, variables) {
157
+ for (const varDef of template.variables) {
158
+ const value = variables[varDef.name];
159
+ // 检查必需变量
160
+ if (varDef.required && value === undefined) {
161
+ throw new Error(`Required variable missing: ${varDef.name}`);
162
+ }
163
+ // 跳过未提供的可选变量
164
+ if (value === undefined) {
165
+ continue;
166
+ }
167
+ // 类型检查
168
+ if (!this.checkType(value, varDef.type)) {
169
+ throw new Error(`Variable ${varDef.name} has wrong type. Expected ${varDef.type}, got ${typeof value}`);
170
+ }
171
+ // 验证规则
172
+ if (varDef.validation) {
173
+ this.validateValue(varDef.name, value, varDef.validation);
174
+ }
175
+ }
176
+ }
177
+ /**
178
+ * 检查类型
179
+ */
180
+ checkType(value, expectedType) {
181
+ switch (expectedType) {
182
+ case 'string':
183
+ return typeof value === 'string';
184
+ case 'boolean':
185
+ return typeof value === 'boolean';
186
+ case 'number':
187
+ return typeof value === 'number';
188
+ case 'array':
189
+ return Array.isArray(value);
190
+ case 'object':
191
+ return typeof value === 'object' && !Array.isArray(value);
192
+ default:
193
+ return false;
194
+ }
195
+ }
196
+ /**
197
+ * 验证值
198
+ */
199
+ validateValue(name, value, validation) {
200
+ // 正则验证
201
+ if (validation.pattern && typeof value === 'string') {
202
+ const regex = new RegExp(validation.pattern);
203
+ if (!regex.test(value)) {
204
+ throw new Error(`Variable ${name} does not match pattern: ${validation.pattern}`);
205
+ }
206
+ }
207
+ // 最小值验证
208
+ if (validation.min !== undefined) {
209
+ if (typeof value === 'number' && value < validation.min) {
210
+ throw new Error(`Variable ${name} is less than minimum: ${validation.min}`);
211
+ }
212
+ if (typeof value === 'string' && value.length < validation.min) {
213
+ throw new Error(`Variable ${name} length is less than minimum: ${validation.min}`);
214
+ }
215
+ if (Array.isArray(value) && value.length < validation.min) {
216
+ throw new Error(`Variable ${name} array length is less than minimum: ${validation.min}`);
217
+ }
218
+ }
219
+ // 最大值验证
220
+ if (validation.max !== undefined) {
221
+ if (typeof value === 'number' && value > validation.max) {
222
+ throw new Error(`Variable ${name} is greater than maximum: ${validation.max}`);
223
+ }
224
+ if (typeof value === 'string' && value.length > validation.max) {
225
+ throw new Error(`Variable ${name} length is greater than maximum: ${validation.max}`);
226
+ }
227
+ if (Array.isArray(value) && value.length > validation.max) {
228
+ throw new Error(`Variable ${name} array length is greater than maximum: ${validation.max}`);
229
+ }
230
+ }
231
+ // 枚举验证
232
+ if (validation.enum && !validation.enum.includes(value)) {
233
+ throw new Error(`Variable ${name} must be one of: ${validation.enum.join(', ')}`);
234
+ }
235
+ }
236
+ /**
237
+ * 替换变量
238
+ */
239
+ replaceVariables(content, context) {
240
+ let result = content;
241
+ // 替换简单变量 {{variableName}}
242
+ result = result.replace(/\{\{(\w+)\}\}/g, (match, varName) => {
243
+ const value = context.variables[varName];
244
+ return value !== undefined ? String(value) : match;
245
+ });
246
+ // 替换条件语句 {{#if condition}}...{{/if}}
247
+ result = this.replaceConditionals(result, context);
248
+ // 替换循环语句 {{#each items}}...{{/each}}
249
+ result = this.replaceLoops(result, context);
250
+ // 替换辅助函数 {{helper arg1 arg2}}
251
+ result = this.replaceHelpers(result, context);
252
+ return result;
253
+ }
254
+ /**
255
+ * 替换条件语句
256
+ */
257
+ replaceConditionals(content, context) {
258
+ const regex = /\{\{#if\s+(\w+)\}\}([\s\S]*?)\{\{\/if\}\}/g;
259
+ return content.replace(regex, (match, condition, body) => {
260
+ const value = context.variables[condition];
261
+ return value ? body : '';
262
+ });
263
+ }
264
+ /**
265
+ * 替换循环语句
266
+ */
267
+ replaceLoops(content, context) {
268
+ const regex = /\{\{#each\s+(\w+)\}\}([\s\S]*?)\{\{\/each\}\}/g;
269
+ return content.replace(regex, (match, arrayName, body) => {
270
+ const array = context.variables[arrayName];
271
+ if (!Array.isArray(array)) {
272
+ return '';
273
+ }
274
+ return array
275
+ .map((item, index) => {
276
+ let itemBody = body;
277
+ // 替换 {{this}}
278
+ itemBody = itemBody.replace(/\{\{this\}\}/g, String(item));
279
+ // 替换 {{@index}}
280
+ itemBody = itemBody.replace(/\{\{@index\}\}/g, String(index));
281
+ // 如果 item 是对象,替换 {{this.property}}
282
+ if (typeof item === 'object') {
283
+ for (const [key, value] of Object.entries(item)) {
284
+ const regex = new RegExp(`\\{\\{this\\.${key}\\}\\}`, 'g');
285
+ itemBody = itemBody.replace(regex, String(value));
286
+ }
287
+ }
288
+ return itemBody;
289
+ })
290
+ .join('');
291
+ });
292
+ }
293
+ /**
294
+ * 替换辅助函数
295
+ */
296
+ replaceHelpers(content, context) {
297
+ if (!context.helpers) {
298
+ return content;
299
+ }
300
+ const regex = /\{\{(\w+)\s+(.*?)\}\}/g;
301
+ return content.replace(regex, (match, helperName, args) => {
302
+ const helper = context.helpers[helperName];
303
+ if (!helper) {
304
+ return match;
305
+ }
306
+ // 解析参数
307
+ const parsedArgs = args.split(/\s+/).map((arg) => {
308
+ // 如果是变量引用
309
+ if (context.variables[arg] !== undefined) {
310
+ return context.variables[arg];
311
+ }
312
+ // 如果是字符串字面量
313
+ if (arg.startsWith('"') && arg.endsWith('"')) {
314
+ return arg.slice(1, -1);
315
+ }
316
+ // 如果是数字
317
+ if (!isNaN(Number(arg))) {
318
+ return Number(arg);
319
+ }
320
+ return arg;
321
+ });
322
+ try {
323
+ return String(helper(...parsedArgs));
324
+ }
325
+ catch (error) {
326
+ console.error(`Helper ${helperName} failed:`, error);
327
+ return match;
328
+ }
329
+ });
330
+ }
331
+ /**
332
+ * 提取导入语句
333
+ */
334
+ extractImports(code) {
335
+ const imports = [];
336
+ const importRegex = /^import\s+.*?from\s+['"].*?['"];?$/gm;
337
+ let match;
338
+ while ((match = importRegex.exec(code)) !== null) {
339
+ imports.push(match[0]);
340
+ }
341
+ return imports;
342
+ }
343
+ /**
344
+ * 收集警告
345
+ */
346
+ collectWarnings(template, context) {
347
+ const warnings = [];
348
+ // 检查未使用的变量
349
+ for (const varDef of template.variables) {
350
+ if (!varDef.required && context.variables[varDef.name] === undefined) {
351
+ warnings.push(`Optional variable '${varDef.name}' not provided, using default`);
352
+ }
353
+ }
354
+ // 检查缺失的依赖
355
+ if (template.metadata.dependencies && template.metadata.dependencies.length > 0) {
356
+ warnings.push(`This template requires dependencies: ${template.metadata.dependencies.join(', ')}`);
357
+ }
358
+ return warnings;
359
+ }
360
+ /**
361
+ * 列出所有模板
362
+ */
363
+ listTemplates() {
364
+ return Array.from(this.templates.values());
365
+ }
366
+ /**
367
+ * 导出模板
368
+ */
369
+ exportTemplate(templateId, outputPath) {
370
+ const template = this.getTemplate(templateId);
371
+ if (!template) {
372
+ throw new Error(`Template not found: ${templateId}`);
373
+ }
374
+ const json = JSON.stringify(template, null, 2);
375
+ fs.writeFileSync(outputPath, json, 'utf-8');
376
+ }
377
+ /**
378
+ * 创建模板示例
379
+ */
380
+ createTemplateExample(template, exampleName) {
381
+ const example = template.metadata.examples?.find((e) => e.name === exampleName);
382
+ if (!example) {
383
+ throw new Error(`Example not found: ${exampleName}`);
384
+ }
385
+ const context = {
386
+ variables: example.variables,
387
+ };
388
+ return this.replaceVariables(template.content, context);
389
+ }
390
+ /**
391
+ * 验证模板语法
392
+ */
393
+ validateTemplateSyntax(content) {
394
+ const errors = [];
395
+ // 检查未闭合的标签
396
+ const openIf = (content.match(/\{\{#if/g) || []).length;
397
+ const closeIf = (content.match(/\{\{\/if\}\}/g) || []).length;
398
+ if (openIf !== closeIf) {
399
+ errors.push(`Unclosed {{#if}} tags: ${openIf} open, ${closeIf} close`);
400
+ }
401
+ const openEach = (content.match(/\{\{#each/g) || []).length;
402
+ const closeEach = (content.match(/\{\{\/each\}\}/g) || []).length;
403
+ if (openEach !== closeEach) {
404
+ errors.push(`Unclosed {{#each}} tags: ${openEach} open, ${closeEach} close`);
405
+ }
406
+ // 检查变量语法
407
+ const invalidVars = content.match(/\{\{[^}]*\{\{/g);
408
+ if (invalidVars) {
409
+ errors.push(`Invalid nested variables: ${invalidVars.join(', ')}`);
410
+ }
411
+ return {
412
+ valid: errors.length === 0,
413
+ errors,
414
+ };
415
+ }
416
+ }
417
+ exports.TemplateManager = TemplateManager;
418
+ //# sourceMappingURL=TemplateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateManager.js","sourceRoot":"","sources":["../../src/templates/TemplateManager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAwD7B;;GAEG;AACH,MAAa,eAAe;IAI1B,YAAY,aAAwB;QAH5B,cAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;QAC7C,kBAAa,GAAa,EAAE,CAAC;QAGnC,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,0BAA0B,CAAC,OAAe;QAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC1C,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAa,CAAC;QAEjD,OAAO;QACP,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAEhC,OAAO;QACP,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAAkB;QACjC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAId;QACC,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAElD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC7B,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC1D,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,UAAkB,EAClB,OAAwB;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,OAAO;QACP,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAEpD,OAAO;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9D,SAAS;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE1C,OAAO;QACP,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;QAE1D,OAAO;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzD,OAAO;YACL,IAAI;YACJ,OAAO;YACP,YAAY;YACZ,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,QAAkB;QACzC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,QAAkB,EAAE,SAA8B;QAC1E,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAErC,SAAS;YACT,IAAI,MAAM,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,aAAa;YACb,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,OAAO;YACP,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,YAAY,MAAM,CAAC,IAAI,6BAA6B,MAAM,CAAC,IAAI,SAAS,OAAO,KAAK,EAAE,CACvF,CAAC;YACJ,CAAC;YAED,OAAO;YACP,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,KAAU,EAAE,YAAsC;QAClE,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;YACnC,KAAK,SAAS;gBACZ,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;YACpC,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;YACnC,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,QAAQ;gBACX,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5D;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa,CACnB,IAAY,EACZ,KAAU,EACV,UAA8B;QAE9B,OAAO;QACP,IAAI,UAAU,CAAC,OAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,4BAA4B,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,0BAA0B,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC/D,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,iCAAiC,UAAU,CAAC,GAAG,EAAE,CAClE,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,uCAAuC,UAAU,CAAC,GAAG,EAAE,CACxE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,6BAA6B,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC/D,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,oCAAoC,UAAU,CAAC,GAAG,EAAE,CACrE,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,0CAA0C,UAAU,CAAC,GAAG,EAAE,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;QACP,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,YAAY,IAAI,oBAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAe,EAAE,OAAwB;QAChE,IAAI,MAAM,GAAG,OAAO,CAAC;QAErB,0BAA0B;QAC1B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnD,qCAAqC;QACrC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE5C,8BAA8B;QAC9B,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE9C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,OAAe,EAAE,OAAwB;QACnE,MAAM,KAAK,GAAG,4CAA4C,CAAC;QAE3D,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YACvD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,OAAe,EAAE,OAAwB;QAC5D,MAAM,KAAK,GAAG,gDAAgD,CAAC;QAE/D,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YACvD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAE3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,KAAK;iBACT,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACnB,IAAI,QAAQ,GAAG,IAAI,CAAC;gBAEpB,cAAc;gBACd,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE3D,gBAAgB;gBAChB,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE9D,mCAAmC;gBACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,gBAAgB,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAC3D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,OAAe,EAAE,OAAwB;QAC9D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,KAAK,GAAG,wBAAwB,CAAC;QAEvC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAQ,CAAC,UAAU,CAAC,CAAC;YAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO;YACP,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,EAAE;gBACvD,UAAU;gBACV,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBACzC,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;gBACD,YAAY;gBACZ,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7C,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;gBACD,QAAQ;gBACR,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACxB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,UAAU,UAAU,UAAU,EAAE,KAAK,CAAC,CAAC;gBACrD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,IAAY;QACjC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,sCAAsC,CAAC;QAE3D,IAAI,KAAK,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,QAAkB,EAAE,OAAwB;QAClE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,WAAW;QACX,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrE,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,IAAI,+BAA+B,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,UAAU;QACV,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChF,QAAQ,CAAC,IAAI,CACX,wCAAwC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,UAAkB,EAAE,UAAkB;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,QAAkB,EAAE,WAAmB;QAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAEhF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,OAAO,GAAoB;YAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,OAAe;QACpC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,WAAW;QACX,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACxD,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC9D,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,0BAA0B,MAAM,UAAU,OAAO,QAAQ,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAC5D,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAClE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,UAAU,SAAS,QAAQ,CAAC,CAAC;QAC/E,CAAC;QAED,SAAS;QACT,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,6BAA6B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,MAAM;SACP,CAAC;IACJ,CAAC;CACF;AA9dD,0CA8dC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * 模板系统
3
+ * 支持自定义代码模板和设计模式库
4
+ */
5
+ export { TemplateManager, type Template, type TemplateVariable, type VariableValidation, type TemplateMetadata, type TemplateExample, type TemplateContext, type AppliedTemplate, } from './TemplateManager';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * 模板系统
4
+ * 支持自定义代码模板和设计模式库
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TemplateManager = void 0;
8
+ var TemplateManager_1 = require("./TemplateManager");
9
+ Object.defineProperty(exports, "TemplateManager", { enumerable: true, get: function () { return TemplateManager_1.TemplateManager; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,qDAS2B;AARzB,kHAAA,eAAe,OAAA"}
@@ -0,0 +1,32 @@
1
+ import type { ASTNode } from '../transformation/types';
2
+ import type { GeneratorConfig, GeneratedFile } from '../generation/types';
3
+ import type { Tool, ToolMetadata } from './types';
4
+ /**
5
+ * 代码生成工具
6
+ * 封装 ReactGenerator 和 VueGenerator
7
+ */
8
+ export declare class CodeGenerationTool implements Tool {
9
+ name: string;
10
+ description: string;
11
+ category: "generation";
12
+ capabilities: string[];
13
+ private reactGenerator;
14
+ private vueGenerator;
15
+ constructor();
16
+ /**
17
+ * 检查工具是否可用
18
+ */
19
+ isAvailable(): Promise<boolean>;
20
+ /**
21
+ * 执行工具
22
+ */
23
+ execute(inputs: {
24
+ node: ASTNode;
25
+ config: GeneratorConfig;
26
+ }): Promise<GeneratedFile[]>;
27
+ /**
28
+ * 获取工具元数据
29
+ */
30
+ getMetadata(): ToolMetadata;
31
+ }
32
+ //# sourceMappingURL=CodeGenerationTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeGenerationTool.d.ts","sourceRoot":"","sources":["../../src/tools/CodeGenerationTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAElD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,IAAI;IAC7C,IAAI,SAAqB;IACzB,WAAW,SAAyC;IACpD,QAAQ,EAAG,YAAY,CAAU;IACjC,YAAY,WAA6D;IAEzE,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;;IAOnC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,OAAO,CAAC;QACd,MAAM,EAAE,eAAe,CAAC;KACzB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAqB5B;;OAEG;IACH,WAAW,IAAI,YAAY;CAa5B"}