@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,340 @@
|
|
|
1
|
+
import React, { Children, isValidElement, useEffect, useRef } from "react";
|
|
2
|
+
//#region src/shims/head.ts
|
|
3
|
+
/**
|
|
4
|
+
* next/head shim
|
|
5
|
+
*
|
|
6
|
+
* In the Pages Router, <Head> manages document <head> elements.
|
|
7
|
+
* - On the server: collects elements into a module-level array that the
|
|
8
|
+
* dev-server reads after render and injects into the HTML <head>.
|
|
9
|
+
* - On the client: reduces all mounted <Head> instances into one deduped
|
|
10
|
+
* document.head projection and applies it with DOM manipulation.
|
|
11
|
+
*/
|
|
12
|
+
let _ssrHeadChildren = [];
|
|
13
|
+
let _documentInitialHead = [];
|
|
14
|
+
/** @internal — exposed for unit tests of the client head projection. */
|
|
15
|
+
const _clientHeadChildren = /* @__PURE__ */ new Map();
|
|
16
|
+
let _getSSRHeadChildren = () => _ssrHeadChildren;
|
|
17
|
+
let _resetSSRHeadImpl = () => {
|
|
18
|
+
_ssrHeadChildren = [];
|
|
19
|
+
_documentInitialHead = [];
|
|
20
|
+
};
|
|
21
|
+
let _getDocumentInitialHead = () => _documentInitialHead;
|
|
22
|
+
let _setDocumentInitialHead = (head) => {
|
|
23
|
+
_documentInitialHead = head;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Register ALS-backed state accessors. Called by head-state.ts on import.
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
function _registerHeadStateAccessors(accessors) {
|
|
30
|
+
_getSSRHeadChildren = accessors.getSSRHeadChildren;
|
|
31
|
+
_resetSSRHeadImpl = accessors.resetSSRHead;
|
|
32
|
+
if (accessors.getDocumentInitialHead) _getDocumentInitialHead = accessors.getDocumentInitialHead;
|
|
33
|
+
if (accessors.setDocumentInitialHead) _setDocumentInitialHead = accessors.setDocumentInitialHead;
|
|
34
|
+
}
|
|
35
|
+
/** Reset the SSR head collector. Call before render. */
|
|
36
|
+
function resetSSRHead() {
|
|
37
|
+
_resetSSRHeadImpl();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Register head tags returned by a user `_document.getInitialProps()` call.
|
|
41
|
+
* Mirrors Next.js: `_document` may extend the head array passed to its render,
|
|
42
|
+
* and those tags are merged into the final `<head>` output. We treat them the
|
|
43
|
+
* same as `next/head` children — they go through the same dedupe pipeline so
|
|
44
|
+
* later tags (by key or meta-type) win, matching Next.js semantics.
|
|
45
|
+
*
|
|
46
|
+
* Pass an empty array (or simply don't call this) to skip the merge.
|
|
47
|
+
*/
|
|
48
|
+
function setDocumentInitialHead(head) {
|
|
49
|
+
_setDocumentInitialHead(head);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Default head tags emitted alongside every Pages Router render — charset
|
|
53
|
+
* first, then viewport. Mirrors Next.js's `defaultHead()` in
|
|
54
|
+
* `packages/next/src/shared/lib/head.tsx`, which seeds the head array used
|
|
55
|
+
* by `HeadManagerContext` before any user `<Head>` reduces over it.
|
|
56
|
+
*
|
|
57
|
+
* The canonical Next.js order is `<meta charset>` then `<meta viewport>`
|
|
58
|
+
* then user tags, all with `data-next-head=""`. See assertion in
|
|
59
|
+
* `test/e2e/next-head/index.test.ts`.
|
|
60
|
+
*/
|
|
61
|
+
function defaultHead() {
|
|
62
|
+
return [React.createElement("meta", {
|
|
63
|
+
charSet: "utf-8",
|
|
64
|
+
key: "charset"
|
|
65
|
+
}), React.createElement("meta", {
|
|
66
|
+
name: "viewport",
|
|
67
|
+
content: "width=device-width",
|
|
68
|
+
key: "viewport"
|
|
69
|
+
})];
|
|
70
|
+
}
|
|
71
|
+
/** Get collected head HTML. Call after render. */
|
|
72
|
+
function getSSRHeadHTML() {
|
|
73
|
+
return reduceHeadChildren([
|
|
74
|
+
...defaultHead(),
|
|
75
|
+
..._getSSRHeadChildren(),
|
|
76
|
+
..._getDocumentInitialHead()
|
|
77
|
+
]).map((child) => headChildToHTML(child.type, child.props)).filter(Boolean).join("\n ");
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Tags allowed inside <head>. Anything else is silently dropped.
|
|
81
|
+
* This prevents injection of dangerous elements like <iframe>, <object>, etc.
|
|
82
|
+
*/
|
|
83
|
+
const ALLOWED_HEAD_TAGS = new Set([
|
|
84
|
+
"title",
|
|
85
|
+
"meta",
|
|
86
|
+
"link",
|
|
87
|
+
"style",
|
|
88
|
+
"script",
|
|
89
|
+
"base",
|
|
90
|
+
"noscript"
|
|
91
|
+
]);
|
|
92
|
+
const ALLOWED_HEAD_TAGS_LIST = Array.from(ALLOWED_HEAD_TAGS).join(", ");
|
|
93
|
+
const META_TYPES = [
|
|
94
|
+
"name",
|
|
95
|
+
"httpEquiv",
|
|
96
|
+
"charSet",
|
|
97
|
+
"itemProp"
|
|
98
|
+
];
|
|
99
|
+
/** Self-closing tags: no inner content, emit as <tag ... /> */
|
|
100
|
+
const SELF_CLOSING_HEAD_TAGS = new Set([
|
|
101
|
+
"meta",
|
|
102
|
+
"link",
|
|
103
|
+
"base"
|
|
104
|
+
]);
|
|
105
|
+
/** Tags whose content is raw text — closing-tag sequences must be escaped during SSR. */
|
|
106
|
+
const RAW_CONTENT_TAGS = new Set(["script", "style"]);
|
|
107
|
+
const INLINE_CLOSE_TAG_RES = {
|
|
108
|
+
script: /<\/(script)/gi,
|
|
109
|
+
style: /<\/(style)/gi
|
|
110
|
+
};
|
|
111
|
+
function warnDisallowedHeadTag(tag) {
|
|
112
|
+
if (process.env.NODE_ENV !== "production") console.warn(`[vinext] <Head> ignoring disallowed tag <${tag}>. Only ${ALLOWED_HEAD_TAGS_LIST} are allowed.`);
|
|
113
|
+
}
|
|
114
|
+
function collectHeadElements(list, child) {
|
|
115
|
+
if (child == null || typeof child === "boolean" || typeof child === "string" || typeof child === "number") return list;
|
|
116
|
+
if (!isValidElement(child)) return list;
|
|
117
|
+
if (child.type === React.Fragment) return Children.toArray(child.props.children).reduce(collectHeadElements, list);
|
|
118
|
+
if (typeof child.type !== "string") return list;
|
|
119
|
+
if (!ALLOWED_HEAD_TAGS.has(child.type)) {
|
|
120
|
+
warnDisallowedHeadTag(child.type);
|
|
121
|
+
return list;
|
|
122
|
+
}
|
|
123
|
+
return list.concat(child);
|
|
124
|
+
}
|
|
125
|
+
function normalizeHeadKey(key) {
|
|
126
|
+
if (key == null || typeof key === "number") return null;
|
|
127
|
+
const normalizedKey = String(key);
|
|
128
|
+
const separatorIndex = normalizedKey.indexOf("$");
|
|
129
|
+
return separatorIndex > 0 ? normalizedKey.slice(separatorIndex + 1) : null;
|
|
130
|
+
}
|
|
131
|
+
function createUniqueHeadFilter() {
|
|
132
|
+
const keys = /* @__PURE__ */ new Set();
|
|
133
|
+
const tags = /* @__PURE__ */ new Set();
|
|
134
|
+
const metaTypes = /* @__PURE__ */ new Set();
|
|
135
|
+
const metaCategories = /* @__PURE__ */ new Map();
|
|
136
|
+
return (child) => {
|
|
137
|
+
let isUnique = true;
|
|
138
|
+
const normalizedKey = normalizeHeadKey(child.key);
|
|
139
|
+
const hasKey = normalizedKey !== null;
|
|
140
|
+
if (normalizedKey) if (keys.has(normalizedKey)) isUnique = false;
|
|
141
|
+
else keys.add(normalizedKey);
|
|
142
|
+
switch (child.type) {
|
|
143
|
+
case "title":
|
|
144
|
+
case "base":
|
|
145
|
+
if (tags.has(child.type)) isUnique = false;
|
|
146
|
+
else tags.add(child.type);
|
|
147
|
+
break;
|
|
148
|
+
case "meta": {
|
|
149
|
+
const props = child.props;
|
|
150
|
+
for (const metaType of META_TYPES) {
|
|
151
|
+
if (!Object.prototype.hasOwnProperty.call(props, metaType)) continue;
|
|
152
|
+
if (metaType === "charSet") {
|
|
153
|
+
if (metaTypes.has(metaType)) isUnique = false;
|
|
154
|
+
else metaTypes.add(metaType);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const category = props[metaType];
|
|
158
|
+
if (typeof category !== "string") continue;
|
|
159
|
+
let categories = metaCategories.get(metaType);
|
|
160
|
+
if (!categories) {
|
|
161
|
+
categories = /* @__PURE__ */ new Set();
|
|
162
|
+
metaCategories.set(metaType, categories);
|
|
163
|
+
}
|
|
164
|
+
if ((metaType !== "name" || !hasKey) && categories.has(category)) isUnique = false;
|
|
165
|
+
else categories.add(category);
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
default: break;
|
|
170
|
+
}
|
|
171
|
+
return isUnique;
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
function reduceHeadChildren(headChildren) {
|
|
175
|
+
return headChildren.reduce((flattenedChildren, child) => flattenedChildren.concat(Children.toArray(child)), []).reduce(collectHeadElements, []).reverse().filter(createUniqueHeadFilter()).reverse();
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Validate an HTML attribute name. Rejects names that could break out of
|
|
179
|
+
* the attribute context during SSR serialization, or that represent inline
|
|
180
|
+
* event handlers (on*). Only allows alphanumeric characters, hyphens, and
|
|
181
|
+
* common data-attribute patterns.
|
|
182
|
+
*/
|
|
183
|
+
const SAFE_ATTR_NAME_RE = /^[a-zA-Z][a-zA-Z0-9\-:.]*$/;
|
|
184
|
+
function isSafeAttrName(name) {
|
|
185
|
+
if (!SAFE_ATTR_NAME_RE.test(name)) return false;
|
|
186
|
+
if (name.length > 2 && name[0] === "o" && name[1] === "n" && name[2] >= "A" && name[2] <= "z") return false;
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Map React JSX attribute names to their HTML serialised form for the small
|
|
191
|
+
* set of head-relevant attributes where the two differ. React's own renderer
|
|
192
|
+
* normalises these automatically, but we serialise tags by hand so they reach
|
|
193
|
+
* the final HTML in the canonical lowercase / kebab-case shape that browsers
|
|
194
|
+
* (and Next.js's `test/e2e/next-head/index.test.ts`) expect.
|
|
195
|
+
*/
|
|
196
|
+
const JSX_TO_HTML_ATTR_MAP = {
|
|
197
|
+
charSet: "charset",
|
|
198
|
+
httpEquiv: "http-equiv",
|
|
199
|
+
acceptCharset: "accept-charset",
|
|
200
|
+
itemProp: "itemprop",
|
|
201
|
+
itemType: "itemtype",
|
|
202
|
+
itemID: "itemid",
|
|
203
|
+
itemRef: "itemref",
|
|
204
|
+
itemScope: "itemscope",
|
|
205
|
+
crossOrigin: "crossorigin",
|
|
206
|
+
referrerPolicy: "referrerpolicy"
|
|
207
|
+
};
|
|
208
|
+
function jsxAttrToHtml(name) {
|
|
209
|
+
return JSX_TO_HTML_ATTR_MAP[name] ?? name;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Convert props + tag to an HTML string for SSR head injection.
|
|
213
|
+
* Callers must only pass tags that have already been validated against
|
|
214
|
+
* ALLOWED_HEAD_TAGS (e.g. via reduceHeadChildren / collectHeadElements).
|
|
215
|
+
*/
|
|
216
|
+
function headChildToHTML(tag, props) {
|
|
217
|
+
const attrs = [];
|
|
218
|
+
let innerHTML = "";
|
|
219
|
+
const rawHtml = getDangerouslySetInnerHTML(props.dangerouslySetInnerHTML);
|
|
220
|
+
if (rawHtml != null) innerHTML = rawHtml;
|
|
221
|
+
else if (typeof props.children === "string") innerHTML = escapeHTML(props.children);
|
|
222
|
+
else if (Array.isArray(props.children)) innerHTML = escapeHTML(props.children.join(""));
|
|
223
|
+
for (const [key, value] of Object.entries(props)) if (key === "children" || key === "dangerouslySetInnerHTML") continue;
|
|
224
|
+
else if (key === "className") attrs.push(`class="${escapeAttr(String(value))}"`);
|
|
225
|
+
else if (typeof value === "string") {
|
|
226
|
+
if (!isSafeAttrName(key)) continue;
|
|
227
|
+
attrs.push(`${jsxAttrToHtml(key)}="${escapeAttr(value)}"`);
|
|
228
|
+
} else if (typeof value === "boolean" && value) {
|
|
229
|
+
if (!isSafeAttrName(key)) continue;
|
|
230
|
+
attrs.push(jsxAttrToHtml(key));
|
|
231
|
+
}
|
|
232
|
+
const attrStr = attrs.length ? " " + attrs.join(" ") : "";
|
|
233
|
+
if (SELF_CLOSING_HEAD_TAGS.has(tag)) return `<${tag}${attrStr} data-next-head="" />`;
|
|
234
|
+
if (RAW_CONTENT_TAGS.has(tag) && innerHTML) innerHTML = escapeInlineContent(innerHTML, tag);
|
|
235
|
+
return `<${tag}${attrStr} data-next-head="">${innerHTML}</${tag}>`;
|
|
236
|
+
}
|
|
237
|
+
function escapeHTML(s) {
|
|
238
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
239
|
+
}
|
|
240
|
+
function escapeAttr(s) {
|
|
241
|
+
return s.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Escape content that will be placed inside a raw <script> or <style> tag
|
|
245
|
+
* during SSR. The HTML parser treats `<\/script>` (or `</style>`) as the end
|
|
246
|
+
* of the block regardless of JavaScript string context, so any occurrence
|
|
247
|
+
* of `</` followed by the tag name must be escaped.
|
|
248
|
+
*
|
|
249
|
+
* We replace `<\/script` and `</style` (case-insensitive) with `<\/script`
|
|
250
|
+
* and `<\/style` respectively. The `<\/` form is harmless in JS/CSS string
|
|
251
|
+
* context but prevents the HTML parser from seeing a closing tag.
|
|
252
|
+
*/
|
|
253
|
+
function escapeInlineContent(content, tag) {
|
|
254
|
+
const pattern = INLINE_CLOSE_TAG_RES[tag];
|
|
255
|
+
if (!pattern) return content;
|
|
256
|
+
return content.replace(pattern, "<\\/$1");
|
|
257
|
+
}
|
|
258
|
+
function getDangerouslySetInnerHTML(value) {
|
|
259
|
+
if (typeof value !== "object" || value === null) return void 0;
|
|
260
|
+
const html = Reflect.get(value, "__html");
|
|
261
|
+
return typeof html === "string" ? html : void 0;
|
|
262
|
+
}
|
|
263
|
+
function _applyHeadPropsToElement(domEl, props) {
|
|
264
|
+
const rawHtml = getDangerouslySetInnerHTML(props.dangerouslySetInnerHTML);
|
|
265
|
+
if (rawHtml != null) domEl.innerHTML = rawHtml;
|
|
266
|
+
else if (typeof props.children === "string") domEl.textContent = props.children;
|
|
267
|
+
else if (Array.isArray(props.children)) domEl.textContent = props.children.join("");
|
|
268
|
+
for (const [key, value] of Object.entries(props)) if (key === "children" || key === "dangerouslySetInnerHTML") continue;
|
|
269
|
+
else if (key === "className") domEl.setAttribute("class", String(value));
|
|
270
|
+
else if (typeof value === "boolean" && value) {
|
|
271
|
+
if (!isSafeAttrName(key)) continue;
|
|
272
|
+
domEl.setAttribute(jsxAttrToHtml(key), "");
|
|
273
|
+
} else if (typeof value === "string") {
|
|
274
|
+
if (!isSafeAttrName(key)) continue;
|
|
275
|
+
domEl.setAttribute(jsxAttrToHtml(key), value);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Reconcile the document <head> against the desired projection.
|
|
280
|
+
*
|
|
281
|
+
* Mirrors Next.js's client `head-manager.ts` `updateElements()`: rather than
|
|
282
|
+
* wiping every [data-next-head] node and re-appending (which reorders the
|
|
283
|
+
* SSR-emitted tags to the end of <head> and causes flicker on each update),
|
|
284
|
+
* we diff the desired tags against the existing ones with isEqualNode(). Tags
|
|
285
|
+
* that already match are left untouched in their original DOM position, only
|
|
286
|
+
* genuinely new tags are inserted, and stale tags are removed.
|
|
287
|
+
*
|
|
288
|
+
* The desired list seeds defaultHead() (charset + viewport) ahead of user
|
|
289
|
+
* tags — matching the SSR path in getSSRHeadHTML() and Next.js's
|
|
290
|
+
* reduceComponents(), which always concatenates defaultHead() on both server
|
|
291
|
+
* and client. Without it the first <Head> mount after hydration would drop the
|
|
292
|
+
* server-rendered defaults. Users can still override via key="charset" /
|
|
293
|
+
* key="viewport" through the dedupe pipeline.
|
|
294
|
+
*
|
|
295
|
+
* @internal — exported for unit tests; called from the Head client effect.
|
|
296
|
+
*/
|
|
297
|
+
function _syncClientHead() {
|
|
298
|
+
const headEl = document.head;
|
|
299
|
+
if (!headEl) return;
|
|
300
|
+
const oldTags = new Set(headEl.querySelectorAll("[data-next-head]"));
|
|
301
|
+
const charsetEl = headEl.querySelector("meta[charset]");
|
|
302
|
+
if (charsetEl) oldTags.add(charsetEl);
|
|
303
|
+
const newTags = [];
|
|
304
|
+
for (const child of reduceHeadChildren([...defaultHead(), ..._clientHeadChildren.values()])) {
|
|
305
|
+
if (typeof child.type !== "string") continue;
|
|
306
|
+
const domEl = document.createElement(child.type);
|
|
307
|
+
_applyHeadPropsToElement(domEl, child.props);
|
|
308
|
+
domEl.setAttribute("data-next-head", "");
|
|
309
|
+
let isNew = true;
|
|
310
|
+
for (const oldTag of oldTags) if (oldTag.isEqualNode(domEl)) {
|
|
311
|
+
oldTags.delete(oldTag);
|
|
312
|
+
isNew = false;
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
if (isNew) newTags.push(domEl);
|
|
316
|
+
}
|
|
317
|
+
for (const oldTag of oldTags) oldTag.parentNode?.removeChild(oldTag);
|
|
318
|
+
for (const newTag of newTags) if (newTag.tagName.toLowerCase() === "meta" && newTag.getAttribute("charset") !== null) headEl.prepend(newTag);
|
|
319
|
+
else headEl.appendChild(newTag);
|
|
320
|
+
}
|
|
321
|
+
function Head({ children }) {
|
|
322
|
+
const headInstanceIdRef = useRef(null);
|
|
323
|
+
if (headInstanceIdRef.current === null) headInstanceIdRef.current = Symbol("vinext-head");
|
|
324
|
+
if (typeof window === "undefined") {
|
|
325
|
+
_getSSRHeadChildren().push(children);
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
useEffect(() => {
|
|
329
|
+
const instanceId = headInstanceIdRef.current;
|
|
330
|
+
_clientHeadChildren.set(instanceId, children);
|
|
331
|
+
_syncClientHead();
|
|
332
|
+
return () => {
|
|
333
|
+
_clientHeadChildren.delete(instanceId);
|
|
334
|
+
_syncClientHead();
|
|
335
|
+
};
|
|
336
|
+
}, [children]);
|
|
337
|
+
return null;
|
|
338
|
+
}
|
|
339
|
+
//#endregion
|
|
340
|
+
export { _applyHeadPropsToElement, _clientHeadChildren, _registerHeadStateAccessors, _syncClientHead, Head as default, escapeAttr, escapeInlineContent, getSSRHeadHTML, isSafeAttrName, reduceHeadChildren, resetSSRHead, setDocumentInitialHead };
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
import { RenderRequestApiKind } from "../server/cache-proof.js";
|
|
2
|
+
|
|
3
|
+
//#region src/shims/headers.d.ts
|
|
4
|
+
type HeadersContext = {
|
|
5
|
+
headers: Headers;
|
|
6
|
+
cookies: Map<string, string>;
|
|
7
|
+
accessError?: Error;
|
|
8
|
+
forceStatic?: boolean;
|
|
9
|
+
mutableCookies?: RequestCookies;
|
|
10
|
+
readonlyCookies?: RequestCookies;
|
|
11
|
+
readonlyHeaders?: Headers;
|
|
12
|
+
draftModeSecret?: string;
|
|
13
|
+
};
|
|
14
|
+
type HeadersContextFromRequestOptions = {
|
|
15
|
+
draftModeSecret?: string;
|
|
16
|
+
};
|
|
17
|
+
type HeadersAccessPhase = "render" | "action" | "route-handler";
|
|
18
|
+
type VinextHeadersShimState = {
|
|
19
|
+
headersContext: HeadersContext | null;
|
|
20
|
+
dynamicUsageDetected: boolean;
|
|
21
|
+
renderRequestApiUsage: Set<RenderRequestApiKind>;
|
|
22
|
+
connectionProbe: ConnectionProbeState | null; /** Error recorded by throwIfInsideCacheScope for dev diagnostics, persists even if caught by user code. */
|
|
23
|
+
invalidDynamicUsageError: unknown;
|
|
24
|
+
pendingSetCookies: string[];
|
|
25
|
+
draftModeCookieHeader: string | null;
|
|
26
|
+
phase: HeadersAccessPhase;
|
|
27
|
+
};
|
|
28
|
+
type ConnectionProbeState = {
|
|
29
|
+
interrupted: boolean;
|
|
30
|
+
interrupt: () => void;
|
|
31
|
+
pending: Promise<never>;
|
|
32
|
+
};
|
|
33
|
+
type ConnectionProbeResult<T> = {
|
|
34
|
+
completed: true;
|
|
35
|
+
result: T;
|
|
36
|
+
} | {
|
|
37
|
+
completed: false;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Dynamic usage flag — set when a component calls connection(), cookies(),
|
|
41
|
+
* headers(), or noStore() during rendering. When true, ISR caching is
|
|
42
|
+
* bypassed and the response gets Cache-Control: no-store.
|
|
43
|
+
*/
|
|
44
|
+
/**
|
|
45
|
+
* Mark the current render as requiring dynamic (uncached) rendering.
|
|
46
|
+
* Called by connection(), cookies(), headers(), and noStore().
|
|
47
|
+
*/
|
|
48
|
+
declare function markDynamicUsage(): void;
|
|
49
|
+
declare function markRenderRequestApiUsage(kind: RenderRequestApiKind): void;
|
|
50
|
+
declare function runWithConnectionProbe<T>(fn: () => T | Promise<T>): Promise<ConnectionProbeResult<T>>;
|
|
51
|
+
declare function suspendConnectionProbe(): Promise<never> | null;
|
|
52
|
+
declare function peekRenderRequestApiUsage(): RenderRequestApiKind[];
|
|
53
|
+
declare function consumeRenderRequestApiUsage(): RenderRequestApiKind[];
|
|
54
|
+
/**
|
|
55
|
+
* Throw if the current execution is inside a "use cache" or unstable_cache()
|
|
56
|
+
* scope. Called by dynamic request APIs (headers, cookies, connection) to
|
|
57
|
+
* prevent request-specific data from being frozen into cached results.
|
|
58
|
+
*
|
|
59
|
+
* @param apiName - The name of the API being called (e.g. "connection()")
|
|
60
|
+
*/
|
|
61
|
+
declare function throwIfInsideCacheScope(apiName: string): void;
|
|
62
|
+
/**
|
|
63
|
+
* Check, consume, and return any invalid dynamic usage error recorded during
|
|
64
|
+
* the render (e.g. cookies() called inside "use cache"). This error persists
|
|
65
|
+
* even if the throw was caught by user-code try/catch, so it can surface on
|
|
66
|
+
* client-side navigations where the static shell validation is skipped.
|
|
67
|
+
* Ported from Next.js: workStore.invalidDynamicUsageError in
|
|
68
|
+
* packages/next/src/server/app-render/app-render.tsx
|
|
69
|
+
* https://github.com/vercel/next.js/commit/f5e54c06726b571a042fce67417e40a29f6b8689
|
|
70
|
+
*/
|
|
71
|
+
declare function consumeInvalidDynamicUsageError(): unknown;
|
|
72
|
+
/**
|
|
73
|
+
* Check and reset the dynamic usage flag.
|
|
74
|
+
* Called by the server after rendering to decide on caching.
|
|
75
|
+
*/
|
|
76
|
+
declare function consumeDynamicUsage(): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Read the dynamic usage flag without resetting it.
|
|
79
|
+
* Used by the layout probe to fold a probe-scoped `markDynamicUsage()` into the
|
|
80
|
+
* per-layout observation before the isolated probe scope is discarded, so the
|
|
81
|
+
* observation captures `markDynamicUsage()` paths (e.g. `"use cache: private"`)
|
|
82
|
+
* that leave no other observable trace.
|
|
83
|
+
*/
|
|
84
|
+
declare function peekDynamicUsage(): boolean;
|
|
85
|
+
declare function setHeadersAccessPhase(phase: HeadersAccessPhase): HeadersAccessPhase;
|
|
86
|
+
declare function getHeadersAccessPhase(): HeadersAccessPhase;
|
|
87
|
+
/**
|
|
88
|
+
* Set the headers/cookies context for the current RSC render.
|
|
89
|
+
* Called by the framework's RSC entry before rendering each request.
|
|
90
|
+
*
|
|
91
|
+
* @deprecated Prefer runWithHeadersContext() which uses als.run() for
|
|
92
|
+
* proper per-request isolation. This function mutates the ALS store
|
|
93
|
+
* in-place and is only safe for cleanup (ctx=null) within an existing
|
|
94
|
+
* als.run() scope.
|
|
95
|
+
*/
|
|
96
|
+
/**
|
|
97
|
+
* Returns the current live HeadersContext from ALS (or the fallback).
|
|
98
|
+
* Used after applyMiddlewareRequestHeaders() to build a post-middleware
|
|
99
|
+
* request context for afterFiles/fallback rewrite has/missing evaluation.
|
|
100
|
+
*/
|
|
101
|
+
declare function getHeadersContext(): HeadersContext | null;
|
|
102
|
+
declare function setHeadersContext(ctx: HeadersContext | null): void;
|
|
103
|
+
/**
|
|
104
|
+
* Run a function with headers context, ensuring the context propagates
|
|
105
|
+
* through all async operations (including RSC streaming).
|
|
106
|
+
*
|
|
107
|
+
* Uses AsyncLocalStorage.run() to guarantee per-request isolation.
|
|
108
|
+
* The ALS store propagates through all async continuations including
|
|
109
|
+
* ReadableStream consumption, setTimeout callbacks, and Promise chains,
|
|
110
|
+
* so RSC streaming works correctly — components that render when the
|
|
111
|
+
* stream is consumed still see the correct request's context.
|
|
112
|
+
*/
|
|
113
|
+
declare function runWithHeadersContext<T>(ctx: HeadersContext, fn: () => Promise<T>): Promise<T>;
|
|
114
|
+
declare function runWithHeadersContext<T>(ctx: HeadersContext, fn: () => T | Promise<T>): T | Promise<T>;
|
|
115
|
+
/**
|
|
116
|
+
* Apply middleware-forwarded request headers to the current headers context.
|
|
117
|
+
*
|
|
118
|
+
* When Next.js middleware calls `NextResponse.next()` or `NextResponse.rewrite()`
|
|
119
|
+
* with `{ request: { headers } }`, the modified headers are encoded on the
|
|
120
|
+
* middleware response. This function decodes that protocol and applies the
|
|
121
|
+
* resulting request header set to the live `HeadersContext`. When an override
|
|
122
|
+
* list is present, omitted headers are deleted as part of the rebuild.
|
|
123
|
+
*
|
|
124
|
+
* Cached `readonlyHeaders` and `readonlyCookies` snapshots on the
|
|
125
|
+
* HeadersContext must be invalidated whenever this function rebuilds the
|
|
126
|
+
* underlying `headers`/`cookies`. Otherwise a middleware that reads
|
|
127
|
+
* `headers()` (or `cookies()`) before returning a request-header override —
|
|
128
|
+
* for example `@clerk/nextjs`, whose `clerkClient()` reads `headers()` via
|
|
129
|
+
* `buildRequestLike()` during middleware execution — primes a sealed snapshot
|
|
130
|
+
* built from the *pre*-override request, and any subsequent `headers()` call
|
|
131
|
+
* from a Server Component would return that stale snapshot instead of the
|
|
132
|
+
* middleware-modified view.
|
|
133
|
+
*/
|
|
134
|
+
declare function applyMiddlewareRequestHeaders(middlewareResponseHeaders: Headers): void;
|
|
135
|
+
/**
|
|
136
|
+
* Create a HeadersContext from a standard Request object.
|
|
137
|
+
*
|
|
138
|
+
* Performance note: In Workerd (Cloudflare Workers), `new Headers(request.headers)`
|
|
139
|
+
* copies the entire header map across the V8/C++ boundary, which shows up as
|
|
140
|
+
* ~815 ms self-time in production profiles when requests carry many headers.
|
|
141
|
+
* We defer this copy with a lazy proxy:
|
|
142
|
+
*
|
|
143
|
+
* - Reads (`get`, `has`, `entries`, …) are forwarded directly to the original
|
|
144
|
+
* immutable `request.headers` — zero copy cost on the hot path.
|
|
145
|
+
* - The first mutating call (`set`, `delete`, `append`) materialises
|
|
146
|
+
* `new Headers(request.headers)` once, then applies the mutation to the copy.
|
|
147
|
+
* All subsequent operations go to the copy.
|
|
148
|
+
*
|
|
149
|
+
* This means the ~815 ms copy only occurs when middleware actually rewrites
|
|
150
|
+
* request headers via `NextResponse.next({ request: { headers } })`, which is
|
|
151
|
+
* uncommon. Pure read requests (the vast majority) pay zero copy cost.
|
|
152
|
+
*
|
|
153
|
+
* Cookie parsing is also deferred: the `cookie` header string is not split
|
|
154
|
+
* until the first call to `cookies()` or `draftMode()`.
|
|
155
|
+
*/
|
|
156
|
+
declare function headersContextFromRequest(request: Request, options?: HeadersContextFromRequestOptions): HeadersContext;
|
|
157
|
+
/**
|
|
158
|
+
* Read-only Headers instance from the incoming request.
|
|
159
|
+
* Returns a Promise in Next.js 15+ style (but resolves synchronously since
|
|
160
|
+
* the context is already available).
|
|
161
|
+
*/
|
|
162
|
+
declare function headers(): Promise<Headers> & Headers;
|
|
163
|
+
/**
|
|
164
|
+
* Cookie jar from the incoming request.
|
|
165
|
+
* Returns a ReadonlyRequestCookies-like object.
|
|
166
|
+
*/
|
|
167
|
+
declare function cookies(): Promise<RequestCookies> & RequestCookies;
|
|
168
|
+
/** Accumulated Set-Cookie headers from cookies().set() / .delete() calls */
|
|
169
|
+
/**
|
|
170
|
+
* Get and clear all pending Set-Cookie headers generated by cookies().set()/delete().
|
|
171
|
+
* Called by the framework after rendering to attach headers to the response.
|
|
172
|
+
*/
|
|
173
|
+
declare function getAndClearPendingCookies(): string[];
|
|
174
|
+
/**
|
|
175
|
+
* Get any Set-Cookie header generated by draftMode().enable()/disable().
|
|
176
|
+
* Called by the framework after rendering to attach the header to the response.
|
|
177
|
+
*/
|
|
178
|
+
declare function getDraftModeCookieHeader(): string | null;
|
|
179
|
+
declare function isDraftModeRequest(request: Request, draftModeSecret: string): boolean;
|
|
180
|
+
type DraftModeResult = {
|
|
181
|
+
readonly isEnabled: boolean;
|
|
182
|
+
enable(): void;
|
|
183
|
+
disable(): void;
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Draft mode — check/toggle via a `__prerender_bypass` cookie.
|
|
187
|
+
*
|
|
188
|
+
* - `isEnabled`: true if the bypass cookie is present in the request
|
|
189
|
+
* - `enable()`: sets the bypass cookie (for Route Handlers)
|
|
190
|
+
* - `disable()`: clears the bypass cookie
|
|
191
|
+
*
|
|
192
|
+
* Unlike `headers()` / `cookies()`, calling `draftMode()` itself is allowed
|
|
193
|
+
* inside `"use cache"` and `unstable_cache()` scopes — reads of `isEnabled`
|
|
194
|
+
* are non-dynamic and supported in cached functions. Only the mutating
|
|
195
|
+
* `enable()` / `disable()` methods throw when invoked inside a cache scope.
|
|
196
|
+
* Ported from Next.js: packages/next/src/server/request/draft-mode.ts
|
|
197
|
+
* (`getDraftModeProviderForCacheScope` + `trackDynamicDraftMode`).
|
|
198
|
+
*/
|
|
199
|
+
declare function draftMode(): Promise<DraftModeResult>;
|
|
200
|
+
declare class RequestCookies {
|
|
201
|
+
private _cookies;
|
|
202
|
+
constructor(cookies: Map<string, string>);
|
|
203
|
+
get(name: string): {
|
|
204
|
+
name: string;
|
|
205
|
+
value: string;
|
|
206
|
+
} | undefined;
|
|
207
|
+
getAll(nameOrOptions?: string | {
|
|
208
|
+
name: string;
|
|
209
|
+
}): Array<{
|
|
210
|
+
name: string;
|
|
211
|
+
value: string;
|
|
212
|
+
}>;
|
|
213
|
+
has(name: string): boolean;
|
|
214
|
+
/**
|
|
215
|
+
* Set a cookie. In Route Handlers and Server Actions, this produces
|
|
216
|
+
* a Set-Cookie header on the response.
|
|
217
|
+
*/
|
|
218
|
+
set(nameOrOptions: string | {
|
|
219
|
+
name: string;
|
|
220
|
+
value: string;
|
|
221
|
+
path?: string;
|
|
222
|
+
domain?: string;
|
|
223
|
+
maxAge?: number;
|
|
224
|
+
expires?: Date;
|
|
225
|
+
httpOnly?: boolean;
|
|
226
|
+
secure?: boolean;
|
|
227
|
+
sameSite?: "Strict" | "Lax" | "None";
|
|
228
|
+
}, value?: string, options?: {
|
|
229
|
+
path?: string;
|
|
230
|
+
domain?: string;
|
|
231
|
+
maxAge?: number;
|
|
232
|
+
expires?: Date;
|
|
233
|
+
httpOnly?: boolean;
|
|
234
|
+
secure?: boolean;
|
|
235
|
+
sameSite?: "Strict" | "Lax" | "None";
|
|
236
|
+
}): this;
|
|
237
|
+
/**
|
|
238
|
+
* Delete a cookie by emitting an expired Set-Cookie header.
|
|
239
|
+
*/
|
|
240
|
+
delete(nameOrOptions: string | {
|
|
241
|
+
name: string;
|
|
242
|
+
path?: string;
|
|
243
|
+
domain?: string;
|
|
244
|
+
}): this;
|
|
245
|
+
get size(): number;
|
|
246
|
+
[Symbol.iterator](): IterableIterator<[string, {
|
|
247
|
+
name: string;
|
|
248
|
+
value: string;
|
|
249
|
+
}]>;
|
|
250
|
+
toString(): string;
|
|
251
|
+
}
|
|
252
|
+
//#endregion
|
|
253
|
+
export { HeadersAccessPhase, HeadersContext, type RequestCookies, VinextHeadersShimState, applyMiddlewareRequestHeaders, consumeDynamicUsage, consumeInvalidDynamicUsageError, consumeRenderRequestApiUsage, cookies, draftMode, getAndClearPendingCookies, getDraftModeCookieHeader, getHeadersAccessPhase, getHeadersContext, headers, headersContextFromRequest, isDraftModeRequest, markDynamicUsage, markRenderRequestApiUsage, peekDynamicUsage, peekRenderRequestApiUsage, runWithConnectionProbe, runWithHeadersContext, setHeadersAccessPhase, setHeadersContext, suspendConnectionProbe, throwIfInsideCacheScope };
|