@qzsy/vinext 0.1.7
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/LICENSE +21 -0
- package/README.md +773 -0
- package/dist/build/assets-ignore.d.ts +32 -0
- package/dist/build/assets-ignore.js +48 -0
- package/dist/build/clean-output.d.ts +13 -0
- package/dist/build/clean-output.js +34 -0
- package/dist/build/client-build-config.d.ts +171 -0
- package/dist/build/client-build-config.js +270 -0
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +213 -0
- package/dist/build/google-fonts/build-url.d.ts +9 -0
- package/dist/build/google-fonts/build-url.js +28 -0
- package/dist/build/google-fonts/fallback-metrics-data.js +14029 -0
- package/dist/build/google-fonts/fallback-metrics.d.ts +12 -0
- package/dist/build/google-fonts/fallback-metrics.js +44 -0
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +16 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +28 -0
- package/dist/build/google-fonts/font-data.js +24983 -0
- package/dist/build/google-fonts/font-metadata.d.ts +16 -0
- package/dist/build/google-fonts/font-metadata.js +5 -0
- package/dist/build/google-fonts/get-axes.d.ts +6 -0
- package/dist/build/google-fonts/get-axes.js +37 -0
- package/dist/build/google-fonts/sort-variants.d.ts +4 -0
- package/dist/build/google-fonts/sort-variants.js +12 -0
- package/dist/build/google-fonts/validate.d.ts +27 -0
- package/dist/build/google-fonts/validate.js +54 -0
- package/dist/build/inline-css.d.ts +6 -0
- package/dist/build/inline-css.js +48 -0
- package/dist/build/layout-classification-types.d.ts +61 -0
- package/dist/build/layout-classification-types.js +1 -0
- package/dist/build/layout-classification.d.ts +59 -0
- package/dist/build/layout-classification.js +98 -0
- package/dist/build/next-client-runtime-manifests.d.ts +14 -0
- package/dist/build/next-client-runtime-manifests.js +39 -0
- package/dist/build/nitro-route-rules.d.ts +49 -0
- package/dist/build/nitro-route-rules.js +79 -0
- package/dist/build/precompress.d.ts +27 -0
- package/dist/build/precompress.js +110 -0
- package/dist/build/prerender.d.ts +209 -0
- package/dist/build/prerender.js +932 -0
- package/dist/build/report.d.ts +132 -0
- package/dist/build/report.js +504 -0
- package/dist/build/route-classification-injector.d.ts +34 -0
- package/dist/build/route-classification-injector.js +59 -0
- package/dist/build/route-classification-manifest.d.ts +52 -0
- package/dist/build/route-classification-manifest.js +143 -0
- package/dist/build/run-prerender.d.ts +61 -0
- package/dist/build/run-prerender.js +224 -0
- package/dist/build/server-manifest.d.ts +18 -0
- package/dist/build/server-manifest.js +22 -0
- package/dist/build/ssr-manifest.d.ts +18 -0
- package/dist/build/ssr-manifest.js +69 -0
- package/dist/build/standalone.d.ts +31 -0
- package/dist/build/standalone.js +203 -0
- package/dist/build/static-export.d.ts +55 -0
- package/dist/build/static-export.js +60 -0
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/cache.d.ts +2 -0
- package/dist/cache.js +2 -0
- package/dist/check.d.ts +87 -0
- package/dist/check.js +1037 -0
- package/dist/cli-args.d.ts +33 -0
- package/dist/cli-args.js +124 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +744 -0
- package/dist/client/app-nav-failure-handler.d.ts +8 -0
- package/dist/client/app-nav-failure-handler.js +44 -0
- package/dist/client/empty-module.d.ts +1 -0
- package/dist/client/empty-module.js +1 -0
- package/dist/client/instrumentation-client-inject.d.ts +33 -0
- package/dist/client/instrumentation-client-inject.js +55 -0
- package/dist/client/instrumentation-client-state.d.ts +9 -0
- package/dist/client/instrumentation-client-state.js +17 -0
- package/dist/client/instrumentation-client.d.ts +7 -0
- package/dist/client/instrumentation-client.js +6 -0
- package/dist/client/navigation-runtime.d.ts +70 -0
- package/dist/client/navigation-runtime.js +169 -0
- package/dist/client/pages-router-link-navigation.d.ts +61 -0
- package/dist/client/pages-router-link-navigation.js +42 -0
- package/dist/client/validate-module-path.d.ts +17 -0
- package/dist/client/validate-module-path.js +24 -0
- package/dist/client/vinext-next-data.d.ts +44 -0
- package/dist/client/vinext-next-data.js +50 -0
- package/dist/client/window-next.d.ts +168 -0
- package/dist/client/window-next.js +57 -0
- package/dist/cloudflare/index.d.ts +3 -0
- package/dist/cloudflare/index.js +3 -0
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +102 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.d.ts +126 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.js +435 -0
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +82 -0
- package/dist/cloudflare/tpr.js +558 -0
- package/dist/config/config-matchers.d.ts +257 -0
- package/dist/config/config-matchers.js +1046 -0
- package/dist/config/dotenv.d.ts +56 -0
- package/dist/config/dotenv.js +88 -0
- package/dist/config/next-config.d.ts +540 -0
- package/dist/config/next-config.js +1050 -0
- package/dist/config/tsconfig-paths.d.ts +21 -0
- package/dist/config/tsconfig-paths.js +157 -0
- package/dist/deploy.d.ts +190 -0
- package/dist/deploy.js +1033 -0
- package/dist/entries/app-browser-entry.d.ts +29 -0
- package/dist/entries/app-browser-entry.js +83 -0
- package/dist/entries/app-rsc-entry.d.ts +81 -0
- package/dist/entries/app-rsc-entry.js +943 -0
- package/dist/entries/app-rsc-manifest.d.ts +53 -0
- package/dist/entries/app-rsc-manifest.js +294 -0
- package/dist/entries/app-ssr-entry.d.ts +15 -0
- package/dist/entries/app-ssr-entry.js +24 -0
- package/dist/entries/pages-client-entry.d.ts +11 -0
- package/dist/entries/pages-client-entry.js +204 -0
- package/dist/entries/pages-entry-helpers.d.ts +2 -0
- package/dist/entries/pages-entry-helpers.js +2 -0
- package/dist/entries/pages-server-entry.d.ts +11 -0
- package/dist/entries/pages-server-entry.js +398 -0
- package/dist/entries/runtime-entry-module.d.ts +25 -0
- package/dist/entries/runtime-entry-module.js +46 -0
- package/dist/index.d.ts +115 -0
- package/dist/index.js +2661 -0
- package/dist/init.d.ts +69 -0
- package/dist/init.js +253 -0
- package/dist/plugins/ast-utils.d.ts +20 -0
- package/dist/plugins/ast-utils.js +78 -0
- package/dist/plugins/async-hooks-stub.d.ts +18 -0
- package/dist/plugins/async-hooks-stub.js +40 -0
- package/dist/plugins/client-reference-dedup.d.ts +35 -0
- package/dist/plugins/client-reference-dedup.js +189 -0
- package/dist/plugins/css-data-url.d.ts +6 -0
- package/dist/plugins/css-data-url.js +83 -0
- package/dist/plugins/dynamic-preload-metadata.d.ts +13 -0
- package/dist/plugins/dynamic-preload-metadata.js +413 -0
- package/dist/plugins/extensionless-dynamic-import.d.ts +6 -0
- package/dist/plugins/extensionless-dynamic-import.js +155 -0
- package/dist/plugins/fonts.d.ts +95 -0
- package/dist/plugins/fonts.js +711 -0
- package/dist/plugins/import-meta-url.d.ts +16 -0
- package/dist/plugins/import-meta-url.js +353 -0
- package/dist/plugins/instrumentation-client.d.ts +6 -0
- package/dist/plugins/instrumentation-client.js +27 -0
- package/dist/plugins/middleware-export-validation.d.ts +5 -0
- package/dist/plugins/middleware-export-validation.js +36 -0
- package/dist/plugins/middleware-server-only.d.ts +53 -0
- package/dist/plugins/middleware-server-only.js +90 -0
- package/dist/plugins/og-asset-ownership.d.ts +27 -0
- package/dist/plugins/og-asset-ownership.js +285 -0
- package/dist/plugins/og-assets.d.ts +50 -0
- package/dist/plugins/og-assets.js +229 -0
- package/dist/plugins/optimize-imports.d.ts +42 -0
- package/dist/plugins/optimize-imports.js +587 -0
- package/dist/plugins/postcss.d.ts +26 -0
- package/dist/plugins/postcss.js +96 -0
- package/dist/plugins/remove-console.d.ts +21 -0
- package/dist/plugins/remove-console.js +177 -0
- package/dist/plugins/require-context.d.ts +6 -0
- package/dist/plugins/require-context.js +185 -0
- package/dist/plugins/rsc-client-reference-loaders.d.ts +6 -0
- package/dist/plugins/rsc-client-reference-loaders.js +46 -0
- package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
- package/dist/plugins/rsc-client-shim-excludes.js +35 -0
- package/dist/plugins/sass.d.ts +62 -0
- package/dist/plugins/sass.js +268 -0
- package/dist/plugins/server-externals-manifest.d.ts +26 -0
- package/dist/plugins/server-externals-manifest.js +81 -0
- package/dist/plugins/strip-server-exports.d.ts +21 -0
- package/dist/plugins/strip-server-exports.js +519 -0
- package/dist/plugins/typeof-window.d.ts +14 -0
- package/dist/plugins/typeof-window.js +150 -0
- package/dist/plugins/wasm-module-import.d.ts +15 -0
- package/dist/plugins/wasm-module-import.js +50 -0
- package/dist/routing/app-route-graph.d.ts +336 -0
- package/dist/routing/app-route-graph.js +1518 -0
- package/dist/routing/app-router.d.ts +30 -0
- package/dist/routing/app-router.js +59 -0
- package/dist/routing/file-matcher.d.ts +60 -0
- package/dist/routing/file-matcher.js +147 -0
- package/dist/routing/pages-router.d.ts +48 -0
- package/dist/routing/pages-router.js +163 -0
- package/dist/routing/route-matching.d.ts +27 -0
- package/dist/routing/route-matching.js +42 -0
- package/dist/routing/route-pattern.d.ts +64 -0
- package/dist/routing/route-pattern.js +165 -0
- package/dist/routing/route-trie.d.ts +67 -0
- package/dist/routing/route-trie.js +143 -0
- package/dist/routing/route-validation.d.ts +10 -0
- package/dist/routing/route-validation.js +101 -0
- package/dist/routing/utils.d.ts +117 -0
- package/dist/routing/utils.js +242 -0
- package/dist/server/accept-encoding.d.ts +29 -0
- package/dist/server/accept-encoding.js +95 -0
- package/dist/server/api-handler.d.ts +17 -0
- package/dist/server/api-handler.js +276 -0
- package/dist/server/app-action-request.d.ts +4 -0
- package/dist/server/app-action-request.js +9 -0
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-bfcache-identity.d.ts +36 -0
- package/dist/server/app-bfcache-identity.js +156 -0
- package/dist/server/app-browser-action-result.d.ts +64 -0
- package/dist/server/app-browser-action-result.js +111 -0
- package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
- package/dist/server/app-browser-client-reuse-manifest.js +101 -0
- package/dist/server/app-browser-entry.d.ts +1 -0
- package/dist/server/app-browser-entry.js +1087 -0
- package/dist/server/app-browser-error.d.ts +13 -0
- package/dist/server/app-browser-error.js +52 -0
- package/dist/server/app-browser-history-controller.d.ts +104 -0
- package/dist/server/app-browser-history-controller.js +210 -0
- package/dist/server/app-browser-hydration.d.ts +32 -0
- package/dist/server/app-browser-hydration.js +29 -0
- package/dist/server/app-browser-interception-context.d.ts +24 -0
- package/dist/server/app-browser-interception-context.js +43 -0
- package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
- package/dist/server/app-browser-mpa-navigation.js +42 -0
- package/dist/server/app-browser-navigation-controller.d.ts +109 -0
- package/dist/server/app-browser-navigation-controller.js +465 -0
- package/dist/server/app-browser-popstate.d.ts +26 -0
- package/dist/server/app-browser-popstate.js +44 -0
- package/dist/server/app-browser-rsc-redirect.d.ts +38 -0
- package/dist/server/app-browser-rsc-redirect.js +64 -0
- package/dist/server/app-browser-server-action-client.d.ts +32 -0
- package/dist/server/app-browser-server-action-client.js +128 -0
- package/dist/server/app-browser-server-action-navigation.d.ts +6 -0
- package/dist/server/app-browser-server-action-navigation.js +9 -0
- package/dist/server/app-browser-state.d.ts +140 -0
- package/dist/server/app-browser-state.js +315 -0
- package/dist/server/app-browser-stream.d.ts +28 -0
- package/dist/server/app-browser-stream.js +122 -0
- package/dist/server/app-browser-visible-commit.d.ts +78 -0
- package/dist/server/app-browser-visible-commit.js +241 -0
- package/dist/server/app-client-reference-preloader.d.ts +14 -0
- package/dist/server/app-client-reference-preloader.js +44 -0
- package/dist/server/app-elements-wire.d.ts +192 -0
- package/dist/server/app-elements-wire.js +443 -0
- package/dist/server/app-elements.d.ts +9 -0
- package/dist/server/app-elements.js +18 -0
- package/dist/server/app-fallback-renderer.d.ts +89 -0
- package/dist/server/app-fallback-renderer.js +136 -0
- package/dist/server/app-history-state.d.ts +85 -0
- package/dist/server/app-history-state.js +223 -0
- package/dist/server/app-hook-warning-suppression.d.ts +6 -0
- package/dist/server/app-hook-warning-suppression.js +10 -0
- package/dist/server/app-inline-css-client.d.ts +6 -0
- package/dist/server/app-inline-css-client.js +35 -0
- package/dist/server/app-interception-context-header.d.ts +32 -0
- package/dist/server/app-interception-context-header.js +42 -0
- package/dist/server/app-layout-param-observation.d.ts +43 -0
- package/dist/server/app-layout-param-observation.js +168 -0
- package/dist/server/app-middleware.d.ts +46 -0
- package/dist/server/app-middleware.js +168 -0
- package/dist/server/app-mounted-slots-header.d.ts +35 -0
- package/dist/server/app-mounted-slots-header.js +58 -0
- package/dist/server/app-optimistic-routing.d.ts +53 -0
- package/dist/server/app-optimistic-routing.js +227 -0
- package/dist/server/app-page-boundary-render.d.ts +85 -0
- package/dist/server/app-page-boundary-render.js +305 -0
- package/dist/server/app-page-boundary.d.ts +102 -0
- package/dist/server/app-page-boundary.js +120 -0
- package/dist/server/app-page-cache-finalizer.d.ts +62 -0
- package/dist/server/app-page-cache-finalizer.js +122 -0
- package/dist/server/app-page-cache-render.d.ts +53 -0
- package/dist/server/app-page-cache-render.js +91 -0
- package/dist/server/app-page-cache.d.ts +83 -0
- package/dist/server/app-page-cache.js +272 -0
- package/dist/server/app-page-dispatch.d.ts +223 -0
- package/dist/server/app-page-dispatch.js +610 -0
- package/dist/server/app-page-element-builder.d.ts +96 -0
- package/dist/server/app-page-element-builder.js +205 -0
- package/dist/server/app-page-execution.d.ts +138 -0
- package/dist/server/app-page-execution.js +328 -0
- package/dist/server/app-page-head.d.ts +65 -0
- package/dist/server/app-page-head.js +228 -0
- package/dist/server/app-page-method.d.ts +15 -0
- package/dist/server/app-page-method.js +25 -0
- package/dist/server/app-page-params.d.ts +8 -0
- package/dist/server/app-page-params.js +39 -0
- package/dist/server/app-page-ppr-runtime.d.ts +7 -0
- package/dist/server/app-page-ppr-runtime.js +70 -0
- package/dist/server/app-page-probe.d.ts +134 -0
- package/dist/server/app-page-probe.js +276 -0
- package/dist/server/app-page-render-identity.d.ts +21 -0
- package/dist/server/app-page-render-identity.js +40 -0
- package/dist/server/app-page-render-observation.d.ts +36 -0
- package/dist/server/app-page-render-observation.js +82 -0
- package/dist/server/app-page-render.d.ts +111 -0
- package/dist/server/app-page-render.js +602 -0
- package/dist/server/app-page-request.d.ts +137 -0
- package/dist/server/app-page-request.js +216 -0
- package/dist/server/app-page-response.d.ts +68 -0
- package/dist/server/app-page-response.js +120 -0
- package/dist/server/app-page-route-wiring.d.ts +151 -0
- package/dist/server/app-page-route-wiring.js +452 -0
- package/dist/server/app-page-search-params-observation.d.ts +10 -0
- package/dist/server/app-page-search-params-observation.js +20 -0
- package/dist/server/app-page-segment-state.d.ts +9 -0
- package/dist/server/app-page-segment-state.js +80 -0
- package/dist/server/app-page-stream.d.ts +151 -0
- package/dist/server/app-page-stream.js +143 -0
- package/dist/server/app-pages-bridge.d.ts +63 -0
- package/dist/server/app-pages-bridge.js +63 -0
- package/dist/server/app-post-middleware-context.d.ts +15 -0
- package/dist/server/app-post-middleware-context.js +26 -0
- package/dist/server/app-ppr-fallback-shell-render.d.ts +18 -0
- package/dist/server/app-ppr-fallback-shell-render.js +26 -0
- package/dist/server/app-ppr-fallback-shell.d.ts +33 -0
- package/dist/server/app-ppr-fallback-shell.js +89 -0
- package/dist/server/app-prerender-endpoints.d.ts +18 -0
- package/dist/server/app-prerender-endpoints.js +94 -0
- package/dist/server/app-prerender-static-params.d.ts +30 -0
- package/dist/server/app-prerender-static-params.js +81 -0
- package/dist/server/app-render-dependency.d.ts +14 -0
- package/dist/server/app-render-dependency.js +41 -0
- package/dist/server/app-request-context.d.ts +20 -0
- package/dist/server/app-request-context.js +29 -0
- package/dist/server/app-route-handler-cache.d.ts +46 -0
- package/dist/server/app-route-handler-cache.js +78 -0
- package/dist/server/app-route-handler-dispatch.d.ts +49 -0
- package/dist/server/app-route-handler-dispatch.js +163 -0
- package/dist/server/app-route-handler-execution.d.ts +86 -0
- package/dist/server/app-route-handler-execution.js +128 -0
- package/dist/server/app-route-handler-policy.d.ts +55 -0
- package/dist/server/app-route-handler-policy.js +58 -0
- package/dist/server/app-route-handler-response.d.ts +28 -0
- package/dist/server/app-route-handler-response.js +145 -0
- package/dist/server/app-route-handler-runtime.d.ts +39 -0
- package/dist/server/app-route-handler-runtime.js +250 -0
- package/dist/server/app-route-module-loader.d.ts +91 -0
- package/dist/server/app-route-module-loader.js +83 -0
- package/dist/server/app-router-entry.d.ts +13 -0
- package/dist/server/app-router-entry.js +49 -0
- package/dist/server/app-rsc-cache-busting.d.ts +64 -0
- package/dist/server/app-rsc-cache-busting.js +206 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +8 -0
- package/dist/server/app-rsc-embedded-chunks.js +32 -0
- package/dist/server/app-rsc-error-handler.d.ts +20 -0
- package/dist/server/app-rsc-error-handler.js +28 -0
- package/dist/server/app-rsc-errors.d.ts +40 -0
- package/dist/server/app-rsc-errors.js +60 -0
- package/dist/server/app-rsc-handler.d.ts +201 -0
- package/dist/server/app-rsc-handler.js +538 -0
- package/dist/server/app-rsc-render-mode.d.ts +11 -0
- package/dist/server/app-rsc-render-mode.js +25 -0
- package/dist/server/app-rsc-request-normalization.d.ts +48 -0
- package/dist/server/app-rsc-request-normalization.js +75 -0
- package/dist/server/app-rsc-response-finalizer.d.ts +37 -0
- package/dist/server/app-rsc-response-finalizer.js +54 -0
- package/dist/server/app-rsc-route-matching.d.ts +93 -0
- package/dist/server/app-rsc-route-matching.js +134 -0
- package/dist/server/app-segment-config.d.ts +46 -0
- package/dist/server/app-segment-config.js +113 -0
- package/dist/server/app-server-action-execution.d.ts +219 -0
- package/dist/server/app-server-action-execution.js +767 -0
- package/dist/server/app-ssr-entry.d.ts +52 -0
- package/dist/server/app-ssr-entry.js +295 -0
- package/dist/server/app-ssr-error-meta.d.ts +13 -0
- package/dist/server/app-ssr-error-meta.js +48 -0
- package/dist/server/app-ssr-router-instance.d.ts +6 -0
- package/dist/server/app-ssr-router-instance.js +24 -0
- package/dist/server/app-ssr-stream.d.ts +60 -0
- package/dist/server/app-ssr-stream.js +408 -0
- package/dist/server/app-static-generation.d.ts +15 -0
- package/dist/server/app-static-generation.js +19 -0
- package/dist/server/app-visited-response-cache.d.ts +23 -0
- package/dist/server/app-visited-response-cache.js +19 -0
- package/dist/server/artifact-compatibility.d.ts +54 -0
- package/dist/server/artifact-compatibility.js +91 -0
- package/dist/server/before-interactive-head.d.ts +17 -0
- package/dist/server/before-interactive-head.js +35 -0
- package/dist/server/cache-control.d.ts +37 -0
- package/dist/server/cache-control.js +56 -0
- package/dist/server/cache-headers.d.ts +6 -0
- package/dist/server/cache-headers.js +17 -0
- package/dist/server/cache-proof.d.ts +364 -0
- package/dist/server/cache-proof.js +794 -0
- package/dist/server/client-reuse-manifest.d.ts +104 -0
- package/dist/server/client-reuse-manifest.js +209 -0
- package/dist/server/client-trace-metadata.d.ts +30 -0
- package/dist/server/client-trace-metadata.js +81 -0
- package/dist/server/cookie-utils.d.ts +12 -0
- package/dist/server/cookie-utils.js +18 -0
- package/dist/server/csp.d.ts +10 -0
- package/dist/server/csp.js +41 -0
- package/dist/server/default-global-error-module.d.ts +19 -0
- package/dist/server/default-global-error-module.js +18 -0
- package/dist/server/default-not-found-module.d.ts +19 -0
- package/dist/server/default-not-found-module.js +18 -0
- package/dist/server/defer-until-stream-consumed.d.ts +7 -0
- package/dist/server/defer-until-stream-consumed.js +34 -0
- package/dist/server/dev-error-overlay-store.d.ts +39 -0
- package/dist/server/dev-error-overlay-store.js +86 -0
- package/dist/server/dev-error-overlay.d.ts +51 -0
- package/dist/server/dev-error-overlay.js +1341 -0
- package/dist/server/dev-initial-server-error.d.ts +9 -0
- package/dist/server/dev-initial-server-error.js +26 -0
- package/dist/server/dev-lockfile.d.ts +109 -0
- package/dist/server/dev-lockfile.js +179 -0
- package/dist/server/dev-module-runner.d.ts +30 -0
- package/dist/server/dev-module-runner.js +91 -0
- package/dist/server/dev-origin-check.d.ts +62 -0
- package/dist/server/dev-origin-check.js +156 -0
- package/dist/server/dev-route-files.d.ts +6 -0
- package/dist/server/dev-route-files.js +71 -0
- package/dist/server/dev-server.d.ts +58 -0
- package/dist/server/dev-server.js +1114 -0
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
- package/dist/server/dev-stack-sourcemap.d.ts +43 -0
- package/dist/server/dev-stack-sourcemap.js +443 -0
- package/dist/server/document-initial-head.d.ts +6 -0
- package/dist/server/document-initial-head.js +33 -0
- package/dist/server/edge-api-runtime.d.ts +4 -0
- package/dist/server/edge-api-runtime.js +6 -0
- package/dist/server/file-based-metadata.d.ts +29 -0
- package/dist/server/file-based-metadata.js +401 -0
- package/dist/server/headers.d.ts +114 -0
- package/dist/server/headers.js +136 -0
- package/dist/server/html.d.ts +28 -0
- package/dist/server/html.js +41 -0
- package/dist/server/http-error-responses.d.ts +91 -0
- package/dist/server/http-error-responses.js +105 -0
- package/dist/server/hybrid-route-priority.d.ts +22 -0
- package/dist/server/hybrid-route-priority.js +33 -0
- package/dist/server/image-optimization.d.ts +130 -0
- package/dist/server/image-optimization.js +247 -0
- package/dist/server/implicit-tags.d.ts +6 -0
- package/dist/server/implicit-tags.js +44 -0
- package/dist/server/instrumentation-runtime.d.ts +49 -0
- package/dist/server/instrumentation-runtime.js +35 -0
- package/dist/server/instrumentation.d.ts +85 -0
- package/dist/server/instrumentation.js +130 -0
- package/dist/server/isr-cache.d.ts +127 -0
- package/dist/server/isr-cache.js +282 -0
- package/dist/server/isr-decision.d.ts +79 -0
- package/dist/server/isr-decision.js +70 -0
- package/dist/server/metadata-route-build-data.d.ts +24 -0
- package/dist/server/metadata-route-build-data.js +148 -0
- package/dist/server/metadata-route-response.d.ts +16 -0
- package/dist/server/metadata-route-response.js +205 -0
- package/dist/server/metadata-routes.d.ts +139 -0
- package/dist/server/metadata-routes.js +433 -0
- package/dist/server/middleware-matcher.d.ts +14 -0
- package/dist/server/middleware-matcher.js +111 -0
- package/dist/server/middleware-request-headers.d.ts +11 -0
- package/dist/server/middleware-request-headers.js +65 -0
- package/dist/server/middleware-response-headers.d.ts +12 -0
- package/dist/server/middleware-response-headers.js +42 -0
- package/dist/server/middleware-runtime.d.ts +67 -0
- package/dist/server/middleware-runtime.js +240 -0
- package/dist/server/middleware.d.ts +62 -0
- package/dist/server/middleware.js +114 -0
- package/dist/server/navigation-planner.d.ts +308 -0
- package/dist/server/navigation-planner.js +831 -0
- package/dist/server/navigation-trace.d.ts +68 -0
- package/dist/server/navigation-trace.js +71 -0
- package/dist/server/next-error-digest.d.ts +44 -0
- package/dist/server/next-error-digest.js +40 -0
- package/dist/server/normalize-path.d.ts +38 -0
- package/dist/server/normalize-path.js +70 -0
- package/dist/server/open-redirect.d.ts +12 -0
- package/dist/server/open-redirect.js +21 -0
- package/dist/server/operation-token.d.ts +40 -0
- package/dist/server/operation-token.js +85 -0
- package/dist/server/otel-tracer-extension.d.ts +45 -0
- package/dist/server/otel-tracer-extension.js +89 -0
- package/dist/server/pages-api-route.d.ts +83 -0
- package/dist/server/pages-api-route.js +75 -0
- package/dist/server/pages-asset-tags.d.ts +78 -0
- package/dist/server/pages-asset-tags.js +126 -0
- package/dist/server/pages-body-parser-config.d.ts +59 -0
- package/dist/server/pages-body-parser-config.js +77 -0
- package/dist/server/pages-data-route.d.ts +121 -0
- package/dist/server/pages-data-route.js +157 -0
- package/dist/server/pages-default-404.d.ts +30 -0
- package/dist/server/pages-default-404.js +38 -0
- package/dist/server/pages-dev-module-url.d.ts +4 -0
- package/dist/server/pages-dev-module-url.js +15 -0
- package/dist/server/pages-document-initial-props.d.ts +77 -0
- package/dist/server/pages-document-initial-props.js +109 -0
- package/dist/server/pages-get-initial-props.d.ts +67 -0
- package/dist/server/pages-get-initial-props.js +92 -0
- package/dist/server/pages-i18n.d.ts +106 -0
- package/dist/server/pages-i18n.js +183 -0
- package/dist/server/pages-media-type.d.ts +15 -0
- package/dist/server/pages-media-type.js +24 -0
- package/dist/server/pages-node-compat.d.ts +55 -0
- package/dist/server/pages-node-compat.js +235 -0
- package/dist/server/pages-page-data.d.ts +223 -0
- package/dist/server/pages-page-data.js +484 -0
- package/dist/server/pages-page-handler.d.ts +100 -0
- package/dist/server/pages-page-handler.js +403 -0
- package/dist/server/pages-page-method.d.ts +47 -0
- package/dist/server/pages-page-method.js +17 -0
- package/dist/server/pages-page-response.d.ts +138 -0
- package/dist/server/pages-page-response.js +285 -0
- package/dist/server/pages-readiness.d.ts +36 -0
- package/dist/server/pages-readiness.js +21 -0
- package/dist/server/pages-request-pipeline.d.ts +116 -0
- package/dist/server/pages-request-pipeline.js +311 -0
- package/dist/server/pages-revalidate.d.ts +15 -0
- package/dist/server/pages-revalidate.js +19 -0
- package/dist/server/pages-serializable-props.d.ts +24 -0
- package/dist/server/pages-serializable-props.js +67 -0
- package/dist/server/pregenerated-concrete-paths.d.ts +16 -0
- package/dist/server/pregenerated-concrete-paths.js +61 -0
- package/dist/server/prerender-manifest.d.ts +33 -0
- package/dist/server/prerender-manifest.js +54 -0
- package/dist/server/prerender-route-params.d.ts +23 -0
- package/dist/server/prerender-route-params.js +113 -0
- package/dist/server/prerender-work-unit-setup.d.ts +6 -0
- package/dist/server/prerender-work-unit-setup.js +28 -0
- package/dist/server/prod-server.d.ts +148 -0
- package/dist/server/prod-server.js +1136 -0
- package/dist/server/proxy-trust.d.ts +40 -0
- package/dist/server/proxy-trust.js +68 -0
- package/dist/server/request-log.d.ts +39 -0
- package/dist/server/request-log.js +56 -0
- package/dist/server/request-pipeline.d.ts +187 -0
- package/dist/server/request-pipeline.js +447 -0
- package/dist/server/rsc-stream-hints.d.ts +10 -0
- package/dist/server/rsc-stream-hints.js +41 -0
- package/dist/server/seed-cache.d.ts +29 -0
- package/dist/server/seed-cache.js +125 -0
- package/dist/server/server-action-not-found.d.ts +21 -0
- package/dist/server/server-action-not-found.js +62 -0
- package/dist/server/server-globals.d.ts +4 -0
- package/dist/server/server-globals.js +35 -0
- package/dist/server/skip-cache-proof.d.ts +61 -0
- package/dist/server/skip-cache-proof.js +168 -0
- package/dist/server/socket-error-backstop.d.ts +34 -0
- package/dist/server/socket-error-backstop.js +200 -0
- package/dist/server/static-file-cache.d.ts +56 -0
- package/dist/server/static-file-cache.js +231 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
- package/dist/server/static-layout-client-reuse-proof.js +33 -0
- package/dist/server/streaming-metadata.d.ts +4 -0
- package/dist/server/streaming-metadata.js +8 -0
- package/dist/server/worker-utils.d.ts +7 -0
- package/dist/server/worker-utils.js +99 -0
- package/dist/shims/amp.d.ts +19 -0
- package/dist/shims/amp.js +23 -0
- package/dist/shims/app-router-scroll-state.d.ts +15 -0
- package/dist/shims/app-router-scroll-state.js +61 -0
- package/dist/shims/app-router-scroll.d.ts +29 -0
- package/dist/shims/app-router-scroll.js +141 -0
- package/dist/shims/app.d.ts +42 -0
- package/dist/shims/app.js +48 -0
- package/dist/shims/before-interactive-context.d.ts +40 -0
- package/dist/shims/before-interactive-context.js +8 -0
- package/dist/shims/cache-for-request.d.ts +57 -0
- package/dist/shims/cache-for-request.js +72 -0
- package/dist/shims/cache-handler.d.ts +106 -0
- package/dist/shims/cache-handler.js +176 -0
- package/dist/shims/cache-request-state.d.ts +47 -0
- package/dist/shims/cache-request-state.js +126 -0
- package/dist/shims/cache-runtime.d.ts +83 -0
- package/dist/shims/cache-runtime.js +452 -0
- package/dist/shims/cache.d.ts +145 -0
- package/dist/shims/cache.js +401 -0
- package/dist/shims/cdn-cache.d.ts +125 -0
- package/dist/shims/cdn-cache.js +100 -0
- package/dist/shims/client-hook-error.d.ts +13 -0
- package/dist/shims/client-hook-error.js +17 -0
- package/dist/shims/client-locale.d.ts +14 -0
- package/dist/shims/client-locale.js +11 -0
- package/dist/shims/client-only.d.ts +1 -0
- package/dist/shims/client-only.js +1 -0
- package/dist/shims/compat-router.d.ts +16 -0
- package/dist/shims/compat-router.js +25 -0
- package/dist/shims/config.d.ts +28 -0
- package/dist/shims/config.js +21 -0
- package/dist/shims/constants.d.ts +130 -0
- package/dist/shims/constants.js +167 -0
- package/dist/shims/default-global-error.d.ts +31 -0
- package/dist/shims/default-global-error.js +179 -0
- package/dist/shims/default-not-found.d.ts +11 -0
- package/dist/shims/default-not-found.js +59 -0
- package/dist/shims/document.d.ts +92 -0
- package/dist/shims/document.js +76 -0
- package/dist/shims/dynamic-preload-chunks.d.ts +8 -0
- package/dist/shims/dynamic-preload-chunks.js +79 -0
- package/dist/shims/dynamic.d.ts +35 -0
- package/dist/shims/dynamic.js +204 -0
- package/dist/shims/error-boundary-navigation.d.ts +7 -0
- package/dist/shims/error-boundary-navigation.js +44 -0
- package/dist/shims/error-boundary.d.ts +155 -0
- package/dist/shims/error-boundary.js +342 -0
- package/dist/shims/error.d.ts +31 -0
- package/dist/shims/error.js +123 -0
- package/dist/shims/error.react-server.d.ts +9 -0
- package/dist/shims/error.react-server.js +6 -0
- package/dist/shims/fetch-cache.d.ts +136 -0
- package/dist/shims/fetch-cache.js +766 -0
- package/dist/shims/font-google-base.d.ts +83 -0
- package/dist/shims/font-google-base.js +290 -0
- package/dist/shims/font-google.d.ts +2 -0
- package/dist/shims/font-google.js +2 -0
- package/dist/shims/font-local.d.ts +50 -0
- package/dist/shims/font-local.js +195 -0
- package/dist/shims/font-utils.d.ts +56 -0
- package/dist/shims/font-utils.js +107 -0
- package/dist/shims/form.d.ts +19 -0
- package/dist/shims/form.js +236 -0
- package/dist/shims/hash-scroll.d.ts +10 -0
- package/dist/shims/hash-scroll.js +47 -0
- package/dist/shims/head-state.d.ts +16 -0
- package/dist/shims/head-state.js +43 -0
- package/dist/shims/head.d.ts +73 -0
- package/dist/shims/head.js +340 -0
- package/dist/shims/headers.d.ts +253 -0
- package/dist/shims/headers.js +754 -0
- package/dist/shims/i18n-context.d.ts +22 -0
- package/dist/shims/i18n-context.js +42 -0
- package/dist/shims/i18n-state.d.ts +14 -0
- package/dist/shims/i18n-state.js +38 -0
- package/dist/shims/image-config.d.ts +45 -0
- package/dist/shims/image-config.js +85 -0
- package/dist/shims/image.d.ts +55 -0
- package/dist/shims/image.js +582 -0
- package/dist/shims/internal/als-registry.d.ts +14 -0
- package/dist/shims/internal/als-registry.js +80 -0
- package/dist/shims/internal/api-utils.d.ts +14 -0
- package/dist/shims/internal/api-utils.js +1 -0
- package/dist/shims/internal/app-page-props-cache-key.d.ts +5 -0
- package/dist/shims/internal/app-page-props-cache-key.js +16 -0
- package/dist/shims/internal/app-route-detection.d.ts +39 -0
- package/dist/shims/internal/app-route-detection.js +62 -0
- package/dist/shims/internal/app-router-context.d.ts +31 -0
- package/dist/shims/internal/app-router-context.js +28 -0
- package/dist/shims/internal/cookie-serialize.d.ts +45 -0
- package/dist/shims/internal/cookie-serialize.js +49 -0
- package/dist/shims/internal/cookies.d.ts +2 -0
- package/dist/shims/internal/cookies.js +2 -0
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +31 -0
- package/dist/shims/internal/hybrid-client-route-owner.js +143 -0
- package/dist/shims/internal/interpolate-as.d.ts +25 -0
- package/dist/shims/internal/interpolate-as.js +196 -0
- package/dist/shims/internal/link-status-registry.d.ts +43 -0
- package/dist/shims/internal/link-status-registry.js +42 -0
- package/dist/shims/internal/make-hanging-promise.d.ts +15 -0
- package/dist/shims/internal/make-hanging-promise.js +44 -0
- package/dist/shims/internal/navigation-untracked.d.ts +35 -0
- package/dist/shims/internal/navigation-untracked.js +56 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +54 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js +121 -0
- package/dist/shims/internal/pages-data-target.d.ts +62 -0
- package/dist/shims/internal/pages-data-target.js +98 -0
- package/dist/shims/internal/pages-data-url.d.ts +41 -0
- package/dist/shims/internal/pages-data-url.js +71 -0
- package/dist/shims/internal/pages-router-accessor.d.ts +19 -0
- package/dist/shims/internal/pages-router-accessor.js +13 -0
- package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
- package/dist/shims/internal/route-pattern-for-warning.js +40 -0
- package/dist/shims/internal/router-context.d.ts +7 -0
- package/dist/shims/internal/router-context.js +13 -0
- package/dist/shims/internal/utils.d.ts +52 -0
- package/dist/shims/internal/utils.js +27 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +30 -0
- package/dist/shims/internal/work-unit-async-storage.js +17 -0
- package/dist/shims/layout-segment-context.d.ts +24 -0
- package/dist/shims/layout-segment-context.js +39 -0
- package/dist/shims/legacy-image.d.ts +41 -0
- package/dist/shims/legacy-image.js +49 -0
- package/dist/shims/link-prefetch.d.ts +41 -0
- package/dist/shims/link-prefetch.js +43 -0
- package/dist/shims/link.d.ts +102 -0
- package/dist/shims/link.js +687 -0
- package/dist/shims/metadata.d.ts +285 -0
- package/dist/shims/metadata.js +820 -0
- package/dist/shims/navigation-context-state.d.ts +40 -0
- package/dist/shims/navigation-context-state.js +116 -0
- package/dist/shims/navigation-errors.d.ts +55 -0
- package/dist/shims/navigation-errors.js +110 -0
- package/dist/shims/navigation-server.d.ts +3 -0
- package/dist/shims/navigation-server.js +3 -0
- package/dist/shims/navigation-state.d.ts +25 -0
- package/dist/shims/navigation-state.js +66 -0
- package/dist/shims/navigation.d.ts +286 -0
- package/dist/shims/navigation.js +1206 -0
- package/dist/shims/navigation.react-server.d.ts +14 -0
- package/dist/shims/navigation.react-server.js +32 -0
- package/dist/shims/offline.d.ts +4 -0
- package/dist/shims/offline.js +15 -0
- package/dist/shims/og.d.ts +17 -0
- package/dist/shims/og.js +48 -0
- package/dist/shims/pages-router-runtime.d.ts +12 -0
- package/dist/shims/pages-router-runtime.js +24 -0
- package/dist/shims/ppr-fallback-shell.d.ts +33 -0
- package/dist/shims/ppr-fallback-shell.js +170 -0
- package/dist/shims/readonly-url-search-params.d.ts +13 -0
- package/dist/shims/readonly-url-search-params.js +26 -0
- package/dist/shims/request-context.d.ts +58 -0
- package/dist/shims/request-context.js +45 -0
- package/dist/shims/request-state-types.d.ts +12 -0
- package/dist/shims/request-state-types.js +1 -0
- package/dist/shims/root-params.d.ts +12 -0
- package/dist/shims/root-params.js +30 -0
- package/dist/shims/router-state.d.ts +32 -0
- package/dist/shims/router-state.js +39 -0
- package/dist/shims/router.d.ts +192 -0
- package/dist/shims/router.js +1786 -0
- package/dist/shims/script-nonce-context.d.ts +11 -0
- package/dist/shims/script-nonce-context.js +23 -0
- package/dist/shims/script.d.ts +43 -0
- package/dist/shims/script.js +370 -0
- package/dist/shims/server-only.d.ts +1 -0
- package/dist/shims/server-only.js +1 -0
- package/dist/shims/server.d.ts +323 -0
- package/dist/shims/server.js +729 -0
- package/dist/shims/slot.d.ts +45 -0
- package/dist/shims/slot.js +230 -0
- package/dist/shims/thenable-params.d.ts +11 -0
- package/dist/shims/thenable-params.js +176 -0
- package/dist/shims/unified-request-context.d.ts +68 -0
- package/dist/shims/unified-request-context.js +86 -0
- package/dist/shims/unrecognized-action-error.d.ts +34 -0
- package/dist/shims/unrecognized-action-error.js +39 -0
- package/dist/shims/url-safety.d.ts +34 -0
- package/dist/shims/url-safety.js +70 -0
- package/dist/shims/url-utils.d.ts +51 -0
- package/dist/shims/url-utils.js +156 -0
- package/dist/shims/use-merged-ref.d.ts +6 -0
- package/dist/shims/use-merged-ref.js +38 -0
- package/dist/shims/web-vitals.d.ts +8 -0
- package/dist/shims/web-vitals.js +22 -0
- package/dist/typegen.d.ts +9 -0
- package/dist/typegen.js +228 -0
- package/dist/utils/asset-prefix.d.ts +96 -0
- package/dist/utils/asset-prefix.js +122 -0
- package/dist/utils/base-path.d.ts +31 -0
- package/dist/utils/base-path.js +45 -0
- package/dist/utils/built-asset-url.d.ts +4 -0
- package/dist/utils/built-asset-url.js +11 -0
- package/dist/utils/cache-control-metadata.d.ts +4 -0
- package/dist/utils/cache-control-metadata.js +12 -0
- package/dist/utils/client-build-manifest.d.ts +21 -0
- package/dist/utils/client-build-manifest.js +87 -0
- package/dist/utils/client-entry-manifest.d.ts +11 -0
- package/dist/utils/client-entry-manifest.js +29 -0
- package/dist/utils/client-runtime-metadata.d.ts +45 -0
- package/dist/utils/client-runtime-metadata.js +63 -0
- package/dist/utils/commonjs-loader.d.ts +16 -0
- package/dist/utils/commonjs-loader.js +100 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -0
- package/dist/utils/deployment-id.d.ts +8 -0
- package/dist/utils/deployment-id.js +22 -0
- package/dist/utils/dev-error-recovery-event.d.ts +4 -0
- package/dist/utils/dev-error-recovery-event.js +4 -0
- package/dist/utils/domain-locale.d.ts +26 -0
- package/dist/utils/domain-locale.js +50 -0
- package/dist/utils/encode-cache-tag.d.ts +30 -0
- package/dist/utils/encode-cache-tag.js +36 -0
- package/dist/utils/error-cause.d.ts +4 -0
- package/dist/utils/error-cause.js +95 -0
- package/dist/utils/has-trailing-comma.d.ts +24 -0
- package/dist/utils/has-trailing-comma.js +62 -0
- package/dist/utils/hash.d.ts +24 -0
- package/dist/utils/hash.js +55 -0
- package/dist/utils/html-limited-bots.d.ts +21 -0
- package/dist/utils/html-limited-bots.js +35 -0
- package/dist/utils/lazy-chunks.d.ts +59 -0
- package/dist/utils/lazy-chunks.js +112 -0
- package/dist/utils/manifest-paths.d.ts +30 -0
- package/dist/utils/manifest-paths.js +66 -0
- package/dist/utils/mdx-scan.d.ts +9 -0
- package/dist/utils/mdx-scan.js +34 -0
- package/dist/utils/navigation-signal.d.ts +4 -0
- package/dist/utils/navigation-signal.js +12 -0
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/parse-cookie.d.ts +13 -0
- package/dist/utils/parse-cookie.js +52 -0
- package/dist/utils/path.d.ts +22 -0
- package/dist/utils/path.js +30 -0
- package/dist/utils/prerender-output-paths.d.ts +14 -0
- package/dist/utils/prerender-output-paths.js +22 -0
- package/dist/utils/project.d.ts +76 -0
- package/dist/utils/project.js +213 -0
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +4 -0
- package/dist/utils/public-routes.js +48 -0
- package/dist/utils/query.d.ts +49 -0
- package/dist/utils/query.js +122 -0
- package/dist/utils/record.d.ts +4 -0
- package/dist/utils/record.js +6 -0
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +17 -0
- package/dist/utils/safe-json-file.js +23 -0
- package/dist/utils/sorted-array.d.ts +8 -0
- package/dist/utils/sorted-array.js +20 -0
- package/dist/utils/text-stream.d.ts +28 -0
- package/dist/utils/text-stream.js +64 -0
- package/dist/utils/vinext-root.d.ts +23 -0
- package/dist/utils/vinext-root.js +29 -0
- package/dist/utils/virtual-module.d.ts +5 -0
- package/dist/utils/virtual-module.js +0 -0
- package/dist/utils/vite-version.d.ts +21 -0
- package/dist/utils/vite-version.js +42 -0
- package/package.json +145 -0
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
import { createInlineScriptTag, escapeHtmlAttr, htmlTokenListContains, safeJsonStringify } from "./html.js";
|
|
2
|
+
import { bytesToBase64, concatUint8Arrays } from "./app-rsc-embedded-chunks.js";
|
|
3
|
+
import { NAVIGATION_RUNTIME_SYMBOL_DESCRIPTION } from "../client/navigation-runtime.js";
|
|
4
|
+
//#region src/server/app-ssr-stream.ts
|
|
5
|
+
const NAVIGATION_RUNTIME_REFERENCE = `self[Symbol.for(${safeJsonStringify(NAVIGATION_RUNTIME_SYMBOL_DESCRIPTION)})]`;
|
|
6
|
+
function navigationRuntimeRscBootstrapExpression() {
|
|
7
|
+
return `((${NAVIGATION_RUNTIME_REFERENCE}??={bootstrap:{routeManifest:null},functions:{}}).bootstrap.rsc??={rsc:[]})`;
|
|
8
|
+
}
|
|
9
|
+
function createNavigationRuntimeRscMetadataScript(params, nav) {
|
|
10
|
+
return "Object.assign(" + navigationRuntimeRscBootstrapExpression() + ",{params:" + safeJsonStringify(params) + ",nav:" + safeJsonStringify(nav) + "})";
|
|
11
|
+
}
|
|
12
|
+
function createNavigationRuntimeRscChunkScript(chunk) {
|
|
13
|
+
return navigationRuntimeRscBootstrapExpression() + ".rsc.push(" + safeJsonStringify(chunk) + ")";
|
|
14
|
+
}
|
|
15
|
+
function createNavigationRuntimeRscDoneScript() {
|
|
16
|
+
return navigationRuntimeRscBootstrapExpression() + ".done=true";
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Fix invalid preload "as" values in RSC Flight hint lines before they reach
|
|
20
|
+
* the client. React Flight emits HL hints with as="stylesheet" for CSS, but
|
|
21
|
+
* the HTML spec requires as="style" for <link rel="preload">.
|
|
22
|
+
*/
|
|
23
|
+
function fixFlightHints(text) {
|
|
24
|
+
return text.replace(/(\d*:HL\[.*?),"stylesheet"(\]|,)/g, "$1,\"style\"$2");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a helper that progressively embeds RSC chunks as inline <script> tags.
|
|
28
|
+
* The browser entry turns the embedded chunks back into Uint8Array data.
|
|
29
|
+
*/
|
|
30
|
+
function createRscEmbedTransform(embedStream, scriptNonce) {
|
|
31
|
+
const reader = embedStream.getReader();
|
|
32
|
+
let pendingChunks = [];
|
|
33
|
+
const rawChunks = [];
|
|
34
|
+
let reading = false;
|
|
35
|
+
async function pumpReader() {
|
|
36
|
+
if (reading) return;
|
|
37
|
+
reading = true;
|
|
38
|
+
try {
|
|
39
|
+
while (true) {
|
|
40
|
+
const result = await reader.read();
|
|
41
|
+
if (result.done) break;
|
|
42
|
+
rawChunks.push(result.value);
|
|
43
|
+
try {
|
|
44
|
+
const text = new TextDecoder("utf-8", { fatal: true }).decode(result.value);
|
|
45
|
+
pendingChunks.push(fixFlightHints(text));
|
|
46
|
+
} catch {
|
|
47
|
+
pendingChunks.push([3, bytesToBase64(result.value)]);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
} catch (error) {
|
|
51
|
+
if (process.env.NODE_ENV !== "production") console.warn("[vinext] RSC embed stream read error:", error);
|
|
52
|
+
throw error;
|
|
53
|
+
} finally {
|
|
54
|
+
reading = false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const pumpPromise = pumpReader();
|
|
58
|
+
return {
|
|
59
|
+
flush() {
|
|
60
|
+
if (pendingChunks.length === 0) return "";
|
|
61
|
+
const chunks = pendingChunks;
|
|
62
|
+
pendingChunks = [];
|
|
63
|
+
let scripts = "";
|
|
64
|
+
for (const chunk of chunks) scripts += createInlineScriptTag(createNavigationRuntimeRscChunkScript(chunk), scriptNonce);
|
|
65
|
+
return scripts;
|
|
66
|
+
},
|
|
67
|
+
async finalize() {
|
|
68
|
+
await pumpPromise;
|
|
69
|
+
let scripts = this.flush();
|
|
70
|
+
scripts += createInlineScriptTag(createNavigationRuntimeRscDoneScript(), scriptNonce);
|
|
71
|
+
return scripts;
|
|
72
|
+
},
|
|
73
|
+
async getRawBuffer() {
|
|
74
|
+
await pumpPromise;
|
|
75
|
+
const buffer = concatUint8Arrays(rawChunks);
|
|
76
|
+
rawChunks.length = 0;
|
|
77
|
+
return buffer.buffer;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Fix invalid preload "as" values in server-rendered HTML.
|
|
83
|
+
* React Fizz emits <link rel="preload" as="stylesheet"> for CSS, but the
|
|
84
|
+
* HTML spec requires as="style" for <link rel="preload">.
|
|
85
|
+
*/
|
|
86
|
+
function fixPreloadAs(html) {
|
|
87
|
+
return html.replace(/<link(?=[^>]*\srel="preload")[^>]*>/g, (tag) => tag.replace(" as=\"stylesheet\"", " as=\"style\""));
|
|
88
|
+
}
|
|
89
|
+
const LINK_TAG_RE = /<link\b[^>]*>/gi;
|
|
90
|
+
const HTML_REWRITE_EXCLUDED_REGION_RE = /<!--[\s\S]*?-->|<(script|style|textarea|title)\b[^>]*>[\s\S]*?<\/\1\s*>/gi;
|
|
91
|
+
const HTML_REWRITE_EXCLUDED_REGION_START_RE = /<!--|<(script|style|textarea|title)\b[^>]*>/gi;
|
|
92
|
+
const CLOSE_TAG_RES = {
|
|
93
|
+
script: /<\/script\s*>/i,
|
|
94
|
+
style: /<\/style\s*>/i,
|
|
95
|
+
textarea: /<\/textarea\s*>/i,
|
|
96
|
+
title: /<\/title\s*>/i
|
|
97
|
+
};
|
|
98
|
+
function getHtmlAttribute(tag, name) {
|
|
99
|
+
const attrRe = /\s([^\s"'=<>`]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+)))?/g;
|
|
100
|
+
let match;
|
|
101
|
+
while ((match = attrRe.exec(tag)) !== null) {
|
|
102
|
+
if (match[1]?.toLowerCase() !== name.toLowerCase()) continue;
|
|
103
|
+
return match[2] ?? match[3] ?? match[4] ?? "";
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
function htmlAttributeHasToken(tag, name, token) {
|
|
108
|
+
return htmlTokenListContains(getHtmlAttribute(tag, name), token);
|
|
109
|
+
}
|
|
110
|
+
function getInlineCss(manifest, href) {
|
|
111
|
+
if (Object.prototype.hasOwnProperty.call(manifest, href)) return manifest[href] ?? "";
|
|
112
|
+
try {
|
|
113
|
+
const pathname = new URL(href).pathname;
|
|
114
|
+
if (Object.prototype.hasOwnProperty.call(manifest, pathname)) return manifest[pathname] ?? "";
|
|
115
|
+
} catch {}
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const TRAILING_LINK_OPEN_RE = /<link/gi;
|
|
119
|
+
function splitTrailingIncompleteLinkTag(html) {
|
|
120
|
+
TRAILING_LINK_OPEN_RE.lastIndex = 0;
|
|
121
|
+
let lastIndex = -1;
|
|
122
|
+
let match;
|
|
123
|
+
while ((match = TRAILING_LINK_OPEN_RE.exec(html)) !== null) lastIndex = match.index;
|
|
124
|
+
if (lastIndex === -1) return {
|
|
125
|
+
complete: html,
|
|
126
|
+
trailing: ""
|
|
127
|
+
};
|
|
128
|
+
if (html.indexOf(">", lastIndex) !== -1) return {
|
|
129
|
+
complete: html,
|
|
130
|
+
trailing: ""
|
|
131
|
+
};
|
|
132
|
+
return {
|
|
133
|
+
complete: html.slice(0, lastIndex),
|
|
134
|
+
trailing: html.slice(lastIndex)
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function findTrailingOpenHtmlRewriteExcludedRegionStart(html) {
|
|
138
|
+
let match;
|
|
139
|
+
HTML_REWRITE_EXCLUDED_REGION_START_RE.lastIndex = 0;
|
|
140
|
+
while ((match = HTML_REWRITE_EXCLUDED_REGION_START_RE.exec(html)) !== null) {
|
|
141
|
+
const start = match.index;
|
|
142
|
+
if (match[0] === "<!--") {
|
|
143
|
+
const close = html.indexOf("-->", HTML_REWRITE_EXCLUDED_REGION_START_RE.lastIndex);
|
|
144
|
+
if (close === -1) return start;
|
|
145
|
+
HTML_REWRITE_EXCLUDED_REGION_START_RE.lastIndex = close + 3;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
const tagName = match[1]?.toLowerCase();
|
|
149
|
+
if (!tagName) continue;
|
|
150
|
+
const closeTagRe = CLOSE_TAG_RES[tagName];
|
|
151
|
+
if (!closeTagRe) continue;
|
|
152
|
+
const close = closeTagRe.exec(html.slice(HTML_REWRITE_EXCLUDED_REGION_START_RE.lastIndex));
|
|
153
|
+
if (!close) return start;
|
|
154
|
+
HTML_REWRITE_EXCLUDED_REGION_START_RE.lastIndex += close.index + close[0].length;
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
function splitTrailingInlineCssRewriteBoundary(html) {
|
|
159
|
+
const linkSplit = splitTrailingIncompleteLinkTag(html);
|
|
160
|
+
const incompleteLinkStart = linkSplit.trailing ? linkSplit.complete.length : null;
|
|
161
|
+
const openRegionStart = findTrailingOpenHtmlRewriteExcludedRegionStart(html);
|
|
162
|
+
const trailingStart = incompleteLinkStart === null ? openRegionStart : openRegionStart === null ? incompleteLinkStart : Math.min(incompleteLinkStart, openRegionStart);
|
|
163
|
+
if (trailingStart === null) return {
|
|
164
|
+
complete: html,
|
|
165
|
+
trailing: ""
|
|
166
|
+
};
|
|
167
|
+
return {
|
|
168
|
+
complete: html.slice(0, trailingStart),
|
|
169
|
+
trailing: html.slice(trailingStart)
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
function escapeStyleText(css) {
|
|
173
|
+
return css.replace(/<\/style/gi, "<\\/style");
|
|
174
|
+
}
|
|
175
|
+
const CSS_PREPEND_UNSAFE_PREAMBLE_RE = /^\uFEFF?(?:\s|\/\*[\s\S]*?\*\/)*@(charset|import|layer|namespace)\b/i;
|
|
176
|
+
function canPrependCss(css) {
|
|
177
|
+
return !CSS_PREPEND_UNSAFE_PREAMBLE_RE.test(css);
|
|
178
|
+
}
|
|
179
|
+
function replaceLinkTags(html, replaceLinkTag) {
|
|
180
|
+
LINK_TAG_RE.lastIndex = 0;
|
|
181
|
+
return html.replace(LINK_TAG_RE, replaceLinkTag);
|
|
182
|
+
}
|
|
183
|
+
function replaceLinkTagsOutsideRawText(html, replaceLinkTag) {
|
|
184
|
+
let rewritten = "";
|
|
185
|
+
let cursor = 0;
|
|
186
|
+
let match;
|
|
187
|
+
HTML_REWRITE_EXCLUDED_REGION_RE.lastIndex = 0;
|
|
188
|
+
while ((match = HTML_REWRITE_EXCLUDED_REGION_RE.exec(html)) !== null) {
|
|
189
|
+
rewritten += replaceLinkTags(html.slice(cursor, match.index), replaceLinkTag);
|
|
190
|
+
rewritten += match[0];
|
|
191
|
+
cursor = match.index + match[0].length;
|
|
192
|
+
}
|
|
193
|
+
const tail = html.slice(cursor);
|
|
194
|
+
const openRegionStart = findTrailingOpenHtmlRewriteExcludedRegionStart(tail);
|
|
195
|
+
if (openRegionStart === null) return rewritten + replaceLinkTags(tail, replaceLinkTag);
|
|
196
|
+
return rewritten + replaceLinkTags(tail.slice(0, openRegionStart), replaceLinkTag) + tail.slice(openRegionStart);
|
|
197
|
+
}
|
|
198
|
+
function rewriteInlineCssStylesheetLinks(html, inlineCssManifest, prependCss, ssrScriptNonce) {
|
|
199
|
+
if (!inlineCssManifest || Object.keys(inlineCssManifest).length === 0) return {
|
|
200
|
+
html,
|
|
201
|
+
consumedPrependCss: false
|
|
202
|
+
};
|
|
203
|
+
let consumedPrependCss = false;
|
|
204
|
+
return {
|
|
205
|
+
html: replaceLinkTagsOutsideRawText(html, (tag) => {
|
|
206
|
+
if (!htmlAttributeHasToken(tag, "rel", "stylesheet")) return tag;
|
|
207
|
+
const href = getHtmlAttribute(tag, "href");
|
|
208
|
+
const precedence = getHtmlAttribute(tag, "data-precedence") ?? getHtmlAttribute(tag, "precedence");
|
|
209
|
+
if (!href || !precedence) return tag;
|
|
210
|
+
const css = getInlineCss(inlineCssManifest, href);
|
|
211
|
+
if (css === null) return tag;
|
|
212
|
+
const effectiveNonce = getHtmlAttribute(tag, "nonce") ?? ssrScriptNonce;
|
|
213
|
+
const nonceAttr = effectiveNonce ? ` nonce="${escapeHtmlAttr(effectiveNonce)}"` : "";
|
|
214
|
+
const cssPrefix = !consumedPrependCss && prependCss.length > 0 && canPrependCss(css) ? `${prependCss}\n` : "";
|
|
215
|
+
consumedPrependCss ||= cssPrefix.length > 0;
|
|
216
|
+
return `<style data-vinext-inline-css${nonceAttr} data-precedence="${escapeHtmlAttr(precedence)}" data-href="${escapeHtmlAttr(href)}">${escapeStyleText(cssPrefix + css)}</style>`;
|
|
217
|
+
}),
|
|
218
|
+
consumedPrependCss
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Match the `<head ...>` opening tag in a chunk. Matches both bare `<head>`
|
|
223
|
+
* and `<head class="foo">` shapes. Used to splice HTML immediately after the
|
|
224
|
+
* opening tag so injected content runs before any React-emitted resource
|
|
225
|
+
* hints (stylesheets, modulepreloads) that React Float hoists into `<head>`.
|
|
226
|
+
*/
|
|
227
|
+
const HEAD_OPEN_RE = /<head\b[^>]*>/;
|
|
228
|
+
/**
|
|
229
|
+
* Final closing tags of the streamed HTML document. We track this suffix
|
|
230
|
+
* separately so we can move it to the very end of the stream — trailing flight
|
|
231
|
+
* chunks and preinit scripts emitted by `rscEmbed.finalize()` are appended in
|
|
232
|
+
* `flush()`, which would otherwise land them after `</body></html>` and break
|
|
233
|
+
* any consumer that asserts the document terminates with a well-formed close.
|
|
234
|
+
*
|
|
235
|
+
* Ported from Next.js: packages/next/src/server/stream-utils/node-web-streams-helper.ts
|
|
236
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/server/stream-utils/node-web-streams-helper.ts
|
|
237
|
+
* (see `createMoveSuffixStream` and `CLOSE_TAG`)
|
|
238
|
+
*/
|
|
239
|
+
const DOCUMENT_CLOSE_SUFFIX = "</body></html>";
|
|
240
|
+
/**
|
|
241
|
+
* Create the tick-buffered HTML transform that injects RSC scripts between
|
|
242
|
+
* React Fizz flush cycles without corrupting split HTML chunks.
|
|
243
|
+
*
|
|
244
|
+
* Two insertion points are supported in tandem:
|
|
245
|
+
*
|
|
246
|
+
* - `injectHTML` is emitted immediately before `</head>`. This is where the
|
|
247
|
+
* bulk of vinext's head additions live (RSC navigation runtime metadata,
|
|
248
|
+
* bootstrap modulepreload, server-inserted HTML, font preloads, etc.).
|
|
249
|
+
* - `injectAfterHeadOpenHTML` is emitted immediately after the `<head ...>`
|
|
250
|
+
* opening tag so the content runs before any React-emitted resource
|
|
251
|
+
* hints. This is where inline `<Script strategy="beforeInteractive">`
|
|
252
|
+
* captures land so the no-flash dark-mode pattern works.
|
|
253
|
+
*
|
|
254
|
+
* Fallback behaviour differs by insertion point:
|
|
255
|
+
*
|
|
256
|
+
* - `injectHTML` is emitted at end-of-stream by the `flush` handler when no
|
|
257
|
+
* chunk ever contained `</head>` — callers still see the payload on
|
|
258
|
+
* highly fragmented streams (just at the end of the body rather than in
|
|
259
|
+
* the head).
|
|
260
|
+
* - `injectAfterHeadOpenHTML` is silently dropped when `<head ...>` is not
|
|
261
|
+
* found in a discoverable chunk. Emitting it at end-of-stream would put
|
|
262
|
+
* it after the document body, defeating the point — the splice has to
|
|
263
|
+
* happen before resource hints to be useful, so the safer behaviour is
|
|
264
|
+
* to no-op and let the user-rendered Script (in its source-order
|
|
265
|
+
* position) ship as-is.
|
|
266
|
+
*/
|
|
267
|
+
function createTickBufferedTransform(rscEmbed, injectHTML = "", injectAfterHeadOpenHTML = "", inlineCssManifest, inlineCssPrependCss = "", inlineCssPrependFallbackHTML = "", inlineCssScriptNonce) {
|
|
268
|
+
const decoder = new TextDecoder();
|
|
269
|
+
const encoder = new TextEncoder();
|
|
270
|
+
const insertsPerFlush = typeof injectHTML === "function";
|
|
271
|
+
let injected = false;
|
|
272
|
+
let preHeadInjected = false;
|
|
273
|
+
let suffixStripped = false;
|
|
274
|
+
let buffered = [];
|
|
275
|
+
let pendingHtml = "";
|
|
276
|
+
let timeoutId = null;
|
|
277
|
+
const hasInlineCssManifest = inlineCssManifest !== void 0 && Object.keys(inlineCssManifest).length > 0;
|
|
278
|
+
/**
|
|
279
|
+
* Strip the first occurrence of `</body></html>` from `chunk` so it can be
|
|
280
|
+
* re-emitted at the very end of the stream. Returns the rewritten chunk and
|
|
281
|
+
* a flag indicating whether a suffix was found. If `suffixStripped` is
|
|
282
|
+
* already true (i.e. an earlier chunk contained the suffix), this is a
|
|
283
|
+
* no-op — additional matches in later chunks shouldn't happen in practice,
|
|
284
|
+
* but we leave them alone to avoid corrupting unexpected output.
|
|
285
|
+
*/
|
|
286
|
+
const stripDocumentCloseSuffix = (chunk) => {
|
|
287
|
+
if (suffixStripped) return chunk;
|
|
288
|
+
const index = chunk.indexOf(DOCUMENT_CLOSE_SUFFIX);
|
|
289
|
+
if (index === -1) return chunk;
|
|
290
|
+
suffixStripped = true;
|
|
291
|
+
return chunk.slice(0, index) + chunk.slice(index + 14);
|
|
292
|
+
};
|
|
293
|
+
const readInsertion = () => typeof injectHTML === "function" ? injectHTML() : injectHTML;
|
|
294
|
+
const readPreHeadInsertion = () => typeof injectAfterHeadOpenHTML === "function" ? injectAfterHeadOpenHTML() : injectAfterHeadOpenHTML;
|
|
295
|
+
const readInlineCssPrependFallback = () => {
|
|
296
|
+
if (!inlineCssPrependCss || !inlineCssPrependFallbackHTML) return "";
|
|
297
|
+
inlineCssPrependCss = "";
|
|
298
|
+
return inlineCssPrependFallbackHTML;
|
|
299
|
+
};
|
|
300
|
+
const emitInsertion = (controller) => {
|
|
301
|
+
const insertion = readInlineCssPrependFallback() + readInsertion();
|
|
302
|
+
if (insertion) controller.enqueue(encoder.encode(insertion));
|
|
303
|
+
};
|
|
304
|
+
/**
|
|
305
|
+
* Splice the pre-head insertion (typically captured beforeInteractive inline
|
|
306
|
+
* scripts) immediately after the `<head ...>` opening tag. Returns the
|
|
307
|
+
* rewritten chunk and a flag indicating whether the splice happened, so the
|
|
308
|
+
* caller can mark `preHeadInjected` and stop scanning further chunks.
|
|
309
|
+
*
|
|
310
|
+
* NOTE: This is called only when `<head ...>` lies fully inside the current
|
|
311
|
+
* tick-buffered batch. We deliberately avoid retaining arbitrary output until
|
|
312
|
+
* a future chunk completes `<head ...>`, which would delay TTFB and complicate
|
|
313
|
+
* the existing `</head>` injection path. In practice React Fizz emits the
|
|
314
|
+
* opening shell as a single batch.
|
|
315
|
+
*/
|
|
316
|
+
const spliceAfterHeadOpen = (chunk) => {
|
|
317
|
+
if (preHeadInjected) return {
|
|
318
|
+
chunk,
|
|
319
|
+
spliced: false
|
|
320
|
+
};
|
|
321
|
+
const insertion = readPreHeadInsertion();
|
|
322
|
+
if (!insertion) return {
|
|
323
|
+
chunk,
|
|
324
|
+
spliced: false
|
|
325
|
+
};
|
|
326
|
+
const match = HEAD_OPEN_RE.exec(chunk);
|
|
327
|
+
if (!match) return {
|
|
328
|
+
chunk,
|
|
329
|
+
spliced: false
|
|
330
|
+
};
|
|
331
|
+
const insertAt = match.index + match[0].length;
|
|
332
|
+
return {
|
|
333
|
+
chunk: chunk.slice(0, insertAt) + insertion + chunk.slice(insertAt),
|
|
334
|
+
spliced: true
|
|
335
|
+
};
|
|
336
|
+
};
|
|
337
|
+
const flushBuffered = (controller, final = false) => {
|
|
338
|
+
if (buffered.length === 0 && !pendingHtml) return;
|
|
339
|
+
const rawHtml = pendingHtml + buffered.join("");
|
|
340
|
+
buffered = [];
|
|
341
|
+
pendingHtml = "";
|
|
342
|
+
const split = final || !hasInlineCssManifest ? {
|
|
343
|
+
complete: rawHtml,
|
|
344
|
+
trailing: ""
|
|
345
|
+
} : splitTrailingInlineCssRewriteBoundary(rawHtml);
|
|
346
|
+
if (split.trailing) pendingHtml = split.trailing;
|
|
347
|
+
if (!split.complete) return;
|
|
348
|
+
if (injected && insertsPerFlush) emitInsertion(controller);
|
|
349
|
+
const preparedHtml = fixPreloadAs(split.complete);
|
|
350
|
+
const inlineCssResult = hasInlineCssManifest ? rewriteInlineCssStylesheetLinks(preparedHtml, inlineCssManifest, inlineCssPrependCss, inlineCssScriptNonce) : {
|
|
351
|
+
html: preparedHtml,
|
|
352
|
+
consumedPrependCss: false
|
|
353
|
+
};
|
|
354
|
+
if (inlineCssResult.consumedPrependCss) inlineCssPrependCss = "";
|
|
355
|
+
let working = inlineCssResult.html;
|
|
356
|
+
if (!preHeadInjected) {
|
|
357
|
+
const result = spliceAfterHeadOpen(working);
|
|
358
|
+
if (result.spliced) {
|
|
359
|
+
working = result.chunk;
|
|
360
|
+
preHeadInjected = true;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
if (!injected) {
|
|
364
|
+
const headEnd = working.indexOf("</head>");
|
|
365
|
+
if (headEnd !== -1) {
|
|
366
|
+
const before = working.slice(0, headEnd);
|
|
367
|
+
const after = stripDocumentCloseSuffix(working.slice(headEnd));
|
|
368
|
+
controller.enqueue(encoder.encode(before + readInlineCssPrependFallback() + readInsertion() + after));
|
|
369
|
+
injected = true;
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
working = stripDocumentCloseSuffix(working);
|
|
374
|
+
controller.enqueue(encoder.encode(working));
|
|
375
|
+
};
|
|
376
|
+
return new TransformStream({
|
|
377
|
+
transform(chunk, controller) {
|
|
378
|
+
buffered.push(decoder.decode(chunk, { stream: true }));
|
|
379
|
+
if (timeoutId !== null) return;
|
|
380
|
+
timeoutId = setTimeout(() => {
|
|
381
|
+
try {
|
|
382
|
+
flushBuffered(controller);
|
|
383
|
+
const rscScripts = rscEmbed.flush();
|
|
384
|
+
if (rscScripts) controller.enqueue(encoder.encode(rscScripts));
|
|
385
|
+
} catch {}
|
|
386
|
+
timeoutId = null;
|
|
387
|
+
}, 0);
|
|
388
|
+
},
|
|
389
|
+
async flush(controller) {
|
|
390
|
+
if (timeoutId !== null) {
|
|
391
|
+
clearTimeout(timeoutId);
|
|
392
|
+
timeoutId = null;
|
|
393
|
+
}
|
|
394
|
+
const remainder = decoder.decode();
|
|
395
|
+
if (remainder) buffered.push(remainder);
|
|
396
|
+
flushBuffered(controller, true);
|
|
397
|
+
if (!injected) {
|
|
398
|
+
emitInsertion(controller);
|
|
399
|
+
injected = true;
|
|
400
|
+
} else if (insertsPerFlush) emitInsertion(controller);
|
|
401
|
+
const finalScripts = await rscEmbed.finalize();
|
|
402
|
+
if (finalScripts) controller.enqueue(encoder.encode(finalScripts));
|
|
403
|
+
controller.enqueue(encoder.encode(DOCUMENT_CLOSE_SUFFIX));
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
//#endregion
|
|
408
|
+
export { createNavigationRuntimeRscMetadataScript, createRscEmbedTransform, createTickBufferedTransform, fixFlightHints, fixPreloadAs, navigationRuntimeRscBootstrapExpression };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { HeadersContext } from "../shims/headers.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/app-static-generation.d.ts
|
|
4
|
+
type AppStaticGenerationRouteKind = "page" | "route";
|
|
5
|
+
type CreateStaticGenerationHeadersContextOptions = {
|
|
6
|
+
draftModeSecret?: string;
|
|
7
|
+
dynamicConfig?: string;
|
|
8
|
+
routeKind: AppStaticGenerationRouteKind;
|
|
9
|
+
routePattern?: string;
|
|
10
|
+
};
|
|
11
|
+
declare function getAppPageStaticGenerationErrorMessage(): string;
|
|
12
|
+
declare function getAppRouteStaticGenerationErrorMessage(routePattern?: string, expression?: string): string;
|
|
13
|
+
declare function createStaticGenerationHeadersContext(options: CreateStaticGenerationHeadersContextOptions): HeadersContext;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { createStaticGenerationHeadersContext, getAppPageStaticGenerationErrorMessage, getAppRouteStaticGenerationErrorMessage };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/server/app-static-generation.ts
|
|
2
|
+
function getAppPageStaticGenerationErrorMessage() {
|
|
3
|
+
return "Page with `dynamic = \"error\"` used a dynamic API. This page was expected to be fully static, but headers(), cookies(), or searchParams was accessed. Remove the dynamic API usage or change the dynamic config to \"auto\" or \"force-dynamic\".";
|
|
4
|
+
}
|
|
5
|
+
function getAppRouteStaticGenerationErrorMessage(routePattern, expression) {
|
|
6
|
+
return `Route ${routePattern ?? "unknown route"} with \`dynamic = "error"\` couldn't be rendered statically because it used ${expression ?? "a dynamic request API"}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`;
|
|
7
|
+
}
|
|
8
|
+
function createStaticGenerationHeadersContext(options) {
|
|
9
|
+
const context = {
|
|
10
|
+
headers: new Headers(),
|
|
11
|
+
cookies: /* @__PURE__ */ new Map(),
|
|
12
|
+
draftModeSecret: options.draftModeSecret
|
|
13
|
+
};
|
|
14
|
+
if (options.dynamicConfig === "force-static") context.forceStatic = true;
|
|
15
|
+
if (options.dynamicConfig === "error") context.accessError = new Error(options.routeKind === "route" ? getAppRouteStaticGenerationErrorMessage(options.routePattern) : getAppPageStaticGenerationErrorMessage());
|
|
16
|
+
return context;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { createStaticGenerationHeadersContext, getAppPageStaticGenerationErrorMessage, getAppRouteStaticGenerationErrorMessage };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CachedRscResponse } from "../shims/navigation.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/app-visited-response-cache.d.ts
|
|
4
|
+
type VisitedResponseCacheNavigationKind = "navigate" | "refresh" | "traverse";
|
|
5
|
+
type VisitedResponseCacheEntry = {
|
|
6
|
+
createdAt: number;
|
|
7
|
+
expiresAt: number;
|
|
8
|
+
params: Record<string, string | string[]>;
|
|
9
|
+
response: CachedRscResponse;
|
|
10
|
+
};
|
|
11
|
+
declare const VISITED_RESPONSE_CACHE_TTL: number;
|
|
12
|
+
declare const MAX_TRAVERSAL_CACHE_TTL: number;
|
|
13
|
+
declare function createVisitedResponseCacheEntry(options: {
|
|
14
|
+
now: number;
|
|
15
|
+
params: Record<string, string | string[]>;
|
|
16
|
+
response: CachedRscResponse;
|
|
17
|
+
}): VisitedResponseCacheEntry;
|
|
18
|
+
declare function isVisitedResponseCacheEntryFresh(entry: VisitedResponseCacheEntry, options: {
|
|
19
|
+
navigationKind: VisitedResponseCacheNavigationKind;
|
|
20
|
+
now: number;
|
|
21
|
+
}): boolean;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { MAX_TRAVERSAL_CACHE_TTL, VISITED_RESPONSE_CACHE_TTL, VisitedResponseCacheEntry, createVisitedResponseCacheEntry, isVisitedResponseCacheEntryFresh };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { resolveCachedRscResponseExpiresAt } from "../shims/navigation.js";
|
|
2
|
+
//#region src/server/app-visited-response-cache.ts
|
|
3
|
+
const VISITED_RESPONSE_CACHE_TTL = 5 * 6e4;
|
|
4
|
+
const MAX_TRAVERSAL_CACHE_TTL = 30 * 6e4;
|
|
5
|
+
function createVisitedResponseCacheEntry(options) {
|
|
6
|
+
return {
|
|
7
|
+
createdAt: options.now,
|
|
8
|
+
expiresAt: resolveCachedRscResponseExpiresAt(options.now, options.response, VISITED_RESPONSE_CACHE_TTL),
|
|
9
|
+
params: options.params,
|
|
10
|
+
response: options.response
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function isVisitedResponseCacheEntryFresh(entry, options) {
|
|
14
|
+
if (options.navigationKind === "refresh") return false;
|
|
15
|
+
if (options.navigationKind === "traverse") return options.now - entry.createdAt < MAX_TRAVERSAL_CACHE_TTL;
|
|
16
|
+
return entry.expiresAt > options.now;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { MAX_TRAVERSAL_CACHE_TTL, VISITED_RESPONSE_CACHE_TTL, createVisitedResponseCacheEntry, isVisitedResponseCacheEntryFresh };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
//#region src/server/artifact-compatibility.d.ts
|
|
2
|
+
declare const ARTIFACT_COMPATIBILITY_SCHEMA_VERSION = 1;
|
|
3
|
+
declare const APP_ELEMENTS_SCHEMA_VERSION = 1;
|
|
4
|
+
declare const RSC_PAYLOAD_SCHEMA_VERSION = 1;
|
|
5
|
+
type ArtifactCompatibilityEnvelope = Readonly<{
|
|
6
|
+
schemaVersion: typeof ARTIFACT_COMPATIBILITY_SCHEMA_VERSION;
|
|
7
|
+
graphVersion: string | null;
|
|
8
|
+
deploymentVersion: string | null;
|
|
9
|
+
appElementsSchemaVersion: typeof APP_ELEMENTS_SCHEMA_VERSION;
|
|
10
|
+
rscPayloadSchemaVersion: typeof RSC_PAYLOAD_SCHEMA_VERSION;
|
|
11
|
+
rootBoundaryId: string | null;
|
|
12
|
+
renderEpoch: string | null;
|
|
13
|
+
}>;
|
|
14
|
+
declare const ARTIFACT_COMPATIBILITY_PROOF_FIELDS: readonly (keyof ArtifactCompatibilityEnvelope)[];
|
|
15
|
+
type ArtifactCompatibilityEnvelopeInput = Readonly<{
|
|
16
|
+
graphVersion?: string | null;
|
|
17
|
+
deploymentVersion?: string | null;
|
|
18
|
+
rootBoundaryId?: string | null;
|
|
19
|
+
renderEpoch?: string | null;
|
|
20
|
+
}>;
|
|
21
|
+
type ArtifactCompatibilitySet = readonly [string, string, ...string[]];
|
|
22
|
+
type ArtifactCompatibilityMap = Readonly<{
|
|
23
|
+
graphVersions?: readonly ArtifactCompatibilitySet[];
|
|
24
|
+
deploymentVersions?: readonly ArtifactCompatibilitySet[];
|
|
25
|
+
rootBoundaryIds?: readonly ArtifactCompatibilitySet[];
|
|
26
|
+
renderEpochs?: readonly ArtifactCompatibilitySet[];
|
|
27
|
+
}>;
|
|
28
|
+
type ArtifactCompatibilityEvaluationOptions = Readonly<{
|
|
29
|
+
compatibilityMap?: ArtifactCompatibilityMap;
|
|
30
|
+
}>;
|
|
31
|
+
type ArtifactCompatibilityFallback = "renderFresh";
|
|
32
|
+
type ArtifactCompatibilityUnknownReason = "graphVersionUnknown" | "deploymentVersionUnknown" | "rootBoundaryIdUnknown" | "renderEpochUnknown";
|
|
33
|
+
type ArtifactCompatibilityIncompatibleReason = "appElementsSchemaVersionMismatch" | "deploymentVersionNotDeclaredCompatible" | "deploymentVersionMismatch" | "graphVersionNotDeclaredCompatible" | "graphVersionMismatch" | "renderEpochNotDeclaredCompatible" | "renderEpochMismatch" | "rootBoundaryIdNotDeclaredCompatible" | "rootBoundaryIdMismatch" | "rscPayloadSchemaVersionMismatch" | "schemaVersionMismatch";
|
|
34
|
+
type ArtifactCompatibilityDecision = Readonly<{
|
|
35
|
+
kind: "compatible";
|
|
36
|
+
} | {
|
|
37
|
+
kind: "unknown";
|
|
38
|
+
fallback: ArtifactCompatibilityFallback;
|
|
39
|
+
reason: ArtifactCompatibilityUnknownReason;
|
|
40
|
+
} | {
|
|
41
|
+
kind: "incompatible";
|
|
42
|
+
fallback: ArtifactCompatibilityFallback;
|
|
43
|
+
reason: ArtifactCompatibilityIncompatibleReason;
|
|
44
|
+
}>;
|
|
45
|
+
type ArtifactCompatibilityGraphVersionInput = Readonly<{
|
|
46
|
+
routePattern: string;
|
|
47
|
+
rootBoundaryId: string | null;
|
|
48
|
+
}>;
|
|
49
|
+
declare function createArtifactCompatibilityEnvelope(input?: ArtifactCompatibilityEnvelopeInput): ArtifactCompatibilityEnvelope;
|
|
50
|
+
declare function createArtifactCompatibilityGraphVersion(input: ArtifactCompatibilityGraphVersionInput): string;
|
|
51
|
+
declare function parseArtifactCompatibilityEnvelope(value: unknown): ArtifactCompatibilityEnvelope | null;
|
|
52
|
+
declare function evaluateArtifactCompatibility(current: ArtifactCompatibilityEnvelope, candidate: ArtifactCompatibilityEnvelope, options?: ArtifactCompatibilityEvaluationOptions): ArtifactCompatibilityDecision;
|
|
53
|
+
//#endregion
|
|
54
|
+
export { APP_ELEMENTS_SCHEMA_VERSION, ARTIFACT_COMPATIBILITY_PROOF_FIELDS, ARTIFACT_COMPATIBILITY_SCHEMA_VERSION, ArtifactCompatibilityEnvelope, ArtifactCompatibilityEvaluationOptions, RSC_PAYLOAD_SCHEMA_VERSION, createArtifactCompatibilityEnvelope, createArtifactCompatibilityGraphVersion, evaluateArtifactCompatibility, parseArtifactCompatibilityEnvelope };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { isUnknownRecord } from "../utils/record.js";
|
|
2
|
+
import { fnv1a64 } from "../utils/hash.js";
|
|
3
|
+
//#region src/server/artifact-compatibility.ts
|
|
4
|
+
const ARTIFACT_COMPATIBILITY_SCHEMA_VERSION = 1;
|
|
5
|
+
const APP_ELEMENTS_SCHEMA_VERSION = 1;
|
|
6
|
+
const RSC_PAYLOAD_SCHEMA_VERSION = 1;
|
|
7
|
+
const ARTIFACT_COMPATIBILITY_PROOF_FIELDS = [
|
|
8
|
+
"schemaVersion",
|
|
9
|
+
"graphVersion",
|
|
10
|
+
"deploymentVersion",
|
|
11
|
+
"appElementsSchemaVersion",
|
|
12
|
+
"rscPayloadSchemaVersion",
|
|
13
|
+
"rootBoundaryId",
|
|
14
|
+
"renderEpoch"
|
|
15
|
+
];
|
|
16
|
+
function createArtifactCompatibilityEnvelope(input = {}) {
|
|
17
|
+
return {
|
|
18
|
+
schemaVersion: 1,
|
|
19
|
+
graphVersion: input.graphVersion ?? null,
|
|
20
|
+
deploymentVersion: input.deploymentVersion ?? null,
|
|
21
|
+
appElementsSchemaVersion: 1,
|
|
22
|
+
rscPayloadSchemaVersion: 1,
|
|
23
|
+
rootBoundaryId: input.rootBoundaryId ?? null,
|
|
24
|
+
renderEpoch: input.renderEpoch ?? null
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function createArtifactCompatibilityGraphVersion(input) {
|
|
28
|
+
return `app-route-graph:${fnv1a64(JSON.stringify([input.routePattern, input.rootBoundaryId]))}`;
|
|
29
|
+
}
|
|
30
|
+
function isStringOrNull(value) {
|
|
31
|
+
return typeof value === "string" || value === null;
|
|
32
|
+
}
|
|
33
|
+
function hasCurrentSchemaVersions(record) {
|
|
34
|
+
return record.schemaVersion === 1 && record.appElementsSchemaVersion === 1 && record.rscPayloadSchemaVersion === 1;
|
|
35
|
+
}
|
|
36
|
+
function parseArtifactCompatibilityEnvelope(value) {
|
|
37
|
+
if (!isUnknownRecord(value)) return null;
|
|
38
|
+
if (!hasCurrentSchemaVersions(value)) return null;
|
|
39
|
+
if (!isStringOrNull(value.graphVersion)) return null;
|
|
40
|
+
if (!isStringOrNull(value.deploymentVersion)) return null;
|
|
41
|
+
if (!isStringOrNull(value.rootBoundaryId)) return null;
|
|
42
|
+
if (!isStringOrNull(value.renderEpoch)) return null;
|
|
43
|
+
return {
|
|
44
|
+
schemaVersion: 1,
|
|
45
|
+
graphVersion: value.graphVersion,
|
|
46
|
+
deploymentVersion: value.deploymentVersion,
|
|
47
|
+
appElementsSchemaVersion: 1,
|
|
48
|
+
rscPayloadSchemaVersion: 1,
|
|
49
|
+
rootBoundaryId: value.rootBoundaryId,
|
|
50
|
+
renderEpoch: value.renderEpoch
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function incompatible(reason) {
|
|
54
|
+
return {
|
|
55
|
+
kind: "incompatible",
|
|
56
|
+
fallback: "renderFresh",
|
|
57
|
+
reason
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function unknown(reason) {
|
|
61
|
+
return {
|
|
62
|
+
kind: "unknown",
|
|
63
|
+
fallback: "renderFresh",
|
|
64
|
+
reason
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function compareKnownField(currentValue, candidateValue, unknownReason, mismatchReason, notDeclaredCompatibleReason, compatibilitySets) {
|
|
68
|
+
if (currentValue === null || candidateValue === null) return unknown(unknownReason);
|
|
69
|
+
if (currentValue === candidateValue) return null;
|
|
70
|
+
if (compatibilitySets === void 0) return incompatible(mismatchReason);
|
|
71
|
+
return isDeclaredCompatible(currentValue, candidateValue, compatibilitySets) ? null : incompatible(notDeclaredCompatibleReason);
|
|
72
|
+
}
|
|
73
|
+
function isDeclaredCompatible(currentValue, candidateValue, compatibilitySets) {
|
|
74
|
+
return compatibilitySets.some((compatibilitySet) => compatibilitySet.includes(currentValue) && compatibilitySet.includes(candidateValue));
|
|
75
|
+
}
|
|
76
|
+
function evaluateArtifactCompatibility(current, candidate, options = {}) {
|
|
77
|
+
if (current.schemaVersion !== candidate.schemaVersion) return incompatible("schemaVersionMismatch");
|
|
78
|
+
if (current.appElementsSchemaVersion !== candidate.appElementsSchemaVersion) return incompatible("appElementsSchemaVersionMismatch");
|
|
79
|
+
if (current.rscPayloadSchemaVersion !== candidate.rscPayloadSchemaVersion) return incompatible("rscPayloadSchemaVersionMismatch");
|
|
80
|
+
const graphDecision = compareKnownField(current.graphVersion, candidate.graphVersion, "graphVersionUnknown", "graphVersionMismatch", "graphVersionNotDeclaredCompatible", options.compatibilityMap?.graphVersions);
|
|
81
|
+
if (graphDecision) return graphDecision;
|
|
82
|
+
const deploymentDecision = compareKnownField(current.deploymentVersion, candidate.deploymentVersion, "deploymentVersionUnknown", "deploymentVersionMismatch", "deploymentVersionNotDeclaredCompatible", options.compatibilityMap?.deploymentVersions);
|
|
83
|
+
if (deploymentDecision) return deploymentDecision;
|
|
84
|
+
const rootBoundaryDecision = compareKnownField(current.rootBoundaryId, candidate.rootBoundaryId, "rootBoundaryIdUnknown", "rootBoundaryIdMismatch", "rootBoundaryIdNotDeclaredCompatible", options.compatibilityMap?.rootBoundaryIds);
|
|
85
|
+
if (rootBoundaryDecision) return rootBoundaryDecision;
|
|
86
|
+
const renderEpochDecision = compareKnownField(current.renderEpoch, candidate.renderEpoch, "renderEpochUnknown", "renderEpochMismatch", "renderEpochNotDeclaredCompatible", options.compatibilityMap?.renderEpochs);
|
|
87
|
+
if (renderEpochDecision) return renderEpochDecision;
|
|
88
|
+
return { kind: "compatible" };
|
|
89
|
+
}
|
|
90
|
+
//#endregion
|
|
91
|
+
export { APP_ELEMENTS_SCHEMA_VERSION, ARTIFACT_COMPATIBILITY_PROOF_FIELDS, ARTIFACT_COMPATIBILITY_SCHEMA_VERSION, RSC_PAYLOAD_SCHEMA_VERSION, createArtifactCompatibilityEnvelope, createArtifactCompatibilityGraphVersion, evaluateArtifactCompatibility, parseArtifactCompatibilityEnvelope };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BeforeInteractiveInlineScript } from "../shims/before-interactive-context.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/before-interactive-head.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Render captured `<Script strategy="beforeInteractive">` scripts to HTML,
|
|
6
|
+
* ready to splice immediately after `<head ...>` opens. Each entry has already
|
|
7
|
+
* had its inline content escaped via `escapeInlineContent(..., "script")`
|
|
8
|
+
* inside the Script shim, so this function only quotes the attributes that
|
|
9
|
+
* actually go on the tag (id, src, nonce, plus the residual passthroughs).
|
|
10
|
+
*
|
|
11
|
+
* Keeping this function in its own module makes the boundary obvious: anything
|
|
12
|
+
* passed through here is being concatenated directly into HTML; treat the
|
|
13
|
+
* inputs accordingly.
|
|
14
|
+
*/
|
|
15
|
+
declare function renderBeforeInteractiveInlineScripts(scripts: readonly BeforeInteractiveInlineScript[]): string;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { renderBeforeInteractiveInlineScripts };
|