@morojs/moro 1.6.0 → 1.6.1
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 +256 -74
- package/dist/core/auth/morojs-adapter.js +20 -20
- package/dist/core/auth/morojs-adapter.js.map +1 -1
- package/dist/core/config/file-loader.d.ts +6 -1
- package/dist/core/config/file-loader.js +249 -19
- package/dist/core/config/file-loader.js.map +1 -1
- package/dist/core/config/index.d.ts +12 -41
- package/dist/core/config/index.js +54 -65
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/loader.d.ts +7 -0
- package/dist/core/config/loader.js +269 -0
- package/dist/core/config/loader.js.map +1 -0
- package/dist/core/config/schema.d.ts +2 -2
- package/dist/core/config/schema.js +44 -52
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.d.ts +3 -10
- package/dist/core/config/utils.js +58 -31
- package/dist/core/config/utils.js.map +1 -1
- package/dist/core/config/validation.d.ts +17 -0
- package/dist/core/config/validation.js +131 -0
- package/dist/core/config/validation.js.map +1 -0
- package/dist/core/database/adapters/drizzle.d.ts +1 -1
- package/dist/core/database/adapters/drizzle.js +11 -18
- 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 +29 -19
- package/dist/core/database/adapters/index.js.map +1 -1
- package/dist/core/database/adapters/mongodb.d.ts +1 -13
- package/dist/core/database/adapters/mongodb.js +10 -46
- package/dist/core/database/adapters/mongodb.js.map +1 -1
- package/dist/core/database/adapters/mysql.d.ts +1 -14
- package/dist/core/database/adapters/mysql.js +9 -19
- package/dist/core/database/adapters/mysql.js.map +1 -1
- package/dist/core/database/adapters/postgresql.d.ts +2 -12
- package/dist/core/database/adapters/postgresql.js +9 -19
- package/dist/core/database/adapters/postgresql.js.map +1 -1
- package/dist/core/database/adapters/redis.d.ts +1 -12
- package/dist/core/database/adapters/redis.js +13 -48
- package/dist/core/database/adapters/redis.js.map +1 -1
- package/dist/core/database/adapters/sqlite.d.ts +1 -3
- package/dist/core/database/adapters/sqlite.js +8 -19
- 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 +18 -2
- package/dist/core/database/index.js.map +1 -1
- package/dist/core/docs/index.d.ts +9 -9
- package/dist/core/docs/index.js +35 -14
- 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 +16 -11
- 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 +11 -5
- 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 +9 -4
- 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 +29 -26
- package/dist/core/docs/swagger-ui.js.map +1 -1
- package/dist/core/docs/zod-to-openapi.js +28 -31
- 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 +10 -6
- 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 +5 -1
- package/dist/core/events/index.js.map +1 -1
- package/dist/core/framework.d.ts +12 -19
- package/dist/core/framework.js +100 -277
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +1 -13
- package/dist/core/http/http-server.js +85 -175
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/index.d.ts +3 -4
- package/dist/core/http/index.js +8 -3
- package/dist/core/http/index.js.map +1 -1
- package/dist/core/http/router.d.ts +1 -13
- package/dist/core/http/router.js +43 -117
- package/dist/core/http/router.js.map +1 -1
- package/dist/core/logger/filters.d.ts +1 -1
- package/dist/core/logger/filters.js +23 -20
- package/dist/core/logger/filters.js.map +1 -1
- package/dist/core/logger/index.d.ts +3 -3
- package/dist/core/logger/index.js +24 -2
- package/dist/core/logger/index.js.map +1 -1
- package/dist/core/logger/logger.d.ts +14 -30
- package/dist/core/logger/logger.js +223 -398
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/logger/outputs.d.ts +1 -1
- package/dist/core/logger/outputs.js +17 -8
- package/dist/core/logger/outputs.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/file.js +47 -10
- package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cache/index.js +17 -10
- package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cache/memory.js +7 -3
- package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +1 -3
- package/dist/core/middleware/built-in/adapters/cache/redis.js +9 -11
- package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/azure.js +7 -3
- package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +7 -3
- package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +1 -3
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +10 -12
- package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/cdn/index.js +17 -10
- package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -1
- package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
- package/dist/core/middleware/built-in/adapters/index.js +23 -4
- package/dist/core/middleware/built-in/adapters/index.js.map +1 -1
- package/dist/core/middleware/built-in/auth-helpers.js +22 -11
- package/dist/core/middleware/built-in/auth-helpers.js.map +1 -1
- package/dist/core/middleware/built-in/auth-providers.d.ts +1 -1
- package/dist/core/middleware/built-in/auth-providers.js +9 -4
- package/dist/core/middleware/built-in/auth-providers.js.map +1 -1
- package/dist/core/middleware/built-in/auth.d.ts +2 -2
- package/dist/core/middleware/built-in/auth.js +26 -93
- package/dist/core/middleware/built-in/auth.js.map +1 -1
- package/dist/core/middleware/built-in/cache.d.ts +2 -2
- package/dist/core/middleware/built-in/cache.js +12 -11
- package/dist/core/middleware/built-in/cache.js.map +1 -1
- package/dist/core/middleware/built-in/cdn.d.ts +2 -2
- package/dist/core/middleware/built-in/cdn.js +9 -5
- package/dist/core/middleware/built-in/cdn.js.map +1 -1
- package/dist/core/middleware/built-in/cookie.d.ts +1 -1
- package/dist/core/middleware/built-in/cookie.js +7 -3
- package/dist/core/middleware/built-in/cookie.js.map +1 -1
- package/dist/core/middleware/built-in/cors.d.ts +1 -1
- package/dist/core/middleware/built-in/cors.js +7 -3
- package/dist/core/middleware/built-in/cors.js.map +1 -1
- package/dist/core/middleware/built-in/csp.d.ts +1 -1
- package/dist/core/middleware/built-in/csp.js +8 -5
- package/dist/core/middleware/built-in/csp.js.map +1 -1
- package/dist/core/middleware/built-in/csrf.d.ts +1 -1
- package/dist/core/middleware/built-in/csrf.js +8 -5
- package/dist/core/middleware/built-in/csrf.js.map +1 -1
- package/dist/core/middleware/built-in/error-tracker.js +7 -3
- package/dist/core/middleware/built-in/error-tracker.js.map +1 -1
- package/dist/core/middleware/built-in/index.d.ts +27 -28
- package/dist/core/middleware/built-in/index.js +78 -48
- package/dist/core/middleware/built-in/index.js.map +1 -1
- package/dist/core/middleware/built-in/performance-monitor.js +7 -3
- package/dist/core/middleware/built-in/performance-monitor.js.map +1 -1
- package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
- package/dist/core/middleware/built-in/rate-limit.js +7 -3
- package/dist/core/middleware/built-in/rate-limit.js.map +1 -1
- package/dist/core/middleware/built-in/request-logger.js +8 -5
- package/dist/core/middleware/built-in/request-logger.js.map +1 -1
- package/dist/core/middleware/built-in/session.d.ts +2 -2
- package/dist/core/middleware/built-in/session.js +15 -11
- package/dist/core/middleware/built-in/session.js.map +1 -1
- package/dist/core/middleware/built-in/sse.d.ts +1 -1
- package/dist/core/middleware/built-in/sse.js +14 -12
- package/dist/core/middleware/built-in/sse.js.map +1 -1
- package/dist/core/middleware/built-in/validation.d.ts +1 -1
- package/dist/core/middleware/built-in/validation.js +7 -3
- package/dist/core/middleware/built-in/validation.js.map +1 -1
- package/dist/core/middleware/index.d.ts +4 -4
- package/dist/core/middleware/index.js +28 -8
- package/dist/core/middleware/index.js.map +1 -1
- package/dist/core/modules/auto-discovery.d.ts +2 -19
- package/dist/core/modules/auto-discovery.js +74 -391
- 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 +9 -2
- package/dist/core/modules/index.js.map +1 -1
- package/dist/core/modules/modules.d.ts +3 -3
- package/dist/core/modules/modules.js +54 -23
- package/dist/core/modules/modules.js.map +1 -1
- package/dist/core/networking/adapters/index.d.ts +3 -4
- package/dist/core/networking/adapters/index.js +7 -3
- 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 +40 -5
- package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
- package/dist/core/networking/adapters/ws-adapter.d.ts +2 -2
- package/dist/core/networking/adapters/ws-adapter.js +43 -8
- package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
- package/dist/core/networking/index.d.ts +2 -3
- package/dist/core/networking/index.js +7 -2
- package/dist/core/networking/index.js.map +1 -1
- package/dist/core/networking/service-discovery.js +12 -8
- package/dist/core/networking/service-discovery.js.map +1 -1
- package/dist/core/networking/websocket-adapter.js +2 -1
- 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 +11 -9
- package/dist/core/networking/websocket-manager.js.map +1 -1
- package/dist/core/routing/app-integration.d.ts +2 -2
- package/dist/core/routing/app-integration.js +12 -7
- package/dist/core/routing/app-integration.js.map +1 -1
- package/dist/core/routing/index.d.ts +2 -22
- package/dist/core/routing/index.js +27 -185
- package/dist/core/routing/index.js.map +1 -1
- package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
- package/dist/core/runtime/aws-lambda-adapter.js +6 -2
- 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 +7 -3
- 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 +6 -2
- 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 +35 -22
- 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 +49 -18
- 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 +6 -2
- package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
- package/dist/core/utilities/circuit-breaker.js +5 -1
- package/dist/core/utilities/circuit-breaker.js.map +1 -1
- package/dist/core/utilities/container.js +22 -12
- package/dist/core/utilities/container.js.map +1 -1
- package/dist/core/utilities/hooks.d.ts +2 -2
- package/dist/core/utilities/hooks.js +12 -7
- package/dist/core/utilities/hooks.js.map +1 -1
- package/dist/core/utilities/index.d.ts +4 -5
- package/dist/core/utilities/index.js +19 -5
- package/dist/core/utilities/index.js.map +1 -1
- package/dist/core/validation/adapters.d.ts +1 -1
- package/dist/core/validation/adapters.js +26 -15
- package/dist/core/validation/adapters.js.map +1 -1
- package/dist/core/validation/index.d.ts +4 -6
- package/dist/core/validation/index.js +28 -57
- package/dist/core/validation/index.js.map +1 -1
- package/dist/core/validation/schema-interface.js +9 -3
- package/dist/core/validation/schema-interface.js.map +1 -1
- package/dist/index.d.ts +52 -51
- package/dist/index.js +132 -23
- package/dist/index.js.map +1 -1
- package/dist/moro.d.ts +10 -61
- package/dist/moro.js +237 -575
- package/dist/moro.js.map +1 -1
- package/dist/types/auth.js +9 -3
- package/dist/types/auth.js.map +1 -1
- package/dist/types/cache.js +2 -1
- package/dist/types/cdn.js +2 -1
- package/dist/types/config.d.ts +2 -70
- package/dist/types/config.js +2 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/core.d.ts +42 -36
- package/dist/types/core.js +2 -1
- package/dist/types/database.js +2 -1
- package/dist/types/discovery.js +2 -1
- package/dist/types/events.js +2 -1
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/hooks.js +2 -1
- package/dist/types/http.d.ts +1 -16
- package/dist/types/http.js +2 -1
- package/dist/types/logger.d.ts +0 -7
- package/dist/types/logger.js +2 -1
- package/dist/types/module.d.ts +0 -11
- package/dist/types/module.js +2 -1
- package/dist/types/runtime.d.ts +1 -1
- package/dist/types/runtime.js +2 -1
- package/dist/types/session.js +2 -1
- package/package.json +52 -19
- package/src/core/auth/morojs-adapter.ts +13 -18
- package/src/core/config/file-loader.ts +273 -13
- package/src/core/config/index.ts +34 -83
- package/src/core/config/loader.ts +633 -0
- package/src/core/config/schema.ts +33 -44
- package/src/core/config/utils.ts +31 -24
- package/src/core/config/validation.ts +140 -0
- package/src/core/database/README.md +16 -26
- package/src/core/database/adapters/drizzle.ts +6 -18
- package/src/core/database/adapters/index.ts +13 -13
- package/src/core/database/adapters/mongodb.ts +5 -53
- package/src/core/database/adapters/mysql.ts +4 -32
- package/src/core/database/adapters/postgresql.ts +5 -30
- package/src/core/database/adapters/redis.ts +8 -61
- package/src/core/database/adapters/sqlite.ts +3 -19
- package/src/core/database/index.ts +2 -2
- package/src/core/docs/index.ts +8 -8
- package/src/core/docs/openapi-generator.ts +4 -4
- package/src/core/docs/schema-to-openapi.ts +6 -3
- package/src/core/docs/simple-docs.ts +2 -2
- package/src/core/docs/swagger-ui.ts +16 -19
- package/src/core/docs/zod-to-openapi.ts +34 -34
- package/src/core/events/event-bus.ts +2 -2
- package/src/core/events/index.ts +2 -2
- package/src/core/framework.ts +67 -311
- package/src/core/http/http-server.ts +45 -190
- package/src/core/http/index.ts +3 -4
- package/src/core/http/router.ts +40 -129
- package/src/core/logger/filters.ts +5 -13
- package/src/core/logger/index.ts +3 -4
- package/src/core/logger/logger.ts +216 -435
- package/src/core/logger/outputs.ts +3 -1
- package/src/core/middleware/built-in/adapters/cache/file.ts +3 -3
- package/src/core/middleware/built-in/adapters/cache/index.ts +7 -7
- package/src/core/middleware/built-in/adapters/cache/memory.ts +2 -2
- package/src/core/middleware/built-in/adapters/cache/redis.ts +4 -18
- package/src/core/middleware/built-in/adapters/cdn/azure.ts +2 -2
- package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +2 -2
- package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +5 -16
- package/src/core/middleware/built-in/adapters/cdn/index.ts +7 -7
- package/src/core/middleware/built-in/adapters/index.ts +4 -4
- package/src/core/middleware/built-in/auth-helpers.ts +1 -1
- package/src/core/middleware/built-in/auth-providers.ts +1 -1
- package/src/core/middleware/built-in/auth.ts +21 -102
- package/src/core/middleware/built-in/cache.ts +6 -8
- package/src/core/middleware/built-in/cdn.ts +4 -4
- package/src/core/middleware/built-in/cookie.ts +2 -2
- package/src/core/middleware/built-in/cors.ts +2 -2
- package/src/core/middleware/built-in/csp.ts +3 -3
- package/src/core/middleware/built-in/csrf.ts +3 -3
- package/src/core/middleware/built-in/error-tracker.ts +1 -1
- package/src/core/middleware/built-in/index.ts +30 -38
- package/src/core/middleware/built-in/performance-monitor.ts +1 -1
- package/src/core/middleware/built-in/rate-limit.ts +2 -2
- package/src/core/middleware/built-in/request-logger.ts +1 -3
- package/src/core/middleware/built-in/session.ts +8 -7
- package/src/core/middleware/built-in/sse.ts +9 -11
- package/src/core/middleware/built-in/validation.ts +2 -2
- package/src/core/middleware/index.ts +6 -6
- package/src/core/modules/auto-discovery.ts +15 -478
- package/src/core/modules/index.ts +2 -2
- package/src/core/modules/modules.ts +12 -23
- package/src/core/networking/adapters/index.ts +3 -4
- package/src/core/networking/adapters/socketio-adapter.ts +3 -5
- package/src/core/networking/adapters/ws-adapter.ts +9 -8
- package/src/core/networking/index.ts +2 -3
- package/src/core/networking/service-discovery.ts +7 -6
- package/src/core/networking/websocket-manager.ts +7 -7
- package/src/core/routing/app-integration.ts +3 -3
- package/src/core/routing/index.ts +17 -201
- package/src/core/runtime/aws-lambda-adapter.ts +3 -3
- package/src/core/runtime/base-adapter.ts +2 -2
- package/src/core/runtime/cloudflare-workers-adapter.ts +3 -3
- package/src/core/runtime/index.ts +13 -13
- package/src/core/runtime/node-adapter.ts +10 -16
- package/src/core/runtime/vercel-edge-adapter.ts +3 -3
- package/src/core/utilities/hooks.ts +3 -3
- package/src/core/utilities/index.ts +4 -5
- package/src/core/validation/adapters.ts +1 -1
- package/src/core/validation/index.ts +16 -68
- package/src/index.ts +66 -73
- package/src/moro.ts +204 -685
- package/src/types/config.ts +2 -71
- package/src/types/core.ts +47 -49
- package/src/types/hooks.ts +1 -1
- package/src/types/http.ts +1 -23
- package/src/types/logger.ts +0 -9
- package/src/types/module.ts +0 -12
- package/src/types/runtime.ts +1 -1
- package/tsconfig.json +2 -4
- package/dist/core/config/config-manager.d.ts +0 -44
- package/dist/core/config/config-manager.js +0 -104
- package/dist/core/config/config-manager.js.map +0 -1
- package/dist/core/config/config-sources.d.ts +0 -21
- package/dist/core/config/config-sources.js +0 -499
- package/dist/core/config/config-sources.js.map +0 -1
- package/dist/core/config/config-validator.d.ts +0 -21
- package/dist/core/config/config-validator.js +0 -788
- package/dist/core/config/config-validator.js.map +0 -1
- package/dist/core/http/uws-http-server.d.ts +0 -64
- package/dist/core/http/uws-http-server.js +0 -688
- package/dist/core/http/uws-http-server.js.map +0 -1
- package/dist/core/middleware/built-in/jwt-helpers.d.ts +0 -118
- package/dist/core/middleware/built-in/jwt-helpers.js +0 -218
- package/dist/core/middleware/built-in/jwt-helpers.js.map +0 -1
- package/dist/core/networking/adapters/uws-adapter.d.ts +0 -44
- package/dist/core/networking/adapters/uws-adapter.js +0 -513
- package/dist/core/networking/adapters/uws-adapter.js.map +0 -1
- package/dist/core/utilities/package-utils.d.ts +0 -38
- package/dist/core/utilities/package-utils.js +0 -57
- package/dist/core/utilities/package-utils.js.map +0 -1
- package/jest.config.mjs +0 -41
- package/src/core/config/config-manager.ts +0 -133
- package/src/core/config/config-sources.ts +0 -596
- package/src/core/config/config-validator.ts +0 -1113
- package/src/core/http/uws-http-server.ts +0 -794
- package/src/core/middleware/built-in/jwt-helpers.ts +0 -243
- package/src/core/networking/adapters/uws-adapter.ts +0 -619
- package/src/core/utilities/package-utils.ts +0 -59
package/src/types/config.ts
CHANGED
|
@@ -3,21 +3,9 @@
|
|
|
3
3
|
export interface ServerConfig {
|
|
4
4
|
port: number;
|
|
5
5
|
host: string;
|
|
6
|
+
environment: 'development' | 'staging' | 'production';
|
|
6
7
|
maxConnections: number;
|
|
7
8
|
timeout: number;
|
|
8
|
-
bodySizeLimit: string;
|
|
9
|
-
requestTracking: {
|
|
10
|
-
enabled: boolean;
|
|
11
|
-
};
|
|
12
|
-
errorBoundary: {
|
|
13
|
-
enabled: boolean;
|
|
14
|
-
};
|
|
15
|
-
useUWebSockets?: boolean; // Enable uWebSockets for both HTTP and WebSocket
|
|
16
|
-
ssl?: {
|
|
17
|
-
key_file_name?: string;
|
|
18
|
-
cert_file_name?: string;
|
|
19
|
-
passphrase?: string;
|
|
20
|
-
};
|
|
21
9
|
}
|
|
22
10
|
|
|
23
11
|
export interface ServiceDiscoveryConfig {
|
|
@@ -31,7 +19,7 @@ export interface ServiceDiscoveryConfig {
|
|
|
31
19
|
|
|
32
20
|
export interface DatabaseConfig {
|
|
33
21
|
url?: string;
|
|
34
|
-
redis
|
|
22
|
+
redis: {
|
|
35
23
|
url: string;
|
|
36
24
|
maxRetries: number;
|
|
37
25
|
retryDelay: number;
|
|
@@ -47,28 +35,6 @@ export interface DatabaseConfig {
|
|
|
47
35
|
acquireTimeout: number;
|
|
48
36
|
timeout: number;
|
|
49
37
|
};
|
|
50
|
-
postgresql?: {
|
|
51
|
-
host: string;
|
|
52
|
-
port: number;
|
|
53
|
-
database?: string;
|
|
54
|
-
user?: string;
|
|
55
|
-
password?: string;
|
|
56
|
-
connectionLimit: number;
|
|
57
|
-
ssl?: boolean;
|
|
58
|
-
};
|
|
59
|
-
sqlite?: {
|
|
60
|
-
filename: string;
|
|
61
|
-
memory?: boolean;
|
|
62
|
-
verbose?: boolean;
|
|
63
|
-
};
|
|
64
|
-
mongodb?: {
|
|
65
|
-
url?: string;
|
|
66
|
-
host?: string;
|
|
67
|
-
port?: number;
|
|
68
|
-
database?: string;
|
|
69
|
-
username?: string;
|
|
70
|
-
password?: string;
|
|
71
|
-
};
|
|
72
38
|
}
|
|
73
39
|
|
|
74
40
|
export interface ModuleDefaultsConfig {
|
|
@@ -90,18 +56,6 @@ export interface ModuleDefaultsConfig {
|
|
|
90
56
|
stripUnknown: boolean;
|
|
91
57
|
abortEarly: boolean;
|
|
92
58
|
};
|
|
93
|
-
autoDiscovery: {
|
|
94
|
-
enabled: boolean;
|
|
95
|
-
paths: string[];
|
|
96
|
-
patterns: string[];
|
|
97
|
-
recursive: boolean;
|
|
98
|
-
loadingStrategy: 'eager' | 'lazy' | 'conditional';
|
|
99
|
-
watchForChanges: boolean;
|
|
100
|
-
ignorePatterns: string[];
|
|
101
|
-
loadOrder: 'alphabetical' | 'dependency' | 'custom';
|
|
102
|
-
failOnError: boolean;
|
|
103
|
-
maxDepth: number;
|
|
104
|
-
};
|
|
105
59
|
}
|
|
106
60
|
|
|
107
61
|
export interface LoggingConfig {
|
|
@@ -187,28 +141,6 @@ export interface PerformanceConfig {
|
|
|
187
141
|
clustering: {
|
|
188
142
|
enabled: boolean;
|
|
189
143
|
workers: number | 'auto';
|
|
190
|
-
memoryPerWorkerGB?: number;
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
export interface WebSocketConfig {
|
|
195
|
-
enabled: boolean;
|
|
196
|
-
adapter?: string | 'socket.io' | 'ws' | 'uws';
|
|
197
|
-
compression?: boolean;
|
|
198
|
-
customIdGenerator?: () => string;
|
|
199
|
-
options?: {
|
|
200
|
-
cors?: {
|
|
201
|
-
origin?: string | string[];
|
|
202
|
-
credentials?: boolean;
|
|
203
|
-
};
|
|
204
|
-
path?: string;
|
|
205
|
-
maxPayloadLength?: number;
|
|
206
|
-
idleTimeout?: number;
|
|
207
|
-
ssl?: {
|
|
208
|
-
key_file_name?: string;
|
|
209
|
-
cert_file_name?: string;
|
|
210
|
-
passphrase?: string;
|
|
211
|
-
};
|
|
212
144
|
};
|
|
213
145
|
}
|
|
214
146
|
|
|
@@ -222,5 +154,4 @@ export interface AppConfig {
|
|
|
222
154
|
security: SecurityConfig;
|
|
223
155
|
external: ExternalServicesConfig;
|
|
224
156
|
performance: PerformanceConfig;
|
|
225
|
-
websocket: WebSocketConfig;
|
|
226
157
|
}
|
package/src/types/core.ts
CHANGED
|
@@ -1,58 +1,56 @@
|
|
|
1
1
|
// Core Framework Types
|
|
2
|
-
import { RuntimeConfig } from './runtime
|
|
3
|
-
import { LogLevel, LoggerOptions } from './logger
|
|
4
|
-
import { AppConfig } from './config.js';
|
|
2
|
+
import { RuntimeConfig } from './runtime';
|
|
3
|
+
import { LogLevel, LoggerOptions } from './logger';
|
|
5
4
|
|
|
6
5
|
export interface MoroOptions {
|
|
7
|
-
autoDiscover?:
|
|
8
|
-
|
|
9
|
-
| {
|
|
10
|
-
enabled?: boolean;
|
|
11
|
-
paths?: string[];
|
|
12
|
-
patterns?: string[];
|
|
13
|
-
recursive?: boolean;
|
|
14
|
-
loadingStrategy?: 'eager' | 'lazy' | 'conditional';
|
|
15
|
-
watchForChanges?: boolean;
|
|
16
|
-
ignorePatterns?: string[];
|
|
17
|
-
loadOrder?: 'alphabetical' | 'dependency' | 'custom';
|
|
18
|
-
failOnError?: boolean;
|
|
19
|
-
maxDepth?: number;
|
|
20
|
-
};
|
|
21
|
-
modulesPath?: string; // Deprecated: use autoDiscover.paths instead
|
|
6
|
+
autoDiscover?: boolean;
|
|
7
|
+
modulesPath?: string;
|
|
22
8
|
middleware?: any[];
|
|
23
|
-
|
|
24
|
-
// Runtime configuration
|
|
25
|
-
runtime?: RuntimeConfig;
|
|
26
|
-
|
|
27
|
-
// HTTP/WebSocket options
|
|
28
|
-
http2?: boolean;
|
|
29
|
-
https?: {
|
|
30
|
-
key: string | Buffer;
|
|
31
|
-
cert: string | Buffer;
|
|
32
|
-
ca?: string | Buffer;
|
|
33
|
-
};
|
|
34
|
-
websocket?:
|
|
35
|
-
| {
|
|
36
|
-
enabled?: boolean;
|
|
37
|
-
adapter?: any;
|
|
38
|
-
compression?: boolean;
|
|
39
|
-
customIdGenerator?: () => string;
|
|
40
|
-
options?: any;
|
|
41
|
-
}
|
|
42
|
-
| false;
|
|
43
|
-
|
|
44
|
-
// Simplified config options (these map to the full config)
|
|
9
|
+
database?: any;
|
|
45
10
|
cors?: boolean | object;
|
|
46
11
|
compression?: boolean | object;
|
|
47
12
|
helmet?: boolean | object;
|
|
13
|
+
// Runtime configuration
|
|
14
|
+
runtime?: RuntimeConfig;
|
|
15
|
+
// Logger configuration
|
|
48
16
|
logger?: LoggerOptions | boolean;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
17
|
+
// Module configuration
|
|
18
|
+
modules?: {
|
|
19
|
+
cache?: {
|
|
20
|
+
enabled?: boolean;
|
|
21
|
+
defaultTtl?: number;
|
|
22
|
+
maxSize?: number;
|
|
23
|
+
strategy?: 'lru' | 'lfu' | 'fifo';
|
|
24
|
+
};
|
|
25
|
+
rateLimit?: {
|
|
26
|
+
enabled?: boolean;
|
|
27
|
+
defaultRequests?: number;
|
|
28
|
+
defaultWindow?: number;
|
|
29
|
+
skipSuccessfulRequests?: boolean;
|
|
30
|
+
skipFailedRequests?: boolean;
|
|
31
|
+
};
|
|
32
|
+
validation?: {
|
|
33
|
+
enabled?: boolean;
|
|
34
|
+
stripUnknown?: boolean;
|
|
35
|
+
abortEarly?: boolean;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
// Performance configuration
|
|
39
|
+
performance?: {
|
|
40
|
+
clustering?: {
|
|
41
|
+
enabled?: boolean;
|
|
42
|
+
workers?: number | 'auto';
|
|
43
|
+
};
|
|
44
|
+
compression?: {
|
|
45
|
+
enabled?: boolean;
|
|
46
|
+
level?: number;
|
|
47
|
+
threshold?: number;
|
|
48
|
+
};
|
|
49
|
+
circuitBreaker?: {
|
|
50
|
+
enabled?: boolean;
|
|
51
|
+
failureThreshold?: number;
|
|
52
|
+
resetTimeout?: number;
|
|
53
|
+
monitoringPeriod?: number;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
58
56
|
}
|
package/src/types/hooks.ts
CHANGED
package/src/types/http.ts
CHANGED
|
@@ -22,20 +22,9 @@ export interface CookieOptions {
|
|
|
22
22
|
sameSite?: 'strict' | 'lax' | 'none';
|
|
23
23
|
domain?: string;
|
|
24
24
|
path?: string;
|
|
25
|
-
// Security options
|
|
26
|
-
critical?: boolean; // Mark as critical for security (throws on late set)
|
|
27
|
-
throwOnLateSet?: boolean; // Force throw if headers already sent
|
|
28
25
|
}
|
|
29
26
|
|
|
30
|
-
export interface
|
|
31
|
-
headersSent: boolean;
|
|
32
|
-
statusCode: number;
|
|
33
|
-
headers: Record<string, any>;
|
|
34
|
-
finished: boolean;
|
|
35
|
-
writable: boolean;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface MoroResponseMethods {
|
|
27
|
+
export interface HttpResponse extends ServerResponse {
|
|
39
28
|
json(data: any): void;
|
|
40
29
|
status(code: number): HttpResponse;
|
|
41
30
|
send(data: string | Buffer): void;
|
|
@@ -44,19 +33,8 @@ export interface MoroResponseMethods {
|
|
|
44
33
|
redirect(url: string, status?: number): void;
|
|
45
34
|
sendFile(filePath: string): Promise<void>;
|
|
46
35
|
render?(template: string, data?: any): Promise<void>;
|
|
47
|
-
|
|
48
|
-
// Header management utilities
|
|
49
|
-
hasHeader(name: string): boolean;
|
|
50
|
-
setBulkHeaders(headers: Record<string, string | number>): HttpResponse;
|
|
51
|
-
appendHeader(name: string, value: string | string[]): HttpResponse;
|
|
52
|
-
|
|
53
|
-
// Response state utilities
|
|
54
|
-
canSetHeaders(): boolean;
|
|
55
|
-
getResponseState(): ResponseState;
|
|
56
36
|
}
|
|
57
37
|
|
|
58
|
-
export type HttpResponse = ServerResponse & MoroResponseMethods;
|
|
59
|
-
|
|
60
38
|
export type HttpHandler = (req: HttpRequest, res: HttpResponse) => Promise<void> | void;
|
|
61
39
|
export type Middleware = (
|
|
62
40
|
req: HttpRequest,
|
package/src/types/logger.ts
CHANGED
|
@@ -30,7 +30,6 @@ export interface LoggerOptions {
|
|
|
30
30
|
outputs?: LogOutput[];
|
|
31
31
|
filters?: LogFilter[];
|
|
32
32
|
maxEntries?: number;
|
|
33
|
-
maxBufferSize?: number;
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
export interface LogOutput {
|
|
@@ -61,17 +60,11 @@ export interface Logger {
|
|
|
61
60
|
|
|
62
61
|
// Configuration
|
|
63
62
|
setLevel(level: LogLevel): void;
|
|
64
|
-
getLevel(): LogLevel;
|
|
65
63
|
addOutput(output: LogOutput): void;
|
|
66
64
|
removeOutput(name: string): void;
|
|
67
65
|
addFilter(filter: LogFilter): void;
|
|
68
66
|
removeFilter(name: string): void;
|
|
69
67
|
|
|
70
|
-
// Cleanup
|
|
71
|
-
flush(): void;
|
|
72
|
-
flushBuffer(): void;
|
|
73
|
-
destroy(): void;
|
|
74
|
-
|
|
75
68
|
// Metrics and history
|
|
76
69
|
getHistory(count?: number): LogEntry[];
|
|
77
70
|
getMetrics(): LogMetrics;
|
|
@@ -85,7 +78,6 @@ export interface LogMetrics {
|
|
|
85
78
|
averageLogRate: number;
|
|
86
79
|
errorRate: number;
|
|
87
80
|
memoryUsage: number;
|
|
88
|
-
outputErrors?: Record<string, number>;
|
|
89
81
|
}
|
|
90
82
|
|
|
91
83
|
export interface ColorScheme {
|
|
@@ -98,5 +90,4 @@ export interface ColorScheme {
|
|
|
98
90
|
context: string;
|
|
99
91
|
metadata: string;
|
|
100
92
|
performance: string;
|
|
101
|
-
reset: string;
|
|
102
93
|
}
|
package/src/types/module.ts
CHANGED
|
@@ -7,11 +7,6 @@ export interface ModuleRoute {
|
|
|
7
7
|
cache?: { ttl: number; key?: string };
|
|
8
8
|
rateLimit?: { requests: number; window: number };
|
|
9
9
|
middleware?: string[];
|
|
10
|
-
auth?: {
|
|
11
|
-
roles?: string[];
|
|
12
|
-
permissions?: string[];
|
|
13
|
-
optional?: boolean;
|
|
14
|
-
};
|
|
15
10
|
}
|
|
16
11
|
|
|
17
12
|
export interface ModuleSocket {
|
|
@@ -62,13 +57,6 @@ export interface InternalRouteDefinition {
|
|
|
62
57
|
validation?: any;
|
|
63
58
|
cache?: CacheConfig;
|
|
64
59
|
rateLimit?: RateLimitConfig;
|
|
65
|
-
auth?: {
|
|
66
|
-
roles?: string[];
|
|
67
|
-
permissions?: string[];
|
|
68
|
-
optional?: boolean;
|
|
69
|
-
};
|
|
70
|
-
// Allow additional properties for extensibility
|
|
71
|
-
[key: string]: any;
|
|
72
60
|
}
|
|
73
61
|
|
|
74
62
|
export interface WebSocketDefinition {
|
package/src/types/runtime.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Runtime abstraction types for multi-environment support
|
|
2
|
-
import { HttpRequest, HttpResponse } from '
|
|
2
|
+
import { HttpRequest, HttpResponse } from './http';
|
|
3
3
|
|
|
4
4
|
export type RuntimeType = 'node' | 'vercel-edge' | 'aws-lambda' | 'cloudflare-workers';
|
|
5
5
|
|
package/tsconfig.json
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
{
|
|
3
3
|
"compilerOptions": {
|
|
4
4
|
"target": "ES2022",
|
|
5
|
-
"module": "
|
|
6
|
-
"moduleResolution": "NodeNext",
|
|
5
|
+
"module": "commonjs",
|
|
7
6
|
"lib": ["ES2022"],
|
|
8
7
|
"outDir": "./dist",
|
|
9
8
|
"rootDir": "./src",
|
|
@@ -15,8 +14,7 @@
|
|
|
15
14
|
"emitDecoratorMetadata": true,
|
|
16
15
|
"resolveJsonModule": true,
|
|
17
16
|
"declaration": true,
|
|
18
|
-
"sourceMap": true
|
|
19
|
-
"isolatedModules": true
|
|
17
|
+
"sourceMap": true
|
|
20
18
|
},
|
|
21
19
|
"include": ["src/**/*"],
|
|
22
20
|
"exclude": ["node_modules", "dist"]
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Manager - Immutable Single Source of Truth
|
|
3
|
-
*
|
|
4
|
-
* This module provides centralized, immutable configuration state management.
|
|
5
|
-
* Configuration is locked at createApp() initialization and cannot be changed afterward.
|
|
6
|
-
*
|
|
7
|
-
* Precedence: Environment Variables > createApp Options > Config File > Defaults
|
|
8
|
-
*/
|
|
9
|
-
import { AppConfig } from '../../types/config.js';
|
|
10
|
-
/**
|
|
11
|
-
* Initialize and lock global configuration state
|
|
12
|
-
* This should only be called once during createApp() initialization
|
|
13
|
-
*/
|
|
14
|
-
export declare function initializeAndLockConfig(config: AppConfig): void;
|
|
15
|
-
/**
|
|
16
|
-
* Get the current global configuration
|
|
17
|
-
* Throws if configuration hasn't been initialized
|
|
18
|
-
*/
|
|
19
|
-
export declare function getGlobalConfig(): Readonly<AppConfig>;
|
|
20
|
-
/**
|
|
21
|
-
* Check if configuration has been initialized and locked
|
|
22
|
-
*/
|
|
23
|
-
export declare function isConfigLocked(): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Reset configuration state (for testing only)
|
|
26
|
-
* @internal - This should only be used in tests
|
|
27
|
-
*/
|
|
28
|
-
export declare function resetConfigForTesting(): void;
|
|
29
|
-
/**
|
|
30
|
-
* Get a specific configuration value using dot notation
|
|
31
|
-
* This provides a safe way to access nested config values
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* getConfigValue('server.port') // Returns the server port
|
|
35
|
-
* getConfigValue('database.redis.url') // Returns the Redis URL
|
|
36
|
-
*/
|
|
37
|
-
export declare function getConfigValue<T = any>(path: string): T | undefined;
|
|
38
|
-
/**
|
|
39
|
-
* Utility functions for common environment checks
|
|
40
|
-
* These now read NODE_ENV directly for consistency with Node.js ecosystem
|
|
41
|
-
*/
|
|
42
|
-
export declare function isDevelopment(): boolean;
|
|
43
|
-
export declare function isProduction(): boolean;
|
|
44
|
-
export declare function isStaging(): boolean;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Manager - Immutable Single Source of Truth
|
|
3
|
-
*
|
|
4
|
-
* This module provides centralized, immutable configuration state management.
|
|
5
|
-
* Configuration is locked at createApp() initialization and cannot be changed afterward.
|
|
6
|
-
*
|
|
7
|
-
* Precedence: Environment Variables > createApp Options > Config File > Defaults
|
|
8
|
-
*/
|
|
9
|
-
import { createFrameworkLogger } from '../logger/index.js';
|
|
10
|
-
const logger = createFrameworkLogger('ConfigManager');
|
|
11
|
-
/**
|
|
12
|
-
* Global configuration state - immutable after initialization
|
|
13
|
-
*/
|
|
14
|
-
let globalConfig = null;
|
|
15
|
-
let isLocked = false;
|
|
16
|
-
/**
|
|
17
|
-
* Initialize and lock global configuration state
|
|
18
|
-
* This should only be called once during createApp() initialization
|
|
19
|
-
*/
|
|
20
|
-
export function initializeAndLockConfig(config) {
|
|
21
|
-
if (isLocked) {
|
|
22
|
-
throw new Error('Configuration is already locked and cannot be changed. ' +
|
|
23
|
-
'Configuration can only be set once during createApp() initialization.');
|
|
24
|
-
}
|
|
25
|
-
// Deep freeze the configuration to make it truly immutable
|
|
26
|
-
globalConfig = deepFreeze(config);
|
|
27
|
-
isLocked = true;
|
|
28
|
-
logger.info(`Configuration locked and initialized: ${process.env.NODE_ENV || 'development'}:${config.server.port}`);
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Get the current global configuration
|
|
32
|
-
* Throws if configuration hasn't been initialized
|
|
33
|
-
*/
|
|
34
|
-
export function getGlobalConfig() {
|
|
35
|
-
if (!globalConfig || !isLocked) {
|
|
36
|
-
throw new Error('Configuration not initialized. Call createApp() to initialize the configuration system.');
|
|
37
|
-
}
|
|
38
|
-
return globalConfig;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Check if configuration has been initialized and locked
|
|
42
|
-
*/
|
|
43
|
-
export function isConfigLocked() {
|
|
44
|
-
return isLocked && globalConfig !== null;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Reset configuration state (for testing only)
|
|
48
|
-
* @internal - This should only be used in tests
|
|
49
|
-
*/
|
|
50
|
-
export function resetConfigForTesting() {
|
|
51
|
-
if (process.env.NODE_ENV !== 'test' &&
|
|
52
|
-
!process.env.MORO_ALLOW_CONFIG_RESET &&
|
|
53
|
-
!process.env.JEST_WORKER_ID) {
|
|
54
|
-
throw new Error('Configuration reset is only allowed in test environments. ' +
|
|
55
|
-
'Set MORO_ALLOW_CONFIG_RESET=true to override this check.');
|
|
56
|
-
}
|
|
57
|
-
globalConfig = null;
|
|
58
|
-
isLocked = false;
|
|
59
|
-
logger.debug('Configuration state reset for testing');
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Deep freeze an object to make it truly immutable
|
|
63
|
-
* This prevents any accidental mutations to the configuration
|
|
64
|
-
*/
|
|
65
|
-
function deepFreeze(obj) {
|
|
66
|
-
// Get property names
|
|
67
|
-
const propNames = Object.getOwnPropertyNames(obj);
|
|
68
|
-
// Freeze properties before freezing self
|
|
69
|
-
for (const name of propNames) {
|
|
70
|
-
const value = obj[name];
|
|
71
|
-
if (value && typeof value === 'object') {
|
|
72
|
-
deepFreeze(value);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return Object.freeze(obj);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Get a specific configuration value using dot notation
|
|
79
|
-
* This provides a safe way to access nested config values
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* getConfigValue('server.port') // Returns the server port
|
|
83
|
-
* getConfigValue('database.redis.url') // Returns the Redis URL
|
|
84
|
-
*/
|
|
85
|
-
export function getConfigValue(path) {
|
|
86
|
-
const config = getGlobalConfig();
|
|
87
|
-
return path.split('.').reduce((obj, key) => {
|
|
88
|
-
return obj && obj[key] !== undefined ? obj[key] : undefined;
|
|
89
|
-
}, config);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Utility functions for common environment checks
|
|
93
|
-
* These now read NODE_ENV directly for consistency with Node.js ecosystem
|
|
94
|
-
*/
|
|
95
|
-
export function isDevelopment() {
|
|
96
|
-
return process.env.NODE_ENV === 'development';
|
|
97
|
-
}
|
|
98
|
-
export function isProduction() {
|
|
99
|
-
return process.env.NODE_ENV === 'production';
|
|
100
|
-
}
|
|
101
|
-
export function isStaging() {
|
|
102
|
-
return process.env.NODE_ENV === 'staging';
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=config-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../../src/core/config/config-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration Sources - Load from Environment, Files, and Options
|
|
3
|
-
*
|
|
4
|
-
* This module handles loading configuration from different sources with clear precedence:
|
|
5
|
-
* Environment Variables > createApp Options > Config File > Schema Defaults
|
|
6
|
-
*/
|
|
7
|
-
import { AppConfig } from '../../types/config.js';
|
|
8
|
-
import { MoroOptions } from '../../types/core.js';
|
|
9
|
-
/**
|
|
10
|
-
* Configuration source metadata for debugging
|
|
11
|
-
*/
|
|
12
|
-
export interface ConfigSourceInfo {
|
|
13
|
-
source: 'environment' | 'createApp' | 'configFile' | 'default';
|
|
14
|
-
path: string;
|
|
15
|
-
value: any;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Load configuration from all sources with proper precedence
|
|
19
|
-
* Returns a validated, complete configuration object
|
|
20
|
-
*/
|
|
21
|
-
export declare function loadConfigFromAllSources(createAppOptions?: MoroOptions): AppConfig;
|