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,257 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry Tracing Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides convenient helpers for creating and managing spans.
|
|
5
|
+
* All OTEL imports are lazy-loaded (see DD-020). Synchronous functions
|
|
6
|
+
* gracefully no-op when the API hasn't been loaded yet.
|
|
7
|
+
*
|
|
8
|
+
* @module server/telemetry/tracing
|
|
9
|
+
*/
|
|
10
|
+
import { getTelemetryConfig, } from "./core/index.js";
|
|
11
|
+
let otelApi = null;
|
|
12
|
+
/**
|
|
13
|
+
* Lazily load and cache the @opentelemetry/api value exports.
|
|
14
|
+
* Called on every async path; returns instantly after first load.
|
|
15
|
+
*/
|
|
16
|
+
async function loadOtelApi() {
|
|
17
|
+
if (otelApi)
|
|
18
|
+
return otelApi;
|
|
19
|
+
const api = await import("@opentelemetry/api");
|
|
20
|
+
otelApi = {
|
|
21
|
+
trace: api.trace,
|
|
22
|
+
context: api.context,
|
|
23
|
+
SpanStatusCode: api.SpanStatusCode,
|
|
24
|
+
SpanKind: api.SpanKind,
|
|
25
|
+
};
|
|
26
|
+
return otelApi;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Synchronous access to the cached API. Returns null when the module
|
|
30
|
+
* hasn't been loaded yet — callers must handle the noop path.
|
|
31
|
+
*/
|
|
32
|
+
function getCachedOtelApi() {
|
|
33
|
+
return otelApi;
|
|
34
|
+
}
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// Framework-level SpanKind / SpanStatusCode constants
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// These mirror the OTEL enum values so that consumers can import them from
|
|
39
|
+
// the framework without triggering a static @opentelemetry/api import.
|
|
40
|
+
// They are numeric-compatible with the OTEL enums.
|
|
41
|
+
/** @public SpanKind constants — numeric-compatible with `@opentelemetry/api.SpanKind` */
|
|
42
|
+
export const FrameworkSpanKind = {
|
|
43
|
+
INTERNAL: 0,
|
|
44
|
+
SERVER: 1,
|
|
45
|
+
CLIENT: 2,
|
|
46
|
+
PRODUCER: 3,
|
|
47
|
+
CONSUMER: 4,
|
|
48
|
+
};
|
|
49
|
+
/** @public SpanStatusCode constants — numeric-compatible with `@opentelemetry/api.SpanStatusCode` */
|
|
50
|
+
export const FrameworkSpanStatusCode = {
|
|
51
|
+
UNSET: 0,
|
|
52
|
+
OK: 1,
|
|
53
|
+
ERROR: 2,
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Get the tracer instance for the MCP Server.
|
|
57
|
+
* Returns a noop tracer proxy when the OTEL API hasn't been loaded yet.
|
|
58
|
+
*/
|
|
59
|
+
export function getTracer() {
|
|
60
|
+
const tracer = getTracerOrNull();
|
|
61
|
+
if (tracer)
|
|
62
|
+
return tracer;
|
|
63
|
+
// Return a minimal noop tracer when OTEL API isn't loaded yet.
|
|
64
|
+
// All methods are safe to call — spans are discarded.
|
|
65
|
+
return {
|
|
66
|
+
startSpan: () => noopSpan,
|
|
67
|
+
startActiveSpan: (_name, ...args) => {
|
|
68
|
+
// startActiveSpan has multiple overloads; the last arg is always the callback
|
|
69
|
+
const fn = args[args.length - 1];
|
|
70
|
+
return fn(noopSpan);
|
|
71
|
+
},
|
|
72
|
+
// @ts-limitation — object literal satisfies Tracer contract but TS cannot infer structural compatibility
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/** Minimal noop span for the noop tracer fallback */
|
|
76
|
+
const noopSpan = {
|
|
77
|
+
spanContext: () => ({ traceId: "", spanId: "", traceFlags: 0 }),
|
|
78
|
+
setAttribute: () => noopSpan,
|
|
79
|
+
setAttributes: () => noopSpan,
|
|
80
|
+
addEvent: () => noopSpan,
|
|
81
|
+
addLink: () => noopSpan,
|
|
82
|
+
addLinks: () => noopSpan,
|
|
83
|
+
setStatus: () => noopSpan,
|
|
84
|
+
updateName: () => noopSpan,
|
|
85
|
+
end: () => { },
|
|
86
|
+
isRecording: () => false,
|
|
87
|
+
recordException: () => { },
|
|
88
|
+
// @ts-limitation — object literal satisfies Span contract but TS cannot infer structural compatibility
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Get the tracer instance for the MCP Server.
|
|
92
|
+
* Returns undefined when the OTEL API hasn't been loaded yet.
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
function getTracerOrNull() {
|
|
96
|
+
const api = getCachedOtelApi();
|
|
97
|
+
if (!api)
|
|
98
|
+
return undefined;
|
|
99
|
+
const config = getTelemetryConfig();
|
|
100
|
+
return api.trace.getTracer(config.serviceName, config.serviceVersion);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get the tracer instance (async — loads OTEL API if needed).
|
|
104
|
+
*/
|
|
105
|
+
async function getTracerAsync() {
|
|
106
|
+
const api = await loadOtelApi();
|
|
107
|
+
const config = getTelemetryConfig();
|
|
108
|
+
return api.trace.getTracer(config.serviceName, config.serviceVersion);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Execute a function within a new span.
|
|
112
|
+
* Automatically handles errors and sets span status.
|
|
113
|
+
*
|
|
114
|
+
* @param name - Name of the span
|
|
115
|
+
* @param fn - Function to execute within the span
|
|
116
|
+
* @param options - Span options
|
|
117
|
+
* @returns The result of the function
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* const result = await withSpan('processRequest', async (span) => {
|
|
122
|
+
* span.setAttribute('request.id', requestId);
|
|
123
|
+
* return await processRequest();
|
|
124
|
+
* });
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export async function withSpan(name, fn, options = {}) {
|
|
128
|
+
const api = await loadOtelApi();
|
|
129
|
+
const tracer = await getTracerAsync();
|
|
130
|
+
const parentContext = options.parentContext ?? api.context.active();
|
|
131
|
+
return tracer.startActiveSpan(name, {
|
|
132
|
+
kind: options.kind ?? api.SpanKind.INTERNAL,
|
|
133
|
+
...(options.attributes !== undefined && {
|
|
134
|
+
attributes: options.attributes,
|
|
135
|
+
}),
|
|
136
|
+
}, parentContext, async (span) => {
|
|
137
|
+
try {
|
|
138
|
+
const result = await fn(span);
|
|
139
|
+
span.setStatus({ code: api.SpanStatusCode.OK });
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
// Record the error on the span
|
|
144
|
+
if (error instanceof Error) {
|
|
145
|
+
span.recordException(error);
|
|
146
|
+
span.setStatus({
|
|
147
|
+
code: api.SpanStatusCode.ERROR,
|
|
148
|
+
message: error.message,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
span.setStatus({
|
|
153
|
+
code: api.SpanStatusCode.ERROR,
|
|
154
|
+
message: String(error),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
throw error;
|
|
158
|
+
}
|
|
159
|
+
finally {
|
|
160
|
+
span.end();
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Execute a synchronous function within a new span.
|
|
166
|
+
*
|
|
167
|
+
* @param name - Name of the span
|
|
168
|
+
* @param fn - Function to execute within the span
|
|
169
|
+
* @param options - Span options
|
|
170
|
+
* @returns The result of the function
|
|
171
|
+
*/
|
|
172
|
+
export function withSpanSync(name, fn, options = {}) {
|
|
173
|
+
const api = getCachedOtelApi();
|
|
174
|
+
const tracer = getTracerOrNull();
|
|
175
|
+
// When OTEL hasn't been loaded yet, run fn without tracing
|
|
176
|
+
if (!api || !tracer) {
|
|
177
|
+
return fn(noopSpan);
|
|
178
|
+
}
|
|
179
|
+
const parentContext = options.parentContext ?? api.context.active();
|
|
180
|
+
const span = tracer.startSpan(name, {
|
|
181
|
+
kind: options.kind ?? api.SpanKind.INTERNAL,
|
|
182
|
+
...(options.attributes !== undefined && {
|
|
183
|
+
attributes: options.attributes,
|
|
184
|
+
}),
|
|
185
|
+
}, parentContext);
|
|
186
|
+
try {
|
|
187
|
+
const ctx = api.trace.setSpan(parentContext, span);
|
|
188
|
+
const result = api.context.with(ctx, () => fn(span));
|
|
189
|
+
span.setStatus({ code: api.SpanStatusCode.OK });
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
192
|
+
catch (error) {
|
|
193
|
+
if (error instanceof Error) {
|
|
194
|
+
span.recordException(error);
|
|
195
|
+
span.setStatus({
|
|
196
|
+
code: api.SpanStatusCode.ERROR,
|
|
197
|
+
message: error.message,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
span.setStatus({
|
|
202
|
+
code: api.SpanStatusCode.ERROR,
|
|
203
|
+
message: String(error),
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
throw error;
|
|
207
|
+
}
|
|
208
|
+
finally {
|
|
209
|
+
span.end();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get the currently active span.
|
|
214
|
+
* Returns undefined if no span is active or OTEL API is not loaded.
|
|
215
|
+
*/
|
|
216
|
+
export function getActiveSpan() {
|
|
217
|
+
const api = getCachedOtelApi();
|
|
218
|
+
if (!api)
|
|
219
|
+
return undefined;
|
|
220
|
+
return api.trace.getActiveSpan();
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Add attributes to the active span.
|
|
224
|
+
* Does nothing if no span is active.
|
|
225
|
+
*/
|
|
226
|
+
export function addSpanAttributes(attributes) {
|
|
227
|
+
const span = getActiveSpan();
|
|
228
|
+
if (span) {
|
|
229
|
+
span.setAttributes(attributes);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Add an event to the active span.
|
|
234
|
+
* Does nothing if no span is active.
|
|
235
|
+
*/
|
|
236
|
+
export function addSpanEvent(name, attributes) {
|
|
237
|
+
const span = getActiveSpan();
|
|
238
|
+
if (span) {
|
|
239
|
+
span.addEvent(name, attributes);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Get the current trace context for propagation.
|
|
244
|
+
* Useful for passing context to external services.
|
|
245
|
+
*/
|
|
246
|
+
export function getTraceContext() {
|
|
247
|
+
const span = getActiveSpan();
|
|
248
|
+
if (!span) {
|
|
249
|
+
return undefined;
|
|
250
|
+
}
|
|
251
|
+
const spanContext = span.spanContext();
|
|
252
|
+
return {
|
|
253
|
+
traceId: spanContext.traceId,
|
|
254
|
+
spanId: spanContext.spanId,
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=tracing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/telemetry/tracing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Variable Helpers
|
|
3
|
+
*
|
|
4
|
+
* Utilities for parsing and handling environment variables.
|
|
5
|
+
*
|
|
6
|
+
* @module utils/env-helpers
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parse an environment variable as a boolean.
|
|
10
|
+
*
|
|
11
|
+
* Environment variables are always strings, so this helper provides
|
|
12
|
+
* consistent boolean parsing across the codebase. Also handles
|
|
13
|
+
* the case where a boolean is passed through directly (e.g., from
|
|
14
|
+
* a pre-parsed config object).
|
|
15
|
+
*
|
|
16
|
+
* @param value - The environment variable value
|
|
17
|
+
* @returns true if value equals 'true' (case-insensitive) or is boolean true, false otherwise
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* parseEnvBoolean('true') // true
|
|
22
|
+
* parseEnvBoolean('TRUE') // true
|
|
23
|
+
* parseEnvBoolean('True') // true
|
|
24
|
+
* parseEnvBoolean('false') // false
|
|
25
|
+
* parseEnvBoolean('1') // false
|
|
26
|
+
* parseEnvBoolean(undefined) // false
|
|
27
|
+
* parseEnvBoolean(true) // true (passthrough)
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseEnvBoolean(value: string | boolean | undefined): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Get an environment variable with a default value.
|
|
33
|
+
*
|
|
34
|
+
* @param name - Environment variable name
|
|
35
|
+
* @param defaultValue - Default value if not set
|
|
36
|
+
* @returns The environment variable value or default
|
|
37
|
+
*/
|
|
38
|
+
export declare function getEnvString(name: string, defaultValue: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Get an optional environment variable.
|
|
41
|
+
*
|
|
42
|
+
* @param name - Environment variable name
|
|
43
|
+
* @returns The environment variable value or undefined
|
|
44
|
+
*/
|
|
45
|
+
export declare function getEnvOptional(name: string): string | undefined;
|
|
46
|
+
//# sourceMappingURL=env-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/env-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAG5E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Variable Helpers
|
|
3
|
+
*
|
|
4
|
+
* Utilities for parsing and handling environment variables.
|
|
5
|
+
*
|
|
6
|
+
* @module utils/env-helpers
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parse an environment variable as a boolean.
|
|
10
|
+
*
|
|
11
|
+
* Environment variables are always strings, so this helper provides
|
|
12
|
+
* consistent boolean parsing across the codebase. Also handles
|
|
13
|
+
* the case where a boolean is passed through directly (e.g., from
|
|
14
|
+
* a pre-parsed config object).
|
|
15
|
+
*
|
|
16
|
+
* @param value - The environment variable value
|
|
17
|
+
* @returns true if value equals 'true' (case-insensitive) or is boolean true, false otherwise
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* parseEnvBoolean('true') // true
|
|
22
|
+
* parseEnvBoolean('TRUE') // true
|
|
23
|
+
* parseEnvBoolean('True') // true
|
|
24
|
+
* parseEnvBoolean('false') // false
|
|
25
|
+
* parseEnvBoolean('1') // false
|
|
26
|
+
* parseEnvBoolean(undefined) // false
|
|
27
|
+
* parseEnvBoolean(true) // true (passthrough)
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export function parseEnvBoolean(value) {
|
|
31
|
+
if (typeof value === "boolean")
|
|
32
|
+
return value;
|
|
33
|
+
return value?.toLowerCase() === "true";
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get an environment variable with a default value.
|
|
37
|
+
*
|
|
38
|
+
* @param name - Environment variable name
|
|
39
|
+
* @param defaultValue - Default value if not set
|
|
40
|
+
* @returns The environment variable value or default
|
|
41
|
+
*/
|
|
42
|
+
export function getEnvString(name, defaultValue) {
|
|
43
|
+
return process.env[name] || defaultValue;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get an optional environment variable.
|
|
47
|
+
*
|
|
48
|
+
* @param name - Environment variable name
|
|
49
|
+
* @returns The environment variable value or undefined
|
|
50
|
+
*/
|
|
51
|
+
export function getEnvOptional(name) {
|
|
52
|
+
return process.env[name];
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=env-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-helpers.js","sourceRoot":"","sources":["../../src/utils/env-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAAC,KAAmC;IACjE,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,YAAoB;IAC7D,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Framework Utilities
|
|
3
|
+
*
|
|
4
|
+
* Generic utilities for the MCP server framework.
|
|
5
|
+
* Re-exports shared utilities from the main utils module.
|
|
6
|
+
*
|
|
7
|
+
* @module utils
|
|
8
|
+
*/
|
|
9
|
+
export { parseEnvBoolean, getEnvString, getEnvOptional } from "./env-helpers.js";
|
|
10
|
+
export { validateName, validateNonEmptyString, validateFunction, validateZodSchema, validateObject, validateEnum, validateDefinitionBase, } from "./validation.js";
|
|
11
|
+
export { isSensitiveKey, SENSITIVE_KEYS, SENSITIVE_KEY_BLOCKLIST } from "./sensitive-keys.js";
|
|
12
|
+
export { splitCommaSeparated, interpolate, type MessageParams, truncateId, isLocalHost, parseByteSize, BYTE_SIZE_REGEX, } from "./string-helpers.js";
|
|
13
|
+
export { booleanFromEnv, commaSeparatedList, optionalCommaSeparatedList, byteSizeSchema } from "./zod-helpers.js";
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGjF,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAG9F,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,KAAK,aAAa,EAClB,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Framework Utilities
|
|
3
|
+
*
|
|
4
|
+
* Generic utilities for the MCP server framework.
|
|
5
|
+
* Re-exports shared utilities from the main utils module.
|
|
6
|
+
*
|
|
7
|
+
* @module utils
|
|
8
|
+
*/
|
|
9
|
+
// Re-export shared env helpers from main utils
|
|
10
|
+
export { parseEnvBoolean, getEnvString, getEnvOptional } from "./env-helpers.js";
|
|
11
|
+
// Re-export validation helpers
|
|
12
|
+
export { validateName, validateNonEmptyString, validateFunction, validateZodSchema, validateObject, validateEnum, validateDefinitionBase, } from "./validation.js";
|
|
13
|
+
// Re-export sensitive key detection
|
|
14
|
+
export { isSensitiveKey, SENSITIVE_KEYS, SENSITIVE_KEY_BLOCKLIST } from "./sensitive-keys.js";
|
|
15
|
+
// Re-export string helpers
|
|
16
|
+
export { splitCommaSeparated, interpolate, truncateId, isLocalHost, parseByteSize, BYTE_SIZE_REGEX, } from "./string-helpers.js";
|
|
17
|
+
// Re-export Zod schema helpers
|
|
18
|
+
export { booleanFromEnv, commaSeparatedList, optionalCommaSeparatedList, byteSizeSchema } from "./zod-helpers.js";
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+CAA+C;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEjF,+BAA+B;AAC/B,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9F,2BAA2B;AAC3B,OAAO,EACL,mBAAmB,EACnB,WAAW,EAEX,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,+BAA+B;AAC/B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sensitive Key Detection
|
|
3
|
+
*
|
|
4
|
+
* Shared utility for detecting sensitive field names across the framework.
|
|
5
|
+
* Used by both the error serializer and the logger scrubber to ensure
|
|
6
|
+
* consistent redaction behavior.
|
|
7
|
+
*
|
|
8
|
+
* Uses a segment-based algorithm with a blocklist to minimize false positives:
|
|
9
|
+
* - "password" → sensitive
|
|
10
|
+
* - "keyboard" → NOT sensitive (blocklisted)
|
|
11
|
+
* - "monkey_password" → sensitive ("password" segment is genuinely sensitive)
|
|
12
|
+
*
|
|
13
|
+
* @module utils/sensitive-keys
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Keys that are considered sensitive and should be redacted.
|
|
17
|
+
* Includes common authentication and security-related terms.
|
|
18
|
+
*/
|
|
19
|
+
export declare const SENSITIVE_KEYS: readonly ["password", "passwd", "apiKey", "api_key", "apiSecret", "api_secret", "token", "secret", "authorization", "auth_token", "access_token", "refresh_token", "id_token", "jwt", "bearer", "private_key", "privateKey", "secret_key", "secretKey", "passphrase", "key", "credential", "sessionSecret", "session_secret", "sessionToken", "session_token", "oauth_token", "oauth_secret", "oauth_code", "client_secret", "clientSecret"];
|
|
20
|
+
/**
|
|
21
|
+
* Words that should NOT trigger sensitive key detection even if they
|
|
22
|
+
* contain sensitive key patterns. Prevents false positives.
|
|
23
|
+
*/
|
|
24
|
+
export declare const SENSITIVE_KEY_BLOCKLIST: readonly ["tokenizer", "tokenize", "tokenization", "keyboard", "keyframe", "keynote", "monkey", "passthrough", "passenger", "passage"];
|
|
25
|
+
/**
|
|
26
|
+
* Check if a field/key name is sensitive and should be redacted.
|
|
27
|
+
*
|
|
28
|
+
* Algorithm (4 steps):
|
|
29
|
+
* 1. Check if the key contains any sensitive pattern (substring match)
|
|
30
|
+
* 2. If the entire key is an exact blocklist word → not sensitive
|
|
31
|
+
* 3. For compound keys (segments): only sensitive if at least one segment
|
|
32
|
+
* is genuinely sensitive (not fully explained by blocklist)
|
|
33
|
+
* 4. Single-segment keys: check blocklist patterns
|
|
34
|
+
*
|
|
35
|
+
* @param key - The field name to check
|
|
36
|
+
* @returns true if the key should be redacted
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* isSensitiveKey('password') // true
|
|
41
|
+
* isSensitiveKey('api_key') // true
|
|
42
|
+
* isSensitiveKey('keyboard') // false (blocklisted)
|
|
43
|
+
* isSensitiveKey('monkey') // false (blocklisted)
|
|
44
|
+
* isSensitiveKey('monkey_password') // true ("password" is genuine)
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function isSensitiveKey(key: string): boolean;
|
|
48
|
+
//# sourceMappingURL=sensitive-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensitive-keys.d.ts","sourceRoot":"","sources":["../../src/utils/sensitive-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;GAGG;AACH,eAAO,MAAM,cAAc,8aAgCjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,uBAAuB,wIAW1B,CAAC;AAsBX;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CA2BnD"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sensitive Key Detection
|
|
3
|
+
*
|
|
4
|
+
* Shared utility for detecting sensitive field names across the framework.
|
|
5
|
+
* Used by both the error serializer and the logger scrubber to ensure
|
|
6
|
+
* consistent redaction behavior.
|
|
7
|
+
*
|
|
8
|
+
* Uses a segment-based algorithm with a blocklist to minimize false positives:
|
|
9
|
+
* - "password" → sensitive
|
|
10
|
+
* - "keyboard" → NOT sensitive (blocklisted)
|
|
11
|
+
* - "monkey_password" → sensitive ("password" segment is genuinely sensitive)
|
|
12
|
+
*
|
|
13
|
+
* @module utils/sensitive-keys
|
|
14
|
+
*/
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Sensitive Key Lists
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Keys that are considered sensitive and should be redacted.
|
|
20
|
+
* Includes common authentication and security-related terms.
|
|
21
|
+
*/
|
|
22
|
+
export const SENSITIVE_KEYS = [
|
|
23
|
+
"password",
|
|
24
|
+
"passwd",
|
|
25
|
+
"apiKey",
|
|
26
|
+
"api_key",
|
|
27
|
+
"apiSecret",
|
|
28
|
+
"api_secret",
|
|
29
|
+
"token",
|
|
30
|
+
"secret",
|
|
31
|
+
"authorization",
|
|
32
|
+
"auth_token",
|
|
33
|
+
"access_token",
|
|
34
|
+
"refresh_token",
|
|
35
|
+
"id_token",
|
|
36
|
+
"jwt",
|
|
37
|
+
"bearer",
|
|
38
|
+
"private_key",
|
|
39
|
+
"privateKey",
|
|
40
|
+
"secret_key",
|
|
41
|
+
"secretKey",
|
|
42
|
+
"passphrase",
|
|
43
|
+
"key",
|
|
44
|
+
"credential",
|
|
45
|
+
"sessionSecret",
|
|
46
|
+
"session_secret",
|
|
47
|
+
"sessionToken",
|
|
48
|
+
"session_token",
|
|
49
|
+
"oauth_token",
|
|
50
|
+
"oauth_secret",
|
|
51
|
+
"oauth_code",
|
|
52
|
+
"client_secret",
|
|
53
|
+
"clientSecret",
|
|
54
|
+
];
|
|
55
|
+
/**
|
|
56
|
+
* Words that should NOT trigger sensitive key detection even if they
|
|
57
|
+
* contain sensitive key patterns. Prevents false positives.
|
|
58
|
+
*/
|
|
59
|
+
export const SENSITIVE_KEY_BLOCKLIST = [
|
|
60
|
+
"tokenizer",
|
|
61
|
+
"tokenize",
|
|
62
|
+
"tokenization",
|
|
63
|
+
"keyboard",
|
|
64
|
+
"keyframe",
|
|
65
|
+
"keynote",
|
|
66
|
+
"monkey",
|
|
67
|
+
"passthrough",
|
|
68
|
+
"passenger",
|
|
69
|
+
"passage",
|
|
70
|
+
];
|
|
71
|
+
// ============================================================================
|
|
72
|
+
// Separator & Blocklist Pattern Cache
|
|
73
|
+
// ============================================================================
|
|
74
|
+
/** Separator pattern for splitting compound keys into segments */
|
|
75
|
+
const SEGMENT_SEPARATORS = /[_\-.\s]+/;
|
|
76
|
+
/** Pre-compiled blocklist patterns for word-boundary matching */
|
|
77
|
+
const BLOCKLIST_PATTERNS = SENSITIVE_KEY_BLOCKLIST.map((word) => new RegExp(`(?:^|[_\\-.\\s])${escapeRegex(word.toLowerCase())}(?:$|[_\\-.\\s])`, "i"));
|
|
78
|
+
function escapeRegex(str) {
|
|
79
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
80
|
+
}
|
|
81
|
+
// ============================================================================
|
|
82
|
+
// Public API
|
|
83
|
+
// ============================================================================
|
|
84
|
+
/**
|
|
85
|
+
* Check if a field/key name is sensitive and should be redacted.
|
|
86
|
+
*
|
|
87
|
+
* Algorithm (4 steps):
|
|
88
|
+
* 1. Check if the key contains any sensitive pattern (substring match)
|
|
89
|
+
* 2. If the entire key is an exact blocklist word → not sensitive
|
|
90
|
+
* 3. For compound keys (segments): only sensitive if at least one segment
|
|
91
|
+
* is genuinely sensitive (not fully explained by blocklist)
|
|
92
|
+
* 4. Single-segment keys: check blocklist patterns
|
|
93
|
+
*
|
|
94
|
+
* @param key - The field name to check
|
|
95
|
+
* @returns true if the key should be redacted
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```typescript
|
|
99
|
+
* isSensitiveKey('password') // true
|
|
100
|
+
* isSensitiveKey('api_key') // true
|
|
101
|
+
* isSensitiveKey('keyboard') // false (blocklisted)
|
|
102
|
+
* isSensitiveKey('monkey') // false (blocklisted)
|
|
103
|
+
* isSensitiveKey('monkey_password') // true ("password" is genuine)
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export function isSensitiveKey(key) {
|
|
107
|
+
const lowerKey = key.toLowerCase();
|
|
108
|
+
// Step 1: Check if the key matches any sensitive pattern
|
|
109
|
+
const hasSensitiveMatch = SENSITIVE_KEYS.some((sensitiveKey) => lowerKey.includes(sensitiveKey.toLowerCase()));
|
|
110
|
+
if (!hasSensitiveMatch)
|
|
111
|
+
return false;
|
|
112
|
+
// Step 2: Exact blocklist match exemption
|
|
113
|
+
for (const blocked of SENSITIVE_KEY_BLOCKLIST) {
|
|
114
|
+
if (lowerKey === blocked.toLowerCase())
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
// Step 3: Compound key analysis
|
|
118
|
+
const segments = lowerKey.split(SEGMENT_SEPARATORS).filter(Boolean);
|
|
119
|
+
if (segments.length > 1) {
|
|
120
|
+
return segments.some((segment) => {
|
|
121
|
+
const isSensitive = SENSITIVE_KEYS.some((sk) => segment.includes(sk.toLowerCase()));
|
|
122
|
+
if (!isSensitive)
|
|
123
|
+
return false;
|
|
124
|
+
const isBlocked = SENSITIVE_KEY_BLOCKLIST.some((blocked) => segment === blocked.toLowerCase());
|
|
125
|
+
return isSensitive && !isBlocked;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
// Step 4: Single segment — check blocklist patterns
|
|
129
|
+
return !BLOCKLIST_PATTERNS.some((pattern) => pattern.test(lowerKey));
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=sensitive-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensitive-keys.js","sourceRoot":"","sources":["../../src/utils/sensitive-keys.ts"],"names":[],"mappings":"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"}
|