@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,73 +1,41 @@
1
1
  // Integration layer for intelligent routing system with main Moro app
2
2
  // Provides both chainable and schema-first APIs
3
+ //
4
+ // NOTE: This is now a thin facade to UnifiedRouter
5
+ // All routing logic has been consolidated in unified-router.ts
3
6
  import { createRoute, defineRoute, } from './index.js';
7
+ import { UnifiedRouter } from './unified-router.js';
4
8
  import { createFrameworkLogger } from '../logger/index.js';
5
9
  const logger = createFrameworkLogger('AppIntegration');
6
- // Route registry for managing compiled routes
10
+ // ===== RouteRegistry (Public API - Backward Compatibility) =====
11
+ /**
12
+ * RouteRegistry - Facade to UnifiedRouter for backward compatibility
13
+ * This was part of the public API, so we maintain it as an alias
14
+ */
7
15
  export class RouteRegistry {
8
- routes = new Map();
9
- routePatterns = [];
16
+ router = UnifiedRouter.getInstance();
10
17
  register(route) {
11
- const key = `${route.schema.method}:${route.schema.path}`;
12
- this.routes.set(key, route);
13
- // Convert path to regex pattern for matching
14
- const { pattern, paramNames } = this.pathToRegex(route.schema.path);
15
- this.routePatterns.push({
16
- pattern,
17
- route,
18
- method: route.schema.method,
19
- paramNames,
20
- });
21
- logger.debug(`Registered route: ${key}`, 'RouteRegistry', {
22
- path: route.schema.path,
23
- hasValidation: !!route.schema.validation,
24
- hasAuth: !!route.schema.auth,
25
- hasRateLimit: !!route.schema.rateLimit,
26
- });
18
+ // Routes are automatically registered with UnifiedRouter when created
19
+ // This is a no-op for API compatibility
27
20
  }
28
21
  async handleRequest(req, res) {
29
- const method = req.method?.toUpperCase();
30
- const path = req.path;
31
- // Find matching route
32
- for (const routePattern of this.routePatterns) {
33
- if (routePattern.method === method && routePattern.pattern.test(path)) {
34
- // Extract path parameters
35
- const matches = path.match(routePattern.pattern);
36
- if (matches) {
37
- req.params = {};
38
- routePattern.paramNames.forEach((name, index) => {
39
- req.params[name] = matches[index + 1];
40
- });
41
- }
42
- // Execute the route
43
- await routePattern.route.execute(req, res);
44
- return true; // Route handled
45
- }
46
- }
47
- return false; // No route matched
22
+ return this.router.handleRequest(req, res);
48
23
  }
49
24
  getRoutes() {
50
- return Array.from(this.routes.values());
51
- }
52
- pathToRegex(path) {
53
- const paramNames = [];
54
- // Convert path parameters like :id to regex groups
55
- const regexPath = path
56
- .replace(/\//g, '\\/') // Escape forward slashes
57
- .replace(/:([^/]+)/g, (match, paramName) => {
58
- paramNames.push(paramName);
59
- return '([^/]+)'; // Match parameter value
60
- });
61
- return {
62
- pattern: new RegExp(`^${regexPath}$`),
63
- paramNames,
64
- };
25
+ const routes = this.router.getAllRoutes();
26
+ return routes.map(routeSchema => ({
27
+ schema: routeSchema,
28
+ execute: async (_req, _res) => {
29
+ throw new Error('CompiledRoute.execute() not used - routing handled by UnifiedRouter');
30
+ },
31
+ }));
65
32
  }
66
33
  }
67
34
  // Intelligent routing manager class
35
+ // Now a thin facade to UnifiedRouter
68
36
  export class IntelligentRoutingManager {
69
- routeRegistry = new RouteRegistry();
70
- // Chainable route methods
37
+ router = UnifiedRouter.getInstance();
38
+ // Chainable route methods - delegate to createRoute
71
39
  get(path) {
72
40
  return this.createChainableRoute('GET', path);
73
41
  }
@@ -95,26 +63,34 @@ export class IntelligentRoutingManager {
95
63
  this.register(compiledRoute);
96
64
  return compiledRoute;
97
65
  }
98
- // Register compiled route
99
- register(route) {
100
- this.routeRegistry.register(route);
66
+ // Register compiled route (no-op, already registered by defineRoute)
67
+ register(_route) {
68
+ // Routes are automatically registered with UnifiedRouter in defineRoute()
69
+ // This is just for API compatibility
101
70
  }
102
- // Handle incoming requests with intelligent routing
71
+ // Handle incoming requests - delegates to UnifiedRouter
103
72
  async handleIntelligentRoute(req, res) {
104
- return await this.routeRegistry.handleRequest(req, res);
73
+ return this.router.handleRequest(req, res);
105
74
  }
106
- // Get all registered routes (useful for debugging/docs)
75
+ // Get all registered routes - fetch from UnifiedRouter
107
76
  getIntelligentRoutes() {
108
- return this.routeRegistry.getRoutes();
109
- }
110
- // Direct route method (deprecated)
77
+ // Convert UnifiedRouter's internal routes to CompiledRoute format for docs
78
+ const routes = this.router.getAllRoutes();
79
+ return routes.map(routeSchema => ({
80
+ schema: routeSchema, // Cast to match CompiledRoute interface
81
+ execute: async (_req, _res) => {
82
+ // Not used - routing handled by UnifiedRouter
83
+ throw new Error('CompiledRoute.execute() not used - routing handled by UnifiedRouter');
84
+ },
85
+ }));
86
+ }
87
+ // Direct route method (deprecated but kept for compatibility)
111
88
  directRoute(method, path, handler, options) {
112
89
  logger.warn('Using deprecated direct route method', 'DirectRoute', {
113
90
  method,
114
91
  path,
115
92
  suggestion: 'Use chainable or schema-first API instead',
116
93
  });
117
- // Convert direct options to new schema format
118
94
  const schema = {
119
95
  method: method.toUpperCase(),
120
96
  path,
@@ -129,15 +105,8 @@ export class IntelligentRoutingManager {
129
105
  this.route(schema);
130
106
  }
131
107
  createChainableRoute(method, path) {
132
- const builder = createRoute(method, path);
133
- // Override the handler method to auto-register the route
134
- const originalHandler = builder.handler.bind(builder);
135
- builder.handler = (handler) => {
136
- const compiledRoute = originalHandler(handler);
137
- this.register(compiledRoute);
138
- return compiledRoute;
139
- };
140
- return builder;
108
+ // Just create and return the builder - it auto-registers with UnifiedRouter
109
+ return createRoute(method, path);
141
110
  }
142
111
  }
143
112
  //# sourceMappingURL=app-integration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-integration.js","sourceRoot":"","sources":["../../../src/core/routing/app-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-integration.js","sourceRoot":"","sources":["../../../src/core/routing/app-integration.ts"],"names":[],"mappings":"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"}
@@ -65,14 +65,19 @@ export interface RouteBuilder {
65
65
  use(...middleware: Middleware[]): RouteBuilder;
66
66
  describe(description: string): RouteBuilder;
67
67
  tag(...tags: string[]): RouteBuilder;
68
- handler<T>(handler: RouteHandler<T>): CompiledRoute;
68
+ handler<T>(handler: RouteHandler<T>): void;
69
69
  }
70
70
  export interface CompiledRoute {
71
71
  schema: RouteSchema;
72
72
  execute(req: HttpRequest, res: HttpResponse): Promise<void>;
73
73
  }
74
+ /**
75
+ * Thin facade to UnifiedRouter.RouteBuilder
76
+ * Maintains backward compatibility while using optimized implementation
77
+ */
74
78
  export declare class IntelligentRouteBuilder implements RouteBuilder {
75
79
  private schema;
80
+ private router;
76
81
  constructor(method: HttpMethod, path: string);
77
82
  validate(config: ValidationConfig): RouteBuilder;
78
83
  body<T>(schema: ValidationSchema<T>): RouteBuilder;
@@ -88,39 +93,20 @@ export declare class IntelligentRouteBuilder implements RouteBuilder {
88
93
  use(...middleware: Middleware[]): RouteBuilder;
89
94
  describe(description: string): RouteBuilder;
90
95
  tag(...tags: string[]): RouteBuilder;
91
- handler<T>(handler: RouteHandler<T>): CompiledRoute;
96
+ handler<T>(handler: RouteHandler<T>): void;
92
97
  }
98
+ /**
99
+ * Thin facade implementing CompiledRoute interface
100
+ * Just stores schema for documentation purposes
101
+ */
93
102
  export declare class ExecutableRoute implements CompiledRoute {
94
103
  readonly schema: RouteSchema;
95
- private readonly requiresAuth;
96
- private readonly requiresValidation;
97
- private readonly requiresRateLimit;
98
- private readonly requiresCache;
99
- private readonly hasBeforeMiddleware;
100
- private readonly hasAfterMiddleware;
101
- private readonly hasTransformMiddleware;
102
- private readonly isFastPath;
103
104
  constructor(schema: RouteSchema);
104
105
  execute(req: HttpRequest, res: HttpResponse): Promise<void>;
105
- private executePhase;
106
- private executeMiddleware;
107
- private executeRateLimit;
108
- private executeAuth;
109
- private executeValidation;
110
- private sendValidationError;
111
- private executeCache;
112
- getPerformanceInfo(): {
113
- path: string;
114
- method: HttpMethod;
115
- isFastPath: boolean;
116
- requiresAuth: boolean;
117
- requiresValidation: boolean;
118
- requiresRateLimit: boolean;
119
- requiresCache: boolean;
120
- hasBeforeMiddleware: boolean;
121
- hasAfterMiddleware: boolean;
122
- hasTransformMiddleware: boolean;
123
- };
124
106
  }
125
107
  export declare function createRoute(method: HttpMethod, path: string): RouteBuilder;
126
108
  export declare function defineRoute(schema: RouteSchema): CompiledRoute;
109
+ export { UnifiedRouter } from './unified-router.js';
110
+ export { RouteBuilder as UnifiedRouteBuilder } from './unified-router.js';
111
+ export { PathMatcher, type CompiledPath, type MatchResult } from './path-matcher.js';
112
+ export { ObjectPoolManager, getPoolManager } from '../pooling/object-pool-manager.js';