vinext 1.0.0-beta.9 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -92
- package/THIRD_PARTY_LICENSES.md +51 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +7 -14
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +274 -102
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +73 -16
- package/dist/build/prerender.js +272 -80
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +26 -16
- package/dist/build/server-entry.d.ts +6 -0
- package/dist/build/server-entry.js +34 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/browser-globals.d.ts +4 -0
- package/dist/client/browser-globals.js +5 -0
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +20 -17
- package/dist/client/navigation-runtime.js +4 -3
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +14 -2
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +503 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +848 -255
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +711 -103
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +126 -42
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/commonjs-syntax.d.ts +16 -0
- package/dist/plugins/commonjs-syntax.js +22 -0
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +14 -4
- package/dist/plugins/ignore-dynamic-requests.js +113 -91
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +36 -48
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +5 -4
- package/dist/plugins/og-asset-ownership.js +24 -13
- package/dist/plugins/og-assets.d.ts +22 -5
- package/dist/plugins/og-assets.js +82 -21
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +271 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +34 -45
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +3 -3
- package/dist/plugins/require-context.js +41 -22
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/scan-build-css.d.ts +12 -0
- package/dist/plugins/scan-build-css.js +39 -0
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +7 -6
- package/dist/plugins/strip-server-exports.js +4 -2
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +21 -4
- package/dist/plugins/transform-result.js +23 -2
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +16 -7
- package/dist/plugins/typeof-window.js +62 -39
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +18 -19
- package/dist/routing/app-route-graph.js +5 -6
- package/dist/routing/app-route-ids.d.ts +3 -0
- package/dist/routing/app-route-ids.js +6 -0
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +4 -4
- package/dist/server/app-bfcache-id.js +7 -1
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-bfcache-identity.js +1 -2
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +91 -36
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +15 -2
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +9 -5
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +7 -3
- package/dist/server/app-browser-stream.d.ts +5 -6
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +25 -27
- package/dist/server/app-history-state.js +21 -16
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -4
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -24
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +43 -7
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +50 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +18 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-abort-error.d.ts +3 -0
- package/dist/server/app-render-abort-error.js +8 -0
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +112 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +4 -4
- package/dist/server/app-route-handler-cache.js +51 -35
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +77 -56
- package/dist/server/app-route-handler-execution.d.ts +26 -14
- package/dist/server/app-route-handler-execution.js +94 -28
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-policy.js +2 -2
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +14 -3
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +4 -1
- package/dist/server/app-router-entry.js +33 -17
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +11 -9
- package/dist/server/app-rsc-errors.js +14 -16
- package/dist/server/app-rsc-handler.d.ts +32 -6
- package/dist/server/app-rsc-handler.js +425 -64
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +5 -3
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +10 -7
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +18 -13
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +62 -15
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +34 -8
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +64 -6
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +192 -90
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +141 -64
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +56 -61
- package/dist/server/headers.js +22 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-error-responses.js +1 -0
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +30 -27
- package/dist/server/isr-cache.js +23 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +158 -35
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +28 -9
- package/dist/server/pages-asset-tags.d.ts +7 -6
- package/dist/server/pages-asset-tags.js +104 -18
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +13 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +23 -19
- package/dist/server/pages-page-data.js +82 -75
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +103 -47
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +52 -32
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +15 -12
- package/dist/server/pages-request-pipeline.js +80 -35
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +316 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +17 -11
- package/dist/server/prerender-manifest.js +7 -4
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +127 -44
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +4 -4
- package/dist/server/worker-revalidation-context.js +6 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +34 -0
- package/dist/server/workers-tracing.js +67 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +26 -38
- package/dist/shims/cache-request-state.js +2 -13
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +110 -28
- package/dist/shims/cache.d.ts +17 -16
- package/dist/shims/cache.js +19 -15
- package/dist/shims/cacheability-classification.d.ts +50 -29
- package/dist/shims/cacheability-classification.js +29 -14
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +59 -21
- package/dist/shims/cdn-cache.js +31 -47
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +5 -19
- package/dist/shims/error.js +17 -10
- package/dist/shims/error.react-server.d.ts +4 -7
- package/dist/shims/error.react-server.js +4 -1
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +46 -20
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +44 -73
- package/dist/shims/headers.js +87 -144
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cache-context-accessor.d.ts +16 -0
- package/dist/shims/internal/cache-context-accessor.js +15 -0
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/headers-state.d.ts +74 -0
- package/dist/shims/internal/headers-state.js +157 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +26 -18
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/root-params.js +1 -1
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +66 -30
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +35 -32
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +4 -4
- package/dist/utils/encode-cache-tag.js +11 -1
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +151 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +51 -6
- package/dist/server/metadata-route-cache-policy.d.ts +0 -6
- package/dist/server/metadata-route-cache-policy.js +0 -6
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { NextI18nConfig } from "../config/next-config.js";
|
|
2
2
|
import { ExecutionContextLike } from "../shims/request-context.js";
|
|
3
3
|
import { NextRequest } from "../shims/server.js";
|
|
4
|
+
import { FrameworkSpan } from "./framework-tracer.js";
|
|
4
5
|
import { CachedRouteValue } from "../shims/cache-handler.js";
|
|
5
6
|
import { IsrWritePolicy } from "./isr-cache.js";
|
|
6
|
-
import { HeadersAccessPhase } from "../shims/headers.js";
|
|
7
|
+
import { HeadersAccessPhase } from "../shims/internal/headers-state.js";
|
|
8
|
+
import "../shims/headers.js";
|
|
7
9
|
import { RouteHandlerMiddlewareContext } from "./app-route-handler-response.js";
|
|
8
10
|
import { AppRouteHandlerModule } from "./app-route-handler-policy.js";
|
|
9
11
|
//#region src/server/app-route-handler-execution.d.ts
|
|
10
|
-
type AppRouteParams = Record<string, string | string[]>;
|
|
11
|
-
type AppRouteDynamicUsageFn = () => boolean;
|
|
12
|
-
type MarkAppRouteDynamicUsageFn = () => void;
|
|
12
|
+
export type AppRouteParams = Record<string, string | string[]>;
|
|
13
|
+
export type AppRouteDynamicUsageFn = () => boolean;
|
|
14
|
+
export type MarkAppRouteDynamicUsageFn = () => void;
|
|
13
15
|
/**
|
|
14
16
|
* Route handler context.
|
|
15
17
|
*
|
|
@@ -21,11 +23,11 @@ type MarkAppRouteDynamicUsageFn = () => void;
|
|
|
21
23
|
* See: test/e2e/app-dir/app-routes/app-custom-routes.test.ts in Next.js for
|
|
22
24
|
* the authoritative assertion (`expect(meta.params).toEqual(null)`).
|
|
23
25
|
*/
|
|
24
|
-
type AppRouteHandlerFunction = (request: NextRequest, context: {
|
|
26
|
+
export type AppRouteHandlerFunction = (request: NextRequest, context: {
|
|
25
27
|
params: AppRouteParams | null;
|
|
26
28
|
}) => Response | Promise<Response>;
|
|
27
|
-
type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, policy: IsrWritePolicy) => Promise<void>;
|
|
28
|
-
type AppRouteErrorReporter = (error:
|
|
29
|
+
export type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, policy: IsrWritePolicy) => Promise<void>;
|
|
30
|
+
type AppRouteErrorReporter = (error: unknown, request: {
|
|
29
31
|
path: string;
|
|
30
32
|
method: string;
|
|
31
33
|
headers: Record<string, string>;
|
|
@@ -33,8 +35,9 @@ type AppRouteErrorReporter = (error: Error, request: {
|
|
|
33
35
|
routerKind: "App Router";
|
|
34
36
|
routePath: string;
|
|
35
37
|
routeType: "route";
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
revalidateReason: "on-demand" | "stale" | undefined;
|
|
39
|
+
}) => void | Promise<void>;
|
|
40
|
+
export type AppRouteDebugLogger = (event: string, detail: string) => void;
|
|
38
41
|
type RunAppRouteHandlerOptions = {
|
|
39
42
|
basePath?: string;
|
|
40
43
|
consumeDynamicUsage: AppRouteDynamicUsageFn;
|
|
@@ -60,9 +63,15 @@ type RunAppRouteHandlerResult = {
|
|
|
60
63
|
dynamicUsedInHandler: boolean;
|
|
61
64
|
response: Response;
|
|
62
65
|
};
|
|
63
|
-
|
|
66
|
+
type CompletedAppRouteHandlerResponse = {
|
|
67
|
+
completed: boolean;
|
|
68
|
+
response: Response;
|
|
69
|
+
};
|
|
70
|
+
export declare function completeAppRouteHandlerResponse(response: Response): Promise<CompletedAppRouteHandlerResponse>;
|
|
71
|
+
export declare function applyDraftModeCachePolicy(response: Response, isDraftMode: boolean): Response;
|
|
64
72
|
type ExecuteAppRouteHandlerOptions = {
|
|
65
73
|
buildPageCacheTags: (pathname: string, extraTags: string[]) => string[];
|
|
74
|
+
bypassSharedCache?: boolean;
|
|
66
75
|
clearRequestContext: () => void;
|
|
67
76
|
cleanPathname: string;
|
|
68
77
|
executionContext: ExecutionContextLike | null;
|
|
@@ -75,6 +84,8 @@ type ExecuteAppRouteHandlerOptions = {
|
|
|
75
84
|
initialDraftModeCookie?: string | null;
|
|
76
85
|
isDraftMode?: boolean;
|
|
77
86
|
isProduction: boolean;
|
|
87
|
+
/** An existing entry may require foreground regeneration after hard expiry. */
|
|
88
|
+
isRevalidation?: boolean;
|
|
78
89
|
isrDebug?: AppRouteDebugLogger;
|
|
79
90
|
isrRouteKey: (pathname: string) => string;
|
|
80
91
|
isrSet: RouteHandlerCacheSetter;
|
|
@@ -83,10 +94,11 @@ type ExecuteAppRouteHandlerOptions = {
|
|
|
83
94
|
reportRequestError: AppRouteErrorReporter;
|
|
84
95
|
expireSeconds?: number;
|
|
85
96
|
revalidateSeconds: number | null;
|
|
97
|
+
revalidateReason?: "on-demand" | "stale";
|
|
86
98
|
routePattern: string;
|
|
87
99
|
setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;
|
|
88
100
|
} & RunAppRouteHandlerOptions;
|
|
89
|
-
declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
|
|
90
|
-
declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
|
|
91
|
-
|
|
92
|
-
|
|
101
|
+
export declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
|
|
102
|
+
export declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
|
|
103
|
+
export declare function traceAppRouteHandlerExecution<T>(routePattern: string, callback: (span: FrameworkSpan) => T): T;
|
|
104
|
+
//#endregion
|
|
@@ -1,21 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { isFullyBufferedBody } from "./fully-buffered-response.js";
|
|
2
|
+
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
3
|
+
import { frameworkTracer } from "./tracer.js";
|
|
4
|
+
import { getRouteCacheabilityCaptureOptions, getRouteCacheabilityDynamicReason, isRouteCacheabilityEvaluation, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete, recordRouteCacheability } from "../shims/cacheability-classification.js";
|
|
5
|
+
import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy } from "./cache-control.js";
|
|
6
|
+
import { buildAppRouteMissIsrCacheControl } from "./isr-decision.js";
|
|
7
|
+
import { isrCacheControl, resolveRouteExpireSeconds } from "./isr-cache.js";
|
|
3
8
|
import { isDraftModeRequest, setHeadersContext } from "../shims/headers.js";
|
|
4
9
|
import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
|
|
5
10
|
import { copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
|
|
6
|
-
import { CACHEABILITY_POLICY_HEADERS, getRouteCacheabilityCaptureOptions, getRouteCacheabilityDynamicReason, isRouteCacheabilityEvaluation, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete } from "../shims/cacheability-classification.js";
|
|
7
11
|
import { applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss } from "./app-route-handler-response.js";
|
|
8
12
|
import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
|
|
9
13
|
import { runWithRootParamsUsage } from "../shims/root-params.js";
|
|
10
14
|
import { createTrackedAppRouteRequest, markKnownDynamicAppRoute } from "./app-route-handler-runtime.js";
|
|
11
|
-
import { createStaticGenerationHeadersContext, getAppRouteStaticGenerationErrorMessage } from "./app-static-generation.js";
|
|
12
15
|
import { resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldCompleteAppRouteHandlerResponse, shouldWriteAppRouteHandlerCache } from "./app-route-handler-policy.js";
|
|
16
|
+
import { createStaticGenerationHeadersContext, getAppRouteStaticGenerationErrorMessage } from "./app-static-generation.js";
|
|
13
17
|
import { CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT } from "./cacheability-limits.js";
|
|
14
18
|
//#region src/server/app-route-handler-execution.ts
|
|
15
19
|
function hasExplicitCacheableResponsePolicy(headers) {
|
|
16
|
-
return !hasExplicitNonCacheableResponsePolicy(headers) &&
|
|
20
|
+
return !hasExplicitNonCacheableResponsePolicy(headers) && hasCdnResponsePolicy(headers);
|
|
17
21
|
}
|
|
18
22
|
async function completeAppRouteHandlerResponse(response) {
|
|
23
|
+
if (isFullyBufferedBody(response)) return {
|
|
24
|
+
completed: true,
|
|
25
|
+
response
|
|
26
|
+
};
|
|
19
27
|
const { captureCacheabilityAdmissionBody } = await import("./cacheability-request.js");
|
|
20
28
|
const captureOptions = getRouteCacheabilityCaptureOptions();
|
|
21
29
|
const captured = await captureCacheabilityAdmissionBody(response.body, captureOptions?.captureDeadlineAt ?? Date.now() + 2e4, CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT, captureOptions?.captureBudget);
|
|
@@ -86,8 +94,9 @@ function applyDraftModeCachePolicy(response, isDraftMode) {
|
|
|
86
94
|
}
|
|
87
95
|
function configureAppRouteStaticGenerationContext(options) {
|
|
88
96
|
if (options.dynamicConfig === "force-static" || options.dynamicConfig === "error") {
|
|
97
|
+
const isDraftMode = options.isDraftMode ?? (options.draftModeSecret !== void 0 && isDraftModeRequest(options.request, options.draftModeSecret));
|
|
89
98
|
setHeadersContext(createStaticGenerationHeadersContext({
|
|
90
|
-
draftModeEnabled:
|
|
99
|
+
draftModeEnabled: isDraftMode,
|
|
91
100
|
draftModeSecret: options.draftModeSecret,
|
|
92
101
|
dynamicConfig: options.dynamicConfig,
|
|
93
102
|
routeKind: "route",
|
|
@@ -112,9 +121,10 @@ async function runAppRouteHandler(options) {
|
|
|
112
121
|
return getAppRouteStaticGenerationErrorMessage(options.routePattern, expression);
|
|
113
122
|
}
|
|
114
123
|
});
|
|
124
|
+
const routePattern = options.routePattern ?? new URL(options.request.url).pathname;
|
|
115
125
|
const response = await runWithRootParamsUsage({
|
|
116
126
|
kind: "route-handler",
|
|
117
|
-
routePattern
|
|
127
|
+
routePattern
|
|
118
128
|
}, () => options.handlerFn(trackedRequest.request, { params: options.params }));
|
|
119
129
|
const dynamicUsedInContext = options.consumeDynamicUsage();
|
|
120
130
|
return {
|
|
@@ -124,31 +134,74 @@ async function runAppRouteHandler(options) {
|
|
|
124
134
|
};
|
|
125
135
|
}
|
|
126
136
|
async function executeAppRouteHandler(options) {
|
|
137
|
+
return executeAppRouteHandlerImpl(options);
|
|
138
|
+
}
|
|
139
|
+
function traceAppRouteHandlerExecution(routePattern, callback) {
|
|
140
|
+
const route = patternToNextFormat(routePattern);
|
|
141
|
+
return frameworkTracer.trace({
|
|
142
|
+
attributes: { "next.route": route },
|
|
143
|
+
name: `executing api route (app) ${route}`,
|
|
144
|
+
type: "AppRouteRouteHandlers.runHandler"
|
|
145
|
+
}, callback);
|
|
146
|
+
}
|
|
147
|
+
async function executeAppRouteHandlerImpl(options) {
|
|
127
148
|
const previousHeadersPhase = options.setHeadersAccessPhase("route-handler");
|
|
128
149
|
let cleanupDeferredToBody = false;
|
|
129
150
|
const middlewareMergeOptions = { appendResponseLink: options.handler.runtime === "edge" || options.handler.runtime === "experimental-edge" };
|
|
130
151
|
try {
|
|
131
|
-
let
|
|
152
|
+
let tracedResult;
|
|
153
|
+
let traceError;
|
|
154
|
+
let traceFailed = false;
|
|
155
|
+
let pendingRevalidations = Promise.resolve();
|
|
132
156
|
try {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
157
|
+
tracedResult = await traceAppRouteHandlerExecution(options.routePattern, async () => {
|
|
158
|
+
try {
|
|
159
|
+
try {
|
|
160
|
+
return {
|
|
161
|
+
kind: "handler",
|
|
162
|
+
handlerResult: await runAppRouteHandler({
|
|
163
|
+
...options,
|
|
164
|
+
dynamicConfig: options.handler.dynamic
|
|
165
|
+
})
|
|
166
|
+
};
|
|
167
|
+
} catch (error) {
|
|
168
|
+
if (resolveAppRouteHandlerSpecialError(error, options.request.url, { isAction: isPossibleAppRouteActionRequest(options.request) })) return {
|
|
169
|
+
kind: "special",
|
|
170
|
+
error
|
|
171
|
+
};
|
|
172
|
+
throw error;
|
|
173
|
+
}
|
|
174
|
+
} finally {
|
|
175
|
+
pendingRevalidations = _drainPendingRevalidations();
|
|
176
|
+
pendingRevalidations.catch(() => {});
|
|
177
|
+
}
|
|
136
178
|
});
|
|
137
|
-
}
|
|
138
|
-
|
|
179
|
+
} catch (error) {
|
|
180
|
+
traceFailed = true;
|
|
181
|
+
traceError = error;
|
|
182
|
+
}
|
|
183
|
+
let revalidationError;
|
|
184
|
+
let revalidationFailed = false;
|
|
185
|
+
try {
|
|
186
|
+
await pendingRevalidations;
|
|
187
|
+
} catch (error) {
|
|
188
|
+
revalidationFailed = true;
|
|
189
|
+
revalidationError = error;
|
|
139
190
|
}
|
|
191
|
+
if (traceFailed) throw traceError;
|
|
192
|
+
if (revalidationFailed) throw revalidationError;
|
|
193
|
+
if (!tracedResult) throw new Error("App Route Handler tracing completed without a result");
|
|
194
|
+
if (tracedResult.kind === "special") throw tracedResult.error;
|
|
195
|
+
const handlerResult = tracedResult.handlerResult;
|
|
140
196
|
let { dynamicUsedInHandler, response } = handlerResult;
|
|
141
197
|
assertSupportedAppRouteHandlerResponse(response);
|
|
142
|
-
const handlerSetCachePolicy = CACHEABILITY_POLICY_HEADERS.some((name) => response.headers.has(name));
|
|
143
|
-
const hasExplicitCacheablePolicy = hasExplicitCacheableResponsePolicy(response.headers);
|
|
144
|
-
if (hasExplicitCacheablePolicy) markRouteCacheabilityExplicitResponsePolicy();
|
|
145
198
|
const draftModeBeforeCompletion = options.getActiveDraftModeState?.() ?? options.isDraftMode === true;
|
|
146
199
|
const handlerDraftCookieBeforeCompletion = options.getDraftModeCookieHeader() ?? options.initialDraftModeCookie;
|
|
147
200
|
if (shouldCompleteAppRouteHandlerResponse({
|
|
148
201
|
dynamicConfig: options.handler.dynamic,
|
|
149
202
|
dynamicUsedInHandler,
|
|
150
|
-
hasExplicitCacheablePolicy,
|
|
151
|
-
handlerSetCachePolicy,
|
|
203
|
+
hasExplicitCacheablePolicy: hasExplicitCacheableResponsePolicy(response.headers),
|
|
204
|
+
handlerSetCachePolicy: hasCdnResponsePolicy(response.headers),
|
|
152
205
|
isAutoHead: options.isAutoHead,
|
|
153
206
|
isDraftMode: draftModeBeforeCompletion || handlerDraftCookieBeforeCompletion != null,
|
|
154
207
|
isProduction: options.isProduction,
|
|
@@ -163,8 +216,11 @@ async function executeAppRouteHandler(options) {
|
|
|
163
216
|
const dynamicUsedDuringCompletion = options.consumeDynamicUsage();
|
|
164
217
|
dynamicUsedInHandler = handlerResult.didAccessDynamicRequest() || dynamicUsedDuringCompletion || dynamicUsedInHandler;
|
|
165
218
|
}
|
|
219
|
+
const browserCacheControl = response.headers.get("Cache-Control") ?? void 0;
|
|
220
|
+
const handlerSetCachePolicy = hasCdnResponsePolicy(response.headers);
|
|
221
|
+
if (handlerSetCachePolicy) markRouteCacheabilityExplicitResponsePolicy();
|
|
166
222
|
const requestCacheabilityVeto = getRouteCacheabilityDynamicReason();
|
|
167
|
-
const responseMustStayPrivate = Boolean(options.handler.dynamic === "force-dynamic" || dynamicUsedInHandler || requestCacheabilityVeto || cleanupDeferredToBody);
|
|
223
|
+
const responseMustStayPrivate = Boolean(options.bypassSharedCache === true || options.handler.dynamic === "force-dynamic" || dynamicUsedInHandler || requestCacheabilityVeto || cleanupDeferredToBody);
|
|
168
224
|
if (dynamicUsedInHandler) markKnownDynamicAppRoute(options.routePattern);
|
|
169
225
|
const pendingCookies = options.getAndClearPendingCookies();
|
|
170
226
|
const handlerDraftCookie = options.getDraftModeCookieHeader() ?? handlerDraftCookieBeforeCompletion;
|
|
@@ -172,6 +228,15 @@ async function executeAppRouteHandler(options) {
|
|
|
172
228
|
const shouldApplyDraftPolicy = (options.getActiveDraftModeState?.() ?? options.isDraftMode === true) || draftCookie != null;
|
|
173
229
|
if (handlerDraftCookie != null) markKnownDynamicAppRoute(options.routePattern);
|
|
174
230
|
const routeTags = options.buildPageCacheTags(options.cleanPathname, options.getCollectedFetchTags());
|
|
231
|
+
const frameworkCacheable = (options.isRevalidation === true || response.status < 400 || response.status === 404) && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && !responseMustStayPrivate && !shouldApplyDraftPolicy && pendingCookies.length === 0 && !response.headers.has("set-cookie") && (options.method === "GET" || options.isAutoHead);
|
|
232
|
+
recordRouteCacheability(frameworkCacheable ? {
|
|
233
|
+
cacheable: true,
|
|
234
|
+
cacheControl: buildAppRouteMissIsrCacheControl(options.revalidateSeconds, options.expireSeconds),
|
|
235
|
+
tags: routeTags
|
|
236
|
+
} : {
|
|
237
|
+
cacheable: false,
|
|
238
|
+
dynamicUsage: responseMustStayPrivate || shouldApplyDraftPolicy || options.revalidateSeconds === 0
|
|
239
|
+
});
|
|
175
240
|
if (shouldApplyAppRouteHandlerRevalidateHeader({
|
|
176
241
|
dynamicUsedInHandler: responseMustStayPrivate,
|
|
177
242
|
handlerSetCachePolicy,
|
|
@@ -184,9 +249,9 @@ async function executeAppRouteHandler(options) {
|
|
|
184
249
|
if (revalidateSeconds == null) throw new Error("Expected route handler revalidate seconds");
|
|
185
250
|
applyRouteHandlerRevalidateHeader(response, revalidateSeconds, options.expireSeconds, routeTags);
|
|
186
251
|
}
|
|
187
|
-
if (shouldWriteAppRouteHandlerCache({
|
|
252
|
+
if (frameworkCacheable && shouldWriteAppRouteHandlerCache({
|
|
188
253
|
dynamicConfig: options.handler.dynamic,
|
|
189
|
-
dynamicUsedInHandler: responseMustStayPrivate,
|
|
254
|
+
dynamicUsedInHandler: responseMustStayPrivate || pendingCookies.length > 0 || response.headers.has("set-cookie"),
|
|
190
255
|
handlerSetCachePolicy,
|
|
191
256
|
isAutoHead: options.isAutoHead,
|
|
192
257
|
isDraftMode: shouldApplyDraftPolicy,
|
|
@@ -201,9 +266,9 @@ async function executeAppRouteHandler(options) {
|
|
|
201
266
|
if (revalidateSeconds == null) throw new Error("Expected route handler cache revalidate seconds");
|
|
202
267
|
const routeWritePromise = (async () => {
|
|
203
268
|
try {
|
|
204
|
-
const routeCacheValue = await buildAppRouteCacheValue(routeClone);
|
|
269
|
+
const routeCacheValue = await buildAppRouteCacheValue(routeClone, browserCacheControl);
|
|
205
270
|
await options.isrSet(routeKey, routeCacheValue, {
|
|
206
|
-
cacheControl: isrCacheControl(revalidateSeconds, { expireSeconds: options.expireSeconds }),
|
|
271
|
+
cacheControl: isrCacheControl(revalidateSeconds === Infinity ? false : revalidateSeconds, { expireSeconds: resolveRouteExpireSeconds(options.revalidateSeconds, options.expireSeconds) }),
|
|
207
272
|
tags: routeTags
|
|
208
273
|
});
|
|
209
274
|
options.isrDebug?.("route cache written", routeKey);
|
|
@@ -218,8 +283,8 @@ async function executeAppRouteHandler(options) {
|
|
|
218
283
|
draftCookie,
|
|
219
284
|
isHead: options.isAutoHead
|
|
220
285
|
}), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
|
|
221
|
-
const preserveHandlerPolicy =
|
|
222
|
-
if (responseMustStayPrivate && !preserveHandlerPolicy) {
|
|
286
|
+
const preserveHandlerPolicy = handlerSetCachePolicy;
|
|
287
|
+
if (options.bypassSharedCache === true || responseMustStayPrivate && !preserveHandlerPolicy) {
|
|
223
288
|
const headers = new Headers(finalized.headers);
|
|
224
289
|
applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
|
|
225
290
|
finalized = new Response(finalized.body, {
|
|
@@ -262,14 +327,15 @@ async function executeAppRouteHandler(options) {
|
|
|
262
327
|
return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(new Response(null, { status: specialError.statusCode }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
|
|
263
328
|
}
|
|
264
329
|
console.error("[vinext] Route handler error:", error);
|
|
265
|
-
options.reportRequestError(error
|
|
330
|
+
await options.reportRequestError(error, {
|
|
266
331
|
path: options.cleanPathname,
|
|
267
332
|
method: options.request.method,
|
|
268
333
|
headers: Object.fromEntries(options.request.headers.entries())
|
|
269
334
|
}, {
|
|
270
335
|
routerKind: "App Router",
|
|
271
336
|
routePath: options.routePattern,
|
|
272
|
-
routeType: "route"
|
|
337
|
+
routeType: "route",
|
|
338
|
+
revalidateReason: options.revalidateReason
|
|
273
339
|
});
|
|
274
340
|
return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(new Response(null, { status: 500 }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
|
|
275
341
|
} finally {
|
|
@@ -277,4 +343,4 @@ async function executeAppRouteHandler(options) {
|
|
|
277
343
|
}
|
|
278
344
|
}
|
|
279
345
|
//#endregion
|
|
280
|
-
export { applyDraftModeCachePolicy, executeAppRouteHandler, runAppRouteHandler };
|
|
346
|
+
export { applyDraftModeCachePolicy, completeAppRouteHandlerResponse, executeAppRouteHandler, runAppRouteHandler, traceAppRouteHandlerExecution };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/server/app-route-handler-middleware-context.d.ts
|
|
2
|
+
export type RouteHandlerMiddlewareContext = {
|
|
3
|
+
headers: Headers | null;
|
|
4
|
+
status: number | null;
|
|
5
|
+
};
|
|
6
|
+
/** Apply request-stage middleware response metadata to a route-handler response. */
|
|
7
|
+
export declare function applyRouteHandlerMiddlewareContext(response: Response, middlewareContext: RouteHandlerMiddlewareContext): Response;
|
|
8
|
+
//#endregion
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
2
|
+
//#region src/server/app-route-handler-middleware-context.ts
|
|
3
|
+
/** Apply request-stage middleware response metadata to a route-handler response. */
|
|
4
|
+
function applyRouteHandlerMiddlewareContext(response, middlewareContext) {
|
|
5
|
+
if (!middlewareContext.headers && middlewareContext.status == null) return response;
|
|
6
|
+
const responseHeaders = new Headers(response.headers);
|
|
7
|
+
mergeMiddlewareResponseHeaders(responseHeaders, middlewareContext.headers);
|
|
8
|
+
return new Response(response.body, {
|
|
9
|
+
status: middlewareContext.status ?? response.status,
|
|
10
|
+
statusText: response.statusText,
|
|
11
|
+
headers: responseHeaders
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { applyRouteHandlerMiddlewareContext };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
|
|
2
2
|
import { RouteHandlerHttpMethod, RouteHandlerModule } from "./app-route-handler-runtime.js";
|
|
3
3
|
//#region src/server/app-route-handler-policy.d.ts
|
|
4
|
-
type AppRouteHandlerModule = {
|
|
4
|
+
export type AppRouteHandlerModule = {
|
|
5
5
|
dynamic?: string;
|
|
6
6
|
fetchCache?: unknown;
|
|
7
7
|
generateStaticParams?: unknown;
|
|
@@ -49,21 +49,21 @@ type AppRouteHandlerSpecialError = {
|
|
|
49
49
|
type AppRouteHandlerSpecialErrorOptions = {
|
|
50
50
|
isAction: boolean;
|
|
51
51
|
};
|
|
52
|
-
declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "dynamic" | "generateStaticParams" | "revalidate">): number | null;
|
|
53
|
-
declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
|
|
52
|
+
export declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "dynamic" | "generateStaticParams" | "revalidate">): number | null;
|
|
53
|
+
export declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
|
|
54
54
|
/** Match Next.js methods that force an App Route out of static generation. */
|
|
55
|
-
declare function hasNonStaticAppRouteHandlerMethods(handler: RouteHandlerModule): boolean;
|
|
56
|
-
declare function resolveAppRouteHandlerMethod(handler: AppRouteHandlerModule, method: string): ResolvedAppRouteHandlerMethod;
|
|
57
|
-
declare function shouldReadAppRouteHandlerCache(options: AppRouteHandlerCacheReadOptions): boolean;
|
|
58
|
-
declare function shouldApplyAppRouteHandlerRevalidateHeader(options: Omit<AppRouteHandlerResponseCacheOptions, "dynamicConfig" | "isProduction">): boolean;
|
|
55
|
+
export declare function hasNonStaticAppRouteHandlerMethods(handler: RouteHandlerModule): boolean;
|
|
56
|
+
export declare function resolveAppRouteHandlerMethod(handler: AppRouteHandlerModule, method: string): ResolvedAppRouteHandlerMethod;
|
|
57
|
+
export declare function shouldReadAppRouteHandlerCache(options: AppRouteHandlerCacheReadOptions): boolean;
|
|
58
|
+
export declare function shouldApplyAppRouteHandlerRevalidateHeader(options: Omit<AppRouteHandlerResponseCacheOptions, "dynamicConfig" | "isProduction">): boolean;
|
|
59
59
|
/**
|
|
60
60
|
* Next.js consumes the full body before completing static generation for an
|
|
61
61
|
* App Route. Keep that completion boundary for every response that can still
|
|
62
62
|
* receive a public framework cache policy, including
|
|
63
63
|
* `revalidate = false` (represented by Infinity).
|
|
64
64
|
*/
|
|
65
|
-
declare function shouldCompleteAppRouteHandlerResponse(options: AppRouteHandlerResponseCacheOptions): boolean;
|
|
66
|
-
declare function shouldWriteAppRouteHandlerCache(options: AppRouteHandlerResponseCacheOptions): boolean;
|
|
67
|
-
declare function resolveAppRouteHandlerSpecialError(error: unknown, requestUrl: string, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
|
|
65
|
+
export declare function shouldCompleteAppRouteHandlerResponse(options: AppRouteHandlerResponseCacheOptions): boolean;
|
|
66
|
+
export declare function shouldWriteAppRouteHandlerCache(options: AppRouteHandlerResponseCacheOptions): boolean;
|
|
67
|
+
export declare function resolveAppRouteHandlerSpecialError(error: unknown, requestUrl: string, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
|
|
68
68
|
//#endregion
|
|
69
|
-
export {
|
|
69
|
+
export { isPossibleAppRouteActionRequest };
|
|
@@ -36,7 +36,7 @@ function resolveAppRouteHandlerMethod(handler, method) {
|
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
function shouldReadAppRouteHandlerCache(options) {
|
|
39
|
-
return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.
|
|
39
|
+
return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.isKnownDynamic && (options.method === "GET" || options.isAutoHead) && typeof options.handlerFn === "function";
|
|
40
40
|
}
|
|
41
41
|
function shouldApplyAppRouteHandlerRevalidateHeader(options) {
|
|
42
42
|
return options.revalidateSeconds !== null && !options.isDraftMode && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead) && !options.handlerSetCachePolicy;
|
|
@@ -51,7 +51,7 @@ function shouldCompleteAppRouteHandlerResponse(options) {
|
|
|
51
51
|
return options.isProduction && (options.revalidateSeconds !== null && options.revalidateSeconds > 0 || options.requiresCompletedResponseAdmission === true || options.hasExplicitCacheablePolicy === true) && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead);
|
|
52
52
|
}
|
|
53
53
|
function shouldWriteAppRouteHandlerCache(options) {
|
|
54
|
-
return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.
|
|
54
|
+
return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead);
|
|
55
55
|
}
|
|
56
56
|
function resolveAppRouteHandlerSpecialError(error, requestUrl, options) {
|
|
57
57
|
if (!(error && typeof error === "object" && "digest" in error)) return null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CacheControlMetadata, CachedRouteValue } from "../shims/cache-handler.js";
|
|
2
2
|
//#region src/server/app-route-handler-response.d.ts
|
|
3
|
-
type RouteHandlerMiddlewareContext = {
|
|
3
|
+
export type RouteHandlerMiddlewareContext = {
|
|
4
4
|
headers: Headers | null;
|
|
5
5
|
status: number | null;
|
|
6
6
|
};
|
|
@@ -16,14 +16,13 @@ type FinalizeRouteHandlerResponseOptions = {
|
|
|
16
16
|
draftCookie?: string | null;
|
|
17
17
|
isHead: boolean;
|
|
18
18
|
};
|
|
19
|
-
declare function applyRouteHandlerMiddlewareContext(response: Response, middlewareContext: RouteHandlerMiddlewareContext, options?: {
|
|
19
|
+
export declare function applyRouteHandlerMiddlewareContext(response: Response, middlewareContext: RouteHandlerMiddlewareContext, options?: {
|
|
20
20
|
appendResponseLink?: boolean;
|
|
21
21
|
}): Response;
|
|
22
|
-
declare function assertSupportedAppRouteHandlerResponse(response: Response): void;
|
|
23
|
-
declare function buildRouteHandlerCachedResponse(cachedValue: CachedRouteValue, options: BuildRouteHandlerCachedResponseOptions): Response;
|
|
24
|
-
declare function applyRouteHandlerRevalidateHeader(response: Response, revalidateSeconds: number, expireSeconds?: number, tags?: readonly string[]): void;
|
|
25
|
-
declare function markRouteHandlerCacheMiss(response: Response): void;
|
|
26
|
-
declare function buildAppRouteCacheValue(response: Response): Promise<CachedRouteValue>;
|
|
27
|
-
declare function finalizeRouteHandlerResponse(response: Response, options: FinalizeRouteHandlerResponseOptions): Response;
|
|
28
|
-
//#endregion
|
|
29
|
-
export { RouteHandlerMiddlewareContext, applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, buildRouteHandlerCachedResponse, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss };
|
|
22
|
+
export declare function assertSupportedAppRouteHandlerResponse(response: Response): void;
|
|
23
|
+
export declare function buildRouteHandlerCachedResponse(cachedValue: CachedRouteValue, options: BuildRouteHandlerCachedResponseOptions): Response;
|
|
24
|
+
export declare function applyRouteHandlerRevalidateHeader(response: Response, revalidateSeconds: number, expireSeconds?: number, tags?: readonly string[]): void;
|
|
25
|
+
export declare function markRouteHandlerCacheMiss(response: Response): void;
|
|
26
|
+
export declare function buildAppRouteCacheValue(response: Response, browserCacheControl?: string): Promise<CachedRouteValue>;
|
|
27
|
+
export declare function finalizeRouteHandlerResponse(response: Response, options: FinalizeRouteHandlerResponseOptions): Response;
|
|
28
|
+
//#endregion
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "../utils/protocol-headers.js";
|
|
2
2
|
import { NEXT_CACHE_TAGS_HEADER, VINEXT_METADATA_ROUTE_CACHE_HEADER } from "./headers.js";
|
|
3
3
|
import { processMiddlewareHeaders } from "./request-pipeline.js";
|
|
4
|
+
import { markRouteCacheabilityExplicitResponsePolicy, recordRouteCacheability } from "../shims/cacheability-classification.js";
|
|
4
5
|
import { applyCdnResponseHeaders } from "./cache-control.js";
|
|
5
6
|
import { buildAppRouteMissIsrCacheControl, decideIsr } from "./isr-decision.js";
|
|
6
7
|
import { setCacheStateHeaders } from "./cache-headers.js";
|
|
@@ -49,8 +50,17 @@ function buildRouteHandlerCachedResponse(cachedValue, options) {
|
|
|
49
50
|
expireSeconds: options.expireSeconds,
|
|
50
51
|
cacheControlMeta: options.cacheControl
|
|
51
52
|
});
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
recordRouteCacheability({
|
|
54
|
+
cacheable: true,
|
|
55
|
+
cacheControl
|
|
56
|
+
});
|
|
57
|
+
if (headers.has("Cache-Control")) markRouteCacheabilityExplicitResponsePolicy();
|
|
58
|
+
applyCdnResponseHeaders(headers, {
|
|
59
|
+
cacheControl,
|
|
60
|
+
browserCacheControl: headers.get("Cache-Control") ?? void 0
|
|
61
|
+
});
|
|
62
|
+
const hasNoBody = options.isHead || cachedValue.status === 204 || cachedValue.status === 205 || cachedValue.status === 304;
|
|
63
|
+
return new Response(hasNoBody ? null : cachedValue.body, {
|
|
54
64
|
status: cachedValue.status,
|
|
55
65
|
headers
|
|
56
66
|
});
|
|
@@ -123,13 +133,14 @@ function applyMutableCookieFallbacks(headers, pendingCookies) {
|
|
|
123
133
|
for (const cookie of fallbackCookies.values()) headers.append("Set-Cookie", cookie);
|
|
124
134
|
for (const cookie of returnedCookies) headers.append("Set-Cookie", normalizeReturnedCookie(cookie));
|
|
125
135
|
}
|
|
126
|
-
async function buildAppRouteCacheValue(response) {
|
|
136
|
+
async function buildAppRouteCacheValue(response, browserCacheControl) {
|
|
127
137
|
const body = await response.arrayBuffer();
|
|
128
138
|
const headers = {};
|
|
129
139
|
response.headers.forEach((value, key) => {
|
|
130
140
|
if (key === "set-cookie" || key === "connection" || key === "content-length" || key === "date" || key === "keep-alive" || key === "transfer-encoding" || key === "x-next-cache-tags" || key === "x-vinext-metadata-route-cache" || key === "x-vinext-prerender-cache-life" || key === "X-Vinext-Cache".toLowerCase() || key === "x-nextjs-cache".toLowerCase() || key === "cache-control" || key.startsWith("x-middleware-")) return;
|
|
131
141
|
headers[key] = value;
|
|
132
142
|
});
|
|
143
|
+
if (browserCacheControl !== void 0) headers["cache-control"] = browserCacheControl;
|
|
133
144
|
const setCookies = response.headers.getSetCookie?.() ?? [];
|
|
134
145
|
if (setCookies.length > 0) headers["set-cookie"] = setCookies;
|
|
135
146
|
return {
|
|
@@ -2,8 +2,8 @@ import { NextI18nConfig } from "../config/next-config.js";
|
|
|
2
2
|
import { NextRequest } from "../shims/server.js";
|
|
3
3
|
//#region src/server/app-route-handler-runtime.d.ts
|
|
4
4
|
declare const ROUTE_HANDLER_HTTP_METHODS: readonly ["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"];
|
|
5
|
-
type RouteHandlerHttpMethod = (typeof ROUTE_HANDLER_HTTP_METHODS)[number];
|
|
6
|
-
type RouteHandlerModule = Partial<Record<RouteHandlerHttpMethod | "default", unknown>>;
|
|
5
|
+
export type RouteHandlerHttpMethod = (typeof ROUTE_HANDLER_HTTP_METHODS)[number];
|
|
6
|
+
export type RouteHandlerModule = Partial<Record<RouteHandlerHttpMethod | "default", unknown>>;
|
|
7
7
|
/**
|
|
8
8
|
* Checks whether a string is a recognized HTTP method for App Router route
|
|
9
9
|
* handlers. Invalid methods must be rejected with 400 before any auto-OPTIONS
|
|
@@ -11,11 +11,11 @@ type RouteHandlerModule = Partial<Record<RouteHandlerHttpMethod | "default", unk
|
|
|
11
11
|
*
|
|
12
12
|
* @see https://github.com/vercel/next.js/blob/canary/packages/next/src/server/web/http.ts
|
|
13
13
|
*/
|
|
14
|
-
declare function isValidHTTPMethod(maybeMethod: string): maybeMethod is RouteHandlerHttpMethod;
|
|
15
|
-
declare function collectRouteHandlerMethods(handler: RouteHandlerModule): RouteHandlerHttpMethod[];
|
|
16
|
-
declare function buildRouteHandlerAllowHeader(exportedMethods: readonly string[]): string;
|
|
17
|
-
declare function isKnownDynamicAppRoute(pattern: string): boolean;
|
|
18
|
-
declare function markKnownDynamicAppRoute(pattern: string): void;
|
|
14
|
+
export declare function isValidHTTPMethod(maybeMethod: string): maybeMethod is RouteHandlerHttpMethod;
|
|
15
|
+
export declare function collectRouteHandlerMethods(handler: RouteHandlerModule): RouteHandlerHttpMethod[];
|
|
16
|
+
export declare function buildRouteHandlerAllowHeader(exportedMethods: readonly string[]): string;
|
|
17
|
+
export declare function isKnownDynamicAppRoute(pattern: string): boolean;
|
|
18
|
+
export declare function markKnownDynamicAppRoute(pattern: string): void;
|
|
19
19
|
type RequestDynamicAccess = "request.headers" | "request.cookies" | "request.cf" | "request.ip" | "request.geo" | "request.url" | "request.body" | "request.blob" | "request.bytes" | "request.json" | "request.text" | "request.arrayBuffer" | "request.formData";
|
|
20
20
|
type NextUrlDynamicAccess = "nextUrl.search" | "nextUrl.searchParams" | "nextUrl.url" | "nextUrl.href" | "nextUrl.toJSON" | "nextUrl.toString" | "nextUrl.origin";
|
|
21
21
|
type AppRouteDynamicRequestAccess = RequestDynamicAccess | NextUrlDynamicAccess;
|
|
@@ -33,6 +33,5 @@ type TrackedAppRouteRequest = {
|
|
|
33
33
|
request: NextRequest;
|
|
34
34
|
didAccessDynamicRequest(): boolean;
|
|
35
35
|
};
|
|
36
|
-
declare function createTrackedAppRouteRequest(request: Request, options?: TrackedAppRouteRequestOptions): TrackedAppRouteRequest;
|
|
37
|
-
//#endregion
|
|
38
|
-
export { RouteHandlerHttpMethod, RouteHandlerModule, buildRouteHandlerAllowHeader, collectRouteHandlerMethods, createTrackedAppRouteRequest, isKnownDynamicAppRoute, isValidHTTPMethod, markKnownDynamicAppRoute };
|
|
36
|
+
export declare function createTrackedAppRouteRequest(request: Request, options?: TrackedAppRouteRequestOptions): TrackedAppRouteRequest;
|
|
37
|
+
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { addBasePathToPathname } from "../utils/base-path.js";
|
|
2
1
|
import { buildRequestHeadersFromMiddlewareResponse } from "../utils/middleware-request-headers.js";
|
|
2
|
+
import { addBasePathToPathname } from "../utils/base-path.js";
|
|
3
3
|
import { NextRequest, RequestCookies, sealRequestCookies, sealRequestHeaders } from "../shims/server.js";
|
|
4
4
|
import { cloneRequestWithHeaders, cloneRequestWithUrl } from "./request-pipeline.js";
|
|
5
5
|
import { BUILT_IN_REQUEST_PROPERTIES } from "./app-route-request-built-ins.js";
|
|
@@ -191,10 +191,12 @@ function createTrackedAppRouteRequest(request, options = {}) {
|
|
|
191
191
|
}
|
|
192
192
|
const requestHeaders = options.middlewareHeaders ? buildRequestHeadersFromMiddlewareResponse(input.headers, options.middlewareHeaders) : null;
|
|
193
193
|
const requestWithOverrides = requestHeaders ? cloneRequestWithHeaders(input, requestHeaders) : input;
|
|
194
|
-
const sourceCfMetadata = Reflect.get(requestWithOverrides, "cf", requestWithOverrides);
|
|
195
194
|
const sourceCfDescriptor = Reflect.getOwnPropertyDescriptor(requestWithOverrides, "cf");
|
|
195
|
+
const sourceCfAccessor = sourceCfDescriptor?.get;
|
|
196
|
+
const sourceCfMetadata = sourceCfAccessor ? void 0 : Reflect.get(requestWithOverrides, "cf", requestWithOverrides);
|
|
196
197
|
const nextRequest = requestMode === "force-static" ? createForceStaticNextRequest(requestWithOverrides, nextConfig) : requestWithOverrides instanceof NextRequest && sourceCfDescriptor?.configurable !== false ? requestWithOverrides : new NextRequest(requestWithOverrides, { nextConfig: nextConfig ?? void 0 });
|
|
197
|
-
const rawCfMetadata = sourceCfMetadata === void 0 ? Reflect.get(nextRequest, "cf", nextRequest) : sourceCfMetadata;
|
|
198
|
+
const rawCfMetadata = sourceCfAccessor ? void 0 : sourceCfMetadata === void 0 ? Reflect.get(nextRequest, "cf", nextRequest) : sourceCfMetadata;
|
|
199
|
+
const hasCfMetadata = sourceCfAccessor !== void 0 || rawCfMetadata !== void 0;
|
|
198
200
|
const originalCfDescriptor = sourceCfDescriptor ?? Reflect.getOwnPropertyDescriptor(nextRequest, "cf");
|
|
199
201
|
const accessCf = (read, forceStaticValue) => {
|
|
200
202
|
if (requestMode === "force-static") return forceStaticValue;
|
|
@@ -202,8 +204,8 @@ function createTrackedAppRouteRequest(request, options = {}) {
|
|
|
202
204
|
markDynamicAccess("request.cf");
|
|
203
205
|
return read();
|
|
204
206
|
};
|
|
205
|
-
const controlledCfGetter = () => accessCf(() => rawCfMetadata, void 0);
|
|
206
|
-
if (
|
|
207
|
+
const controlledCfGetter = () => accessCf(sourceCfAccessor ? () => Reflect.apply(sourceCfAccessor, requestWithOverrides, []) : () => rawCfMetadata, void 0);
|
|
208
|
+
if (hasCfMetadata) {
|
|
207
209
|
if (requestMode === "force-static") Object.defineProperty(nextRequest, "cf", {
|
|
208
210
|
configurable: true,
|
|
209
211
|
enumerable: originalCfDescriptor?.enumerable ?? false,
|
|
@@ -217,7 +219,7 @@ function createTrackedAppRouteRequest(request, options = {}) {
|
|
|
217
219
|
}
|
|
218
220
|
const cloneTrackedRequest = () => {
|
|
219
221
|
const cloned = nextRequest.clone();
|
|
220
|
-
if (
|
|
222
|
+
if (hasCfMetadata) Object.defineProperty(cloned, "cf", sourceCfDescriptor ?? {
|
|
221
223
|
value: rawCfMetadata,
|
|
222
224
|
enumerable: originalCfDescriptor?.enumerable ?? false,
|
|
223
225
|
configurable: true
|
|
@@ -356,16 +358,18 @@ function createTrackedAppRouteRequest(request, options = {}) {
|
|
|
356
358
|
},
|
|
357
359
|
preventExtensions(target) {
|
|
358
360
|
const descriptor = Reflect.getOwnPropertyDescriptor(target, "cf");
|
|
359
|
-
if (descriptor?.get === controlledCfGetter)
|
|
360
|
-
if (
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
361
|
+
if (descriptor?.get === controlledCfGetter) {
|
|
362
|
+
if (requestMode === "force-static") {
|
|
363
|
+
if (!Reflect.deleteProperty(target, "cf")) return false;
|
|
364
|
+
} else {
|
|
365
|
+
accessCf(() => void 0, void 0);
|
|
366
|
+
Object.defineProperty(target, "cf", {
|
|
367
|
+
configurable: true,
|
|
368
|
+
enumerable: descriptor.enumerable,
|
|
369
|
+
value: rawCfMetadata,
|
|
370
|
+
writable: false
|
|
371
|
+
});
|
|
372
|
+
}
|
|
369
373
|
}
|
|
370
374
|
return Reflect.preventExtensions(target);
|
|
371
375
|
}
|
|
@@ -71,7 +71,7 @@ type LazyLoadableSlot = {
|
|
|
71
71
|
/** Hydrated only after an intercept matches, not with the slot's base modules. */
|
|
72
72
|
intercepts?: LazyLoadableIntercept[];
|
|
73
73
|
};
|
|
74
|
-
type LazyLoadableRoute = {
|
|
74
|
+
export type LazyLoadableRoute = {
|
|
75
75
|
page?: unknown;
|
|
76
76
|
routeHandler?: unknown;
|
|
77
77
|
layouts?: unknown[];
|
|
@@ -112,16 +112,15 @@ type LazyLoadableRoute = {
|
|
|
112
112
|
__loading?: Promise<unknown> | null;
|
|
113
113
|
};
|
|
114
114
|
/** Hydrate an intercepting route's page module onto `intercept.page`. */
|
|
115
|
-
declare function loadAppInterceptPage(intercept: LazyLoadableIntercept): Promise<void>;
|
|
115
|
+
export declare function loadAppInterceptPage(intercept: LazyLoadableIntercept): Promise<void>;
|
|
116
116
|
/** Hydrate an intercepting route's not-found boundary onto `intercept.notFound`. */
|
|
117
|
-
declare function loadAppInterceptNotFound(intercept: LazyLoadableIntercept): Promise<void>;
|
|
118
|
-
declare function loadAppInterceptLayouts(intercept: LazyLoadableIntercept): Promise<readonly unknown[]>;
|
|
117
|
+
export declare function loadAppInterceptNotFound(intercept: LazyLoadableIntercept): Promise<void>;
|
|
118
|
+
export declare function loadAppInterceptLayouts(intercept: LazyLoadableIntercept): Promise<readonly unknown[]>;
|
|
119
119
|
/**
|
|
120
120
|
* Resolve a route's lazy modules and assign them onto the route's synchronous
|
|
121
121
|
* module fields. Returns the same route reference (synchronously when already
|
|
122
122
|
* loaded, otherwise after the in-flight import resolves). Safe to call on
|
|
123
123
|
* `null`/`undefined` routes and on eager routes that have no lazy thunks.
|
|
124
124
|
*/
|
|
125
|
-
declare function ensureAppRouteModulesLoaded<TRoute extends LazyLoadableRoute>(route: TRoute | null | undefined): TRoute | Promise<TRoute>;
|
|
126
|
-
//#endregion
|
|
127
|
-
export { LazyLoadableRoute, ensureAppRouteModulesLoaded, loadAppInterceptLayouts, loadAppInterceptNotFound, loadAppInterceptPage };
|
|
125
|
+
export declare function ensureAppRouteModulesLoaded<TRoute extends LazyLoadableRoute>(route: TRoute | null | undefined): TRoute | Promise<TRoute>;
|
|
126
|
+
//#endregion
|