apprecio-mcp-base 1.2.8 → 2.0.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.
- package/cli/README.md +135 -0
- package/cli/dist/generate-feature.js +68 -51
- package/cli/dist/generate-feature.js.map +1 -1
- package/cli/dist/generators/feature-generator.d.ts +1 -1
- package/cli/dist/generators/feature-generator.d.ts.map +1 -1
- package/cli/dist/generators/feature-generator.js +2 -1
- package/cli/dist/generators/feature-generator.js.map +1 -1
- package/cli/dist/generators/init-generator.d.ts.map +1 -1
- package/cli/dist/generators/init-generator.js +20 -19
- package/cli/dist/generators/init-generator.js.map +1 -1
- package/cli/dist/generators/main-updater.js.map +1 -1
- package/cli/dist/generators/router-generator.d.ts +1 -1
- package/cli/dist/generators/router-generator.d.ts.map +1 -1
- package/cli/dist/generators/router-generator.js +34 -37
- package/cli/dist/generators/router-generator.js.map +1 -1
- package/cli/dist/generators/service-generator.d.ts +1 -1
- package/cli/dist/generators/service-generator.d.ts.map +1 -1
- package/cli/dist/generators/service-generator.js +21 -33
- package/cli/dist/generators/service-generator.js.map +1 -1
- package/cli/dist/generators/tool-generator.d.ts +3 -0
- package/cli/dist/generators/tool-generator.d.ts.map +1 -0
- package/cli/dist/generators/tool-generator.js +88 -0
- package/cli/dist/generators/tool-generator.js.map +1 -0
- package/cli/dist/generators/validation-generator.d.ts +1 -1
- package/cli/dist/generators/validation-generator.d.ts.map +1 -1
- package/cli/dist/generators/validation-generator.js +7 -6
- package/cli/dist/generators/validation-generator.js.map +1 -1
- package/cli/dist/utils/constants.d.ts +18 -0
- package/cli/dist/utils/constants.d.ts.map +1 -0
- package/cli/dist/utils/constants.js +32 -0
- package/cli/dist/utils/constants.js.map +1 -0
- package/cli/dist/{types.d.ts → utils/types.d.ts} +23 -0
- package/cli/dist/utils/types.d.ts.map +1 -0
- package/cli/dist/utils/types.js.map +1 -0
- package/package.json +1 -1
- package/cli/dist/types.d.ts.map +0 -1
- package/cli/dist/types.js.map +0 -1
- /package/cli/dist/{types.js → utils/types.js} +0 -0
package/cli/README.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Apprecio MCP CLI 🚀
|
|
2
|
+
|
|
3
|
+
Herramienta de línea de comandos para automatizar la creación y gestión de servidores MCP (Model Context Protocol) bajo la arquitectura Apprecio.
|
|
4
|
+
|
|
5
|
+
## 📋 Características
|
|
6
|
+
|
|
7
|
+
- **Scaffolding de Proyecto**: Crea nuevos servidores MCP con estructura lista para producción.
|
|
8
|
+
- **Generación de Features**: Crea módulos completos (Route + Service + Validation) con un solo comando.
|
|
9
|
+
- **Gestión de Tools**: Agrega nuevos tools a features existentes de forma interactiva.
|
|
10
|
+
- **Arquitectura Modular**: Sigue estrictamente los patrones de diseño de Apprecio (Separation of Concerns).
|
|
11
|
+
|
|
12
|
+
## 🛠 Instalación
|
|
13
|
+
|
|
14
|
+
Si estás desarrollando el CLI localmente:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# En la carpeta raíz del proyecto base
|
|
18
|
+
npm run build:cli
|
|
19
|
+
npm link
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 🚀 Comandos
|
|
23
|
+
|
|
24
|
+
### 1. Inicializar Proyecto (`init`)
|
|
25
|
+
|
|
26
|
+
Crea un nuevo servidor MCP desde cero.
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
mcp-generate init
|
|
30
|
+
```
|
|
31
|
+
**Opciones interactivas**:
|
|
32
|
+
- Nombre y ruta del proyecto.
|
|
33
|
+
- Soporte para MongoDB (opcional).
|
|
34
|
+
- Configuración automática de variables de entorno (`.env`).
|
|
35
|
+
|
|
36
|
+
### 2. Generar Feature (`feature`)
|
|
37
|
+
|
|
38
|
+
Genera un módulo vertical completo.
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
mcp-generate feature
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Flujo de Generación**:
|
|
45
|
+
```mermaid
|
|
46
|
+
flowchart TD
|
|
47
|
+
A[Inicio: mcp-generate feature] --> B{Solicitar Datos}
|
|
48
|
+
B --> C[Nombre: featureName]
|
|
49
|
+
B --> D[Tipo de Servicio]
|
|
50
|
+
B --> E[Selección de Tools]
|
|
51
|
+
|
|
52
|
+
E --> F[Generador Principal]
|
|
53
|
+
|
|
54
|
+
subgraph Generación de Archivos
|
|
55
|
+
direction TB
|
|
56
|
+
F --> G[Validation Generator]
|
|
57
|
+
G --> |Crea Zod Schemas| H[feature.validation.ts]
|
|
58
|
+
|
|
59
|
+
F --> I[Service Generator]
|
|
60
|
+
I --> |Crea Clase Service| J[feature.service.ts]
|
|
61
|
+
H -.-> J
|
|
62
|
+
|
|
63
|
+
F --> K[Router Generator]
|
|
64
|
+
K --> |Registra Tools en MCP| L[feature.feature.ts]
|
|
65
|
+
H -.-> L
|
|
66
|
+
J -.-> L
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
L --> M[Main Updater]
|
|
70
|
+
M --> |Inyecta en main.ts| N[Registro Automático]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 3. Agregar Tool (`tool`)
|
|
74
|
+
|
|
75
|
+
Agrega una funcionalidad específica a una feature existente.
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
mcp-generate tool
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Flujo de Creación**:
|
|
82
|
+
```mermaid
|
|
83
|
+
sequenceDiagram
|
|
84
|
+
participant User
|
|
85
|
+
participant CLI
|
|
86
|
+
participant Router as Router File (.feature.ts)
|
|
87
|
+
participant Validation as Validation File (.validation.ts)
|
|
88
|
+
participant Service as Service File (.service.ts)
|
|
89
|
+
|
|
90
|
+
User->>CLI: mcp-generate tool
|
|
91
|
+
CLI->>User: Seleccionar Feature
|
|
92
|
+
CLI->>User: Nombre del Tool (ej: approve_invoice)
|
|
93
|
+
|
|
94
|
+
par Actualizar Archivos
|
|
95
|
+
CLI->>Validation: Agregar Schema Zod (Input)
|
|
96
|
+
CLI->>Service: Agregar Método (Business Logic)
|
|
97
|
+
CLI->>Router: Registrar Tool en McpServer
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
Router-->>CLI: Tool Registrado
|
|
101
|
+
CLI->>User: ✅ Tool completado
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 📂 Estructura del CLI
|
|
105
|
+
|
|
106
|
+
El código fuente del CLI se encuentra organizado para facilitar su mantenimiento y extensión:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
cli/
|
|
110
|
+
├── generators/ # Lógica de generación
|
|
111
|
+
│ ├── feature-generator.ts
|
|
112
|
+
│ ├── init-generator.ts
|
|
113
|
+
│ ├── main-updater.ts
|
|
114
|
+
│ ├── router-generator.ts
|
|
115
|
+
│ ├── service-generator.ts
|
|
116
|
+
│ ├── tool-generator.ts <-- (Nuevo) Lógica aislada de tools
|
|
117
|
+
│ └── validation-generator.ts
|
|
118
|
+
├── utils/ # Utilidades compartidas
|
|
119
|
+
│ ├── constants.ts <-- Configuración centralizada
|
|
120
|
+
│ ├── naming.ts <-- Helpers (camelCase, PascalCase)
|
|
121
|
+
│ └── types.ts <-- Definiciones TypeScript
|
|
122
|
+
└── generate-feature.ts # Punto de entrada (Entry Point)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## 🔧 Desarrollo y Extensión
|
|
126
|
+
|
|
127
|
+
### Agregar un nuevo tipo de servicio
|
|
128
|
+
1. Editar `cli/utils/constants.ts` y agregar el tipo en `SERVICE_TYPES`.
|
|
129
|
+
2. Actualizar `cli/generators/service-generator.ts` para manejar la lógica de generación del nuevo tipo.
|
|
130
|
+
|
|
131
|
+
### Modificar templates
|
|
132
|
+
Los "templates" son strings literales dentro de cada generador (`generators/*.ts`). Modifica estos archivos para cambiar la estructura del código generado.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
Generado por **Apprecio MCP Team**
|
|
@@ -7,6 +7,8 @@ import fs from 'fs-extra';
|
|
|
7
7
|
import { generateFeature } from './generators/feature-generator.js';
|
|
8
8
|
import { updateMainFile } from './generators/main-updater.js';
|
|
9
9
|
import { initProject } from './generators/init-generator.js';
|
|
10
|
+
import { generateTool } from './generators/tool-generator.js';
|
|
11
|
+
import { SERVICE_TYPES, TOOLS } from './utils/constants.js';
|
|
10
12
|
const program = new Command();
|
|
11
13
|
program
|
|
12
14
|
.name('mcp-generate')
|
|
@@ -75,13 +77,15 @@ program
|
|
|
75
77
|
]);
|
|
76
78
|
try {
|
|
77
79
|
console.log(chalk.yellow('\n📦 Creando proyecto...\n'));
|
|
80
|
+
// Tipado explícito para answers
|
|
81
|
+
const typedAnswers = answers;
|
|
78
82
|
await initProject({
|
|
79
|
-
projectName:
|
|
80
|
-
projectPath:
|
|
81
|
-
description:
|
|
82
|
-
author:
|
|
83
|
-
useDatabase:
|
|
84
|
-
apiBaseUrl:
|
|
83
|
+
projectName: typedAnswers.projectName,
|
|
84
|
+
projectPath: typedAnswers.projectPath,
|
|
85
|
+
description: typedAnswers.description,
|
|
86
|
+
author: typedAnswers.author,
|
|
87
|
+
useDatabase: typedAnswers.useDatabase,
|
|
88
|
+
apiBaseUrl: typedAnswers.apiBaseUrl
|
|
85
89
|
});
|
|
86
90
|
console.log(chalk.green('\n✅ ¡Proyecto creado exitosamente!\n'));
|
|
87
91
|
// Preguntar si quiere instalar dependencias automáticamente
|
|
@@ -127,37 +131,36 @@ program
|
|
|
127
131
|
}
|
|
128
132
|
}
|
|
129
133
|
// Ejecutar npm install de forma síncrona para esperar a que termine
|
|
130
|
-
execSync('
|
|
134
|
+
execSync('npm install', {
|
|
131
135
|
cwd: answers.projectPath,
|
|
132
136
|
stdio: 'inherit', // Muestra el output en tiempo real
|
|
133
137
|
encoding: 'utf-8'
|
|
134
138
|
});
|
|
135
139
|
console.log(chalk.green('\n✅ Dependencias instaladas correctamente\n'));
|
|
136
|
-
// Preguntar si quiere linkear apprecio-mcp-base
|
|
137
|
-
const linkAnswer = await inquirer.prompt([
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
]);
|
|
145
|
-
if (linkAnswer.linkBase) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
140
|
+
// // Preguntar si quiere linkear apprecio-mcp-base
|
|
141
|
+
// const linkAnswer = await inquirer.prompt([
|
|
142
|
+
// {
|
|
143
|
+
// type: 'confirm',
|
|
144
|
+
// name: 'linkBase',
|
|
145
|
+
// message: '¿Linkear apprecio-mcp-base local? (npm link apprecio-mcp-base)',
|
|
146
|
+
// default: true
|
|
147
|
+
// }
|
|
148
|
+
// ]);
|
|
149
|
+
// if (linkAnswer.linkBase) {
|
|
150
|
+
// console.log(chalk.yellow('\n🔗 Linkeando apprecio-mcp-base...\n'));
|
|
151
|
+
// try {
|
|
152
|
+
// execSync('npm link apprecio-mcp-base', {
|
|
153
|
+
// cwd: answers.projectPath,
|
|
154
|
+
// stdio: 'inherit',
|
|
155
|
+
// encoding: 'utf-8'
|
|
156
|
+
// });
|
|
157
|
+
// console.log(chalk.green('\n✅ apprecio-mcp-base linkeado correctamente\n'));
|
|
158
|
+
// } catch (linkError: any) {
|
|
159
|
+
// console.log(chalk.yellow('\n⚠️ Error linkeando apprecio-mcp-base'));
|
|
160
|
+
// console.log(chalk.white(' Asegúrate de haber ejecutado en apprecio-mcp-base:'));
|
|
161
|
+
// console.log(chalk.cyan(' cd apprecio-mcp-base && npm run build && npm link\n'));
|
|
162
|
+
// }
|
|
163
|
+
// }
|
|
161
164
|
}
|
|
162
165
|
catch (error) {
|
|
163
166
|
console.log(chalk.red('\n❌ Error instalando dependencias:', error.message));
|
|
@@ -239,25 +242,25 @@ program
|
|
|
239
242
|
name: 'serviceType',
|
|
240
243
|
message: 'Tipo de service:',
|
|
241
244
|
choices: [
|
|
242
|
-
{ name: 'API Client (llamadas HTTP)', value:
|
|
243
|
-
{ name: 'Database (MongoDB)', value:
|
|
244
|
-
{ name: 'Mixed (API + DB)', value:
|
|
245
|
-
{ name: 'Custom', value:
|
|
245
|
+
{ name: 'API Client (llamadas HTTP)', value: SERVICE_TYPES.API },
|
|
246
|
+
{ name: 'Database (MongoDB)', value: SERVICE_TYPES.DATABASE },
|
|
247
|
+
{ name: 'Mixed (API + DB)', value: SERVICE_TYPES.MIXED },
|
|
248
|
+
{ name: 'Custom', value: SERVICE_TYPES.CUSTOM }
|
|
246
249
|
],
|
|
247
250
|
when: (answers) => answers.needsService,
|
|
248
|
-
default:
|
|
251
|
+
default: SERVICE_TYPES.API
|
|
249
252
|
},
|
|
250
253
|
{
|
|
251
254
|
type: 'checkbox',
|
|
252
255
|
name: 'tools',
|
|
253
256
|
message: 'Selecciona los tools a generar:',
|
|
254
257
|
choices: [
|
|
255
|
-
{ name: 'list (listar items)', value:
|
|
256
|
-
{ name: 'get (obtener un item)', value:
|
|
257
|
-
{ name: 'create (crear item)', value:
|
|
258
|
-
{ name: 'update (actualizar item)', value:
|
|
259
|
-
{ name: 'delete (eliminar item)', value:
|
|
260
|
-
{ name: 'search (buscar items)', value:
|
|
258
|
+
{ name: 'list (listar items)', value: TOOLS.LIST, checked: true },
|
|
259
|
+
{ name: 'get (obtener un item)', value: TOOLS.GET, checked: true },
|
|
260
|
+
{ name: 'create (crear item)', value: TOOLS.CREATE, checked: true },
|
|
261
|
+
{ name: 'update (actualizar item)', value: TOOLS.UPDATE, checked: true },
|
|
262
|
+
{ name: 'delete (eliminar item)', value: TOOLS.DELETE },
|
|
263
|
+
{ name: 'search (buscar items)', value: TOOLS.SEARCH }
|
|
261
264
|
],
|
|
262
265
|
validate: (input) => {
|
|
263
266
|
if (input.length === 0)
|
|
@@ -282,21 +285,22 @@ program
|
|
|
282
285
|
console.log(chalk.yellow('\n📝 Generando archivos...\n'));
|
|
283
286
|
const featurePath = path.join(process.cwd(), 'src', 'features', answers.featureName);
|
|
284
287
|
await fs.ensureDir(featurePath);
|
|
288
|
+
const typedAnswers = answers;
|
|
285
289
|
const files = await generateFeature({
|
|
286
|
-
featureName:
|
|
287
|
-
featureDescription:
|
|
288
|
-
entityName:
|
|
289
|
-
tools:
|
|
290
|
-
serviceType:
|
|
290
|
+
featureName: typedAnswers.featureName,
|
|
291
|
+
featureDescription: typedAnswers.featureDescription,
|
|
292
|
+
entityName: typedAnswers.entityName,
|
|
293
|
+
tools: typedAnswers.tools,
|
|
294
|
+
serviceType: typedAnswers.needsService ? typedAnswers.serviceType : SERVICE_TYPES.NONE,
|
|
291
295
|
featurePath
|
|
292
296
|
});
|
|
293
297
|
console.log(chalk.green('✅ Archivos generados:\n'));
|
|
294
298
|
files.forEach((file) => {
|
|
295
299
|
console.log(chalk.gray(` ${file}`));
|
|
296
300
|
});
|
|
297
|
-
if (
|
|
301
|
+
if (typedAnswers.updateMain) {
|
|
298
302
|
console.log(chalk.yellow('\n🔄 Actualizando main.ts...\n'));
|
|
299
|
-
await updateMainFile(
|
|
303
|
+
await updateMainFile(typedAnswers.featureName, typedAnswers.entityName);
|
|
300
304
|
console.log(chalk.green('✅ main.ts actualizado\n'));
|
|
301
305
|
}
|
|
302
306
|
console.log(chalk.blue.bold('\n📚 Próximos pasos:\n'));
|
|
@@ -358,7 +362,20 @@ program
|
|
|
358
362
|
default: true
|
|
359
363
|
}
|
|
360
364
|
]);
|
|
361
|
-
|
|
365
|
+
try {
|
|
366
|
+
const typedAnswers = answers;
|
|
367
|
+
await generateTool({
|
|
368
|
+
featureName: typedAnswers.feature,
|
|
369
|
+
toolName: typedAnswers.toolName,
|
|
370
|
+
toolDescription: typedAnswers.toolDescription,
|
|
371
|
+
addToService: typedAnswers.addToService
|
|
372
|
+
});
|
|
373
|
+
console.log(chalk.green(`\n✅ Tool ${typedAnswers.toolName} agregado a ${typedAnswers.feature}\n`));
|
|
374
|
+
}
|
|
375
|
+
catch (error) {
|
|
376
|
+
console.error(chalk.red('\n❌ Error generando tool:'), error.message);
|
|
377
|
+
process.exit(1);
|
|
378
|
+
}
|
|
362
379
|
});
|
|
363
380
|
program.parse();
|
|
364
381
|
//# sourceMappingURL=generate-feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-feature.js","sourceRoot":"","sources":["../generate-feature.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,2DAA2D,CAAC;KACxE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAEtE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAClC;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,sBAAsB;YAC/B,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,CAAC,KAAK;oBAAE,OAAO,wBAAwB,CAAC;gBAC5C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnC,OAAO,oEAAoE,CAAC;gBAChF,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,+BAA+B;YACxC,OAAO,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,WAAW,EAAE;YACrD,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACtB,IAAI,CAAC,KAAK;oBAAE,OAAO,sBAAsB,CAAC;gBAC1C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,MAAM,EAAE,CAAC;oBACT,OAAO,YAAY,KAAK,oCAAoC,CAAC;gBACjE,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,2BAA2B;YACpC,OAAO,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,kBAAkB,OAAO,CAAC,WAAW,EAAE;SACrE;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,EAAE;SACd;QACD;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,KAAK;SACjB;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,qBAAqB;YAC9B,OAAO,EAAE,yBAAyB;YAClC,IAAI,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;SAC/C;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAExD,MAAM,WAAW,CAAC;YACd,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU;SACjC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAEjE,4DAA4D;QAC5D,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,6CAA6C;gBACtD,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mEAAmE,CAAC,CAAC,CAAC;YAE/F,IAAI,CAAC;gBACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;gBAEnD,gEAAgE;gBAChE,IAAI,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;oBACzD,QAAQ,CAAC,kBAAkB,EAAE;wBACzB,KAAK,EAAE,MAAM;wBACb,QAAQ,EAAE,OAAO;qBACpB,CAAC,CAAC;gBACP,CAAC;gBAAC,OAAO,UAAe,EAAE,CAAC;oBACvB,sDAAsD;oBACtD,IAAI,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;wBAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;wBAEzD,IAAI,CAAC;4BACD,0CAA0C;4BAC1C,QAAQ,CAAC,yBAAyB,EAAE;gCAChC,KAAK,EAAE,MAAM;gCACb,QAAQ,EAAE,OAAO;6BACpB,CAAC,CAAC;4BACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;wBACnD,CAAC;wBAAC,OAAO,UAAU,EAAE,CAAC;4BAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;4BAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;4BACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;4BAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;wBAC3D,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,oEAAoE;gBACpE,QAAQ,CAAC,kBAAkB,EAAE;oBACzB,GAAG,EAAE,OAAO,CAAC,WAAW;oBACxB,KAAK,EAAE,SAAS,EAAE,mCAAmC;oBACrD,QAAQ,EAAE,OAAO;iBACpB,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBAExE,gDAAgD;gBAChD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBACrC;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,gEAAgE;wBACzE,OAAO,EAAE,IAAI;qBAChB;iBACJ,CAAC,CAAC;gBAEH,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;oBAEnE,IAAI,CAAC;wBACD,QAAQ,CAAC,4BAA4B,EAAE;4BACnC,GAAG,EAAE,OAAO,CAAC,WAAW;4BACxB,KAAK,EAAE,SAAS;4BAChB,QAAQ,EAAE,OAAO;yBACpB,CAAC,CAAC;wBAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;oBAC/E,CAAC;oBAAC,OAAO,SAAc,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;wBACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;wBAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;oBACtF,CAAC;gBACL,CAAC;YAEL,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAE5E,oCAAoC;gBACpC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wDAAwD,CAAC,CAAC,CAAC;oBACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;oBAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;oBACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;oBACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;IAE1E,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,6CAA6C;AAC7C,mBAAmB;AACnB,6CAA6C;AAC7C,OAAO;KACF,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAClC;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,wDAAwD;YACjE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,CAAC,KAAK;oBAAE,OAAO,wBAAwB,CAAC;gBAC5C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxC,OAAO,qCAAqC,CAAC;gBACjD,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,4BAA4B;YACrC,OAAO,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,UAAU,OAAO,CAAC,WAAW,EAAE;SAC7D;QACD;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,2CAA2C;YACpD,OAAO,EAAE,IAAI;SAChB;QACD;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,kBAAkB;YAC3B,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE;gBACpD,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,UAAU,EAAE;gBACjD,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE;gBAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;aACtC;YACD,IAAI,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY;YAC5C,OAAO,EAAE,KAAK;SACjB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,iCAAiC;YAC1C,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC7D,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC9D,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC/D,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;gBACpE,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnD,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE;aACrD;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,oCAAoC,CAAC;gBACpE,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,sDAAsD;YAC/D,OAAO,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACnE;QACD;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,IAAI;SAChB;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAE1D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACrF,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAEhC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;YAChE,WAAW;SACd,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC5D,MAAM,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjH,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAEzE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAE9D,6BAA6B;IAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC,CAAC;QAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAClC;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE,QAAQ;SACpB;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,qCAAqC;YAC9C,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChB,IAAI,CAAC,KAAK;oBAAE,OAAO,wBAAwB,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,+BAA+B,CAAC;gBAC3C,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,uBAAuB;SACnC;QACD;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,IAAI;SAChB;KACJ,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,eAAe,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"generate-feature.js","sourceRoot":"","sources":["../generate-feature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-generator.d.ts","sourceRoot":"","sources":["../../generators/feature-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"feature-generator.d.ts","sourceRoot":"","sources":["../../generators/feature-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBxF"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { generateService } from './service-generator.js';
|
|
2
2
|
import { generateRouter } from './router-generator.js';
|
|
3
3
|
import { generateValidation } from './validation-generator.js';
|
|
4
|
+
import { SERVICE_TYPES } from '../utils/constants.js';
|
|
4
5
|
export async function generateFeature(options) {
|
|
5
6
|
const generatedFiles = [];
|
|
6
7
|
// 1. Generar validation
|
|
7
8
|
const validationFile = await generateValidation(options);
|
|
8
9
|
generatedFiles.push(validationFile);
|
|
9
10
|
// 2. Generar service (si es necesario)
|
|
10
|
-
if (options.serviceType !==
|
|
11
|
+
if (options.serviceType !== SERVICE_TYPES.NONE) {
|
|
11
12
|
const serviceFile = await generateService(options);
|
|
12
13
|
generatedFiles.push(serviceFile);
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-generator.js","sourceRoot":"","sources":["../../generators/feature-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-generator.js","sourceRoot":"","sources":["../../generators/feature-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA+B;IACjE,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,wBAAwB;IACxB,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzD,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEpC,uCAAuC;IACvC,IAAI,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACnD,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEhC,OAAO,cAAc,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-generator.d.ts","sourceRoot":"","sources":["../../generators/init-generator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"init-generator.d.ts","sourceRoot":"","sources":["../../generators/init-generator.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAsuBD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D5E"}
|
|
@@ -12,32 +12,33 @@ function generateApiKey() {
|
|
|
12
12
|
*/
|
|
13
13
|
async function createEnvFile(projectPath, useDatabase, apiBaseUrl) {
|
|
14
14
|
const apiKey = generateApiKey();
|
|
15
|
-
const envContent =
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const envContent = `
|
|
16
|
+
# Authentication
|
|
17
|
+
API_KEY=${apiKey}
|
|
18
|
+
AUTH_ENABLED=false
|
|
18
19
|
|
|
19
|
-
# Database (opcional)
|
|
20
|
-
MONGODB_URI=${useDatabase ? 'mongodb://localhost:27017/your-database' : ''}
|
|
20
|
+
# Database (opcional)
|
|
21
|
+
MONGODB_URI=${useDatabase ? 'mongodb://localhost:27017/your-database' : ''}
|
|
21
22
|
|
|
22
|
-
API_BASE_URL='${apiBaseUrl}'
|
|
23
|
+
API_BASE_URL='${apiBaseUrl}'
|
|
23
24
|
|
|
24
|
-
# Server
|
|
25
|
-
MCP_SSE_PORT=3200
|
|
25
|
+
# Server
|
|
26
|
+
MCP_SSE_PORT=3200
|
|
26
27
|
|
|
27
|
-
# Timeouts (ms)
|
|
28
|
-
MCP_TIMEOUT=180000
|
|
29
|
-
SSE_TIMEOUT=1800000
|
|
28
|
+
# Timeouts (ms)
|
|
29
|
+
MCP_TIMEOUT=180000
|
|
30
|
+
SSE_TIMEOUT=1800000
|
|
30
31
|
|
|
31
|
-
# Logging
|
|
32
|
-
LOG_LEVEL=info
|
|
32
|
+
# Logging
|
|
33
|
+
LOG_LEVEL=info
|
|
33
34
|
|
|
34
|
-
# CORS
|
|
35
|
-
CORS_ALLOW_ORIGIN=*
|
|
35
|
+
# CORS
|
|
36
|
+
CORS_ALLOW_ORIGIN=*
|
|
36
37
|
|
|
37
|
-
# Rate Limiting
|
|
38
|
-
RATE_LIMIT_WINDOW_MS=900000
|
|
39
|
-
RATE_LIMIT_MAX_REQUESTS=100
|
|
40
|
-
`;
|
|
38
|
+
# Rate Limiting
|
|
39
|
+
RATE_LIMIT_WINDOW_MS=900000
|
|
40
|
+
RATE_LIMIT_MAX_REQUESTS=100
|
|
41
|
+
`;
|
|
41
42
|
await fs.writeFile(path.join(projectPath, '.env'), envContent);
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-generator.js","sourceRoot":"","sources":["../../generators/init-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAW5B;;GAEG;AACH,SAAS,cAAc;IACnB,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,WAAoB,EAAE,UAAkB;IACtF,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAEhC,MAAM,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"init-generator.js","sourceRoot":"","sources":["../../generators/init-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-updater.js","sourceRoot":"","sources":["../../generators/main-updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"main-updater.js","sourceRoot":"","sources":["../../generators/main-updater.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-generator.d.ts","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"router-generator.d.ts","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,wBAAsB,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoErF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { toCamelCase, toPascalCase, toSnakeCase } from '../utils/naming.js';
|
|
4
|
+
import { TOOLS, TOOL_DESCRIPTIONS } from '../utils/constants.js';
|
|
4
5
|
export async function generateRouter(options) {
|
|
5
6
|
const { featureName, featureDescription, entityName, tools, featurePath, serviceType } = options;
|
|
6
7
|
const className = toPascalCase(featureName);
|
|
@@ -9,7 +10,6 @@ export async function generateRouter(options) {
|
|
|
9
10
|
let routerContent = '';
|
|
10
11
|
// Imports
|
|
11
12
|
routerContent += `import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\n`;
|
|
12
|
-
routerContent += `import { z } from 'zod';\n`;
|
|
13
13
|
routerContent += `import type { FeatureModule } from 'apprecio-mcp-base';\n`;
|
|
14
14
|
routerContent += `import { logger } from 'apprecio-mcp-base';\n`;
|
|
15
15
|
if (serviceType !== 'none') {
|
|
@@ -18,13 +18,8 @@ export async function generateRouter(options) {
|
|
|
18
18
|
routerContent += `\n`;
|
|
19
19
|
routerContent += `import {\n`;
|
|
20
20
|
tools.forEach((tool) => {
|
|
21
|
-
const schemaName = tool
|
|
22
|
-
|
|
23
|
-
tool === 'create' ? `create${toPascalCase(entityName)}Schema` :
|
|
24
|
-
tool === 'update' ? `update${toPascalCase(entityName)}Schema` :
|
|
25
|
-
tool === 'delete' ? `delete${toPascalCase(entityName)}Schema` :
|
|
26
|
-
`search${toPascalCase(entityName)}Schema`;
|
|
27
|
-
routerContent += `${schemaName}, \n`;
|
|
21
|
+
const schemaName = getValidationSchemaName(tool, entityPascal);
|
|
22
|
+
routerContent += ` ${schemaName}, \n`;
|
|
28
23
|
});
|
|
29
24
|
routerContent += `} from './${featureName}.validation.js';`;
|
|
30
25
|
routerContent += `\n\n`;
|
|
@@ -60,18 +55,31 @@ export async function generateRouter(options) {
|
|
|
60
55
|
return filePath;
|
|
61
56
|
}
|
|
62
57
|
function generateToolDefinition(tool, featureName, entityName, entityPascal, serviceType, instanceName) {
|
|
63
|
-
const toolName = toSnakeCase(tool
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
58
|
+
const toolName = toSnakeCase(`${tool}_${entityName}`);
|
|
59
|
+
if (tool === TOOLS.LIST || tool === TOOLS.SEARCH) {
|
|
60
|
+
// Excepción plural para list/search si se desea mantener coherencia estricta
|
|
61
|
+
// Pero el switch original usaba lógica mixta:
|
|
62
|
+
// list -> list_featureName (plural?)
|
|
63
|
+
// search -> search_featureName
|
|
64
|
+
}
|
|
65
|
+
// Simplificación usando lógica original mapeada:
|
|
66
|
+
let baseToolName = '';
|
|
67
|
+
switch (tool) {
|
|
68
|
+
case TOOLS.LIST:
|
|
69
|
+
baseToolName = `list_${featureName}`;
|
|
70
|
+
break;
|
|
71
|
+
case TOOLS.SEARCH:
|
|
72
|
+
baseToolName = `search_${featureName}`;
|
|
73
|
+
break;
|
|
74
|
+
default: baseToolName = `${tool}_${entityName}`;
|
|
75
|
+
}
|
|
76
|
+
const finalToolName = toSnakeCase(baseToolName);
|
|
69
77
|
const description = getToolDescription(tool, entityName);
|
|
70
78
|
const inputSchema = generateInputSchema(tool, entityName);
|
|
71
79
|
const handler = generateToolHandler(tool, featureName, entityName, serviceType, instanceName);
|
|
72
80
|
let content = ` // Tool: ${description}\n`;
|
|
73
81
|
content += ` mcpServer.registerTool(\n`;
|
|
74
|
-
content += ` '${
|
|
82
|
+
content += ` '${finalToolName}',\n`;
|
|
75
83
|
content += ` {\n`;
|
|
76
84
|
content += ` description: '${description}',\n`;
|
|
77
85
|
content += ` inputSchema: ${inputSchema}.shape\n`;
|
|
@@ -81,33 +89,22 @@ function generateToolDefinition(tool, featureName, entityName, entityPascal, ser
|
|
|
81
89
|
return content;
|
|
82
90
|
}
|
|
83
91
|
function getToolDescription(tool, entityName) {
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
'delete': `Delete a ${entityName}`,
|
|
90
|
-
'search': `Search for ${entityName}s`
|
|
91
|
-
};
|
|
92
|
-
return descriptions[tool] || `Perform ${tool} operation on ${entityName}`;
|
|
92
|
+
const descGenerator = TOOL_DESCRIPTIONS[tool];
|
|
93
|
+
if (descGenerator) {
|
|
94
|
+
return descGenerator(entityName);
|
|
95
|
+
}
|
|
96
|
+
return `Perform ${tool} operation on ${entityName}`;
|
|
93
97
|
}
|
|
94
98
|
function generateInputSchema(tool, entityName) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
tool === 'delete' ? `delete${toPascalCase(entityName)}Schema` :
|
|
100
|
-
`search${toPascalCase(entityName)}Schema`;
|
|
101
|
-
return schemaName;
|
|
99
|
+
return getValidationSchemaName(tool, toPascalCase(entityName));
|
|
100
|
+
}
|
|
101
|
+
function getValidationSchemaName(tool, entityPascal) {
|
|
102
|
+
return `${tool}${entityPascal}Schema`;
|
|
102
103
|
}
|
|
103
104
|
function generateToolHandler(tool, featureName, entityName, serviceType, instanceName) {
|
|
104
|
-
const methodName = tool === 'list' ? `list${toPascalCase(entityName)}` :
|
|
105
|
-
tool === 'get' ? `get${toPascalCase(entityName)}` :
|
|
106
|
-
tool === 'create' ? `create${toPascalCase(entityName)}` :
|
|
107
|
-
tool === 'update' ? `update${toPascalCase(entityName)}` :
|
|
108
|
-
tool === 'delete' ? `delete${toPascalCase(entityName)}` :
|
|
109
|
-
`search${toPascalCase(entityName)}`;
|
|
110
105
|
const className = toPascalCase(featureName);
|
|
106
|
+
const entityPascal = toPascalCase(entityName);
|
|
107
|
+
const methodName = `${tool}${entityPascal}`;
|
|
111
108
|
let handler = `
|
|
112
109
|
(args, extra) => executeTool(extra, ${className}, getEnv, (service, headers) =>
|
|
113
110
|
service.${methodName}(args, headers)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-generator.js","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"router-generator.js","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-generator.d.ts","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"service-generator.d.ts","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DtF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { toPascalCase } from '../utils/naming.js';
|
|
4
|
+
import { TOOLS, SERVICE_TYPES } from '../utils/constants.js';
|
|
4
5
|
export async function generateService(options) {
|
|
5
6
|
const { featureName, entityName, tools, serviceType, featurePath } = options;
|
|
6
7
|
const className = toPascalCase(featureName);
|
|
@@ -9,13 +10,13 @@ export async function generateService(options) {
|
|
|
9
10
|
// Header
|
|
10
11
|
serviceContent += `// Generated service for ${featureName}\n\n`;
|
|
11
12
|
// Imports basados en tipo de service
|
|
12
|
-
if (serviceType ===
|
|
13
|
+
if (serviceType === SERVICE_TYPES.API) {
|
|
13
14
|
serviceContent += `import ApiClient from '../../services/api.js';\n`;
|
|
14
15
|
}
|
|
15
|
-
else if (serviceType ===
|
|
16
|
+
else if (serviceType === SERVICE_TYPES.DATABASE) {
|
|
16
17
|
serviceContent += `import { MongoDBConnector } from 'apprecio-mcp-base';\n`;
|
|
17
18
|
}
|
|
18
|
-
else if (serviceType ===
|
|
19
|
+
else if (serviceType === SERVICE_TYPES.MIXED) {
|
|
19
20
|
serviceContent += `import ApiClient from '../../services/api.js';\n`;
|
|
20
21
|
serviceContent += `import { MongoDBConnector } from 'apprecio-mcp-base';\n`;
|
|
21
22
|
}
|
|
@@ -29,10 +30,10 @@ export async function generateService(options) {
|
|
|
29
30
|
serviceContent += `} from './${featureName}.validation.js';\n`;
|
|
30
31
|
serviceContent += `\n`;
|
|
31
32
|
// Clase del service
|
|
32
|
-
if (serviceType ===
|
|
33
|
+
if (serviceType === SERVICE_TYPES.API) {
|
|
33
34
|
serviceContent += `class ${className} extends ApiClient {\n\n`;
|
|
34
35
|
}
|
|
35
|
-
else if (serviceType ===
|
|
36
|
+
else if (serviceType === SERVICE_TYPES.DATABASE) {
|
|
36
37
|
serviceContent += `class ${className} {\n`;
|
|
37
38
|
serviceContent += ` private db: MongoDBConnector;\n\n`;
|
|
38
39
|
serviceContent += ` constructor(db: MongoDBConnector) {\n`;
|
|
@@ -55,74 +56,61 @@ export async function generateService(options) {
|
|
|
55
56
|
return filePath;
|
|
56
57
|
}
|
|
57
58
|
function generateInterfaceName(tool, entityPascal) {
|
|
58
|
-
|
|
59
|
-
'list': `List${entityPascal}Options`,
|
|
60
|
-
'get': `Get${entityPascal}Options`,
|
|
61
|
-
'create': `Create${entityPascal}Options`,
|
|
62
|
-
'update': `Update${entityPascal}Options`,
|
|
63
|
-
'delete': `Delete${entityPascal}Options`,
|
|
64
|
-
'search': `Search${entityPascal}Options`
|
|
65
|
-
};
|
|
66
|
-
return toolMap[tool] || `${toPascalCase(tool)}${entityPascal}Options`;
|
|
59
|
+
return `${toPascalCase(tool)}${entityPascal}Options`;
|
|
67
60
|
}
|
|
68
61
|
function generateServiceMethod(tool, entityName, entityPascal, serviceType) {
|
|
69
|
-
const methodName = tool
|
|
70
|
-
tool === 'get' ? `get${entityPascal}` :
|
|
71
|
-
tool === 'create' ? `create${entityPascal}` :
|
|
72
|
-
tool === 'update' ? `update${entityPascal}` :
|
|
73
|
-
tool === 'delete' ? `delete${entityPascal}` :
|
|
74
|
-
`search${entityPascal}`;
|
|
62
|
+
const methodName = `${tool}${entityPascal}`;
|
|
75
63
|
const optionsInterface = generateInterfaceName(tool, entityPascal);
|
|
76
64
|
let methodContent = ` async ${methodName}(options: ${optionsInterface}, token?: string) {\n`;
|
|
77
|
-
if (serviceType ===
|
|
78
|
-
if (tool ===
|
|
65
|
+
if (serviceType === SERVICE_TYPES.API) {
|
|
66
|
+
if (tool === TOOLS.LIST) {
|
|
79
67
|
methodContent += ` const { page = 1, perPage = 10, ...params} = options;\n`;
|
|
80
68
|
methodContent += ` return this.get('${entityName}s', { page, perPage, ...params }, token || '');\n`;
|
|
81
69
|
}
|
|
82
|
-
else if (tool ===
|
|
70
|
+
else if (tool === TOOLS.GET) {
|
|
83
71
|
methodContent += ` const { id } = options;\n`;
|
|
84
72
|
methodContent += ` return this.get(\`${entityName}s/\${id}\`, {}, token || '');\n`;
|
|
85
73
|
}
|
|
86
|
-
else if (tool ===
|
|
74
|
+
else if (tool === TOOLS.CREATE) {
|
|
87
75
|
methodContent += ` const { data } = options;\n`;
|
|
88
76
|
methodContent += ` // Sanitize data aquí si es necesario\n`;
|
|
89
77
|
methodContent += ` return this.post('${entityName}s', data, token || '');\n`;
|
|
90
78
|
}
|
|
91
|
-
else if (tool ===
|
|
79
|
+
else if (tool === TOOLS.UPDATE) {
|
|
92
80
|
methodContent += ` const { id, data } = options;\n`;
|
|
93
81
|
methodContent += ` return this.patch(\`${entityName}s/\${id}\`, data, token || '');\n`;
|
|
94
82
|
}
|
|
95
|
-
else if (tool ===
|
|
83
|
+
else if (tool === TOOLS.DELETE) {
|
|
96
84
|
methodContent += ` const { id } = options;\n`;
|
|
97
85
|
methodContent += ` return this.delete(\`${entityName}s/\${id}\`, {}, token || '');\n`;
|
|
98
86
|
}
|
|
99
|
-
else if (tool ===
|
|
87
|
+
else if (tool === TOOLS.SEARCH) {
|
|
100
88
|
methodContent += ` const { query, filters } = options;\n`;
|
|
101
89
|
methodContent += ` return this.get('search/${entityName}s', { q: sanitize(query), ...filters }, token || '');\n`;
|
|
102
90
|
}
|
|
103
91
|
}
|
|
104
|
-
else if (serviceType ===
|
|
105
|
-
if (tool ===
|
|
92
|
+
else if (serviceType === SERVICE_TYPES.DATABASE) {
|
|
93
|
+
if (tool === TOOLS.LIST) {
|
|
106
94
|
methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
|
|
107
95
|
methodContent += ` const { page = 1, perPage = 10 } = options;\n`;
|
|
108
96
|
methodContent += ` return collection.find({}).skip((page - 1) * perPage).limit(perPage).toArray();\n`;
|
|
109
97
|
}
|
|
110
|
-
else if (tool ===
|
|
98
|
+
else if (tool === TOOLS.GET) {
|
|
111
99
|
methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
|
|
112
100
|
methodContent += ` const { id } = options;\n`;
|
|
113
101
|
methodContent += ` return collection.findOne({ _id: id });\n`;
|
|
114
102
|
}
|
|
115
|
-
else if (tool ===
|
|
103
|
+
else if (tool === TOOLS.CREATE) {
|
|
116
104
|
methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
|
|
117
105
|
methodContent += ` const { data } = options;\n`;
|
|
118
106
|
methodContent += ` return collection.insertOne(data);\n`;
|
|
119
107
|
}
|
|
120
|
-
else if (tool ===
|
|
108
|
+
else if (tool === TOOLS.UPDATE) {
|
|
121
109
|
methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
|
|
122
110
|
methodContent += ` const { id, data } = options;\n`;
|
|
123
111
|
methodContent += ` return collection.updateOne({ _id: id }, { $set: data });\n`;
|
|
124
112
|
}
|
|
125
|
-
else if (tool ===
|
|
113
|
+
else if (tool === TOOLS.DELETE) {
|
|
126
114
|
methodContent += ` const collection = this.db.getCollection('${entityName}s');\n`;
|
|
127
115
|
methodContent += ` const { id } = options;\n`;
|
|
128
116
|
methodContent += ` return collection.deleteOne({ _id: id });\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-generator.js","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,
|
|
1
|
+
{"version":3,"file":"service-generator.js","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA+B;IACjE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAE7E,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,SAAS;IACT,cAAc,IAAI,4BAA4B,WAAW,MAAM,CAAC;IAEhE,qCAAqC;IACrC,IAAI,WAAW,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACpC,cAAc,IAAI,kDAAkD,CAAC;IACzE,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;QAChD,cAAc,IAAI,yDAAyD,CAAC;IAChF,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;QAC7C,cAAc,IAAI,kDAAkD,CAAC;QACrE,cAAc,IAAI,yDAAyD,CAAC;IAChF,CAAC;IAED,cAAc,IAAI,MAAM,CAAC;IAEzB,0CAA0C;IAC1C,cAAc,IAAI,YAAY,CAAC;IAC/B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAChE,cAAc,IAAI,QAAQ,aAAa,KAAK,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,cAAc,IAAI,aAAa,WAAW,oBAAoB,CAAC;IAE/D,cAAc,IAAI,IAAI,CAAC;IAEvB,oBAAoB;IACpB,IAAI,WAAW,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACpC,cAAc,IAAI,SAAS,SAAS,0BAA0B,CAAC;IACnE,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;QAChD,cAAc,IAAI,SAAS,SAAS,MAAM,CAAC;QAC3C,cAAc,IAAI,uCAAuC,CAAC;QAC1D,cAAc,IAAI,2CAA2C,CAAC;QAC9D,cAAc,IAAI,yBAAyB,CAAC;QAC5C,cAAc,IAAI,WAAW,CAAC;IAClC,CAAC;SAAM,CAAC;QACJ,cAAc,IAAI,SAAS,SAAS,QAAQ,CAAC;IACjD,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAClF,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,cAAc,IAAI,OAAO,CAAC;IAC1B,cAAc,IAAI,kBAAkB,SAAS,KAAK,CAAC;IAEnD,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,aAAa,CAAC,CAAC;IACrE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE7C,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,YAAoB;IAC7D,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,SAAS,CAAC;AACzD,CAAC;AAGD,SAAS,qBAAqB,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAoB,EAAE,WAAmB;IACtG,MAAM,UAAU,GAAG,GAAG,IAAI,GAAG,YAAY,EAAE,CAAC;IAE5C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEnE,IAAI,aAAa,GAAG,aAAa,UAAU,aAAa,gBAAgB,uBAAuB,CAAC;IAEhG,IAAI,WAAW,KAAK,aAAa,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACtB,aAAa,IAAI,iEAAiE,CAAC;YACnF,aAAa,IAAI,4BAA4B,UAAU,mDAAmD,CAAC;QAC/G,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,aAAa,IAAI,mCAAmC,CAAC;YACrD,aAAa,IAAI,6BAA6B,UAAU,iCAAiC,CAAC;QAC9F,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,qCAAqC,CAAC;YACvD,aAAa,IAAI,iDAAiD,CAAC;YACnE,aAAa,IAAI,6BAA6B,UAAU,2BAA2B,CAAC;QACxF,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,yCAAyC,CAAC;YAC3D,aAAa,IAAI,+BAA+B,UAAU,mCAAmC,CAAC;QAClG,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,mCAAmC,CAAC;YACrD,aAAa,IAAI,gCAAgC,UAAU,iCAAiC,CAAC;QACjG,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,+CAA+C,CAAC;YACjE,aAAa,IAAI,mCAAmC,UAAU,yDAAyD,CAAC;QAC5H,CAAC;IACL,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YACtB,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,uDAAuD,CAAC;YACzE,aAAa,IAAI,2FAA2F,CAAC;QACjH,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,mCAAmC,CAAC;YACrD,aAAa,IAAI,mDAAmD,CAAC;QACzE,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,qCAAqC,CAAC;YACvD,aAAa,IAAI,8CAA8C,CAAC;QACpE,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,yCAAyC,CAAC;YAC3D,aAAa,IAAI,qEAAqE,CAAC;QAC3F,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/B,aAAa,IAAI,qDAAqD,UAAU,QAAQ,CAAC;YACzF,aAAa,IAAI,mCAAmC,CAAC;YACrD,aAAa,IAAI,qDAAqD,CAAC;QAC3E,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,aAAa,IAAI,4CAA4C,IAAI,IAAI,CAAC;QACtE,aAAa,IAAI,+CAA+C,CAAC;IACrE,CAAC;IAED,aAAa,IAAI,SAAS,CAAC;IAE3B,OAAO,aAAa,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-generator.d.ts","sourceRoot":"","sources":["../../generators/tool-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9E"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { toCamelCase, toPascalCase, toSnakeCase } from '../utils/naming.js';
|
|
4
|
+
export async function generateTool(options) {
|
|
5
|
+
const { featureName, toolName, toolDescription, addToService } = options;
|
|
6
|
+
const featurePath = path.join(process.cwd(), 'src', 'features', featureName);
|
|
7
|
+
// 1. Modificar Feature (Router)
|
|
8
|
+
await addToolToRouter(featurePath, featureName, toolName, toolDescription, addToService);
|
|
9
|
+
// 2. Modificar Validation
|
|
10
|
+
await addToolToValidation(featurePath, featureName, toolName);
|
|
11
|
+
// 3. Modificar Service (si aplica)
|
|
12
|
+
if (addToService) {
|
|
13
|
+
await addToolToService(featurePath, featureName, toolName);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
async function addToolToRouter(featurePath, featureName, toolName, description, useService) {
|
|
17
|
+
const filePath = path.join(featurePath, `${featureName}.feature.ts`);
|
|
18
|
+
let content = await fs.readFile(filePath, 'utf-8');
|
|
19
|
+
const entityName = featureName.replace(/s$/, ''); // Aproximación
|
|
20
|
+
const entityPascal = toPascalCase(entityName);
|
|
21
|
+
const className = toPascalCase(featureName);
|
|
22
|
+
const toolSnake = toSnakeCase(toolName);
|
|
23
|
+
const schemaName = `${toPascalCase(toolName)}${entityPascal}Schema`;
|
|
24
|
+
const methodName = `${toCamelCase(toolName)}${entityPascal}`;
|
|
25
|
+
// Importar schema
|
|
26
|
+
if (!content.includes(schemaName)) {
|
|
27
|
+
content = content.replace(/\} from '\.\/.*\.validation\.js';/, ` type ${schemaName},\n} from './${featureName}.validation.js';`);
|
|
28
|
+
}
|
|
29
|
+
// Agregar tool definition
|
|
30
|
+
const toolDef = `
|
|
31
|
+
// Tool: ${description}
|
|
32
|
+
mcpServer.registerTool(
|
|
33
|
+
'${toolSnake}',
|
|
34
|
+
{
|
|
35
|
+
description: '${description}',
|
|
36
|
+
inputSchema: ${schemaName}.shape
|
|
37
|
+
},
|
|
38
|
+
(args, extra) => executeTool(extra, ${className}, getEnv, (service, headers) =>
|
|
39
|
+
service.${methodName}(args, headers)
|
|
40
|
+
)
|
|
41
|
+
);`;
|
|
42
|
+
// Insertar antes del cierre de register
|
|
43
|
+
const registerEndRegex = /logger\.info\('.*registered successfully'\);\s*\},/;
|
|
44
|
+
content = content.replace(registerEndRegex, (match) => `${toolDef}\n ${match}`);
|
|
45
|
+
await fs.writeFile(filePath, content);
|
|
46
|
+
}
|
|
47
|
+
async function addToolToValidation(featurePath, featureName, toolName) {
|
|
48
|
+
const filePath = path.join(featurePath, `${featureName}.validation.ts`);
|
|
49
|
+
let content = await fs.readFile(filePath, 'utf-8');
|
|
50
|
+
const entityName = featureName.replace(/s$/, '');
|
|
51
|
+
const entityPascal = toPascalCase(entityName);
|
|
52
|
+
const schemaName = `${toPascalCase(toolName)}${entityPascal}Schema`;
|
|
53
|
+
const optionsType = `${toPascalCase(toolName)}${entityPascal}Options`;
|
|
54
|
+
const schema = `
|
|
55
|
+
export const ${schemaName} = z.object({
|
|
56
|
+
// TODO: Define schema validation for ${toolName}
|
|
57
|
+
});
|
|
58
|
+
export type ${optionsType} = z.infer<typeof ${schemaName}>;
|
|
59
|
+
`;
|
|
60
|
+
content += schema;
|
|
61
|
+
await fs.writeFile(filePath, content);
|
|
62
|
+
}
|
|
63
|
+
async function addToolToService(featurePath, featureName, toolName) {
|
|
64
|
+
const filePath = path.join(featurePath, `${featureName}.service.ts`);
|
|
65
|
+
// Verificar si existe el archivo de servicio
|
|
66
|
+
if (!await fs.pathExists(filePath))
|
|
67
|
+
return;
|
|
68
|
+
let content = await fs.readFile(filePath, 'utf-8');
|
|
69
|
+
const entityName = featureName.replace(/s$/, '');
|
|
70
|
+
const entityPascal = toPascalCase(entityName);
|
|
71
|
+
const methodName = `${toCamelCase(toolName)}${entityPascal}`;
|
|
72
|
+
const optionsType = `${toPascalCase(toolName)}${entityPascal}Options`;
|
|
73
|
+
// Importar tipo de opciones
|
|
74
|
+
if (!content.includes(optionsType)) {
|
|
75
|
+
content = content.replace(/\} from '\.\/.*\.validation\.js';/, ` ${optionsType},\n} from './${featureName}.validation.js';`);
|
|
76
|
+
}
|
|
77
|
+
const method = `
|
|
78
|
+
async ${methodName}(options: ${optionsType}, token?: string) {
|
|
79
|
+
// TODO: Implement ${toolName}
|
|
80
|
+
throw new Error('Not implemented');
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
// Insertar antes del cierre de clase
|
|
84
|
+
const classEndRegex = /\}\s*export default/;
|
|
85
|
+
content = content.replace(classEndRegex, (match) => `${method}\n${match}`);
|
|
86
|
+
await fs.writeFile(filePath, content);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=tool-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-generator.js","sourceRoot":"","sources":["../../generators/tool-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-generator.d.ts","sourceRoot":"","sources":["../../generators/validation-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"validation-generator.d.ts","sourceRoot":"","sources":["../../generators/validation-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAI3D,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgCzF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'fs-extra';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { toPascalCase } from '../utils/naming.js';
|
|
4
|
+
import { TOOLS } from '../utils/constants.js';
|
|
4
5
|
export async function generateValidation(options) {
|
|
5
6
|
const { featureName, entityName, tools, featurePath } = options;
|
|
6
7
|
const entityPascal = toPascalCase(entityName);
|
|
@@ -29,27 +30,27 @@ export async function generateValidation(options) {
|
|
|
29
30
|
function generateToolSchema(tool, entityName, entityPascal) {
|
|
30
31
|
const schemaName = `${tool}${entityPascal}Schema`;
|
|
31
32
|
let schema = `export const ${schemaName} = z.object({\n`;
|
|
32
|
-
if (tool ===
|
|
33
|
+
if (tool === TOOLS.LIST) {
|
|
33
34
|
schema += ` page,\n`;
|
|
34
35
|
schema += ` perPage,\n`;
|
|
35
36
|
schema += ` // TODO: Agregar filtros específicos\n`;
|
|
36
37
|
}
|
|
37
|
-
else if (tool ===
|
|
38
|
+
else if (tool === TOOLS.GET) {
|
|
38
39
|
schema += ` id,\n`;
|
|
39
40
|
}
|
|
40
|
-
else if (tool ===
|
|
41
|
+
else if (tool === TOOLS.CREATE) {
|
|
41
42
|
schema += ` data: z.object({ name, description, }),\n`;
|
|
42
43
|
schema += ` // TODO: Agregar campos específicos del ${entityName}\n`;
|
|
43
44
|
}
|
|
44
|
-
else if (tool ===
|
|
45
|
+
else if (tool === TOOLS.UPDATE) {
|
|
45
46
|
schema += ` id,\n`;
|
|
46
47
|
schema += ` data: z.object({ name, description, }),\n`;
|
|
47
48
|
schema += ` // TODO: Agregar campos actualizables\n`;
|
|
48
49
|
}
|
|
49
|
-
else if (tool ===
|
|
50
|
+
else if (tool === TOOLS.DELETE) {
|
|
50
51
|
schema += ` id,\n`;
|
|
51
52
|
}
|
|
52
|
-
else if (tool ===
|
|
53
|
+
else if (tool === TOOLS.SEARCH) {
|
|
53
54
|
schema += ` query,\n`;
|
|
54
55
|
schema += ` page,\n`;
|
|
55
56
|
schema += ` perPage,\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-generator.js","sourceRoot":"","sources":["../../generators/validation-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-generator.js","sourceRoot":"","sources":["../../generators/validation-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAe,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA+B;IACpE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEhE,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,iBAAiB,GAAG,EAAE,CAAC;IAE3B,aAAa;IACb,iBAAiB,IAAI,8BAA8B,CAAC;IAEpD,+BAA+B;IAC/B,iBAAiB,IAAI,6CAA6C,CAAC;IACnE,iBAAiB,IAAI,oDAAoD,CAAC;IAC1E,iBAAiB,IAAI,kDAAkD,CAAC;IACxE,iBAAiB,IAAI,wCAAwC,CAAC;IAC9D,iBAAiB,IAAI,kDAAkD,CAAC;IACxE,iBAAiB,IAAI,qDAAqD,CAAC;IAC3E,iBAAiB,IAAI,sDAAsD,CAAC;IAE5E,iCAAiC;IACjC,iBAAiB,IAAI,+CAA+C,CAAC;IAErE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAClE,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,gBAAgB,CAAC,CAAC;IACxE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAEhD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY,EAAE,UAAkB,EAAE,YAAoB;IAC9E,MAAM,UAAU,GAAG,GAAG,IAAI,GAAG,YAAY,QAAQ,CAAC;IAElD,IAAI,MAAM,GAAG,gBAAgB,UAAU,iBAAiB,CAAC;IAEzD,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC;QAC3B,MAAM,IAAI,4CAA4C,CAAC;IAC3D,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,+CAA+C,CAAC;QAC1D,MAAM,IAAI,+CAA+C,UAAU,IAAI,CAAC;IAC5E,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,WAAW,CAAC;QACtB,MAAM,IAAI,+CAA+C,CAAC;QAC1D,MAAM,IAAI,6CAA6C,CAAC;IAC5D,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,cAAc,CAAC;QACzB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC;IAC/B,CAAC;IAED,MAAM,IAAI,OAAO,CAAC;IAClB,MAAM,IAAI,eAAe,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,4BAA4B,UAAU,MAAM,CAAA;IAEtG,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const TOOLS: {
|
|
2
|
+
readonly LIST: "list";
|
|
3
|
+
readonly GET: "get";
|
|
4
|
+
readonly CREATE: "create";
|
|
5
|
+
readonly UPDATE: "update";
|
|
6
|
+
readonly DELETE: "delete";
|
|
7
|
+
readonly SEARCH: "search";
|
|
8
|
+
};
|
|
9
|
+
export declare const SERVICE_TYPES: {
|
|
10
|
+
readonly API: "api";
|
|
11
|
+
readonly DATABASE: "database";
|
|
12
|
+
readonly MIXED: "mixed";
|
|
13
|
+
readonly CUSTOM: "custom";
|
|
14
|
+
readonly NONE: "none";
|
|
15
|
+
};
|
|
16
|
+
export declare const TOOL_DESCRIPTIONS: Record<string, (entity: string) => string>;
|
|
17
|
+
export declare const COMMON_VALIDATION_FIELDS: readonly ["id", "name", "description", "page", "perPage", "query"];
|
|
18
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;CAOR,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAEX,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAOxE,CAAC;AAEF,eAAO,MAAM,wBAAwB,oEAO3B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const TOOLS = {
|
|
2
|
+
LIST: 'list',
|
|
3
|
+
GET: 'get',
|
|
4
|
+
CREATE: 'create',
|
|
5
|
+
UPDATE: 'update',
|
|
6
|
+
DELETE: 'delete',
|
|
7
|
+
SEARCH: 'search'
|
|
8
|
+
};
|
|
9
|
+
export const SERVICE_TYPES = {
|
|
10
|
+
API: 'api',
|
|
11
|
+
DATABASE: 'database',
|
|
12
|
+
MIXED: 'mixed',
|
|
13
|
+
CUSTOM: 'custom',
|
|
14
|
+
NONE: 'none'
|
|
15
|
+
};
|
|
16
|
+
export const TOOL_DESCRIPTIONS = {
|
|
17
|
+
[TOOLS.LIST]: (entity) => `List all ${entity}s`,
|
|
18
|
+
[TOOLS.GET]: (entity) => `Get a specific ${entity} by ID`,
|
|
19
|
+
[TOOLS.CREATE]: (entity) => `Create a new ${entity}`,
|
|
20
|
+
[TOOLS.UPDATE]: (entity) => `Update an existing ${entity}`,
|
|
21
|
+
[TOOLS.DELETE]: (entity) => `Delete a ${entity}`,
|
|
22
|
+
[TOOLS.SEARCH]: (entity) => `Search for ${entity}s`
|
|
23
|
+
};
|
|
24
|
+
export const COMMON_VALIDATION_FIELDS = [
|
|
25
|
+
'id',
|
|
26
|
+
'name',
|
|
27
|
+
'description',
|
|
28
|
+
'page',
|
|
29
|
+
'perPage',
|
|
30
|
+
'query'
|
|
31
|
+
];
|
|
32
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACV,CAAC;AAEX,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;CACN,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAA+C;IACzE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,MAAM,GAAG;IAC/C,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,QAAQ;IACzD,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,MAAM,EAAE;IACpD,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,MAAM,EAAE;IAC1D,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,MAAM,EAAE;IAChD,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,MAAM,GAAG;CACtD,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,IAAI;IACJ,MAAM;IACN,aAAa;IACb,MAAM;IACN,SAAS;IACT,OAAO;CACD,CAAC"}
|
|
@@ -24,4 +24,27 @@ export interface ServiceMethodDefinition {
|
|
|
24
24
|
returnType: string;
|
|
25
25
|
implementation: string;
|
|
26
26
|
}
|
|
27
|
+
export interface InitProjectAnswers {
|
|
28
|
+
projectName: string;
|
|
29
|
+
projectPath: string;
|
|
30
|
+
description: string;
|
|
31
|
+
author: string;
|
|
32
|
+
useDatabase: boolean;
|
|
33
|
+
apiBaseUrl?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface FeatureGenAnswers {
|
|
36
|
+
featureName: string;
|
|
37
|
+
featureDescription: string;
|
|
38
|
+
needsService: boolean;
|
|
39
|
+
serviceType: GenerateFeatureOptions['serviceType'];
|
|
40
|
+
tools: string[];
|
|
41
|
+
entityName: string;
|
|
42
|
+
updateMain: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface ToolGenAnswers {
|
|
45
|
+
feature: string;
|
|
46
|
+
toolName: string;
|
|
47
|
+
toolDescription: string;
|
|
48
|
+
addToService: boolean;
|
|
49
|
+
}
|
|
27
50
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../utils/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9D,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../utils/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
package/cli/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9D,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CAC1B"}
|
package/cli/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":""}
|
|
File without changes
|