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,22 +1,32 @@
|
|
|
1
|
+
import { preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
|
|
2
|
+
import { bindRequestContext } from "../shims/unified-request-context.js";
|
|
1
3
|
import { VINEXT_RSC_COMPLETION_METADATA_HEADER } from "./headers.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
+
import { internalServerErrorResponse } from "./http-error-responses.js";
|
|
5
|
+
import { isRouteCacheabilityEvaluation, recordRouteCacheabilityClientTraceMetadataMarker } from "../shims/cacheability-classification.js";
|
|
6
|
+
import { NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL, applyCdnResponseHeaders, isCdnResponsePolicyHeader } from "./cache-control.js";
|
|
4
7
|
import { createArtifactCompatibilityEnvelope, createArtifactCompatibilityGraphVersion } from "./artifact-compatibility.js";
|
|
5
8
|
import { AppElementsWire, isAppElementsRecord } from "./app-elements-wire.js";
|
|
6
9
|
import "./app-elements.js";
|
|
10
|
+
import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
|
|
11
|
+
import { isRenderDynamicLatched } from "../shims/internal/headers-state.js";
|
|
7
12
|
import { peekDynamicUsage } from "../shims/headers.js";
|
|
8
13
|
import { runWithFetchDedupe } from "../shims/fetch-cache.js";
|
|
9
|
-
import {
|
|
14
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
15
|
+
import { isBailoutToCSRError } from "../shims/navigation-errors.js";
|
|
16
|
+
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
17
|
+
import { copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
|
|
18
|
+
import { applyEdgeRuntimeHeader, buildAppPageHtmlResponse, buildAppPageRscResponse, resolveAppPageHtmlResponsePolicy, resolveAppPageRscResponsePolicy, resolveUncacheableCacheControl } from "./app-page-response.js";
|
|
10
19
|
import { buildAppPageFontLinkHeader, readAppPageBinaryStream, resolveAppPageSpecialError, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
|
|
11
20
|
import { probeAppPageBeforeRender } from "./app-page-probe.js";
|
|
21
|
+
import { hasDigest } from "./app-rsc-errors.js";
|
|
22
|
+
import { recordAppPageRenderError, traceAppPageRender } from "./app-page-tracing.js";
|
|
23
|
+
import { traceResponseStartWithCompletion } from "./response-start-tracing.js";
|
|
12
24
|
import { DEFAULT_CACHE_VARIANT_BUDGET, buildCacheVariantWithRouteBudget, buildRenderObservation, buildRenderRequestApiObservations, createStaticLayoutArtifactReuseDecision } from "./cache-proof.js";
|
|
13
25
|
import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
|
|
14
|
-
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
15
26
|
import { finalizeAppPageCacheabilityEvaluationResponse, finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse } from "./app-page-cache-finalizer.js";
|
|
16
27
|
import { createStaticLayoutClientReuseArtifactCompatibility, createStaticLayoutClientReusePayloadHash, createStaticLayoutClientReuseRouteId } from "./static-layout-client-reuse-proof.js";
|
|
17
28
|
import { appendRscCompletionMetadata } from "./rsc-completion-metadata.js";
|
|
18
|
-
import {
|
|
19
|
-
import { buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
|
|
29
|
+
import { buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, createAppPageSsrErrorHandler, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
|
|
20
30
|
import { getStaticLayoutObservationSkipRejection } from "./app-layout-param-observation.js";
|
|
21
31
|
import { createClientReuseSkipTransportPlan, crossCheckClientReuseManifestEntryWithCache } from "./skip-cache-proof.js";
|
|
22
32
|
//#region src/server/app-page-render.ts
|
|
@@ -53,7 +63,34 @@ function applyRequestCacheLife(options) {
|
|
|
53
63
|
revalidateSeconds
|
|
54
64
|
};
|
|
55
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* A render that is known dynamic is never cacheable: a route Next.js can't make
|
|
68
|
+
* static, draft mode, `force-dynamic`, `revalidate = 0`, or a dynamic API read
|
|
69
|
+
* before the response left the render. Responses that leave the render before
|
|
70
|
+
* its response policy, such as error boundaries and special errors, get the
|
|
71
|
+
* same header as the normal render.
|
|
72
|
+
*/
|
|
73
|
+
function applyIneligibleRouteCachePolicy(response, options) {
|
|
74
|
+
const cacheControl = resolveEarlyResponseCacheControl(options);
|
|
75
|
+
if (!cacheControl) return response;
|
|
76
|
+
const middlewarePolicy = [...options.middlewareContext.headers ?? []].filter(([name, value]) => isCdnResponsePolicyHeader(name) && response.headers.get(name) === value);
|
|
77
|
+
if (middlewarePolicy.some(([name]) => name === "cache-control")) return response;
|
|
78
|
+
const stamped = preserveFullyBufferedBodyMetadata(response, new Response(response.body, response));
|
|
79
|
+
copyLinkHeaderProvenance(response.headers, stamped.headers);
|
|
80
|
+
applyCdnResponseHeaders(stamped.headers, { cacheControl });
|
|
81
|
+
for (const [name, value] of middlewarePolicy) stamped.headers.set(name, value);
|
|
82
|
+
return stamped;
|
|
83
|
+
}
|
|
84
|
+
/** The known-dynamic branches of the RSC and HTML response policies, in their order. */
|
|
85
|
+
function resolveEarlyResponseCacheControl(options) {
|
|
86
|
+
const uncacheable = resolveUncacheableCacheControl(options.isProduction);
|
|
87
|
+
if (!options.isStaticEligible || options.isDraftMode || options.isForceDynamic) return uncacheable;
|
|
88
|
+
if (!options.isRscRequest && (options.scriptNonce || options.isProgressiveActionRender)) return NO_STORE_CACHE_CONTROL;
|
|
89
|
+
const ignoresDynamicUsage = (options.isForceStatic || options.isDynamicError) && (options.revalidateSeconds === null || options.revalidateSeconds === Infinity);
|
|
90
|
+
return options.revalidateSeconds === 0 || !ignoresDynamicUsage && (options.peekDynamicUsage?.() ?? peekDynamicUsage()) ? uncacheable : null;
|
|
91
|
+
}
|
|
56
92
|
function resolveAppPageCacheWriteRevalidateSeconds(options) {
|
|
93
|
+
if (!options.isStaticEligible) return null;
|
|
57
94
|
if (options.revalidateSeconds === null && (options.isForceStatic || options.isDynamicError)) return Infinity;
|
|
58
95
|
return options.revalidateSeconds;
|
|
59
96
|
}
|
|
@@ -266,10 +303,62 @@ function wrapRscResponseForDevErrorReporting(response, consumeInvalidDynamicUsag
|
|
|
266
303
|
});
|
|
267
304
|
}
|
|
268
305
|
async function renderAppPageLifecycle(options) {
|
|
306
|
+
if (options.isRscRequest) {
|
|
307
|
+
const prepared = await prepareAppPageElement(options);
|
|
308
|
+
return prepared instanceof Response ? applyIneligibleRouteCachePolicy(prepared, options) : renderAppPageLifecycleImpl(prepared);
|
|
309
|
+
}
|
|
310
|
+
const operation = options.traceOperation ?? (options.isPrerender ? "prerender" : "render");
|
|
311
|
+
let resolveResponse;
|
|
312
|
+
let rejectResponse;
|
|
313
|
+
let renderCompletion = Promise.resolve();
|
|
314
|
+
const responsePromise = new Promise((resolve, reject) => {
|
|
315
|
+
resolveResponse = resolve;
|
|
316
|
+
rejectResponse = reject;
|
|
317
|
+
});
|
|
318
|
+
traceAppPageRender(options.routePattern, operation, async (renderSpan) => {
|
|
319
|
+
try {
|
|
320
|
+
const prepared = await prepareAppPageElement(options);
|
|
321
|
+
if (prepared instanceof Response) {
|
|
322
|
+
const traced = traceResponseStartWithCompletion(applyIneligibleRouteCachePolicy(prepared, options));
|
|
323
|
+
resolveResponse(traced.response);
|
|
324
|
+
await traced.started;
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
const traced = traceResponseStartWithCompletion(await renderAppPageLifecycleImpl({
|
|
328
|
+
...prepared,
|
|
329
|
+
onRenderComplete(completion) {
|
|
330
|
+
renderCompletion = completion;
|
|
331
|
+
completion.catch(() => {});
|
|
332
|
+
options.onRenderComplete?.(completion);
|
|
333
|
+
}
|
|
334
|
+
}, renderSpan));
|
|
335
|
+
resolveResponse(traced.response);
|
|
336
|
+
await Promise.all([renderCompletion, traced.started]);
|
|
337
|
+
} catch (error) {
|
|
338
|
+
rejectResponse(error);
|
|
339
|
+
throw error;
|
|
340
|
+
}
|
|
341
|
+
}).catch(() => {});
|
|
342
|
+
return responsePromise;
|
|
343
|
+
}
|
|
344
|
+
async function prepareAppPageElement(options) {
|
|
345
|
+
if (!options.prepareElement) return options;
|
|
346
|
+
const prepared = await options.prepareElement();
|
|
347
|
+
return prepared.response ?? {
|
|
348
|
+
...options,
|
|
349
|
+
element: prepared.element
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
async function renderAppPageLifecycleImpl(options, renderSpan) {
|
|
269
353
|
let dynamicUsageObserved = false;
|
|
270
354
|
let dynamicUsageFinalized = false;
|
|
355
|
+
const isCacheCandidateHtmlRender = options.isCacheCandidate === true && options.isPrerender !== true && !options.isRscRequest;
|
|
356
|
+
const readsRenderDynamicLatch = isCacheCandidateHtmlRender || !options.isRscRequest && options.pprFallbackShellSignal === void 0 && (options.isPrerender === true || isRouteCacheabilityEvaluation());
|
|
357
|
+
const readDynamicUsage = bindRequestContext(() => options.consumeDynamicUsage() || readsRenderDynamicLatch && isRenderDynamicLatched());
|
|
358
|
+
const consumeRenderObservationState = options.consumeRenderObservationState && bindRequestContext(options.consumeRenderObservationState);
|
|
359
|
+
const peekRenderDynamicUsage = () => (options.peekDynamicUsage?.() ?? peekDynamicUsage()) || readsRenderDynamicLatch && isRenderDynamicLatched();
|
|
271
360
|
const consumeRenderDynamicUsage = () => {
|
|
272
|
-
if (!dynamicUsageObserved) dynamicUsageObserved =
|
|
361
|
+
if (!dynamicUsageObserved) dynamicUsageObserved = readDynamicUsage();
|
|
273
362
|
return dynamicUsageObserved;
|
|
274
363
|
};
|
|
275
364
|
const finalizeRenderDynamicUsage = () => {
|
|
@@ -304,7 +393,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
304
393
|
},
|
|
305
394
|
classification: options.classification
|
|
306
395
|
});
|
|
307
|
-
if (preRenderResult.response) return preRenderResult.response;
|
|
396
|
+
if (preRenderResult.response) return applyIneligibleRouteCachePolicy(preRenderResult.response, options);
|
|
308
397
|
const layoutFlags = preRenderResult.layoutFlags;
|
|
309
398
|
const artifactCompatibility = createAppPageArtifactCompatibility(options.element, options.routePattern);
|
|
310
399
|
const rootBoundaryId = artifactCompatibility?.rootBoundaryId ?? null;
|
|
@@ -341,7 +430,18 @@ async function renderAppPageLifecycle(options) {
|
|
|
341
430
|
skipDisposition: options.isRscRequest ? skipDisposition : void 0
|
|
342
431
|
});
|
|
343
432
|
const compileEnd = options.isProduction ? void 0 : performance.now();
|
|
344
|
-
const
|
|
433
|
+
const errorContextOverrides = {
|
|
434
|
+
...options.isProgressiveActionRender ? {
|
|
435
|
+
renderSource: "react-server-components-payload",
|
|
436
|
+
routeType: "action"
|
|
437
|
+
} : {},
|
|
438
|
+
...options.isPrerender ? { revalidateReason: "stale" } : {}
|
|
439
|
+
};
|
|
440
|
+
const baseOnError = options.createRscOnErrorHandler(options.cleanPathname, options.routePattern, errorContextOverrides);
|
|
441
|
+
const rscErrorTracker = createAppPageRscErrorTracker((error, requestInfo, errorContext) => {
|
|
442
|
+
if (renderSpan) recordAppPageRenderError(renderSpan, error);
|
|
443
|
+
return baseOnError(error, requestInfo, errorContext);
|
|
444
|
+
});
|
|
345
445
|
let rscStream = await runWithFetchDedupe(async () => {
|
|
346
446
|
if (options.pprFallbackShellSignal && options.prerenderToReadableStream) {
|
|
347
447
|
const reactSignal = options.pprFallbackShellReactSignal ?? options.pprFallbackShellSignal;
|
|
@@ -360,8 +460,8 @@ async function renderAppPageLifecycle(options) {
|
|
|
360
460
|
let expireSeconds = options.expireSeconds;
|
|
361
461
|
const shouldWaitForAllReady = options.isPrerender === true && options.isSpeculativePrerender !== true;
|
|
362
462
|
const shouldReadRequestCacheLifeForPrerender = options.isPrerender === true;
|
|
363
|
-
const mayResolveCacheLifeAfterHeaders = options.isProgressiveActionRender !== true && (revalidateSeconds === null || revalidateSeconds > 0
|
|
364
|
-
const shouldCaptureRscForCacheMetadata = (options.isProduction || options.isPrerender === true) && mayResolveCacheLifeAfterHeaders;
|
|
463
|
+
const mayResolveCacheLifeAfterHeaders = options.isProgressiveActionRender !== true && (revalidateSeconds === null || revalidateSeconds > 0) && !options.isDraftMode && !options.isForceDynamic && !shouldBypassRscCache;
|
|
464
|
+
const shouldCaptureRscForCacheMetadata = (options.isProduction || options.isPrerender === true) && mayResolveCacheLifeAfterHeaders && options.isStaticEligible;
|
|
365
465
|
const createBufferedRscStream = (close) => new ReadableStream({ start(controller) {
|
|
366
466
|
if (pprFallbackShellRsc) controller.enqueue(pprFallbackShellRsc);
|
|
367
467
|
if (close) controller.close();
|
|
@@ -392,6 +492,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
392
492
|
isForceDynamic: options.isForceDynamic,
|
|
393
493
|
isForceStatic: options.isForceStatic,
|
|
394
494
|
isProduction: options.isProduction,
|
|
495
|
+
isStaticEligible: options.isStaticEligible,
|
|
395
496
|
expireSeconds,
|
|
396
497
|
revalidateSeconds
|
|
397
498
|
});
|
|
@@ -431,12 +532,13 @@ async function renderAppPageLifecycle(options) {
|
|
|
431
532
|
statusText: rscResponse.statusText,
|
|
432
533
|
headers: completionHeaders
|
|
433
534
|
}) : rscResponse;
|
|
434
|
-
|
|
535
|
+
const devRscResponse = !options.isProduction && completionResponse.body && options.consumeInvalidDynamicUsageError ? wrapRscResponseForDevErrorReporting(completionResponse, options.consumeInvalidDynamicUsageError) : completionResponse;
|
|
536
|
+
return finalizeAppPageRscCacheResponse(devRscResponse, {
|
|
435
537
|
capturedRscDataPromise: options.isProduction && shouldCaptureRscForCacheMetadata ? capturedRscDataRef.value : null,
|
|
436
538
|
bypassInterceptionContextCache: options.bypassInterceptionContextCache,
|
|
437
539
|
cleanPathname: options.cleanPathname,
|
|
438
540
|
consumeDynamicUsage: finalizeRenderDynamicUsage,
|
|
439
|
-
consumeRenderObservationState
|
|
541
|
+
consumeRenderObservationState,
|
|
440
542
|
createRscRenderObservation(input) {
|
|
441
543
|
return createAppPageRenderObservation({
|
|
442
544
|
boundaryOutcome: { kind: "success" },
|
|
@@ -466,9 +568,11 @@ async function renderAppPageLifecycle(options) {
|
|
|
466
568
|
renderMode: options.renderMode,
|
|
467
569
|
preserveClientResponseHeaders: rscResponsePolicy.cacheState !== "MISS",
|
|
468
570
|
expireSeconds,
|
|
571
|
+
isStaticEligible: options.isStaticEligible,
|
|
469
572
|
revalidateSeconds: resolveAppPageCacheWriteRevalidateSeconds({
|
|
470
573
|
isDynamicError: options.isDynamicError,
|
|
471
574
|
isForceStatic: options.isForceStatic,
|
|
575
|
+
isStaticEligible: options.isStaticEligible,
|
|
472
576
|
revalidateSeconds
|
|
473
577
|
}),
|
|
474
578
|
waitUntil(promise) {
|
|
@@ -482,6 +586,8 @@ async function renderAppPageLifecycle(options) {
|
|
|
482
586
|
getStyles: options.getFontStyles
|
|
483
587
|
});
|
|
484
588
|
const fontLinkHeader = buildAppPageFontLinkHeader(fontData.preloads);
|
|
589
|
+
const clientTraceMetadataMarker = options.isProduction && options.isPrerender !== true && options.clientTraceMetadata && options.clientTraceMetadata.length > 0 ? crypto.randomUUID() : void 0;
|
|
590
|
+
if (clientTraceMetadataMarker) recordRouteCacheabilityClientTraceMetadataMarker(clientTraceMetadataMarker);
|
|
485
591
|
let requestCacheLifeForPrerender = null;
|
|
486
592
|
let dynamicUsedDuringHtmlRender = false;
|
|
487
593
|
let renderEnd;
|
|
@@ -490,11 +596,30 @@ async function renderAppPageLifecycle(options) {
|
|
|
490
596
|
if (!options.isProduction) renderEnd = performance.now();
|
|
491
597
|
},
|
|
492
598
|
renderErrorBoundaryResponse(error) {
|
|
599
|
+
if (isCacheCandidateHtmlRender && isBailoutToCSRError(error)) {
|
|
600
|
+
console.error(`${error.reason} should be wrapped in a suspense boundary at page "${options.routePattern}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout`);
|
|
601
|
+
options.clearRequestContext();
|
|
602
|
+
const headers = new Headers();
|
|
603
|
+
mergeMiddlewareResponseHeaders(headers, options.middlewareContext.headers);
|
|
604
|
+
headers.set("Cache-Control", NEVER_CACHE_CONTROL);
|
|
605
|
+
applyEdgeRuntimeHeader(headers, options.isEdgeRuntime);
|
|
606
|
+
const response = internalServerErrorResponse(void 0, { headers });
|
|
607
|
+
applyCdnResponseHeaders(response.headers, { cacheControl: NEVER_CACHE_CONTROL });
|
|
608
|
+
return Promise.resolve(response);
|
|
609
|
+
}
|
|
493
610
|
const capturedRscError = rscErrorTracker.getCapturedError();
|
|
494
611
|
return options.renderErrorBoundaryResponse(capturedRscError ?? error, capturedRscError === null ? "ssr" : "rsc");
|
|
495
612
|
},
|
|
496
613
|
async renderHtmlStream() {
|
|
497
614
|
const ssrHandler = await options.loadSsrHandler();
|
|
615
|
+
const baseOnSsrError = options.createRscOnErrorHandler(options.cleanPathname, options.routePattern, {
|
|
616
|
+
...errorContextOverrides,
|
|
617
|
+
renderSource: "server-rendering"
|
|
618
|
+
});
|
|
619
|
+
const onSsrError = (error, requestInfo, errorContext) => {
|
|
620
|
+
if (renderSpan) recordAppPageRenderError(renderSpan, error);
|
|
621
|
+
return baseOnSsrError(error, requestInfo, errorContext);
|
|
622
|
+
};
|
|
498
623
|
return renderAppPageHtmlStream({
|
|
499
624
|
capturedRscDataRef,
|
|
500
625
|
getInitialNavigationCacheMetadata: () => {
|
|
@@ -505,7 +630,8 @@ async function renderAppPageLifecycle(options) {
|
|
|
505
630
|
const observation = options.peekRenderObservationState?.();
|
|
506
631
|
kind = observation && (observation.dynamicFetches.length > 0 || observation.requestApis.length > 0) ? "dynamic" : "static";
|
|
507
632
|
}
|
|
508
|
-
const
|
|
633
|
+
const requestCacheLife = options.isPrerender === true ? requestCacheLifeForPrerender ?? options.peekRequestCacheLife?.() : options.peekRequestCacheLife?.();
|
|
634
|
+
const staleTimeSeconds = resolveClientStaleTimeSeconds(requestCacheLife);
|
|
509
635
|
return {
|
|
510
636
|
kind,
|
|
511
637
|
...kind === "dynamic" && dynamicStaleTimeSeconds !== void 0 && options.isPrerender !== true ? { dynamicStaleTimeSeconds } : {},
|
|
@@ -517,6 +643,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
517
643
|
navigationContext: options.getNavigationContext(),
|
|
518
644
|
basePath: options.basePath,
|
|
519
645
|
clientTraceMetadata: options.clientTraceMetadata,
|
|
646
|
+
clientTraceMetadataMarker,
|
|
520
647
|
reactMaxHeadersLength: options.reactMaxHeadersLength,
|
|
521
648
|
rootParams: options.rootParams,
|
|
522
649
|
pprFallbackShellSignal: options.pprFallbackShellSignal,
|
|
@@ -528,7 +655,9 @@ async function renderAppPageLifecycle(options) {
|
|
|
528
655
|
fallbackToErrorDocumentOnShellError: options.isPrerender === true && options.isSpeculativePrerender === true ? false : void 0,
|
|
529
656
|
waitForAllReady: shouldWaitForAllReady,
|
|
530
657
|
isStaticGeneration: options.isPrerender === true,
|
|
531
|
-
isForceStatic: options.isForceStatic
|
|
658
|
+
isForceStatic: options.isForceStatic,
|
|
659
|
+
isCacheCandidate: isCacheCandidateHtmlRender,
|
|
660
|
+
onSsrError: createAppPageSsrErrorHandler(onSsrError, rscErrorTracker.isCapturedError)
|
|
532
661
|
});
|
|
533
662
|
},
|
|
534
663
|
renderSpecialErrorResponse(specialError) {
|
|
@@ -536,7 +665,8 @@ async function renderAppPageLifecycle(options) {
|
|
|
536
665
|
},
|
|
537
666
|
resolveSpecialError: resolveAppPageSpecialError
|
|
538
667
|
});
|
|
539
|
-
|
|
668
|
+
options.onRenderComplete?.(htmlRender.renderComplete);
|
|
669
|
+
if (htmlRender.response) return applyIneligibleRouteCachePolicy(htmlRender.response, options);
|
|
540
670
|
let htmlStream = htmlRender.htmlStream;
|
|
541
671
|
if (!htmlStream) throw new Error("[vinext] Expected an HTML stream when no fallback response was returned");
|
|
542
672
|
const linkHeader = buildAppPageLinkHeader(htmlRender.linkHeader, fontLinkHeader, options.reactMaxHeadersLength);
|
|
@@ -547,14 +677,14 @@ async function renderAppPageLifecycle(options) {
|
|
|
547
677
|
const specialError = resolveAppPageSpecialError(captured);
|
|
548
678
|
if (specialError) {
|
|
549
679
|
htmlStream.cancel().catch(() => {});
|
|
550
|
-
return options.renderPageSpecialError(specialError);
|
|
680
|
+
return applyIneligibleRouteCachePolicy(await options.renderPageSpecialError(specialError), options);
|
|
551
681
|
}
|
|
552
682
|
}
|
|
553
683
|
}
|
|
554
684
|
let dynamicUsedDuringRender = consumeRenderDynamicUsage();
|
|
555
685
|
dynamicUsedDuringHtmlRender = dynamicUsedDuringRender;
|
|
556
686
|
const stopSpeculativeMetadataWaitOnDynamicUsage = options.isSpeculativePrerender === true && shouldReadRequestCacheLifeForPrerender ? () => {
|
|
557
|
-
if (dynamicUsedDuringRender || (
|
|
687
|
+
if (dynamicUsedDuringRender || peekRenderDynamicUsage()) {
|
|
558
688
|
dynamicUsedDuringRender = true;
|
|
559
689
|
dynamicUsedDuringHtmlRender = true;
|
|
560
690
|
return true;
|
|
@@ -562,6 +692,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
562
692
|
return false;
|
|
563
693
|
} : void 0;
|
|
564
694
|
if (shouldWaitForAllReady || shouldReadRequestCacheLifeForPrerender) await settleCapturedRscRenderForCacheMetadata(htmlRender.capturedRscData, stopSpeculativeMetadataWaitOnDynamicUsage);
|
|
695
|
+
if (stopSpeculativeMetadataWaitOnDynamicUsage) await waitUnlessDynamic(htmlRender.renderComplete, stopSpeculativeMetadataWaitOnDynamicUsage);
|
|
565
696
|
if (shouldReadRequestCacheLifeForPrerender) {
|
|
566
697
|
requestCacheLifeForPrerender = readRequestCacheLifeForPrerender(options);
|
|
567
698
|
({expireSeconds, revalidateSeconds} = applyRequestCacheLife({
|
|
@@ -588,6 +719,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
588
719
|
isForceDynamic: options.isForceDynamic,
|
|
589
720
|
isForceStatic: options.isForceStatic,
|
|
590
721
|
isProduction: options.isProduction,
|
|
722
|
+
isStaticEligible: options.isStaticEligible,
|
|
591
723
|
expireSeconds,
|
|
592
724
|
revalidateSeconds
|
|
593
725
|
});
|
|
@@ -629,13 +761,15 @@ async function renderAppPageLifecycle(options) {
|
|
|
629
761
|
});
|
|
630
762
|
if (options.isPrerender === true) return isrResponse;
|
|
631
763
|
return finalizeAppPageHtmlCacheResponse(isrResponse, {
|
|
764
|
+
bypassInterceptionContextCache: options.bypassInterceptionContextCache,
|
|
632
765
|
capturedDynamicUsageBeforeContextCleanup() {
|
|
633
766
|
return dynamicUsedBeforeContextCleanup;
|
|
634
767
|
},
|
|
635
768
|
capturedRscDataPromise: capturedRscDataRef.value,
|
|
636
769
|
cleanPathname: options.cleanPathname,
|
|
770
|
+
clientTraceMetadataMarker,
|
|
637
771
|
consumeDynamicUsage: consumeRenderDynamicUsage,
|
|
638
|
-
consumeRenderObservationState
|
|
772
|
+
consumeRenderObservationState,
|
|
639
773
|
createHtmlRenderObservation(input) {
|
|
640
774
|
return createAppPageRenderObservation({
|
|
641
775
|
boundaryOutcome: { kind: "success" },
|
|
@@ -675,9 +809,11 @@ async function renderAppPageLifecycle(options) {
|
|
|
675
809
|
omitPendingDynamicCacheState: options.omitPendingDynamicCacheState,
|
|
676
810
|
preserveClientResponseHeaders: !htmlResponsePolicy.shouldWriteToCache,
|
|
677
811
|
expireSeconds,
|
|
812
|
+
isStaticEligible: options.isStaticEligible,
|
|
678
813
|
revalidateSeconds: resolveAppPageCacheWriteRevalidateSeconds({
|
|
679
814
|
isDynamicError: options.isDynamicError,
|
|
680
815
|
isForceStatic: options.isForceStatic,
|
|
816
|
+
isStaticEligible: options.isStaticEligible,
|
|
681
817
|
revalidateSeconds
|
|
682
818
|
}),
|
|
683
819
|
linkHeader: linkHeader ?? null,
|
|
@@ -686,7 +822,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
686
822
|
}
|
|
687
823
|
});
|
|
688
824
|
}
|
|
689
|
-
|
|
825
|
+
const response = buildAppPageHtmlResponse(safeHtmlStream, {
|
|
690
826
|
cacheTags: options.isPrerender === true ? options.getPageTags() : void 0,
|
|
691
827
|
draftCookie,
|
|
692
828
|
linkHeader,
|
|
@@ -695,12 +831,13 @@ async function renderAppPageLifecycle(options) {
|
|
|
695
831
|
policy: htmlResponsePolicy,
|
|
696
832
|
requestCacheLife: requestCacheLifeForPrerender,
|
|
697
833
|
timing: htmlResponseTiming
|
|
698
|
-
})
|
|
834
|
+
});
|
|
835
|
+
return finalizeAppPageCacheabilityEvaluationResponse(response, {
|
|
699
836
|
capturedDynamicUsageBeforeContextCleanup() {
|
|
700
837
|
return dynamicUsedBeforeContextCleanup;
|
|
701
838
|
},
|
|
702
839
|
consumeDynamicUsage: consumeRenderDynamicUsage,
|
|
703
|
-
consumeRenderObservationState
|
|
840
|
+
consumeRenderObservationState,
|
|
704
841
|
getPageTags() {
|
|
705
842
|
return options.getPageTags();
|
|
706
843
|
},
|
|
@@ -708,9 +845,11 @@ async function renderAppPageLifecycle(options) {
|
|
|
708
845
|
return readRequestCacheLifeForCachePolicy(options);
|
|
709
846
|
},
|
|
710
847
|
expireSeconds,
|
|
848
|
+
isStaticEligible: options.isStaticEligible,
|
|
711
849
|
revalidateSeconds: resolveAppPageCacheWriteRevalidateSeconds({
|
|
712
850
|
isDynamicError: options.isDynamicError,
|
|
713
851
|
isForceStatic: options.isForceStatic,
|
|
852
|
+
isStaticEligible: options.isStaticEligible,
|
|
714
853
|
revalidateSeconds
|
|
715
854
|
})
|
|
716
855
|
});
|
|
@@ -723,8 +862,16 @@ async function settleCapturedRscRenderForCacheMetadata(capturedRscDataPromise, s
|
|
|
723
862
|
} catch {}
|
|
724
863
|
return;
|
|
725
864
|
}
|
|
865
|
+
await waitUnlessDynamic(capturedRscDataPromise, shouldStopWaiting);
|
|
866
|
+
}
|
|
867
|
+
/**
|
|
868
|
+
* Wait for `promise` to settle, or until `shouldStopWaiting` reports that the
|
|
869
|
+
* render turned dynamic. Rejections are ignored: the response stream and the
|
|
870
|
+
* cache-write path own render error propagation.
|
|
871
|
+
*/
|
|
872
|
+
async function waitUnlessDynamic(promise, shouldStopWaiting) {
|
|
726
873
|
let settled = false;
|
|
727
|
-
const settledPromise =
|
|
874
|
+
const settledPromise = promise.catch(() => {}).then(() => {
|
|
728
875
|
settled = true;
|
|
729
876
|
});
|
|
730
877
|
try {
|
|
@@ -732,4 +879,4 @@ async function settleCapturedRscRenderForCacheMetadata(capturedRscDataPromise, s
|
|
|
732
879
|
} finally {}
|
|
733
880
|
}
|
|
734
881
|
//#endregion
|
|
735
|
-
export { renderAppPageLifecycle };
|
|
882
|
+
export { applyIneligibleRouteCachePolicy, renderAppPageLifecycle };
|
|
@@ -31,11 +31,13 @@ type ParallelGenerateStaticParamsBranch = {
|
|
|
31
31
|
patternParts?: readonly string[] | null;
|
|
32
32
|
routeSegments?: readonly string[] | null;
|
|
33
33
|
};
|
|
34
|
-
type ValidateAppPageDynamicParamsOptions = {
|
|
34
|
+
export type ValidateAppPageDynamicParamsOptions = {
|
|
35
35
|
enforceStaticParamsOnly: boolean;
|
|
36
36
|
generateStaticParams?: GenerateStaticParams | GenerateStaticParamsSource | readonly (GenerateStaticParams | GenerateStaticParamsSource | null | undefined)[] | null;
|
|
37
37
|
isDynamicRoute: boolean;
|
|
38
|
+
optionalCatchAllParamNames?: readonly string[];
|
|
38
39
|
params: AppPageParams;
|
|
40
|
+
requiredParamNames?: readonly string[];
|
|
39
41
|
};
|
|
40
42
|
type ResolveAppPageGenerateStaticParamsSourcesOptions = {
|
|
41
43
|
layouts?: readonly (GenerateStaticParamsModule | null | undefined)[];
|
|
@@ -133,11 +135,10 @@ type ResolveAppPageInterceptResult<TInterceptOpts> = {
|
|
|
133
135
|
interceptOpts: TInterceptOpts | undefined;
|
|
134
136
|
response: Response | null;
|
|
135
137
|
};
|
|
136
|
-
declare function resolveAppPageGenerateStaticParamsSources(options: ResolveAppPageGenerateStaticParamsSourcesOptions): GenerateStaticParamsSource[];
|
|
137
|
-
declare function validateAppPageDynamicParams(options: ValidateAppPageDynamicParamsOptions): Promise<Response | null>;
|
|
138
|
-
declare function resolveAppPageInterceptionRerenderTarget<TRoute, TPage, TInterceptOpts>(options: ResolveAppPageInterceptionRerenderTargetOptions<TRoute, TPage, TInterceptOpts>): Promise<ResolveAppPageInterceptionRerenderTargetResult<TRoute, TInterceptOpts>>;
|
|
139
|
-
declare function resolveAppPageActionRerenderTarget<TRoute, TPage, TInterceptOpts>(options: ResolveAppPageActionRerenderTargetOptions<TRoute, TPage, TInterceptOpts>): Promise<ResolveAppPageActionRerenderTargetResult<TRoute, TInterceptOpts>>;
|
|
140
|
-
declare function resolveAppPageIntercept<TRoute, TPage, TInterceptOpts, TElement>(options: ResolveAppPageInterceptOptions<TRoute, TPage, TInterceptOpts, TElement>): Promise<ResolveAppPageInterceptResult<TInterceptOpts>>;
|
|
141
|
-
declare function buildAppPageElement<TElement>(options: BuildAppPageElementOptions<TElement>): Promise<BuildAppPageElementResult<TElement>>;
|
|
142
|
-
//#endregion
|
|
143
|
-
export { ValidateAppPageDynamicParamsOptions, buildAppPageElement, resolveAppPageActionRerenderTarget, resolveAppPageGenerateStaticParamsSources, resolveAppPageIntercept, resolveAppPageInterceptionRerenderTarget, validateAppPageDynamicParams };
|
|
138
|
+
export declare function resolveAppPageGenerateStaticParamsSources(options: ResolveAppPageGenerateStaticParamsSourcesOptions): GenerateStaticParamsSource[];
|
|
139
|
+
export declare function validateAppPageDynamicParams(options: ValidateAppPageDynamicParamsOptions): Promise<Response | null>;
|
|
140
|
+
export declare function resolveAppPageInterceptionRerenderTarget<TRoute, TPage, TInterceptOpts>(options: ResolveAppPageInterceptionRerenderTargetOptions<TRoute, TPage, TInterceptOpts>): Promise<ResolveAppPageInterceptionRerenderTargetResult<TRoute, TInterceptOpts>>;
|
|
141
|
+
export declare function resolveAppPageActionRerenderTarget<TRoute, TPage, TInterceptOpts>(options: ResolveAppPageActionRerenderTargetOptions<TRoute, TPage, TInterceptOpts>): Promise<ResolveAppPageActionRerenderTargetResult<TRoute, TInterceptOpts>>;
|
|
142
|
+
export declare function resolveAppPageIntercept<TRoute, TPage, TInterceptOpts, TElement>(options: ResolveAppPageInterceptOptions<TRoute, TPage, TInterceptOpts, TElement>): Promise<ResolveAppPageInterceptResult<TInterceptOpts>>;
|
|
143
|
+
export declare function buildAppPageElement<TElement>(options: BuildAppPageElementOptions<TElement>): Promise<BuildAppPageElementResult<TElement>>;
|
|
144
|
+
//#endregion
|
|
@@ -110,18 +110,21 @@ function resolveAppPageGenerateStaticParamsSources(options) {
|
|
|
110
110
|
}
|
|
111
111
|
return sources;
|
|
112
112
|
}
|
|
113
|
-
function areStaticParamsAllowed(params, staticParams, allowMissingValues = false) {
|
|
114
|
-
const paramKeys = Object.keys(params);
|
|
113
|
+
function areStaticParamsAllowed(params, staticParams, allowMissingValues = false, paramKeys = Object.keys(params), optionalCatchAllParamNames = []) {
|
|
115
114
|
const stringParamMatches = (value, staticValue) => value === encodeURIComponent(staticValue);
|
|
116
|
-
return staticParams.some((staticParamSet) =>
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
115
|
+
return staticParams.some((staticParamSet) => {
|
|
116
|
+
if (!staticParamSet || typeof staticParamSet !== "object" || Array.isArray(staticParamSet)) return false;
|
|
117
|
+
return paramKeys.every((key) => {
|
|
118
|
+
const value = params[key];
|
|
119
|
+
const staticValue = staticParamSet[key];
|
|
120
|
+
if (!Object.hasOwn(staticParamSet, key)) return allowMissingValues;
|
|
121
|
+
if (value === void 0) return optionalCatchAllParamNames.includes(key) && (staticValue === void 0 || staticValue === null || staticValue === false || Array.isArray(staticValue) && staticValue.length === 0);
|
|
122
|
+
if (Array.isArray(value)) return Array.isArray(staticValue) && value.length === staticValue.length && value.every((part, index) => typeof staticValue[index] === "string" ? stringParamMatches(part, staticValue[index]) : part === staticValue[index]);
|
|
123
|
+
if (typeof staticValue === "string") return stringParamMatches(value, staticValue);
|
|
124
|
+
if (typeof staticValue === "number" || typeof staticValue === "boolean") return String(value) === String(staticValue);
|
|
125
|
+
return JSON.stringify(value) === JSON.stringify(staticValue);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
125
128
|
}
|
|
126
129
|
function remapStaticParamsToRouteParams(staticParams, source) {
|
|
127
130
|
if (!source.paramAliases) return [...staticParams];
|
|
@@ -227,9 +230,10 @@ async function validateAppPageDynamicParams(options) {
|
|
|
227
230
|
const result = await generateIndependentStaticParams(sources, chainedStaticParams, options.params);
|
|
228
231
|
if (result.validated) {
|
|
229
232
|
validatedIndependentResults = true;
|
|
230
|
-
if (!areStaticParamsAllowed(options.params, result.staticParams,
|
|
233
|
+
if (!areStaticParamsAllowed(options.params, result.staticParams, options.requiredParamNames === void 0, options.requiredParamNames, options.optionalCatchAllParamNames)) return notFoundResponse();
|
|
231
234
|
}
|
|
232
235
|
}
|
|
236
|
+
if (options.requiredParamNames && !validatedIndependentResults) return notFoundResponse();
|
|
233
237
|
if (chainedStaticParams && !validatedIndependentResults) {
|
|
234
238
|
if (!areStaticParamsAllowed(options.params, chainedStaticParams)) return notFoundResponse();
|
|
235
239
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
2
2
|
//#region src/server/app-page-response.d.ts
|
|
3
|
-
type AppPageMiddlewareContext = {
|
|
3
|
+
export type AppPageMiddlewareContext = {
|
|
4
4
|
headers: Headers | null;
|
|
5
5
|
status: number | null;
|
|
6
6
|
};
|
|
7
|
-
type AppPageResponseTiming = {
|
|
7
|
+
export type AppPageResponseTiming = {
|
|
8
8
|
compileEnd?: number;
|
|
9
9
|
handlerStart: number;
|
|
10
10
|
renderEnd?: number;
|
|
@@ -26,6 +26,11 @@ type ResolveAppPageResponsePolicyBaseOptions = {
|
|
|
26
26
|
isForceDynamic: boolean;
|
|
27
27
|
isForceStatic: boolean;
|
|
28
28
|
isProduction: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* `false` for routes Next.js classifies as dynamic (ƒ). Their responses are
|
|
31
|
+
* never cached, whatever their revalidate.
|
|
32
|
+
*/
|
|
33
|
+
isStaticEligible: boolean;
|
|
29
34
|
expireSeconds?: number;
|
|
30
35
|
revalidateSeconds: number | null;
|
|
31
36
|
};
|
|
@@ -70,9 +75,15 @@ type BuildAppPageHtmlResponseOptions = {
|
|
|
70
75
|
* prerender seed) — `use cache` scopes keep resolving after headers commit,
|
|
71
76
|
* so a streaming response can never carry it.
|
|
72
77
|
*/
|
|
73
|
-
declare function applyClientStaleTimeHeader(headers: Headers, staleTimeSeconds: number | undefined): void;
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
export declare function applyClientStaleTimeHeader(headers: Headers, staleTimeSeconds: number | undefined): void;
|
|
79
|
+
/**
|
|
80
|
+
* Next.js sends `private, no-cache, no-store, max-age=0, must-revalidate` for
|
|
81
|
+
* an App page response it knows is dynamic. Dev responses never cache, so they
|
|
82
|
+
* keep vinext's dev `no-store` header.
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveUncacheableCacheControl(isProduction: boolean): string;
|
|
85
|
+
export declare function resolveAppPageRscResponsePolicy(options: ResolveAppPageRscResponsePolicyOptions): AppPageResponsePolicy;
|
|
86
|
+
export declare function resolveAppPageHtmlResponsePolicy(options: ResolveAppPageHtmlResponsePolicyOptions): AppPageHtmlResponsePolicy;
|
|
76
87
|
/**
|
|
77
88
|
* Mirror Next.js' edge-runtime marker (set in edge-ssr-app.ts). Only routes
|
|
78
89
|
* whose resolved segment config is `runtime = "edge"` should advertise it —
|
|
@@ -80,8 +91,8 @@ declare function resolveAppPageHtmlResponsePolicy(options: ResolveAppPageHtmlRes
|
|
|
80
91
|
* the configured runtime from the response. Centralized so every response
|
|
81
92
|
* construction site can opt in without re-deriving the header name.
|
|
82
93
|
*/
|
|
83
|
-
declare function applyEdgeRuntimeHeader(headers: Headers, isEdgeRuntime: boolean | undefined): void;
|
|
84
|
-
declare function buildAppPageRscResponse(body: ReadableStream, options: BuildAppPageRscResponseOptions): Response;
|
|
85
|
-
declare function buildAppPageHtmlResponse(body: ReadableStream, options: BuildAppPageHtmlResponseOptions): Response;
|
|
94
|
+
export declare function applyEdgeRuntimeHeader(headers: Headers, isEdgeRuntime: boolean | undefined): void;
|
|
95
|
+
export declare function buildAppPageRscResponse(body: ReadableStream, options: BuildAppPageRscResponseOptions): Response;
|
|
96
|
+
export declare function buildAppPageHtmlResponse(body: ReadableStream, options: BuildAppPageHtmlResponseOptions): Response;
|
|
86
97
|
//#endregion
|
|
87
|
-
export {
|
|
98
|
+
export { mergeMiddlewareResponseHeaders };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
|
|
2
|
+
import { NEXT_CACHE_TAGS_HEADER, NEXT_ROUTER_STALE_TIME_HEADER, VINEXT_DYNAMIC_STALE_TIME_HEADER, VINEXT_PARAMS_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER, VINEXT_STALE_TIME_PENDING_HEADER, VINEXT_TIMING_HEADER } from "./headers.js";
|
|
3
|
+
import { NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL, STATIC_CACHE_CONTROL, buildRevalidateCacheControl } from "./cache-control.js";
|
|
3
4
|
import { setCacheStateHeaders } from "./cache-headers.js";
|
|
4
5
|
import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, applyRscDeploymentIdHeader } from "./app-rsc-cache-busting.js";
|
|
5
6
|
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
@@ -28,14 +29,27 @@ function applyClientStaleTimeHeader(headers, staleTimeSeconds) {
|
|
|
28
29
|
function applyPrerenderCacheTagsHeader(headers, cacheTags) {
|
|
29
30
|
if (cacheTags && cacheTags.length > 0) headers.set(NEXT_CACHE_TAGS_HEADER, cacheTags.join(","));
|
|
30
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Next.js sends `private, no-cache, no-store, max-age=0, must-revalidate` for
|
|
34
|
+
* an App page response it knows is dynamic. Dev responses never cache, so they
|
|
35
|
+
* keep vinext's dev `no-store` header.
|
|
36
|
+
*/
|
|
37
|
+
function resolveUncacheableCacheControl(isProduction) {
|
|
38
|
+
return isProduction ? NEVER_CACHE_CONTROL : NO_STORE_CACHE_CONTROL;
|
|
39
|
+
}
|
|
31
40
|
function resolveAppPageRscResponsePolicy(options) {
|
|
32
|
-
if (options.isDraftMode) return { cacheControl:
|
|
33
|
-
if (options.
|
|
34
|
-
if (options.
|
|
35
|
-
if (
|
|
41
|
+
if (options.isDraftMode) return { cacheControl: resolveUncacheableCacheControl(options.isProduction) };
|
|
42
|
+
if (options.isStaticEligible === false) return { cacheControl: resolveUncacheableCacheControl(options.isProduction) };
|
|
43
|
+
if (options.isForceDynamic || options.dynamicUsedDuringBuild) return { cacheControl: resolveUncacheableCacheControl(options.isProduction) };
|
|
44
|
+
if (options.revalidateSeconds === 0) return { cacheControl: resolveUncacheableCacheControl(options.isProduction) };
|
|
45
|
+
if ((options.isForceStatic || options.isDynamicError) && (options.revalidateSeconds === null || options.revalidateSeconds === Infinity)) return {
|
|
36
46
|
cacheControl: STATIC_CACHE_CONTROL,
|
|
37
47
|
cacheState: "STATIC"
|
|
38
48
|
};
|
|
49
|
+
if (options.revalidateSeconds === Infinity) return {
|
|
50
|
+
cacheControl: STATIC_CACHE_CONTROL,
|
|
51
|
+
cacheState: options.isProduction ? "MISS" : "STATIC"
|
|
52
|
+
};
|
|
39
53
|
if (options.revalidateSeconds) return {
|
|
40
54
|
cacheControl: buildRevalidateCacheControl(options.revalidateSeconds, options.expireSeconds),
|
|
41
55
|
cacheState: options.isProduction ? "MISS" : void 0
|
|
@@ -44,11 +58,15 @@ function resolveAppPageRscResponsePolicy(options) {
|
|
|
44
58
|
}
|
|
45
59
|
function resolveAppPageHtmlResponsePolicy(options) {
|
|
46
60
|
if (options.isDraftMode) return {
|
|
47
|
-
cacheControl:
|
|
61
|
+
cacheControl: resolveUncacheableCacheControl(options.isProduction),
|
|
62
|
+
shouldWriteToCache: false
|
|
63
|
+
};
|
|
64
|
+
if (options.isStaticEligible === false) return {
|
|
65
|
+
cacheControl: resolveUncacheableCacheControl(options.isProduction),
|
|
48
66
|
shouldWriteToCache: false
|
|
49
67
|
};
|
|
50
68
|
if (options.isForceDynamic) return {
|
|
51
|
-
cacheControl:
|
|
69
|
+
cacheControl: resolveUncacheableCacheControl(options.isProduction),
|
|
52
70
|
shouldWriteToCache: false
|
|
53
71
|
};
|
|
54
72
|
if (options.hasScriptNonce) return {
|
|
@@ -60,16 +78,16 @@ function resolveAppPageHtmlResponsePolicy(options) {
|
|
|
60
78
|
shouldWriteToCache: false
|
|
61
79
|
};
|
|
62
80
|
if (options.revalidateSeconds === 0) return {
|
|
63
|
-
cacheControl:
|
|
81
|
+
cacheControl: resolveUncacheableCacheControl(options.isProduction),
|
|
64
82
|
shouldWriteToCache: false
|
|
65
83
|
};
|
|
66
|
-
if ((options.isForceStatic || options.isDynamicError) && options.revalidateSeconds === null) return {
|
|
84
|
+
if ((options.isForceStatic || options.isDynamicError) && (options.revalidateSeconds === null || options.revalidateSeconds === Infinity)) return {
|
|
67
85
|
cacheControl: STATIC_CACHE_CONTROL,
|
|
68
86
|
cacheState: options.isProduction ? "MISS" : "STATIC",
|
|
69
87
|
shouldWriteToCache: options.isProduction
|
|
70
88
|
};
|
|
71
89
|
if (options.dynamicUsedDuringRender) return {
|
|
72
|
-
cacheControl:
|
|
90
|
+
cacheControl: resolveUncacheableCacheControl(options.isProduction),
|
|
73
91
|
shouldWriteToCache: false
|
|
74
92
|
};
|
|
75
93
|
if (options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.revalidateSeconds !== Infinity) return {
|
|
@@ -140,4 +158,4 @@ function buildAppPageHtmlResponse(body, options) {
|
|
|
140
158
|
return response;
|
|
141
159
|
}
|
|
142
160
|
//#endregion
|
|
143
|
-
export { applyClientStaleTimeHeader, applyEdgeRuntimeHeader, buildAppPageHtmlResponse, buildAppPageRscResponse, mergeMiddlewareResponseHeaders, resolveAppPageHtmlResponsePolicy, resolveAppPageRscResponsePolicy };
|
|
161
|
+
export { applyClientStaleTimeHeader, applyEdgeRuntimeHeader, buildAppPageHtmlResponse, buildAppPageRscResponse, mergeMiddlewareResponseHeaders, resolveAppPageHtmlResponsePolicy, resolveAppPageRscResponsePolicy, resolveUncacheableCacheControl };
|