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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-registry.d.ts","sourceRoot":"","sources":["../../../../src/src/transforms/esm/package-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAEL,eAAe,EACf,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"package-registry.d.ts","sourceRoot":"","sources":["../../../../src/src/transforms/esm/package-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAEL,eAAe,EACf,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC;AAUpE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAQzE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,IAAI,SAAK,EACT,QAAQ,UAAQ,GACf,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUrE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAUD,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6BjD;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBlB"}
|
|
@@ -8,6 +8,7 @@ import { rendererLogger } from "../../utils/index.js";
|
|
|
8
8
|
import { buildReactUrl, CSSTYPE_VERSION, DEFAULT_REACT_VERSION, getReactImportMap as getReactImportMapFromRewriter, TAILWIND_VERSION, } from "../import-rewriter/url-builder.js";
|
|
9
9
|
// Re-export constants from unified source
|
|
10
10
|
export { CSSTYPE_VERSION, DEFAULT_REACT_VERSION, TAILWIND_VERSION };
|
|
11
|
+
const dependencyVersionCache = new Map();
|
|
11
12
|
/**
|
|
12
13
|
* Validate React version format (semver: X.Y.Z).
|
|
13
14
|
*/
|
|
@@ -61,8 +62,36 @@ export function stripSemverRange(version) {
|
|
|
61
62
|
* Compatibility no-op. Kept for tests and older call sites.
|
|
62
63
|
*/
|
|
63
64
|
export function clearReactVersionCache() {
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
dependencyVersionCache.clear();
|
|
66
|
+
}
|
|
67
|
+
function getPackageJsonPath(projectDir) {
|
|
68
|
+
return `${projectDir}/package.json`;
|
|
69
|
+
}
|
|
70
|
+
function getMtimeMs(mtime) {
|
|
71
|
+
return mtime instanceof Date ? mtime.getTime() : null;
|
|
72
|
+
}
|
|
73
|
+
export async function readProjectDependencyVersions(projectDir) {
|
|
74
|
+
const packageJsonPath = getPackageJsonPath(projectDir);
|
|
75
|
+
try {
|
|
76
|
+
const { createFileSystem } = await import("../../platform/compat/fs.js");
|
|
77
|
+
const fs = createFileSystem();
|
|
78
|
+
const stat = await fs.stat(packageJsonPath);
|
|
79
|
+
const mtimeMs = getMtimeMs(stat.mtime);
|
|
80
|
+
const cached = dependencyVersionCache.get(packageJsonPath);
|
|
81
|
+
if (cached && cached.mtimeMs === mtimeMs) {
|
|
82
|
+
return { react: cached.react, veryfront: cached.veryfront };
|
|
83
|
+
}
|
|
84
|
+
const content = await fs.readTextFile(packageJsonPath);
|
|
85
|
+
const pkg = JSON.parse(content);
|
|
86
|
+
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
87
|
+
const react = deps.react ? normalizeReactVersion(stripSemverRange(deps.react)) : undefined;
|
|
88
|
+
const veryfront = deps.veryfront ? stripSemverRange(deps.veryfront) : undefined;
|
|
89
|
+
dependencyVersionCache.set(packageJsonPath, { mtimeMs, react, veryfront });
|
|
90
|
+
return { react, veryfront };
|
|
91
|
+
}
|
|
92
|
+
catch (_) {
|
|
93
|
+
return {};
|
|
94
|
+
}
|
|
66
95
|
}
|
|
67
96
|
/**
|
|
68
97
|
* Resolve React version for a project with consistent priority:
|
|
@@ -86,21 +115,9 @@ export async function resolveProjectReactVersion(options) {
|
|
|
86
115
|
}
|
|
87
116
|
// 2. Detect from package.json
|
|
88
117
|
if (projectDir) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const content = await fs.readTextFile(`${projectDir}/package.json`);
|
|
93
|
-
const pkg = JSON.parse(content);
|
|
94
|
-
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
95
|
-
const rawVersion = deps.react;
|
|
96
|
-
if (rawVersion) {
|
|
97
|
-
const stripped = stripSemverRange(rawVersion);
|
|
98
|
-
return normalizeReactVersion(stripped);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
catch (_) {
|
|
102
|
-
/* expected: package.json may not exist or be unreadable */
|
|
103
|
-
}
|
|
118
|
+
const detected = await readProjectDependencyVersions(projectDir);
|
|
119
|
+
if (detected.react)
|
|
120
|
+
return detected.react;
|
|
104
121
|
}
|
|
105
122
|
// 3. Fallback to default
|
|
106
123
|
return DEFAULT_REACT_VERSION;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"veryfront-strategy.d.ts","sourceRoot":"","sources":["../../../../../src/src/transforms/import-rewriter/strategies/veryfront-strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACd,MAAM,aAAa,CAAC;AAkBrB,qBAAa,iBAAkB,YAAW,qBAAqB;IAC7D,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,QAAQ,OAAO;IAExB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO;IASzD,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,cAAc,GAAG,aAAa;
|
|
1
|
+
{"version":3,"file":"veryfront-strategy.d.ts","sourceRoot":"","sources":["../../../../../src/src/transforms/import-rewriter/strategies/veryfront-strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACd,MAAM,aAAa,CAAC;AAkBrB,qBAAa,iBAAkB,YAAW,qBAAqB;IAC7D,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,QAAQ,OAAO;IAExB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO;IASzD,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,EAAE,cAAc,GAAG,aAAa;CAmDvE;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -36,7 +36,8 @@ export class VeryfrontStrategy {
|
|
|
36
36
|
// Handle #veryfront/* (internal framework imports)
|
|
37
37
|
if (specifier.startsWith("#veryfront/")) {
|
|
38
38
|
const path = specifier.slice("#veryfront/".length);
|
|
39
|
-
// Try resolving via deno.json mappings first (
|
|
39
|
+
// Try resolving via deno.json mappings first (for example,
|
|
40
|
+
// veryfront/head → react/runtime/core.js).
|
|
40
41
|
const mapped = resolveVeryfrontModuleUrl(`veryfront/${path}`);
|
|
41
42
|
if (mapped) {
|
|
42
43
|
if (ctx.target === "ssr")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-format.d.ts","sourceRoot":"","sources":["../../../../../src/src/transforms/mdx/esm-module-loader/cache-format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache-format.d.ts","sourceRoot":"","sources":["../../../../../src/src/transforms/mdx/esm-module-loader/cache-format.ts"],"names":[],"mappings":"AAsIA,eAAO,MAAM,mCAAmC,QAA8B,CAAC;AAC/E,eAAO,MAAM,mCAAmC,QAA8B,CAAC;AAE/E,eAAO,MAAM,uBAAuB,QAGnC,CAAC;AAEF,eAAO,MAAM,mCAAmC,QAG/C,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,MAAM,CASR;AAED,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,MAAM,EACtB,YAAY,SAAwB,GACnC,MAAM,CAER;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,MAAM,CAOR"}
|
|
@@ -2,11 +2,26 @@ import { hashCodeHex } from "../../../utils/hash-utils.js";
|
|
|
2
2
|
import { createCacheNamespace } from "../../../utils/cache-namespace.js";
|
|
3
3
|
import { REACT_DEFAULT_VERSION } from "../../../utils/constants/cdn.js";
|
|
4
4
|
import { VERSION } from "../../../utils/version.js";
|
|
5
|
+
import { resolveVeryfrontModuleTarget, resolveVeryfrontModuleUrl, } from "../../veryfront-module-urls.js";
|
|
5
6
|
import { UNRESOLVED_VF_MODULES_PATTERN } from "./constants.js";
|
|
6
7
|
import { hashString } from "./utils/hash.js";
|
|
7
8
|
const ALL_FILE_URL_PATTERN_SOURCE = /file:\/\/([^"'\s]+)/.source;
|
|
8
9
|
const MJS_FILE_URL_PATTERN_SOURCE = /file:\/\/([^"'\s]+\.mjs)/.source;
|
|
9
10
|
const CACHE_NAMESPACE_SENTINEL = "__vf_cache_namespace__";
|
|
11
|
+
const PUBLIC_RUNTIME_SPECIFIERS = [
|
|
12
|
+
"veryfront/head",
|
|
13
|
+
"veryfront/router",
|
|
14
|
+
"veryfront/context",
|
|
15
|
+
];
|
|
16
|
+
function buildPublicRuntimeAliasSchema(overrides) {
|
|
17
|
+
return Object.fromEntries(PUBLIC_RUNTIME_SPECIFIERS.map((specifier) => [
|
|
18
|
+
specifier,
|
|
19
|
+
{
|
|
20
|
+
target: overrides?.[specifier] ?? resolveVeryfrontModuleTarget(specifier),
|
|
21
|
+
url: resolveVeryfrontModuleUrl(specifier),
|
|
22
|
+
},
|
|
23
|
+
]));
|
|
24
|
+
}
|
|
10
25
|
function formatMdxEsmTransformCacheKey(namespace, projectId, contentSourceId, reactVersion, normalizedPath, contentHash) {
|
|
11
26
|
return `${namespace}:${projectId}:${contentSourceId}:${reactVersion}:${normalizedPath}:${contentHash}:ssr`;
|
|
12
27
|
}
|
|
@@ -39,12 +54,22 @@ function buildMdxEsmCacheSchemaSample() {
|
|
|
39
54
|
hashString("_vf_modules/pages/index.jsexport default 1;"),
|
|
40
55
|
hashString("/tmp/project/Button.tsx"),
|
|
41
56
|
],
|
|
57
|
+
publicRuntimeAliases: buildPublicRuntimeAliasSchema({
|
|
58
|
+
"veryfront/head": "./src/react/runtime/core.ts",
|
|
59
|
+
"veryfront/router": "./src/react/runtime/core.ts",
|
|
60
|
+
"veryfront/context": "./src/react/runtime/core.ts",
|
|
61
|
+
}),
|
|
42
62
|
frameworkVersion: VERSION,
|
|
43
63
|
};
|
|
44
64
|
}
|
|
45
65
|
function buildFrameworkVfModuleCacheSchemaSample() {
|
|
46
66
|
return {
|
|
47
|
-
moduleFile: formatFrameworkVfModuleCacheFileName(CACHE_NAMESPACE_SENTINEL, hashCodeHex("_vf_modules/_veryfront/react/
|
|
67
|
+
moduleFile: formatFrameworkVfModuleCacheFileName(CACHE_NAMESPACE_SENTINEL, hashCodeHex("/_vf_modules/_veryfront/react/runtime/core.js"), hashCodeHex("/app/.cache/veryfront-mdx-esm").slice(0, 8), hashCodeHex("export default function Head() {}")),
|
|
68
|
+
publicRuntimeAliases: buildPublicRuntimeAliasSchema({
|
|
69
|
+
"veryfront/head": "./src/react/runtime/core.ts",
|
|
70
|
+
"veryfront/router": "./src/react/runtime/core.ts",
|
|
71
|
+
"veryfront/context": "./src/react/runtime/core.ts",
|
|
72
|
+
}),
|
|
48
73
|
};
|
|
49
74
|
}
|
|
50
75
|
export const MDX_ESM_ALL_FILE_URL_PATTERN_SOURCE = ALL_FILE_URL_PATTERN_SOURCE;
|
|
@@ -15,7 +15,7 @@ import type { Logger } from "../../../../utils/logger/logger.js";
|
|
|
15
15
|
import type { RuntimeAdapter } from "../../../../platform/adapters/base.js";
|
|
16
16
|
import type { ModuleFetcherContext } from "../types.js";
|
|
17
17
|
export { rewriteDntImports } from "./import-rewriter.js";
|
|
18
|
-
export { endRenderSession, startRenderSession } from "./render-sessions.js";
|
|
18
|
+
export { endRenderSession, hasRenderSession, startRenderSession } from "./render-sessions.js";
|
|
19
19
|
/**
|
|
20
20
|
* Error thrown when transform tree exceeds the timeout.
|
|
21
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAO5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAexD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAO5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAexD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS9F;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAOtD;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,SAAS,EAAE,MAAM;CAI9B;AAcD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,oBAAoB,EAC7B,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,GAAE,GAAG,CAAC,MAAM,CAAa,GAC/B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwFxB;AAoSD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;IACR,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GACA,oBAAoB,CAUtB"}
|
|
@@ -32,7 +32,7 @@ import { fetchModuleViaHTTP } from "./http-fetcher.js";
|
|
|
32
32
|
import { cacheModule, normalizePath } from "./module-cache.js";
|
|
33
33
|
// Re-export extracted modules for backward compatibility
|
|
34
34
|
export { rewriteDntImports } from "./import-rewriter.js";
|
|
35
|
-
export { endRenderSession, startRenderSession } from "./render-sessions.js";
|
|
35
|
+
export { endRenderSession, hasRenderSession, startRenderSession } from "./render-sessions.js";
|
|
36
36
|
/**
|
|
37
37
|
* Maximum time allowed for the entire transform tree (recursive module resolution).
|
|
38
38
|
* If the cumulative time exceeds this, we fail fast instead of hanging indefinitely.
|
|
@@ -14,5 +14,6 @@ export declare function startRenderSession(sessionId: string, projectSlug?: stri
|
|
|
14
14
|
* End a render session and record loaded modules to the manifest.
|
|
15
15
|
*/
|
|
16
16
|
export declare function endRenderSession(sessionId: string): void;
|
|
17
|
+
export declare function hasRenderSession(sessionId: string): boolean;
|
|
17
18
|
export declare function recordModuleToSession(normalizedPath: string): void;
|
|
18
19
|
//# sourceMappingURL=render-sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-sessions.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAOhG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAiCxD;AAWD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAQlE"}
|
|
1
|
+
{"version":3,"file":"render-sessions.d.ts","sourceRoot":"","sources":["../../../../../../src/src/transforms/mdx/esm-module-loader/module-fetcher/render-sessions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAOhG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAiCxD;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAWD,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAQlE"}
|
|
@@ -58,6 +58,9 @@ export function endRenderSession(sessionId) {
|
|
|
58
58
|
}
|
|
59
59
|
renderSessions.delete(sessionId);
|
|
60
60
|
}
|
|
61
|
+
export function hasRenderSession(sessionId) {
|
|
62
|
+
return renderSessions.has(sessionId);
|
|
63
|
+
}
|
|
61
64
|
/**
|
|
62
65
|
* Get the current active render session (if any).
|
|
63
66
|
* Used to record modules during fetch and for per-session in-flight deduplication.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SSR VF Modules Stage - resolves /_vf_modules/_veryfront/ paths to framework source.
|
|
3
3
|
*
|
|
4
|
-
* The SSR import map rewrites "veryfront/head" -> "/_vf_modules/_veryfront/react/
|
|
4
|
+
* The SSR import map rewrites "veryfront/head" -> "/_vf_modules/_veryfront/react/runtime/core.js?ssr=true"
|
|
5
5
|
* This stage resolves those paths to actual framework source files, transforms them
|
|
6
6
|
* (including React import rewriting), and rewrites imports to file:// paths.
|
|
7
7
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SSR VF Modules Stage - resolves /_vf_modules/_veryfront/ paths to framework source.
|
|
3
3
|
*
|
|
4
|
-
* The SSR import map rewrites "veryfront/head" -> "/_vf_modules/_veryfront/react/
|
|
4
|
+
* The SSR import map rewrites "veryfront/head" -> "/_vf_modules/_veryfront/react/runtime/core.js?ssr=true"
|
|
5
5
|
* This stage resolves those paths to actual framework source files, transforms them
|
|
6
6
|
* (including React import rewriting), and rewrites imports to file:// paths.
|
|
7
7
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"veryfront-module-urls.d.ts","sourceRoot":"","sources":["../../../src/src/transforms/veryfront-module-urls.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"veryfront-module-urls.d.ts","sourceRoot":"","sources":["../../../src/src/transforms/veryfront-module-urls.ts"],"names":[],"mappings":"AA4GA,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7E;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG1E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzE"}
|
|
@@ -22,7 +22,7 @@ function toModuleServerUrl(target) {
|
|
|
22
22
|
return null;
|
|
23
23
|
return `/_vf_modules/_veryfront/${normalizeModulePath(relative)}`;
|
|
24
24
|
}
|
|
25
|
-
function addMapping(index, specifier, target) {
|
|
25
|
+
function addMapping(index, specifier, target, options) {
|
|
26
26
|
if (!target.startsWith(SRC_PREFIX))
|
|
27
27
|
return;
|
|
28
28
|
if (specifier.endsWith("/")) {
|
|
@@ -32,6 +32,8 @@ function addMapping(index, specifier, target) {
|
|
|
32
32
|
});
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
|
+
if (options?.preserveExistingExact && index.exactTargets.has(specifier))
|
|
36
|
+
return;
|
|
35
37
|
index.exactTargets.set(specifier, target);
|
|
36
38
|
}
|
|
37
39
|
function finalizeIndex(index) {
|
|
@@ -67,12 +69,14 @@ for (const [key, target] of Object.entries(config.exports ?? {})) {
|
|
|
67
69
|
if (typeof target !== "string")
|
|
68
70
|
continue;
|
|
69
71
|
if (key === ".") {
|
|
70
|
-
addMapping(veryfrontTargetIndex, "veryfront", target);
|
|
72
|
+
addMapping(veryfrontTargetIndex, "veryfront", target, { preserveExistingExact: true });
|
|
71
73
|
continue;
|
|
72
74
|
}
|
|
73
75
|
if (!key.startsWith("./"))
|
|
74
76
|
continue;
|
|
75
|
-
addMapping(veryfrontTargetIndex, `veryfront/${key.slice(2)}`, target
|
|
77
|
+
addMapping(veryfrontTargetIndex, `veryfront/${key.slice(2)}`, target, {
|
|
78
|
+
preserveExistingExact: true,
|
|
79
|
+
});
|
|
76
80
|
}
|
|
77
81
|
finalizeIndex(veryfrontTargetIndex);
|
|
78
82
|
finalizeIndex(internalTargetIndex);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEntityInfo.d.ts","sourceRoot":"","sources":["../../../../src/src/types/entities/getEntityInfo.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAU,UAAU,EAAe,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"getEntityInfo.d.ts","sourceRoot":"","sources":["../../../../src/src/types/entities/getEntityInfo.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAU,UAAU,EAAe,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAiBtE,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAmJ5B;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAiG5B;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAoE5B"}
|
|
@@ -12,6 +12,10 @@ import { logger as baseLogger } from "../../utils/index.js";
|
|
|
12
12
|
const logger = baseLogger.component("get-entity-by-slug");
|
|
13
13
|
const entityInfoScope = createErrorScope("getEntityInfo");
|
|
14
14
|
const fs = createFileSystem();
|
|
15
|
+
const PAGE_FILE_EXTENSIONS = ["mdx", "md", "tsx", "jsx", "ts"];
|
|
16
|
+
const DIRECT_ROUTE_EXTENSIONS = ["mdx", "md", "tsx", "ts"];
|
|
17
|
+
const LAYOUT_FILE_EXTENSIONS = ["mdx", "md", "tsx", "jsx", "ts", "js"];
|
|
18
|
+
const DYNAMIC_PAGE_ENTRY_PATTERN = /\[.+\]\.(mdx|md|tsx|jsx|ts|js)$/;
|
|
15
19
|
export async function getEntityInfo(filePath, adapter) {
|
|
16
20
|
return await withSpan("types.getEntityInfo", async () => {
|
|
17
21
|
// Normalize path for Veryfront API adapter
|
|
@@ -148,7 +152,7 @@ export async function getEntityBySlug(projectDir, slug, adapter) {
|
|
|
148
152
|
normalizedSlug,
|
|
149
153
|
basePaths,
|
|
150
154
|
});
|
|
151
|
-
const
|
|
155
|
+
const candidateResults = await parallelMap(basePaths, async (basePath) => {
|
|
152
156
|
const resolvedPath = await resolveFile.call(adapter.fs, basePath);
|
|
153
157
|
logger.debug("resolveFile result", {
|
|
154
158
|
basePath,
|
|
@@ -158,7 +162,7 @@ export async function getEntityBySlug(projectDir, slug, adapter) {
|
|
|
158
162
|
return null;
|
|
159
163
|
return await getEntityInfo(resolvedPath, adapter);
|
|
160
164
|
});
|
|
161
|
-
for (const info of
|
|
165
|
+
for (const info of candidateResults) {
|
|
162
166
|
if (info?.entity.isPage) {
|
|
163
167
|
logger.debug("Found page via resolveFile", {
|
|
164
168
|
slug,
|
|
@@ -168,115 +172,30 @@ export async function getEntityBySlug(projectDir, slug, adapter) {
|
|
|
168
172
|
return info;
|
|
169
173
|
}
|
|
170
174
|
}
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const pagesDir = parentPath
|
|
175
|
-
? pathHelper.join(projectDir, "pages", parentPath)
|
|
176
|
-
: pathHelper.join(projectDir, "pages");
|
|
177
|
-
try {
|
|
178
|
-
let dirExists = false;
|
|
179
|
-
try {
|
|
180
|
-
const stat = await withFallback(() => adapter.fs.stat(pagesDir), () => fs.stat(pagesDir), { operationName: "stat:getEntityBySlug", logError: false });
|
|
181
|
-
dirExists = stat.isDirectory;
|
|
182
|
-
}
|
|
183
|
-
catch (_) {
|
|
184
|
-
/* expected: stat may fail for non-existent directories */
|
|
185
|
-
dirExists = false;
|
|
186
|
-
}
|
|
187
|
-
if (!dirExists)
|
|
188
|
-
continue;
|
|
189
|
-
const entries = [];
|
|
190
|
-
for await (const entry of adapter.fs.readDir(pagesDir)) {
|
|
191
|
-
entries.push(entry);
|
|
192
|
-
}
|
|
193
|
-
const dynamicEntries = entries.filter((entry) => entry.isFile && /\[.+\]\.(mdx|md|tsx|jsx|ts|js)$/.test(entry.name));
|
|
194
|
-
const dynamicResults = await parallelMap(dynamicEntries, async (entry) => {
|
|
195
|
-
const dynamicPath = pathHelper.join(pagesDir, entry.name);
|
|
196
|
-
return await getEntityInfo(dynamicPath, adapter);
|
|
197
|
-
});
|
|
198
|
-
for (const info of dynamicResults) {
|
|
199
|
-
if (info?.entity.isPage)
|
|
200
|
-
return info;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
catch (_) {
|
|
204
|
-
/* expected: directory may not exist or readDir may fail */
|
|
205
|
-
}
|
|
206
|
-
}
|
|
175
|
+
const dynamicPage = await findDynamicPageEntity(projectDir, normalizedSlug, adapter);
|
|
176
|
+
if (dynamicPage)
|
|
177
|
+
return dynamicPage;
|
|
207
178
|
logger.debug("No page found via resolveFile branch", { slug, normalizedSlug });
|
|
208
179
|
return null;
|
|
209
180
|
}
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
pathHelper.join(projectDir, "pages", `${normalizedSlug}.tsx`),
|
|
214
|
-
pathHelper.join(projectDir, "pages", `${normalizedSlug}.jsx`),
|
|
215
|
-
pathHelper.join(projectDir, "pages", `${normalizedSlug}.ts`),
|
|
216
|
-
pathHelper.join(projectDir, "pages", `${normalizedSlug}/index.mdx`),
|
|
217
|
-
pathHelper.join(projectDir, "pages", `${normalizedSlug}/index.md`),
|
|
218
|
-
pathHelper.join(projectDir, "pages", `${normalizedSlug}/index.tsx`),
|
|
219
|
-
pathHelper.join(projectDir, "pages", `${normalizedSlug}/index.jsx`),
|
|
220
|
-
pathHelper.join(projectDir, "pages", `${normalizedSlug}/index.ts`),
|
|
181
|
+
const candidatePaths = [
|
|
182
|
+
...buildFileCandidates(projectDir, ["pages"], normalizedSlug, PAGE_FILE_EXTENSIONS),
|
|
183
|
+
...buildFileCandidates(projectDir, ["pages"], `${normalizedSlug}/index`, PAGE_FILE_EXTENSIONS),
|
|
221
184
|
];
|
|
222
185
|
if (isVeryfrontRoute) {
|
|
223
|
-
|
|
186
|
+
candidatePaths.unshift(...buildFileCandidates(projectDir, [], normalizedSlug, DIRECT_ROUTE_EXTENSIONS));
|
|
224
187
|
}
|
|
225
188
|
if (normalizedSlug === "index" || normalizedSlug === "") {
|
|
226
|
-
|
|
189
|
+
candidatePaths.unshift(...buildFileCandidates(projectDir, ["pages"], "index", DIRECT_ROUTE_EXTENSIONS));
|
|
227
190
|
}
|
|
228
|
-
const
|
|
229
|
-
return await getEntityInfo(
|
|
191
|
+
const candidateResults = await parallelMap(candidatePaths, async (candidatePath) => {
|
|
192
|
+
return await getEntityInfo(candidatePath, adapter);
|
|
230
193
|
});
|
|
231
|
-
for (const info of
|
|
194
|
+
for (const info of candidateResults) {
|
|
232
195
|
if (info?.entity.isPage)
|
|
233
196
|
return info;
|
|
234
197
|
}
|
|
235
|
-
|
|
236
|
-
for (let depth = slugParts.length - 1; depth >= 0; depth--) {
|
|
237
|
-
const parentPath = slugParts.slice(0, depth).join("/");
|
|
238
|
-
const pagesDir = parentPath
|
|
239
|
-
? pathHelper.join(projectDir, "pages", parentPath)
|
|
240
|
-
: pathHelper.join(projectDir, "pages");
|
|
241
|
-
try {
|
|
242
|
-
let dirExists = false;
|
|
243
|
-
if (adapter) {
|
|
244
|
-
try {
|
|
245
|
-
const stat = await withFallback(() => adapter.fs.stat(pagesDir), () => fs.stat(pagesDir), { operationName: "stat:getEntityBySlug", logError: false });
|
|
246
|
-
dirExists = stat.isDirectory;
|
|
247
|
-
}
|
|
248
|
-
catch (_) {
|
|
249
|
-
/* expected: stat may fail for non-existent directories */
|
|
250
|
-
dirExists = false;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
dirExists = await fs.exists(pagesDir);
|
|
255
|
-
}
|
|
256
|
-
if (!dirExists)
|
|
257
|
-
continue;
|
|
258
|
-
const entries = [];
|
|
259
|
-
const dirIterator = adapter?.fs.readDir
|
|
260
|
-
? adapter.fs.readDir(pagesDir)
|
|
261
|
-
: fs.readDir(pagesDir);
|
|
262
|
-
for await (const entry of dirIterator) {
|
|
263
|
-
entries.push(entry);
|
|
264
|
-
}
|
|
265
|
-
const dynamicEntries = entries.filter((entry) => entry.isFile && /\[.+\]\.(mdx|md|tsx|jsx|ts|js)$/.test(entry.name));
|
|
266
|
-
const dynamicResults = await parallelMap(dynamicEntries, async (entry) => {
|
|
267
|
-
const dynamicPath = pathHelper.join(pagesDir, entry.name);
|
|
268
|
-
return await getEntityInfo(dynamicPath, adapter);
|
|
269
|
-
});
|
|
270
|
-
for (const info of dynamicResults) {
|
|
271
|
-
if (info?.entity.isPage)
|
|
272
|
-
return info;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
catch (_) {
|
|
276
|
-
/* expected: directory may not exist or readDir may fail */
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
return null;
|
|
198
|
+
return await findDynamicPageEntity(projectDir, normalizedSlug, adapter);
|
|
280
199
|
}, {
|
|
281
200
|
"entity.slug": slug,
|
|
282
201
|
"entity.normalized_slug": normalizeSlug(slug),
|
|
@@ -301,41 +220,23 @@ export async function getLayoutEntity(projectDir, layoutName, adapter) {
|
|
|
301
220
|
return null;
|
|
302
221
|
}
|
|
303
222
|
// Files in layouts/ are treated as layouts by convention (any extension)
|
|
304
|
-
const
|
|
305
|
-
pathHelper.join(projectDir, "layouts", `${resolvedLayoutName}.mdx`),
|
|
306
|
-
pathHelper.join(projectDir, "layouts", `${resolvedLayoutName}.md`),
|
|
307
|
-
pathHelper.join(projectDir, "layouts", `${resolvedLayoutName}.tsx`),
|
|
308
|
-
pathHelper.join(projectDir, "layouts", `${resolvedLayoutName}.jsx`),
|
|
309
|
-
pathHelper.join(projectDir, "layouts", `${resolvedLayoutName}.ts`),
|
|
310
|
-
pathHelper.join(projectDir, "layouts", `${resolvedLayoutName}.js`),
|
|
311
|
-
];
|
|
223
|
+
const layoutCandidatePaths = buildFileCandidates(projectDir, ["layouts"], resolvedLayoutName, LAYOUT_FILE_EXTENSIONS);
|
|
312
224
|
// Files in components/ must be detected as layouts by name/frontmatter
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
pathHelper.join(projectDir, "components", `${resolvedLayoutName}Layout.tsx`),
|
|
317
|
-
pathHelper.join(projectDir, "components", `${resolvedLayoutName}Layout.jsx`),
|
|
318
|
-
pathHelper.join(projectDir, "components", `${resolvedLayoutName}Layout.ts`),
|
|
319
|
-
pathHelper.join(projectDir, "components", `${resolvedLayoutName}Layout.js`),
|
|
320
|
-
pathHelper.join(projectDir, "components", "Layout.mdx"),
|
|
321
|
-
pathHelper.join(projectDir, "components", "Layout.md"),
|
|
322
|
-
pathHelper.join(projectDir, "components", "Layout.tsx"),
|
|
323
|
-
pathHelper.join(projectDir, "components", "Layout.jsx"),
|
|
324
|
-
pathHelper.join(projectDir, "components", "Layout.ts"),
|
|
325
|
-
pathHelper.join(projectDir, "components", "Layout.js"),
|
|
225
|
+
const componentCandidatePaths = [
|
|
226
|
+
...buildFileCandidates(projectDir, ["components"], `${resolvedLayoutName}Layout`, LAYOUT_FILE_EXTENSIONS),
|
|
227
|
+
...buildFileCandidates(projectDir, ["components"], "Layout", LAYOUT_FILE_EXTENSIONS),
|
|
326
228
|
];
|
|
327
|
-
const
|
|
328
|
-
|
|
329
|
-
return await getEntityInfo(p, adapter);
|
|
229
|
+
const candidateResults = await parallelMap([...layoutCandidatePaths, ...componentCandidatePaths], async (candidatePath) => {
|
|
230
|
+
return await getEntityInfo(candidatePath, adapter);
|
|
330
231
|
});
|
|
331
|
-
const
|
|
332
|
-
for (let i = 0; i <
|
|
333
|
-
const info =
|
|
232
|
+
const layoutCandidateCount = layoutCandidatePaths.length;
|
|
233
|
+
for (let i = 0; i < candidateResults.length; i++) {
|
|
234
|
+
const info = candidateResults[i];
|
|
334
235
|
if (!info)
|
|
335
236
|
continue;
|
|
336
237
|
// layouts/ dir: any valid entity is a layout
|
|
337
238
|
// components/ dir: must be detected as layout by name/frontmatter
|
|
338
|
-
if (i <
|
|
239
|
+
if (i < layoutCandidateCount || info.entity.isLayout) {
|
|
339
240
|
return {
|
|
340
241
|
entity: {
|
|
341
242
|
...info.entity,
|
|
@@ -350,6 +251,57 @@ export async function getLayoutEntity(projectDir, layoutName, adapter) {
|
|
|
350
251
|
return null;
|
|
351
252
|
}, { "layout.name": layoutName, "layout.projectDir": projectDir });
|
|
352
253
|
}
|
|
254
|
+
function buildFileCandidates(projectDir, segments, relativeStem, extensions) {
|
|
255
|
+
return extensions.map((extension) => pathHelper.join(projectDir, ...segments, `${relativeStem}.${extension}`));
|
|
256
|
+
}
|
|
257
|
+
async function findDynamicPageEntity(projectDir, normalizedSlug, adapter) {
|
|
258
|
+
const slugParts = normalizedSlug === "" ? [] : normalizedSlug.split("/");
|
|
259
|
+
for (let depth = slugParts.length - 1; depth >= 0; depth--) {
|
|
260
|
+
const parentPath = slugParts.slice(0, depth).join("/");
|
|
261
|
+
const pagesDir = parentPath
|
|
262
|
+
? pathHelper.join(projectDir, "pages", parentPath)
|
|
263
|
+
: pathHelper.join(projectDir, "pages");
|
|
264
|
+
try {
|
|
265
|
+
const canReadDirectory = await pagesDirectoryExists(pagesDir, adapter);
|
|
266
|
+
if (!canReadDirectory)
|
|
267
|
+
continue;
|
|
268
|
+
const entries = await readDirectoryEntries(pagesDir, adapter);
|
|
269
|
+
const dynamicEntries = entries.filter((entry) => entry.isFile && DYNAMIC_PAGE_ENTRY_PATTERN.test(entry.name));
|
|
270
|
+
const candidateResults = await parallelMap(dynamicEntries, async (entry) => {
|
|
271
|
+
const candidatePath = pathHelper.join(pagesDir, entry.name);
|
|
272
|
+
return await getEntityInfo(candidatePath, adapter);
|
|
273
|
+
});
|
|
274
|
+
for (const info of candidateResults) {
|
|
275
|
+
if (info?.entity.isPage)
|
|
276
|
+
return info;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
catch (_) {
|
|
280
|
+
/* expected: directory may not exist or readDir may fail */
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
async function pagesDirectoryExists(pagesDir, adapter) {
|
|
286
|
+
if (!adapter)
|
|
287
|
+
return await fs.exists(pagesDir);
|
|
288
|
+
try {
|
|
289
|
+
const stat = await withFallback(() => adapter.fs.stat(pagesDir), () => fs.stat(pagesDir), { operationName: "stat:getEntityBySlug", logError: false });
|
|
290
|
+
return stat.isDirectory;
|
|
291
|
+
}
|
|
292
|
+
catch (_) {
|
|
293
|
+
/* expected: stat may fail for non-existent directories */
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
async function readDirectoryEntries(pagesDir, adapter) {
|
|
298
|
+
const entries = [];
|
|
299
|
+
const iterator = adapter?.fs.readDir ? adapter.fs.readDir(pagesDir) : fs.readDir(pagesDir);
|
|
300
|
+
for await (const entry of iterator) {
|
|
301
|
+
entries.push(entry);
|
|
302
|
+
}
|
|
303
|
+
return entries;
|
|
304
|
+
}
|
|
353
305
|
function getSlugFromPath(filePath) {
|
|
354
306
|
const parts = filePath.split(pathHelper.sep);
|
|
355
307
|
const fileName = parts[parts.length - 1] ?? "";
|
|
@@ -18,7 +18,7 @@ export declare function hasHashedFilename(path: string): boolean;
|
|
|
18
18
|
*/
|
|
19
19
|
export declare function getEsbuildLoader(filePath: string): "tsx" | "jsx" | "ts" | "js";
|
|
20
20
|
export { isAbsolute as isAbsolutePath } from "../platform/compat/path/index.js";
|
|
21
|
-
export declare function toBase64Url(
|
|
21
|
+
export declare function toBase64Url(input: string): string;
|
|
22
22
|
export declare function fromBase64Url(encoded: string): string;
|
|
23
23
|
/**
|
|
24
24
|
* Check if a normalized path is a framework path that should not be fetched from API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../src/src/utils/path-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"path-utils.d.ts","sourceRoot":"","sources":["../../../src/src/utils/path-utils.ts"],"names":[],"mappings":"AASA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMvE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAQD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAG9E;AAED,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEhF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAUD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAerD;AAgCD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAQrE"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { normalize } from "../platform/compat/path/index.js";
|
|
2
|
+
import { base64urlEncode } from "./base64url.js";
|
|
2
3
|
import { logger } from "./logger/logger.js";
|
|
3
4
|
function stripTrailingSlash(pathname) {
|
|
4
5
|
if (pathname === "/")
|
|
@@ -65,20 +66,28 @@ export function getEsbuildLoader(filePath) {
|
|
|
65
66
|
return EXTENSION_TO_LOADER[ext] ?? "js";
|
|
66
67
|
}
|
|
67
68
|
export { isAbsolute as isAbsolutePath } from "../platform/compat/path/index.js";
|
|
68
|
-
export function toBase64Url(
|
|
69
|
-
return
|
|
69
|
+
export function toBase64Url(input) {
|
|
70
|
+
return base64urlEncode(input);
|
|
70
71
|
}
|
|
71
|
-
function
|
|
72
|
-
|
|
72
|
+
function getRequiredBase64Padding(length) {
|
|
73
|
+
const remainder = length % 4;
|
|
74
|
+
if (remainder === 0)
|
|
75
|
+
return "";
|
|
76
|
+
if (remainder === 2)
|
|
73
77
|
return "==";
|
|
74
|
-
if (
|
|
78
|
+
if (remainder === 3)
|
|
75
79
|
return "=";
|
|
76
|
-
return
|
|
80
|
+
return undefined;
|
|
77
81
|
}
|
|
78
82
|
export function fromBase64Url(encoded) {
|
|
79
83
|
const b64 = encoded.replaceAll("-", "+").replaceAll("_", "/");
|
|
84
|
+
const padding = getRequiredBase64Padding(b64.length);
|
|
85
|
+
if (padding === undefined) {
|
|
86
|
+
logger.debug(`Failed to decode base64url string "${encoded}": invalid length`);
|
|
87
|
+
return "";
|
|
88
|
+
}
|
|
80
89
|
try {
|
|
81
|
-
return atob(b64 +
|
|
90
|
+
return atob(b64 + padding);
|
|
82
91
|
}
|
|
83
92
|
catch (error) {
|
|
84
93
|
logger.debug(`Failed to decode base64url string "${encoded}":`, error);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.129";
|
|
2
2
|
//# sourceMappingURL=version-constant.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/src/utils/version.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGzF;AAUD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAKd;AAED,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/src/utils/version.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGzF;AAUD,wBAAgB,qBAAqB,CAAC,OAAO,GAAE;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAKd;AAED,eAAO,MAAM,eAAe,QAI1B,CAAC;AAEH,eAAO,MAAM,iBAAiB,EAAE,MAAmB,CAAC;AAEpD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,CAMxE"}
|