@diagramers/cli 1.0.48 → 1.0.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/api-generator.js +84 -298
- package/dist/services/api-generator.js.map +1 -1
- package/dist/services/project-extender.d.ts +1 -0
- package/dist/services/project-extender.d.ts.map +1 -1
- package/dist/services/project-extender.js +129 -391
- package/dist/services/project-extender.js.map +1 -1
- package/package.json +1 -1
@@ -120,249 +120,74 @@ export const ${moduleName}Schema = new mongoose.Schema(
|
|
120
120
|
{ timestamps: true, suppressReservedKeysWarning: true },
|
121
121
|
);
|
122
122
|
|
123
|
-
export const ${moduleNameCapitalized}
|
123
|
+
export const ${moduleNameCapitalized}Model = mongoose.model<I${moduleNameCapitalized}>('${moduleName}', ${moduleName}Schema);`;
|
124
124
|
}
|
125
125
|
function generateServiceContent(moduleName, moduleNameCapitalized) {
|
126
126
|
return `import { ObjectId } from "bson";
|
127
|
-
import
|
128
|
-
import { ResponseCode } from "../helpers/enums";
|
129
|
-
import { Result } from "../helpers/result";
|
130
|
-
import { ${moduleNameCapitalized}Entity } from "../schemas/${moduleName}";
|
127
|
+
import { ${moduleNameCapitalized}Model } from '../schemas/${moduleName}.schema';
|
131
128
|
|
132
129
|
export class ${moduleNameCapitalized}Service {
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
constructor(result: Result) {
|
137
|
-
this.result = result;
|
130
|
+
async getAll() {
|
131
|
+
return await ${moduleNameCapitalized}Model.find({ status: 1 });
|
138
132
|
}
|
139
|
-
|
140
|
-
|
141
|
-
try {
|
142
|
-
const ${moduleName}s = await dbcontext.${moduleNameCapitalized}Entity.find({ status: 1 });
|
143
|
-
this.result.Data = ${moduleName}s;
|
144
|
-
this.result.Status = ResponseCode.Ok;
|
145
|
-
return this.result;
|
146
|
-
} catch (ex) {
|
147
|
-
this.result.addException(this.className, 'GetAll', ex);
|
148
|
-
return this.result;
|
149
|
-
}
|
133
|
+
async getById(id: string) {
|
134
|
+
return await ${moduleNameCapitalized}Model.findById(id);
|
150
135
|
}
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
const ${moduleName} = await dbcontext.${moduleNameCapitalized}Entity.findById(id);
|
155
|
-
if (${moduleName}) {
|
156
|
-
this.result.Data = ${moduleName};
|
157
|
-
this.result.Status = ResponseCode.Ok;
|
158
|
-
} else {
|
159
|
-
this.result.Status = ResponseCode.NotExist;
|
160
|
-
}
|
161
|
-
return this.result;
|
162
|
-
} catch (ex) {
|
163
|
-
this.result.addException(this.className, 'GetById', ex);
|
164
|
-
return this.result;
|
165
|
-
}
|
166
|
-
}
|
167
|
-
|
168
|
-
async create(${moduleName}Data: any): Promise<Result> {
|
169
|
-
try {
|
170
|
-
const ${moduleName}Entity = new ${moduleNameCapitalized}Entity({
|
171
|
-
_id: new ObjectId(),
|
172
|
-
...${moduleName}Data,
|
173
|
-
status: 1
|
174
|
-
});
|
175
|
-
const created${moduleNameCapitalized} = await dbcontext.${moduleNameCapitalized}Entity.create(${moduleName}Entity);
|
176
|
-
if (created${moduleNameCapitalized}) {
|
177
|
-
this.result.Data = created${moduleNameCapitalized};
|
178
|
-
this.result.Status = ResponseCode.Ok;
|
179
|
-
} else {
|
180
|
-
this.result.Status = ResponseCode.Error;
|
181
|
-
this.result.Errors.push('Failed to create ${moduleName}');
|
182
|
-
}
|
183
|
-
return this.result;
|
184
|
-
} catch (ex) {
|
185
|
-
this.result.addException(this.className, 'Create', ex);
|
186
|
-
return this.result;
|
187
|
-
}
|
136
|
+
async create(data: any) {
|
137
|
+
const entity = new ${moduleNameCapitalized}Model({ _id: new ObjectId(), ...data, status: 1 });
|
138
|
+
return await ${moduleNameCapitalized}Model.create(entity);
|
188
139
|
}
|
189
|
-
|
190
|
-
|
191
|
-
try {
|
192
|
-
const updated${moduleNameCapitalized} = await dbcontext.${moduleNameCapitalized}Entity.findByIdAndUpdate(
|
193
|
-
id,
|
194
|
-
{ ...${moduleName}Data },
|
195
|
-
{ new: true }
|
196
|
-
);
|
197
|
-
if (updated${moduleNameCapitalized}) {
|
198
|
-
this.result.Data = updated${moduleNameCapitalized};
|
199
|
-
this.result.Status = ResponseCode.Ok;
|
200
|
-
} else {
|
201
|
-
this.result.Status = ResponseCode.NotExist;
|
202
|
-
}
|
203
|
-
return this.result;
|
204
|
-
} catch (ex) {
|
205
|
-
this.result.addException(this.className, 'Update', ex);
|
206
|
-
return this.result;
|
207
|
-
}
|
140
|
+
async update(id: string, data: any) {
|
141
|
+
return await ${moduleNameCapitalized}Model.findByIdAndUpdate(id, { ...data }, { new: true });
|
208
142
|
}
|
209
|
-
|
210
|
-
|
211
|
-
try {
|
212
|
-
const deleted${moduleNameCapitalized} = await dbcontext.${moduleNameCapitalized}Entity.findByIdAndUpdate(
|
213
|
-
id,
|
214
|
-
{ status: 0 },
|
215
|
-
{ new: true }
|
216
|
-
);
|
217
|
-
if (deleted${moduleNameCapitalized}) {
|
218
|
-
this.result.Data = deleted${moduleNameCapitalized};
|
219
|
-
this.result.Status = ResponseCode.Ok;
|
220
|
-
} else {
|
221
|
-
this.result.Status = ResponseCode.NotExist;
|
222
|
-
}
|
223
|
-
return this.result;
|
224
|
-
} catch (ex) {
|
225
|
-
this.result.addException(this.className, 'Delete', ex);
|
226
|
-
return this.result;
|
227
|
-
}
|
143
|
+
async delete(id: string) {
|
144
|
+
return await ${moduleNameCapitalized}Model.findByIdAndUpdate(id, { status: 0 }, { new: true });
|
228
145
|
}
|
229
146
|
}`;
|
230
147
|
}
|
231
148
|
function generateControllerContent(moduleName, moduleNameCapitalized) {
|
232
|
-
return `import {
|
233
|
-
import handleResponse from "../helpers/handle-response";
|
234
|
-
import { Result } from "../helpers/result";
|
235
|
-
import { ${moduleNameCapitalized}Service } from "../services/${moduleName}-service";
|
236
|
-
|
237
|
-
export default class ${moduleNameCapitalized}Controller {
|
149
|
+
return `import { ${moduleNameCapitalized}Service } from '../services/${moduleName}.service';
|
238
150
|
|
151
|
+
export class ${moduleNameCapitalized}Controller {
|
152
|
+
private service = new ${moduleNameCapitalized}Service();
|
239
153
|
async getAll(req, res) {
|
240
|
-
const
|
241
|
-
|
242
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'getAll', 'Started');
|
243
|
-
const ${moduleName}Service = new ${moduleNameCapitalized}Service(result);
|
244
|
-
const serviceResult = await ${moduleName}Service.getAll();
|
245
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'getAll', 'Finished');
|
246
|
-
return handleResponse(req, res, serviceResult);
|
247
|
-
} catch (ex) {
|
248
|
-
result.addException(req.baseUrl, 'getAll', ex);
|
249
|
-
return handleResponse(req, res, result);
|
250
|
-
}
|
154
|
+
const data = await this.service.getAll();
|
155
|
+
res.json(data);
|
251
156
|
}
|
252
|
-
|
253
157
|
async getById(req, res) {
|
254
|
-
const
|
255
|
-
|
256
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'getById', 'Started');
|
257
|
-
const ${moduleName}Service = new ${moduleNameCapitalized}Service(result);
|
258
|
-
const serviceResult = await ${moduleName}Service.getById(req.params.id);
|
259
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'getById', 'Finished');
|
260
|
-
return handleResponse(req, res, serviceResult);
|
261
|
-
} catch (ex) {
|
262
|
-
result.addException(req.baseUrl, 'getById', ex);
|
263
|
-
return handleResponse(req, res, result);
|
264
|
-
}
|
158
|
+
const data = await this.service.getById(req.params.id);
|
159
|
+
res.json(data);
|
265
160
|
}
|
266
|
-
|
267
161
|
async create(req, res) {
|
268
|
-
const
|
269
|
-
|
270
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'create', 'Started');
|
271
|
-
const ${moduleName}Service = new ${moduleNameCapitalized}Service(result);
|
272
|
-
const serviceResult = await ${moduleName}Service.create(req.body);
|
273
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'create', 'Finished');
|
274
|
-
return handleResponse(req, res, serviceResult);
|
275
|
-
} catch (ex) {
|
276
|
-
result.addException(req.baseUrl, 'create', ex);
|
277
|
-
return handleResponse(req, res, result);
|
278
|
-
}
|
162
|
+
const data = await this.service.create(req.body);
|
163
|
+
res.json(data);
|
279
164
|
}
|
280
|
-
|
281
165
|
async update(req, res) {
|
282
|
-
const
|
283
|
-
|
284
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'update', 'Started');
|
285
|
-
const ${moduleName}Service = new ${moduleNameCapitalized}Service(result);
|
286
|
-
const serviceResult = await ${moduleName}Service.update(req.params.id, req.body);
|
287
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'update', 'Finished');
|
288
|
-
return handleResponse(req, res, serviceResult);
|
289
|
-
} catch (ex) {
|
290
|
-
result.addException(req.baseUrl, 'update', ex);
|
291
|
-
return handleResponse(req, res, result);
|
292
|
-
}
|
166
|
+
const data = await this.service.update(req.params.id, req.body);
|
167
|
+
res.json(data);
|
293
168
|
}
|
294
|
-
|
295
169
|
async delete(req, res) {
|
296
|
-
const
|
297
|
-
|
298
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'delete', 'Started');
|
299
|
-
const ${moduleName}Service = new ${moduleNameCapitalized}Service(result);
|
300
|
-
const serviceResult = await ${moduleName}Service.delete(req.params.id);
|
301
|
-
result.addMessage(AuditMessageType.info, req.baseUrl, 'delete', 'Finished');
|
302
|
-
return handleResponse(req, res, serviceResult);
|
303
|
-
} catch (ex) {
|
304
|
-
result.addException(req.baseUrl, 'delete', ex);
|
305
|
-
return handleResponse(req, res, result);
|
306
|
-
}
|
170
|
+
const data = await this.service.delete(req.params.id);
|
171
|
+
res.json(data);
|
307
172
|
}
|
308
173
|
}`;
|
309
174
|
}
|
310
175
|
function generateRoutesContent(moduleName, moduleNameCapitalized) {
|
311
|
-
return `import
|
312
|
-
import ${moduleNameCapitalized}Controller from '../controllers/${moduleName}
|
313
|
-
|
314
|
-
const router = express.Router();
|
315
|
-
const ${moduleName}Controller = new ${moduleNameCapitalized}Controller();
|
316
|
-
|
317
|
-
// GET /api/${moduleName}s
|
318
|
-
router.get('/', ${moduleName}Controller.getAll.bind(${moduleName}Controller));
|
176
|
+
return `import { Router } from 'express';
|
177
|
+
import { ${moduleNameCapitalized}Controller } from '../controllers/${moduleName}.controller';
|
319
178
|
|
320
|
-
|
321
|
-
|
179
|
+
const router = Router();
|
180
|
+
const controller = new ${moduleNameCapitalized}Controller();
|
322
181
|
|
323
|
-
|
324
|
-
router.
|
325
|
-
|
326
|
-
|
327
|
-
router.put('/:id',
|
328
|
-
|
329
|
-
// DELETE /api/${moduleName}s/:id
|
330
|
-
router.delete('/:id', ${moduleName}Controller.delete.bind(${moduleName}Controller));
|
182
|
+
router.get('/', (req, res) => res.send('${moduleNameCapitalized} API is up.'));
|
183
|
+
router.get('/all', (req, res) => controller.getAll(req, res));
|
184
|
+
router.get('/:id', (req, res) => controller.getById(req, res));
|
185
|
+
router.post('/', (req, res) => controller.create(req, res));
|
186
|
+
router.put('/:id', (req, res) => controller.update(req, res));
|
187
|
+
router.delete('/:id', (req, res) => controller.delete(req, res));
|
331
188
|
|
332
189
|
export default router;`;
|
333
190
|
}
|
334
|
-
function updateDbContext(currentDir, moduleName, moduleNameCapitalized) {
|
335
|
-
const dbcontextPath = path.join(currentDir, 'src/helpers/dbcontext.ts');
|
336
|
-
if (!fs.existsSync(dbcontextPath)) {
|
337
|
-
console.log('⚠️ dbcontext.ts not found, skipping dbcontext update');
|
338
|
-
return;
|
339
|
-
}
|
340
|
-
let dbcontextContent = fs.readFileSync(dbcontextPath, 'utf8');
|
341
|
-
// Add import
|
342
|
-
const importStatement = `import { ${moduleNameCapitalized}Entity } from '../schemas/${moduleName}';`;
|
343
|
-
if (!dbcontextContent.includes(importStatement)) {
|
344
|
-
// Find the last import statement and add after it
|
345
|
-
const importRegex = /import.*from.*['"];?\s*$/gm;
|
346
|
-
const matches = [...dbcontextContent.matchAll(importRegex)];
|
347
|
-
if (matches.length > 0) {
|
348
|
-
const lastImport = matches[matches.length - 1];
|
349
|
-
const insertIndex = lastImport.index + lastImport[0].length;
|
350
|
-
dbcontextContent = dbcontextContent.slice(0, insertIndex) + '\n' + importStatement + dbcontextContent.slice(insertIndex);
|
351
|
-
}
|
352
|
-
}
|
353
|
-
// Add to dbcontext object
|
354
|
-
const dbcontextObjectRegex = /export\s+default\s*\{([^}]*)\}/s;
|
355
|
-
const match = dbcontextContent.match(dbcontextObjectRegex);
|
356
|
-
if (match) {
|
357
|
-
const objectContent = match[1];
|
358
|
-
if (!objectContent.includes(`${moduleNameCapitalized}Entity`)) {
|
359
|
-
const newObjectContent = objectContent.trim() + `,\n ${moduleNameCapitalized}Entity`;
|
360
|
-
dbcontextContent = dbcontextContent.replace(dbcontextObjectRegex, `export default {$1${newObjectContent}\n}`);
|
361
|
-
}
|
362
|
-
}
|
363
|
-
fs.writeFileSync(dbcontextPath, dbcontextContent);
|
364
|
-
console.log('📊 Updated dbcontext.ts');
|
365
|
-
}
|
366
191
|
function updateRoutesIndex(currentDir, moduleName) {
|
367
192
|
const routesIndexPath = path.join(currentDir, 'src/routes/index.ts');
|
368
193
|
if (!fs.existsSync(routesIndexPath)) {
|
@@ -371,109 +196,70 @@ function updateRoutesIndex(currentDir, moduleName) {
|
|
371
196
|
}
|
372
197
|
let routesContent = fs.readFileSync(routesIndexPath, 'utf8');
|
373
198
|
// Add import
|
374
|
-
const importStatement = `import ${moduleName}Routes from '
|
199
|
+
const importStatement = `import ${moduleName}Routes from '../modules/${moduleName}/routes/${moduleName}.routes';`;
|
375
200
|
if (!routesContent.includes(importStatement)) {
|
376
|
-
//
|
377
|
-
|
378
|
-
const matches = [...routesContent.matchAll(importRegex)];
|
379
|
-
if (matches.length > 0) {
|
380
|
-
const lastImport = matches[matches.length - 1];
|
381
|
-
const insertIndex = lastImport.index + lastImport[0].length;
|
382
|
-
routesContent = routesContent.slice(0, insertIndex) + '\n' + importStatement + routesContent.slice(insertIndex);
|
383
|
-
}
|
201
|
+
// Add import after the userRoutes import
|
202
|
+
routesContent = routesContent.replace(/import userRoutes from '\.\.\/modules\/users\/routes\/user\.routes';/, `import userRoutes from '../modules/users/routes/user.routes';\n${importStatement}`);
|
384
203
|
}
|
385
204
|
// Add route registration
|
386
|
-
const routeRegistration = `
|
205
|
+
const routeRegistration = `router.use('/${moduleName}', ${moduleName}Routes);`;
|
387
206
|
if (!routesContent.includes(routeRegistration)) {
|
388
|
-
//
|
389
|
-
|
390
|
-
const matches = [...routesContent.matchAll(routeRegex)];
|
391
|
-
if (matches.length > 0) {
|
392
|
-
const lastRoute = matches[matches.length - 1];
|
393
|
-
const insertIndex = lastRoute.index + lastRoute[0].length;
|
394
|
-
routesContent = routesContent.slice(0, insertIndex) + '\n' + routeRegistration + routesContent.slice(insertIndex);
|
395
|
-
}
|
207
|
+
// Add route after the users route
|
208
|
+
routesContent = routesContent.replace(/router\.use\('\/users', userRoutes\);/, `router.use('/users', userRoutes);\n${routeRegistration}`);
|
396
209
|
}
|
397
210
|
fs.writeFileSync(routesIndexPath, routesContent);
|
398
211
|
console.log('🛣️ Updated routes/index.ts');
|
399
212
|
}
|
400
213
|
async function registerModuleRoutes(currentDir, moduleName, moduleNameCapitalized) {
|
401
|
-
|
402
|
-
|
403
|
-
console.warn('⚠️ Server manager not found, routes will need to be registered manually');
|
404
|
-
return;
|
405
|
-
}
|
406
|
-
let serverManagerContent = fs.readFileSync(serverManagerPath, 'utf8');
|
407
|
-
// Add import for the new module routes
|
408
|
-
const importStatement = `const ${moduleName}Routes = require('../../modules/${moduleName}/routes/${moduleName}.routes').default;`;
|
409
|
-
// Find the registerPluginRoutes method
|
410
|
-
const methodRegex = /private registerPluginRoutes\(\): void \{([^}]*)\}/s;
|
411
|
-
const match = serverManagerContent.match(methodRegex);
|
412
|
-
if (match) {
|
413
|
-
const methodContent = match[1];
|
414
|
-
// Add import if not already present
|
415
|
-
if (!methodContent.includes(importStatement)) {
|
416
|
-
const updatedMethodContent = methodContent + `\n ${importStatement}`;
|
417
|
-
serverManagerContent = serverManagerContent.replace(methodRegex, `private registerPluginRoutes(): void {$1${updatedMethodContent}\n }`);
|
418
|
-
}
|
419
|
-
// Add route registration
|
420
|
-
const routeRegistration = `this.app.use('/api', ${moduleName}Routes);`;
|
421
|
-
if (!methodContent.includes(routeRegistration)) {
|
422
|
-
const updatedMethodContent = methodContent + `\n ${routeRegistration}`;
|
423
|
-
serverManagerContent = serverManagerContent.replace(methodRegex, `private registerPluginRoutes(): void {$1${updatedMethodContent}\n }`);
|
424
|
-
}
|
425
|
-
fs.writeFileSync(serverManagerPath, serverManagerContent);
|
426
|
-
console.log('✅ Routes registered in server manager');
|
427
|
-
}
|
428
|
-
else {
|
429
|
-
console.warn('⚠️ Could not find registerPluginRoutes method, routes will need to be registered manually');
|
430
|
-
}
|
214
|
+
// Update routes/index.ts instead of server manager
|
215
|
+
updateRoutesIndex(currentDir, moduleName);
|
431
216
|
}
|
432
217
|
async function createDatabaseTable(currentDir, moduleName, moduleNameCapitalized) {
|
433
|
-
//
|
434
|
-
const seederScript = `import { ${moduleNameCapitalized}Entity } from '../schemas/${moduleName}.schema';
|
435
|
-
import { logger } from '../../core/logging';
|
436
|
-
|
437
|
-
export async function seed${moduleNameCapitalized}Table(): Promise<void> {
|
438
|
-
try {
|
439
|
-
// Create collection and indexes
|
440
|
-
await ${moduleNameCapitalized}Entity.createCollection();
|
441
|
-
|
442
|
-
// Create indexes if needed
|
443
|
-
await ${moduleNameCapitalized}Entity.collection.createIndex({ name: 1 });
|
444
|
-
await ${moduleNameCapitalized}Entity.collection.createIndex({ createdAt: -1 });
|
445
|
-
|
446
|
-
logger.info(\`✅ ${moduleNameCapitalized} table/collection created successfully\`);
|
447
|
-
} catch (error) {
|
448
|
-
logger.error(\`❌ Failed to create ${moduleNameCapitalized} table:\`, error);
|
449
|
-
throw error;
|
450
|
-
}
|
451
|
-
}
|
452
|
-
|
453
|
-
// Auto-run when imported
|
454
|
-
seed${moduleNameCapitalized}Table().catch(console.error);
|
455
|
-
`;
|
456
|
-
const seederPath = path.join(currentDir, 'src/scripts', `seed-${moduleName}.ts`);
|
457
|
-
fs.writeFileSync(seederPath, seederScript);
|
458
|
-
// Add to main seeder
|
218
|
+
// Update the main seeder using the same logic as the bash script
|
459
219
|
const mainSeederPath = path.join(currentDir, 'src/core/database/seeder.ts');
|
460
220
|
if (fs.existsSync(mainSeederPath)) {
|
461
221
|
let seederContent = fs.readFileSync(mainSeederPath, 'utf8');
|
462
|
-
// Add import
|
463
|
-
const importStatement = `import {
|
222
|
+
// Add import for the model
|
223
|
+
const importStatement = `import { ${moduleNameCapitalized}Model } from '../../modules/${moduleName}/schemas/${moduleName}.schema';`;
|
464
224
|
if (!seederContent.includes(importStatement)) {
|
465
|
-
seederContent = seederContent.replace(/import
|
225
|
+
seederContent = seederContent.replace(/import { UserModel } from '\.\.\/\.\.\/modules\/users\/schemas\/user\.schema';/, `import { UserModel } from '../../modules/users/schemas/user.schema';\n${importStatement}`);
|
226
|
+
}
|
227
|
+
// Add seeder function
|
228
|
+
const seederFunction = ` private async seed${moduleNameCapitalized}s(data: any[]): Promise<void> {
|
229
|
+
if (data.length === 0) return;
|
230
|
+
|
231
|
+
logger.info(\`[DatabaseSeeder] Seeding \${data.length} ${moduleName}s...\`);
|
232
|
+
|
233
|
+
for (const ${moduleName}Data of data) {
|
234
|
+
try {
|
235
|
+
const existing = await ${moduleNameCapitalized}Model.findOne({ name: ${moduleName}Data.name });
|
236
|
+
if (!existing) {
|
237
|
+
const ${moduleName} = new ${moduleNameCapitalized}Model({
|
238
|
+
...${moduleName}Data,
|
239
|
+
status: 1
|
240
|
+
});
|
241
|
+
await ${moduleName}.save();
|
242
|
+
logger.info(\`[DatabaseSeeder] Created ${moduleName}: \${${moduleName}Data.name}\`);
|
243
|
+
} else {
|
244
|
+
logger.info(\`[DatabaseSeeder] ${moduleNameCapitalized} \${${moduleName}Data.name} already exists, skipping\`);
|
245
|
+
}
|
246
|
+
} catch (error) {
|
247
|
+
logger.error(\`[DatabaseSeeder] Failed to create ${moduleName} \${${moduleName}Data.name}:\`, error);
|
248
|
+
}
|
249
|
+
}
|
250
|
+
}`;
|
251
|
+
if (!seederContent.includes(`seed${moduleNameCapitalized}s`)) {
|
252
|
+
seederContent = seederContent.replace(/\/\/ TEMPLATE: Add new seeder functions here \(the CLI will add new functions automatically\)/, `// TEMPLATE: Add new seeder functions here (the CLI will add new functions automatically)\n${seederFunction}`);
|
253
|
+
}
|
254
|
+
// Add seeder call
|
255
|
+
const seederCall = ` await this.seed${moduleNameCapitalized}s(seedData.${moduleName}s || []);`;
|
256
|
+
if (!seederContent.includes(seederCall)) {
|
257
|
+
seederContent = seederContent.replace(/\/\/ TEMPLATE: Call new seeders here \(the CLI will add new calls automatically\)/, `// TEMPLATE: Call new seeders here (the CLI will add new calls automatically)\n${seederCall}`);
|
466
258
|
}
|
467
|
-
// Add
|
468
|
-
const
|
469
|
-
|
470
|
-
|
471
|
-
const methodContent = match[1];
|
472
|
-
const seedCall = `await seed${moduleNameCapitalized}Table();`;
|
473
|
-
if (!methodContent.includes(seedCall)) {
|
474
|
-
const updatedMethodContent = methodContent + `\n ${seedCall}`;
|
475
|
-
seederContent = seederContent.replace(seedMethodRegex, `async seedAll(): Promise<void> {$1${updatedMethodContent}\n }`);
|
476
|
-
}
|
259
|
+
// Add default seed data
|
260
|
+
const seedDataLine = ` ${moduleName}s: [ { name: '${moduleNameCapitalized} Example', description: 'Example ${moduleName}', status: 1 } ],`;
|
261
|
+
if (!seederContent.includes(seedDataLine)) {
|
262
|
+
seederContent = seederContent.replace(/const defaultData: SeedData = \{/, `const defaultData: SeedData = {\n${seedDataLine}`);
|
477
263
|
}
|
478
264
|
fs.writeFileSync(mainSeederPath, seederContent);
|
479
265
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"api-generator.js","sourceRoot":"","sources":["../../src/services/api-generator.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"api-generator.js","sourceRoot":"","sources":["../../src/services/api-generator.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"project-extender.d.ts","sourceRoot":"","sources":["../../src/services/project-extender.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CA8Bd;IAEI,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B9C,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"project-extender.d.ts","sourceRoot":"","sources":["../../src/services/project-extender.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CA8Bd;IAEI,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B9C,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BpE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlE,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAWjE,sBAAsB;YAuCtB,sBAAsB;IAoBpC,OAAO,CAAC,yBAAyB;IA+KjC,OAAO,CAAC,sBAAsB;IA0J9B,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,sBAAsB;YAmBhB,mBAAmB;IA4PjC,OAAO,CAAC,qBAAqB;YAqBf,oBAAoB;YAuBpB,qBAAqB;YA4DrB,YAAY;YAkBZ,YAAY;YA6BZ,aAAa;YA4Bb,gBAAgB;YAgChB,YAAY;YAqBZ,sBAAsB;YAKtB,cAAc;YAmCd,YAAY;YAsEZ,iBAAiB;YAYjB,mBAAmB;YAiCnB,eAAe;YAqBf,eAAe;YAYf,sBAAsB;YAyCtB,kBAAkB;YA4ClB,eAAe;YASf,uBAAuB;YAevB,gBAAgB;YAkDhB,iBAAiB;YAqCjB,iBAAiB;IA4B/B,OAAO,CAAC,eAAe;CAGxB"}
|
@@ -137,6 +137,8 @@ class ProjectExtender {
|
|
137
137
|
}
|
138
138
|
// Update main application to include the module
|
139
139
|
await this.registerModule(projectPath, moduleName);
|
140
|
+
// Update database seeder
|
141
|
+
await this.updateSeeder(projectPath, moduleName);
|
140
142
|
console.log(chalk_1.default.green(`✅ Module '${moduleName}' generated successfully!`));
|
141
143
|
}
|
142
144
|
async generateTable(tableName, options = {}) {
|
@@ -894,417 +896,115 @@ export * from './${fileName}';
|
|
894
896
|
}
|
895
897
|
async createEntity(modulePath, moduleName, options) {
|
896
898
|
const entityName = this.capitalizeFirst(moduleName);
|
897
|
-
const
|
898
|
-
|
899
|
-
|
900
|
-
export interface I${entityName} extends
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
export interface I${entityName}Update {
|
909
|
-
${fields.map((field) => ` ${field}?: string;`).join('\n')}
|
910
|
-
}
|
911
|
-
`;
|
899
|
+
const entityContent = `import * as mongoose from 'mongoose';
|
900
|
+
import { ObjectId } from "bson";
|
901
|
+
|
902
|
+
export interface I${entityName} extends mongoose.Document {
|
903
|
+
_id: ObjectId,
|
904
|
+
name: string,
|
905
|
+
description?: string,
|
906
|
+
status: number,
|
907
|
+
createdAt: Date,
|
908
|
+
updatedAt: Date
|
909
|
+
}`;
|
912
910
|
await fs.writeFile(path.join(modulePath, 'entities', `${moduleName}.entity.ts`), entityContent);
|
913
911
|
}
|
914
912
|
async createSchema(modulePath, moduleName, options) {
|
915
913
|
const entityName = this.capitalizeFirst(moduleName);
|
916
|
-
const
|
917
|
-
const schemaContent = `import mongoose, { Schema, Document } from 'mongoose';
|
914
|
+
const schemaContent = `import * as mongoose from 'mongoose';
|
918
915
|
import { I${entityName} } from '../entities/${moduleName}.entity';
|
919
916
|
|
920
|
-
export
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
}
|
936
|
-
|
937
|
-
// Indexes
|
938
|
-
${fields.map((field) => `${moduleName}Schema.index({ ${field}: 1 });`).join('\n')}
|
917
|
+
export const ${moduleName}Schema = new mongoose.Schema(
|
918
|
+
{
|
919
|
+
name: {
|
920
|
+
type: mongoose.SchemaTypes.String,
|
921
|
+
required: true,
|
922
|
+
},
|
923
|
+
description: {
|
924
|
+
type: mongoose.SchemaTypes.String,
|
925
|
+
required: false,
|
926
|
+
},
|
927
|
+
status: {
|
928
|
+
type: mongoose.SchemaTypes.Number,
|
929
|
+
default: 1,
|
930
|
+
}
|
931
|
+
},
|
932
|
+
{ timestamps: true, suppressReservedKeysWarning: true },
|
933
|
+
);
|
939
934
|
|
940
|
-
export const ${entityName}Model = mongoose.model<I${entityName}
|
941
|
-
`;
|
935
|
+
export const ${entityName}Model = mongoose.model<I${entityName}>('${moduleName}', ${moduleName}Schema);`;
|
942
936
|
await fs.writeFile(path.join(modulePath, 'schemas', `${moduleName}.schema.ts`), schemaContent);
|
943
937
|
}
|
944
938
|
async createService(modulePath, moduleName, options) {
|
945
939
|
const entityName = this.capitalizeFirst(moduleName);
|
946
|
-
const serviceContent = `import {
|
947
|
-
import { ${entityName}Model
|
948
|
-
import { I${entityName}, I${entityName}Create, I${entityName}Update } from '../entities/${moduleName}.entity';
|
940
|
+
const serviceContent = `import { ObjectId } from "bson";
|
941
|
+
import { ${entityName}Model } from '../schemas/${moduleName}.schema';
|
949
942
|
|
950
943
|
export class ${entityName}Service {
|
951
|
-
|
952
|
-
|
953
|
-
*/
|
954
|
-
async getAll(): Promise<Result<I${entityName}[]>> {
|
955
|
-
try {
|
956
|
-
const ${moduleName}s = await ${entityName}Model.find({ status: 1 }).lean();
|
957
|
-
const converted${entityName}s = ${moduleName}s.map(${moduleName} => ({
|
958
|
-
...${moduleName},
|
959
|
-
_id: ${moduleName}._id?.toString() || ''
|
960
|
-
})) as I${entityName}[];
|
961
|
-
return Result.success(converted${entityName}s);
|
962
|
-
} catch (error: any) {
|
963
|
-
return Result.error('Failed to fetch ${moduleName}s', error.message);
|
944
|
+
async getAll() {
|
945
|
+
return await ${entityName}Model.find({ status: 1 });
|
964
946
|
}
|
965
|
-
|
966
|
-
|
967
|
-
/**
|
968
|
-
* Get ${moduleName} by ID
|
969
|
-
*/
|
970
|
-
async getById(id: string): Promise<Result<I${entityName} | null>> {
|
971
|
-
try {
|
972
|
-
const ${moduleName} = await ${entityName}Model.findOne({ _id: id, status: 1 });
|
973
|
-
if (!${moduleName}) {
|
974
|
-
return Result.error('${entityName} not found', '${entityName} with the specified ID does not exist');
|
975
|
-
}
|
976
|
-
const ${moduleName}Obj = ${moduleName}.toObject();
|
977
|
-
const converted${entityName} = {
|
978
|
-
...${moduleName}Obj,
|
979
|
-
_id: ${moduleName}Obj._id?.toString() || ''
|
980
|
-
} as I${entityName};
|
981
|
-
return Result.success(converted${entityName});
|
982
|
-
} catch (error: any) {
|
983
|
-
return Result.error('Failed to fetch ${moduleName}', error.message);
|
947
|
+
async getById(id: string) {
|
948
|
+
return await ${entityName}Model.findById(id);
|
984
949
|
}
|
985
|
-
|
986
|
-
|
987
|
-
|
988
|
-
* Create new ${moduleName}
|
989
|
-
*/
|
990
|
-
async create(${moduleName}Data: I${entityName}Create): Promise<Result<I${entityName}>> {
|
991
|
-
try {
|
992
|
-
const ${moduleName} = new ${entityName}Model({
|
993
|
-
...${moduleName}Data,
|
994
|
-
status: 1
|
995
|
-
});
|
996
|
-
|
997
|
-
const saved${entityName} = await ${moduleName}.save();
|
998
|
-
const ${moduleName}Obj = saved${entityName}.toObject();
|
999
|
-
|
1000
|
-
const converted${entityName} = {
|
1001
|
-
...${moduleName}Obj,
|
1002
|
-
_id: ${moduleName}Obj._id?.toString() || ''
|
1003
|
-
} as I${entityName};
|
1004
|
-
|
1005
|
-
return Result.success(converted${entityName});
|
1006
|
-
} catch (error: any) {
|
1007
|
-
return Result.error('Failed to create ${moduleName}', error.message);
|
950
|
+
async create(data: any) {
|
951
|
+
const entity = new ${entityName}Model({ _id: new ObjectId(), ...data, status: 1 });
|
952
|
+
return await ${entityName}Model.create(entity);
|
1008
953
|
}
|
1009
|
-
|
1010
|
-
|
1011
|
-
/**
|
1012
|
-
* Update ${moduleName}
|
1013
|
-
*/
|
1014
|
-
async update(id: string, ${moduleName}Data: I${entityName}Update): Promise<Result<I${entityName} | null>> {
|
1015
|
-
try {
|
1016
|
-
const ${moduleName} = await ${entityName}Model.findOne({ _id: id, status: 1 });
|
1017
|
-
if (!${moduleName}) {
|
1018
|
-
return Result.error('${entityName} not found', '${entityName} with the specified ID does not exist');
|
1019
|
-
}
|
1020
|
-
|
1021
|
-
Object.assign(${moduleName}, ${moduleName}Data);
|
1022
|
-
const updated${entityName} = await ${moduleName}.save();
|
1023
|
-
|
1024
|
-
const ${moduleName}Obj = updated${entityName}.toObject();
|
1025
|
-
|
1026
|
-
const converted${entityName} = {
|
1027
|
-
...${moduleName}Obj,
|
1028
|
-
_id: ${moduleName}Obj._id?.toString() || ''
|
1029
|
-
} as I${entityName};
|
1030
|
-
|
1031
|
-
return Result.success(converted${entityName});
|
1032
|
-
} catch (error: any) {
|
1033
|
-
return Result.error('Failed to update ${moduleName}', error.message);
|
954
|
+
async update(id: string, data: any) {
|
955
|
+
return await ${entityName}Model.findByIdAndUpdate(id, { ...data }, { new: true });
|
1034
956
|
}
|
1035
|
-
|
1036
|
-
|
1037
|
-
/**
|
1038
|
-
* Delete ${moduleName} (soft delete)
|
1039
|
-
*/
|
1040
|
-
async delete(id: string): Promise<Result<boolean>> {
|
1041
|
-
try {
|
1042
|
-
const ${moduleName} = await ${entityName}Model.findOne({ _id: id, status: 1 });
|
1043
|
-
if (!${moduleName}) {
|
1044
|
-
return Result.error('${entityName} not found', '${entityName} with the specified ID does not exist');
|
1045
|
-
}
|
1046
|
-
|
1047
|
-
${moduleName}.status = 0;
|
1048
|
-
await ${moduleName}.save();
|
1049
|
-
|
1050
|
-
return Result.success(true);
|
1051
|
-
} catch (error: any) {
|
1052
|
-
return Result.error('Failed to delete ${moduleName}', error.message);
|
957
|
+
async delete(id: string) {
|
958
|
+
return await ${entityName}Model.findByIdAndUpdate(id, { status: 0 }, { new: true });
|
1053
959
|
}
|
1054
|
-
|
1055
|
-
}
|
1056
|
-
`;
|
960
|
+
}`;
|
1057
961
|
await fs.writeFile(path.join(modulePath, 'services', `${moduleName}.service.ts`), serviceContent);
|
1058
962
|
}
|
1059
963
|
async createController(modulePath, moduleName, options) {
|
1060
964
|
const entityName = this.capitalizeFirst(moduleName);
|
1061
|
-
const controllerContent = `import {
|
1062
|
-
import { ${entityName}Service } from '../services/${moduleName}.service';
|
1063
|
-
import { I${entityName}Create, I${entityName}Update } from '../entities/${moduleName}.entity';
|
1064
|
-
|
1065
|
-
/**
|
1066
|
-
* @swagger
|
1067
|
-
* components:
|
1068
|
-
* schemas:
|
1069
|
-
* ${entityName}:
|
1070
|
-
* type: object
|
1071
|
-
* properties:
|
1072
|
-
* _id:
|
1073
|
-
* type: string
|
1074
|
-
* name:
|
1075
|
-
* type: string
|
1076
|
-
* description:
|
1077
|
-
* type: string
|
1078
|
-
* createdAt:
|
1079
|
-
* type: string
|
1080
|
-
* format: date-time
|
1081
|
-
* updatedAt:
|
1082
|
-
* type: string
|
1083
|
-
* format: date-time
|
1084
|
-
*/
|
965
|
+
const controllerContent = `import { ${entityName}Service } from '../services/${moduleName}.service';
|
1085
966
|
|
1086
967
|
export class ${entityName}Controller {
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
* /api/${moduleName}s:
|
1092
|
-
* get:
|
1093
|
-
* summary: Get all ${moduleName}s
|
1094
|
-
* tags: [${entityName}s]
|
1095
|
-
* responses:
|
1096
|
-
* 200:
|
1097
|
-
* description: List of ${moduleName}s
|
1098
|
-
* content:
|
1099
|
-
* application/json:
|
1100
|
-
* schema:
|
1101
|
-
* type: object
|
1102
|
-
* properties:
|
1103
|
-
* Data:
|
1104
|
-
* type: array
|
1105
|
-
* items:
|
1106
|
-
* $ref: '#/components/schemas/${entityName}'
|
1107
|
-
* StatusCode:
|
1108
|
-
* type: number
|
1109
|
-
* Message:
|
1110
|
-
* type: string
|
1111
|
-
*/
|
1112
|
-
async getAll(req: Request, res: Response): Promise<void> {
|
1113
|
-
try {
|
1114
|
-
const result = await this.service.getAll();
|
1115
|
-
res.status(result.StatusCode === 1000 ? 200 : 400).json(result);
|
1116
|
-
} catch (error: any) {
|
1117
|
-
res.status(500).json({ error: error.message });
|
968
|
+
private service = new ${entityName}Service();
|
969
|
+
async getAll(req, res) {
|
970
|
+
const data = await this.service.getAll();
|
971
|
+
res.json(data);
|
1118
972
|
}
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
* @swagger
|
1123
|
-
* /api/${moduleName}s/{id}:
|
1124
|
-
* get:
|
1125
|
-
* summary: Get ${moduleName} by ID
|
1126
|
-
* tags: [${entityName}s]
|
1127
|
-
* parameters:
|
1128
|
-
* - in: path
|
1129
|
-
* name: id
|
1130
|
-
* required: true
|
1131
|
-
* schema:
|
1132
|
-
* type: string
|
1133
|
-
* responses:
|
1134
|
-
* 200:
|
1135
|
-
* description: ${entityName} details
|
1136
|
-
* content:
|
1137
|
-
* application/json:
|
1138
|
-
* schema:
|
1139
|
-
* type: object
|
1140
|
-
* properties:
|
1141
|
-
* Data:
|
1142
|
-
* $ref: '#/components/schemas/${entityName}'
|
1143
|
-
* StatusCode:
|
1144
|
-
* type: number
|
1145
|
-
* Message:
|
1146
|
-
* type: string
|
1147
|
-
*/
|
1148
|
-
async getById(req: Request, res: Response): Promise<void> {
|
1149
|
-
try {
|
1150
|
-
const { id } = req.params;
|
1151
|
-
const result = await this.service.getById(id);
|
1152
|
-
res.status(result.StatusCode === 1000 ? 200 : 400).json(result);
|
1153
|
-
} catch (error: any) {
|
1154
|
-
res.status(500).json({ error: error.message });
|
973
|
+
async getById(req, res) {
|
974
|
+
const data = await this.service.getById(req.params.id);
|
975
|
+
res.json(data);
|
1155
976
|
}
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1159
|
-
* @swagger
|
1160
|
-
* /api/${moduleName}s:
|
1161
|
-
* post:
|
1162
|
-
* summary: Create new ${moduleName}
|
1163
|
-
* tags: [${entityName}s]
|
1164
|
-
* requestBody:
|
1165
|
-
* required: true
|
1166
|
-
* content:
|
1167
|
-
* application/json:
|
1168
|
-
* schema:
|
1169
|
-
* type: object
|
1170
|
-
* properties:
|
1171
|
-
* name:
|
1172
|
-
* type: string
|
1173
|
-
* description:
|
1174
|
-
* type: string
|
1175
|
-
* responses:
|
1176
|
-
* 201:
|
1177
|
-
* description: ${entityName} created successfully
|
1178
|
-
* content:
|
1179
|
-
* application/json:
|
1180
|
-
* schema:
|
1181
|
-
* type: object
|
1182
|
-
* properties:
|
1183
|
-
* Data:
|
1184
|
-
* $ref: '#/components/schemas/${entityName}'
|
1185
|
-
* StatusCode:
|
1186
|
-
* type: number
|
1187
|
-
* Message:
|
1188
|
-
* type: string
|
1189
|
-
*/
|
1190
|
-
async create(req: Request, res: Response): Promise<void> {
|
1191
|
-
try {
|
1192
|
-
const ${moduleName}Data: I${entityName}Create = req.body;
|
1193
|
-
const result = await this.service.create(${moduleName}Data);
|
1194
|
-
res.status(result.StatusCode === 1000 ? 201 : 400).json(result);
|
1195
|
-
} catch (error: any) {
|
1196
|
-
res.status(500).json({ error: error.message });
|
977
|
+
async create(req, res) {
|
978
|
+
const data = await this.service.create(req.body);
|
979
|
+
res.json(data);
|
1197
980
|
}
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
* @swagger
|
1202
|
-
* /api/${moduleName}s/{id}:
|
1203
|
-
* put:
|
1204
|
-
* summary: Update ${moduleName}
|
1205
|
-
* tags: [${entityName}s]
|
1206
|
-
* parameters:
|
1207
|
-
* - in: path
|
1208
|
-
* name: id
|
1209
|
-
* required: true
|
1210
|
-
* schema:
|
1211
|
-
* type: string
|
1212
|
-
* requestBody:
|
1213
|
-
* required: true
|
1214
|
-
* content:
|
1215
|
-
* application/json:
|
1216
|
-
* schema:
|
1217
|
-
* type: object
|
1218
|
-
* properties:
|
1219
|
-
* name:
|
1220
|
-
* type: string
|
1221
|
-
* description:
|
1222
|
-
* type: string
|
1223
|
-
* responses:
|
1224
|
-
* 200:
|
1225
|
-
* description: ${entityName} updated successfully
|
1226
|
-
* content:
|
1227
|
-
* application/json:
|
1228
|
-
* schema:
|
1229
|
-
* type: object
|
1230
|
-
* properties:
|
1231
|
-
* Data:
|
1232
|
-
* $ref: '#/components/schemas/${entityName}'
|
1233
|
-
* StatusCode:
|
1234
|
-
* type: number
|
1235
|
-
* Message:
|
1236
|
-
* type: string
|
1237
|
-
*/
|
1238
|
-
async update(req: Request, res: Response): Promise<void> {
|
1239
|
-
try {
|
1240
|
-
const { id } = req.params;
|
1241
|
-
const ${moduleName}Data: I${entityName}Update = req.body;
|
1242
|
-
const result = await this.service.update(id, ${moduleName}Data);
|
1243
|
-
res.status(result.StatusCode === 1000 ? 200 : 400).json(result);
|
1244
|
-
} catch (error: any) {
|
1245
|
-
res.status(500).json({ error: error.message });
|
981
|
+
async update(req, res) {
|
982
|
+
const data = await this.service.update(req.params.id, req.body);
|
983
|
+
res.json(data);
|
1246
984
|
}
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1250
|
-
* @swagger
|
1251
|
-
* /api/${moduleName}s/{id}:
|
1252
|
-
* delete:
|
1253
|
-
* summary: Delete ${moduleName}
|
1254
|
-
* tags: [${entityName}s]
|
1255
|
-
* parameters:
|
1256
|
-
* - in: path
|
1257
|
-
* name: id
|
1258
|
-
* required: true
|
1259
|
-
* schema:
|
1260
|
-
* type: string
|
1261
|
-
* responses:
|
1262
|
-
* 200:
|
1263
|
-
* description: ${entityName} deleted successfully
|
1264
|
-
* content:
|
1265
|
-
* application/json:
|
1266
|
-
* schema:
|
1267
|
-
* type: object
|
1268
|
-
* properties:
|
1269
|
-
* Data:
|
1270
|
-
* type: boolean
|
1271
|
-
* StatusCode:
|
1272
|
-
* type: number
|
1273
|
-
* Message:
|
1274
|
-
* type: string
|
1275
|
-
*/
|
1276
|
-
async delete(req: Request, res: Response): Promise<void> {
|
1277
|
-
try {
|
1278
|
-
const { id } = req.params;
|
1279
|
-
const result = await this.service.delete(id);
|
1280
|
-
res.status(result.StatusCode === 1000 ? 200 : 400).json(result);
|
1281
|
-
} catch (error: any) {
|
1282
|
-
res.status(500).json({ error: error.message });
|
985
|
+
async delete(req, res) {
|
986
|
+
const data = await this.service.delete(req.params.id);
|
987
|
+
res.json(data);
|
1283
988
|
}
|
1284
|
-
|
1285
|
-
}
|
1286
|
-
`;
|
989
|
+
}`;
|
1287
990
|
await fs.writeFile(path.join(modulePath, 'controllers', `${moduleName}.controller.ts`), controllerContent);
|
1288
991
|
}
|
1289
992
|
async createRoutes(modulePath, moduleName, options) {
|
1290
993
|
const entityName = this.capitalizeFirst(moduleName);
|
1291
994
|
const routesContent = `import { Router } from 'express';
|
1292
995
|
import { ${entityName}Controller } from '../controllers/${moduleName}.controller';
|
1293
|
-
import { ${entityName}Service } from '../services/${moduleName}.service';
|
1294
996
|
|
1295
997
|
const router = Router();
|
1296
|
-
const
|
1297
|
-
const controller = new ${entityName}Controller(service);
|
998
|
+
const controller = new ${entityName}Controller();
|
1298
999
|
|
1299
|
-
|
1300
|
-
router.get('/', controller.getAll
|
1301
|
-
router.get('/:id', controller.getById
|
1302
|
-
router.post('/', controller.create
|
1303
|
-
router.put('/:id', controller.update
|
1304
|
-
router.delete('/:id', controller.delete
|
1000
|
+
router.get('/', (req, res) => res.send('${entityName} API is up.'));
|
1001
|
+
router.get('/all', (req, res) => controller.getAll(req, res));
|
1002
|
+
router.get('/:id', (req, res) => controller.getById(req, res));
|
1003
|
+
router.post('/', (req, res) => controller.create(req, res));
|
1004
|
+
router.put('/:id', (req, res) => controller.update(req, res));
|
1005
|
+
router.delete('/:id', (req, res) => controller.delete(req, res));
|
1305
1006
|
|
1306
|
-
export default router
|
1307
|
-
`;
|
1007
|
+
export default router;`;
|
1308
1008
|
await fs.writeFile(path.join(modulePath, 'routes', `${moduleName}.routes.ts`), routesContent);
|
1309
1009
|
}
|
1310
1010
|
async generateCRUDOperations(projectPath, moduleName, options) {
|
@@ -1314,36 +1014,74 @@ export default router;
|
|
1314
1014
|
async registerModule(projectPath, moduleName) {
|
1315
1015
|
console.log(chalk_1.default.blue(`📝 Registering ${moduleName} module in main application...`));
|
1316
1016
|
// Update main routes index to include the new module
|
1317
|
-
const routesIndexPath = path.join(projectPath, 'src', '
|
1017
|
+
const routesIndexPath = path.join(projectPath, 'src', 'routes', 'index.ts');
|
1318
1018
|
if (await fs.pathExists(routesIndexPath)) {
|
1319
1019
|
let content = await fs.readFile(routesIndexPath, 'utf8');
|
1320
1020
|
// Add import for the new module
|
1321
|
-
const importStatement = `import ${moduleName}Routes from '
|
1021
|
+
const importStatement = `import ${moduleName}Routes from '../modules/${moduleName}/routes/${moduleName}.routes';`;
|
1322
1022
|
if (!content.includes(importStatement)) {
|
1323
|
-
//
|
1324
|
-
|
1325
|
-
const matches = [...content.matchAll(importRegex)];
|
1326
|
-
if (matches.length > 0) {
|
1327
|
-
const lastImport = matches[matches.length - 1];
|
1328
|
-
const insertIndex = lastImport.index + lastImport[0].length;
|
1329
|
-
content = content.slice(0, insertIndex) + '\n' + importStatement + content.slice(insertIndex);
|
1330
|
-
}
|
1023
|
+
// Add import after the userRoutes import
|
1024
|
+
content = content.replace(/import userRoutes from '\.\.\/modules\/users\/routes\/user\.routes';/, `import userRoutes from '../modules/users/routes/user.routes';\n${importStatement}`);
|
1331
1025
|
}
|
1332
1026
|
// Add route registration
|
1333
|
-
const routeRegistration = `
|
1027
|
+
const routeRegistration = `router.use('/${moduleName}', ${moduleName}Routes);`;
|
1334
1028
|
if (!content.includes(routeRegistration)) {
|
1335
|
-
//
|
1336
|
-
|
1337
|
-
const matches = [...content.matchAll(routeRegex)];
|
1338
|
-
if (matches.length > 0) {
|
1339
|
-
const lastRoute = matches[matches.length - 1];
|
1340
|
-
const insertIndex = lastRoute.index + lastRoute[0].length;
|
1341
|
-
content = content.slice(0, insertIndex) + '\n' + routeRegistration + content.slice(insertIndex);
|
1342
|
-
}
|
1029
|
+
// Add route after the users route
|
1030
|
+
content = content.replace(/router\.use\('\/users', userRoutes\);/, `router.use('/users', userRoutes);\n${routeRegistration}`);
|
1343
1031
|
}
|
1344
1032
|
await fs.writeFile(routesIndexPath, content);
|
1345
1033
|
}
|
1346
1034
|
}
|
1035
|
+
async updateSeeder(projectPath, moduleName) {
|
1036
|
+
const entityName = this.capitalizeFirst(moduleName);
|
1037
|
+
const seederPath = path.join(projectPath, 'src', 'core', 'database', 'seeder.ts');
|
1038
|
+
if (await fs.pathExists(seederPath)) {
|
1039
|
+
let seederContent = await fs.readFile(seederPath, 'utf8');
|
1040
|
+
// Add import for the model
|
1041
|
+
const importStatement = `import { ${entityName}Model } from '../../modules/${moduleName}/schemas/${moduleName}.schema';`;
|
1042
|
+
if (!seederContent.includes(importStatement)) {
|
1043
|
+
seederContent = seederContent.replace(/import { UserModel } from '\.\.\/\.\.\/modules\/users\/schemas\/user\.schema';/, `import { UserModel } from '../../modules/users/schemas/user.schema';\n${importStatement}`);
|
1044
|
+
}
|
1045
|
+
// Add seeder function
|
1046
|
+
const seederFunction = ` private async seed${entityName}s(data: any[]): Promise<void> {
|
1047
|
+
if (data.length === 0) return;
|
1048
|
+
|
1049
|
+
logger.info(\`[DatabaseSeeder] Seeding \${data.length} ${moduleName}s...\`);
|
1050
|
+
|
1051
|
+
for (const ${moduleName}Data of data) {
|
1052
|
+
try {
|
1053
|
+
const existing = await ${entityName}Model.findOne({ name: ${moduleName}Data.name });
|
1054
|
+
if (!existing) {
|
1055
|
+
const ${moduleName} = new ${entityName}Model({
|
1056
|
+
...${moduleName}Data,
|
1057
|
+
status: 1
|
1058
|
+
});
|
1059
|
+
await ${moduleName}.save();
|
1060
|
+
logger.info(\`[DatabaseSeeder] Created ${moduleName}: \${${moduleName}Data.name}\`);
|
1061
|
+
} else {
|
1062
|
+
logger.info(\`[DatabaseSeeder] ${entityName} \${${moduleName}Data.name} already exists, skipping\`);
|
1063
|
+
}
|
1064
|
+
} catch (error) {
|
1065
|
+
logger.error(\`[DatabaseSeeder] Failed to create ${moduleName} \${${moduleName}Data.name}:\`, error);
|
1066
|
+
}
|
1067
|
+
}
|
1068
|
+
}`;
|
1069
|
+
if (!seederContent.includes(`seed${entityName}s`)) {
|
1070
|
+
seederContent = seederContent.replace(/\/\/ TEMPLATE: Add new seeder functions here \(the CLI will add new functions automatically\)/, `// TEMPLATE: Add new seeder functions here (the CLI will add new functions automatically)\n${seederFunction}`);
|
1071
|
+
}
|
1072
|
+
// Add seeder call
|
1073
|
+
const seederCall = ` await this.seed${entityName}s(seedData.${moduleName}s || []);`;
|
1074
|
+
if (!seederContent.includes(seederCall)) {
|
1075
|
+
seederContent = seederContent.replace(/\/\/ TEMPLATE: Call new seeders here \(the CLI will add new calls automatically\)/, `// TEMPLATE: Call new seeders here (the CLI will add new calls automatically)\n${seederCall}`);
|
1076
|
+
}
|
1077
|
+
// Add default seed data
|
1078
|
+
const seedDataLine = ` ${moduleName}s: [ { name: '${entityName} Example', description: 'Example ${moduleName}', status: 1 } ],`;
|
1079
|
+
if (!seederContent.includes(seedDataLine)) {
|
1080
|
+
seederContent = seederContent.replace(/const defaultData: SeedData = \{/, `const defaultData: SeedData = {\n${seedDataLine}`);
|
1081
|
+
}
|
1082
|
+
await fs.writeFile(seederPath, seederContent);
|
1083
|
+
}
|
1084
|
+
}
|
1347
1085
|
async createTableSchema(projectPath, tableName, options) {
|
1348
1086
|
const entityName = this.capitalizeFirst(tableName);
|
1349
1087
|
const fields = options.fields || ['name', 'description'];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"project-extender.js","sourceRoot":"","sources":["../../src/services/project-extender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAC/B,2CAA6B;AAC7B,kDAA0B;AAS1B,MAAa,eAAe;IAA5B;QACU,aAAQ,GAAc;YAC5B;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,gCAAgC;gBAC7C,KAAK,EAAE,CAAC,wBAAwB,CAAC;gBACjC,YAAY,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC;aAC3C;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,2BAA2B;gBACxC,KAAK,EAAE,CAAC,yBAAyB,CAAC;gBAClC,YAAY,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;aAC3C;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;gBAChD,KAAK,EAAE,CAAC,0BAA0B,CAAC;gBACnC,YAAY,EAAE,CAAC,WAAW,CAAC;aAC5B;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,uBAAuB;gBACpC,KAAK,EAAE,CAAC,wBAAwB,CAAC;gBACjC,YAAY,EAAE,CAAC,WAAW,CAAC;aAC5B;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,sBAAsB;gBACnC,KAAK,EAAE,CAAC,yBAAyB,CAAC;aACnC;SACF,CAAC;IAyoDJ,CAAC;IAvoDC,KAAK,CAAC,YAAY;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,qBAAqB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAEhE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,oDAAoD,CAAC,CAAC;QAC/F,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,kCAAkC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC3E,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,mCAAmC,CAAC,CAAC;QAC9E,CAAC;QAED,qCAAqC;QACrC,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAExD,0BAA0B;QAC1B,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,wDAAwD;QACxD,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,WAAW,uBAAuB,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4CAA4C,WAAW,UAAU,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,UAAe,EAAE;QACxD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,iCAAiC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACxE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,mCAAmC,CAAC,CAAC;QAC5E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC,CAAC;QAE3E,oCAAoC;QACpC,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAEnE,wCAAwC;QACxC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC;QAED,gDAAgD;QAChD,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,aAAa,UAAU,2BAA2B,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,UAAe,EAAE;QACtD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,SAAS,EAAE,CAAC,CAAC,CAAC;QAE1E,6CAA6C;QAC7C,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAE9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,SAAS,2BAA2B,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAoB,EAAE,UAAe,EAAE;QAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC,CAAC;QAExE,8BAA8B;QAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAE/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,YAAY,2BAA2B,CAAC,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,OAAgB;QACxE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5E,iCAAiC;QACjC,MAAM,SAAS,GAAG;YAChB,aAAa,EAAE,qBAAqB;YACpC,UAAU,EAAE,wBAAwB;YACpC,SAAS,EAAE,4BAA4B;YACvC,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,0BAA0B;YACnC,WAAW,EAAE,uCAAuC;SACrD,CAAC;QAEF,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE5B,oBAAoB;YACpB,MAAM,YAAY,GAAG,MAAM,WAAW,QAAQ,OAAO,CAAC,IAAI;mBAC7C,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAClD,CAAC;YACI,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC;QAED,+CAA+C;QAC/C,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAE7F,+BAA+B;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,aAAa,CAAC,CAAC;QAEvE,qDAAqD;QACrD,MAAM,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAE7D,yBAAyB;QACzB,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,WAAmB;QAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAE1D,oBAAoB;QACpB,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACvF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,WAAW,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAE7G,iBAAiB;QACjB,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,WAAW,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;QAEpG,eAAe;QACf,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAC7E,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,WAAW,WAAW,CAAC,EAAE,YAAY,CAAC,CAAC;QAE7F,iBAAiB;QACjB,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,WAAW,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;IACrG,CAAC;IAEO,yBAAyB,CAAC,WAAmB,EAAE,eAAuB;QAC5E,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,MAAM;gBACT,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoFb,CAAC;YAEG,KAAK,OAAO;gBACV,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDb,CAAC;YAEG;gBACE,OAAO;WACJ,eAAe,+BAA+B,WAAW;;;;eAIrD,eAAe;wBACN,WAAW,YAAY,eAAe;;;;kCAI5B,WAAW;;;sBAGvB,eAAe;2CACM,eAAe;;;;;;;kCAOxB,WAAW;;;sBAGvB,eAAe;;;;EAInC,CAAC;QACC,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,WAAmB,EAAE,eAAuB;QACzE,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,MAAM;gBACT,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+Gb,CAAC;YAEG;gBACE,OAAO;;WAEJ,eAAe;;eAEX,eAAe;gCACE,eAAe;;;;;;oBAM3B,WAAW;;;;sBAIT,eAAe;6BACR,eAAe;;;;;;;qBAOvB,eAAe;;;;sBAId,eAAe;;;;;;EAMnC,CAAC;QACC,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,WAAmB,EAAE,eAAuB;QACvE,OAAO,2BAA2B,WAAW;;mBAE9B,eAAe;;;;;mBAKf,eAAe;;;;mBAIf,eAAe;;;;;CAKjC,CAAC;IACA,CAAC;IAEO,sBAAsB,CAAC,WAAmB,EAAE,eAAuB;QACzE,OAAO,6BAA6B,WAAW;;;eAGpC,WAAW;;;;;;;eAOX,WAAW;;;;;CAKzB,CAAC;IACA,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,WAAmB;QACnD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAE1D,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,MAAM;gBACT,OAAO;;;;;eAKA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoC5B,CAAC;YAEG,KAAK,OAAO;gBACV,OAAO;;;;;eAKA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiC5B,CAAC;YAEG,KAAK,QAAQ;gBACX,OAAO;;;;;eAKA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiC5B,CAAC;YAEG,KAAK,MAAM;gBACT,OAAO;;;;eAIA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6B5B,CAAC;YAEG,KAAK,OAAO;gBACV,OAAO;;;;;eAKA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsC5B,CAAC;YAEG;gBACE,OAAO;WACJ,eAAe;WACf,eAAe;WACf,eAAe;;eAEX,eAAe;;wBAEN,eAAe;qBAClB,eAAe;oBAChB,eAAe;;;;wBAIX,eAAe;yBACd,eAAe;4BACZ,eAAe;;;;;;;;;;;;;kBAazB,eAAe;;;;iBAIhB,eAAe;;;EAG9B,CAAC;QACC,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,WAAmB;QAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAE1D,OAAO,gBAAgB,eAAe;;;;;;;;;;;;;yBAajB,WAAW,CAAC,WAAW,EAAE;;EAEhD,CAAC;IACD,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,WAAmB,EAAE,WAAmB,EAAE,IAAY;QACvF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,8BAA8B,CAAC,CAAC;QAC/E,IAAI,WAAW,GAAQ,EAAE,CAAC;QAE1B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACvB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,gBAAgB,WAAW,EAAE;YACnC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,WAAmB,EAAE,UAAkB,EAAE,OAAY;QACvF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAExE,oCAAoC;QACpC,MAAM,SAAS,GAAG;YAChB,UAAU,EAAE,4BAA4B;YACxC,SAAS,EAAE,iCAAiC;YAC5C,UAAU,EAAE,gCAAgC;YAC5C,aAAa,EAAE,uBAAuB;YACtC,QAAQ,EAAE,uBAAuB;SAClC,CAAC;QAEF,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAE5B,iDAAiD;YACjD,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,UAAU;oBACb,QAAQ,GAAG,GAAG,UAAU,SAAS,CAAC;oBAClC,MAAM;gBACR,KAAK,SAAS;oBACZ,QAAQ,GAAG,GAAG,UAAU,SAAS,CAAC;oBAClC,MAAM;gBACR,KAAK,UAAU;oBACb,QAAQ,GAAG,GAAG,UAAU,UAAU,CAAC;oBACnC,MAAM;gBACR,KAAK,aAAa;oBAChB,QAAQ,GAAG,GAAG,UAAU,aAAa,CAAC;oBACtC,MAAM;gBACR,KAAK,QAAQ;oBACX,QAAQ,GAAG,GAAG,UAAU,SAAS,CAAC;oBAClC,MAAM;gBACR;oBACE,QAAQ,GAAG,GAAG,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,WAAW,QAAQ,UAAU;mBAC3C,QAAQ;CAC1B,CAAC;YACI,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC;QAED,qBAAqB;QACrB,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAEzD,gBAAgB;QAChB,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAEzD,iBAAiB;QACjB,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAE1D,oBAAoB;QACpB,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAE7D,gBAAgB;QAChB,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,UAAkB,EAAE,OAAY;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG;;oBAEN,UAAU;EAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;oBAG7C,UAAU;EAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;oBAG7C,UAAU;EAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;CAEjE,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;IAClG,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,UAAkB,EAAE,OAAY;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG;YACd,UAAU,wBAAwB,UAAU;;oBAEpC,UAAU,0BAA0B,UAAU;;QAE1D,UAAU;EAChB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,KAAK;;;;IAItC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;EAWf,MAAM,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,UAAU,kBAAkB,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;eAE1E,UAAU,2BAA2B,UAAU,cAAc,UAAU,MAAM,UAAU;CACrG,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,UAAU,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;IACjG,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,UAAkB,EAAE,OAAY;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,cAAc,GAAG;WAChB,UAAU,WAAW,UAAU,+BAA+B,UAAU;YACvE,UAAU,MAAM,UAAU,YAAY,UAAU,8BAA8B,UAAU;;eAErF,UAAU;;eAEV,UAAU;;oCAEW,UAAU;;cAEhC,UAAU,aAAa,UAAU;uBACxB,UAAU,OAAO,UAAU,SAAS,UAAU;aACxD,UAAU;eACR,UAAU;gBACT,UAAU;uCACa,UAAU;;6CAEJ,UAAU;;;;;WAK5C,UAAU;;+CAE0B,UAAU;;cAE3C,UAAU,YAAY,UAAU;aACjC,UAAU;+BACQ,UAAU,iBAAiB,UAAU;;cAEtD,UAAU,SAAS,UAAU;uBACpB,UAAU;aACpB,UAAU;eACR,UAAU;cACX,UAAU;uCACe,UAAU;;6CAEJ,UAAU;;;;;kBAKrC,UAAU;;iBAEX,UAAU,UAAU,UAAU,4BAA4B,UAAU;;cAEvE,UAAU,UAAU,UAAU;aAC/B,UAAU;;;;mBAIJ,UAAU,YAAY,UAAU;cACrC,UAAU,cAAc,UAAU;;uBAEzB,UAAU;aACpB,UAAU;eACR,UAAU;cACX,UAAU;;uCAEe,UAAU;;8CAEH,UAAU;;;;;cAK1C,UAAU;;6BAEK,UAAU,UAAU,UAAU,4BAA4B,UAAU;;cAEnF,UAAU,YAAY,UAAU;aACjC,UAAU;+BACQ,UAAU,iBAAiB,UAAU;;;sBAG9C,UAAU,KAAK,UAAU;qBAC1B,UAAU,YAAY,UAAU;;cAEvC,UAAU,gBAAgB,UAAU;;uBAE3B,UAAU;aACpB,UAAU;eACR,UAAU;cACX,UAAU;;uCAEe,UAAU;;8CAEH,UAAU;;;;;cAK1C,UAAU;;;;cAIV,UAAU,YAAY,UAAU;aACjC,UAAU;+BACQ,UAAU,iBAAiB,UAAU;;;QAG5D,UAAU;cACJ,UAAU;;;;8CAIsB,UAAU;;;;CAIvD,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;IACpG,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,UAAkB,EAAE,UAAkB,EAAE,OAAY;QACjF,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,iBAAiB,GAAG;WACnB,UAAU,+BAA+B,UAAU;YAClD,UAAU,YAAY,UAAU,8BAA8B,UAAU;;;;;;SAM3E,UAAU;;;;;;;;;;;;;;;;;eAiBJ,UAAU;iCACQ,UAAU;;;;YAI/B,UAAU;;4BAEM,UAAU;kBACpB,UAAU;;;oCAGQ,UAAU;;;;;;;;;uDASS,UAAU;;;;;;;;;;;;;;;;;YAiBrD,UAAU;;wBAEE,UAAU;kBAChB,UAAU;;;;;;;;;4BASA,UAAU;;;;;;;qDAOe,UAAU;;;;;;;;;;;;;;;;;;YAkBnD,UAAU;;+BAES,UAAU;kBACvB,UAAU;;;;;;;;;;;;;;4BAcA,UAAU;;;;;;;qDAOe,UAAU;;;;;;;;cAQjD,UAAU,UAAU,UAAU;iDACK,UAAU;;;;;;;;;YAS/C,UAAU;;2BAEK,UAAU;kBACnB,UAAU;;;;;;;;;;;;;;;;;;;;4BAoBA,UAAU;;;;;;;qDAOe,UAAU;;;;;;;;;cASjD,UAAU,UAAU,UAAU;qDACS,UAAU;;;;;;;;;YASnD,UAAU;;2BAEK,UAAU;kBACnB,UAAU;;;;;;;;;4BASA,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAuBrC,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,UAAU,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC7G,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,UAAkB,EAAE,OAAY;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,aAAa,GAAG;WACf,UAAU,qCAAqC,UAAU;WACzD,UAAU,+BAA+B,UAAU;;;sBAGxC,UAAU;yBACP,UAAU;;KAE9B,UAAU;;;;;;;;CAQd,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,UAAU,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;IAChG,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,UAAkB,EAAE,OAAY;QACxF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,UAAU,KAAK,CAAC,CAAC,CAAC;QAC9E,gFAAgF;IAClF,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,UAAkB;QAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,gCAAgC,CAAC,CAAC,CAAC;QAEtF,qDAAqD;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAE7E,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAEzD,gCAAgC;YAChC,MAAM,eAAe,GAAG,UAAU,UAAU,kBAAkB,UAAU,WAAW,UAAU,WAAW,CAAC;YAEzG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,kDAAkD;gBAClD,MAAM,WAAW,GAAG,4BAA4B,CAAC;gBACjD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;gBACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,MAAM,iBAAiB,GAAG,iBAAiB,UAAU,OAAO,UAAU,UAAU,CAAC;YAEjF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACzC,iDAAiD;gBACjD,MAAM,UAAU,GAAG,wBAAwB,CAAC;gBAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9C,MAAM,WAAW,GAAG,SAAS,CAAC,KAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC3D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAClG,CAAC;YACH,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,SAAiB,EAAE,OAAY;QAClF,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;QAEzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAgB;QACxF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,YAAY,CAAC,CAAC;QACtF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEnD,MAAM,aAAa,GAAG;;oBAEN,UAAU;EAC5B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;QAK/C,SAAS;EACf,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK;;;;IAI5B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;EAMf,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,SAAS,kBAAkB,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;eAE/D,UAAU,2BAA2B,UAAU,cAAc,UAAU,MAAM,SAAS;CACpG,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,SAAiB,EAAE,MAAgB,EAAE,MAAc;QACpG,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,MAAM,CAAC,CAAC;QAChF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEnD,MAAM,aAAa,GAAG,MAAM,UAAU,qBAAqB,MAAM,CAAC,WAAW,EAAE;eACpE,SAAS;OACjB,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB;EAC5D,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;EAMnE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,SAAS,IAAI,KAAK,OAAO,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACrG,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,YAAoB,EAAE,OAAY;QACnF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,YAAY,eAAe,CAAC,CAAC;QAC3G,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAE/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,YAAoB,EAAE,YAAoB;QAC7E,MAAM,eAAe,GAAG,4BAA4B,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA4BrD,YAAY;;;;;;;CAO1B,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,YAAoB,EAAE,YAAoB,EAAE,MAAc;QACzF,MAAM,eAAe,GAAG,wBAAwB,YAAY,KAAK,MAAM,CAAC,WAAW,EAAE;;;;UAI/E,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB;;;;;;UAMvD,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB;;;;;;;;;UASvD,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB;;;;;UAKvD,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB;;;;;;;;;;;;;;CAchE,CAAC;QAEE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACpD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,YAAsB;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAEzD,6DAA6D;QAC7D,kDAAkD;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC;IACrG,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,WAAmB,EAAE,OAAgB;QACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sCAAsC,OAAO,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;QAEzF,iDAAiD;QACjD,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAElD,gDAAgD;QAChD,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEnD,wCAAwC;QACxC,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oCAAoC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,WAAmB,EAAE,OAAgB;QAClE,MAAM,WAAW,GAAG;YAClB,qBAAqB;YACrB,SAAS;YACT,cAAc;YACd,aAAa;SACd,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YACpD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAElD,6BAA6B;gBAC7B,MAAM,eAAe,GAAG,YAAY,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC;gBAErI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBACvC,kDAAkD;oBAClD,MAAM,WAAW,GAAG,4BAA4B,CAAC;oBACjD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;oBACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC7D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAChG,CAAC;gBACH,CAAC;gBAED,6BAA6B;gBAC7B,MAAM,WAAW,GAAG,iBAAiB,OAAO,CAAC,IAAI;QACjD,OAAO,CAAC,IAAI,iBAAiB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;gBACvD,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,uBAAuB,CAAC;gBAE9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBACnC,iDAAiD;oBACjD,MAAM,UAAU,GAAG,wBAAwB,CAAC;oBAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;oBAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC9C,MAAM,WAAW,GAAG,SAAS,CAAC,KAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBAC3D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC5F,CAAC;gBACH,CAAC;gBAED,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC,CAAC;gBACvD,MAAM,CAAC,0CAA0C;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,OAAgB;QACnE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAEtE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAEzD,gCAAgC;YAChC,MAAM,eAAe,GAAG,UAAU,OAAO,CAAC,IAAI,4BAA4B,OAAO,CAAC,IAAI,WAAW,CAAC;YAElG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,MAAM,WAAW,GAAG,4BAA4B,CAAC;gBACjD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;gBACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,MAAM,iBAAiB,GAAG,iBAAiB,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,UAAU,CAAC;YAEpF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,wBAAwB,CAAC;gBAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC9C,MAAM,WAAW,GAAG,SAAS,CAAC,KAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC3D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAClG,CAAC;YACH,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,WAAmB,EAAE,OAAgB;QACnE,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAE/D,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;YAE3E,yCAAyC;YACzC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;YAC3B,CAAC;YAED,+BAA+B;YAC/B,MAAM,cAAc,GAAG;gBACrB,CAAC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,uBAAuB,OAAO,CAAC,IAAI,GAAG;gBAChE,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,qCAAqC,OAAO,CAAC,IAAI,WAAW;aACxF,CAAC;YAEF,KAAK,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;oBACrC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,MAAM,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,GAAW;QACjC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;CACF;AAxqDD,0CAwqDC"}
|
1
|
+
{"version":3,"file":"project-extender.js","sourceRoot":"","sources":["../../src/services/project-extender.ts"],"names":[],"mappings":"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"}
|