backend-scaffold-cli 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bin/cli.js +17 -4
  2. package/package.json +1 -1
package/bin/cli.js CHANGED
@@ -320,7 +320,18 @@ const limiter=ratelimit({
320
320
  legacyHeaders: false,
321
321
  });
322
322
 
323
- module.exports=limiter;
323
+ ${answers.useAuth? `// stricter rate limit for auth routes(prevent brute force attacks)
324
+ const authLimiter=ratelimit({
325
+ windowMs: 15 * 60 * 1000,
326
+ max:5,
327
+ message: 'Too many login attempts from this IP, please try again after 15 minutes',
328
+ standardHeaders: true,
329
+ legacyHeaders: false,
330
+ });
331
+
332
+ `:''}
333
+
334
+ module.exports={limiter${answers.useAuth? ', authLimiter' : ''}};
324
335
 
325
336
 
326
337
  `;
@@ -466,8 +477,10 @@ const createRouteFiles = (projectPath, answers) => {
466
477
  const router = express.Router();
467
478
  ${answers.useAuth ? "const authenticateToken = require('../middleware/auth');" : ''}
468
479
  ${answers.useAuth ? "const {register,login} = require('../controllers/authController');" : ''}
480
+ ${(answers.useRateLimit && answers.useAuth) ? "const { authLimiter } = require('../middleware/rateLimiter');" : ''}
469
481
  ${answers.useFileUpload ? "const upload = require('../middleware/upload');" : ''}
470
482
 
483
+
471
484
  // Public routes
472
485
  router.get('/health', (req, res) => {
473
486
  res.json({ status: 'API is running' });
@@ -476,8 +489,8 @@ router.get('/health', (req, res) => {
476
489
  ${answers.useAuth? `
477
490
  // Auth routes
478
491
  // Register and Login routes
479
- router.post('/auth/register', register);
480
- router.post('/auth/login', login);
492
+ router.post('/auth/register', ${answers.useRateLimit ? 'authLimiter, ' : ''} register);
493
+ router.post('/auth/login', ${answers.useRateLimit ? 'authLimiter, ' : ''} login);
481
494
  ` : ''}
482
495
 
483
496
  ${answers.useAuth ? `
@@ -562,7 +575,7 @@ const loggerMiddleware = require('./middleware/logger');
562
575
  const { errorMiddleware } = require('./middleware/errorHandler');
563
576
 
564
577
  const app = express();
565
- ${answers.useRateLimit ? "const limiter = require('./middleware/rateLimiter');" : ''}
578
+ ${answers.useRateLimit ? "const { limiter } = require('./middleware/rateLimiter');" : ''}
566
579
 
567
580
  const PORT = process.env.PORT || 5000;
568
581
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backend-scaffold-cli",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "description": "CLI tool to scaffold Express.js backend projects with MongoDB, middleware, and common setup",
5
5
  "main": "bin/cli.js",
6
6
  "bin": {