vinext 1.0.0-beta.9 → 1.0.0
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/README.md +150 -92
- package/THIRD_PARTY_LICENSES.md +25 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +1 -13
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +273 -97
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +65 -15
- package/dist/build/prerender.js +139 -43
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +25 -16
- package/dist/build/server-entry.d.ts +4 -0
- package/dist/build/server-entry.js +28 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +21 -17
- package/dist/client/navigation-runtime.js +2 -1
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +2 -1
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +502 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +711 -189
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +710 -102
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +123 -41
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
- package/dist/plugins/ignore-dynamic-requests.js +60 -89
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +31 -43
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +3 -4
- package/dist/plugins/og-assets.d.ts +4 -5
- package/dist/plugins/og-assets.js +32 -13
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +260 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +32 -44
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +2 -3
- package/dist/plugins/require-context.js +13 -21
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +5 -6
- package/dist/plugins/strip-server-exports.js +1 -1
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +3 -4
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +6 -7
- package/dist/plugins/typeof-window.js +30 -31
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +19 -19
- package/dist/routing/app-route-graph.js +3 -2
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +3 -4
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +87 -34
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +14 -1
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +8 -4
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +6 -2
- package/dist/server/app-browser-stream.d.ts +4 -5
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +26 -27
- package/dist/server/app-history-state.js +19 -11
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -5
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -25
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +42 -6
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +49 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +17 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +115 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +2 -3
- package/dist/server/app-route-handler-cache.js +46 -34
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +68 -54
- package/dist/server/app-route-handler-execution.d.ts +17 -13
- package/dist/server/app-route-handler-execution.js +69 -18
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +2 -0
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +2 -0
- package/dist/server/app-router-entry.js +28 -8
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +31 -6
- package/dist/server/app-rsc-handler.js +411 -61
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +2 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +6 -6
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +16 -12
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +61 -14
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +33 -7
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +71 -5
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +159 -57
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +130 -61
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +54 -61
- package/dist/server/headers.js +18 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +28 -27
- package/dist/server/isr-cache.js +18 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-cache-policy.d.ts +2 -3
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +68 -2
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +20 -7
- package/dist/server/pages-asset-tags.d.ts +6 -6
- package/dist/server/pages-asset-tags.js +37 -2
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +11 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +18 -19
- package/dist/server/pages-page-data.js +11 -10
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +77 -39
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +49 -31
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +14 -12
- package/dist/server/pages-request-pipeline.js +60 -30
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +314 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +11 -11
- package/dist/server/prerender-manifest.js +6 -3
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +124 -31
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +2 -3
- package/dist/server/worker-revalidation-context.js +5 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +17 -0
- package/dist/server/workers-tracing.js +27 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +28 -29
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +107 -27
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +15 -13
- package/dist/shims/cacheability-classification.d.ts +49 -28
- package/dist/shims/cacheability-classification.js +27 -12
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +50 -21
- package/dist/shims/cdn-cache.js +15 -38
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +4 -4
- package/dist/shims/error.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +42 -17
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +67 -33
- package/dist/shims/headers.js +93 -6
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +24 -16
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +14 -28
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +34 -31
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +3 -4
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +47 -6
|
@@ -1,41 +1,52 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
|
|
2
|
+
import { closeAfterResponse, closeAfterResponseWithBody, createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
|
|
3
|
+
import { PRERENDER_REVALIDATE_HEADER, VINEXT_MW_CTX_HEADER, VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SPECULATIVE_HEADER, VINEXT_REVALIDATE_HOST_HEADER } from "../utils/protocol-headers.js";
|
|
4
|
+
import { hasMiddlewareRequestHeaderOverrides } from "../utils/middleware-request-headers.js";
|
|
5
|
+
import { requestContextFromRequest } from "../config/request-context.js";
|
|
6
|
+
import { isExternalUrl } from "../utils/external-url.js";
|
|
2
7
|
import { normalizePathnameForRouteMatchStrict } from "../routing/utils.js";
|
|
3
8
|
import { addBasePathToPathname, hasBasePath, stripBasePath } from "../utils/base-path.js";
|
|
9
|
+
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
4
10
|
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import { ACTION_REVALIDATED_HEADER, FLIGHT_HEADERS } from "./headers.js";
|
|
11
|
+
import "./app-rsc-vary.js";
|
|
12
|
+
import { ACTION_REVALIDATED_HEADER, FLIGHT_HEADERS, VINEXT_PARAMS_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER } from "./headers.js";
|
|
8
13
|
import { isInterceptionMatchedUrlPath, normalizePath } from "./normalize-path.js";
|
|
9
|
-
import { isExternalUrl } from "../utils/external-url.js";
|
|
10
14
|
import { badRequestResponse, notFoundResponse } from "./http-error-responses.js";
|
|
11
15
|
import { cloneRequestWithHeaders, cloneRequestWithUrl, filterInternalHeaders, normalizeTrailingSlash, resolvePublicFileRoute } from "./request-pipeline.js";
|
|
12
16
|
import { normalizeDefaultLocalePathname } from "./pages-i18n.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
+
import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
|
|
18
|
+
import { markRouteCacheabilityDynamic, preserveRouteCacheabilityResponsePolicy } from "../shims/cacheability-classification.js";
|
|
19
|
+
import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, captureCdnResponsePolicyOverrides, isCdnResponsePolicyHeader, reconcileCdnResponseHeadersAfterOuterPolicy } from "./cache-control.js";
|
|
20
|
+
import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
|
|
21
|
+
import { getDraftModeCookieHeader, getEffectiveRequestCookieHeader, getHeadersContext, hasEffectiveRequestCookieChanges, headersContextFromRequest, isDraftModeEnabled, isDraftModeRequest, runWithHeadersContext } from "../shims/headers.js";
|
|
17
22
|
import { mergeRewriteQuery } from "../utils/query.js";
|
|
18
23
|
import { getScriptNonceFromHeaderSources } from "./csp.js";
|
|
19
24
|
import { buildNextDataNotFoundResponse, normalizePagesDataRequest } from "./pages-data-route.js";
|
|
25
|
+
import { traceFindPageComponents } from "./pages-execution-tracing.js";
|
|
20
26
|
import { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, isImageOptimizationPath, resolveDevImageRedirect } from "./image-optimization.js";
|
|
21
|
-
import {
|
|
27
|
+
import { parseCacheabilityManifest } from "./cacheability-manifest.js";
|
|
28
|
+
import { getRenderedConcreteUrlPathsForRoute } from "./pregenerated-concrete-paths.js";
|
|
29
|
+
import { VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, canonicalizeLoadingShellRscRequestHeaders, canonicalizePrewarmableRscRequestHeaders, createCanonicalRscRequestUrl, createRscRedirectLocation, createRscRequestUrl, hasRscCacheBustingSearchParam, resolveInvalidRscCacheBustingRequest, stripRscCacheBustingSearchParam, stripRscSuffix } from "./app-rsc-cache-busting.js";
|
|
22
30
|
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
31
|
+
import { consumeResponseStageLinkProvenance, copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
|
|
23
32
|
import "./app-page-response.js";
|
|
24
33
|
import { parseNextHttpErrorDigest } from "./next-error-digest.js";
|
|
25
|
-
import {
|
|
34
|
+
import { traceAppPageRender } from "./app-page-tracing.js";
|
|
35
|
+
import { setFrameworkRequestRoute, traceFrameworkRequest } from "./request-tracing.js";
|
|
26
36
|
import { matchPrerenderRouteParamsPayload, readTrustedPrerenderRouteParams, serializePrerenderRouteParamsHeader } from "./prerender-route-params.js";
|
|
27
37
|
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
28
|
-
import { getRenderedConcreteUrlPathsForRoute } from "./pregenerated-concrete-paths.js";
|
|
29
38
|
import { createServerActionNotFoundResponse, getServerActionNotFoundMessage } from "./server-action-not-found.js";
|
|
30
39
|
import { buildPostMwRequestContext } from "./app-post-middleware-context.js";
|
|
31
40
|
import { pickRootParams, setRootParams } from "../shims/root-params.js";
|
|
32
41
|
import { createRouteTreePrefetchResponse, isRouteTreePrefetchRequest } from "./app-route-tree-prefetch.js";
|
|
42
|
+
import { createSharedAppPageCacheIdentity, isStaticCandidateAppPageDispatch, prepareSharedAppPageDispatch, withoutAppPageDispatchQuery } from "./app-worker-stages.js";
|
|
33
43
|
import { flattenErrorCauses } from "../utils/error-cause.js";
|
|
34
|
-
import { applyAppRscConfigHeaders, finalizeAppRscResponse } from "./app-rsc-response-finalizer.js";
|
|
44
|
+
import { applyAppRscConfigHeaders, finalizeAppRscResponse, markAppRscResponseConfigHeadersApplied } from "./app-rsc-response-finalizer.js";
|
|
35
45
|
import { normalizeRscRequest } from "./app-rsc-request-normalization.js";
|
|
46
|
+
import { hasPagesPreviewCookie } from "./pages-response-stage.js";
|
|
36
47
|
import { runWithPrerenderWorkUnit } from "./prerender-work-unit-setup.js";
|
|
48
|
+
import { consumePagesResponseStagePolicyOwner, withoutResponseStageVary } from "./response-stage-policy.js";
|
|
37
49
|
//#region src/server/app-rsc-handler.ts
|
|
38
|
-
const STATIC_METADATA_CONFIG_HEADER_OVERRIDES = /* @__PURE__ */ new Set(["cache-control"]);
|
|
39
50
|
const HAS_CONFIG_HEADERS = process.env.__VINEXT_HAS_CONFIG_HEADERS !== "false";
|
|
40
51
|
const HAS_CONFIG_REDIRECTS = process.env.__VINEXT_HAS_CONFIG_REDIRECTS !== "false";
|
|
41
52
|
const HAS_CONFIG_REWRITES = process.env.__VINEXT_HAS_CONFIG_REWRITES !== "false";
|
|
@@ -66,16 +77,45 @@ function haveSamePageParams(first, second) {
|
|
|
66
77
|
}
|
|
67
78
|
return true;
|
|
68
79
|
}
|
|
80
|
+
function rewriteCachePathname(sourcePathname, resolvedPathname) {
|
|
81
|
+
return `${sourcePathname}?__vinext_rewrite=${encodeURIComponent(resolvedPathname)}`;
|
|
82
|
+
}
|
|
83
|
+
function requestOptsOutOfWorkerResponseStage(request, options, scriptNonce, allowInternalRscDocumentFallback) {
|
|
84
|
+
if (request.method !== "GET" && request.method !== "HEAD") return true;
|
|
85
|
+
if (allowInternalRscDocumentFallback || scriptNonce !== void 0) return true;
|
|
86
|
+
if (isDraftModeRequest(request, options.draftModeSecret) || isDraftModeEnabled()) return true;
|
|
87
|
+
if (isOnDemandRevalidateRequest(request.headers.get("x-prerender-revalidate"))) return true;
|
|
88
|
+
if (request.headers.has("x-vinext-prerender-route-params")) return true;
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
let parsedCacheabilityRequestProjection;
|
|
92
|
+
function readCacheabilityRequestProjection(options) {
|
|
93
|
+
const raw = options.cacheabilityRequestProjection;
|
|
94
|
+
if (!raw || !options.buildId) return null;
|
|
95
|
+
if (parsedCacheabilityRequestProjection?.raw !== raw || parsedCacheabilityRequestProjection.buildId !== options.buildId) parsedCacheabilityRequestProjection = {
|
|
96
|
+
buildId: options.buildId,
|
|
97
|
+
manifest: parseCacheabilityManifest(raw, options.buildId),
|
|
98
|
+
raw
|
|
99
|
+
};
|
|
100
|
+
return parsedCacheabilityRequestProjection.manifest;
|
|
101
|
+
}
|
|
102
|
+
function adapterUsesQueryFreeCacheIdentity() {
|
|
103
|
+
const adapter = getCdnCacheAdapter();
|
|
104
|
+
return adapter.requiresCompletedResponseAdmission === true && adapter.responseStageCacheIdentity === "query-free";
|
|
105
|
+
}
|
|
69
106
|
function hasUrlParserDotSegment(pathname) {
|
|
70
107
|
return pathname.split("/").some((segment) => {
|
|
71
108
|
const decodedDots = segment.replaceAll(/%2e/gi, ".");
|
|
72
109
|
return decodedDots === "." || decodedDots === "..";
|
|
73
110
|
});
|
|
74
111
|
}
|
|
75
|
-
function applyMiddlewareContextToResponse(response, middlewareContext) {
|
|
112
|
+
function applyMiddlewareContextToResponse(response, middlewareContext, appendToPostConfigLink = false) {
|
|
76
113
|
if (!middlewareContext.headers && middlewareContext.status == null) return response;
|
|
77
114
|
const headers = new Headers(response.headers);
|
|
115
|
+
const responseLink = appendToPostConfigLink ? headers.get("link") : null;
|
|
78
116
|
mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
|
|
117
|
+
const middlewareLink = middlewareContext.headers?.get("link");
|
|
118
|
+
if (responseLink && middlewareLink) headers.set("link", `${middlewareLink}, ${responseLink}`);
|
|
79
119
|
return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
|
|
80
120
|
status: middlewareContext.status ?? response.status,
|
|
81
121
|
statusText: response.statusText,
|
|
@@ -105,11 +145,11 @@ function redirectDestinationWithBasePath(destination, basePath, hadBasePath) {
|
|
|
105
145
|
if (!basePath || !hadBasePath || isExternalUrl(destination) || hasBasePath(destination, basePath)) return destination;
|
|
106
146
|
return basePath + destination;
|
|
107
147
|
}
|
|
108
|
-
async function applyRewrite(options, cleanPathname) {
|
|
148
|
+
async function applyRewrite(options, cleanPathname, recordCacheability = true) {
|
|
109
149
|
if (!HAS_CONFIG_REWRITES || !options.rewrites.length) return null;
|
|
110
150
|
const sourcePathname = options.paramsPathname ?? cleanPathname;
|
|
111
151
|
const configMatchers = await import("../config/config-matchers.js");
|
|
112
|
-
const rewritten = configMatchers.matchRewrite(sourcePathname, options.rewrites, options.requestContext, options.basePathState, options.paramsPathname, markConditionalRewriteCacheability);
|
|
152
|
+
const rewritten = configMatchers.matchRewrite(sourcePathname, options.rewrites, options.requestContext, options.basePathState, options.paramsPathname, recordCacheability ? markConditionalRewriteCacheability : void 0);
|
|
113
153
|
if (!rewritten) return null;
|
|
114
154
|
if (isExternalUrl(rewritten)) {
|
|
115
155
|
const validationResponse = await options.validateExternalRewriteRequest();
|
|
@@ -139,7 +179,8 @@ async function applyConfigHeadersToMiddlewareRedirect(response, options) {
|
|
|
139
179
|
configHeaders: options.configHeaders,
|
|
140
180
|
pathname: options.pathname,
|
|
141
181
|
requestContext: options.requestContext,
|
|
142
|
-
basePathState: options.basePathState
|
|
182
|
+
basePathState: options.basePathState,
|
|
183
|
+
recordCacheability: options.recordCacheability
|
|
143
184
|
});
|
|
144
185
|
if (!headers.entries().next().done) {
|
|
145
186
|
mergeMiddlewareResponseHeaders(headers, response.headers);
|
|
@@ -182,7 +223,7 @@ function markUnverifiedInterceptionResponseUncacheable(response) {
|
|
|
182
223
|
}
|
|
183
224
|
return markedResponse;
|
|
184
225
|
}
|
|
185
|
-
async function handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isDataRequest, isMiddlewareDataRequest, pagesDataRequest, dispatchInternalRequest, allowInternalRscDocumentFallback, setInterceptionResponseUncacheable) {
|
|
226
|
+
async function handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isDataRequest, isMiddlewareDataRequest, pagesDataRequest, dispatchInternalRequest, allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode = null, setInterceptionResponseUncacheable = () => {}) {
|
|
186
227
|
const handlerStart = process.env.NODE_ENV !== "production" ? performance.now() : 0;
|
|
187
228
|
if (process.env.NODE_ENV !== "production") {
|
|
188
229
|
const originBlock = options.validateDevRequestOrigin?.(request);
|
|
@@ -201,6 +242,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
201
242
|
return normalized;
|
|
202
243
|
}
|
|
203
244
|
const { url, isRscRequest, interceptionContextHeader, interceptionIdHeader, mountedSlotsHeader, renderMode, clientReuseManifest, hadBasePath } = normalized;
|
|
245
|
+
setFrameworkRequestRoute(void 0, isRscRequest);
|
|
204
246
|
const hasRawInterceptionContext = isRscRequest && request.headers.has("X-Vinext-Interception-Context");
|
|
205
247
|
if (hasRawInterceptionContext) setInterceptionResponseUncacheable(true);
|
|
206
248
|
let interceptionSourcePathname = null;
|
|
@@ -264,7 +306,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
264
306
|
const matchPathname = (p) => normalizeDefaultLocalePathname(p, options.i18nConfig, { hostname: url.hostname });
|
|
265
307
|
const redirectPathname = matchPathname(requestCleanPathname);
|
|
266
308
|
const configMatchers = HAS_CONFIG_REDIRECTS && options.configRedirects.length ? await import("../config/config-matchers.js") : null;
|
|
267
|
-
const redirect = configMatchers ? configMatchers.matchRedirect(redirectPathname, options.configRedirects, preMiddlewareRequestContext, basePathState, markConditionalRedirectCacheability) : null;
|
|
309
|
+
const redirect = configMatchers ? configMatchers.matchRedirect(redirectPathname, options.configRedirects, preMiddlewareRequestContext, basePathState, dispatchResponseStage ? void 0 : markConditionalRedirectCacheability) : null;
|
|
268
310
|
if (configMatchers && redirect) {
|
|
269
311
|
const destination = configMatchers.sanitizeDestination(redirectDestinationWithBasePath(redirect.destination, options.basePath, hadBasePath));
|
|
270
312
|
const location = isRscRequest && request.headers.get("RSC") === "1" ? await createRscRedirectLocation(destination, request) : configMatchers.preserveRedirectDestinationQuery(destination, url.search);
|
|
@@ -304,13 +346,14 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
304
346
|
request: userlandRequest,
|
|
305
347
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
306
348
|
});
|
|
307
|
-
if (middlewareResult.pathnameEligible) markRouteCacheabilityDynamic(middlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
|
|
349
|
+
if (!dispatchResponseStage && middlewareResult.pathnameEligible) markRouteCacheabilityDynamic(middlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
|
|
308
350
|
if (middlewareResult.kind === "response") {
|
|
309
351
|
if (request.body && !request.body.locked) request.body.cancel().catch(() => {});
|
|
310
352
|
return applyConfigHeadersToMiddlewareRedirect(middlewareResult.response, {
|
|
311
353
|
basePathState,
|
|
312
354
|
configHeaders: options.configHeaders,
|
|
313
355
|
pathname: matchPathname(requestCleanPathname),
|
|
356
|
+
recordCacheability: dispatchResponseStage === void 0,
|
|
314
357
|
requestContext: preMiddlewareRequestContext
|
|
315
358
|
});
|
|
316
359
|
}
|
|
@@ -322,6 +365,158 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
322
365
|
resolvedUrl = cleanPathname + url.search;
|
|
323
366
|
}
|
|
324
367
|
const scriptNonce = getScriptNonceFromHeaderSources(request.headers, middlewareContext.headers);
|
|
368
|
+
const hasMiddlewareCookieOverlay = hasEffectiveRequestCookieChanges(request.headers.get("cookie"));
|
|
369
|
+
const middlewareCookieOverlay = hasMiddlewareCookieOverlay ? getEffectiveRequestCookieHeader() ?? "" : null;
|
|
370
|
+
const draftModeCookie = dispatchResponseStage || options.renderResponseStageLocally ? getDraftModeCookieHeader() : null;
|
|
371
|
+
const responseStageCacheability = (resolvedRouteUrl) => ({
|
|
372
|
+
policyHeaders: null,
|
|
373
|
+
probeMode: responseStageProbeMode,
|
|
374
|
+
resolvedRoutePathname: pathnameForResolvedUrl(resolvedRouteUrl)
|
|
375
|
+
});
|
|
376
|
+
let responseStagePolicyPromise;
|
|
377
|
+
const loadResponseStagePolicy = () => responseStagePolicyPromise ??= options.configHeaders.length ? import("./config-headers.js").then(({ resolveResponseStageCachePolicy }) => withoutResponseStageVary(resolveResponseStageCachePolicy({
|
|
378
|
+
basePathState,
|
|
379
|
+
configHeaders: options.configHeaders,
|
|
380
|
+
pathname: matchPathname(requestCleanPathname),
|
|
381
|
+
requestContext: preMiddlewareRequestContext
|
|
382
|
+
}))) : Promise.resolve(null);
|
|
383
|
+
let canUseSharedWorkerResponseStage = draftModeCookie === null && !hasMiddlewareCookieOverlay && !hasMiddlewareRequestHeaderOverrides(middlewareContext.requestHeaders ?? middlewareContext.headers) && !requestOptsOutOfWorkerResponseStage(request, options, scriptNonce, allowInternalRscDocumentFallback);
|
|
384
|
+
const isOnDemandRevalidate = isOnDemandRevalidateRequest(request.headers.get(PRERENDER_REVALIDATE_HEADER));
|
|
385
|
+
const transportedResponseStage = dispatchResponseStage ? async (stageRequest, props) => {
|
|
386
|
+
const responseStagePolicy = await loadResponseStagePolicy();
|
|
387
|
+
const cache = responseStageProbeMode || isOnDemandRevalidate || (props.kind === "app-page" || props.kind === "app-route-handler") && (props.bypassInterceptionContextCache || props.forceDynamic === true && responseStagePolicy === null) ? "bypass" : canUseSharedWorkerResponseStage ? "shared" : "bypass";
|
|
388
|
+
let dispatchRequest = props.kind === "app-page" ? prepareSharedAppPageDispatch(stageRequest, cache) : stageRequest;
|
|
389
|
+
let canonicalRsc = null;
|
|
390
|
+
if (cache === "shared" && props.kind === "app-page" && props.isRscRequest && props.matchKind === "request" && props.interceptionContext === null && props.interceptionId === null && props.mountedSlotsHeader === null) {
|
|
391
|
+
const headers = new Headers(dispatchRequest.headers);
|
|
392
|
+
if (props.renderMode === "navigation" ? canonicalizePrewarmableRscRequestHeaders(headers) : props.renderMode === "prefetch-loading-shell" && props.canUseCanonicalLoadingShell ? canonicalizeLoadingShellRscRequestHeaders(headers) : false) {
|
|
393
|
+
canonicalRsc = {
|
|
394
|
+
headers,
|
|
395
|
+
navigation: props.renderMode === "navigation"
|
|
396
|
+
};
|
|
397
|
+
dispatchRequest = cloneRequestWithHeaders(dispatchRequest, headers);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
let stageProps = {
|
|
401
|
+
...props,
|
|
402
|
+
cacheability: {
|
|
403
|
+
...props.cacheability,
|
|
404
|
+
policyHeaders: responseStagePolicy
|
|
405
|
+
}
|
|
406
|
+
};
|
|
407
|
+
if (cache === "shared" && responseStagePolicy === null && stageProps.kind === "app-page") {
|
|
408
|
+
const projection = readCacheabilityRequestProjection(options);
|
|
409
|
+
if (projection && isStaticCandidateAppPageDispatch(projection, dispatchRequest, stageProps)) {
|
|
410
|
+
const queryFree = withoutAppPageDispatchQuery(dispatchRequest.url, stageProps);
|
|
411
|
+
dispatchRequest = cloneRequestWithUrl(dispatchRequest, queryFree.url);
|
|
412
|
+
stageProps = queryFree.props;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
if (canonicalRsc) {
|
|
416
|
+
const rscPath = canonicalRsc.navigation ? createCanonicalRscRequestUrl(dispatchRequest.url) : await createRscRequestUrl(dispatchRequest.url, canonicalRsc.headers);
|
|
417
|
+
dispatchRequest = cloneRequestWithUrl(dispatchRequest, new URL(rscPath, dispatchRequest.url).toString());
|
|
418
|
+
}
|
|
419
|
+
const cacheIdentity = cache === "shared" && responseStagePolicy === null && stageProps.kind === "app-page" && stageProps.matchKind !== "interception" && stageProps.interceptionContext === null && stageProps.interceptionId === null && stageProps.mountedSlotsHeader === null && adapterUsesQueryFreeCacheIdentity() ? createSharedAppPageCacheIdentity(dispatchRequest, stageProps) : void 0;
|
|
420
|
+
let response = await dispatchResponseStage(dispatchRequest, stageProps, cacheIdentity ? {
|
|
421
|
+
cache,
|
|
422
|
+
cacheIdentity
|
|
423
|
+
} : { cache });
|
|
424
|
+
if (stageRequest.method.toUpperCase() === "HEAD" && response.body) {
|
|
425
|
+
await response.body.cancel();
|
|
426
|
+
response = new Response(null, {
|
|
427
|
+
headers: response.headers,
|
|
428
|
+
status: response.status,
|
|
429
|
+
statusText: response.statusText
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
if (props.kind !== "app-page" || !props.isRscRequest) return response;
|
|
433
|
+
const headers = new Headers(response.headers);
|
|
434
|
+
if (Object.keys(props.params).length > 0) headers.set(VINEXT_PARAMS_HEADER, encodeURIComponent(JSON.stringify(props.params)));
|
|
435
|
+
else headers.delete(VINEXT_PARAMS_HEADER);
|
|
436
|
+
headers.set(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER, encodeURIComponent(props.resolvedUrl));
|
|
437
|
+
return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
|
|
438
|
+
headers,
|
|
439
|
+
status: response.status,
|
|
440
|
+
statusText: response.statusText
|
|
441
|
+
}));
|
|
442
|
+
} : void 0;
|
|
443
|
+
const responseStageRequest = (stageRequest = request) => {
|
|
444
|
+
const activeHeaders = getHeadersContext()?.headers;
|
|
445
|
+
if (!activeHeaders) return stageRequest;
|
|
446
|
+
return cloneRequestWithHeaders(stageRequest, new Headers(activeHeaders));
|
|
447
|
+
};
|
|
448
|
+
const renderMetadataRouteIfMatched = async () => {
|
|
449
|
+
if (!filesystemRouteEligible || (options.isMetadataRoute ? !options.isMetadataRoute(cleanPathname) : !options.handleMetadataRouteRequest)) return null;
|
|
450
|
+
const metadataRoutePathname = cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname;
|
|
451
|
+
const metadataResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
|
|
452
|
+
if (metadataResponseStage) {
|
|
453
|
+
const response = await metadataResponseStage(responseStageRequest(), {
|
|
454
|
+
kind: "app-metadata",
|
|
455
|
+
buildId: options.buildId,
|
|
456
|
+
cacheability: responseStageCacheability(resolvedUrl),
|
|
457
|
+
canonicalPathname,
|
|
458
|
+
cleanPathname,
|
|
459
|
+
draftModeCookie,
|
|
460
|
+
isRscRequest,
|
|
461
|
+
middlewareCookieOverlay,
|
|
462
|
+
mountedSlotsHeader,
|
|
463
|
+
protocolVersion: 10,
|
|
464
|
+
requestOrigin: url.origin,
|
|
465
|
+
renderMode,
|
|
466
|
+
resolvedUrl,
|
|
467
|
+
routePathname: metadataRoutePathname,
|
|
468
|
+
scriptNonce: scriptNonce ?? null
|
|
469
|
+
});
|
|
470
|
+
if (response.headers.get("x-vinext-app-metadata-stage-no-match") === "1") {
|
|
471
|
+
await response.body?.cancel();
|
|
472
|
+
return null;
|
|
473
|
+
}
|
|
474
|
+
return response;
|
|
475
|
+
}
|
|
476
|
+
return options.handleMetadataRouteRequest?.(cleanPathname, metadataRoutePathname) ?? null;
|
|
477
|
+
};
|
|
478
|
+
const applyConfigHeadersToResponseStage = async (response, preserveExistingPolicy = false) => {
|
|
479
|
+
const headers = new Headers(response.headers);
|
|
480
|
+
copyLinkHeaderProvenance(response.headers, headers);
|
|
481
|
+
await applyAppRscConfigHeaders(headers, request, {
|
|
482
|
+
basePath: options.basePath,
|
|
483
|
+
configHeaders: options.configHeaders,
|
|
484
|
+
i18nConfig: options.i18nConfig,
|
|
485
|
+
middlewareHeaders: middlewareContext.headers,
|
|
486
|
+
overwriteExisting: preserveExistingPolicy ? /* @__PURE__ */ new Set() : isCdnResponsePolicyHeader,
|
|
487
|
+
recordCacheability: dispatchResponseStage === void 0,
|
|
488
|
+
requestContext: preMiddlewareRequestContext
|
|
489
|
+
});
|
|
490
|
+
return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
|
|
491
|
+
headers,
|
|
492
|
+
status: response.status,
|
|
493
|
+
statusText: response.statusText
|
|
494
|
+
}));
|
|
495
|
+
};
|
|
496
|
+
let preHandlerResponseHeadersPromise;
|
|
497
|
+
const loadPreHandlerResponseHeaders = () => preHandlerResponseHeadersPromise ??= (async () => {
|
|
498
|
+
const headers = new Headers();
|
|
499
|
+
await applyAppRscConfigHeaders(headers, request, {
|
|
500
|
+
basePath: options.basePath,
|
|
501
|
+
configHeaders: options.configHeaders,
|
|
502
|
+
i18nConfig: options.i18nConfig,
|
|
503
|
+
overwriteExisting: isCdnResponsePolicyHeader,
|
|
504
|
+
recordCacheability: false,
|
|
505
|
+
requestContext: preMiddlewareRequestContext
|
|
506
|
+
});
|
|
507
|
+
mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
|
|
508
|
+
return headers;
|
|
509
|
+
})();
|
|
510
|
+
let outerResponsePolicyPromise;
|
|
511
|
+
const loadOuterResponsePolicy = () => outerResponsePolicyPromise ??= Promise.all([loadPreHandlerResponseHeaders(), loadResponseStagePolicy()]).then(([headers, responseStagePolicy]) => captureCdnResponsePolicyOverrides(headers, new Headers(responseStagePolicy ?? [])));
|
|
512
|
+
const composeResponseStageResponse = async (response) => {
|
|
513
|
+
const transportedLink = consumeResponseStageLinkProvenance(response);
|
|
514
|
+
response = transportedLink.response;
|
|
515
|
+
response = await applyConfigHeadersToResponseStage(response, Boolean(dispatchResponseStage || options.renderResponseStageLocally));
|
|
516
|
+
response = applyMiddlewareContextToResponse(response, middlewareContext, transportedLink.appendToPostConfigLink);
|
|
517
|
+
reconcileCdnResponseHeadersAfterOuterPolicy(response.headers, await loadOuterResponsePolicy());
|
|
518
|
+
return markAppRscResponseConfigHeadersApplied(response);
|
|
519
|
+
};
|
|
325
520
|
const postMiddlewareRequestContext = buildPostMwRequestContext(userlandRequest);
|
|
326
521
|
filesystemRouteEligible ||= didMiddlewareRewrite;
|
|
327
522
|
for (const rewrite of options.configRewrites.beforeFiles) {
|
|
@@ -333,7 +528,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
333
528
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
334
529
|
rewrites: [rewrite],
|
|
335
530
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
336
|
-
}, matchPathname(cleanPathname));
|
|
531
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
337
532
|
if (beforeFilesRewrite instanceof Response) return beforeFilesRewrite;
|
|
338
533
|
if (beforeFilesRewrite) {
|
|
339
534
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, beforeFilesRewrite);
|
|
@@ -360,7 +555,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
360
555
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
361
556
|
rewrites: [rewrite],
|
|
362
557
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
363
|
-
}, matchPathname(cleanPathname));
|
|
558
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
364
559
|
if (rewritten instanceof Response) return rewritten;
|
|
365
560
|
if (!rewritten) continue;
|
|
366
561
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
@@ -379,7 +574,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
379
574
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
380
575
|
rewrites: [rewrite],
|
|
381
576
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
382
|
-
}, matchPathname(cleanPathname));
|
|
577
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
383
578
|
if (rewritten instanceof Response) return rewritten;
|
|
384
579
|
if (!rewritten) continue;
|
|
385
580
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
@@ -398,20 +593,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
398
593
|
if (!imageRedirect) return new Response("Invalid image optimization parameters", { status: 400 });
|
|
399
594
|
return Response.redirect(new URL(imageRedirect, url.origin).href, 302);
|
|
400
595
|
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
if (metadataRouteResponse && HAS_CONFIG_HEADERS && options.configHeaders.length) {
|
|
404
|
-
const { applyConfigHeadersToResponse } = await import("./config-headers.js");
|
|
405
|
-
applyConfigHeadersToResponse(metadataRouteResponse.headers, {
|
|
406
|
-
basePathState,
|
|
407
|
-
configHeaders: options.configHeaders,
|
|
408
|
-
overwriteExisting: STATIC_METADATA_CONFIG_HEADER_OVERRIDES,
|
|
409
|
-
pathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
410
|
-
requestContext: preMiddlewareRequestContext
|
|
411
|
-
});
|
|
412
|
-
}
|
|
413
|
-
if (metadataRouteResponse) return applyMiddlewareContextToResponse(metadataRouteResponse, middlewareContext);
|
|
414
|
-
}
|
|
596
|
+
const metadataRouteResponse = await renderMetadataRouteIfMatched();
|
|
597
|
+
if (metadataRouteResponse) return composeResponseStageResponse(metadataRouteResponse);
|
|
415
598
|
const publicFileResponse = filesystemRouteEligible ? resolvePublicFileRoute({
|
|
416
599
|
cleanPathname,
|
|
417
600
|
middlewareContext,
|
|
@@ -488,7 +671,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
488
671
|
if (sourceMiddlewareRequest.body && !sourceMiddlewareRequest.bodyUsed && !sourceMiddlewareRequest.body.locked) sourceMiddlewareRequest.body.cancel().catch(() => {});
|
|
489
672
|
if (sourceRequest !== userlandRequest && sourceRequest.body && !sourceRequest.bodyUsed && !sourceRequest.body.locked) sourceRequest.body.cancel().catch(() => {});
|
|
490
673
|
}
|
|
491
|
-
if (sourceMiddlewareResult.pathnameEligible) markRouteCacheabilityDynamic(sourceMiddlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
|
|
674
|
+
if (!dispatchResponseStage && sourceMiddlewareResult.pathnameEligible) markRouteCacheabilityDynamic(sourceMiddlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
|
|
492
675
|
if (sourceMiddlewareResult.kind === "response") {
|
|
493
676
|
options.clearRequestContext();
|
|
494
677
|
return sourceMiddlewareResult.response;
|
|
@@ -509,7 +692,10 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
509
692
|
targetHeadersContext.headers.set(name, value);
|
|
510
693
|
addedSourceHeader = true;
|
|
511
694
|
}
|
|
512
|
-
if (addedSourceHeader)
|
|
695
|
+
if (addedSourceHeader) {
|
|
696
|
+
targetHeadersContext.readonlyHeaders = void 0;
|
|
697
|
+
canUseSharedWorkerResponseStage = false;
|
|
698
|
+
}
|
|
513
699
|
if (sourceMiddlewareResult.rewritten) {
|
|
514
700
|
const rewrittenSourceMatch = options.matchRoute(sourceMiddlewareResult.cleanPathname);
|
|
515
701
|
if (sourceMiddlewareResult.search !== sourceUrl.search || rewrittenSourceMatch?.route !== interceptionSourceMatch.route || !haveSamePageParams(rewrittenSourceMatch.params, interceptionSourceMatch.params)) {
|
|
@@ -566,6 +752,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
566
752
|
basePath: options.basePath,
|
|
567
753
|
configHeaders: options.configHeaders,
|
|
568
754
|
i18nConfig: options.i18nConfig,
|
|
755
|
+
recordCacheability: dispatchResponseStage === void 0,
|
|
569
756
|
requestContext: preMiddlewareRequestContext
|
|
570
757
|
});
|
|
571
758
|
}
|
|
@@ -590,9 +777,54 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
590
777
|
let match = preActionMatch;
|
|
591
778
|
const renderPagesForMatchKind = async (matchKind) => {
|
|
592
779
|
if (!filesystemRouteEligible) return null;
|
|
780
|
+
let sharedOuterPolicyNeedsReconciliation = false;
|
|
781
|
+
const dispatchPagesResponseStage = dispatchResponseStage ? async (stageRequest, resourceKind, dataKind, hasRequestAwareDocument) => {
|
|
782
|
+
const pagesOnDemandRevalidate = resourceKind === "page" && isOnDemandRevalidateRequest(stageRequest.headers.get("x-prerender-revalidate"));
|
|
783
|
+
const cache = responseStageProbeMode || pagesOnDemandRevalidate || hasPagesPreviewCookie(stageRequest.headers.get("cookie")) || resourceKind === "page" && dataKind === "static" && hasRequestAwareDocument ? "bypass" : canUseSharedWorkerResponseStage ? "shared" : "bypass";
|
|
784
|
+
let response = await dispatchResponseStage(responseStageRequest(stageRequest), {
|
|
785
|
+
kind: "hybrid-pages",
|
|
786
|
+
buildId: options.buildId,
|
|
787
|
+
cacheability: {
|
|
788
|
+
...responseStageCacheability(resolvedUrl),
|
|
789
|
+
policyHeaders: await loadResponseStagePolicy(),
|
|
790
|
+
...isDataRequest ? { representation: "pages-data" } : {}
|
|
791
|
+
},
|
|
792
|
+
allowRscDocumentFallback: didMiddlewareRewritePathname || allowInternalRscDocumentFallback,
|
|
793
|
+
appRouteMatch: match ? {
|
|
794
|
+
isDynamic: match.route.isDynamic,
|
|
795
|
+
pattern: match.route.pattern
|
|
796
|
+
} : null,
|
|
797
|
+
canonicalPathname,
|
|
798
|
+
cleanPathname,
|
|
799
|
+
draftModeCookie,
|
|
800
|
+
isDataRequest,
|
|
801
|
+
isRscRequest,
|
|
802
|
+
matchKind,
|
|
803
|
+
middlewareCookieOverlay,
|
|
804
|
+
preHandlerHeaders: cache === "shared" && resourceKind === "page" && dataKind === "static" ? null : [...await loadPreHandlerResponseHeaders()],
|
|
805
|
+
protocolVersion: 10,
|
|
806
|
+
requestOrigin: url.origin,
|
|
807
|
+
resourceKind,
|
|
808
|
+
requestUrl: request.url,
|
|
809
|
+
resolvedUrl,
|
|
810
|
+
scriptNonce: scriptNonce ?? null
|
|
811
|
+
}, { cache });
|
|
812
|
+
const policyOwner = resourceKind === "page" ? consumePagesResponseStagePolicyOwner(response) : {
|
|
813
|
+
owner: null,
|
|
814
|
+
response
|
|
815
|
+
};
|
|
816
|
+
response = policyOwner.response;
|
|
817
|
+
const requestTimePolicyOwner = policyOwner.owner === "request-time" || policyOwner.owner === null && dataKind === "server";
|
|
818
|
+
sharedOuterPolicyNeedsReconciliation = cache === "shared" && resourceKind === "page" && !requestTimePolicyOwner;
|
|
819
|
+
const responseStageHasContentLength = response.headers.has("Content-Length");
|
|
820
|
+
response = await applyConfigHeadersToResponseStage(response, resourceKind === "api" || requestTimePolicyOwner);
|
|
821
|
+
if (!responseStageHasContentLength) response.headers.delete("Content-Length");
|
|
822
|
+
return response;
|
|
823
|
+
} : void 0;
|
|
593
824
|
const response = !isInterceptionMatch && (match === null || match.route.isDynamic) ? await options.renderPagesFallback?.({
|
|
594
825
|
appRouteMatch: match ?? null,
|
|
595
826
|
allowRscDocumentFallback: didMiddlewareRewritePathname || allowInternalRscDocumentFallback,
|
|
827
|
+
dispatchPagesResponseStage,
|
|
596
828
|
isDataRequest,
|
|
597
829
|
isRscRequest,
|
|
598
830
|
matchKind,
|
|
@@ -603,14 +835,17 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
603
835
|
url
|
|
604
836
|
}) ?? null : null;
|
|
605
837
|
if (response) preserveRouteCacheabilityResponsePolicy();
|
|
606
|
-
if (!response
|
|
838
|
+
if (!response) return null;
|
|
839
|
+
if (sharedOuterPolicyNeedsReconciliation) reconcileCdnResponseHeadersAfterOuterPolicy(response.headers, await loadOuterResponsePolicy());
|
|
840
|
+
if (!pagesDataRequest || resolvedUrl === originalResolvedUrl) return dispatchPagesResponseStage ? markAppRscResponseConfigHeadersApplied(response) : response;
|
|
607
841
|
const headers = new Headers(response.headers);
|
|
608
842
|
headers.set("x-nextjs-rewrite", resolvedUrl);
|
|
609
|
-
|
|
843
|
+
const rewrittenResponse = new Response(response.body, {
|
|
610
844
|
headers,
|
|
611
845
|
status: response.status,
|
|
612
846
|
statusText: response.statusText
|
|
613
847
|
});
|
|
848
|
+
return dispatchPagesResponseStage ? markAppRscResponseConfigHeadersApplied(rewrittenResponse) : rewrittenResponse;
|
|
614
849
|
};
|
|
615
850
|
const staticPagesFallbackResponse = await renderPagesForMatchKind("static");
|
|
616
851
|
if (staticPagesFallbackResponse) {
|
|
@@ -626,7 +861,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
626
861
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
627
862
|
rewrites: [rewrite],
|
|
628
863
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
629
|
-
}, matchPathname(cleanPathname));
|
|
864
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
630
865
|
if (afterFilesRewrite instanceof Response) {
|
|
631
866
|
invalidateInterceptionCacheProof();
|
|
632
867
|
return afterFilesRewrite;
|
|
@@ -639,6 +874,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
639
874
|
filesystemRouteEligible = true;
|
|
640
875
|
const claimedRscCacheBustingRedirect = await validateClaimedOutsideBasePathRsc();
|
|
641
876
|
if (claimedRscCacheBustingRedirect) return claimedRscCacheBustingRedirect;
|
|
877
|
+
const rewrittenMetadataResponse = await renderMetadataRouteIfMatched();
|
|
878
|
+
if (rewrittenMetadataResponse) return composeResponseStageResponse(rewrittenMetadataResponse);
|
|
642
879
|
match = matchCleanPathname();
|
|
643
880
|
const rewrittenStaticPagesResponse = await renderPagesForMatchKind("static");
|
|
644
881
|
if (rewrittenStaticPagesResponse) {
|
|
@@ -666,7 +903,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
666
903
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
667
904
|
rewrites: [rewrite],
|
|
668
905
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
669
|
-
}, matchPathname(cleanPathname));
|
|
906
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
670
907
|
if (fallbackRewrite instanceof Response) {
|
|
671
908
|
invalidateInterceptionCacheProof();
|
|
672
909
|
return fallbackRewrite;
|
|
@@ -679,6 +916,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
679
916
|
filesystemRouteEligible = true;
|
|
680
917
|
const claimedRscCacheBustingRedirect = await validateClaimedOutsideBasePathRsc();
|
|
681
918
|
if (claimedRscCacheBustingRedirect) return claimedRscCacheBustingRedirect;
|
|
919
|
+
const rewrittenMetadataResponse = await renderMetadataRouteIfMatched();
|
|
920
|
+
if (rewrittenMetadataResponse) return composeResponseStageResponse(rewrittenMetadataResponse);
|
|
682
921
|
match = matchCleanPathname();
|
|
683
922
|
const rewrittenStaticPagesResponse = await renderPagesForMatchKind("static");
|
|
684
923
|
if (rewrittenStaticPagesResponse) {
|
|
@@ -730,13 +969,31 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
730
969
|
options.clearRequestContext();
|
|
731
970
|
return new Response("", { status: 404 });
|
|
732
971
|
}
|
|
733
|
-
|
|
972
|
+
setFrameworkRequestRoute("/404", isRscRequest);
|
|
973
|
+
const notFoundResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
|
|
974
|
+
if (notFoundResponseStage) return composeResponseStageResponse(await notFoundResponseStage(responseStageRequest(), {
|
|
975
|
+
kind: "app-not-found",
|
|
976
|
+
buildId: options.buildId,
|
|
977
|
+
cacheability: responseStageCacheability(resolvedUrl),
|
|
978
|
+
canonicalPathname,
|
|
979
|
+
cleanPathname,
|
|
980
|
+
draftModeCookie,
|
|
981
|
+
isRscRequest,
|
|
982
|
+
middlewareCookieOverlay,
|
|
983
|
+
mountedSlotsHeader,
|
|
984
|
+
protocolVersion: 10,
|
|
985
|
+
requestOrigin: url.origin,
|
|
986
|
+
renderMode,
|
|
987
|
+
resolvedUrl,
|
|
988
|
+
scriptNonce: scriptNonce ?? null
|
|
989
|
+
}));
|
|
990
|
+
const renderedNotFoundResponse = await traceAppPageRender("/404", "render", () => options.renderNotFound({
|
|
734
991
|
isRscRequest,
|
|
735
992
|
middlewareContext,
|
|
736
993
|
request,
|
|
737
994
|
route: null,
|
|
738
995
|
scriptNonce
|
|
739
|
-
});
|
|
996
|
+
}));
|
|
740
997
|
if (renderedNotFoundResponse) return renderedNotFoundResponse;
|
|
741
998
|
options.clearRequestContext();
|
|
742
999
|
const headers = new Headers();
|
|
@@ -744,7 +1001,18 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
744
1001
|
return notFoundResponse({ headers });
|
|
745
1002
|
}
|
|
746
1003
|
const { route, params } = match;
|
|
747
|
-
|
|
1004
|
+
const requestPathnameDiffersFromCachePath = requestCleanPathname !== cleanPathname;
|
|
1005
|
+
const rawRequestPathnameIsObservable = isInterceptionMatch || route.routeHandler != null || typeof route.__loadRouteHandler === "function";
|
|
1006
|
+
if ((!isInterceptionMatch || requestPathnameDiffersFromCachePath) && options.matchRequestRoute) {
|
|
1007
|
+
const cachePathMatch = options.matchRoute(cleanPathname);
|
|
1008
|
+
if (requestPathnameDiffersFromCachePath && rawRequestPathnameIsObservable || !cachePathMatch || cachePathMatch.route.pattern !== route.pattern || !haveSamePageParams(cachePathMatch.params, params)) {
|
|
1009
|
+
bypassInterceptionContextCache = true;
|
|
1010
|
+
setInterceptionResponseUncacheable(true);
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
const cachePathname = cleanPathnameIsRequestPathname ? cleanPathname : rewriteCachePathname(canonicalPathname, cleanPathname);
|
|
1014
|
+
setFrameworkRequestRoute(patternToNextFormat(route.pattern), isRscRequest);
|
|
1015
|
+
if (options.ensureRouteLoaded) await traceFindPageComponents(route.pattern, () => options.ensureRouteLoaded(route));
|
|
748
1016
|
const resolvedSearchParams = getResolvedSearchParams();
|
|
749
1017
|
if (isRouteTreePrefetchRequest(request) && !route.routeHandler) {
|
|
750
1018
|
const response = await createRouteTreePrefetchResponse(route, {
|
|
@@ -754,10 +1022,14 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
754
1022
|
options.clearRequestContext();
|
|
755
1023
|
return applyMiddlewareContextToResponse(response, middlewareContext);
|
|
756
1024
|
}
|
|
757
|
-
const
|
|
1025
|
+
const prerenderRouteParamsPayload = readTrustedPrerenderRouteParams(request);
|
|
1026
|
+
const prerenderRouteParamsMatch = matchPrerenderRouteParamsPayload(prerenderRouteParamsPayload, route.pattern, params);
|
|
758
1027
|
const prerenderRouteParams = prerenderRouteParamsMatch?.params ?? null;
|
|
759
1028
|
const isPrerenderFallbackShell = prerenderRouteParamsMatch?.kind === "fallback-shell";
|
|
760
1029
|
const renderParams = prerenderRouteParams ?? params;
|
|
1030
|
+
const responseStageMatchKind = isInterceptionMatch ? "interception" : cleanPathnameIsRequestPathname && options.matchRequestRoute ? "request" : "resolved";
|
|
1031
|
+
const responseStageRoutePathname = isInterceptionMatch ? preActionRoutePathname : cleanPathnameIsRequestPathname ? requestCleanPathname || "/" : cleanPathname || "/";
|
|
1032
|
+
const matchedResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
|
|
761
1033
|
let runtimeFallbackShells = [];
|
|
762
1034
|
if (options.createPprFallbackShells && request.method === "GET" && !isRscRequest && !isPrerenderFallbackShell && route.params) runtimeFallbackShells = options.createPprFallbackShells({
|
|
763
1035
|
params: route.params,
|
|
@@ -772,13 +1044,42 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
772
1044
|
const rootParams = pickRootParams(renderParams, route.rootParamNames);
|
|
773
1045
|
setRootParams(rootParams);
|
|
774
1046
|
if (route.routeHandler) {
|
|
775
|
-
setCurrentFetchSoftTags(buildPageCacheTags(cleanPathname, [], [...route.routeSegments], "route"));
|
|
776
1047
|
const routeHandlerRequest = isEdgeRouteHandler(route.routeHandler) ? userlandRequest : normalizedUserlandRequest;
|
|
777
1048
|
const routeHandlerUrl = new URL(routeHandlerRequest.url);
|
|
778
1049
|
const internalRscValues = isEdgeRouteHandler(route.routeHandler) ? [] : routeHandlerUrl.searchParams.getAll(VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM);
|
|
779
1050
|
routeHandlerUrl.search = resolvedSearchParams.toString();
|
|
780
1051
|
for (const internalRscValue of internalRscValues) routeHandlerUrl.searchParams.append(VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, internalRscValue);
|
|
1052
|
+
if (matchedResponseStage) return composeResponseStageResponse(await matchedResponseStage(responseStageRequest(), {
|
|
1053
|
+
kind: "app-route-handler",
|
|
1054
|
+
buildId: options.buildId,
|
|
1055
|
+
cacheability: responseStageCacheability(resolvedUrl),
|
|
1056
|
+
bypassInterceptionContextCache,
|
|
1057
|
+
cachePathname,
|
|
1058
|
+
canUseCanonicalLoadingShell: route.canUseCanonicalLoadingShell === true,
|
|
1059
|
+
canonicalPathname,
|
|
1060
|
+
cleanPathname,
|
|
1061
|
+
draftModeCookie,
|
|
1062
|
+
forceDynamic: route.forceDynamic === true,
|
|
1063
|
+
interceptionContext: interceptionContextHeader,
|
|
1064
|
+
interceptionId: interceptionIdHeader,
|
|
1065
|
+
isRscRequest,
|
|
1066
|
+
matchKind: responseStageMatchKind,
|
|
1067
|
+
middlewareCookieOverlay,
|
|
1068
|
+
mountedSlotsHeader,
|
|
1069
|
+
params,
|
|
1070
|
+
protocolVersion: 10,
|
|
1071
|
+
requestOrigin: url.origin,
|
|
1072
|
+
renderMode,
|
|
1073
|
+
resolvedUrl,
|
|
1074
|
+
routePattern: route.pattern,
|
|
1075
|
+
routePathname: responseStageRoutePathname,
|
|
1076
|
+
scriptNonce: scriptNonce ?? null
|
|
1077
|
+
}));
|
|
1078
|
+
const { setCurrentFetchSoftTags } = await import("../shims/fetch-cache.js");
|
|
1079
|
+
setCurrentFetchSoftTags(buildPageCacheTags(cleanPathname, [], [...route.routeSegments], "route"));
|
|
781
1080
|
return options.dispatchMatchedRouteHandler({
|
|
1081
|
+
bypassInterceptionContextCache,
|
|
1082
|
+
cachePathname,
|
|
782
1083
|
cleanPathname,
|
|
783
1084
|
middlewareContext,
|
|
784
1085
|
params: route.isDynamic ? renderParams : null,
|
|
@@ -787,8 +1088,34 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
787
1088
|
searchParams: resolvedSearchParams
|
|
788
1089
|
});
|
|
789
1090
|
}
|
|
790
|
-
const pageResponse = await
|
|
1091
|
+
const pageResponse = matchedResponseStage ? await matchedResponseStage(responseStageRequest(), {
|
|
1092
|
+
kind: "app-page",
|
|
1093
|
+
buildId: options.buildId,
|
|
1094
|
+
cacheability: responseStageCacheability(resolvedUrl),
|
|
1095
|
+
bypassInterceptionContextCache,
|
|
1096
|
+
cachePathname,
|
|
1097
|
+
canUseCanonicalLoadingShell: route.canUseCanonicalLoadingShell === true,
|
|
1098
|
+
canonicalPathname,
|
|
1099
|
+
cleanPathname,
|
|
1100
|
+
draftModeCookie,
|
|
1101
|
+
forceDynamic: route.forceDynamic === true,
|
|
1102
|
+
interceptionContext: isRscRequest ? interceptionContextHeader : null,
|
|
1103
|
+
interceptionId: interceptionIdHeader,
|
|
1104
|
+
isRscRequest,
|
|
1105
|
+
matchKind: responseStageMatchKind,
|
|
1106
|
+
middlewareCookieOverlay,
|
|
1107
|
+
mountedSlotsHeader,
|
|
1108
|
+
params,
|
|
1109
|
+
protocolVersion: 10,
|
|
1110
|
+
requestOrigin: url.origin,
|
|
1111
|
+
renderMode,
|
|
1112
|
+
resolvedUrl,
|
|
1113
|
+
routePattern: route.pattern,
|
|
1114
|
+
routePathname: responseStageRoutePathname,
|
|
1115
|
+
scriptNonce: scriptNonce ?? null
|
|
1116
|
+
}).then(composeResponseStageResponse) : await options.dispatchMatchedPage({
|
|
791
1117
|
bypassInterceptionContextCache,
|
|
1118
|
+
cachePathname,
|
|
792
1119
|
clientReuseManifest,
|
|
793
1120
|
cleanPathname,
|
|
794
1121
|
displayPathname: canonicalPathname,
|
|
@@ -796,7 +1123,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
796
1123
|
actionError: normalizedProgressiveActionError,
|
|
797
1124
|
actionFailed,
|
|
798
1125
|
handlerStart,
|
|
799
|
-
interceptionContext: interceptionContextHeader,
|
|
1126
|
+
interceptionContext: isRscRequest ? interceptionContextHeader : null,
|
|
800
1127
|
interceptionId: interceptionIdHeader,
|
|
801
1128
|
interceptionPathname: cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname,
|
|
802
1129
|
isProgressiveActionRender,
|
|
@@ -855,10 +1182,9 @@ function applyProgressiveActionSideEffects(response, sideEffects) {
|
|
|
855
1182
|
});
|
|
856
1183
|
}
|
|
857
1184
|
}
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
await options.ensureInstrumentation?.();
|
|
1185
|
+
/** Build the request-only handler without retaining the response renderer graph. */
|
|
1186
|
+
function createAppRscRequestHandler(options) {
|
|
1187
|
+
const handleAppRscRequestLifecycle = async (rawRequest, ctx, allowInternalRscDocumentFallback = false, dispatchResponseStage, responseStageProbeMode = null, transportedPrerenderState) => {
|
|
862
1188
|
const mwCtx = rawRequest.headers.get(VINEXT_MW_CTX_HEADER);
|
|
863
1189
|
const pagesDataUrl = new URL(rawRequest.url);
|
|
864
1190
|
const pagesDataInScope = !options.basePath || hasBasePath(pagesDataUrl.pathname, options.basePath);
|
|
@@ -868,8 +1194,12 @@ function createAppRscHandler(options) {
|
|
|
868
1194
|
if (pagesDataNormalization?.notFoundResponse) return pagesDataNormalization.notFoundResponse;
|
|
869
1195
|
const isPagesDataRequest = pagesDataNormalization?.isDataReq === true;
|
|
870
1196
|
const executionContext = isExecutionContextLike(ctx) ? ctx : getRequestExecutionContext() ?? null;
|
|
871
|
-
const
|
|
872
|
-
|
|
1197
|
+
const trustedPrerenderState = transportedPrerenderState !== void 0 ? transportedPrerenderState : process.env.VINEXT_PRERENDER === "1" && rawRequest.headers.get("x-vinext-prerender-secret") !== null ? {
|
|
1198
|
+
routeParams: readTrustedPrerenderRouteParams(rawRequest),
|
|
1199
|
+
speculative: rawRequest.headers.get(VINEXT_PRERENDER_SPECULATIVE_HEADER) === "1"
|
|
1200
|
+
} : null;
|
|
1201
|
+
const prerenderRouteParamsPayload = trustedPrerenderState?.routeParams ?? null;
|
|
1202
|
+
const isTrustedSpeculativePrerender = trustedPrerenderState?.speculative === true;
|
|
873
1203
|
const filteredHeaders = executionContext?.isInternalPagesRevalidation ? new Headers(rawRequest.headers) : filterInternalHeaders(rawRequest.headers);
|
|
874
1204
|
filteredHeaders.delete(VINEXT_REVALIDATE_HOST_HEADER);
|
|
875
1205
|
if (isForwardedActionContext(ctx)) filteredHeaders.set("x-action-forwarded", "1");
|
|
@@ -885,14 +1215,18 @@ function createAppRscHandler(options) {
|
|
|
885
1215
|
}
|
|
886
1216
|
const request = cloneRequestWithHeaders(appRequest, filteredHeaders);
|
|
887
1217
|
const pagesDataRequest = pagesDataNormalization?.isDataReq ? cloneRequestWithHeaders(pagesDataCandidate, filteredHeaders) : null;
|
|
1218
|
+
const headersContext = headersContextFromRequest(request, { draftModeSecret: options.draftModeSecret });
|
|
888
1219
|
const requestContext = createRequestContext({
|
|
889
|
-
headersContext
|
|
1220
|
+
headersContext,
|
|
890
1221
|
executionContext,
|
|
891
1222
|
unstableCacheRevalidation: "background"
|
|
892
1223
|
});
|
|
893
1224
|
let interceptionResponseUncacheable = false;
|
|
894
1225
|
const responsePromise = runWithRequestContext(requestContext, () => runWithPrerenderWorkUnit(async () => {
|
|
895
|
-
|
|
1226
|
+
if (!dispatchResponseStage) {
|
|
1227
|
+
const { ensureFetchPatch } = await import("../shims/fetch-cache.js");
|
|
1228
|
+
ensureFetchPatch();
|
|
1229
|
+
}
|
|
896
1230
|
const preMiddlewareRequestContext = requestContextFromRequest(request);
|
|
897
1231
|
const middlewareContext = {
|
|
898
1232
|
headers: null,
|
|
@@ -901,7 +1235,7 @@ function createAppRscHandler(options) {
|
|
|
901
1235
|
};
|
|
902
1236
|
let response;
|
|
903
1237
|
try {
|
|
904
|
-
response = await handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isPagesDataRequest, isPagesDataRequest, pagesDataRequest, (internalRequest) => appRscHandler(internalRequest, ctx, true), allowInternalRscDocumentFallback, (uncacheable) => {
|
|
1238
|
+
response = await handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isPagesDataRequest, isPagesDataRequest, pagesDataRequest, (internalRequest) => appRscHandler(internalRequest, ctx, true, dispatchResponseStage, responseStageProbeMode, trustedPrerenderState, true), allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode, (uncacheable) => {
|
|
905
1239
|
interceptionResponseUncacheable = uncacheable;
|
|
906
1240
|
});
|
|
907
1241
|
} catch (error) {
|
|
@@ -913,6 +1247,7 @@ function createAppRscHandler(options) {
|
|
|
913
1247
|
configHeaders: options.configHeaders,
|
|
914
1248
|
i18nConfig: options.i18nConfig,
|
|
915
1249
|
middlewareHeaders: middlewareContext.headers,
|
|
1250
|
+
recordCacheability: dispatchResponseStage === void 0,
|
|
916
1251
|
requestContext: preMiddlewareRequestContext
|
|
917
1252
|
});
|
|
918
1253
|
return interceptionResponseUncacheable ? markUnverifiedInterceptionResponseUncacheable(response) : response;
|
|
@@ -929,6 +1264,21 @@ function createAppRscHandler(options) {
|
|
|
929
1264
|
}
|
|
930
1265
|
return closeAfterResponseWithBody(response, requestContext);
|
|
931
1266
|
};
|
|
1267
|
+
const appRscHandler = async function appRscHandler(rawRequest, ctx, allowInternalRscDocumentFallback = false, dispatchResponseStage, responseStageProbeMode = null, transportedPrerenderState, detachedTrace = false) {
|
|
1268
|
+
options.registerCacheAdapters();
|
|
1269
|
+
await options.ensureInstrumentation?.();
|
|
1270
|
+
const traceUrl = new URL(rawRequest.url);
|
|
1271
|
+
return traceFrameworkRequest({
|
|
1272
|
+
callback: () => handleAppRscRequestLifecycle(rawRequest, ctx, allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode, transportedPrerenderState),
|
|
1273
|
+
detached: detachedTrace,
|
|
1274
|
+
getStatus: (response) => response?.status,
|
|
1275
|
+
headers: rawRequest.headers,
|
|
1276
|
+
isRsc: traceUrl.pathname.endsWith(".rsc") || rawRequest.headers.get("RSC") === "1",
|
|
1277
|
+
method: rawRequest.method,
|
|
1278
|
+
target: traceUrl.pathname + traceUrl.search
|
|
1279
|
+
});
|
|
1280
|
+
};
|
|
1281
|
+
return appRscHandler;
|
|
932
1282
|
}
|
|
933
1283
|
//#endregion
|
|
934
|
-
export {
|
|
1284
|
+
export { createAppRscRequestHandler };
|