@morojs/moro 1.6.4 → 1.6.6

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 (32) hide show
  1. package/dist/core/events/event-bus.js +7 -4
  2. package/dist/core/events/event-bus.js.map +1 -1
  3. package/dist/core/http/http-server.d.ts +7 -0
  4. package/dist/core/http/http-server.js +236 -114
  5. package/dist/core/http/http-server.js.map +1 -1
  6. package/dist/core/http/uws-http-server.d.ts +8 -1
  7. package/dist/core/http/uws-http-server.js +267 -153
  8. package/dist/core/http/uws-http-server.js.map +1 -1
  9. package/dist/core/logger/logger.d.ts +7 -5
  10. package/dist/core/logger/logger.js +61 -24
  11. package/dist/core/logger/logger.js.map +1 -1
  12. package/dist/core/middleware/built-in/rate-limit/core.d.ts +5 -0
  13. package/dist/core/middleware/built-in/rate-limit/core.js +16 -8
  14. package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -1
  15. package/dist/core/middleware/built-in/validation/core.js +40 -19
  16. package/dist/core/middleware/built-in/validation/core.js.map +1 -1
  17. package/dist/core/pooling/object-pool-manager.d.ts +8 -2
  18. package/dist/core/pooling/object-pool-manager.js +35 -18
  19. package/dist/core/pooling/object-pool-manager.js.map +1 -1
  20. package/dist/core/routing/path-matcher.d.ts +6 -0
  21. package/dist/core/routing/path-matcher.js +46 -7
  22. package/dist/core/routing/path-matcher.js.map +1 -1
  23. package/dist/core/routing/unified-router.d.ts +4 -0
  24. package/dist/core/routing/unified-router.js +104 -43
  25. package/dist/core/routing/unified-router.js.map +1 -1
  26. package/dist/core/utilities/hooks.d.ts +4 -0
  27. package/dist/core/utilities/hooks.js +130 -22
  28. package/dist/core/utilities/hooks.js.map +1 -1
  29. package/dist/moro.js +4 -5
  30. package/dist/moro.js.map +1 -1
  31. package/dist/types/logger.d.ts +1 -0
  32. package/package.json +1 -1
@@ -37,6 +37,22 @@ export class UWebSocketsHttpServer {
37
37
  notFound: Buffer.from('{"success":false,"error":"Not found"}'),
38
38
  serverError: Buffer.from('{"success":false,"error":"Internal server error"}'),
39
39
  };
40
+ // Pre-cached status strings for common codes (performance optimization)
41
+ static STATUS_STRINGS = new Map([
42
+ [200, '200 OK'],
43
+ [201, '201 Created'],
44
+ [204, '204 No Content'],
45
+ [301, '301 Moved Permanently'],
46
+ [302, '302 Found'],
47
+ [304, '304 Not Modified'],
48
+ [400, '400 Bad Request'],
49
+ [401, '401 Unauthorized'],
50
+ [403, '403 Forbidden'],
51
+ [404, '404 Not Found'],
52
+ [500, '500 Internal Server Error'],
53
+ [502, '502 Bad Gateway'],
54
+ [503, '503 Service Unavailable'],
55
+ ]);
40
56
  constructor(options = {}) {
41
57
  this.initPromise = this.initialize(options);
42
58
  }
@@ -91,7 +107,10 @@ export class UWebSocketsHttpServer {
91
107
  // Parse body only if there's actually a body (check content-length)
92
108
  const method = req.getMethod().toUpperCase();
93
109
  const contentLength = req.getHeader('content-length');
94
- if ((method === 'POST' || method === 'PUT' || method === 'PATCH') &&
110
+ // Optimized: Check first char for early exit (all body methods start with 'P')
111
+ const firstChar = method.charCodeAt(0);
112
+ if (firstChar === 80 && // 'P' char code
113
+ (method === 'POST' || method === 'PUT' || method === 'PATCH') &&
95
114
  contentLength &&
96
115
  parseInt(contentLength) > 0) {
97
116
  await this.readBody(res, httpReq);
@@ -128,7 +147,7 @@ export class UWebSocketsHttpServer {
128
147
  res.end('{"success":false,"error":"Internal server error"}');
129
148
  });
130
149
  }
131
- catch (writeError) {
150
+ catch {
132
151
  this.logger.error('Failed to send error response', 'ResponseError');
133
152
  }
134
153
  }
@@ -138,16 +157,36 @@ export class UWebSocketsHttpServer {
138
157
  if (httpReq) {
139
158
  const pooledQuery = httpReq._pooledQuery;
140
159
  const pooledHeaders = httpReq._pooledHeaders;
141
- if (pooledQuery && Object.keys(pooledQuery).length > 0) {
142
- this.poolManager.releaseQuery(pooledQuery);
160
+ // Only release if object has keys (avoid pool churn for empty objects)
161
+ if (pooledQuery) {
162
+ let hasKeys = false;
163
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
164
+ for (const _key in pooledQuery) {
165
+ hasKeys = true;
166
+ break;
167
+ }
168
+ if (hasKeys) {
169
+ this.poolManager.releaseQuery(pooledQuery);
170
+ }
143
171
  }
144
- if (pooledHeaders && Object.keys(pooledHeaders).length > 0) {
145
- this.poolManager.releaseHeaders(pooledHeaders);
172
+ if (pooledHeaders) {
173
+ let hasKeys = false;
174
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
175
+ for (const _key in pooledHeaders) {
176
+ hasKeys = true;
177
+ break;
178
+ }
179
+ if (hasKeys) {
180
+ this.poolManager.releaseHeaders(pooledHeaders);
181
+ }
146
182
  }
147
183
  }
184
+ if (httpRes) {
185
+ this.releaseResponse(httpRes);
186
+ }
148
187
  }
149
188
  }
150
- createMoroRequest(req, res) {
189
+ createMoroRequest(req, _res) {
151
190
  const url = req.getUrl();
152
191
  const queryString = req.getQuery();
153
192
  const methodRaw = req.getMethod();
@@ -175,8 +214,7 @@ export class UWebSocketsHttpServer {
175
214
  // Optimized header parsing with pooled object
176
215
  const headers = this.poolManager.acquireHeaders();
177
216
  req.forEach((key, value) => {
178
- const lowerKey = key.toLowerCase();
179
- headers[lowerKey] = value;
217
+ headers[key] = value;
180
218
  });
181
219
  const httpReq = {
182
220
  method,
@@ -194,162 +232,239 @@ export class UWebSocketsHttpServer {
194
232
  httpReq._pooledHeaders = headers;
195
233
  return httpReq;
196
234
  }
197
- createMoroResponse(req, res) {
198
- let headersSent = false;
199
- let statusCode = 200;
200
- const responseHeaders = {};
201
- //eslint-disable-next-line @typescript-eslint/no-this-alias
202
- const self = this;
203
- const httpRes = {
204
- statusCode,
205
- get headersSent() {
206
- return headersSent;
207
- },
208
- status(code) {
209
- statusCode = code;
210
- httpRes.statusCode = code;
211
- return httpRes;
212
- },
213
- setHeader(name, value) {
214
- responseHeaders[name.toLowerCase()] = value;
215
- return httpRes;
216
- },
217
- getHeader(name) {
218
- return responseHeaders[name.toLowerCase()];
219
- },
220
- removeHeader(name) {
221
- delete responseHeaders[name.toLowerCase()];
222
- return httpRes;
223
- },
224
- async json(data) {
225
- if (headersSent || res.aborted)
226
- return;
227
- const body = JSON.stringify(data);
228
- responseHeaders['content-type'] = 'application/json';
229
- try {
230
- res.cork(() => {
231
- res.writeStatus(`${statusCode} OK`);
232
- Object.entries(responseHeaders).forEach(([key, value]) => {
233
- res.writeHeader(key, Array.isArray(value) ? value.join(', ') : String(value));
234
- });
235
- res.end(body);
236
- });
237
- headersSent = true;
235
+ // Optimized helper to write headers
236
+ static writeHeaders(res, headers) {
237
+ // Performance: for...in is the fastest way to iterate response headers
238
+ for (const key in headers) {
239
+ const value = headers[key];
240
+ res.writeHeader(key, Array.isArray(value) ? value.join(', ') : String(value));
241
+ }
242
+ }
243
+ // Helper to get status string (cached for performance)
244
+ static getStatusString(code) {
245
+ return UWebSocketsHttpServer.STATUS_STRINGS.get(code) || `${code} OK`;
246
+ }
247
+ // Pre-define methods on prototype instead of creating new closures for each request
248
+ static ResponsePrototype = class {
249
+ headersSent = false;
250
+ statusCode = 200;
251
+ responseHeaders = {};
252
+ _res;
253
+ _req;
254
+ _logger;
255
+ init(res, req, logger) {
256
+ this.headersSent = false;
257
+ this.statusCode = 200;
258
+ // Clear headers object (reuse to avoid allocation)
259
+ for (const key in this.responseHeaders) {
260
+ delete this.responseHeaders[key];
261
+ }
262
+ this._res = res;
263
+ this._req = req;
264
+ this._logger = logger;
265
+ return this;
266
+ }
267
+ status(code) {
268
+ this.statusCode = code;
269
+ return this;
270
+ }
271
+ setHeader(name, value) {
272
+ this.responseHeaders[name.toLowerCase()] = value;
273
+ return this;
274
+ }
275
+ getHeader(name) {
276
+ return this.responseHeaders[name.toLowerCase()];
277
+ }
278
+ removeHeader(name) {
279
+ const lowerName = name.toLowerCase();
280
+ if (lowerName in this.responseHeaders) {
281
+ delete this.responseHeaders[lowerName];
282
+ }
283
+ return this;
284
+ }
285
+ async json(data) {
286
+ if (this.headersSent || this._res.aborted)
287
+ return;
288
+ // Fast-path JSON serialization for common API patterns
289
+ let body;
290
+ if (data && typeof data === 'object' && 'success' in data) {
291
+ let keyCount = 0;
292
+ let hasData = false;
293
+ let hasError = false;
294
+ let hasTotal = false;
295
+ for (const key in data) {
296
+ if (Object.prototype.hasOwnProperty.call(data, key)) {
297
+ keyCount++;
298
+ if (key === 'data')
299
+ hasData = true;
300
+ else if (key === 'error')
301
+ hasError = true;
302
+ else if (key === 'total')
303
+ hasTotal = true;
304
+ }
238
305
  }
239
- catch (error) {
240
- self.logger.error('Failed to send JSON response', 'ResponseError');
306
+ if (keyCount === 3 && hasData && hasError) {
307
+ body = `{"success":${data.success},"data":${JSON.stringify(data.data)},"error":${JSON.stringify(data.error)}}`;
241
308
  }
242
- },
243
- send(data) {
244
- if (headersSent || res.aborted)
245
- return;
246
- const body = typeof data === 'string' ? data : data.toString();
247
- try {
248
- res.cork(() => {
249
- res.writeStatus(`${statusCode} OK`);
250
- Object.entries(responseHeaders).forEach(([key, value]) => {
251
- res.writeHeader(key, Array.isArray(value) ? value.join(', ') : String(value));
252
- });
253
- res.end(body);
254
- });
255
- headersSent = true;
309
+ else if (keyCount === 3 && hasData && hasTotal) {
310
+ body = `{"success":${data.success},"data":${JSON.stringify(data.data)},"total":${data.total}}`;
256
311
  }
257
- catch (error) {
258
- self.logger.error('Failed to send response', 'ResponseError');
312
+ else if (keyCount === 2 && hasData) {
313
+ body = `{"success":${data.success},"data":${JSON.stringify(data.data)}}`;
259
314
  }
260
- },
261
- end(data, encoding, callback) {
262
- if (headersSent || res.aborted) {
263
- if (typeof callback === 'function')
264
- callback();
265
- return httpRes;
315
+ else if (keyCount === 2 && hasError) {
316
+ body = `{"success":${data.success},"error":${JSON.stringify(data.error)}}`;
266
317
  }
267
- try {
268
- res.cork(() => {
269
- res.writeStatus(`${statusCode} OK`);
270
- Object.entries(responseHeaders).forEach(([key, value]) => {
271
- res.writeHeader(key, Array.isArray(value) ? value.join(', ') : String(value));
272
- });
273
- res.end(data || '');
274
- });
275
- headersSent = true;
276
- if (typeof callback === 'function')
277
- callback();
318
+ else {
319
+ body = JSON.stringify(data);
278
320
  }
279
- catch (error) {
280
- self.logger.error('Failed to end response', 'ResponseError');
281
- if (typeof callback === 'function')
282
- callback();
321
+ }
322
+ else {
323
+ body = JSON.stringify(data);
324
+ }
325
+ if (!('content-type' in this.responseHeaders)) {
326
+ this.responseHeaders['content-type'] = 'application/json';
327
+ }
328
+ try {
329
+ this._res.cork(() => {
330
+ this._res.writeStatus(UWebSocketsHttpServer.getStatusString(this.statusCode));
331
+ UWebSocketsHttpServer.writeHeaders(this._res, this.responseHeaders);
332
+ this._res.end(body);
333
+ });
334
+ this.headersSent = true;
335
+ }
336
+ catch {
337
+ this._logger.error('Failed to send JSON response', 'ResponseError');
338
+ }
339
+ }
340
+ send(data) {
341
+ if (this.headersSent || this._res.aborted)
342
+ return;
343
+ const body = typeof data === 'string' ? data : data.toString();
344
+ try {
345
+ this._res.cork(() => {
346
+ this._res.writeStatus(UWebSocketsHttpServer.getStatusString(this.statusCode));
347
+ UWebSocketsHttpServer.writeHeaders(this._res, this.responseHeaders);
348
+ this._res.end(body);
349
+ });
350
+ this.headersSent = true;
351
+ }
352
+ catch {
353
+ this._logger.error('Failed to send response', 'ResponseError');
354
+ }
355
+ }
356
+ end(data, encoding, callback) {
357
+ if (this.headersSent || this._res.aborted) {
358
+ if (typeof callback === 'function')
359
+ callback();
360
+ return this;
361
+ }
362
+ try {
363
+ this._res.cork(() => {
364
+ this._res.writeStatus(UWebSocketsHttpServer.getStatusString(this.statusCode));
365
+ UWebSocketsHttpServer.writeHeaders(this._res, this.responseHeaders);
366
+ this._res.end(data || '');
367
+ });
368
+ this.headersSent = true;
369
+ if (typeof callback === 'function')
370
+ callback();
371
+ }
372
+ catch {
373
+ this._logger.error('Failed to end response', 'ResponseError');
374
+ if (typeof callback === 'function')
375
+ callback();
376
+ }
377
+ return this;
378
+ }
379
+ redirect(url, code) {
380
+ if (this.headersSent || this._res.aborted)
381
+ return;
382
+ const redirectCode = code || 302;
383
+ this.statusCode = redirectCode;
384
+ try {
385
+ this._res.cork(() => {
386
+ this._res.writeStatus(UWebSocketsHttpServer.getStatusString(redirectCode));
387
+ this._res.writeHeader('Location', url);
388
+ UWebSocketsHttpServer.writeHeaders(this._res, this.responseHeaders);
389
+ this._res.end();
390
+ });
391
+ this.headersSent = true;
392
+ }
393
+ catch {
394
+ this._logger.error('Failed to send redirect', 'ResponseError');
395
+ }
396
+ }
397
+ // EventEmitter stubs for middleware compatibility
398
+ on(_event, _callback) {
399
+ return this;
400
+ }
401
+ once(_event, _callback) {
402
+ return this;
403
+ }
404
+ emit(_event, ..._args) {
405
+ return true;
406
+ }
407
+ removeListener(_event, _callback) {
408
+ return this;
409
+ }
410
+ cookie(name, value, options) {
411
+ // Optimized: Build cookie string with array join for better performance
412
+ const parts = [name, '=', value];
413
+ if (options) {
414
+ if (options.maxAge) {
415
+ parts.push('; Max-Age=', String(options.maxAge));
283
416
  }
284
- return httpRes;
285
- },
286
- redirect(url, code) {
287
- if (headersSent || res.aborted)
288
- return;
289
- const redirectCode = code || 302;
290
- statusCode = redirectCode;
291
- try {
292
- res.cork(() => {
293
- res.writeStatus(`${redirectCode} Found`);
294
- res.writeHeader('Location', url);
295
- res.end();
296
- });
297
- headersSent = true;
417
+ if (options.domain) {
418
+ parts.push('; Domain=', options.domain);
298
419
  }
299
- catch (error) {
300
- self.logger.error('Failed to send redirect', 'ResponseError');
420
+ if (options.path) {
421
+ parts.push('; Path=', options.path);
301
422
  }
302
- },
303
- // EventEmitter compatibility - stub implementations for middleware
304
- on(event, callback) {
305
- // uWebSockets doesn't use events like Node.js, but middleware might try to listen
306
- // Only implement 'finish' and 'close' events as stubs
307
- return httpRes;
308
- },
309
- once(event, callback) {
310
- return httpRes;
311
- },
312
- emit(event, ...args) {
313
- return true;
314
- },
315
- removeListener(event, callback) {
316
- return httpRes;
317
- },
318
- cookie(name, value, options) {
319
- let cookie = `${name}=${value}`;
320
- if (options) {
321
- if (options.maxAge)
322
- cookie += `; Max-Age=${options.maxAge}`;
323
- if (options.domain)
324
- cookie += `; Domain=${options.domain}`;
325
- if (options.path)
326
- cookie += `; Path=${options.path}`;
327
- if (options.secure)
328
- cookie += '; Secure';
329
- if (options.httpOnly)
330
- cookie += '; HttpOnly';
331
- if (options.sameSite)
332
- cookie += `; SameSite=${options.sameSite}`;
423
+ if (options.secure) {
424
+ parts.push('; Secure');
333
425
  }
334
- const existing = responseHeaders['set-cookie'];
335
- if (existing) {
336
- if (Array.isArray(existing)) {
337
- responseHeaders['set-cookie'] = [...existing, cookie];
338
- }
339
- else {
340
- responseHeaders['set-cookie'] = [existing, cookie];
341
- }
426
+ if (options.httpOnly) {
427
+ parts.push('; HttpOnly');
428
+ }
429
+ if (options.sameSite) {
430
+ parts.push('; SameSite=', options.sameSite);
431
+ }
432
+ }
433
+ const cookie = parts.join('');
434
+ const lowerKey = 'set-cookie';
435
+ const existing = this.responseHeaders[lowerKey];
436
+ if (existing) {
437
+ if (Array.isArray(existing)) {
438
+ existing.push(cookie);
342
439
  }
343
440
  else {
344
- responseHeaders['set-cookie'] = cookie;
441
+ this.responseHeaders[lowerKey] = [existing, cookie];
345
442
  }
346
- return httpRes;
347
- },
348
- };
443
+ }
444
+ else {
445
+ this.responseHeaders[lowerKey] = cookie;
446
+ }
447
+ return this;
448
+ }
449
+ };
450
+ // Object pool for response objects (further optimization)
451
+ responsePool = [];
452
+ MAX_RESPONSE_POOL_SIZE = 100;
453
+ createMoroResponse(req, res) {
454
+ const httpRes = this.responsePool.length > 0
455
+ ? this.responsePool.pop()
456
+ : new UWebSocketsHttpServer.ResponsePrototype();
457
+ httpRes.init(res, req, this.logger);
349
458
  return httpRes;
350
459
  }
460
+ releaseResponse(httpRes) {
461
+ // Return response object to pool for reuse
462
+ if (this.responsePool.length < this.MAX_RESPONSE_POOL_SIZE) {
463
+ this.responsePool.push(httpRes);
464
+ }
465
+ }
351
466
  async readBody(res, httpReq) {
352
- return new Promise((resolve, reject) => {
467
+ return new Promise(resolve => {
353
468
  let buffer;
354
469
  res.onData((chunk, isLast) => {
355
470
  const chunkBuffer = Buffer.from(chunk);
@@ -378,7 +493,7 @@ export class UWebSocketsHttpServer {
378
493
  }
379
494
  resolve();
380
495
  }
381
- catch (error) {
496
+ catch {
382
497
  this.logger.error('Failed to parse request body', 'BodyParseError');
383
498
  httpReq.body = null;
384
499
  resolve();
@@ -435,7 +550,7 @@ export class UWebSocketsHttpServer {
435
550
  setHookManager(hookManager) {
436
551
  this.hookManager = hookManager;
437
552
  }
438
- configurePerformance(config) {
553
+ configurePerformance(_config) {
439
554
  // uWebSockets is already highly optimized
440
555
  // This method exists for API compatibility
441
556
  this.logger.debug('Performance configuration noted (uWebSockets is pre-optimized)', 'Config');
@@ -454,7 +569,6 @@ export class UWebSocketsHttpServer {
454
569
  this.host = host;
455
570
  // Check if we're in a cluster environment
456
571
  const isClusterWorker = cluster.isWorker;
457
- const isClusterPrimary = cluster.isPrimary;
458
572
  // ALWAYS use LIBUS_LISTEN_EXCLUSIVE_PORT when clustering
459
573
  // This enables SO_REUSEPORT at the OS level, allowing multiple processes to bind to the same port
460
574
  // NOTE: uWebSockets.js API doesn't have listen(host, port, options, cb)
@@ -502,7 +616,7 @@ export class UWebSocketsHttpServer {
502
616
  if (callback)
503
617
  callback();
504
618
  }
505
- catch (error) {
619
+ catch {
506
620
  this.logger.error('Error closing server', 'Close');
507
621
  if (callback)
508
622
  callback();
@@ -1 +1 @@
1
- {"version":3,"file":"uws-http-server.js","sourceRoot":"","sources":["../../../src/core/http/uws-http-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uws-http-server.js","sourceRoot":"","sources":["../../../src/core/http/uws-http-server.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export declare class MoroLogger implements Logger {
18
18
  private cachedTimestamp;
19
19
  private lastTimestamp;
20
20
  private timestampCacheInterval;
21
+ private metricsEnabled;
21
22
  private static readonly ENTRY_POOL;
22
23
  private static readonly MAX_POOL_SIZE;
23
24
  private static poolIndex;
@@ -43,11 +44,12 @@ export declare class MoroLogger implements Logger {
43
44
  private static resetStringBuilder;
44
45
  private static appendToBuilder;
45
46
  private static buildString;
46
- debug(message: string, context?: string, metadata?: Record<string, any>): void;
47
- info(message: string, context?: string, metadata?: Record<string, any>): void;
48
- warn(message: string, context?: string, metadata?: Record<string, any>): void;
49
- error(message: string | Error, context?: string, metadata?: Record<string, any>): void;
50
- fatal(message: string | Error, context?: string, metadata?: Record<string, any>): void;
47
+ debug: (message: string, context?: string, metadata?: Record<string, any>) => void;
48
+ info: (message: string, context?: string, metadata?: Record<string, any>) => void;
49
+ warn: (message: string, context?: string, metadata?: Record<string, any>) => void;
50
+ error: (message: string | Error, context?: string, metadata?: Record<string, any>) => void;
51
+ fatal: (message: string | Error, context?: string, metadata?: Record<string, any>) => void;
52
+ private createLogMethod;
51
53
  time(label: string): void;
52
54
  timeEnd(label: string, context?: string, metadata?: Record<string, any>): void;
53
55
  child(context: string, metadata?: Record<string, any>): Logger;