@morojs/moro 1.6.1 → 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/README.md +74 -256
- package/dist/core/auth/morojs-adapter.js +20 -20
- package/dist/core/auth/morojs-adapter.js.map +1 -1
- package/dist/core/config/config-manager.d.ts +44 -0
- package/dist/core/config/config-manager.js +104 -0
- package/dist/core/config/config-manager.js.map +1 -0
- package/dist/core/config/config-sources.d.ts +21 -0
- package/dist/core/config/config-sources.js +503 -0
- package/dist/core/config/config-sources.js.map +1 -0
- package/dist/core/config/config-validator.d.ts +21 -0
- package/dist/core/config/config-validator.js +791 -0
- package/dist/core/config/config-validator.js.map +1 -0
- package/dist/core/config/file-loader.d.ts +1 -6
- package/dist/core/config/file-loader.js +21 -249
- package/dist/core/config/file-loader.js.map +1 -1
- package/dist/core/config/index.d.ts +41 -12
- package/dist/core/config/index.js +65 -54
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.d.ts +2 -2
- package/dist/core/config/schema.js +55 -44
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.d.ts +10 -3
- package/dist/core/config/utils.js +31 -58
- package/dist/core/config/utils.js.map +1 -1
- package/dist/core/database/adapters/drizzle.d.ts +1 -1
- package/dist/core/database/adapters/drizzle.js +18 -11
- package/dist/core/database/adapters/drizzle.js.map +1 -1
- package/dist/core/database/adapters/index.d.ts +7 -7
- package/dist/core/database/adapters/index.js +19 -29
- package/dist/core/database/adapters/index.js.map +1 -1
- package/dist/core/database/adapters/mongodb.d.ts +13 -1
- package/dist/core/database/adapters/mongodb.js +46 -10
- package/dist/core/database/adapters/mongodb.js.map +1 -1
- package/dist/core/database/adapters/mysql.d.ts +14 -1
- package/dist/core/database/adapters/mysql.js +19 -9
- package/dist/core/database/adapters/mysql.js.map +1 -1
- package/dist/core/database/adapters/postgresql.d.ts +12 -2
- package/dist/core/database/adapters/postgresql.js +19 -9
- package/dist/core/database/adapters/postgresql.js.map +1 -1
- package/dist/core/database/adapters/redis.d.ts +12 -1
- package/dist/core/database/adapters/redis.js +48 -13
- package/dist/core/database/adapters/redis.js.map +1 -1
- package/dist/core/database/adapters/sqlite.d.ts +3 -1
- package/dist/core/database/adapters/sqlite.js +19 -8
- package/dist/core/database/adapters/sqlite.js.map +1 -1
- package/dist/core/database/index.d.ts +2 -2
- package/dist/core/database/index.js +2 -18
- package/dist/core/database/index.js.map +1 -1
- package/dist/core/docs/index.d.ts +9 -9
- package/dist/core/docs/index.js +14 -35
- package/dist/core/docs/index.js.map +1 -1
- package/dist/core/docs/openapi-generator.d.ts +2 -2
- package/dist/core/docs/openapi-generator.js +11 -16
- package/dist/core/docs/openapi-generator.js.map +1 -1
- package/dist/core/docs/schema-to-openapi.d.ts +2 -2
- package/dist/core/docs/schema-to-openapi.js +5 -11
- package/dist/core/docs/schema-to-openapi.js.map +1 -1
- package/dist/core/docs/simple-docs.d.ts +1 -1
- package/dist/core/docs/simple-docs.js +4 -9
- package/dist/core/docs/simple-docs.js.map +1 -1
- package/dist/core/docs/swagger-ui.d.ts +2 -2
- package/dist/core/docs/swagger-ui.js +26 -29
- package/dist/core/docs/swagger-ui.js.map +1 -1
- package/dist/core/docs/zod-to-openapi.js +31 -28
- package/dist/core/docs/zod-to-openapi.js.map +1 -1
- package/dist/core/events/event-bus.d.ts +1 -1
- package/dist/core/events/event-bus.js +7 -11
- package/dist/core/events/event-bus.js.map +1 -1
- package/dist/core/events/index.d.ts +2 -2
- package/dist/core/events/index.js +1 -5
- package/dist/core/events/index.js.map +1 -1
- package/dist/core/framework.d.ts +20 -13
- package/dist/core/framework.js +285 -102
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +59 -7
- package/dist/core/http/http-server.js +190 -176
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/index.d.ts +4 -3
- package/dist/core/http/index.js +3 -8
- package/dist/core/http/index.js.map +1 -1
- package/dist/core/http/uws-http-server.d.ts +46 -0
- package/dist/core/http/uws-http-server.js +523 -0
- package/dist/core/http/uws-http-server.js.map +1 -0
- package/dist/core/logger/filters.d.ts +1 -1
- package/dist/core/logger/filters.js +20 -23
- package/dist/core/logger/filters.js.map +1 -1
- package/dist/core/logger/index.d.ts +3 -3
- package/dist/core/logger/index.js +2 -24
- package/dist/core/logger/index.js.map +1 -1
- package/dist/core/logger/logger.d.ts +30 -14
- package/dist/core/logger/logger.js +398 -223
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/logger/outputs.d.ts +1 -1
- package/dist/core/logger/outputs.js +8 -17
- package/dist/core/logger/outputs.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.js +10 -47
- package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cache/index.js +10 -17
- package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.js +3 -7
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +3 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.js +11 -9
- package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.js +3 -7
- package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +3 -7
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +3 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +12 -10
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cdn/index.js +10 -17
- package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/index.js +4 -23
- package/dist/core/middleware/built-in/adapters/index.js.map +1 -1
- package/dist/core/middleware/built-in/auth-helpers.js +11 -22
- package/dist/core/middleware/built-in/auth-helpers.js.map +1 -1
- package/dist/core/middleware/built-in/auth-providers.d.ts +1 -1
- package/dist/core/middleware/built-in/auth-providers.js +4 -9
- package/dist/core/middleware/built-in/auth-providers.js.map +1 -1
- package/dist/core/middleware/built-in/auth.d.ts +2 -2
- package/dist/core/middleware/built-in/auth.js +93 -26
- package/dist/core/middleware/built-in/auth.js.map +1 -1
- package/dist/core/middleware/built-in/cache.d.ts +2 -2
- package/dist/core/middleware/built-in/cache.js +11 -12
- package/dist/core/middleware/built-in/cache.js.map +1 -1
- package/dist/core/middleware/built-in/cdn.d.ts +2 -2
- package/dist/core/middleware/built-in/cdn.js +5 -9
- package/dist/core/middleware/built-in/cdn.js.map +1 -1
- package/dist/core/middleware/built-in/cookie.d.ts +1 -1
- package/dist/core/middleware/built-in/cookie.js +3 -7
- package/dist/core/middleware/built-in/cookie.js.map +1 -1
- package/dist/core/middleware/built-in/cors.d.ts +1 -1
- package/dist/core/middleware/built-in/cors.js +3 -7
- package/dist/core/middleware/built-in/cors.js.map +1 -1
- package/dist/core/middleware/built-in/csp.d.ts +1 -1
- package/dist/core/middleware/built-in/csp.js +5 -8
- package/dist/core/middleware/built-in/csp.js.map +1 -1
- package/dist/core/middleware/built-in/csrf.d.ts +1 -1
- package/dist/core/middleware/built-in/csrf.js +5 -8
- package/dist/core/middleware/built-in/csrf.js.map +1 -1
- package/dist/core/middleware/built-in/error-tracker.js +3 -7
- package/dist/core/middleware/built-in/error-tracker.js.map +1 -1
- package/dist/core/middleware/built-in/index.d.ts +28 -27
- package/dist/core/middleware/built-in/index.js +48 -78
- package/dist/core/middleware/built-in/index.js.map +1 -1
- package/dist/core/middleware/built-in/jwt-helpers.d.ts +118 -0
- package/dist/core/middleware/built-in/jwt-helpers.js +218 -0
- package/dist/core/middleware/built-in/jwt-helpers.js.map +1 -0
- package/dist/core/middleware/built-in/performance-monitor.js +3 -7
- package/dist/core/middleware/built-in/performance-monitor.js.map +1 -1
- package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
- package/dist/core/middleware/built-in/rate-limit.js +3 -7
- package/dist/core/middleware/built-in/rate-limit.js.map +1 -1
- package/dist/core/middleware/built-in/request-logger.js +5 -8
- package/dist/core/middleware/built-in/request-logger.js.map +1 -1
- package/dist/core/middleware/built-in/session.d.ts +2 -2
- package/dist/core/middleware/built-in/session.js +11 -15
- package/dist/core/middleware/built-in/session.js.map +1 -1
- package/dist/core/middleware/built-in/sse.d.ts +1 -1
- package/dist/core/middleware/built-in/sse.js +12 -14
- package/dist/core/middleware/built-in/sse.js.map +1 -1
- package/dist/core/middleware/built-in/validation.d.ts +1 -1
- package/dist/core/middleware/built-in/validation.js +3 -7
- package/dist/core/middleware/built-in/validation.js.map +1 -1
- package/dist/core/middleware/index.d.ts +4 -4
- package/dist/core/middleware/index.js +8 -28
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/modules/auto-discovery.d.ts +19 -2
- package/dist/core/modules/auto-discovery.js +391 -74
- package/dist/core/modules/auto-discovery.js.map +1 -1
- package/dist/core/modules/index.d.ts +2 -2
- package/dist/core/modules/index.js +2 -9
- package/dist/core/modules/index.js.map +1 -1
- package/dist/core/modules/modules.d.ts +3 -3
- package/dist/core/modules/modules.js +23 -54
- package/dist/core/modules/modules.js.map +1 -1
- package/dist/core/networking/adapters/index.d.ts +4 -3
- package/dist/core/networking/adapters/index.js +3 -7
- package/dist/core/networking/adapters/index.js.map +1 -1
- package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -1
- package/dist/core/networking/adapters/socketio-adapter.js +5 -40
- package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
- package/dist/core/networking/adapters/uws-adapter.d.ts +44 -0
- package/dist/core/networking/adapters/uws-adapter.js +513 -0
- package/dist/core/networking/adapters/uws-adapter.js.map +1 -0
- package/dist/core/networking/adapters/ws-adapter.d.ts +2 -2
- package/dist/core/networking/adapters/ws-adapter.js +8 -43
- package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
- package/dist/core/networking/index.d.ts +3 -2
- package/dist/core/networking/index.js +2 -7
- package/dist/core/networking/index.js.map +1 -1
- package/dist/core/networking/service-discovery.js +8 -12
- package/dist/core/networking/service-discovery.js.map +1 -1
- package/dist/core/networking/websocket-adapter.js +1 -2
- package/dist/core/networking/websocket-adapter.js.map +1 -1
- package/dist/core/networking/websocket-manager.d.ts +3 -3
- package/dist/core/networking/websocket-manager.js +9 -11
- package/dist/core/networking/websocket-manager.js.map +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 +14 -12
- package/dist/core/routing/app-integration.js +49 -85
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/index.d.ts +17 -11
- package/dist/core/routing/index.js +48 -237
- 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/routing/router.d.ts +38 -0
- 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/core/runtime/aws-lambda-adapter.d.ts +3 -3
- package/dist/core/runtime/aws-lambda-adapter.js +2 -6
- package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
- package/dist/core/runtime/base-adapter.d.ts +2 -2
- package/dist/core/runtime/base-adapter.js +3 -7
- package/dist/core/runtime/base-adapter.js.map +1 -1
- package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
- package/dist/core/runtime/cloudflare-workers-adapter.js +2 -6
- package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
- package/dist/core/runtime/index.d.ts +12 -12
- package/dist/core/runtime/index.js +22 -35
- package/dist/core/runtime/index.js.map +1 -1
- package/dist/core/runtime/node-adapter.d.ts +4 -4
- package/dist/core/runtime/node-adapter.js +18 -49
- package/dist/core/runtime/node-adapter.js.map +1 -1
- package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
- package/dist/core/runtime/vercel-edge-adapter.js +2 -6
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
- package/dist/core/utilities/circuit-breaker.js +1 -5
- package/dist/core/utilities/circuit-breaker.js.map +1 -1
- package/dist/core/utilities/container.js +12 -22
- package/dist/core/utilities/container.js.map +1 -1
- package/dist/core/utilities/hooks.d.ts +2 -2
- package/dist/core/utilities/hooks.js +7 -12
- package/dist/core/utilities/hooks.js.map +1 -1
- package/dist/core/utilities/index.d.ts +5 -4
- package/dist/core/utilities/index.js +5 -19
- package/dist/core/utilities/index.js.map +1 -1
- package/dist/core/utilities/package-utils.d.ts +38 -0
- package/dist/core/utilities/package-utils.js +57 -0
- package/dist/core/utilities/package-utils.js.map +1 -0
- package/dist/core/validation/adapters.d.ts +1 -1
- package/dist/core/validation/adapters.js +15 -26
- package/dist/core/validation/adapters.js.map +1 -1
- package/dist/core/validation/index.d.ts +6 -4
- package/dist/core/validation/index.js +57 -28
- package/dist/core/validation/index.js.map +1 -1
- package/dist/core/validation/schema-interface.js +3 -9
- package/dist/core/validation/schema-interface.js.map +1 -1
- package/dist/index.d.ts +51 -52
- package/dist/index.js +23 -132
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +70 -16
- package/dist/moro.js +658 -271
- package/dist/moro.js.map +1 -1
- package/dist/types/auth.js +3 -9
- package/dist/types/auth.js.map +1 -1
- package/dist/types/cache.js +1 -2
- package/dist/types/cdn.js +1 -2
- package/dist/types/config.d.ts +73 -2
- package/dist/types/config.js +1 -2
- package/dist/types/config.js.map +1 -1
- package/dist/types/core.d.ts +36 -42
- package/dist/types/core.js +1 -2
- package/dist/types/database.js +1 -2
- package/dist/types/discovery.js +1 -2
- package/dist/types/events.js +1 -2
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/hooks.js +1 -2
- package/dist/types/http.d.ts +16 -1
- package/dist/types/http.js +1 -2
- package/dist/types/logger.d.ts +7 -0
- package/dist/types/logger.js +1 -2
- package/dist/types/module.d.ts +11 -0
- package/dist/types/module.js +1 -2
- package/dist/types/runtime.d.ts +1 -1
- package/dist/types/runtime.js +1 -2
- package/dist/types/session.js +1 -2
- package/jest.config.mjs +41 -0
- package/package.json +19 -52
- package/src/core/auth/morojs-adapter.ts +18 -13
- package/src/core/config/config-manager.ts +133 -0
- package/src/core/config/config-sources.ts +600 -0
- package/src/core/config/config-validator.ts +1116 -0
- package/src/core/config/file-loader.ts +16 -273
- package/src/core/config/index.ts +83 -34
- package/src/core/config/schema.ts +47 -33
- package/src/core/config/utils.ts +24 -31
- package/src/core/database/README.md +26 -16
- package/src/core/database/adapters/drizzle.ts +18 -6
- package/src/core/database/adapters/index.ts +13 -13
- package/src/core/database/adapters/mongodb.ts +53 -5
- package/src/core/database/adapters/mysql.ts +32 -4
- package/src/core/database/adapters/postgresql.ts +30 -5
- package/src/core/database/adapters/redis.ts +61 -8
- package/src/core/database/adapters/sqlite.ts +19 -3
- package/src/core/database/index.ts +2 -2
- package/src/core/docs/index.ts +8 -8
- package/src/core/docs/openapi-generator.ts +4 -4
- package/src/core/docs/schema-to-openapi.ts +3 -6
- package/src/core/docs/simple-docs.ts +2 -2
- package/src/core/docs/swagger-ui.ts +19 -16
- package/src/core/docs/zod-to-openapi.ts +34 -34
- package/src/core/events/event-bus.ts +3 -3
- package/src/core/events/index.ts +2 -2
- package/src/core/framework.ts +320 -71
- package/src/core/http/http-server.ts +203 -143
- package/src/core/http/index.ts +4 -3
- package/src/core/http/uws-http-server.ts +591 -0
- package/src/core/logger/filters.ts +13 -5
- package/src/core/logger/index.ts +4 -3
- package/src/core/logger/logger.ts +435 -216
- package/src/core/logger/outputs.ts +1 -3
- package/src/core/middleware/built-in/adapters/cache/file.ts +3 -3
- package/src/core/middleware/built-in/adapters/cache/index.ts +7 -7
- package/src/core/middleware/built-in/adapters/cache/memory.ts +2 -2
- package/src/core/middleware/built-in/adapters/cache/redis.ts +18 -4
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +2 -2
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +2 -2
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +16 -5
- package/src/core/middleware/built-in/adapters/cdn/index.ts +7 -7
- package/src/core/middleware/built-in/adapters/index.ts +4 -4
- package/src/core/middleware/built-in/auth-helpers.ts +1 -1
- package/src/core/middleware/built-in/auth-providers.ts +1 -1
- package/src/core/middleware/built-in/auth.ts +102 -21
- package/src/core/middleware/built-in/cache.ts +8 -6
- package/src/core/middleware/built-in/cdn.ts +4 -4
- package/src/core/middleware/built-in/cookie.ts +2 -2
- package/src/core/middleware/built-in/cors.ts +2 -2
- package/src/core/middleware/built-in/csp.ts +3 -3
- package/src/core/middleware/built-in/csrf.ts +3 -3
- package/src/core/middleware/built-in/error-tracker.ts +1 -1
- package/src/core/middleware/built-in/index.ts +38 -30
- package/src/core/middleware/built-in/jwt-helpers.ts +243 -0
- package/src/core/middleware/built-in/performance-monitor.ts +1 -1
- package/src/core/middleware/built-in/rate-limit.ts +2 -2
- package/src/core/middleware/built-in/request-logger.ts +3 -1
- package/src/core/middleware/built-in/session.ts +7 -8
- package/src/core/middleware/built-in/sse.ts +11 -9
- package/src/core/middleware/built-in/validation.ts +2 -2
- package/src/core/middleware/index.ts +6 -6
- package/src/core/modules/auto-discovery.ts +478 -15
- package/src/core/modules/index.ts +2 -2
- package/src/core/modules/modules.ts +23 -12
- package/src/core/networking/adapters/index.ts +4 -3
- package/src/core/networking/adapters/socketio-adapter.ts +5 -3
- package/src/core/networking/adapters/uws-adapter.ts +619 -0
- package/src/core/networking/adapters/ws-adapter.ts +8 -9
- package/src/core/networking/index.ts +3 -2
- package/src/core/networking/service-discovery.ts +6 -7
- package/src/core/networking/websocket-manager.ts +7 -7
- package/src/core/pooling/object-pool-manager.ts +630 -0
- package/src/core/routing/app-integration.ts +60 -112
- package/src/core/routing/index.ts +66 -293
- 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/core/runtime/aws-lambda-adapter.ts +3 -3
- package/src/core/runtime/base-adapter.ts +2 -2
- package/src/core/runtime/cloudflare-workers-adapter.ts +3 -3
- package/src/core/runtime/index.ts +13 -13
- package/src/core/runtime/node-adapter.ts +16 -10
- package/src/core/runtime/vercel-edge-adapter.ts +3 -3
- package/src/core/utilities/hooks.ts +3 -3
- package/src/core/utilities/index.ts +5 -4
- package/src/core/utilities/package-utils.ts +59 -0
- package/src/core/validation/adapters.ts +1 -1
- package/src/core/validation/index.ts +68 -16
- package/src/index.ts +73 -66
- package/src/moro.ts +784 -253
- package/src/types/config.ts +74 -2
- package/src/types/core.ts +49 -47
- package/src/types/hooks.ts +1 -1
- package/src/types/http.ts +23 -1
- package/src/types/logger.ts +9 -0
- package/src/types/module.ts +12 -0
- package/src/types/runtime.ts +1 -1
- package/tsconfig.json +4 -2
- package/dist/core/config/loader.d.ts +0 -7
- package/dist/core/config/loader.js +0 -269
- package/dist/core/config/loader.js.map +0 -1
- package/dist/core/config/validation.d.ts +0 -17
- package/dist/core/config/validation.js +0 -131
- package/dist/core/config/validation.js.map +0 -1
- package/dist/core/http/router.d.ts +0 -14
- package/dist/core/http/router.js +0 -109
- package/dist/core/http/router.js.map +0 -1
- package/src/core/config/loader.ts +0 -633
- package/src/core/config/validation.ts +0 -140
- package/src/core/http/router.ts +0 -141
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
// Intelligent Routing System for Moro Framework
|
|
2
2
|
// Schema-first with automatic middleware ordering and chainable API
|
|
3
|
+
//
|
|
4
|
+
// NOTE: This file exports types and thin facades to UnifiedRouter
|
|
5
|
+
// All routing logic has been consolidated in unified-router.ts
|
|
3
6
|
|
|
4
|
-
import { ValidationSchema } from '../validation/schema-interface';
|
|
5
|
-
import { HttpRequest, HttpResponse } from '../http';
|
|
6
|
-
import {
|
|
7
|
+
import { ValidationSchema } from '../validation/schema-interface.js';
|
|
8
|
+
import { HttpRequest, HttpResponse } from '../http/index.js';
|
|
9
|
+
import { UnifiedRouter } from './unified-router.js';
|
|
7
10
|
|
|
8
|
-
|
|
11
|
+
// ===== TYPE EXPORTS (Keep all - used by app code) =====
|
|
9
12
|
|
|
10
|
-
// Core types
|
|
11
13
|
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
|
|
12
14
|
export type RouteHandler<T = any> = (req: HttpRequest, res: HttpResponse) => T | Promise<T>;
|
|
13
15
|
export type Middleware = (
|
|
@@ -16,7 +18,6 @@ export type Middleware = (
|
|
|
16
18
|
next: () => void
|
|
17
19
|
) => void | Promise<void>;
|
|
18
20
|
|
|
19
|
-
// Configuration interfaces
|
|
20
21
|
export interface ValidationConfig {
|
|
21
22
|
body?: ValidationSchema;
|
|
22
23
|
query?: ValidationSchema;
|
|
@@ -42,107 +43,93 @@ export interface CacheConfig {
|
|
|
42
43
|
tags?: string[];
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
// Middleware phases for intelligent ordering
|
|
46
46
|
export interface MiddlewarePhases {
|
|
47
|
-
before?: Middleware[];
|
|
48
|
-
after?: Middleware[];
|
|
49
|
-
transform?: Middleware[];
|
|
47
|
+
before?: Middleware[];
|
|
48
|
+
after?: Middleware[];
|
|
49
|
+
transform?: Middleware[];
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
// Core route schema
|
|
53
52
|
export interface RouteSchema {
|
|
54
53
|
method: HttpMethod;
|
|
55
54
|
path: string;
|
|
56
55
|
handler: RouteHandler;
|
|
57
|
-
|
|
58
|
-
// Framework-managed (order-independent)
|
|
59
56
|
validation?: ValidationConfig;
|
|
60
57
|
auth?: AuthConfig;
|
|
61
58
|
rateLimit?: RateLimitConfig;
|
|
62
59
|
cache?: CacheConfig;
|
|
63
|
-
|
|
64
|
-
// Custom middleware with phase hints
|
|
65
60
|
middleware?: MiddlewarePhases;
|
|
66
|
-
|
|
67
|
-
// Metadata
|
|
68
61
|
description?: string;
|
|
69
62
|
tags?: string[];
|
|
70
63
|
}
|
|
71
64
|
|
|
72
|
-
// Execution phases in optimal order
|
|
73
65
|
export const EXECUTION_PHASES = [
|
|
74
|
-
'security',
|
|
75
|
-
'parsing',
|
|
76
|
-
'rateLimit',
|
|
77
|
-
'before',
|
|
78
|
-
'auth',
|
|
79
|
-
'validation',
|
|
80
|
-
'transform',
|
|
81
|
-
'cache',
|
|
82
|
-
'after',
|
|
83
|
-
'handler',
|
|
66
|
+
'security',
|
|
67
|
+
'parsing',
|
|
68
|
+
'rateLimit',
|
|
69
|
+
'before',
|
|
70
|
+
'auth',
|
|
71
|
+
'validation',
|
|
72
|
+
'transform',
|
|
73
|
+
'cache',
|
|
74
|
+
'after',
|
|
75
|
+
'handler',
|
|
84
76
|
] as const;
|
|
85
77
|
|
|
86
78
|
export type ExecutionPhase = (typeof EXECUTION_PHASES)[number];
|
|
87
79
|
|
|
88
|
-
// Enhanced request with validation results
|
|
89
80
|
export interface ValidatedRequest<T = any> extends HttpRequest {
|
|
90
81
|
validatedBody?: T;
|
|
91
82
|
validatedQuery?: any;
|
|
92
83
|
validatedParams?: any;
|
|
93
84
|
validatedHeaders?: any;
|
|
94
|
-
user?: any;
|
|
85
|
+
user?: any;
|
|
95
86
|
}
|
|
96
87
|
|
|
97
|
-
//
|
|
88
|
+
// ===== ROUTE BUILDER INTERFACE (Public API) =====
|
|
89
|
+
|
|
98
90
|
export interface RouteBuilder {
|
|
99
|
-
// Validation methods
|
|
100
91
|
validate(config: ValidationConfig): RouteBuilder;
|
|
101
92
|
body<T>(schema: ValidationSchema<T>): RouteBuilder;
|
|
102
93
|
query<T>(schema: ValidationSchema<T>): RouteBuilder;
|
|
103
94
|
params<T>(schema: ValidationSchema<T>): RouteBuilder;
|
|
104
95
|
headers<T>(schema: ValidationSchema<T>): RouteBuilder;
|
|
105
|
-
|
|
106
|
-
// Security/Auth methods
|
|
107
96
|
auth(config: AuthConfig): RouteBuilder;
|
|
108
97
|
rateLimit(config: RateLimitConfig): RouteBuilder;
|
|
109
|
-
|
|
110
|
-
// Caching
|
|
111
98
|
cache(config: CacheConfig): RouteBuilder;
|
|
112
|
-
|
|
113
|
-
// Custom middleware with phase control
|
|
114
99
|
before(...middleware: Middleware[]): RouteBuilder;
|
|
115
100
|
after(...middleware: Middleware[]): RouteBuilder;
|
|
116
101
|
transform(...middleware: Middleware[]): RouteBuilder;
|
|
117
|
-
use(...middleware: Middleware[]): RouteBuilder;
|
|
118
|
-
|
|
119
|
-
// Metadata
|
|
102
|
+
use(...middleware: Middleware[]): RouteBuilder;
|
|
120
103
|
describe(description: string): RouteBuilder;
|
|
121
104
|
tag(...tags: string[]): RouteBuilder;
|
|
122
|
-
|
|
123
|
-
// Terminal method
|
|
124
|
-
handler<T>(handler: RouteHandler<T>): CompiledRoute;
|
|
105
|
+
handler<T>(handler: RouteHandler<T>): void;
|
|
125
106
|
}
|
|
126
107
|
|
|
127
|
-
//
|
|
108
|
+
// ===== COMPILED ROUTE INTERFACE (Public API) =====
|
|
109
|
+
|
|
128
110
|
export interface CompiledRoute {
|
|
129
111
|
schema: RouteSchema;
|
|
130
112
|
execute(req: HttpRequest, res: HttpResponse): Promise<void>;
|
|
131
113
|
}
|
|
132
114
|
|
|
133
|
-
//
|
|
115
|
+
// ===== FACADE IMPLEMENTATIONS (Delegate to UnifiedRouter) =====
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Thin facade to UnifiedRouter.RouteBuilder
|
|
119
|
+
* Maintains backward compatibility while using optimized implementation
|
|
120
|
+
*/
|
|
134
121
|
export class IntelligentRouteBuilder implements RouteBuilder {
|
|
135
122
|
private schema: Partial<RouteSchema>;
|
|
123
|
+
private router = UnifiedRouter.getInstance();
|
|
136
124
|
|
|
137
125
|
constructor(method: HttpMethod, path: string) {
|
|
138
126
|
this.schema = {
|
|
139
127
|
method,
|
|
140
128
|
path,
|
|
141
|
-
middleware: {},
|
|
129
|
+
middleware: {} as MiddlewarePhases,
|
|
142
130
|
};
|
|
143
131
|
}
|
|
144
132
|
|
|
145
|
-
// Validation methods
|
|
146
133
|
validate(config: ValidationConfig): RouteBuilder {
|
|
147
134
|
this.schema.validation = { ...this.schema.validation, ...config };
|
|
148
135
|
return this;
|
|
@@ -172,7 +159,6 @@ export class IntelligentRouteBuilder implements RouteBuilder {
|
|
|
172
159
|
return this;
|
|
173
160
|
}
|
|
174
161
|
|
|
175
|
-
// Security methods
|
|
176
162
|
auth(config: AuthConfig): RouteBuilder {
|
|
177
163
|
this.schema.auth = config;
|
|
178
164
|
return this;
|
|
@@ -183,28 +169,29 @@ export class IntelligentRouteBuilder implements RouteBuilder {
|
|
|
183
169
|
return this;
|
|
184
170
|
}
|
|
185
171
|
|
|
186
|
-
// Caching
|
|
187
172
|
cache(config: CacheConfig): RouteBuilder {
|
|
188
173
|
this.schema.cache = config;
|
|
189
174
|
return this;
|
|
190
175
|
}
|
|
191
176
|
|
|
192
|
-
// Custom middleware
|
|
193
177
|
before(...middleware: Middleware[]): RouteBuilder {
|
|
194
178
|
if (!this.schema.middleware) this.schema.middleware = {};
|
|
195
|
-
|
|
179
|
+
const phases = this.schema.middleware as MiddlewarePhases;
|
|
180
|
+
phases.before = [...(phases.before || []), ...middleware];
|
|
196
181
|
return this;
|
|
197
182
|
}
|
|
198
183
|
|
|
199
184
|
after(...middleware: Middleware[]): RouteBuilder {
|
|
200
185
|
if (!this.schema.middleware) this.schema.middleware = {};
|
|
201
|
-
|
|
186
|
+
const phases = this.schema.middleware as MiddlewarePhases;
|
|
187
|
+
phases.after = [...(phases.after || []), ...middleware];
|
|
202
188
|
return this;
|
|
203
189
|
}
|
|
204
190
|
|
|
205
191
|
transform(...middleware: Middleware[]): RouteBuilder {
|
|
206
192
|
if (!this.schema.middleware) this.schema.middleware = {};
|
|
207
|
-
|
|
193
|
+
const phases = this.schema.middleware as MiddlewarePhases;
|
|
194
|
+
phases.transform = [...(phases.transform || []), ...middleware];
|
|
208
195
|
return this;
|
|
209
196
|
}
|
|
210
197
|
|
|
@@ -212,7 +199,6 @@ export class IntelligentRouteBuilder implements RouteBuilder {
|
|
|
212
199
|
return this.after(...middleware);
|
|
213
200
|
}
|
|
214
201
|
|
|
215
|
-
// Metadata
|
|
216
202
|
describe(description: string): RouteBuilder {
|
|
217
203
|
this.schema.description = description;
|
|
218
204
|
return this;
|
|
@@ -223,8 +209,7 @@ export class IntelligentRouteBuilder implements RouteBuilder {
|
|
|
223
209
|
return this;
|
|
224
210
|
}
|
|
225
211
|
|
|
226
|
-
|
|
227
|
-
handler<T>(handler: RouteHandler<T>): CompiledRoute {
|
|
212
|
+
handler<T>(handler: RouteHandler<T>): void {
|
|
228
213
|
if (!handler) {
|
|
229
214
|
throw new Error('Handler is required');
|
|
230
215
|
}
|
|
@@ -234,255 +219,43 @@ export class IntelligentRouteBuilder implements RouteBuilder {
|
|
|
234
219
|
handler,
|
|
235
220
|
};
|
|
236
221
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
'RouteCompilation',
|
|
240
|
-
{
|
|
241
|
-
hasValidation: !!completeSchema.validation,
|
|
242
|
-
hasAuth: !!completeSchema.auth,
|
|
243
|
-
hasRateLimit: !!completeSchema.rateLimit,
|
|
244
|
-
hasCache: !!completeSchema.cache,
|
|
245
|
-
customMiddleware: {
|
|
246
|
-
before: completeSchema.middleware?.before?.length || 0,
|
|
247
|
-
after: completeSchema.middleware?.after?.length || 0,
|
|
248
|
-
transform: completeSchema.middleware?.transform?.length || 0,
|
|
249
|
-
},
|
|
250
|
-
}
|
|
251
|
-
);
|
|
252
|
-
|
|
253
|
-
return new ExecutableRoute(completeSchema);
|
|
222
|
+
// Delegate to UnifiedRouter
|
|
223
|
+
this.router.registerRoute(completeSchema);
|
|
254
224
|
}
|
|
255
225
|
}
|
|
256
226
|
|
|
257
|
-
|
|
227
|
+
/**
|
|
228
|
+
* Thin facade implementing CompiledRoute interface
|
|
229
|
+
* Just stores schema for documentation purposes
|
|
230
|
+
*/
|
|
258
231
|
export class ExecutableRoute implements CompiledRoute {
|
|
259
|
-
constructor(public readonly schema: RouteSchema) {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
const validatedReq = req as ValidatedRequest;
|
|
263
|
-
|
|
264
|
-
try {
|
|
265
|
-
// Execute middleware in intelligent order
|
|
266
|
-
await this.executePhase('before', validatedReq, res);
|
|
267
|
-
await this.executePhase('rateLimit', validatedReq, res);
|
|
268
|
-
await this.executePhase('auth', validatedReq, res);
|
|
269
|
-
await this.executePhase('validation', validatedReq, res);
|
|
270
|
-
await this.executePhase('transform', validatedReq, res);
|
|
271
|
-
await this.executePhase('cache', validatedReq, res);
|
|
272
|
-
await this.executePhase('after', validatedReq, res);
|
|
273
|
-
|
|
274
|
-
// Execute handler last
|
|
275
|
-
if (!res.headersSent) {
|
|
276
|
-
await this.executePhase('handler', validatedReq, res);
|
|
277
|
-
}
|
|
278
|
-
} catch (error) {
|
|
279
|
-
logger.error('Route execution error', 'RouteExecution', {
|
|
280
|
-
error: error instanceof Error ? error.message : String(error),
|
|
281
|
-
route: `${this.schema.method} ${this.schema.path}`,
|
|
282
|
-
requestId: req.requestId,
|
|
283
|
-
});
|
|
284
|
-
|
|
285
|
-
if (!res.headersSent) {
|
|
286
|
-
res.status(500).json({
|
|
287
|
-
success: false,
|
|
288
|
-
error: 'Internal server error',
|
|
289
|
-
requestId: req.requestId,
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
private async executePhase(
|
|
296
|
-
phase: ExecutionPhase,
|
|
297
|
-
req: ValidatedRequest,
|
|
298
|
-
res: HttpResponse
|
|
299
|
-
): Promise<void> {
|
|
300
|
-
switch (phase) {
|
|
301
|
-
case 'before':
|
|
302
|
-
if (this.schema.middleware?.before) {
|
|
303
|
-
for (const middleware of this.schema.middleware.before) {
|
|
304
|
-
await this.executeMiddleware(middleware, req, res);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
break;
|
|
308
|
-
|
|
309
|
-
case 'rateLimit':
|
|
310
|
-
if (this.schema.rateLimit) {
|
|
311
|
-
await this.executeRateLimit(req, res);
|
|
312
|
-
}
|
|
313
|
-
break;
|
|
314
|
-
|
|
315
|
-
case 'auth':
|
|
316
|
-
if (this.schema.auth) {
|
|
317
|
-
await this.executeAuth(req, res);
|
|
318
|
-
}
|
|
319
|
-
break;
|
|
320
|
-
|
|
321
|
-
case 'validation':
|
|
322
|
-
if (this.schema.validation) {
|
|
323
|
-
await this.executeValidation(req, res);
|
|
324
|
-
}
|
|
325
|
-
break;
|
|
326
|
-
|
|
327
|
-
case 'transform':
|
|
328
|
-
if (this.schema.middleware?.transform) {
|
|
329
|
-
for (const middleware of this.schema.middleware.transform) {
|
|
330
|
-
await this.executeMiddleware(middleware, req, res);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
break;
|
|
334
|
-
|
|
335
|
-
case 'cache':
|
|
336
|
-
if (this.schema.cache) {
|
|
337
|
-
await this.executeCache(req, res);
|
|
338
|
-
}
|
|
339
|
-
break;
|
|
340
|
-
|
|
341
|
-
case 'after':
|
|
342
|
-
if (this.schema.middleware?.after) {
|
|
343
|
-
for (const middleware of this.schema.middleware.after) {
|
|
344
|
-
await this.executeMiddleware(middleware, req, res);
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
break;
|
|
348
|
-
|
|
349
|
-
case 'handler': {
|
|
350
|
-
const result = await this.schema.handler(req, res);
|
|
351
|
-
if (result !== undefined && !res.headersSent) {
|
|
352
|
-
res.json(result);
|
|
353
|
-
}
|
|
354
|
-
break;
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
private async executeMiddleware(
|
|
360
|
-
middleware: Middleware,
|
|
361
|
-
req: HttpRequest,
|
|
362
|
-
res: HttpResponse
|
|
363
|
-
): Promise<void> {
|
|
364
|
-
return new Promise((resolve, reject) => {
|
|
365
|
-
try {
|
|
366
|
-
const next = () => resolve();
|
|
367
|
-
const result = middleware(req, res, next);
|
|
368
|
-
if (result instanceof Promise) {
|
|
369
|
-
result.then(() => resolve()).catch(reject);
|
|
370
|
-
}
|
|
371
|
-
} catch (error) {
|
|
372
|
-
reject(error);
|
|
373
|
-
}
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
private async executeRateLimit(req: HttpRequest, res: HttpResponse): Promise<void> {
|
|
378
|
-
// Rate limiting implementation will be added
|
|
379
|
-
logger.debug('Rate limit check', 'RateLimit', {
|
|
380
|
-
config: this.schema.rateLimit,
|
|
381
|
-
ip: req.ip,
|
|
382
|
-
});
|
|
232
|
+
constructor(public readonly schema: RouteSchema) {
|
|
233
|
+
// Register with UnifiedRouter
|
|
234
|
+
UnifiedRouter.getInstance().registerRoute(schema);
|
|
383
235
|
}
|
|
384
236
|
|
|
385
|
-
|
|
386
|
-
//
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
private async executeValidation(req: ValidatedRequest, res: HttpResponse): Promise<void> {
|
|
393
|
-
if (!this.schema.validation) return;
|
|
394
|
-
|
|
395
|
-
const { body, query, params, headers } = this.schema.validation;
|
|
396
|
-
|
|
397
|
-
// Validate body
|
|
398
|
-
if (body && req.body !== undefined) {
|
|
399
|
-
try {
|
|
400
|
-
req.validatedBody = await body.parseAsync(req.body);
|
|
401
|
-
req.body = req.validatedBody; // Update original for compatibility
|
|
402
|
-
} catch (error: any) {
|
|
403
|
-
this.sendValidationError(res, error, 'body', req.requestId);
|
|
404
|
-
return;
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
// Validate query
|
|
409
|
-
if (query && req.query !== undefined) {
|
|
410
|
-
try {
|
|
411
|
-
req.validatedQuery = await query.parseAsync(req.query);
|
|
412
|
-
req.query = req.validatedQuery; // Update original for compatibility
|
|
413
|
-
} catch (error: any) {
|
|
414
|
-
this.sendValidationError(res, error, 'query', req.requestId);
|
|
415
|
-
return;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
// Validate params
|
|
420
|
-
if (params && req.params !== undefined) {
|
|
421
|
-
try {
|
|
422
|
-
req.validatedParams = await params.parseAsync(req.params);
|
|
423
|
-
req.params = req.validatedParams; // Update original for compatibility
|
|
424
|
-
} catch (error: any) {
|
|
425
|
-
this.sendValidationError(res, error, 'params', req.requestId);
|
|
426
|
-
return;
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
// Validate headers
|
|
431
|
-
if (headers && req.headers !== undefined) {
|
|
432
|
-
try {
|
|
433
|
-
req.validatedHeaders = await headers.parseAsync(req.headers);
|
|
434
|
-
} catch (error: any) {
|
|
435
|
-
this.sendValidationError(res, error, 'headers', req.requestId);
|
|
436
|
-
return;
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
logger.debug('Validation passed', 'Validation', {
|
|
441
|
-
route: `${this.schema.method} ${this.schema.path}`,
|
|
442
|
-
validatedFields: Object.keys(this.schema.validation),
|
|
443
|
-
});
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
private sendValidationError(
|
|
447
|
-
res: HttpResponse,
|
|
448
|
-
error: any,
|
|
449
|
-
field: string,
|
|
450
|
-
requestId?: string
|
|
451
|
-
): void {
|
|
452
|
-
if (error.issues) {
|
|
453
|
-
res.status(400).json({
|
|
454
|
-
success: false,
|
|
455
|
-
error: `Validation failed for ${field}`,
|
|
456
|
-
details: error.issues.map((issue: any) => ({
|
|
457
|
-
field: issue.path.length > 0 ? issue.path.join('.') : field,
|
|
458
|
-
message: issue.message,
|
|
459
|
-
code: issue.code,
|
|
460
|
-
})),
|
|
461
|
-
requestId,
|
|
462
|
-
});
|
|
463
|
-
} else {
|
|
464
|
-
res.status(400).json({
|
|
465
|
-
success: false,
|
|
466
|
-
error: `Validation failed for ${field}`,
|
|
467
|
-
requestId,
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
private async executeCache(req: HttpRequest, res: HttpResponse): Promise<void> {
|
|
473
|
-
// Caching implementation will be added
|
|
474
|
-
logger.debug('Cache check', 'Cache', {
|
|
475
|
-
config: this.schema.cache,
|
|
476
|
-
});
|
|
237
|
+
async execute(req: HttpRequest, res: HttpResponse): Promise<void> {
|
|
238
|
+
// This is never called - UnifiedRouter handles execution
|
|
239
|
+
// But we implement it for interface compatibility
|
|
240
|
+
throw new Error(
|
|
241
|
+
'ExecutableRoute.execute() should not be called directly - routing handled by UnifiedRouter'
|
|
242
|
+
);
|
|
477
243
|
}
|
|
478
244
|
}
|
|
479
245
|
|
|
480
|
-
//
|
|
246
|
+
// ===== FACTORY FUNCTIONS (Backward Compatibility) =====
|
|
247
|
+
|
|
481
248
|
export function createRoute(method: HttpMethod, path: string): RouteBuilder {
|
|
482
249
|
return new IntelligentRouteBuilder(method, path);
|
|
483
250
|
}
|
|
484
251
|
|
|
485
|
-
// Schema-first route creation
|
|
486
252
|
export function defineRoute(schema: RouteSchema): CompiledRoute {
|
|
487
253
|
return new ExecutableRoute(schema);
|
|
488
254
|
}
|
|
255
|
+
|
|
256
|
+
// ===== RE-EXPORTS FROM UNIFIED ROUTER =====
|
|
257
|
+
|
|
258
|
+
export { UnifiedRouter } from './unified-router.js';
|
|
259
|
+
export { RouteBuilder as UnifiedRouteBuilder } from './unified-router.js';
|
|
260
|
+
export { PathMatcher, type CompiledPath, type MatchResult } from './path-matcher.js';
|
|
261
|
+
export { ObjectPoolManager, getPoolManager } from '../pooling/object-pool-manager.js';
|