@morojs/moro 1.6.1 → 1.6.3
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 +202 -185
- 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/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} +12 -23
- 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/auth/jwt-helpers.d.ts +118 -0
- package/dist/core/middleware/built-in/auth/jwt-helpers.js +218 -0
- 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} +5 -10
- 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 +10 -47
- package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -0
- package/dist/core/middleware/built-in/cache/adapters/cache/index.d.ts +5 -0
- package/dist/core/middleware/built-in/cache/adapters/cache/index.js +21 -0
- 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 +3 -7
- 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 +3 -1
- package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.js +11 -9
- package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -0
- package/dist/core/middleware/built-in/cache/adapters/index.d.ts +2 -0
- package/dist/core/middleware/built-in/cache/adapters/index.js +5 -0
- 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} +30 -14
- 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 +3 -7
- 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 +3 -7
- 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 +3 -1
- package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.js +12 -10
- package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -0
- package/dist/core/middleware/built-in/cdn/adapters/cdn/index.d.ts +5 -0
- package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js +21 -0
- 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/cdn/adapters/index.js +5 -0
- 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/middleware.js +26 -0
- package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -0
- package/dist/core/middleware/built-in/index.d.ts +28 -61
- 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/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/middleware.js +29 -0
- 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} +24 -22
- 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/middleware.js +24 -0
- 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} +16 -9
- 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.d.ts +4 -4
- package/dist/core/middleware/index.js +14 -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 +132 -0
- package/dist/core/routing/unified-router.js +639 -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 +52 -52
- package/dist/index.js +24 -132
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +70 -16
- package/dist/moro.js +650 -269
- 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 +4 -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/package.json +18 -55
- 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/dist/core/middleware/built-in/adapters/cache/file.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/cache/index.d.ts +0 -5
- package/dist/core/middleware/built-in/adapters/cache/index.js +0 -28
- 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.d.ts +0 -5
- package/dist/core/middleware/built-in/adapters/cdn/index.js +0 -28
- package/dist/core/middleware/built-in/adapters/cdn/index.js.map +0 -1
- package/dist/core/middleware/built-in/adapters/index.d.ts +0 -4
- package/dist/core/middleware/built-in/adapters/index.js +0 -26
- 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 -281
- 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 -113
- 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 -68
- 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 -29
- 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 -71
- 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 -63
- 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 +0 -19
- package/dist/core/middleware/built-in/error-tracker.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 +0 -22
- 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 +0 -16
- 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 -209
- 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 -71
- 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/src/core/auth/README.md +0 -339
- package/src/core/auth/morojs-adapter.ts +0 -410
- package/src/core/config/file-loader.ts +0 -407
- package/src/core/config/index.ts +0 -60
- package/src/core/config/loader.ts +0 -633
- package/src/core/config/schema.ts +0 -150
- package/src/core/config/utils.ts +0 -251
- package/src/core/config/validation.ts +0 -140
- package/src/core/database/README.md +0 -228
- package/src/core/database/adapters/drizzle.ts +0 -403
- package/src/core/database/adapters/index.ts +0 -42
- package/src/core/database/adapters/mongodb.ts +0 -269
- package/src/core/database/adapters/mysql.ts +0 -207
- package/src/core/database/adapters/postgresql.ts +0 -201
- package/src/core/database/adapters/redis.ts +0 -326
- package/src/core/database/adapters/sqlite.ts +0 -247
- 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 -148
- package/src/core/docs/simple-docs.ts +0 -295
- package/src/core/docs/swagger-ui.ts +0 -351
- 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 -636
- package/src/core/http/http-server.ts +0 -1787
- package/src/core/http/index.ts +0 -6
- package/src/core/http/router.ts +0 -141
- package/src/core/logger/filters.ts +0 -145
- package/src/core/logger/index.ts +0 -20
- package/src/core/logger/logger.ts +0 -814
- package/src/core/logger/outputs.ts +0 -134
- 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 -100
- 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 -83
- package/src/core/middleware/built-in/adapters/cdn/index.ts +0 -23
- package/src/core/middleware/built-in/adapters/index.ts +0 -7
- 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 -329
- package/src/core/middleware/built-in/cache.ts +0 -211
- 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 -79
- 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 -14
- package/src/core/middleware/built-in/session.ts +0 -288
- package/src/core/middleware/built-in/sse.ts +0 -86
- 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 -263
- package/src/core/modules/index.ts +0 -3
- package/src/core/modules/modules.ts +0 -124
- package/src/core/networking/adapters/index.ts +0 -16
- package/src/core/networking/adapters/socketio-adapter.ts +0 -252
- package/src/core/networking/adapters/ws-adapter.ts +0 -430
- package/src/core/networking/index.ts +0 -3
- package/src/core/networking/service-discovery.ts +0 -304
- package/src/core/networking/websocket-adapter.ts +0 -217
- package/src/core/networking/websocket-manager.ts +0 -308
- package/src/core/routing/app-integration.ts +0 -216
- package/src/core/routing/index.ts +0 -488
- 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 -196
- 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 -16
- package/src/core/validation/adapters.ts +0 -147
- package/src/core/validation/index.ts +0 -206
- package/src/core/validation/schema-interface.ts +0 -100
- package/src/index.ts +0 -226
- package/src/moro.ts +0 -1197
- 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 -157
- package/src/types/core.ts +0 -56
- 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 -67
- package/src/types/logger.ts +0 -93
- package/src/types/module.ts +0 -87
- package/src/types/runtime.ts +0 -76
- package/src/types/session.ts +0 -89
- package/tsconfig.json +0 -21
- /package/dist/core/middleware/built-in/{auth-helpers.d.ts → auth/helpers.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/middleware/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/middleware/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { ModuleConfig } from '../../types/module';
|
|
2
|
-
import { DiscoveryOptions } from '../../types/discovery';
|
|
1
|
+
import { ModuleConfig } from '../../types/module.js';
|
|
2
|
+
import { DiscoveryOptions } from '../../types/discovery.js';
|
|
3
|
+
import { ModuleDefaultsConfig } from '../../types/config.js';
|
|
3
4
|
export declare class ModuleDiscovery {
|
|
4
5
|
private baseDir;
|
|
5
6
|
private options;
|
|
6
7
|
private discoveryLogger;
|
|
8
|
+
private watchers;
|
|
7
9
|
constructor(baseDir?: string, options?: DiscoveryOptions);
|
|
8
10
|
discoverModules(): Promise<ModuleConfig[]>;
|
|
9
11
|
discoverModuleDirectories(modulesDir?: string): Promise<ModuleConfig[]>;
|
|
@@ -11,7 +13,22 @@ export declare class ModuleDiscovery {
|
|
|
11
13
|
private scanDirectory;
|
|
12
14
|
private loadModule;
|
|
13
15
|
private isValidModule;
|
|
16
|
+
discoverModulesAdvanced(config: ModuleDefaultsConfig['autoDiscovery']): Promise<ModuleConfig[]>;
|
|
17
|
+
private discoverFromPath;
|
|
18
|
+
private findMatchingFiles;
|
|
19
|
+
private findMatchingFilesWithGlob;
|
|
20
|
+
private findMatchingFilesFallback;
|
|
21
|
+
private matchesSimplePattern;
|
|
22
|
+
private shouldIgnore;
|
|
23
|
+
private matchesPatterns;
|
|
24
|
+
private isWithinMaxDepth;
|
|
25
|
+
private deduplicateModules;
|
|
26
|
+
private sortModules;
|
|
27
|
+
private resolveDependencyOrder;
|
|
28
|
+
private validateAdvancedModule;
|
|
14
29
|
watchModules(callback: (modules: ModuleConfig[]) => void): void;
|
|
30
|
+
watchModulesAdvanced(config: ModuleDefaultsConfig['autoDiscovery'], callback: (modules: ModuleConfig[]) => void): void;
|
|
31
|
+
cleanup(): void;
|
|
15
32
|
}
|
|
16
33
|
export declare function autoDiscoverModules(baseDir?: string, options?: DiscoveryOptions): Promise<ModuleConfig[]>;
|
|
17
34
|
export declare function autoDiscoverModuleDirectories(baseDir?: string, modulesDir?: string): Promise<ModuleConfig[]>;
|
|
@@ -1,49 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.ModuleRegistry = exports.ModuleDiscovery = void 0;
|
|
37
|
-
exports.autoDiscoverModules = autoDiscoverModules;
|
|
38
|
-
exports.autoDiscoverModuleDirectories = autoDiscoverModuleDirectories;
|
|
39
1
|
// Auto-discovery system for Moro modules
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
class ModuleDiscovery {
|
|
2
|
+
import { readdirSync, statSync } from 'fs';
|
|
3
|
+
import { join, extname, relative, isAbsolute } from 'path';
|
|
4
|
+
import { createFrameworkLogger } from '../logger/index.js';
|
|
5
|
+
export class ModuleDiscovery {
|
|
44
6
|
baseDir;
|
|
45
7
|
options;
|
|
46
|
-
discoveryLogger =
|
|
8
|
+
discoveryLogger = createFrameworkLogger('MODULE_DISCOVERY');
|
|
9
|
+
watchers = []; // Store file watchers for cleanup
|
|
47
10
|
constructor(baseDir = process.cwd(), options = {}) {
|
|
48
11
|
this.baseDir = baseDir;
|
|
49
12
|
this.options = {
|
|
@@ -66,7 +29,7 @@ class ModuleDiscovery {
|
|
|
66
29
|
}
|
|
67
30
|
}
|
|
68
31
|
catch (error) {
|
|
69
|
-
this.discoveryLogger.warn(`Failed to load module from ${modulePath}
|
|
32
|
+
this.discoveryLogger.warn(`Failed to load module from ${modulePath}`, 'MODULE_DISCOVERY', {
|
|
70
33
|
error: error instanceof Error ? error.message : String(error),
|
|
71
34
|
});
|
|
72
35
|
}
|
|
@@ -76,18 +39,18 @@ class ModuleDiscovery {
|
|
|
76
39
|
// Find modules by directory structure
|
|
77
40
|
async discoverModuleDirectories(modulesDir = 'src/modules') {
|
|
78
41
|
const modules = [];
|
|
79
|
-
const fullPath =
|
|
42
|
+
const fullPath = join(this.baseDir, modulesDir);
|
|
80
43
|
try {
|
|
81
|
-
if (!
|
|
44
|
+
if (!statSync(fullPath).isDirectory()) {
|
|
82
45
|
return modules;
|
|
83
46
|
}
|
|
84
|
-
const items =
|
|
47
|
+
const items = readdirSync(fullPath);
|
|
85
48
|
for (const item of items) {
|
|
86
|
-
const itemPath =
|
|
87
|
-
if (
|
|
88
|
-
const indexPath =
|
|
49
|
+
const itemPath = join(fullPath, item);
|
|
50
|
+
if (statSync(itemPath).isDirectory()) {
|
|
51
|
+
const indexPath = join(itemPath, 'index.ts');
|
|
89
52
|
try {
|
|
90
|
-
if (
|
|
53
|
+
if (statSync(indexPath).isFile()) {
|
|
91
54
|
const module = await this.loadModule(indexPath);
|
|
92
55
|
if (module) {
|
|
93
56
|
modules.push(module);
|
|
@@ -99,9 +62,9 @@ class ModuleDiscovery {
|
|
|
99
62
|
// Try alternate patterns
|
|
100
63
|
const alternates = ['module.ts', `${item}.module.ts`, 'config.ts'];
|
|
101
64
|
for (const alt of alternates) {
|
|
102
|
-
const altPath =
|
|
65
|
+
const altPath = join(itemPath, alt);
|
|
103
66
|
try {
|
|
104
|
-
if (
|
|
67
|
+
if (statSync(altPath).isFile()) {
|
|
105
68
|
const module = await this.loadModule(altPath);
|
|
106
69
|
if (module) {
|
|
107
70
|
modules.push(module);
|
|
@@ -132,10 +95,10 @@ class ModuleDiscovery {
|
|
|
132
95
|
// Recursively scan directories for module files
|
|
133
96
|
scanDirectory(dir, files) {
|
|
134
97
|
try {
|
|
135
|
-
const items =
|
|
98
|
+
const items = readdirSync(dir);
|
|
136
99
|
for (const item of items) {
|
|
137
|
-
const fullPath =
|
|
138
|
-
const stat =
|
|
100
|
+
const fullPath = join(dir, item);
|
|
101
|
+
const stat = statSync(fullPath);
|
|
139
102
|
if (stat.isDirectory()) {
|
|
140
103
|
// Skip node_modules and other common directories
|
|
141
104
|
if (!['node_modules', '.git', 'dist', 'build'].includes(item) && this.options.recursive) {
|
|
@@ -143,7 +106,7 @@ class ModuleDiscovery {
|
|
|
143
106
|
}
|
|
144
107
|
}
|
|
145
108
|
else if (stat.isFile()) {
|
|
146
|
-
const ext =
|
|
109
|
+
const ext = extname(item);
|
|
147
110
|
if (this.options.extensions?.includes(ext)) {
|
|
148
111
|
files.push(fullPath);
|
|
149
112
|
}
|
|
@@ -157,7 +120,7 @@ class ModuleDiscovery {
|
|
|
157
120
|
// Load a module from a file path
|
|
158
121
|
async loadModule(modulePath) {
|
|
159
122
|
try {
|
|
160
|
-
const module = await
|
|
123
|
+
const module = await import(modulePath);
|
|
161
124
|
// Try different export patterns
|
|
162
125
|
const candidates = [
|
|
163
126
|
module.default,
|
|
@@ -187,36 +150,391 @@ class ModuleDiscovery {
|
|
|
187
150
|
(obj.websockets === undefined || Array.isArray(obj.websockets)) &&
|
|
188
151
|
(obj.services === undefined || Array.isArray(obj.services)));
|
|
189
152
|
}
|
|
190
|
-
//
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
153
|
+
// Enhanced auto-discovery with advanced configuration
|
|
154
|
+
async discoverModulesAdvanced(config) {
|
|
155
|
+
if (!config.enabled) {
|
|
156
|
+
return [];
|
|
157
|
+
}
|
|
158
|
+
const allModules = [];
|
|
159
|
+
// Discover from all configured paths
|
|
160
|
+
for (const searchPath of config.paths) {
|
|
161
|
+
const modules = await this.discoverFromPath(searchPath, config);
|
|
162
|
+
allModules.push(...modules);
|
|
163
|
+
}
|
|
164
|
+
// Remove duplicates based on name@version
|
|
165
|
+
const uniqueModules = this.deduplicateModules(allModules);
|
|
166
|
+
// Sort modules based on load order strategy
|
|
167
|
+
const sortedModules = this.sortModules(uniqueModules, config.loadOrder);
|
|
168
|
+
// Validate dependencies if using dependency order
|
|
169
|
+
if (config.loadOrder === 'dependency') {
|
|
170
|
+
return this.resolveDependencyOrder(sortedModules);
|
|
171
|
+
}
|
|
172
|
+
return sortedModules;
|
|
173
|
+
}
|
|
174
|
+
// Discover modules from a specific path with advanced filtering
|
|
175
|
+
async discoverFromPath(searchPath, config) {
|
|
176
|
+
const modules = [];
|
|
177
|
+
const fullPath = join(this.baseDir, searchPath);
|
|
178
|
+
try {
|
|
179
|
+
const stat = statSync(fullPath);
|
|
180
|
+
if (!stat.isDirectory()) {
|
|
181
|
+
return modules;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
return modules;
|
|
186
|
+
}
|
|
187
|
+
try {
|
|
188
|
+
const files = await this.findMatchingFilesWithGlob(fullPath, config.patterns, config.ignorePatterns, config.maxDepth);
|
|
189
|
+
for (const filePath of files) {
|
|
190
|
+
try {
|
|
191
|
+
// Convert relative path to absolute path for import
|
|
192
|
+
const absolutePath = join(this.baseDir, filePath);
|
|
193
|
+
const module = await this.loadModule(absolutePath);
|
|
194
|
+
if (module && this.validateAdvancedModule(module, config)) {
|
|
195
|
+
modules.push(module);
|
|
196
|
+
this.discoveryLogger.info(`Auto-discovered module: ${module.name}@${module.version} from ${filePath}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
201
|
+
if (config.failOnError) {
|
|
202
|
+
throw new Error(`Failed to load module from ${filePath}: ${errorMsg}`);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
this.discoveryLogger.warn(`Failed to load module from ${filePath}`, 'MODULE_DISCOVERY', {
|
|
206
|
+
error: errorMsg,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
if (config.failOnError) {
|
|
214
|
+
throw error;
|
|
215
|
+
}
|
|
216
|
+
// Directory doesn't exist or other error, continue silently
|
|
217
|
+
}
|
|
218
|
+
return modules;
|
|
219
|
+
}
|
|
220
|
+
// Find files matching patterns with ignore support
|
|
221
|
+
findMatchingFiles(basePath, config, currentDepth = 0) {
|
|
222
|
+
const files = [];
|
|
223
|
+
if (currentDepth >= config.maxDepth) {
|
|
224
|
+
return files;
|
|
225
|
+
}
|
|
226
|
+
try {
|
|
227
|
+
const items = readdirSync(basePath);
|
|
228
|
+
for (const item of items) {
|
|
229
|
+
const fullPath = join(basePath, item);
|
|
230
|
+
const relativePath = relative(this.baseDir, fullPath);
|
|
231
|
+
// Check ignore patterns
|
|
232
|
+
if (this.shouldIgnore(relativePath, config.ignorePatterns)) {
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const stat = statSync(fullPath);
|
|
236
|
+
if (stat.isDirectory() && config.recursive) {
|
|
237
|
+
files.push(...this.findMatchingFiles(fullPath, config, currentDepth + 1));
|
|
238
|
+
}
|
|
239
|
+
else if (stat.isFile()) {
|
|
240
|
+
// Check if file matches any pattern
|
|
241
|
+
if (this.matchesPatterns(relativePath, config.patterns)) {
|
|
242
|
+
files.push(fullPath);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
// Directory not accessible, skip
|
|
249
|
+
}
|
|
250
|
+
return files;
|
|
251
|
+
}
|
|
252
|
+
// Use native Node.js glob to find matching files
|
|
253
|
+
async findMatchingFilesWithGlob(searchPath, patterns, ignorePatterns, maxDepth = 5) {
|
|
254
|
+
// Force fallback in CI environments or if Node.js version is uncertain
|
|
255
|
+
const isCI = process.env.CI === 'true' || process.env.GITHUB_ACTIONS === 'true';
|
|
256
|
+
if (isCI) {
|
|
257
|
+
return this.findMatchingFilesFallback(searchPath, patterns, ignorePatterns, maxDepth);
|
|
258
|
+
}
|
|
259
|
+
const allFiles = [];
|
|
260
|
+
try {
|
|
261
|
+
// Try to use native fs.glob if available (Node.js 20+)
|
|
262
|
+
const { glob } = await import('fs/promises');
|
|
263
|
+
// Check if glob is actually a function and test it
|
|
264
|
+
if (typeof glob !== 'function') {
|
|
265
|
+
return this.findMatchingFilesFallback(searchPath, patterns, ignorePatterns, maxDepth);
|
|
266
|
+
}
|
|
267
|
+
// Test glob with a simple pattern first
|
|
195
268
|
try {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
269
|
+
const testIterator = glob(join(searchPath, '*'));
|
|
270
|
+
let testCount = 0;
|
|
271
|
+
for await (const _ of testIterator) {
|
|
272
|
+
testCount++;
|
|
273
|
+
if (testCount > 0)
|
|
274
|
+
break; // Just test that it works
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch (testError) {
|
|
278
|
+
return this.findMatchingFilesFallback(searchPath, patterns, ignorePatterns, maxDepth);
|
|
279
|
+
}
|
|
280
|
+
for (const pattern of patterns) {
|
|
281
|
+
const fullPattern = join(searchPath, pattern);
|
|
282
|
+
try {
|
|
283
|
+
// fs.glob returns an AsyncIterator, need to collect results
|
|
284
|
+
const globIterator = glob(fullPattern);
|
|
285
|
+
const files = [];
|
|
286
|
+
for await (const file of globIterator) {
|
|
287
|
+
const filePath = typeof file === 'string' ? file : file.name || String(file);
|
|
288
|
+
const relativePath = relative(this.baseDir, filePath);
|
|
289
|
+
// Check if file should be ignored and within max depth
|
|
290
|
+
if (!this.shouldIgnore(relativePath, ignorePatterns) &&
|
|
291
|
+
this.isWithinMaxDepth(relativePath, searchPath, maxDepth)) {
|
|
292
|
+
files.push(relativePath);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
allFiles.push(...files);
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
// If any glob call fails, fall back to manual discovery
|
|
299
|
+
this.discoveryLogger.warn(`Glob pattern failed: ${pattern}`, String(error));
|
|
300
|
+
return this.findMatchingFilesFallback(searchPath, patterns, ignorePatterns, maxDepth);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
// fs.glob not available, fall back to manual file discovery
|
|
306
|
+
this.discoveryLogger.debug('Native fs.glob not available, using fallback');
|
|
307
|
+
return this.findMatchingFilesFallback(searchPath, patterns, ignorePatterns, maxDepth);
|
|
308
|
+
}
|
|
309
|
+
return [...new Set(allFiles)]; // Remove duplicates
|
|
310
|
+
}
|
|
311
|
+
// Fallback for Node.js versions without fs.glob
|
|
312
|
+
async findMatchingFilesFallback(searchPath, patterns, ignorePatterns, maxDepth = 5) {
|
|
313
|
+
const config = {
|
|
314
|
+
patterns,
|
|
315
|
+
ignorePatterns,
|
|
316
|
+
maxDepth,
|
|
317
|
+
recursive: true,
|
|
318
|
+
};
|
|
319
|
+
// Handle both absolute and relative paths
|
|
320
|
+
const fullSearchPath = isAbsolute(searchPath) ? searchPath : join(this.baseDir, searchPath);
|
|
321
|
+
// Check if search path exists
|
|
322
|
+
try {
|
|
323
|
+
const { access } = await import('fs/promises');
|
|
324
|
+
await access(fullSearchPath);
|
|
325
|
+
}
|
|
326
|
+
catch (e) {
|
|
327
|
+
return [];
|
|
328
|
+
}
|
|
329
|
+
// Get files and convert to relative paths
|
|
330
|
+
const files = this.findMatchingFiles(fullSearchPath, config);
|
|
331
|
+
const relativeFiles = files.map(file => relative(this.baseDir, file));
|
|
332
|
+
return relativeFiles;
|
|
333
|
+
}
|
|
334
|
+
// Simple pattern matching for fallback (basic glob support)
|
|
335
|
+
matchesSimplePattern(path, pattern) {
|
|
336
|
+
try {
|
|
337
|
+
// Normalize path separators
|
|
338
|
+
const normalizedPath = path.replace(/\\/g, '/');
|
|
339
|
+
const normalizedPattern = pattern.replace(/\\/g, '/');
|
|
340
|
+
// Convert simple glob patterns to regex
|
|
341
|
+
const regexPattern = normalizedPattern
|
|
342
|
+
.replace(/\*\*/g, '___DOUBLESTAR___') // Temporarily replace ** BEFORE escaping
|
|
343
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape regex chars
|
|
344
|
+
.replace(/\\\*/g, '[^/]*') // * matches anything except /
|
|
345
|
+
.replace(/___DOUBLESTAR___/g, '.*') // ** matches anything including /
|
|
346
|
+
.replace(/\\\?/g, '[^/]') // ? matches single character except /
|
|
347
|
+
.replace(/\\\{([^}]+)\\\}/g, '($1)') // {ts,js} -> (ts|js)
|
|
348
|
+
.replace(/,/g, '|'); // Convert comma to OR
|
|
349
|
+
const regex = new RegExp(`^${regexPattern}$`, 'i');
|
|
350
|
+
const result = regex.test(normalizedPath);
|
|
351
|
+
return result;
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
this.discoveryLogger.warn(`Pattern matching error for "${pattern}": ${String(error)}`);
|
|
355
|
+
return false;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// Check if path should be ignored
|
|
359
|
+
shouldIgnore(path, ignorePatterns) {
|
|
360
|
+
return ignorePatterns.some(pattern => this.matchesSimplePattern(path, pattern));
|
|
361
|
+
}
|
|
362
|
+
// Check if path matches any of the patterns
|
|
363
|
+
matchesPatterns(path, patterns) {
|
|
364
|
+
return patterns.some(pattern => this.matchesSimplePattern(path, pattern));
|
|
365
|
+
}
|
|
366
|
+
// Check if file is within max depth (for glob results)
|
|
367
|
+
isWithinMaxDepth(relativePath, searchPath, maxDepth) {
|
|
368
|
+
// Count directory separators to determine depth
|
|
369
|
+
const pathFromSearch = relative(searchPath, join(this.baseDir, relativePath));
|
|
370
|
+
const depth = pathFromSearch.split('/').length - 1; // -1 because file itself doesn't count as depth
|
|
371
|
+
return depth <= maxDepth;
|
|
372
|
+
}
|
|
373
|
+
// Remove duplicate modules
|
|
374
|
+
deduplicateModules(modules) {
|
|
375
|
+
const seen = new Set();
|
|
376
|
+
return modules.filter(module => {
|
|
377
|
+
const key = `${module.name}@${module.version}`;
|
|
378
|
+
if (seen.has(key)) {
|
|
379
|
+
this.discoveryLogger.warn(`Duplicate module found: ${key}`, 'MODULE_DISCOVERY');
|
|
380
|
+
return false;
|
|
381
|
+
}
|
|
382
|
+
seen.add(key);
|
|
383
|
+
return true;
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
// Sort modules based on strategy
|
|
387
|
+
sortModules(modules, strategy) {
|
|
388
|
+
switch (strategy) {
|
|
389
|
+
case 'alphabetical':
|
|
390
|
+
return modules.sort((a, b) => a.name.localeCompare(b.name));
|
|
391
|
+
case 'dependency':
|
|
392
|
+
// Will be handled by resolveDependencyOrder
|
|
393
|
+
return modules;
|
|
394
|
+
case 'custom':
|
|
395
|
+
// Allow custom sorting via module priority (if defined)
|
|
396
|
+
return modules.sort((a, b) => {
|
|
397
|
+
const aPriority = a.config?.priority || 0;
|
|
398
|
+
const bPriority = b.config?.priority || 0;
|
|
399
|
+
return bPriority - aPriority; // Higher priority first
|
|
200
400
|
});
|
|
401
|
+
default:
|
|
402
|
+
return modules;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
// Resolve dependency order using topological sort
|
|
406
|
+
resolveDependencyOrder(modules) {
|
|
407
|
+
const moduleMap = new Map();
|
|
408
|
+
const dependencyGraph = new Map();
|
|
409
|
+
// Build module map and dependency graph
|
|
410
|
+
modules.forEach(module => {
|
|
411
|
+
const key = `${module.name}@${module.version}`;
|
|
412
|
+
moduleMap.set(key, module);
|
|
413
|
+
dependencyGraph.set(key, module.dependencies || []);
|
|
414
|
+
});
|
|
415
|
+
// Topological sort
|
|
416
|
+
const visited = new Set();
|
|
417
|
+
const visiting = new Set();
|
|
418
|
+
const sorted = [];
|
|
419
|
+
const visit = (moduleKey) => {
|
|
420
|
+
if (visiting.has(moduleKey)) {
|
|
421
|
+
throw new Error(`Circular dependency detected involving ${moduleKey}`);
|
|
422
|
+
}
|
|
423
|
+
if (visited.has(moduleKey)) {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
visiting.add(moduleKey);
|
|
427
|
+
const dependencies = dependencyGraph.get(moduleKey) || [];
|
|
428
|
+
dependencies.forEach(dep => {
|
|
429
|
+
// Find the dependency in our modules
|
|
430
|
+
const depModule = Array.from(moduleMap.keys()).find(key => key.startsWith(`${dep.split('@')[0]}@`));
|
|
431
|
+
if (depModule) {
|
|
432
|
+
visit(depModule);
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
visiting.delete(moduleKey);
|
|
436
|
+
visited.add(moduleKey);
|
|
437
|
+
const module = moduleMap.get(moduleKey);
|
|
438
|
+
if (module) {
|
|
439
|
+
sorted.push(module);
|
|
201
440
|
}
|
|
202
|
-
|
|
203
|
-
|
|
441
|
+
};
|
|
442
|
+
// Visit all modules
|
|
443
|
+
Array.from(moduleMap.keys()).forEach(key => {
|
|
444
|
+
if (!visited.has(key)) {
|
|
445
|
+
visit(key);
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
return sorted;
|
|
449
|
+
}
|
|
450
|
+
// Enhanced module validation
|
|
451
|
+
validateAdvancedModule(module, _config) {
|
|
452
|
+
// Basic validation
|
|
453
|
+
if (!this.isValidModule(module)) {
|
|
454
|
+
return false;
|
|
455
|
+
}
|
|
456
|
+
// Additional validation can be added here
|
|
457
|
+
// For example, checking module compatibility, version constraints, etc.
|
|
458
|
+
return true;
|
|
459
|
+
}
|
|
460
|
+
// Watch for module changes (for development)
|
|
461
|
+
watchModules(callback) {
|
|
462
|
+
// Use dynamic import for fs to avoid require()
|
|
463
|
+
import('fs')
|
|
464
|
+
.then(fs => {
|
|
465
|
+
const modulePaths = this.findModuleFiles();
|
|
466
|
+
modulePaths.forEach(path => {
|
|
467
|
+
try {
|
|
468
|
+
fs.watchFile(path, async () => {
|
|
469
|
+
this.discoveryLogger.info(`Module file changed: ${path}`);
|
|
470
|
+
const modules = await this.discoverModules();
|
|
471
|
+
callback(modules);
|
|
472
|
+
});
|
|
473
|
+
}
|
|
474
|
+
catch {
|
|
475
|
+
// File watching not supported or failed
|
|
476
|
+
}
|
|
477
|
+
});
|
|
478
|
+
})
|
|
479
|
+
.catch(() => {
|
|
480
|
+
// fs module not available
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
// Watch modules with advanced configuration
|
|
484
|
+
watchModulesAdvanced(config, callback) {
|
|
485
|
+
if (!config.watchForChanges) {
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
import('fs')
|
|
489
|
+
.then(fs => {
|
|
490
|
+
const watchedPaths = new Set();
|
|
491
|
+
// Watch all configured paths
|
|
492
|
+
config.paths.forEach(searchPath => {
|
|
493
|
+
const fullPath = join(this.baseDir, searchPath);
|
|
494
|
+
try {
|
|
495
|
+
if (statSync(fullPath).isDirectory() && !watchedPaths.has(fullPath)) {
|
|
496
|
+
watchedPaths.add(fullPath);
|
|
497
|
+
const watcher = fs.watch(fullPath, { recursive: config.recursive }, async (eventType, filename) => {
|
|
498
|
+
if (filename && this.matchesPatterns(filename, config.patterns)) {
|
|
499
|
+
this.discoveryLogger.info(`Module file changed: ${filename}`);
|
|
500
|
+
const modules = await this.discoverModulesAdvanced(config);
|
|
501
|
+
callback(modules);
|
|
502
|
+
}
|
|
503
|
+
});
|
|
504
|
+
// Store watcher for cleanup
|
|
505
|
+
this.watchers.push(watcher);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
catch {
|
|
509
|
+
// Path doesn't exist or not accessible
|
|
510
|
+
}
|
|
511
|
+
});
|
|
512
|
+
})
|
|
513
|
+
.catch(() => {
|
|
514
|
+
// fs module not available
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
// Clean up file watchers
|
|
518
|
+
cleanup() {
|
|
519
|
+
this.watchers.forEach(watcher => {
|
|
520
|
+
if (watcher && typeof watcher.close === 'function') {
|
|
521
|
+
watcher.close();
|
|
204
522
|
}
|
|
205
523
|
});
|
|
524
|
+
this.watchers = [];
|
|
206
525
|
}
|
|
207
526
|
}
|
|
208
|
-
exports.ModuleDiscovery = ModuleDiscovery;
|
|
209
527
|
// Convenience functions
|
|
210
|
-
async function autoDiscoverModules(baseDir, options) {
|
|
528
|
+
export async function autoDiscoverModules(baseDir, options) {
|
|
211
529
|
const discovery = new ModuleDiscovery(baseDir, options);
|
|
212
530
|
return discovery.discoverModules();
|
|
213
531
|
}
|
|
214
|
-
async function autoDiscoverModuleDirectories(baseDir, modulesDir) {
|
|
532
|
+
export async function autoDiscoverModuleDirectories(baseDir, modulesDir) {
|
|
215
533
|
const discovery = new ModuleDiscovery(baseDir);
|
|
216
534
|
return discovery.discoverModuleDirectories(modulesDir);
|
|
217
535
|
}
|
|
218
536
|
// Module registry for tracking loaded modules
|
|
219
|
-
class ModuleRegistry {
|
|
537
|
+
export class ModuleRegistry {
|
|
220
538
|
modules = new Map();
|
|
221
539
|
loadedModules = new Set();
|
|
222
540
|
register(module) {
|
|
@@ -254,5 +572,4 @@ class ModuleRegistry {
|
|
|
254
572
|
this.loadedModules.clear();
|
|
255
573
|
}
|
|
256
574
|
}
|
|
257
|
-
exports.ModuleRegistry = ModuleRegistry;
|
|
258
575
|
//# sourceMappingURL=auto-discovery.js.map
|