@morojs/moro 1.6.2 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/http/http-server.js +12 -9
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/uws-http-server.js +1 -1
- package/dist/core/http/uws-http-server.js.map +1 -1
- package/dist/core/middleware/built-in/auth/core.d.ts +78 -0
- package/dist/core/middleware/built-in/auth/core.js +358 -0
- package/dist/core/middleware/built-in/auth/core.js.map +1 -0
- package/dist/core/middleware/built-in/{auth-helpers.js → auth/helpers.js} +1 -1
- package/dist/core/middleware/built-in/auth/helpers.js.map +1 -0
- package/dist/core/middleware/built-in/auth/hook.d.ts +30 -0
- package/dist/core/middleware/built-in/auth/hook.js +99 -0
- package/dist/core/middleware/built-in/auth/hook.js.map +1 -0
- package/dist/core/middleware/built-in/auth/index.d.ts +7 -0
- package/dist/core/middleware/built-in/auth/index.js +15 -0
- package/dist/core/middleware/built-in/auth/index.js.map +1 -0
- package/dist/core/middleware/built-in/{jwt-helpers.js → auth/jwt-helpers.js} +1 -1
- package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -0
- package/dist/core/middleware/built-in/auth/middleware.d.ts +23 -0
- package/dist/core/middleware/built-in/auth/middleware.js +71 -0
- package/dist/core/middleware/built-in/auth/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/{auth-providers.d.ts → auth/providers.d.ts} +1 -1
- package/dist/core/middleware/built-in/{auth-providers.js → auth/providers.js} +1 -1
- package/dist/core/middleware/built-in/auth/providers.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.js +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/index.d.ts +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.js +1 -1
- package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.js +2 -2
- package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/index.d.ts +0 -2
- package/{src/core/middleware/built-in/adapters/index.ts → dist/core/middleware/built-in/cache/adapters/index.js} +1 -3
- package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -0
- package/dist/core/middleware/built-in/cache/core.d.ts +37 -0
- package/dist/core/middleware/built-in/cache/core.js +87 -0
- package/dist/core/middleware/built-in/cache/core.js.map +1 -0
- package/dist/core/middleware/built-in/cache/hook.d.ts +20 -0
- package/dist/core/middleware/built-in/{cache.js → cache/hook.js} +22 -5
- package/dist/core/middleware/built-in/cache/hook.js.map +1 -0
- package/dist/core/middleware/built-in/cache/index.d.ts +3 -0
- package/dist/core/middleware/built-in/cache/index.js +9 -0
- package/dist/core/middleware/built-in/cache/index.js.map +1 -0
- package/dist/core/middleware/built-in/cache/middleware.d.ts +17 -0
- package/dist/core/middleware/built-in/cache/middleware.js +44 -0
- package/dist/core/middleware/built-in/cache/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.js +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.js +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.d.ts +1 -1
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.js +2 -2
- package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/index.d.ts +1 -1
- package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/adapters/index.d.ts +2 -0
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/index.js +0 -2
- package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/core.d.ts +43 -0
- package/dist/core/middleware/built-in/cdn/core.js +144 -0
- package/dist/core/middleware/built-in/cdn/core.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/hook.d.ts +22 -0
- package/dist/core/middleware/built-in/cdn/hook.js +70 -0
- package/dist/core/middleware/built-in/cdn/hook.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/index.d.ts +5 -0
- package/dist/core/middleware/built-in/cdn/index.js +11 -0
- package/dist/core/middleware/built-in/cdn/index.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/middleware.d.ts +21 -0
- package/dist/core/middleware/built-in/cdn/middleware.js +52 -0
- package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/core.d.ts +37 -0
- package/dist/core/middleware/built-in/cookie/core.js +83 -0
- package/dist/core/middleware/built-in/cookie/core.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/hook.d.ts +20 -0
- package/dist/core/middleware/built-in/cookie/hook.js +47 -0
- package/dist/core/middleware/built-in/cookie/hook.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/index.d.ts +3 -0
- package/dist/core/middleware/built-in/cookie/index.js +9 -0
- package/dist/core/middleware/built-in/cookie/index.js.map +1 -0
- package/dist/core/middleware/built-in/cookie/middleware.d.ts +17 -0
- package/dist/core/middleware/built-in/cookie/middleware.js +36 -0
- package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/cors/core.d.ts +23 -0
- package/dist/core/middleware/built-in/cors/core.js +51 -0
- package/dist/core/middleware/built-in/cors/core.js.map +1 -0
- package/dist/core/middleware/built-in/cors/hook.d.ts +17 -0
- package/dist/core/middleware/built-in/cors/hook.js +37 -0
- package/dist/core/middleware/built-in/cors/hook.js.map +1 -0
- package/dist/core/middleware/built-in/cors/index.d.ts +3 -0
- package/dist/core/middleware/built-in/cors/index.js +9 -0
- package/dist/core/middleware/built-in/cors/index.js.map +1 -0
- package/dist/core/middleware/built-in/cors/middleware.d.ts +16 -0
- package/dist/core/middleware/built-in/cors/middleware.js +22 -0
- package/dist/core/middleware/built-in/cors/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/csp/core.d.ts +45 -0
- package/dist/core/middleware/built-in/csp/core.js +88 -0
- package/dist/core/middleware/built-in/csp/core.js.map +1 -0
- package/dist/core/middleware/built-in/csp/hook.d.ts +22 -0
- package/dist/core/middleware/built-in/csp/hook.js +47 -0
- package/dist/core/middleware/built-in/csp/hook.js.map +1 -0
- package/dist/core/middleware/built-in/csp/index.d.ts +3 -0
- package/dist/core/middleware/built-in/csp/index.js +9 -0
- package/dist/core/middleware/built-in/csp/index.js.map +1 -0
- package/dist/core/middleware/built-in/csp/middleware.d.ts +19 -0
- package/dist/core/middleware/built-in/csp/middleware.js +29 -0
- package/dist/core/middleware/built-in/csp/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/csrf/core.d.ts +28 -0
- package/dist/core/middleware/built-in/csrf/core.js +69 -0
- package/dist/core/middleware/built-in/csrf/core.js.map +1 -0
- package/dist/core/middleware/built-in/csrf/hook.d.ts +17 -0
- package/dist/core/middleware/built-in/csrf/hook.js +45 -0
- package/dist/core/middleware/built-in/csrf/hook.js.map +1 -0
- package/dist/core/middleware/built-in/csrf/index.d.ts +3 -0
- package/dist/core/middleware/built-in/csrf/index.js +9 -0
- package/dist/core/middleware/built-in/csrf/index.js.map +1 -0
- package/dist/core/middleware/built-in/csrf/middleware.d.ts +16 -0
- package/dist/core/middleware/built-in/csrf/middleware.js +34 -0
- package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/error-tracker/index.d.ts +1 -0
- package/dist/core/middleware/built-in/error-tracker/index.js +4 -0
- package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -0
- package/dist/core/middleware/built-in/error-tracker/middleware.d.ts +12 -0
- package/dist/core/middleware/built-in/{error-tracker.js → error-tracker/middleware.js} +14 -3
- package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/index.d.ts +25 -59
- package/dist/core/middleware/built-in/index.js +31 -31
- package/dist/core/middleware/built-in/index.js.map +1 -1
- package/dist/core/middleware/built-in/performance-monitor/index.d.ts +1 -0
- package/dist/core/middleware/built-in/performance-monitor/index.js +4 -0
- package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -0
- package/dist/core/middleware/built-in/performance-monitor/middleware.d.ts +12 -0
- package/dist/core/middleware/built-in/{performance-monitor.js → performance-monitor/middleware.js} +14 -3
- package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit/core.d.ts +33 -0
- package/dist/core/middleware/built-in/rate-limit/core.js +86 -0
- package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit/hook.d.ts +20 -0
- package/dist/core/middleware/built-in/{rate-limit.js → rate-limit/hook.js} +22 -16
- package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit/index.d.ts +3 -0
- package/dist/core/middleware/built-in/rate-limit/index.js +9 -0
- package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -0
- package/dist/core/middleware/built-in/rate-limit/middleware.d.ts +16 -0
- package/dist/core/middleware/built-in/rate-limit/middleware.js +35 -0
- package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/request-logger/index.d.ts +1 -0
- package/dist/core/middleware/built-in/request-logger/index.js +4 -0
- package/dist/core/middleware/built-in/request-logger/index.js.map +1 -0
- package/dist/core/middleware/built-in/request-logger/middleware.d.ts +12 -0
- package/dist/core/middleware/built-in/{request-logger.js → request-logger/middleware.js} +14 -3
- package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/session/core.d.ts +73 -0
- package/dist/core/middleware/built-in/session/core.js +227 -0
- package/dist/core/middleware/built-in/session/core.js.map +1 -0
- package/dist/core/middleware/built-in/session/hook.d.ts +17 -0
- package/dist/core/middleware/built-in/session/hook.js +53 -0
- package/dist/core/middleware/built-in/session/hook.js.map +1 -0
- package/dist/core/middleware/built-in/session/index.d.ts +3 -0
- package/dist/core/middleware/built-in/session/index.js +9 -0
- package/dist/core/middleware/built-in/session/index.js.map +1 -0
- package/dist/core/middleware/built-in/session/middleware.d.ts +17 -0
- package/dist/core/middleware/built-in/session/middleware.js +38 -0
- package/dist/core/middleware/built-in/session/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/sse/core.d.ts +44 -0
- package/dist/core/middleware/built-in/sse/core.js +117 -0
- package/dist/core/middleware/built-in/sse/core.js.map +1 -0
- package/dist/core/middleware/built-in/sse/hook.d.ts +18 -0
- package/dist/core/middleware/built-in/sse/hook.js +60 -0
- package/dist/core/middleware/built-in/sse/hook.js.map +1 -0
- package/dist/core/middleware/built-in/sse/index.d.ts +3 -0
- package/dist/core/middleware/built-in/sse/index.js +9 -0
- package/dist/core/middleware/built-in/sse/index.js.map +1 -0
- package/dist/core/middleware/built-in/sse/middleware.d.ts +18 -0
- package/dist/core/middleware/built-in/sse/middleware.js +43 -0
- package/dist/core/middleware/built-in/sse/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/validation/core.d.ts +23 -0
- package/dist/core/middleware/built-in/validation/core.js +93 -0
- package/dist/core/middleware/built-in/validation/core.js.map +1 -0
- package/dist/core/middleware/built-in/validation/hook.d.ts +13 -0
- package/dist/core/middleware/built-in/{validation.js → validation/hook.js} +14 -3
- package/dist/core/middleware/built-in/validation/hook.js.map +1 -0
- package/dist/core/middleware/built-in/validation/index.d.ts +3 -0
- package/dist/core/middleware/built-in/validation/index.js +9 -0
- package/dist/core/middleware/built-in/validation/index.js.map +1 -0
- package/dist/core/middleware/built-in/validation/middleware.d.ts +16 -0
- package/dist/core/middleware/built-in/validation/middleware.js +27 -0
- package/dist/core/middleware/built-in/validation/middleware.js.map +1 -0
- package/dist/core/middleware/index.js +6 -0
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/routing/unified-router.d.ts +4 -20
- package/dist/core/routing/unified-router.js +61 -106
- package/dist/core/routing/unified-router.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/moro.js +12 -18
- package/dist/moro.js.map +1 -1
- package/dist/types/hooks.d.ts +3 -0
- package/package.json +2 -6
- package/dist/core/middleware/built-in/adapters/cache/file.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cache/index.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cdn/index.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/index.js.map +0 -1
- package/dist/core/middleware/built-in/auth-helpers.js.map +0 -1
- package/dist/core/middleware/built-in/auth-providers.js.map +0 -1
- package/dist/core/middleware/built-in/auth.d.ts +0 -30
- package/dist/core/middleware/built-in/auth.js +0 -348
- package/dist/core/middleware/built-in/auth.js.map +0 -1
- package/dist/core/middleware/built-in/cache.d.ts +0 -3
- package/dist/core/middleware/built-in/cache.js.map +0 -1
- package/dist/core/middleware/built-in/cdn.d.ts +0 -3
- package/dist/core/middleware/built-in/cdn.js +0 -109
- package/dist/core/middleware/built-in/cdn.js.map +0 -1
- package/dist/core/middleware/built-in/cookie.d.ts +0 -14
- package/dist/core/middleware/built-in/cookie.js +0 -64
- package/dist/core/middleware/built-in/cookie.js.map +0 -1
- package/dist/core/middleware/built-in/cors.d.ts +0 -2
- package/dist/core/middleware/built-in/cors.js +0 -25
- package/dist/core/middleware/built-in/cors.js.map +0 -1
- package/dist/core/middleware/built-in/csp.d.ts +0 -22
- package/dist/core/middleware/built-in/csp.js +0 -68
- package/dist/core/middleware/built-in/csp.js.map +0 -1
- package/dist/core/middleware/built-in/csrf.d.ts +0 -9
- package/dist/core/middleware/built-in/csrf.js +0 -60
- package/dist/core/middleware/built-in/csrf.js.map +0 -1
- package/dist/core/middleware/built-in/error-tracker.d.ts +0 -1
- package/dist/core/middleware/built-in/error-tracker.js.map +0 -1
- package/dist/core/middleware/built-in/jwt-helpers.js.map +0 -1
- package/dist/core/middleware/built-in/performance-monitor.d.ts +0 -1
- package/dist/core/middleware/built-in/performance-monitor.js.map +0 -1
- package/dist/core/middleware/built-in/rate-limit.d.ts +0 -6
- package/dist/core/middleware/built-in/rate-limit.js.map +0 -1
- package/dist/core/middleware/built-in/request-logger.d.ts +0 -1
- package/dist/core/middleware/built-in/request-logger.js.map +0 -1
- package/dist/core/middleware/built-in/session.d.ts +0 -41
- package/dist/core/middleware/built-in/session.js +0 -205
- package/dist/core/middleware/built-in/session.js.map +0 -1
- package/dist/core/middleware/built-in/sse.d.ts +0 -6
- package/dist/core/middleware/built-in/sse.js +0 -69
- package/dist/core/middleware/built-in/sse.js.map +0 -1
- package/dist/core/middleware/built-in/validation.d.ts +0 -2
- package/dist/core/middleware/built-in/validation.js.map +0 -1
- package/jest.config.mjs +0 -41
- package/src/core/auth/README.md +0 -339
- package/src/core/auth/morojs-adapter.ts +0 -415
- package/src/core/config/config-manager.ts +0 -133
- package/src/core/config/config-sources.ts +0 -600
- package/src/core/config/config-validator.ts +0 -1116
- package/src/core/config/file-loader.ts +0 -150
- package/src/core/config/index.ts +0 -109
- package/src/core/config/schema.ts +0 -164
- package/src/core/config/utils.ts +0 -244
- package/src/core/database/README.md +0 -238
- package/src/core/database/adapters/drizzle.ts +0 -415
- package/src/core/database/adapters/index.ts +0 -42
- package/src/core/database/adapters/mongodb.ts +0 -317
- package/src/core/database/adapters/mysql.ts +0 -235
- package/src/core/database/adapters/postgresql.ts +0 -226
- package/src/core/database/adapters/redis.ts +0 -379
- package/src/core/database/adapters/sqlite.ts +0 -263
- package/src/core/database/index.ts +0 -3
- package/src/core/docs/index.ts +0 -231
- package/src/core/docs/openapi-generator.ts +0 -576
- package/src/core/docs/schema-to-openapi.ts +0 -145
- package/src/core/docs/simple-docs.ts +0 -295
- package/src/core/docs/swagger-ui.ts +0 -354
- package/src/core/docs/zod-to-openapi.ts +0 -532
- package/src/core/events/event-bus.ts +0 -231
- package/src/core/events/index.ts +0 -12
- package/src/core/framework.ts +0 -885
- package/src/core/http/http-server.ts +0 -1847
- package/src/core/http/index.ts +0 -7
- package/src/core/http/uws-http-server.ts +0 -591
- package/src/core/logger/filters.ts +0 -153
- package/src/core/logger/index.ts +0 -21
- package/src/core/logger/logger.ts +0 -1033
- package/src/core/logger/outputs.ts +0 -132
- package/src/core/middleware/built-in/adapters/cache/file.ts +0 -104
- package/src/core/middleware/built-in/adapters/cache/index.ts +0 -23
- package/src/core/middleware/built-in/adapters/cache/memory.ts +0 -73
- package/src/core/middleware/built-in/adapters/cache/redis.ts +0 -114
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +0 -60
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +0 -83
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +0 -94
- package/src/core/middleware/built-in/adapters/cdn/index.ts +0 -23
- package/src/core/middleware/built-in/auth-helpers.ts +0 -401
- package/src/core/middleware/built-in/auth-providers.ts +0 -480
- package/src/core/middleware/built-in/auth.ts +0 -410
- package/src/core/middleware/built-in/cache.ts +0 -213
- package/src/core/middleware/built-in/cdn.ts +0 -124
- package/src/core/middleware/built-in/cookie.ts +0 -85
- package/src/core/middleware/built-in/cors.ts +0 -38
- package/src/core/middleware/built-in/csp.ts +0 -101
- package/src/core/middleware/built-in/csrf.ts +0 -82
- package/src/core/middleware/built-in/error-tracker.ts +0 -16
- package/src/core/middleware/built-in/index.ts +0 -87
- package/src/core/middleware/built-in/jwt-helpers.ts +0 -243
- package/src/core/middleware/built-in/performance-monitor.ts +0 -25
- package/src/core/middleware/built-in/rate-limit.ts +0 -60
- package/src/core/middleware/built-in/request-logger.ts +0 -16
- package/src/core/middleware/built-in/session.ts +0 -287
- package/src/core/middleware/built-in/sse.ts +0 -88
- package/src/core/middleware/built-in/validation.ts +0 -33
- package/src/core/middleware/index.ts +0 -177
- package/src/core/modules/auto-discovery.ts +0 -726
- package/src/core/modules/index.ts +0 -3
- package/src/core/modules/modules.ts +0 -135
- package/src/core/networking/adapters/index.ts +0 -17
- package/src/core/networking/adapters/socketio-adapter.ts +0 -254
- package/src/core/networking/adapters/uws-adapter.ts +0 -619
- package/src/core/networking/adapters/ws-adapter.ts +0 -429
- package/src/core/networking/index.ts +0 -4
- package/src/core/networking/service-discovery.ts +0 -303
- package/src/core/networking/websocket-adapter.ts +0 -217
- package/src/core/networking/websocket-manager.ts +0 -308
- package/src/core/pooling/object-pool-manager.ts +0 -630
- package/src/core/routing/app-integration.ts +0 -164
- package/src/core/routing/index.ts +0 -261
- package/src/core/routing/path-matcher.ts +0 -222
- package/src/core/routing/router.ts +0 -97
- package/src/core/routing/unified-router.ts +0 -870
- package/src/core/runtime/aws-lambda-adapter.ts +0 -147
- package/src/core/runtime/base-adapter.ts +0 -130
- package/src/core/runtime/cloudflare-workers-adapter.ts +0 -152
- package/src/core/runtime/index.ts +0 -62
- package/src/core/runtime/node-adapter.ts +0 -202
- package/src/core/runtime/vercel-edge-adapter.ts +0 -114
- package/src/core/utilities/circuit-breaker.ts +0 -46
- package/src/core/utilities/container.ts +0 -736
- package/src/core/utilities/hooks.ts +0 -142
- package/src/core/utilities/index.ts +0 -17
- package/src/core/utilities/package-utils.ts +0 -59
- package/src/core/validation/adapters.ts +0 -147
- package/src/core/validation/index.ts +0 -258
- package/src/core/validation/schema-interface.ts +0 -100
- package/src/index.ts +0 -233
- package/src/moro.ts +0 -1728
- package/src/types/auth.ts +0 -440
- package/src/types/cache.ts +0 -38
- package/src/types/cdn.ts +0 -22
- package/src/types/config.ts +0 -229
- package/src/types/core.ts +0 -58
- package/src/types/database.ts +0 -32
- package/src/types/discovery.ts +0 -7
- package/src/types/events.ts +0 -82
- package/src/types/hooks.ts +0 -47
- package/src/types/http.ts +0 -89
- package/src/types/logger.ts +0 -102
- package/src/types/module.ts +0 -99
- package/src/types/runtime.ts +0 -76
- package/src/types/session.ts +0 -89
- package/tsconfig.json +0 -23
- /package/dist/core/middleware/built-in/{auth-helpers.d.ts → auth/helpers.d.ts} +0 -0
- /package/dist/core/middleware/built-in/{jwt-helpers.d.ts → auth/jwt-helpers.d.ts} +0 -0
- /package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/index.js +0 -0
- /package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/index.js +0 -0
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
// Service Discovery Client for Microservices
|
|
2
|
-
// Supports Consul, Kubernetes, and in-memory registry
|
|
3
|
-
import { createFrameworkLogger } from '../logger/index.js';
|
|
4
|
-
|
|
5
|
-
export interface ServiceInfo {
|
|
6
|
-
name: string;
|
|
7
|
-
host: string;
|
|
8
|
-
port: number;
|
|
9
|
-
health?: string;
|
|
10
|
-
version?: string;
|
|
11
|
-
tags?: string[];
|
|
12
|
-
metadata?: Record<string, any>;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface ServiceDiscoveryOptions {
|
|
16
|
-
type: 'consul' | 'kubernetes' | 'memory';
|
|
17
|
-
consulUrl?: string;
|
|
18
|
-
kubernetesNamespace?: string;
|
|
19
|
-
healthCheckInterval?: number;
|
|
20
|
-
tags?: string[];
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export class ServiceRegistry {
|
|
24
|
-
private services = new Map<string, ServiceInfo[]>();
|
|
25
|
-
private options: ServiceDiscoveryOptions;
|
|
26
|
-
private healthCheckInterval?: NodeJS.Timeout;
|
|
27
|
-
private serviceLogger = createFrameworkLogger('SERVICE_DISCOVERY');
|
|
28
|
-
|
|
29
|
-
constructor(options: ServiceDiscoveryOptions) {
|
|
30
|
-
this.options = options;
|
|
31
|
-
this.startHealthChecks();
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
async register(service: ServiceInfo): Promise<void> {
|
|
35
|
-
const { name } = service;
|
|
36
|
-
|
|
37
|
-
switch (this.options.type) {
|
|
38
|
-
case 'consul':
|
|
39
|
-
await this.registerWithConsul(service);
|
|
40
|
-
break;
|
|
41
|
-
case 'kubernetes':
|
|
42
|
-
await this.registerWithKubernetes(service);
|
|
43
|
-
break;
|
|
44
|
-
case 'memory':
|
|
45
|
-
this.registerInMemory(service);
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
this.serviceLogger.info(`Service registered: ${name}@${service.host}:${service.port}`);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async discover(serviceName: string): Promise<ServiceInfo[]> {
|
|
53
|
-
switch (this.options.type) {
|
|
54
|
-
case 'consul':
|
|
55
|
-
return this.discoverFromConsul(serviceName);
|
|
56
|
-
case 'kubernetes':
|
|
57
|
-
return this.discoverFromKubernetes(serviceName);
|
|
58
|
-
case 'memory':
|
|
59
|
-
return this.discoverFromMemory(serviceName);
|
|
60
|
-
default:
|
|
61
|
-
return [];
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
async deregister(serviceName: string): Promise<void> {
|
|
66
|
-
switch (this.options.type) {
|
|
67
|
-
case 'consul':
|
|
68
|
-
await this.deregisterFromConsul(serviceName);
|
|
69
|
-
break;
|
|
70
|
-
case 'kubernetes':
|
|
71
|
-
// K8s handles this automatically
|
|
72
|
-
break;
|
|
73
|
-
case 'memory':
|
|
74
|
-
this.services.delete(serviceName);
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
this.serviceLogger.info(`Service deregistered: ${serviceName}`);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// In-memory registry methods
|
|
82
|
-
private registerInMemory(service: ServiceInfo): void {
|
|
83
|
-
const existing = this.services.get(service.name) || [];
|
|
84
|
-
const updated = existing.filter(s => s.host !== service.host || s.port !== service.port);
|
|
85
|
-
updated.push(service);
|
|
86
|
-
this.services.set(service.name, updated);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
private discoverFromMemory(serviceName: string): ServiceInfo[] {
|
|
90
|
-
return this.services.get(serviceName) || [];
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Consul integration
|
|
94
|
-
private async registerWithConsul(service: ServiceInfo): Promise<void> {
|
|
95
|
-
if (!this.options.consulUrl) {
|
|
96
|
-
throw new Error('Consul URL required for consul service discovery');
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const consulService = {
|
|
100
|
-
ID: `${service.name}-${service.host}-${service.port}`,
|
|
101
|
-
Name: service.name,
|
|
102
|
-
Tags: service.tags || [],
|
|
103
|
-
Address: service.host,
|
|
104
|
-
Port: service.port,
|
|
105
|
-
Check: service.health
|
|
106
|
-
? {
|
|
107
|
-
HTTP: `http://${service.host}:${service.port}${service.health}`,
|
|
108
|
-
Interval: '30s',
|
|
109
|
-
Timeout: '10s',
|
|
110
|
-
}
|
|
111
|
-
: undefined,
|
|
112
|
-
Meta: service.metadata || {},
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
const response = await fetch(`${this.options.consulUrl}/v1/agent/service/register`, {
|
|
117
|
-
method: 'PUT',
|
|
118
|
-
headers: { 'Content-Type': 'application/json' },
|
|
119
|
-
body: JSON.stringify(consulService),
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
if (!response.ok) {
|
|
123
|
-
throw new Error(`Consul registration failed: ${response.statusText}`);
|
|
124
|
-
}
|
|
125
|
-
} catch (error) {
|
|
126
|
-
this.serviceLogger.error('Failed to register with Consul', 'SERVICE_DISCOVERY', {
|
|
127
|
-
error: error instanceof Error ? error.message : String(error),
|
|
128
|
-
});
|
|
129
|
-
// Fallback to in-memory
|
|
130
|
-
this.registerInMemory(service);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
private async discoverFromConsul(serviceName: string): Promise<ServiceInfo[]> {
|
|
135
|
-
if (!this.options.consulUrl) {
|
|
136
|
-
return this.discoverFromMemory(serviceName);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
try {
|
|
140
|
-
const response = await fetch(
|
|
141
|
-
`${this.options.consulUrl}/v1/health/service/${serviceName}?passing=true`
|
|
142
|
-
);
|
|
143
|
-
|
|
144
|
-
if (!response.ok) {
|
|
145
|
-
throw new Error(`Consul discovery failed: ${response.statusText}`);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
const services = (await response.json()) as any[];
|
|
149
|
-
return services.map((entry: any) => ({
|
|
150
|
-
name: entry.Service.Service,
|
|
151
|
-
host: entry.Service.Address,
|
|
152
|
-
port: entry.Service.Port,
|
|
153
|
-
tags: entry.Service.Tags,
|
|
154
|
-
metadata: entry.Service.Meta,
|
|
155
|
-
}));
|
|
156
|
-
} catch (error) {
|
|
157
|
-
this.serviceLogger.error('Failed to discover from Consul', 'SERVICE_DISCOVERY', {
|
|
158
|
-
error: error instanceof Error ? error.message : String(error),
|
|
159
|
-
});
|
|
160
|
-
return this.discoverFromMemory(serviceName);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
private async deregisterFromConsul(serviceName: string): Promise<void> {
|
|
165
|
-
if (!this.options.consulUrl) return;
|
|
166
|
-
|
|
167
|
-
try {
|
|
168
|
-
await fetch(`${this.options.consulUrl}/v1/agent/service/deregister/${serviceName}`, {
|
|
169
|
-
method: 'PUT',
|
|
170
|
-
});
|
|
171
|
-
} catch (error) {
|
|
172
|
-
this.serviceLogger.error('Failed to deregister from Consul', 'SERVICE_DISCOVERY', {
|
|
173
|
-
error: error instanceof Error ? error.message : String(error),
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// Kubernetes integration
|
|
179
|
-
private async registerWithKubernetes(service: ServiceInfo): Promise<void> {
|
|
180
|
-
// In Kubernetes, services are registered via Service/Endpoints resources
|
|
181
|
-
// This would typically be handled by the K8s API, not application code
|
|
182
|
-
this.serviceLogger.info(`K8s service registration: ${service.name} (handled by Kubernetes)`);
|
|
183
|
-
|
|
184
|
-
// Fallback to in-memory for local development
|
|
185
|
-
this.registerInMemory(service);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
private async discoverFromKubernetes(serviceName: string): Promise<ServiceInfo[]> {
|
|
189
|
-
// In K8s, we can discover services via DNS or the K8s API
|
|
190
|
-
const namespace = this.options.kubernetesNamespace || 'default';
|
|
191
|
-
|
|
192
|
-
try {
|
|
193
|
-
// Try K8s service DNS resolution
|
|
194
|
-
const host = `${serviceName}.${namespace}.svc.cluster.local`;
|
|
195
|
-
|
|
196
|
-
// For demo purposes, return the service info
|
|
197
|
-
// In production, you'd query the K8s API or use DNS
|
|
198
|
-
return [
|
|
199
|
-
{
|
|
200
|
-
name: serviceName,
|
|
201
|
-
host,
|
|
202
|
-
port: 80, // Default port, should be discovered from service definition
|
|
203
|
-
metadata: { discovered: 'kubernetes' },
|
|
204
|
-
},
|
|
205
|
-
];
|
|
206
|
-
} catch (error) {
|
|
207
|
-
this.serviceLogger.error('Failed to discover from Kubernetes', 'SERVICE_DISCOVERY', {
|
|
208
|
-
error: error instanceof Error ? error.message : String(error),
|
|
209
|
-
});
|
|
210
|
-
return this.discoverFromMemory(serviceName);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// Health checking
|
|
215
|
-
private startHealthChecks(): void {
|
|
216
|
-
if (this.options.healthCheckInterval) {
|
|
217
|
-
this.healthCheckInterval = setInterval(
|
|
218
|
-
() => this.performHealthChecks(),
|
|
219
|
-
this.options.healthCheckInterval
|
|
220
|
-
);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
private async performHealthChecks(): Promise<void> {
|
|
225
|
-
for (const [serviceName, services] of this.services.entries()) {
|
|
226
|
-
for (const service of services) {
|
|
227
|
-
if (service.health) {
|
|
228
|
-
try {
|
|
229
|
-
const response = await fetch(
|
|
230
|
-
`http://${service.host}:${service.port}${service.health}`,
|
|
231
|
-
{
|
|
232
|
-
timeout: 5000,
|
|
233
|
-
} as any
|
|
234
|
-
);
|
|
235
|
-
|
|
236
|
-
if (!response.ok) {
|
|
237
|
-
this.serviceLogger.warn(
|
|
238
|
-
`Health check failed for ${serviceName}: ${response.statusText}`
|
|
239
|
-
);
|
|
240
|
-
// Remove unhealthy service
|
|
241
|
-
this.removeUnhealthyService(serviceName, service);
|
|
242
|
-
}
|
|
243
|
-
} catch (error) {
|
|
244
|
-
this.serviceLogger.warn(`Health check failed for ${serviceName}`, 'SERVICE_DISCOVERY', {
|
|
245
|
-
error: error instanceof Error ? error.message : String(error),
|
|
246
|
-
});
|
|
247
|
-
this.removeUnhealthyService(serviceName, service);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
private removeUnhealthyService(serviceName: string, unhealthyService: ServiceInfo): void {
|
|
255
|
-
const services = this.services.get(serviceName) || [];
|
|
256
|
-
const filtered = services.filter(
|
|
257
|
-
s => s.host !== unhealthyService.host || s.port !== unhealthyService.port
|
|
258
|
-
);
|
|
259
|
-
|
|
260
|
-
if (filtered.length === 0) {
|
|
261
|
-
this.services.delete(serviceName);
|
|
262
|
-
} else {
|
|
263
|
-
this.services.set(serviceName, filtered);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
// Load balancing
|
|
268
|
-
selectService(
|
|
269
|
-
serviceName: string,
|
|
270
|
-
strategy: 'round-robin' | 'random' | 'least-connections' = 'round-robin'
|
|
271
|
-
): ServiceInfo | null {
|
|
272
|
-
const services = this.services.get(serviceName) || [];
|
|
273
|
-
|
|
274
|
-
if (services.length === 0) {
|
|
275
|
-
return null;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
switch (strategy) {
|
|
279
|
-
case 'random':
|
|
280
|
-
return services[Math.floor(Math.random() * services.length)];
|
|
281
|
-
case 'round-robin':
|
|
282
|
-
// Simple round-robin (in production, maintain state)
|
|
283
|
-
return services[Date.now() % services.length];
|
|
284
|
-
case 'least-connections':
|
|
285
|
-
// For demo, just return the first (in production, track connections)
|
|
286
|
-
return services[0];
|
|
287
|
-
default:
|
|
288
|
-
return services[0];
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
// Cleanup
|
|
293
|
-
destroy(): void {
|
|
294
|
-
if (this.healthCheckInterval) {
|
|
295
|
-
clearInterval(this.healthCheckInterval);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
// Get all registered services
|
|
300
|
-
getAllServices(): Record<string, ServiceInfo[]> {
|
|
301
|
-
return Object.fromEntries(this.services.entries());
|
|
302
|
-
}
|
|
303
|
-
}
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
// WebSocket Adapter Interface for Moro Framework
|
|
2
|
-
// Provides a common interface for different WebSocket implementations
|
|
3
|
-
|
|
4
|
-
export interface WebSocketAdapterOptions {
|
|
5
|
-
compression?: boolean;
|
|
6
|
-
cors?: {
|
|
7
|
-
origin?: string | string[] | boolean;
|
|
8
|
-
methods?: string[];
|
|
9
|
-
credentials?: boolean;
|
|
10
|
-
};
|
|
11
|
-
path?: string;
|
|
12
|
-
maxPayloadLength?: number;
|
|
13
|
-
idleTimeout?: number;
|
|
14
|
-
[key: string]: any; // Allow adapter-specific options
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Abstract WebSocket adapter interface
|
|
19
|
-
* Allows the framework to work with different WebSocket implementations
|
|
20
|
-
*/
|
|
21
|
-
export interface WebSocketAdapter {
|
|
22
|
-
/**
|
|
23
|
-
* Initialize the WebSocket server with the given HTTP server
|
|
24
|
-
*/
|
|
25
|
-
initialize(httpServer: any, options?: WebSocketAdapterOptions): Promise<void>;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Create a namespace for organizing WebSocket connections
|
|
29
|
-
*/
|
|
30
|
-
createNamespace(namespace: string): WebSocketNamespace;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Get the default namespace (usually '/')
|
|
34
|
-
*/
|
|
35
|
-
getDefaultNamespace(): WebSocketNamespace;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Close the WebSocket server and all connections
|
|
39
|
-
*/
|
|
40
|
-
close(): Promise<void>;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Set compression configuration
|
|
44
|
-
*/
|
|
45
|
-
setCompression(enabled: boolean, options?: any): void;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Set custom ID generator for connections
|
|
49
|
-
*/
|
|
50
|
-
setCustomIdGenerator(generator: () => string): void;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Get adapter name/type
|
|
54
|
-
*/
|
|
55
|
-
getAdapterName(): string;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Get connection count across all namespaces
|
|
59
|
-
*/
|
|
60
|
-
getConnectionCount(): number;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* WebSocket namespace interface
|
|
65
|
-
* Represents a logical grouping of WebSocket connections
|
|
66
|
-
*/
|
|
67
|
-
export interface WebSocketNamespace {
|
|
68
|
-
/**
|
|
69
|
-
* Listen for connection events
|
|
70
|
-
*/
|
|
71
|
-
on(event: 'connection', handler: (socket: WebSocketConnection) => void): void;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Emit event to all connected sockets in this namespace
|
|
75
|
-
*/
|
|
76
|
-
emit(event: string, data: any): void;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Emit to specific room(s)
|
|
80
|
-
*/
|
|
81
|
-
to(room: string | string[]): WebSocketEmitter;
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Emit to sockets except those in specified room(s)
|
|
85
|
-
*/
|
|
86
|
-
except(room: string | string[]): WebSocketEmitter;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Get all connected sockets
|
|
90
|
-
*/
|
|
91
|
-
getSockets(): WebSocketConnection[];
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Get connection count for this namespace
|
|
95
|
-
*/
|
|
96
|
-
getConnectionCount(): number;
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Use middleware for this namespace
|
|
100
|
-
*/
|
|
101
|
-
use(middleware: (socket: WebSocketConnection, next: (err?: Error) => void) => void): void;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* WebSocket connection interface
|
|
106
|
-
* Represents an individual client connection
|
|
107
|
-
*/
|
|
108
|
-
export interface WebSocketConnection {
|
|
109
|
-
/** Unique connection ID */
|
|
110
|
-
id: string;
|
|
111
|
-
|
|
112
|
-
/** Client IP address */
|
|
113
|
-
ip?: string;
|
|
114
|
-
|
|
115
|
-
/** Connection headers */
|
|
116
|
-
headers?: Record<string, string>;
|
|
117
|
-
|
|
118
|
-
/** Custom data storage */
|
|
119
|
-
data: Record<string, any>;
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Listen for events from this socket
|
|
123
|
-
*/
|
|
124
|
-
on(event: string, handler: (data: any, callback?: (response?: any) => void) => void): void;
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Listen for any event from this socket
|
|
128
|
-
*/
|
|
129
|
-
onAny(handler: (event: string, ...args: any[]) => void): void;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Emit event to this socket
|
|
133
|
-
*/
|
|
134
|
-
emit(event: string, data: any): void;
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Emit with compression
|
|
138
|
-
*/
|
|
139
|
-
compressedEmit?(event: string, data: any): void;
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Join a room
|
|
143
|
-
*/
|
|
144
|
-
join(room: string | string[]): void;
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Leave a room
|
|
148
|
-
*/
|
|
149
|
-
leave(room: string | string[]): void;
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Emit to specific room(s)
|
|
153
|
-
*/
|
|
154
|
-
to(room: string | string[]): WebSocketEmitter;
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Emit to all sockets except this one
|
|
158
|
-
*/
|
|
159
|
-
broadcast: WebSocketEmitter;
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Get rooms this socket has joined
|
|
163
|
-
*/
|
|
164
|
-
getRooms(): Set<string>;
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Disconnect this socket
|
|
168
|
-
*/
|
|
169
|
-
disconnect(close?: boolean): void;
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Check if socket is connected
|
|
173
|
-
*/
|
|
174
|
-
connected: boolean;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* WebSocket emitter interface for chaining operations
|
|
179
|
-
*/
|
|
180
|
-
export interface WebSocketEmitter {
|
|
181
|
-
/**
|
|
182
|
-
* Emit to target sockets
|
|
183
|
-
*/
|
|
184
|
-
emit(event: string, data: any): void;
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Target specific room(s)
|
|
188
|
-
*/
|
|
189
|
-
to(room: string | string[]): WebSocketEmitter;
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Exclude specific room(s)
|
|
193
|
-
*/
|
|
194
|
-
except(room: string | string[]): WebSocketEmitter;
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Use compression for this emit
|
|
198
|
-
*/
|
|
199
|
-
compress(compress: boolean): WebSocketEmitter;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* WebSocket middleware function type
|
|
204
|
-
*/
|
|
205
|
-
export type WebSocketMiddleware = (
|
|
206
|
-
socket: WebSocketConnection,
|
|
207
|
-
next: (err?: Error) => void
|
|
208
|
-
) => void;
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* WebSocket event handler type
|
|
212
|
-
*/
|
|
213
|
-
export type WebSocketEventHandler = (
|
|
214
|
-
socket: WebSocketConnection,
|
|
215
|
-
data: any,
|
|
216
|
-
callback?: (response?: any) => void
|
|
217
|
-
) => void | Promise<void>;
|