exisjs 0.7.4 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/cli/commands/build.d.ts +4 -2
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +80 -22
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/dev.d.ts.map +1 -1
  6. package/dist/cli/commands/dev.js +121 -27
  7. package/dist/cli/commands/dev.js.map +1 -1
  8. package/dist/cli/commands/doctor.d.ts.map +1 -1
  9. package/dist/cli/commands/doctor.js +5 -2
  10. package/dist/cli/commands/doctor.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +1 -0
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +25 -0
  14. package/dist/cli/commands/generate.js.map +1 -1
  15. package/dist/cli/commands/start.d.ts.map +1 -1
  16. package/dist/cli/commands/start.js +17 -5
  17. package/dist/cli/commands/start.js.map +1 -1
  18. package/dist/cli/index.js +10 -3
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/manifest.d.ts.map +1 -1
  21. package/dist/cli/manifest.js +12 -4
  22. package/dist/cli/manifest.js.map +1 -1
  23. package/dist/config/env.d.ts.map +1 -1
  24. package/dist/config/env.js +8 -0
  25. package/dist/config/env.js.map +1 -1
  26. package/dist/decorators/constants.d.ts +2 -0
  27. package/dist/decorators/constants.d.ts.map +1 -1
  28. package/dist/docs/content/boundaries.mdx +33 -3
  29. package/dist/docs/content/config.mdx +26 -0
  30. package/dist/docs/content/errors.mdx +38 -2
  31. package/dist/docs/content/requests.mdx +38 -5
  32. package/dist/docs/content/responses.mdx +43 -5
  33. package/dist/docs/content/security.mdx +17 -4
  34. package/dist/docs/content/structure.mdx +91 -12
  35. package/dist/docs/content/validation.mdx +40 -4
  36. package/dist/lib/start-server.js +16 -0
  37. package/dist/lib/start-server.js.map +1 -1
  38. package/dist/middleware/rate-limit.d.ts.map +1 -1
  39. package/dist/middleware/rate-limit.js +9 -0
  40. package/dist/middleware/rate-limit.js.map +1 -1
  41. package/dist/router/boundary.d.ts +12 -0
  42. package/dist/router/boundary.d.ts.map +1 -1
  43. package/dist/router/boundary.js.map +1 -1
  44. package/dist/router/route-scanner.d.ts +1 -0
  45. package/dist/router/route-scanner.d.ts.map +1 -1
  46. package/dist/router/route-scanner.js +193 -8
  47. package/dist/router/route-scanner.js.map +1 -1
  48. package/dist/router/types.d.ts +3 -1
  49. package/dist/router/types.d.ts.map +1 -1
  50. package/dist/sanitize/index.d.ts +6 -6
  51. package/dist/sanitize/index.d.ts.map +1 -1
  52. package/dist/sanitize/index.js +8 -8
  53. package/dist/sanitize/index.js.map +1 -1
  54. package/dist/server/app.d.ts +1 -0
  55. package/dist/server/app.d.ts.map +1 -1
  56. package/dist/server/app.js +4 -0
  57. package/dist/server/app.js.map +1 -1
  58. package/dist/server/engines/node-engine.d.ts.map +1 -1
  59. package/dist/server/engines/node-engine.js +1 -0
  60. package/dist/server/engines/node-engine.js.map +1 -1
  61. package/dist/server/request-handler.d.ts.map +1 -1
  62. package/dist/server/request-handler.js +15 -1
  63. package/dist/server/request-handler.js.map +1 -1
  64. package/dist/server/request.d.ts +6 -0
  65. package/dist/server/request.d.ts.map +1 -1
  66. package/dist/server/request.js +94 -33
  67. package/dist/server/request.js.map +1 -1
  68. package/dist/server/response.d.ts +3 -1
  69. package/dist/server/response.d.ts.map +1 -1
  70. package/dist/server/response.js +98 -10
  71. package/dist/server/response.js.map +1 -1
  72. package/dist/validator/tex.d.ts +7 -7
  73. package/dist/validator/tex.d.ts.map +1 -1
  74. package/dist/validator/tex.js +217 -5
  75. package/dist/validator/tex.js.map +1 -1
  76. package/package.json +8 -8
@@ -9,6 +9,7 @@ exports.generateModel = generateModel;
9
9
  exports.generateService = generateService;
10
10
  exports.generateSchema = generateSchema;
11
11
  exports.generateBoundary = generateBoundary;
12
+ exports.generateErrorHandler = generateErrorHandler;
12
13
  exports.generateResource = generateResource;
13
14
  exports.generatePlugin = generatePlugin;
14
15
  exports.generateMiddleware = generateMiddleware;
@@ -195,6 +196,30 @@ async function generateBoundary(name, cwd = process.cwd(), options = {}) {
195
196
  await promises_1.default.writeFile(filePath, code);
196
197
  (0, utils_1.success)(`Generated boundary in src/http/${name}/${filename}`);
197
198
  }
199
+ async function generateErrorHandler(cwd = process.cwd()) {
200
+ const targetDir = node_path_1.default.join(cwd, 'src', 'http');
201
+ await ensureDir(targetDir);
202
+ const filePath = node_path_1.default.join(targetDir, 'error.ts');
203
+ const code = `import type { Request, Response } from 'exisjs'
204
+
205
+ /**
206
+ * Global Exception Handler for ExisJS
207
+ * Auto-mounted by the framework to catch unhandled errors and format error responses.
208
+ */
209
+ export function onError(err: any, req: Request, res: Response) {
210
+ const status = err.statusCode || err.status || 500
211
+ res.status(status).json({
212
+ success: false,
213
+ error: {
214
+ message: err.message || 'Internal Server Error',
215
+ code: err.code || 'INTERNAL_ERROR',
216
+ },
217
+ })
218
+ }
219
+ `;
220
+ await promises_1.default.writeFile(filePath, code);
221
+ (0, utils_1.success)('Generated global exception handler in src/http/error.ts');
222
+ }
198
223
  async function generateResource(name, cwd = process.cwd(), options = {}) {
199
224
  const targetDir = node_path_1.default.join(cwd, 'src', 'http', name);
200
225
  await ensureDir(targetDir);
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":";;;;;;AAqBA,gDA4BC;AAED,sCAwBC;AAED,0CAmFC;AAED,wCAuCC;AAED,4CAiBC;AAED,4CAmIC;AAID,wCA6BC;AAED,gDA0BC;AAED,oCA8BC;AA9bD,gEAAiC;AACjC,0DAA4B;AAC5B,oCAAqD;AAErD,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI;SACR,KAAK,CAAC,QAAQ,CAAC;SACf,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,IAAA,aAAQ,EAAC,8BAA8B,GAAG,EAAE,CAAC,CAAA;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,UAA8C,EAAE;IAEhD,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACrD,MAAM,SAAS,CAAC,SAAS,CAAC,CAAA;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,UAAU,CAAA;IAChE,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,IAAA,aAAQ,EAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAA;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IACD,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAE1C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG;QACtB,CAAC,CAAC,wEAAwE,IAAI,4BAA4B,eAAe,+FAA+F;QACxN,CAAC,CAAC,oMAAoM,CAAA;IAExM,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAClC,IAAA,eAAO,EACL,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,sBAAsB,IAAI,IAAI,QAAQ,EAAE,CACxF,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,UAA+B,EAAE;IAEjC,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAM,SAAS,CAAC,SAAS,CAAC,CAAA;IAC1B,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,eAAe,KAAK,CAAA;IAE7E,MAAM,IAAI,GAAG,oBAAoB,eAAe;;;;;;;;oBAQ9B,eAAe,gBAAgB,eAAe;oBAC9C,eAAe,yBAAyB,eAAe;CAC1E,CAAA;IAEC,MAAM,kBAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,IAAA,eAAO,EAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAA;AACxE,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,UAA8C,EAAE;IAEhD,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACrD,MAAM,SAAS,CAAC,SAAS,CAAC,CAAA;IAC1B,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,YAAY,CAAA;IACpE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAElE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG;QACtB,CAAC,CAAC;;sBAEgB,eAAe,cAAc,eAAe,eAAe,UAAU;;;eAG5E,eAAe;;;;;;;;;;;0BAWJ,eAAe;;;6BAGZ,eAAe;;;;;yCAKH,eAAe;;;;;;;;;;CAUvD;QACG,CAAC,CAAC;sBACgB,eAAe,cAAc,eAAe,eAAe,UAAU;;2BAEhE,eAAe;;;;;;;;2BAQf,eAAe;;wBAElB,eAAe;;;8BAGT,eAAe,gBAAgB,eAAe;;;;;8BAK9C,eAAe,4BAA4B,eAAe;;;;;8BAK1D,eAAe;;;;CAI5C,CAAA;IAEC,MAAM,kBAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,IAAA,eAAO,EACL,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,wBAAwB,IAAI,IAAI,QAAQ,EAAE,CAC1F,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,UAA+B,EAAE;IAEjC,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACrD,MAAM,SAAS,CAAC,SAAS,CAAC,CAAA;IAC1B,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,WAAW,CAAA;IAElE,MAAM,IAAI,GAAG;;;eAGA,eAAe;;;;eAIf,eAAe;;;;;qBAKT,eAAe;;;;;qBAKf,eAAe;;;;;cAKtB,eAAe,oCAAoC,eAAe;oBAC5D,eAAe,oCAAoC,eAAe;oBAClE,eAAe,oCAAoC,eAAe;CACrF,CAAA;IAEC,MAAM,kBAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,IAAA,eAAO,EAAC,2CAA2C,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAA;AACxE,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,UAA8C,EAAE;IAEhD,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACrD,MAAM,SAAS,CAAC,SAAS,CAAC,CAAA;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,aAAa,CAAA;IACtE,MAAM,QAAQ,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAE/C,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG;QACtB,CAAC,CAAC,qFAAqF,eAAe,eAAe;QACrH,CAAC,CAAC,gHAAgH,CAAA;IAEpH,MAAM,kBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAClC,IAAA,eAAO,EAAC,kCAAkC,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAA;AAC/D,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,UAA8C,EAAE;IAEhD,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACrD,MAAM,SAAS,CAAC,SAAS,CAAC,CAAA;IAC1B,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAE1C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;IACrE,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,UAAU,CAAA;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,WAAW,CAAA;IACxE,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,YAAY,CAAA;IAC3E,MAAM,aAAa,GAAG,GAAG,eAAe,KAAK,CAAA;IAE7C,oBAAoB;IACpB,MAAM,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAEvC,qBAAqB;IACrB,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAExC,sBAAsB;IACtB,MAAM,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAEzC,8BAA8B;IAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG;QAC3B,CAAC,CAAC;WACK,eAAe,mBAAmB,WAAW;;UAE9C,eAAe;UACf,eAAe;IACrB,eAAe;IACf,eAAe;UACT,UAAU;sBACE,eAAe,cAAc,eAAe,eAAe,UAAU;;gBAE3E,IAAI;uBACG,eAAe;0CACI,eAAe;;uBAElC,eAAe;;;;;;2BAMX,eAAe;;;;;;;6BAOb,eAAe;qCACP,eAAe;;;;;6BAKvB,eAAe,6BAA6B,eAAe;8DAC1B,eAAe;;;;;8BAK/C,eAAe;;;;;;CAM5C;QACG,CAAC,CAAC;4BACsB,WAAW;;UAE7B,eAAe;UACf,eAAe;IACrB,eAAe;IACf,eAAe;UACT,UAAU;;;;aAIP,eAAe;;wCAEY,eAAe;;;;;;cAMzC,eAAe;;sCAES,eAAe;;;;;;;kBAOnC,eAAe;;yCAEQ,eAAe;;;;;;cAM1C,eAAe;kBACX,eAAe;;yCAEQ,eAAe;;;;;;cAM1C,eAAe;;4BAED,eAAe;;;;;CAK1C,CAAA;IAEC,MAAM,kBAAE,CAAC,SAAS,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAA;IAClE,IAAA,eAAO,EACL,gDAAgD,IAAI,oBAAoB,aAAa,KAAK,aAAa,KAAK,cAAc,KAAK,eAAe,KAAK,aAAa,GAAG,CACpK,CAAA;AACH,CAAC;AAEY,QAAA,YAAY,GAAG,gBAAgB,CAAA;AAErC,KAAK,UAAU,cAAc,CAAC,IAAY;IAC/C,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAE5D,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,IAAA,aAAQ,EAAC,oCAAoC,CAAC,CAAA;QAC9C,OAAM;IACR,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEpE,MAAM,UAAU,GAAG;;eAEN,eAAe;gBACd,IAAI,CAAC,WAAW,EAAE;;;;;;;CAOjC,CAAA;IAEC,MAAM,kBAAE,CAAC,SAAS,CAChB,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAChD,UAAU,CACX,CAAA;IACD,IAAA,eAAO,EAAC,aAAa,IAAI,0BAA0B,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAC7E,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACnD,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IAE/D,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,IAAA,aAAQ,EAAC,uCAAuC,CAAC,CAAA;QACjD,OAAM;IACR,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEpE,MAAM,cAAc,GAAG;;eAEV,IAAI;;iBAEF,eAAe;;;CAG/B,CAAA;IAEC,MAAM,kBAAE,CAAC,SAAS,CAChB,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAChD,cAAc,CACf,CAAA;IACD,IAAA,eAAO,EAAC,sBAAsB,IAAI,sBAAsB,IAAI,KAAK,CAAC,CAAA;AACpE,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,IAAY;IAC7C,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAA;IAEnD,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,IAAA,aAAQ,EAAC,kCAAkC,CAAC,CAAA;QAC5C,OAAM;IACR,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEpE,MAAM,QAAQ,GAAG;;;YAGP,eAAe;;;;;;;;CAQ1B,CAAA;IAEC,MAAM,kBAAE,CAAC,SAAS,CAChB,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EACrD,QAAQ,CACT,CAAA;IACD,IAAA,eAAO,EAAC,aAAa,IAAI,kBAAkB,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;AAC1E,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE5E"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmF5E"}
@@ -30,7 +30,7 @@ async function startCommand(options = {}) {
30
30
  const child = (0, node_child_process_1.spawn)(process.execPath, [startServerPath], {
31
31
  cwd,
32
32
  env: process.env,
33
- stdio: 'inherit',
33
+ stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
34
34
  shell: false,
35
35
  });
36
36
  child.on('error', (err) => {
@@ -38,7 +38,7 @@ async function startCommand(options = {}) {
38
38
  process.exit(1);
39
39
  });
40
40
  let isShuttingDown = false;
41
- child.on('exit', (code, signal) => {
41
+ const handleExit = (code, signal) => {
42
42
  if (isShuttingDown) {
43
43
  process.exit(0);
44
44
  }
@@ -49,14 +49,24 @@ async function startCommand(options = {}) {
49
49
  else {
50
50
  process.exit(0);
51
51
  }
52
- });
53
- process.on('SIGINT', () => {
52
+ };
53
+ child.on('close', (code, signal) => handleExit(code, signal));
54
+ child.on('exit', (code, signal) => handleExit(code, signal));
55
+ const shutdown = () => {
54
56
  if (isShuttingDown)
55
57
  return;
56
58
  isShuttingDown = true;
57
59
  const time = (0, time_1.getFormattedTime)();
58
60
  const primary = '\x1b[38;2;160;70;255m';
59
61
  console.log(`\n${utils_1.c.dim}${time}${utils_1.c.reset} ${primary}[exis]${utils_1.c.reset} ${utils_1.c.dim}gracefully shutting down server...${utils_1.c.reset}`);
62
+ try {
63
+ if (child.connected) {
64
+ child.send({ type: 'exis:shutdown' });
65
+ }
66
+ }
67
+ catch {
68
+ /* ignore */
69
+ }
60
70
  try {
61
71
  if (process.platform !== 'win32') {
62
72
  child.kill('SIGTERM');
@@ -65,7 +75,9 @@ async function startCommand(options = {}) {
65
75
  catch {
66
76
  /* ignore */
67
77
  }
68
- });
78
+ };
79
+ process.on('SIGINT', shutdown);
80
+ process.on('SIGTERM', shutdown);
69
81
  }
70
82
  function resolveDistEntry(cwd, custom) {
71
83
  if (custom) {
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -62,6 +62,9 @@ program
62
62
  .description('Compile TypeScript to production JavaScript')
63
63
  .option('-o, --out-dir <dir>', 'Output directory (default: dist)')
64
64
  .option('--no-clean', 'Skip cleaning the output directory')
65
+ .option('--skip-env-check', 'Skip build-time route and environment validation')
66
+ .option('--dry-run', 'Compile and bundle without failing on missing environment variables')
67
+ .option('-m, --mode <mode>', 'Environment mode to load (e.g. production, staging, development)')
65
68
  .action(async (options) => {
66
69
  await (0, build_1.buildCommand)(options);
67
70
  });
@@ -171,11 +174,15 @@ program
171
174
  .option('--oop', 'Generate using Class-Based (OOP) paradigm instead of Functional')
172
175
  .option('-n, --named', 'Prefix filenames with the feature name (e.g. user.route.ts, user.schema.ts)')
173
176
  .action(async (type, name, options) => {
174
- const { generateCrud, generateModel, generateController, generateService, generateSchema, generateBoundary, generatePlugin, generateMiddleware, generateTest, } = await Promise.resolve().then(() => __importStar(require('./commands/generate')));
175
- if (!name)
177
+ const { generateCrud, generateModel, generateController, generateService, generateSchema, generateBoundary, generateErrorHandler, generatePlugin, generateMiddleware, generateTest, } = await Promise.resolve().then(() => __importStar(require('./commands/generate')));
178
+ if (!name && type !== 'error' && type !== 'err')
176
179
  return console.error('Name is required');
177
180
  const cwd = process.cwd();
178
181
  switch (type) {
182
+ case 'error':
183
+ case 'err':
184
+ await generateErrorHandler(cwd);
185
+ break;
179
186
  case 'resource':
180
187
  case 'crud':
181
188
  await generateCrud(name, cwd, options);
@@ -214,7 +221,7 @@ program
214
221
  await generateTest(name);
215
222
  break;
216
223
  default:
217
- console.error('Unknown type. Supported: resource, crud, route, controller, service, schema, model, boundary, plugin, middleware, test');
224
+ console.error('Unknown type. Supported: resource, crud, route, controller, service, schema, model, boundary, error, plugin, middleware, test');
218
225
  }
219
226
  });
220
227
  program.parse(process.argv);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/cli/manifest.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAiIf;AAqCD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiEhE"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/cli/manifest.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAiIf;AAqCD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEhE"}
@@ -176,10 +176,18 @@ async function generateExisEnv(cwd) {
176
176
  .catch(() => false);
177
177
  if (!isTsProject)
178
178
  return;
179
- const hasNodeTypes = await fs
180
- .access(path.join(cwd, 'node_modules', '@types', 'node'))
181
- .then(() => true)
182
- .catch(() => false);
179
+ let hasNodeTypes;
180
+ try {
181
+ const req = typeof require !== 'undefined' ? require : eval('require');
182
+ req.resolve('@types/node/package.json', { paths: [cwd, __dirname] });
183
+ hasNodeTypes = true;
184
+ }
185
+ catch {
186
+ hasNodeTypes = await fs
187
+ .access(path.join(cwd, 'node_modules', '@types', 'node'))
188
+ .then(() => true)
189
+ .catch(() => false);
190
+ }
183
191
  let envContent = `/// <reference types="exisjs" />
184
192
 
185
193
  // NOTE: This file should not be edited
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/cli/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/cli/manifest.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AACpD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;CACT,EAAE,CAAA;AAEH,eAAO,IAAI,UAAU,EAAE,GAAG,GAAG,SAAqB,CAAA;AAmBlD,wBAAgB,UAAU,CACxB,cAAc,EAAE,cAAc,EAC9B,GAAG,CAAC,EAAE,MAAM,EACZ,WAAW,UAAQ,SAwCpB;AACD,wBAAgB,QAAQ,SAIvB;AACD;;;;GAIG;AAEH,wBAAgB,OAAO,CACrB,GAAG,GAAE,MAAsB,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,UAAQ,GAClB;IACD,WAAW,EAAE,GAAG,CAAA;IAChB,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;CAC/B,CA8CA;AACD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5D"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AACpD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,GAAG,CAAA;CACT,EAAE,CAAA;AAEH,eAAO,IAAI,UAAU,EAAE,GAAG,GAAG,SAAqB,CAAA;AAsBlD,wBAAgB,UAAU,CACxB,cAAc,EAAE,cAAc,EAC9B,GAAG,CAAC,EAAE,MAAM,EACZ,WAAW,UAAQ,SA4CpB;AACD,wBAAgB,QAAQ,SAIvB;AACD;;;;GAIG;AAEH,wBAAgB,OAAO,CACrB,GAAG,GAAE,MAAsB,EAC3B,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,UAAQ,GAClB;IACD,WAAW,EAAE,GAAG,CAAA;IAChB,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;CAC/B,CAgDA;AACD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5D"}
@@ -50,6 +50,9 @@ let cachedLoadedEnvFiles = [];
50
50
  let _previousLoadedEnvFiles = [];
51
51
  function replaceProcessEnv(sourceEnv) {
52
52
  Object.keys(process.env).forEach((key) => {
53
+ if (key.startsWith('__EXIS_') || key.startsWith('EXIS_')) {
54
+ return;
55
+ }
53
56
  if (sourceEnv[key] === undefined || sourceEnv[key] === '') {
54
57
  delete process.env[key];
55
58
  }
@@ -61,6 +64,9 @@ function replaceProcessEnv(sourceEnv) {
61
64
  });
62
65
  }
63
66
  function processEnv(loadedEnvFiles, dir, forceReload = false) {
67
+ if (forceReload) {
68
+ delete process.env.__EXIS_PROCESSED_ENV;
69
+ }
64
70
  if (!exports.initialEnv) {
65
71
  exports.initialEnv = Object.assign({}, process.env);
66
72
  }
@@ -117,6 +123,8 @@ function loadEnv(dir = process.cwd(), mode, forceReload = false) {
117
123
  currentMode !== 'test' && `.env.local`,
118
124
  `.env.${currentMode}`,
119
125
  '.env',
126
+ currentMode === 'production' && '.env.development.local',
127
+ currentMode === 'production' && '.env.development',
120
128
  ].filter(Boolean);
121
129
  for (const envFile of dotenvFiles) {
122
130
  const dotEnvPath = path.join(dir, envFile);
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,8 @@ export interface BoundaryConfig {
42
42
  headers?: Record<string, string>;
43
43
  imports?: any[];
44
44
  providers?: any[];
45
+ beforeHandle?: any;
46
+ afterHandle?: any;
45
47
  }
46
48
  export interface ClassModuleOptions {
47
49
  imports?: any[];
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/decorators/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGvD,eAAO,MAAM,cAAc,eAA8B,CAAA;AACzD,eAAO,MAAM,iBAAiB,eAAyC,CAAA;AACvE,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,mBAAmB,eAAmC,CAAA;AACnE,eAAO,MAAM,cAAc,eAAsC,CAAA;AACjE,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AACzE,eAAO,MAAM,cAAc,eAAsC,CAAA;AACjE,eAAO,MAAM,aAAa,eAAqC,CAAA;AAC/D,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,eAAe,eAAuC,CAAA;AAEnE,eAAO,MAAM,UAAU,eAAkC,CAAA;AACzD,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AACzE,eAAO,MAAM,mBAAmB,eAA2C,CAAA;AAC3E,eAAO,MAAM,uBAAuB,eAEnC,CAAA;AACD,eAAO,MAAM,mBAAmB,eAA2C,CAAA;AAE3E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACxC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,GAAG,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IACnB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;CAChB"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/decorators/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAGvD,eAAO,MAAM,cAAc,eAA8B,CAAA;AACzD,eAAO,MAAM,iBAAiB,eAAyC,CAAA;AACvE,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,mBAAmB,eAAmC,CAAA;AACnE,eAAO,MAAM,cAAc,eAAsC,CAAA;AACjE,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AACzE,eAAO,MAAM,cAAc,eAAsC,CAAA;AACjE,eAAO,MAAM,aAAa,eAAqC,CAAA;AAC/D,eAAO,MAAM,eAAe,eAAuC,CAAA;AACnE,eAAO,MAAM,eAAe,eAAuC,CAAA;AAEnE,eAAO,MAAM,UAAU,eAAkC,CAAA;AACzD,eAAO,MAAM,kBAAkB,eAA0C,CAAA;AACzE,eAAO,MAAM,mBAAmB,eAA2C,CAAA;AAC3E,eAAO,MAAM,uBAAuB,eAEnC,CAAA;AACD,eAAO,MAAM,mBAAmB,eAA2C,CAAA;AAE3E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACxC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;IACd,YAAY,CAAC,EAAE,GAAG,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,YAAY,CAAC,EAAE,GAAG,CAAA;IAClB,WAAW,CAAC,EAAE,GAAG,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,GAAG,EAAE,CAAA;IACnB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAA;CAChB"}
@@ -21,20 +21,22 @@ A `boundary.ts` has two distinct, independent parts:
21
21
  | Signature | Detected as | Execution timing |
22
22
  |---|---|---|
23
23
  | `(req, res, next)` | Chain Step | Runs in file/declaration order, before the route |
24
+ | `beforeHandle(req, res)` | Boundary Guard Hook | Immediately before the route handler. Short-circuits on `false` or when sending headers |
25
+ | `afterHandle(req, res, data)` | Response Hook | Immediately after the route handler. Mutates returned payload or logs audit data |
24
26
  | `(ctx, next)` — default export (functional) or class method `handle(ctx, next)` (OOP) | Request Wrapper | Wraps around all chain steps and the nested route/boundary |
25
27
 
26
28
  ---
27
29
 
28
30
  ## 1. Functional Paradigm
29
31
 
30
- In functional style, export `config = defineBoundary(...)`, export named middleware functions `(req, res, next)` for chain steps, and optionally provide a `default export` function `(ctx, next)` as an onion-style wrapper.
32
+ In functional style, export `config = defineBoundary(...)`, export named middleware functions `(req, res, next)` for chain steps, and optionally provide a `default export` function `(ctx, next)` as an onion-style wrapper. You can also configure `beforeHandle` and `afterHandle` hooks directly inside `defineBoundary({ ... })`.
31
33
 
32
34
  ```typescript filename="src/http/admin/boundary.ts"
33
35
  import { defineBoundary } from 'exisjs/router'
34
36
  import type { Request, Response, Next, BoundaryContext } from 'exisjs/router'
35
37
  import { UnauthorizedError } from 'exisjs/error'
36
38
 
37
- // 1. Configuration (CORS, Headers, Exclusions, DI Providers)
39
+ // 1. Configuration (CORS, Headers, Exclusions, Hooks, DI Providers)
38
40
  export const config = defineBoundary({
39
41
  cors: {
40
42
  origin: ['https://admin.yourdomain.com'],
@@ -47,6 +49,20 @@ export const config = defineBoundary({
47
49
  '/admin/health',
48
50
  { path: '/admin/public/*', method: 'GET' }
49
51
  ],
52
+
53
+ // Pre-handler hook: Return false to reject with 403, or send custom response
54
+ beforeHandle(req, res) {
55
+ if (!req.headers['x-admin-token']) {
56
+ res.status(401).json({ error: 'Missing admin access token' })
57
+ return false
58
+ }
59
+ },
60
+
61
+ // Post-handler hook: Transform outgoing response payload or perform async audit
62
+ afterHandle(req, res, data) {
63
+ res.setHeader('X-Audited', 'true')
64
+ return { ...data, auditedAt: Date.now() }
65
+ },
50
66
  })
51
67
 
52
68
  // 2. Chain Step (auto-detected by (req, res, next) signature)
@@ -78,7 +94,7 @@ export default async function (ctx: BoundaryContext, next: Next) {
78
94
 
79
95
  ## 2. Class-Based (OOP) Paradigm
80
96
 
81
- In OOP style, decorate a class with `@Boundary(...)`. Named methods taking `(req, res, next)` are auto-detected as chain steps, and a method named `handle(ctx, next)` serves as the request wrapper.
97
+ In OOP style, decorate a class with `@Boundary(...)`. Named methods taking `(req, res, next)` are auto-detected as chain steps, `beforeHandle(req, res)` and `afterHandle(req, res, data)` act as lifecycle hooks, and a method named `handle(ctx, next)` serves as the request wrapper.
82
98
 
83
99
  ```typescript filename="src/http/admin/boundary.ts"
84
100
  import { Boundary } from 'exisjs/decorators'
@@ -96,6 +112,20 @@ import { UnauthorizedError } from 'exisjs/error'
96
112
  exclude: ['/admin/health'],
97
113
  })
98
114
  export default class AdminBoundary {
115
+ // Pre-handler hook
116
+ beforeHandle(req: Request, res: Response) {
117
+ if (!req.headers['x-admin-token']) {
118
+ res.status(401).json({ error: 'Missing admin access token' })
119
+ return false
120
+ }
121
+ }
122
+
123
+ // Post-handler hook
124
+ afterHandle(req: Request, res: Response, data: any) {
125
+ res.setHeader('X-Audited', 'true')
126
+ return { ...data, auditedAt: Date.now() }
127
+ }
128
+
99
129
  // Chain step
100
130
  requireAuth(req: Request, res: Response, next: Next) {
101
131
  if (!req.headers['x-api-key']) {
@@ -219,3 +219,29 @@ If you are building a multi-tenant B2B application, do not boot multiple ExisJS
219
219
  1. **Row-Level Tenancy (Recommended)**: Run a single `App` connected to a single database. Use request context or middleware to inject the `tenantId` and scope all queries via Prisma/SQL.
220
220
  2. **Factory-Based Clients**: If you need true database-per-tenant isolation, do not use the zero-config singleton exports (like `import { db } from 'exisjs/prisma'`). Instead, manually construct the client factories inside a tenant-resolution middleware and attach them to the request context (`req.tenantDb`).
221
221
  3. **Containerized Deployments**: Run separate Node.js processes (Docker containers) for each tenant, passing tenant-specific `DATABASE_URL`s to each container.
222
+
223
+ ---
224
+
225
+ ## 9. Graceful Shutdown & Zero-Downtime Deployments
226
+
227
+ When deploying in Kubernetes, Docker Swarm, AWS ECS, or PM2, containers receive `SIGTERM` signals when being replaced. ExisJS handles graceful shutdown out of the box:
228
+
229
+ 1. **Stops Accepting New Connections**: Immediately closes the server listener so load balancers stop routing new traffic to the terminating instance.
230
+ 2. **Closes Idle Keep-Alive Connections**: Closes lingering idle HTTP keep-alive sockets instantly via `server.closeIdleConnections()`, preventing the process from hanging.
231
+ 3. **Drains In-Flight Requests**: Grants in-flight requests time to finish before terminating.
232
+ 4. **Lifecycle Teardown**: Automatically invokes your application's `onStop(app)` hook so you can cleanly disconnect databases, Redis pools, or message brokers.
233
+
234
+ ```typescript filename="src/http/server.ts"
235
+ import { exis } from 'exisjs'
236
+ import { db } from './db'
237
+
238
+ export default exis({
239
+ async onStart(app) {
240
+ await db.connect()
241
+ },
242
+ async onStop(app) {
243
+ // Cleanly close database pools when SIGTERM or SIGINT is received
244
+ await db.disconnect()
245
+ }
246
+ })
247
+ ```
@@ -159,9 +159,45 @@ To keep your codebase clean and consistent, use this decision tree when deciding
159
159
 
160
160
  ## Extended Error Handling
161
161
 
162
- ExisJS provides mechanisms for granular error handling.
162
+ ExisJS provides mechanisms for granular and centralized error handling.
163
163
 
164
- ### 1. Exception Filters (`catchError`)
164
+ ### 1. Framework-Level Exception Handler (`src/http/error.ts`)
165
+
166
+ Instead of writing manual `try/catch` blocks in every route or calling `app.onError` inside `server.ts`, ExisJS natively discovers and auto-mounts `src/http/error.ts` (or `error.js`).
167
+
168
+ Export an `onError(err, req, res)` function to centrally format, log, and respond to all unhandled exceptions and validation errors:
169
+
170
+ ```typescript filename="src/http/error.ts"
171
+ import type { Request, Response } from 'exisjs'
172
+
173
+ /**
174
+ * Global Exception Handler for ExisJS
175
+ * Auto-mounted at startup to intercept all unhandled exceptions.
176
+ */
177
+ export function onError(err: any, req: Request, res: Response) {
178
+ const status = err.statusCode || err.status || 500
179
+
180
+ // Centralized structured error response
181
+ res.status(status).json({
182
+ success: false,
183
+ error: {
184
+ code: err.code || 'INTERNAL_ERROR',
185
+ message: err.message || 'Internal Server Error',
186
+ path: req.path,
187
+ },
188
+ })
189
+ }
190
+ ```
191
+
192
+ > [!TIP]
193
+ > You can also scaffold this file instantly via the CLI:
194
+ > ```bash
195
+ > exis generate error
196
+ > # or shorthand:
197
+ > exis g error
198
+ > ```
199
+
200
+ ### 2. Exception Filters (`catchError`)
165
201
 
166
202
  ExisJS allows you to create **Exception Filters** to globally intercept specific types of errors.
167
203
 
@@ -303,19 +303,52 @@ const language = req.acceptsLanguages('en', 'es', 'fr')
303
303
 
304
304
  ---
305
305
 
306
- ## 5. Network Information
306
+ ## 7. Network Information & IPv6 Normalization
307
307
 
308
- ExisJS handles trust-proxies. If you are behind Cloudflare, Nginx, or an AWS Load Balancer, simply set `trustProxy: true` in your `exis()` config, and these properties will automatically resolve the true client IP from `X-Forwarded-For`.
308
+ ExisJS handles trust-proxies and dual-stack IP networks automatically. If you are behind Cloudflare, Nginx, or an AWS Load Balancer, simply set `trustProxy: true` in your `exis()` config, and these properties will automatically resolve the true client IP from `X-Forwarded-For`.
309
309
 
310
- - **`req.ip`**: The client's IP address.
311
- - **`req.ips`**: An array of IPs if multiple proxies were traversed.
310
+ - **`req.ip`**: The client's IP address. Automatically normalizes IPv6-mapped IPv4 dual-stack addresses (e.g., `::ffff:192.168.1.50` $\to$ `192.168.1.50`) and converts IPv6 loopback `::1` $\to$ `127.0.0.1` for consistent rate limiting and geo-IP lookups.
311
+ - **`req.ips`**: An array of IPs if multiple proxies were traversed, each normalized cleanly.
312
312
  - **`req.hostname`**: The resolved hostname (from `Host` or `X-Forwarded-Host`).
313
313
  - **`req.protocol`**: Returns `'http'` or `'https'`.
314
314
  - **`req.secure`**: A boolean (true if `req.protocol === 'https'`).
315
315
 
316
316
  ---
317
317
 
318
- ## 6. Context & Metadata
318
+ ## 8. Request Cancellation & Abort Signals (`req.signal`)
319
+
320
+ ExisJS provides a first-class standard Web API `req.signal: AbortSignal` tied directly to the underlying HTTP connection lifecycle.
321
+
322
+ When a client closes their browser tab, cancels a download, or aborts an HTTP request, `req.signal` immediately triggers an `abort` event. You can pass `req.signal` directly to ORMs, database drivers, and HTTP clients to cancel expensive in-flight operations and eliminate wasted server resources.
323
+
324
+ #### Example: Passing to Database Queries & Upstream Fetches
325
+
326
+ ```typescript filename="src/http/reports/route.ts"
327
+ import { controller, route } from 'exisjs/router'
328
+
329
+ export default controller({
330
+ heavyReport: route.get('/', {
331
+ async handle({ req }) {
332
+ // 1. Pass req.signal to fetch() — if the client leaves, fetch aborts immediately
333
+ const upstream = await fetch('https://api.external.com/data', {
334
+ signal: req.signal
335
+ })
336
+ const payload = await upstream.json()
337
+
338
+ // 2. Pass req.signal to your database queries (Prisma, Drizzle, pg, etc.)
339
+ const results = await db.query(sql`SELECT * FROM heavy_analytics`, {
340
+ signal: req.signal
341
+ })
342
+
343
+ return { payload, results }
344
+ }
345
+ })
346
+ })
347
+ ```
348
+
349
+ ---
350
+
351
+ ## 9. Context & Metadata
319
352
 
320
353
  As your request moves through ExisJS Middlewares, various properties are attached to `req` for your convenience:
321
354