@hatem427/code-guard-ci 3.0.0 → 3.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.
Files changed (102) hide show
  1. package/config/fastify.config.ts +326 -0
  2. package/config/hono.config.ts +331 -0
  3. package/config/nestjs.config.ts +500 -0
  4. package/config/node.config.ts +425 -0
  5. package/config/python.config.ts +512 -0
  6. package/dist/config/fastify.config.d.ts +17 -0
  7. package/dist/config/fastify.config.d.ts.map +1 -0
  8. package/dist/config/fastify.config.js +279 -0
  9. package/dist/config/fastify.config.js.map +1 -0
  10. package/dist/config/hono.config.d.ts +17 -0
  11. package/dist/config/hono.config.d.ts.map +1 -0
  12. package/dist/config/hono.config.js +287 -0
  13. package/dist/config/hono.config.js.map +1 -0
  14. package/dist/config/nestjs.config.d.ts +17 -0
  15. package/dist/config/nestjs.config.d.ts.map +1 -0
  16. package/dist/config/nestjs.config.js +440 -0
  17. package/dist/config/nestjs.config.js.map +1 -0
  18. package/dist/config/node.config.d.ts +17 -0
  19. package/dist/config/node.config.d.ts.map +1 -0
  20. package/dist/config/node.config.js +363 -0
  21. package/dist/config/node.config.js.map +1 -0
  22. package/dist/config/python.config.d.ts +15 -0
  23. package/dist/config/python.config.d.ts.map +1 -0
  24. package/dist/config/python.config.js +475 -0
  25. package/dist/config/python.config.js.map +1 -0
  26. package/dist/scripts/auto-fix.d.ts +5 -0
  27. package/dist/scripts/auto-fix.d.ts.map +1 -1
  28. package/dist/scripts/auto-fix.js +5 -0
  29. package/dist/scripts/auto-fix.js.map +1 -1
  30. package/dist/scripts/cli.js +2 -2
  31. package/dist/scripts/cli.js.map +1 -1
  32. package/dist/scripts/config-generators/ai-config-generator.d.ts.map +1 -1
  33. package/dist/scripts/config-generators/ai-config-generator.js +6 -0
  34. package/dist/scripts/config-generators/ai-config-generator.js.map +1 -1
  35. package/dist/scripts/config-generators/eslint-generator.d.ts.map +1 -1
  36. package/dist/scripts/config-generators/eslint-generator.js +108 -0
  37. package/dist/scripts/config-generators/eslint-generator.js.map +1 -1
  38. package/dist/scripts/config-generators/frameworks/fastify.d.ts +6 -0
  39. package/dist/scripts/config-generators/frameworks/fastify.d.ts.map +1 -0
  40. package/dist/scripts/config-generators/frameworks/fastify.js +68 -0
  41. package/dist/scripts/config-generators/frameworks/fastify.js.map +1 -0
  42. package/dist/scripts/config-generators/frameworks/hono.d.ts +6 -0
  43. package/dist/scripts/config-generators/frameworks/hono.d.ts.map +1 -0
  44. package/dist/scripts/config-generators/frameworks/hono.js +63 -0
  45. package/dist/scripts/config-generators/frameworks/hono.js.map +1 -0
  46. package/dist/scripts/config-generators/frameworks/index.d.ts +3 -0
  47. package/dist/scripts/config-generators/frameworks/index.d.ts.map +1 -1
  48. package/dist/scripts/config-generators/frameworks/index.js +7 -1
  49. package/dist/scripts/config-generators/frameworks/index.js.map +1 -1
  50. package/dist/scripts/config-generators/frameworks/nestjs.d.ts +6 -0
  51. package/dist/scripts/config-generators/frameworks/nestjs.d.ts.map +1 -0
  52. package/dist/scripts/config-generators/frameworks/nestjs.js +83 -0
  53. package/dist/scripts/config-generators/frameworks/nestjs.js.map +1 -0
  54. package/dist/scripts/config-generators/frameworks/node.d.ts +2 -2
  55. package/dist/scripts/config-generators/frameworks/node.d.ts.map +1 -1
  56. package/dist/scripts/config-generators/frameworks/node.js +56 -11
  57. package/dist/scripts/config-generators/frameworks/node.js.map +1 -1
  58. package/dist/scripts/config-generators/typescript-generator.d.ts.map +1 -1
  59. package/dist/scripts/config-generators/typescript-generator.js +33 -0
  60. package/dist/scripts/config-generators/typescript-generator.js.map +1 -1
  61. package/dist/scripts/config-generators/vscode-generator.d.ts.map +1 -1
  62. package/dist/scripts/config-generators/vscode-generator.js +73 -0
  63. package/dist/scripts/config-generators/vscode-generator.js.map +1 -1
  64. package/dist/scripts/generate-pr-checklist.d.ts +5 -0
  65. package/dist/scripts/generate-pr-checklist.d.ts.map +1 -1
  66. package/dist/scripts/generate-pr-checklist.js +6 -1
  67. package/dist/scripts/generate-pr-checklist.js.map +1 -1
  68. package/dist/scripts/postinstall.js +38 -0
  69. package/dist/scripts/postinstall.js.map +1 -1
  70. package/dist/scripts/precommit-check.d.ts +13 -0
  71. package/dist/scripts/precommit-check.d.ts.map +1 -1
  72. package/dist/scripts/precommit-check.js +288 -5
  73. package/dist/scripts/precommit-check.js.map +1 -1
  74. package/dist/scripts/utils/naming-validator.d.ts.map +1 -1
  75. package/dist/scripts/utils/naming-validator.js +96 -2
  76. package/dist/scripts/utils/naming-validator.js.map +1 -1
  77. package/dist/scripts/utils/project-detector.d.ts +12 -9
  78. package/dist/scripts/utils/project-detector.d.ts.map +1 -1
  79. package/dist/scripts/utils/project-detector.js +63 -11
  80. package/dist/scripts/utils/project-detector.js.map +1 -1
  81. package/dist/scripts/utils/structure-validator.d.ts.map +1 -1
  82. package/dist/scripts/utils/structure-validator.js +50 -0
  83. package/dist/scripts/utils/structure-validator.js.map +1 -1
  84. package/package.json +10 -3
  85. package/scripts/auto-fix.ts +5 -0
  86. package/scripts/cli.ts +2 -2
  87. package/scripts/config-generators/ai-config-generator.ts +9 -0
  88. package/scripts/config-generators/eslint-generator.ts +110 -0
  89. package/scripts/config-generators/frameworks/fastify.ts +65 -0
  90. package/scripts/config-generators/frameworks/hono.ts +60 -0
  91. package/scripts/config-generators/frameworks/index.ts +3 -0
  92. package/scripts/config-generators/frameworks/nestjs.ts +80 -0
  93. package/scripts/config-generators/frameworks/node.ts +57 -11
  94. package/scripts/config-generators/typescript-generator.ts +36 -0
  95. package/scripts/config-generators/vscode-generator.ts +84 -0
  96. package/scripts/generate-pr-checklist.ts +6 -1
  97. package/scripts/postinstall.ts +38 -0
  98. package/scripts/precommit-check.ts +334 -6
  99. package/scripts/utils/naming-validator.ts +104 -2
  100. package/scripts/utils/project-detector.ts +78 -11
  101. package/scripts/utils/structure-validator.ts +54 -0
  102. package/templates/feature-doc-backend.md +114 -0
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /**
3
+ * fastify.ts — Fastify Backend Guidelines
4
+ * Generated guidelines for Fastify projects.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.fastifyGuidelines = fastifyGuidelines;
8
+ function fastifyGuidelines() {
9
+ return `## Fastify Backend Guidelines
10
+
11
+ ### Architecture
12
+ - Organise routes into **plugins** — each feature area (auth, users, products) is an encapsulated Fastify plugin
13
+ - Register plugins with \`fastify.register()\` — use \`fastify-plugin\` to expose scope beyond registration
14
+ - Keep the main \`server.ts\` lean: create instance, register plugins, start listening
15
+
16
+ ### Schema-First Development
17
+ - Define JSON Schemas for EVERY route's request body, query string, params, and response
18
+ - Use TypeBox (\`@fastify/type-provider-typebox\`) or Zod (\`@fastify/type-provider-zod\`) for type-safe schemas
19
+ - Schema validation runs at the framework level before your handler — never re-validate in handlers
20
+ - Define response schemas to enable faster JSON serialization via fast-json-stringify
21
+
22
+ ### Route Handlers
23
+ - Handlers receive typed \`request\` and \`reply\` objects — use generic type parameters
24
+ - Return data directly from handlers — let Fastify serialize it according to the response schema
25
+ - Use \`reply.code(201).send(data)\` for non-200 status codes
26
+ - Extract heavy logic to service functions — keep handlers thin
27
+ - Mark async handlers with \`async\` — never mix callbacks and promises
28
+
29
+ ### Hooks & Lifecycle
30
+ - Use the correct lifecycle hook for the job:
31
+ - \`onRequest\` — authentication (runs before parsing)
32
+ - \`preHandler\` — authorization / additional validation
33
+ - \`onSend\` — transform the response payload
34
+ - \`onError\` — custom error handling
35
+ - Prefer hook registration at the plugin level over global hooks for better encapsulation
36
+
37
+ ### Plugins & Decorators
38
+ - Use \`fastify.decorate()\` to attach shared state (db, config, logger) to the Fastify instance
39
+ - Access decorations via \`fastify.<name>\` in route handlers
40
+ - Never mutate \`fastify\` outside of plugin scope — use \`fastify-plugin\` to break encapsulation intentionally
41
+
42
+ ### Error Handling
43
+ - Throw \`fastify.httpErrors.notFound()\`, \`fastify.httpErrors.unauthorized()\` etc. (from \`@fastify/sensible\`)
44
+ - Use \`setErrorHandler\` for global custom error shaping
45
+ - Never send raw error objects — map to consistent error response shapes with \`statusCode\`, \`message\`, \`error\`
46
+
47
+ ### Configuration
48
+ - Load environment variables at startup with \`dotenv\` or \`@fastify/env\`
49
+ - Define a JSON Schema for all expected env vars — validate at startup, fail fast
50
+ - Access config via decorated \`fastify.config\` object — never scatter \`process.env\` reads
51
+
52
+ ### Database
53
+ - Use connection pooling (pg-pool, Prisma, MikroORM) — never open a new connection per request
54
+ - Register the DB client as a Fastify plugin/decorator for consistent lifecycle management
55
+ - Use \`onClose\` hook to gracefully close DB connections on shutdown
56
+
57
+ ### Testing
58
+ - Use \`fastify.inject()\` for in-process HTTP testing — no real network needed
59
+ - Unit test schema validation and service logic separately
60
+ - Integration test routes via \`inject\` with realistic payloads
61
+
62
+ ### Security
63
+ - Always register \`@fastify/helmet\` for security headers
64
+ - Use \`@fastify/cors\` and restrict \`origin\` to known domains
65
+ - Use \`@fastify/rate-limit\` for abuse prevention
66
+ - Enable \`disableRequestLogging\` selectively — avoid logging sensitive request bodies`;
67
+ }
68
+ //# sourceMappingURL=fastify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fastify.js","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/fastify.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,8CA2DC;AA3DD,SAAgB,iBAAiB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFAyD+E,CAAC;AACzF,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * hono.ts — Hono Backend Guidelines
3
+ * Generated guidelines for Hono projects.
4
+ */
5
+ export declare function honoGuidelines(): string;
6
+ //# sourceMappingURL=hono.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hono.d.ts","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/hono.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,cAAc,IAAI,MAAM,CAsDvC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /**
3
+ * hono.ts — Hono Backend Guidelines
4
+ * Generated guidelines for Hono projects.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.honoGuidelines = honoGuidelines;
8
+ function honoGuidelines() {
9
+ return `## Hono Backend Guidelines
10
+
11
+ ### Philosophy & Architecture
12
+ - Hono is edge-first and runtime-agnostic (Cloudflare Workers, Deno, Bun, Node.js)
13
+ - Keep the app instance lean — compose routes using \`Hono\` sub-apps mounted via \`app.route('/prefix', subApp)\`
14
+ - Organise by feature: each domain has its own file exporting a \`Hono\` instance
15
+
16
+ ### Routing
17
+ - Use typed route handlers with Hono's TypeScript generics — \`app.get<'/users/:id', ...>(...)\`
18
+ - Group related routes into sub-apps: \`const users = new Hono()\` then \`app.route('/users', users)\`
19
+ - Use \`c.req.param()\`, \`c.req.query()\`, \`c.req.json()\` for typed access to request data
20
+ - Return responses via \`c.json(data, status)\` — never use raw \`Response\` objects unless necessary
21
+
22
+ ### Validation
23
+ - Use Zod + \`@hono/zod-validator\` middleware for request validation
24
+ - Apply the validator as a route middleware: \`app.post('/users', zValidator('json', schema), handler)\`
25
+ - Define schemas close to the route — collocate request and response types
26
+
27
+ ### Middleware
28
+ - Create middleware as \`const myMiddleware = createMiddleware(async (c, next) => { ... })\`
29
+ - Apply globally with \`app.use('*', middleware)\` or per-route with \`app.use('/api/*', middleware)\`
30
+ - Use built-in middleware: \`hono/cors\`, \`hono/logger\`, \`hono/etag\`, \`hono/compress\`
31
+ - Pass data between middleware and handlers using \`c.set()\` and \`c.get()\` with typed variables
32
+
33
+ ### Context & Variables
34
+ - Use \`createFactory\` and typed \`Variables\` to safely share request-scoped data between middleware
35
+ - Avoid global mutable state — everything goes through the context \`c\`
36
+
37
+ ### Error Handling
38
+ - Use \`app.onError((err, c) => c.json({ message: err.message }, 500))\` for global error handling
39
+ - Use \`app.notFound(c => c.json({ message: 'Not Found' }, 404))\` for 404s
40
+ - Throw \`HTTPException\` from middleware/handlers for expected errors: \`throw new HTTPException(401, { message: 'Unauthorized' })\`
41
+
42
+ ### Environment & Configuration
43
+ - Access environment variables via \`c.env\` (Cloudflare Workers) or process.env (Node.js/Bun)
44
+ - Use \`@hono/env\` or Zod to validate env vars at startup
45
+ - Never scatter \`process.env\` reads across route files — centralise config access
46
+
47
+ ### Edge Runtime Best Practices
48
+ - Avoid Node.js-specific built-ins (\`fs\`, \`path\`, \`crypto\` — use Web Crypto API instead)
49
+ - Keep responses stateless — no in-memory caches (use KV, D1, Redis)
50
+ - Use streaming responses for large payloads: \`c.stream()\` or \`c.streamText()\`
51
+
52
+ ### Testing
53
+ - Use Hono's \`app.request()\` helper for in-process testing — no server needed
54
+ - Test each sub-app independently by creating isolated instances
55
+ - Validate both success responses and error cases (400, 401, 404, 500)
56
+
57
+ ### Security
58
+ - Always add CORS middleware narrowed to allowed origins
59
+ - Use \`hono/secure-headers\` to add security headers
60
+ - Rate-limit via a Cloudflare WAF rule or \`@hono/rate-limiter\`
61
+ - Validate all user input with Zod before processing`;
62
+ }
63
+ //# sourceMappingURL=hono.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hono.js","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/hono.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,wCAsDC;AAtDD,SAAgB,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAoD4C,CAAC;AACtD,CAAC"}
@@ -13,5 +13,8 @@ export { vueGuidelines } from './vue';
13
13
  export { nuxtGuidelines } from './nuxt';
14
14
  export { svelteGuidelines } from './svelte';
15
15
  export { nodeGuidelines } from './node';
16
+ export { nestjsGuidelines } from './nestjs';
17
+ export { fastifyGuidelines } from './fastify';
18
+ export { honoGuidelines } from './hono';
16
19
  export { generalGuidelines } from './general';
17
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -8,7 +8,7 @@
8
8
  * Import from this index to use in the main ai-config-generator.
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.generalGuidelines = exports.nodeGuidelines = exports.svelteGuidelines = exports.nuxtGuidelines = exports.vueGuidelines = exports.angularGuidelines = exports.nextjsGuidelines = exports.reactGuidelines = void 0;
11
+ exports.generalGuidelines = exports.honoGuidelines = exports.fastifyGuidelines = exports.nestjsGuidelines = exports.nodeGuidelines = exports.svelteGuidelines = exports.nuxtGuidelines = exports.vueGuidelines = exports.angularGuidelines = exports.nextjsGuidelines = exports.reactGuidelines = void 0;
12
12
  var react_1 = require("./react");
13
13
  Object.defineProperty(exports, "reactGuidelines", { enumerable: true, get: function () { return react_1.reactGuidelines; } });
14
14
  var nextjs_1 = require("./nextjs");
@@ -23,6 +23,12 @@ var svelte_1 = require("./svelte");
23
23
  Object.defineProperty(exports, "svelteGuidelines", { enumerable: true, get: function () { return svelte_1.svelteGuidelines; } });
24
24
  var node_1 = require("./node");
25
25
  Object.defineProperty(exports, "nodeGuidelines", { enumerable: true, get: function () { return node_1.nodeGuidelines; } });
26
+ var nestjs_1 = require("./nestjs");
27
+ Object.defineProperty(exports, "nestjsGuidelines", { enumerable: true, get: function () { return nestjs_1.nestjsGuidelines; } });
28
+ var fastify_1 = require("./fastify");
29
+ Object.defineProperty(exports, "fastifyGuidelines", { enumerable: true, get: function () { return fastify_1.fastifyGuidelines; } });
30
+ var hono_1 = require("./hono");
31
+ Object.defineProperty(exports, "honoGuidelines", { enumerable: true, get: function () { return hono_1.honoGuidelines; } });
26
32
  var general_1 = require("./general");
27
33
  Object.defineProperty(exports, "generalGuidelines", { enumerable: true, get: function () { return general_1.generalGuidelines; } });
28
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,iCAA0C;AAAjC,wGAAA,eAAe,OAAA;AACxB,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,6BAAsC;AAA7B,oGAAA,aAAa,OAAA;AACtB,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,iCAA0C;AAAjC,wGAAA,eAAe,OAAA;AACxB,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,6BAAsC;AAA7B,oGAAA,aAAa,OAAA;AACtB,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AACzB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAC1B,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * nestjs.ts — NestJS Backend Guidelines
3
+ * Generated guidelines for NestJS projects.
4
+ */
5
+ export declare function nestjsGuidelines(): string;
6
+ //# sourceMappingURL=nestjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestjs.d.ts","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/nestjs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,gBAAgB,IAAI,MAAM,CA0EzC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * nestjs.ts — NestJS Backend Guidelines
4
+ * Generated guidelines for NestJS projects.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.nestjsGuidelines = nestjsGuidelines;
8
+ function nestjsGuidelines() {
9
+ return `## NestJS Backend Guidelines
10
+
11
+ ### Architecture & Modules
12
+ - Organize code into **feature modules** — each domain (user, auth, product) gets its own module file
13
+ - Use the module boundary to encapsulate: module → controller → service → repository
14
+ - Never import services from another module directly — use that module's exports instead
15
+ - Shared utilities (guards, pipes, interceptors) go in a \`common/\` or \`shared/\` module
16
+
17
+ ### Controllers
18
+ - Controllers handle HTTP concerns ONLY — route binding, request parsing, response shaping
19
+ - Never put business logic in a controller — delegate everything to the service layer
20
+ - Use NestJS built-in decorators: \`@Get()\`, \`@Post()\`, \`@Body()\`, \`@Param()\`, \`@Query()\`
21
+ - Always define the return type of controller methods explicitly
22
+ - Use \`@ApiTags()\` and \`@ApiOperation()\` for Swagger documentation
23
+
24
+ ### Services & Business Logic
25
+ - Services contain ALL business logic — keep them framework-agnostic where possible
26
+ - Injected via constructor DI — never instantiate services manually with \`new\`
27
+ - Mark services \`@Injectable()\` and register them in the module's \`providers\` array
28
+ - One service per aggregate/domain concept — avoid god services
29
+
30
+ ### DTOs & Validation
31
+ - ALWAYS define DTOs (Data Transfer Objects) for request bodies — never use raw \`any\` or plain objects
32
+ - Use \`class-validator\` decorators on DTOs: \`@IsString()\`, \`@IsEmail()\`, \`@IsNotEmpty()\`
33
+ - Apply \`ValidationPipe\` globally: \`app.useGlobalPipes(new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true }))\`
34
+ - Use \`@Type()\` from \`class-transformer\` for nested object transformation
35
+ - Separate request DTOs from response DTOs — never expose internal entity fields directly
36
+
37
+ ### Guards & Authorization
38
+ - Use Guards for authentication and authorization — apply via \`@UseGuards()\` decorator
39
+ - Implement \`CanActivate\` interface for custom guards
40
+ - Apply guards at the controller or handler level — prefer global guards for auth, handler-level for roles
41
+ - Use custom \`@Roles()\` decorator + \`RolesGuard\` pattern for RBAC
42
+
43
+ ### Pipes
44
+ - Use Pipes for input transformation and validation: \`ParseIntPipe\`, \`ParseUUIDPipe\`, \`ValidationPipe\`
45
+ - Create custom pipes for complex transformations — implement \`PipeTransform\` interface
46
+ - Apply pipes at the parameter level for targeted transformation
47
+
48
+ ### Interceptors
49
+ - Use Interceptors for cross-cutting concerns: logging, caching, response transformation
50
+ - Implement \`NestInterceptor\` interface using RxJS \`Observable\`
51
+ - Apply globally for response wrapping (e.g., \`{ data: ..., statusCode: ... }\` envelope) or per-route
52
+
53
+ ### Exception Filters
54
+ - Use NestJS built-in \`HttpException\` subclasses for expected errors: \`NotFoundException\`, \`BadRequestException\`, \`ForbiddenException\`
55
+ - Create custom exception filters by implementing \`ExceptionFilter\` for domain-specific error shaping
56
+ - Apply \`@Catch()\` decorator to target specific exception types
57
+ - Never return raw error stack traces in production responses
58
+
59
+ ### Configuration
60
+ - Use \`@nestjs/config\` with \`ConfigModule.forRoot()\` for environment variables
61
+ - Access config via \`ConfigService\` — NEVER use \`process.env\` directly in services or controllers
62
+ - Validate env variables at startup with a Joi or Zod schema passed to \`validationSchema\`
63
+ - Store sensitive values in \`.env\` — never commit secrets to source control
64
+
65
+ ### Database & Repositories
66
+ - Use TypeORM or Prisma — avoid raw SQL strings in services
67
+ - Define repository abstraction (Repository pattern) — inject via \`@InjectRepository()\`
68
+ - Transactions: use QueryRunner for multi-step write operations
69
+ - Enable \`synchronize: false\` in production — always use migrations
70
+
71
+ ### Testing
72
+ - Unit test services and guards in isolation — mock the repository layer
73
+ - Integration test controllers with \`supertest\` via \`Test.createTestingModule()\`
74
+ - At minimum: test happy path + validation errors + unauthorized access
75
+ - Name test files \`*.spec.ts\` co-located with source files
76
+
77
+ ### Security
78
+ - Enable CORS explicitly: \`app.enableCors({ origin: allowedOrigins })\`
79
+ - Use \`helmet\` middleware: \`app.use(helmet())\`
80
+ - Use \`ThrottlerModule\` for rate limiting
81
+ - Sanitize all user inputs through DTOs + ValidationPipe whitelist`;
82
+ }
83
+ //# sourceMappingURL=nestjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/nestjs.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,4CA0EC;AA1ED,SAAgB,gBAAgB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAwE0D,CAAC;AACpE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * node.ts — Node.js Backend Guidelines
3
- * Generated guidelines for Node.js projects.
2
+ * node.ts — Express / Node.js Backend Guidelines
3
+ * Generated guidelines for Express and generic Node.js backend projects.
4
4
  */
5
5
  export declare function nodeGuidelines(): string;
6
6
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,cAAc,IAAI,MAAM,CAUvC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,cAAc,IAAI,MAAM,CAuDvC"}
@@ -1,19 +1,64 @@
1
1
  "use strict";
2
2
  /**
3
- * node.ts — Node.js Backend Guidelines
4
- * Generated guidelines for Node.js projects.
3
+ * node.ts — Express / Node.js Backend Guidelines
4
+ * Generated guidelines for Express and generic Node.js backend projects.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.nodeGuidelines = nodeGuidelines;
8
8
  function nodeGuidelines() {
9
- return `## Node.js Backend Guidelines
10
- - Use async/await — avoid callback patterns
11
- - Always handle errors with try/catch
12
- - Validate request inputs before processing
13
- - Use environment variables for configuration
14
- - Use middleware for cross-cutting concerns
15
- - Log errors with structured logging
16
- - Use connection pooling for database connections
17
- - Implement graceful shutdown handling`;
9
+ return `## Express / Node.js Backend Guidelines
10
+
11
+ ### Architecture
12
+ - Structure the project in layers: routes → controllers → services → data access
13
+ - Never put business logic in route handlers — keep handlers thin (parse request, call service, send response)
14
+ - Group routes by domain in separate router files: \`users.router.ts\`, \`auth.router.ts\`
15
+ - Apply a barrel file (\`routes/index.ts\`) to mount all routers into the main app
16
+
17
+ ### Async & Error Handling
18
+ - Use async/await throughout — avoid callbacks and raw Promises without \`.catch()\`
19
+ - Wrap async route handlers with an error-catching wrapper or use \`express-async-errors\`
20
+ - Always define a global error-handling middleware with 4 parameters: \`(err, req, res, next)\`
21
+ - Use typed custom error classes (extending \`Error\`) with a \`statusCode\` property
22
+ - Never expose stack traces in production responses
23
+
24
+ ### Middleware
25
+ - Apply middleware with a clear separation of concerns: auth, validation, logging, error handling
26
+ - Use \`helmet()\` for secure HTTP headers
27
+ - Use \`cors()\` with an explicit allowlist — never \`cors()\` with no options
28
+ - Apply \`express.json()\` and \`express.urlencoded()\` for body parsing
29
+ - Use \`morgan\` or a structured logger (Pino, Winston) — never \`console.log\` in production
30
+ - Rate limit public endpoints with \`express-rate-limit\`
31
+
32
+ ### Input Validation
33
+ - ALWAYS validate request inputs before processing — use Zod, Joi, or \`express-validator\`
34
+ - Validate \`req.body\`, \`req.params\`, and \`req.query\` separately
35
+ - Return 400 with a clear error message on validation failure
36
+
37
+ ### Security
38
+ - Never trust user input — validate and sanitize everything
39
+ - Use parameterized queries for all database operations — never interpolate user input into SQL
40
+ - Hash passwords with \`bcrypt\` (cost factor ≥ 12) — never store plaintext
41
+ - Store secrets in environment variables — validate at startup (fail fast)
42
+ - Enable \`trust proxy\` correctly when behind a reverse proxy (nginx, Cloudflare)
43
+
44
+ ### Configuration
45
+ - Use \`dotenv\` + a config module to centralise all \`process.env\` access
46
+ - Validate required env vars at startup — crash immediately if any are missing
47
+ - Never access \`process.env\` directly in route files or services
48
+
49
+ ### Database
50
+ - Use connection pooling — never create a new DB connection per request
51
+ - Use an ORM (Prisma, TypeORM) or query builder (Knex) — avoid raw SQL strings with interpolation
52
+ - Implement graceful shutdown: drain the connection pool before \`process.exit()\`
53
+
54
+ ### Graceful Shutdown
55
+ - Listen for \`SIGTERM\` and \`SIGINT\` signals
56
+ - Stop accepting new connections via \`server.close()\`, then close DB connections, then exit
57
+ - Use a timeout (e.g., 10 s) to force-exit if shutdown hangs
58
+
59
+ ### Testing
60
+ - Unit test service layer in isolation with mocked repositories
61
+ - Integration test routes with \`supertest\` — test happy path + validation errors + auth failures
62
+ - Co-locate tests with source: \`users.service.spec.ts\` next to \`users.service.ts\``;
18
63
  }
19
64
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/node.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,wCAUC;AAVD,SAAgB,cAAc;IAC5B,OAAO;;;;;;;;uCAQ8B,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../scripts/config-generators/frameworks/node.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,wCAuDC;AAvDD,SAAgB,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sFAqD6E,CAAC;AACvF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-generator.d.ts","sourceRoot":"","sources":["../../../scripts/config-generators/typescript-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAkBvE;AAgGD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAG5E"}
1
+ {"version":3,"file":"typescript-generator.d.ts","sourceRoot":"","sources":["../../../scripts/config-generators/typescript-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAkBvE;AAoID;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAG5E"}
@@ -146,6 +146,39 @@ function buildTsConfig(project) {
146
146
  delete base.compilerOptions.lib;
147
147
  base.compilerOptions.lib = ['ES2022'];
148
148
  break;
149
+ case 'nestjs':
150
+ base.compilerOptions.target = 'ES2021';
151
+ base.compilerOptions.module = 'commonjs';
152
+ base.compilerOptions.moduleResolution = 'node';
153
+ base.compilerOptions.outDir = './dist';
154
+ base.compilerOptions.rootDir = './src';
155
+ base.compilerOptions.experimentalDecorators = true;
156
+ base.compilerOptions.emitDecoratorMetadata = true;
157
+ base.compilerOptions.allowSyntheticDefaultImports = true;
158
+ delete base.compilerOptions.lib;
159
+ base.compilerOptions.lib = ['ES2021'];
160
+ // NestJS doesn't want verbatimModuleSyntax (conflicts with metadata emission)
161
+ delete base.compilerOptions.verbatimModuleSyntax;
162
+ base.include = ['src/**/*.ts'];
163
+ break;
164
+ case 'fastify':
165
+ base.compilerOptions.module = 'NodeNext';
166
+ base.compilerOptions.moduleResolution = 'NodeNext';
167
+ base.compilerOptions.outDir = './dist';
168
+ base.compilerOptions.rootDir = './src';
169
+ delete base.compilerOptions.lib;
170
+ base.compilerOptions.lib = ['ES2022'];
171
+ base.include = ['src/**/*.ts'];
172
+ break;
173
+ case 'hono':
174
+ base.compilerOptions.module = 'ESNext';
175
+ base.compilerOptions.moduleResolution = 'bundler';
176
+ base.compilerOptions.outDir = './dist';
177
+ base.compilerOptions.rootDir = './src';
178
+ delete base.compilerOptions.lib;
179
+ base.compilerOptions.lib = ['ES2022'];
180
+ base.include = ['src/**/*.ts'];
181
+ break;
149
182
  }
150
183
  return base;
151
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typescript-generator.js","sourceRoot":"","sources":["../../../scripts/config-generators/typescript-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript-generator.js","sourceRoot":"","sources":["../../../scripts/config-generators/typescript-generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-generator.d.ts","sourceRoot":"","sources":["../../../scripts/config-generators/vscode-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAwC5D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAcrE;AAuED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAsBvE;AAqCD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAoBlE;AA6HD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAoBnE"}
1
+ {"version":3,"file":"vscode-generator.d.ts","sourceRoot":"","sources":["../../../scripts/config-generators/vscode-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAwC5D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAcrE;AAuED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAsBvE;AAqCD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAoBlE;AA8JD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAoBnE"}
@@ -339,6 +339,36 @@ function buildTasks(project) {
339
339
  presentation: { reveal: 'always', panel: 'dedicated' },
340
340
  });
341
341
  break;
342
+ case 'nestjs':
343
+ tasks.push({
344
+ label: 'Dev Server (NestJS)',
345
+ type: 'shell',
346
+ command: `${runCmd} start:dev`,
347
+ isBackground: true,
348
+ problemMatcher: [],
349
+ presentation: { reveal: 'always', panel: 'dedicated' },
350
+ });
351
+ break;
352
+ case 'fastify':
353
+ tasks.push({
354
+ label: 'Dev Server (Fastify)',
355
+ type: 'shell',
356
+ command: `${runCmd} dev`,
357
+ isBackground: true,
358
+ problemMatcher: [],
359
+ presentation: { reveal: 'always', panel: 'dedicated' },
360
+ });
361
+ break;
362
+ case 'hono':
363
+ tasks.push({
364
+ label: 'Dev Server (Hono)',
365
+ type: 'shell',
366
+ command: `${runCmd} dev`,
367
+ isBackground: true,
368
+ problemMatcher: [],
369
+ presentation: { reveal: 'always', panel: 'dedicated' },
370
+ });
371
+ break;
342
372
  }
343
373
  // Code Guardian task
344
374
  tasks.push({
@@ -464,6 +494,49 @@ function buildLaunch(project) {
464
494
  skipFiles: ['<node_internals>/**'],
465
495
  });
466
496
  break;
497
+ case 'nestjs':
498
+ configurations.push({
499
+ name: 'NestJS: Debug',
500
+ type: 'node',
501
+ request: 'launch',
502
+ runtimeExecutable: '${workspaceFolder}/node_modules/.bin/ts-node',
503
+ args: ['${workspaceFolder}/src/main.ts'],
504
+ sourceMaps: true,
505
+ envFile: '${workspaceFolder}/.env',
506
+ cwd: '${workspaceFolder}',
507
+ skipFiles: ['<node_internals>/**'],
508
+ outFiles: ['${workspaceFolder}/dist/**/*.js'],
509
+ }, {
510
+ name: 'NestJS: Attach (--inspect)',
511
+ type: 'node',
512
+ request: 'attach',
513
+ port: 9229,
514
+ skipFiles: ['<node_internals>/**'],
515
+ restart: true,
516
+ });
517
+ break;
518
+ case 'fastify':
519
+ case 'hono':
520
+ configurations.push({
521
+ name: `${project.label}: Debug`,
522
+ type: 'node',
523
+ request: 'launch',
524
+ runtimeExecutable: '${workspaceFolder}/node_modules/.bin/ts-node',
525
+ args: ['${workspaceFolder}/src/index.ts'],
526
+ sourceMaps: true,
527
+ envFile: '${workspaceFolder}/.env',
528
+ cwd: '${workspaceFolder}',
529
+ skipFiles: ['<node_internals>/**'],
530
+ outFiles: ['${workspaceFolder}/dist/**/*.js'],
531
+ }, {
532
+ name: `${project.label}: Attach (--inspect)`,
533
+ type: 'node',
534
+ request: 'attach',
535
+ port: 9229,
536
+ skipFiles: ['<node_internals>/**'],
537
+ restart: true,
538
+ });
539
+ break;
467
540
  default:
468
541
  configurations.push({
469
542
  name: 'Launch Program',
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-generator.js","sourceRoot":"","sources":["../../../scripts/config-generators/vscode-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vscode-generator.js","sourceRoot":"","sources":["../../../scripts/config-generators/vscode-generator.ts"],"names":[],"mappings":"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"}