@morojs/moro 1.5.16 → 1.6.0
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 +70 -269
- package/dist/core/auth/morojs-adapter.js +5 -9
- package/dist/core/auth/morojs-adapter.js.map +1 -1
- package/dist/core/config/config-manager.d.ts +1 -1
- package/dist/core/config/config-manager.js +10 -20
- package/dist/core/config/config-manager.js.map +1 -1
- package/dist/core/config/config-sources.d.ts +2 -2
- package/dist/core/config/config-sources.js +17 -20
- package/dist/core/config/config-sources.js.map +1 -1
- package/dist/core/config/config-validator.d.ts +1 -1
- package/dist/core/config/config-validator.js +33 -10
- package/dist/core/config/config-validator.js.map +1 -1
- package/dist/core/config/file-loader.d.ts +1 -1
- package/dist/core/config/file-loader.js +19 -78
- package/dist/core/config/file-loader.js.map +1 -1
- package/dist/core/config/index.d.ts +8 -8
- package/dist/core/config/index.js +25 -51
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.d.ts +2 -2
- package/dist/core/config/schema.js +11 -13
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.d.ts +1 -1
- package/dist/core/config/utils.js +18 -32
- 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 +3 -1
- package/dist/core/database/adapters/mongodb.js +23 -8
- package/dist/core/database/adapters/mongodb.js.map +1 -1
- package/dist/core/database/adapters/mysql.d.ts +3 -1
- package/dist/core/database/adapters/mysql.js +18 -9
- package/dist/core/database/adapters/mysql.js.map +1 -1
- package/dist/core/database/adapters/postgresql.d.ts +3 -1
- package/dist/core/database/adapters/postgresql.js +18 -8
- package/dist/core/database/adapters/postgresql.js.map +1 -1
- package/dist/core/database/adapters/redis.d.ts +3 -1
- package/dist/core/database/adapters/redis.js +34 -9
- 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 +6 -10
- 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 +16 -6
- package/dist/core/framework.js +182 -92
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +1 -1
- package/dist/core/http/http-server.js +26 -209
- 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/router.d.ts +1 -1
- package/dist/core/http/router.js +3 -7
- package/dist/core/http/router.js.map +1 -1
- package/dist/core/http/uws-http-server.d.ts +64 -0
- package/dist/core/http/uws-http-server.js +688 -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 +8 -19
- 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 -25
- package/dist/core/logger/index.js.map +1 -1
- package/dist/core/logger/logger.d.ts +1 -1
- package/dist/core/logger/logger.js +21 -23
- 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 -15
- 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 +51 -44
- 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 +8 -11
- 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 -28
- package/dist/core/middleware/built-in/index.js +47 -82
- package/dist/core/middleware/built-in/index.js.map +1 -1
- package/dist/core/middleware/built-in/jwt-helpers.d.ts +27 -2
- package/dist/core/middleware/built-in/jwt-helpers.js +32 -10
- package/dist/core/middleware/built-in/jwt-helpers.js.map +1 -1
- 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 +3 -7
- 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 +3 -7
- 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 +3 -3
- package/dist/core/modules/auto-discovery.js +43 -81
- 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 +11 -52
- 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 +1 -1
- package/dist/core/networking/adapters/ws-adapter.js +7 -42
- 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 +3 -7
- 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/routing/app-integration.d.ts +2 -2
- package/dist/core/routing/app-integration.js +7 -12
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/index.d.ts +2 -2
- package/dist/core/routing/index.js +7 -14
- package/dist/core/routing/index.js.map +1 -1
- 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 +6 -43
- 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 +30 -10
- package/dist/moro.js +262 -126
- 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 +13 -1
- package/dist/types/config.js +1 -2
- package/dist/types/config.js.map +1 -1
- package/dist/types/core.d.ts +3 -3
- 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.js +1 -2
- package/dist/types/logger.js +1 -2
- 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 +18 -51
- package/src/core/auth/morojs-adapter.ts +1 -1
- package/src/core/config/config-manager.ts +2 -2
- package/src/core/config/config-sources.ts +6 -6
- package/src/core/config/config-validator.ts +38 -3
- package/src/core/config/file-loader.ts +13 -40
- package/src/core/config/index.ts +15 -11
- package/src/core/config/schema.ts +3 -2
- package/src/core/config/utils.ts +3 -3
- 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 +23 -3
- package/src/core/database/adapters/mysql.ts +18 -4
- package/src/core/database/adapters/postgresql.ts +18 -3
- package/src/core/database/adapters/redis.ts +34 -4
- 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 +2 -2
- package/src/core/events/index.ts +2 -2
- package/src/core/framework.ts +190 -49
- package/src/core/http/http-server.ts +16 -159
- package/src/core/http/index.ts +4 -3
- package/src/core/http/router.ts +2 -2
- package/src/core/http/uws-http-server.ts +794 -0
- package/src/core/logger/filters.ts +1 -1
- package/src/core/logger/index.ts +3 -3
- package/src/core/logger/logger.ts +9 -1
- package/src/core/logger/outputs.ts +1 -1
- 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 +64 -41
- package/src/core/middleware/built-in/cache.ts +5 -5
- 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 +31 -31
- package/src/core/middleware/built-in/jwt-helpers.ts +32 -4
- 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 +1 -1
- package/src/core/middleware/built-in/session.ts +7 -8
- package/src/core/middleware/built-in/sse.ts +2 -2
- 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 +4 -4
- package/src/core/modules/index.ts +2 -2
- package/src/core/modules/modules.ts +4 -4
- 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 +6 -4
- package/src/core/networking/index.ts +3 -2
- package/src/core/networking/service-discovery.ts +1 -1
- package/src/core/networking/websocket-manager.ts +7 -7
- package/src/core/routing/app-integration.ts +3 -3
- package/src/core/routing/index.ts +3 -3
- 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 +4 -4
- 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 +303 -75
- package/src/types/config.ts +13 -1
- package/src/types/core.ts +3 -3
- package/src/types/hooks.ts +1 -1
- package/src/types/runtime.ts +1 -1
- package/tsconfig.json +4 -2
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.middleware = exports.HookManager = exports.HOOK_EVENTS = void 0;
|
|
4
1
|
// Hook System for Moro
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
import { createFrameworkLogger } from '../logger/index.js';
|
|
4
|
+
export const HOOK_EVENTS = {
|
|
8
5
|
BEFORE_REQUEST: 'before:request',
|
|
9
6
|
AFTER_REQUEST: 'after:request',
|
|
10
7
|
BEFORE_RESPONSE: 'before:response',
|
|
11
8
|
AFTER_RESPONSE: 'after:response',
|
|
12
9
|
ERROR: 'error',
|
|
13
10
|
};
|
|
14
|
-
class HookManager extends
|
|
11
|
+
export class HookManager extends EventEmitter {
|
|
15
12
|
hooks = new Map();
|
|
16
13
|
beforeHooks = new Map();
|
|
17
14
|
afterHooks = new Map();
|
|
18
|
-
logger =
|
|
15
|
+
logger = createFrameworkLogger('Hooks');
|
|
19
16
|
constructor() {
|
|
20
17
|
super();
|
|
21
18
|
// Initialize hook arrays
|
|
22
|
-
Object.values(
|
|
19
|
+
Object.values(HOOK_EVENTS).forEach(event => {
|
|
23
20
|
this.hooks.set(event, []);
|
|
24
21
|
this.beforeHooks.set(event, []);
|
|
25
22
|
this.afterHooks.set(event, []);
|
|
@@ -124,8 +121,6 @@ class HookManager extends events_1.EventEmitter {
|
|
|
124
121
|
return allHooks;
|
|
125
122
|
}
|
|
126
123
|
}
|
|
127
|
-
exports.HookManager = HookManager;
|
|
128
124
|
// Built-in middleware - now organized in individual files
|
|
129
|
-
|
|
130
|
-
Object.defineProperty(exports, "middleware", { enumerable: true, get: function () { return index_1.simpleMiddleware; } });
|
|
125
|
+
export { simpleMiddleware as middleware } from '../middleware/index.js';
|
|
131
126
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/core/utilities/hooks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/core/utilities/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { Container, FunctionalContainer, ServiceScope, ServiceLifecycle, withLogging, withCaching, withRetry, withTimeout, } from './container';
|
|
2
|
-
export { CircuitBreaker } from './circuit-breaker';
|
|
3
|
-
export { HookManager, HOOK_EVENTS } from './hooks';
|
|
4
|
-
export {
|
|
1
|
+
export { Container, FunctionalContainer, ServiceScope, ServiceLifecycle, withLogging, withCaching, withRetry, withTimeout, } from './container.js';
|
|
2
|
+
export { CircuitBreaker } from './circuit-breaker.js';
|
|
3
|
+
export { HookManager, HOOK_EVENTS } from './hooks.js';
|
|
4
|
+
export { isPackageAvailable, resolveUserPackage, createUserRequire } from './package-utils.js';
|
|
5
|
+
export { middleware } from './hooks.js';
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.middleware = exports.HOOK_EVENTS = exports.HookManager = exports.CircuitBreaker = exports.withTimeout = exports.withRetry = exports.withCaching = exports.withLogging = exports.ServiceLifecycle = exports.ServiceScope = exports.FunctionalContainer = exports.Container = void 0;
|
|
4
1
|
// Core Utilities - Centralized Exports
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(exports, "ServiceLifecycle", { enumerable: true, get: function () { return container_1.ServiceLifecycle; } });
|
|
10
|
-
Object.defineProperty(exports, "withLogging", { enumerable: true, get: function () { return container_1.withLogging; } });
|
|
11
|
-
Object.defineProperty(exports, "withCaching", { enumerable: true, get: function () { return container_1.withCaching; } });
|
|
12
|
-
Object.defineProperty(exports, "withRetry", { enumerable: true, get: function () { return container_1.withRetry; } });
|
|
13
|
-
Object.defineProperty(exports, "withTimeout", { enumerable: true, get: function () { return container_1.withTimeout; } });
|
|
14
|
-
var circuit_breaker_1 = require("./circuit-breaker");
|
|
15
|
-
Object.defineProperty(exports, "CircuitBreaker", { enumerable: true, get: function () { return circuit_breaker_1.CircuitBreaker; } });
|
|
16
|
-
var hooks_1 = require("./hooks");
|
|
17
|
-
Object.defineProperty(exports, "HookManager", { enumerable: true, get: function () { return hooks_1.HookManager; } });
|
|
18
|
-
Object.defineProperty(exports, "HOOK_EVENTS", { enumerable: true, get: function () { return hooks_1.HOOK_EVENTS; } });
|
|
2
|
+
export { Container, FunctionalContainer, ServiceScope, ServiceLifecycle, withLogging, withCaching, withRetry, withTimeout, } from './container.js';
|
|
3
|
+
export { CircuitBreaker } from './circuit-breaker.js';
|
|
4
|
+
export { HookManager, HOOK_EVENTS } from './hooks.js';
|
|
5
|
+
export { isPackageAvailable, resolveUserPackage, createUserRequire } from './package-utils.js';
|
|
19
6
|
// Re-export middleware from hooks
|
|
20
|
-
|
|
21
|
-
Object.defineProperty(exports, "middleware", { enumerable: true, get: function () { return hooks_2.middleware; } });
|
|
7
|
+
export { middleware } from './hooks.js';
|
|
22
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/utilities/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/utilities/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,SAAS,EACT,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE/F,kCAAkC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if a package is available in the user's node_modules
|
|
3
|
+
* Uses ESM-compatible module resolution from the user's working directory
|
|
4
|
+
*
|
|
5
|
+
* @param packageName - The name of the package to check (e.g., 'socket.io', 'zod')
|
|
6
|
+
* @returns true if the package is installed, false otherwise
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* if (isPackageAvailable('socket.io')) {
|
|
10
|
+
* // socket.io is installed, safe to import
|
|
11
|
+
* const { Server } = await import('socket.io');
|
|
12
|
+
* }
|
|
13
|
+
*/
|
|
14
|
+
export declare function isPackageAvailable(packageName: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Resolve a package path from the user's node_modules
|
|
17
|
+
* Uses ESM-compatible module resolution from the user's working directory
|
|
18
|
+
*
|
|
19
|
+
* @param packageName - The name of the package to resolve
|
|
20
|
+
* @returns The resolved package path
|
|
21
|
+
* @throws Error if the package is not found
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const socketIOPath = resolveUserPackage('socket.io');
|
|
25
|
+
* const { Server } = await import(socketIOPath);
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveUserPackage(packageName: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Create a require function for the user's working directory
|
|
30
|
+
* Useful for resolving packages installed by the user, not in Moro's dependencies
|
|
31
|
+
*
|
|
32
|
+
* @returns A require function scoped to the user's working directory
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* const userRequire = createUserRequire();
|
|
36
|
+
* const packagePath = userRequire.resolve('some-package');
|
|
37
|
+
*/
|
|
38
|
+
export declare function createUserRequire(): NodeJS.Require;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// Package and Module Resolution Utilities
|
|
2
|
+
// ESM-compatible helpers for detecting and resolving optional dependencies
|
|
3
|
+
import { createRequire } from 'module';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
/**
|
|
6
|
+
* Check if a package is available in the user's node_modules
|
|
7
|
+
* Uses ESM-compatible module resolution from the user's working directory
|
|
8
|
+
*
|
|
9
|
+
* @param packageName - The name of the package to check (e.g., 'socket.io', 'zod')
|
|
10
|
+
* @returns true if the package is installed, false otherwise
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* if (isPackageAvailable('socket.io')) {
|
|
14
|
+
* // socket.io is installed, safe to import
|
|
15
|
+
* const { Server } = await import('socket.io');
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
export function isPackageAvailable(packageName) {
|
|
19
|
+
try {
|
|
20
|
+
const userRequire = createRequire(join(process.cwd(), 'package.json'));
|
|
21
|
+
userRequire.resolve(packageName);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve a package path from the user's node_modules
|
|
30
|
+
* Uses ESM-compatible module resolution from the user's working directory
|
|
31
|
+
*
|
|
32
|
+
* @param packageName - The name of the package to resolve
|
|
33
|
+
* @returns The resolved package path
|
|
34
|
+
* @throws Error if the package is not found
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* const socketIOPath = resolveUserPackage('socket.io');
|
|
38
|
+
* const { Server } = await import(socketIOPath);
|
|
39
|
+
*/
|
|
40
|
+
export function resolveUserPackage(packageName) {
|
|
41
|
+
const userRequire = createRequire(join(process.cwd(), 'package.json'));
|
|
42
|
+
return userRequire.resolve(packageName);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Create a require function for the user's working directory
|
|
46
|
+
* Useful for resolving packages installed by the user, not in Moro's dependencies
|
|
47
|
+
*
|
|
48
|
+
* @returns A require function scoped to the user's working directory
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* const userRequire = createUserRequire();
|
|
52
|
+
* const packagePath = userRequire.resolve('some-package');
|
|
53
|
+
*/
|
|
54
|
+
export function createUserRequire() {
|
|
55
|
+
return createRequire(join(process.cwd(), 'package.json'));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=package-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-utils.js","sourceRoot":"","sources":["../../../src/core/utilities/package-utils.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2EAA2E;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;QACvE,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IACvE,OAAO,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Validation Library Adapters for Moro Framework
|
|
3
2
|
// Makes Joi, Yup, and other libraries compatible with ValidationSchema interface
|
|
4
|
-
|
|
5
|
-
exports.ClassValidatorAdapter = exports.FunctionAdapter = exports.YupAdapter = exports.JoiAdapter = void 0;
|
|
6
|
-
exports.joi = joi;
|
|
7
|
-
exports.yup = yup;
|
|
8
|
-
exports.fn = fn;
|
|
9
|
-
exports.classValidator = classValidator;
|
|
10
|
-
const schema_interface_1 = require("./schema-interface");
|
|
3
|
+
import { ValidationError, normalizeValidationError } from './schema-interface.js';
|
|
11
4
|
/**
|
|
12
5
|
* Zod Compatibility Check
|
|
13
6
|
* Zod ALREADY implements ValidationSchema interface natively!
|
|
@@ -16,7 +9,7 @@ const schema_interface_1 = require("./schema-interface");
|
|
|
16
9
|
/**
|
|
17
10
|
* Joi Adapter - makes Joi schemas compatible with ValidationSchema
|
|
18
11
|
*/
|
|
19
|
-
class JoiAdapter {
|
|
12
|
+
export class JoiAdapter {
|
|
20
13
|
joiSchema;
|
|
21
14
|
constructor(joiSchema) {
|
|
22
15
|
this.joiSchema = joiSchema;
|
|
@@ -30,15 +23,14 @@ class JoiAdapter {
|
|
|
30
23
|
return result;
|
|
31
24
|
}
|
|
32
25
|
catch (error) {
|
|
33
|
-
throw
|
|
26
|
+
throw normalizeValidationError(error);
|
|
34
27
|
}
|
|
35
28
|
}
|
|
36
29
|
}
|
|
37
|
-
exports.JoiAdapter = JoiAdapter;
|
|
38
30
|
/**
|
|
39
31
|
* Yup Adapter - makes Yup schemas compatible with ValidationSchema
|
|
40
32
|
*/
|
|
41
|
-
class YupAdapter {
|
|
33
|
+
export class YupAdapter {
|
|
42
34
|
yupSchema;
|
|
43
35
|
constructor(yupSchema) {
|
|
44
36
|
this.yupSchema = yupSchema;
|
|
@@ -52,16 +44,15 @@ class YupAdapter {
|
|
|
52
44
|
return result;
|
|
53
45
|
}
|
|
54
46
|
catch (error) {
|
|
55
|
-
throw
|
|
47
|
+
throw normalizeValidationError(error);
|
|
56
48
|
}
|
|
57
49
|
}
|
|
58
50
|
}
|
|
59
|
-
exports.YupAdapter = YupAdapter;
|
|
60
51
|
/**
|
|
61
52
|
* Custom Validation Function Adapter
|
|
62
53
|
* Allows users to use simple validation functions
|
|
63
54
|
*/
|
|
64
|
-
class FunctionAdapter {
|
|
55
|
+
export class FunctionAdapter {
|
|
65
56
|
validateFn;
|
|
66
57
|
name;
|
|
67
58
|
constructor(validateFn, name = 'custom') {
|
|
@@ -76,7 +67,7 @@ class FunctionAdapter {
|
|
|
76
67
|
return await this.validateFn(data);
|
|
77
68
|
}
|
|
78
69
|
catch (error) {
|
|
79
|
-
throw new
|
|
70
|
+
throw new ValidationError([
|
|
80
71
|
{
|
|
81
72
|
path: [],
|
|
82
73
|
message: error instanceof Error ? error.message : String(error),
|
|
@@ -86,11 +77,10 @@ class FunctionAdapter {
|
|
|
86
77
|
}
|
|
87
78
|
}
|
|
88
79
|
}
|
|
89
|
-
exports.FunctionAdapter = FunctionAdapter;
|
|
90
80
|
/**
|
|
91
81
|
* Class Validator Adapter (for TypeScript decorators)
|
|
92
82
|
*/
|
|
93
|
-
class ClassValidatorAdapter {
|
|
83
|
+
export class ClassValidatorAdapter {
|
|
94
84
|
ClassType;
|
|
95
85
|
validate;
|
|
96
86
|
constructor(ClassType, validate) {
|
|
@@ -106,7 +96,7 @@ class ClassValidatorAdapter {
|
|
|
106
96
|
if (this.validate) {
|
|
107
97
|
const errors = await this.validate(instance);
|
|
108
98
|
if (errors && errors.length > 0) {
|
|
109
|
-
throw new
|
|
99
|
+
throw new ValidationError(errors.map((error, index) => ({
|
|
110
100
|
path: error.property ? [error.property] : [index],
|
|
111
101
|
message: Object.values(error.constraints || {}).join(', ') || 'Validation failed',
|
|
112
102
|
code: 'class_validator',
|
|
@@ -116,26 +106,25 @@ class ClassValidatorAdapter {
|
|
|
116
106
|
return instance;
|
|
117
107
|
}
|
|
118
108
|
catch (error) {
|
|
119
|
-
if (error instanceof
|
|
109
|
+
if (error instanceof ValidationError)
|
|
120
110
|
throw error;
|
|
121
|
-
throw
|
|
111
|
+
throw normalizeValidationError(error);
|
|
122
112
|
}
|
|
123
113
|
}
|
|
124
114
|
}
|
|
125
|
-
exports.ClassValidatorAdapter = ClassValidatorAdapter;
|
|
126
115
|
/**
|
|
127
116
|
* Utility functions for creating adapters
|
|
128
117
|
*/
|
|
129
|
-
function joi(joiSchema) {
|
|
118
|
+
export function joi(joiSchema) {
|
|
130
119
|
return new JoiAdapter(joiSchema);
|
|
131
120
|
}
|
|
132
|
-
function yup(yupSchema) {
|
|
121
|
+
export function yup(yupSchema) {
|
|
133
122
|
return new YupAdapter(yupSchema);
|
|
134
123
|
}
|
|
135
|
-
function fn(validateFn, name) {
|
|
124
|
+
export function fn(validateFn, name) {
|
|
136
125
|
return new FunctionAdapter(validateFn, name);
|
|
137
126
|
}
|
|
138
|
-
function classValidator(ClassType, validate) {
|
|
127
|
+
export function classValidator(ClassType, validate) {
|
|
139
128
|
return new ClassValidatorAdapter(ClassType, validate);
|
|
140
129
|
}
|
|
141
130
|
//# sourceMappingURL=adapters.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../src/core/validation/adapters.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../src/core/validation/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { HttpRequest, HttpResponse } from '../http';
|
|
2
|
-
import { ValidationSchema } from './schema-interface';
|
|
1
|
+
import { HttpRequest, HttpResponse } from '../http/index.js';
|
|
2
|
+
import { ValidationSchema } from './schema-interface.js';
|
|
3
|
+
export declare const z: any;
|
|
3
4
|
export interface ValidationConfig {
|
|
4
5
|
body?: ValidationSchema;
|
|
5
6
|
query?: ValidationSchema;
|
|
@@ -27,5 +28,6 @@ export declare function body<T>(schema: ValidationSchema<T>): (handler: (req: Va
|
|
|
27
28
|
export declare function query<T>(schema: ValidationSchema<T>): (handler: (req: ValidatedRequest<any>, res: HttpResponse) => any | Promise<any>) => (req: HttpRequest, res: HttpResponse) => Promise<any>;
|
|
28
29
|
export declare function params<T>(schema: ValidationSchema<T>): (handler: (req: ValidatedRequest<any>, res: HttpResponse) => any | Promise<any>) => (req: HttpRequest, res: HttpResponse) => Promise<any>;
|
|
29
30
|
export declare function combineSchemas(schemas: ValidationConfig): ValidationConfig;
|
|
30
|
-
export {
|
|
31
|
-
export {
|
|
31
|
+
export { ValidationError, normalizeValidationError } from './schema-interface.js';
|
|
32
|
+
export type { ValidationSchema, InferSchemaType } from './schema-interface.js';
|
|
33
|
+
export { joi, yup, fn as customValidator, classValidator } from './adapters.js';
|
|
@@ -1,20 +1,56 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Universal Validation System for Moro Framework
|
|
3
2
|
// Works with Zod, Joi, Yup, and any validation library via adapters
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
import { createFrameworkLogger } from '../logger/index.js';
|
|
4
|
+
import { createUserRequire, isPackageAvailable } from '../utilities/package-utils.js';
|
|
5
|
+
import { normalizeValidationError, } from './schema-interface.js';
|
|
6
|
+
const logger = createFrameworkLogger('Validation');
|
|
7
|
+
// Convenience re-export of Zod (optional - only works if zod is installed)
|
|
8
|
+
// Lazy-loads Zod synchronously on first access
|
|
9
|
+
// If zod is not installed, z will throw a helpful error
|
|
10
|
+
let zodModule = null;
|
|
11
|
+
let zodLoadAttempted = false;
|
|
12
|
+
function loadZodSync() {
|
|
13
|
+
if (zodLoadAttempted) {
|
|
14
|
+
return zodModule;
|
|
15
|
+
}
|
|
16
|
+
zodLoadAttempted = true;
|
|
17
|
+
try {
|
|
18
|
+
if (!isPackageAvailable('zod')) {
|
|
19
|
+
zodModule = null;
|
|
20
|
+
return zodModule;
|
|
21
|
+
}
|
|
22
|
+
// Use synchronous require for immediate availability
|
|
23
|
+
const userRequire = createUserRequire();
|
|
24
|
+
zodModule = userRequire('zod');
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Zod not installed or failed to load
|
|
28
|
+
zodModule = null;
|
|
29
|
+
}
|
|
30
|
+
return zodModule;
|
|
31
|
+
}
|
|
32
|
+
export const z = new Proxy({}, {
|
|
33
|
+
get(_target, prop) {
|
|
34
|
+
const zod = loadZodSync();
|
|
35
|
+
if (!zod) {
|
|
36
|
+
throw new Error('Zod is not installed. Please install it with: npm install zod\n' +
|
|
37
|
+
'Or use an alternative validation library (joi, yup, class-validator) via adapters.');
|
|
38
|
+
}
|
|
39
|
+
if (!zod.z) {
|
|
40
|
+
throw new Error('Zod module loaded but z export not found. This may be a version compatibility issue.');
|
|
41
|
+
}
|
|
42
|
+
return zod.z[prop];
|
|
43
|
+
},
|
|
44
|
+
apply(_target, thisArg, args) {
|
|
45
|
+
const zod = loadZodSync();
|
|
46
|
+
if (!zod?.z) {
|
|
47
|
+
throw new Error('Zod is not installed. Please install it with: npm install zod');
|
|
48
|
+
}
|
|
49
|
+
return zod.z.apply(thisArg, args);
|
|
50
|
+
},
|
|
51
|
+
});
|
|
16
52
|
// Main validation wrapper function
|
|
17
|
-
function validate(config, handler) {
|
|
53
|
+
export function validate(config, handler) {
|
|
18
54
|
return async (req, res) => {
|
|
19
55
|
try {
|
|
20
56
|
const validatedReq = req;
|
|
@@ -87,7 +123,7 @@ async function validateField(schema, data, fieldName) {
|
|
|
87
123
|
};
|
|
88
124
|
}
|
|
89
125
|
catch (error) {
|
|
90
|
-
const normalizedError =
|
|
126
|
+
const normalizedError = normalizeValidationError(error);
|
|
91
127
|
const errors = normalizedError.issues.map(issue => ({
|
|
92
128
|
field: issue.path.length > 0 ? issue.path.join('.') : fieldName,
|
|
93
129
|
message: issue.message,
|
|
@@ -118,33 +154,26 @@ function sendValidationError(res, errors, field) {
|
|
|
118
154
|
});
|
|
119
155
|
}
|
|
120
156
|
// Convenience functions for single-field validation
|
|
121
|
-
function body(schema) {
|
|
157
|
+
export function body(schema) {
|
|
122
158
|
return (handler) => {
|
|
123
159
|
return validate({ body: schema }, handler);
|
|
124
160
|
};
|
|
125
161
|
}
|
|
126
|
-
function query(schema) {
|
|
162
|
+
export function query(schema) {
|
|
127
163
|
return (handler) => {
|
|
128
164
|
return validate({ query: schema }, handler);
|
|
129
165
|
};
|
|
130
166
|
}
|
|
131
|
-
function params(schema) {
|
|
167
|
+
export function params(schema) {
|
|
132
168
|
return (handler) => {
|
|
133
169
|
return validate({ params: schema }, handler);
|
|
134
170
|
};
|
|
135
171
|
}
|
|
136
172
|
// Schema composition helpers
|
|
137
|
-
function combineSchemas(schemas) {
|
|
173
|
+
export function combineSchemas(schemas) {
|
|
138
174
|
return schemas;
|
|
139
175
|
}
|
|
140
176
|
// Re-export common validation tools
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
Object.defineProperty(exports, "normalizeValidationError", { enumerable: true, get: function () { return schema_interface_2.normalizeValidationError; } });
|
|
144
|
-
var adapters_1 = require("./adapters");
|
|
145
|
-
Object.defineProperty(exports, "joi", { enumerable: true, get: function () { return adapters_1.joi; } });
|
|
146
|
-
Object.defineProperty(exports, "yup", { enumerable: true, get: function () { return adapters_1.yup; } });
|
|
147
|
-
Object.defineProperty(exports, "customValidator", { enumerable: true, get: function () { return adapters_1.fn; } });
|
|
148
|
-
Object.defineProperty(exports, "classValidator", { enumerable: true, get: function () { return adapters_1.classValidator; } });
|
|
149
|
-
// Note: z is re-exported from main index.ts with dynamic import
|
|
177
|
+
export { ValidationError, normalizeValidationError } from './schema-interface.js';
|
|
178
|
+
export { joi, yup, fn as customValidator, classValidator } from './adapters.js';
|
|
150
179
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/validation/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/validation/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Universal Validation Schema Interface for Moro Framework
|
|
3
2
|
// Allows Zod, Joi, Yup, and other validation libraries to work seamlessly
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.ValidationError = void 0;
|
|
6
|
-
exports.isValidationSchema = isValidationSchema;
|
|
7
|
-
exports.normalizeValidationError = normalizeValidationError;
|
|
8
3
|
/**
|
|
9
4
|
* Standard validation error class
|
|
10
5
|
* Compatible with ZodError structure
|
|
11
6
|
*/
|
|
12
|
-
class ValidationError extends Error {
|
|
7
|
+
export class ValidationError extends Error {
|
|
13
8
|
issues;
|
|
14
9
|
constructor(issues) {
|
|
15
10
|
const message = `Validation failed: ${issues.map(i => i.message).join(', ')}`;
|
|
@@ -18,17 +13,16 @@ class ValidationError extends Error {
|
|
|
18
13
|
this.issues = issues;
|
|
19
14
|
}
|
|
20
15
|
}
|
|
21
|
-
exports.ValidationError = ValidationError;
|
|
22
16
|
/**
|
|
23
17
|
* Check if an object implements the ValidationSchema interface
|
|
24
18
|
*/
|
|
25
|
-
function isValidationSchema(obj) {
|
|
19
|
+
export function isValidationSchema(obj) {
|
|
26
20
|
return obj && typeof obj.parseAsync === 'function';
|
|
27
21
|
}
|
|
28
22
|
/**
|
|
29
23
|
* Convert various error formats to our standard ValidationError
|
|
30
24
|
*/
|
|
31
|
-
function normalizeValidationError(error) {
|
|
25
|
+
export function normalizeValidationError(error) {
|
|
32
26
|
// Already our format
|
|
33
27
|
if (error instanceof ValidationError) {
|
|
34
28
|
return error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-interface.js","sourceRoot":"","sources":["../../../src/core/validation/schema-interface.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-interface.js","sourceRoot":"","sources":["../../../src/core/validation/schema-interface.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,0EAA0E;AAW1E;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,MAAM,CAAoB;IAE1C,YAAY,MAAyB;QACnC,MAAM,OAAO,GAAG,sBAAsB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAcD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAQ;IACzC,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,UAAU,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAU;IACjD,qBAAqB;IACrB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,eAAe,CACxB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,mBAAmB;YAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;SAC9B,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,eAAe,CACxB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,mBAAmB;YAC9C,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;SAC/B,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,eAAe,CACxB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzC,OAAO,EAAE,GAAG;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;SAC9B,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,OAAO,IAAI,eAAe,CAAC;QACzB;YACE,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;YACvC,IAAI,EAAE,SAAS;SAChB;KACF,CAAC,CAAC;AACL,CAAC"}
|