@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,538 @@
|
|
|
1
|
+
import { createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
|
|
2
|
+
import { addBasePathToPathname, hasBasePath, stripBasePath } from "../utils/base-path.js";
|
|
3
|
+
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
4
|
+
import { ACTION_REVALIDATED_HEADER, VINEXT_MW_CTX_HEADER, VINEXT_PRERENDER_ROUTE_PARAMS_HEADER } from "./headers.js";
|
|
5
|
+
import { isExternalUrl, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest, requestContextFromRequest, sanitizeDestination } from "../config/config-matchers.js";
|
|
6
|
+
import { notFoundResponse } from "./http-error-responses.js";
|
|
7
|
+
import { applyConfigHeadersToResponse, cloneRequestWithHeaders, cloneRequestWithUrl, filterInternalHeaders, normalizeTrailingSlash, resolvePublicFileRoute } from "./request-pipeline.js";
|
|
8
|
+
import { headersContextFromRequest } from "../shims/headers.js";
|
|
9
|
+
import { ensureFetchPatch, setCurrentFetchSoftTags } from "../shims/fetch-cache.js";
|
|
10
|
+
import { mergeRewriteQuery } from "../utils/query.js";
|
|
11
|
+
import { getScriptNonceFromHeaderSources } from "./csp.js";
|
|
12
|
+
import { normalizeDefaultLocalePathname } from "./pages-i18n.js";
|
|
13
|
+
import { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, isImageOptimizationPath, resolveDevImageRedirect } from "./image-optimization.js";
|
|
14
|
+
import { VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, createRscRedirectLocation, hasRscCacheBustingSearchParam, resolveInvalidRscCacheBustingRequest, stripRscCacheBustingSearchParam, stripRscSuffix } from "./app-rsc-cache-busting.js";
|
|
15
|
+
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
16
|
+
import "./app-page-response.js";
|
|
17
|
+
import { buildNextDataNotFoundResponse, normalizePagesDataRequest } from "./pages-data-route.js";
|
|
18
|
+
import { matchPrerenderRouteParamsPayload, readTrustedPrerenderRouteParams, serializePrerenderRouteParamsHeader } from "./prerender-route-params.js";
|
|
19
|
+
import { getRenderedConcreteUrlPathsForRoute } from "./pregenerated-concrete-paths.js";
|
|
20
|
+
import { flattenErrorCauses } from "../utils/error-cause.js";
|
|
21
|
+
import { pickRootParams, setRootParams } from "../shims/root-params.js";
|
|
22
|
+
import { createServerActionNotFoundResponse, getServerActionNotFoundMessage } from "./server-action-not-found.js";
|
|
23
|
+
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
24
|
+
import { buildPostMwRequestContext } from "./app-post-middleware-context.js";
|
|
25
|
+
import { finalizeAppRscResponse } from "./app-rsc-response-finalizer.js";
|
|
26
|
+
import { normalizeRscRequest } from "./app-rsc-request-normalization.js";
|
|
27
|
+
import { runWithPrerenderWorkUnit } from "./prerender-work-unit-setup.js";
|
|
28
|
+
//#region src/server/app-rsc-handler.ts
|
|
29
|
+
const STATIC_METADATA_CONFIG_HEADER_OVERRIDES = new Set(["cache-control"]);
|
|
30
|
+
function applyMiddlewareContextToResponse(response, middlewareContext) {
|
|
31
|
+
if (!middlewareContext.headers && middlewareContext.status == null) return response;
|
|
32
|
+
const headers = new Headers(response.headers);
|
|
33
|
+
mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
|
|
34
|
+
return new Response(response.body, {
|
|
35
|
+
status: middlewareContext.status ?? response.status,
|
|
36
|
+
statusText: response.statusText,
|
|
37
|
+
headers
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function hasProperty(value, key) {
|
|
41
|
+
return key in value;
|
|
42
|
+
}
|
|
43
|
+
function isEdgeRouteHandler(handler) {
|
|
44
|
+
if (!handler || typeof handler !== "object" || !hasProperty(handler, "runtime")) return false;
|
|
45
|
+
return handler.runtime === "edge" || handler.runtime === "experimental-edge";
|
|
46
|
+
}
|
|
47
|
+
function isExecutionContextLike(value) {
|
|
48
|
+
if (!value || typeof value !== "object") return false;
|
|
49
|
+
return hasProperty(value, "waitUntil") && typeof value.waitUntil === "function";
|
|
50
|
+
}
|
|
51
|
+
function createMissingServerActionResponse(options, actionId) {
|
|
52
|
+
console.warn(getServerActionNotFoundMessage(actionId));
|
|
53
|
+
options.clearRequestContext();
|
|
54
|
+
return createServerActionNotFoundResponse();
|
|
55
|
+
}
|
|
56
|
+
function redirectDestinationWithBasePath(destination, basePath) {
|
|
57
|
+
if (!basePath || isExternalUrl(destination) || hasBasePath(destination, basePath)) return destination;
|
|
58
|
+
return basePath + destination;
|
|
59
|
+
}
|
|
60
|
+
async function applyRewrite(options, cleanPathname) {
|
|
61
|
+
if (!options.rewrites.length) return null;
|
|
62
|
+
const rewritten = matchRewrite(cleanPathname, options.rewrites, options.requestContext, options.basePathState);
|
|
63
|
+
if (!rewritten) return null;
|
|
64
|
+
if (isExternalUrl(rewritten)) {
|
|
65
|
+
options.clearRequestContext();
|
|
66
|
+
return proxyExternalRequest(options.request, rewritten);
|
|
67
|
+
}
|
|
68
|
+
return rewritten;
|
|
69
|
+
}
|
|
70
|
+
function requestContextForResolvedUrl(requestContext, resolvedUrl, baseUrl) {
|
|
71
|
+
return {
|
|
72
|
+
cookies: requestContext.cookies,
|
|
73
|
+
headers: requestContext.headers,
|
|
74
|
+
host: requestContext.host,
|
|
75
|
+
query: new URL(resolvedUrl, baseUrl).searchParams
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function pathnameForResolvedUrl(resolvedUrl) {
|
|
79
|
+
return resolvedUrl.split("#", 1)[0].split("?", 1)[0];
|
|
80
|
+
}
|
|
81
|
+
function applyConfigHeadersToMiddlewareRedirect(response, options) {
|
|
82
|
+
if (response.status < 300 || response.status >= 400) return response;
|
|
83
|
+
if (!options.configHeaders.length) return response;
|
|
84
|
+
const headers = new Headers();
|
|
85
|
+
applyConfigHeadersToResponse(headers, {
|
|
86
|
+
configHeaders: options.configHeaders,
|
|
87
|
+
pathname: options.pathname,
|
|
88
|
+
requestContext: options.requestContext,
|
|
89
|
+
basePathState: options.basePathState
|
|
90
|
+
});
|
|
91
|
+
if (!headers.entries().next().done) {
|
|
92
|
+
mergeMiddlewareResponseHeaders(headers, response.headers);
|
|
93
|
+
return new Response(response.body, {
|
|
94
|
+
status: response.status,
|
|
95
|
+
statusText: response.statusText,
|
|
96
|
+
headers
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return response;
|
|
100
|
+
}
|
|
101
|
+
function requestWithoutRscCacheBustingSearchParam(request) {
|
|
102
|
+
const url = new URL(request.url);
|
|
103
|
+
if (!hasRscCacheBustingSearchParam(url)) return request;
|
|
104
|
+
stripRscCacheBustingSearchParam(url);
|
|
105
|
+
return cloneRequestWithUrl(request.body ? request.clone() : request, url.toString());
|
|
106
|
+
}
|
|
107
|
+
function requestWithoutRscSuffix(request) {
|
|
108
|
+
const url = new URL(request.url);
|
|
109
|
+
const pathname = stripRscSuffix(url.pathname);
|
|
110
|
+
if (pathname === url.pathname) return request;
|
|
111
|
+
url.pathname = pathname;
|
|
112
|
+
return cloneRequestWithUrl(request.body ? request.clone() : request, url.toString());
|
|
113
|
+
}
|
|
114
|
+
async function handleAppRscRequest(options, request, preMiddlewareRequestContext, isDataRequest, pagesDataRequest) {
|
|
115
|
+
const handlerStart = process.env.NODE_ENV !== "production" ? performance.now() : 0;
|
|
116
|
+
if (process.env.NODE_ENV !== "production") {
|
|
117
|
+
const originBlock = options.validateDevRequestOrigin?.(request);
|
|
118
|
+
if (originBlock) return originBlock;
|
|
119
|
+
}
|
|
120
|
+
const normalized = normalizeRscRequest(request, options.basePath);
|
|
121
|
+
if (normalized instanceof Response) return normalized;
|
|
122
|
+
const { url, isRscRequest, interceptionContextHeader, mountedSlotsHeader, renderMode, clientReuseManifest } = normalized;
|
|
123
|
+
let { pathname, cleanPathname } = normalized;
|
|
124
|
+
let resolvedUrl = cleanPathname + url.search;
|
|
125
|
+
const originalResolvedUrl = resolvedUrl;
|
|
126
|
+
const getResolvedSearchParams = () => new URL(resolvedUrl, url).searchParams;
|
|
127
|
+
const canonicalPathname = cleanPathname;
|
|
128
|
+
const basePathState = {
|
|
129
|
+
basePath: options.basePath,
|
|
130
|
+
hadBasePath: true
|
|
131
|
+
};
|
|
132
|
+
if (pathname === "/__vinext/prerender/static-params" || pathname === "/__vinext/prerender/pages-static-paths") {
|
|
133
|
+
const { handleAppPrerenderEndpoint } = await import("./app-prerender-endpoints.js");
|
|
134
|
+
const prerenderEndpointResponse = await handleAppPrerenderEndpoint(request, {
|
|
135
|
+
isPrerenderEnabled() {
|
|
136
|
+
return process.env.VINEXT_PRERENDER === "1";
|
|
137
|
+
},
|
|
138
|
+
loadPagesRoutes: options.loadPrerenderPagesRoutes,
|
|
139
|
+
pathname,
|
|
140
|
+
rootParamNamesByPattern: options.rootParamNamesByPattern,
|
|
141
|
+
staticParamsMap: options.staticParamsMap
|
|
142
|
+
});
|
|
143
|
+
if (prerenderEndpointResponse) return prerenderEndpointResponse;
|
|
144
|
+
}
|
|
145
|
+
const trailingSlashRedirect = normalizeTrailingSlash(pathname, options.basePath, options.trailingSlash, url.search);
|
|
146
|
+
if (trailingSlashRedirect) return trailingSlashRedirect;
|
|
147
|
+
const matchPathname = (p) => normalizeDefaultLocalePathname(p, options.i18nConfig, { hostname: url.hostname });
|
|
148
|
+
const redirect = matchRedirect(matchPathname(stripRscSuffix(pathname)), options.configRedirects, preMiddlewareRequestContext, basePathState);
|
|
149
|
+
if (redirect) {
|
|
150
|
+
const destination = sanitizeDestination(redirectDestinationWithBasePath(redirect.destination, options.basePath));
|
|
151
|
+
const location = isRscRequest && request.headers.get("RSC") === "1" ? await createRscRedirectLocation(destination, request) : preserveRedirectDestinationQuery(destination, url.search);
|
|
152
|
+
if (isDataRequest) return new Response(null, {
|
|
153
|
+
status: 200,
|
|
154
|
+
headers: { "x-nextjs-redirect": location }
|
|
155
|
+
});
|
|
156
|
+
return new Response(null, {
|
|
157
|
+
status: redirect.permanent ? 308 : 307,
|
|
158
|
+
headers: { Location: location }
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
const rscCacheBustingRedirect = await resolveInvalidRscCacheBustingRequest({
|
|
162
|
+
isRscRequest,
|
|
163
|
+
request
|
|
164
|
+
});
|
|
165
|
+
if (rscCacheBustingRedirect) return rscCacheBustingRedirect;
|
|
166
|
+
const normalizedUserlandRequest = requestWithoutRscSuffix(request);
|
|
167
|
+
const userlandRequest = requestWithoutRscCacheBustingSearchParam(normalizedUserlandRequest);
|
|
168
|
+
const middlewareContext = {
|
|
169
|
+
headers: null,
|
|
170
|
+
requestHeaders: null,
|
|
171
|
+
status: null
|
|
172
|
+
};
|
|
173
|
+
let didMiddlewareRewrite = false;
|
|
174
|
+
if (options.runMiddleware) {
|
|
175
|
+
const middlewareResult = await options.runMiddleware({
|
|
176
|
+
cleanPathname,
|
|
177
|
+
context: middlewareContext,
|
|
178
|
+
isDataRequest,
|
|
179
|
+
request: userlandRequest
|
|
180
|
+
});
|
|
181
|
+
if (middlewareResult.kind === "response") return applyConfigHeadersToMiddlewareRedirect(middlewareResult.response, {
|
|
182
|
+
basePathState,
|
|
183
|
+
configHeaders: options.configHeaders,
|
|
184
|
+
pathname: matchPathname(cleanPathname),
|
|
185
|
+
requestContext: preMiddlewareRequestContext
|
|
186
|
+
});
|
|
187
|
+
cleanPathname = middlewareResult.cleanPathname;
|
|
188
|
+
didMiddlewareRewrite = cleanPathname !== normalized.cleanPathname;
|
|
189
|
+
if (middlewareResult.search !== null) url.search = middlewareResult.search;
|
|
190
|
+
resolvedUrl = cleanPathname + url.search;
|
|
191
|
+
}
|
|
192
|
+
const scriptNonce = getScriptNonceFromHeaderSources(request.headers, middlewareContext.headers);
|
|
193
|
+
const postMiddlewareRequestContext = buildPostMwRequestContext(userlandRequest);
|
|
194
|
+
for (const rewrite of options.configRewrites.beforeFiles) {
|
|
195
|
+
const beforeFilesRewrite = await applyRewrite({
|
|
196
|
+
basePathState,
|
|
197
|
+
clearRequestContext: options.clearRequestContext,
|
|
198
|
+
request: normalizedUserlandRequest,
|
|
199
|
+
requestContext: requestContextForResolvedUrl(postMiddlewareRequestContext, resolvedUrl, url),
|
|
200
|
+
rewrites: [rewrite]
|
|
201
|
+
}, matchPathname(cleanPathname));
|
|
202
|
+
if (beforeFilesRewrite instanceof Response) return beforeFilesRewrite;
|
|
203
|
+
if (beforeFilesRewrite) {
|
|
204
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, beforeFilesRewrite);
|
|
205
|
+
cleanPathname = pathnameForResolvedUrl(resolvedUrl);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
if (isImageOptimizationPath(cleanPathname)) {
|
|
209
|
+
const imageRedirect = resolveDevImageRedirect(url, [...options.imageConfig?.deviceSizes ?? DEFAULT_DEVICE_SIZES, ...options.imageConfig?.imageSizes ?? DEFAULT_IMAGE_SIZES], options.imageConfig?.qualities, { isDev: options.isDev });
|
|
210
|
+
if (!imageRedirect) return new Response("Invalid image optimization parameters", { status: 400 });
|
|
211
|
+
return Response.redirect(new URL(imageRedirect, url.origin).href, 302);
|
|
212
|
+
}
|
|
213
|
+
if (options.handleMetadataRouteRequest) {
|
|
214
|
+
const metadataRouteResponse = await options.handleMetadataRouteRequest(cleanPathname);
|
|
215
|
+
if (metadataRouteResponse) {
|
|
216
|
+
applyConfigHeadersToResponse(metadataRouteResponse.headers, {
|
|
217
|
+
basePathState,
|
|
218
|
+
configHeaders: options.configHeaders,
|
|
219
|
+
overwriteExisting: STATIC_METADATA_CONFIG_HEADER_OVERRIDES,
|
|
220
|
+
pathname: matchPathname(cleanPathname),
|
|
221
|
+
requestContext: preMiddlewareRequestContext
|
|
222
|
+
});
|
|
223
|
+
return applyMiddlewareContextToResponse(metadataRouteResponse, middlewareContext);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
const publicFileResponse = resolvePublicFileRoute({
|
|
227
|
+
cleanPathname,
|
|
228
|
+
middlewareContext,
|
|
229
|
+
pathname,
|
|
230
|
+
publicFiles: options.publicFiles,
|
|
231
|
+
request
|
|
232
|
+
});
|
|
233
|
+
if (publicFileResponse) {
|
|
234
|
+
options.clearRequestContext();
|
|
235
|
+
return publicFileResponse;
|
|
236
|
+
}
|
|
237
|
+
stripRscCacheBustingSearchParam(url);
|
|
238
|
+
const resolved = new URL(resolvedUrl, url);
|
|
239
|
+
stripRscCacheBustingSearchParam(resolved);
|
|
240
|
+
resolvedUrl = resolved.pathname + resolved.search + resolved.hash;
|
|
241
|
+
options.setNavigationContext({
|
|
242
|
+
pathname: canonicalPathname,
|
|
243
|
+
searchParams: getResolvedSearchParams(),
|
|
244
|
+
params: {}
|
|
245
|
+
});
|
|
246
|
+
const preActionMatch = options.matchRoute(cleanPathname);
|
|
247
|
+
if (preActionMatch) setRootParams(pickRootParams(preActionMatch.params, preActionMatch.route.rootParamNames));
|
|
248
|
+
const actionId = request.headers.get("x-rsc-action") ?? request.headers.get("next-action");
|
|
249
|
+
const contentType = request.headers.get("content-type") || "";
|
|
250
|
+
const isPostRequest = request.method.toUpperCase() === "POST";
|
|
251
|
+
let progressiveActionResult = null;
|
|
252
|
+
if (isPostRequest && contentType.startsWith("multipart/form-data") && !actionId) {
|
|
253
|
+
if (options.handleProgressiveActionRequest) progressiveActionResult = await options.handleProgressiveActionRequest({
|
|
254
|
+
actionId,
|
|
255
|
+
cleanPathname,
|
|
256
|
+
contentType,
|
|
257
|
+
middlewareContext,
|
|
258
|
+
request
|
|
259
|
+
});
|
|
260
|
+
else if (preActionMatch?.route.__loadPage && !preActionMatch.route.__loadRouteHandler) return createMissingServerActionResponse(options, null);
|
|
261
|
+
}
|
|
262
|
+
if (progressiveActionResult instanceof Response) return progressiveActionResult;
|
|
263
|
+
const progressiveActionFormState = progressiveActionResult?.kind === "form-state" ? progressiveActionResult : null;
|
|
264
|
+
const isProgressiveActionRender = progressiveActionFormState !== null;
|
|
265
|
+
const formState = progressiveActionFormState?.formState ?? null;
|
|
266
|
+
const failedProgressiveActionResult = progressiveActionFormState && "actionError" in progressiveActionFormState ? progressiveActionFormState : null;
|
|
267
|
+
const actionFailed = failedProgressiveActionResult !== null;
|
|
268
|
+
const actionError = failedProgressiveActionResult?.actionError;
|
|
269
|
+
const serverActionResponse = isPostRequest && actionId && options.handleServerActionRequest ? await options.handleServerActionRequest({
|
|
270
|
+
actionId,
|
|
271
|
+
cleanPathname,
|
|
272
|
+
contentType,
|
|
273
|
+
interceptionContext: interceptionContextHeader,
|
|
274
|
+
isRscRequest,
|
|
275
|
+
middlewareContext,
|
|
276
|
+
mountedSlotsHeader,
|
|
277
|
+
request,
|
|
278
|
+
searchParams: getResolvedSearchParams()
|
|
279
|
+
}) : null;
|
|
280
|
+
if (serverActionResponse) return serverActionResponse;
|
|
281
|
+
if (isPostRequest && actionId && !options.handleServerActionRequest) return createMissingServerActionResponse(options, actionId);
|
|
282
|
+
let match = preActionMatch;
|
|
283
|
+
const renderPagesForMatchKind = async (matchKind) => {
|
|
284
|
+
const response = match === null || match.route.isDynamic ? await options.renderPagesFallback?.({
|
|
285
|
+
appRouteMatch: match ?? null,
|
|
286
|
+
allowRscDocumentFallback: didMiddlewareRewrite,
|
|
287
|
+
isDataRequest,
|
|
288
|
+
isRscRequest,
|
|
289
|
+
matchKind,
|
|
290
|
+
middlewareContext,
|
|
291
|
+
pathname: resolvedUrl,
|
|
292
|
+
pagesDataRequest,
|
|
293
|
+
request,
|
|
294
|
+
url
|
|
295
|
+
}) ?? null : null;
|
|
296
|
+
if (!response || !pagesDataRequest || resolvedUrl === originalResolvedUrl) return response;
|
|
297
|
+
const headers = new Headers(response.headers);
|
|
298
|
+
headers.set("x-nextjs-rewrite", resolvedUrl);
|
|
299
|
+
return new Response(response.body, {
|
|
300
|
+
headers,
|
|
301
|
+
status: response.status,
|
|
302
|
+
statusText: response.statusText
|
|
303
|
+
});
|
|
304
|
+
};
|
|
305
|
+
const staticPagesFallbackResponse = await renderPagesForMatchKind("static");
|
|
306
|
+
if (staticPagesFallbackResponse) {
|
|
307
|
+
options.clearRequestContext();
|
|
308
|
+
return staticPagesFallbackResponse;
|
|
309
|
+
}
|
|
310
|
+
if (!match || match.route.isDynamic) for (const rewrite of options.configRewrites.afterFiles) {
|
|
311
|
+
const afterFilesRewrite = await applyRewrite({
|
|
312
|
+
basePathState,
|
|
313
|
+
clearRequestContext: options.clearRequestContext,
|
|
314
|
+
request: normalizedUserlandRequest,
|
|
315
|
+
requestContext: requestContextForResolvedUrl(postMiddlewareRequestContext, resolvedUrl, url),
|
|
316
|
+
rewrites: [rewrite]
|
|
317
|
+
}, matchPathname(cleanPathname));
|
|
318
|
+
if (afterFilesRewrite instanceof Response) return afterFilesRewrite;
|
|
319
|
+
if (!afterFilesRewrite) continue;
|
|
320
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, afterFilesRewrite);
|
|
321
|
+
cleanPathname = pathnameForResolvedUrl(resolvedUrl);
|
|
322
|
+
match = options.matchRoute(cleanPathname);
|
|
323
|
+
const rewrittenStaticPagesResponse = await renderPagesForMatchKind("static");
|
|
324
|
+
if (rewrittenStaticPagesResponse) {
|
|
325
|
+
options.clearRequestContext();
|
|
326
|
+
return rewrittenStaticPagesResponse;
|
|
327
|
+
}
|
|
328
|
+
const rewrittenDynamicPagesResponse = await renderPagesForMatchKind("dynamic");
|
|
329
|
+
if (rewrittenDynamicPagesResponse) {
|
|
330
|
+
options.clearRequestContext();
|
|
331
|
+
return rewrittenDynamicPagesResponse;
|
|
332
|
+
}
|
|
333
|
+
if (match) break;
|
|
334
|
+
}
|
|
335
|
+
const dynamicPagesFallbackResponse = await renderPagesForMatchKind("dynamic");
|
|
336
|
+
if (dynamicPagesFallbackResponse) {
|
|
337
|
+
options.clearRequestContext();
|
|
338
|
+
return dynamicPagesFallbackResponse;
|
|
339
|
+
}
|
|
340
|
+
if (!match) for (const rewrite of options.configRewrites.fallback) {
|
|
341
|
+
const fallbackRewrite = await applyRewrite({
|
|
342
|
+
basePathState,
|
|
343
|
+
clearRequestContext: options.clearRequestContext,
|
|
344
|
+
request: normalizedUserlandRequest,
|
|
345
|
+
requestContext: requestContextForResolvedUrl(postMiddlewareRequestContext, resolvedUrl, url),
|
|
346
|
+
rewrites: [rewrite]
|
|
347
|
+
}, matchPathname(cleanPathname));
|
|
348
|
+
if (fallbackRewrite instanceof Response) return fallbackRewrite;
|
|
349
|
+
if (!fallbackRewrite) continue;
|
|
350
|
+
resolvedUrl = mergeRewriteQuery(resolvedUrl, fallbackRewrite);
|
|
351
|
+
cleanPathname = pathnameForResolvedUrl(resolvedUrl);
|
|
352
|
+
match = options.matchRoute(cleanPathname);
|
|
353
|
+
const rewrittenStaticPagesResponse = await renderPagesForMatchKind("static");
|
|
354
|
+
if (rewrittenStaticPagesResponse) {
|
|
355
|
+
options.clearRequestContext();
|
|
356
|
+
return rewrittenStaticPagesResponse;
|
|
357
|
+
}
|
|
358
|
+
const rewrittenDynamicPagesResponse = await renderPagesForMatchKind("dynamic");
|
|
359
|
+
if (rewrittenDynamicPagesResponse) {
|
|
360
|
+
options.clearRequestContext();
|
|
361
|
+
return rewrittenDynamicPagesResponse;
|
|
362
|
+
}
|
|
363
|
+
if (match) break;
|
|
364
|
+
}
|
|
365
|
+
if (pagesDataRequest) {
|
|
366
|
+
options.clearRequestContext();
|
|
367
|
+
return buildNextDataNotFoundResponse();
|
|
368
|
+
}
|
|
369
|
+
if (!match) {
|
|
370
|
+
if (process.env.NODE_ENV !== "production" && canonicalPathname === "/favicon.ico") {
|
|
371
|
+
options.clearRequestContext();
|
|
372
|
+
return new Response("", { status: 404 });
|
|
373
|
+
}
|
|
374
|
+
const renderedNotFoundResponse = await options.renderNotFound({
|
|
375
|
+
isRscRequest,
|
|
376
|
+
middlewareContext,
|
|
377
|
+
request,
|
|
378
|
+
route: null,
|
|
379
|
+
scriptNonce
|
|
380
|
+
});
|
|
381
|
+
if (renderedNotFoundResponse) return renderedNotFoundResponse;
|
|
382
|
+
options.clearRequestContext();
|
|
383
|
+
const headers = new Headers();
|
|
384
|
+
mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
|
|
385
|
+
return notFoundResponse({ headers });
|
|
386
|
+
}
|
|
387
|
+
const { route, params } = match;
|
|
388
|
+
if (options.ensureRouteLoaded) await options.ensureRouteLoaded(route);
|
|
389
|
+
const prerenderRouteParamsMatch = matchPrerenderRouteParamsPayload(readTrustedPrerenderRouteParams(request), route.pattern, params);
|
|
390
|
+
const prerenderRouteParams = prerenderRouteParamsMatch?.params ?? null;
|
|
391
|
+
const isPrerenderFallbackShell = prerenderRouteParamsMatch?.kind === "fallback-shell";
|
|
392
|
+
const renderParams = prerenderRouteParams ?? params;
|
|
393
|
+
const resolvedSearchParams = getResolvedSearchParams();
|
|
394
|
+
let runtimeFallbackShells = [];
|
|
395
|
+
if (options.createPprFallbackShells && request.method === "GET" && !isRscRequest && !isPrerenderFallbackShell && route.params) runtimeFallbackShells = options.createPprFallbackShells({
|
|
396
|
+
params: route.params,
|
|
397
|
+
pattern: route.pattern,
|
|
398
|
+
rootParamNames: route.rootParamNames
|
|
399
|
+
}, params);
|
|
400
|
+
options.setNavigationContext({
|
|
401
|
+
pathname: canonicalPathname,
|
|
402
|
+
searchParams: resolvedSearchParams,
|
|
403
|
+
params: renderParams
|
|
404
|
+
});
|
|
405
|
+
const rootParams = pickRootParams(renderParams, route.rootParamNames);
|
|
406
|
+
setRootParams(rootParams);
|
|
407
|
+
if (route.routeHandler) {
|
|
408
|
+
setCurrentFetchSoftTags(buildPageCacheTags(cleanPathname, [], [...route.routeSegments], "route"));
|
|
409
|
+
const routeHandlerRequest = isEdgeRouteHandler(route.routeHandler) ? userlandRequest : normalizedUserlandRequest;
|
|
410
|
+
const routeHandlerUrl = new URL(routeHandlerRequest.url);
|
|
411
|
+
const internalRscValues = isEdgeRouteHandler(route.routeHandler) ? [] : routeHandlerUrl.searchParams.getAll(VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM);
|
|
412
|
+
routeHandlerUrl.search = resolvedSearchParams.toString();
|
|
413
|
+
for (const internalRscValue of internalRscValues) routeHandlerUrl.searchParams.append(VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, internalRscValue);
|
|
414
|
+
return options.dispatchMatchedRouteHandler({
|
|
415
|
+
cleanPathname,
|
|
416
|
+
middlewareContext,
|
|
417
|
+
params: route.isDynamic ? renderParams : null,
|
|
418
|
+
request: new Request(routeHandlerUrl, routeHandlerRequest),
|
|
419
|
+
route,
|
|
420
|
+
searchParams: resolvedSearchParams
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
const pageResponse = await options.dispatchMatchedPage({
|
|
424
|
+
clientReuseManifest,
|
|
425
|
+
cleanPathname,
|
|
426
|
+
displayPathname: canonicalPathname,
|
|
427
|
+
formState,
|
|
428
|
+
actionError,
|
|
429
|
+
actionFailed,
|
|
430
|
+
handlerStart,
|
|
431
|
+
interceptionContext: interceptionContextHeader,
|
|
432
|
+
isProgressiveActionRender,
|
|
433
|
+
isRscRequest,
|
|
434
|
+
middlewareContext,
|
|
435
|
+
mountedSlotsHeader,
|
|
436
|
+
params: renderParams,
|
|
437
|
+
pprFallbackCacheShells: runtimeFallbackShells,
|
|
438
|
+
pprFallbackShell: isPrerenderFallbackShell ? {
|
|
439
|
+
fallbackParamNames: prerenderRouteParamsMatch.fallbackParamNames,
|
|
440
|
+
routePattern: route.pattern
|
|
441
|
+
} : void 0,
|
|
442
|
+
renderedConcreteUrlPaths: getRenderedConcreteUrlPathsForRoute(route.pattern),
|
|
443
|
+
skipStaticParamsValidation: isPrerenderFallbackShell,
|
|
444
|
+
staticParamsValidationParams: prerenderRouteParams === null || isPrerenderFallbackShell ? void 0 : params,
|
|
445
|
+
rootParams,
|
|
446
|
+
request,
|
|
447
|
+
route,
|
|
448
|
+
scriptNonce,
|
|
449
|
+
searchParams: resolvedSearchParams,
|
|
450
|
+
renderMode
|
|
451
|
+
});
|
|
452
|
+
if (isProgressiveActionRender) return applyProgressiveActionSideEffects(pageResponse, progressiveActionFormState);
|
|
453
|
+
return pageResponse;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Append `Set-Cookie` headers and the `x-action-revalidated` marker captured
|
|
457
|
+
* during progressive (no-JS) server action execution to the page render
|
|
458
|
+
* response. See issue #1483.
|
|
459
|
+
*
|
|
460
|
+
* Falls back to rebuilding the response when the headers object is immutable
|
|
461
|
+
* (e.g. `Response.redirect()`), so cookies set by the action ride out on a
|
|
462
|
+
* redirect issued during the rerender too.
|
|
463
|
+
*/
|
|
464
|
+
function applyProgressiveActionSideEffects(response, sideEffects) {
|
|
465
|
+
const hasPendingCookies = sideEffects.pendingCookies.length > 0;
|
|
466
|
+
const hasDraftCookie = Boolean(sideEffects.draftCookie);
|
|
467
|
+
const hasRevalidationKind = sideEffects.revalidationKind !== 0;
|
|
468
|
+
if (!hasPendingCookies && !hasDraftCookie && !hasRevalidationKind) return response;
|
|
469
|
+
const applyTo = (headers) => {
|
|
470
|
+
for (const cookie of sideEffects.pendingCookies) headers.append("Set-Cookie", cookie);
|
|
471
|
+
if (sideEffects.draftCookie) headers.append("Set-Cookie", sideEffects.draftCookie);
|
|
472
|
+
if (hasRevalidationKind) headers.set(ACTION_REVALIDATED_HEADER, JSON.stringify(sideEffects.revalidationKind));
|
|
473
|
+
};
|
|
474
|
+
try {
|
|
475
|
+
applyTo(response.headers);
|
|
476
|
+
return response;
|
|
477
|
+
} catch {
|
|
478
|
+
const headers = new Headers(response.headers);
|
|
479
|
+
applyTo(headers);
|
|
480
|
+
return new Response(response.body, {
|
|
481
|
+
status: response.status,
|
|
482
|
+
statusText: response.statusText,
|
|
483
|
+
headers
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
function createAppRscHandler(options) {
|
|
488
|
+
return async function appRscHandler(rawRequest, ctx) {
|
|
489
|
+
options.registerCacheAdapters();
|
|
490
|
+
await options.ensureInstrumentation?.();
|
|
491
|
+
const mwCtx = rawRequest.headers.get(VINEXT_MW_CTX_HEADER);
|
|
492
|
+
const hasDataRequestHeader = rawRequest.headers.get("x-nextjs-data") === "1";
|
|
493
|
+
const pagesDataUrl = new URL(rawRequest.url);
|
|
494
|
+
const pagesDataInScope = !options.basePath || hasBasePath(pagesDataUrl.pathname, options.basePath);
|
|
495
|
+
if (pagesDataInScope) pagesDataUrl.pathname = stripBasePath(pagesDataUrl.pathname, options.basePath);
|
|
496
|
+
const pagesDataCandidate = pagesDataInScope ? cloneRequestWithUrl(rawRequest, pagesDataUrl.toString()) : null;
|
|
497
|
+
const pagesDataNormalization = options.renderPagesFallback && pagesDataCandidate ? normalizePagesDataRequest(pagesDataCandidate, options.buildId) : null;
|
|
498
|
+
if (pagesDataNormalization?.notFoundResponse) return pagesDataNormalization.notFoundResponse;
|
|
499
|
+
const isDataRequest = hasDataRequestHeader || pagesDataNormalization?.isDataReq === true;
|
|
500
|
+
const prerenderRouteParamsPayload = readTrustedPrerenderRouteParams(rawRequest);
|
|
501
|
+
const filteredHeaders = filterInternalHeaders(rawRequest.headers);
|
|
502
|
+
if (mwCtx !== null) filteredHeaders.set(VINEXT_MW_CTX_HEADER, mwCtx);
|
|
503
|
+
const prerenderRouteParamsHeader = serializePrerenderRouteParamsHeader(prerenderRouteParamsPayload);
|
|
504
|
+
if (prerenderRouteParamsHeader !== null) filteredHeaders.set(VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, prerenderRouteParamsHeader);
|
|
505
|
+
let appRequest = rawRequest;
|
|
506
|
+
if (pagesDataNormalization?.isDataReq) {
|
|
507
|
+
const appRequestUrl = new URL(pagesDataNormalization.request.url);
|
|
508
|
+
appRequestUrl.pathname = addBasePathToPathname(appRequestUrl.pathname, options.basePath);
|
|
509
|
+
appRequest = cloneRequestWithUrl(pagesDataCandidate, appRequestUrl.toString());
|
|
510
|
+
}
|
|
511
|
+
const request = cloneRequestWithHeaders(appRequest, filteredHeaders);
|
|
512
|
+
const pagesDataRequest = pagesDataNormalization?.isDataReq ? cloneRequestWithHeaders(pagesDataCandidate, filteredHeaders) : null;
|
|
513
|
+
const executionContext = isExecutionContextLike(ctx) ? ctx : getRequestExecutionContext() ?? null;
|
|
514
|
+
return runWithRequestContext(createRequestContext({
|
|
515
|
+
headersContext: headersContextFromRequest(request, { draftModeSecret: options.draftModeSecret }),
|
|
516
|
+
executionContext,
|
|
517
|
+
unstableCacheRevalidation: "background"
|
|
518
|
+
}), () => runWithPrerenderWorkUnit(async () => {
|
|
519
|
+
ensureFetchPatch();
|
|
520
|
+
const preMiddlewareRequestContext = requestContextFromRequest(request);
|
|
521
|
+
let response;
|
|
522
|
+
try {
|
|
523
|
+
response = await handleAppRscRequest(options, request, preMiddlewareRequestContext, isDataRequest, pagesDataRequest);
|
|
524
|
+
} catch (error) {
|
|
525
|
+
if (process.env.NODE_ENV !== "production") flattenErrorCauses(error);
|
|
526
|
+
throw error;
|
|
527
|
+
}
|
|
528
|
+
return finalizeAppRscResponse(response, request, {
|
|
529
|
+
basePath: options.basePath,
|
|
530
|
+
configHeaders: options.configHeaders,
|
|
531
|
+
i18nConfig: options.i18nConfig,
|
|
532
|
+
requestContext: preMiddlewareRequestContext
|
|
533
|
+
});
|
|
534
|
+
}, { route: () => new URL(request.url).pathname }));
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
//#endregion
|
|
538
|
+
export { createAppRscHandler };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/server/app-rsc-render-mode.d.ts
|
|
2
|
+
type AppRscRenderMode = "navigation" | "prefetch-loading-shell" | "refresh-preserve-ui" | "action-rerender-preserve-ui";
|
|
3
|
+
declare const APP_RSC_RENDER_MODE_NAVIGATION = "navigation";
|
|
4
|
+
declare const APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL = "prefetch-loading-shell";
|
|
5
|
+
declare const APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI = "refresh-preserve-ui";
|
|
6
|
+
declare const APP_RSC_RENDER_MODE_ACTION_RERENDER_PRESERVE_UI = "action-rerender-preserve-ui";
|
|
7
|
+
declare function shouldSuppressLoadingBoundaries(mode: AppRscRenderMode): boolean;
|
|
8
|
+
declare function getRscRenderModeCacheVariant(mode: AppRscRenderMode): string | null;
|
|
9
|
+
declare function parseAppRscRenderMode(value: string | null): AppRscRenderMode;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { APP_RSC_RENDER_MODE_ACTION_RERENDER_PRESERVE_UI, APP_RSC_RENDER_MODE_NAVIGATION, APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL, APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI, AppRscRenderMode, getRscRenderModeCacheVariant, parseAppRscRenderMode, shouldSuppressLoadingBoundaries };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region src/server/app-rsc-render-mode.ts
|
|
2
|
+
const APP_RSC_RENDER_MODE_NAVIGATION = "navigation";
|
|
3
|
+
const APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL = "prefetch-loading-shell";
|
|
4
|
+
const APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI = "refresh-preserve-ui";
|
|
5
|
+
const APP_RSC_RENDER_MODE_ACTION_RERENDER_PRESERVE_UI = "action-rerender-preserve-ui";
|
|
6
|
+
function shouldSuppressLoadingBoundaries(mode) {
|
|
7
|
+
return mode === "refresh-preserve-ui" || mode === "action-rerender-preserve-ui";
|
|
8
|
+
}
|
|
9
|
+
function shouldUsePreserveUiCacheVariant(mode) {
|
|
10
|
+
return shouldSuppressLoadingBoundaries(mode);
|
|
11
|
+
}
|
|
12
|
+
function getRscRenderModeCacheVariant(mode) {
|
|
13
|
+
if (mode === "prefetch-loading-shell") return "prefetch-loading-shell";
|
|
14
|
+
return shouldUsePreserveUiCacheVariant(mode) ? "preserve-ui" : null;
|
|
15
|
+
}
|
|
16
|
+
function parseAppRscRenderMode(value) {
|
|
17
|
+
switch (value) {
|
|
18
|
+
case APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL: return APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL;
|
|
19
|
+
case APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI: return APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI;
|
|
20
|
+
case APP_RSC_RENDER_MODE_ACTION_RERENDER_PRESERVE_UI: return APP_RSC_RENDER_MODE_ACTION_RERENDER_PRESERVE_UI;
|
|
21
|
+
default: return APP_RSC_RENDER_MODE_NAVIGATION;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { APP_RSC_RENDER_MODE_ACTION_RERENDER_PRESERVE_UI, APP_RSC_RENDER_MODE_NAVIGATION, APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL, APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI, getRscRenderModeCacheVariant, parseAppRscRenderMode, shouldSuppressLoadingBoundaries };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ClientReuseManifestParseResult } from "./client-reuse-manifest.js";
|
|
2
|
+
import { normalizeMountedSlotsHeader } from "./app-mounted-slots-header.js";
|
|
3
|
+
import { AppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
4
|
+
|
|
5
|
+
//#region src/server/app-rsc-request-normalization.d.ts
|
|
6
|
+
type NormalizedRscRequest = {
|
|
7
|
+
/** Parsed URL. Callers may mutate `url.search` after middleware runs. */url: URL; /** Normalized pathname with basePath stripped. Used for all internal routing. */
|
|
8
|
+
pathname: string; /** Pathname with `.rsc` suffix removed. Used for route matching and navigation context. */
|
|
9
|
+
cleanPathname: string; /** True when the request targets a canonical `.rsc` payload URL. */
|
|
10
|
+
isRscRequest: boolean; /** Sanitized X-Vinext-Interception-Context header (null bytes stripped). null when absent. */
|
|
11
|
+
interceptionContextHeader: string | null; /** Normalized x-vinext-mounted-slots header (deduplicated, sorted). null when absent or blank. */
|
|
12
|
+
mountedSlotsHeader: string | null; /** Semantic RSC payload mode. HTML requests always normalize to "navigation". */
|
|
13
|
+
renderMode: AppRscRenderMode; /** Parsed ClientReuseManifest hint. Verification and skip authorization happen later. */
|
|
14
|
+
clientReuseManifest: ClientReuseManifestParseResult;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Normalize an App Router RSC request.
|
|
18
|
+
*
|
|
19
|
+
* Performs all security-sensitive and compatibility-sensitive preprocessing before
|
|
20
|
+
* route matching. The ordering of steps is security-critical — changing it introduces
|
|
21
|
+
* vulnerabilities:
|
|
22
|
+
*
|
|
23
|
+
* 1. Parse URL
|
|
24
|
+
* 2. Protocol-relative URL guard — on the raw pathname, BEFORE normalizePath collapses
|
|
25
|
+
* `//` to `/`. If the guard ran after normalization, `//evil.com` → `/evil.com`
|
|
26
|
+
* would bypass the check and reach the trailing-slash redirector, which echoes the
|
|
27
|
+
* path into a `Location` header that browsers interpret as protocol-relative.
|
|
28
|
+
* 3. Strict percent-decode each segment — throws on malformed sequences (→ 400). Must
|
|
29
|
+
* run before basePath check so %2F-encoded slashes cannot create fake basePath prefixes.
|
|
30
|
+
* 4. Collapse double-slashes, resolve `.` and `..` segments (normalizePath)
|
|
31
|
+
* 5. basePath check + strip — 404 when pathname lacks the basePath prefix.
|
|
32
|
+
* `/__vinext/` bypasses this for internal prerender endpoints.
|
|
33
|
+
* 6. RSC detection: `.rsc` suffix, or Next-style `RSC: 1` plus the internal
|
|
34
|
+
* `_rsc` cache-busting query. The header alone does not select payload
|
|
35
|
+
* rendering at the canonical HTML URL, so caches that ignore Vary cannot
|
|
36
|
+
* store Flight responses under HTML URLs.
|
|
37
|
+
* 7. cleanPathname — pathname with `.rsc` suffix stripped
|
|
38
|
+
* 8. Sanitize X-Vinext-Interception-Context — strip null bytes (header injection)
|
|
39
|
+
* 9. Normalize x-vinext-mounted-slots — dedup and sort for canonical cache keys
|
|
40
|
+
* 10. Read semantic render mode for refresh/action payload rendering
|
|
41
|
+
* 11. Parse ClientReuseManifest hints on canonical RSC payload requests
|
|
42
|
+
*
|
|
43
|
+
* @returns A 400 or 404 Response for invalid or out-of-scope inputs,
|
|
44
|
+
* or a NormalizedRscRequest for valid requests.
|
|
45
|
+
*/
|
|
46
|
+
declare function normalizeRscRequest(request: Request, basePath: string): Response | NormalizedRscRequest;
|
|
47
|
+
//#endregion
|
|
48
|
+
export { NormalizedRscRequest, normalizeMountedSlotsHeader, normalizeRscRequest };
|