veryfront 0.1.127 → 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 +1 -0
- package/esm/src/html/dev-scripts.d.ts.map +1 -1
- package/esm/src/html/dev-scripts.js +8 -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.d.ts.map +1 -1
- package/esm/src/html/html-injection.js +13 -3
- 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 +43 -33
- 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 +9 -9
- package/src/src/html/html-escape.ts +4 -0
- package/src/src/html/html-injection.ts +22 -3
- package/src/src/html/html-shell-generator.ts +62 -29
- 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,14 +1,15 @@
|
|
|
1
1
|
import { resolveRelativePath } from "../modules/react-loader/path-resolver.js";
|
|
2
2
|
import { withSpan } from "../observability/tracing/otlp-setup.js";
|
|
3
3
|
import { SpanNames } from "../observability/tracing/span-names.js";
|
|
4
|
+
import { profilePhase } from "../observability/request-profiler.js";
|
|
4
5
|
import { serverLogger } from "../utils/logger/logger.js";
|
|
5
6
|
import { isMarkdownPreview as checkMarkdownPreview } from "../transforms/md/utils.js";
|
|
6
7
|
import { generateModulePreloadHintsFromManifest, getRouteManifest, } from "../modules/manifest/route-module-manifest.js";
|
|
7
|
-
import { escapeHTML } from "./html-escape.js";
|
|
8
|
-
import { generateHydrationData, getDevScripts, getProdScripts, } from "./hydration-script-builder/index.js";
|
|
9
|
-
import { getStudioScripts } from "./dev-scripts.js";
|
|
8
|
+
import { buildNonceAttribute, escapeHTML } from "./html-escape.js";
|
|
9
|
+
import { generateHydrationData, getDevScripts, getProdScripts, PROD_HYDRATION_MODULE_PATH, } from "./hydration-script-builder/index.js";
|
|
10
|
+
import { getPreviewStylesheetLink, getStudioScripts } from "./dev-scripts.js";
|
|
10
11
|
import { processMetadata } from "./metadata-builder.js";
|
|
11
|
-
import { extractCandidates, getDevStyles, getProjectCSS } from "./styles-builder/index.js";
|
|
12
|
+
import { extractCandidates, getDevStyles as getErrorOverlayStyles, getProjectCSS, } from "./styles-builder/index.js";
|
|
12
13
|
import { buildImportMapJson, buildRootAttributes, shouldDisableLayout } from "./utils.js";
|
|
13
14
|
function pathToModuleUrl(path, studioEmbed) {
|
|
14
15
|
if (!path)
|
|
@@ -27,6 +28,9 @@ function getRelativePagePath(fullPath, projectDir) {
|
|
|
27
28
|
return normalized.replace(/^\//, "");
|
|
28
29
|
return resolveRelativePath(normalized, projectDir);
|
|
29
30
|
}
|
|
31
|
+
function resolveProjectCSSScope(options, metaSlug) {
|
|
32
|
+
return options.projectSlug || options.projectId || metaSlug || "default";
|
|
33
|
+
}
|
|
30
34
|
function generateModulePreloadHints(options) {
|
|
31
35
|
const hints = [];
|
|
32
36
|
const addedUrls = new Set();
|
|
@@ -55,7 +59,7 @@ function generateModulePreloadHints(options) {
|
|
|
55
59
|
if (studioEmbed || options.environment === "preview") {
|
|
56
60
|
return hints.join("\n ");
|
|
57
61
|
}
|
|
58
|
-
const projectSlug = options.projectId;
|
|
62
|
+
const projectSlug = options.projectSlug ?? options.projectId;
|
|
59
63
|
const route = options.pagePath
|
|
60
64
|
? getRelativePagePath(options.pagePath, projectDir)
|
|
61
65
|
.replace(/\.(tsx|ts|jsx|mdx)$/, "")
|
|
@@ -73,15 +77,15 @@ function generateModulePreloadHints(options) {
|
|
|
73
77
|
}
|
|
74
78
|
return hints.join("\n ");
|
|
75
79
|
}
|
|
76
|
-
export function generateHTMLShellParts(meta, options, params, props, contentForTailwind) {
|
|
77
|
-
return withSpan(SpanNames.HTML_GENERATE_SHELL_PARTS, () => generateHTMLShellPartsImpl(meta, options, params, props, contentForTailwind), {
|
|
80
|
+
export function generateHTMLShellParts(meta, options, params, props, contentForTailwind, projectCSSPromise) {
|
|
81
|
+
return withSpan(SpanNames.HTML_GENERATE_SHELL_PARTS, () => generateHTMLShellPartsImpl(meta, options, params, props, contentForTailwind, projectCSSPromise), {
|
|
78
82
|
"html.slug": meta.slug || "",
|
|
79
83
|
"html.has_content": !!contentForTailwind,
|
|
80
84
|
"html.mode": options.mode || "production",
|
|
81
85
|
"html.is_local_project": options.isLocalProject ?? false,
|
|
82
86
|
});
|
|
83
87
|
}
|
|
84
|
-
async function generateHTMLShellPartsImpl(meta, options, params, props, contentForTailwind) {
|
|
88
|
+
async function generateHTMLShellPartsImpl(meta, options, params, props, contentForTailwind, prefetchedProjectCSSPromise) {
|
|
85
89
|
const stylesheetContent = options.globalCSS;
|
|
86
90
|
const isLocalProject = options.isLocalProject ?? false;
|
|
87
91
|
const isPreviewMode = options.environment === "preview";
|
|
@@ -92,40 +96,41 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
|
|
|
92
96
|
for (const cls of extractCandidates(contentForTailwind))
|
|
93
97
|
candidates.add(cls);
|
|
94
98
|
}
|
|
95
|
-
const projectSlug = options
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
cssHash = projectCSS.hash;
|
|
105
|
-
}
|
|
99
|
+
const projectSlug = resolveProjectCSSScope(options, meta.slug);
|
|
100
|
+
const projectCSSPromise = prefetchedProjectCSSPromise ??
|
|
101
|
+
(useProductionCSS && projectSlug !== "default"
|
|
102
|
+
? getProjectCSS(projectSlug, stylesheetContent, candidates, {
|
|
103
|
+
minify: true,
|
|
104
|
+
environment: options.environment,
|
|
105
|
+
buildMode: options.mode,
|
|
106
|
+
})
|
|
107
|
+
: Promise.resolve(null));
|
|
106
108
|
const { effectiveTitle, metaTags, linkTags, scriptTags, styleTags, lang, bodyClass, } = processMetadata(meta);
|
|
107
109
|
const noLayout = shouldDisableLayout(meta.frontmatter);
|
|
108
110
|
const rootAttributes = buildRootAttributes(meta.slug || "", options.mode || "production", noLayout, meta.ssrHash);
|
|
109
|
-
const
|
|
111
|
+
const skipDevHMR = isPreviewMode || options.noHmr;
|
|
112
|
+
// Error logger endpoint only enabled in local dev (returns 404 in preview/prod)
|
|
113
|
+
const skipErrorLogger = isPreviewMode;
|
|
114
|
+
// Enable dev scripts for local dev OR preview mode (for HMR support in Studio),
|
|
115
|
+
// unless a caller explicitly forces production client scripts for fair benchmarking.
|
|
116
|
+
const useDevScripts = !options.forceProductionScripts && (isLocalProject || isPreviewMode);
|
|
117
|
+
const importMapJsonPromise = buildImportMapJson({
|
|
110
118
|
projectDir: options.projectDir,
|
|
111
119
|
config: options.config,
|
|
112
120
|
customImports: options.importMap,
|
|
121
|
+
pretty: useDevScripts,
|
|
113
122
|
});
|
|
114
|
-
const hydrationDataJson = generateHydrationData(meta.slug || "", params ?? {}, props ?? {}, options);
|
|
123
|
+
const hydrationDataJson = generateHydrationData(meta.slug || "", params ?? {}, props ?? {}, options, { pretty: useDevScripts });
|
|
115
124
|
const nonce = options.nonce ?? "";
|
|
116
|
-
const skipDevHMR = isPreviewMode || options.noHmr;
|
|
117
|
-
// Error logger endpoint only enabled in local dev (returns 404 in preview/prod)
|
|
118
|
-
const skipErrorLogger = isPreviewMode;
|
|
119
|
-
// Enable dev scripts for local dev OR preview mode (for HMR support in Studio)
|
|
120
|
-
const useDevScripts = isLocalProject || isPreviewMode;
|
|
121
125
|
const modeScripts = useDevScripts
|
|
122
126
|
? getDevScripts(meta.slug || "", options.config, params, props, nonce, {
|
|
123
127
|
skipDevHMR,
|
|
124
128
|
skipErrorLogger,
|
|
125
129
|
})
|
|
126
130
|
: getProdScripts(meta.slug || "", params, props, nonce);
|
|
127
|
-
const modeStyles = useDevScripts ?
|
|
131
|
+
const modeStyles = useDevScripts ? getErrorOverlayStyles(nonce) : "";
|
|
128
132
|
const modulePreloadHints = generateModulePreloadHints(options);
|
|
133
|
+
const importMapJson = await profilePhase("html.import_map", () => importMapJsonPromise);
|
|
129
134
|
// Preload critical React dependencies to avoid waterfall delays.
|
|
130
135
|
// jsx-runtime is discovered late (only when modules execute), adding ~500ms latency.
|
|
131
136
|
const importMapData = JSON.parse(importMapJson);
|
|
@@ -133,7 +138,10 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
|
|
|
133
138
|
const criticalDepsPreload = jsxRuntimeUrl
|
|
134
139
|
? `<link rel="modulepreload" href="${jsxRuntimeUrl}">`
|
|
135
140
|
: "";
|
|
136
|
-
const
|
|
141
|
+
const prodHydrationModulePreload = useDevScripts
|
|
142
|
+
? ""
|
|
143
|
+
: `<link rel="modulepreload" href="${PROD_HYDRATION_MODULE_PATH}">`;
|
|
144
|
+
const nonceAttr = buildNonceAttribute(nonce);
|
|
137
145
|
// Expose project slug for runtime error overlay "Fix in Veryfront" button
|
|
138
146
|
const overlaySlug = options.projectId || meta.slug;
|
|
139
147
|
const slugForOverlay = useDevScripts && overlaySlug
|
|
@@ -176,6 +184,8 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
|
|
|
176
184
|
: "";
|
|
177
185
|
let tailwindCSSBlock = "";
|
|
178
186
|
if (useProductionCSS) {
|
|
187
|
+
const projectCSS = await profilePhase("html.project_css", () => projectCSSPromise);
|
|
188
|
+
const cssHash = projectCSS?.hash ?? "";
|
|
179
189
|
if (cssHash) {
|
|
180
190
|
tailwindCSSBlock = `<link rel="stylesheet" href="/_vf/css/${cssHash}.css">`;
|
|
181
191
|
}
|
|
@@ -189,8 +199,7 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
|
|
|
189
199
|
}
|
|
190
200
|
else {
|
|
191
201
|
// Dev/preview: use link tag for HMR cache-busting
|
|
192
|
-
tailwindCSSBlock =
|
|
193
|
-
`<link id="vf-tailwind-css" rel="stylesheet" href="/_vf_styles/styles.css?t=${Date.now()}">`;
|
|
202
|
+
tailwindCSSBlock = getPreviewStylesheetLink();
|
|
194
203
|
}
|
|
195
204
|
// Markdown styles: .md files with prose !== false get GitHub markdown CSS
|
|
196
205
|
const isMarkdownPreview = options.pageType === "md" &&
|
|
@@ -217,6 +226,7 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
|
|
|
217
226
|
<!-- Modulepreload hints for faster cold start -->
|
|
218
227
|
${modulePreloadHints}
|
|
219
228
|
${criticalDepsPreload}
|
|
229
|
+
${prodHydrationModulePreload}
|
|
220
230
|
|
|
221
231
|
<!-- Tailwind CSS: Server-side JIT compiled -->
|
|
222
232
|
${tailwindCSSBlock}
|
|
@@ -239,7 +249,7 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
|
|
|
239
249
|
sourceHash: options.sourceHash,
|
|
240
250
|
})
|
|
241
251
|
: "";
|
|
242
|
-
const previewHMRScript = isPreviewMode
|
|
252
|
+
const previewHMRScript = isPreviewMode && !options.forceProductionScripts
|
|
243
253
|
? `<script src="/_veryfront/preview-hmr.js"${nonceAttr}></script>`
|
|
244
254
|
: "";
|
|
245
255
|
const mermaidScript = isMarkdownPreview
|
|
@@ -276,10 +286,10 @@ mermaid.run();
|
|
|
276
286
|
</html>`;
|
|
277
287
|
return { start, end };
|
|
278
288
|
}
|
|
279
|
-
export function wrapInHTMLShell(content, meta, options, params, props) {
|
|
289
|
+
export function wrapInHTMLShell(content, meta, options, params, props, projectCSSPromise) {
|
|
280
290
|
return withSpan(SpanNames.HTML_WRAP_IN_SHELL, async () => {
|
|
281
291
|
const cleanedContent = content.trim();
|
|
282
|
-
const { start, end } = await generateHTMLShellParts(meta, options, params, props, cleanedContent);
|
|
292
|
+
const { start, end } = await generateHTMLShellParts(meta, options, params, props, cleanedContent, projectCSSPromise);
|
|
283
293
|
return `${start}${cleanedContent}${end}`;
|
|
284
294
|
}, {
|
|
285
295
|
"html.slug": meta.slug || "",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getLoaderScript, getRendererScript, getRouterScript } from "./templates/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { buildNonceAttribute } from "../html-escape.js";
|
|
3
3
|
export function generateDevClientRendererScript(nonce) {
|
|
4
|
-
const nonceAttr =
|
|
4
|
+
const nonceAttr = buildNonceAttribute(nonce);
|
|
5
5
|
return `
|
|
6
6
|
<script type="module"${nonceAttr}>
|
|
7
7
|
import * as React from 'react';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildNonceAttribute } from "../html-escape.js";
|
|
2
2
|
export function generateDevComponentManifestScript(config, nonce) {
|
|
3
|
-
const nonceAttr =
|
|
3
|
+
const nonceAttr = buildNonceAttribute(nonce);
|
|
4
4
|
const components = config.dev?.components ?? [];
|
|
5
5
|
return `
|
|
6
6
|
<script${nonceAttr}>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-error-logger.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-error-logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev-error-logger.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-error-logger.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAuDnE"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function getOpenScriptTag(nonce) {
|
|
3
|
-
return nonce ? `<script nonce="${escapeHtml(nonce)}">` : "<script>";
|
|
4
|
-
}
|
|
1
|
+
import { buildNonceAttribute } from "../html-escape.js";
|
|
5
2
|
export function generateDevErrorLoggerScript(nonce) {
|
|
6
|
-
const openScriptTag = getOpenScriptTag(nonce);
|
|
7
3
|
return `
|
|
8
4
|
<!-- Client-side error logger -->
|
|
9
|
-
${
|
|
5
|
+
<script${buildNonceAttribute(nonce)}>
|
|
10
6
|
(function() {
|
|
11
7
|
const logToServer = (level, message, details) => {
|
|
12
8
|
try {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildNonceAttribute } from "../html-escape.js";
|
|
2
2
|
import { generateDevErrorLoggerScript } from "./dev-error-logger.js";
|
|
3
3
|
import { generateDevComponentManifestScript } from "./dev-component-manifest.js";
|
|
4
4
|
import { generateDevClientRendererScript } from "./dev-client-renderer.js";
|
|
@@ -6,7 +6,7 @@ function generateHMRScript(config, nonce, skipDevHMR) {
|
|
|
6
6
|
// Skip dev HMR script when preview-hmr.js will be used instead
|
|
7
7
|
if (skipDevHMR || !config.dev?.hmr)
|
|
8
8
|
return "";
|
|
9
|
-
const nonceAttr =
|
|
9
|
+
const nonceAttr = buildNonceAttribute(nonce);
|
|
10
10
|
return `<script type="module" src="/_veryfront/hmr.js"${nonceAttr}></script>`;
|
|
11
11
|
}
|
|
12
12
|
export function getDevScripts(_slug, config, _params, _props, nonce, options) {
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { ComponentProps } from "../../types/index.js";
|
|
2
2
|
import type { HTMLGenerationOptions } from "../types.js";
|
|
3
|
-
export declare function generateHydrationData(slug: string, params: Record<string, string | string[]>, props: ComponentProps, options: HTMLGenerationOptions
|
|
3
|
+
export declare function generateHydrationData(slug: string, params: Record<string, string | string[]>, props: ComponentProps, options: HTMLGenerationOptions, serializeOptions?: {
|
|
4
|
+
pretty?: boolean;
|
|
5
|
+
}): string;
|
|
4
6
|
//# sourceMappingURL=hydration-data-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydration-data-generator.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/hydration-data-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAyBzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACzC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"hydration-data-generator.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/hydration-data-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAyBzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EACzC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,qBAAqB,EAC9B,gBAAgB,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GACtC,MAAM,CA2CR"}
|
|
@@ -18,7 +18,7 @@ function inferPageType(pagePath) {
|
|
|
18
18
|
return undefined;
|
|
19
19
|
return PAGE_TYPE_EXTENSIONS.has(ext) ? ext : undefined;
|
|
20
20
|
}
|
|
21
|
-
export function generateHydrationData(slug, params, props, options) {
|
|
21
|
+
export function generateHydrationData(slug, params, props, options, serializeOptions) {
|
|
22
22
|
const layouts = (options.nestedLayouts ?? [])
|
|
23
23
|
.map((layout) => {
|
|
24
24
|
const path = toProjectRelativePath(layout.path ?? layout.componentPath ?? "", options.projectDir);
|
|
@@ -54,5 +54,5 @@ export function generateHydrationData(slug, params, props, options) {
|
|
|
54
54
|
headings: options.headings,
|
|
55
55
|
studioEmbed: options.studioEmbed,
|
|
56
56
|
};
|
|
57
|
-
return JSON.stringify(data, null, 2);
|
|
57
|
+
return JSON.stringify(data, null, serializeOptions?.pretty ?? true ? 2 : undefined);
|
|
58
58
|
}
|
|
@@ -9,6 +9,6 @@ export { getDevScripts } from "./dev-scripts.js";
|
|
|
9
9
|
export { generateDevErrorLoggerScript } from "./dev-error-logger.js";
|
|
10
10
|
export { generateDevComponentManifestScript } from "./dev-component-manifest.js";
|
|
11
11
|
export { generateDevClientRendererScript } from "./dev-client-renderer.js";
|
|
12
|
-
export { getProdScripts } from "./prod-scripts.js";
|
|
12
|
+
export { generateProdHydrationModule, getProdScripts, PROD_HYDRATION_MODULE_PATH, } from "./prod-scripts.js";
|
|
13
13
|
export { generateProdHydrationScript } from "./prod-hydration.js";
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kCAAkC,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EACL,2BAA2B,EAC3B,cAAc,EACd,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -8,5 +8,5 @@ export { getDevScripts } from "./dev-scripts.js";
|
|
|
8
8
|
export { generateDevErrorLoggerScript } from "./dev-error-logger.js";
|
|
9
9
|
export { generateDevComponentManifestScript } from "./dev-component-manifest.js";
|
|
10
10
|
export { generateDevClientRendererScript } from "./dev-client-renderer.js";
|
|
11
|
-
export { getProdScripts } from "./prod-scripts.js";
|
|
11
|
+
export { generateProdHydrationModule, getProdScripts, PROD_HYDRATION_MODULE_PATH, } from "./prod-scripts.js";
|
|
12
12
|
export { generateProdHydrationScript } from "./prod-hydration.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildNonceAttribute } from "../html-escape.js";
|
|
2
2
|
export function generateProdHydrationScript(slug, _params, props, nonce) {
|
|
3
|
-
const nonceAttr =
|
|
3
|
+
const nonceAttr = buildNonceAttribute(nonce);
|
|
4
4
|
const pageProps = JSON.stringify(props ?? {});
|
|
5
5
|
return `
|
|
6
6
|
<script type="module"${nonceAttr}>
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
export declare const PROD_HYDRATION_MODULE_PATH = "/_veryfront/hydration-runtime.js";
|
|
2
|
+
export declare function generateProdHydrationModule(): string;
|
|
1
3
|
export declare function getProdScripts(_slug: string, _params?: Record<string, string | string[]>, _props?: Record<string, unknown>, nonce?: string): string;
|
|
2
4
|
//# sourceMappingURL=prod-scripts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prod-scripts.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/prod-scripts.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,
|
|
1
|
+
{"version":3,"file":"prod-scripts.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/prod-scripts.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,0BAA0B,qCAAqC,CAAC;AAE7E,wBAAgB,2BAA2B,IAAI,MAAM,CASpD;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,EAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAGR"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { getLoaderScript, getRendererScript, getRouterScript } from "./templates/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { buildNonceAttribute } from "../html-escape.js";
|
|
3
|
+
export const PROD_HYDRATION_MODULE_PATH = "/_veryfront/hydration-runtime.js";
|
|
4
|
+
export function generateProdHydrationModule() {
|
|
5
|
+
return [
|
|
6
|
+
`import * as React from 'react';`,
|
|
7
|
+
`import { RouterProvider, useRouter as useRouterFromModule } from 'veryfront/router';`,
|
|
8
|
+
`import { PageContextProvider } from 'veryfront/context';`,
|
|
9
|
+
getRouterScript().trim(),
|
|
10
|
+
getLoaderScript().trim(),
|
|
11
|
+
getRendererScript().trim(),
|
|
12
|
+
].join("\n\n");
|
|
13
|
+
}
|
|
3
14
|
export function getProdScripts(_slug, _params, _props, nonce) {
|
|
4
|
-
const nonceAttr =
|
|
5
|
-
return
|
|
6
|
-
<script type="module"${nonceAttr}>
|
|
7
|
-
import * as React from 'react';
|
|
8
|
-
import { RouterProvider, useRouter as useRouterFromModule } from 'veryfront/router';
|
|
9
|
-
import { PageContextProvider } from 'veryfront/context';
|
|
10
|
-
|
|
11
|
-
${getRouterScript()}
|
|
12
|
-
|
|
13
|
-
${getLoaderScript()}
|
|
14
|
-
|
|
15
|
-
${getRendererScript()}
|
|
16
|
-
</script>`;
|
|
15
|
+
const nonceAttr = buildNonceAttribute(nonce);
|
|
16
|
+
return `\n <script type="module" src="${PROD_HYDRATION_MODULE_PATH}"${nonceAttr}></script>`;
|
|
17
17
|
}
|
|
@@ -48,6 +48,7 @@ export declare const HTMLGenerationOptionsSchema: z.ZodObject<{
|
|
|
48
48
|
layoutProps: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
49
49
|
studioEmbed: z.ZodOptional<z.ZodBoolean>;
|
|
50
50
|
projectId: z.ZodOptional<z.ZodString>;
|
|
51
|
+
projectSlug: z.ZodOptional<z.ZodString>;
|
|
51
52
|
pageId: z.ZodOptional<z.ZodString>;
|
|
52
53
|
sourceHash: z.ZodOptional<z.ZodString>;
|
|
53
54
|
colorScheme: z.ZodOptional<z.ZodEnum<{
|
|
@@ -68,6 +69,7 @@ export declare const HTMLGenerationOptionsSchema: z.ZodObject<{
|
|
|
68
69
|
projectClasses: z.ZodOptional<z.ZodSet<z.ZodString>>;
|
|
69
70
|
isLocalProject: z.ZodOptional<z.ZodBoolean>;
|
|
70
71
|
noHmr: z.ZodOptional<z.ZodBoolean>;
|
|
72
|
+
forceProductionScripts: z.ZodOptional<z.ZodBoolean>;
|
|
71
73
|
}, z.core.$strip>;
|
|
72
74
|
export declare const HydrationDataSchema: z.ZodObject<{
|
|
73
75
|
slug: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/html/schemas/html.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;EAA4B,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;EAAoC,CAAC;AAEnE,eAAO,MAAM,cAAc;;;;;;;EAAkD,CAAC;AAC9E,eAAO,MAAM,0BAA0B;;;EAA+B,CAAC;AAEvE,eAAO,MAAM,2BAA2B
|
|
1
|
+
{"version":3,"file":"html.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/html/schemas/html.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;EAA4B,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;EAAoC,CAAC;AAEnE,eAAO,MAAM,cAAc;;;;;;;EAAkD,CAAC;AAC9E,eAAO,MAAM,0BAA0B;;;EAA+B,CAAC;AAEvE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2CtC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;iBAa9B,CAAC;AAGH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -24,6 +24,7 @@ export const HTMLGenerationOptionsSchema = z.object({
|
|
|
24
24
|
layoutProps: z.record(z.string(), z.record(z.string(), z.unknown())).optional(),
|
|
25
25
|
studioEmbed: z.boolean().optional(),
|
|
26
26
|
projectId: z.string().optional(),
|
|
27
|
+
projectSlug: z.string().optional(),
|
|
27
28
|
pageId: z.string().optional(),
|
|
28
29
|
sourceHash: z.string().optional(),
|
|
29
30
|
colorScheme: colorSchemeSchema.optional(),
|
|
@@ -40,6 +41,7 @@ export const HTMLGenerationOptionsSchema = z.object({
|
|
|
40
41
|
projectClasses: z.set(z.string()).optional(),
|
|
41
42
|
isLocalProject: z.boolean().optional(),
|
|
42
43
|
noHmr: z.boolean().optional(),
|
|
44
|
+
forceProductionScripts: z.boolean().optional(),
|
|
43
45
|
});
|
|
44
46
|
export const HydrationDataSchema = z.object({
|
|
45
47
|
slug: z.string(),
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* until HTML shell generation during SSR. This runs in parallel with other
|
|
6
6
|
* initialization work, reducing first-request latency by ~2-3 seconds.
|
|
7
7
|
*/
|
|
8
|
+
import { type FileSystem } from "../../platform/compat/fs.js";
|
|
8
9
|
import { createPreparedProjectCSSContext } from "./prepared-project-css-cache.js";
|
|
9
|
-
import type
|
|
10
|
+
import { type StyleScopeProfile } from "./style-scope-profile.js";
|
|
10
11
|
interface CSSPregenerationOptions {
|
|
11
12
|
/** Project slug for cache keying */
|
|
12
13
|
projectSlug: string;
|
|
@@ -39,7 +40,22 @@ export interface PreparedCSSArtifactBuildResult {
|
|
|
39
40
|
fromCache: boolean;
|
|
40
41
|
context: ReturnType<typeof createPreparedProjectCSSContext>;
|
|
41
42
|
}
|
|
43
|
+
interface LocalProjectSourceFilesOptions {
|
|
44
|
+
projectDir: string;
|
|
45
|
+
styleProfile: StyleScopeProfile;
|
|
46
|
+
fs?: FileSystem;
|
|
47
|
+
}
|
|
42
48
|
export declare function buildPreparedCSSArtifactFromFiles(options: CSSPregenerationOptions): Promise<PreparedCSSArtifactBuildResult>;
|
|
49
|
+
export declare function collectLocalProjectSourceFiles(options: LocalProjectSourceFilesOptions): Promise<Array<{
|
|
50
|
+
path: string;
|
|
51
|
+
content?: string;
|
|
52
|
+
}>>;
|
|
53
|
+
export declare function readLocalProjectStylesheet(projectDir: string, stylesheetPath?: string, fs?: FileSystem): Promise<string | undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Trigger prepared CSS generation in the background when the artifact is not
|
|
56
|
+
* already cached or currently being built.
|
|
57
|
+
*/
|
|
58
|
+
export declare function warmPreparedCSSArtifactFromFiles(options: CSSPregenerationOptions): Promise<boolean>;
|
|
43
59
|
/**
|
|
44
60
|
* Pre-generate and cache CSS from file list.
|
|
45
61
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-pregeneration.d.ts","sourceRoot":"","sources":["../../../../src/src/html/styles-builder/css-pregeneration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,+BAA+B,
|
|
1
|
+
{"version":3,"file":"css-pregeneration.d.ts","sourceRoot":"","sources":["../../../../src/src/html/styles-builder/css-pregeneration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EACL,+BAA+B,EAGhC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,0BAA0B,CAAC;AAMlC,UAAU,uBAAuB;IAC/B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,yDAAyD;IACzD,YAAY,EAAE,iBAAiB,CAAC;IAChC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC;CAC7D;AAED,UAAU,8BAA8B;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,EAAE,CAAC,EAAE,UAAU,CAAC;CACjB;AAED,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,8BAA8B,CAAC,CA0CzC;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAuCpD;AAED,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,cAAc,CAAC,EAAE,MAAM,EACvB,EAAE,GAAE,UAA+B,GAClC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoB7B;AAED;;;GAGG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAwClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,GAAG,SAAS,CAUpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/C,MAAM,GAAG,SAAS,CAgBpB"}
|
|
@@ -6,9 +6,14 @@
|
|
|
6
6
|
* initialization work, reducing first-request latency by ~2-3 seconds.
|
|
7
7
|
*/
|
|
8
8
|
import { serverLogger } from "../../utils/index.js";
|
|
9
|
+
import { join } from "../../platform/compat/path/index.js";
|
|
10
|
+
import { createFileSystem } from "../../platform/compat/fs.js";
|
|
9
11
|
import { extractCandidatesFromFiles, getProjectCSS } from "./tailwind-compiler.js";
|
|
10
|
-
import { createPreparedProjectCSSContext, storePreparedProjectCSS, } from "./prepared-project-css-cache.js";
|
|
12
|
+
import { createPreparedProjectCSSContext, storePreparedProjectCSS, tryGetPreparedProjectCSS, } from "./prepared-project-css-cache.js";
|
|
13
|
+
import { shouldIncludeStylePath, shouldTraverseStyleDirectory, } from "./style-scope-profile.js";
|
|
11
14
|
const logger = serverLogger.component("css-pregeneration");
|
|
15
|
+
const inFlightPreparedCSSBuilds = new Map();
|
|
16
|
+
const SOURCE_EXTENSIONS = [".tsx", ".jsx", ".mdx", ".ts", ".js"];
|
|
12
17
|
export async function buildPreparedCSSArtifactFromFiles(options) {
|
|
13
18
|
const { projectSlug, projectVersion, projectDir, files, styleProfile, stylesheet, stylesheetPath, minify = true, environment = "preview", buildMode = "production", } = options;
|
|
14
19
|
const resolvedStylesheet = stylesheet ?? findStylesheetFromFiles(files, stylesheetPath);
|
|
@@ -31,6 +36,103 @@ export async function buildPreparedCSSArtifactFromFiles(options) {
|
|
|
31
36
|
context,
|
|
32
37
|
};
|
|
33
38
|
}
|
|
39
|
+
export async function collectLocalProjectSourceFiles(options) {
|
|
40
|
+
const fs = options.fs ?? createFileSystem();
|
|
41
|
+
const files = [];
|
|
42
|
+
const scanDir = async (directoryPath) => {
|
|
43
|
+
let entries;
|
|
44
|
+
try {
|
|
45
|
+
entries = fs.readDir(directoryPath);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
for await (const entry of entries) {
|
|
51
|
+
const fullPath = join(directoryPath, entry.name);
|
|
52
|
+
if (entry.isDirectory) {
|
|
53
|
+
if (shouldTraverseStyleDirectory(options.styleProfile, fullPath, options.projectDir)) {
|
|
54
|
+
await scanDir(fullPath);
|
|
55
|
+
}
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (!entry.isFile)
|
|
59
|
+
continue;
|
|
60
|
+
if (!shouldIncludeStylePath(options.styleProfile, fullPath, options.projectDir))
|
|
61
|
+
continue;
|
|
62
|
+
if (!SOURCE_EXTENSIONS.some((extension) => entry.name.endsWith(extension)))
|
|
63
|
+
continue;
|
|
64
|
+
try {
|
|
65
|
+
files.push({
|
|
66
|
+
path: fullPath,
|
|
67
|
+
content: await fs.readTextFile(fullPath),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// ignore unreadable files during warmup
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
await scanDir(options.projectDir);
|
|
76
|
+
return files;
|
|
77
|
+
}
|
|
78
|
+
export async function readLocalProjectStylesheet(projectDir, stylesheetPath, fs = createFileSystem()) {
|
|
79
|
+
const candidatePaths = stylesheetPath ? [stylesheetPath.replace(/^\/+/, "")] : [
|
|
80
|
+
"globals.css",
|
|
81
|
+
"global.css",
|
|
82
|
+
"styles/globals.css",
|
|
83
|
+
"app/globals.css",
|
|
84
|
+
"src/globals.css",
|
|
85
|
+
"src/styles/globals.css",
|
|
86
|
+
];
|
|
87
|
+
for (const relativePath of candidatePaths) {
|
|
88
|
+
const absolutePath = join(projectDir, relativePath);
|
|
89
|
+
try {
|
|
90
|
+
return await fs.readTextFile(absolutePath);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
// keep searching
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Trigger prepared CSS generation in the background when the artifact is not
|
|
100
|
+
* already cached or currently being built.
|
|
101
|
+
*/
|
|
102
|
+
export async function warmPreparedCSSArtifactFromFiles(options) {
|
|
103
|
+
const stylesheet = options.stylesheet ??
|
|
104
|
+
findStylesheetFromFiles(options.files, options.stylesheetPath);
|
|
105
|
+
const context = createPreparedProjectCSSContext(options.projectSlug, options.projectVersion, stylesheet, options.styleProfile.hash, {
|
|
106
|
+
minify: options.minify ?? true,
|
|
107
|
+
environment: options.environment ?? "preview",
|
|
108
|
+
buildMode: options.buildMode ?? "production",
|
|
109
|
+
});
|
|
110
|
+
if (await tryGetPreparedProjectCSS(context))
|
|
111
|
+
return false;
|
|
112
|
+
if (inFlightPreparedCSSBuilds.has(context.cacheKey))
|
|
113
|
+
return false;
|
|
114
|
+
const task = buildPreparedCSSArtifactFromFiles({
|
|
115
|
+
...options,
|
|
116
|
+
stylesheet,
|
|
117
|
+
}).then(() => {
|
|
118
|
+
logger.debug("Warm prepared CSS complete", {
|
|
119
|
+
projectSlug: options.projectSlug,
|
|
120
|
+
projectVersion: options.projectVersion,
|
|
121
|
+
cacheKey: context.cacheKey,
|
|
122
|
+
});
|
|
123
|
+
}).catch((error) => {
|
|
124
|
+
logger.debug("Warm prepared CSS failed", {
|
|
125
|
+
projectSlug: options.projectSlug,
|
|
126
|
+
projectVersion: options.projectVersion,
|
|
127
|
+
cacheKey: context.cacheKey,
|
|
128
|
+
error: error instanceof Error ? error.message : String(error),
|
|
129
|
+
});
|
|
130
|
+
}).finally(() => {
|
|
131
|
+
inFlightPreparedCSSBuilds.delete(context.cacheKey);
|
|
132
|
+
});
|
|
133
|
+
inFlightPreparedCSSBuilds.set(context.cacheKey, task);
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
34
136
|
/**
|
|
35
137
|
* Pre-generate and cache CSS from file list.
|
|
36
138
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Z_INDEX_ERROR_OVERLAY } from "../../utils/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { buildNonceAttribute } from "../html-escape.js";
|
|
3
3
|
export function getDevStyles(nonce) {
|
|
4
|
-
const nonceAttr =
|
|
4
|
+
const nonceAttr = buildNonceAttribute(nonce);
|
|
5
5
|
return `
|
|
6
6
|
<style${nonceAttr}>
|
|
7
7
|
#veryfront-error-overlay {
|
package/esm/src/html/utils.d.ts
CHANGED
|
@@ -4,8 +4,10 @@ interface BuildImportMapOptions {
|
|
|
4
4
|
projectDir?: string;
|
|
5
5
|
config?: VeryfrontConfig;
|
|
6
6
|
customImports?: Record<string, string>;
|
|
7
|
+
pretty?: boolean;
|
|
7
8
|
}
|
|
8
9
|
export declare function buildImportMapJson(options?: BuildImportMapOptions | Record<string, string>): Promise<string>;
|
|
10
|
+
export declare function clearImportMapCache(): void;
|
|
9
11
|
export declare function shouldDisableLayout(frontmatter?: Record<string, unknown>): boolean;
|
|
10
12
|
export {};
|
|
11
13
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/html/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc1D,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAQR;AAiND,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACvD,OAAO,CAAC,MAAM,CAAC,CA4DjB;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAElF"}
|