mcp-server-framework 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +174 -0
- package/LICENSE-GPL.md +219 -0
- package/LICENSE.md +187 -0
- package/README.md +439 -0
- package/build/config/config-cache.d.ts +120 -0
- package/build/config/config-cache.d.ts.map +1 -0
- package/build/config/config-cache.js +310 -0
- package/build/config/config-cache.js.map +1 -0
- package/build/config/env.d.ts +476 -0
- package/build/config/env.d.ts.map +1 -0
- package/build/config/env.js +441 -0
- package/build/config/env.js.map +1 -0
- package/build/config/extensions.d.ts +107 -0
- package/build/config/extensions.d.ts.map +1 -0
- package/build/config/extensions.js +152 -0
- package/build/config/extensions.js.map +1 -0
- package/build/config/file/index.d.ts +8 -0
- package/build/config/file/index.d.ts.map +1 -0
- package/build/config/file/index.js +10 -0
- package/build/config/file/index.js.map +1 -0
- package/build/config/file/loader.d.ts +31 -0
- package/build/config/file/loader.d.ts.map +1 -0
- package/build/config/file/loader.js +313 -0
- package/build/config/file/loader.js.map +1 -0
- package/build/config/file/schema.d.ts +583 -0
- package/build/config/file/schema.d.ts.map +1 -0
- package/build/config/file/schema.js +388 -0
- package/build/config/file/schema.js.map +1 -0
- package/build/config/index.d.ts +15 -0
- package/build/config/index.d.ts.map +1 -0
- package/build/config/index.js +27 -0
- package/build/config/index.js.map +1 -0
- package/build/config/startup-warnings.d.ts +46 -0
- package/build/config/startup-warnings.d.ts.map +1 -0
- package/build/config/startup-warnings.js +61 -0
- package/build/config/startup-warnings.js.map +1 -0
- package/build/connection/connection-state.d.ts +196 -0
- package/build/connection/connection-state.d.ts.map +1 -0
- package/build/connection/connection-state.js +426 -0
- package/build/connection/connection-state.js.map +1 -0
- package/build/connection/core/base.d.ts +43 -0
- package/build/connection/core/base.d.ts.map +1 -0
- package/build/connection/core/base.js +82 -0
- package/build/connection/core/base.js.map +1 -0
- package/build/connection/core/constants.d.ts +121 -0
- package/build/connection/core/constants.d.ts.map +1 -0
- package/build/connection/core/constants.js +151 -0
- package/build/connection/core/constants.js.map +1 -0
- package/build/connection/core/index.d.ts +13 -0
- package/build/connection/core/index.d.ts.map +1 -0
- package/build/connection/core/index.js +14 -0
- package/build/connection/core/index.js.map +1 -0
- package/build/connection/core/types.d.ts +102 -0
- package/build/connection/core/types.d.ts.map +1 -0
- package/build/connection/core/types.js +31 -0
- package/build/connection/core/types.js.map +1 -0
- package/build/connection/index.d.ts +19 -0
- package/build/connection/index.d.ts.map +1 -0
- package/build/connection/index.js +22 -0
- package/build/connection/index.js.map +1 -0
- package/build/connection/types.d.ts +125 -0
- package/build/connection/types.d.ts.map +1 -0
- package/build/connection/types.js +39 -0
- package/build/connection/types.js.map +1 -0
- package/build/errors/categories/auth.d.ts +59 -0
- package/build/errors/categories/auth.d.ts.map +1 -0
- package/build/errors/categories/auth.js +111 -0
- package/build/errors/categories/auth.js.map +1 -0
- package/build/errors/categories/connection.d.ts +70 -0
- package/build/errors/categories/connection.d.ts.map +1 -0
- package/build/errors/categories/connection.js +120 -0
- package/build/errors/categories/connection.js.map +1 -0
- package/build/errors/categories/index.d.ts +14 -0
- package/build/errors/categories/index.d.ts.map +1 -0
- package/build/errors/categories/index.js +20 -0
- package/build/errors/categories/index.js.map +1 -0
- package/build/errors/categories/operation.d.ts +83 -0
- package/build/errors/categories/operation.d.ts.map +1 -0
- package/build/errors/categories/operation.js +149 -0
- package/build/errors/categories/operation.js.map +1 -0
- package/build/errors/categories/protocol.d.ts +68 -0
- package/build/errors/categories/protocol.d.ts.map +1 -0
- package/build/errors/categories/protocol.js +135 -0
- package/build/errors/categories/protocol.js.map +1 -0
- package/build/errors/categories/session.d.ts +50 -0
- package/build/errors/categories/session.d.ts.map +1 -0
- package/build/errors/categories/session.js +97 -0
- package/build/errors/categories/session.js.map +1 -0
- package/build/errors/categories/system.d.ts +95 -0
- package/build/errors/categories/system.d.ts.map +1 -0
- package/build/errors/categories/system.js +190 -0
- package/build/errors/categories/system.js.map +1 -0
- package/build/errors/categories/transport.d.ts +70 -0
- package/build/errors/categories/transport.d.ts.map +1 -0
- package/build/errors/categories/transport.js +148 -0
- package/build/errors/categories/transport.js.map +1 -0
- package/build/errors/categories/validation.d.ts +140 -0
- package/build/errors/categories/validation.d.ts.map +1 -0
- package/build/errors/categories/validation.js +311 -0
- package/build/errors/categories/validation.js.map +1 -0
- package/build/errors/core/base.d.ts +103 -0
- package/build/errors/core/base.d.ts.map +1 -0
- package/build/errors/core/base.js +219 -0
- package/build/errors/core/base.js.map +1 -0
- package/build/errors/core/constants.d.ts +40 -0
- package/build/errors/core/constants.d.ts.map +1 -0
- package/build/errors/core/constants.js +49 -0
- package/build/errors/core/constants.js.map +1 -0
- package/build/errors/core/error-codes.d.ts +72 -0
- package/build/errors/core/error-codes.d.ts.map +1 -0
- package/build/errors/core/error-codes.js +88 -0
- package/build/errors/core/error-codes.js.map +1 -0
- package/build/errors/core/http.d.ts +69 -0
- package/build/errors/core/http.d.ts.map +1 -0
- package/build/errors/core/http.js +106 -0
- package/build/errors/core/http.js.map +1 -0
- package/build/errors/core/index.d.ts +23 -0
- package/build/errors/core/index.d.ts.map +1 -0
- package/build/errors/core/index.js +41 -0
- package/build/errors/core/index.js.map +1 -0
- package/build/errors/core/json-rpc.d.ts +69 -0
- package/build/errors/core/json-rpc.d.ts.map +1 -0
- package/build/errors/core/json-rpc.js +79 -0
- package/build/errors/core/json-rpc.js.map +1 -0
- package/build/errors/core/messages.d.ts +51 -0
- package/build/errors/core/messages.d.ts.map +1 -0
- package/build/errors/core/messages.js +59 -0
- package/build/errors/core/messages.js.map +1 -0
- package/build/errors/core/types.d.ts +80 -0
- package/build/errors/core/types.d.ts.map +1 -0
- package/build/errors/core/types.js +10 -0
- package/build/errors/core/types.js.map +1 -0
- package/build/errors/factory.d.ts +199 -0
- package/build/errors/factory.d.ts.map +1 -0
- package/build/errors/factory.js +244 -0
- package/build/errors/factory.js.map +1 -0
- package/build/errors/index.d.ts +35 -0
- package/build/errors/index.d.ts.map +1 -0
- package/build/errors/index.js +67 -0
- package/build/errors/index.js.map +1 -0
- package/build/index.d.ts +93 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +107 -0
- package/build/index.js.map +1 -0
- package/build/logger/core/constants.d.ts +143 -0
- package/build/logger/core/constants.d.ts.map +1 -0
- package/build/logger/core/constants.js +206 -0
- package/build/logger/core/constants.js.map +1 -0
- package/build/logger/core/context.d.ts +170 -0
- package/build/logger/core/context.d.ts.map +1 -0
- package/build/logger/core/context.js +237 -0
- package/build/logger/core/context.js.map +1 -0
- package/build/logger/core/errors.d.ts +101 -0
- package/build/logger/core/errors.d.ts.map +1 -0
- package/build/logger/core/errors.js +128 -0
- package/build/logger/core/errors.js.map +1 -0
- package/build/logger/core/format.d.ts +40 -0
- package/build/logger/core/format.d.ts.map +1 -0
- package/build/logger/core/format.js +47 -0
- package/build/logger/core/format.js.map +1 -0
- package/build/logger/core/index.d.ts +19 -0
- package/build/logger/core/index.d.ts.map +1 -0
- package/build/logger/core/index.js +47 -0
- package/build/logger/core/index.js.map +1 -0
- package/build/logger/core/trace-context.d.ts +51 -0
- package/build/logger/core/trace-context.d.ts.map +1 -0
- package/build/logger/core/trace-context.js +42 -0
- package/build/logger/core/trace-context.js.map +1 -0
- package/build/logger/core/types.d.ts +233 -0
- package/build/logger/core/types.d.ts.map +1 -0
- package/build/logger/core/types.js +10 -0
- package/build/logger/core/types.js.map +1 -0
- package/build/logger/factory.d.ts +150 -0
- package/build/logger/factory.d.ts.map +1 -0
- package/build/logger/factory.js +236 -0
- package/build/logger/factory.js.map +1 -0
- package/build/logger/formatters/index.d.ts +12 -0
- package/build/logger/formatters/index.d.ts.map +1 -0
- package/build/logger/formatters/index.js +15 -0
- package/build/logger/formatters/index.js.map +1 -0
- package/build/logger/formatters/json-formatter.d.ts +54 -0
- package/build/logger/formatters/json-formatter.d.ts.map +1 -0
- package/build/logger/formatters/json-formatter.js +80 -0
- package/build/logger/formatters/json-formatter.js.map +1 -0
- package/build/logger/formatters/schema.d.ts +230 -0
- package/build/logger/formatters/schema.d.ts.map +1 -0
- package/build/logger/formatters/schema.js +278 -0
- package/build/logger/formatters/schema.js.map +1 -0
- package/build/logger/formatters/text-formatter.d.ts +50 -0
- package/build/logger/formatters/text-formatter.d.ts.map +1 -0
- package/build/logger/formatters/text-formatter.js +93 -0
- package/build/logger/formatters/text-formatter.js.map +1 -0
- package/build/logger/index.d.ts +39 -0
- package/build/logger/index.d.ts.map +1 -0
- package/build/logger/index.js +43 -0
- package/build/logger/index.js.map +1 -0
- package/build/logger/logger.d.ts +278 -0
- package/build/logger/logger.d.ts.map +1 -0
- package/build/logger/logger.js +459 -0
- package/build/logger/logger.js.map +1 -0
- package/build/logger/mcp-logger.d.ts +177 -0
- package/build/logger/mcp-logger.d.ts.map +1 -0
- package/build/logger/mcp-logger.js +294 -0
- package/build/logger/mcp-logger.js.map +1 -0
- package/build/logger/scrubbing/index.d.ts +14 -0
- package/build/logger/scrubbing/index.d.ts.map +1 -0
- package/build/logger/scrubbing/index.js +16 -0
- package/build/logger/scrubbing/index.js.map +1 -0
- package/build/logger/scrubbing/injection-guard.d.ts +69 -0
- package/build/logger/scrubbing/injection-guard.d.ts.map +1 -0
- package/build/logger/scrubbing/injection-guard.js +102 -0
- package/build/logger/scrubbing/injection-guard.js.map +1 -0
- package/build/logger/scrubbing/secret-scrubber.d.ts +72 -0
- package/build/logger/scrubbing/secret-scrubber.d.ts.map +1 -0
- package/build/logger/scrubbing/secret-scrubber.js +177 -0
- package/build/logger/scrubbing/secret-scrubber.js.map +1 -0
- package/build/logger/writers/base-writer.d.ts +45 -0
- package/build/logger/writers/base-writer.d.ts.map +1 -0
- package/build/logger/writers/base-writer.js +41 -0
- package/build/logger/writers/base-writer.js.map +1 -0
- package/build/logger/writers/composite-writer.d.ts +83 -0
- package/build/logger/writers/composite-writer.d.ts.map +1 -0
- package/build/logger/writers/composite-writer.js +121 -0
- package/build/logger/writers/composite-writer.js.map +1 -0
- package/build/logger/writers/console-writer.d.ts +59 -0
- package/build/logger/writers/console-writer.d.ts.map +1 -0
- package/build/logger/writers/console-writer.js +73 -0
- package/build/logger/writers/console-writer.js.map +1 -0
- package/build/logger/writers/file-writer.d.ts +160 -0
- package/build/logger/writers/file-writer.d.ts.map +1 -0
- package/build/logger/writers/file-writer.js +345 -0
- package/build/logger/writers/file-writer.js.map +1 -0
- package/build/logger/writers/index.d.ts +15 -0
- package/build/logger/writers/index.d.ts.map +1 -0
- package/build/logger/writers/index.js +19 -0
- package/build/logger/writers/index.js.map +1 -0
- package/build/mcp/capabilities/apps/define-app.d.ts +68 -0
- package/build/mcp/capabilities/apps/define-app.d.ts.map +1 -0
- package/build/mcp/capabilities/apps/define-app.js +127 -0
- package/build/mcp/capabilities/apps/define-app.js.map +1 -0
- package/build/mcp/capabilities/apps/index.d.ts +10 -0
- package/build/mcp/capabilities/apps/index.d.ts.map +1 -0
- package/build/mcp/capabilities/apps/index.js +10 -0
- package/build/mcp/capabilities/apps/index.js.map +1 -0
- package/build/mcp/capabilities/capabilities.d.ts +24 -0
- package/build/mcp/capabilities/capabilities.d.ts.map +1 -0
- package/build/mcp/capabilities/capabilities.js +50 -0
- package/build/mcp/capabilities/capabilities.js.map +1 -0
- package/build/mcp/capabilities/index.d.ts +17 -0
- package/build/mcp/capabilities/index.d.ts.map +1 -0
- package/build/mcp/capabilities/index.js +20 -0
- package/build/mcp/capabilities/index.js.map +1 -0
- package/build/mcp/capabilities/prompts/define-prompt.d.ts +95 -0
- package/build/mcp/capabilities/prompts/define-prompt.d.ts.map +1 -0
- package/build/mcp/capabilities/prompts/define-prompt.js +109 -0
- package/build/mcp/capabilities/prompts/define-prompt.js.map +1 -0
- package/build/mcp/capabilities/prompts/index.d.ts +10 -0
- package/build/mcp/capabilities/prompts/index.d.ts.map +1 -0
- package/build/mcp/capabilities/prompts/index.js +10 -0
- package/build/mcp/capabilities/prompts/index.js.map +1 -0
- package/build/mcp/capabilities/registry/base-registry.d.ts +95 -0
- package/build/mcp/capabilities/registry/base-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/base-registry.js +149 -0
- package/build/mcp/capabilities/registry/base-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/index.d.ts +16 -0
- package/build/mcp/capabilities/registry/index.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/index.js +34 -0
- package/build/mcp/capabilities/registry/index.js.map +1 -0
- package/build/mcp/capabilities/registry/prompt-registry.d.ts +116 -0
- package/build/mcp/capabilities/registry/prompt-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/prompt-registry.js +232 -0
- package/build/mcp/capabilities/registry/prompt-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/reset.d.ts +30 -0
- package/build/mcp/capabilities/registry/reset.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/reset.js +48 -0
- package/build/mcp/capabilities/registry/reset.js.map +1 -0
- package/build/mcp/capabilities/registry/resource-registry.d.ts +152 -0
- package/build/mcp/capabilities/registry/resource-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/resource-registry.js +430 -0
- package/build/mcp/capabilities/registry/resource-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/scope-enforcement.d.ts +48 -0
- package/build/mcp/capabilities/registry/scope-enforcement.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/scope-enforcement.js +62 -0
- package/build/mcp/capabilities/registry/scope-enforcement.js.map +1 -0
- package/build/mcp/capabilities/registry/task-tool-registry.d.ts +96 -0
- package/build/mcp/capabilities/registry/task-tool-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/task-tool-registry.js +190 -0
- package/build/mcp/capabilities/registry/task-tool-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/tool-registry.d.ts +100 -0
- package/build/mcp/capabilities/registry/tool-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/tool-registry.js +242 -0
- package/build/mcp/capabilities/registry/tool-registry.js.map +1 -0
- package/build/mcp/capabilities/resources/define-resource.d.ts +103 -0
- package/build/mcp/capabilities/resources/define-resource.d.ts.map +1 -0
- package/build/mcp/capabilities/resources/define-resource.js +137 -0
- package/build/mcp/capabilities/resources/define-resource.js.map +1 -0
- package/build/mcp/capabilities/resources/index.d.ts +10 -0
- package/build/mcp/capabilities/resources/index.d.ts.map +1 -0
- package/build/mcp/capabilities/resources/index.js +10 -0
- package/build/mcp/capabilities/resources/index.js.map +1 -0
- package/build/mcp/capabilities/server-capabilities.d.ts +33 -0
- package/build/mcp/capabilities/server-capabilities.d.ts.map +1 -0
- package/build/mcp/capabilities/server-capabilities.js +16 -0
- package/build/mcp/capabilities/server-capabilities.js.map +1 -0
- package/build/mcp/capabilities/tasks/define-task.d.ts +75 -0
- package/build/mcp/capabilities/tasks/define-task.d.ts.map +1 -0
- package/build/mcp/capabilities/tasks/define-task.js +93 -0
- package/build/mcp/capabilities/tasks/define-task.js.map +1 -0
- package/build/mcp/capabilities/tasks/index.d.ts +11 -0
- package/build/mcp/capabilities/tasks/index.d.ts.map +1 -0
- package/build/mcp/capabilities/tasks/index.js +11 -0
- package/build/mcp/capabilities/tasks/index.js.map +1 -0
- package/build/mcp/capabilities/tools/define-tool.d.ts +62 -0
- package/build/mcp/capabilities/tools/define-tool.d.ts.map +1 -0
- package/build/mcp/capabilities/tools/define-tool.js +73 -0
- package/build/mcp/capabilities/tools/define-tool.js.map +1 -0
- package/build/mcp/capabilities/tools/index.d.ts +10 -0
- package/build/mcp/capabilities/tools/index.d.ts.map +1 -0
- package/build/mcp/capabilities/tools/index.js +10 -0
- package/build/mcp/capabilities/tools/index.js.map +1 -0
- package/build/mcp/handlers/index.d.ts +19 -0
- package/build/mcp/handlers/index.d.ts.map +1 -0
- package/build/mcp/handlers/index.js +26 -0
- package/build/mcp/handlers/index.js.map +1 -0
- package/build/mcp/handlers/ping.d.ts +27 -0
- package/build/mcp/handlers/ping.d.ts.map +1 -0
- package/build/mcp/handlers/ping.js +61 -0
- package/build/mcp/handlers/ping.js.map +1 -0
- package/build/mcp/handlers/progress.d.ts +41 -0
- package/build/mcp/handlers/progress.d.ts.map +1 -0
- package/build/mcp/handlers/progress.js +79 -0
- package/build/mcp/handlers/progress.js.map +1 -0
- package/build/mcp/index.d.ts +28 -0
- package/build/mcp/index.d.ts.map +1 -0
- package/build/mcp/index.js +34 -0
- package/build/mcp/index.js.map +1 -0
- package/build/mcp/responses/helpers.d.ts +146 -0
- package/build/mcp/responses/helpers.d.ts.map +1 -0
- package/build/mcp/responses/helpers.js +197 -0
- package/build/mcp/responses/helpers.js.map +1 -0
- package/build/mcp/responses/index.d.ts +9 -0
- package/build/mcp/responses/index.d.ts.map +1 -0
- package/build/mcp/responses/index.js +12 -0
- package/build/mcp/responses/index.js.map +1 -0
- package/build/mcp/types/context.d.ts +371 -0
- package/build/mcp/types/context.d.ts.map +1 -0
- package/build/mcp/types/context.js +17 -0
- package/build/mcp/types/context.js.map +1 -0
- package/build/mcp/types/definition.d.ts +727 -0
- package/build/mcp/types/definition.d.ts.map +1 -0
- package/build/mcp/types/definition.js +29 -0
- package/build/mcp/types/definition.js.map +1 -0
- package/build/mcp/types/handler.d.ts +58 -0
- package/build/mcp/types/handler.d.ts.map +1 -0
- package/build/mcp/types/handler.js +10 -0
- package/build/mcp/types/handler.js.map +1 -0
- package/build/mcp/types/index.d.ts +21 -0
- package/build/mcp/types/index.d.ts.map +1 -0
- package/build/mcp/types/index.js +18 -0
- package/build/mcp/types/index.js.map +1 -0
- package/build/mcp/types/response.d.ts +79 -0
- package/build/mcp/types/response.d.ts.map +1 -0
- package/build/mcp/types/response.js +10 -0
- package/build/mcp/types/response.js.map +1 -0
- package/build/server/auth/auth-context.d.ts +52 -0
- package/build/server/auth/auth-context.d.ts.map +1 -0
- package/build/server/auth/auth-context.js +45 -0
- package/build/server/auth/auth-context.js.map +1 -0
- package/build/server/auth/guards.d.ts +72 -0
- package/build/server/auth/guards.d.ts.map +1 -0
- package/build/server/auth/guards.js +103 -0
- package/build/server/auth/guards.js.map +1 -0
- package/build/server/auth/index.d.ts +21 -0
- package/build/server/auth/index.d.ts.map +1 -0
- package/build/server/auth/index.js +20 -0
- package/build/server/auth/index.js.map +1 -0
- package/build/server/auth/oidc-discovery.d.ts +68 -0
- package/build/server/auth/oidc-discovery.d.ts.map +1 -0
- package/build/server/auth/oidc-discovery.js +234 -0
- package/build/server/auth/oidc-discovery.js.map +1 -0
- package/build/server/auth/oidc-provider.d.ts +96 -0
- package/build/server/auth/oidc-provider.d.ts.map +1 -0
- package/build/server/auth/oidc-provider.js +126 -0
- package/build/server/auth/oidc-provider.js.map +1 -0
- package/build/server/auth/types.d.ts +204 -0
- package/build/server/auth/types.d.ts.map +1 -0
- package/build/server/auth/types.js +29 -0
- package/build/server/auth/types.js.map +1 -0
- package/build/server/auth/upstream-provider.d.ts +161 -0
- package/build/server/auth/upstream-provider.d.ts.map +1 -0
- package/build/server/auth/upstream-provider.js +411 -0
- package/build/server/auth/upstream-provider.js.map +1 -0
- package/build/server/builder/constants.d.ts +45 -0
- package/build/server/builder/constants.d.ts.map +1 -0
- package/build/server/builder/constants.js +54 -0
- package/build/server/builder/constants.js.map +1 -0
- package/build/server/builder/index.d.ts +24 -0
- package/build/server/builder/index.d.ts.map +1 -0
- package/build/server/builder/index.js +25 -0
- package/build/server/builder/index.js.map +1 -0
- package/build/server/builder/primitive-collector.d.ts +24 -0
- package/build/server/builder/primitive-collector.d.ts.map +1 -0
- package/build/server/builder/primitive-collector.js +89 -0
- package/build/server/builder/primitive-collector.js.map +1 -0
- package/build/server/builder/server-builder.d.ts +53 -0
- package/build/server/builder/server-builder.d.ts.map +1 -0
- package/build/server/builder/server-builder.js +132 -0
- package/build/server/builder/server-builder.js.map +1 -0
- package/build/server/builder/types.d.ts +93 -0
- package/build/server/builder/types.d.ts.map +1 -0
- package/build/server/builder/types.js +25 -0
- package/build/server/builder/types.js.map +1 -0
- package/build/server/builder/validation.d.ts +36 -0
- package/build/server/builder/validation.d.ts.map +1 -0
- package/build/server/builder/validation.js +44 -0
- package/build/server/builder/validation.js.map +1 -0
- package/build/server/create-server.d.ts +57 -0
- package/build/server/create-server.d.ts.map +1 -0
- package/build/server/create-server.js +104 -0
- package/build/server/create-server.js.map +1 -0
- package/build/server/http/express-app.d.ts +103 -0
- package/build/server/http/express-app.d.ts.map +1 -0
- package/build/server/http/express-app.js +391 -0
- package/build/server/http/express-app.js.map +1 -0
- package/build/server/http/http-server.d.ts +67 -0
- package/build/server/http/http-server.d.ts.map +1 -0
- package/build/server/http/http-server.js +188 -0
- package/build/server/http/http-server.js.map +1 -0
- package/build/server/http/http-transport.d.ts +33 -0
- package/build/server/http/http-transport.d.ts.map +1 -0
- package/build/server/http/http-transport.js +84 -0
- package/build/server/http/http-transport.js.map +1 -0
- package/build/server/http/index.d.ts +15 -0
- package/build/server/http/index.d.ts.map +1 -0
- package/build/server/http/index.js +11 -0
- package/build/server/http/index.js.map +1 -0
- package/build/server/index.d.ts +25 -0
- package/build/server/index.d.ts.map +1 -0
- package/build/server/index.js +41 -0
- package/build/server/index.js.map +1 -0
- package/build/server/lifecycle.d.ts +114 -0
- package/build/server/lifecycle.d.ts.map +1 -0
- package/build/server/lifecycle.js +30 -0
- package/build/server/lifecycle.js.map +1 -0
- package/build/server/middleware/bearer-auth.d.ts +43 -0
- package/build/server/middleware/bearer-auth.d.ts.map +1 -0
- package/build/server/middleware/bearer-auth.js +75 -0
- package/build/server/middleware/bearer-auth.js.map +1 -0
- package/build/server/middleware/custom-header-auth.d.ts +40 -0
- package/build/server/middleware/custom-header-auth.d.ts.map +1 -0
- package/build/server/middleware/custom-header-auth.js +90 -0
- package/build/server/middleware/custom-header-auth.js.map +1 -0
- package/build/server/middleware/dns-rebinding.d.ts +25 -0
- package/build/server/middleware/dns-rebinding.d.ts.map +1 -0
- package/build/server/middleware/dns-rebinding.js +94 -0
- package/build/server/middleware/dns-rebinding.js.map +1 -0
- package/build/server/middleware/index.d.ts +69 -0
- package/build/server/middleware/index.d.ts.map +1 -0
- package/build/server/middleware/index.js +68 -0
- package/build/server/middleware/index.js.map +1 -0
- package/build/server/middleware/logging.d.ts +21 -0
- package/build/server/middleware/logging.d.ts.map +1 -0
- package/build/server/middleware/logging.js +36 -0
- package/build/server/middleware/logging.js.map +1 -0
- package/build/server/middleware/oauth-router.d.ts +50 -0
- package/build/server/middleware/oauth-router.d.ts.map +1 -0
- package/build/server/middleware/oauth-router.js +53 -0
- package/build/server/middleware/oauth-router.js.map +1 -0
- package/build/server/middleware/protocol-version.d.ts +13 -0
- package/build/server/middleware/protocol-version.d.ts.map +1 -0
- package/build/server/middleware/protocol-version.js +48 -0
- package/build/server/middleware/protocol-version.js.map +1 -0
- package/build/server/middleware/rate-limit.d.ts +47 -0
- package/build/server/middleware/rate-limit.d.ts.map +1 -0
- package/build/server/middleware/rate-limit.js +109 -0
- package/build/server/middleware/rate-limit.js.map +1 -0
- package/build/server/middleware/trust-proxy.d.ts +37 -0
- package/build/server/middleware/trust-proxy.d.ts.map +1 -0
- package/build/server/middleware/trust-proxy.js +154 -0
- package/build/server/middleware/trust-proxy.js.map +1 -0
- package/build/server/option-overrides.d.ts +25 -0
- package/build/server/option-overrides.d.ts.map +1 -0
- package/build/server/option-overrides.js +85 -0
- package/build/server/option-overrides.js.map +1 -0
- package/build/server/routes/health.d.ts +87 -0
- package/build/server/routes/health.d.ts.map +1 -0
- package/build/server/routes/health.js +183 -0
- package/build/server/routes/health.js.map +1 -0
- package/build/server/routes/index.d.ts +16 -0
- package/build/server/routes/index.d.ts.map +1 -0
- package/build/server/routes/index.js +18 -0
- package/build/server/routes/index.js.map +1 -0
- package/build/server/routes/metrics.d.ts +40 -0
- package/build/server/routes/metrics.d.ts.map +1 -0
- package/build/server/routes/metrics.js +81 -0
- package/build/server/routes/metrics.js.map +1 -0
- package/build/server/routes/oauth-router.d.ts +50 -0
- package/build/server/routes/oauth-router.d.ts.map +1 -0
- package/build/server/routes/oauth-router.js +53 -0
- package/build/server/routes/oauth-router.js.map +1 -0
- package/build/server/routes/readiness-status.d.ts +25 -0
- package/build/server/routes/readiness-status.d.ts.map +1 -0
- package/build/server/routes/readiness-status.js +27 -0
- package/build/server/routes/readiness-status.js.map +1 -0
- package/build/server/routes/sse-router.d.ts +43 -0
- package/build/server/routes/sse-router.d.ts.map +1 -0
- package/build/server/routes/sse-router.js +92 -0
- package/build/server/routes/sse-router.js.map +1 -0
- package/build/server/routes/streamable-http-router.d.ts +36 -0
- package/build/server/routes/streamable-http-router.d.ts.map +1 -0
- package/build/server/routes/streamable-http-router.js +59 -0
- package/build/server/routes/streamable-http-router.js.map +1 -0
- package/build/server/server-instance.d.ts +185 -0
- package/build/server/server-instance.d.ts.map +1 -0
- package/build/server/server-instance.js +615 -0
- package/build/server/server-instance.js.map +1 -0
- package/build/server/server-options.d.ts +411 -0
- package/build/server/server-options.d.ts.map +1 -0
- package/build/server/server-options.js +17 -0
- package/build/server/server-options.js.map +1 -0
- package/build/server/session/in-memory-store.d.ts +128 -0
- package/build/server/session/in-memory-store.d.ts.map +1 -0
- package/build/server/session/in-memory-store.js +312 -0
- package/build/server/session/in-memory-store.js.map +1 -0
- package/build/server/session/index.d.ts +43 -0
- package/build/server/session/index.d.ts.map +1 -0
- package/build/server/session/index.js +47 -0
- package/build/server/session/index.js.map +1 -0
- package/build/server/session/mcp-session.d.ts +210 -0
- package/build/server/session/mcp-session.d.ts.map +1 -0
- package/build/server/session/mcp-session.js +428 -0
- package/build/server/session/mcp-session.js.map +1 -0
- package/build/server/session/session-factory.d.ts +119 -0
- package/build/server/session/session-factory.d.ts.map +1 -0
- package/build/server/session/session-factory.js +131 -0
- package/build/server/session/session-factory.js.map +1 -0
- package/build/server/session/session-housekeeper.d.ts +100 -0
- package/build/server/session/session-housekeeper.d.ts.map +1 -0
- package/build/server/session/session-housekeeper.js +217 -0
- package/build/server/session/session-housekeeper.js.map +1 -0
- package/build/server/session/session-manager.d.ts +227 -0
- package/build/server/session/session-manager.d.ts.map +1 -0
- package/build/server/session/session-manager.js +282 -0
- package/build/server/session/session-manager.js.map +1 -0
- package/build/server/session/session-store.d.ts +95 -0
- package/build/server/session/session-store.d.ts.map +1 -0
- package/build/server/session/session-store.js +13 -0
- package/build/server/session/session-store.js.map +1 -0
- package/build/server/session/session.d.ts +132 -0
- package/build/server/session/session.d.ts.map +1 -0
- package/build/server/session/session.js +61 -0
- package/build/server/session/session.js.map +1 -0
- package/build/server/transport/constants.d.ts +85 -0
- package/build/server/transport/constants.d.ts.map +1 -0
- package/build/server/transport/constants.js +103 -0
- package/build/server/transport/constants.js.map +1 -0
- package/build/server/transport/index.d.ts +21 -0
- package/build/server/transport/index.d.ts.map +1 -0
- package/build/server/transport/index.js +28 -0
- package/build/server/transport/index.js.map +1 -0
- package/build/server/transport/sse/handler.d.ts +46 -0
- package/build/server/transport/sse/handler.d.ts.map +1 -0
- package/build/server/transport/sse/handler.js +189 -0
- package/build/server/transport/sse/handler.js.map +1 -0
- package/build/server/transport/sse/index.d.ts +15 -0
- package/build/server/transport/sse/index.d.ts.map +1 -0
- package/build/server/transport/sse/index.js +14 -0
- package/build/server/transport/sse/index.js.map +1 -0
- package/build/server/transport/sse/transport.d.ts +94 -0
- package/build/server/transport/sse/transport.d.ts.map +1 -0
- package/build/server/transport/sse/transport.js +175 -0
- package/build/server/transport/sse/transport.js.map +1 -0
- package/build/server/transport/stdio-transport.d.ts +23 -0
- package/build/server/transport/stdio-transport.d.ts.map +1 -0
- package/build/server/transport/stdio-transport.js +59 -0
- package/build/server/transport/stdio-transport.js.map +1 -0
- package/build/server/transport/streamable-http/index.d.ts +9 -0
- package/build/server/transport/streamable-http/index.d.ts.map +1 -0
- package/build/server/transport/streamable-http/index.js +9 -0
- package/build/server/transport/streamable-http/index.js.map +1 -0
- package/build/server/transport/streamable-http/stateful-handler.d.ts +41 -0
- package/build/server/transport/streamable-http/stateful-handler.d.ts.map +1 -0
- package/build/server/transport/streamable-http/stateful-handler.js +264 -0
- package/build/server/transport/streamable-http/stateful-handler.js.map +1 -0
- package/build/server/transport/streamable-http/stateless-handler.d.ts +28 -0
- package/build/server/transport/streamable-http/stateless-handler.d.ts.map +1 -0
- package/build/server/transport/streamable-http/stateless-handler.js +81 -0
- package/build/server/transport/streamable-http/stateless-handler.js.map +1 -0
- package/build/server/transport/streamable-http/transport.d.ts +110 -0
- package/build/server/transport/streamable-http/transport.d.ts.map +1 -0
- package/build/server/transport/streamable-http/transport.js +118 -0
- package/build/server/transport/streamable-http/transport.js.map +1 -0
- package/build/server/transport/transport-context.d.ts +67 -0
- package/build/server/transport/transport-context.d.ts.map +1 -0
- package/build/server/transport/transport-context.js +38 -0
- package/build/server/transport/transport-context.js.map +1 -0
- package/build/server/transport/types.d.ts +56 -0
- package/build/server/transport/types.d.ts.map +1 -0
- package/build/server/transport/types.js +11 -0
- package/build/server/transport/types.js.map +1 -0
- package/build/server/transport-options.d.ts +248 -0
- package/build/server/transport-options.d.ts.map +1 -0
- package/build/server/transport-options.js +18 -0
- package/build/server/transport-options.js.map +1 -0
- package/build/server/types.d.ts +172 -0
- package/build/server/types.d.ts.map +1 -0
- package/build/server/types.js +9 -0
- package/build/server/types.js.map +1 -0
- package/build/telemetry/connection-telemetry-bridge.d.ts +30 -0
- package/build/telemetry/connection-telemetry-bridge.d.ts.map +1 -0
- package/build/telemetry/connection-telemetry-bridge.js +54 -0
- package/build/telemetry/connection-telemetry-bridge.js.map +1 -0
- package/build/telemetry/core/config.d.ts +38 -0
- package/build/telemetry/core/config.d.ts.map +1 -0
- package/build/telemetry/core/config.js +54 -0
- package/build/telemetry/core/config.js.map +1 -0
- package/build/telemetry/core/constants.d.ts +183 -0
- package/build/telemetry/core/constants.d.ts.map +1 -0
- package/build/telemetry/core/constants.js +207 -0
- package/build/telemetry/core/constants.js.map +1 -0
- package/build/telemetry/core/diag-logger.d.ts +35 -0
- package/build/telemetry/core/diag-logger.d.ts.map +1 -0
- package/build/telemetry/core/diag-logger.js +54 -0
- package/build/telemetry/core/diag-logger.js.map +1 -0
- package/build/telemetry/core/index.d.ts +12 -0
- package/build/telemetry/core/index.d.ts.map +1 -0
- package/build/telemetry/core/index.js +32 -0
- package/build/telemetry/core/index.js.map +1 -0
- package/build/telemetry/core/types.d.ts +106 -0
- package/build/telemetry/core/types.d.ts.map +1 -0
- package/build/telemetry/core/types.js +10 -0
- package/build/telemetry/core/types.js.map +1 -0
- package/build/telemetry/index.d.ts +59 -0
- package/build/telemetry/index.d.ts.map +1 -0
- package/build/telemetry/index.js +79 -0
- package/build/telemetry/index.js.map +1 -0
- package/build/telemetry/metrics.d.ts +127 -0
- package/build/telemetry/metrics.d.ts.map +1 -0
- package/build/telemetry/metrics.js +337 -0
- package/build/telemetry/metrics.js.map +1 -0
- package/build/telemetry/sdk.d.ts +110 -0
- package/build/telemetry/sdk.d.ts.map +1 -0
- package/build/telemetry/sdk.js +547 -0
- package/build/telemetry/sdk.js.map +1 -0
- package/build/telemetry/tracing.d.ts +78 -0
- package/build/telemetry/tracing.d.ts.map +1 -0
- package/build/telemetry/tracing.js +257 -0
- package/build/telemetry/tracing.js.map +1 -0
- package/build/utils/env-helpers.d.ts +46 -0
- package/build/utils/env-helpers.d.ts.map +1 -0
- package/build/utils/env-helpers.js +54 -0
- package/build/utils/env-helpers.js.map +1 -0
- package/build/utils/index.d.ts +14 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +19 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/sensitive-keys.d.ts +48 -0
- package/build/utils/sensitive-keys.d.ts.map +1 -0
- package/build/utils/sensitive-keys.js +131 -0
- package/build/utils/sensitive-keys.js.map +1 -0
- package/build/utils/string-helpers.d.ts +126 -0
- package/build/utils/string-helpers.d.ts.map +1 -0
- package/build/utils/string-helpers.js +189 -0
- package/build/utils/string-helpers.js.map +1 -0
- package/build/utils/validation.d.ts +84 -0
- package/build/utils/validation.d.ts.map +1 -0
- package/build/utils/validation.js +111 -0
- package/build/utils/validation.js.map +1 -0
- package/build/utils/zod-helpers.d.ts +92 -0
- package/build/utils/zod-helpers.d.ts.map +1 -0
- package/build/utils/zod-helpers.js +120 -0
- package/build/utils/zod-helpers.js.map +1 -0
- package/package.json +133 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config Extensions
|
|
3
|
+
*
|
|
4
|
+
* Allows consumer projects to register custom config sections that
|
|
5
|
+
* are recognized during config file loading and validated with
|
|
6
|
+
* consumer-provided Zod schemas.
|
|
7
|
+
*
|
|
8
|
+
* This enables consumer-specific config file sections (e.g., `[myapp]`)
|
|
9
|
+
* without the framework warning about "unknown sections".
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { registerConfigSection, getAppConfig, z } from 'mcp-server-framework';
|
|
14
|
+
*
|
|
15
|
+
* // Register a custom section with a Zod schema
|
|
16
|
+
* registerConfigSection('myapp', z.object({
|
|
17
|
+
* url: z.string().url(),
|
|
18
|
+
* timeout_ms: z.number().int().positive().optional(),
|
|
19
|
+
* }));
|
|
20
|
+
*
|
|
21
|
+
* // After config is loaded, retrieve the validated section data
|
|
22
|
+
* const appConfig = getAppConfig<{ url: string; timeout_ms?: number }>('myapp');
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @module config/extensions
|
|
26
|
+
*/
|
|
27
|
+
import { ConfigurationError } from "../errors/categories/validation.js";
|
|
28
|
+
import { isConfigInitialized } from "./config-cache.js";
|
|
29
|
+
import { CONFIG_FILE_SECTIONS } from "./file/index.js";
|
|
30
|
+
// ============================================================================
|
|
31
|
+
// Registry
|
|
32
|
+
// ============================================================================
|
|
33
|
+
/** Registered consumer config sections */
|
|
34
|
+
const registeredSections = new Map();
|
|
35
|
+
/** Reserved section names derived from the framework config file schema */
|
|
36
|
+
const RESERVED_SECTIONS = new Set(Object.keys(CONFIG_FILE_SECTIONS));
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Public API
|
|
39
|
+
// ============================================================================
|
|
40
|
+
/**
|
|
41
|
+
* Register a custom config section for consumer use.
|
|
42
|
+
*
|
|
43
|
+
* Must be called **before** config initialization (i.e., before the
|
|
44
|
+
* first call to `getFrameworkConfig()`). Registered sections:
|
|
45
|
+
*
|
|
46
|
+
* 1. Are recognized in config files (no "unknown section" warning)
|
|
47
|
+
* 2. Are validated against the provided Zod schema
|
|
48
|
+
* 3. Can be retrieved via `getAppConfig(name)`
|
|
49
|
+
*
|
|
50
|
+
* @param name - Section name as it appears in the config file (e.g., 'myapp')
|
|
51
|
+
* @param schema - Zod schema to validate the section data
|
|
52
|
+
* @throws {ConfigurationError} If the section name is reserved, already registered,
|
|
53
|
+
* or config has already been initialized
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* registerConfigSection('myapp', z.object({
|
|
58
|
+
* url: z.string().url(),
|
|
59
|
+
* api_key: z.string().optional(),
|
|
60
|
+
* }));
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export function registerConfigSection(name, schema) {
|
|
64
|
+
const sectionName = name.toLowerCase();
|
|
65
|
+
// Guard: Must be called before config initialization
|
|
66
|
+
if (isConfigInitialized()) {
|
|
67
|
+
throw ConfigurationError.invalid(`Cannot register config section '${sectionName}': config has already been initialized. ` +
|
|
68
|
+
"Call registerConfigSection() before the first getFrameworkConfig() call.");
|
|
69
|
+
}
|
|
70
|
+
if (RESERVED_SECTIONS.has(sectionName)) {
|
|
71
|
+
throw ConfigurationError.invalid(`Cannot register config section '${sectionName}': reserved by the framework`);
|
|
72
|
+
}
|
|
73
|
+
if (registeredSections.has(sectionName)) {
|
|
74
|
+
throw ConfigurationError.invalid(`Config section '${sectionName}' is already registered`);
|
|
75
|
+
}
|
|
76
|
+
registeredSections.set(sectionName, { schema, data: undefined });
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Retrieve the validated data for a registered config section.
|
|
80
|
+
*
|
|
81
|
+
* Returns `undefined` if:
|
|
82
|
+
* - The section was not present in the config file
|
|
83
|
+
* - Config has not been loaded yet
|
|
84
|
+
*
|
|
85
|
+
* @param name - Section name (case-insensitive)
|
|
86
|
+
* @returns The validated section data, or `undefined`
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* interface MyAppConfig {
|
|
91
|
+
* url: string;
|
|
92
|
+
* timeout_ms?: number;
|
|
93
|
+
* }
|
|
94
|
+
* const config = getAppConfig<MyAppConfig>('myapp');
|
|
95
|
+
* if (config) {
|
|
96
|
+
* console.log(config.url);
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- Intentional: T enables consumer-side type inference
|
|
101
|
+
export function getAppConfig(name) {
|
|
102
|
+
const section = registeredSections.get(name.toLowerCase());
|
|
103
|
+
// @type-narrowing — section.data is `unknown`; caller provides generic T for domain-specific typing
|
|
104
|
+
return section?.data;
|
|
105
|
+
}
|
|
106
|
+
// ============================================================================
|
|
107
|
+
// Internal API (used by loader)
|
|
108
|
+
// ============================================================================
|
|
109
|
+
/**
|
|
110
|
+
* Get all registered consumer section names.
|
|
111
|
+
*
|
|
112
|
+
* Used by the config file loader to recognize consumer sections
|
|
113
|
+
* and suppress "unknown section" warnings.
|
|
114
|
+
*
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
export function getRegisteredSectionNames() {
|
|
118
|
+
return new Set(registeredSections.keys());
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Get the Zod schema for a registered section.
|
|
122
|
+
*
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
export function getRegisteredSectionSchema(name) {
|
|
126
|
+
return registeredSections.get(name.toLowerCase())?.schema;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Store validated data for a registered section.
|
|
130
|
+
*
|
|
131
|
+
* Called by the config file loader after parsing and validating
|
|
132
|
+
* a consumer section from the config file.
|
|
133
|
+
*
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
export function setRegisteredSectionData(name, data) {
|
|
137
|
+
const section = registeredSections.get(name.toLowerCase());
|
|
138
|
+
if (section) {
|
|
139
|
+
section.data = data;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Reset all registered config sections.
|
|
144
|
+
*
|
|
145
|
+
* Intended for testing — clears all registrations and data.
|
|
146
|
+
*
|
|
147
|
+
* @internal
|
|
148
|
+
*/
|
|
149
|
+
export function resetConfigExtensions() {
|
|
150
|
+
registeredSections.clear();
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/config/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAkBvD,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,0CAA0C;AAC1C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA6B,CAAC;AAEhE,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAErE,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,MAAkB;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEvC,qDAAqD;IACrD,IAAI,mBAAmB,EAAE,EAAE,CAAC;QAC1B,MAAM,kBAAkB,CAAC,OAAO,CAC9B,mCAAmC,WAAW,0CAA0C;YACtF,0EAA0E,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,kBAAkB,CAAC,OAAO,CAAC,mCAAmC,WAAW,8BAA8B,CAAC,CAAC;IACjH,CAAC;IAED,IAAI,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,MAAM,kBAAkB,CAAC,OAAO,CAAC,mBAAmB,WAAW,yBAAyB,CAAC,CAAC;IAC5F,CAAC;IAED,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,oIAAoI;AACpI,MAAM,UAAU,YAAY,CAAc,IAAY;IACpD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3D,oGAAoG;IACpG,OAAO,OAAO,EAAE,IAAqB,CAAC;AACxC,CAAC;AAED,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,IAAa;IAClE,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config File Module Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* @module config/file
|
|
5
|
+
*/
|
|
6
|
+
export { loadConfigFile } from "./loader.js";
|
|
7
|
+
export { configFileSchema, CONFIG_FILE_SECTIONS, mapConfigToEnvKeys, CONFIG_FILE_ENV_VAR, DISCOVERY_FILENAMES, type ConfigFileData, type ConfigFileFormat, type ConfigFileResult, type ConfigSource, } from "./schema.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/file/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config File Module Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* @module config/file
|
|
5
|
+
*/
|
|
6
|
+
// Loader (main entry point)
|
|
7
|
+
export { loadConfigFile } from "./loader.js";
|
|
8
|
+
// Schema, types & constants
|
|
9
|
+
export { configFileSchema, CONFIG_FILE_SECTIONS, mapConfigToEnvKeys, CONFIG_FILE_ENV_VAR, DISCOVERY_FILENAMES, } from "./schema.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/file/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,4BAA4B;AAC5B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GAKpB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config File Loader
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the config file loading pipeline:
|
|
5
|
+
* 1. Discover config file (explicit path or auto-discovery)
|
|
6
|
+
* 2. Parse raw content (TOML, YAML, or JSON)
|
|
7
|
+
* 3. Validate against schema (lenient — unknown keys are stripped)
|
|
8
|
+
* 4. Warn about unknown keys (typo detection without crashing)
|
|
9
|
+
* 5. Map nested structure to flat `FrameworkEnvConfig` overrides
|
|
10
|
+
*
|
|
11
|
+
* Returns `undefined` when no config file is found — this is the
|
|
12
|
+
* normal case for servers that rely solely on environment variables.
|
|
13
|
+
*
|
|
14
|
+
* @module config/file/loader
|
|
15
|
+
*/
|
|
16
|
+
import type { ConfigFileResult } from "./schema.js";
|
|
17
|
+
/**
|
|
18
|
+
* Load and validate a config file.
|
|
19
|
+
*
|
|
20
|
+
* This is the single entry point for the config file subsystem.
|
|
21
|
+
* The result contains `Partial<FrameworkEnvConfig>` overrides that
|
|
22
|
+
* can be applied via `applyConfigOverrides()`.
|
|
23
|
+
*
|
|
24
|
+
* Unknown keys are stripped during validation and logged as warnings
|
|
25
|
+
* so typos are visible without preventing the server from starting.
|
|
26
|
+
*
|
|
27
|
+
* @returns Config file result with overrides and metadata, or `undefined` if no file found
|
|
28
|
+
* @throws {ConfigurationError} On discovery, parse, or validation errors
|
|
29
|
+
*/
|
|
30
|
+
export declare function loadConfigFile(): ConfigFileResult | undefined;
|
|
31
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/config/file/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,OAAO,KAAK,EAAoB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMtE;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,SAAS,CA0B7D"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Config File Loader
|
|
3
|
+
*
|
|
4
|
+
* Orchestrates the config file loading pipeline:
|
|
5
|
+
* 1. Discover config file (explicit path or auto-discovery)
|
|
6
|
+
* 2. Parse raw content (TOML, YAML, or JSON)
|
|
7
|
+
* 3. Validate against schema (lenient — unknown keys are stripped)
|
|
8
|
+
* 4. Warn about unknown keys (typo detection without crashing)
|
|
9
|
+
* 5. Map nested structure to flat `FrameworkEnvConfig` overrides
|
|
10
|
+
*
|
|
11
|
+
* Returns `undefined` when no config file is found — this is the
|
|
12
|
+
* normal case for servers that rely solely on environment variables.
|
|
13
|
+
*
|
|
14
|
+
* @module config/file/loader
|
|
15
|
+
*/
|
|
16
|
+
import { existsSync, readFileSync, statSync } from "node:fs";
|
|
17
|
+
import { resolve, extname } from "node:path";
|
|
18
|
+
import { parse as tomlParse } from "smol-toml";
|
|
19
|
+
import { parse as yamlParse } from "yaml";
|
|
20
|
+
import { z } from "zod";
|
|
21
|
+
import { ConfigurationError } from "../../errors/categories/validation.js";
|
|
22
|
+
import { addStartupWarning } from "../startup-warnings.js";
|
|
23
|
+
import { getRegisteredSectionNames, getRegisteredSectionSchema, setRegisteredSectionData } from "../extensions.js";
|
|
24
|
+
import { configFileSchema, CONFIG_FILE_SECTIONS, mapConfigToOverrides, CONFIG_FILE_ENV_VAR, DISCOVERY_FILENAMES, EXTENSION_FORMAT_MAP, } from "./schema.js";
|
|
25
|
+
// ============================================================================
|
|
26
|
+
// Loader (Public API)
|
|
27
|
+
// ============================================================================
|
|
28
|
+
/**
|
|
29
|
+
* Load and validate a config file.
|
|
30
|
+
*
|
|
31
|
+
* This is the single entry point for the config file subsystem.
|
|
32
|
+
* The result contains `Partial<FrameworkEnvConfig>` overrides that
|
|
33
|
+
* can be applied via `applyConfigOverrides()`.
|
|
34
|
+
*
|
|
35
|
+
* Unknown keys are stripped during validation and logged as warnings
|
|
36
|
+
* so typos are visible without preventing the server from starting.
|
|
37
|
+
*
|
|
38
|
+
* @returns Config file result with overrides and metadata, or `undefined` if no file found
|
|
39
|
+
* @throws {ConfigurationError} On discovery, parse, or validation errors
|
|
40
|
+
*/
|
|
41
|
+
export function loadConfigFile() {
|
|
42
|
+
// Step 1: Discover
|
|
43
|
+
const filePath = discoverConfigFile();
|
|
44
|
+
if (!filePath) {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
// Step 2: Parse
|
|
48
|
+
const { data, format } = parseConfigFile(filePath);
|
|
49
|
+
// Step 3: Warn about unknown keys (before schema strips them)
|
|
50
|
+
warnUnknownKeys(data, filePath);
|
|
51
|
+
// Step 4: Validate framework sections (unknown keys are silently stripped by Zod defaults)
|
|
52
|
+
const parseResult = configFileSchema.safeParse(data);
|
|
53
|
+
if (!parseResult.success) {
|
|
54
|
+
throw ConfigurationError.fileValidationFailed(filePath, parseResult.error);
|
|
55
|
+
}
|
|
56
|
+
// Step 5: Validate and store registered consumer sections
|
|
57
|
+
processConsumerSections(data, filePath);
|
|
58
|
+
// Step 6: Map to overrides
|
|
59
|
+
const overrides = mapConfigToOverrides(parseResult.data);
|
|
60
|
+
return { overrides, sourcePath: filePath, format };
|
|
61
|
+
}
|
|
62
|
+
// ============================================================================
|
|
63
|
+
// Discovery
|
|
64
|
+
// ============================================================================
|
|
65
|
+
/**
|
|
66
|
+
* Discover the config file path.
|
|
67
|
+
*
|
|
68
|
+
* Resolution order:
|
|
69
|
+
* 1. `MCP_CONFIG_FILE` env var — explicit path (must exist, must be supported format)
|
|
70
|
+
* 2. Auto-discovery in `process.cwd()` — first match from {@link DISCOVERY_FILENAMES}
|
|
71
|
+
*
|
|
72
|
+
* @returns Absolute path to the config file, or `undefined` if none found
|
|
73
|
+
* @throws {ConfigurationError} If explicit path doesn't exist or has unsupported extension
|
|
74
|
+
*/
|
|
75
|
+
function discoverConfigFile() {
|
|
76
|
+
const explicitPath = process.env[CONFIG_FILE_ENV_VAR];
|
|
77
|
+
if (explicitPath) {
|
|
78
|
+
return resolveExplicitPath(explicitPath);
|
|
79
|
+
}
|
|
80
|
+
return autoDiscover();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Resolve an explicitly specified config file path.
|
|
84
|
+
*
|
|
85
|
+
* An explicit path MUST exist and MUST have a supported extension.
|
|
86
|
+
* This is strict by design — if the user explicitly points to a file,
|
|
87
|
+
* a missing file or wrong extension is always an error.
|
|
88
|
+
*/
|
|
89
|
+
function resolveExplicitPath(rawPath) {
|
|
90
|
+
const absolutePath = resolve(rawPath);
|
|
91
|
+
const ext = extname(absolutePath).toLowerCase();
|
|
92
|
+
if (!EXTENSION_FORMAT_MAP[ext]) {
|
|
93
|
+
throw ConfigurationError.unsupportedFormat(ext);
|
|
94
|
+
}
|
|
95
|
+
if (!existsSync(absolutePath)) {
|
|
96
|
+
throw ConfigurationError.fileNotFound(absolutePath);
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
const stat = statSync(absolutePath);
|
|
100
|
+
if (!stat.isFile()) {
|
|
101
|
+
throw ConfigurationError.fileNotFound(absolutePath);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (error instanceof ConfigurationError)
|
|
106
|
+
throw error;
|
|
107
|
+
throw ConfigurationError.fileNotFound(absolutePath);
|
|
108
|
+
}
|
|
109
|
+
return absolutePath;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Auto-discover a config file in the current working directory.
|
|
113
|
+
*
|
|
114
|
+
* Iterates {@link DISCOVERY_FILENAMES} in priority order.
|
|
115
|
+
* Returns `undefined` if no config file is found — this is the normal
|
|
116
|
+
* case for servers that rely solely on environment variables.
|
|
117
|
+
*/
|
|
118
|
+
function autoDiscover() {
|
|
119
|
+
const cwd = process.cwd();
|
|
120
|
+
for (const filename of DISCOVERY_FILENAMES) {
|
|
121
|
+
const candidate = resolve(cwd, filename);
|
|
122
|
+
if (existsSync(candidate)) {
|
|
123
|
+
try {
|
|
124
|
+
const stat = statSync(candidate);
|
|
125
|
+
if (stat.isFile()) {
|
|
126
|
+
return candidate;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
// ============================================================================
|
|
137
|
+
// Parser
|
|
138
|
+
// ============================================================================
|
|
139
|
+
/**
|
|
140
|
+
* Parse a config file into a raw object.
|
|
141
|
+
*
|
|
142
|
+
* Delegates to the appropriate parser based on file extension.
|
|
143
|
+
* Returns a plain object — validation/mapping happens in the schema layer.
|
|
144
|
+
*
|
|
145
|
+
* @param filePath - Absolute path to the config file
|
|
146
|
+
* @returns Parsed raw object and detected format
|
|
147
|
+
* @throws {ConfigurationError} On read errors, unsupported format, or parse failures
|
|
148
|
+
*/
|
|
149
|
+
function parseConfigFile(filePath) {
|
|
150
|
+
const ext = extname(filePath).toLowerCase();
|
|
151
|
+
const format = EXTENSION_FORMAT_MAP[ext];
|
|
152
|
+
if (!format) {
|
|
153
|
+
throw ConfigurationError.unsupportedFormat(ext);
|
|
154
|
+
}
|
|
155
|
+
const content = readFileSafe(filePath);
|
|
156
|
+
const data = parseContent(content, format, filePath);
|
|
157
|
+
return { data, format };
|
|
158
|
+
}
|
|
159
|
+
/** Read file content with error wrapping */
|
|
160
|
+
function readFileSafe(filePath) {
|
|
161
|
+
try {
|
|
162
|
+
return readFileSync(filePath, "utf-8");
|
|
163
|
+
}
|
|
164
|
+
catch (cause) {
|
|
165
|
+
throw ConfigurationError.fileReadFailed(filePath, cause instanceof Error ? cause : undefined);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/** Parse content based on format */
|
|
169
|
+
function parseContent(content, format, filePath) {
|
|
170
|
+
try {
|
|
171
|
+
switch (format) {
|
|
172
|
+
case "toml":
|
|
173
|
+
return tomlParse(content);
|
|
174
|
+
case "yaml":
|
|
175
|
+
return parseYamlSafe(content);
|
|
176
|
+
case "json":
|
|
177
|
+
return parseJsonSafe(content);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (cause) {
|
|
181
|
+
if (cause instanceof ConfigurationError)
|
|
182
|
+
throw cause;
|
|
183
|
+
throw ConfigurationError.fileParseFailed(filePath, cause instanceof Error ? cause : undefined);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Parse YAML content with type guard.
|
|
188
|
+
*
|
|
189
|
+
* YAML can parse to scalars, arrays, or null — we require a mapping (object).
|
|
190
|
+
*/
|
|
191
|
+
function parseYamlSafe(content) {
|
|
192
|
+
const result = yamlParse(content);
|
|
193
|
+
if (result === null || result === undefined || typeof result !== "object" || Array.isArray(result)) {
|
|
194
|
+
throw ConfigurationError.fileParseFailed("config", new Error("Config file must contain a mapping (object), not a scalar or array"));
|
|
195
|
+
}
|
|
196
|
+
// @type-narrowing — runtime check above validates object type, but TS keeps `unknown`
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Parse JSON content with type guard.
|
|
201
|
+
*
|
|
202
|
+
* `JSON.parse()` can return any JSON value — we require a plain object.
|
|
203
|
+
*/
|
|
204
|
+
function parseJsonSafe(content) {
|
|
205
|
+
const result = JSON.parse(content);
|
|
206
|
+
if (result === null || result === undefined || typeof result !== "object" || Array.isArray(result)) {
|
|
207
|
+
throw ConfigurationError.fileParseFailed("config", new Error("Config file must contain a JSON object, not a scalar or array"));
|
|
208
|
+
}
|
|
209
|
+
// @type-narrowing — runtime check above validates object type, but TS keeps `unknown`
|
|
210
|
+
return result;
|
|
211
|
+
}
|
|
212
|
+
// ============================================================================
|
|
213
|
+
// Unknown Key Detection
|
|
214
|
+
// ============================================================================
|
|
215
|
+
/**
|
|
216
|
+
* Known section names derived from the config file schema.
|
|
217
|
+
*
|
|
218
|
+
* This ensures sync with `configFileSchema` — no manual duplication needed.
|
|
219
|
+
*/
|
|
220
|
+
const KNOWN_SECTIONS = Object.freeze(new Set(Object.keys(CONFIG_FILE_SECTIONS)));
|
|
221
|
+
/**
|
|
222
|
+
* Known keys per section derived from the section Zod schemas.
|
|
223
|
+
*
|
|
224
|
+
* Introspects each section's `ZodObject.shape` to extract valid key names.
|
|
225
|
+
* Falls back to an empty set for non-object schemas (defensive).
|
|
226
|
+
*/
|
|
227
|
+
const KNOWN_KEYS = Object.freeze(Object.fromEntries(Object.entries(CONFIG_FILE_SECTIONS).map(([name, schema]) => {
|
|
228
|
+
const shape = extractShapeKeys(schema);
|
|
229
|
+
return [name, shape];
|
|
230
|
+
})));
|
|
231
|
+
/**
|
|
232
|
+
* Extract key names from a Zod schema, handling `.partial()` wrappers.
|
|
233
|
+
*/
|
|
234
|
+
function extractShapeKeys(schema) {
|
|
235
|
+
if ("shape" in schema && typeof schema.shape === "object" && schema.shape !== null) {
|
|
236
|
+
// @type-narrowing — runtime check validates shape is a non-null object; Zod exposes shape as untyped
|
|
237
|
+
return new Set(Object.keys(schema.shape));
|
|
238
|
+
}
|
|
239
|
+
return new Set();
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Detect and warn about unknown keys in the raw config file data.
|
|
243
|
+
*
|
|
244
|
+
* Compares the raw parsed data against known schema keys and registered
|
|
245
|
+
* consumer sections, logging warnings for any unrecognized keys.
|
|
246
|
+
* This catches typos without preventing the server from starting.
|
|
247
|
+
*
|
|
248
|
+
* @param data - Raw parsed config file data
|
|
249
|
+
* @param filePath - Path to the config file (for log context)
|
|
250
|
+
*/
|
|
251
|
+
function warnUnknownKeys(data, filePath) {
|
|
252
|
+
if (!data || typeof data !== "object")
|
|
253
|
+
return;
|
|
254
|
+
// @type-narrowing — runtime guard above ensures data is a non-null object
|
|
255
|
+
const root = data;
|
|
256
|
+
const consumerSections = getRegisteredSectionNames();
|
|
257
|
+
for (const key of Object.keys(root)) {
|
|
258
|
+
if (KNOWN_SECTIONS.has(key)) {
|
|
259
|
+
const section = root[key];
|
|
260
|
+
if (!section || typeof section !== "object")
|
|
261
|
+
continue;
|
|
262
|
+
const knownKeys = KNOWN_KEYS[key];
|
|
263
|
+
if (!knownKeys || knownKeys.size === 0)
|
|
264
|
+
continue;
|
|
265
|
+
// @type-narrowing — section type-checked to be a non-null object above
|
|
266
|
+
for (const sectionKey of Object.keys(section)) {
|
|
267
|
+
if (!knownKeys.has(sectionKey)) {
|
|
268
|
+
addStartupWarning(`[config] Unknown key '${sectionKey}' in [${key}] section of ${filePath} — ignored`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
if (consumerSections.has(key)) {
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
addStartupWarning(`[config] Unknown section '${key}' in ${filePath} — ignored`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// ============================================================================
|
|
280
|
+
// Consumer Section Processing
|
|
281
|
+
// ============================================================================
|
|
282
|
+
/**
|
|
283
|
+
* Process registered consumer sections from the raw config file data.
|
|
284
|
+
*
|
|
285
|
+
* For each registered section found in the config file:
|
|
286
|
+
* 1. Validate against the registered Zod schema
|
|
287
|
+
* 2. Store the validated data for retrieval via `getAppConfig()`
|
|
288
|
+
*
|
|
289
|
+
* @param data - Raw parsed config file data
|
|
290
|
+
* @param filePath - Path to the config file (for error context)
|
|
291
|
+
* @throws {ConfigurationError} If a consumer section fails validation
|
|
292
|
+
*/
|
|
293
|
+
function processConsumerSections(data, filePath) {
|
|
294
|
+
if (!data || typeof data !== "object")
|
|
295
|
+
return;
|
|
296
|
+
// @type-narrowing — runtime guard above ensures data is a non-null object
|
|
297
|
+
const root = data;
|
|
298
|
+
const consumerSections = getRegisteredSectionNames();
|
|
299
|
+
for (const sectionName of consumerSections) {
|
|
300
|
+
const sectionData = root[sectionName];
|
|
301
|
+
if (sectionData === undefined)
|
|
302
|
+
continue;
|
|
303
|
+
const schema = getRegisteredSectionSchema(sectionName);
|
|
304
|
+
if (!schema)
|
|
305
|
+
continue;
|
|
306
|
+
const parseResult = schema.safeParse(sectionData);
|
|
307
|
+
if (!parseResult.success) {
|
|
308
|
+
throw ConfigurationError.fileValidationFailed(filePath, parseResult.error);
|
|
309
|
+
}
|
|
310
|
+
setRegisteredSectionData(sectionName, parseResult.data);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/config/file/loader.ts"],"names":[],"mappings":"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"}
|