@morojs/moro 1.7.25 → 1.7.27

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 (35) hide show
  1. package/dist/core/http/http-server.d.ts +7 -1
  2. package/dist/core/http/http-server.js +318 -15
  3. package/dist/core/http/http-server.js.map +1 -1
  4. package/dist/core/middleware/built-in/auth/jwt-helpers.js +5 -1
  5. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -1
  6. package/dist/core/middleware/built-in/body-parsers/index.d.ts +19 -0
  7. package/dist/core/middleware/built-in/body-parsers/index.js +38 -0
  8. package/dist/core/middleware/built-in/body-parsers/index.js.map +1 -0
  9. package/dist/core/middleware/built-in/cors/core.d.ts +1 -0
  10. package/dist/core/middleware/built-in/cors/core.js +6 -2
  11. package/dist/core/middleware/built-in/cors/core.js.map +1 -1
  12. package/dist/core/middleware/built-in/index.d.ts +1 -0
  13. package/dist/core/middleware/built-in/index.js +1 -0
  14. package/dist/core/middleware/built-in/index.js.map +1 -1
  15. package/dist/core/middleware/built-in/session/core.js +0 -1
  16. package/dist/core/middleware/built-in/session/core.js.map +1 -1
  17. package/dist/core/middleware/built-in/static/core.js +6 -3
  18. package/dist/core/middleware/built-in/static/core.js.map +1 -1
  19. package/dist/core/middleware/built-in/template/core.d.ts +0 -1
  20. package/dist/core/middleware/built-in/template/core.js +26 -34
  21. package/dist/core/middleware/built-in/template/core.js.map +1 -1
  22. package/dist/core/routing/create-router.d.ts +32 -0
  23. package/dist/core/routing/create-router.js +87 -0
  24. package/dist/core/routing/create-router.js.map +1 -0
  25. package/dist/core/routing/unified-router.d.ts +3 -0
  26. package/dist/core/routing/unified-router.js +47 -15
  27. package/dist/core/routing/unified-router.js.map +1 -1
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.js +6 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/moro.d.ts +45 -0
  32. package/dist/moro.js +152 -0
  33. package/dist/moro.js.map +1 -1
  34. package/dist/types/http.d.ts +25 -0
  35. package/package.json +1 -1
@@ -181,6 +181,29 @@ export class UnifiedRouter {
181
181
  constructor() {
182
182
  logger.debug('UnifiedRouter initialized', 'Initialization');
183
183
  }
184
+ // User-registered global error handler (set via Moro.setErrorHandler)
185
+ errorHandler;
186
+ setErrorHandler(fn) {
187
+ this.errorHandler = fn;
188
+ }
189
+ // Invoke the registered error handler (if any). Returns true if it produced a response.
190
+ async invokeErrorHandler(err, req, res) {
191
+ if (!this.errorHandler || res.headersSent)
192
+ return false;
193
+ try {
194
+ const result = this.errorHandler(err, req, res);
195
+ if (result && typeof result.then === 'function') {
196
+ await result;
197
+ }
198
+ return res.headersSent;
199
+ }
200
+ catch (handlerErr) {
201
+ logger.error('Error handler itself threw', 'Execution', {
202
+ error: handlerErr instanceof Error ? handlerErr.message : String(handlerErr),
203
+ });
204
+ return false;
205
+ }
206
+ }
184
207
  /**
185
208
  * Get singleton instance (optional - can still create new instances)
186
209
  */
@@ -420,8 +443,9 @@ export class UnifiedRouter {
420
443
  }
421
444
  return true;
422
445
  })
423
- .catch(() => {
424
- if (!res.headersSent) {
446
+ .catch(async (err) => {
447
+ const handled = await this.invokeErrorHandler(err, req, res);
448
+ if (!handled && !res.headersSent) {
425
449
  res.status(500).json({ error: 'Internal server error' });
426
450
  }
427
451
  return true;
@@ -434,11 +458,14 @@ export class UnifiedRouter {
434
458
  return true;
435
459
  }
436
460
  }
437
- catch {
438
- if (!res.headersSent) {
439
- res.status(500).json({ error: 'Internal server error' });
440
- }
441
- return true;
461
+ catch (err) {
462
+ return (async () => {
463
+ const handled = await this.invokeErrorHandler(err, req, res);
464
+ if (!handled && !res.headersSent) {
465
+ res.status(500).json({ error: 'Internal server error' });
466
+ }
467
+ return true;
468
+ })();
442
469
  }
443
470
  }
444
471
  // Non-fast-path static route
@@ -465,8 +492,9 @@ export class UnifiedRouter {
465
492
  }
466
493
  return true;
467
494
  })
468
- .catch(() => {
469
- if (!res.headersSent) {
495
+ .catch(async (err) => {
496
+ const handled = await this.invokeErrorHandler(err, req, res);
497
+ if (!handled && !res.headersSent) {
470
498
  res.status(500).json({ error: 'Internal server error' });
471
499
  }
472
500
  return true;
@@ -479,11 +507,14 @@ export class UnifiedRouter {
479
507
  return true;
480
508
  }
481
509
  }
482
- catch {
483
- if (!res.headersSent) {
484
- res.status(500).json({ error: 'Internal server error' });
485
- }
486
- return true;
510
+ catch (err) {
511
+ return (async () => {
512
+ const handled = await this.invokeErrorHandler(err, req, res);
513
+ if (!handled && !res.headersSent) {
514
+ res.status(500).json({ error: 'Internal server error' });
515
+ }
516
+ return true;
517
+ })();
487
518
  }
488
519
  }
489
520
  // Non-fast-path dynamic routes (with middleware)
@@ -532,7 +563,8 @@ export class UnifiedRouter {
532
563
  error: error instanceof Error ? error.message : String(error),
533
564
  route: `${route.schema.method} ${route.schema.path}`,
534
565
  });
535
- if (!res.headersSent) {
566
+ const handled = await this.invokeErrorHandler(error, req, res);
567
+ if (!handled && !res.headersSent) {
536
568
  res.status(500).json({
537
569
  success: false,
538
570
  error: 'Internal server error',
@@ -1 +1 @@
1
- {"version":3,"file":"unified-router.js","sourceRoot":"","sources":["../../../src/core/routing/unified-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unified-router.js","sourceRoot":"","sources":["../../../src/core/routing/unified-router.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -42,6 +42,8 @@ export { JobScheduler, JobHealthChecker, CronParser, parseInterval, formatDurati
42
42
  export type { JobSchedule, JobOptions, SimpleJobOptions, JobFunction, JobMetrics, SchedulerStats, JobHealth, JobHealthStatus, JobContext, JobExecution, JobState, JobSchedulerOptions, ExecutionContext, ExecutionResult, } from './core/jobs/index.js';
43
43
  export { MiddlewareManager } from './core/middleware/index.js';
44
44
  export type { MiddlewareInterface, MoroMiddleware } from './core/middleware/index.js';
45
+ export { json, urlencoded } from './core/middleware/built-in/body-parsers/index.js';
46
+ export { createRouter, createRouter as Router, MoroRouter } from './core/routing/create-router.js';
45
47
  export type * from './types/core.js';
46
48
  export type * from './types/http.js';
47
49
  export type * from './types/hooks.js';
package/dist/index.js CHANGED
@@ -41,6 +41,12 @@ export { createPothosBuilder, isPothosAvailable, isPothosSchema, pothosToSchema,
41
41
  export { JobScheduler, JobHealthChecker, CronParser, parseInterval, formatDuration, everyInterval, cronSchedule, oneTimeAt, createJob, } from './core/jobs/index.js';
42
42
  // Middleware System
43
43
  export { MiddlewareManager } from './core/middleware/index.js';
44
+ // Body parsers
45
+ export { json, urlencoded } from './core/middleware/built-in/body-parsers/index.js';
46
+ // Standalone router — `createRouter()` is the canonical factory; `Router` is an
47
+ // alias kept callable without `new` so Express-style named imports
48
+ // (`import { Router } from '...'`; `const r = Router();`) work unchanged.
49
+ export { createRouter, createRouter as Router, MoroRouter } from './core/routing/create-router.js';
44
50
  // Adapters
45
51
  export * from './core/middleware/built-in/cache/adapters/index.js';
46
52
  export * from './core/middleware/built-in/cdn/adapters/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/moro.d.ts CHANGED
@@ -39,6 +39,12 @@ export declare class RouteGroup {
39
39
  delete(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
40
40
  patch(path: string): UnifiedRouteBuilder;
41
41
  patch(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
42
+ head(path: string): UnifiedRouteBuilder;
43
+ head(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
44
+ options(path: string): UnifiedRouteBuilder;
45
+ options(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
46
+ /** Register a handler for all HTTP methods on the given path (Express-compatible). */
47
+ all(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
42
48
  group(prefix: string, callback: (group: RouteGroup) => void): this;
43
49
  }
44
50
  export declare class Moro extends EventEmitter {
@@ -82,6 +88,10 @@ export declare class Moro extends EventEmitter {
82
88
  private mailManager?;
83
89
  private mailInitialized;
84
90
  private mailConfig?;
91
+ private closeHooks;
92
+ private errorHandler?;
93
+ private requestDecorations;
94
+ private responseDecorations;
85
95
  constructor(options?: MoroOptions, preloadedConfig?: Readonly<AppConfig>);
86
96
  /**
87
97
  * Get configuration object
@@ -109,6 +119,16 @@ export declare class Moro extends EventEmitter {
109
119
  delete(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
110
120
  patch(path: string): UnifiedRouteBuilder;
111
121
  patch(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
122
+ head(path: string): UnifiedRouteBuilder;
123
+ head(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
124
+ options(path: string): UnifiedRouteBuilder;
125
+ options(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
126
+ /**
127
+ * Register a handler for all HTTP methods on the given path (Express-compatible).
128
+ * Handler is required — unlike the single-method registrations, there's no builder
129
+ * form since `all()` fans out across methods.
130
+ */
131
+ all(path: string, handler: (req: HttpRequest, res: HttpResponse) => any, options?: any): this;
112
132
  route(schema: RouteSchema): void;
113
133
  group(prefix: string, callback: (group: RouteGroup) => void): this;
114
134
  /**
@@ -135,6 +155,31 @@ export declare class Moro extends EventEmitter {
135
155
  refreshDocs(): void;
136
156
  use(middlewareOrFunction: any, config?: any): Promise<this>;
137
157
  plugin(middleware: any, options?: any): Promise<this>;
158
+ /**
159
+ * Register a shutdown hook. Hooks run (in registration order) during app.close(),
160
+ * before Moro tears down its own subsystems. Use for closing DB pools, external
161
+ * connections, flushing metrics, etc.
162
+ */
163
+ onClose(fn: () => any | Promise<any>): this;
164
+ /**
165
+ * Register a global error handler. Invoked when a middleware/handler throws or
166
+ * calls next(err), and no 4-arg error middleware has already handled it. Coexists
167
+ * with Express-style 4-arg error middlewares.
168
+ */
169
+ setErrorHandler(fn: (err: any, req: HttpRequest, res: HttpResponse) => any | Promise<any>): this;
170
+ /** Internal: retrieve the registered error handler (used by the HTTP server). */
171
+ getErrorHandler(): ((err: any, req: HttpRequest, res: HttpResponse) => any | Promise<any>) | undefined;
172
+ /**
173
+ * Decorate every request with a property. The value is assigned by reference to
174
+ * each incoming request (use a per-request middleware to set per-request values).
175
+ */
176
+ decorateRequest(name: string, value: any): this;
177
+ /** Decorate every response with a property (see decorateRequest). */
178
+ decorateReply(name: string, value: any): this;
179
+ /** Alias for decorateReply (Fastify-compatible name). */
180
+ decorateResponse(name: string, value: any): this;
181
+ /** Decorate the app instance itself. */
182
+ decorate(name: string, value: any): this;
138
183
  loadModule(moduleOrPath: ModuleConfig | string): Promise<this>;
139
184
  database(adapter: any): this;
140
185
  websocket(namespace: string, handlers: Record<string, CallableFunction>): this;
package/dist/moro.js CHANGED
@@ -86,6 +86,25 @@ export class RouteGroup {
86
86
  }
87
87
  return this.app.patch(this.prefixPath(path));
88
88
  }
89
+ head(path, ...args) {
90
+ if (args.length > 0) {
91
+ this.app.addRoute('HEAD', this.prefixPath(path), args[0], args[1]);
92
+ return this;
93
+ }
94
+ return this.app.head(this.prefixPath(path));
95
+ }
96
+ options(path, ...args) {
97
+ if (args.length > 0) {
98
+ this.app.addRoute('OPTIONS', this.prefixPath(path), args[0], args[1]);
99
+ return this;
100
+ }
101
+ return this.app.options(this.prefixPath(path));
102
+ }
103
+ /** Register a handler for all HTTP methods on the given path (Express-compatible). */
104
+ all(path, handler, options) {
105
+ this.app.all(this.prefixPath(path), handler, options);
106
+ return this;
107
+ }
89
108
  group(prefix, callback) {
90
109
  const nested = new RouteGroup(this.prefixPath(prefix), this.app);
91
110
  callback(nested);
@@ -149,6 +168,13 @@ export class Moro extends EventEmitter {
149
168
  mailManager; // Use any to avoid import dependency
150
169
  mailInitialized = false;
151
170
  mailConfig; // Store config for lazy initialization
171
+ // User-registered shutdown hooks (run during close())
172
+ closeHooks = [];
173
+ // User-registered global error handler
174
+ errorHandler;
175
+ // Decorations applied to every request/response/app
176
+ requestDecorations = {};
177
+ responseDecorations = {};
152
178
  constructor(options = {}, preloadedConfig) {
153
179
  super(); // Call EventEmitter constructor
154
180
  // Track if user explicitly set logger/logging options
@@ -324,6 +350,30 @@ export class Moro extends EventEmitter {
324
350
  // Use unified router for chainable API
325
351
  return this.unifiedRouter.patch(path);
326
352
  }
353
+ head(path, handler, options) {
354
+ if (handler) {
355
+ return this.addRoute('HEAD', path, handler, options);
356
+ }
357
+ return this.unifiedRouter.head(path);
358
+ }
359
+ options(path, handler, options) {
360
+ if (handler) {
361
+ return this.addRoute('OPTIONS', path, handler, options);
362
+ }
363
+ return this.unifiedRouter.options(path);
364
+ }
365
+ /**
366
+ * Register a handler for all HTTP methods on the given path (Express-compatible).
367
+ * Handler is required — unlike the single-method registrations, there's no builder
368
+ * form since `all()` fans out across methods.
369
+ */
370
+ all(path, handler, options) {
371
+ const methods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'];
372
+ for (const method of methods) {
373
+ this.addRoute(method, path, handler, options);
374
+ }
375
+ return this;
376
+ }
327
377
  // Schema-first route method
328
378
  route(schema) {
329
379
  // Use unified router for schema-first registration
@@ -428,6 +478,23 @@ export class Moro extends EventEmitter {
428
478
  }
429
479
  // Universal middleware system - seamlessly handles standard and advanced middleware
430
480
  async use(middlewareOrFunction, config) {
481
+ // `app.use(pathPrefix, router)` — mount a createRouter() instance at the given prefix
482
+ if (typeof middlewareOrFunction === 'string' &&
483
+ config &&
484
+ typeof config === 'object' &&
485
+ config._morojsRouter === true &&
486
+ typeof config.mount === 'function') {
487
+ config.mount(this, middlewareOrFunction);
488
+ return this;
489
+ }
490
+ // `app.use(router)` — mount a createRouter() instance at the root
491
+ if (middlewareOrFunction &&
492
+ typeof middlewareOrFunction === 'object' &&
493
+ middlewareOrFunction._morojsRouter === true &&
494
+ typeof middlewareOrFunction.mount === 'function') {
495
+ middlewareOrFunction.mount(this, '');
496
+ return this;
497
+ }
431
498
  // Standard middleware integration (req, res, next pattern)
432
499
  if (typeof middlewareOrFunction === 'function' && middlewareOrFunction.length >= 3) {
433
500
  this.coreFramework.addMiddleware(middlewareOrFunction);
@@ -468,6 +535,63 @@ export class Moro extends EventEmitter {
468
535
  async plugin(middleware, options) {
469
536
  return this.use(middleware, options);
470
537
  }
538
+ /**
539
+ * Register a shutdown hook. Hooks run (in registration order) during app.close(),
540
+ * before Moro tears down its own subsystems. Use for closing DB pools, external
541
+ * connections, flushing metrics, etc.
542
+ */
543
+ onClose(fn) {
544
+ this.closeHooks.push(fn);
545
+ return this;
546
+ }
547
+ /**
548
+ * Register a global error handler. Invoked when a middleware/handler throws or
549
+ * calls next(err), and no 4-arg error middleware has already handled it. Coexists
550
+ * with Express-style 4-arg error middlewares.
551
+ */
552
+ setErrorHandler(fn) {
553
+ this.errorHandler = fn;
554
+ const httpServer = this.coreFramework?.httpServer;
555
+ if (httpServer?.setErrorHandler) {
556
+ httpServer.setErrorHandler(fn);
557
+ }
558
+ this.unifiedRouter.setErrorHandler(fn);
559
+ return this;
560
+ }
561
+ /** Internal: retrieve the registered error handler (used by the HTTP server). */
562
+ getErrorHandler() {
563
+ return this.errorHandler;
564
+ }
565
+ /**
566
+ * Decorate every request with a property. The value is assigned by reference to
567
+ * each incoming request (use a per-request middleware to set per-request values).
568
+ */
569
+ decorateRequest(name, value) {
570
+ this.requestDecorations[name] = value;
571
+ const httpServer = this.coreFramework?.httpServer;
572
+ if (httpServer?.setRequestDecorations) {
573
+ httpServer.setRequestDecorations(this.requestDecorations);
574
+ }
575
+ return this;
576
+ }
577
+ /** Decorate every response with a property (see decorateRequest). */
578
+ decorateReply(name, value) {
579
+ this.responseDecorations[name] = value;
580
+ const httpServer = this.coreFramework?.httpServer;
581
+ if (httpServer?.setResponseDecorations) {
582
+ httpServer.setResponseDecorations(this.responseDecorations);
583
+ }
584
+ return this;
585
+ }
586
+ /** Alias for decorateReply (Fastify-compatible name). */
587
+ decorateResponse(name, value) {
588
+ return this.decorateReply(name, value);
589
+ }
590
+ /** Decorate the app instance itself. */
591
+ decorate(name, value) {
592
+ this[name] = value;
593
+ return this;
594
+ }
471
595
  // Module loading with events
472
596
  async loadModule(moduleOrPath) {
473
597
  this.eventBus.emit('module:loading', {
@@ -1108,6 +1232,22 @@ export class Moro extends EventEmitter {
1108
1232
  }
1109
1233
  }
1110
1234
  catch (error) {
1235
+ // Route through user-registered error handler first, if any.
1236
+ if (this.errorHandler && !res.headersSent) {
1237
+ try {
1238
+ const handlerResult = this.errorHandler(error, req, res);
1239
+ if (handlerResult && typeof handlerResult.then === 'function') {
1240
+ await handlerResult;
1241
+ }
1242
+ if (res.headersSent)
1243
+ return;
1244
+ }
1245
+ catch (handlerErr) {
1246
+ this.logger.error('Error handler itself threw', 'RequestHandler', {
1247
+ error: handlerErr instanceof Error ? handlerErr.message : String(handlerErr),
1248
+ });
1249
+ }
1250
+ }
1111
1251
  if (!res.headersSent) {
1112
1252
  res.status(500).json({
1113
1253
  success: false,
@@ -1603,6 +1743,18 @@ export class Moro extends EventEmitter {
1603
1743
  */
1604
1744
  async close() {
1605
1745
  this.logger.debug('Closing Moro application...');
1746
+ // Run user-registered onClose hooks first, while subsystems are still alive.
1747
+ // Failures in one hook don't prevent subsequent hooks or Moro's own teardown.
1748
+ if (this.closeHooks.length > 0) {
1749
+ for (const hook of this.closeHooks) {
1750
+ try {
1751
+ await hook();
1752
+ }
1753
+ catch (err) {
1754
+ this.logger.error(`onClose hook failed: ${String(err)}`);
1755
+ }
1756
+ }
1757
+ }
1606
1758
  // Shutdown worker threads first (fastest)
1607
1759
  try {
1608
1760
  this.logger.info('Shutting down worker threads...');