apprecio-mcp-base 1.2.3 → 1.2.5
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/dist/generators/init-generator.d.ts.map +1 -1
- package/cli/dist/generators/init-generator.js +61 -7
- package/cli/dist/generators/init-generator.js.map +1 -1
- package/cli/dist/generators/router-generator.d.ts.map +1 -1
- package/cli/dist/generators/router-generator.js +28 -62
- package/cli/dist/generators/router-generator.js.map +1 -1
- package/cli/dist/generators/service-generator.d.ts.map +1 -1
- package/cli/dist/generators/service-generator.js +4 -17
- package/cli/dist/generators/service-generator.js.map +1 -1
- package/cli/dist/generators/validation-generator.js +7 -6
- package/cli/dist/generators/validation-generator.js.map +1 -1
- package/cli/package.json +1 -1
- package/package.json +1 -1
|
@@ -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;AAiuBD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2D5E"}
|
|
@@ -106,7 +106,7 @@ async function main() {
|
|
|
106
106
|
});
|
|
107
107
|
|
|
108
108
|
// 2. Encontrar puerto disponible
|
|
109
|
-
const port = await findAvailablePort(server.getConfig().ssePort);
|
|
109
|
+
const port = process.env.PORT ? Number.parseInt(process.env.PORT, 10) : await findAvailablePort(server.getConfig().ssePort);
|
|
110
110
|
logger.info(\`Starting ${projectName} server on port \${port}...\`);
|
|
111
111
|
|
|
112
112
|
// 3. Crear Express app y transport
|
|
@@ -211,15 +211,67 @@ async function createConfigFile(projectPath) {
|
|
|
211
211
|
const configContent = `import { config } from 'dotenv';
|
|
212
212
|
config({ path: '.env' });
|
|
213
213
|
|
|
214
|
+
const HEADER_MAP: Record<string, string> = {
|
|
215
|
+
empresa: 'business',
|
|
216
|
+
pdv: 'PointOfSale',
|
|
217
|
+
usuario: 'userId'
|
|
218
|
+
};
|
|
219
|
+
|
|
214
220
|
export function getEnv(name: string): string {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
221
|
+
const value = process.env[name];
|
|
222
|
+
if (!value) {
|
|
223
|
+
throw new Error(\`\❌ Variable de entorno requerida no definida: \${name}\`\);
|
|
224
|
+
}
|
|
225
|
+
return value;
|
|
218
226
|
}
|
|
219
|
-
|
|
220
|
-
|
|
227
|
+
export function getHeadersConfig(extra: any): any {
|
|
228
|
+
const headers = extra?.requestInfo?.headers || {};
|
|
229
|
+
|
|
230
|
+
const config: any = {
|
|
231
|
+
country: 'cl',
|
|
232
|
+
...headers
|
|
233
|
+
};
|
|
234
|
+
Object.entries(HEADER_MAP).forEach(([headerKey, outputKey]) => {
|
|
235
|
+
if (headers[headerKey]) {
|
|
236
|
+
config[outputKey] = headers[headerKey];
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
return config;
|
|
241
|
+
}`;
|
|
221
242
|
await fs.writeFile(path.join(projectPath, 'src', 'utils', 'config.ts'), configContent);
|
|
222
243
|
}
|
|
244
|
+
async function createToolExecution(projectPath) {
|
|
245
|
+
const toolExecutionContent = `import { getHeadersConfig } from './config.js';
|
|
246
|
+
|
|
247
|
+
export async function executeTool<TService>(
|
|
248
|
+
extra: any,
|
|
249
|
+
ServiceClass: new (url: string) => TService,
|
|
250
|
+
urlGetter: (extra: any) => string,
|
|
251
|
+
operation: (service: TService, headers: any) => Promise<any>
|
|
252
|
+
) {
|
|
253
|
+
try {
|
|
254
|
+
const url = urlGetter('API_BASE_URL'); // OR extra with headers.
|
|
255
|
+
const serviceInstance = new ServiceClass(url);
|
|
256
|
+
const result = await operation(serviceInstance, getHeadersConfig(extra));
|
|
257
|
+
return {
|
|
258
|
+
content: [{
|
|
259
|
+
type: 'text' as const,
|
|
260
|
+
text: JSON.stringify(result, null, 2)
|
|
261
|
+
}]
|
|
262
|
+
};
|
|
263
|
+
} catch (error: any) {
|
|
264
|
+
return {
|
|
265
|
+
content: [{
|
|
266
|
+
type: 'text' as const,
|
|
267
|
+
text: \`Error: \${error.message}\`
|
|
268
|
+
}],
|
|
269
|
+
isError: true
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
}`;
|
|
273
|
+
await fs.writeFile(path.join(projectPath, 'src', 'utils', 'tool-execution.ts'), toolExecutionContent);
|
|
274
|
+
}
|
|
223
275
|
/**
|
|
224
276
|
* Crea el package.json
|
|
225
277
|
*/
|
|
@@ -688,7 +740,8 @@ export async function initProject(options) {
|
|
|
688
740
|
createTsConfig(projectPath),
|
|
689
741
|
createGitIgnore(projectPath),
|
|
690
742
|
createReadme(projectPath, options),
|
|
691
|
-
createConfigFile(projectPath)
|
|
743
|
+
createConfigFile(projectPath),
|
|
744
|
+
createToolExecution(projectPath)
|
|
692
745
|
]);
|
|
693
746
|
// 3. Establecer permisos correctos para todos los archivos
|
|
694
747
|
const filesToChmod = [
|
|
@@ -697,6 +750,7 @@ export async function initProject(options) {
|
|
|
697
750
|
'src/services/api.ts',
|
|
698
751
|
'src/utils/sanitize.ts',
|
|
699
752
|
'src/utils/config.ts',
|
|
753
|
+
'src/utils/tool-execution.ts',
|
|
700
754
|
'package.json',
|
|
701
755
|
'tsconfig.json',
|
|
702
756
|
'.gitignore',
|
|
@@ -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;UACb,MAAM;;;;cAIF,WAAW,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,EAAE;;gBAE1D,UAAU;;;;;;;;;;;;;;;;;;CAkBzB,CAAC;IAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,WAAmB;IAClE,MAAM,WAAW,GAAG;;;;;;;;;QAShB,YAAY,CAAC,WAAW,CAAC;;;;;;;;2BAQN,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAuCT,YAAY,CAAC,WAAW,CAAC;qBACjC,WAAW;;;;;;iCAMC,WAAW;;;;;;;2BAOjB,WAAW;;;;;;;wCAOE,WAAW;;;;;;CAMlD,CAAC;IAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IACnD,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDtB,CAAC;IACE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;AACxF,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IACjD,MAAM,eAAe,GAAG;;;;;;;;;CAS3B,CAAC;IAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC;AAC/F,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,WAAmB;IAC/C,MAAM,aAAa,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":"router-generator.d.ts","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,wBAAsB,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"router-generator.d.ts","sourceRoot":"","sources":["../../generators/router-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,wBAAsB,cAAc,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0ErF"}
|
|
@@ -15,13 +15,22 @@ export async function generateRouter(options) {
|
|
|
15
15
|
if (serviceType !== 'none') {
|
|
16
16
|
routerContent += `import ${className} from './${featureName}.service.js';\n`;
|
|
17
17
|
}
|
|
18
|
+
routerContent += `\n`;
|
|
19
|
+
routerContent += `import {\n`;
|
|
20
|
+
tools.forEach((tool) => {
|
|
21
|
+
const schemaName = tool === 'list' ? `list${toPascalCase(entityName)}Schema` :
|
|
22
|
+
tool === 'get' ? `get${toPascalCase(entityName)}Schema` :
|
|
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`;
|
|
28
|
+
});
|
|
29
|
+
routerContent += `} from './${featureName}.validation.js';`;
|
|
18
30
|
routerContent += `\n\n`;
|
|
19
|
-
routerContent += `import { getEnv } from '../../utils/config.js'
|
|
31
|
+
routerContent += `import { getEnv } from '../../utils/config.js';\n`;
|
|
32
|
+
routerContent += `import { executeTool } from '../../utils/tool-execution.js';\n`;
|
|
20
33
|
routerContent += `\n\n`;
|
|
21
|
-
// Crear instancia del service (si existe)
|
|
22
|
-
if (serviceType !== 'none') {
|
|
23
|
-
routerContent += `const ${instanceName} = new ${className}(getEnv('API_BASE_URL'));\n\n`;
|
|
24
|
-
}
|
|
25
34
|
// Exportar FeatureModule
|
|
26
35
|
routerContent += `export const ${toCamelCase(featureName)}Feature: FeatureModule = {\n`;
|
|
27
36
|
routerContent += ` name: '${featureName}',\n`;
|
|
@@ -65,7 +74,7 @@ function generateToolDefinition(tool, featureName, entityName, entityPascal, ser
|
|
|
65
74
|
content += ` '${toolName}',\n`;
|
|
66
75
|
content += ` {\n`;
|
|
67
76
|
content += ` description: '${description}',\n`;
|
|
68
|
-
content += ` inputSchema: ${inputSchema}\n`;
|
|
77
|
+
content += ` inputSchema: ${inputSchema}.shape\n`;
|
|
69
78
|
content += ` },\n`;
|
|
70
79
|
content += ` ${handler}\n`;
|
|
71
80
|
content += ` );\n`;
|
|
@@ -83,34 +92,13 @@ function getToolDescription(tool, entityName) {
|
|
|
83
92
|
return descriptions[tool] || `Perform ${tool} operation on ${entityName}`;
|
|
84
93
|
}
|
|
85
94
|
function generateInputSchema(tool, entityName) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
schema += ` id: z.string().describe('${entityName} ID (string, required)'),\n`;
|
|
94
|
-
}
|
|
95
|
-
else if (tool === 'create') {
|
|
96
|
-
schema += ` // TODO: Agregar campos específicos del ${entityName}\n`;
|
|
97
|
-
schema += ` name: z.string().optional().describe('Name (string, optional)'),\n`;
|
|
98
|
-
schema += ` description: z.string().optional().describe('Description (string, optional)'),\n`;
|
|
99
|
-
}
|
|
100
|
-
else if (tool === 'update') {
|
|
101
|
-
schema += ` id: z.string().describe('${entityName} ID (string, required)'),\n`;
|
|
102
|
-
schema += ` // TODO: Agregar campos actualizables\n`;
|
|
103
|
-
schema += ` name: z.string().optional().describe('New name (string, optional)'),\n`;
|
|
104
|
-
}
|
|
105
|
-
else if (tool === 'delete') {
|
|
106
|
-
schema += ` id: z.string().describe('${entityName} ID (string, required)'),\n`;
|
|
107
|
-
}
|
|
108
|
-
else if (tool === 'search') {
|
|
109
|
-
schema += ` query: z.string().describe('Search query (string, required)'),\n`;
|
|
110
|
-
schema += ` filters: z.any().optional().describe('Search filters (object, optional)'),\n`;
|
|
111
|
-
}
|
|
112
|
-
schema += ` }`;
|
|
113
|
-
return schema;
|
|
95
|
+
const schemaName = tool === 'list' ? `list${toPascalCase(entityName)}Schema` :
|
|
96
|
+
tool === 'get' ? `get${toPascalCase(entityName)}Schema` :
|
|
97
|
+
tool === 'create' ? `create${toPascalCase(entityName)}Schema` :
|
|
98
|
+
tool === 'update' ? `update${toPascalCase(entityName)}Schema` :
|
|
99
|
+
tool === 'delete' ? `delete${toPascalCase(entityName)}Schema` :
|
|
100
|
+
`search${toPascalCase(entityName)}Schema`;
|
|
101
|
+
return schemaName;
|
|
114
102
|
}
|
|
115
103
|
function generateToolHandler(tool, featureName, entityName, serviceType, instanceName) {
|
|
116
104
|
const methodName = tool === 'list' ? `list${toPascalCase(featureName)}` :
|
|
@@ -119,34 +107,12 @@ function generateToolHandler(tool, featureName, entityName, serviceType, instanc
|
|
|
119
107
|
tool === 'update' ? `update${toPascalCase(entityName)}` :
|
|
120
108
|
tool === 'delete' ? `delete${toPascalCase(entityName)}` :
|
|
121
109
|
`search${toPascalCase(featureName)}`;
|
|
122
|
-
|
|
123
|
-
handler
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
handler += ` const result = await ${instanceName}.${methodName}(args, token);\n`;
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
handler += ` // TODO: Implementar lógica del ${tool}\n`;
|
|
132
|
-
handler += ` const result = { message: 'Not implemented yet', args };\n`;
|
|
133
|
-
}
|
|
134
|
-
handler += ` return { \n`;
|
|
135
|
-
handler += ` content: [{ \n`;
|
|
136
|
-
handler += ` type: 'text', \n`;
|
|
137
|
-
handler += ` text: JSON.stringify(result, null, 2) \n`;
|
|
138
|
-
handler += ` }] \n`;
|
|
139
|
-
handler += ` };\n`;
|
|
140
|
-
handler += ` } catch (error: any) {\n`;
|
|
141
|
-
handler += ` return { \n`;
|
|
142
|
-
handler += ` content: [{ \n`;
|
|
143
|
-
handler += ` type: 'text', \n`;
|
|
144
|
-
handler += ` text: \`Error: \${error.message}\` \n`;
|
|
145
|
-
handler += ` }], \n`;
|
|
146
|
-
handler += ` isError: true \n`;
|
|
147
|
-
handler += ` };\n`;
|
|
148
|
-
handler += ` }\n`;
|
|
149
|
-
handler += ` }`;
|
|
110
|
+
const className = toPascalCase(featureName);
|
|
111
|
+
let handler = `
|
|
112
|
+
(args, extra) => executeTool(extra, ${className}, getEnv, (service, headers) =>
|
|
113
|
+
service.${methodName}(args, headers)
|
|
114
|
+
)
|
|
115
|
+
`;
|
|
150
116
|
return handler;
|
|
151
117
|
}
|
|
152
118
|
//# sourceMappingURL=router-generator.js.map
|
|
@@ -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;AAE5E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA+B;IAChE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjG,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC;IAE3D,IAAI,aAAa,GAAG,EAAE,CAAC;IAEvB,UAAU;IACV,aAAa,IAAI,wEAAwE,CAAC;IAC1F,aAAa,IAAI,4BAA4B,CAAC;IAC9C,aAAa,IAAI,2DAA2D,CAAC;IAC7E,aAAa,IAAI,+CAA+C,CAAC;IAEjE,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;QACzB,aAAa,IAAI,UAAU,SAAS,YAAY,WAAW,iBAAiB,CAAC;IACjF,CAAC;IAED,aAAa,IAAI,
|
|
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,aAAa,CAAC;AAGrD,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"service-generator.d.ts","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4DtF"}
|
|
@@ -19,14 +19,14 @@ export async function generateService(options) {
|
|
|
19
19
|
serviceContent += `import ApiClient from '../../services/api.js';\n`;
|
|
20
20
|
serviceContent += `import { MongoDBConnector } from 'apprecio-mcp-base';\n`;
|
|
21
21
|
}
|
|
22
|
-
serviceContent +=
|
|
22
|
+
serviceContent += `\n\n`;
|
|
23
23
|
// Interfaces de opciones para cada método
|
|
24
|
-
serviceContent +=
|
|
24
|
+
serviceContent += `import {\n`;
|
|
25
25
|
tools.forEach(tool => {
|
|
26
26
|
const interfaceName = generateInterfaceName(tool, entityPascal);
|
|
27
|
-
|
|
28
|
-
serviceContent += `export interface ${interfaceName} ${fields}\n`;
|
|
27
|
+
serviceContent += `type ${interfaceName},\n`;
|
|
29
28
|
});
|
|
29
|
+
serviceContent += `} from './products.validation.js';\n`;
|
|
30
30
|
serviceContent += `\n`;
|
|
31
31
|
// Clase del service
|
|
32
32
|
if (serviceType === 'api') {
|
|
@@ -65,19 +65,6 @@ function generateInterfaceName(tool, entityPascal) {
|
|
|
65
65
|
};
|
|
66
66
|
return toolMap[tool] || `${toPascalCase(tool)}${entityPascal}Options`;
|
|
67
67
|
}
|
|
68
|
-
function generateInterfaceFields(tool, entityName) {
|
|
69
|
-
// Campos comunes
|
|
70
|
-
const commonFields = `{ id?: string; `;
|
|
71
|
-
const fieldMap = {
|
|
72
|
-
'list': `{ page?: number; per_page?: number; filters?: any; }`,
|
|
73
|
-
'get': `{ id: string; }`,
|
|
74
|
-
'create': `{ data: any; }`,
|
|
75
|
-
'update': `{ id: string; data: any; }`,
|
|
76
|
-
'delete': `{ id: string; }`,
|
|
77
|
-
'search': `{ query: string; filters?: any; }`
|
|
78
|
-
};
|
|
79
|
-
return fieldMap[tool] || `{ data: any; }`;
|
|
80
|
-
}
|
|
81
68
|
function generateServiceMethod(tool, entityName, entityPascal, serviceType) {
|
|
82
69
|
const methodName = tool === 'list' ? `list${entityPascal}` :
|
|
83
70
|
tool === 'get' ? `get${entityPascal}` :
|
|
@@ -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,EAAe,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAE5E,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,KAAK,EAAE,CAAC;QACxB,cAAc,IAAI,kDAAkD,CAAC;IACzE,CAAC;SAAM,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QACpC,cAAc,IAAI,yDAAyD,CAAC;IAChF,CAAC;SAAM,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;QACjC,cAAc,IAAI,kDAAkD,CAAC;QACrE,cAAc,IAAI,yDAAyD,CAAC;IAChF,CAAC;IAED,cAAc,IAAI,
|
|
1
|
+
{"version":3,"file":"service-generator.js","sourceRoot":"","sources":["../../generators/service-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,12 @@ export async function generateValidation(options) {
|
|
|
9
9
|
validationContent += `import { z } from 'zod';\n\n`;
|
|
10
10
|
// Campos comunes reutilizables
|
|
11
11
|
validationContent += `// --- Campos Comunes Reutilizables ---\n\n`;
|
|
12
|
-
validationContent += `const id = z.string().min(1, "ID is required.")
|
|
13
|
-
validationContent += `
|
|
14
|
-
validationContent += `
|
|
15
|
-
validationContent += `
|
|
16
|
-
validationContent += `
|
|
17
|
-
validationContent += `
|
|
12
|
+
validationContent += `const id = z.string().min(1, "ID is required."),\n`;
|
|
13
|
+
validationContent += `name = z.string().min(1, "Name is required."),\n`;
|
|
14
|
+
validationContent += `description = z.string().optional(),\n`;
|
|
15
|
+
validationContent += `page = z.number().int().positive().optional(),\n`;
|
|
16
|
+
validationContent += `perPage = z.number().int().positive().optional(),\n`;
|
|
17
|
+
validationContent += `query = z.string().min(1, "Query is required.");\n\n`;
|
|
18
18
|
// Generar schemas para cada tool
|
|
19
19
|
validationContent += `// --- Schemas de Validación por Tool ---\n\n`;
|
|
20
20
|
tools.forEach(tool => {
|
|
@@ -57,6 +57,7 @@ function generateToolSchema(tool, entityName, entityPascal) {
|
|
|
57
57
|
schema += ` perPage,\n`;
|
|
58
58
|
}
|
|
59
59
|
schema += `});\n`;
|
|
60
|
+
schema += `export type ${toPascalCase(tool)}${entityName}Options = z.infer<typeof ${schemaName}>;\n`;
|
|
60
61
|
return schema;
|
|
61
62
|
}
|
|
62
63
|
//# sourceMappingURL=validation-generator.js.map
|
|
@@ -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;AAE/D,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,
|
|
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;AAE/D,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,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,gBAAgB,CAAC;QAC3B,MAAM,IAAI,4CAA4C,CAAC;IAC3D,CAAC;SAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,MAAM,IAAI,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,aAAa,CAAC;QACxB,MAAM,IAAI,oBAAoB,CAAC;QAC/B,MAAM,IAAI,+CAA+C,UAAU,IAAI,CAAC;IAC5E,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CAAC;QACtB,MAAM,IAAI,oCAAoC,CAAC;QAC/C,MAAM,IAAI,oBAAoB,CAAC;QAC/B,MAAM,IAAI,6CAA6C,CAAC;IAC5D,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,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,UAAU,4BAA4B,UAAU,MAAM,CAAA;IAEpG,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
package/cli/package.json
CHANGED