vinext 1.0.0-beta.8 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -84
- package/THIRD_PARTY_LICENSES.md +25 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +1 -13
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +82 -8
- package/dist/build/prerender-paths.js +814 -99
- 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 +67 -15
- package/dist/build/prerender.js +177 -64
- 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 +38 -19
- package/dist/build/report.js +73 -4
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +25 -16
- package/dist/build/server-entry.d.ts +4 -0
- package/dist/build/server-entry.js +28 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +7 -8
- package/dist/cache/cache-adapters-virtual.d.ts +95 -9
- package/dist/cache/cache-adapters-virtual.js +58 -6
- 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 -435
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +21 -17
- package/dist/client/navigation-runtime.js +2 -1
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -8
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +10 -7
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +2 -1
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +5 -6
- package/dist/entries/app-browser-entry.js +3 -2
- package/dist/entries/app-rsc-entry.d.ts +12 -3
- package/dist/entries/app-rsc-entry.js +530 -55
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +27 -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 +237 -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 +832 -199
- package/dist/init-cloudflare.d.ts +27 -16
- package/dist/init-cloudflare.js +754 -113
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +123 -41
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
- package/dist/plugins/ignore-dynamic-requests.js +60 -89
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +31 -43
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +3 -4
- package/dist/plugins/og-assets.d.ts +4 -5
- package/dist/plugins/og-assets.js +32 -13
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +260 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +32 -44
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +2 -3
- package/dist/plugins/require-context.js +13 -21
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +5 -6
- package/dist/plugins/strip-server-exports.js +1 -1
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +3 -4
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +6 -7
- package/dist/plugins/typeof-window.js +30 -31
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +19 -19
- package/dist/routing/app-route-graph.js +3 -2
- package/dist/routing/app-router.d.ts +20 -5
- package/dist/routing/app-router.js +28 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +3 -4
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +121 -40
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +14 -1
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +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 +4 -5
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-browser-visible-commit.js +1 -1
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +26 -27
- package/dist/server/app-history-state.js +19 -11
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +15 -7
- package/dist/server/app-middleware.js +30 -5
- 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 +14 -10
- package/dist/server/app-optimistic-routing.js +16 -3
- 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 +2 -1
- package/dist/server/app-page-cache-finalizer.d.ts +32 -8
- package/dist/server/app-page-cache-finalizer.js +118 -14
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -5
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +96 -25
- package/dist/server/app-page-dispatch.d.ts +36 -12
- package/dist/server/app-page-dispatch.js +188 -63
- 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 +12 -8
- 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 +42 -6
- package/dist/server/app-page-render.js +192 -28
- 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 +31 -13
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +42 -6
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +35 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +49 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +19 -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 +26 -12
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +33 -11
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +115 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +2 -3
- package/dist/server/app-route-handler-cache.js +46 -34
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +75 -57
- package/dist/server/app-route-handler-execution.d.ts +18 -13
- package/dist/server/app-route-handler-execution.js +189 -25
- 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 +22 -10
- package/dist/server/app-route-handler-policy.js +19 -4
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +2 -0
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +2 -0
- package/dist/server/app-router-entry.js +76 -12
- package/dist/server/app-rsc-cache-busting.d.ts +47 -22
- package/dist/server/app-rsc-cache-busting.js +80 -18
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +33 -6
- package/dist/server/app-rsc-handler.js +498 -83
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +2 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +24 -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 +4 -4
- package/dist/server/app-rsc-route-matching.js +4 -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 +120 -6
- package/dist/server/app-segment-config.js +264 -12
- package/dist/server/app-server-action-execution.d.ts +16 -12
- package/dist/server/app-server-action-execution.js +88 -35
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +64 -17
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +33 -7
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +39 -11
- package/dist/server/cache-control.js +104 -7
- 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 +8 -0
- package/dist/server/cacheability-limits.js +9 -0
- package/dist/server/cacheability-manifest.d.ts +68 -0
- package/dist/server/cacheability-manifest.js +241 -0
- package/dist/server/cacheability-request.d.ts +49 -0
- package/dist/server/cacheability-request.js +559 -0
- 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 +39 -5
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +130 -61
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +62 -56
- package/dist/server/headers.js +33 -20
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +28 -27
- package/dist/server/isr-cache.js +18 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-cache-policy.d.ts +2 -3
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +68 -2
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +13 -6
- package/dist/server/middleware-matcher.js +22 -1
- 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 +13 -8
- package/dist/server/middleware-runtime.js +54 -10
- 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/normalize-path.js +1 -1
- 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 +21 -8
- package/dist/server/pages-asset-tags.d.ts +6 -6
- package/dist/server/pages-asset-tags.js +37 -2
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +11 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-i18n.js +3 -2
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +18 -19
- package/dist/server/pages-page-data.js +11 -10
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +98 -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 +49 -31
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +16 -12
- package/dist/server/pages-request-pipeline.js +69 -28
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +314 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +48 -114
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +11 -11
- package/dist/server/prerender-manifest.js +6 -3
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -2
- package/dist/server/prerender-work-unit-setup.d.ts +4 -4
- package/dist/server/prerender-work-unit-setup.js +37 -14
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +129 -36
- 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 +17 -21
- package/dist/server/request-pipeline.js +8 -10
- 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 +2 -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/server-globals.js +13 -0
- 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 +16 -0
- package/dist/server/static-file-signal.js +82 -0
- 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 +18 -0
- package/dist/server/worker-prerender-discovery.js +55 -0
- package/dist/server/worker-revalidation-context.d.ts +2 -3
- package/dist/server/worker-revalidation-context.js +5 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +4 -4
- package/dist/server/workers-tracing.d.ts +17 -0
- package/dist/server/workers-tracing.js +27 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +28 -29
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +239 -121
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +25 -13
- package/dist/shims/cacheability-classification.d.ts +106 -0
- package/dist/shims/cacheability-classification.js +161 -0
- 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 +76 -18
- package/dist/shims/cdn-cache.js +40 -39
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +4 -4
- package/dist/shims/error.js +1 -1
- package/dist/shims/error.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +50 -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 +68 -32
- package/dist/shims/headers.js +101 -10
- 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 +13 -0
- package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
- package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
- 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 +8 -3
- package/dist/shims/internal/make-hanging-promise.js +13 -2
- 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 +12 -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 +67 -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 +45 -17
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/navigation.react-server.js +1 -1
- 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 +7 -6
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +14 -28
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +34 -31
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +18 -12
- package/dist/shims/url-utils.js +10 -1
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +3 -4
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +9 -10
- package/dist/utils/prerender-output-paths.js +16 -9
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +55 -6
|
@@ -1,22 +1,31 @@
|
|
|
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";
|
|
7
|
-
import {
|
|
10
|
+
import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
|
|
11
|
+
import { isRenderDynamicLatched, peekDynamicUsage } from "../shims/headers.js";
|
|
8
12
|
import { runWithFetchDedupe } from "../shims/fetch-cache.js";
|
|
9
|
-
import {
|
|
13
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
14
|
+
import { isBailoutToCSRError } from "../shims/navigation-errors.js";
|
|
15
|
+
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
16
|
+
import { copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
|
|
17
|
+
import { applyEdgeRuntimeHeader, buildAppPageHtmlResponse, buildAppPageRscResponse, resolveAppPageHtmlResponsePolicy, resolveAppPageRscResponsePolicy, resolveUncacheableCacheControl } from "./app-page-response.js";
|
|
10
18
|
import { buildAppPageFontLinkHeader, readAppPageBinaryStream, resolveAppPageSpecialError, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
|
|
11
19
|
import { probeAppPageBeforeRender } from "./app-page-probe.js";
|
|
20
|
+
import { hasDigest } from "./app-rsc-errors.js";
|
|
21
|
+
import { recordAppPageRenderError, traceAppPageRender } from "./app-page-tracing.js";
|
|
22
|
+
import { traceResponseStartWithCompletion } from "./response-start-tracing.js";
|
|
12
23
|
import { DEFAULT_CACHE_VARIANT_BUDGET, buildCacheVariantWithRouteBudget, buildRenderObservation, buildRenderRequestApiObservations, createStaticLayoutArtifactReuseDecision } from "./cache-proof.js";
|
|
13
24
|
import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
|
|
14
|
-
import { finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse } from "./app-page-cache-finalizer.js";
|
|
15
|
-
import { appendRscCompletionMetadata } from "./rsc-completion-metadata.js";
|
|
25
|
+
import { finalizeAppPageCacheabilityEvaluationResponse, finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse } from "./app-page-cache-finalizer.js";
|
|
16
26
|
import { createStaticLayoutClientReuseArtifactCompatibility, createStaticLayoutClientReusePayloadHash, createStaticLayoutClientReuseRouteId } from "./static-layout-client-reuse-proof.js";
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
|
|
27
|
+
import { appendRscCompletionMetadata } from "./rsc-completion-metadata.js";
|
|
28
|
+
import { buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, createAppPageSsrErrorHandler, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery } from "./app-page-stream.js";
|
|
20
29
|
import { getStaticLayoutObservationSkipRejection } from "./app-layout-param-observation.js";
|
|
21
30
|
import { createClientReuseSkipTransportPlan, crossCheckClientReuseManifestEntryWithCache } from "./skip-cache-proof.js";
|
|
22
31
|
//#region src/server/app-page-render.ts
|
|
@@ -53,7 +62,34 @@ function applyRequestCacheLife(options) {
|
|
|
53
62
|
revalidateSeconds
|
|
54
63
|
};
|
|
55
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* A render that is known dynamic is never cacheable: a route Next.js can't make
|
|
67
|
+
* static, draft mode, `force-dynamic`, `revalidate = 0`, or a dynamic API read
|
|
68
|
+
* before the response left the render. Responses that leave the render before
|
|
69
|
+
* its response policy, such as error boundaries and special errors, get the
|
|
70
|
+
* same header as the normal render.
|
|
71
|
+
*/
|
|
72
|
+
function applyIneligibleRouteCachePolicy(response, options) {
|
|
73
|
+
const cacheControl = resolveEarlyResponseCacheControl(options);
|
|
74
|
+
if (!cacheControl) return response;
|
|
75
|
+
const middlewarePolicy = [...options.middlewareContext.headers ?? []].filter(([name, value]) => isCdnResponsePolicyHeader(name) && response.headers.get(name) === value);
|
|
76
|
+
if (middlewarePolicy.some(([name]) => name === "cache-control")) return response;
|
|
77
|
+
const stamped = preserveFullyBufferedBodyMetadata(response, new Response(response.body, response));
|
|
78
|
+
copyLinkHeaderProvenance(response.headers, stamped.headers);
|
|
79
|
+
applyCdnResponseHeaders(stamped.headers, { cacheControl });
|
|
80
|
+
for (const [name, value] of middlewarePolicy) stamped.headers.set(name, value);
|
|
81
|
+
return stamped;
|
|
82
|
+
}
|
|
83
|
+
/** The known-dynamic branches of the RSC and HTML response policies, in their order. */
|
|
84
|
+
function resolveEarlyResponseCacheControl(options) {
|
|
85
|
+
const uncacheable = resolveUncacheableCacheControl(options.isProduction);
|
|
86
|
+
if (!options.isStaticEligible || options.isDraftMode || options.isForceDynamic) return uncacheable;
|
|
87
|
+
if (!options.isRscRequest && (options.scriptNonce || options.isProgressiveActionRender)) return NO_STORE_CACHE_CONTROL;
|
|
88
|
+
const ignoresDynamicUsage = (options.isForceStatic || options.isDynamicError) && (options.revalidateSeconds === null || options.revalidateSeconds === Infinity);
|
|
89
|
+
return options.revalidateSeconds === 0 || !ignoresDynamicUsage && (options.peekDynamicUsage?.() ?? peekDynamicUsage()) ? uncacheable : null;
|
|
90
|
+
}
|
|
56
91
|
function resolveAppPageCacheWriteRevalidateSeconds(options) {
|
|
92
|
+
if (!options.isStaticEligible) return null;
|
|
57
93
|
if (options.revalidateSeconds === null && (options.isForceStatic || options.isDynamicError)) return Infinity;
|
|
58
94
|
return options.revalidateSeconds;
|
|
59
95
|
}
|
|
@@ -266,10 +302,62 @@ function wrapRscResponseForDevErrorReporting(response, consumeInvalidDynamicUsag
|
|
|
266
302
|
});
|
|
267
303
|
}
|
|
268
304
|
async function renderAppPageLifecycle(options) {
|
|
305
|
+
if (options.isRscRequest) {
|
|
306
|
+
const prepared = await prepareAppPageElement(options);
|
|
307
|
+
return prepared instanceof Response ? applyIneligibleRouteCachePolicy(prepared, options) : renderAppPageLifecycleImpl(prepared);
|
|
308
|
+
}
|
|
309
|
+
const operation = options.traceOperation ?? (options.isPrerender ? "prerender" : "render");
|
|
310
|
+
let resolveResponse;
|
|
311
|
+
let rejectResponse;
|
|
312
|
+
let renderCompletion = Promise.resolve();
|
|
313
|
+
const responsePromise = new Promise((resolve, reject) => {
|
|
314
|
+
resolveResponse = resolve;
|
|
315
|
+
rejectResponse = reject;
|
|
316
|
+
});
|
|
317
|
+
traceAppPageRender(options.routePattern, operation, async (renderSpan) => {
|
|
318
|
+
try {
|
|
319
|
+
const prepared = await prepareAppPageElement(options);
|
|
320
|
+
if (prepared instanceof Response) {
|
|
321
|
+
const traced = traceResponseStartWithCompletion(applyIneligibleRouteCachePolicy(prepared, options));
|
|
322
|
+
resolveResponse(traced.response);
|
|
323
|
+
await traced.started;
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
const traced = traceResponseStartWithCompletion(await renderAppPageLifecycleImpl({
|
|
327
|
+
...prepared,
|
|
328
|
+
onRenderComplete(completion) {
|
|
329
|
+
renderCompletion = completion;
|
|
330
|
+
completion.catch(() => {});
|
|
331
|
+
options.onRenderComplete?.(completion);
|
|
332
|
+
}
|
|
333
|
+
}, renderSpan));
|
|
334
|
+
resolveResponse(traced.response);
|
|
335
|
+
await Promise.all([renderCompletion, traced.started]);
|
|
336
|
+
} catch (error) {
|
|
337
|
+
rejectResponse(error);
|
|
338
|
+
throw error;
|
|
339
|
+
}
|
|
340
|
+
}).catch(() => {});
|
|
341
|
+
return responsePromise;
|
|
342
|
+
}
|
|
343
|
+
async function prepareAppPageElement(options) {
|
|
344
|
+
if (!options.prepareElement) return options;
|
|
345
|
+
const prepared = await options.prepareElement();
|
|
346
|
+
return prepared.response ?? {
|
|
347
|
+
...options,
|
|
348
|
+
element: prepared.element
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
async function renderAppPageLifecycleImpl(options, renderSpan) {
|
|
269
352
|
let dynamicUsageObserved = false;
|
|
270
353
|
let dynamicUsageFinalized = false;
|
|
354
|
+
const isCacheCandidateHtmlRender = options.isCacheCandidate === true && options.isPrerender !== true && !options.isRscRequest;
|
|
355
|
+
const readsRenderDynamicLatch = isCacheCandidateHtmlRender || !options.isRscRequest && options.pprFallbackShellSignal === void 0 && (options.isPrerender === true || isRouteCacheabilityEvaluation());
|
|
356
|
+
const readDynamicUsage = bindRequestContext(() => options.consumeDynamicUsage() || readsRenderDynamicLatch && isRenderDynamicLatched());
|
|
357
|
+
const consumeRenderObservationState = options.consumeRenderObservationState && bindRequestContext(options.consumeRenderObservationState);
|
|
358
|
+
const peekRenderDynamicUsage = () => (options.peekDynamicUsage?.() ?? peekDynamicUsage()) || readsRenderDynamicLatch && isRenderDynamicLatched();
|
|
271
359
|
const consumeRenderDynamicUsage = () => {
|
|
272
|
-
if (!dynamicUsageObserved) dynamicUsageObserved =
|
|
360
|
+
if (!dynamicUsageObserved) dynamicUsageObserved = readDynamicUsage();
|
|
273
361
|
return dynamicUsageObserved;
|
|
274
362
|
};
|
|
275
363
|
const finalizeRenderDynamicUsage = () => {
|
|
@@ -304,7 +392,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
304
392
|
},
|
|
305
393
|
classification: options.classification
|
|
306
394
|
});
|
|
307
|
-
if (preRenderResult.response) return preRenderResult.response;
|
|
395
|
+
if (preRenderResult.response) return applyIneligibleRouteCachePolicy(preRenderResult.response, options);
|
|
308
396
|
const layoutFlags = preRenderResult.layoutFlags;
|
|
309
397
|
const artifactCompatibility = createAppPageArtifactCompatibility(options.element, options.routePattern);
|
|
310
398
|
const rootBoundaryId = artifactCompatibility?.rootBoundaryId ?? null;
|
|
@@ -331,7 +419,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
331
419
|
layoutFlags,
|
|
332
420
|
layoutParamAccess: options.layoutParamAccess
|
|
333
421
|
});
|
|
334
|
-
const
|
|
422
|
+
const shouldBypassRscCache = options.isRscRequest && isSkipTransportEnabled(skipDisposition) || options.bypassInterceptionContextCache === true;
|
|
335
423
|
const dynamicStaleTimeSeconds = options.dynamicStaleTimeSeconds ?? resolveConfiguredDynamicStaleTimeSeconds();
|
|
336
424
|
const outgoingElement = AppElementsWire.encodeOutgoingPayload({
|
|
337
425
|
element: options.element,
|
|
@@ -341,7 +429,18 @@ async function renderAppPageLifecycle(options) {
|
|
|
341
429
|
skipDisposition: options.isRscRequest ? skipDisposition : void 0
|
|
342
430
|
});
|
|
343
431
|
const compileEnd = options.isProduction ? void 0 : performance.now();
|
|
344
|
-
const
|
|
432
|
+
const errorContextOverrides = {
|
|
433
|
+
...options.isProgressiveActionRender ? {
|
|
434
|
+
renderSource: "react-server-components-payload",
|
|
435
|
+
routeType: "action"
|
|
436
|
+
} : {},
|
|
437
|
+
...options.isPrerender ? { revalidateReason: "stale" } : {}
|
|
438
|
+
};
|
|
439
|
+
const baseOnError = options.createRscOnErrorHandler(options.cleanPathname, options.routePattern, errorContextOverrides);
|
|
440
|
+
const rscErrorTracker = createAppPageRscErrorTracker((error, requestInfo, errorContext) => {
|
|
441
|
+
if (renderSpan) recordAppPageRenderError(renderSpan, error);
|
|
442
|
+
return baseOnError(error, requestInfo, errorContext);
|
|
443
|
+
});
|
|
345
444
|
let rscStream = await runWithFetchDedupe(async () => {
|
|
346
445
|
if (options.pprFallbackShellSignal && options.prerenderToReadableStream) {
|
|
347
446
|
const reactSignal = options.pprFallbackShellReactSignal ?? options.pprFallbackShellSignal;
|
|
@@ -360,8 +459,8 @@ async function renderAppPageLifecycle(options) {
|
|
|
360
459
|
let expireSeconds = options.expireSeconds;
|
|
361
460
|
const shouldWaitForAllReady = options.isPrerender === true && options.isSpeculativePrerender !== true;
|
|
362
461
|
const shouldReadRequestCacheLifeForPrerender = options.isPrerender === true;
|
|
363
|
-
const mayResolveCacheLifeAfterHeaders = options.isProgressiveActionRender !== true && (revalidateSeconds === null || revalidateSeconds > 0
|
|
364
|
-
const shouldCaptureRscForCacheMetadata = (options.isProduction || options.isPrerender === true) && mayResolveCacheLifeAfterHeaders;
|
|
462
|
+
const mayResolveCacheLifeAfterHeaders = options.isProgressiveActionRender !== true && (revalidateSeconds === null || revalidateSeconds > 0) && !options.isDraftMode && !options.isForceDynamic && !shouldBypassRscCache;
|
|
463
|
+
const shouldCaptureRscForCacheMetadata = (options.isProduction || options.isPrerender === true) && mayResolveCacheLifeAfterHeaders && options.isStaticEligible;
|
|
365
464
|
const createBufferedRscStream = (close) => new ReadableStream({ start(controller) {
|
|
366
465
|
if (pprFallbackShellRsc) controller.enqueue(pprFallbackShellRsc);
|
|
367
466
|
if (close) controller.close();
|
|
@@ -385,7 +484,6 @@ async function renderAppPageLifecycle(options) {
|
|
|
385
484
|
}));
|
|
386
485
|
}
|
|
387
486
|
const dynamicUsedDuringBuild = consumeRenderDynamicUsage();
|
|
388
|
-
const shouldBypassRscCache = shouldBypassRscCacheForSkipTransport;
|
|
389
487
|
const rscResponsePolicy = shouldBypassRscCache ? { cacheControl: NO_STORE_CACHE_CONTROL } : resolveAppPageRscResponsePolicy({
|
|
390
488
|
dynamicUsedDuringBuild,
|
|
391
489
|
isDraftMode: options.isDraftMode,
|
|
@@ -393,10 +491,11 @@ async function renderAppPageLifecycle(options) {
|
|
|
393
491
|
isForceDynamic: options.isForceDynamic,
|
|
394
492
|
isForceStatic: options.isForceStatic,
|
|
395
493
|
isProduction: options.isProduction,
|
|
494
|
+
isStaticEligible: options.isStaticEligible,
|
|
396
495
|
expireSeconds,
|
|
397
496
|
revalidateSeconds
|
|
398
497
|
});
|
|
399
|
-
if (shouldBypassRscCache) options.isrDebug?.("RSC cache write skipped (skip transport payload)", options.cleanPathname);
|
|
498
|
+
if (shouldBypassRscCache) options.isrDebug?.(options.bypassInterceptionContextCache === true ? "RSC cache write skipped (unverified interception context)" : "RSC cache write skipped (skip transport payload)", options.cleanPathname);
|
|
400
499
|
const shouldEmitDynamicStaleTime = dynamicStaleTimeSeconds !== void 0 && options.isPrerender !== true && !options.isForceStatic && (dynamicUsedDuringBuild || options.isForceDynamic);
|
|
401
500
|
const staleTimePending = options.isPrerender !== true && mayResolveCacheLifeAfterHeaders && !dynamicUsedDuringBuild;
|
|
402
501
|
const rscResponse = buildAppPageRscResponse(rscForResponse, {
|
|
@@ -432,11 +531,13 @@ async function renderAppPageLifecycle(options) {
|
|
|
432
531
|
statusText: rscResponse.statusText,
|
|
433
532
|
headers: completionHeaders
|
|
434
533
|
}) : rscResponse;
|
|
435
|
-
|
|
534
|
+
const devRscResponse = !options.isProduction && completionResponse.body && options.consumeInvalidDynamicUsageError ? wrapRscResponseForDevErrorReporting(completionResponse, options.consumeInvalidDynamicUsageError) : completionResponse;
|
|
535
|
+
return finalizeAppPageRscCacheResponse(devRscResponse, {
|
|
436
536
|
capturedRscDataPromise: options.isProduction && shouldCaptureRscForCacheMetadata ? capturedRscDataRef.value : null,
|
|
537
|
+
bypassInterceptionContextCache: options.bypassInterceptionContextCache,
|
|
437
538
|
cleanPathname: options.cleanPathname,
|
|
438
539
|
consumeDynamicUsage: finalizeRenderDynamicUsage,
|
|
439
|
-
consumeRenderObservationState
|
|
540
|
+
consumeRenderObservationState,
|
|
440
541
|
createRscRenderObservation(input) {
|
|
441
542
|
return createAppPageRenderObservation({
|
|
442
543
|
boundaryOutcome: { kind: "success" },
|
|
@@ -466,9 +567,11 @@ async function renderAppPageLifecycle(options) {
|
|
|
466
567
|
renderMode: options.renderMode,
|
|
467
568
|
preserveClientResponseHeaders: rscResponsePolicy.cacheState !== "MISS",
|
|
468
569
|
expireSeconds,
|
|
570
|
+
isStaticEligible: options.isStaticEligible,
|
|
469
571
|
revalidateSeconds: resolveAppPageCacheWriteRevalidateSeconds({
|
|
470
572
|
isDynamicError: options.isDynamicError,
|
|
471
573
|
isForceStatic: options.isForceStatic,
|
|
574
|
+
isStaticEligible: options.isStaticEligible,
|
|
472
575
|
revalidateSeconds
|
|
473
576
|
}),
|
|
474
577
|
waitUntil(promise) {
|
|
@@ -482,6 +585,8 @@ async function renderAppPageLifecycle(options) {
|
|
|
482
585
|
getStyles: options.getFontStyles
|
|
483
586
|
});
|
|
484
587
|
const fontLinkHeader = buildAppPageFontLinkHeader(fontData.preloads);
|
|
588
|
+
const clientTraceMetadataMarker = options.isProduction && options.isPrerender !== true && options.clientTraceMetadata && options.clientTraceMetadata.length > 0 ? crypto.randomUUID() : void 0;
|
|
589
|
+
if (clientTraceMetadataMarker) recordRouteCacheabilityClientTraceMetadataMarker(clientTraceMetadataMarker);
|
|
485
590
|
let requestCacheLifeForPrerender = null;
|
|
486
591
|
let dynamicUsedDuringHtmlRender = false;
|
|
487
592
|
let renderEnd;
|
|
@@ -490,11 +595,30 @@ async function renderAppPageLifecycle(options) {
|
|
|
490
595
|
if (!options.isProduction) renderEnd = performance.now();
|
|
491
596
|
},
|
|
492
597
|
renderErrorBoundaryResponse(error) {
|
|
598
|
+
if (isCacheCandidateHtmlRender && isBailoutToCSRError(error)) {
|
|
599
|
+
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`);
|
|
600
|
+
options.clearRequestContext();
|
|
601
|
+
const headers = new Headers();
|
|
602
|
+
mergeMiddlewareResponseHeaders(headers, options.middlewareContext.headers);
|
|
603
|
+
headers.set("Cache-Control", NEVER_CACHE_CONTROL);
|
|
604
|
+
applyEdgeRuntimeHeader(headers, options.isEdgeRuntime);
|
|
605
|
+
const response = internalServerErrorResponse(void 0, { headers });
|
|
606
|
+
applyCdnResponseHeaders(response.headers, { cacheControl: NEVER_CACHE_CONTROL });
|
|
607
|
+
return Promise.resolve(response);
|
|
608
|
+
}
|
|
493
609
|
const capturedRscError = rscErrorTracker.getCapturedError();
|
|
494
610
|
return options.renderErrorBoundaryResponse(capturedRscError ?? error, capturedRscError === null ? "ssr" : "rsc");
|
|
495
611
|
},
|
|
496
612
|
async renderHtmlStream() {
|
|
497
613
|
const ssrHandler = await options.loadSsrHandler();
|
|
614
|
+
const baseOnSsrError = options.createRscOnErrorHandler(options.cleanPathname, options.routePattern, {
|
|
615
|
+
...errorContextOverrides,
|
|
616
|
+
renderSource: "server-rendering"
|
|
617
|
+
});
|
|
618
|
+
const onSsrError = (error, requestInfo, errorContext) => {
|
|
619
|
+
if (renderSpan) recordAppPageRenderError(renderSpan, error);
|
|
620
|
+
return baseOnSsrError(error, requestInfo, errorContext);
|
|
621
|
+
};
|
|
498
622
|
return renderAppPageHtmlStream({
|
|
499
623
|
capturedRscDataRef,
|
|
500
624
|
getInitialNavigationCacheMetadata: () => {
|
|
@@ -505,7 +629,8 @@ async function renderAppPageLifecycle(options) {
|
|
|
505
629
|
const observation = options.peekRenderObservationState?.();
|
|
506
630
|
kind = observation && (observation.dynamicFetches.length > 0 || observation.requestApis.length > 0) ? "dynamic" : "static";
|
|
507
631
|
}
|
|
508
|
-
const
|
|
632
|
+
const requestCacheLife = options.isPrerender === true ? requestCacheLifeForPrerender ?? options.peekRequestCacheLife?.() : options.peekRequestCacheLife?.();
|
|
633
|
+
const staleTimeSeconds = resolveClientStaleTimeSeconds(requestCacheLife);
|
|
509
634
|
return {
|
|
510
635
|
kind,
|
|
511
636
|
...kind === "dynamic" && dynamicStaleTimeSeconds !== void 0 && options.isPrerender !== true ? { dynamicStaleTimeSeconds } : {},
|
|
@@ -517,6 +642,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
517
642
|
navigationContext: options.getNavigationContext(),
|
|
518
643
|
basePath: options.basePath,
|
|
519
644
|
clientTraceMetadata: options.clientTraceMetadata,
|
|
645
|
+
clientTraceMetadataMarker,
|
|
520
646
|
reactMaxHeadersLength: options.reactMaxHeadersLength,
|
|
521
647
|
rootParams: options.rootParams,
|
|
522
648
|
pprFallbackShellSignal: options.pprFallbackShellSignal,
|
|
@@ -528,7 +654,9 @@ async function renderAppPageLifecycle(options) {
|
|
|
528
654
|
fallbackToErrorDocumentOnShellError: options.isPrerender === true && options.isSpeculativePrerender === true ? false : void 0,
|
|
529
655
|
waitForAllReady: shouldWaitForAllReady,
|
|
530
656
|
isStaticGeneration: options.isPrerender === true,
|
|
531
|
-
isForceStatic: options.isForceStatic
|
|
657
|
+
isForceStatic: options.isForceStatic,
|
|
658
|
+
isCacheCandidate: isCacheCandidateHtmlRender,
|
|
659
|
+
onSsrError: createAppPageSsrErrorHandler(onSsrError, rscErrorTracker.isCapturedError)
|
|
532
660
|
});
|
|
533
661
|
},
|
|
534
662
|
renderSpecialErrorResponse(specialError) {
|
|
@@ -536,7 +664,8 @@ async function renderAppPageLifecycle(options) {
|
|
|
536
664
|
},
|
|
537
665
|
resolveSpecialError: resolveAppPageSpecialError
|
|
538
666
|
});
|
|
539
|
-
|
|
667
|
+
options.onRenderComplete?.(htmlRender.renderComplete);
|
|
668
|
+
if (htmlRender.response) return applyIneligibleRouteCachePolicy(htmlRender.response, options);
|
|
540
669
|
let htmlStream = htmlRender.htmlStream;
|
|
541
670
|
if (!htmlStream) throw new Error("[vinext] Expected an HTML stream when no fallback response was returned");
|
|
542
671
|
const linkHeader = buildAppPageLinkHeader(htmlRender.linkHeader, fontLinkHeader, options.reactMaxHeadersLength);
|
|
@@ -547,14 +676,14 @@ async function renderAppPageLifecycle(options) {
|
|
|
547
676
|
const specialError = resolveAppPageSpecialError(captured);
|
|
548
677
|
if (specialError) {
|
|
549
678
|
htmlStream.cancel().catch(() => {});
|
|
550
|
-
return options.renderPageSpecialError(specialError);
|
|
679
|
+
return applyIneligibleRouteCachePolicy(await options.renderPageSpecialError(specialError), options);
|
|
551
680
|
}
|
|
552
681
|
}
|
|
553
682
|
}
|
|
554
683
|
let dynamicUsedDuringRender = consumeRenderDynamicUsage();
|
|
555
684
|
dynamicUsedDuringHtmlRender = dynamicUsedDuringRender;
|
|
556
685
|
const stopSpeculativeMetadataWaitOnDynamicUsage = options.isSpeculativePrerender === true && shouldReadRequestCacheLifeForPrerender ? () => {
|
|
557
|
-
if (dynamicUsedDuringRender || (
|
|
686
|
+
if (dynamicUsedDuringRender || peekRenderDynamicUsage()) {
|
|
558
687
|
dynamicUsedDuringRender = true;
|
|
559
688
|
dynamicUsedDuringHtmlRender = true;
|
|
560
689
|
return true;
|
|
@@ -562,6 +691,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
562
691
|
return false;
|
|
563
692
|
} : void 0;
|
|
564
693
|
if (shouldWaitForAllReady || shouldReadRequestCacheLifeForPrerender) await settleCapturedRscRenderForCacheMetadata(htmlRender.capturedRscData, stopSpeculativeMetadataWaitOnDynamicUsage);
|
|
694
|
+
if (stopSpeculativeMetadataWaitOnDynamicUsage) await waitUnlessDynamic(htmlRender.renderComplete, stopSpeculativeMetadataWaitOnDynamicUsage);
|
|
565
695
|
if (shouldReadRequestCacheLifeForPrerender) {
|
|
566
696
|
requestCacheLifeForPrerender = readRequestCacheLifeForPrerender(options);
|
|
567
697
|
({expireSeconds, revalidateSeconds} = applyRequestCacheLife({
|
|
@@ -588,6 +718,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
588
718
|
isForceDynamic: options.isForceDynamic,
|
|
589
719
|
isForceStatic: options.isForceStatic,
|
|
590
720
|
isProduction: options.isProduction,
|
|
721
|
+
isStaticEligible: options.isStaticEligible,
|
|
591
722
|
expireSeconds,
|
|
592
723
|
revalidateSeconds
|
|
593
724
|
});
|
|
@@ -629,13 +760,15 @@ async function renderAppPageLifecycle(options) {
|
|
|
629
760
|
});
|
|
630
761
|
if (options.isPrerender === true) return isrResponse;
|
|
631
762
|
return finalizeAppPageHtmlCacheResponse(isrResponse, {
|
|
763
|
+
bypassInterceptionContextCache: options.bypassInterceptionContextCache,
|
|
632
764
|
capturedDynamicUsageBeforeContextCleanup() {
|
|
633
765
|
return dynamicUsedBeforeContextCleanup;
|
|
634
766
|
},
|
|
635
767
|
capturedRscDataPromise: capturedRscDataRef.value,
|
|
636
768
|
cleanPathname: options.cleanPathname,
|
|
769
|
+
clientTraceMetadataMarker,
|
|
637
770
|
consumeDynamicUsage: consumeRenderDynamicUsage,
|
|
638
|
-
consumeRenderObservationState
|
|
771
|
+
consumeRenderObservationState,
|
|
639
772
|
createHtmlRenderObservation(input) {
|
|
640
773
|
return createAppPageRenderObservation({
|
|
641
774
|
boundaryOutcome: { kind: "success" },
|
|
@@ -675,9 +808,11 @@ async function renderAppPageLifecycle(options) {
|
|
|
675
808
|
omitPendingDynamicCacheState: options.omitPendingDynamicCacheState,
|
|
676
809
|
preserveClientResponseHeaders: !htmlResponsePolicy.shouldWriteToCache,
|
|
677
810
|
expireSeconds,
|
|
811
|
+
isStaticEligible: options.isStaticEligible,
|
|
678
812
|
revalidateSeconds: resolveAppPageCacheWriteRevalidateSeconds({
|
|
679
813
|
isDynamicError: options.isDynamicError,
|
|
680
814
|
isForceStatic: options.isForceStatic,
|
|
815
|
+
isStaticEligible: options.isStaticEligible,
|
|
681
816
|
revalidateSeconds
|
|
682
817
|
}),
|
|
683
818
|
linkHeader: linkHeader ?? null,
|
|
@@ -686,7 +821,7 @@ async function renderAppPageLifecycle(options) {
|
|
|
686
821
|
}
|
|
687
822
|
});
|
|
688
823
|
}
|
|
689
|
-
|
|
824
|
+
const response = buildAppPageHtmlResponse(safeHtmlStream, {
|
|
690
825
|
cacheTags: options.isPrerender === true ? options.getPageTags() : void 0,
|
|
691
826
|
draftCookie,
|
|
692
827
|
linkHeader,
|
|
@@ -696,6 +831,27 @@ async function renderAppPageLifecycle(options) {
|
|
|
696
831
|
requestCacheLife: requestCacheLifeForPrerender,
|
|
697
832
|
timing: htmlResponseTiming
|
|
698
833
|
});
|
|
834
|
+
return finalizeAppPageCacheabilityEvaluationResponse(response, {
|
|
835
|
+
capturedDynamicUsageBeforeContextCleanup() {
|
|
836
|
+
return dynamicUsedBeforeContextCleanup;
|
|
837
|
+
},
|
|
838
|
+
consumeDynamicUsage: consumeRenderDynamicUsage,
|
|
839
|
+
consumeRenderObservationState,
|
|
840
|
+
getPageTags() {
|
|
841
|
+
return options.getPageTags();
|
|
842
|
+
},
|
|
843
|
+
getRequestCacheLife() {
|
|
844
|
+
return readRequestCacheLifeForCachePolicy(options);
|
|
845
|
+
},
|
|
846
|
+
expireSeconds,
|
|
847
|
+
isStaticEligible: options.isStaticEligible,
|
|
848
|
+
revalidateSeconds: resolveAppPageCacheWriteRevalidateSeconds({
|
|
849
|
+
isDynamicError: options.isDynamicError,
|
|
850
|
+
isForceStatic: options.isForceStatic,
|
|
851
|
+
isStaticEligible: options.isStaticEligible,
|
|
852
|
+
revalidateSeconds
|
|
853
|
+
})
|
|
854
|
+
});
|
|
699
855
|
}
|
|
700
856
|
async function settleCapturedRscRenderForCacheMetadata(capturedRscDataPromise, shouldStopWaiting) {
|
|
701
857
|
if (!capturedRscDataPromise) return;
|
|
@@ -705,8 +861,16 @@ async function settleCapturedRscRenderForCacheMetadata(capturedRscDataPromise, s
|
|
|
705
861
|
} catch {}
|
|
706
862
|
return;
|
|
707
863
|
}
|
|
864
|
+
await waitUnlessDynamic(capturedRscDataPromise, shouldStopWaiting);
|
|
865
|
+
}
|
|
866
|
+
/**
|
|
867
|
+
* Wait for `promise` to settle, or until `shouldStopWaiting` reports that the
|
|
868
|
+
* render turned dynamic. Rejections are ignored: the response stream and the
|
|
869
|
+
* cache-write path own render error propagation.
|
|
870
|
+
*/
|
|
871
|
+
async function waitUnlessDynamic(promise, shouldStopWaiting) {
|
|
708
872
|
let settled = false;
|
|
709
|
-
const settledPromise =
|
|
873
|
+
const settledPromise = promise.catch(() => {}).then(() => {
|
|
710
874
|
settled = true;
|
|
711
875
|
});
|
|
712
876
|
try {
|
|
@@ -714,4 +878,4 @@ async function settleCapturedRscRenderForCacheMetadata(capturedRscDataPromise, s
|
|
|
714
878
|
} finally {}
|
|
715
879
|
}
|
|
716
880
|
//#endregion
|
|
717
|
-
export { renderAppPageLifecycle };
|
|
881
|
+
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 };
|