@morojs/moro 1.6.0 → 1.6.2

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 (68) hide show
  1. package/dist/core/config/config-sources.js +4 -0
  2. package/dist/core/config/config-sources.js.map +1 -1
  3. package/dist/core/config/config-validator.js +3 -0
  4. package/dist/core/config/config-validator.js.map +1 -1
  5. package/dist/core/config/file-loader.js +3 -1
  6. package/dist/core/config/file-loader.js.map +1 -1
  7. package/dist/core/config/schema.js +4 -1
  8. package/dist/core/config/schema.js.map +1 -1
  9. package/dist/core/events/event-bus.js +1 -1
  10. package/dist/core/events/event-bus.js.map +1 -1
  11. package/dist/core/framework.d.ts +1 -1
  12. package/dist/core/framework.js +13 -7
  13. package/dist/core/framework.js.map +1 -1
  14. package/dist/core/http/http-server.d.ts +55 -15
  15. package/dist/core/http/http-server.js +70 -146
  16. package/dist/core/http/http-server.js.map +1 -1
  17. package/dist/core/http/index.d.ts +1 -1
  18. package/dist/core/http/index.js +1 -1
  19. package/dist/core/http/index.js.map +1 -1
  20. package/dist/core/http/uws-http-server.d.ts +4 -22
  21. package/dist/core/http/uws-http-server.js +43 -208
  22. package/dist/core/http/uws-http-server.js.map +1 -1
  23. package/dist/core/networking/adapters/uws-adapter.d.ts +1 -1
  24. package/dist/core/networking/adapters/uws-adapter.js +1 -1
  25. package/dist/core/pooling/object-pool-manager.d.ts +140 -0
  26. package/dist/core/pooling/object-pool-manager.js +502 -0
  27. package/dist/core/pooling/object-pool-manager.js.map +1 -0
  28. package/dist/core/routing/app-integration.d.ts +12 -10
  29. package/dist/core/routing/app-integration.js +43 -74
  30. package/dist/core/routing/app-integration.js.map +1 -1
  31. package/dist/core/routing/index.d.ts +15 -29
  32. package/dist/core/routing/index.js +43 -390
  33. package/dist/core/routing/index.js.map +1 -1
  34. package/dist/core/routing/path-matcher.d.ts +67 -0
  35. package/dist/core/routing/path-matcher.js +182 -0
  36. package/dist/core/routing/path-matcher.js.map +1 -0
  37. package/dist/core/{http → routing}/router.d.ts +21 -9
  38. package/dist/core/routing/router.js +68 -0
  39. package/dist/core/routing/router.js.map +1 -0
  40. package/dist/core/routing/unified-router.d.ts +148 -0
  41. package/dist/core/routing/unified-router.js +684 -0
  42. package/dist/core/routing/unified-router.js.map +1 -0
  43. package/dist/moro.d.ts +10 -7
  44. package/dist/moro.js +90 -41
  45. package/dist/moro.js.map +1 -1
  46. package/dist/types/config.d.ts +3 -0
  47. package/package.json +1 -1
  48. package/src/core/config/config-sources.ts +4 -0
  49. package/src/core/config/config-validator.ts +3 -0
  50. package/src/core/config/file-loader.ts +4 -1
  51. package/src/core/config/schema.ts +4 -1
  52. package/src/core/events/event-bus.ts +1 -1
  53. package/src/core/framework.ts +14 -9
  54. package/src/core/http/http-server.ts +76 -161
  55. package/src/core/http/index.ts +1 -1
  56. package/src/core/http/uws-http-server.ts +43 -246
  57. package/src/core/networking/adapters/uws-adapter.ts +1 -1
  58. package/src/core/pooling/object-pool-manager.ts +630 -0
  59. package/src/core/routing/app-integration.ts +57 -109
  60. package/src/core/routing/index.ts +62 -473
  61. package/src/core/routing/path-matcher.ts +222 -0
  62. package/src/core/routing/router.ts +97 -0
  63. package/src/core/routing/unified-router.ts +870 -0
  64. package/src/moro.ts +107 -57
  65. package/src/types/config.ts +3 -0
  66. package/dist/core/http/router.js +0 -183
  67. package/dist/core/http/router.js.map +0 -1
  68. package/src/core/http/router.ts +0 -230
@@ -1,7 +1,8 @@
1
1
  // uWebSockets.js HTTP Server Implementation for Moro Framework
2
- // Provides ultra-high-performance HTTP and WebSocket server using uWebSockets.js
2
+ // Provides high-performance HTTP and WebSocket server using uWebSockets.js
3
3
  import cluster from 'cluster';
4
4
  import { createFrameworkLogger } from '../logger/index.js';
5
+ import { ObjectPoolManager } from '../pooling/object-pool-manager.js';
5
6
  /**
6
7
  * uWebSockets HTTP Server Adapter
7
8
  * Bridges uWebSockets.js with Moro's HTTP abstractions
@@ -10,22 +11,17 @@ export class UWebSocketsHttpServer {
10
11
  app; // uWebSockets app instance
11
12
  uws; // uWebSockets module reference (stored to avoid re-importing)
12
13
  listenSocket; // uWebSockets listen socket
13
- routes = [];
14
14
  globalMiddleware = [];
15
15
  logger = createFrameworkLogger('UWSHttpServer');
16
16
  hookManager;
17
17
  requestCounter = 0;
18
+ requestTrackingEnabled = true; // Generate request IDs
18
19
  isListening = false;
19
20
  port;
20
21
  host;
21
22
  initPromise;
22
- // Route caching for performance
23
- staticRoutes = new Map();
24
- dynamicRoutes = [];
25
- // Performance optimizations - object pooling
26
- paramObjectPool = [];
27
- queryObjectPool = [];
28
- maxPoolSize = 100;
23
+ // Performance optimizations - shared object pooling
24
+ poolManager = ObjectPoolManager.getInstance();
29
25
  // String interning for common values
30
26
  static INTERNED_METHODS = new Map([
31
27
  ['get', 'GET'],
@@ -77,103 +73,21 @@ export class UWebSocketsHttpServer {
77
73
  }
78
74
  }
79
75
  setupRouteHandlers() {
80
- // Handle all HTTP methods through catchall for proper routing
76
+ // Handle all HTTP methods through catchall
77
+ // All requests go through middleware chain (includes UnifiedRouter)
81
78
  this.app.any('/*', (res, req) => {
82
- // Try fast synchronous path first
83
- const method = req.getMethod().toUpperCase();
84
- const path = req.getUrl();
85
- // Fast path: No body, no global middleware
86
- if (this.globalMiddleware.length === 0 && method === 'GET') {
87
- const route = this.findRoute(method, path);
88
- if (route && (!route.middleware || route.middleware.length === 0)) {
89
- this.handleRequestSync(req, res, route, method, path);
90
- return;
91
- }
92
- }
93
- // Slow path: Has middleware or body or other complexity
94
79
  this.handleRequest(req, res);
95
80
  });
96
81
  }
97
- // Fast synchronous handler for simple GET requests
98
- handleRequestSync(req, res, route, method, path) {
99
- this.requestCounter++;
100
- let httpReq;
101
- try {
102
- httpReq = this.createMoroRequest(req, res);
103
- const httpRes = this.createMoroResponse(req, res);
104
- // Extract params if needed
105
- if (route.paramNames.length > 0) {
106
- const matches = path.match(route.pattern);
107
- if (matches) {
108
- httpReq.params = this.acquireParamObject();
109
- route.paramNames.forEach((name, index) => {
110
- httpReq.params[name] = matches[index + 1];
111
- });
112
- httpReq._pooledParams = httpReq.params;
113
- }
114
- }
115
- // Execute handler synchronously
116
- const result = route.handler(httpReq, httpRes);
117
- // Handle return value
118
- if (result && typeof result.then === 'function') {
119
- // Oops, handler is async - handle it
120
- result
121
- .then((data) => {
122
- if (data !== undefined && data !== null && !httpRes.headersSent) {
123
- httpRes.json(data);
124
- }
125
- })
126
- .catch(() => {
127
- if (!res.aborted) {
128
- res.cork(() => {
129
- res.writeStatus('500 Internal Server Error');
130
- res.end('{"success":false,"error":"Internal server error"}');
131
- });
132
- }
133
- });
134
- }
135
- else if (result !== undefined && result !== null && !httpRes.headersSent) {
136
- httpRes.json(result);
137
- }
138
- }
139
- finally {
140
- const pooledParams = httpReq?._pooledParams;
141
- if (pooledParams)
142
- this.releaseParamObject(pooledParams);
143
- const pooledQuery = httpReq?._pooledQuery;
144
- if (pooledQuery)
145
- this.releaseQueryObject(pooledQuery);
146
- }
147
- }
148
- // Object pooling methods for performance
149
- acquireParamObject() {
150
- return this.paramObjectPool.pop() || {};
151
- }
152
- releaseParamObject(obj) {
153
- if (this.paramObjectPool.length < this.maxPoolSize) {
154
- for (const key in obj)
155
- delete obj[key];
156
- this.paramObjectPool.push(obj);
157
- }
158
- }
159
- acquireQueryObject() {
160
- return this.queryObjectPool.pop() || {};
161
- }
162
- releaseQueryObject(obj) {
163
- if (this.queryObjectPool.length < this.maxPoolSize) {
164
- for (const key in obj)
165
- delete obj[key];
166
- this.queryObjectPool.push(obj);
167
- }
168
- }
169
82
  async handleRequest(req, res) {
170
83
  this.requestCounter++;
171
84
  // Declare outside try block for cleanup in finally
172
85
  let httpReq;
86
+ let httpRes;
173
87
  try {
174
88
  // Create Moro-compatible request object
175
89
  httpReq = this.createMoroRequest(req, res);
176
- const httpRes = this.createMoroResponse(req, res);
90
+ httpRes = this.createMoroResponse(req, res);
177
91
  // Parse body only if there's actually a body (check content-length)
178
92
  const method = req.getMethod().toUpperCase();
179
93
  const contentLength = req.getHeader('content-length');
@@ -189,41 +103,18 @@ export class UWebSocketsHttpServer {
189
103
  response: httpRes,
190
104
  });
191
105
  }
192
- // Find route first (before middleware)
193
- const route = this.findRoute(httpReq.method, httpReq.path);
194
- if (!route) {
195
- // 404 Not Found - fast path
106
+ // Execute middleware chain (includes UnifiedRouter for routing)
107
+ // The UnifiedRouter will handle route matching, params extraction, and handler execution
108
+ if (this.globalMiddleware.length > 0) {
109
+ await this.executeMiddleware(this.globalMiddleware, httpReq, httpRes);
110
+ }
111
+ else {
112
+ // No middleware - send 404 (router middleware should be present)
196
113
  if (!httpRes.headersSent) {
197
114
  httpRes.statusCode = 404;
198
115
  httpRes.setHeader('Content-Type', 'application/json');
199
116
  httpRes.end('{"success":false,"error":"Not found"}');
200
117
  }
201
- return;
202
- }
203
- // Extract path parameters early - use pooled object
204
- const matches = httpReq.path.match(route.pattern);
205
- if (matches) {
206
- httpReq.params = this.acquireParamObject();
207
- route.paramNames.forEach((name, index) => {
208
- httpReq.params[name] = matches[index + 1];
209
- });
210
- // Store for cleanup
211
- httpReq._pooledParams = httpReq.params;
212
- }
213
- // Execute ALL middleware in one pass (global + route)
214
- if (this.globalMiddleware.length > 0 || (route.middleware && route.middleware.length > 0)) {
215
- const allMiddleware = route.middleware && route.middleware.length > 0
216
- ? [...this.globalMiddleware, ...route.middleware]
217
- : this.globalMiddleware;
218
- await this.executeMiddleware(allMiddleware, httpReq, httpRes);
219
- if (httpRes.headersSent)
220
- return;
221
- }
222
- // Execute route handler
223
- const result = await route.handler(httpReq, httpRes);
224
- // If handler returns data and response hasn't been sent, send it
225
- if (result !== undefined && result !== null && !httpRes.headersSent) {
226
- httpRes.json(result);
227
118
  }
228
119
  }
229
120
  catch (error) {
@@ -243,14 +134,16 @@ export class UWebSocketsHttpServer {
243
134
  }
244
135
  }
245
136
  finally {
246
- // Cleanup: Release pooled objects back to pool for reuse
247
- const pooledParams = httpReq._pooledParams;
248
- if (pooledParams) {
249
- this.releaseParamObject(pooledParams);
250
- }
251
- const pooledQuery = httpReq._pooledQuery;
252
- if (pooledQuery) {
253
- this.releaseQueryObject(pooledQuery);
137
+ // CRITICAL: Release pooled objects back to pool
138
+ if (httpReq) {
139
+ const pooledQuery = httpReq._pooledQuery;
140
+ const pooledHeaders = httpReq._pooledHeaders;
141
+ if (pooledQuery && Object.keys(pooledQuery).length > 0) {
142
+ this.poolManager.releaseQuery(pooledQuery);
143
+ }
144
+ if (pooledHeaders && Object.keys(pooledHeaders).length > 0) {
145
+ this.poolManager.releaseHeaders(pooledHeaders);
146
+ }
254
147
  }
255
148
  }
256
149
  }
@@ -260,11 +153,11 @@ export class UWebSocketsHttpServer {
260
153
  const methodRaw = req.getMethod();
261
154
  // Use interned method string if available
262
155
  const method = UWebSocketsHttpServer.INTERNED_METHODS.get(methodRaw) || methodRaw.toUpperCase();
263
- // Lazy query parsing - use pooled object
156
+ // Optimized query parsing with pooled object
264
157
  let queryParams;
265
158
  if (queryString) {
266
- queryParams = this.acquireQueryObject();
267
- // Fast query parsing without URLSearchParams overhead
159
+ queryParams = this.poolManager.acquireQuery();
160
+ // Query parsing without URLSearchParams overhead
268
161
  const pairs = queryString.split('&');
269
162
  for (let i = 0; i < pairs.length; i++) {
270
163
  const pair = pairs[i];
@@ -276,8 +169,11 @@ export class UWebSocketsHttpServer {
276
169
  }
277
170
  }
278
171
  }
279
- // Lazy header parsing - only parse headers that exist
280
- const headers = {};
172
+ else {
173
+ queryParams = {};
174
+ }
175
+ // Optimized header parsing with pooled object
176
+ const headers = this.poolManager.acquireHeaders();
281
177
  req.forEach((key, value) => {
282
178
  const lowerKey = key.toLowerCase();
283
179
  headers[lowerKey] = value;
@@ -286,15 +182,16 @@ export class UWebSocketsHttpServer {
286
182
  method,
287
183
  path: url,
288
184
  url: url,
289
- query: queryParams || {},
185
+ query: queryParams,
290
186
  params: {}, // Will be filled by route matching
291
187
  headers,
292
188
  body: null,
293
189
  ip: '', // Lazy - only compute if accessed
294
- requestId: '', // Lazy - only generate if accessed
190
+ requestId: this.requestTrackingEnabled ? this.poolManager.generateRequestId() : '', // ID generation (if enabled)
295
191
  };
296
- // Store original query object for cleanup
192
+ // Store pooled objects for cleanup
297
193
  httpReq._pooledQuery = queryParams;
194
+ httpReq._pooledHeaders = headers;
298
195
  return httpReq;
299
196
  }
300
197
  createMoroResponse(req, res) {
@@ -525,78 +422,16 @@ export class UWebSocketsHttpServer {
525
422
  });
526
423
  }
527
424
  }
528
- findRoute(method, path) {
529
- // Fast path: static route lookup
530
- const staticKey = `${method}:${path}`;
531
- const staticRoute = this.staticRoutes.get(staticKey);
532
- if (staticRoute)
533
- return staticRoute;
534
- // Dynamic route matching
535
- for (const route of this.dynamicRoutes) {
536
- if (route.method === method && route.pattern.test(path)) {
537
- return route;
538
- }
539
- }
540
- return null;
541
- }
542
425
  // Public API - matches MoroHttpServer interface
543
426
  use(middleware) {
544
427
  this.globalMiddleware.push(middleware);
545
428
  }
546
- get(path, handler, middleware) {
547
- this.addRoute('GET', path, handler, middleware);
548
- }
549
- post(path, handler, middleware) {
550
- this.addRoute('POST', path, handler, middleware);
551
- }
552
- put(path, handler, middleware) {
553
- this.addRoute('PUT', path, handler, middleware);
554
- }
555
- delete(path, handler, middleware) {
556
- this.addRoute('DELETE', path, handler, middleware);
557
- }
558
- patch(path, handler, middleware) {
559
- this.addRoute('PATCH', path, handler, middleware);
560
- }
561
- options(path, handler, middleware) {
562
- this.addRoute('OPTIONS', path, handler, middleware);
563
- }
564
- head(path, handler, middleware) {
565
- this.addRoute('HEAD', path, handler, middleware);
566
- }
567
- addRoute(method, path, handler, middleware) {
568
- const { pattern, paramNames } = this.pathToRegex(path);
569
- const route = {
570
- method,
571
- path,
572
- pattern,
573
- paramNames,
574
- handler,
575
- middleware: middleware || [],
576
- };
577
- this.routes.push(route);
578
- // Optimize route lookup
579
- if (paramNames.length === 0) {
580
- // Static route
581
- this.staticRoutes.set(`${method}:${path}`, route);
582
- }
583
- else {
584
- // Dynamic route
585
- this.dynamicRoutes.push(route);
586
- }
587
- this.logger.debug(`Route registered: ${method} ${path}`, 'RouteRegistration');
588
- }
589
- pathToRegex(path) {
590
- const paramNames = [];
591
- const regexPath = path.replace(/\//g, '\\/').replace(/:([^/]+)/g, (match, paramName) => {
592
- paramNames.push(paramName);
593
- return '([^/]+)';
594
- });
595
- return {
596
- pattern: new RegExp(`^${regexPath}$`),
597
- paramNames,
598
- };
429
+ // Configure request tracking (ID generation)
430
+ setRequestTracking(enabled) {
431
+ this.requestTrackingEnabled = enabled;
599
432
  }
433
+ // Note: Route registration methods (get, post, etc.) are not used by uWebSockets adapter
434
+ // All routing is handled by UnifiedRouter through the middleware chain
600
435
  setHookManager(hookManager) {
601
436
  this.hookManager = hookManager;
602
437
  }
@@ -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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"}
@@ -1,7 +1,7 @@
1
1
  import { WebSocketAdapter, WebSocketAdapterOptions, WebSocketNamespace } from '../websocket-adapter.js';
2
2
  /**
3
3
  * uWebSockets adapter implementation
4
- * Provides ultra-high-performance WebSocket support using uWebSockets.js
4
+ * Provides high-performance WebSocket support using uWebSockets.js
5
5
  */
6
6
  export declare class UWebSocketsAdapter implements WebSocketAdapter {
7
7
  private app;
@@ -5,7 +5,7 @@ import { resolveUserPackage } from '../../utilities/package-utils.js';
5
5
  import { createFrameworkLogger } from '../../logger/index.js';
6
6
  /**
7
7
  * uWebSockets adapter implementation
8
- * Provides ultra-high-performance WebSocket support using uWebSockets.js
8
+ * Provides high-performance WebSocket support using uWebSockets.js
9
9
  */
10
10
  export class UWebSocketsAdapter {
11
11
  app; // uWebSockets app instance
@@ -0,0 +1,140 @@
1
+ /**
2
+ * ObjectPoolManager - Singleton for managing all object pools
3
+ * Consolidates pools from:
4
+ * - MoroHttpServer (paramObjectPool, bufferPool)
5
+ * - Router (paramObjectPool)
6
+ * - Various route caches
7
+ */
8
+ export declare class ObjectPoolManager {
9
+ private static instance;
10
+ private paramPool;
11
+ private headerPool;
12
+ private queryPool;
13
+ private bufferPools;
14
+ private readonly bufferSizes;
15
+ private routeCache;
16
+ private responseCache;
17
+ private performanceStats;
18
+ private poolUsageHistory;
19
+ private adaptiveMode;
20
+ private constructor();
21
+ /**
22
+ * Pre-warm pools with initial objects for better startup performance
23
+ */
24
+ private preWarmPools;
25
+ /**
26
+ * Get optimal pool size based on buffer size and usage patterns
27
+ */
28
+ private getOptimalPoolSize;
29
+ static getInstance(): ObjectPoolManager;
30
+ /**
31
+ * Reset the singleton (useful for testing)
32
+ */
33
+ static reset(): void;
34
+ acquireParams(): Record<string, string>;
35
+ releaseParams(obj: Record<string, string>): void;
36
+ acquireHeaders(): Record<string, string>;
37
+ releaseHeaders(obj: Record<string, string>): void;
38
+ acquireQuery(): Record<string, string>;
39
+ releaseQuery(obj: Record<string, string>): void;
40
+ generateRequestId(): string;
41
+ acquireBuffer(size: number): Buffer;
42
+ releaseBuffer(buffer: Buffer): void;
43
+ getCachedRoute(key: string): any;
44
+ cacheRoute(key: string, route: any): void;
45
+ hasCachedRoute(key: string): boolean;
46
+ clearRouteCache(): void;
47
+ getCachedResponse(key: string): {
48
+ buffer: Buffer;
49
+ headers: Record<string, string>;
50
+ statusCode: number;
51
+ } | undefined;
52
+ cacheResponse(key: string, buffer: Buffer, headers: Record<string, string>, statusCode?: number): void;
53
+ hasCachedResponse(key: string): boolean;
54
+ clearResponseCache(): void;
55
+ /**
56
+ * Adaptively adjust pool sizes based on usage patterns
57
+ */
58
+ private adjustPoolSizes;
59
+ /**
60
+ * Enable or disable adaptive pool sizing
61
+ */
62
+ setAdaptiveMode(enabled: boolean): void;
63
+ /**
64
+ * Clear all pools and caches
65
+ */
66
+ clearAll(): void;
67
+ /**
68
+ * Force garbage collection on pooled objects
69
+ */
70
+ forceCleanup(): void;
71
+ /**
72
+ * Get comprehensive performance statistics
73
+ */
74
+ getStats(): {
75
+ paramPool: {
76
+ poolSize: number;
77
+ maxSize: number;
78
+ acquireCount: number;
79
+ releaseCount: number;
80
+ createCount: number;
81
+ utilization: number;
82
+ };
83
+ headerPool: {
84
+ poolSize: number;
85
+ maxSize: number;
86
+ acquireCount: number;
87
+ releaseCount: number;
88
+ createCount: number;
89
+ utilization: number;
90
+ };
91
+ queryPool: {
92
+ poolSize: number;
93
+ maxSize: number;
94
+ acquireCount: number;
95
+ releaseCount: number;
96
+ createCount: number;
97
+ utilization: number;
98
+ };
99
+ bufferPools: Record<string, any>;
100
+ routeCache: {
101
+ size: number;
102
+ maxSize: number;
103
+ hits: number;
104
+ misses: number;
105
+ hitRate: number;
106
+ };
107
+ responseCache: {
108
+ size: number;
109
+ maxSize: number;
110
+ hits: number;
111
+ misses: number;
112
+ hitRate: number;
113
+ };
114
+ totalMemory: {
115
+ params: number;
116
+ headers: number;
117
+ queries: number;
118
+ buffers: number;
119
+ routes: number;
120
+ responses: number;
121
+ };
122
+ };
123
+ /**
124
+ * Get performance summary for monitoring
125
+ */
126
+ getPerformanceSummary(): {
127
+ routeCacheHitRate: number;
128
+ responseCacheHitRate: number;
129
+ paramPoolUtilization: number;
130
+ totalMemoryKB: number;
131
+ };
132
+ /**
133
+ * Log performance statistics
134
+ */
135
+ logStats(): void;
136
+ }
137
+ /**
138
+ * Convenience function to get the singleton instance
139
+ */
140
+ export declare function getPoolManager(): ObjectPoolManager;