@morojs/cli 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
File without changes
package/README.md CHANGED
@@ -147,31 +147,37 @@ morojs-cli security:scan
147
147
  ## Project Templates
148
148
 
149
149
  ### API Server
150
+
150
151
  ```bash
151
152
  morojs-cli init my-api --template=api --runtime=node --database=postgresql
152
153
  ```
154
+
153
155
  Perfect for REST APIs, GraphQL servers, and backend services.
154
156
 
155
157
  ### Microservice
158
+
156
159
  ```bash
157
160
  morojs-cli init my-service --template=microservice --runtime=vercel-edge
158
161
  ```
162
+
159
163
  Lightweight services optimized for serverless deployment.
160
164
 
161
165
  ### Full-stack
166
+
162
167
  ```bash
163
168
  morojs-cli init my-app --template=fullstack --features=auth,websocket,docs
164
169
  ```
170
+
165
171
  Complete application with frontend integration support.
166
172
 
167
173
  ## Runtime Adapters
168
174
 
169
- | Runtime | Description | Deploy Command |
170
- |---------|-------------|----------------|
171
- | **Node.js** | Traditional server deployment | `node dist/index.js` |
172
- | **Vercel Edge** | Edge runtime with global distribution | `morojs-cli deploy vercel` |
173
- | **AWS Lambda** | Serverless functions with auto-scaling | `morojs-cli deploy lambda` |
174
- | **Cloudflare Workers** | Edge workers with V8 isolates | `morojs-cli deploy workers` |
175
+ | Runtime | Description | Deploy Command |
176
+ | ---------------------- | -------------------------------------- | --------------------------- |
177
+ | **Node.js** | Traditional server deployment | `node dist/index.js` |
178
+ | **Vercel Edge** | Edge runtime with global distribution | `morojs-cli deploy vercel` |
179
+ | **AWS Lambda** | Serverless functions with auto-scaling | `morojs-cli deploy lambda` |
180
+ | **Cloudflare Workers** | Edge workers with V8 isolates | `morojs-cli deploy workers` |
175
181
 
176
182
  ## Database Support
177
183
 
@@ -197,6 +203,7 @@ Complete application with frontend integration support.
197
203
  ## Examples
198
204
 
199
205
  ### Create a User Management API
206
+
200
207
  ```bash
201
208
  # Initialize project
202
209
  morojs-cli init user-api --runtime=node --database=postgresql --features=auth,docs
@@ -215,6 +222,7 @@ npm run dev
215
222
  ```
216
223
 
217
224
  ### Serverless Microservice
225
+
218
226
  ```bash
219
227
  # Create lightweight service
220
228
  morojs-cli init payment-service --template=microservice --runtime=aws-lambda --database=redis
@@ -230,6 +238,7 @@ npm run deploy:lambda
230
238
  ```
231
239
 
232
240
  ### Full-stack Application
241
+
233
242
  ```bash
234
243
  # Create full-stack app
235
244
  morojs-cli init chat-app --template=fullstack --features=websocket,auth,docs --database=mongodb
@@ -293,8 +302,8 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
293
302
  - **Documentation**: [https://morojs.com](https://morojs.com)
294
303
  - **GitHub**: [https://github.com/Moro-JS/cli](https://github.com/Moro-JS/cli)
295
304
  - **NPM**: [https://www.npmjs.com/package/@morojs/cli](https://www.npmjs.com/package/@morojs/cli)
296
- - **Discord**: [Join our community](https://discord.gg/morojs)
305
+ - **Discord**: [Join our community](https://morojs.com/discord)
297
306
 
298
307
  ---
299
308
 
300
- **Built with ❤️ by the MoroJS Team**
309
+ **Built with ❤️ by the MoroJS Team**
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAqC;IAE7C,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CxD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6ClD,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoChD,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC7C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;YAkCrB,4BAA4B;CAuB3C"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAqC;IAE7C,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CxD,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlD,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoChD,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC7C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;YAkCrB,4BAA4B;CAuB3C"}
@@ -84,29 +84,10 @@ class DevTools {
84
84
  this.logger.info(`Building project for ${options.target || 'node'} runtime...`, 'Build');
85
85
  try {
86
86
  const outputDir = options.output || 'dist';
87
- // Check if esbuild is available for faster builds
88
- const hasEsbuild = (0, fs_1.existsSync)((0, path_1.join)(process.cwd(), 'node_modules', '.bin', 'esbuild'));
89
- if (hasEsbuild) {
90
- const esbuildArgs = [
91
- 'src/index.ts',
92
- '--bundle',
93
- '--platform=node',
94
- '--target=node18',
95
- '--format=esm',
96
- '--outfile=' + (0, path_1.join)(outputDir, 'index.js'),
97
- '--external:@morojs/moro',
98
- ];
99
- if (options.minify) {
100
- esbuildArgs.push('--minify');
101
- }
102
- await (0, terminal_1.spawnCommand)('npx', ['esbuild', ...esbuildArgs]);
103
- this.logger.info(`✅ Build completed! Output: ${outputDir}/`, 'Build');
104
- }
105
- else {
106
- // Fallback to TypeScript compiler
107
- await (0, terminal_1.runTerminalCmd)('npx tsc');
108
- this.logger.info(`✅ Build completed using TypeScript compiler!`, 'Build');
109
- }
87
+ // Use TypeScript compiler for reliable CommonJS output
88
+ // esbuild bundling causes issues with dynamic requires in CommonJS dependencies
89
+ await (0, terminal_1.runTerminalCmd)('npx tsc');
90
+ this.logger.info(`✅ Build completed using TypeScript compiler!`, 'Build');
110
91
  // Generate runtime-specific files
111
92
  if (options.target && options.target !== 'node') {
112
93
  await this.generateRuntimeSpecificFiles(options.target, outputDir);
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -23,5 +23,9 @@ export declare class ProjectInitializer {
23
23
  private generateAuthMiddleware;
24
24
  private generateTestSetup;
25
25
  private displaySuccessMessage;
26
+ /**
27
+ * Fetch the latest version of a package from NPM registry
28
+ */
29
+ private getLatestPackageVersion;
26
30
  }
27
31
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,oBAAoB,CAAC;IACvE,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,cAAc,CAAC;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA+C;IAEvD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyF1E,mBAAmB;YAmFnB,mBAAmB;YA0DnB,gBAAgB;YA4BhB,eAAe;YA6Ff,gBAAgB;YAyFhB,kBAAkB;YAiElB,iBAAiB;YA4GjB,cAAc;YA2Kd,kBAAkB;YA8IlB,wBAAwB;YAgCxB,qBAAqB;YAkDrB,sBAAsB;YAqDtB,iBAAiB;IAoD/B,OAAO,CAAC,qBAAqB;CAyC9B"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,oBAAoB,CAAC;IACvE,QAAQ,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,GAAG,WAAW,GAAG,cAAc,CAAC;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA+C;IAEvD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAyF1E,mBAAmB;YAmFnB,mBAAmB;YA+DnB,gBAAgB;YA4BhB,eAAe;YA+Ff,gBAAgB;YAyFhB,kBAAkB;YAmQlB,iBAAiB;YA4GjB,cAAc;YAiMd,kBAAkB;YA8IlB,wBAAwB;YAgCxB,qBAAqB;YAiErB,sBAAsB;YA2HtB,iBAAiB;IAoD/B,OAAO,CAAC,qBAAqB;IA0C7B;;OAEG;YACW,uBAAuB;CActC"}
@@ -15,6 +15,9 @@ const ora_1 = __importDefault(require("ora"));
15
15
  const boxen_1 = __importDefault(require("boxen"));
16
16
  const figlet_1 = __importDefault(require("figlet"));
17
17
  const terminal_1 = require("../utils/terminal");
18
+ const child_process_1 = require("child_process");
19
+ const util_1 = require("util");
20
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
18
21
  class ProjectInitializer {
19
22
  constructor() {
20
23
  this.logger = (0, logger_1.createFrameworkLogger)('ProjectInitializer');
@@ -176,8 +179,8 @@ class ProjectInitializer {
176
179
  name: projectName,
177
180
  version: '1.0.0',
178
181
  description: `MoroJS ${config.template} project`,
179
- main: 'dist/index.js',
180
182
  type: 'module',
183
+ main: 'dist/index.js',
181
184
  scripts: {
182
185
  dev: 'morojs-cli dev',
183
186
  build: 'morojs-cli build',
@@ -193,7 +196,7 @@ class ProjectInitializer {
193
196
  }),
194
197
  },
195
198
  dependencies: {
196
- '@morojs/moro': '^1.0.0',
199
+ '@morojs/moro': await this.getLatestPackageVersion('@morojs/moro'),
197
200
  ...(config.database === 'postgresql' && { pg: '^8.11.3', '@types/pg': '^8.10.9' }),
198
201
  ...(config.database === 'mysql' && { mysql2: '^3.6.5' }),
199
202
  ...(config.database === 'mongodb' && { mongodb: '^6.3.0' }),
@@ -202,13 +205,18 @@ class ProjectInitializer {
202
205
  'drizzle-orm': '^0.29.1',
203
206
  'drizzle-kit': '^0.20.6',
204
207
  }),
205
- ...(config.features.includes('auth') && { jsonwebtoken: '^9.0.2', bcryptjs: '^2.4.3' }),
208
+ ...(config.features.includes('auth') && {
209
+ bcryptjs: '^2.4.3',
210
+ }),
206
211
  zod: '^3.22.4',
207
212
  },
208
213
  devDependencies: {
209
214
  '@morojs/cli': '^1.0.0',
210
215
  '@types/node': '^20.10.0',
211
216
  typescript: '^5.3.2',
217
+ ...(config.features.includes('auth') && {
218
+ '@types/bcryptjs': '^2.4.0',
219
+ }),
212
220
  ...(config.features.includes('testing') && {
213
221
  jest: '^29.7.0',
214
222
  '@types/jest': '^29.5.8',
@@ -258,18 +266,20 @@ class ProjectInitializer {
258
266
  'cloudflare-workers': 'createAppWorker',
259
267
  };
260
268
  const appContent = `// ${config.template.toUpperCase()} MoroJS Application
261
- import { ${runtimeImports[config.runtime]}, logger } from '@morojs/moro';
269
+ import { ${runtimeImports[config.runtime]}, logger, initializeConfig } from '@morojs/moro';
262
270
  ${config.database !== 'none' ? `import { setupDatabase } from './database';` : ''}
263
271
  ${config.features.includes('auth') ? `import { setupAuth } from './middleware/auth';` : ''}
264
272
 
273
+ // Initialize configuration from moro.config.js and environment variables
274
+ const appConfig = initializeConfig();
275
+
265
276
  // Create MoroJS application with ${config.runtime} runtime
266
277
  const app = ${runtimeImports[config.runtime]}({
267
- runtime: { type: '${config.runtime}' },
268
278
  ${config.features.includes('cors') ? `cors: true,` : ''}
269
279
  ${config.features.includes('compression') ? `compression: true,` : ''}
270
280
  logger: {
271
- level: process.env.LOG_LEVEL || 'info',
272
- format: 'pretty'
281
+ level: appConfig.logging?.level || 'info',
282
+ format: appConfig.logging?.format || 'pretty'
273
283
  }
274
284
  });
275
285
 
@@ -316,11 +326,11 @@ app.get('/', async (req, res) => {
316
326
  ${config.runtime === 'node'
317
327
  ? `
318
328
  // Start server (Node.js only)
319
- const PORT = process.env.PORT || 3000;
320
- const HOST = process.env.HOST || 'localhost';
329
+ const PORT = appConfig.server?.port || 3000;
330
+ const HOST = appConfig.server?.host || 'localhost';
321
331
 
322
332
  app.listen(PORT, HOST, () => {
323
- logger.info(\`\${config.template.charAt(0).toUpperCase() + config.template.slice(1)} server running!\`);
333
+ logger.info(\`${config.template.charAt(0).toUpperCase() + config.template.slice(1)} server running!\`);
324
334
  logger.info(\`HTTP: http://\${HOST}:\${PORT}\`);
325
335
  ${config.features.includes('websocket') ? `logger.info(\`🔌 WebSocket: ws://\${HOST}:\${PORT}\`);` : ''}
326
336
  ${config.features.includes('docs') ? `logger.info(\`Docs: http://\${HOST}:\${PORT}/docs\`);` : ''}
@@ -407,62 +417,214 @@ CLOUDFLARE_API_TOKEN=`
407
417
  }
408
418
  async generateMoroConfig(projectPath, config) {
409
419
  const configContent = `// MoroJS Configuration
410
- import { z } from 'zod';
420
+ // Generated based on selected features: ${config.features.join(', ')}
421
+ // Reference: https://morojs.com/docs/configuration
411
422
 
412
423
  export default {
424
+ // Server Configuration
413
425
  server: {
414
- port: parseInt(process.env.PORT || '3000'),
415
- host: process.env.HOST || 'localhost',
416
- environment: process.env.NODE_ENV || 'development'
417
- },
418
-
419
- ${config.database !== 'none'
420
- ? `database: {
421
- ${config.database === 'postgresql' ? `url: process.env.DATABASE_URL` : ''}
422
- ${config.database === 'mysql' ? `url: process.env.DATABASE_URL` : ''}
423
- ${config.database === 'mongodb' ? `url: process.env.MONGODB_URI` : ''}
424
- ${config.database === 'redis' ? `redis: { url: process.env.REDIS_URL }` : ''}
425
- },`
426
+ port: parseInt(process.env.PORT || process.env.MORO_PORT || '3000'),
427
+ host: process.env.HOST || process.env.MORO_HOST || 'localhost',
428
+ environment: process.env.NODE_ENV || process.env.MORO_ENV || 'development'${config.runtime === 'node'
429
+ ? `,
430
+ maxConnections: parseInt(process.env.MAX_CONNECTIONS || process.env.MORO_MAX_CONNECTIONS || '1000'),
431
+ timeout: parseInt(process.env.REQUEST_TIMEOUT || process.env.MORO_TIMEOUT || '30000')`
426
432
  : ''}
427
-
433
+ },
434
+
435
+ ${config.database !== 'none' && config.database !== 'sqlite'
436
+ ? ` // Database Configuration
437
+ database: {${config.database === 'postgresql'
438
+ ? `
439
+ url: process.env.DATABASE_URL || process.env.MORO_DATABASE_URL`
440
+ : ''}${config.database === 'mysql'
441
+ ? `
442
+ mysql: {
443
+ host: process.env.MYSQL_HOST || process.env.MORO_MYSQL_HOST || 'localhost',
444
+ port: parseInt(process.env.MYSQL_PORT || process.env.MORO_MYSQL_PORT || '3306'),
445
+ database: process.env.MYSQL_DATABASE || process.env.MORO_MYSQL_DB,
446
+ username: process.env.MYSQL_USERNAME || process.env.MORO_MYSQL_USER,
447
+ password: process.env.MYSQL_PASSWORD || process.env.MORO_MYSQL_PASS,
448
+ connectionLimit: parseInt(process.env.MYSQL_CONNECTION_LIMIT || process.env.MORO_MYSQL_CONNECTIONS || '10'),
449
+ acquireTimeout: parseInt(process.env.MYSQL_ACQUIRE_TIMEOUT || '60000'),
450
+ timeout: parseInt(process.env.MYSQL_TIMEOUT || '60000')
451
+ }`
452
+ : ''}${config.database === 'mongodb'
453
+ ? `
454
+ url: process.env.DATABASE_URL || process.env.MONGODB_URI || process.env.MORO_DATABASE_URL || 'mongodb://localhost:27017/database'`
455
+ : ''}${config.database === 'redis' || config.features.includes('cache')
456
+ ? `,
457
+ redis: {
458
+ url: process.env.REDIS_URL || process.env.MORO_REDIS_URL || 'redis://localhost:6379',
459
+ maxRetries: parseInt(process.env.REDIS_MAX_RETRIES || process.env.MORO_REDIS_RETRIES || '3'),
460
+ retryDelay: parseInt(process.env.REDIS_RETRY_DELAY || process.env.MORO_REDIS_DELAY || '1000'),
461
+ keyPrefix: process.env.REDIS_KEY_PREFIX || process.env.MORO_REDIS_PREFIX || 'moro:'
462
+ }`
463
+ : ''}
464
+ },
465
+
466
+ `
467
+ : ''} // Logging Configuration
428
468
  logging: {
429
- level: process.env.LOG_LEVEL || 'info',
430
- format: 'pretty',
431
- enableColors: true,
432
- enableTimestamp: true
469
+ level: process.env.LOG_LEVEL || process.env.MORO_LOG_LEVEL || 'info',
470
+ format: process.env.LOG_FORMAT || process.env.MORO_LOG_FORMAT || (process.env.NODE_ENV === 'production' ? 'json' : 'pretty'),
471
+ enableColors: process.env.LOG_COLORS !== 'false' && process.env.NO_COLOR !== '1' && process.env.NODE_ENV !== 'production',
472
+ enableTimestamp: process.env.LOG_TIMESTAMP !== 'false',
473
+ enableContext: process.env.LOG_CONTEXT !== 'false'${config.features.includes('monitoring')
474
+ ? `,
475
+ outputs: {
476
+ console: true,
477
+ file: {
478
+ enabled: process.env.LOG_FILE_ENABLED === 'true' || process.env.MORO_LOG_FILE === 'true' || process.env.NODE_ENV === 'production',
479
+ path: process.env.LOG_FILE_PATH || process.env.MORO_LOG_PATH || './logs/moro.log',
480
+ maxSize: '10MB',
481
+ maxFiles: 5
482
+ }${config.features.includes('webhook-logging')
483
+ ? `,
484
+ webhook: {
485
+ enabled: !!process.env.LOG_WEBHOOK_URL || !!process.env.MORO_LOG_WEBHOOK_URL,
486
+ url: process.env.LOG_WEBHOOK_URL || process.env.MORO_LOG_WEBHOOK_URL,
487
+ headers: {
488
+ 'Authorization': process.env.LOG_WEBHOOK_AUTH,
489
+ 'Content-Type': 'application/json'
490
+ }
491
+ }`
492
+ : ''}
493
+ }`
494
+ : ''}
433
495
  },
434
-
496
+
497
+ // Security Configuration
435
498
  security: {
436
499
  cors: {
437
- enabled: true,
438
- origin: process.env.NODE_ENV === 'production' ? false : '*'
500
+ enabled: ${config.features.includes('cors') ? "process.env.CORS_ENABLED !== 'false'" : 'false'},${config.features.includes('cors')
501
+ ? `
502
+ origin: process.env.NODE_ENV === 'production'
503
+ ? (process.env.CORS_ORIGIN || process.env.MORO_CORS_ORIGIN || false)?.split(',')
504
+ : '*',
505
+ methods: (process.env.CORS_METHODS || process.env.MORO_CORS_METHODS || 'GET,POST,PUT,DELETE,PATCH,OPTIONS').split(','),
506
+ allowedHeaders: (process.env.CORS_HEADERS || process.env.MORO_CORS_HEADERS || 'Content-Type,Authorization').split(','),
507
+ credentials: process.env.CORS_CREDENTIALS === 'true'`
508
+ : ''}
439
509
  },
440
510
  helmet: {
441
- enabled: true
442
- }
511
+ enabled: process.env.HELMET_ENABLED !== 'false',
512
+ contentSecurityPolicy: process.env.NODE_ENV === 'production',
513
+ hsts: process.env.NODE_ENV === 'production',
514
+ noSniff: true,
515
+ frameguard: true
516
+ }${config.features.includes('rate-limit')
517
+ ? `,
518
+ rateLimit: {
519
+ enabled: process.env.GLOBAL_RATE_LIMIT_ENABLED === 'true',
520
+ requests: parseInt(process.env.GLOBAL_RATE_LIMIT_REQUESTS || process.env.MORO_GLOBAL_RATE_REQUESTS || '1000'),
521
+ window: 60000 // 1 minute window
522
+ }`
523
+ : ''}
443
524
  },
444
-
445
- performance: {
525
+
526
+ ${config.features.includes('compression') ||
527
+ config.features.includes('circuit-breaker') ||
528
+ config.runtime === 'node'
529
+ ? ` // Performance Configuration
530
+ performance: {${config.features.includes('compression')
531
+ ? `
446
532
  compression: {
447
- enabled: true,
448
- level: 6
449
- },
533
+ enabled: process.env.COMPRESSION_ENABLED !== 'false',
534
+ level: parseInt(process.env.COMPRESSION_LEVEL || process.env.MORO_COMPRESSION_LEVEL || '6'),
535
+ threshold: parseInt(process.env.COMPRESSION_THRESHOLD || process.env.MORO_COMPRESSION_THRESHOLD || '1024')
536
+ }${config.features.includes('circuit-breaker') || config.runtime === 'node' ? ',' : ''}`
537
+ : ''}${config.features.includes('circuit-breaker')
538
+ ? `
450
539
  circuitBreaker: {
451
- enabled: ${config.features.includes('circuit-breaker')}
452
- }
540
+ enabled: process.env.CIRCUIT_BREAKER_ENABLED !== 'false',
541
+ failureThreshold: parseInt(process.env.CIRCUIT_BREAKER_THRESHOLD || process.env.MORO_CB_THRESHOLD || '5'),
542
+ resetTimeout: parseInt(process.env.CIRCUIT_BREAKER_RESET_TIMEOUT || '60000'),
543
+ monitoringPeriod: parseInt(process.env.CIRCUIT_BREAKER_MONITORING_PERIOD || '10000')
544
+ }${config.runtime === 'node' ? ',' : ''}`
545
+ : ''}${config.runtime === 'node'
546
+ ? `
547
+ clustering: {
548
+ enabled: process.env.CLUSTERING_ENABLED === 'true',
549
+ workers: parseInt(process.env.CLUSTER_WORKERS || process.env.MORO_WORKERS) || require('os').cpus().length
550
+ }`
551
+ : ''}
453
552
  },
454
-
455
- modules: {
553
+
554
+ `
555
+ : ''} // Module Configuration
556
+ modules: {${config.features.includes('cache')
557
+ ? `
456
558
  cache: {
457
- enabled: ${config.features.includes('cache')},
458
- defaultTtl: 300
459
- },
559
+ enabled: process.env.CACHE_ENABLED !== 'false' || process.env.MORO_CACHE_ENABLED !== 'false',
560
+ defaultTtl: parseInt(process.env.DEFAULT_CACHE_TTL || process.env.MORO_CACHE_TTL || '300'),
561
+ maxSize: parseInt(process.env.CACHE_MAX_SIZE || process.env.MORO_CACHE_SIZE || '1000'),
562
+ strategy: process.env.CACHE_STRATEGY || process.env.MORO_CACHE_STRATEGY || 'lru'
563
+ }${config.features.includes('rate-limit') || config.features.includes('validation') ? ',' : ''}`
564
+ : ''}${config.features.includes('rate-limit')
565
+ ? `
460
566
  rateLimit: {
461
- enabled: ${config.features.includes('rate-limit')},
462
- defaultRequests: 100,
463
- defaultWindow: 60000
464
- }
465
- }
567
+ enabled: process.env.RATE_LIMIT_ENABLED !== 'false' || process.env.MORO_RATE_LIMIT_ENABLED !== 'false',
568
+ defaultRequests: parseInt(process.env.DEFAULT_RATE_LIMIT_REQUESTS || process.env.MORO_RATE_LIMIT_REQUESTS || '100'),
569
+ defaultWindow: parseInt(process.env.DEFAULT_RATE_LIMIT_WINDOW || process.env.MORO_RATE_LIMIT_WINDOW || '60000'),
570
+ skipSuccessfulRequests: process.env.RATE_LIMIT_SKIP_SUCCESS === 'true',
571
+ skipFailedRequests: process.env.RATE_LIMIT_SKIP_FAILED === 'true'
572
+ }${config.features.includes('validation') ? ',' : ''}`
573
+ : ''}${config.features.includes('validation')
574
+ ? `
575
+ validation: {
576
+ enabled: process.env.VALIDATION_ENABLED !== 'false' || process.env.MORO_VALIDATION_ENABLED !== 'false',
577
+ stripUnknown: process.env.VALIDATION_STRIP_UNKNOWN !== 'false',
578
+ abortEarly: process.env.VALIDATION_ABORT_EARLY === 'true'
579
+ }`
580
+ : ''}
581
+ }${config.features.includes('service-discovery')
582
+ ? `,
583
+
584
+ // Service Discovery Configuration
585
+ serviceDiscovery: {
586
+ enabled: process.env.SERVICE_DISCOVERY_ENABLED === 'true' || process.env.MORO_SERVICE_DISCOVERY === 'true',
587
+ type: process.env.DISCOVERY_TYPE || process.env.MORO_DISCOVERY_TYPE || 'memory',
588
+ consulUrl: process.env.CONSUL_URL || process.env.MORO_CONSUL_URL || 'http://localhost:8500',
589
+ kubernetesNamespace: process.env.K8S_NAMESPACE || process.env.MORO_K8S_NAMESPACE || 'default',
590
+ healthCheckInterval: parseInt(process.env.HEALTH_CHECK_INTERVAL || process.env.MORO_HEALTH_INTERVAL || '30000'),
591
+ retryAttempts: parseInt(process.env.DISCOVERY_RETRY_ATTEMPTS || process.env.MORO_DISCOVERY_RETRIES || '3')
592
+ }`
593
+ : ''}${config.features.some((f) => ['stripe', 'paypal', 'smtp', 'email'].includes(f))
594
+ ? `,
595
+
596
+ // External Services Configuration
597
+ external: {${config.features.includes('stripe')
598
+ ? `
599
+ // Stripe Configuration (uncomment and configure)
600
+ // stripe: {
601
+ // secretKey: process.env.STRIPE_SECRET_KEY || process.env.MORO_STRIPE_SECRET,
602
+ // publishableKey: process.env.STRIPE_PUBLISHABLE_KEY || process.env.MORO_STRIPE_PUBLIC,
603
+ // webhookSecret: process.env.STRIPE_WEBHOOK_SECRET || process.env.MORO_STRIPE_WEBHOOK,
604
+ // apiVersion: process.env.STRIPE_API_VERSION || process.env.MORO_STRIPE_VERSION || '2023-10-16'
605
+ // }${config.features.includes('paypal') || config.features.includes('smtp') ? ',' : ''}`
606
+ : ''}${config.features.includes('paypal')
607
+ ? `
608
+ // PayPal Configuration (uncomment and configure)
609
+ // paypal: {
610
+ // clientId: process.env.PAYPAL_CLIENT_ID || process.env.MORO_PAYPAL_CLIENT,
611
+ // clientSecret: process.env.PAYPAL_CLIENT_SECRET || process.env.MORO_PAYPAL_SECRET,
612
+ // webhookId: process.env.PAYPAL_WEBHOOK_ID,
613
+ // environment: process.env.PAYPAL_ENVIRONMENT || process.env.MORO_PAYPAL_ENV || 'sandbox'
614
+ // }${config.features.includes('smtp') ? ',' : ''}`
615
+ : ''}${config.features.includes('smtp') || config.features.includes('email')
616
+ ? `
617
+ // SMTP Configuration (uncomment and configure)
618
+ // smtp: {
619
+ // host: process.env.SMTP_HOST || process.env.MORO_SMTP_HOST,
620
+ // port: parseInt(process.env.SMTP_PORT || process.env.MORO_SMTP_PORT || '587'),
621
+ // secure: process.env.SMTP_SECURE === 'true',
622
+ // username: process.env.SMTP_USERNAME || process.env.MORO_SMTP_USER,
623
+ // password: process.env.SMTP_PASSWORD || process.env.MORO_SMTP_PASS
624
+ // }`
625
+ : ''}
626
+ }`
627
+ : ''}
466
628
  };`;
467
629
  await (0, promises_1.writeFile)((0, path_1.join)(projectPath, 'moro.config.js'), configContent);
468
630
  }
@@ -621,6 +783,28 @@ npm start
621
783
  - **Welcome**: \`GET /\`
622
784
  ${config.features.includes('docs') ? `- **API Docs**: \`GET /docs\`` : ''}
623
785
 
786
+ ## Configuration
787
+
788
+ This project includes a comprehensive configuration system:
789
+
790
+ - **\`moro.config.js\`** - Feature-based configuration with production-ready defaults
791
+ - **\`.env\`** - Environment variables for development
792
+ - **\`.env.example\`** - Environment variables template
793
+
794
+ ### Production Setup
795
+
796
+ 1. Set up production environment variables:
797
+ \`\`\`bash
798
+ cp .env.example .env.production
799
+ # Edit .env.production with your production values
800
+ \`\`\`
801
+
802
+ 2. The configuration automatically adapts to production when \`NODE_ENV=production\`:
803
+ - **Performance**: Compression, clustering, circuit breakers
804
+ - **Security**: CORS, Helmet, rate limiting, SSL
805
+ - **Monitoring**: Structured logging, file outputs
806
+ - **Scalability**: Redis caching, connection pooling
807
+
624
808
  ## Database
625
809
 
626
810
  ${config.database !== 'none'
@@ -883,24 +1067,37 @@ volumes:
883
1067
  }
884
1068
  }
885
1069
  async generateDatabaseSetup(projectPath, config) {
1070
+ // Fix the adapter name for PostgreSQL (should be PostgreSQLAdapter, not PostgresqlAdapter)
1071
+ const getAdapterName = (dbType) => {
1072
+ if (dbType === 'postgresql')
1073
+ return 'PostgreSQLAdapter';
1074
+ return dbType.charAt(0).toUpperCase() + dbType.slice(1) + 'Adapter';
1075
+ };
1076
+ const adapterName = getAdapterName(config.database);
886
1077
  const dbSetupContent = `// Database Setup and Configuration
887
- import { ${config.database.charAt(0).toUpperCase() + config.database.slice(1)}Adapter } from '@morojs/moro';
1078
+ import { ${adapterName} } from '@morojs/moro';
888
1079
  import { createFrameworkLogger } from '@morojs/moro';
889
1080
 
890
1081
  const logger = createFrameworkLogger('Database');
891
1082
 
892
1083
  export async function setupDatabase(app: any): Promise<void> {
893
1084
  try {
894
- const adapter = new ${config.database.charAt(0).toUpperCase() + config.database.slice(1)}Adapter({
895
- ${config.database === 'postgresql' || config.database === 'mysql'
1085
+ const adapter = new ${adapterName}({
1086
+ ${config.database === 'postgresql'
896
1087
  ? `
897
- url: process.env.DATABASE_URL,
898
- host: process.env.${config.database.toUpperCase()}_HOST,
899
- port: parseInt(process.env.${config.database.toUpperCase()}_PORT || '${config.database === 'postgresql' ? '5432' : '3306'}'),
900
- username: process.env.${config.database.toUpperCase()}_USER,
901
- password: process.env.${config.database.toUpperCase()}_PASSWORD,
902
- database: process.env.${config.database.toUpperCase()}_${config.database === 'postgresql' ? 'DB' : 'DATABASE'}`
903
- : ''}
1088
+ host: process.env.POSTGRESQL_HOST || 'localhost',
1089
+ port: parseInt(process.env.POSTGRESQL_PORT || '5432'),
1090
+ user: process.env.POSTGRESQL_USER || 'postgres',
1091
+ password: process.env.POSTGRESQL_PASSWORD,
1092
+ database: process.env.POSTGRESQL_DATABASE`
1093
+ : config.database === 'mysql'
1094
+ ? `
1095
+ host: process.env.MYSQL_HOST || 'localhost',
1096
+ port: parseInt(process.env.MYSQL_PORT || '3306'),
1097
+ user: process.env.MYSQL_USER || 'mysql',
1098
+ password: process.env.MYSQL_PASSWORD,
1099
+ database: process.env.MYSQL_DATABASE`
1100
+ : ''}
904
1101
  ${config.database === 'mongodb'
905
1102
  ? `
906
1103
  url: process.env.MONGODB_URI`
@@ -915,62 +1112,133 @@ export async function setupDatabase(app: any): Promise<void> {
915
1112
 
916
1113
  await adapter.connect();
917
1114
  app.database(adapter);
918
-
1115
+
919
1116
  logger.info('✅ Database connected successfully', 'Database');
920
1117
  } catch (error) {
921
- logger.error('❌ Database connection failed:', error, 'Database');
922
- throw error;
1118
+ logger.error('❌ Database connection failed: ' + String(error), 'Database');
1119
+ logger.warn('⚠️ App will continue without database connection', 'Database');
1120
+ // Don't throw - let the app continue without database
923
1121
  }
924
1122
  }`;
925
1123
  await (0, promises_1.writeFile)((0, path_1.join)(projectPath, 'src', 'database', 'index.ts'), dbSetupContent);
926
1124
  }
927
1125
  async generateAuthMiddleware(projectPath) {
928
- const authContent = `// Authentication Middleware
929
- import { auth } from '@morojs/moro';
930
- import jwt from 'jsonwebtoken';
1126
+ const authContent = `// Auth.js Authentication Middleware
1127
+ import { builtInMiddleware, providers } from '@morojs/moro';
931
1128
  import bcrypt from 'bcryptjs';
932
1129
 
933
- const JWT_SECRET = process.env.JWT_SECRET || 'your-secret-key';
934
-
935
1130
  export async function setupAuth(app: any): Promise<void> {
936
- // JWT Authentication middleware
937
- app.use(auth({
938
- secret: JWT_SECRET,
939
- algorithms: ['HS256'],
940
- optional: true // Make auth optional by default
1131
+ // Configure Auth.js providers
1132
+ app.use(builtInMiddleware.auth({
1133
+ secret: process.env.NEXTAUTH_SECRET || process.env.AUTH_SECRET || 'your-secret-key-change-in-production',
1134
+ providers: [
1135
+ // Credentials provider for email/password authentication
1136
+ providers.credentials({
1137
+ name: 'credentials',
1138
+ credentials: {
1139
+ email: { label: 'Email', type: 'email', placeholder: 'user@example.com' },
1140
+ password: { label: 'Password', type: 'password' }
1141
+ },
1142
+ authorize: async (credentials) => {
1143
+ if (!credentials?.email || !credentials?.password) {
1144
+ return null;
1145
+ }
1146
+
1147
+ // TODO: Replace with actual database lookup
1148
+ // const user = await getUserByEmail(credentials.email);
1149
+ // if (user && await bcrypt.compare(credentials.password, user.password)) {
1150
+ // return { id: user.id, name: user.name, email: user.email };
1151
+ // }
1152
+
1153
+ // Mock implementation for development
1154
+ if (credentials.email === 'admin@example.com' && credentials.password === 'password') {
1155
+ return {
1156
+ id: '1',
1157
+ name: 'Admin User',
1158
+ email: 'admin@example.com',
1159
+ role: 'admin'
1160
+ };
1161
+ }
1162
+
1163
+ return null;
1164
+ }
1165
+ }),
1166
+
1167
+ // Uncomment and configure OAuth providers as needed:
1168
+
1169
+ // providers.google({
1170
+ // clientId: process.env.GOOGLE_CLIENT_ID!,
1171
+ // clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
1172
+ // }),
1173
+
1174
+ // providers.github({
1175
+ // clientId: process.env.GITHUB_CLIENT_ID!,
1176
+ // clientSecret: process.env.GITHUB_CLIENT_SECRET!,
1177
+ // }),
1178
+
1179
+ // providers.discord({
1180
+ // clientId: process.env.DISCORD_CLIENT_ID!,
1181
+ // clientSecret: process.env.DISCORD_CLIENT_SECRET!,
1182
+ // }),
1183
+ ],
1184
+ session: {
1185
+ strategy: 'jwt', // Use JWT tokens for sessions
1186
+ maxAge: 30 * 24 * 60 * 60, // 30 days
1187
+ },
1188
+ pages: {
1189
+ signIn: '/auth/signin',
1190
+ signOut: '/auth/signout',
1191
+ error: '/auth/error',
1192
+ },
1193
+ callbacks: {
1194
+ jwt: async ({ token, user }) => {
1195
+ if (user) {
1196
+ token.role = user.role;
1197
+ }
1198
+ return token;
1199
+ },
1200
+ session: async ({ session, token }) => {
1201
+ if (token?.role) {
1202
+ session.user.role = token.role;
1203
+ }
1204
+ return session;
1205
+ },
1206
+ },
1207
+ debug: process.env.NODE_ENV === 'development',
941
1208
  }));
942
1209
 
943
- // Login endpoint
944
- app.post('/auth/login', async (req: any, res: any) => {
945
- const { email, password } = req.body;
946
-
947
- // TODO: Implement user lookup from database
948
- // const user = await getUserByEmail(email);
949
- // const isValid = await bcrypt.compare(password, user.password);
950
-
951
- // Mock implementation
952
- if (email === 'admin@example.com' && password === 'password') {
953
- const token = jwt.sign(
954
- { userId: 1, email, roles: ['admin'] },
955
- JWT_SECRET,
956
- { expiresIn: process.env.JWT_EXPIRES_IN || '24h' }
957
- );
958
-
959
- return { success: true, token, user: { id: 1, email, roles: ['admin'] } };
960
- }
961
-
1210
+ // Protected route example
1211
+ app.get('/api/profile', async (req: any, res: any) => {
1212
+ // Auth.js automatically adds auth object to request
1213
+ if (!req.auth?.isAuthenticated) {
962
1214
  res.status(401);
963
- return { success: false, error: 'Invalid credentials' };
1215
+ return { success: false, error: 'Authentication required' };
1216
+ }
1217
+
1218
+ return {
1219
+ success: true,
1220
+ user: req.auth.user,
1221
+ session: req.auth.session
1222
+ };
964
1223
  });
965
1224
 
966
- // Protected route example
967
- app.get('/auth/profile', async (req: any, res: any) => {
968
- if (!req.user) {
1225
+ // Admin-only route example
1226
+ app.get('/api/admin', async (req: any, res: any) => {
1227
+ if (!req.auth?.isAuthenticated) {
969
1228
  res.status(401);
970
1229
  return { success: false, error: 'Authentication required' };
971
1230
  }
972
-
973
- return { success: true, user: req.user };
1231
+
1232
+ if (req.auth.user?.role !== 'admin') {
1233
+ res.status(403);
1234
+ return { success: false, error: 'Admin access required' };
1235
+ }
1236
+
1237
+ return {
1238
+ success: true,
1239
+ message: 'Admin access granted',
1240
+ user: req.auth.user
1241
+ };
974
1242
  });
975
1243
  }`;
976
1244
  await (0, promises_1.writeFile)((0, path_1.join)(projectPath, 'src', 'middleware', 'auth.ts'), authContent);
@@ -1056,6 +1324,24 @@ ${config.features.map((f) => ` • ${f}`).join('\n')}
1056
1324
  borderColor: 'green',
1057
1325
  }));
1058
1326
  }
1327
+ /**
1328
+ * Fetch the latest version of a package from NPM registry
1329
+ */
1330
+ async getLatestPackageVersion(packageName) {
1331
+ try {
1332
+ const { stdout } = await execAsync(`npm view ${packageName} version`);
1333
+ const version = stdout.trim();
1334
+ return `^${version}`;
1335
+ }
1336
+ catch (error) {
1337
+ this.logger.warn(`Failed to fetch latest version for ${packageName}, using fallback`, 'Init');
1338
+ // Fallback to a reasonable default if npm view fails
1339
+ if (packageName === '@morojs/moro') {
1340
+ return '^1.1.0';
1341
+ }
1342
+ return '^1.1.0';
1343
+ }
1344
+ }
1059
1345
  }
1060
1346
  exports.ProjectInitializer = ProjectInitializer;
1061
1347
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module-stub-generator.d.ts","sourceRoot":"","sources":["../src/module-stub-generator.ts"],"names":[],"mappings":"AAMA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAgD;IAExD,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO,EAAE,eAAe,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCrG,OAAO,CAAC,UAAU;IA2BlB,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,YAAY;IAgFpB,OAAO,CAAC,WAAW;IA2InB,OAAO,CAAC,YAAY;YA0BN,aAAa;IAmD3B,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"module-stub-generator.d.ts","sourceRoot":"","sources":["../src/module-stub-generator.ts"],"names":[],"mappings":"AAMA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAgD;IAExD,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjE,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC5B,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAM,EAAO,EACvB,eAAe,GAAE,GAAQ,GACxB,OAAO,CAAC,IAAI,CAAC;IAmChB,OAAO,CAAC,UAAU;IA2BlB,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,YAAY;IAgFpB,OAAO,CAAC,WAAW;IA2InB,OAAO,CAAC,YAAY;YA0BN,aAAa;IAyD3B,OAAO,CAAC,UAAU;IA+BlB,OAAO,CAAC,UAAU;CAGnB"}
@@ -57,7 +57,7 @@ class ModuleStubGenerator {
57
57
  withDocs: options.withDocs,
58
58
  database: options.database,
59
59
  template: options.template,
60
- routes: options.routes
60
+ routes: options.routes,
61
61
  });
62
62
  }
63
63
  async listModules() {
@@ -85,7 +85,7 @@ class ModuleStubGenerator {
85
85
  }
86
86
  }
87
87
  async generateModule(name, features = [], advancedOptions = {}) {
88
- const modulePath = (0, path_1.join)(process.cwd(), name);
88
+ const modulePath = (0, path_1.join)(process.cwd(), 'src', 'modules', name);
89
89
  // Create module directory
90
90
  await (0, promises_1.mkdir)(modulePath, { recursive: true });
91
91
  // Generate files based on features
@@ -98,7 +98,7 @@ class ModuleStubGenerator {
98
98
  this.writeActions(modulePath, name, hasDatabase),
99
99
  this.writeRoutes(modulePath, name),
100
100
  hasWebSocket ? this.writeSockets(modulePath, name) : Promise.resolve(),
101
- hasDatabase ? this.writeDatabase(modulePath, name) : Promise.resolve()
101
+ hasDatabase ? this.writeDatabase(modulePath, name) : Promise.resolve(),
102
102
  ]);
103
103
  await this.writeIndex(modulePath, name, hasWebSocket);
104
104
  this.logger.info(`Generated functional module: ${name}`, 'Generation');
@@ -221,17 +221,17 @@ export async function create${className}(data: Create${className}Request, databa
221
221
  };
222
222
 
223
223
  items.push(newItem);
224
-
224
+
225
225
  // Intentional event emission
226
226
  await events.emit('${name}.created', { ${name}: newItem });
227
-
227
+
228
228
  return newItem;
229
229
  }
230
230
 
231
231
  export async function update${className}(id: number, data: Update${className}Request, database: any, events: any): Promise<${className} | null> {
232
232
  const items = database.${name}s || [];
233
233
  const itemIndex = items.findIndex((item: ${className}) => item.id === id);
234
-
234
+
235
235
  if (itemIndex === -1) {
236
236
  return null;
237
237
  }
@@ -240,34 +240,34 @@ export async function update${className}(id: number, data: Update${className}Req
240
240
  if (data.name !== undefined) updates.name = data.name;
241
241
  if (data.description !== undefined) updates.description = data.description;
242
242
  if (data.active !== undefined) updates.active = data.active;
243
-
243
+
244
244
  if (Object.keys(updates).length === 0) {
245
245
  return items[itemIndex];
246
246
  }
247
-
247
+
248
248
  updates.updatedAt = new Date();
249
249
  items[itemIndex] = { ...items[itemIndex], ...updates };
250
-
250
+
251
251
  // Intentional event emission
252
252
  await events.emit('${name}.updated', { ${name}: items[itemIndex], changes: updates });
253
-
253
+
254
254
  return items[itemIndex];
255
255
  }
256
256
 
257
257
  export async function delete${className}(id: number, database: any, events: any): Promise<boolean> {
258
258
  const items = database.${name}s || [];
259
259
  const itemIndex = items.findIndex((item: ${className}) => item.id === id);
260
-
260
+
261
261
  if (itemIndex === -1) {
262
262
  return false;
263
263
  }
264
264
 
265
265
  const item = items[itemIndex];
266
266
  items.splice(itemIndex, 1);
267
-
267
+
268
268
  // Intentional event emission
269
269
  await events.emit('${name}.deleted', { ${name}Id: id, ${name}: item });
270
-
270
+
271
271
  return true;
272
272
  }`;
273
273
  return (0, promises_1.writeFile)((0, path_1.join)(modulePath, 'actions.ts'), content);
@@ -275,12 +275,12 @@ export async function delete${className}(id: number, database: any, events: any)
275
275
  writeRoutes(modulePath, name) {
276
276
  const className = this.capitalize(name);
277
277
  const content = `// ${className} Routes - HTTP Handlers with Intelligent Routing
278
- import {
279
- getAll${className}s,
280
- get${className}ById,
281
- create${className},
282
- update${className},
283
- delete${className}
278
+ import {
279
+ getAll${className}s,
280
+ get${className}ById,
281
+ create${className},
282
+ update${className},
283
+ delete${className}
284
284
  } from './actions';
285
285
  import {
286
286
  ${className}QuerySchema,
@@ -302,26 +302,26 @@ export const routes = [
302
302
  tags: ['${name}', 'list'],
303
303
  handler: async (req: any, res: any) => {
304
304
  const items = await getAll${className}s(req.database);
305
-
305
+
306
306
  // Apply query filtering
307
307
  let filteredItems = items;
308
308
  if (req.query.active !== undefined) {
309
309
  filteredItems = filteredItems.filter((item: any) => item.active === req.query.active);
310
310
  }
311
311
  if (req.query.search) {
312
- filteredItems = filteredItems.filter((item: any) =>
312
+ filteredItems = filteredItems.filter((item: any) =>
313
313
  item.name.toLowerCase().includes(req.query.search.toLowerCase()) ||
314
314
  item.description.toLowerCase().includes(req.query.search.toLowerCase())
315
315
  );
316
316
  }
317
-
317
+
318
318
  // Apply pagination
319
319
  const offset = req.query.offset || 0;
320
320
  const limit = req.query.limit || 10;
321
321
  const paginatedItems = filteredItems.slice(offset, offset + limit);
322
-
323
- return {
324
- success: true,
322
+
323
+ return {
324
+ success: true,
325
325
  data: paginatedItems,
326
326
  meta: {
327
327
  total: filteredItems.length,
@@ -343,12 +343,12 @@ export const routes = [
343
343
  tags: ['${name}', 'get'],
344
344
  handler: async (req: any, res: any) => {
345
345
  const item = await get${className}ById(req.params.id, req.database);
346
-
346
+
347
347
  if (!item) {
348
348
  res.status(404);
349
349
  return { success: false, error: '${className} not found' };
350
350
  }
351
-
351
+
352
352
  return { success: true, data: item };
353
353
  }
354
354
  },
@@ -378,12 +378,12 @@ export const routes = [
378
378
  tags: ['${name}', 'update'],
379
379
  handler: async (req: any, res: any) => {
380
380
  const item = await update${className}(req.params.id, req.body, req.database, req.events);
381
-
381
+
382
382
  if (!item) {
383
383
  res.status(404);
384
384
  return { success: false, error: '${className} not found' };
385
385
  }
386
-
386
+
387
387
  return { success: true, data: item };
388
388
  }
389
389
  },
@@ -397,12 +397,12 @@ export const routes = [
397
397
  tags: ['${name}', 'delete'],
398
398
  handler: async (req: any, res: any) => {
399
399
  const success = await delete${className}(req.params.id, req.database, req.events);
400
-
400
+
401
401
  if (!success) {
402
402
  res.status(404);
403
403
  return { success: false, error: '${className} not found' };
404
404
  }
405
-
405
+
406
406
  return { success: true, message: '${className} deleted successfully' };
407
407
  }
408
408
  }
@@ -480,16 +480,20 @@ INSERT INTO ${name}s (name, description) VALUES
480
480
  const className = this.capitalize(name);
481
481
  const content = `// ${className} Module - Functional Structure
482
482
  import { config } from './config';
483
- import { routes } from './routes';${hasWebSocket ? `
484
- import { ${name}Sockets as sockets } from './sockets';` : ''}
483
+ import { routes } from './routes';${hasWebSocket
484
+ ? `
485
+ import { ${name}Sockets as sockets } from './sockets';`
486
+ : ''}
485
487
  import { defineModule } from '@morojs/moro';
486
488
 
487
489
  export default defineModule({
488
490
  name: '${name}',
489
491
  version: '1.0.0',
490
492
  config,
491
- routes${hasWebSocket ? `,
492
- sockets` : ''}
493
+ routes${hasWebSocket
494
+ ? `,
495
+ sockets`
496
+ : ''}
493
497
  });
494
498
 
495
499
  // Re-export types and actions for direct usage
@@ -1 +1 @@
1
- {"version":3,"file":"module-stub-generator.js","sourceRoot":"","sources":["../src/module-stub-generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAmC;AACnC,0CAA+C;AAC/C,+BAA4B;AAC5B,2BAAgC;AAChC,qCAAiD;AAEjD,MAAa,mBAAmB;IAAhC;QACU,WAAM,GAAG,IAAA,8BAAqB,EAAC,qBAAqB,CAAC,CAAC;IA8ehE,CAAC;IA5eC,KAAK,CAAC,sBAAsB,CAAC,IAAY,EAAE,OAAY;QACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAExE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACnF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAEtF,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;YACxC,UAAU;YACV,SAAS;YACT,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,YAAY,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8EAA8E,EAAE,YAAY,CAAC,CAAC;gBAC/G,OAAO;YACT,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACpE,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAEzE,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oEAAoE,EAAE,YAAY,CAAC,CAAC;gBACrG,OAAO;YACT,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,iBAAiB,CAAC,MAAM,aAAa,EAAE,YAAY,CAAC,CAAC;YAC/E,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,WAAqB,EAAE,EAAE,kBAAuB,EAAE;QACnF,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAE7C,0BAA0B;QAC1B,MAAM,IAAA,gBAAK,EAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,mCAAmC;QACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAElD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC;YACjC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC;YAClC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;YACtE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;SACvE,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAEtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,cAAc,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,cAAc,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,cAAc,CAAC,CAAC;QAChF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,IAAI,IAAI,IAAI,GAAG,EAAE,cAAc,CAAC,CAAC;IAC5G,CAAC;IAEO,UAAU,CAAC,UAAkB,EAAE,IAAY;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,SAAS;mBAChB,SAAS;;;;;;;;;yBASH,SAAS;;;;;;yBAMT,SAAS;;;;EAIhC,CAAC;QAEC,OAAO,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEO,YAAY,CAAC,UAAkB,EAAE,IAAY;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,SAAS;;;;eAIpB,SAAS;;;;;;;;;;qBAUH,SAAS;;;;;;qBAMT,SAAS;;;;;;;eAOf,SAAS;;;;;eAKT,SAAS;;;;;;;;cAQV,SAAS,qBAAqB,SAAS;oBACjC,SAAS,kCAAkC,SAAS;oBACpD,SAAS,kCAAkC,SAAS;cAC1D,SAAS,2BAA2B,SAAS;cAC7C,SAAS,0BAA0B,SAAS,eAAe,CAAC;QAEtE,OAAO,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEO,WAAW,CAAC,UAAkB,EAAE,IAAY;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;cAEjC,IAAI;;kBAEA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3B,IAAI;GACb,CAAC;QAEA,OAAO,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEO,YAAY,CAAC,UAAkB,EAAE,IAAY,EAAE,WAAoB;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,SAAS;WACxB,SAAS,WAAW,SAAS,kBAAkB,SAAS;;;8BAGrC,SAAS,6BAA6B,SAAS;oBACzD,IAAI;;;2BAGG,SAAS,4CAA4C,SAAS;2BAC9D,IAAI;6BACF,SAAS;;;8BAGR,SAAS,gBAAgB,SAAS,iDAAiD,SAAS;2BAC/F,IAAI;mBACZ,SAAS;uCACW,SAAS;;;;;;;;;;;uBAWzB,IAAI,gBAAgB,IAAI;;;;;8BAKjB,SAAS,4BAA4B,SAAS,iDAAiD,SAAS;2BAC3G,IAAI;6CACc,SAAS;;;;;;;;;;;;;;;;;;;uBAmB/B,IAAI,gBAAgB,IAAI;;;;;8BAKjB,SAAS;2BACZ,IAAI;6CACc,SAAS;;;;;;;;;;uBAU/B,IAAI,gBAAgB,IAAI,WAAW,IAAI;;;EAG5D,CAAC;QAEC,OAAO,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEO,WAAW,CAAC,UAAkB,EAAE,IAAY;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,SAAS;;UAEzB,SAAS;OACZ,SAAS;UACN,SAAS;UACT,SAAS;UACT,SAAS;;;IAGf,SAAS;IACT,SAAS;UACH,SAAS;UACT,SAAS;;;;;;;;eAQJ,SAAS;;;;4BAII,IAAI;cAClB,IAAI;;kCAEgB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAmC3B,SAAS;;;0BAGC,IAAI;cAChB,IAAI;;8BAEY,SAAS;;;;2CAII,SAAS;;;;;;;;;;oBAUhC,SAAS;;;iCAGI,IAAI;cACvB,IAAI;;iCAEe,SAAS;;;;;;;;;gBAS1B,SAAS;oBACL,SAAS;;6BAEA,IAAI;cACnB,IAAI;;iCAEe,SAAS;;;;2CAIC,SAAS;;;;;;;;;;gBAUpC,SAAS;;6BAEI,IAAI;cACnB,IAAI;;oCAEkB,SAAS;;;;2CAIF,SAAS;;;0CAGV,SAAS;;;GAGhD,CAAC;QAEA,OAAO,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAEO,YAAY,CAAC,UAAkB,EAAE,IAAY;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,SAAS;eACpB,IAAI;;mBAEA,IAAI;;sBAED,IAAI;;;;;;cAMZ,IAAI;;oBAEE,IAAI,2BAA2B,IAAI;;;;;;GAMpD,CAAC;QAEA,OAAO,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,IAAY;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAExC,sCAAsC;QACtC,MAAM,IAAA,gBAAK,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAA,gBAAK,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,MAAM,IAAA,gBAAK,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAExE,SAAS;QACT,MAAM,aAAa,GAAG,MAAM,SAAS;6BACZ,IAAI;;;;;;;;;;iCAUA,IAAI,aAAa,IAAI;iCACrB,IAAI,mBAAmB,IAAI,gBAAgB,CAAC;QAEzE,MAAM,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;QAE3E,YAAY;QACZ,MAAM,gBAAgB,GAAG,4BAA4B,IAAI;eAC9C,IAAI;;;;;;;;;;mBAUA,IAAI,aAAa,IAAI;mBACrB,IAAI,mBAAmB,IAAI,gBAAgB,CAAC;QAE3D,MAAM,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAE9G,QAAQ;QACR,MAAM,WAAW,GAAG,aAAa,SAAS;cAChC,IAAI;WACP,SAAS,0BAA0B,IAAI;WACvC,SAAS,wBAAwB,IAAI,UAAU,CAAC;QAEvD,OAAO,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;IACnG,CAAC;IAEO,UAAU,CAAC,UAAkB,EAAE,IAAY,EAAE,YAAqB;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,SAAS;;oCAEC,YAAY,CAAC,CAAC,CAAC;WACxC,IAAI,wCAAwC,CAAC,CAAC,CAAC,EAAE;;;;WAIjD,IAAI;;;UAGL,YAAY,CAAC,CAAC,CAAC;UACf,CAAC,CAAC,CAAC,EAAE;;;;;2BAKY,CAAC;QAExB,OAAO,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEO,UAAU,CAAC,GAAW;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;CACF;AA/eD,kDA+eC"}
1
+ {"version":3,"file":"module-stub-generator.js","sourceRoot":"","sources":["../src/module-stub-generator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@morojs/cli",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "MoroJS Framework - Comprehensive Development Toolkit",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -10,9 +10,9 @@
10
10
  },
11
11
  "exports": {
12
12
  ".": {
13
+ "types": "./dist/index.d.ts",
13
14
  "import": "./dist/index.js",
14
- "require": "./dist/index.js",
15
- "types": "./dist/index.d.ts"
15
+ "require": "./dist/index.js"
16
16
  }
17
17
  },
18
18
  "scripts": {
@@ -24,7 +24,9 @@
24
24
  "test": "jest",
25
25
  "test:watch": "jest --watch",
26
26
  "lint": "eslint src --fix",
27
- "format": "prettier --write src/**/*.ts"
27
+ "lint-staged": "lint-staged",
28
+ "format": "prettier --write src/**/*.ts",
29
+ "prepare": "husky"
28
30
  },
29
31
  "keywords": [
30
32
  "morojs",
@@ -57,33 +59,36 @@
57
59
  "node": ">=18.0.0"
58
60
  },
59
61
  "dependencies": {
60
- "commander": "^14.0.0",
61
- "winston": "^3.11.0",
62
- "chalk": "^4.1.2",
63
- "inquirer": "^8.2.6",
64
- "ora": "^5.4.1",
65
62
  "boxen": "^5.1.2",
63
+ "chalk": "^4.1.2",
64
+ "chokidar": "^3.5.3",
65
+ "commander": "^14.0.0",
66
+ "esbuild": "^0.25.9",
66
67
  "figlet": "^1.7.0",
67
- "zod": "^3.22.4",
68
68
  "fs-extra": "^11.2.0",
69
69
  "glob": "^11.0.0",
70
- "chokidar": "^3.5.3",
71
- "esbuild": "^0.25.9",
72
- "nodemon": "^3.0.2"
70
+ "inquirer": "^8.2.6",
71
+ "nodemon": "^3.0.2",
72
+ "ora": "^5.4.1",
73
+ "winston": "^3.11.0",
74
+ "zod": "^3.22.4"
73
75
  },
74
76
  "devDependencies": {
75
- "@types/node": "^24.0.0",
76
- "@types/inquirer": "^9.0.7",
77
- "@types/fs-extra": "^11.0.4",
77
+ "@morojs/moro": "^1.0.3",
78
78
  "@types/figlet": "^1.5.8",
79
+ "@types/fs-extra": "^11.0.4",
80
+ "@types/inquirer": "^9.0.7",
81
+ "@types/jest": "^30.0.0",
82
+ "@types/node": "^24.0.0",
79
83
  "@typescript-eslint/eslint-plugin": "^6.13.1",
80
84
  "@typescript-eslint/parser": "^6.13.1",
81
85
  "eslint": "^8.54.0",
82
86
  "eslint-config-prettier": "^10.0.0",
83
87
  "eslint-plugin-prettier": "^5.0.1",
84
- "prettier": "^3.1.0",
88
+ "husky": "^9.1.7",
85
89
  "jest": "^29.7.0",
86
- "@types/jest": "^30.0.0",
90
+ "lint-staged": "^16.1.6",
91
+ "prettier": "^3.1.0",
87
92
  "ts-jest": "^29.1.1",
88
93
  "typescript": "^5.3.2"
89
94
  },
@@ -93,5 +98,14 @@
93
98
  "templates/**/*",
94
99
  "README.md",
95
100
  "LICENSE"
96
- ]
97
- }
101
+ ],
102
+ "lint-staged": {
103
+ "*.ts": [
104
+ "eslint --fix",
105
+ "prettier --write"
106
+ ],
107
+ "*.{json,md}": [
108
+ "prettier --write"
109
+ ]
110
+ }
111
+ }