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,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";
|
|
8
|
+
import { buildNonceAttribute, escapeHTML } from "./html-escape.js";
|
|
9
|
+
import { generateHydrationData, getDevScripts, getProdScripts, PROD_HYDRATION_MODULE_PATH, } from "./hydration-script-builder/index.js";
|
|
9
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
|
}
|
|
@@ -216,6 +226,7 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
|
|
|
216
226
|
<!-- Modulepreload hints for faster cold start -->
|
|
217
227
|
${modulePreloadHints}
|
|
218
228
|
${criticalDepsPreload}
|
|
229
|
+
${prodHydrationModulePreload}
|
|
219
230
|
|
|
220
231
|
<!-- Tailwind CSS: Server-side JIT compiled -->
|
|
221
232
|
${tailwindCSSBlock}
|
|
@@ -238,7 +249,7 @@ async function generateHTMLShellPartsImpl(meta, options, params, props, contentF
|
|
|
238
249
|
sourceHash: options.sourceHash,
|
|
239
250
|
})
|
|
240
251
|
: "";
|
|
241
|
-
const previewHMRScript = isPreviewMode
|
|
252
|
+
const previewHMRScript = isPreviewMode && !options.forceProductionScripts
|
|
242
253
|
? `<script src="/_veryfront/preview-hmr.js"${nonceAttr}></script>`
|
|
243
254
|
: "";
|
|
244
255
|
const mermaidScript = isMarkdownPreview
|
|
@@ -275,10 +286,10 @@ mermaid.run();
|
|
|
275
286
|
</html>`;
|
|
276
287
|
return { start, end };
|
|
277
288
|
}
|
|
278
|
-
export function wrapInHTMLShell(content, meta, options, params, props) {
|
|
289
|
+
export function wrapInHTMLShell(content, meta, options, params, props, projectCSSPromise) {
|
|
279
290
|
return withSpan(SpanNames.HTML_WRAP_IN_SHELL, async () => {
|
|
280
291
|
const cleanedContent = content.trim();
|
|
281
|
-
const { start, end } = await generateHTMLShellParts(meta, options, params, props, cleanedContent);
|
|
292
|
+
const { start, end } = await generateHTMLShellParts(meta, options, params, props, cleanedContent, projectCSSPromise);
|
|
282
293
|
return `${start}${cleanedContent}${end}`;
|
|
283
294
|
}, {
|
|
284
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"}
|