@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.
- package/dist/core/config/config-sources.js +4 -0
- package/dist/core/config/config-sources.js.map +1 -1
- package/dist/core/config/config-validator.js +3 -0
- package/dist/core/config/config-validator.js.map +1 -1
- package/dist/core/config/file-loader.js +3 -1
- package/dist/core/config/file-loader.js.map +1 -1
- package/dist/core/config/schema.js +4 -1
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/events/event-bus.js +1 -1
- package/dist/core/events/event-bus.js.map +1 -1
- package/dist/core/framework.d.ts +1 -1
- package/dist/core/framework.js +13 -7
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +55 -15
- package/dist/core/http/http-server.js +70 -146
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/index.d.ts +1 -1
- package/dist/core/http/index.js +1 -1
- package/dist/core/http/index.js.map +1 -1
- package/dist/core/http/uws-http-server.d.ts +4 -22
- package/dist/core/http/uws-http-server.js +43 -208
- package/dist/core/http/uws-http-server.js.map +1 -1
- package/dist/core/networking/adapters/uws-adapter.d.ts +1 -1
- package/dist/core/networking/adapters/uws-adapter.js +1 -1
- package/dist/core/pooling/object-pool-manager.d.ts +140 -0
- package/dist/core/pooling/object-pool-manager.js +502 -0
- package/dist/core/pooling/object-pool-manager.js.map +1 -0
- package/dist/core/routing/app-integration.d.ts +12 -10
- package/dist/core/routing/app-integration.js +43 -74
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/index.d.ts +15 -29
- package/dist/core/routing/index.js +43 -390
- package/dist/core/routing/index.js.map +1 -1
- package/dist/core/routing/path-matcher.d.ts +67 -0
- package/dist/core/routing/path-matcher.js +182 -0
- package/dist/core/routing/path-matcher.js.map +1 -0
- package/dist/core/{http → routing}/router.d.ts +21 -9
- package/dist/core/routing/router.js +68 -0
- package/dist/core/routing/router.js.map +1 -0
- package/dist/core/routing/unified-router.d.ts +148 -0
- package/dist/core/routing/unified-router.js +684 -0
- package/dist/core/routing/unified-router.js.map +1 -0
- package/dist/moro.d.ts +10 -7
- package/dist/moro.js +90 -41
- package/dist/moro.js.map +1 -1
- package/dist/types/config.d.ts +3 -0
- package/package.json +1 -1
- package/src/core/config/config-sources.ts +4 -0
- package/src/core/config/config-validator.ts +3 -0
- package/src/core/config/file-loader.ts +4 -1
- package/src/core/config/schema.ts +4 -1
- package/src/core/events/event-bus.ts +1 -1
- package/src/core/framework.ts +14 -9
- package/src/core/http/http-server.ts +76 -161
- package/src/core/http/index.ts +1 -1
- package/src/core/http/uws-http-server.ts +43 -246
- package/src/core/networking/adapters/uws-adapter.ts +1 -1
- package/src/core/pooling/object-pool-manager.ts +630 -0
- package/src/core/routing/app-integration.ts +57 -109
- package/src/core/routing/index.ts +62 -473
- package/src/core/routing/path-matcher.ts +222 -0
- package/src/core/routing/router.ts +97 -0
- package/src/core/routing/unified-router.ts +870 -0
- package/src/moro.ts +107 -57
- package/src/types/config.ts +3 -0
- package/dist/core/http/router.js +0 -183
- package/dist/core/http/router.js.map +0 -1
- package/src/core/http/router.ts +0 -230
|
@@ -1,23 +1,29 @@
|
|
|
1
1
|
// Intelligent Routing System for Moro Framework
|
|
2
2
|
// Schema-first with automatic middleware ordering and chainable API
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
//
|
|
3
|
+
//
|
|
4
|
+
// NOTE: This file exports types and thin facades to UnifiedRouter
|
|
5
|
+
// All routing logic has been consolidated in unified-router.ts
|
|
6
|
+
import { UnifiedRouter } from './unified-router.js';
|
|
6
7
|
export const EXECUTION_PHASES = [
|
|
7
|
-
'security',
|
|
8
|
-
'parsing',
|
|
9
|
-
'rateLimit',
|
|
10
|
-
'before',
|
|
11
|
-
'auth',
|
|
12
|
-
'validation',
|
|
13
|
-
'transform',
|
|
14
|
-
'cache',
|
|
15
|
-
'after',
|
|
16
|
-
'handler',
|
|
8
|
+
'security',
|
|
9
|
+
'parsing',
|
|
10
|
+
'rateLimit',
|
|
11
|
+
'before',
|
|
12
|
+
'auth',
|
|
13
|
+
'validation',
|
|
14
|
+
'transform',
|
|
15
|
+
'cache',
|
|
16
|
+
'after',
|
|
17
|
+
'handler',
|
|
17
18
|
];
|
|
18
|
-
//
|
|
19
|
+
// ===== FACADE IMPLEMENTATIONS (Delegate to UnifiedRouter) =====
|
|
20
|
+
/**
|
|
21
|
+
* Thin facade to UnifiedRouter.RouteBuilder
|
|
22
|
+
* Maintains backward compatibility while using optimized implementation
|
|
23
|
+
*/
|
|
19
24
|
export class IntelligentRouteBuilder {
|
|
20
25
|
schema;
|
|
26
|
+
router = UnifiedRouter.getInstance();
|
|
21
27
|
constructor(method, path) {
|
|
22
28
|
this.schema = {
|
|
23
29
|
method,
|
|
@@ -25,7 +31,6 @@ export class IntelligentRouteBuilder {
|
|
|
25
31
|
middleware: {},
|
|
26
32
|
};
|
|
27
33
|
}
|
|
28
|
-
// Validation methods
|
|
29
34
|
validate(config) {
|
|
30
35
|
this.schema.validation = { ...this.schema.validation, ...config };
|
|
31
36
|
return this;
|
|
@@ -54,7 +59,6 @@ export class IntelligentRouteBuilder {
|
|
|
54
59
|
this.schema.validation.headers = schema;
|
|
55
60
|
return this;
|
|
56
61
|
}
|
|
57
|
-
// Security methods
|
|
58
62
|
auth(config) {
|
|
59
63
|
this.schema.auth = config;
|
|
60
64
|
return this;
|
|
@@ -63,34 +67,34 @@ export class IntelligentRouteBuilder {
|
|
|
63
67
|
this.schema.rateLimit = config;
|
|
64
68
|
return this;
|
|
65
69
|
}
|
|
66
|
-
// Caching
|
|
67
70
|
cache(config) {
|
|
68
71
|
this.schema.cache = config;
|
|
69
72
|
return this;
|
|
70
73
|
}
|
|
71
|
-
// Custom middleware
|
|
72
74
|
before(...middleware) {
|
|
73
75
|
if (!this.schema.middleware)
|
|
74
76
|
this.schema.middleware = {};
|
|
75
|
-
|
|
77
|
+
const phases = this.schema.middleware;
|
|
78
|
+
phases.before = [...(phases.before || []), ...middleware];
|
|
76
79
|
return this;
|
|
77
80
|
}
|
|
78
81
|
after(...middleware) {
|
|
79
82
|
if (!this.schema.middleware)
|
|
80
83
|
this.schema.middleware = {};
|
|
81
|
-
|
|
84
|
+
const phases = this.schema.middleware;
|
|
85
|
+
phases.after = [...(phases.after || []), ...middleware];
|
|
82
86
|
return this;
|
|
83
87
|
}
|
|
84
88
|
transform(...middleware) {
|
|
85
89
|
if (!this.schema.middleware)
|
|
86
90
|
this.schema.middleware = {};
|
|
87
|
-
|
|
91
|
+
const phases = this.schema.middleware;
|
|
92
|
+
phases.transform = [...(phases.transform || []), ...middleware];
|
|
88
93
|
return this;
|
|
89
94
|
}
|
|
90
95
|
use(...middleware) {
|
|
91
96
|
return this.after(...middleware);
|
|
92
97
|
}
|
|
93
|
-
// Metadata
|
|
94
98
|
describe(description) {
|
|
95
99
|
this.schema.description = description;
|
|
96
100
|
return this;
|
|
@@ -99,7 +103,6 @@ export class IntelligentRouteBuilder {
|
|
|
99
103
|
this.schema.tags = [...(this.schema.tags || []), ...tags];
|
|
100
104
|
return this;
|
|
101
105
|
}
|
|
102
|
-
// Terminal method - compiles the route
|
|
103
106
|
handler(handler) {
|
|
104
107
|
if (!handler) {
|
|
105
108
|
throw new Error('Handler is required');
|
|
@@ -108,387 +111,37 @@ export class IntelligentRouteBuilder {
|
|
|
108
111
|
...this.schema,
|
|
109
112
|
handler,
|
|
110
113
|
};
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
hasAuth: !!completeSchema.auth,
|
|
114
|
-
hasRateLimit: !!completeSchema.rateLimit,
|
|
115
|
-
hasCache: !!completeSchema.cache,
|
|
116
|
-
customMiddleware: {
|
|
117
|
-
before: completeSchema.middleware?.before?.length || 0,
|
|
118
|
-
after: completeSchema.middleware?.after?.length || 0,
|
|
119
|
-
transform: completeSchema.middleware?.transform?.length || 0,
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
return new ExecutableRoute(completeSchema);
|
|
114
|
+
// Delegate to UnifiedRouter
|
|
115
|
+
this.router.registerRoute(completeSchema);
|
|
123
116
|
}
|
|
124
117
|
}
|
|
125
|
-
|
|
118
|
+
/**
|
|
119
|
+
* Thin facade implementing CompiledRoute interface
|
|
120
|
+
* Just stores schema for documentation purposes
|
|
121
|
+
*/
|
|
126
122
|
export class ExecutableRoute {
|
|
127
123
|
schema;
|
|
128
|
-
// PERFORMANCE OPTIMIZATION: Pre-analyze route requirements
|
|
129
|
-
requiresAuth;
|
|
130
|
-
requiresValidation;
|
|
131
|
-
requiresRateLimit;
|
|
132
|
-
requiresCache;
|
|
133
|
-
hasBeforeMiddleware;
|
|
134
|
-
hasAfterMiddleware;
|
|
135
|
-
hasTransformMiddleware;
|
|
136
|
-
isFastPath;
|
|
137
124
|
constructor(schema) {
|
|
138
125
|
this.schema = schema;
|
|
139
|
-
//
|
|
140
|
-
|
|
141
|
-
this.requiresValidation = !!this.schema.validation;
|
|
142
|
-
this.requiresRateLimit = !!this.schema.rateLimit;
|
|
143
|
-
this.requiresCache = !!this.schema.cache;
|
|
144
|
-
this.hasBeforeMiddleware = !!this.schema.middleware?.before?.length;
|
|
145
|
-
this.hasAfterMiddleware = !!this.schema.middleware?.after?.length;
|
|
146
|
-
this.hasTransformMiddleware = !!this.schema.middleware?.transform?.length;
|
|
147
|
-
// Fast path: no middleware, no auth, no validation, no rate limiting
|
|
148
|
-
this.isFastPath =
|
|
149
|
-
!this.requiresAuth &&
|
|
150
|
-
!this.requiresValidation &&
|
|
151
|
-
!this.requiresRateLimit &&
|
|
152
|
-
!this.requiresCache &&
|
|
153
|
-
!this.hasBeforeMiddleware &&
|
|
154
|
-
!this.hasAfterMiddleware &&
|
|
155
|
-
!this.hasTransformMiddleware;
|
|
156
|
-
// Log fast path routes for monitoring
|
|
157
|
-
if (this.isFastPath) {
|
|
158
|
-
logger.debug(`Fast path route: ${this.schema.method} ${this.schema.path}`, 'FastPath');
|
|
159
|
-
}
|
|
126
|
+
// Register with UnifiedRouter
|
|
127
|
+
UnifiedRouter.getInstance().registerRoute(schema);
|
|
160
128
|
}
|
|
161
129
|
async execute(req, res) {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
if (this.isFastPath) {
|
|
166
|
-
// Skip all middleware - execute handler directly
|
|
167
|
-
const result = await this.schema.handler(validatedReq, res);
|
|
168
|
-
if (result !== undefined && !res.headersSent) {
|
|
169
|
-
res.json(result);
|
|
170
|
-
}
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
// Optimized middleware execution - only run what's needed
|
|
174
|
-
if (this.hasBeforeMiddleware) {
|
|
175
|
-
await this.executePhase('before', validatedReq, res);
|
|
176
|
-
if (res.headersSent)
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
if (this.requiresRateLimit) {
|
|
180
|
-
await this.executePhase('rateLimit', validatedReq, res);
|
|
181
|
-
if (res.headersSent)
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
if (this.requiresAuth) {
|
|
185
|
-
await this.executePhase('auth', validatedReq, res);
|
|
186
|
-
if (res.headersSent)
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
if (this.requiresValidation) {
|
|
190
|
-
await this.executePhase('validation', validatedReq, res);
|
|
191
|
-
if (res.headersSent)
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
if (this.hasTransformMiddleware) {
|
|
195
|
-
await this.executePhase('transform', validatedReq, res);
|
|
196
|
-
if (res.headersSent)
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
if (this.requiresCache) {
|
|
200
|
-
await this.executePhase('cache', validatedReq, res);
|
|
201
|
-
if (res.headersSent)
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
if (this.hasAfterMiddleware) {
|
|
205
|
-
await this.executePhase('after', validatedReq, res);
|
|
206
|
-
if (res.headersSent)
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
// Execute handler last
|
|
210
|
-
if (!res.headersSent) {
|
|
211
|
-
await this.executePhase('handler', validatedReq, res);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
catch (error) {
|
|
215
|
-
logger.error('Route execution error', 'RouteExecution', {
|
|
216
|
-
error: error instanceof Error ? error.message : String(error),
|
|
217
|
-
route: `${this.schema.method} ${this.schema.path}`,
|
|
218
|
-
requestId: req.requestId,
|
|
219
|
-
});
|
|
220
|
-
if (!res.headersSent) {
|
|
221
|
-
res.status(500).json({
|
|
222
|
-
success: false,
|
|
223
|
-
error: 'Internal server error',
|
|
224
|
-
requestId: req.requestId,
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
async executePhase(phase, req, res) {
|
|
230
|
-
switch (phase) {
|
|
231
|
-
case 'before':
|
|
232
|
-
if (this.schema.middleware?.before) {
|
|
233
|
-
for (const middleware of this.schema.middleware.before) {
|
|
234
|
-
await this.executeMiddleware(middleware, req, res);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
break;
|
|
238
|
-
case 'rateLimit':
|
|
239
|
-
if (this.schema.rateLimit) {
|
|
240
|
-
await this.executeRateLimit(req, res);
|
|
241
|
-
}
|
|
242
|
-
break;
|
|
243
|
-
case 'auth':
|
|
244
|
-
if (this.schema.auth) {
|
|
245
|
-
await this.executeAuth(req, res);
|
|
246
|
-
}
|
|
247
|
-
break;
|
|
248
|
-
case 'validation':
|
|
249
|
-
if (this.schema.validation) {
|
|
250
|
-
await this.executeValidation(req, res);
|
|
251
|
-
}
|
|
252
|
-
break;
|
|
253
|
-
case 'transform':
|
|
254
|
-
if (this.schema.middleware?.transform) {
|
|
255
|
-
for (const middleware of this.schema.middleware.transform) {
|
|
256
|
-
await this.executeMiddleware(middleware, req, res);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
break;
|
|
260
|
-
case 'cache':
|
|
261
|
-
if (this.schema.cache) {
|
|
262
|
-
await this.executeCache(req, res);
|
|
263
|
-
}
|
|
264
|
-
break;
|
|
265
|
-
case 'after':
|
|
266
|
-
if (this.schema.middleware?.after) {
|
|
267
|
-
for (const middleware of this.schema.middleware.after) {
|
|
268
|
-
await this.executeMiddleware(middleware, req, res);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
break;
|
|
272
|
-
case 'handler': {
|
|
273
|
-
const result = await this.schema.handler(req, res);
|
|
274
|
-
if (result !== undefined && !res.headersSent) {
|
|
275
|
-
res.json(result);
|
|
276
|
-
}
|
|
277
|
-
break;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
async executeMiddleware(middleware, req, res) {
|
|
282
|
-
// PERFORMANCE OPTIMIZATION: Reduce Promise overhead
|
|
283
|
-
return new Promise((resolve, reject) => {
|
|
284
|
-
let resolved = false;
|
|
285
|
-
const next = () => {
|
|
286
|
-
if (!resolved) {
|
|
287
|
-
resolved = true;
|
|
288
|
-
resolve();
|
|
289
|
-
}
|
|
290
|
-
};
|
|
291
|
-
try {
|
|
292
|
-
const result = middleware(req, res, next);
|
|
293
|
-
if (result instanceof Promise) {
|
|
294
|
-
result.then(() => !resolved && next()).catch(reject);
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
// Synchronous middleware - call next immediately if not called
|
|
298
|
-
if (!resolved) {
|
|
299
|
-
next();
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
if (!resolved) {
|
|
305
|
-
resolved = true;
|
|
306
|
-
reject(error);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
async executeRateLimit(req, res) {
|
|
312
|
-
// Rate limiting implementation will be added
|
|
313
|
-
logger.debug('Rate limit check', 'RateLimit', {
|
|
314
|
-
config: this.schema.rateLimit,
|
|
315
|
-
ip: req.ip,
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
async executeAuth(req, res) {
|
|
319
|
-
const authConfig = this.schema.auth;
|
|
320
|
-
const auth = req.auth;
|
|
321
|
-
// This should never happen since executeAuth is only called when auth config exists
|
|
322
|
-
if (!authConfig) {
|
|
323
|
-
logger.error('executeAuth called without auth config', 'Auth');
|
|
324
|
-
return;
|
|
325
|
-
}
|
|
326
|
-
logger.debug('Auth check', 'Auth', {
|
|
327
|
-
config: authConfig,
|
|
328
|
-
isAuthenticated: auth?.isAuthenticated,
|
|
329
|
-
userRoles: auth?.user?.roles,
|
|
330
|
-
});
|
|
331
|
-
// Check if auth middleware ran
|
|
332
|
-
if (!auth) {
|
|
333
|
-
res.status(500);
|
|
334
|
-
res.json({
|
|
335
|
-
success: false,
|
|
336
|
-
error: 'Authentication middleware not configured',
|
|
337
|
-
message: 'Auth middleware must be installed before using route-level auth',
|
|
338
|
-
});
|
|
339
|
-
return;
|
|
340
|
-
}
|
|
341
|
-
// Check authentication requirement (default is required unless optional: true)
|
|
342
|
-
if (!authConfig.optional && !auth.isAuthenticated) {
|
|
343
|
-
res.status(401);
|
|
344
|
-
res.json({
|
|
345
|
-
success: false,
|
|
346
|
-
error: 'Authentication required',
|
|
347
|
-
message: 'You must be logged in to access this resource',
|
|
348
|
-
});
|
|
349
|
-
return;
|
|
350
|
-
}
|
|
351
|
-
// Skip further checks if not authenticated but optional
|
|
352
|
-
if (!auth.isAuthenticated && authConfig.optional) {
|
|
353
|
-
return; // Continue to handler
|
|
354
|
-
}
|
|
355
|
-
// Only check roles/permissions if user is authenticated
|
|
356
|
-
if (auth.isAuthenticated) {
|
|
357
|
-
const user = auth.user;
|
|
358
|
-
// Check roles if specified
|
|
359
|
-
if (authConfig.roles && authConfig.roles.length > 0) {
|
|
360
|
-
const userRoles = user?.roles || [];
|
|
361
|
-
const hasRole = authConfig.roles.some((role) => userRoles.includes(role));
|
|
362
|
-
if (!hasRole) {
|
|
363
|
-
res.status(403);
|
|
364
|
-
res.json({
|
|
365
|
-
success: false,
|
|
366
|
-
error: 'Insufficient permissions',
|
|
367
|
-
message: `Required roles: ${authConfig.roles.join(', ')}`,
|
|
368
|
-
userRoles,
|
|
369
|
-
});
|
|
370
|
-
return;
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
// Check permissions if specified
|
|
374
|
-
if (authConfig.permissions && authConfig.permissions.length > 0) {
|
|
375
|
-
const userPermissions = user?.permissions || [];
|
|
376
|
-
const hasPermission = authConfig.permissions.every((permission) => userPermissions.includes(permission));
|
|
377
|
-
if (!hasPermission) {
|
|
378
|
-
res.status(403);
|
|
379
|
-
res.json({
|
|
380
|
-
success: false,
|
|
381
|
-
error: 'Insufficient permissions',
|
|
382
|
-
message: `Required permissions: ${authConfig.permissions.join(', ')}`,
|
|
383
|
-
userPermissions,
|
|
384
|
-
});
|
|
385
|
-
return;
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
// All auth checks passed
|
|
390
|
-
}
|
|
391
|
-
async executeValidation(req, res) {
|
|
392
|
-
if (!this.schema.validation)
|
|
393
|
-
return;
|
|
394
|
-
const { body, query, params, headers } = this.schema.validation;
|
|
395
|
-
// Validate body
|
|
396
|
-
if (body && req.body !== undefined) {
|
|
397
|
-
try {
|
|
398
|
-
req.validatedBody = await body.parseAsync(req.body);
|
|
399
|
-
req.body = req.validatedBody; // Update original for compatibility
|
|
400
|
-
}
|
|
401
|
-
catch (error) {
|
|
402
|
-
this.sendValidationError(res, error, 'body', req.requestId);
|
|
403
|
-
return;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
// Validate query
|
|
407
|
-
if (query && req.query !== undefined) {
|
|
408
|
-
try {
|
|
409
|
-
req.validatedQuery = await query.parseAsync(req.query);
|
|
410
|
-
req.query = req.validatedQuery; // Update original for compatibility
|
|
411
|
-
}
|
|
412
|
-
catch (error) {
|
|
413
|
-
this.sendValidationError(res, error, 'query', req.requestId);
|
|
414
|
-
return;
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
|
-
// Validate params
|
|
418
|
-
if (params && req.params !== undefined) {
|
|
419
|
-
try {
|
|
420
|
-
req.validatedParams = await params.parseAsync(req.params);
|
|
421
|
-
req.params = req.validatedParams; // Update original for compatibility
|
|
422
|
-
}
|
|
423
|
-
catch (error) {
|
|
424
|
-
this.sendValidationError(res, error, 'params', req.requestId);
|
|
425
|
-
return;
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
// Validate headers
|
|
429
|
-
if (headers && req.headers !== undefined) {
|
|
430
|
-
try {
|
|
431
|
-
req.validatedHeaders = await headers.parseAsync(req.headers);
|
|
432
|
-
}
|
|
433
|
-
catch (error) {
|
|
434
|
-
this.sendValidationError(res, error, 'headers', req.requestId);
|
|
435
|
-
return;
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
logger.debug('Validation passed', 'Validation', {
|
|
439
|
-
route: `${this.schema.method} ${this.schema.path}`,
|
|
440
|
-
validatedFields: Object.keys(this.schema.validation),
|
|
441
|
-
});
|
|
442
|
-
}
|
|
443
|
-
sendValidationError(res, error, field, requestId) {
|
|
444
|
-
if (error.issues) {
|
|
445
|
-
res.status(400).json({
|
|
446
|
-
success: false,
|
|
447
|
-
error: `Validation failed for ${field}`,
|
|
448
|
-
details: error.issues.map((issue) => ({
|
|
449
|
-
field: issue.path.length > 0 ? issue.path.join('.') : field,
|
|
450
|
-
message: issue.message,
|
|
451
|
-
code: issue.code,
|
|
452
|
-
})),
|
|
453
|
-
requestId,
|
|
454
|
-
});
|
|
455
|
-
}
|
|
456
|
-
else {
|
|
457
|
-
res.status(400).json({
|
|
458
|
-
success: false,
|
|
459
|
-
error: `Validation failed for ${field}`,
|
|
460
|
-
requestId,
|
|
461
|
-
});
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
async executeCache(req, res) {
|
|
465
|
-
// Caching implementation will be added
|
|
466
|
-
logger.debug('Cache check', 'Cache', {
|
|
467
|
-
config: this.schema.cache,
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
// Performance monitoring
|
|
471
|
-
getPerformanceInfo() {
|
|
472
|
-
return {
|
|
473
|
-
path: this.schema.path,
|
|
474
|
-
method: this.schema.method,
|
|
475
|
-
isFastPath: this.isFastPath,
|
|
476
|
-
requiresAuth: this.requiresAuth,
|
|
477
|
-
requiresValidation: this.requiresValidation,
|
|
478
|
-
requiresRateLimit: this.requiresRateLimit,
|
|
479
|
-
requiresCache: this.requiresCache,
|
|
480
|
-
hasBeforeMiddleware: this.hasBeforeMiddleware,
|
|
481
|
-
hasAfterMiddleware: this.hasAfterMiddleware,
|
|
482
|
-
hasTransformMiddleware: this.hasTransformMiddleware,
|
|
483
|
-
};
|
|
130
|
+
// This is never called - UnifiedRouter handles execution
|
|
131
|
+
// But we implement it for interface compatibility
|
|
132
|
+
throw new Error('ExecutableRoute.execute() should not be called directly - routing handled by UnifiedRouter');
|
|
484
133
|
}
|
|
485
134
|
}
|
|
486
|
-
//
|
|
135
|
+
// ===== FACTORY FUNCTIONS (Backward Compatibility) =====
|
|
487
136
|
export function createRoute(method, path) {
|
|
488
137
|
return new IntelligentRouteBuilder(method, path);
|
|
489
138
|
}
|
|
490
|
-
// Schema-first route creation
|
|
491
139
|
export function defineRoute(schema) {
|
|
492
140
|
return new ExecutableRoute(schema);
|
|
493
141
|
}
|
|
142
|
+
// ===== RE-EXPORTS FROM UNIFIED ROUTER =====
|
|
143
|
+
export { UnifiedRouter } from './unified-router.js';
|
|
144
|
+
export { RouteBuilder as UnifiedRouteBuilder } from './unified-router.js';
|
|
145
|
+
export { PathMatcher } from './path-matcher.js';
|
|
146
|
+
export { ObjectPoolManager, getPoolManager } from '../pooling/object-pool-manager.js';
|
|
494
147
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/routing/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/routing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface CompiledPath {
|
|
2
|
+
pattern: RegExp | null;
|
|
3
|
+
paramNames: string[];
|
|
4
|
+
isStatic: boolean;
|
|
5
|
+
path: string;
|
|
6
|
+
segments: number;
|
|
7
|
+
}
|
|
8
|
+
export interface MatchResult {
|
|
9
|
+
params: Record<string, string>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* PathMatcher - Single source of truth for path pattern compilation and matching
|
|
13
|
+
*/
|
|
14
|
+
export declare class PathMatcher {
|
|
15
|
+
private static readonly cache;
|
|
16
|
+
private static compilationCount;
|
|
17
|
+
private static cacheHits;
|
|
18
|
+
private static cacheMisses;
|
|
19
|
+
/**
|
|
20
|
+
* Compile a path pattern into an efficient matching structure
|
|
21
|
+
* Results are cached for performance
|
|
22
|
+
*/
|
|
23
|
+
static compile(path: string): CompiledPath;
|
|
24
|
+
/**
|
|
25
|
+
* Internal compilation logic
|
|
26
|
+
*/
|
|
27
|
+
private static compileInternal;
|
|
28
|
+
/**
|
|
29
|
+
* Match a request path against a compiled pattern
|
|
30
|
+
* Returns match result with extracted parameters, or null if no match
|
|
31
|
+
*/
|
|
32
|
+
static match(compiledPath: CompiledPath, requestPath: string): MatchResult | null;
|
|
33
|
+
/**
|
|
34
|
+
* Compile and match in one operation (convenience method)
|
|
35
|
+
*/
|
|
36
|
+
static compileAndMatch(pathPattern: string, requestPath: string): MatchResult | null;
|
|
37
|
+
/**
|
|
38
|
+
* Check if a path pattern is static (no parameters)
|
|
39
|
+
*/
|
|
40
|
+
static isStatic(path: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Get performance statistics
|
|
43
|
+
*/
|
|
44
|
+
static getStats(): {
|
|
45
|
+
cacheSize: number;
|
|
46
|
+
cacheHits: number;
|
|
47
|
+
cacheMisses: number;
|
|
48
|
+
hitRate: number;
|
|
49
|
+
compilationCount: number;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Clear the cache (useful for testing)
|
|
53
|
+
*/
|
|
54
|
+
static clearCache(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Pre-compile multiple paths (cache warming)
|
|
57
|
+
*/
|
|
58
|
+
static precompile(paths: string[]): void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Legacy compatibility function - maps to PathMatcher.compile
|
|
62
|
+
* @deprecated Use PathMatcher.compile instead
|
|
63
|
+
*/
|
|
64
|
+
export declare function pathToRegex(path: string): {
|
|
65
|
+
pattern: RegExp;
|
|
66
|
+
paramNames: string[];
|
|
67
|
+
};
|