vinext 1.0.0-beta.9 → 1.0.1
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 +51 -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 +7 -14
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/precompress.js +1 -1
- 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 +274 -102
- 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 +73 -16
- package/dist/build/prerender.js +272 -80
- 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 +26 -16
- package/dist/build/server-entry.d.ts +6 -0
- package/dist/build/server-entry.js +34 -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/browser-globals.d.ts +4 -0
- package/dist/client/browser-globals.js +5 -0
- 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 +20 -17
- package/dist/client/navigation-runtime.js +4 -3
- 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 +14 -2
- 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 +503 -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 +848 -255
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +711 -103
- 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 +126 -42
- 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/commonjs-syntax.d.ts +16 -0
- package/dist/plugins/commonjs-syntax.js +22 -0
- 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 +14 -4
- package/dist/plugins/ignore-dynamic-requests.js +113 -91
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +36 -48
- 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 +5 -4
- package/dist/plugins/og-asset-ownership.js +24 -13
- package/dist/plugins/og-assets.d.ts +22 -5
- package/dist/plugins/og-assets.js +82 -21
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +271 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +34 -45
- 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 +3 -3
- package/dist/plugins/require-context.js +41 -22
- 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/scan-build-css.d.ts +12 -0
- package/dist/plugins/scan-build-css.js +39 -0
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +7 -6
- package/dist/plugins/strip-server-exports.js +4 -2
- 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 +21 -4
- package/dist/plugins/transform-result.js +23 -2
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +16 -7
- package/dist/plugins/typeof-window.js +62 -39
- 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 +18 -19
- package/dist/routing/app-route-graph.js +5 -6
- package/dist/routing/app-route-ids.d.ts +3 -0
- package/dist/routing/app-route-ids.js +6 -0
- 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 +4 -4
- package/dist/server/app-bfcache-id.js +7 -1
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-bfcache-identity.js +1 -2
- 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 +91 -36
- 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 +15 -2
- 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 +9 -5
- 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 +7 -3
- package/dist/server/app-browser-stream.d.ts +5 -6
- 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 +25 -27
- package/dist/server/app-history-state.js +21 -16
- 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 -4
- 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 -24
- 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 +43 -7
- 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 +50 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +18 -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-abort-error.d.ts +3 -0
- package/dist/server/app-render-abort-error.js +8 -0
- 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 +112 -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 +4 -4
- package/dist/server/app-route-handler-cache.js +51 -35
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +77 -56
- package/dist/server/app-route-handler-execution.d.ts +26 -14
- package/dist/server/app-route-handler-execution.js +94 -28
- 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-policy.js +2 -2
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +14 -3
- 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 +4 -1
- package/dist/server/app-router-entry.js +33 -17
- 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 +11 -9
- package/dist/server/app-rsc-errors.js +14 -16
- package/dist/server/app-rsc-handler.d.ts +32 -6
- package/dist/server/app-rsc-handler.js +425 -64
- 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 +5 -3
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +10 -7
- 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 +18 -13
- 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 +62 -15
- 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 +34 -8
- 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 +64 -6
- 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 +192 -90
- 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 +141 -64
- 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 +56 -61
- package/dist/server/headers.js +22 -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-error-responses.js +1 -0
- 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 +30 -27
- package/dist/server/isr-cache.js +23 -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-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +158 -35
- 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 +28 -9
- package/dist/server/pages-asset-tags.d.ts +7 -6
- package/dist/server/pages-asset-tags.js +104 -18
- 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 +13 -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 +23 -19
- package/dist/server/pages-page-data.js +82 -75
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +103 -47
- 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 +52 -32
- 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 +15 -12
- package/dist/server/pages-request-pipeline.js +80 -35
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +316 -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 +17 -11
- package/dist/server/prerender-manifest.js +7 -4
- 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 +127 -44
- 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 +4 -4
- package/dist/server/worker-revalidation-context.js +6 -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 +34 -0
- package/dist/server/workers-tracing.js +67 -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 +26 -38
- package/dist/shims/cache-request-state.js +2 -13
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +110 -28
- package/dist/shims/cache.d.ts +17 -16
- package/dist/shims/cache.js +19 -15
- package/dist/shims/cacheability-classification.d.ts +50 -29
- package/dist/shims/cacheability-classification.js +29 -14
- 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 +59 -21
- package/dist/shims/cdn-cache.js +31 -47
- 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 +5 -19
- package/dist/shims/error.js +17 -10
- package/dist/shims/error.react-server.d.ts +4 -7
- package/dist/shims/error.react-server.js +4 -1
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +46 -20
- 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 +44 -73
- package/dist/shims/headers.js +87 -144
- 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/cache-context-accessor.d.ts +16 -0
- package/dist/shims/internal/cache-context-accessor.js +15 -0
- 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/headers-state.d.ts +74 -0
- package/dist/shims/internal/headers-state.js +157 -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 +26 -18
- 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/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/root-params.js +1 -1
- 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 +66 -30
- 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 +35 -32
- 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 +4 -4
- package/dist/utils/encode-cache-tag.js +11 -1
- 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 +151 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +51 -6
- package/dist/server/metadata-route-cache-policy.d.ts +0 -6
- package/dist/server/metadata-route-cache-policy.js +0 -6
|
@@ -1,41 +1,53 @@
|
|
|
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";
|
|
7
|
+
import { assetPrefixPathname, isNextStaticPath } from "../utils/asset-prefix.js";
|
|
2
8
|
import { normalizePathnameForRouteMatchStrict } from "../routing/utils.js";
|
|
3
9
|
import { addBasePathToPathname, hasBasePath, stripBasePath } from "../utils/base-path.js";
|
|
10
|
+
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
4
11
|
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import { ACTION_REVALIDATED_HEADER, FLIGHT_HEADERS } from "./headers.js";
|
|
12
|
+
import "./app-rsc-vary.js";
|
|
13
|
+
import { ACTION_REVALIDATED_HEADER, FLIGHT_HEADERS, VINEXT_PARAMS_HEADER, VINEXT_PRERENDER_REWRITTEN_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER } from "./headers.js";
|
|
8
14
|
import { isInterceptionMatchedUrlPath, normalizePath } from "./normalize-path.js";
|
|
9
|
-
import {
|
|
10
|
-
import { badRequestResponse, notFoundResponse } from "./http-error-responses.js";
|
|
15
|
+
import { badRequestResponse, notFoundResponse, notFoundStaticAssetResponse } from "./http-error-responses.js";
|
|
11
16
|
import { cloneRequestWithHeaders, cloneRequestWithUrl, filterInternalHeaders, normalizeTrailingSlash, resolvePublicFileRoute } from "./request-pipeline.js";
|
|
12
17
|
import { normalizeDefaultLocalePathname } from "./pages-i18n.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
18
|
+
import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
|
|
19
|
+
import { markRouteCacheabilityDynamic, preserveRouteCacheabilityResponsePolicy } from "../shims/cacheability-classification.js";
|
|
20
|
+
import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, captureCdnResponsePolicyOverrides, isCdnResponsePolicyHeader, reconcileCdnResponseHeadersAfterOuterPolicy } from "./cache-control.js";
|
|
21
|
+
import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
|
|
22
|
+
import { getDraftModeCookieHeader, getEffectiveRequestCookieHeader, getHeadersContext, hasEffectiveRequestCookieChanges, headersContextFromRequest, isDraftModeEnabled, isDraftModeRequest, runWithHeadersContext } from "../shims/headers.js";
|
|
17
23
|
import { mergeRewriteQuery } from "../utils/query.js";
|
|
18
24
|
import { getScriptNonceFromHeaderSources } from "./csp.js";
|
|
19
25
|
import { buildNextDataNotFoundResponse, normalizePagesDataRequest } from "./pages-data-route.js";
|
|
26
|
+
import { traceFindPageComponents } from "./pages-execution-tracing.js";
|
|
20
27
|
import { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, isImageOptimizationPath, resolveDevImageRedirect } from "./image-optimization.js";
|
|
21
|
-
import {
|
|
28
|
+
import { parseCacheabilityManifest } from "./cacheability-manifest.js";
|
|
29
|
+
import { getRenderedConcreteUrlPathsForRoute } from "./pregenerated-concrete-paths.js";
|
|
30
|
+
import { VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, canonicalizeLoadingShellRscRequestHeaders, canonicalizePrewarmableRscRequestHeaders, createCanonicalRscRequestUrl, createRscRedirectLocation, createRscRequestUrl, hasRscCacheBustingSearchParam, resolveInvalidRscCacheBustingRequest, stripRscCacheBustingSearchParam, stripRscSuffix } from "./app-rsc-cache-busting.js";
|
|
22
31
|
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
32
|
+
import { consumeResponseStageLinkProvenance, copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
|
|
23
33
|
import "./app-page-response.js";
|
|
24
34
|
import { parseNextHttpErrorDigest } from "./next-error-digest.js";
|
|
25
|
-
import {
|
|
35
|
+
import { traceAppPageRender } from "./app-page-tracing.js";
|
|
36
|
+
import { setFrameworkRequestRoute, traceFrameworkRequest } from "./request-tracing.js";
|
|
26
37
|
import { matchPrerenderRouteParamsPayload, readTrustedPrerenderRouteParams, serializePrerenderRouteParamsHeader } from "./prerender-route-params.js";
|
|
27
38
|
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
28
|
-
import { getRenderedConcreteUrlPathsForRoute } from "./pregenerated-concrete-paths.js";
|
|
29
39
|
import { createServerActionNotFoundResponse, getServerActionNotFoundMessage } from "./server-action-not-found.js";
|
|
30
40
|
import { buildPostMwRequestContext } from "./app-post-middleware-context.js";
|
|
31
41
|
import { pickRootParams, setRootParams } from "../shims/root-params.js";
|
|
32
42
|
import { createRouteTreePrefetchResponse, isRouteTreePrefetchRequest } from "./app-route-tree-prefetch.js";
|
|
43
|
+
import { createSharedAppPageCacheIdentity, isStaticCandidateAppPageDispatch, prepareSharedAppPageDispatch, withoutAppPageDispatchQuery } from "./app-worker-stages.js";
|
|
33
44
|
import { flattenErrorCauses } from "../utils/error-cause.js";
|
|
34
|
-
import { applyAppRscConfigHeaders, finalizeAppRscResponse } from "./app-rsc-response-finalizer.js";
|
|
45
|
+
import { applyAppRscConfigHeaders, finalizeAppRscResponse, markAppRscResponseConfigHeadersApplied } from "./app-rsc-response-finalizer.js";
|
|
35
46
|
import { normalizeRscRequest } from "./app-rsc-request-normalization.js";
|
|
47
|
+
import { hasPagesPreviewCookie } from "./pages-response-stage.js";
|
|
36
48
|
import { runWithPrerenderWorkUnit } from "./prerender-work-unit-setup.js";
|
|
49
|
+
import { consumePagesResponseStagePolicyOwner, withoutResponseStageVary } from "./response-stage-policy.js";
|
|
37
50
|
//#region src/server/app-rsc-handler.ts
|
|
38
|
-
const STATIC_METADATA_CONFIG_HEADER_OVERRIDES = /* @__PURE__ */ new Set(["cache-control"]);
|
|
39
51
|
const HAS_CONFIG_HEADERS = process.env.__VINEXT_HAS_CONFIG_HEADERS !== "false";
|
|
40
52
|
const HAS_CONFIG_REDIRECTS = process.env.__VINEXT_HAS_CONFIG_REDIRECTS !== "false";
|
|
41
53
|
const HAS_CONFIG_REWRITES = process.env.__VINEXT_HAS_CONFIG_REWRITES !== "false";
|
|
@@ -66,16 +78,45 @@ function haveSamePageParams(first, second) {
|
|
|
66
78
|
}
|
|
67
79
|
return true;
|
|
68
80
|
}
|
|
81
|
+
function rewriteCachePathname(sourcePathname, resolvedPathname) {
|
|
82
|
+
return `${sourcePathname}?__vinext_rewrite=${encodeURIComponent(resolvedPathname)}`;
|
|
83
|
+
}
|
|
84
|
+
function requestOptsOutOfWorkerResponseStage(request, options, scriptNonce, allowInternalRscDocumentFallback) {
|
|
85
|
+
if (request.method !== "GET" && request.method !== "HEAD") return true;
|
|
86
|
+
if (allowInternalRscDocumentFallback || scriptNonce !== void 0) return true;
|
|
87
|
+
if (isDraftModeRequest(request, options.draftModeSecret) || isDraftModeEnabled()) return true;
|
|
88
|
+
if (isOnDemandRevalidateRequest(request.headers.get("x-prerender-revalidate"))) return true;
|
|
89
|
+
if (request.headers.has("x-vinext-prerender-route-params")) return true;
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
let parsedCacheabilityRequestProjection;
|
|
93
|
+
function readCacheabilityRequestProjection(options) {
|
|
94
|
+
const raw = options.cacheabilityRequestProjection;
|
|
95
|
+
if (!raw || !options.buildId) return null;
|
|
96
|
+
if (parsedCacheabilityRequestProjection?.raw !== raw || parsedCacheabilityRequestProjection.buildId !== options.buildId) parsedCacheabilityRequestProjection = {
|
|
97
|
+
buildId: options.buildId,
|
|
98
|
+
manifest: parseCacheabilityManifest(raw, options.buildId),
|
|
99
|
+
raw
|
|
100
|
+
};
|
|
101
|
+
return parsedCacheabilityRequestProjection.manifest;
|
|
102
|
+
}
|
|
103
|
+
function adapterUsesQueryFreeCacheIdentity() {
|
|
104
|
+
const adapter = getCdnCacheAdapter();
|
|
105
|
+
return adapter.requiresCompletedResponseAdmission === true && adapter.responseStageCacheIdentity === "query-free";
|
|
106
|
+
}
|
|
69
107
|
function hasUrlParserDotSegment(pathname) {
|
|
70
108
|
return pathname.split("/").some((segment) => {
|
|
71
109
|
const decodedDots = segment.replaceAll(/%2e/gi, ".");
|
|
72
110
|
return decodedDots === "." || decodedDots === "..";
|
|
73
111
|
});
|
|
74
112
|
}
|
|
75
|
-
function applyMiddlewareContextToResponse(response, middlewareContext) {
|
|
113
|
+
function applyMiddlewareContextToResponse(response, middlewareContext, appendToPostConfigLink = false) {
|
|
76
114
|
if (!middlewareContext.headers && middlewareContext.status == null) return response;
|
|
77
115
|
const headers = new Headers(response.headers);
|
|
116
|
+
const responseLink = appendToPostConfigLink ? headers.get("link") : null;
|
|
78
117
|
mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
|
|
118
|
+
const middlewareLink = middlewareContext.headers?.get("link");
|
|
119
|
+
if (responseLink && middlewareLink) headers.set("link", `${middlewareLink}, ${responseLink}`);
|
|
79
120
|
return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
|
|
80
121
|
status: middlewareContext.status ?? response.status,
|
|
81
122
|
statusText: response.statusText,
|
|
@@ -105,11 +146,11 @@ function redirectDestinationWithBasePath(destination, basePath, hadBasePath) {
|
|
|
105
146
|
if (!basePath || !hadBasePath || isExternalUrl(destination) || hasBasePath(destination, basePath)) return destination;
|
|
106
147
|
return basePath + destination;
|
|
107
148
|
}
|
|
108
|
-
async function applyRewrite(options, cleanPathname) {
|
|
149
|
+
async function applyRewrite(options, cleanPathname, recordCacheability = true) {
|
|
109
150
|
if (!HAS_CONFIG_REWRITES || !options.rewrites.length) return null;
|
|
110
151
|
const sourcePathname = options.paramsPathname ?? cleanPathname;
|
|
111
152
|
const configMatchers = await import("../config/config-matchers.js");
|
|
112
|
-
const rewritten = configMatchers.matchRewrite(sourcePathname, options.rewrites, options.requestContext, options.basePathState, options.paramsPathname, markConditionalRewriteCacheability);
|
|
153
|
+
const rewritten = configMatchers.matchRewrite(sourcePathname, options.rewrites, options.requestContext, options.basePathState, options.paramsPathname, recordCacheability ? markConditionalRewriteCacheability : void 0);
|
|
113
154
|
if (!rewritten) return null;
|
|
114
155
|
if (isExternalUrl(rewritten)) {
|
|
115
156
|
const validationResponse = await options.validateExternalRewriteRequest();
|
|
@@ -139,7 +180,8 @@ async function applyConfigHeadersToMiddlewareRedirect(response, options) {
|
|
|
139
180
|
configHeaders: options.configHeaders,
|
|
140
181
|
pathname: options.pathname,
|
|
141
182
|
requestContext: options.requestContext,
|
|
142
|
-
basePathState: options.basePathState
|
|
183
|
+
basePathState: options.basePathState,
|
|
184
|
+
recordCacheability: options.recordCacheability
|
|
143
185
|
});
|
|
144
186
|
if (!headers.entries().next().done) {
|
|
145
187
|
mergeMiddlewareResponseHeaders(headers, response.headers);
|
|
@@ -182,7 +224,7 @@ function markUnverifiedInterceptionResponseUncacheable(response) {
|
|
|
182
224
|
}
|
|
183
225
|
return markedResponse;
|
|
184
226
|
}
|
|
185
|
-
async function handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isDataRequest, isMiddlewareDataRequest, pagesDataRequest, dispatchInternalRequest, allowInternalRscDocumentFallback, setInterceptionResponseUncacheable) {
|
|
227
|
+
async function handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isDataRequest, isMiddlewareDataRequest, pagesDataRequest, dispatchInternalRequest, allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode = null, setInterceptionResponseUncacheable = () => {}) {
|
|
186
228
|
const handlerStart = process.env.NODE_ENV !== "production" ? performance.now() : 0;
|
|
187
229
|
if (process.env.NODE_ENV !== "production") {
|
|
188
230
|
const originBlock = options.validateDevRequestOrigin?.(request);
|
|
@@ -195,12 +237,13 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
195
237
|
...options.configRewrites.fallback,
|
|
196
238
|
...options.configHeaders
|
|
197
239
|
].some((rule) => rule.basePath === false);
|
|
198
|
-
const normalized = normalizeRscRequest(request, options.basePath, canHandleOutsideBasePath);
|
|
240
|
+
const normalized = normalizeRscRequest(request, options.basePath, canHandleOutsideBasePath, options.assetPrefix);
|
|
199
241
|
if (normalized instanceof Response) {
|
|
200
242
|
if (request.headers.has("X-Vinext-Interception-Context") || request.headers.has("X-Vinext-Interception-Id")) setInterceptionResponseUncacheable(true);
|
|
201
243
|
return normalized;
|
|
202
244
|
}
|
|
203
245
|
const { url, isRscRequest, interceptionContextHeader, interceptionIdHeader, mountedSlotsHeader, renderMode, clientReuseManifest, hadBasePath } = normalized;
|
|
246
|
+
setFrameworkRequestRoute(void 0, isRscRequest);
|
|
204
247
|
const hasRawInterceptionContext = isRscRequest && request.headers.has("X-Vinext-Interception-Context");
|
|
205
248
|
if (hasRawInterceptionContext) setInterceptionResponseUncacheable(true);
|
|
206
249
|
let interceptionSourcePathname = null;
|
|
@@ -264,7 +307,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
264
307
|
const matchPathname = (p) => normalizeDefaultLocalePathname(p, options.i18nConfig, { hostname: url.hostname });
|
|
265
308
|
const redirectPathname = matchPathname(requestCleanPathname);
|
|
266
309
|
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;
|
|
310
|
+
const redirect = configMatchers ? configMatchers.matchRedirect(redirectPathname, options.configRedirects, preMiddlewareRequestContext, basePathState, dispatchResponseStage ? void 0 : markConditionalRedirectCacheability) : null;
|
|
268
311
|
if (configMatchers && redirect) {
|
|
269
312
|
const destination = configMatchers.sanitizeDestination(redirectDestinationWithBasePath(redirect.destination, options.basePath, hadBasePath));
|
|
270
313
|
const location = isRscRequest && request.headers.get("RSC") === "1" ? await createRscRedirectLocation(destination, request) : configMatchers.preserveRedirectDestinationQuery(destination, url.search);
|
|
@@ -304,13 +347,14 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
304
347
|
request: userlandRequest,
|
|
305
348
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
306
349
|
});
|
|
307
|
-
if (middlewareResult.pathnameEligible) markRouteCacheabilityDynamic(middlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
|
|
350
|
+
if (!dispatchResponseStage && middlewareResult.pathnameEligible) markRouteCacheabilityDynamic(middlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
|
|
308
351
|
if (middlewareResult.kind === "response") {
|
|
309
352
|
if (request.body && !request.body.locked) request.body.cancel().catch(() => {});
|
|
310
353
|
return applyConfigHeadersToMiddlewareRedirect(middlewareResult.response, {
|
|
311
354
|
basePathState,
|
|
312
355
|
configHeaders: options.configHeaders,
|
|
313
356
|
pathname: matchPathname(requestCleanPathname),
|
|
357
|
+
recordCacheability: dispatchResponseStage === void 0,
|
|
314
358
|
requestContext: preMiddlewareRequestContext
|
|
315
359
|
});
|
|
316
360
|
}
|
|
@@ -322,6 +366,158 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
322
366
|
resolvedUrl = cleanPathname + url.search;
|
|
323
367
|
}
|
|
324
368
|
const scriptNonce = getScriptNonceFromHeaderSources(request.headers, middlewareContext.headers);
|
|
369
|
+
const hasMiddlewareCookieOverlay = hasEffectiveRequestCookieChanges(request.headers.get("cookie"));
|
|
370
|
+
const middlewareCookieOverlay = hasMiddlewareCookieOverlay ? getEffectiveRequestCookieHeader() ?? "" : null;
|
|
371
|
+
const draftModeCookie = dispatchResponseStage || options.renderResponseStageLocally ? getDraftModeCookieHeader() : null;
|
|
372
|
+
const responseStageCacheability = (resolvedRouteUrl) => ({
|
|
373
|
+
policyHeaders: null,
|
|
374
|
+
probeMode: responseStageProbeMode,
|
|
375
|
+
resolvedRoutePathname: pathnameForResolvedUrl(resolvedRouteUrl)
|
|
376
|
+
});
|
|
377
|
+
let responseStagePolicyPromise;
|
|
378
|
+
const loadResponseStagePolicy = () => responseStagePolicyPromise ??= options.configHeaders.length ? import("./config-headers.js").then(({ resolveResponseStageCachePolicy }) => withoutResponseStageVary(resolveResponseStageCachePolicy({
|
|
379
|
+
basePathState,
|
|
380
|
+
configHeaders: options.configHeaders,
|
|
381
|
+
pathname: matchPathname(requestCleanPathname),
|
|
382
|
+
requestContext: preMiddlewareRequestContext
|
|
383
|
+
}))) : Promise.resolve(null);
|
|
384
|
+
let canUseSharedWorkerResponseStage = draftModeCookie === null && !hasMiddlewareCookieOverlay && !hasMiddlewareRequestHeaderOverrides(middlewareContext.requestHeaders ?? middlewareContext.headers) && !requestOptsOutOfWorkerResponseStage(request, options, scriptNonce, allowInternalRscDocumentFallback);
|
|
385
|
+
const isOnDemandRevalidate = isOnDemandRevalidateRequest(request.headers.get(PRERENDER_REVALIDATE_HEADER));
|
|
386
|
+
const transportedResponseStage = dispatchResponseStage ? async (stageRequest, props) => {
|
|
387
|
+
const responseStagePolicy = await loadResponseStagePolicy();
|
|
388
|
+
const cache = responseStageProbeMode || isOnDemandRevalidate || (props.kind === "app-page" || props.kind === "app-route-handler") && (props.bypassInterceptionContextCache || props.forceDynamic === true && responseStagePolicy === null) ? "bypass" : canUseSharedWorkerResponseStage ? "shared" : "bypass";
|
|
389
|
+
let dispatchRequest = props.kind === "app-page" ? prepareSharedAppPageDispatch(stageRequest, cache) : stageRequest;
|
|
390
|
+
let canonicalRsc = null;
|
|
391
|
+
if (cache === "shared" && props.kind === "app-page" && props.isRscRequest && props.matchKind === "request" && props.interceptionContext === null && props.interceptionId === null && props.mountedSlotsHeader === null) {
|
|
392
|
+
const headers = new Headers(dispatchRequest.headers);
|
|
393
|
+
if (props.renderMode === "navigation" ? canonicalizePrewarmableRscRequestHeaders(headers) : props.renderMode === "prefetch-loading-shell" && props.canUseCanonicalLoadingShell ? canonicalizeLoadingShellRscRequestHeaders(headers) : false) {
|
|
394
|
+
canonicalRsc = {
|
|
395
|
+
headers,
|
|
396
|
+
navigation: props.renderMode === "navigation"
|
|
397
|
+
};
|
|
398
|
+
dispatchRequest = cloneRequestWithHeaders(dispatchRequest, headers);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
let stageProps = {
|
|
402
|
+
...props,
|
|
403
|
+
cacheability: {
|
|
404
|
+
...props.cacheability,
|
|
405
|
+
policyHeaders: responseStagePolicy
|
|
406
|
+
}
|
|
407
|
+
};
|
|
408
|
+
if (cache === "shared" && responseStagePolicy === null && stageProps.kind === "app-page") {
|
|
409
|
+
const projection = readCacheabilityRequestProjection(options);
|
|
410
|
+
if (projection && isStaticCandidateAppPageDispatch(projection, dispatchRequest, stageProps)) {
|
|
411
|
+
const queryFree = withoutAppPageDispatchQuery(dispatchRequest.url, stageProps);
|
|
412
|
+
dispatchRequest = cloneRequestWithUrl(dispatchRequest, queryFree.url);
|
|
413
|
+
stageProps = queryFree.props;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
if (canonicalRsc) {
|
|
417
|
+
const rscPath = canonicalRsc.navigation ? createCanonicalRscRequestUrl(dispatchRequest.url) : await createRscRequestUrl(dispatchRequest.url, canonicalRsc.headers);
|
|
418
|
+
dispatchRequest = cloneRequestWithUrl(dispatchRequest, new URL(rscPath, dispatchRequest.url).toString());
|
|
419
|
+
}
|
|
420
|
+
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;
|
|
421
|
+
let response = await dispatchResponseStage(dispatchRequest, stageProps, cacheIdentity ? {
|
|
422
|
+
cache,
|
|
423
|
+
cacheIdentity
|
|
424
|
+
} : { cache });
|
|
425
|
+
if (stageRequest.method.toUpperCase() === "HEAD" && response.body) {
|
|
426
|
+
await response.body.cancel();
|
|
427
|
+
response = new Response(null, {
|
|
428
|
+
headers: response.headers,
|
|
429
|
+
status: response.status,
|
|
430
|
+
statusText: response.statusText
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
if (props.kind !== "app-page" || !props.isRscRequest) return response;
|
|
434
|
+
const headers = new Headers(response.headers);
|
|
435
|
+
if (Object.keys(props.params).length > 0) headers.set(VINEXT_PARAMS_HEADER, encodeURIComponent(JSON.stringify(props.params)));
|
|
436
|
+
else headers.delete(VINEXT_PARAMS_HEADER);
|
|
437
|
+
headers.set(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER, encodeURIComponent(props.resolvedUrl));
|
|
438
|
+
return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
|
|
439
|
+
headers,
|
|
440
|
+
status: response.status,
|
|
441
|
+
statusText: response.statusText
|
|
442
|
+
}));
|
|
443
|
+
} : void 0;
|
|
444
|
+
const responseStageRequest = (stageRequest = request) => {
|
|
445
|
+
const activeHeaders = getHeadersContext()?.headers;
|
|
446
|
+
if (!activeHeaders) return stageRequest;
|
|
447
|
+
return cloneRequestWithHeaders(stageRequest, new Headers(activeHeaders));
|
|
448
|
+
};
|
|
449
|
+
const renderMetadataRouteIfMatched = async () => {
|
|
450
|
+
if (!filesystemRouteEligible || (options.isMetadataRoute ? !options.isMetadataRoute(cleanPathname) : !options.handleMetadataRouteRequest)) return null;
|
|
451
|
+
const metadataRoutePathname = cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname;
|
|
452
|
+
const metadataResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
|
|
453
|
+
if (metadataResponseStage) {
|
|
454
|
+
const response = await metadataResponseStage(responseStageRequest(), {
|
|
455
|
+
kind: "app-metadata",
|
|
456
|
+
buildId: options.buildId,
|
|
457
|
+
cacheability: responseStageCacheability(resolvedUrl),
|
|
458
|
+
canonicalPathname,
|
|
459
|
+
cleanPathname,
|
|
460
|
+
draftModeCookie,
|
|
461
|
+
isRscRequest,
|
|
462
|
+
middlewareCookieOverlay,
|
|
463
|
+
mountedSlotsHeader,
|
|
464
|
+
protocolVersion: 10,
|
|
465
|
+
requestOrigin: url.origin,
|
|
466
|
+
renderMode,
|
|
467
|
+
resolvedUrl,
|
|
468
|
+
routePathname: metadataRoutePathname,
|
|
469
|
+
scriptNonce: scriptNonce ?? null
|
|
470
|
+
});
|
|
471
|
+
if (response.headers.get("x-vinext-app-metadata-stage-no-match") === "1") {
|
|
472
|
+
await response.body?.cancel();
|
|
473
|
+
return null;
|
|
474
|
+
}
|
|
475
|
+
return response;
|
|
476
|
+
}
|
|
477
|
+
return options.handleMetadataRouteRequest?.(cleanPathname, metadataRoutePathname) ?? null;
|
|
478
|
+
};
|
|
479
|
+
const applyConfigHeadersToResponseStage = async (response, preserveExistingPolicy = false) => {
|
|
480
|
+
const headers = new Headers(response.headers);
|
|
481
|
+
copyLinkHeaderProvenance(response.headers, headers);
|
|
482
|
+
await applyAppRscConfigHeaders(headers, request, {
|
|
483
|
+
basePath: options.basePath,
|
|
484
|
+
configHeaders: options.configHeaders,
|
|
485
|
+
i18nConfig: options.i18nConfig,
|
|
486
|
+
middlewareHeaders: middlewareContext.headers,
|
|
487
|
+
overwriteExisting: preserveExistingPolicy ? /* @__PURE__ */ new Set() : isCdnResponsePolicyHeader,
|
|
488
|
+
recordCacheability: dispatchResponseStage === void 0,
|
|
489
|
+
requestContext: preMiddlewareRequestContext
|
|
490
|
+
});
|
|
491
|
+
return preserveFullyBufferedBodyMetadata(response, new Response(response.body, {
|
|
492
|
+
headers,
|
|
493
|
+
status: response.status,
|
|
494
|
+
statusText: response.statusText
|
|
495
|
+
}));
|
|
496
|
+
};
|
|
497
|
+
let preHandlerResponseHeadersPromise;
|
|
498
|
+
const loadPreHandlerResponseHeaders = () => preHandlerResponseHeadersPromise ??= (async () => {
|
|
499
|
+
const headers = new Headers();
|
|
500
|
+
await applyAppRscConfigHeaders(headers, request, {
|
|
501
|
+
basePath: options.basePath,
|
|
502
|
+
configHeaders: options.configHeaders,
|
|
503
|
+
i18nConfig: options.i18nConfig,
|
|
504
|
+
overwriteExisting: isCdnResponsePolicyHeader,
|
|
505
|
+
recordCacheability: false,
|
|
506
|
+
requestContext: preMiddlewareRequestContext
|
|
507
|
+
});
|
|
508
|
+
mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
|
|
509
|
+
return headers;
|
|
510
|
+
})();
|
|
511
|
+
let outerResponsePolicyPromise;
|
|
512
|
+
const loadOuterResponsePolicy = () => outerResponsePolicyPromise ??= Promise.all([loadPreHandlerResponseHeaders(), loadResponseStagePolicy()]).then(([headers, responseStagePolicy]) => captureCdnResponsePolicyOverrides(headers, new Headers(responseStagePolicy ?? [])));
|
|
513
|
+
const composeResponseStageResponse = async (response) => {
|
|
514
|
+
const transportedLink = consumeResponseStageLinkProvenance(response);
|
|
515
|
+
response = transportedLink.response;
|
|
516
|
+
response = await applyConfigHeadersToResponseStage(response, Boolean(dispatchResponseStage || options.renderResponseStageLocally));
|
|
517
|
+
response = applyMiddlewareContextToResponse(response, middlewareContext, transportedLink.appendToPostConfigLink);
|
|
518
|
+
reconcileCdnResponseHeadersAfterOuterPolicy(response.headers, await loadOuterResponsePolicy());
|
|
519
|
+
return markAppRscResponseConfigHeadersApplied(response);
|
|
520
|
+
};
|
|
325
521
|
const postMiddlewareRequestContext = buildPostMwRequestContext(userlandRequest);
|
|
326
522
|
filesystemRouteEligible ||= didMiddlewareRewrite;
|
|
327
523
|
for (const rewrite of options.configRewrites.beforeFiles) {
|
|
@@ -333,7 +529,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
333
529
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
334
530
|
rewrites: [rewrite],
|
|
335
531
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
336
|
-
}, matchPathname(cleanPathname));
|
|
532
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
337
533
|
if (beforeFilesRewrite instanceof Response) return beforeFilesRewrite;
|
|
338
534
|
if (beforeFilesRewrite) {
|
|
339
535
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, beforeFilesRewrite);
|
|
@@ -360,7 +556,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
360
556
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
361
557
|
rewrites: [rewrite],
|
|
362
558
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
363
|
-
}, matchPathname(cleanPathname));
|
|
559
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
364
560
|
if (rewritten instanceof Response) return rewritten;
|
|
365
561
|
if (!rewritten) continue;
|
|
366
562
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
@@ -379,7 +575,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
379
575
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
380
576
|
rewrites: [rewrite],
|
|
381
577
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
382
|
-
}, matchPathname(cleanPathname));
|
|
578
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
383
579
|
if (rewritten instanceof Response) return rewritten;
|
|
384
580
|
if (!rewritten) continue;
|
|
385
581
|
resolvedUrl = mergeRewriteQuery(resolvedUrl, rewritten);
|
|
@@ -398,20 +594,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
398
594
|
if (!imageRedirect) return new Response("Invalid image optimization parameters", { status: 400 });
|
|
399
595
|
return Response.redirect(new URL(imageRedirect, url.origin).href, 302);
|
|
400
596
|
}
|
|
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
|
-
}
|
|
597
|
+
const metadataRouteResponse = await renderMetadataRouteIfMatched();
|
|
598
|
+
if (metadataRouteResponse) return composeResponseStageResponse(metadataRouteResponse);
|
|
415
599
|
const publicFileResponse = filesystemRouteEligible ? resolvePublicFileRoute({
|
|
416
600
|
cleanPathname,
|
|
417
601
|
middlewareContext,
|
|
@@ -488,7 +672,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
488
672
|
if (sourceMiddlewareRequest.body && !sourceMiddlewareRequest.bodyUsed && !sourceMiddlewareRequest.body.locked) sourceMiddlewareRequest.body.cancel().catch(() => {});
|
|
489
673
|
if (sourceRequest !== userlandRequest && sourceRequest.body && !sourceRequest.bodyUsed && !sourceRequest.body.locked) sourceRequest.body.cancel().catch(() => {});
|
|
490
674
|
}
|
|
491
|
-
if (sourceMiddlewareResult.pathnameEligible) markRouteCacheabilityDynamic(sourceMiddlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
|
|
675
|
+
if (!dispatchResponseStage && sourceMiddlewareResult.pathnameEligible) markRouteCacheabilityDynamic(sourceMiddlewareResult.matched ? "middleware matched this request" : "middleware is eligible for this pathname");
|
|
492
676
|
if (sourceMiddlewareResult.kind === "response") {
|
|
493
677
|
options.clearRequestContext();
|
|
494
678
|
return sourceMiddlewareResult.response;
|
|
@@ -509,7 +693,10 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
509
693
|
targetHeadersContext.headers.set(name, value);
|
|
510
694
|
addedSourceHeader = true;
|
|
511
695
|
}
|
|
512
|
-
if (addedSourceHeader)
|
|
696
|
+
if (addedSourceHeader) {
|
|
697
|
+
targetHeadersContext.readonlyHeaders = void 0;
|
|
698
|
+
canUseSharedWorkerResponseStage = false;
|
|
699
|
+
}
|
|
513
700
|
if (sourceMiddlewareResult.rewritten) {
|
|
514
701
|
const rewrittenSourceMatch = options.matchRoute(sourceMiddlewareResult.cleanPathname);
|
|
515
702
|
if (sourceMiddlewareResult.search !== sourceUrl.search || rewrittenSourceMatch?.route !== interceptionSourceMatch.route || !haveSamePageParams(rewrittenSourceMatch.params, interceptionSourceMatch.params)) {
|
|
@@ -566,6 +753,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
566
753
|
basePath: options.basePath,
|
|
567
754
|
configHeaders: options.configHeaders,
|
|
568
755
|
i18nConfig: options.i18nConfig,
|
|
756
|
+
recordCacheability: dispatchResponseStage === void 0,
|
|
569
757
|
requestContext: preMiddlewareRequestContext
|
|
570
758
|
});
|
|
571
759
|
}
|
|
@@ -590,9 +778,54 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
590
778
|
let match = preActionMatch;
|
|
591
779
|
const renderPagesForMatchKind = async (matchKind) => {
|
|
592
780
|
if (!filesystemRouteEligible) return null;
|
|
781
|
+
let sharedOuterPolicyNeedsReconciliation = false;
|
|
782
|
+
const dispatchPagesResponseStage = dispatchResponseStage ? async (stageRequest, resourceKind, dataKind, hasRequestAwareDocument) => {
|
|
783
|
+
const pagesOnDemandRevalidate = resourceKind === "page" && isOnDemandRevalidateRequest(stageRequest.headers.get("x-prerender-revalidate"));
|
|
784
|
+
const cache = responseStageProbeMode || pagesOnDemandRevalidate || hasPagesPreviewCookie(stageRequest.headers.get("cookie")) || resourceKind === "page" && dataKind === "static" && hasRequestAwareDocument ? "bypass" : canUseSharedWorkerResponseStage ? "shared" : "bypass";
|
|
785
|
+
let response = await dispatchResponseStage(responseStageRequest(stageRequest), {
|
|
786
|
+
kind: "hybrid-pages",
|
|
787
|
+
buildId: options.buildId,
|
|
788
|
+
cacheability: {
|
|
789
|
+
...responseStageCacheability(resolvedUrl),
|
|
790
|
+
policyHeaders: await loadResponseStagePolicy(),
|
|
791
|
+
...isDataRequest ? { representation: "pages-data" } : {}
|
|
792
|
+
},
|
|
793
|
+
allowRscDocumentFallback: didMiddlewareRewritePathname || allowInternalRscDocumentFallback,
|
|
794
|
+
appRouteMatch: match ? {
|
|
795
|
+
isDynamic: match.route.isDynamic,
|
|
796
|
+
pattern: match.route.pattern
|
|
797
|
+
} : null,
|
|
798
|
+
canonicalPathname,
|
|
799
|
+
cleanPathname,
|
|
800
|
+
draftModeCookie,
|
|
801
|
+
isDataRequest,
|
|
802
|
+
isRscRequest,
|
|
803
|
+
matchKind,
|
|
804
|
+
middlewareCookieOverlay,
|
|
805
|
+
preHandlerHeaders: cache === "shared" && resourceKind === "page" && dataKind === "static" ? null : [...await loadPreHandlerResponseHeaders()],
|
|
806
|
+
protocolVersion: 10,
|
|
807
|
+
requestOrigin: url.origin,
|
|
808
|
+
resourceKind,
|
|
809
|
+
requestUrl: request.url,
|
|
810
|
+
resolvedUrl,
|
|
811
|
+
scriptNonce: scriptNonce ?? null
|
|
812
|
+
}, { cache });
|
|
813
|
+
const policyOwner = resourceKind === "page" ? consumePagesResponseStagePolicyOwner(response) : {
|
|
814
|
+
owner: null,
|
|
815
|
+
response
|
|
816
|
+
};
|
|
817
|
+
response = policyOwner.response;
|
|
818
|
+
const requestTimePolicyOwner = policyOwner.owner === "request-time" || policyOwner.owner === null && dataKind === "server";
|
|
819
|
+
sharedOuterPolicyNeedsReconciliation = cache === "shared" && resourceKind === "page" && !requestTimePolicyOwner;
|
|
820
|
+
const responseStageHasContentLength = response.headers.has("Content-Length");
|
|
821
|
+
response = await applyConfigHeadersToResponseStage(response, resourceKind === "api" || requestTimePolicyOwner);
|
|
822
|
+
if (!responseStageHasContentLength) response.headers.delete("Content-Length");
|
|
823
|
+
return response;
|
|
824
|
+
} : void 0;
|
|
593
825
|
const response = !isInterceptionMatch && (match === null || match.route.isDynamic) ? await options.renderPagesFallback?.({
|
|
594
826
|
appRouteMatch: match ?? null,
|
|
595
827
|
allowRscDocumentFallback: didMiddlewareRewritePathname || allowInternalRscDocumentFallback,
|
|
828
|
+
dispatchPagesResponseStage,
|
|
596
829
|
isDataRequest,
|
|
597
830
|
isRscRequest,
|
|
598
831
|
matchKind,
|
|
@@ -603,14 +836,20 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
603
836
|
url
|
|
604
837
|
}) ?? null : null;
|
|
605
838
|
if (response) preserveRouteCacheabilityResponsePolicy();
|
|
606
|
-
if (!response
|
|
839
|
+
if (!response) return null;
|
|
840
|
+
if (sharedOuterPolicyNeedsReconciliation) reconcileCdnResponseHeadersAfterOuterPolicy(response.headers, await loadOuterResponsePolicy());
|
|
841
|
+
const isRewritten = resolvedUrl !== originalResolvedUrl;
|
|
842
|
+
const isPrerender = typeof process !== "undefined" && process.env?.VINEXT_PRERENDER === "1";
|
|
843
|
+
if ((!pagesDataRequest || !isRewritten) && !isPrerender) return dispatchPagesResponseStage ? markAppRscResponseConfigHeadersApplied(response) : response;
|
|
607
844
|
const headers = new Headers(response.headers);
|
|
608
|
-
headers.set("x-nextjs-rewrite", resolvedUrl);
|
|
609
|
-
|
|
845
|
+
if (pagesDataRequest && isRewritten) headers.set("x-nextjs-rewrite", resolvedUrl);
|
|
846
|
+
if (isPrerender) headers.set(VINEXT_PRERENDER_REWRITTEN_HEADER, isRewritten ? "1" : "0");
|
|
847
|
+
const markedResponse = new Response(response.body, {
|
|
610
848
|
headers,
|
|
611
849
|
status: response.status,
|
|
612
850
|
statusText: response.statusText
|
|
613
851
|
});
|
|
852
|
+
return dispatchPagesResponseStage ? markAppRscResponseConfigHeadersApplied(markedResponse) : markedResponse;
|
|
614
853
|
};
|
|
615
854
|
const staticPagesFallbackResponse = await renderPagesForMatchKind("static");
|
|
616
855
|
if (staticPagesFallbackResponse) {
|
|
@@ -626,7 +865,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
626
865
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
627
866
|
rewrites: [rewrite],
|
|
628
867
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
629
|
-
}, matchPathname(cleanPathname));
|
|
868
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
630
869
|
if (afterFilesRewrite instanceof Response) {
|
|
631
870
|
invalidateInterceptionCacheProof();
|
|
632
871
|
return afterFilesRewrite;
|
|
@@ -639,6 +878,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
639
878
|
filesystemRouteEligible = true;
|
|
640
879
|
const claimedRscCacheBustingRedirect = await validateClaimedOutsideBasePathRsc();
|
|
641
880
|
if (claimedRscCacheBustingRedirect) return claimedRscCacheBustingRedirect;
|
|
881
|
+
const rewrittenMetadataResponse = await renderMetadataRouteIfMatched();
|
|
882
|
+
if (rewrittenMetadataResponse) return composeResponseStageResponse(rewrittenMetadataResponse);
|
|
642
883
|
match = matchCleanPathname();
|
|
643
884
|
const rewrittenStaticPagesResponse = await renderPagesForMatchKind("static");
|
|
644
885
|
if (rewrittenStaticPagesResponse) {
|
|
@@ -666,7 +907,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
666
907
|
paramsPathname: matchPathname(cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname),
|
|
667
908
|
rewrites: [rewrite],
|
|
668
909
|
validateExternalRewriteRequest: () => validateClaimedOutsideBasePathRsc(true)
|
|
669
|
-
}, matchPathname(cleanPathname));
|
|
910
|
+
}, matchPathname(cleanPathname), dispatchResponseStage === void 0);
|
|
670
911
|
if (fallbackRewrite instanceof Response) {
|
|
671
912
|
invalidateInterceptionCacheProof();
|
|
672
913
|
return fallbackRewrite;
|
|
@@ -679,6 +920,8 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
679
920
|
filesystemRouteEligible = true;
|
|
680
921
|
const claimedRscCacheBustingRedirect = await validateClaimedOutsideBasePathRsc();
|
|
681
922
|
if (claimedRscCacheBustingRedirect) return claimedRscCacheBustingRedirect;
|
|
923
|
+
const rewrittenMetadataResponse = await renderMetadataRouteIfMatched();
|
|
924
|
+
if (rewrittenMetadataResponse) return composeResponseStageResponse(rewrittenMetadataResponse);
|
|
682
925
|
match = matchCleanPathname();
|
|
683
926
|
const rewrittenStaticPagesResponse = await renderPagesForMatchKind("static");
|
|
684
927
|
if (rewrittenStaticPagesResponse) {
|
|
@@ -704,6 +947,13 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
704
947
|
bypassInterceptionContextCache = !hasVerifiedFinalInterceptionSource;
|
|
705
948
|
setInterceptionResponseUncacheable(bypassInterceptionContextCache);
|
|
706
949
|
}
|
|
950
|
+
if ((!filesystemRouteEligible || !match) && isNextStaticPath(cleanPathname, "", assetPrefixPathname(options.assetPrefix ?? ""))) {
|
|
951
|
+
options.clearRequestContext();
|
|
952
|
+
const headers = new Headers();
|
|
953
|
+
mergeMiddlewareResponseHeaders(headers, middlewareContext.headers);
|
|
954
|
+
applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
|
|
955
|
+
return notFoundStaticAssetResponse(headers);
|
|
956
|
+
}
|
|
707
957
|
if (!filesystemRouteEligible) {
|
|
708
958
|
options.clearRequestContext();
|
|
709
959
|
const headers = new Headers();
|
|
@@ -730,13 +980,31 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
730
980
|
options.clearRequestContext();
|
|
731
981
|
return new Response("", { status: 404 });
|
|
732
982
|
}
|
|
733
|
-
|
|
983
|
+
setFrameworkRequestRoute("/404", isRscRequest);
|
|
984
|
+
const notFoundResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
|
|
985
|
+
if (notFoundResponseStage) return composeResponseStageResponse(await notFoundResponseStage(responseStageRequest(), {
|
|
986
|
+
kind: "app-not-found",
|
|
987
|
+
buildId: options.buildId,
|
|
988
|
+
cacheability: responseStageCacheability(resolvedUrl),
|
|
989
|
+
canonicalPathname,
|
|
990
|
+
cleanPathname,
|
|
991
|
+
draftModeCookie,
|
|
992
|
+
isRscRequest,
|
|
993
|
+
middlewareCookieOverlay,
|
|
994
|
+
mountedSlotsHeader,
|
|
995
|
+
protocolVersion: 10,
|
|
996
|
+
requestOrigin: url.origin,
|
|
997
|
+
renderMode,
|
|
998
|
+
resolvedUrl,
|
|
999
|
+
scriptNonce: scriptNonce ?? null
|
|
1000
|
+
}));
|
|
1001
|
+
const renderedNotFoundResponse = await traceAppPageRender("/404", "render", () => options.renderNotFound({
|
|
734
1002
|
isRscRequest,
|
|
735
1003
|
middlewareContext,
|
|
736
1004
|
request,
|
|
737
1005
|
route: null,
|
|
738
1006
|
scriptNonce
|
|
739
|
-
});
|
|
1007
|
+
}));
|
|
740
1008
|
if (renderedNotFoundResponse) return renderedNotFoundResponse;
|
|
741
1009
|
options.clearRequestContext();
|
|
742
1010
|
const headers = new Headers();
|
|
@@ -744,7 +1012,18 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
744
1012
|
return notFoundResponse({ headers });
|
|
745
1013
|
}
|
|
746
1014
|
const { route, params } = match;
|
|
747
|
-
|
|
1015
|
+
const requestPathnameDiffersFromCachePath = requestCleanPathname !== cleanPathname;
|
|
1016
|
+
const rawRequestPathnameIsObservable = isInterceptionMatch || route.routeHandler != null || typeof route.__loadRouteHandler === "function";
|
|
1017
|
+
if ((!isInterceptionMatch || requestPathnameDiffersFromCachePath) && options.matchRequestRoute) {
|
|
1018
|
+
const cachePathMatch = options.matchRoute(cleanPathname);
|
|
1019
|
+
if (requestPathnameDiffersFromCachePath && rawRequestPathnameIsObservable || !cachePathMatch || cachePathMatch.route.pattern !== route.pattern || !haveSamePageParams(cachePathMatch.params, params)) {
|
|
1020
|
+
bypassInterceptionContextCache = true;
|
|
1021
|
+
setInterceptionResponseUncacheable(true);
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1024
|
+
const cachePathname = cleanPathnameIsRequestPathname ? cleanPathname : rewriteCachePathname(canonicalPathname, cleanPathname);
|
|
1025
|
+
setFrameworkRequestRoute(patternToNextFormat(route.pattern), isRscRequest);
|
|
1026
|
+
if (options.ensureRouteLoaded) await traceFindPageComponents(route.pattern, () => options.ensureRouteLoaded(route));
|
|
748
1027
|
const resolvedSearchParams = getResolvedSearchParams();
|
|
749
1028
|
if (isRouteTreePrefetchRequest(request) && !route.routeHandler) {
|
|
750
1029
|
const response = await createRouteTreePrefetchResponse(route, {
|
|
@@ -754,10 +1033,14 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
754
1033
|
options.clearRequestContext();
|
|
755
1034
|
return applyMiddlewareContextToResponse(response, middlewareContext);
|
|
756
1035
|
}
|
|
757
|
-
const
|
|
1036
|
+
const prerenderRouteParamsPayload = readTrustedPrerenderRouteParams(request);
|
|
1037
|
+
const prerenderRouteParamsMatch = matchPrerenderRouteParamsPayload(prerenderRouteParamsPayload, route.pattern, params);
|
|
758
1038
|
const prerenderRouteParams = prerenderRouteParamsMatch?.params ?? null;
|
|
759
1039
|
const isPrerenderFallbackShell = prerenderRouteParamsMatch?.kind === "fallback-shell";
|
|
760
1040
|
const renderParams = prerenderRouteParams ?? params;
|
|
1041
|
+
const responseStageMatchKind = isInterceptionMatch ? "interception" : cleanPathnameIsRequestPathname && options.matchRequestRoute ? "request" : "resolved";
|
|
1042
|
+
const responseStageRoutePathname = isInterceptionMatch ? preActionRoutePathname : cleanPathnameIsRequestPathname ? requestCleanPathname || "/" : cleanPathname || "/";
|
|
1043
|
+
const matchedResponseStage = transportedResponseStage ?? options.renderResponseStageLocally;
|
|
761
1044
|
let runtimeFallbackShells = [];
|
|
762
1045
|
if (options.createPprFallbackShells && request.method === "GET" && !isRscRequest && !isPrerenderFallbackShell && route.params) runtimeFallbackShells = options.createPprFallbackShells({
|
|
763
1046
|
params: route.params,
|
|
@@ -772,13 +1055,42 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
772
1055
|
const rootParams = pickRootParams(renderParams, route.rootParamNames);
|
|
773
1056
|
setRootParams(rootParams);
|
|
774
1057
|
if (route.routeHandler) {
|
|
775
|
-
setCurrentFetchSoftTags(buildPageCacheTags(cleanPathname, [], [...route.routeSegments], "route"));
|
|
776
1058
|
const routeHandlerRequest = isEdgeRouteHandler(route.routeHandler) ? userlandRequest : normalizedUserlandRequest;
|
|
777
1059
|
const routeHandlerUrl = new URL(routeHandlerRequest.url);
|
|
778
1060
|
const internalRscValues = isEdgeRouteHandler(route.routeHandler) ? [] : routeHandlerUrl.searchParams.getAll(VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM);
|
|
779
1061
|
routeHandlerUrl.search = resolvedSearchParams.toString();
|
|
780
1062
|
for (const internalRscValue of internalRscValues) routeHandlerUrl.searchParams.append(VINEXT_RSC_CACHE_BUSTING_SEARCH_PARAM, internalRscValue);
|
|
1063
|
+
if (matchedResponseStage) return composeResponseStageResponse(await matchedResponseStage(responseStageRequest(), {
|
|
1064
|
+
kind: "app-route-handler",
|
|
1065
|
+
buildId: options.buildId,
|
|
1066
|
+
cacheability: responseStageCacheability(resolvedUrl),
|
|
1067
|
+
bypassInterceptionContextCache,
|
|
1068
|
+
cachePathname,
|
|
1069
|
+
canUseCanonicalLoadingShell: route.canUseCanonicalLoadingShell === true,
|
|
1070
|
+
canonicalPathname,
|
|
1071
|
+
cleanPathname,
|
|
1072
|
+
draftModeCookie,
|
|
1073
|
+
forceDynamic: route.forceDynamic === true,
|
|
1074
|
+
interceptionContext: interceptionContextHeader,
|
|
1075
|
+
interceptionId: interceptionIdHeader,
|
|
1076
|
+
isRscRequest,
|
|
1077
|
+
matchKind: responseStageMatchKind,
|
|
1078
|
+
middlewareCookieOverlay,
|
|
1079
|
+
mountedSlotsHeader,
|
|
1080
|
+
params,
|
|
1081
|
+
protocolVersion: 10,
|
|
1082
|
+
requestOrigin: url.origin,
|
|
1083
|
+
renderMode,
|
|
1084
|
+
resolvedUrl,
|
|
1085
|
+
routePattern: route.pattern,
|
|
1086
|
+
routePathname: responseStageRoutePathname,
|
|
1087
|
+
scriptNonce: scriptNonce ?? null
|
|
1088
|
+
}));
|
|
1089
|
+
const { setCurrentFetchSoftTags } = await import("../shims/fetch-cache.js");
|
|
1090
|
+
setCurrentFetchSoftTags(buildPageCacheTags(cleanPathname, [], [...route.routeSegments], "route"));
|
|
781
1091
|
return options.dispatchMatchedRouteHandler({
|
|
1092
|
+
bypassInterceptionContextCache,
|
|
1093
|
+
cachePathname,
|
|
782
1094
|
cleanPathname,
|
|
783
1095
|
middlewareContext,
|
|
784
1096
|
params: route.isDynamic ? renderParams : null,
|
|
@@ -787,8 +1099,34 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
787
1099
|
searchParams: resolvedSearchParams
|
|
788
1100
|
});
|
|
789
1101
|
}
|
|
790
|
-
const pageResponse = await
|
|
1102
|
+
const pageResponse = matchedResponseStage ? await matchedResponseStage(responseStageRequest(), {
|
|
1103
|
+
kind: "app-page",
|
|
1104
|
+
buildId: options.buildId,
|
|
1105
|
+
cacheability: responseStageCacheability(resolvedUrl),
|
|
1106
|
+
bypassInterceptionContextCache,
|
|
1107
|
+
cachePathname,
|
|
1108
|
+
canUseCanonicalLoadingShell: route.canUseCanonicalLoadingShell === true,
|
|
1109
|
+
canonicalPathname,
|
|
1110
|
+
cleanPathname,
|
|
1111
|
+
draftModeCookie,
|
|
1112
|
+
forceDynamic: route.forceDynamic === true,
|
|
1113
|
+
interceptionContext: isRscRequest ? interceptionContextHeader : null,
|
|
1114
|
+
interceptionId: interceptionIdHeader,
|
|
1115
|
+
isRscRequest,
|
|
1116
|
+
matchKind: responseStageMatchKind,
|
|
1117
|
+
middlewareCookieOverlay,
|
|
1118
|
+
mountedSlotsHeader,
|
|
1119
|
+
params,
|
|
1120
|
+
protocolVersion: 10,
|
|
1121
|
+
requestOrigin: url.origin,
|
|
1122
|
+
renderMode,
|
|
1123
|
+
resolvedUrl,
|
|
1124
|
+
routePattern: route.pattern,
|
|
1125
|
+
routePathname: responseStageRoutePathname,
|
|
1126
|
+
scriptNonce: scriptNonce ?? null
|
|
1127
|
+
}).then(composeResponseStageResponse) : await options.dispatchMatchedPage({
|
|
791
1128
|
bypassInterceptionContextCache,
|
|
1129
|
+
cachePathname,
|
|
792
1130
|
clientReuseManifest,
|
|
793
1131
|
cleanPathname,
|
|
794
1132
|
displayPathname: canonicalPathname,
|
|
@@ -796,7 +1134,7 @@ async function handleAppRscRequest(options, request, preMiddlewareRequestContext
|
|
|
796
1134
|
actionError: normalizedProgressiveActionError,
|
|
797
1135
|
actionFailed,
|
|
798
1136
|
handlerStart,
|
|
799
|
-
interceptionContext: interceptionContextHeader,
|
|
1137
|
+
interceptionContext: isRscRequest ? interceptionContextHeader : null,
|
|
800
1138
|
interceptionId: interceptionIdHeader,
|
|
801
1139
|
interceptionPathname: cleanPathnameIsRequestPathname ? requestCleanPathname : cleanPathname,
|
|
802
1140
|
isProgressiveActionRender,
|
|
@@ -855,10 +1193,9 @@ function applyProgressiveActionSideEffects(response, sideEffects) {
|
|
|
855
1193
|
});
|
|
856
1194
|
}
|
|
857
1195
|
}
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
await options.ensureInstrumentation?.();
|
|
1196
|
+
/** Build the request-only handler without retaining the response renderer graph. */
|
|
1197
|
+
function createAppRscRequestHandler(options) {
|
|
1198
|
+
const handleAppRscRequestLifecycle = async (rawRequest, ctx, allowInternalRscDocumentFallback = false, dispatchResponseStage, responseStageProbeMode = null, transportedPrerenderState) => {
|
|
862
1199
|
const mwCtx = rawRequest.headers.get(VINEXT_MW_CTX_HEADER);
|
|
863
1200
|
const pagesDataUrl = new URL(rawRequest.url);
|
|
864
1201
|
const pagesDataInScope = !options.basePath || hasBasePath(pagesDataUrl.pathname, options.basePath);
|
|
@@ -868,8 +1205,12 @@ function createAppRscHandler(options) {
|
|
|
868
1205
|
if (pagesDataNormalization?.notFoundResponse) return pagesDataNormalization.notFoundResponse;
|
|
869
1206
|
const isPagesDataRequest = pagesDataNormalization?.isDataReq === true;
|
|
870
1207
|
const executionContext = isExecutionContextLike(ctx) ? ctx : getRequestExecutionContext() ?? null;
|
|
871
|
-
const
|
|
872
|
-
|
|
1208
|
+
const trustedPrerenderState = transportedPrerenderState !== void 0 ? transportedPrerenderState : process.env.VINEXT_PRERENDER === "1" && rawRequest.headers.get("x-vinext-prerender-secret") !== null ? {
|
|
1209
|
+
routeParams: readTrustedPrerenderRouteParams(rawRequest),
|
|
1210
|
+
speculative: rawRequest.headers.get(VINEXT_PRERENDER_SPECULATIVE_HEADER) === "1"
|
|
1211
|
+
} : null;
|
|
1212
|
+
const prerenderRouteParamsPayload = trustedPrerenderState?.routeParams ?? null;
|
|
1213
|
+
const isTrustedSpeculativePrerender = trustedPrerenderState?.speculative === true;
|
|
873
1214
|
const filteredHeaders = executionContext?.isInternalPagesRevalidation ? new Headers(rawRequest.headers) : filterInternalHeaders(rawRequest.headers);
|
|
874
1215
|
filteredHeaders.delete(VINEXT_REVALIDATE_HOST_HEADER);
|
|
875
1216
|
if (isForwardedActionContext(ctx)) filteredHeaders.set("x-action-forwarded", "1");
|
|
@@ -885,14 +1226,18 @@ function createAppRscHandler(options) {
|
|
|
885
1226
|
}
|
|
886
1227
|
const request = cloneRequestWithHeaders(appRequest, filteredHeaders);
|
|
887
1228
|
const pagesDataRequest = pagesDataNormalization?.isDataReq ? cloneRequestWithHeaders(pagesDataCandidate, filteredHeaders) : null;
|
|
1229
|
+
const headersContext = headersContextFromRequest(request, { draftModeSecret: options.draftModeSecret });
|
|
888
1230
|
const requestContext = createRequestContext({
|
|
889
|
-
headersContext
|
|
1231
|
+
headersContext,
|
|
890
1232
|
executionContext,
|
|
891
1233
|
unstableCacheRevalidation: "background"
|
|
892
1234
|
});
|
|
893
1235
|
let interceptionResponseUncacheable = false;
|
|
894
1236
|
const responsePromise = runWithRequestContext(requestContext, () => runWithPrerenderWorkUnit(async () => {
|
|
895
|
-
|
|
1237
|
+
if (!dispatchResponseStage) {
|
|
1238
|
+
const { ensureFetchPatch } = await import("../shims/fetch-cache.js");
|
|
1239
|
+
ensureFetchPatch();
|
|
1240
|
+
}
|
|
896
1241
|
const preMiddlewareRequestContext = requestContextFromRequest(request);
|
|
897
1242
|
const middlewareContext = {
|
|
898
1243
|
headers: null,
|
|
@@ -901,7 +1246,7 @@ function createAppRscHandler(options) {
|
|
|
901
1246
|
};
|
|
902
1247
|
let response;
|
|
903
1248
|
try {
|
|
904
|
-
response = await handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isPagesDataRequest, isPagesDataRequest, pagesDataRequest, (internalRequest) => appRscHandler(internalRequest, ctx, true), allowInternalRscDocumentFallback, (uncacheable) => {
|
|
1249
|
+
response = await handleAppRscRequest(options, request, preMiddlewareRequestContext, middlewareContext, isPagesDataRequest, isPagesDataRequest, pagesDataRequest, (internalRequest) => appRscHandler(internalRequest, ctx, true, dispatchResponseStage, responseStageProbeMode, trustedPrerenderState, true), allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode, (uncacheable) => {
|
|
905
1250
|
interceptionResponseUncacheable = uncacheable;
|
|
906
1251
|
});
|
|
907
1252
|
} catch (error) {
|
|
@@ -913,6 +1258,7 @@ function createAppRscHandler(options) {
|
|
|
913
1258
|
configHeaders: options.configHeaders,
|
|
914
1259
|
i18nConfig: options.i18nConfig,
|
|
915
1260
|
middlewareHeaders: middlewareContext.headers,
|
|
1261
|
+
recordCacheability: dispatchResponseStage === void 0,
|
|
916
1262
|
requestContext: preMiddlewareRequestContext
|
|
917
1263
|
});
|
|
918
1264
|
return interceptionResponseUncacheable ? markUnverifiedInterceptionResponseUncacheable(response) : response;
|
|
@@ -929,6 +1275,21 @@ function createAppRscHandler(options) {
|
|
|
929
1275
|
}
|
|
930
1276
|
return closeAfterResponseWithBody(response, requestContext);
|
|
931
1277
|
};
|
|
1278
|
+
const appRscHandler = async function appRscHandler(rawRequest, ctx, allowInternalRscDocumentFallback = false, dispatchResponseStage, responseStageProbeMode = null, transportedPrerenderState, detachedTrace = false) {
|
|
1279
|
+
options.registerCacheAdapters();
|
|
1280
|
+
await options.ensureInstrumentation?.();
|
|
1281
|
+
const traceUrl = new URL(rawRequest.url);
|
|
1282
|
+
return traceFrameworkRequest({
|
|
1283
|
+
callback: () => handleAppRscRequestLifecycle(rawRequest, ctx, allowInternalRscDocumentFallback, dispatchResponseStage, responseStageProbeMode, transportedPrerenderState),
|
|
1284
|
+
detached: detachedTrace,
|
|
1285
|
+
getStatus: (response) => response?.status,
|
|
1286
|
+
headers: rawRequest.headers,
|
|
1287
|
+
isRsc: traceUrl.pathname.endsWith(".rsc") || rawRequest.headers.get("RSC") === "1",
|
|
1288
|
+
method: rawRequest.method,
|
|
1289
|
+
target: traceUrl.pathname + traceUrl.search
|
|
1290
|
+
});
|
|
1291
|
+
};
|
|
1292
|
+
return appRscHandler;
|
|
932
1293
|
}
|
|
933
1294
|
//#endregion
|
|
934
|
-
export {
|
|
1295
|
+
export { createAppRscRequestHandler };
|