veryfront 0.1.1190 → 0.1.1192
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/esm/cli/commands/serve/command.d.ts.map +1 -1
- package/esm/cli/commands/serve/command.js +5 -24
- package/esm/cli/commands/serve/proxy-extension-composition.d.ts +6 -5
- package/esm/cli/commands/serve/proxy-extension-composition.d.ts.map +1 -1
- package/esm/cli/commands/serve/proxy-extension-composition.js +57 -29
- package/esm/cli/commands/serve/proxy-runtime.d.ts +17 -0
- package/esm/cli/commands/serve/proxy-runtime.d.ts.map +1 -0
- package/esm/cli/commands/serve/proxy-runtime.js +54 -0
- package/esm/cli/mcp/dev-server-client.d.ts +6 -0
- package/esm/cli/mcp/dev-server-client.d.ts.map +1 -1
- package/esm/cli/mcp/dev-server-client.js +117 -5
- package/esm/cli/shared/config.d.ts +15 -1
- package/esm/cli/shared/config.d.ts.map +1 -1
- package/esm/cli/shared/config.js +24 -15
- package/esm/cli/shared/deployment/control-plane.d.ts +9 -2
- package/esm/cli/shared/deployment/control-plane.d.ts.map +1 -1
- package/esm/cli/shared/deployment/control-plane.js +7 -2
- package/esm/cli/shared/deployment/deploy-project.d.ts +2 -2
- package/esm/cli/shared/deployment/deploy-project.d.ts.map +1 -1
- package/esm/cli/shared/deployment/deploy-project.js +97 -28
- package/esm/cli/templates/manifest.d.ts +2 -0
- package/esm/cli/templates/manifest.js +7 -5
- package/esm/deno.d.ts +6 -0
- package/esm/deno.js +13 -7
- package/esm/extensions/ext-llm-anthropic/src/anthropic-native-content.d.ts.map +1 -1
- package/esm/extensions/ext-llm-anthropic/src/anthropic-native-content.js +2 -2
- package/esm/extensions/ext-llm-google/src/google-thought-signatures.d.ts.map +1 -1
- package/esm/extensions/ext-llm-google/src/google-thought-signatures.js +2 -2
- package/esm/extensions/ext-llm-openai/src/openai-web-search.d.ts.map +1 -1
- package/esm/extensions/ext-llm-openai/src/openai-web-search.js +2 -2
- package/esm/src/agent/hosted/child-fork-run-context.d.ts.map +1 -1
- package/esm/src/agent/hosted/child-fork-run-context.js +4 -1
- package/esm/src/agent/hosted/child-pending-tool-lifecycle.d.ts +1 -0
- package/esm/src/agent/hosted/child-pending-tool-lifecycle.d.ts.map +1 -1
- package/esm/src/agent/hosted/child-pending-tool-lifecycle.js +8 -2
- package/esm/src/agent/hosted/child-tool-input.d.ts +1 -0
- package/esm/src/agent/hosted/child-tool-input.d.ts.map +1 -1
- package/esm/src/agent/hosted/child-tool-input.js +14 -1
- package/esm/src/agent/hosted/cloud-agent-chat-execution.d.ts.map +1 -1
- package/esm/src/agent/hosted/cloud-agent-chat-execution.js +3 -3
- package/esm/src/agent/hosted/cloud-agent-child-tools.d.ts +2 -1
- package/esm/src/agent/hosted/cloud-agent-child-tools.d.ts.map +1 -1
- package/esm/src/agent/hosted/cloud-agent-child-tools.js +12 -6
- package/esm/src/agent/hosted/cloud-agent-config.d.ts +3 -0
- package/esm/src/agent/hosted/cloud-agent-config.d.ts.map +1 -1
- package/esm/src/agent/hosted/cloud-agent-config.js +5 -0
- package/esm/src/agent/hosted/cloud-agent-provider-bootstrap.d.ts +2 -0
- package/esm/src/agent/hosted/cloud-agent-provider-bootstrap.d.ts.map +1 -1
- package/esm/src/agent/hosted/project-reference-resolver.d.ts +5 -0
- package/esm/src/agent/hosted/project-reference-resolver.d.ts.map +1 -1
- package/esm/src/agent/hosted/project-reference-resolver.js +63 -8
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.d.ts +10 -0
- package/esm/src/agent/hosted/veryfront-cloud-agent-service.d.ts.map +1 -1
- package/esm/src/agent/runtime/agent-invocation-contract.d.ts +9 -2
- package/esm/src/agent/runtime/agent-invocation-contract.d.ts.map +1 -1
- package/esm/src/agent/runtime/agent-invocation-contract.js +38 -3
- package/esm/src/agent/runtime/error-utils.d.ts +2 -0
- package/esm/src/agent/runtime/error-utils.d.ts.map +1 -1
- package/esm/src/agent/runtime/error-utils.js +300 -5
- package/esm/src/agent/runtime/model-resolution.js +36 -36
- package/esm/src/agent/schemas/agent.schema.d.ts +4 -4
- package/esm/src/agent/service/config.d.ts.map +1 -1
- package/esm/src/agent/service/config.js +4 -1
- package/esm/src/build/production-build/templates.d.ts.map +1 -1
- package/esm/src/build/production-build/templates.js +1 -1
- package/esm/src/cache/config-hash.d.ts.map +1 -1
- package/esm/src/cache/config-hash.js +39 -26
- package/esm/src/cache/keys/builders/render.d.ts +4 -1
- package/esm/src/cache/keys/builders/render.d.ts.map +1 -1
- package/esm/src/cache/keys/builders/render.js +13 -3
- package/esm/src/channels/control-plane.d.ts +19 -1
- package/esm/src/channels/control-plane.d.ts.map +1 -1
- package/esm/src/channels/control-plane.js +32 -0
- package/esm/src/discovery/discovery-utils.d.ts +6 -0
- package/esm/src/discovery/discovery-utils.d.ts.map +1 -1
- package/esm/src/discovery/discovery-utils.js +19 -0
- package/esm/src/discovery/index.d.ts +1 -1
- package/esm/src/discovery/index.d.ts.map +1 -1
- package/esm/src/discovery/index.js +1 -1
- package/esm/src/errors/catalog/module-errors.d.ts.map +1 -1
- package/esm/src/errors/catalog/module-errors.js +10 -0
- package/esm/src/errors/error-registry/module.d.ts +4 -0
- package/esm/src/errors/error-registry/module.d.ts.map +1 -1
- package/esm/src/errors/error-registry/module.js +16 -0
- package/esm/src/errors/error-registry.d.ts +2 -0
- package/esm/src/errors/error-registry.d.ts.map +1 -1
- package/esm/src/errors/index.d.ts +1 -1
- package/esm/src/errors/index.d.ts.map +1 -1
- package/esm/src/errors/index.js +1 -1
- package/esm/src/errors/types.d.ts.map +1 -1
- package/esm/src/errors/types.js +5 -2
- package/esm/src/eval/studio.d.ts +1 -1
- package/esm/src/extensions/bundler/bundler.d.ts +8 -0
- package/esm/src/extensions/bundler/bundler.d.ts.map +1 -1
- package/esm/src/extensions/distributed/rate-limit-support.d.ts +3 -1
- package/esm/src/extensions/distributed/rate-limit-support.d.ts.map +1 -1
- package/esm/src/extensions/distributed/rate-limit-support.js +3 -1
- package/esm/src/html/dev-scripts.d.ts.map +1 -1
- package/esm/src/html/dev-scripts.js +2 -1
- package/esm/src/html/html-injection.d.ts.map +1 -1
- package/esm/src/html/html-injection.js +37 -3
- package/esm/src/html/hydration-script-builder/hydration-runtime.generated.js +1 -1
- package/esm/src/html/index.d.ts +1 -0
- package/esm/src/html/index.d.ts.map +1 -1
- package/esm/src/html/index.js +1 -0
- package/esm/src/html/project-stylesheet-ids.d.ts +4 -0
- package/esm/src/html/project-stylesheet-ids.d.ts.map +1 -0
- package/esm/src/html/project-stylesheet-ids.js +6 -0
- package/esm/src/internal-agents/schema.d.ts +2 -0
- package/esm/src/internal-agents/schema.d.ts.map +1 -1
- package/esm/src/internal-agents/schema.js +4 -1
- package/esm/src/middleware/builtin/security/rate-limit-validation.d.ts +1 -0
- package/esm/src/middleware/builtin/security/rate-limit-validation.d.ts.map +1 -1
- package/esm/src/middleware/builtin/security/rate-limit-validation.js +1 -0
- package/esm/src/middleware/builtin/security/rate-limit.d.ts +31 -1
- package/esm/src/middleware/builtin/security/rate-limit.d.ts.map +1 -1
- package/esm/src/middleware/builtin/security/rate-limit.js +164 -36
- package/esm/src/middleware/builtin/security/redis-rate-limit-script.d.ts +3 -0
- package/esm/src/middleware/builtin/security/redis-rate-limit-script.d.ts.map +1 -0
- package/esm/src/middleware/builtin/security/redis-rate-limit-script.js +10 -0
- package/esm/src/middleware/builtin/security/redis-rate-limit.d.ts +13 -2
- package/esm/src/middleware/builtin/security/redis-rate-limit.d.ts.map +1 -1
- package/esm/src/middleware/builtin/security/redis-rate-limit.js +88 -20
- package/esm/src/middleware/index.d.ts +1 -1
- package/esm/src/middleware/index.d.ts.map +1 -1
- package/esm/src/modules/import-map/loader.d.ts +2 -1
- package/esm/src/modules/import-map/loader.d.ts.map +1 -1
- package/esm/src/modules/import-map/loader.js +210 -81
- package/esm/src/modules/import-map/merger.d.ts.map +1 -1
- package/esm/src/modules/import-map/merger.js +57 -11
- package/esm/src/modules/import-map/preloader.d.ts +83 -2
- package/esm/src/modules/import-map/preloader.d.ts.map +1 -1
- package/esm/src/modules/import-map/preloader.js +824 -25
- package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
- package/esm/src/modules/react-loader/ssr-module-loader/loader.js +28 -1
- package/esm/src/modules/server/browser-module-admission.d.ts +27 -0
- package/esm/src/modules/server/browser-module-admission.d.ts.map +1 -0
- package/esm/src/modules/server/browser-module-admission.js +164 -0
- package/esm/src/modules/server/classify.d.ts.map +1 -1
- package/esm/src/modules/server/classify.js +18 -2
- package/esm/src/modules/server/module-server.d.ts +14 -0
- package/esm/src/modules/server/module-server.d.ts.map +1 -1
- package/esm/src/modules/server/module-server.js +500 -132
- package/esm/src/modules/server/rate-limiter.d.ts +7 -2
- package/esm/src/modules/server/rate-limiter.d.ts.map +1 -1
- package/esm/src/modules/server/rate-limiter.js +30 -6
- package/esm/src/modules/server/websocket-handler.d.ts.map +1 -1
- package/esm/src/modules/server/websocket-handler.js +4 -5
- package/esm/src/observability/tracing/service-tracer.d.ts.map +1 -1
- package/esm/src/observability/tracing/service-tracer.js +2 -10
- package/esm/src/platform/adapters/fs/cache/file-cache.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/cache/file-cache.js +11 -1
- package/esm/src/platform/adapters/fs/github/adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/github/adapter.js +0 -5
- package/esm/src/platform/adapters/fs/github/github-api-client.d.ts +1 -0
- package/esm/src/platform/adapters/fs/github/github-api-client.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/github/github-api-client.js +81 -6
- package/esm/src/platform/adapters/fs/github/path-utils.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/github/path-utils.js +22 -1
- package/esm/src/platform/adapters/fs/github/types.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/github/types.js +12 -11
- package/esm/src/platform/adapters/fs/integration.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/integration.js +25 -36
- package/esm/src/platform/adapters/fs/veryfront/path-normalizer.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/path-normalizer.js +17 -4
- package/esm/src/platform/adapters/fs/veryfront/proxy-manager.d.ts +6 -2
- package/esm/src/platform/adapters/fs/veryfront/proxy-manager.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/proxy-manager.js +207 -59
- package/esm/src/platform/adapters/fs/veryfront/schemas/proxy-manager.schema.js +1 -1
- package/esm/src/platform/adapters/veryfront-api-transport.d.ts +4 -0
- package/esm/src/platform/adapters/veryfront-api-transport.d.ts.map +1 -1
- package/esm/src/platform/adapters/veryfront-api-transport.js +20 -6
- package/esm/src/platform/compat/error-introspection.d.ts +12 -1
- package/esm/src/platform/compat/error-introspection.d.ts.map +1 -1
- package/esm/src/platform/compat/error-introspection.js +40 -5
- package/esm/src/platform/compat/framework-source-resolver.d.ts.map +1 -1
- package/esm/src/platform/compat/framework-source-resolver.js +6 -1
- package/esm/src/platform/compat/path/basic-operations.d.ts.map +1 -1
- package/esm/src/platform/compat/path/basic-operations.js +6 -2
- package/esm/src/platform/compat/path/portable.d.ts.map +1 -1
- package/esm/src/platform/compat/path/portable.js +98 -54
- package/esm/src/platform/compat/path/resolution.d.ts.map +1 -1
- package/esm/src/platform/compat/path/resolution.js +14 -5
- package/esm/src/platform/compat/primordials/array.d.ts +8 -0
- package/esm/src/platform/compat/primordials/array.d.ts.map +1 -0
- package/esm/src/platform/compat/primordials/array.js +33 -0
- package/esm/src/platform/compat/published-runtime-helpers.d.ts +2 -0
- package/esm/src/platform/compat/published-runtime-helpers.d.ts.map +1 -0
- package/esm/src/platform/compat/published-runtime-helpers.js +5 -0
- package/esm/src/platform/index.d.ts +1 -1
- package/esm/src/platform/index.d.ts.map +1 -1
- package/esm/src/platform/index.js +1 -1
- package/esm/src/provider/runtime-loader/json-snapshot.d.ts +12 -0
- package/esm/src/provider/runtime-loader/json-snapshot.d.ts.map +1 -1
- package/esm/src/provider/runtime-loader/json-snapshot.js +203 -57
- package/esm/src/provider/runtime-loader.d.ts +1 -1
- package/esm/src/provider/runtime-loader.d.ts.map +1 -1
- package/esm/src/provider/runtime-loader.js +3 -3
- package/esm/src/provider/shared/index.d.ts +1 -1
- package/esm/src/provider/shared/index.d.ts.map +1 -1
- package/esm/src/provider/shared/index.js +1 -1
- package/esm/src/proxy/control-plane-signature.d.ts +14 -0
- package/esm/src/proxy/control-plane-signature.d.ts.map +1 -1
- package/esm/src/proxy/control-plane-signature.js +131 -1
- package/esm/src/proxy/handler.d.ts +3 -1
- package/esm/src/proxy/handler.d.ts.map +1 -1
- package/esm/src/proxy/handler.js +56 -3
- package/esm/src/react/components/optimized-image/OptimizedBackgroundImage.d.ts +12 -5
- package/esm/src/react/components/optimized-image/OptimizedBackgroundImage.d.ts.map +1 -1
- package/esm/src/react/components/optimized-image/OptimizedBackgroundImage.js +5 -4
- package/esm/src/react/components/optimized-image/OptimizedImage.d.ts +8 -2
- package/esm/src/react/components/optimized-image/OptimizedImage.d.ts.map +1 -1
- package/esm/src/react/components/optimized-image/OptimizedImage.js +7 -7
- package/esm/src/react/components/optimized-image/SimpleOptimizedImage.d.ts +4 -3
- package/esm/src/react/components/optimized-image/SimpleOptimizedImage.d.ts.map +1 -1
- package/esm/src/react/components/optimized-image/SimpleOptimizedImage.js +10 -7
- package/esm/src/react/components/optimized-image/helpers.d.ts +20 -1
- package/esm/src/react/components/optimized-image/helpers.d.ts.map +1 -1
- package/esm/src/react/components/optimized-image/helpers.js +168 -6
- package/esm/src/react/components/optimized-image/index.d.ts +3 -2
- package/esm/src/react/components/optimized-image/index.d.ts.map +1 -1
- package/esm/src/react/components/optimized-image/useOptimizedImage.d.ts +11 -6
- package/esm/src/react/components/optimized-image/useOptimizedImage.d.ts.map +1 -1
- package/esm/src/react/components/optimized-image/useOptimizedImage.js +6 -8
- package/esm/src/react/index.d.ts +1 -1
- package/esm/src/react/index.d.ts.map +1 -1
- package/esm/src/release-assets/build-executor.d.ts.map +1 -1
- package/esm/src/release-assets/build-executor.js +43 -4
- package/esm/src/release-assets/index.d.ts +1 -1
- package/esm/src/release-assets/index.d.ts.map +1 -1
- package/esm/src/release-assets/index.js +1 -1
- package/esm/src/release-assets/manifest-cache.d.ts +8 -6
- package/esm/src/release-assets/manifest-cache.d.ts.map +1 -1
- package/esm/src/release-assets/manifest-cache.js +20 -5
- package/esm/src/release-assets/manifest-schema.d.ts +14 -2
- package/esm/src/release-assets/manifest-schema.d.ts.map +1 -1
- package/esm/src/release-assets/manifest-schema.js +21 -1
- package/esm/src/rendering/factories/service-factories.d.ts.map +1 -1
- package/esm/src/rendering/factories/service-factories.js +1 -0
- package/esm/src/rendering/layouts/layout-applicator.d.ts +3 -0
- package/esm/src/rendering/layouts/layout-applicator.d.ts.map +1 -1
- package/esm/src/rendering/layouts/layout-applicator.js +3 -1
- package/esm/src/rendering/layouts/utils/applicator.d.ts +2 -1
- package/esm/src/rendering/layouts/utils/applicator.d.ts.map +1 -1
- package/esm/src/rendering/layouts/utils/applicator.js +3 -3
- package/esm/src/rendering/layouts/utils/component-loader.d.ts +4 -3
- package/esm/src/rendering/layouts/utils/component-loader.d.ts.map +1 -1
- package/esm/src/rendering/layouts/utils/component-loader.js +23 -7
- package/esm/src/rendering/orchestrator/layout.d.ts +2 -0
- package/esm/src/rendering/orchestrator/layout.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/layout.js +7 -2
- package/esm/src/rendering/orchestrator/lifecycle.d.ts +3 -0
- package/esm/src/rendering/orchestrator/lifecycle.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/lifecycle.js +3 -0
- package/esm/src/rendering/orchestrator/ssr.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/ssr.js +2 -0
- package/esm/src/rendering/page-renderer.d.ts +3 -0
- package/esm/src/rendering/page-renderer.d.ts.map +1 -1
- package/esm/src/rendering/page-renderer.js +3 -0
- package/esm/src/rendering/page-rendering.d.ts +2 -0
- package/esm/src/rendering/page-rendering.d.ts.map +1 -1
- package/esm/src/rendering/page-rendering.js +13 -1
- package/esm/src/rendering/renderer.d.ts.map +1 -1
- package/esm/src/rendering/renderer.js +1 -0
- package/esm/src/routing/api/module-loader/esbuild-plugin.d.ts.map +1 -1
- package/esm/src/routing/api/module-loader/esbuild-plugin.js +9 -3
- package/esm/src/runs/schemas.d.ts +11 -11
- package/esm/src/security/http/base-handler.d.ts.map +1 -1
- package/esm/src/security/http/base-handler.js +5 -3
- package/esm/src/security/http/local-control-request.d.ts +39 -0
- package/esm/src/security/http/local-control-request.d.ts.map +1 -0
- package/esm/src/security/http/local-control-request.js +137 -0
- package/esm/src/security/sandbox/worker-egress-guard.d.ts +15 -0
- package/esm/src/security/sandbox/worker-egress-guard.d.ts.map +1 -1
- package/esm/src/security/sandbox/worker-egress-guard.js +48 -3
- package/esm/src/server/bootstrap.d.ts.map +1 -1
- package/esm/src/server/bootstrap.js +11 -0
- package/esm/src/server/context/request-context.d.ts +6 -0
- package/esm/src/server/context/request-context.d.ts.map +1 -1
- package/esm/src/server/context/request-context.js +2 -1
- package/esm/src/server/handlers/dev/dashboard/access-policy.d.ts +20 -0
- package/esm/src/server/handlers/dev/dashboard/access-policy.d.ts.map +1 -0
- package/esm/src/server/handlers/dev/dashboard/access-policy.js +106 -0
- package/esm/src/server/handlers/dev/dashboard/html-shell.d.ts +2 -1
- package/esm/src/server/handlers/dev/dashboard/html-shell.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/dashboard/html-shell.js +8 -32
- package/esm/src/server/handlers/dev/dashboard/index.d.ts +3 -0
- package/esm/src/server/handlers/dev/dashboard/index.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/dashboard/index.js +73 -8
- package/esm/src/server/handlers/dev/dashboard/ui-handler.d.ts +2 -1
- package/esm/src/server/handlers/dev/dashboard/ui-handler.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/dashboard/ui-handler.js +5 -84
- package/esm/src/server/handlers/dev/debug-context.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/debug-context.handler.js +4 -0
- package/esm/src/server/handlers/dev/files/dev-file.handler.d.ts +0 -1
- package/esm/src/server/handlers/dev/files/dev-file.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/files/dev-file.handler.js +21 -30
- package/esm/src/server/handlers/dev/files/esbuild-plugins.d.ts +5 -0
- package/esm/src/server/handlers/dev/files/esbuild-plugins.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/files/esbuild-plugins.js +56 -14
- package/esm/src/server/handlers/dev/files/path-validator.d.ts +8 -1
- package/esm/src/server/handlers/dev/files/path-validator.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/files/path-validator.js +21 -8
- package/esm/src/server/handlers/dev/projects/api.js +1 -1
- package/esm/src/server/handlers/dev/projects/html-shell.d.ts +1 -1
- package/esm/src/server/handlers/dev/projects/html-shell.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/projects/html-shell.js +2 -36
- package/esm/src/server/handlers/dev/projects/index.d.ts +3 -0
- package/esm/src/server/handlers/dev/projects/index.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/projects/index.js +37 -7
- package/esm/src/server/handlers/dev/projects/ui-handler.d.ts +2 -1
- package/esm/src/server/handlers/dev/projects/ui-handler.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/projects/ui-handler.js +5 -103
- package/esm/src/server/handlers/dev/scripts/hmr-scripts.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/scripts/hmr-scripts.js +37 -13
- package/esm/src/server/handlers/dev/shared/dev-ui-bundle-response.d.ts +10 -0
- package/esm/src/server/handlers/dev/shared/dev-ui-bundle-response.d.ts.map +1 -0
- package/esm/src/server/handlers/dev/shared/dev-ui-bundle-response.js +50 -0
- package/esm/src/server/handlers/monitoring/client-log.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/monitoring/client-log.handler.js +4 -0
- package/esm/src/server/handlers/monitoring/memory.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/monitoring/memory.handler.js +4 -0
- package/esm/src/server/handlers/monitoring/metrics.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/monitoring/metrics.handler.js +4 -0
- package/esm/src/server/handlers/preview/hmr-client-message.d.ts +2 -1
- package/esm/src/server/handlers/preview/hmr-client-message.d.ts.map +1 -1
- package/esm/src/server/handlers/preview/hmr-client-message.js +4 -13
- package/esm/src/server/handlers/preview/hmr.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/preview/hmr.handler.js +3 -24
- package/esm/src/server/handlers/request/agent-stream.handler.d.ts +5 -0
- package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/agent-stream.handler.js +78 -60
- package/esm/src/server/handlers/request/module/module-server-handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/module/module-server-handler.js +2 -0
- package/esm/src/server/project-env/cache.d.ts +31 -8
- package/esm/src/server/project-env/cache.d.ts.map +1 -1
- package/esm/src/server/project-env/cache.js +222 -42
- package/esm/src/server/project-env/fetcher.d.ts +27 -3
- package/esm/src/server/project-env/fetcher.d.ts.map +1 -1
- package/esm/src/server/project-env/fetcher.js +156 -31
- package/esm/src/server/project-env/index.d.ts +2 -1
- package/esm/src/server/project-env/index.d.ts.map +1 -1
- package/esm/src/server/project-env/index.js +2 -1
- package/esm/src/server/project-env/production-environment-resolver.d.ts +40 -0
- package/esm/src/server/project-env/production-environment-resolver.d.ts.map +1 -0
- package/esm/src/server/project-env/production-environment-resolver.js +237 -0
- package/esm/src/server/runtime-handler/adapter-factory.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/adapter-factory.js +4 -9
- package/esm/src/server/runtime-handler/environment-resolution.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/environment-resolution.js +7 -2
- package/esm/src/server/runtime-handler/handler-context-builder.d.ts +9 -1
- package/esm/src/server/runtime-handler/handler-context-builder.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/handler-context-builder.js +4 -0
- package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/index.js +45 -25
- package/esm/src/server/runtime-handler/project-middleware.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/project-middleware.js +15 -8
- package/esm/src/server/runtime-handler/project-resolution.d.ts +5 -1
- package/esm/src/server/runtime-handler/project-resolution.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/project-resolution.js +30 -16
- package/esm/src/server/runtime-handler/project-runtime-context.d.ts +9 -8
- package/esm/src/server/runtime-handler/project-runtime-context.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/project-runtime-context.js +86 -28
- package/esm/src/server/runtime-handler/timeout-manager.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/timeout-manager.js +11 -4
- package/esm/src/server/services/rsc/endpoints/endpoint-router.d.ts.map +1 -1
- package/esm/src/server/services/rsc/endpoints/endpoint-router.js +67 -99
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +2 -2
- package/esm/src/server/services/rsc/orchestrators/handler.d.ts.map +1 -1
- package/esm/src/server/services/rsc/orchestrators/handler.js +1 -0
- package/esm/src/server/services/rsc/orchestrators/render-handler.d.ts +2 -0
- package/esm/src/server/services/rsc/orchestrators/render-handler.d.ts.map +1 -1
- package/esm/src/server/services/rsc/orchestrators/render-handler.js +13 -1
- package/esm/src/server/shared/browser-module-bundler.d.ts +56 -1
- package/esm/src/server/shared/browser-module-bundler.d.ts.map +1 -1
- package/esm/src/server/shared/browser-module-bundler.js +626 -83
- package/esm/src/server/utils/proxy-trust.d.ts +9 -16
- package/esm/src/server/utils/proxy-trust.d.ts.map +1 -1
- package/esm/src/server/utils/proxy-trust.js +8 -29
- package/esm/src/testing/assert.d.ts +1 -1
- package/esm/src/testing/assert.d.ts.map +1 -1
- package/esm/src/testing/assert.js +3 -1
- package/esm/src/tool/factory.d.ts.map +1 -1
- package/esm/src/tool/factory.js +42 -10
- package/esm/src/tool/index.d.ts +1 -1
- package/esm/src/tool/index.d.ts.map +1 -1
- package/esm/src/tool/index.js +1 -1
- package/esm/src/tool/remote-mcp.d.ts +16 -1
- package/esm/src/tool/remote-mcp.d.ts.map +1 -1
- package/esm/src/tool/remote-mcp.js +48 -6
- package/esm/src/transforms/esm/http-cache-helpers.d.ts +4 -0
- package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
- package/esm/src/transforms/esm/http-cache-helpers.js +184 -62
- package/esm/src/transforms/esm/package-registry.d.ts +6 -0
- package/esm/src/transforms/esm/package-registry.d.ts.map +1 -1
- package/esm/src/transforms/esm/package-registry.js +9 -0
- package/esm/src/transforms/esm/specifier-resolver.d.ts.map +1 -1
- package/esm/src/transforms/esm/specifier-resolver.js +52 -9
- package/esm/src/transforms/esm/types.d.ts +8 -0
- package/esm/src/transforms/esm/types.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/core.js +2 -2
- package/esm/src/transforms/import-rewriter/url-builder.d.ts +6 -0
- package/esm/src/transforms/import-rewriter/url-builder.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/url-builder.js +96 -29
- package/esm/src/transforms/mdx/esm-module-loader/import-transformer.js +2 -2
- package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/loader-helpers.js +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fallback.js +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.d.ts +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/http-fetcher.js +8 -4
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.js +44 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-writer.d.ts +15 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-writer.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-writer.js +32 -2
- package/esm/src/transforms/mdx/esm-module-loader/types.d.ts +2 -0
- package/esm/src/transforms/mdx/esm-module-loader/types.d.ts.map +1 -1
- package/esm/src/transforms/mdx/index.d.ts +17 -1
- package/esm/src/transforms/mdx/index.d.ts.map +1 -1
- package/esm/src/transforms/mdx/index.js +23 -1
- package/esm/src/transforms/pipeline/cache-identity.d.ts +38 -0
- package/esm/src/transforms/pipeline/cache-identity.d.ts.map +1 -0
- package/esm/src/transforms/pipeline/cache-identity.js +381 -0
- package/esm/src/transforms/pipeline/index.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/index.js +71 -27
- package/esm/src/transforms/pipeline/stages/ssr-http-cache.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/stages/ssr-http-cache.js +2 -0
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/constants.d.ts +4 -1
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/constants.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/constants.js +17 -2
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.js +4 -2
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/transform.d.ts +2 -2
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/transform.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/transform.js +10 -10
- package/esm/src/transforms/pipeline/types.d.ts +19 -1
- package/esm/src/transforms/pipeline/types.d.ts.map +1 -1
- package/esm/src/transforms/shared/server-only-packages.d.ts.map +1 -1
- package/esm/src/transforms/shared/server-only-packages.js +17 -2
- package/esm/src/types/server.d.ts +8 -0
- package/esm/src/types/server.d.ts.map +1 -1
- package/esm/src/utils/base64url.d.ts.map +1 -1
- package/esm/src/utils/base64url.js +10 -4
- package/esm/src/utils/bundle-manifest.d.ts +19 -1
- package/esm/src/utils/bundle-manifest.d.ts.map +1 -1
- package/esm/src/utils/bundle-manifest.js +124 -27
- package/esm/src/utils/cache/eviction/eviction-manager.js +2 -2
- package/esm/src/utils/cache/stores/memory/entry-manager.d.ts +2 -1
- package/esm/src/utils/cache/stores/memory/entry-manager.d.ts.map +1 -1
- package/esm/src/utils/cache/stores/memory/entry-manager.js +7 -5
- package/esm/src/utils/cache/stores/memory/lru-cache-adapter.d.ts +7 -0
- package/esm/src/utils/cache/stores/memory/lru-cache-adapter.d.ts.map +1 -1
- package/esm/src/utils/cache/stores/memory/lru-cache-adapter.js +74 -17
- package/esm/src/utils/cache/stores/memory/lru-list-manager.d.ts +2 -0
- package/esm/src/utils/cache/stores/memory/lru-list-manager.d.ts.map +1 -1
- package/esm/src/utils/cache/stores/memory/lru-list-manager.js +6 -2
- package/esm/src/utils/cache/stores/memory/types.d.ts +2 -0
- package/esm/src/utils/cache/stores/memory/types.d.ts.map +1 -1
- package/esm/src/utils/cache-dir.d.ts +22 -1
- package/esm/src/utils/cache-dir.d.ts.map +1 -1
- package/esm/src/utils/cache-dir.js +171 -18
- package/esm/src/utils/cache-file-ops.d.ts +7 -3
- package/esm/src/utils/cache-file-ops.d.ts.map +1 -1
- package/esm/src/utils/cache-file-ops.js +26 -9
- package/esm/src/utils/cache-namespace.d.ts.map +1 -1
- package/esm/src/utils/cache-namespace.js +3 -1
- package/esm/src/utils/constants/limits.d.ts +1 -1
- package/esm/src/utils/constants/limits.d.ts.map +1 -1
- package/esm/src/utils/constants/limits.js +1 -1
- package/esm/src/utils/cookie-utils.d.ts.map +1 -1
- package/esm/src/utils/cookie-utils.js +15 -2
- package/esm/src/utils/env-loader.d.ts.map +1 -1
- package/esm/src/utils/env-loader.js +7 -2
- package/esm/src/utils/file-discovery.d.ts.map +1 -1
- package/esm/src/utils/file-discovery.js +88 -4
- package/esm/src/utils/hash-utils.d.ts.map +1 -1
- package/esm/src/utils/hash-utils.js +32 -6
- package/esm/src/utils/header-identity.d.ts +3 -0
- package/esm/src/utils/header-identity.d.ts.map +1 -0
- package/esm/src/utils/header-identity.js +25 -0
- package/esm/src/utils/id.d.ts.map +1 -1
- package/esm/src/utils/id.js +26 -4
- package/esm/src/utils/image-variant-widths.d.ts +13 -0
- package/esm/src/utils/image-variant-widths.d.ts.map +1 -0
- package/esm/src/utils/image-variant-widths.js +75 -0
- package/esm/src/utils/import-lockfile.d.ts +52 -1
- package/esm/src/utils/import-lockfile.d.ts.map +1 -1
- package/esm/src/utils/import-lockfile.js +1041 -58
- package/esm/src/utils/index.d.ts +1 -1
- package/esm/src/utils/index.d.ts.map +1 -1
- package/esm/src/utils/index.js +1 -1
- package/esm/src/utils/logger/logger.d.ts +1 -0
- package/esm/src/utils/logger/logger.d.ts.map +1 -1
- package/esm/src/utils/logger/logger.js +359 -78
- package/esm/src/utils/logger/redact.d.ts +4 -2
- package/esm/src/utils/logger/redact.d.ts.map +1 -1
- package/esm/src/utils/logger/redact.js +300 -112
- package/esm/src/utils/logger/serialization.d.ts +3 -0
- package/esm/src/utils/logger/serialization.d.ts.map +1 -0
- package/esm/src/utils/logger/serialization.js +81 -0
- package/esm/src/utils/lru-wrapper.js +2 -2
- package/esm/src/utils/memoize.d.ts +1 -1
- package/esm/src/utils/memoize.d.ts.map +1 -1
- package/esm/src/utils/memoize.js +16 -5
- package/esm/src/utils/memory/profiler.d.ts +11 -0
- package/esm/src/utils/memory/profiler.d.ts.map +1 -1
- package/esm/src/utils/memory/profiler.js +20 -5
- package/esm/src/utils/path-utils.d.ts.map +1 -1
- package/esm/src/utils/path-utils.js +4 -2
- package/esm/src/utils/sleep.d.ts +8 -1
- package/esm/src/utils/sleep.d.ts.map +1 -1
- package/esm/src/utils/sleep.js +11 -2
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/utils/websocket-message-size.d.ts +22 -0
- package/esm/src/utils/websocket-message-size.d.ts.map +1 -0
- package/esm/src/utils/websocket-message-size.js +41 -0
- package/esm/src/workflow/schemas/workflow.schema.d.ts +10 -10
- package/esm/src/workflow/worker/shared.d.ts.map +1 -1
- package/esm/src/workflow/worker/shared.js +16 -5
- package/package.json +8 -8
- package/esm/src/server/dev-ui/manifest.d.ts +0 -33
- package/esm/src/server/dev-ui/manifest.d.ts.map +0 -1
- package/esm/src/server/dev-ui/manifest.js +0 -31
- package/esm/src/server/handlers/dev/shared/ui-module-transform.d.ts +0 -8
- package/esm/src/server/handlers/dev/shared/ui-module-transform.d.ts.map +0 -1
- package/esm/src/server/handlers/dev/shared/ui-module-transform.js +0 -32
|
@@ -6,28 +6,21 @@
|
|
|
6
6
|
* Any other treatment lets an attacker reaching the runtime directly spoof the
|
|
7
7
|
* origin host or point project discovery at arbitrary filesystem paths.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* cryptographically verifies against the configured control-plane public
|
|
15
|
-
* key and whose `iat`/`exp` claims are within the allowed freshness
|
|
16
|
-
* window. Presence alone is NOT trusted because the proxy does not strip
|
|
17
|
-
* this header from untrusted inbound requests (it has to pass through to
|
|
18
|
-
* the channel-invoke handler unchanged), so a
|
|
19
|
-
* direct-access attacker could otherwise set any value and promote
|
|
20
|
-
* forwarded-header spoofing.
|
|
9
|
+
* Trust is an operator-owned deployment property, not a property of an
|
|
10
|
+
* arbitrary application request. In particular, a channel-dispatch JWS is
|
|
11
|
+
* intentionally not accepted here: that token is not bound to this request's
|
|
12
|
+
* method, path, body, or routing identity and can therefore be replayed as an
|
|
13
|
+
* unrelated proxy credential while it is fresh.
|
|
21
14
|
*
|
|
22
15
|
* @module server/utils/proxy-trust
|
|
23
16
|
*/
|
|
24
17
|
export interface ProxyTrustOptions {
|
|
25
18
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
19
|
+
* Retained for call-site compatibility. Control-plane signing keys authorize
|
|
20
|
+
* only the exact operation verified by the control-plane handler and never
|
|
21
|
+
* promote a general HTTP request to proxy-trusted.
|
|
29
22
|
*/
|
|
30
23
|
publicKeyPem?: string;
|
|
31
24
|
}
|
|
32
|
-
export declare function isProxyTrusted(
|
|
25
|
+
export declare function isProxyTrusted(_req: Request, _options?: ProxyTrustOptions): Promise<boolean>;
|
|
33
26
|
//# sourceMappingURL=proxy-trust.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-trust.d.ts","sourceRoot":"","sources":["../../../../src/src/server/utils/proxy-trust.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"proxy-trust.d.ts","sourceRoot":"","sources":["../../../../src/src/server/utils/proxy-trust.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,EACb,QAAQ,GAAE,iBAAsB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAElB"}
|
|
@@ -6,36 +6,15 @@
|
|
|
6
6
|
* Any other treatment lets an attacker reaching the runtime directly spoof the
|
|
7
7
|
* origin host or point project discovery at arbitrary filesystem paths.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* cryptographically verifies against the configured control-plane public
|
|
15
|
-
* key and whose `iat`/`exp` claims are within the allowed freshness
|
|
16
|
-
* window. Presence alone is NOT trusted because the proxy does not strip
|
|
17
|
-
* this header from untrusted inbound requests (it has to pass through to
|
|
18
|
-
* the channel-invoke handler unchanged), so a
|
|
19
|
-
* direct-access attacker could otherwise set any value and promote
|
|
20
|
-
* forwarded-header spoofing.
|
|
9
|
+
* Trust is an operator-owned deployment property, not a property of an
|
|
10
|
+
* arbitrary application request. In particular, a channel-dispatch JWS is
|
|
11
|
+
* intentionally not accepted here: that token is not bound to this request's
|
|
12
|
+
* method, path, body, or routing identity and can therefore be replayed as an
|
|
13
|
+
* unrelated proxy credential while it is fresh.
|
|
21
14
|
*
|
|
22
15
|
* @module server/utils/proxy-trust
|
|
23
16
|
*/
|
|
24
|
-
import {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const MAX_DISPATCH_SIGNATURE_AGE_SECONDS = 60;
|
|
28
|
-
export async function isProxyTrusted(req, options = {}) {
|
|
29
|
-
if (getHostEnv("VERYFRONT_TRUST_FORWARDED_HEADERS") === "1")
|
|
30
|
-
return true;
|
|
31
|
-
const jws = req.headers.get(DISPATCH_JWS_HEADER);
|
|
32
|
-
if (!jws)
|
|
33
|
-
return false;
|
|
34
|
-
const { publicKeyPem } = options;
|
|
35
|
-
if (!publicKeyPem)
|
|
36
|
-
return false;
|
|
37
|
-
return verifyDispatchJwsSignature(jws, {
|
|
38
|
-
publicKeyPem,
|
|
39
|
-
maxAgeSeconds: MAX_DISPATCH_SIGNATURE_AGE_SECONDS,
|
|
40
|
-
});
|
|
17
|
+
import { isProxyTopologyTrusted } from "../../platform/compat/proxy-topology.js";
|
|
18
|
+
export async function isProxyTrusted(_req, _options = {}) {
|
|
19
|
+
return isProxyTopologyTrusted();
|
|
41
20
|
}
|
|
@@ -14,7 +14,7 @@ export declare function assert(expr: unknown, msg?: string): asserts expr;
|
|
|
14
14
|
export declare function assertExists<T>(actual: T, msg?: string): asserts actual is NonNullable<T>;
|
|
15
15
|
/** Assert that a synchronous function throws. */
|
|
16
16
|
export declare function assertThrows(fn: () => unknown, errorClassOrMsg?: ErrorClass | string, msgIncludesOrMsg?: string, msg?: string): unknown;
|
|
17
|
-
/** Assert that an async function rejects. */
|
|
17
|
+
/** Assert that an async function rejects, returning the rejection reason. */
|
|
18
18
|
export declare function assertRejects(fn: () => Promise<unknown>, errorClassOrMsg?: ErrorClass | string, msgIncludesOrMsg?: string, msg?: string): Promise<unknown>;
|
|
19
19
|
/** Assert that a string contains another string. */
|
|
20
20
|
export declare function assertStringIncludes(actual: string, expected: string, msg?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/src/testing/assert.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,CAAC;AACjC,OAAO,WAAW,CAAC;AAKnB,2CAA2C;AAC3C,KAAK,UAAU,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/src/testing/assert.ts"],"names":[],"mappings":"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"}
|
|
@@ -90,6 +90,8 @@ function createNodeAssertImpl() {
|
|
|
90
90
|
error = e;
|
|
91
91
|
}
|
|
92
92
|
assertThrowsOrRejects(threw, error, errorClassOrMsg, msgIncludesOrMsg, "Expected function to reject");
|
|
93
|
+
// Returning the rejection reason is a stable public testing helper contract.
|
|
94
|
+
return error;
|
|
93
95
|
},
|
|
94
96
|
assertStringIncludes(actual, expected, msg) {
|
|
95
97
|
if (actual.includes(expected))
|
|
@@ -187,7 +189,7 @@ export function assertExists(actual, msg) {
|
|
|
187
189
|
export function assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
|
|
188
190
|
return impl.assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, msg);
|
|
189
191
|
}
|
|
190
|
-
/** Assert that an async function rejects. */
|
|
192
|
+
/** Assert that an async function rejects, returning the rejection reason. */
|
|
191
193
|
export function assertRejects(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
|
|
192
194
|
return impl.assertRejects(fn, errorClassOrMsg, msgIncludesOrMsg, msg);
|
|
193
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/tool/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/src/tool/factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,+BAA+B,CAAC;AAuSxE,sCAAsC;AACtC,wBAAgB,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EACtD,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CA4DvB;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACxF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IAC7C,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CACzB;AAED,wCAAwC;AACxC,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CA2C7E"}
|
package/esm/src/tool/factory.js
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
|
+
import * as dntShim from "../../_dnt.shims.js";
|
|
1
2
|
import { zodToJsonSchema } from "./schema/zod-json-schema.js";
|
|
2
3
|
import { agentLogger } from "../utils/index.js";
|
|
3
4
|
import { createError, getErrorMessage, INVALID_ARGUMENT, toError } from "../errors/index.js";
|
|
4
5
|
import { snapshotBoundedJsonValue } from "../schemas/json-value.js";
|
|
5
|
-
import { isProxyWithoutHooks } from "../platform/compat/error-introspection.js";
|
|
6
|
+
import { canIdentifyProxyWithoutHooks, isProxyWithoutHooks, } from "../platform/compat/error-introspection.js";
|
|
7
|
+
const apply = Reflect.apply;
|
|
8
|
+
const arrayIsArray = Array.isArray;
|
|
9
|
+
const objectCreate = Object.create;
|
|
10
|
+
const objectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
11
|
+
const objectHasOwnProperty = Object.prototype.hasOwnProperty;
|
|
12
|
+
const ownKeys = Reflect.ownKeys;
|
|
13
|
+
const structuredCloneValue = globalThis.structuredClone;
|
|
14
|
+
function hasOwn(object, key) {
|
|
15
|
+
return apply(objectHasOwnProperty, object, [key]);
|
|
16
|
+
}
|
|
6
17
|
function snapshotJsonSchemaObject(value) {
|
|
7
18
|
const snapshot = snapshotBoundedJsonValue(value);
|
|
8
19
|
return snapshot.success &&
|
|
@@ -151,35 +162,56 @@ function snapshotMcpConfig(value, toolId) {
|
|
|
151
162
|
if (typeof value !== "object" || value === null) {
|
|
152
163
|
schemaError(toolId, "MCP configuration must be a bounded JSON object");
|
|
153
164
|
}
|
|
154
|
-
|
|
155
|
-
|
|
165
|
+
let inspectedValue = value;
|
|
166
|
+
if (canIdentifyProxyWithoutHooks) {
|
|
167
|
+
if (isProxyWithoutHooks(value)) {
|
|
168
|
+
schemaError(toolId, "MCP configuration must contain only data properties");
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
if (typeof structuredCloneValue !== "function") {
|
|
173
|
+
schemaError(toolId, "MCP configuration must contain only data properties");
|
|
174
|
+
}
|
|
175
|
+
// Local MCP metadata crosses the same edge-runtime trust boundary as
|
|
176
|
+
// provider-bound JSON: hosts without no-hook Proxy detection use the
|
|
177
|
+
// captured structured clone primitive to reject Proxies before reflection
|
|
178
|
+
// and then validate the owned clone.
|
|
179
|
+
try {
|
|
180
|
+
inspectedValue = apply(structuredCloneValue, dntShim.dntGlobalThis, [value]);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
schemaError(toolId, "MCP configuration must contain only data properties");
|
|
184
|
+
}
|
|
156
185
|
}
|
|
157
|
-
if (
|
|
186
|
+
if (arrayIsArray(inspectedValue)) {
|
|
158
187
|
schemaError(toolId, "MCP configuration must be a bounded JSON object");
|
|
159
188
|
}
|
|
160
|
-
const canonicalInput =
|
|
189
|
+
const canonicalInput = objectCreate(null);
|
|
161
190
|
let keys;
|
|
162
191
|
try {
|
|
163
|
-
keys =
|
|
192
|
+
keys = ownKeys(inspectedValue);
|
|
164
193
|
}
|
|
165
194
|
catch {
|
|
166
195
|
schemaError(toolId, "MCP configuration must be a bounded JSON object");
|
|
167
196
|
}
|
|
168
|
-
for (
|
|
197
|
+
for (let index = 0; index < keys.length; index++) {
|
|
198
|
+
const key = keys[index];
|
|
169
199
|
if (typeof key !== "string") {
|
|
170
200
|
schemaError(toolId, "MCP configuration must be a bounded JSON object");
|
|
171
201
|
}
|
|
172
202
|
let descriptor;
|
|
173
203
|
try {
|
|
174
|
-
descriptor =
|
|
204
|
+
descriptor = objectGetOwnPropertyDescriptor(inspectedValue, key);
|
|
175
205
|
}
|
|
176
206
|
catch {
|
|
177
207
|
schemaError(toolId, "MCP configuration must contain only data properties");
|
|
178
208
|
}
|
|
179
|
-
if (!descriptor || !("value"
|
|
209
|
+
if (!descriptor || !hasOwn(descriptor, "value")) {
|
|
180
210
|
schemaError(toolId, "MCP configuration must contain only data properties");
|
|
181
211
|
}
|
|
182
212
|
if (descriptor.enumerable && descriptor.value !== undefined) {
|
|
213
|
+
// A null prototype makes assignment safe even for `__proto__` and other
|
|
214
|
+
// special names without consulting inherited setters.
|
|
183
215
|
canonicalInput[key] = descriptor.value;
|
|
184
216
|
}
|
|
185
217
|
}
|
|
@@ -187,7 +219,7 @@ function snapshotMcpConfig(value, toolId) {
|
|
|
187
219
|
if (!snapshot.success ||
|
|
188
220
|
typeof snapshot.value !== "object" ||
|
|
189
221
|
snapshot.value === null ||
|
|
190
|
-
|
|
222
|
+
arrayIsArray(snapshot.value)) {
|
|
191
223
|
schemaError(toolId, "MCP configuration must be a bounded JSON object");
|
|
192
224
|
}
|
|
193
225
|
return snapshot.value;
|
package/esm/src/tool/index.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ export { dynamicTool, tool } from "./factory.js";
|
|
|
81
81
|
export type { DynamicToolConfig } from "./factory.js";
|
|
82
82
|
export { createSleepTool, DEFAULT_SLEEP_TOOL_MAX_SECONDS, sleepTool } from "./sleep.js";
|
|
83
83
|
export type { CreateSleepToolOptions, SleepToolInput, SleepToolOutput, SleepToolWait, } from "./sleep.js";
|
|
84
|
-
export { createRemoteMCPToolSource } from "./remote-mcp.js";
|
|
84
|
+
export { createRemoteMCPToolSource, createRemoteMCPToolSourceFactoryWithTransport, type RemoteMCPToolSourceTransportOptions, } from "./remote-mcp.js";
|
|
85
85
|
export { hasToolExecutionErrorMarker, isErroredToolExecutionResult } from "./result.js";
|
|
86
86
|
export type { RemoteMCPToolSourceConfig } from "./remote-mcp.js";
|
|
87
87
|
export { createContext7ToolSource } from "./context7.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/tool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EACV,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,8BAA8B,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/tool/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,OAAO,yBAAyB,CAAC;AAGjC,YAAY,EACV,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,8BAA8B,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxF,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,yBAAyB,EACzB,6CAA6C,EAC7C,KAAK,mCAAmC,GACzC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACxF,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EACV,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oCAAoC,EACpC,wCAAwC,EACxC,mCAAmC,EACnC,6BAA6B,EAC7B,uBAAuB,EACvB,gCAAgC,EAChC,uCAAuC,GACxC,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,sCAAsC,EACtC,8BAA8B,EAC9B,qCAAqC,EACrC,uCAAuC,EACvC,kCAAkC,EAClC,gCAAgC,EAChC,qCAAqC,EACrC,8BAA8B,GAC/B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE7D,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
package/esm/src/tool/index.js
CHANGED
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
import "../../_dnt.polyfills.js";
|
|
79
79
|
export { dynamicTool, tool } from "./factory.js";
|
|
80
80
|
export { createSleepTool, DEFAULT_SLEEP_TOOL_MAX_SECONDS, sleepTool } from "./sleep.js";
|
|
81
|
-
export { createRemoteMCPToolSource } from "./remote-mcp.js";
|
|
81
|
+
export { createRemoteMCPToolSource, createRemoteMCPToolSourceFactoryWithTransport, } from "./remote-mcp.js";
|
|
82
82
|
export { hasToolExecutionErrorMarker, isErroredToolExecutionResult } from "./result.js";
|
|
83
83
|
export { createContext7ToolSource } from "./context7.js";
|
|
84
84
|
export { createToolsFromHostDefinitions } from "./host-tools.js";
|
|
@@ -16,7 +16,22 @@ export interface RemoteMCPToolSourceConfig {
|
|
|
16
16
|
listMethod?: string;
|
|
17
17
|
callMethod?: string;
|
|
18
18
|
}
|
|
19
|
-
/** Create remote MCP
|
|
19
|
+
/** Create a remote MCP source with the framework's guarded outbound transport. */
|
|
20
20
|
export declare function createRemoteMCPToolSource(config: RemoteMCPToolSourceConfig): RemoteToolSource;
|
|
21
|
+
/** Deployment-owned transport policy for exact, immutable MCP endpoints. */
|
|
22
|
+
export interface RemoteMCPToolSourceTransportOptions {
|
|
23
|
+
/** Complete endpoint URLs allowed to use {@link requestFetch}. */
|
|
24
|
+
trustedEndpoints: readonly string[];
|
|
25
|
+
/** Host transport captured by the trusted deployment at startup. */
|
|
26
|
+
requestFetch: typeof fetch;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a remote MCP source factory with narrowly scoped host transport.
|
|
30
|
+
*
|
|
31
|
+
* Only static endpoint strings that exactly match a normalized deployment
|
|
32
|
+
* allowlist use the supplied transport. Invalid, unmatched, or resolver-based
|
|
33
|
+
* endpoints retain {@link createRemoteMCPToolSource}'s guarded outbound path.
|
|
34
|
+
*/
|
|
35
|
+
export declare function createRemoteMCPToolSourceFactoryWithTransport(options: RemoteMCPToolSourceTransportOptions): (config: RemoteMCPToolSourceConfig) => RemoteToolSource;
|
|
21
36
|
export {};
|
|
22
37
|
//# sourceMappingURL=remote-mcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-mcp.d.ts","sourceRoot":"","sources":["../../../src/src/tool/remote-mcp.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQzF,mDAAmD;AACnD,eAAO,MAAM,uCAAuC,QAAmB,CAAC;AACxE,mDAAmD;AACnD,eAAO,MAAM,kCAAkC,QAAkB,CAAC;AAIlE,8EAA8E;AAC9E,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,gEAAgE;AAChE,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AAwBrD,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnF,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,eAAe,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"remote-mcp.d.ts","sourceRoot":"","sources":["../../../src/src/tool/remote-mcp.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAkB,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAQzF,mDAAmD;AACnD,eAAO,MAAM,uCAAuC,QAAmB,CAAC;AACxE,mDAAmD;AACnD,eAAO,MAAM,kCAAkC,QAAkB,CAAC;AAIlE,8EAA8E;AAC9E,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,gEAAgE;AAChE,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AAwBrD,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,oBAAoB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnF,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,eAAe,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAw3BD,kFAAkF;AAClF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,yBAAyB,GAChC,gBAAgB,CAElB;AAED,4EAA4E;AAC5E,MAAM,WAAW,mCAAmC;IAClD,kEAAkE;IAClE,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,oEAAoE;IACpE,YAAY,EAAE,OAAO,KAAK,CAAC;CAC5B;AAaD;;;;;;GAMG;AACH,wBAAgB,6CAA6C,CAC3D,OAAO,EAAE,mCAAmC,GAC3C,CAAC,MAAM,EAAE,yBAAyB,KAAK,gBAAgB,CAsBzD"}
|
|
@@ -473,7 +473,7 @@ function validateEndpoint(endpoint) {
|
|
|
473
473
|
}
|
|
474
474
|
return url.toString();
|
|
475
475
|
}
|
|
476
|
-
async function postJsonRpc(endpoint, headers, body, callerSignal, maxResponseBytes) {
|
|
476
|
+
async function postJsonRpc(endpoint, headers, body, requestFetch, callerSignal, maxResponseBytes) {
|
|
477
477
|
const expectedId = body.id;
|
|
478
478
|
if (typeof expectedId !== "string" || expectedId.length === 0) {
|
|
479
479
|
throw new TypeError("Remote MCP JSON-RPC request id must be a non-empty string");
|
|
@@ -481,7 +481,7 @@ async function postJsonRpc(endpoint, headers, body, callerSignal, maxResponseByt
|
|
|
481
481
|
const serializedBody = serializeJsonRpcRequest(body);
|
|
482
482
|
const requestScope = createRequestSignalScope(callerSignal);
|
|
483
483
|
try {
|
|
484
|
-
const response = await
|
|
484
|
+
const response = await requestFetch(endpoint, {
|
|
485
485
|
method: "POST",
|
|
486
486
|
headers,
|
|
487
487
|
body: serializedBody,
|
|
@@ -580,8 +580,7 @@ function buildRunContextMeta(context) {
|
|
|
580
580
|
}
|
|
581
581
|
return Object.keys(meta).length > 0 ? meta : undefined;
|
|
582
582
|
}
|
|
583
|
-
|
|
584
|
-
export function createRemoteMCPToolSource(config) {
|
|
583
|
+
function createRemoteMCPToolSourceWithFetch(config, requestFetch) {
|
|
585
584
|
const id = config.id ?? "remote-mcp";
|
|
586
585
|
const listMethod = config.listMethod ?? "tools/list";
|
|
587
586
|
const callMethod = config.callMethod ?? "tools/call";
|
|
@@ -601,7 +600,7 @@ export function createRemoteMCPToolSource(config) {
|
|
|
601
600
|
id: requestId,
|
|
602
601
|
method: listMethod,
|
|
603
602
|
...(cursor !== undefined ? { params: { cursor } } : {}),
|
|
604
|
-
}, context?.abortSignal, MAX_REMOTE_MCP_TOOL_LIST_RESPONSE_BYTES);
|
|
603
|
+
}, requestFetch, context?.abortSignal, MAX_REMOTE_MCP_TOOL_LIST_RESPONSE_BYTES);
|
|
605
604
|
const result = getJsonRpcResult(payload, requestId);
|
|
606
605
|
const { definitions: pageDefinitions, nextCursor } = normalizeToolListPage(result);
|
|
607
606
|
if (definitions.length + pageDefinitions.length >
|
|
@@ -644,7 +643,7 @@ export function createRemoteMCPToolSource(config) {
|
|
|
644
643
|
arguments: args,
|
|
645
644
|
...(meta ? { _meta: meta } : {}),
|
|
646
645
|
},
|
|
647
|
-
}, context?.abortSignal, MAX_REMOTE_MCP_CALL_RESPONSE_BYTES);
|
|
646
|
+
}, requestFetch, context?.abortSignal, MAX_REMOTE_MCP_CALL_RESPONSE_BYTES);
|
|
648
647
|
const result = getJsonRpcResult(payload, requestId);
|
|
649
648
|
const resultSnapshot = snapshotBoundedJsonValue(result);
|
|
650
649
|
if (!resultSnapshot.success) {
|
|
@@ -667,3 +666,46 @@ export function createRemoteMCPToolSource(config) {
|
|
|
667
666
|
},
|
|
668
667
|
};
|
|
669
668
|
}
|
|
669
|
+
/** Create a remote MCP source with the framework's guarded outbound transport. */
|
|
670
|
+
export function createRemoteMCPToolSource(config) {
|
|
671
|
+
return createRemoteMCPToolSourceWithFetch(config, guardedOutboundFetch);
|
|
672
|
+
}
|
|
673
|
+
function normalizeTrustedEndpoint(value) {
|
|
674
|
+
try {
|
|
675
|
+
const url = new URL(value);
|
|
676
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
677
|
+
return undefined;
|
|
678
|
+
if (url.username || url.password || url.search || url.hash)
|
|
679
|
+
return undefined;
|
|
680
|
+
return url.toString();
|
|
681
|
+
}
|
|
682
|
+
catch {
|
|
683
|
+
return undefined;
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* Create a remote MCP source factory with narrowly scoped host transport.
|
|
688
|
+
*
|
|
689
|
+
* Only static endpoint strings that exactly match a normalized deployment
|
|
690
|
+
* allowlist use the supplied transport. Invalid, unmatched, or resolver-based
|
|
691
|
+
* endpoints retain {@link createRemoteMCPToolSource}'s guarded outbound path.
|
|
692
|
+
*/
|
|
693
|
+
export function createRemoteMCPToolSourceFactoryWithTransport(options) {
|
|
694
|
+
const trustedEndpoints = new Set();
|
|
695
|
+
for (const value of options.trustedEndpoints) {
|
|
696
|
+
const endpoint = normalizeTrustedEndpoint(value);
|
|
697
|
+
if (!endpoint) {
|
|
698
|
+
throw new TypeError("Invalid trusted endpoint");
|
|
699
|
+
}
|
|
700
|
+
trustedEndpoints.add(endpoint);
|
|
701
|
+
}
|
|
702
|
+
return (config) => {
|
|
703
|
+
const endpoint = typeof config.endpoint === "string"
|
|
704
|
+
? normalizeTrustedEndpoint(config.endpoint)
|
|
705
|
+
: undefined;
|
|
706
|
+
if (!endpoint || !trustedEndpoints.has(endpoint)) {
|
|
707
|
+
return createRemoteMCPToolSource(config);
|
|
708
|
+
}
|
|
709
|
+
return createRemoteMCPToolSourceWithFetch({ ...config, endpoint }, options.requestFetch);
|
|
710
|
+
};
|
|
711
|
+
}
|
|
@@ -25,6 +25,10 @@ export type CacheOptions = {
|
|
|
25
25
|
importMap: ImportMapConfig;
|
|
26
26
|
/** React version to use for esm.sh URLs (defaults to DEFAULT_REACT_VERSION) */
|
|
27
27
|
reactVersion?: string;
|
|
28
|
+
/** Absolute request origin used to identify same-origin module-server URLs. */
|
|
29
|
+
moduleServerOrigin?: string;
|
|
30
|
+
/** Request-scoped dependency-pinning state used to isolate module-server URLs. */
|
|
31
|
+
dependencyPinningCacheKey?: string;
|
|
28
32
|
};
|
|
29
33
|
export type HttpCacheIdentityOptions = Pick<CacheOptions, "importMap" | "reactVersion">;
|
|
30
34
|
export interface HttpCacheIdentityMetadata extends HttpCacheIdentityOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-cache-helpers.d.ts","sourceRoot":"","sources":["../../../../src/src/transforms/esm/http-cache-helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"http-cache-helpers.d.ts","sourceRoot":"","sources":["../../../../src/src/transforms/esm/http-cache-helpers.ts"],"names":[],"mappings":"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"}
|