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
|
@@ -12,7 +12,7 @@ type AppPageCacheRoute = {
|
|
|
12
12
|
pattern: string;
|
|
13
13
|
routeSegments: readonly string[];
|
|
14
14
|
};
|
|
15
|
-
type RenderAppPageCacheArtifactsOptions = {
|
|
15
|
+
export type RenderAppPageCacheArtifactsOptions = {
|
|
16
16
|
basePath?: string;
|
|
17
17
|
captureRscData: boolean;
|
|
18
18
|
cleanPathname: string;
|
|
@@ -25,7 +25,9 @@ type RenderAppPageCacheArtifactsOptions = {
|
|
|
25
25
|
loadSsrHandler: () => Promise<AppPageSsrHandler>;
|
|
26
26
|
mountedSlotsHeader?: string | null;
|
|
27
27
|
navigationParams: Record<string, unknown>;
|
|
28
|
+
isCapturedRscError?: (error: unknown) => boolean;
|
|
28
29
|
onError: (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown;
|
|
30
|
+
onSsrError?: (error: unknown) => unknown;
|
|
29
31
|
reactMaxHeadersLength?: number;
|
|
30
32
|
renderToReadableStream: (element: AppPageRenderableElement, options: {
|
|
31
33
|
onError: (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown;
|
|
@@ -35,7 +37,7 @@ type RenderAppPageCacheArtifactsOptions = {
|
|
|
35
37
|
waitForAllReady?: boolean;
|
|
36
38
|
isForceStatic?: boolean;
|
|
37
39
|
};
|
|
38
|
-
type RenderAppPageCacheArtifactsResult = {
|
|
40
|
+
export type RenderAppPageCacheArtifactsResult = {
|
|
39
41
|
cacheControl?: CacheControlMetadata;
|
|
40
42
|
html: string;
|
|
41
43
|
htmlRenderObservation: ReturnType<typeof createAppPageRenderObservation>;
|
|
@@ -43,6 +45,8 @@ type RenderAppPageCacheArtifactsResult = {
|
|
|
43
45
|
rscData?: ArrayBuffer;
|
|
44
46
|
rscRenderObservation?: ReturnType<typeof createAppPageRenderObservation>;
|
|
45
47
|
tags: string[];
|
|
48
|
+
/** The render used a dynamic API, so its output must not be stored. */
|
|
49
|
+
usedDynamicApi: boolean;
|
|
46
50
|
};
|
|
47
51
|
/**
|
|
48
52
|
* Render an App page element to HTML (and optionally its RSC payload) for cache
|
|
@@ -50,6 +54,5 @@ type RenderAppPageCacheArtifactsResult = {
|
|
|
50
54
|
* cache-tag construction used by both normal ISR revalidation and PPR fallback
|
|
51
55
|
* shell regeneration.
|
|
52
56
|
*/
|
|
53
|
-
declare function renderAppPageCacheArtifacts(options: RenderAppPageCacheArtifactsOptions): Promise<RenderAppPageCacheArtifactsResult>;
|
|
54
|
-
//#endregion
|
|
55
|
-
export { RenderAppPageCacheArtifactsOptions, RenderAppPageCacheArtifactsResult, renderAppPageCacheArtifacts };
|
|
57
|
+
export declare function renderAppPageCacheArtifacts(options: RenderAppPageCacheArtifactsOptions): Promise<RenderAppPageCacheArtifactsResult>;
|
|
58
|
+
//#endregion
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
+
import { isRenderDynamicLatched } from "../shims/internal/headers-state.js";
|
|
1
2
|
import { consumeDynamicUsage, consumeInvalidDynamicUsageError } from "../shims/headers.js";
|
|
2
3
|
import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
|
|
3
4
|
import { getCollectedFetchTags } from "../shims/fetch-cache.js";
|
|
4
5
|
import { readStreamAsText } from "../utils/text-stream.js";
|
|
5
6
|
import { buildAppPageFontLinkHeader, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
|
|
7
|
+
import { recordAppPageRenderError, traceAppPageRender } from "./app-page-tracing.js";
|
|
6
8
|
import { buildAppPageTags } from "./implicit-tags.js";
|
|
7
9
|
import { consumeAppPageRenderObservationState, createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
|
|
8
|
-
import { buildAppPageLinkHeader, isAppSsrRenderResult } from "./app-page-stream.js";
|
|
10
|
+
import { buildAppPageLinkHeader, createAppPageSsrErrorHandler, isAppSsrRenderResult } from "./app-page-stream.js";
|
|
9
11
|
//#region src/server/app-page-cache-render.ts
|
|
10
12
|
/**
|
|
11
13
|
* Render an App page element to HTML (and optionally its RSC payload) for cache
|
|
@@ -14,7 +16,14 @@ import { buildAppPageLinkHeader, isAppSsrRenderResult } from "./app-page-stream.
|
|
|
14
16
|
* shell regeneration.
|
|
15
17
|
*/
|
|
16
18
|
async function renderAppPageCacheArtifacts(options) {
|
|
17
|
-
|
|
19
|
+
return traceAppPageRender(options.route.pattern, "prerender", (renderSpan) => renderAppPageCacheArtifactsImpl(options, renderSpan));
|
|
20
|
+
}
|
|
21
|
+
async function renderAppPageCacheArtifactsImpl(options, renderSpan) {
|
|
22
|
+
const rscStream = options.renderToReadableStream(options.element, { onError(error, requestInfo, errorContext) {
|
|
23
|
+
recordAppPageRenderError(renderSpan, error);
|
|
24
|
+
return options.onError(error, requestInfo, errorContext);
|
|
25
|
+
} });
|
|
26
|
+
const rscCapture = teeAppPageRscStreamForCapture(rscStream, options.captureRscData);
|
|
18
27
|
const capturedRscDataRef = { value: null };
|
|
19
28
|
const fontPreloads = options.getFontPreloads();
|
|
20
29
|
const htmlResult = await (await options.loadSsrHandler()).handleSsr(rscCapture.ssrStream, options.getNavigationContext(), {
|
|
@@ -29,13 +38,21 @@ async function renderAppPageCacheArtifacts(options) {
|
|
|
29
38
|
waitForAllReady: options.waitForAllReady,
|
|
30
39
|
isStaticGeneration: true,
|
|
31
40
|
isForceStatic: options.isForceStatic,
|
|
41
|
+
onSsrError: options.onSsrError && options.isCapturedRscError ? createAppPageSsrErrorHandler((error) => {
|
|
42
|
+
recordAppPageRenderError(renderSpan, error);
|
|
43
|
+
return options.onSsrError?.(error);
|
|
44
|
+
}, options.isCapturedRscError) : options.onSsrError ? (error) => {
|
|
45
|
+
recordAppPageRenderError(renderSpan, error);
|
|
46
|
+
return options.onSsrError?.(error);
|
|
47
|
+
} : void 0,
|
|
32
48
|
...rscCapture.sideStream ? {
|
|
33
49
|
sideStream: rscCapture.sideStream,
|
|
34
50
|
capturedRscDataRef
|
|
35
51
|
} : {}
|
|
36
52
|
});
|
|
37
53
|
const htmlStream = isAppSsrRenderResult(htmlResult) ? htmlResult.htmlStream : htmlResult;
|
|
38
|
-
const
|
|
54
|
+
const reactLinkHeader = isAppSsrRenderResult(htmlResult) ? htmlResult.linkHeader : void 0;
|
|
55
|
+
const linkHeader = buildAppPageLinkHeader(reactLinkHeader, buildAppPageFontLinkHeader(fontPreloads), options.reactMaxHeadersLength);
|
|
39
56
|
const html = await readStreamAsText(htmlStream);
|
|
40
57
|
let rscData;
|
|
41
58
|
if (options.captureRscData) {
|
|
@@ -47,7 +64,7 @@ async function renderAppPageCacheArtifacts(options) {
|
|
|
47
64
|
const tags = buildAppPageTags(options.cleanPathname, getCollectedFetchTags(), options.route.routeSegments);
|
|
48
65
|
const observationState = consumeAppPageRenderObservationState();
|
|
49
66
|
consumeInvalidDynamicUsageError();
|
|
50
|
-
consumeDynamicUsage();
|
|
67
|
+
const usedDynamicApi = consumeDynamicUsage() || isRenderDynamicLatched();
|
|
51
68
|
const result = {
|
|
52
69
|
html,
|
|
53
70
|
htmlRenderObservation: createAppPageRenderObservation({
|
|
@@ -67,6 +84,7 @@ async function renderAppPageCacheArtifacts(options) {
|
|
|
67
84
|
}),
|
|
68
85
|
...linkHeader ? { linkHeader } : {},
|
|
69
86
|
tags,
|
|
87
|
+
usedDynamicApi,
|
|
70
88
|
cacheControl: typeof cacheLife?.revalidate === "number" ? {
|
|
71
89
|
revalidate: cacheLife.revalidate,
|
|
72
90
|
expire: cacheLife.expire,
|
|
@@ -8,7 +8,7 @@ type AppPageDebugLogger = (event: string, detail: string) => void;
|
|
|
8
8
|
type AppPageCacheGetter = (key: string) => Promise<ISRCacheEntry | null>;
|
|
9
9
|
type AppPageBackgroundRegenerator = (key: string, renderFn: () => Promise<void>) => void;
|
|
10
10
|
type AppPageRscCacheKeyBuilder = (pathname: string, mountedSlotsHeader?: string | null, renderMode?: AppRscRenderMode, interceptionContext?: string | null, interceptionId?: string | null) => string;
|
|
11
|
-
type AppPageCacheOutcomeMetric = Readonly<{
|
|
11
|
+
export type AppPageCacheOutcomeMetric = Readonly<{
|
|
12
12
|
artifact: "html" | "rsc";
|
|
13
13
|
/**
|
|
14
14
|
* Internal cache lookup key for debugging and tests. Runtime telemetry sinks should hash or
|
|
@@ -22,11 +22,18 @@ type AppPageCacheOutcomeRecorder = (metric: AppPageCacheOutcomeMetric) => void;
|
|
|
22
22
|
type AppPageCacheRenderResult = {
|
|
23
23
|
cacheControl?: CacheControlMetadata;
|
|
24
24
|
html: string;
|
|
25
|
-
htmlRenderObservation
|
|
25
|
+
htmlRenderObservation: RenderObservation;
|
|
26
26
|
linkHeader?: string;
|
|
27
27
|
rscData: ArrayBuffer;
|
|
28
|
-
rscRenderObservation
|
|
28
|
+
rscRenderObservation: RenderObservation;
|
|
29
|
+
/**
|
|
30
|
+
* The route-level revalidate of the route this render regenerated, or null
|
|
31
|
+
* when it has none and the render's cacheLife sets it. Undefined keeps the
|
|
32
|
+
* matched route's read seed, as when the render regenerated that route.
|
|
33
|
+
*/
|
|
34
|
+
revalidateSeconds?: number | null;
|
|
29
35
|
tags: string[];
|
|
36
|
+
usedDynamicApi: boolean;
|
|
30
37
|
};
|
|
31
38
|
type BuildAppPageCachedResponseOptions = {
|
|
32
39
|
cacheControl?: CacheControlMetadata;
|
|
@@ -37,12 +44,17 @@ type BuildAppPageCachedResponseOptions = {
|
|
|
37
44
|
middlewareHeaders?: Headers | null;
|
|
38
45
|
middlewareStatus?: number | null;
|
|
39
46
|
mountedSlotsHeader?: string | null;
|
|
47
|
+
/** The current request's route params, which the client reads on RSC responses. */
|
|
48
|
+
params?: Record<string, string | string[]>;
|
|
49
|
+
/** The current request's path and query, which the client reads on RSC responses. */
|
|
50
|
+
renderedPathAndSearch?: string | null;
|
|
40
51
|
revalidateSeconds: number;
|
|
41
52
|
};
|
|
42
53
|
type ReadAppPageCacheResponseOptions = {
|
|
43
54
|
cleanPathname: string;
|
|
44
55
|
clearRequestContext: () => void;
|
|
45
56
|
isEdgeRuntime?: boolean;
|
|
57
|
+
isRoutePPREnabled?: boolean;
|
|
46
58
|
isRscRequest: boolean;
|
|
47
59
|
isrDebug?: AppPageDebugLogger;
|
|
48
60
|
isrGet: AppPageCacheGetter;
|
|
@@ -55,7 +67,14 @@ type ReadAppPageCacheResponseOptions = {
|
|
|
55
67
|
middlewareHeaders?: Headers | null;
|
|
56
68
|
middlewareStatus?: number | null;
|
|
57
69
|
mountedSlotsHeader?: string | null;
|
|
70
|
+
/**
|
|
71
|
+
* Resolves the current request's route params for a cached RSC response.
|
|
72
|
+
* Called only once an entry can answer the request, since resolving them
|
|
73
|
+
* may load route modules.
|
|
74
|
+
*/
|
|
75
|
+
resolveParams?: () => Promise<Record<string, string | string[]>>;
|
|
58
76
|
recordCacheOutcome?: AppPageCacheOutcomeRecorder;
|
|
77
|
+
renderedPathAndSearch?: string | null;
|
|
59
78
|
renderMode?: AppRscRenderMode;
|
|
60
79
|
expireSeconds?: number;
|
|
61
80
|
revalidateSeconds: number;
|
|
@@ -75,10 +94,10 @@ type ReadAppPageFallbackShellCacheResponseOptions = {
|
|
|
75
94
|
revalidateSeconds: number;
|
|
76
95
|
rewriteHtml: (html: string) => string;
|
|
77
96
|
};
|
|
78
|
-
declare function buildAppPageCacheTags(pathname: string, extraTags: readonly string[]): string[];
|
|
79
|
-
declare function buildAppRouteCacheTags(pathname: string, extraTags: readonly string[], routeSegments: readonly string[]): string[];
|
|
80
|
-
declare function buildAppPageCachedResponse(cachedValue: CachedAppPageValue, options: BuildAppPageCachedResponseOptions): Response | null;
|
|
81
|
-
declare function readAppPageCacheResponse(options: ReadAppPageCacheResponseOptions): Promise<Response | null>;
|
|
82
|
-
declare function readAppPageFallbackShellCacheResponse(options: ReadAppPageFallbackShellCacheResponseOptions): Promise<Response | null>;
|
|
97
|
+
export declare function buildAppPageCacheTags(pathname: string, extraTags: readonly string[]): string[];
|
|
98
|
+
export declare function buildAppRouteCacheTags(pathname: string, extraTags: readonly string[], routeSegments: readonly string[]): string[];
|
|
99
|
+
export declare function buildAppPageCachedResponse(cachedValue: CachedAppPageValue, options: BuildAppPageCachedResponseOptions): Response | null;
|
|
100
|
+
export declare function readAppPageCacheResponse(options: ReadAppPageCacheResponseOptions): Promise<Response | null>;
|
|
101
|
+
export declare function readAppPageFallbackShellCacheResponse(options: ReadAppPageFallbackShellCacheResponseOptions): Promise<Response | null>;
|
|
83
102
|
//#endregion
|
|
84
|
-
export {
|
|
103
|
+
export { finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse, scheduleAppPageRscCacheWrite };
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_VARY_HEADER } from "./
|
|
2
|
-
import {
|
|
1
|
+
import { VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
|
|
2
|
+
import { VINEXT_PARAMS_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER } from "./headers.js";
|
|
3
3
|
import { applyCdnResponseHeaders } from "./cache-control.js";
|
|
4
4
|
import { decideIsr } from "./isr-decision.js";
|
|
5
|
-
import { buildAppPageCacheValue, isrCacheControl } from "./isr-cache.js";
|
|
5
|
+
import { buildAppPageCacheValue, isrCacheControl, resolveRouteExpireSeconds } from "./isr-cache.js";
|
|
6
|
+
import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
|
|
6
7
|
import { encodeCacheTag } from "../utils/encode-cache-tag.js";
|
|
7
8
|
import { setCacheStateHeaders } from "./cache-headers.js";
|
|
8
9
|
import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, applyRscDeploymentIdHeader } from "./app-rsc-cache-busting.js";
|
|
9
10
|
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
10
11
|
import { markFrameworkLinkHeaders } from "./app-response-header-provenance.js";
|
|
11
12
|
import { applyClientStaleTimeHeader, applyEdgeRuntimeHeader } from "./app-page-response.js";
|
|
12
|
-
import {
|
|
13
|
+
import { hasQueryInvariantRenderProof } from "./cache-proof.js";
|
|
13
14
|
import { isAppPprDynamicFallbackShellHtml } from "./app-ppr-fallback-shell.js";
|
|
14
15
|
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
15
16
|
import { finalizeAppPageHtmlCacheResponse, finalizeAppPageRscCacheResponse, scheduleAppPageRscCacheWrite } from "./app-page-cache-finalizer.js";
|
|
@@ -49,28 +50,44 @@ function buildAppPageCachedHeaders(options) {
|
|
|
49
50
|
applyCdnResponseHeaders(headers, { cacheControl: options.cacheControl });
|
|
50
51
|
setCacheStateHeaders(headers, options.cacheState);
|
|
51
52
|
applyEdgeRuntimeHeader(headers, options.isEdgeRuntime);
|
|
53
|
+
if (options.params && Object.keys(options.params).length > 0) headers.set(VINEXT_PARAMS_HEADER, encodeURIComponent(JSON.stringify(options.params)));
|
|
52
54
|
if (options.mountedSlotsHeader) headers.set(VINEXT_MOUNTED_SLOTS_HEADER, options.mountedSlotsHeader);
|
|
53
55
|
applyClientStaleTimeHeader(headers, options.staleTimeSeconds);
|
|
54
56
|
mergeMiddlewareResponseHeaders(headers, options.middlewareHeaders ?? null);
|
|
55
|
-
if (options.linkHeader)
|
|
56
|
-
|
|
57
|
+
if (options.linkHeader) {
|
|
58
|
+
if (Array.isArray(options.linkHeader)) for (const value of options.linkHeader) headers.append("Link", value);
|
|
59
|
+
else headers.append("Link", options.linkHeader);
|
|
60
|
+
}
|
|
57
61
|
return headers;
|
|
58
62
|
}
|
|
59
63
|
function getCachedAppPageValue(entry) {
|
|
60
64
|
return entry?.value.value && entry.value.value.kind === "APP_PAGE" ? entry.value.value : null;
|
|
61
65
|
}
|
|
62
|
-
function hasQueryInvariantAppPageProof(cachedValue) {
|
|
63
|
-
return cachedValue.renderObservation !== void 0 && hasCompleteNegativeRequestApiProof(cachedValue.renderObservation, ["searchParams"]);
|
|
64
|
-
}
|
|
65
66
|
function resolveRegeneratedAppPageCacheControl(options) {
|
|
66
|
-
let revalidateSeconds = options.routeRevalidateSeconds;
|
|
67
67
|
const renderRevalidateSeconds = options.renderCacheControl?.revalidate;
|
|
68
|
-
|
|
68
|
+
let revalidateSeconds;
|
|
69
|
+
if (typeof renderRevalidateSeconds === "number") revalidateSeconds = options.routeRevalidateSeconds === null ? renderRevalidateSeconds : Math.min(options.routeRevalidateSeconds, renderRevalidateSeconds);
|
|
70
|
+
else revalidateSeconds = options.routeRevalidateSeconds ?? 0;
|
|
69
71
|
return isrCacheControl(revalidateSeconds, {
|
|
70
|
-
expireSeconds: options.renderCacheControl?.expire ?? options.expireSeconds,
|
|
72
|
+
expireSeconds: options.renderCacheControl?.expire ?? resolveRouteExpireSeconds(revalidateSeconds, options.expireSeconds),
|
|
71
73
|
staleSeconds: resolveClientStaleTimeSeconds(options.renderCacheControl)
|
|
72
74
|
});
|
|
73
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* When a regeneration fails, Next.js re-stores the previous entry with a short
|
|
78
|
+
* revalidate so it isn't retried on every request
|
|
79
|
+
* (`server/response-cache/index.ts`). `revalidate = false`, which vinext holds
|
|
80
|
+
* as Infinity, retries after 3 s like Next.js's `revalidate || 3`.
|
|
81
|
+
*/
|
|
82
|
+
function resolveRegenerationFailureCacheControl(previous) {
|
|
83
|
+
const previousRevalidate = typeof previous.revalidate === "number" && Number.isFinite(previous.revalidate) ? previous.revalidate : 0;
|
|
84
|
+
const revalidate = Math.min(Math.max(previousRevalidate || 3, 3), 30);
|
|
85
|
+
return {
|
|
86
|
+
revalidate,
|
|
87
|
+
...previous.expire === void 0 ? {} : { expire: Math.max(revalidate + 3, previous.expire) },
|
|
88
|
+
...previous.stale === void 0 ? {} : { stale: previous.stale }
|
|
89
|
+
};
|
|
90
|
+
}
|
|
74
91
|
function buildAppPageCachedResponse(cachedValue, options) {
|
|
75
92
|
const status = options.middlewareStatus ?? (cachedValue.status || 200);
|
|
76
93
|
const { cacheControl } = decideIsr({
|
|
@@ -90,8 +107,10 @@ function buildAppPageCachedResponse(cachedValue, options) {
|
|
|
90
107
|
isEdgeRuntime: options.isEdgeRuntime,
|
|
91
108
|
middlewareHeaders: options.middlewareHeaders,
|
|
92
109
|
mountedSlotsHeader: options.mountedSlotsHeader,
|
|
110
|
+
params: options.params,
|
|
93
111
|
staleTimeSeconds
|
|
94
112
|
});
|
|
113
|
+
if (options.renderedPathAndSearch) rscHeaders.set(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER, encodeURIComponent(options.renderedPathAndSearch));
|
|
95
114
|
applyRscCompatibilityIdHeader(rscHeaders);
|
|
96
115
|
applyRscDeploymentIdHeader(rscHeaders);
|
|
97
116
|
return new Response(cachedValue.rscData, {
|
|
@@ -150,6 +169,16 @@ async function readAppPageCacheResponse(options) {
|
|
|
150
169
|
}
|
|
151
170
|
const isrKey = options.isRscRequest ? options.isrRscKey(options.cleanPathname, null, options.renderMode, options.interceptionContext, options.interceptionId) : options.isrHtmlKey(options.cleanPathname);
|
|
152
171
|
const artifact = options.isRscRequest ? "rsc" : "html";
|
|
172
|
+
let paramsFailure;
|
|
173
|
+
const resolveCachedResponseParams = async (cachedValue) => {
|
|
174
|
+
if (!options.isRscRequest || !cachedValue.rscData) return void 0;
|
|
175
|
+
try {
|
|
176
|
+
return await options.resolveParams?.();
|
|
177
|
+
} catch (error) {
|
|
178
|
+
paramsFailure = { error };
|
|
179
|
+
throw error;
|
|
180
|
+
}
|
|
181
|
+
};
|
|
153
182
|
try {
|
|
154
183
|
const cached = await options.isrGet(isrKey);
|
|
155
184
|
const cachedValue = getCachedAppPageValue(cached);
|
|
@@ -173,7 +202,7 @@ async function readAppPageCacheResponse(options) {
|
|
|
173
202
|
options.isrDebug?.("MISS (non app-page cache entry)", options.cleanPathname);
|
|
174
203
|
return null;
|
|
175
204
|
}
|
|
176
|
-
if (cachedValue && options.hasRequestSearchParams === true && !
|
|
205
|
+
if (cachedValue && options.hasRequestSearchParams === true && cachedValue.prerendered !== true && !hasQueryInvariantRenderProof(cachedValue.renderObservation)) {
|
|
177
206
|
recordAppPageCacheOutcome(options.recordCacheOutcome, {
|
|
178
207
|
artifact,
|
|
179
208
|
cacheKey: isrKey,
|
|
@@ -193,6 +222,8 @@ async function readAppPageCacheResponse(options) {
|
|
|
193
222
|
middlewareHeaders: options.middlewareHeaders,
|
|
194
223
|
middlewareStatus: options.middlewareStatus,
|
|
195
224
|
mountedSlotsHeader: options.mountedSlotsHeader,
|
|
225
|
+
params: await resolveCachedResponseParams(cachedValue),
|
|
226
|
+
renderedPathAndSearch: options.renderedPathAndSearch,
|
|
196
227
|
revalidateSeconds: options.revalidateSeconds
|
|
197
228
|
});
|
|
198
229
|
if (hitResponse) {
|
|
@@ -215,23 +246,60 @@ async function readAppPageCacheResponse(options) {
|
|
|
215
246
|
options.isrDebug?.("MISS (empty cached entry)", options.cleanPathname);
|
|
216
247
|
}
|
|
217
248
|
if (cached?.isStale && cachedValue) {
|
|
218
|
-
|
|
249
|
+
const keepPreviousEntry = async (key, previous) => {
|
|
250
|
+
const previousValue = getCachedAppPageValue(previous);
|
|
251
|
+
const previousCacheControl = previous.value.cacheControl;
|
|
252
|
+
const previousTags = previousValue?.renderObservation?.cacheTags;
|
|
253
|
+
if (!previousValue || !previousCacheControl || !previousTags || previous.isExpired) return;
|
|
254
|
+
try {
|
|
255
|
+
const current = await options.isrGet(key);
|
|
256
|
+
if (!current || current.value.lastModified === previous.value.lastModified) await options.isrSet(key, previousValue, {
|
|
257
|
+
cacheControl: resolveRegenerationFailureCacheControl(previousCacheControl),
|
|
258
|
+
tags: [...previousTags]
|
|
259
|
+
});
|
|
260
|
+
} catch (storeError) {
|
|
261
|
+
console.error(`[vinext] Failed to keep the previous entry for ${key}:`, storeError);
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
const regenerate = async () => {
|
|
219
265
|
const revalidatedPage = await options.renderFreshPageForCache();
|
|
220
266
|
const cacheControl = resolveRegeneratedAppPageCacheControl({
|
|
221
267
|
expireSeconds: options.expireSeconds,
|
|
222
268
|
renderCacheControl: revalidatedPage.cacheControl,
|
|
223
|
-
routeRevalidateSeconds: options.revalidateSeconds
|
|
269
|
+
routeRevalidateSeconds: revalidatedPage.revalidateSeconds === void 0 ? options.revalidateSeconds || null : revalidatedPage.revalidateSeconds
|
|
224
270
|
});
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
271
|
+
if (options.isRoutePPREnabled !== true && (revalidatedPage.usedDynamicApi || cacheControl.revalidate === 0)) throw new Error(`Page changed from static to dynamic at runtime ${options.cleanPathname}
|
|
272
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`);
|
|
273
|
+
if (!hasQueryInvariantRenderProof(revalidatedPage.rscRenderObservation) || !options.isRscRequest && !hasQueryInvariantRenderProof(revalidatedPage.htmlRenderObservation)) {
|
|
274
|
+
options.isrDebug?.("regen write skipped (searchParams not proven unread)", isrKey);
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
const rscKey = options.isRscRequest ? isrKey : options.isrRscKey(options.cleanPathname, null, options.renderMode, options.interceptionContext, options.interceptionId);
|
|
278
|
+
const store = async (key, value) => {
|
|
279
|
+
try {
|
|
280
|
+
await options.isrSet(key, value, {
|
|
281
|
+
cacheControl,
|
|
282
|
+
tags: revalidatedPage.tags
|
|
283
|
+
});
|
|
284
|
+
return true;
|
|
285
|
+
} catch (storeError) {
|
|
286
|
+
console.warn(`[vinext] Failed to update prerender cache for ${key}:`, storeError);
|
|
287
|
+
return false;
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
if (!await store(rscKey, buildAppPageCacheValue("", revalidatedPage.rscData, 200, revalidatedPage.rscRenderObservation))) return;
|
|
291
|
+
if (!options.isRscRequest) {
|
|
292
|
+
if (!await store(isrKey, buildAppPageCacheValue(revalidatedPage.html, void 0, 200, revalidatedPage.htmlRenderObservation, revalidatedPage.linkHeader ? { link: revalidatedPage.linkHeader } : void 0))) return;
|
|
293
|
+
}
|
|
234
294
|
options.isrDebug?.("regen complete", options.cleanPathname);
|
|
295
|
+
};
|
|
296
|
+
options.scheduleBackgroundRegeneration(isrKey, async () => {
|
|
297
|
+
try {
|
|
298
|
+
await regenerate();
|
|
299
|
+
} catch (error) {
|
|
300
|
+
await keepPreviousEntry(isrKey, cached);
|
|
301
|
+
throw error;
|
|
302
|
+
}
|
|
235
303
|
});
|
|
236
304
|
const staleResponse = buildAppPageCachedResponse(cachedValue, {
|
|
237
305
|
cacheState: "STALE",
|
|
@@ -242,6 +310,8 @@ async function readAppPageCacheResponse(options) {
|
|
|
242
310
|
middlewareHeaders: options.middlewareHeaders,
|
|
243
311
|
middlewareStatus: options.middlewareStatus,
|
|
244
312
|
mountedSlotsHeader: options.mountedSlotsHeader,
|
|
313
|
+
params: await resolveCachedResponseParams(cachedValue),
|
|
314
|
+
renderedPathAndSearch: options.renderedPathAndSearch,
|
|
245
315
|
revalidateSeconds: options.revalidateSeconds
|
|
246
316
|
});
|
|
247
317
|
if (staleResponse) {
|
|
@@ -273,6 +343,7 @@ async function readAppPageCacheResponse(options) {
|
|
|
273
343
|
options.isrDebug?.("MISS (no cache entry)", options.cleanPathname);
|
|
274
344
|
}
|
|
275
345
|
} catch (isrReadError) {
|
|
346
|
+
if (paramsFailure) throw paramsFailure.error;
|
|
276
347
|
recordAppPageCacheOutcome(options.recordCacheOutcome, {
|
|
277
348
|
artifact,
|
|
278
349
|
cacheKey: isrKey,
|
|
@@ -10,6 +10,7 @@ import { AppPageMiddlewareContext } from "./app-page-response.js";
|
|
|
10
10
|
import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
|
|
11
11
|
import { RootParams } from "../shims/root-params.js";
|
|
12
12
|
import { AppPageSsrHandler } from "./app-page-stream.js";
|
|
13
|
+
import { AppRenderErrorContextOverrides } from "./app-rsc-error-handler.js";
|
|
13
14
|
import { AppPageCacheSetter, ISRCacheEntry } from "./isr-cache.js";
|
|
14
15
|
import { PprFallbackShellState } from "../shims/ppr-fallback-shell.js";
|
|
15
16
|
import { FetchCacheMode } from "../shims/fetch-cache.js";
|
|
@@ -21,14 +22,15 @@ import { ReactFormState } from "react-dom/client";
|
|
|
21
22
|
//#region src/server/app-page-dispatch.d.ts
|
|
22
23
|
type AppPageParams = Record<string, string | string[]>;
|
|
23
24
|
type AppPageElement = ReactNode | Readonly<Record<string, ReactNode>>;
|
|
24
|
-
type AppPageRenderableElement = ReactNode | AppOutgoingElements;
|
|
25
|
-
type AppPageBoundaryOnError = (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown;
|
|
25
|
+
export type AppPageRenderableElement = ReactNode | AppOutgoingElements;
|
|
26
|
+
export type AppPageBoundaryOnError = (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown;
|
|
26
27
|
type AppPageDebugLogger = (event: string, detail: string) => void;
|
|
27
28
|
type AppPageCacheGetter = (key: string) => Promise<ISRCacheEntry | null>;
|
|
28
29
|
type AppPageBackgroundRegenerationErrorContext = {
|
|
29
30
|
routerKind: "App Router";
|
|
30
31
|
routePath: string;
|
|
31
32
|
routeType: "render";
|
|
33
|
+
shouldReport?: (error: unknown) => boolean;
|
|
32
34
|
};
|
|
33
35
|
type AppPageBackgroundRegenerator = (key: string, renderFn: () => Promise<void>, errorContext?: AppPageBackgroundRegenerationErrorContext) => void;
|
|
34
36
|
type AppPageDispatchIntercept<TPage = unknown> = {
|
|
@@ -86,7 +88,7 @@ type AppPageDispatchSlot = {
|
|
|
86
88
|
slotPatternParts?: readonly string[] | null;
|
|
87
89
|
slotParamNames?: readonly string[] | null;
|
|
88
90
|
};
|
|
89
|
-
type AppPageDispatchRoute = {
|
|
91
|
+
export type AppPageDispatchRoute = {
|
|
90
92
|
__buildTimeClassifications?: LayoutClassificationOptions["buildTimeClassifications"];
|
|
91
93
|
__buildTimeReasons?: LayoutClassificationOptions["buildTimeReasons"];
|
|
92
94
|
error?: AppPageModule | null;
|
|
@@ -110,15 +112,15 @@ type AppPageDispatchRoute = {
|
|
|
110
112
|
unauthorizedTreePosition?: number | null;
|
|
111
113
|
unauthorizeds?: readonly (AppPageModule | null | undefined)[];
|
|
112
114
|
};
|
|
113
|
-
type AppPagePprRuntime<TRoute extends AppPageDispatchRoute> = {
|
|
115
|
+
export type AppPagePprRuntime<TRoute extends AppPageDispatchRoute> = {
|
|
114
116
|
beginFinalRender(state: AppPagePprState): void;
|
|
115
117
|
getState(): AppPagePprState | null;
|
|
116
118
|
run<T>(shell: NonNullable<DispatchAppPageOptions<TRoute>["pprFallbackShell"]>, fn: () => T): T;
|
|
117
119
|
tryServe(options: DispatchAppPageOptions<TRoute>, currentRevalidateSeconds: number | null, isDraftMode: boolean, isForceStatic: boolean, isForceDynamic: boolean): Promise<Response | null>;
|
|
118
120
|
warm(options: WarmPprFallbackShellCachesOptions): Promise<void>;
|
|
119
121
|
};
|
|
120
|
-
type AppPagePprState = PprFallbackShellState;
|
|
121
|
-
type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
122
|
+
export type AppPagePprState = PprFallbackShellState;
|
|
123
|
+
export type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
122
124
|
/** Configured basePath (e.g. "/blog"). Used to prefix redirect Locations. */
|
|
123
125
|
basePath?: string;
|
|
124
126
|
/** Bypass shared RSC caches when the client-supplied interception context was not verified. */
|
|
@@ -136,6 +138,7 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
136
138
|
*/
|
|
137
139
|
reactMaxHeadersLength?: number;
|
|
138
140
|
buildPageElement: (route: TRoute, params: AppPageParams, opts: AppPageDispatchInterceptOptions | undefined, searchParams: URLSearchParams, layoutParamAccess?: AppLayoutParamAccessTracker, options?: {
|
|
141
|
+
isForceStatic?: boolean;
|
|
139
142
|
observeMetadataSearchParamsAccess?: boolean;
|
|
140
143
|
observePageSearchParamsAccess?: boolean;
|
|
141
144
|
serveStreamingMetadata?: boolean;
|
|
@@ -144,7 +147,7 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
144
147
|
cleanPathname: string;
|
|
145
148
|
displayPathname?: string;
|
|
146
149
|
clearRequestContext: () => void;
|
|
147
|
-
createRscOnErrorHandler: (pathname: string, routePath: string) => AppPageBoundaryOnError;
|
|
150
|
+
createRscOnErrorHandler: (pathname: string, routePath: string, overrides?: AppRenderErrorContextOverrides) => AppPageBoundaryOnError;
|
|
148
151
|
debugClassification?: (layoutId: string, reason: ClassificationReason) => void;
|
|
149
152
|
draftModeSecret: string;
|
|
150
153
|
dynamicConfig?: string;
|
|
@@ -167,7 +170,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
167
170
|
getFontStyles: () => string[];
|
|
168
171
|
getNavigationContext: () => NavigationContext | null;
|
|
169
172
|
getSourceRoute: (sourceRouteIndex: number) => TRoute | undefined;
|
|
173
|
+
/**
|
|
174
|
+
* Whether `generateStaticParams` is exported at or below the route's last
|
|
175
|
+
* dynamic segment (`hasAppPageGenerateStaticParamsAtLastDynamicSegment`).
|
|
176
|
+
*/
|
|
170
177
|
hasGenerateStaticParams: boolean;
|
|
178
|
+
/** Whether any segment of the route exports `generateStaticParams`. */
|
|
179
|
+
hasAnyGenerateStaticParams: boolean;
|
|
171
180
|
hasCustomGlobalError?: boolean;
|
|
172
181
|
hasPageDefaultExport: boolean;
|
|
173
182
|
hasPageModule: boolean;
|
|
@@ -175,6 +184,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
175
184
|
htmlLimitedBots?: string;
|
|
176
185
|
interceptionContext: string | null;
|
|
177
186
|
isEdgeRuntime?: boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Whether the route's loader tree resolves `runtime = "edge"` (or
|
|
189
|
+
* `"experimental-edge"`), which disables static generation outside
|
|
190
|
+
* `cacheComponents`. Every parallel branch merges at each node, as
|
|
191
|
+
* in Next.js's Turbopack build (`collectAppPageStaticGenerationRuntimes`).
|
|
192
|
+
*/
|
|
193
|
+
isStaticGenerationEdgeRuntime?: boolean;
|
|
178
194
|
isProgressiveActionRender?: boolean;
|
|
179
195
|
isProduction: boolean;
|
|
180
196
|
isRscRequest: boolean;
|
|
@@ -231,6 +247,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
231
247
|
resolveRouteFetchCacheMode?: (route: TRoute) => FetchCacheMode | null;
|
|
232
248
|
resolveRouteRevalidateSeconds?: (route: TRoute) => number | null;
|
|
233
249
|
resolveRouteDynamicConfig?: (route: TRoute) => string | null | undefined;
|
|
250
|
+
/**
|
|
251
|
+
* `isAppPageStaticEligible` for another route, from that route's own segment
|
|
252
|
+
* config, `generateStaticParams`, dynamism and runtime. A direct intercepted
|
|
253
|
+
* RSC response renders its source route, so it takes the source's
|
|
254
|
+
* cacheability.
|
|
255
|
+
*/
|
|
256
|
+
resolveRouteStaticEligible: (route: TRoute) => boolean;
|
|
234
257
|
rootForbiddenModule?: AppPageModule | null;
|
|
235
258
|
rootNotFoundModule?: AppPageModule | null;
|
|
236
259
|
rootUnauthorizedModule?: AppPageModule | null;
|
|
@@ -246,7 +269,7 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
246
269
|
}) => void;
|
|
247
270
|
renderMode?: AppRscRenderMode;
|
|
248
271
|
};
|
|
249
|
-
declare function shouldReadAppPageCache(options: {
|
|
272
|
+
export declare function shouldReadAppPageCache(options: {
|
|
250
273
|
isProgressiveActionRender: boolean;
|
|
251
274
|
isDraftMode: boolean;
|
|
252
275
|
isForceDynamic: boolean;
|
|
@@ -255,7 +278,6 @@ declare function shouldReadAppPageCache(options: {
|
|
|
255
278
|
revalidateSeconds: number | null;
|
|
256
279
|
scriptNonce?: string;
|
|
257
280
|
}): boolean;
|
|
258
|
-
declare function hasSearchParams(searchParams: URLSearchParams | null | undefined): boolean;
|
|
259
|
-
declare function dispatchAppPage<TRoute extends AppPageDispatchRoute>(options: DispatchAppPageOptions<TRoute>): Promise<Response>;
|
|
260
|
-
//#endregion
|
|
261
|
-
export { AppPageBoundaryOnError, AppPageDispatchRoute, AppPagePprRuntime, AppPagePprState, AppPageRenderableElement, DispatchAppPageOptions, dispatchAppPage, hasSearchParams, shouldReadAppPageCache };
|
|
281
|
+
export declare function hasSearchParams(searchParams: URLSearchParams | null | undefined): boolean;
|
|
282
|
+
export declare function dispatchAppPage<TRoute extends AppPageDispatchRoute>(options: DispatchAppPageOptions<TRoute>): Promise<Response>;
|
|
283
|
+
//#endregion
|