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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAoB7C,iFAAiF;AAEjF,kCAAkC;AAClC,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAEtH,gCAAgC;AAChC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Client Types
|
|
3
|
+
*
|
|
4
|
+
* Core service client interface and health check types.
|
|
5
|
+
* The ServiceClient interface defines the minimum contract for connection
|
|
6
|
+
* management with any backend service.
|
|
7
|
+
*
|
|
8
|
+
* @module connection/types
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Health status values for service client connectivity.
|
|
12
|
+
*/
|
|
13
|
+
export type HealthStatus = "healthy" | "unhealthy";
|
|
14
|
+
/**
|
|
15
|
+
* Health check result from a service client.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const result: HealthCheckResult = {
|
|
20
|
+
* status: 'healthy',
|
|
21
|
+
* message: 'Connection established',
|
|
22
|
+
* details: { responseTime: 42 }
|
|
23
|
+
* };
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export interface HealthCheckResult {
|
|
27
|
+
/** Health status of the service client */
|
|
28
|
+
readonly status: HealthStatus;
|
|
29
|
+
/** Optional human-readable message */
|
|
30
|
+
readonly message?: string;
|
|
31
|
+
/** Optional additional details for debugging (extensible) */
|
|
32
|
+
readonly details?: {
|
|
33
|
+
readonly [key: string]: unknown;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Generic service client interface for connection management.
|
|
38
|
+
*
|
|
39
|
+
* This interface defines the minimum contract that any service client
|
|
40
|
+
* must implement to work with the MCP server framework's connection
|
|
41
|
+
* state management and tool execution.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* class MyServiceClient implements ServiceClient {
|
|
46
|
+
* readonly clientType = 'my-api';
|
|
47
|
+
*
|
|
48
|
+
* async healthCheck(): Promise<HealthCheckResult> {
|
|
49
|
+
* try {
|
|
50
|
+
* await this.ping();
|
|
51
|
+
* return { status: 'healthy' };
|
|
52
|
+
* } catch (error) {
|
|
53
|
+
* return { status: 'unhealthy', message: error.message };
|
|
54
|
+
* }
|
|
55
|
+
* }
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export interface ServiceClient {
|
|
60
|
+
/**
|
|
61
|
+
* Unique identifier for the client type.
|
|
62
|
+
* Used for logging and telemetry attribution.
|
|
63
|
+
*
|
|
64
|
+
* @example 'my-api', 'docker', 'kubernetes'
|
|
65
|
+
*/
|
|
66
|
+
readonly clientType: string;
|
|
67
|
+
/**
|
|
68
|
+
* Performs a health check to verify connectivity.
|
|
69
|
+
*
|
|
70
|
+
* This method is OPTIONAL. If not provided, the framework assumes
|
|
71
|
+
* the client is healthy when connected.
|
|
72
|
+
*
|
|
73
|
+
* When provided, this method is called:
|
|
74
|
+
* - During initial connection to validate credentials
|
|
75
|
+
* - Periodically to monitor connection health
|
|
76
|
+
* - On reconnection attempts
|
|
77
|
+
*
|
|
78
|
+
* Implementations should:
|
|
79
|
+
* - Make a lightweight API call (e.g., ping, version check)
|
|
80
|
+
* - Return quickly (timeout recommended: 5-10 seconds)
|
|
81
|
+
* - NOT throw errors - return unhealthy status instead
|
|
82
|
+
*
|
|
83
|
+
* @returns Health check result with status and optional details
|
|
84
|
+
*/
|
|
85
|
+
healthCheck?(): Promise<HealthCheckResult>;
|
|
86
|
+
/**
|
|
87
|
+
* Gracefully release resources held by the client.
|
|
88
|
+
*
|
|
89
|
+
* This method is OPTIONAL. If provided, it is called by
|
|
90
|
+
* {@link ConnectionStateManager} during disconnect to allow
|
|
91
|
+
* the client to close sockets, drain pools, flush buffers, etc.
|
|
92
|
+
*
|
|
93
|
+
* Implementations should:
|
|
94
|
+
* - Release all held resources (connections, file handles, timers)
|
|
95
|
+
* - Be idempotent (safe to call multiple times)
|
|
96
|
+
* - NOT throw errors — log and swallow instead
|
|
97
|
+
*
|
|
98
|
+
* @returns Resolves when cleanup is complete
|
|
99
|
+
*/
|
|
100
|
+
disconnect?(): Promise<void>;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Type guard to check if an object implements ServiceClient.
|
|
104
|
+
*
|
|
105
|
+
* @param obj - Object to check
|
|
106
|
+
* @returns True if obj implements ServiceClient interface
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```typescript
|
|
110
|
+
* if (isServiceClient(maybeClient)) {
|
|
111
|
+
* const result = await maybeClient.healthCheck();
|
|
112
|
+
* }
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
export declare function isServiceClient(obj: unknown): obj is ServiceClient;
|
|
116
|
+
/**
|
|
117
|
+
* Factory function type for creating service clients.
|
|
118
|
+
*
|
|
119
|
+
* @public Exported for consumer dependency injection and testing patterns.
|
|
120
|
+
*
|
|
121
|
+
* @typeParam TService - The service client type to create
|
|
122
|
+
* @typeParam TConfig - Configuration type for client creation
|
|
123
|
+
*/
|
|
124
|
+
export type ServiceClientFactory<TService extends ServiceClient, TConfig = unknown> = (config: TConfig) => Promise<TService>;
|
|
125
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/connection/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACjC,CAAC;CACH;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3C;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CAclE;AAMD;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,CAAC,QAAQ,SAAS,aAAa,EAAE,OAAO,GAAG,OAAO,IAAI,CACpF,MAAM,EAAE,OAAO,KACZ,OAAO,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Client Types
|
|
3
|
+
*
|
|
4
|
+
* Core service client interface and health check types.
|
|
5
|
+
* The ServiceClient interface defines the minimum contract for connection
|
|
6
|
+
* management with any backend service.
|
|
7
|
+
*
|
|
8
|
+
* @module connection/types
|
|
9
|
+
*/
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Type Guards
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Type guard to check if an object implements ServiceClient.
|
|
15
|
+
*
|
|
16
|
+
* @param obj - Object to check
|
|
17
|
+
* @returns True if obj implements ServiceClient interface
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* if (isServiceClient(maybeClient)) {
|
|
22
|
+
* const result = await maybeClient.healthCheck();
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function isServiceClient(obj) {
|
|
27
|
+
return (typeof obj === "object" &&
|
|
28
|
+
obj !== null &&
|
|
29
|
+
"clientType" in obj &&
|
|
30
|
+
// @type-guard — After 'in' check, property exists but TS cannot narrow unknown for property access
|
|
31
|
+
typeof obj.clientType === "string" &&
|
|
32
|
+
// healthCheck is optional - only validate if present
|
|
33
|
+
// @type-guard — Same pattern: validate optional property type after 'in' existence check
|
|
34
|
+
(!("healthCheck" in obj) || typeof obj.healthCheck === "function") &&
|
|
35
|
+
// disconnect is optional - only validate if present
|
|
36
|
+
// @type-guard — Same pattern: validate optional property type after 'in' existence check
|
|
37
|
+
(!("disconnect" in obj) || typeof obj.disconnect === "function"));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/connection/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6GH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,YAAY,IAAI,GAAG;QACnB,mGAAmG;QACnG,OAAQ,GAAqB,CAAC,UAAU,KAAK,QAAQ;QACrD,qDAAqD;QACrD,yFAAyF;QACzF,CAAC,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,OAAQ,GAAqB,CAAC,WAAW,KAAK,UAAU,CAAC;QACrF,oDAAoD;QACpD,yFAAyF;QACzF,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,OAAQ,GAAqB,CAAC,UAAU,KAAK,UAAU,CAAC,CACpF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Errors related to authentication and authorization:
|
|
5
|
+
* - AuthenticationError: Token validation failures, missing tokens (HTTP 401)
|
|
6
|
+
* - AuthorizationError: Insufficient permissions or scopes (HTTP 403)
|
|
7
|
+
*
|
|
8
|
+
* @module errors/categories/auth
|
|
9
|
+
*/
|
|
10
|
+
import { AppError } from "../core/index.js";
|
|
11
|
+
import type { BaseErrorOptions } from "../core/index.js";
|
|
12
|
+
/**
|
|
13
|
+
* Error thrown when authentication fails.
|
|
14
|
+
*
|
|
15
|
+
* Maps to HTTP 401 Unauthorized — the request lacks valid credentials.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* throw AuthenticationError.invalidToken('Token signature invalid');
|
|
20
|
+
* throw AuthenticationError.tokenExpired();
|
|
21
|
+
* throw AuthenticationError.missingToken();
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class AuthenticationError extends AppError {
|
|
25
|
+
constructor(message: string, options?: BaseErrorOptions);
|
|
26
|
+
/** Token is invalid or malformed */
|
|
27
|
+
static invalidToken(reason?: string): AuthenticationError;
|
|
28
|
+
/** Token has expired */
|
|
29
|
+
static tokenExpired(): AuthenticationError;
|
|
30
|
+
/** No token provided in request */
|
|
31
|
+
static missingToken(): AuthenticationError;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Error thrown when authorization fails (authenticated but not permitted).
|
|
35
|
+
*
|
|
36
|
+
* Maps to HTTP 403 Forbidden — the request is authenticated but lacks
|
|
37
|
+
* the required permissions or scopes.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* throw AuthorizationError.insufficientScope(['mcp:write'], ['mcp:read']);
|
|
42
|
+
* throw AuthorizationError.forbidden('Admin access required');
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare class AuthorizationError extends AppError {
|
|
46
|
+
/** Scopes that were required */
|
|
47
|
+
readonly requiredScopes?: readonly string[] | undefined;
|
|
48
|
+
/** Scopes that the token actually has */
|
|
49
|
+
readonly actualScopes?: readonly string[] | undefined;
|
|
50
|
+
constructor(message: string, options?: BaseErrorOptions & {
|
|
51
|
+
requiredScopes?: string[] | undefined;
|
|
52
|
+
actualScopes?: string[] | undefined;
|
|
53
|
+
});
|
|
54
|
+
/** Token lacks required scopes */
|
|
55
|
+
static insufficientScope(required: readonly string[], actual: readonly string[]): AuthorizationError;
|
|
56
|
+
/** Generic forbidden — authenticated but not authorized */
|
|
57
|
+
static forbidden(reason?: string): AuthorizationError;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/errors/categories/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,QAAQ,EAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMzD;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAa3D,oCAAoC;IACpC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAOzD,wBAAwB;IACxB,MAAM,CAAC,YAAY,IAAI,mBAAmB;IAM1C,mCAAmC;IACnC,MAAM,CAAC,YAAY,IAAI,mBAAmB;CAK3C;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,gCAAgC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAExD,yCAAyC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;gBAGpD,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,gBAAgB,GAAG;QAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACtC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;KAChC;IAsBR,kCAAkC;IAClC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB;IAQpG,2DAA2D;IAC3D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB;CAItD"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auth Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Errors related to authentication and authorization:
|
|
5
|
+
* - AuthenticationError: Token validation failures, missing tokens (HTTP 401)
|
|
6
|
+
* - AuthorizationError: Insufficient permissions or scopes (HTTP 403)
|
|
7
|
+
*
|
|
8
|
+
* @module errors/categories/auth
|
|
9
|
+
*/
|
|
10
|
+
import { ErrorCode } from "@modelcontextprotocol/sdk/types.js";
|
|
11
|
+
import { AppError, ErrorCodes } from "../core/index.js";
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Authentication Error (401)
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Error thrown when authentication fails.
|
|
17
|
+
*
|
|
18
|
+
* Maps to HTTP 401 Unauthorized — the request lacks valid credentials.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* throw AuthenticationError.invalidToken('Token signature invalid');
|
|
23
|
+
* throw AuthenticationError.tokenExpired();
|
|
24
|
+
* throw AuthenticationError.missingToken();
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class AuthenticationError extends AppError {
|
|
28
|
+
constructor(message, options = {}) {
|
|
29
|
+
super(message, {
|
|
30
|
+
code: ErrorCodes.UNAUTHORIZED,
|
|
31
|
+
statusCode: 401,
|
|
32
|
+
mcpCode: ErrorCode.InvalidRequest,
|
|
33
|
+
...options,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
37
|
+
// Factory Methods
|
|
38
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
39
|
+
/** Token is invalid or malformed */
|
|
40
|
+
static invalidToken(reason) {
|
|
41
|
+
const message = reason ? `Invalid access token: ${reason}` : "Invalid access token";
|
|
42
|
+
return new AuthenticationError(message, {
|
|
43
|
+
recoveryHint: "Provide a valid Bearer token in the Authorization header",
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/** Token has expired */
|
|
47
|
+
static tokenExpired() {
|
|
48
|
+
return new AuthenticationError("Access token has expired", {
|
|
49
|
+
recoveryHint: "Refresh the token or obtain a new one",
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/** No token provided in request */
|
|
53
|
+
static missingToken() {
|
|
54
|
+
return new AuthenticationError("Missing Bearer token", {
|
|
55
|
+
recoveryHint: "Include an Authorization: Bearer <token> header",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// ============================================================================
|
|
60
|
+
// Authorization Error (403)
|
|
61
|
+
// ============================================================================
|
|
62
|
+
/**
|
|
63
|
+
* Error thrown when authorization fails (authenticated but not permitted).
|
|
64
|
+
*
|
|
65
|
+
* Maps to HTTP 403 Forbidden — the request is authenticated but lacks
|
|
66
|
+
* the required permissions or scopes.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* throw AuthorizationError.insufficientScope(['mcp:write'], ['mcp:read']);
|
|
71
|
+
* throw AuthorizationError.forbidden('Admin access required');
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export class AuthorizationError extends AppError {
|
|
75
|
+
/** Scopes that were required */
|
|
76
|
+
requiredScopes;
|
|
77
|
+
/** Scopes that the token actually has */
|
|
78
|
+
actualScopes;
|
|
79
|
+
constructor(message, options = {}) {
|
|
80
|
+
super(message, {
|
|
81
|
+
code: ErrorCodes.FORBIDDEN,
|
|
82
|
+
statusCode: 403,
|
|
83
|
+
mcpCode: ErrorCode.InvalidRequest,
|
|
84
|
+
...options,
|
|
85
|
+
context: {
|
|
86
|
+
...options.context,
|
|
87
|
+
requiredScopes: options.requiredScopes,
|
|
88
|
+
actualScopes: options.actualScopes,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
this.requiredScopes = options.requiredScopes ? Object.freeze([...options.requiredScopes]) : undefined;
|
|
92
|
+
this.actualScopes = options.actualScopes ? Object.freeze([...options.actualScopes]) : undefined;
|
|
93
|
+
}
|
|
94
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
95
|
+
// Factory Methods
|
|
96
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
97
|
+
/** Token lacks required scopes */
|
|
98
|
+
static insufficientScope(required, actual) {
|
|
99
|
+
return new AuthorizationError(`Insufficient scope: required [${required.join(", ")}], got [${actual.join(", ")}]`, {
|
|
100
|
+
requiredScopes: [...required],
|
|
101
|
+
actualScopes: [...actual],
|
|
102
|
+
recoveryHint: `Token must include scopes: ${required.join(", ")}`,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/** Generic forbidden — authenticated but not authorized */
|
|
106
|
+
static forbidden(reason) {
|
|
107
|
+
const message = reason ? `Access denied: ${reason}` : "Access denied";
|
|
108
|
+
return new AuthorizationError(message);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/errors/categories/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connection Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Generic connection errors for the MCP framework.
|
|
5
|
+
* Application-specific connection errors should extend these classes.
|
|
6
|
+
*
|
|
7
|
+
* @module errors/categories/connection
|
|
8
|
+
*/
|
|
9
|
+
import { AppError } from "../core/index.js";
|
|
10
|
+
import type { BaseErrorOptions } from "../core/index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Generic error thrown when connection to an API server fails.
|
|
13
|
+
*
|
|
14
|
+
* This is a framework-level error. For application-specific connection errors
|
|
15
|
+
* with custom messages, extend this class in your app/errors/ module.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // Framework usage
|
|
20
|
+
* throw ConnectionError.failed('http://api.example.com');
|
|
21
|
+
* throw ConnectionError.timeout('http://api.example.com', 5000);
|
|
22
|
+
*
|
|
23
|
+
* // App-specific extension
|
|
24
|
+
* class MyApiConnectionError extends ConnectionError {
|
|
25
|
+
* static apiServerDown(url: string): MyApiConnectionError {
|
|
26
|
+
* return new MyApiConnectionError(
|
|
27
|
+
* `API server at ${url} is not responding`,
|
|
28
|
+
* url,
|
|
29
|
+
* { recoveryHint: 'Ensure the API server is running.' }
|
|
30
|
+
* );
|
|
31
|
+
* }
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare class ConnectionError extends AppError {
|
|
36
|
+
/** The target URL/address that connection was attempted to */
|
|
37
|
+
readonly target: string;
|
|
38
|
+
constructor(message: string, target: string, options?: Omit<BaseErrorOptions, "code">);
|
|
39
|
+
/**
|
|
40
|
+
* Create a ConnectionError for a generic failed connection.
|
|
41
|
+
*/
|
|
42
|
+
static failed(target: string, reason?: string): ConnectionError;
|
|
43
|
+
/**
|
|
44
|
+
* Create a ConnectionError for a refused connection.
|
|
45
|
+
*/
|
|
46
|
+
static refused(target: string): ConnectionError;
|
|
47
|
+
/**
|
|
48
|
+
* Create a ConnectionError for a connection timeout.
|
|
49
|
+
*
|
|
50
|
+
* @param target - The target URL/address
|
|
51
|
+
* @param timeoutMs - Optional timeout duration in milliseconds
|
|
52
|
+
*/
|
|
53
|
+
static timeout(target: string, timeoutMs?: number): ConnectionError;
|
|
54
|
+
/**
|
|
55
|
+
* Create a ConnectionError for connection lost.
|
|
56
|
+
*/
|
|
57
|
+
static lost(target: string): ConnectionError;
|
|
58
|
+
/**
|
|
59
|
+
* Create a ConnectionError for connection reset.
|
|
60
|
+
*/
|
|
61
|
+
static reset(target: string): ConnectionError;
|
|
62
|
+
/**
|
|
63
|
+
* Create a ConnectionError for a failed health check.
|
|
64
|
+
*
|
|
65
|
+
* @param reason - The reason the health check failed
|
|
66
|
+
* @param target - Optional target URL (defaults to 'unknown')
|
|
67
|
+
*/
|
|
68
|
+
static healthCheckFailed(reason: string, target?: string): ConnectionError;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/errors/categories/connection.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAA0B,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMzD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IAC3C,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAM;IAoBzF;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe;IAS/D;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAM/C;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,eAAe;IAWnE;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAM5C;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAM7C;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAY,GAAG,eAAe;CAM9E"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connection Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Generic connection errors for the MCP framework.
|
|
5
|
+
* Application-specific connection errors should extend these classes.
|
|
6
|
+
*
|
|
7
|
+
* @module errors/categories/connection
|
|
8
|
+
*/
|
|
9
|
+
import { ErrorCode } from "@modelcontextprotocol/sdk/types.js";
|
|
10
|
+
import { AppError, ErrorCodes, HttpStatus } from "../core/index.js";
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Connection Error
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Generic error thrown when connection to an API server fails.
|
|
16
|
+
*
|
|
17
|
+
* This is a framework-level error. For application-specific connection errors
|
|
18
|
+
* with custom messages, extend this class in your app/errors/ module.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* // Framework usage
|
|
23
|
+
* throw ConnectionError.failed('http://api.example.com');
|
|
24
|
+
* throw ConnectionError.timeout('http://api.example.com', 5000);
|
|
25
|
+
*
|
|
26
|
+
* // App-specific extension
|
|
27
|
+
* class MyApiConnectionError extends ConnectionError {
|
|
28
|
+
* static apiServerDown(url: string): MyApiConnectionError {
|
|
29
|
+
* return new MyApiConnectionError(
|
|
30
|
+
* `API server at ${url} is not responding`,
|
|
31
|
+
* url,
|
|
32
|
+
* { recoveryHint: 'Ensure the API server is running.' }
|
|
33
|
+
* );
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export class ConnectionError extends AppError {
|
|
39
|
+
/** The target URL/address that connection was attempted to */
|
|
40
|
+
target;
|
|
41
|
+
constructor(message, target, options = {}) {
|
|
42
|
+
super(message, {
|
|
43
|
+
code: ErrorCodes.CONNECTION_ERROR,
|
|
44
|
+
statusCode: options.statusCode ?? HttpStatus.BAD_GATEWAY,
|
|
45
|
+
mcpCode: ErrorCode.InternalError,
|
|
46
|
+
cause: options.cause,
|
|
47
|
+
recoveryHint: options.recoveryHint,
|
|
48
|
+
context: {
|
|
49
|
+
...options.context,
|
|
50
|
+
target,
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
this.target = target;
|
|
54
|
+
}
|
|
55
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
56
|
+
// Factory Methods
|
|
57
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
58
|
+
/**
|
|
59
|
+
* Create a ConnectionError for a generic failed connection.
|
|
60
|
+
*/
|
|
61
|
+
static failed(target, reason) {
|
|
62
|
+
const baseMessage = "Failed to connect to server";
|
|
63
|
+
const message = reason ? `${baseMessage}: ${reason}` : `${baseMessage} to '${target}'`;
|
|
64
|
+
return new ConnectionError(message, target, {
|
|
65
|
+
recoveryHint: `Check that the server at '${target}' is running and accessible.`,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Create a ConnectionError for a refused connection.
|
|
70
|
+
*/
|
|
71
|
+
static refused(target) {
|
|
72
|
+
return new ConnectionError("Connection refused", target, {
|
|
73
|
+
recoveryHint: `Ensure the server is running at '${target}' and accepting connections.`,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Create a ConnectionError for a connection timeout.
|
|
78
|
+
*
|
|
79
|
+
* @param target - The target URL/address
|
|
80
|
+
* @param timeoutMs - Optional timeout duration in milliseconds
|
|
81
|
+
*/
|
|
82
|
+
static timeout(target, timeoutMs) {
|
|
83
|
+
const baseMessage = "Connection timed out";
|
|
84
|
+
const message = timeoutMs ? `${baseMessage} (after ${timeoutMs}ms)` : baseMessage;
|
|
85
|
+
return new ConnectionError(message, target, {
|
|
86
|
+
statusCode: HttpStatus.GATEWAY_TIMEOUT,
|
|
87
|
+
recoveryHint: `Connection to '${target}' timed out. Check network connectivity.`,
|
|
88
|
+
context: timeoutMs ? { timeoutMs } : undefined,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create a ConnectionError for connection lost.
|
|
93
|
+
*/
|
|
94
|
+
static lost(target) {
|
|
95
|
+
return new ConnectionError("Connection lost", target, {
|
|
96
|
+
recoveryHint: `The connection to '${target}' was lost. Reconnecting may help.`,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Create a ConnectionError for connection reset.
|
|
101
|
+
*/
|
|
102
|
+
static reset(target) {
|
|
103
|
+
return new ConnectionError("Connection was reset", target, {
|
|
104
|
+
recoveryHint: `The connection to '${target}' was reset by the server. Try again.`,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Create a ConnectionError for a failed health check.
|
|
109
|
+
*
|
|
110
|
+
* @param reason - The reason the health check failed
|
|
111
|
+
* @param target - Optional target URL (defaults to 'unknown')
|
|
112
|
+
*/
|
|
113
|
+
static healthCheckFailed(reason, target = "unknown") {
|
|
114
|
+
return new ConnectionError(`Health check failed: ${reason}`, target, {
|
|
115
|
+
recoveryHint: "The server is reachable but not healthy. Check server logs for details.",
|
|
116
|
+
context: { reason },
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/errors/categories/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Categories Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* @module errors/categories
|
|
5
|
+
*/
|
|
6
|
+
export { McpProtocolError } from "./protocol.js";
|
|
7
|
+
export { SessionError } from "./session.js";
|
|
8
|
+
export { TransportError } from "./transport.js";
|
|
9
|
+
export { ValidationError, ConfigurationError } from "./validation.js";
|
|
10
|
+
export { InternalError, RegistryError } from "./system.js";
|
|
11
|
+
export { OperationError, OperationCancelledError } from "./operation.js";
|
|
12
|
+
export { ConnectionError } from "./connection.js";
|
|
13
|
+
export { AuthenticationError, AuthorizationError } from "./auth.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/errors/categories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Categories Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* @module errors/categories
|
|
5
|
+
*/
|
|
6
|
+
// MCP Protocol Errors (split from former mcp.ts)
|
|
7
|
+
export { McpProtocolError } from "./protocol.js";
|
|
8
|
+
export { SessionError } from "./session.js";
|
|
9
|
+
export { TransportError } from "./transport.js";
|
|
10
|
+
// Validation Errors
|
|
11
|
+
export { ValidationError, ConfigurationError } from "./validation.js";
|
|
12
|
+
// System Errors
|
|
13
|
+
export { InternalError, RegistryError } from "./system.js";
|
|
14
|
+
// Operation Errors
|
|
15
|
+
export { OperationError, OperationCancelledError } from "./operation.js";
|
|
16
|
+
// Connection Errors
|
|
17
|
+
export { ConnectionError } from "./connection.js";
|
|
18
|
+
// Auth Errors
|
|
19
|
+
export { AuthenticationError, AuthorizationError } from "./auth.js";
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/categories/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iDAAiD;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzE,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,cAAc;AACd,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
|