@morojs/moro 1.7.28 → 1.7.30

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 (41) hide show
  1. package/dist/core/config/schema.js +3 -1
  2. package/dist/core/config/schema.js.map +1 -1
  3. package/dist/core/framework.d.ts +1 -1
  4. package/dist/core/framework.js +42 -28
  5. package/dist/core/framework.js.map +1 -1
  6. package/dist/core/http/http-server.d.ts +116 -12
  7. package/dist/core/http/http-server.js +1171 -862
  8. package/dist/core/http/http-server.js.map +1 -1
  9. package/dist/core/http/uws-http-server.d.ts +72 -5
  10. package/dist/core/http/uws-http-server.js +718 -150
  11. package/dist/core/http/uws-http-server.js.map +1 -1
  12. package/dist/core/logger/logger.d.ts +2 -0
  13. package/dist/core/logger/logger.js +32 -6
  14. package/dist/core/logger/logger.js.map +1 -1
  15. package/dist/core/middleware/built-in/compression/core.js +47 -29
  16. package/dist/core/middleware/built-in/compression/core.js.map +1 -1
  17. package/dist/core/middleware/built-in/error-tracker/middleware.d.ts +5 -2
  18. package/dist/core/middleware/built-in/error-tracker/middleware.js +13 -11
  19. package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -1
  20. package/dist/core/middleware/built-in/index.d.ts +3 -3
  21. package/dist/core/middleware/built-in/performance-monitor/middleware.d.ts +2 -1
  22. package/dist/core/middleware/built-in/performance-monitor/middleware.js +7 -6
  23. package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -1
  24. package/dist/core/middleware/built-in/request-logger/middleware.d.ts +2 -1
  25. package/dist/core/middleware/built-in/request-logger/middleware.js +5 -5
  26. package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -1
  27. package/dist/core/middleware/built-in/validation/core.js +61 -27
  28. package/dist/core/middleware/built-in/validation/core.js.map +1 -1
  29. package/dist/core/routing/radix-tree.d.ts +1 -0
  30. package/dist/core/routing/radix-tree.js +48 -10
  31. package/dist/core/routing/radix-tree.js.map +1 -1
  32. package/dist/core/routing/unified-router.d.ts +16 -0
  33. package/dist/core/routing/unified-router.js +39 -12
  34. package/dist/core/routing/unified-router.js.map +1 -1
  35. package/dist/core/utilities/hooks.d.ts +2 -0
  36. package/dist/core/utilities/hooks.js +12 -0
  37. package/dist/core/utilities/hooks.js.map +1 -1
  38. package/dist/moro.d.ts +1 -0
  39. package/dist/moro.js +44 -68
  40. package/dist/moro.js.map +1 -1
  41. package/package.json +1 -1
@@ -13,7 +13,9 @@ export const DEFAULT_CONFIG = {
13
13
  enabled: true, // Enable by default for debugging
14
14
  },
15
15
  requestLogging: {
16
- enabled: true, // Enable by default - logs requests independently
16
+ // Enabled in development; disabled in production where a per-request
17
+ // stdout write is a real throughput cost. Set explicitly to override.
18
+ enabled: process.env.NODE_ENV !== 'production',
17
19
  },
18
20
  errorBoundary: {
19
21
  enabled: true, // Always enabled for safety
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/config/schema.ts"],"names":[],"mappings":"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"}
@@ -52,7 +52,6 @@ export declare class Moro extends EventEmitter {
52
52
  */
53
53
  private detectWebSocketAdapter;
54
54
  private requestLoggingMiddleware;
55
- private errorBoundaryMiddleware;
56
55
  addMiddleware(middleware: any): this;
57
56
  registerDatabase(adapter: any): this;
58
57
  getContainer(): Container;
@@ -88,6 +87,7 @@ export declare class Moro extends EventEmitter {
88
87
  setupFinalModuleHandler(): void;
89
88
  private setupWebSocketHandlers;
90
89
  private checkRateLimit;
90
+ private preflightUws;
91
91
  /**
92
92
  * Parse size string (e.g., "10mb", "5gb") to bytes
93
93
  */
@@ -8,11 +8,11 @@ import { Container, buildModuleBasePath } from './utilities/index.js';
8
8
  import { ModuleLoader } from './modules/index.js';
9
9
  import { WebSocketManager } from './networking/websocket-manager.js';
10
10
  import { CircuitBreaker } from './utilities/circuit-breaker.js';
11
- import { isPackageAvailable } from './utilities/package-utils.js';
11
+ import { isPackageAvailable, createUserRequire } from './utilities/package-utils.js';
12
12
  import { MoroEventBus } from './events/index.js';
13
13
  import { createFrameworkLogger, logger as globalLogger } from './logger/index.js';
14
14
  import { mergeWebSocketConfig, } from './networking/websocket-adapter.js';
15
- import { cors, helmet, compression, bodySize } from './middleware/built-in/index.js';
15
+ import { cors, helmet, compression } from './middleware/built-in/index.js';
16
16
  export class Moro extends EventEmitter {
17
17
  httpServer;
18
18
  server; // HTTP/2 server type or uWebSockets app
@@ -53,13 +53,23 @@ export class Moro extends EventEmitter {
53
53
  }
54
54
  // Initialize framework logger after global configuration
55
55
  this.logger = createFrameworkLogger('Core');
56
- // Check if uWebSockets should be used for HTTP and WebSocket
57
- const useUWebSockets = this.config.server?.useUWebSockets || false;
56
+ // Check if uWebSockets should be used for HTTP and WebSocket.
57
+ // IMPORTANT: uWS is a native optional dependency loaded ASYNCHRONOUSLY by
58
+ // UWebSocketsHttpServer's constructor, so a load failure (package missing,
59
+ // or no prebuilt binary for this Node ABI - e.g. Node 25 with uWS v20.52)
60
+ // does NOT throw here and the catch-based fallback below would never fire;
61
+ // the app would hang at listen() bound to nothing. Preflight the require
62
+ // synchronously so the fallback can actually happen.
63
+ const useUWebSockets = (this.config.server?.useUWebSockets || false) && this.preflightUws();
58
64
  if (useUWebSockets) {
59
65
  try {
60
66
  // Try to use uWebSockets for high performance HTTP and WebSocket
61
67
  const sslOptions = this.config.server?.ssl || options.https;
62
- this.httpServer = new UWebSocketsHttpServer({ ssl: sslOptions });
68
+ this.httpServer = new UWebSocketsHttpServer({
69
+ ssl: sslOptions,
70
+ maxBodySize: this.parseSizeToBytes(this.config.server.bodySizeLimit),
71
+ maxUploadSize: this.parseSizeToBytes(this.config.server.maxUploadSize),
72
+ });
63
73
  this.server = this.httpServer.getApp();
64
74
  this.usingUWebSockets = true;
65
75
  this.logger.info('uWebSockets HTTP+WebSocket server created', 'ServerInit');
@@ -156,8 +166,9 @@ export class Moro extends EventEmitter {
156
166
  : {};
157
167
  this.httpServer.use(compression(compressionOptions));
158
168
  }
159
- // Body size middleware - always enabled with configurable limit
160
- this.httpServer.use(bodySize({ limit: this.config.server.bodySizeLimit }));
169
+ // Body size limits are enforced inside the HTTP server's parseBody
170
+ // (configured via maxBodySize/maxUploadSize above), which responds 413.
171
+ // No per-request middleware needed - keeps the default chain empty.
161
172
  // Configure request tracking (ID generation) in HTTP server
162
173
  if (this.httpServer.setRequestTracking) {
163
174
  this.httpServer.setRequestTracking(this.config.server.requestTracking.enabled);
@@ -166,10 +177,11 @@ export class Moro extends EventEmitter {
166
177
  if (this.config.server.requestLogging.enabled) {
167
178
  this.httpServer.use(this.requestLoggingMiddleware());
168
179
  }
169
- // Error boundary middleware - configurable but recommended to keep enabled
170
- if (this.config.server.errorBoundary.enabled) {
171
- this.httpServer.use(this.errorBoundaryMiddleware());
172
- }
180
+ // Error boundary: handled by the HTTP server's top-level catch in
181
+ // handleRequest (which invokes the registered errorHandler / default 500).
182
+ // The old errorBoundaryMiddleware wrapped a callback-style next() in
183
+ // try/catch, which can never observe downstream errors - it cost a promise
184
+ // per request and caught nothing, so it is no longer installed.
173
185
  }
174
186
  /**
175
187
  * Setup WebSocket adapter and manager
@@ -297,23 +309,6 @@ export class Moro extends EventEmitter {
297
309
  next();
298
310
  };
299
311
  }
300
- errorBoundaryMiddleware() {
301
- return async (req, res, next) => {
302
- try {
303
- next();
304
- }
305
- catch (error) {
306
- this.logger.error('Error:', error.message, error.stack);
307
- if (!res.headersSent) {
308
- res.status(500).json({
309
- success: false,
310
- error: 'Internal server error',
311
- requestId: req.requestId,
312
- });
313
- }
314
- }
315
- };
316
- }
317
312
  // Public API for adding middleware
318
313
  addMiddleware(middleware) {
319
314
  // Check if it's a MiddlewareInterface object - don't add to globalMiddleware
@@ -850,6 +845,25 @@ export class Moro extends EventEmitter {
850
845
  limit.count++;
851
846
  return true;
852
847
  }
848
+ // Synchronously verify that uWebSockets.js can actually load on this
849
+ // runtime: the package must be present AND ship a prebuilt binary for this
850
+ // Node ABI (e.g. uWS v20.52 has no binary for Node 25 / ABI 141). Loading
851
+ // it here is not wasted work - the CJS module cache shares the instance
852
+ // with the server's own import.
853
+ preflightUws() {
854
+ try {
855
+ // cwd-based require (the repo's standard optional-dependency resolution,
856
+ // and safe under both ESM and the CJS test transform - import.meta is not)
857
+ createUserRequire()('uWebSockets.js');
858
+ return true;
859
+ }
860
+ catch (error) {
861
+ this.logger.warn('useUWebSockets is enabled but uWebSockets.js cannot load on this runtime - ' +
862
+ 'falling back to Node.js http.Server. ' +
863
+ (error instanceof Error ? error.message.split('\n')[0] : String(error)), 'ServerInit');
864
+ return false;
865
+ }
866
+ }
853
867
  /**
854
868
  * Parse size string (e.g., "10mb", "5gb") to bytes
855
869
  */
@@ -1 +1 @@
1
- {"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/core/framework.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/core/framework.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,120 @@
1
- import { Server } from 'http';
1
+ import { IncomingMessage, ServerResponse, Server } from 'http';
2
2
  import { HttpRequest, HttpResponse, HttpHandler, Middleware } from '../../types/http.js';
3
+ export declare class MoroIncomingMessage extends IncomingMessage {
4
+ /** Bound on the per-server subclass prototype - no per-request write needed */
5
+ _server: MoroHttpServer;
6
+ params: Record<string, string>;
7
+ body: any;
8
+ path: string;
9
+ _queryString: string | null;
10
+ _lazy: Record<string, any> | undefined;
11
+ get query(): Record<string, string>;
12
+ set query(value: Record<string, string>);
13
+ get cookies(): Record<string, string>;
14
+ set cookies(value: Record<string, string>);
15
+ get context(): Record<string, any>;
16
+ set context(value: Record<string, any>);
17
+ get requestId(): string;
18
+ set requestId(value: string);
19
+ get ip(): string;
20
+ set ip(value: string);
21
+ get originalUrl(): string;
22
+ set originalUrl(value: string);
23
+ get hostname(): string;
24
+ set hostname(value: string);
25
+ get protocol(): string;
26
+ set protocol(value: string);
27
+ get secure(): boolean;
28
+ set secure(value: boolean);
29
+ get xhr(): boolean;
30
+ set xhr(value: boolean);
31
+ get ips(): string[];
32
+ set ips(value: string[]);
33
+ get subdomains(): string[];
34
+ set subdomains(value: string[]);
35
+ get(name: string): string | undefined;
36
+ header(name: string): string | undefined;
37
+ is(type: string): boolean;
38
+ accepts(types?: string | string[]): string | false;
39
+ acceptsLanguages(langs?: string | string[]): string | false;
40
+ }
41
+ export declare class MoroServerResponse extends ServerResponse {
42
+ /** Bound on the per-server subclass prototype - no per-request write needed */
43
+ _server: MoroHttpServer;
44
+ _locals: Record<string, any> | undefined;
45
+ get locals(): Record<string, any>;
46
+ set locals(value: Record<string, any>);
47
+ status(code: number): this;
48
+ json(data: any): void;
49
+ send(data: string | Buffer): void;
50
+ cookie(name: string, value: string, options?: any): this;
51
+ clearCookie(name: string, options?: any): this;
52
+ redirect(url: string, status?: number): void;
53
+ sendFile(filePath: string): Promise<void>;
54
+ success<T = any>(data: T, message?: string): void;
55
+ error(error: string, code?: string, message?: string): void;
56
+ unauthorized(message?: string): void;
57
+ forbidden(message?: string): void;
58
+ notFound(resource?: string): void;
59
+ badRequest(message?: string): void;
60
+ conflict(message: string): void;
61
+ internalError(message?: string): void;
62
+ validationError(errors: Array<{
63
+ field: string;
64
+ message: string;
65
+ code?: string;
66
+ }>): void;
67
+ rateLimited(retryAfter?: number): void;
68
+ created<T = any>(data: T, location?: string): void;
69
+ noContent(): void;
70
+ paginated<T = any>(data: T[], pagination: {
71
+ page: number;
72
+ limit: number;
73
+ total: number;
74
+ }): void;
75
+ hasHeader(name: string): boolean;
76
+ setBulkHeaders(headers: Record<string, string | number>): this;
77
+ appendHeader(name: string, value: string | string[]): this;
78
+ set(field: string | Record<string, string | string[] | number>, value?: string | string[] | number): this;
79
+ get(field: string): any;
80
+ append(field: string, value: string | string[]): this;
81
+ type(contentType: string): this;
82
+ sendStatus(code: number): void;
83
+ location(url: string): this;
84
+ vary(field: string | string[]): this;
85
+ attachment(filename?: string): this;
86
+ download(filePath: string, filename?: string): Promise<void>;
87
+ format(handlers: Record<string, () => any | Promise<any>>): void;
88
+ links(links: Record<string, string>): this;
89
+ canSetHeaders(): boolean;
90
+ getResponseState(): {
91
+ headersSent: boolean;
92
+ statusCode: number;
93
+ headers: import("http").OutgoingHttpHeaders;
94
+ finished: boolean;
95
+ writable: boolean;
96
+ };
97
+ }
3
98
  export declare class MoroHttpServer {
4
99
  private server;
5
100
  private routes;
6
101
  private globalMiddleware;
7
- private compressionEnabled;
8
- private compressionThreshold;
9
- private requestTrackingEnabled;
10
- private logger;
102
+ /** @internal read by MoroServerResponse prototype methods */
103
+ compressionEnabled: boolean;
104
+ /** @internal read by MoroServerResponse prototype methods */
105
+ compressionThreshold: number;
106
+ /** @internal read by MoroIncomingMessage prototype methods */
107
+ requestTrackingEnabled: boolean;
108
+ /** @internal read by MoroServerResponse prototype methods */
109
+ logger: import("../logger/index.js").Logger;
11
110
  private hookManager;
12
111
  private requestCounter;
13
112
  private errorHandler?;
14
113
  private requestDecorations;
15
114
  private responseDecorations;
115
+ private RequestClass;
116
+ private ResponseClass;
117
+ private routerHandler?;
16
118
  private maxBodySize;
17
119
  private maxUploadSize;
18
120
  private poolManager;
@@ -28,6 +130,7 @@ export declare class MoroHttpServer {
28
130
  maxBodySize?: number;
29
131
  maxUploadSize?: number;
30
132
  });
133
+ setRouterHandler(fn: (req: HttpRequest, res: HttpResponse) => boolean | Promise<boolean>): void;
31
134
  configurePerformance(config?: {
32
135
  compression?: {
33
136
  enabled: boolean;
@@ -49,18 +152,18 @@ export declare class MoroHttpServer {
49
152
  private addRoute;
50
153
  private pathToRegex;
51
154
  private handleRequest;
52
- private acquireParamObject;
53
- private releaseParamObject;
155
+ private handleRequestSlow;
156
+ private dispatchLegacyRoute;
157
+ private onRequestError;
54
158
  private forceCleanupPools;
55
159
  private acquireBuffer;
56
160
  private releaseBuffer;
57
161
  private streamLargeResponse;
58
162
  private normalizePath;
59
- private enhanceRequest;
60
- private parseCookies;
61
- private enhanceResponse;
62
- private getMimeType;
63
- private addCharsetIfNeeded;
163
+ /** @internal called by MoroServerResponse prototype methods */
164
+ getMimeType(ext: string): Promise<string>;
165
+ /** @internal called by MoroServerResponse prototype methods */
166
+ addCharsetIfNeeded(mimeType: string): string;
64
167
  private parseBody;
65
168
  /**
66
169
  * Create a streaming body parser for large payloads
@@ -98,6 +201,7 @@ export declare class MoroHttpServer {
98
201
  private static readonly HOT_ROUTE_THRESHOLD;
99
202
  private findRoute;
100
203
  private executeMiddleware;
204
+ private dispatchMiddleware;
101
205
  listen(port: number, callback?: () => void): void;
102
206
  listen(port: number, host: string, callback?: () => void): void;
103
207
  close(): Promise<void>;