veryfront 0.1.128 → 0.1.129
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/router.d.ts +0 -5
- package/esm/cli/router.d.ts.map +1 -1
- package/esm/cli/router.js +30 -2
- package/esm/cli/shared/update-check.d.ts +4 -0
- package/esm/cli/shared/update-check.d.ts.map +1 -0
- package/esm/cli/shared/update-check.js +97 -0
- package/esm/deno.d.ts +5 -0
- package/esm/deno.js +13 -8
- package/esm/src/channels/control-plane.d.ts.map +1 -1
- package/esm/src/channels/control-plane.js +5 -5
- package/esm/src/channels/invoke.d.ts +1 -1
- package/esm/src/channels/invoke.d.ts.map +1 -1
- package/esm/src/channels/invoke.js +6 -6
- package/esm/src/chat/index.d.ts +12 -24
- package/esm/src/chat/index.d.ts.map +1 -1
- package/esm/src/chat/index.js +5 -25
- package/esm/src/config/env.d.ts.map +1 -1
- package/esm/src/config/env.js +18 -10
- package/esm/src/data/static-data-fetcher.d.ts +3 -0
- package/esm/src/data/static-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/static-data-fetcher.js +29 -25
- package/esm/src/data/static-paths-fetcher.d.ts.map +1 -1
- package/esm/src/data/static-paths-fetcher.js +3 -2
- package/esm/src/errors/logging.d.ts.map +1 -1
- package/esm/src/errors/logging.js +16 -7
- package/esm/src/errors/user-friendly/error-formatter.d.ts.map +1 -1
- package/esm/src/errors/user-friendly/error-formatter.js +9 -25
- package/esm/src/fs/index.d.ts +11 -12
- package/esm/src/fs/index.d.ts.map +1 -1
- package/esm/src/fs/index.js +11 -24
- package/esm/src/html/dev-scripts.d.ts.map +1 -1
- package/esm/src/html/dev-scripts.js +5 -8
- package/esm/src/html/html-escape.d.ts +1 -0
- package/esm/src/html/html-escape.d.ts.map +1 -1
- package/esm/src/html/html-escape.js +3 -0
- package/esm/src/html/html-injection.js +2 -2
- package/esm/src/html/html-shell-generator.d.ts +5 -2
- package/esm/src/html/html-shell-generator.d.ts.map +1 -1
- package/esm/src/html/html-shell-generator.js +41 -30
- package/esm/src/html/hydration-script-builder/dev-client-renderer.js +2 -2
- package/esm/src/html/hydration-script-builder/dev-component-manifest.js +2 -2
- package/esm/src/html/hydration-script-builder/dev-error-logger.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/dev-error-logger.js +2 -6
- package/esm/src/html/hydration-script-builder/dev-scripts.js +2 -2
- package/esm/src/html/hydration-script-builder/hydration-data-generator.d.ts +3 -1
- package/esm/src/html/hydration-script-builder/hydration-data-generator.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/hydration-data-generator.js +2 -2
- package/esm/src/html/hydration-script-builder/index.d.ts +1 -1
- package/esm/src/html/hydration-script-builder/index.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/index.js +1 -1
- package/esm/src/html/hydration-script-builder/prod-hydration.js +2 -2
- package/esm/src/html/hydration-script-builder/prod-scripts.d.ts +2 -0
- package/esm/src/html/hydration-script-builder/prod-scripts.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/prod-scripts.js +14 -14
- package/esm/src/html/schemas/html.schema.d.ts +2 -0
- package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
- package/esm/src/html/schemas/html.schema.js +2 -0
- package/esm/src/html/styles-builder/css-pregeneration.d.ts +17 -1
- package/esm/src/html/styles-builder/css-pregeneration.d.ts.map +1 -1
- package/esm/src/html/styles-builder/css-pregeneration.js +103 -1
- package/esm/src/html/styles-builder/dev-styles.js +2 -2
- package/esm/src/html/utils.d.ts +2 -0
- package/esm/src/html/utils.d.ts.map +1 -1
- package/esm/src/html/utils.js +49 -28
- package/esm/src/integrations/remote-tools.d.ts.map +1 -1
- package/esm/src/integrations/remote-tools.js +32 -39
- package/esm/src/internal-agents/ag-ui-sse.d.ts +0 -1
- package/esm/src/internal-agents/ag-ui-sse.d.ts.map +1 -1
- package/esm/src/internal-agents/ag-ui-sse.js +2 -16
- package/esm/src/internal-agents/control-plane-auth.d.ts.map +1 -1
- package/esm/src/internal-agents/control-plane-auth.js +5 -3
- package/esm/src/internal-agents/request-body.d.ts.map +1 -1
- package/esm/src/internal-agents/request-body.js +6 -3
- package/esm/src/internal-agents/session-manager.d.ts +1 -0
- package/esm/src/internal-agents/session-manager.d.ts.map +1 -1
- package/esm/src/internal-agents/session-manager.js +12 -18
- package/esm/src/issues/core.d.ts.map +1 -1
- package/esm/src/issues/core.js +24 -23
- package/esm/src/issues/schemas/issue.schema.d.ts.map +1 -1
- package/esm/src/issues/schemas/issue.schema.js +2 -1
- package/esm/src/jobs/runtime-env.d.ts.map +1 -1
- package/esm/src/jobs/runtime-env.js +21 -44
- package/esm/src/markdown/index.d.ts +1 -2
- package/esm/src/markdown/index.d.ts.map +1 -1
- package/esm/src/markdown/index.js +1 -6
- package/esm/src/mcp/server.d.ts +0 -1
- package/esm/src/mcp/server.d.ts.map +1 -1
- package/esm/src/mcp/server.js +40 -41
- package/esm/src/mdx/index.d.ts +3 -2
- package/esm/src/mdx/index.d.ts.map +1 -1
- package/esm/src/mdx/index.js +3 -5
- package/esm/src/middleware/builtin/logger.d.ts.map +1 -1
- package/esm/src/middleware/builtin/logger.js +31 -28
- package/esm/src/middleware/builtin/security/rate-limit.d.ts.map +1 -1
- package/esm/src/middleware/builtin/security/rate-limit.js +17 -12
- package/esm/src/middleware/builtin/timeout.d.ts.map +1 -1
- package/esm/src/middleware/builtin/timeout.js +17 -10
- package/esm/src/modules/import-map/default-import-map.d.ts.map +1 -1
- package/esm/src/modules/import-map/default-import-map.js +4 -3
- package/esm/src/oauth/handlers/callback-handler.d.ts +0 -5
- package/esm/src/oauth/handlers/callback-handler.d.ts.map +1 -1
- package/esm/src/oauth/handlers/callback-handler.js +9 -14
- package/esm/src/oauth/handlers/index.d.ts +1 -1
- package/esm/src/oauth/handlers/index.js +1 -1
- package/esm/src/oauth/handlers/init-handler.d.ts.map +1 -1
- package/esm/src/oauth/handlers/init-handler.js +32 -20
- package/esm/src/oauth/providers/index.d.ts +1 -1
- package/esm/src/oauth/providers/index.js +1 -1
- package/esm/src/oauth/schemas/index.d.ts +1 -1
- package/esm/src/oauth/schemas/index.js +1 -1
- package/esm/src/oauth/token-store/index.d.ts +1 -1
- package/esm/src/oauth/token-store/index.js +1 -1
- package/esm/src/oauth/token-store/memory.d.ts +1 -1
- package/esm/src/oauth/token-store/memory.d.ts.map +1 -1
- package/esm/src/oauth/token-store/memory.js +8 -8
- package/esm/src/observability/request-profiler.d.ts +31 -0
- package/esm/src/observability/request-profiler.d.ts.map +1 -0
- package/esm/src/observability/request-profiler.js +94 -0
- package/esm/src/observability/tracing/otlp-setup.d.ts.map +1 -1
- package/esm/src/observability/tracing/otlp-setup.js +16 -21
- package/esm/src/prompt/factory.d.ts.map +1 -1
- package/esm/src/prompt/factory.js +10 -12
- package/esm/src/prompt/registry.d.ts.map +1 -1
- package/esm/src/prompt/registry.js +12 -10
- package/esm/src/prompt/schemas/prompt.schema.d.ts.map +1 -1
- package/esm/src/prompt/schemas/prompt.schema.js +0 -2
- package/esm/src/prompt/types.d.ts +1 -1
- package/esm/src/prompt/types.d.ts.map +1 -1
- package/esm/src/provider/local/ai-sdk-adapter.d.ts.map +1 -1
- package/esm/src/provider/local/ai-sdk-adapter.js +3 -8
- package/esm/src/provider/local/env.d.ts +4 -6
- package/esm/src/provider/local/env.d.ts.map +1 -1
- package/esm/src/provider/local/env.js +14 -1
- package/esm/src/provider/local/local-engine.d.ts.map +1 -1
- package/esm/src/provider/local/local-engine.js +2 -7
- package/esm/src/provider/model-registry.d.ts.map +1 -1
- package/esm/src/provider/model-registry.js +2 -7
- package/esm/src/provider/veryfront-cloud/provider.d.ts.map +1 -1
- package/esm/src/provider/veryfront-cloud/provider.js +1 -7
- package/esm/src/provider/veryfront-cloud/shared.d.ts.map +1 -1
- package/esm/src/provider/veryfront-cloud/shared.js +9 -11
- package/esm/src/proxy/handler.d.ts.map +1 -1
- package/esm/src/proxy/handler.js +56 -57
- package/esm/src/react/compat/hooks-adapter.d.ts +1 -7
- package/esm/src/react/compat/hooks-adapter.d.ts.map +1 -1
- package/esm/src/react/compat/hooks-adapter.js +35 -40
- package/esm/src/react/components/Head.d.ts +1 -26
- package/esm/src/react/components/Head.d.ts.map +1 -1
- package/esm/src/react/components/Head.js +1 -172
- package/esm/src/react/context/index.d.ts +2 -46
- package/esm/src/react/context/index.d.ts.map +1 -1
- package/esm/src/react/context/index.js +1 -44
- package/esm/src/react/head-collector.d.ts +1 -10
- package/esm/src/react/head-collector.d.ts.map +1 -1
- package/esm/src/react/head-collector.js +4 -0
- package/esm/src/react/router/index.d.ts +2 -45
- package/esm/src/react/router/index.d.ts.map +1 -1
- package/esm/src/react/router/index.js +1 -49
- package/esm/src/react/runtime/core.d.ts +49 -0
- package/esm/src/react/runtime/core.d.ts.map +1 -0
- package/esm/src/react/runtime/core.js +200 -0
- package/esm/src/rendering/orchestrator/html.d.ts +2 -0
- package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/html.js +69 -12
- package/esm/src/rendering/orchestrator/ssr-orchestrator.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/ssr-orchestrator.js +4 -0
- package/esm/src/rendering/orchestrator/types.d.ts +4 -0
- package/esm/src/rendering/orchestrator/types.d.ts.map +1 -1
- package/esm/src/repositories/types.d.ts.map +1 -1
- package/esm/src/resource/factory.d.ts.map +1 -1
- package/esm/src/resource/factory.js +12 -9
- package/esm/src/resource/registry.d.ts +3 -3
- package/esm/src/resource/registry.d.ts.map +1 -1
- package/esm/src/resource/registry.js +7 -7
- package/esm/src/schemas/common.d.ts.map +1 -1
- package/esm/src/schemas/common.js +7 -4
- package/esm/src/security/http/config.d.ts +0 -1
- package/esm/src/security/http/config.d.ts.map +1 -1
- package/esm/src/security/http/config.js +3 -16
- package/esm/src/security/http/response/security-handler.d.ts +1 -0
- package/esm/src/security/http/response/security-handler.d.ts.map +1 -1
- package/esm/src/security/http/response/security-handler.js +17 -12
- package/esm/src/security/index.d.ts +4 -2
- package/esm/src/security/index.d.ts.map +1 -1
- package/esm/src/security/index.js +3 -1
- package/esm/src/server/handlers/dev/styles-css.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/styles-css.handler.js +8 -7
- package/esm/src/server/handlers/monitoring/metrics.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/monitoring/metrics.handler.js +3 -1
- 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 +18 -15
- package/esm/src/server/handlers/request/prod-hydration-module.handler.d.ts +8 -0
- package/esm/src/server/handlers/request/prod-hydration-module.handler.d.ts.map +1 -0
- package/esm/src/server/handlers/request/prod-hydration-module.handler.js +41 -0
- package/esm/src/server/handlers/request/ssr/ssr.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/ssr/ssr.handler.js +3 -0
- package/esm/src/server/production-server.d.ts.map +1 -1
- package/esm/src/server/production-server.js +65 -0
- package/esm/src/server/runtime-handler/handler-context-builder.d.ts +1 -1
- package/esm/src/server/runtime-handler/handler-context-builder.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/index.d.ts +1 -1
- package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/index.js +36 -11
- package/esm/src/server/runtime-handler/request-utils.d.ts +7 -0
- package/esm/src/server/runtime-handler/request-utils.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/request-utils.js +10 -0
- package/esm/src/server/services/rendering/ssr.service.d.ts +1 -0
- package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
- package/esm/src/server/services/rendering/ssr.service.js +12 -5
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
- package/esm/src/skill/allowed-tools.d.ts +3 -8
- package/esm/src/skill/allowed-tools.d.ts.map +1 -1
- package/esm/src/skill/executor.js +2 -2
- package/esm/src/skill/parser.d.ts.map +1 -1
- package/esm/src/skill/parser.js +12 -12
- package/esm/src/skill/path-safety.js +1 -1
- package/esm/src/skill/tools.d.ts.map +1 -1
- package/esm/src/skill/tools.js +18 -11
- package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
- package/esm/src/studio/bridge/bridge-bundle.generated.js +1 -1
- package/esm/src/task/discovery.d.ts.map +1 -1
- package/esm/src/task/discovery.js +73 -95
- package/esm/src/tool/executor.d.ts.map +1 -1
- package/esm/src/tool/executor.js +8 -7
- package/esm/src/tool/factory.d.ts.map +1 -1
- package/esm/src/tool/factory.js +13 -16
- package/esm/src/transforms/esm/package-registry.d.ts +4 -0
- package/esm/src/transforms/esm/package-registry.d.ts.map +1 -1
- package/esm/src/transforms/esm/package-registry.js +34 -17
- package/esm/src/transforms/import-rewriter/strategies/veryfront-strategy.d.ts.map +1 -1
- package/esm/src/transforms/import-rewriter/strategies/veryfront-strategy.js +2 -1
- package/esm/src/transforms/mdx/esm-module-loader/cache-format.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/cache-format.js +26 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/index.d.ts +1 -1
- 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 +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.d.ts +1 -0
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.d.ts.map +1 -1
- package/esm/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.js +3 -0
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.d.ts +1 -1
- package/esm/src/transforms/pipeline/stages/ssr-vf-modules/index.js +1 -1
- package/esm/src/transforms/veryfront-module-urls.d.ts.map +1 -1
- package/esm/src/transforms/veryfront-module-urls.js +7 -3
- package/esm/src/types/entities/getEntityInfo.d.ts.map +1 -1
- package/esm/src/types/entities/getEntityInfo.js +79 -127
- package/esm/src/utils/path-utils.d.ts +1 -1
- package/esm/src/utils/path-utils.d.ts.map +1 -1
- package/esm/src/utils/path-utils.js +16 -7
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/utils/version.d.ts.map +1 -1
- package/esm/src/utils/version.js +0 -1
- package/esm/src/workflow/worker/dynamic-job-entrypoint.d.ts.map +1 -1
- package/esm/src/workflow/worker/dynamic-job-entrypoint.js +5 -72
- package/esm/src/workflow/worker/job-entrypoint.d.ts.map +1 -1
- package/esm/src/workflow/worker/job-entrypoint.js +5 -72
- package/esm/src/workflow/worker/shared.d.ts +18 -0
- package/esm/src/workflow/worker/shared.d.ts.map +1 -0
- package/esm/src/workflow/worker/shared.js +77 -0
- package/package.json +1 -1
- package/src/cli/router.ts +41 -2
- package/src/cli/shared/update-check.ts +110 -0
- package/src/deno.js +13 -8
- package/src/src/channels/control-plane.ts +6 -10
- package/src/src/channels/invoke.ts +7 -7
- package/src/src/chat/index.ts +96 -132
- package/src/src/config/env.ts +24 -11
- package/src/src/data/static-data-fetcher.ts +59 -34
- package/src/src/data/static-paths-fetcher.ts +4 -2
- package/src/src/errors/logging.ts +21 -7
- package/src/src/errors/user-friendly/error-formatter.ts +14 -29
- package/src/src/fs/index.ts +21 -30
- package/src/src/html/dev-scripts.ts +5 -9
- package/src/src/html/html-escape.ts +4 -0
- package/src/src/html/html-injection.ts +2 -2
- package/src/src/html/html-shell-generator.ts +60 -26
- package/src/src/html/hydration-script-builder/dev-client-renderer.ts +2 -2
- package/src/src/html/hydration-script-builder/dev-component-manifest.ts +2 -2
- package/src/src/html/hydration-script-builder/dev-error-logger.ts +2 -8
- package/src/src/html/hydration-script-builder/dev-scripts.ts +2 -2
- package/src/src/html/hydration-script-builder/hydration-data-generator.ts +2 -1
- package/src/src/html/hydration-script-builder/index.ts +5 -1
- package/src/src/html/hydration-script-builder/prod-hydration.ts +2 -2
- package/src/src/html/hydration-script-builder/prod-scripts.ts +16 -15
- package/src/src/html/schemas/html.schema.ts +2 -0
- package/src/src/html/styles-builder/css-pregeneration.ts +133 -1
- package/src/src/html/styles-builder/dev-styles.ts +2 -2
- package/src/src/html/utils.ts +62 -29
- package/src/src/integrations/remote-tools.ts +39 -37
- package/src/src/internal-agents/ag-ui-sse.ts +2 -17
- package/src/src/internal-agents/control-plane-auth.ts +8 -6
- package/src/src/internal-agents/request-body.ts +7 -5
- package/src/src/internal-agents/session-manager.ts +16 -20
- package/src/src/issues/core.ts +24 -27
- package/src/src/issues/schemas/issue.schema.ts +3 -1
- package/src/src/jobs/runtime-env.ts +24 -50
- package/src/src/markdown/index.ts +5 -8
- package/src/src/mcp/server.ts +50 -53
- package/src/src/mdx/index.ts +7 -8
- package/src/src/middleware/builtin/logger.ts +44 -29
- package/src/src/middleware/builtin/security/rate-limit.ts +20 -11
- package/src/src/middleware/builtin/timeout.ts +22 -13
- package/src/src/modules/import-map/default-import-map.ts +4 -3
- package/src/src/oauth/handlers/callback-handler.ts +9 -16
- package/src/src/oauth/handlers/index.ts +1 -1
- package/src/src/oauth/handlers/init-handler.ts +56 -27
- package/src/src/oauth/providers/index.ts +1 -1
- package/src/src/oauth/schemas/index.ts +1 -1
- package/src/src/oauth/token-store/index.ts +1 -1
- package/src/src/oauth/token-store/memory.ts +8 -8
- package/src/src/observability/request-profiler.ts +140 -0
- package/src/src/observability/tracing/otlp-setup.ts +16 -22
- package/src/src/prompt/factory.ts +16 -14
- package/src/src/prompt/registry.ts +14 -13
- package/src/src/prompt/schemas/prompt.schema.ts +0 -4
- package/src/src/prompt/types.ts +1 -2
- package/src/src/provider/local/ai-sdk-adapter.ts +3 -10
- package/src/src/provider/local/env.ts +22 -2
- package/src/src/provider/local/local-engine.ts +2 -9
- package/src/src/provider/model-registry.ts +2 -9
- package/src/src/provider/veryfront-cloud/provider.ts +1 -8
- package/src/src/provider/veryfront-cloud/shared.ts +12 -15
- package/src/src/proxy/handler.ts +90 -74
- package/src/src/react/compat/hooks-adapter.ts +43 -44
- package/src/src/react/components/Head.tsx +1 -181
- package/src/src/react/context/index.tsx +2 -83
- package/src/src/react/head-collector.ts +9 -0
- package/src/src/react/router/index.tsx +2 -100
- package/src/src/react/runtime/core.ts +303 -0
- package/src/src/rendering/orchestrator/html.ts +122 -18
- package/src/src/rendering/orchestrator/ssr-orchestrator.ts +8 -0
- package/src/src/rendering/orchestrator/types.ts +4 -0
- package/src/src/repositories/types.ts +0 -4
- package/src/src/resource/factory.ts +15 -11
- package/src/src/resource/registry.ts +7 -7
- package/src/src/schemas/common.ts +8 -5
- package/src/src/security/http/config.ts +3 -19
- package/src/src/security/http/response/security-handler.ts +22 -13
- package/src/src/security/index.ts +4 -7
- package/src/src/server/handlers/dev/styles-css.handler.ts +32 -14
- package/src/src/server/handlers/monitoring/metrics.handler.ts +3 -1
- package/src/src/server/handlers/request/module/module-server-handler.ts +24 -17
- package/src/src/server/handlers/request/prod-hydration-module.handler.ts +61 -0
- package/src/src/server/handlers/request/ssr/ssr.handler.ts +3 -0
- package/src/src/server/production-server.ts +84 -0
- package/src/src/server/runtime-handler/handler-context-builder.ts +1 -1
- package/src/src/server/runtime-handler/index.ts +44 -13
- package/src/src/server/runtime-handler/request-utils.ts +11 -0
- package/src/src/server/services/rendering/ssr.service.ts +31 -18
- package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +1 -1
- package/src/src/skill/allowed-tools.ts +1 -8
- package/src/src/skill/executor.ts +2 -2
- package/src/src/skill/parser.ts +13 -20
- package/src/src/skill/path-safety.ts +1 -1
- package/src/src/skill/tools.ts +27 -20
- package/src/src/studio/bridge/bridge-bundle.generated.ts +1 -1
- package/src/src/task/discovery.ts +97 -97
- package/src/src/tool/executor.ts +10 -8
- package/src/src/tool/factory.ts +21 -22
- package/src/src/tool/types.ts +0 -17
- package/src/src/transforms/esm/package-registry.ts +52 -20
- package/src/src/transforms/import-rewriter/strategies/veryfront-strategy.ts +2 -1
- package/src/src/transforms/mdx/esm-module-loader/cache-format.ts +34 -1
- package/src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts +1 -1
- package/src/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.ts +4 -0
- package/src/src/transforms/pipeline/stages/ssr-vf-modules/index.ts +1 -1
- package/src/src/transforms/veryfront-module-urls.ts +6 -2
- package/src/src/types/entities/getEntityInfo.ts +131 -152
- package/src/src/utils/path-utils.ts +16 -7
- package/src/src/utils/version-constant.ts +1 -1
- package/src/src/utils/version.ts +0 -1
- package/src/src/workflow/worker/dynamic-job-entrypoint.ts +18 -84
- package/src/src/workflow/worker/job-entrypoint.ts +18 -85
- package/src/src/workflow/worker/shared.ts +127 -0
- package/esm/src/prompt/schemas/index.d.ts +0 -7
- package/esm/src/prompt/schemas/index.d.ts.map +0 -1
- package/esm/src/prompt/schemas/index.js +0 -6
- package/esm/src/security/http/handlers-index.d.ts +0 -5
- package/esm/src/security/http/handlers-index.d.ts.map +0 -1
- package/esm/src/security/http/handlers-index.js +0 -3
- package/src/src/prompt/schemas/index.ts +0 -7
- package/src/src/security/http/handlers-index.ts +0 -4
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* Abstracts Deno/Node env access so all local-AI checks go through
|
|
5
|
-
* a single function — no duplicated `globalThis.Deno?.env` patterns.
|
|
6
|
-
*
|
|
7
|
-
* @module provider/local
|
|
2
|
+
* Check whether local AI is explicitly disabled via environment variable.
|
|
3
|
+
* Works in Deno, Node, and compiled binaries.
|
|
8
4
|
*/
|
|
9
5
|
export declare function isLocalAIDisabled(): boolean;
|
|
6
|
+
export declare function createLocalAIDisabledError(): Error;
|
|
7
|
+
export declare function throwIfLocalAIDisabled(): void;
|
|
10
8
|
//# sourceMappingURL=env.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/env.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAe3C;AAED,wBAAgB,0BAA0B,IAAI,KAAK,CAOlD;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C"}
|
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module provider/local
|
|
8
8
|
*/
|
|
9
|
+
import * as dntShim from "../../../_dnt.shims.js";
|
|
10
|
+
import { createError, toError } from "../../errors/veryfront-error.js";
|
|
11
|
+
const LOCAL_AI_DISABLED_MESSAGE = "Local AI disabled via VERYFRONT_DISABLE_LOCAL_AI environment variable.";
|
|
9
12
|
/**
|
|
10
13
|
* Check whether local AI is explicitly disabled via environment variable.
|
|
11
14
|
* Works in Deno, Node, and compiled binaries.
|
|
12
15
|
*/
|
|
13
|
-
import * as dntShim from "../../../_dnt.shims.js";
|
|
14
16
|
export function isLocalAIDisabled() {
|
|
15
17
|
const denoVal = dntShim.dntGlobalThis.Deno;
|
|
16
18
|
const denoEnvVal = denoVal?.env?.get?.("VERYFRONT_DISABLE_LOCAL_AI");
|
|
@@ -22,3 +24,14 @@ export function isLocalAIDisabled() {
|
|
|
22
24
|
}
|
|
23
25
|
return false;
|
|
24
26
|
}
|
|
27
|
+
export function createLocalAIDisabledError() {
|
|
28
|
+
return toError(createError({
|
|
29
|
+
type: "no_ai_available",
|
|
30
|
+
message: LOCAL_AI_DISABLED_MESSAGE,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
export function throwIfLocalAIDisabled() {
|
|
34
|
+
if (isLocalAIDisabled()) {
|
|
35
|
+
throw createLocalAIDisabledError();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-engine.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/local-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,eAAe,CAAC;IACrB,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KACvC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,YAAY,EAAE,KACZ,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C,KACE,OAAO,CAAC;CACd;AAyBD;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"local-engine.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/local-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kCAAkC;AAClC,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,eAAe,CAAC;IACrB,QAAQ,EAAE,CACR,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KACvC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,YAAY,EAAE,KACZ,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE;QACP,WAAW,EAAE,OAAO,CAAC;QACrB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C,KACE,OAAO,CAAC;CACd;AAyBD;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA8BnE;AAuED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;AAED;;;;GAIG;AACH,wBAAuB,cAAc,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAkEzC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGtD"}
|
|
@@ -14,7 +14,7 @@ import { serverLogger } from "../../utils/index.js";
|
|
|
14
14
|
import { createError, toError } from "../../errors/veryfront-error.js";
|
|
15
15
|
import { importTransformers } from "../../platform/compat/opaque-deps.js";
|
|
16
16
|
import { DEFAULT_LOCAL_MODEL, resolveLocalModel } from "./model-catalog.js";
|
|
17
|
-
import {
|
|
17
|
+
import { throwIfLocalAIDisabled } from "./env.js";
|
|
18
18
|
const logger = serverLogger.component("local-llm");
|
|
19
19
|
/** Default maximum new tokens for local model generation */
|
|
20
20
|
const DEFAULT_MAX_NEW_TOKENS = 512;
|
|
@@ -30,12 +30,7 @@ let transformersModule = null;
|
|
|
30
30
|
export async function getTransformers() {
|
|
31
31
|
if (transformersModule)
|
|
32
32
|
return transformersModule;
|
|
33
|
-
|
|
34
|
-
throw toError(createError({
|
|
35
|
-
type: "no_ai_available",
|
|
36
|
-
message: "Local AI disabled via VERYFRONT_DISABLE_LOCAL_AI environment variable.",
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
33
|
+
throwIfLocalAIDisabled();
|
|
39
34
|
logger.info("Loading @huggingface/transformers...");
|
|
40
35
|
let mod;
|
|
41
36
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/src/provider/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAwBxC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC;AAOtE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAoID;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CASvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/src/provider/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAwBxC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC;AAOtE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAoID;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CASvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CA6D/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAGtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
|
|
@@ -21,7 +21,7 @@ import { ProjectScopedRegistryManager } from "../ai/registry-manager.js";
|
|
|
21
21
|
import { serverLogger } from "../utils/index.js";
|
|
22
22
|
import { DEFAULT_LOCAL_MODEL } from "./local/model-catalog.js";
|
|
23
23
|
import { createLocalModel } from "./local/ai-sdk-adapter.js";
|
|
24
|
-
import {
|
|
24
|
+
import { throwIfLocalAIDisabled } from "./local/env.js";
|
|
25
25
|
import { verifyLocalRuntime } from "./local/local-engine.js";
|
|
26
26
|
import { getDefaultVeryfrontCloudModel, isVeryfrontCloudEnabled, } from "../platform/cloud/resolver.js";
|
|
27
27
|
import { createVeryfrontCloudModel } from "./veryfront-cloud/provider.js";
|
|
@@ -214,12 +214,7 @@ export function resolveModel(modelString) {
|
|
|
214
214
|
providerName !== "local" &&
|
|
215
215
|
manager.has("local")) {
|
|
216
216
|
// Check if local AI is explicitly disabled (e.g., for testing)
|
|
217
|
-
|
|
218
|
-
throw toError(createError({
|
|
219
|
-
type: "no_ai_available",
|
|
220
|
-
message: "Local AI disabled via VERYFRONT_DISABLE_LOCAL_AI environment variable.",
|
|
221
|
-
}));
|
|
222
|
-
}
|
|
217
|
+
throwIfLocalAIDisabled();
|
|
223
218
|
localLogger.info(`⚡ "${providerName}" unavailable (missing credentials or configuration). ` +
|
|
224
219
|
"Falling back to local model.");
|
|
225
220
|
const localFactory = manager.get("local");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAYxC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAYxC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CA0CxE"}
|
|
@@ -16,13 +16,6 @@ export function createVeryfrontCloudModel(modelId) {
|
|
|
16
16
|
name: "veryfront-cloud",
|
|
17
17
|
fetch,
|
|
18
18
|
})(upstreamModelId);
|
|
19
|
-
case "openai":
|
|
20
|
-
return createOpenAI({
|
|
21
|
-
apiKey: apiToken,
|
|
22
|
-
baseURL,
|
|
23
|
-
name: "veryfront-cloud",
|
|
24
|
-
fetch,
|
|
25
|
-
})(upstreamModelId);
|
|
26
19
|
case "google":
|
|
27
20
|
return createGoogleGenerativeAI({
|
|
28
21
|
apiKey: apiToken,
|
|
@@ -30,6 +23,7 @@ export function createVeryfrontCloudModel(modelId) {
|
|
|
30
23
|
name: "veryfront-cloud",
|
|
31
24
|
fetch,
|
|
32
25
|
})(upstreamModelId);
|
|
26
|
+
case "openai":
|
|
33
27
|
case "moonshotai":
|
|
34
28
|
return createOpenAI({
|
|
35
29
|
apiKey: apiToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAIlD,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,CAAC;AAEjB,UAAU,2BAA2B;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/veryfront-cloud/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAIlD,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,YAAY,CAAC;AAEjB,UAAU,2BAA2B;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AA+BD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GAAG,WAAW,GAC7B,2BAA2B,CA+B7B;AAED,wBAAgB,8BAA8B,IAAI;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAmBA;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAER;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,OAAO,CAAC,KAAK,CAWhF"}
|
|
@@ -17,24 +17,23 @@ const GATEWAY_PATHS = {
|
|
|
17
17
|
function joinUrl(base, path) {
|
|
18
18
|
return `${base.replace(/\/+$/, "")}/${path.replace(/^\/+/, "")}`;
|
|
19
19
|
}
|
|
20
|
+
function createInvalidModelIdError(modelId) {
|
|
21
|
+
return toError(createError({
|
|
22
|
+
type: "config",
|
|
23
|
+
message: `Invalid veryfront-cloud model string: "${modelId}". Expected ` +
|
|
24
|
+
`"veryfront-cloud/provider/model".`,
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
20
27
|
export function parseVeryfrontCloudModelId(modelId, kind) {
|
|
21
28
|
const slashIndex = modelId.indexOf("/");
|
|
22
29
|
if (slashIndex === -1) {
|
|
23
|
-
throw
|
|
24
|
-
type: "config",
|
|
25
|
-
message: `Invalid veryfront-cloud model string: "${modelId}". Expected ` +
|
|
26
|
-
`"veryfront-cloud/provider/model".`,
|
|
27
|
-
}));
|
|
30
|
+
throw createInvalidModelIdError(modelId);
|
|
28
31
|
}
|
|
29
32
|
const rawProvider = modelId.slice(0, slashIndex);
|
|
30
33
|
const normalizedProvider = PROVIDER_ALIASES[rawProvider];
|
|
31
34
|
const upstreamModelId = modelId.slice(slashIndex + 1);
|
|
32
35
|
if (!normalizedProvider || !upstreamModelId) {
|
|
33
|
-
throw
|
|
34
|
-
type: "config",
|
|
35
|
-
message: `Invalid veryfront-cloud model string: "${modelId}". Expected ` +
|
|
36
|
-
`"veryfront-cloud/provider/model".`,
|
|
37
|
-
}));
|
|
36
|
+
throw createInvalidModelIdError(modelId);
|
|
38
37
|
}
|
|
39
38
|
if (kind === "embedding" && normalizedProvider !== "openai" &&
|
|
40
39
|
normalizedProvider !== "google") {
|
|
@@ -82,7 +81,6 @@ export function createVeryfrontCloudFetch(apiToken) {
|
|
|
82
81
|
const headers = new dntShim.Headers(request.headers);
|
|
83
82
|
headers.delete("x-api-key");
|
|
84
83
|
headers.delete("x-goog-api-key");
|
|
85
|
-
headers.delete("Authorization");
|
|
86
84
|
headers.set("Authorization", `Bearer ${apiToken}`);
|
|
87
85
|
return dntShim.fetch(new dntShim.Request(request, { headers }));
|
|
88
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,eAAO,MAAM,sBAAsB,0MAYzB,CAAC;AAmIX,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAwFD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kCAAkC,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQnD,eAAO,MAAM,sBAAsB,0MAYzB,CAAC;AAmIX,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC7D,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC9E;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAwFD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB;0BA2Q1B,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,YAAY,CAAC;0BAwOvC,OAAO,CAAC,OAAO,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;;;;;;;0BAxbrD,MAAM,EAAE;;EAodpC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEjE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAwB7F"}
|
package/esm/src/proxy/handler.js
CHANGED
|
@@ -117,7 +117,7 @@ function extractUserToken(cookieHeader) {
|
|
|
117
117
|
const match = cookieHeader.match(/(?:^|;\s*)authToken=([^;]+)/);
|
|
118
118
|
return match?.[1] ? decodeURIComponent(match[1]) : undefined;
|
|
119
119
|
}
|
|
120
|
-
function
|
|
120
|
+
function parseStatusFromError(error) {
|
|
121
121
|
const message = error instanceof Error ? error.message : String(error);
|
|
122
122
|
const match = message.match(/failed: (\d+)/);
|
|
123
123
|
return match ? Number(match[1]) : null;
|
|
@@ -262,6 +262,47 @@ export function createProxyHandler(options) {
|
|
|
262
262
|
}
|
|
263
263
|
return `https://veryfront.com/sign-in?from=${encodeURIComponent(returnPath)}`;
|
|
264
264
|
}
|
|
265
|
+
function makePreviewProjectNotFoundContext(base, token) {
|
|
266
|
+
return makeErrorContext(base, 404, "Preview project not found", token, undefined, "project-not-found");
|
|
267
|
+
}
|
|
268
|
+
async function resolveRequestToken(req, scope, host, projectSlug, options) {
|
|
269
|
+
const userToken = extractUserToken(req.headers.get("cookie") ?? "");
|
|
270
|
+
const useSignedInternalControlPlaneToken = options.allowSignedInternalControlPlaneToken &&
|
|
271
|
+
isSignedInternalControlPlaneRequest(req);
|
|
272
|
+
let token;
|
|
273
|
+
let tokenFetchError;
|
|
274
|
+
if (useSignedInternalControlPlaneToken) {
|
|
275
|
+
token = req.headers.get("x-token") ?? undefined;
|
|
276
|
+
logger?.debug("Using signed control-plane token for internal request", {
|
|
277
|
+
pathname: new URL(req.url).pathname,
|
|
278
|
+
scope,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
else if (scope === "preview" && userToken) {
|
|
282
|
+
token = userToken;
|
|
283
|
+
logger?.debug("Using user auth token for preview");
|
|
284
|
+
}
|
|
285
|
+
if (!token && config.apiClientId && config.apiClientSecret) {
|
|
286
|
+
const customDomain = projectSlug ? undefined : host;
|
|
287
|
+
if (projectSlug || customDomain) {
|
|
288
|
+
try {
|
|
289
|
+
token = await tokenManager.getToken(scope, projectSlug, customDomain);
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
tokenFetchError = error;
|
|
293
|
+
logger?.error(options.tokenFetchErrorMessage, error, {
|
|
294
|
+
projectSlug,
|
|
295
|
+
customDomain,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (!token && config.apiToken) {
|
|
301
|
+
token = config.apiToken;
|
|
302
|
+
logger?.debug("Using static API token fallback");
|
|
303
|
+
}
|
|
304
|
+
return { token, userToken, tokenFetchError };
|
|
305
|
+
}
|
|
265
306
|
async function checkProtectedAccess(req, matchingEnv, userToken, users, logContext) {
|
|
266
307
|
if (!matchingEnv?.protected)
|
|
267
308
|
return null;
|
|
@@ -321,12 +362,13 @@ export function createProxyHandler(options) {
|
|
|
321
362
|
const host = rawHost.replace(/:\d+$/, "");
|
|
322
363
|
const parsedDomain = parseProjectDomain(host);
|
|
323
364
|
const scope = getScope(parsedDomain.environment);
|
|
365
|
+
const base = { scope, host, parsedDomain };
|
|
324
366
|
let projectSlug = parsedDomain.slug ?? undefined;
|
|
325
367
|
let projectId;
|
|
326
368
|
let releaseId;
|
|
327
369
|
let environmentId;
|
|
328
370
|
const isCustomDomain = !projectSlug && !parsedDomain.isVeryfrontDomain;
|
|
329
|
-
if (!projectSlug && parsedDomain.isVeryfrontDomain
|
|
371
|
+
if (!projectSlug && parsedDomain.isVeryfrontDomain) {
|
|
330
372
|
return {
|
|
331
373
|
token: undefined,
|
|
332
374
|
projectSlug: undefined,
|
|
@@ -348,48 +390,22 @@ export function createProxyHandler(options) {
|
|
|
348
390
|
isLocalProject,
|
|
349
391
|
isCustomDomain,
|
|
350
392
|
});
|
|
351
|
-
|
|
352
|
-
const userToken = extractUserToken(cookieHeader);
|
|
353
|
-
const signedInternalControlPlaneRequest = isSignedInternalControlPlaneRequest(req);
|
|
393
|
+
let userToken;
|
|
354
394
|
let token;
|
|
355
395
|
let tokenFetchError;
|
|
356
396
|
if (isLocalProject) {
|
|
357
397
|
logger?.debug("Local project, skipping token fetch", { localPath });
|
|
358
398
|
}
|
|
359
399
|
else {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
scope,
|
|
365
|
-
});
|
|
366
|
-
}
|
|
367
|
-
else if (scope === "preview" && userToken) {
|
|
368
|
-
token = userToken;
|
|
369
|
-
logger?.debug("Using user auth token for preview");
|
|
370
|
-
}
|
|
371
|
-
if (!token && config.apiClientId && config.apiClientSecret) {
|
|
372
|
-
const customDomain = projectSlug ? undefined : host;
|
|
373
|
-
if (projectSlug || customDomain) {
|
|
374
|
-
try {
|
|
375
|
-
token = await tokenManager.getToken(scope, projectSlug, customDomain);
|
|
376
|
-
}
|
|
377
|
-
catch (error) {
|
|
378
|
-
tokenFetchError = error;
|
|
379
|
-
logger?.error("Token fetch failed", error, { projectSlug, customDomain });
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
if (!token && config.apiToken) {
|
|
384
|
-
token = config.apiToken;
|
|
385
|
-
logger?.debug("Using static API token fallback");
|
|
386
|
-
}
|
|
387
|
-
const base = { scope, host, parsedDomain };
|
|
400
|
+
({ token, userToken, tokenFetchError } = await resolveRequestToken(req, scope, host, projectSlug, {
|
|
401
|
+
allowSignedInternalControlPlaneToken: true,
|
|
402
|
+
tokenFetchErrorMessage: "Token fetch failed",
|
|
403
|
+
}));
|
|
388
404
|
if (projectSlug && scope === "preview" && !token) {
|
|
389
|
-
const status =
|
|
405
|
+
const status = parseStatusFromError(tokenFetchError);
|
|
390
406
|
if (status === 404) {
|
|
391
407
|
logger?.info("Preview project not found", { projectSlug, host });
|
|
392
|
-
return
|
|
408
|
+
return makePreviewProjectNotFoundContext(base);
|
|
393
409
|
}
|
|
394
410
|
logger?.warn("Preview request has no usable token", {
|
|
395
411
|
projectSlug,
|
|
@@ -453,7 +469,7 @@ export function createProxyHandler(options) {
|
|
|
453
469
|
}
|
|
454
470
|
if (!resolved.projectId) {
|
|
455
471
|
logger?.info("Preview project not found after lookup", { projectSlug, host });
|
|
456
|
-
return
|
|
472
|
+
return makePreviewProjectNotFoundContext(base, token);
|
|
457
473
|
}
|
|
458
474
|
projectId = resolved.projectId;
|
|
459
475
|
environmentId = resolved.environmentId;
|
|
@@ -496,27 +512,10 @@ export function createProxyHandler(options) {
|
|
|
496
512
|
const parsedDomain = parseProjectDomain(host);
|
|
497
513
|
const scope = getScope(parsedDomain.environment);
|
|
498
514
|
const projectSlug = parsedDomain.slug ?? undefined;
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
return userToken;
|
|
504
|
-
}
|
|
505
|
-
if (config.apiClientId && config.apiClientSecret) {
|
|
506
|
-
const customDomain = projectSlug ? undefined : host;
|
|
507
|
-
if (projectSlug || customDomain) {
|
|
508
|
-
try {
|
|
509
|
-
return await tokenManager.getToken(scope, projectSlug, customDomain);
|
|
510
|
-
}
|
|
511
|
-
catch (error) {
|
|
512
|
-
logger?.error("Token fetch failed for API", error, {
|
|
513
|
-
projectSlug,
|
|
514
|
-
customDomain,
|
|
515
|
-
});
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
return config.apiToken;
|
|
515
|
+
const { token } = await resolveRequestToken(req, scope, host, projectSlug, {
|
|
516
|
+
tokenFetchErrorMessage: "Token fetch failed for API",
|
|
517
|
+
});
|
|
518
|
+
return token;
|
|
520
519
|
}
|
|
521
520
|
async function getStats() {
|
|
522
521
|
return tokenManager.getStats();
|
|
@@ -36,11 +36,5 @@ export declare function useCompatHooks(): CompatHooks;
|
|
|
36
36
|
export declare function CompatHooksProvider({ children, }: {
|
|
37
37
|
children: React.ReactNode;
|
|
38
38
|
}): React.ReactElement;
|
|
39
|
-
export declare const compatHooks:
|
|
40
|
-
readonly useFormStatus: typeof useFormStatusCompat;
|
|
41
|
-
readonly useOptimistic: typeof useOptimisticCompat;
|
|
42
|
-
readonly useTransition: typeof useTransitionCompat;
|
|
43
|
-
readonly useDeferredValue: typeof useDeferredValueCompat;
|
|
44
|
-
readonly useId: typeof useIdCompat;
|
|
45
|
-
};
|
|
39
|
+
export declare const compatHooks: CompatHooks;
|
|
46
40
|
//# sourceMappingURL=hooks-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/react/compat/hooks-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/react/compat/hooks-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAElD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC;AAmBpF,wBAAgB,iCAAiC,CAC/C,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAC1C;IACD,OAAO,IAAI,IAAI,CAAC;IAChB,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC7C,CAoBA;AAED,wBAAgB,mBAAmB,IAAI,UAAU,CAWhD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,EAChE,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,KAAK,KAAK,GAC1E,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC,CA6CnE;AAED,wBAAgB,mBAAmB,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC,aAAa,CAAC,CA2B5E;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAUrD;AAID,wBAAgB,WAAW,IAAI,MAAM,CAWpC;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,CAOrB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,aAAa,EAAE,OAAO,mBAAmB,CAAC;IAC1C,gBAAgB,EAAE,OAAO,sBAAsB,CAAC;IAChD,KAAK,EAAE,OAAO,WAAW,CAAC;CAC3B;AAkBD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,YAAY,CAMrB;AAED,eAAO,MAAM,WAAW,aAAqB,CAAC"}
|
|
@@ -5,6 +5,16 @@ import { getReactVersionInfo, hasFeature } from "./version-detector/index.js";
|
|
|
5
5
|
function hasReactHook(hookName) {
|
|
6
6
|
return typeof React[hookName] === "function";
|
|
7
7
|
}
|
|
8
|
+
function createDefaultFormStatus() {
|
|
9
|
+
return { pending: false, data: null, method: null, action: null };
|
|
10
|
+
}
|
|
11
|
+
function supportsConcurrentHooks() {
|
|
12
|
+
const { isReact18, isReact19 } = getReactVersionInfo();
|
|
13
|
+
return isReact18 || isReact19;
|
|
14
|
+
}
|
|
15
|
+
function warnHookFallback(hookName, fallbackDescription) {
|
|
16
|
+
logger.warn(`${hookName} not available, ${fallbackDescription}`);
|
|
17
|
+
}
|
|
8
18
|
export function createTransitionFallbackScheduler(onPendingChange) {
|
|
9
19
|
const timers = new Set();
|
|
10
20
|
return {
|
|
@@ -26,14 +36,14 @@ export function createTransitionFallbackScheduler(onPendingChange) {
|
|
|
26
36
|
}
|
|
27
37
|
export function useFormStatusCompat() {
|
|
28
38
|
if (!hasFeature("useFormStatus") || !hasReactHook("useFormStatus")) {
|
|
29
|
-
return
|
|
39
|
+
return createDefaultFormStatus();
|
|
30
40
|
}
|
|
31
41
|
try {
|
|
32
42
|
return React.useFormStatus();
|
|
33
43
|
}
|
|
34
|
-
catch
|
|
35
|
-
|
|
36
|
-
return
|
|
44
|
+
catch {
|
|
45
|
+
warnHookFallback("useFormStatus", "falling back to the default idle state");
|
|
46
|
+
return createDefaultFormStatus();
|
|
37
47
|
}
|
|
38
48
|
}
|
|
39
49
|
export function useOptimisticCompat(state, updateFn) {
|
|
@@ -41,8 +51,8 @@ export function useOptimisticCompat(state, updateFn) {
|
|
|
41
51
|
try {
|
|
42
52
|
return React.useOptimistic(state, updateFn);
|
|
43
53
|
}
|
|
44
|
-
catch
|
|
45
|
-
|
|
54
|
+
catch {
|
|
55
|
+
warnHookFallback("useOptimistic", "falling back to React.useState");
|
|
46
56
|
}
|
|
47
57
|
}
|
|
48
58
|
const [optimisticState, setOptimisticState] = React.useState(state);
|
|
@@ -66,13 +76,12 @@ export function useOptimisticCompat(state, updateFn) {
|
|
|
66
76
|
return [optimisticState, updateOptimisticState];
|
|
67
77
|
}
|
|
68
78
|
export function useTransitionCompat() {
|
|
69
|
-
|
|
70
|
-
if (versionInfo.isReact18 || versionInfo.isReact19) {
|
|
79
|
+
if (supportsConcurrentHooks()) {
|
|
71
80
|
try {
|
|
72
81
|
return React.useTransition();
|
|
73
82
|
}
|
|
74
|
-
catch
|
|
75
|
-
|
|
83
|
+
catch {
|
|
84
|
+
warnHookFallback("useTransition", "falling back to the timeout scheduler");
|
|
76
85
|
}
|
|
77
86
|
}
|
|
78
87
|
const [isPending, setIsPending] = React.useState(false);
|
|
@@ -87,26 +96,24 @@ export function useTransitionCompat() {
|
|
|
87
96
|
return [isPending, startTransition];
|
|
88
97
|
}
|
|
89
98
|
export function useDeferredValueCompat(value) {
|
|
90
|
-
|
|
91
|
-
if (versionInfo.isReact18 || versionInfo.isReact19) {
|
|
99
|
+
if (supportsConcurrentHooks()) {
|
|
92
100
|
try {
|
|
93
101
|
return React.useDeferredValue(value);
|
|
94
102
|
}
|
|
95
|
-
catch
|
|
96
|
-
|
|
103
|
+
catch {
|
|
104
|
+
warnHookFallback("useDeferredValue", "returning the value directly");
|
|
97
105
|
}
|
|
98
106
|
}
|
|
99
107
|
return value;
|
|
100
108
|
}
|
|
101
109
|
let idCounter = 0;
|
|
102
110
|
export function useIdCompat() {
|
|
103
|
-
|
|
104
|
-
if (versionInfo.isReact18 || versionInfo.isReact19) {
|
|
111
|
+
if (supportsConcurrentHooks()) {
|
|
105
112
|
try {
|
|
106
113
|
return React.useId();
|
|
107
114
|
}
|
|
108
|
-
catch
|
|
109
|
-
|
|
115
|
+
catch {
|
|
116
|
+
warnHookFallback("useId", "using the incremental fallback id");
|
|
110
117
|
}
|
|
111
118
|
}
|
|
112
119
|
const [id] = React.useState(() => `:r${idCounter++}:`);
|
|
@@ -119,15 +126,16 @@ export function SuspenseCompat({ children, fallback, }) {
|
|
|
119
126
|
}
|
|
120
127
|
return React.createElement(React.Suspense, { fallback }, children);
|
|
121
128
|
}
|
|
129
|
+
const defaultCompatHooks = {
|
|
130
|
+
useFormStatus: useFormStatusCompat,
|
|
131
|
+
useOptimistic: useOptimisticCompat,
|
|
132
|
+
useTransition: useTransitionCompat,
|
|
133
|
+
useDeferredValue: useDeferredValueCompat,
|
|
134
|
+
useId: useIdCompat,
|
|
135
|
+
};
|
|
122
136
|
let compatHooksContext = null;
|
|
123
137
|
function getCompatHooksContext() {
|
|
124
|
-
compatHooksContext ??= React.createContext(
|
|
125
|
-
useFormStatus: useFormStatusCompat,
|
|
126
|
-
useOptimistic: useOptimisticCompat,
|
|
127
|
-
useTransition: useTransitionCompat,
|
|
128
|
-
useDeferredValue: useDeferredValueCompat,
|
|
129
|
-
useId: useIdCompat,
|
|
130
|
-
});
|
|
138
|
+
compatHooksContext ??= React.createContext(defaultCompatHooks);
|
|
131
139
|
return compatHooksContext;
|
|
132
140
|
}
|
|
133
141
|
/**
|
|
@@ -141,19 +149,6 @@ export function useCompatHooks() {
|
|
|
141
149
|
return React.useContext(getCompatHooksContext());
|
|
142
150
|
}
|
|
143
151
|
export function CompatHooksProvider({ children, }) {
|
|
144
|
-
|
|
145
|
-
useFormStatus: useFormStatusCompat,
|
|
146
|
-
useOptimistic: useOptimisticCompat,
|
|
147
|
-
useTransition: useTransitionCompat,
|
|
148
|
-
useDeferredValue: useDeferredValueCompat,
|
|
149
|
-
useId: useIdCompat,
|
|
150
|
-
};
|
|
151
|
-
return React.createElement(getCompatHooksContext().Provider, { value: hooks }, children);
|
|
152
|
+
return React.createElement(getCompatHooksContext().Provider, { value: defaultCompatHooks }, children);
|
|
152
153
|
}
|
|
153
|
-
export const compatHooks =
|
|
154
|
-
useFormStatus: useFormStatusCompat,
|
|
155
|
-
useOptimistic: useOptimisticCompat,
|
|
156
|
-
useTransition: useTransitionCompat,
|
|
157
|
-
useDeferredValue: useDeferredValueCompat,
|
|
158
|
-
useId: useIdCompat,
|
|
159
|
-
};
|
|
154
|
+
export const compatHooks = defaultCompatHooks;
|
|
@@ -1,28 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Declarative `<head>` metadata management.
|
|
3
|
-
*
|
|
4
|
-
* @module head
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```tsx
|
|
8
|
-
* import { Head } from "veryfront/head";
|
|
9
|
-
*
|
|
10
|
-
* export default function Page() {
|
|
11
|
-
* return (
|
|
12
|
-
* <>
|
|
13
|
-
* <Head>
|
|
14
|
-
* <title>My Page</title>
|
|
15
|
-
* <meta name="description" content="Page description" />
|
|
16
|
-
* </Head>
|
|
17
|
-
* <main>Content</main>
|
|
18
|
-
* </>
|
|
19
|
-
* );
|
|
20
|
-
* }
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
1
|
import "../../../_dnt.polyfills.js";
|
|
24
|
-
|
|
25
|
-
export declare function Head({ children }: {
|
|
26
|
-
children: React.ReactNode;
|
|
27
|
-
}): React.ReactElement;
|
|
2
|
+
export { Head } from "../runtime/core.js";
|
|
28
3
|
//# sourceMappingURL=Head.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Head.d.ts","sourceRoot":"","sources":["../../../../src/src/react/components/Head.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Head.d.ts","sourceRoot":"","sources":["../../../../src/src/react/components/Head.tsx"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC"}
|