vinext 1.0.0-beta.8 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -84
- package/THIRD_PARTY_LICENSES.md +25 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +1 -13
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +82 -8
- package/dist/build/prerender-paths.js +814 -99
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +67 -15
- package/dist/build/prerender.js +177 -64
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +38 -19
- package/dist/build/report.js +73 -4
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +25 -16
- package/dist/build/server-entry.d.ts +4 -0
- package/dist/build/server-entry.js +28 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +7 -8
- package/dist/cache/cache-adapters-virtual.d.ts +95 -9
- package/dist/cache/cache-adapters-virtual.js +58 -6
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -435
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +21 -17
- package/dist/client/navigation-runtime.js +2 -1
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -8
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +10 -7
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +2 -1
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +5 -6
- package/dist/entries/app-browser-entry.js +3 -2
- package/dist/entries/app-rsc-entry.d.ts +12 -3
- package/dist/entries/app-rsc-entry.js +530 -55
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +27 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +237 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +832 -199
- package/dist/init-cloudflare.d.ts +27 -16
- package/dist/init-cloudflare.js +754 -113
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +123 -41
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
- package/dist/plugins/ignore-dynamic-requests.js +60 -89
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +31 -43
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +3 -4
- package/dist/plugins/og-assets.d.ts +4 -5
- package/dist/plugins/og-assets.js +32 -13
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +260 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +32 -44
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +2 -3
- package/dist/plugins/require-context.js +13 -21
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +5 -6
- package/dist/plugins/strip-server-exports.js +1 -1
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +3 -4
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +6 -7
- package/dist/plugins/typeof-window.js +30 -31
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +19 -19
- package/dist/routing/app-route-graph.js +3 -2
- package/dist/routing/app-router.d.ts +20 -5
- package/dist/routing/app-router.js +28 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +3 -4
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +121 -40
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +14 -1
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +9 -5
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +7 -3
- package/dist/server/app-browser-stream.d.ts +4 -5
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-browser-visible-commit.js +1 -1
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +26 -27
- package/dist/server/app-history-state.js +19 -11
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +15 -7
- package/dist/server/app-middleware.js +30 -5
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +14 -10
- package/dist/server/app-optimistic-routing.js +16 -3
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +2 -1
- package/dist/server/app-page-cache-finalizer.d.ts +32 -8
- package/dist/server/app-page-cache-finalizer.js +118 -14
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -5
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +96 -25
- package/dist/server/app-page-dispatch.d.ts +36 -12
- package/dist/server/app-page-dispatch.js +188 -63
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +12 -8
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +42 -6
- package/dist/server/app-page-render.js +192 -28
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +31 -13
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +42 -6
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +35 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +49 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +19 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +26 -12
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +33 -11
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +115 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +2 -3
- package/dist/server/app-route-handler-cache.js +46 -34
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +75 -57
- package/dist/server/app-route-handler-execution.d.ts +18 -13
- package/dist/server/app-route-handler-execution.js +189 -25
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +22 -10
- package/dist/server/app-route-handler-policy.js +19 -4
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +2 -0
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +2 -0
- package/dist/server/app-router-entry.js +76 -12
- package/dist/server/app-rsc-cache-busting.d.ts +47 -22
- package/dist/server/app-rsc-cache-busting.js +80 -18
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +33 -6
- package/dist/server/app-rsc-handler.js +498 -83
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +2 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +24 -7
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +4 -4
- package/dist/server/app-rsc-route-matching.js +4 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +120 -6
- package/dist/server/app-segment-config.js +264 -12
- package/dist/server/app-server-action-execution.d.ts +16 -12
- package/dist/server/app-server-action-execution.js +88 -35
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +64 -17
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +33 -7
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +39 -11
- package/dist/server/cache-control.js +104 -7
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +8 -0
- package/dist/server/cacheability-limits.js +9 -0
- package/dist/server/cacheability-manifest.d.ts +68 -0
- package/dist/server/cacheability-manifest.js +241 -0
- package/dist/server/cacheability-request.d.ts +49 -0
- package/dist/server/cacheability-request.js +559 -0
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +39 -5
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +130 -61
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +62 -56
- package/dist/server/headers.js +33 -20
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +28 -27
- package/dist/server/isr-cache.js +18 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-cache-policy.d.ts +2 -3
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +68 -2
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +13 -6
- package/dist/server/middleware-matcher.js +22 -1
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +13 -8
- package/dist/server/middleware-runtime.js +54 -10
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/normalize-path.js +1 -1
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +21 -8
- package/dist/server/pages-asset-tags.d.ts +6 -6
- package/dist/server/pages-asset-tags.js +37 -2
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +11 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-i18n.js +3 -2
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +18 -19
- package/dist/server/pages-page-data.js +11 -10
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +98 -47
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +49 -31
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +16 -12
- package/dist/server/pages-request-pipeline.js +69 -28
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +314 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +48 -114
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +11 -11
- package/dist/server/prerender-manifest.js +6 -3
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -2
- package/dist/server/prerender-work-unit-setup.d.ts +4 -4
- package/dist/server/prerender-work-unit-setup.js +37 -14
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +129 -36
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +17 -21
- package/dist/server/request-pipeline.js +8 -10
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +2 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/server-globals.js +13 -0
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +16 -0
- package/dist/server/static-file-signal.js +82 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +18 -0
- package/dist/server/worker-prerender-discovery.js +55 -0
- package/dist/server/worker-revalidation-context.d.ts +2 -3
- package/dist/server/worker-revalidation-context.js +5 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +4 -4
- package/dist/server/workers-tracing.d.ts +17 -0
- package/dist/server/workers-tracing.js +27 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +28 -29
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +239 -121
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +25 -13
- package/dist/shims/cacheability-classification.d.ts +106 -0
- package/dist/shims/cacheability-classification.js +161 -0
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +76 -18
- package/dist/shims/cdn-cache.js +40 -39
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +4 -4
- package/dist/shims/error.js +1 -1
- package/dist/shims/error.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +50 -20
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +68 -32
- package/dist/shims/headers.js +101 -10
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +13 -0
- package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
- package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +8 -3
- package/dist/shims/internal/make-hanging-promise.js +13 -2
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +12 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +67 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +45 -17
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/navigation.react-server.js +1 -1
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +7 -6
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +14 -28
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +34 -31
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +18 -12
- package/dist/shims/url-utils.js +10 -1
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +3 -4
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +9 -10
- package/dist/utils/prerender-output-paths.js +16 -9
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +55 -6
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { closeAfterResponse, createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
|
|
2
|
+
import "../utils/protocol-headers.js";
|
|
2
3
|
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
3
4
|
import { reportRequestError } from "./instrumentation.js";
|
|
5
|
+
import { beginRouteCacheability, getRouteCacheabilityDynamicReason } from "../shims/cacheability-classification.js";
|
|
6
|
+
import { applyCdnResponseBuildIdentityHeaders } from "./cache-control.js";
|
|
7
|
+
import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
|
|
4
8
|
import { consumeDynamicUsage, getActiveDraftModeState, getAndClearPendingCookies, getDraftModeCookieHeader, isDraftModeRequest, markDynamicUsage, setHeadersAccessPhase } from "../shims/headers.js";
|
|
5
9
|
import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
|
|
6
10
|
import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchCacheMode, setCurrentFetchRevalidate, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
|
|
7
11
|
import { setNavigationContext } from "../shims/navigation-context-state.js";
|
|
8
12
|
import { makeThenableParams } from "../shims/thenable-params.js";
|
|
13
|
+
import { traceResponseStart } from "./response-start-tracing.js";
|
|
9
14
|
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
10
15
|
import { applyRouteHandlerMiddlewareContext, finalizeRouteHandlerResponse } from "./app-route-handler-response.js";
|
|
16
|
+
import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
|
|
11
17
|
import "../shims/navigation.js";
|
|
12
18
|
import { isKnownDynamicAppRoute, isValidHTTPMethod } from "./app-route-handler-runtime.js";
|
|
19
|
+
import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, hasNonStaticAppRouteHandlerMethods, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
|
|
13
20
|
import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
|
|
14
|
-
import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
|
|
15
21
|
import { applyDraftModeCachePolicy, executeAppRouteHandler } from "./app-route-handler-execution.js";
|
|
16
22
|
import { readAppRouteHandlerCacheResponse } from "./app-route-handler-cache.js";
|
|
17
|
-
import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
|
|
18
23
|
//#region src/server/app-route-handler-dispatch.ts
|
|
19
24
|
function isAppRouteHandlerFunction(value) {
|
|
20
25
|
return typeof value === "function";
|
|
@@ -23,14 +28,15 @@ function buildRouteHandlerPageCacheTags(pathname, extraTags, routeSegments) {
|
|
|
23
28
|
return buildPageCacheTags(pathname, extraTags, routeSegments, "route");
|
|
24
29
|
}
|
|
25
30
|
async function runInRouteHandlerRevalidationContext(options, renderFn) {
|
|
31
|
+
const headersContext = createStaticGenerationHeadersContext({
|
|
32
|
+
draftModeEnabled: false,
|
|
33
|
+
draftModeSecret: options.draftModeSecret,
|
|
34
|
+
dynamicConfig: options.dynamicConfig,
|
|
35
|
+
routeKind: "route",
|
|
36
|
+
routePattern: options.routePattern
|
|
37
|
+
});
|
|
26
38
|
const requestContext = createRequestContext({
|
|
27
|
-
headersContext
|
|
28
|
-
draftModeEnabled: false,
|
|
29
|
-
draftModeSecret: options.draftModeSecret,
|
|
30
|
-
dynamicConfig: options.dynamicConfig,
|
|
31
|
-
routeKind: "route",
|
|
32
|
-
routePattern: options.routePattern
|
|
33
|
-
}),
|
|
39
|
+
headersContext,
|
|
34
40
|
executionContext: getRequestExecutionContext(),
|
|
35
41
|
unstableCacheRevalidation: "foreground"
|
|
36
42
|
});
|
|
@@ -53,10 +59,15 @@ async function runInRouteHandlerRevalidationContext(options, renderFn) {
|
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
async function dispatchAppRouteHandler(options) {
|
|
62
|
+
return traceResponseStart(await dispatchAppRouteHandlerImpl(options));
|
|
63
|
+
}
|
|
64
|
+
async function dispatchAppRouteHandlerImpl(options) {
|
|
56
65
|
const { route } = options;
|
|
57
66
|
const handler = route.routeHandler;
|
|
58
67
|
const method = options.request.method.toUpperCase();
|
|
59
|
-
|
|
68
|
+
if (method === "GET" || method === "HEAD") beginRouteCacheability("app-route", route.pattern);
|
|
69
|
+
const configuredRevalidateSeconds = getAppRouteHandlerRevalidateSeconds(handler);
|
|
70
|
+
const revalidateSeconds = hasNonStaticAppRouteHandlerMethods(handler) ? null : configuredRevalidateSeconds;
|
|
60
71
|
const isDevelopment = options.isDevelopment ?? process.env.NODE_ENV === "development";
|
|
61
72
|
const isProduction = options.isProduction ?? process.env.NODE_ENV === "production";
|
|
62
73
|
const appendResponseLink = handler.runtime === "edge" || handler.runtime === "experimental-edge";
|
|
@@ -70,7 +81,7 @@ async function dispatchAppRouteHandler(options) {
|
|
|
70
81
|
isHead
|
|
71
82
|
});
|
|
72
83
|
options.clearRequestContext();
|
|
73
|
-
return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalized, options.middlewareContext, { appendResponseLink }), isDraftMode || hasDraftModeTransition);
|
|
84
|
+
return applyCdnResponseBuildIdentityHeaders(applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalized, options.middlewareContext, { appendResponseLink }), isDraftMode || hasDraftModeTransition));
|
|
74
85
|
};
|
|
75
86
|
if (hasAppRouteHandlerDefaultExport(handler) && isDevelopment) console.error("[vinext] Detected default export in route handler " + route.pattern + ". Export a named export for each HTTP method instead.");
|
|
76
87
|
if (!isValidHTTPMethod(method)) return finalizeFrameworkResponse(new Response(null, { status: 400 }));
|
|
@@ -80,11 +91,7 @@ async function dispatchAppRouteHandler(options) {
|
|
|
80
91
|
headers: { Allow: allowHeaderForOptions }
|
|
81
92
|
}));
|
|
82
93
|
const resolvedHandlerFn = isAppRouteHandlerFunction(handlerFn) ? handlerFn : void 0;
|
|
83
|
-
const
|
|
84
|
-
setCurrentFetchCacheMode(fetchCacheMode);
|
|
85
|
-
setCurrentFetchRevalidate(revalidateSeconds);
|
|
86
|
-
setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
|
|
87
|
-
if (revalidateSeconds !== null && shouldReadAppRouteHandlerCache({
|
|
94
|
+
const shouldReadRouteCache = options.bypassSharedCache !== true && revalidateSeconds !== null && !getRouteCacheabilityDynamicReason() && shouldReadAppRouteHandlerCache({
|
|
88
95
|
dynamicConfig: handler.dynamic,
|
|
89
96
|
handlerFn: resolvedHandlerFn,
|
|
90
97
|
isAutoHead,
|
|
@@ -93,7 +100,13 @@ async function dispatchAppRouteHandler(options) {
|
|
|
93
100
|
isProduction,
|
|
94
101
|
method,
|
|
95
102
|
revalidateSeconds
|
|
96
|
-
})
|
|
103
|
+
});
|
|
104
|
+
const revalidateReason = isOnDemandRevalidateRequest(options.request.headers.get("x-prerender-revalidate")) ? "on-demand" : shouldReadRouteCache ? "stale" : void 0;
|
|
105
|
+
const fetchCacheMode = resolveAppRouteHandlerFetchCacheMode(handler);
|
|
106
|
+
setCurrentFetchCacheMode(fetchCacheMode);
|
|
107
|
+
setCurrentFetchRevalidate(configuredRevalidateSeconds);
|
|
108
|
+
setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
|
|
109
|
+
if (shouldReadRouteCache && resolvedHandlerFn) {
|
|
97
110
|
const cachedRouteResponse = await readAppRouteHandlerCacheResponse({
|
|
98
111
|
basePath: options.basePath,
|
|
99
112
|
buildPageCacheTags(pathname, extraTags) {
|
|
@@ -142,47 +155,52 @@ async function dispatchAppRouteHandler(options) {
|
|
|
142
155
|
setHeadersAccessPhase,
|
|
143
156
|
setNavigationContext
|
|
144
157
|
});
|
|
145
|
-
if (cachedRouteResponse) return cachedRouteResponse;
|
|
158
|
+
if (cachedRouteResponse) return applyCdnResponseBuildIdentityHeaders(cachedRouteResponse);
|
|
159
|
+
}
|
|
160
|
+
if (resolvedHandlerFn) {
|
|
161
|
+
const response = await executeAppRouteHandler({
|
|
162
|
+
basePath: options.basePath,
|
|
163
|
+
bypassSharedCache: options.bypassSharedCache,
|
|
164
|
+
buildPageCacheTags(pathname, extraTags) {
|
|
165
|
+
return buildRouteHandlerPageCacheTags(pathname, extraTags, route.routeSegments);
|
|
166
|
+
},
|
|
167
|
+
cleanPathname: options.cleanPathname,
|
|
168
|
+
clearRequestContext: options.clearRequestContext,
|
|
169
|
+
consumeDynamicUsage,
|
|
170
|
+
draftModeSecret: options.draftModeSecret,
|
|
171
|
+
executionContext: getRequestExecutionContext(),
|
|
172
|
+
getAndClearPendingCookies,
|
|
173
|
+
getCollectedFetchTags,
|
|
174
|
+
getActiveDraftModeState,
|
|
175
|
+
getDraftModeCookieHeader,
|
|
176
|
+
handler,
|
|
177
|
+
handlerFn: resolvedHandlerFn,
|
|
178
|
+
i18n: options.i18n,
|
|
179
|
+
trailingSlash: options.trailingSlash,
|
|
180
|
+
isAutoHead,
|
|
181
|
+
initialDraftModeCookie,
|
|
182
|
+
isDraftMode,
|
|
183
|
+
isProduction,
|
|
184
|
+
isrDebug: options.isrDebug,
|
|
185
|
+
isrRouteKey: options.isrRouteKey,
|
|
186
|
+
isrSet: options.isrSet,
|
|
187
|
+
markDynamicUsage,
|
|
188
|
+
method,
|
|
189
|
+
middlewareContext: options.middlewareContext,
|
|
190
|
+
middlewareRequestHeaders: options.middlewareRequestHeaders,
|
|
191
|
+
params: options.params === null ? null : makeThenableParams(options.params),
|
|
192
|
+
reportRequestError(error, request, context) {
|
|
193
|
+
return reportRequestError(error, request, context);
|
|
194
|
+
},
|
|
195
|
+
request: options.request,
|
|
196
|
+
expireSeconds: options.expireSeconds,
|
|
197
|
+
revalidateSeconds,
|
|
198
|
+
revalidateReason,
|
|
199
|
+
routePattern: route.pattern,
|
|
200
|
+
setHeadersAccessPhase
|
|
201
|
+
});
|
|
202
|
+
return applyCdnResponseBuildIdentityHeaders(response);
|
|
146
203
|
}
|
|
147
|
-
if (resolvedHandlerFn) return executeAppRouteHandler({
|
|
148
|
-
basePath: options.basePath,
|
|
149
|
-
buildPageCacheTags(pathname, extraTags) {
|
|
150
|
-
return buildRouteHandlerPageCacheTags(pathname, extraTags, route.routeSegments);
|
|
151
|
-
},
|
|
152
|
-
cleanPathname: options.cleanPathname,
|
|
153
|
-
clearRequestContext: options.clearRequestContext,
|
|
154
|
-
consumeDynamicUsage,
|
|
155
|
-
draftModeSecret: options.draftModeSecret,
|
|
156
|
-
executionContext: getRequestExecutionContext(),
|
|
157
|
-
getAndClearPendingCookies,
|
|
158
|
-
getCollectedFetchTags,
|
|
159
|
-
getActiveDraftModeState,
|
|
160
|
-
getDraftModeCookieHeader,
|
|
161
|
-
handler,
|
|
162
|
-
handlerFn: resolvedHandlerFn,
|
|
163
|
-
i18n: options.i18n,
|
|
164
|
-
trailingSlash: options.trailingSlash,
|
|
165
|
-
isAutoHead,
|
|
166
|
-
initialDraftModeCookie,
|
|
167
|
-
isDraftMode,
|
|
168
|
-
isProduction,
|
|
169
|
-
isrDebug: options.isrDebug,
|
|
170
|
-
isrRouteKey: options.isrRouteKey,
|
|
171
|
-
isrSet: options.isrSet,
|
|
172
|
-
markDynamicUsage,
|
|
173
|
-
method,
|
|
174
|
-
middlewareContext: options.middlewareContext,
|
|
175
|
-
middlewareRequestHeaders: options.middlewareRequestHeaders,
|
|
176
|
-
params: options.params === null ? null : makeThenableParams(options.params),
|
|
177
|
-
reportRequestError(error, request, context) {
|
|
178
|
-
reportRequestError(error, request, context);
|
|
179
|
-
},
|
|
180
|
-
request: options.request,
|
|
181
|
-
expireSeconds: options.expireSeconds,
|
|
182
|
-
revalidateSeconds,
|
|
183
|
-
routePattern: route.pattern,
|
|
184
|
-
setHeadersAccessPhase
|
|
185
|
-
});
|
|
186
204
|
return finalizeFrameworkResponse(new Response(null, { status: 405 }));
|
|
187
205
|
}
|
|
188
206
|
//#endregion
|
|
@@ -1,15 +1,16 @@
|
|
|
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
7
|
import { HeadersAccessPhase } from "../shims/headers.js";
|
|
7
8
|
import { RouteHandlerMiddlewareContext } from "./app-route-handler-response.js";
|
|
8
9
|
import { AppRouteHandlerModule } from "./app-route-handler-policy.js";
|
|
9
10
|
//#region src/server/app-route-handler-execution.d.ts
|
|
10
|
-
type AppRouteParams = Record<string, string | string[]>;
|
|
11
|
-
type AppRouteDynamicUsageFn = () => boolean;
|
|
12
|
-
type MarkAppRouteDynamicUsageFn = () => void;
|
|
11
|
+
export type AppRouteParams = Record<string, string | string[]>;
|
|
12
|
+
export type AppRouteDynamicUsageFn = () => boolean;
|
|
13
|
+
export type MarkAppRouteDynamicUsageFn = () => void;
|
|
13
14
|
/**
|
|
14
15
|
* Route handler context.
|
|
15
16
|
*
|
|
@@ -21,11 +22,11 @@ type MarkAppRouteDynamicUsageFn = () => void;
|
|
|
21
22
|
* See: test/e2e/app-dir/app-routes/app-custom-routes.test.ts in Next.js for
|
|
22
23
|
* the authoritative assertion (`expect(meta.params).toEqual(null)`).
|
|
23
24
|
*/
|
|
24
|
-
type AppRouteHandlerFunction = (request: NextRequest, context: {
|
|
25
|
+
export type AppRouteHandlerFunction = (request: NextRequest, context: {
|
|
25
26
|
params: AppRouteParams | null;
|
|
26
27
|
}) => Response | Promise<Response>;
|
|
27
|
-
type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, policy: IsrWritePolicy) => Promise<void>;
|
|
28
|
-
type AppRouteErrorReporter = (error:
|
|
28
|
+
export type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, policy: IsrWritePolicy) => Promise<void>;
|
|
29
|
+
type AppRouteErrorReporter = (error: unknown, request: {
|
|
29
30
|
path: string;
|
|
30
31
|
method: string;
|
|
31
32
|
headers: Record<string, string>;
|
|
@@ -33,8 +34,9 @@ type AppRouteErrorReporter = (error: Error, request: {
|
|
|
33
34
|
routerKind: "App Router";
|
|
34
35
|
routePath: string;
|
|
35
36
|
routeType: "route";
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
revalidateReason: "on-demand" | "stale" | undefined;
|
|
38
|
+
}) => void | Promise<void>;
|
|
39
|
+
export type AppRouteDebugLogger = (event: string, detail: string) => void;
|
|
38
40
|
type RunAppRouteHandlerOptions = {
|
|
39
41
|
basePath?: string;
|
|
40
42
|
consumeDynamicUsage: AppRouteDynamicUsageFn;
|
|
@@ -56,12 +58,14 @@ type RunAppRouteHandlerOptions = {
|
|
|
56
58
|
setHeadersAccessPhase?: (phase: HeadersAccessPhase) => HeadersAccessPhase;
|
|
57
59
|
};
|
|
58
60
|
type RunAppRouteHandlerResult = {
|
|
61
|
+
didAccessDynamicRequest: () => boolean;
|
|
59
62
|
dynamicUsedInHandler: boolean;
|
|
60
63
|
response: Response;
|
|
61
64
|
};
|
|
62
|
-
declare function applyDraftModeCachePolicy(response: Response, isDraftMode: boolean): Response;
|
|
65
|
+
export declare function applyDraftModeCachePolicy(response: Response, isDraftMode: boolean): Response;
|
|
63
66
|
type ExecuteAppRouteHandlerOptions = {
|
|
64
67
|
buildPageCacheTags: (pathname: string, extraTags: string[]) => string[];
|
|
68
|
+
bypassSharedCache?: boolean;
|
|
65
69
|
clearRequestContext: () => void;
|
|
66
70
|
cleanPathname: string;
|
|
67
71
|
executionContext: ExecutionContextLike | null;
|
|
@@ -82,10 +86,11 @@ type ExecuteAppRouteHandlerOptions = {
|
|
|
82
86
|
reportRequestError: AppRouteErrorReporter;
|
|
83
87
|
expireSeconds?: number;
|
|
84
88
|
revalidateSeconds: number | null;
|
|
89
|
+
revalidateReason?: "on-demand" | "stale";
|
|
85
90
|
routePattern: string;
|
|
86
91
|
setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;
|
|
87
92
|
} & RunAppRouteHandlerOptions;
|
|
88
|
-
declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
|
|
89
|
-
declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
|
|
90
|
-
|
|
91
|
-
|
|
93
|
+
export declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
|
|
94
|
+
export declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
|
|
95
|
+
export declare function traceAppRouteHandlerExecution<T>(routePattern: string, callback: (span: FrameworkSpan) => T): T;
|
|
96
|
+
//#endregion
|
|
@@ -1,15 +1,79 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
2
|
+
import { frameworkTracer } from "./tracer.js";
|
|
3
|
+
import { getRouteCacheabilityCaptureOptions, getRouteCacheabilityDynamicReason, isRouteCacheabilityEvaluation, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete } from "../shims/cacheability-classification.js";
|
|
4
|
+
import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy } from "./cache-control.js";
|
|
2
5
|
import { isrCacheControl } from "./isr-cache.js";
|
|
3
6
|
import { isDraftModeRequest, setHeadersContext } from "../shims/headers.js";
|
|
4
7
|
import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
|
|
5
8
|
import { copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
|
|
6
9
|
import { applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss } from "./app-route-handler-response.js";
|
|
7
|
-
import { runWithRootParamsUsage } from "../shims/root-params.js";
|
|
8
10
|
import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
|
|
11
|
+
import { runWithRootParamsUsage } from "../shims/root-params.js";
|
|
9
12
|
import { createTrackedAppRouteRequest, markKnownDynamicAppRoute } from "./app-route-handler-runtime.js";
|
|
13
|
+
import { resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldCompleteAppRouteHandlerResponse, shouldWriteAppRouteHandlerCache } from "./app-route-handler-policy.js";
|
|
10
14
|
import { createStaticGenerationHeadersContext, getAppRouteStaticGenerationErrorMessage } from "./app-static-generation.js";
|
|
11
|
-
import {
|
|
15
|
+
import { CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT } from "./cacheability-limits.js";
|
|
12
16
|
//#region src/server/app-route-handler-execution.ts
|
|
17
|
+
function hasExplicitCacheableResponsePolicy(headers) {
|
|
18
|
+
return !hasExplicitNonCacheableResponsePolicy(headers) && hasCdnResponsePolicy(headers);
|
|
19
|
+
}
|
|
20
|
+
async function completeAppRouteHandlerResponse(response) {
|
|
21
|
+
const { captureCacheabilityAdmissionBody } = await import("./cacheability-request.js");
|
|
22
|
+
const captureOptions = getRouteCacheabilityCaptureOptions();
|
|
23
|
+
const captured = await captureCacheabilityAdmissionBody(response.body, captureOptions?.captureDeadlineAt ?? Date.now() + 2e4, CACHEABILITY_ADMISSION_RESPONSE_BODY_LIMIT, captureOptions?.captureBudget);
|
|
24
|
+
const completed = new Response(captured.body, {
|
|
25
|
+
headers: response.headers,
|
|
26
|
+
status: response.status,
|
|
27
|
+
statusText: response.statusText
|
|
28
|
+
});
|
|
29
|
+
copyLinkHeaderProvenance(response.headers, completed.headers);
|
|
30
|
+
return {
|
|
31
|
+
completed: captured.kind === "captured",
|
|
32
|
+
response: completed
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function deferAppRouteHandlerCleanup(response, cleanup) {
|
|
36
|
+
if (!response.body) {
|
|
37
|
+
cleanup();
|
|
38
|
+
return response;
|
|
39
|
+
}
|
|
40
|
+
const reader = response.body.getReader();
|
|
41
|
+
let cleaned = false;
|
|
42
|
+
const cleanOnce = async () => {
|
|
43
|
+
if (cleaned) return;
|
|
44
|
+
cleaned = true;
|
|
45
|
+
reader.releaseLock();
|
|
46
|
+
await cleanup();
|
|
47
|
+
};
|
|
48
|
+
const body = new ReadableStream({
|
|
49
|
+
async pull(controller) {
|
|
50
|
+
try {
|
|
51
|
+
const result = await reader.read();
|
|
52
|
+
if (result.done) {
|
|
53
|
+
await cleanOnce();
|
|
54
|
+
controller.close();
|
|
55
|
+
} else controller.enqueue(result.value);
|
|
56
|
+
} catch (error) {
|
|
57
|
+
await cleanOnce();
|
|
58
|
+
controller.error(error);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
async cancel(reason) {
|
|
62
|
+
try {
|
|
63
|
+
await reader.cancel(reason);
|
|
64
|
+
} finally {
|
|
65
|
+
await cleanOnce();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}, { highWaterMark: 0 });
|
|
69
|
+
const deferred = new Response(body, {
|
|
70
|
+
headers: response.headers,
|
|
71
|
+
status: response.status,
|
|
72
|
+
statusText: response.statusText
|
|
73
|
+
});
|
|
74
|
+
copyLinkHeaderProvenance(response.headers, deferred.headers);
|
|
75
|
+
return deferred;
|
|
76
|
+
}
|
|
13
77
|
function applyDraftModeCachePolicy(response, isDraftMode) {
|
|
14
78
|
if (!isDraftMode) return response;
|
|
15
79
|
const headers = new Headers(response.headers);
|
|
@@ -24,8 +88,9 @@ function applyDraftModeCachePolicy(response, isDraftMode) {
|
|
|
24
88
|
}
|
|
25
89
|
function configureAppRouteStaticGenerationContext(options) {
|
|
26
90
|
if (options.dynamicConfig === "force-static" || options.dynamicConfig === "error") {
|
|
91
|
+
const isDraftMode = options.isDraftMode ?? (options.draftModeSecret !== void 0 && isDraftModeRequest(options.request, options.draftModeSecret));
|
|
27
92
|
setHeadersContext(createStaticGenerationHeadersContext({
|
|
28
|
-
draftModeEnabled:
|
|
93
|
+
draftModeEnabled: isDraftMode,
|
|
29
94
|
draftModeSecret: options.draftModeSecret,
|
|
30
95
|
dynamicConfig: options.dynamicConfig,
|
|
31
96
|
routeKind: "route",
|
|
@@ -50,41 +115,116 @@ async function runAppRouteHandler(options) {
|
|
|
50
115
|
return getAppRouteStaticGenerationErrorMessage(options.routePattern, expression);
|
|
51
116
|
}
|
|
52
117
|
});
|
|
118
|
+
const routePattern = options.routePattern ?? new URL(options.request.url).pathname;
|
|
53
119
|
const response = await runWithRootParamsUsage({
|
|
54
120
|
kind: "route-handler",
|
|
55
|
-
routePattern
|
|
121
|
+
routePattern
|
|
56
122
|
}, () => options.handlerFn(trackedRequest.request, { params: options.params }));
|
|
123
|
+
const dynamicUsedInContext = options.consumeDynamicUsage();
|
|
57
124
|
return {
|
|
58
|
-
|
|
125
|
+
didAccessDynamicRequest: () => trackedRequest.didAccessDynamicRequest(),
|
|
126
|
+
dynamicUsedInHandler: trackedRequest.didAccessDynamicRequest() || dynamicUsedInContext,
|
|
59
127
|
response
|
|
60
128
|
};
|
|
61
129
|
}
|
|
62
130
|
async function executeAppRouteHandler(options) {
|
|
131
|
+
return executeAppRouteHandlerImpl(options);
|
|
132
|
+
}
|
|
133
|
+
function traceAppRouteHandlerExecution(routePattern, callback) {
|
|
134
|
+
const route = patternToNextFormat(routePattern);
|
|
135
|
+
return frameworkTracer.trace({
|
|
136
|
+
attributes: { "next.route": route },
|
|
137
|
+
name: `executing api route (app) ${route}`,
|
|
138
|
+
type: "AppRouteRouteHandlers.runHandler"
|
|
139
|
+
}, callback);
|
|
140
|
+
}
|
|
141
|
+
async function executeAppRouteHandlerImpl(options) {
|
|
63
142
|
const previousHeadersPhase = options.setHeadersAccessPhase("route-handler");
|
|
143
|
+
let cleanupDeferredToBody = false;
|
|
64
144
|
const middlewareMergeOptions = { appendResponseLink: options.handler.runtime === "edge" || options.handler.runtime === "experimental-edge" };
|
|
65
145
|
try {
|
|
66
|
-
let
|
|
146
|
+
let tracedResult;
|
|
147
|
+
let traceError;
|
|
148
|
+
let traceFailed = false;
|
|
149
|
+
let pendingRevalidations = Promise.resolve();
|
|
67
150
|
try {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
151
|
+
tracedResult = await traceAppRouteHandlerExecution(options.routePattern, async () => {
|
|
152
|
+
try {
|
|
153
|
+
try {
|
|
154
|
+
return {
|
|
155
|
+
kind: "handler",
|
|
156
|
+
handlerResult: await runAppRouteHandler({
|
|
157
|
+
...options,
|
|
158
|
+
dynamicConfig: options.handler.dynamic
|
|
159
|
+
})
|
|
160
|
+
};
|
|
161
|
+
} catch (error) {
|
|
162
|
+
if (resolveAppRouteHandlerSpecialError(error, options.request.url, { isAction: isPossibleAppRouteActionRequest(options.request) })) return {
|
|
163
|
+
kind: "special",
|
|
164
|
+
error
|
|
165
|
+
};
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
} finally {
|
|
169
|
+
pendingRevalidations = _drainPendingRevalidations();
|
|
170
|
+
pendingRevalidations.catch(() => {});
|
|
171
|
+
}
|
|
71
172
|
});
|
|
72
|
-
}
|
|
73
|
-
|
|
173
|
+
} catch (error) {
|
|
174
|
+
traceFailed = true;
|
|
175
|
+
traceError = error;
|
|
176
|
+
}
|
|
177
|
+
let revalidationError;
|
|
178
|
+
let revalidationFailed = false;
|
|
179
|
+
try {
|
|
180
|
+
await pendingRevalidations;
|
|
181
|
+
} catch (error) {
|
|
182
|
+
revalidationFailed = true;
|
|
183
|
+
revalidationError = error;
|
|
74
184
|
}
|
|
75
|
-
|
|
185
|
+
if (traceFailed) throw traceError;
|
|
186
|
+
if (revalidationFailed) throw revalidationError;
|
|
187
|
+
if (!tracedResult) throw new Error("App Route Handler tracing completed without a result");
|
|
188
|
+
if (tracedResult.kind === "special") throw tracedResult.error;
|
|
189
|
+
const handlerResult = tracedResult.handlerResult;
|
|
190
|
+
let { dynamicUsedInHandler, response } = handlerResult;
|
|
76
191
|
assertSupportedAppRouteHandlerResponse(response);
|
|
77
|
-
const
|
|
192
|
+
const handlerSetCachePolicy = hasCdnResponsePolicy(response.headers);
|
|
193
|
+
const hasExplicitCacheablePolicy = hasExplicitCacheableResponsePolicy(response.headers);
|
|
194
|
+
if (hasExplicitCacheablePolicy) markRouteCacheabilityExplicitResponsePolicy();
|
|
195
|
+
const draftModeBeforeCompletion = options.getActiveDraftModeState?.() ?? options.isDraftMode === true;
|
|
196
|
+
const handlerDraftCookieBeforeCompletion = options.getDraftModeCookieHeader() ?? options.initialDraftModeCookie;
|
|
197
|
+
if (shouldCompleteAppRouteHandlerResponse({
|
|
198
|
+
dynamicConfig: options.handler.dynamic,
|
|
199
|
+
dynamicUsedInHandler,
|
|
200
|
+
hasExplicitCacheablePolicy,
|
|
201
|
+
handlerSetCachePolicy,
|
|
202
|
+
isAutoHead: options.isAutoHead,
|
|
203
|
+
isDraftMode: draftModeBeforeCompletion || handlerDraftCookieBeforeCompletion != null,
|
|
204
|
+
isProduction: options.isProduction,
|
|
205
|
+
method: options.method,
|
|
206
|
+
revalidateSeconds: options.revalidateSeconds,
|
|
207
|
+
requiresCompletedResponseAdmission: isRouteCacheabilityEvaluation()
|
|
208
|
+
})) {
|
|
209
|
+
const completed = await completeAppRouteHandlerResponse(response);
|
|
210
|
+
response = completed.response;
|
|
211
|
+
cleanupDeferredToBody = !completed.completed;
|
|
212
|
+
if (completed.completed) markRouteCacheabilityResponseBodyComplete();
|
|
213
|
+
const dynamicUsedDuringCompletion = options.consumeDynamicUsage();
|
|
214
|
+
dynamicUsedInHandler = handlerResult.didAccessDynamicRequest() || dynamicUsedDuringCompletion || dynamicUsedInHandler;
|
|
215
|
+
}
|
|
216
|
+
const requestCacheabilityVeto = getRouteCacheabilityDynamicReason();
|
|
217
|
+
const responseMustStayPrivate = Boolean(options.bypassSharedCache === true || options.handler.dynamic === "force-dynamic" || dynamicUsedInHandler || requestCacheabilityVeto || cleanupDeferredToBody);
|
|
78
218
|
if (dynamicUsedInHandler) markKnownDynamicAppRoute(options.routePattern);
|
|
79
219
|
const pendingCookies = options.getAndClearPendingCookies();
|
|
80
|
-
const handlerDraftCookie = options.getDraftModeCookieHeader();
|
|
220
|
+
const handlerDraftCookie = options.getDraftModeCookieHeader() ?? handlerDraftCookieBeforeCompletion;
|
|
81
221
|
const draftCookie = handlerDraftCookie ?? options.initialDraftModeCookie;
|
|
82
222
|
const shouldApplyDraftPolicy = (options.getActiveDraftModeState?.() ?? options.isDraftMode === true) || draftCookie != null;
|
|
83
223
|
if (handlerDraftCookie != null) markKnownDynamicAppRoute(options.routePattern);
|
|
84
224
|
const routeTags = options.buildPageCacheTags(options.cleanPathname, options.getCollectedFetchTags());
|
|
85
225
|
if (shouldApplyAppRouteHandlerRevalidateHeader({
|
|
86
|
-
dynamicUsedInHandler,
|
|
87
|
-
|
|
226
|
+
dynamicUsedInHandler: responseMustStayPrivate,
|
|
227
|
+
handlerSetCachePolicy,
|
|
88
228
|
isAutoHead: options.isAutoHead,
|
|
89
229
|
isDraftMode: shouldApplyDraftPolicy,
|
|
90
230
|
method: options.method,
|
|
@@ -96,8 +236,8 @@ async function executeAppRouteHandler(options) {
|
|
|
96
236
|
}
|
|
97
237
|
if (shouldWriteAppRouteHandlerCache({
|
|
98
238
|
dynamicConfig: options.handler.dynamic,
|
|
99
|
-
dynamicUsedInHandler,
|
|
100
|
-
|
|
239
|
+
dynamicUsedInHandler: responseMustStayPrivate,
|
|
240
|
+
handlerSetCachePolicy,
|
|
101
241
|
isAutoHead: options.isAutoHead,
|
|
102
242
|
isDraftMode: shouldApplyDraftPolicy,
|
|
103
243
|
isProduction: options.isProduction,
|
|
@@ -123,12 +263,35 @@ async function executeAppRouteHandler(options) {
|
|
|
123
263
|
})();
|
|
124
264
|
options.executionContext?.waitUntil(routeWritePromise);
|
|
125
265
|
}
|
|
126
|
-
|
|
127
|
-
return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(response, {
|
|
266
|
+
let finalized = applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(response, {
|
|
128
267
|
pendingCookies,
|
|
129
268
|
draftCookie,
|
|
130
269
|
isHead: options.isAutoHead
|
|
131
270
|
}), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
|
|
271
|
+
const preserveHandlerPolicy = isRouteCacheabilityEvaluation() ? hasExplicitCacheablePolicy : handlerSetCachePolicy;
|
|
272
|
+
if (options.bypassSharedCache === true || responseMustStayPrivate && !preserveHandlerPolicy) {
|
|
273
|
+
const headers = new Headers(finalized.headers);
|
|
274
|
+
applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
|
|
275
|
+
finalized = new Response(finalized.body, {
|
|
276
|
+
headers,
|
|
277
|
+
status: finalized.status,
|
|
278
|
+
statusText: finalized.statusText
|
|
279
|
+
});
|
|
280
|
+
copyLinkHeaderProvenance(response.headers, finalized.headers);
|
|
281
|
+
}
|
|
282
|
+
if (!cleanupDeferredToBody) {
|
|
283
|
+
options.clearRequestContext();
|
|
284
|
+
return finalized;
|
|
285
|
+
}
|
|
286
|
+
return deferAppRouteHandlerCleanup(finalized, async () => {
|
|
287
|
+
try {
|
|
288
|
+
await _drainPendingRevalidations();
|
|
289
|
+
options.consumeDynamicUsage();
|
|
290
|
+
} finally {
|
|
291
|
+
options.clearRequestContext();
|
|
292
|
+
options.setHeadersAccessPhase(previousHeadersPhase);
|
|
293
|
+
}
|
|
294
|
+
});
|
|
132
295
|
} catch (error) {
|
|
133
296
|
const pendingCookies = options.getAndClearPendingCookies();
|
|
134
297
|
const handlerDraftCookie = options.getDraftModeCookieHeader();
|
|
@@ -149,19 +312,20 @@ async function executeAppRouteHandler(options) {
|
|
|
149
312
|
return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(new Response(null, { status: specialError.statusCode }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
|
|
150
313
|
}
|
|
151
314
|
console.error("[vinext] Route handler error:", error);
|
|
152
|
-
options.reportRequestError(error
|
|
315
|
+
await options.reportRequestError(error, {
|
|
153
316
|
path: options.cleanPathname,
|
|
154
317
|
method: options.request.method,
|
|
155
318
|
headers: Object.fromEntries(options.request.headers.entries())
|
|
156
319
|
}, {
|
|
157
320
|
routerKind: "App Router",
|
|
158
321
|
routePath: options.routePattern,
|
|
159
|
-
routeType: "route"
|
|
322
|
+
routeType: "route",
|
|
323
|
+
revalidateReason: options.revalidateReason
|
|
160
324
|
});
|
|
161
325
|
return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(new Response(null, { status: 500 }), options.middlewareContext, middlewareMergeOptions), shouldApplyDraftPolicy);
|
|
162
326
|
} finally {
|
|
163
|
-
options.setHeadersAccessPhase(previousHeadersPhase);
|
|
327
|
+
if (!cleanupDeferredToBody) options.setHeadersAccessPhase(previousHeadersPhase);
|
|
164
328
|
}
|
|
165
329
|
}
|
|
166
330
|
//#endregion
|
|
167
|
-
export { applyDraftModeCachePolicy, executeAppRouteHandler, runAppRouteHandler };
|
|
331
|
+
export { applyDraftModeCachePolicy, 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,9 +1,10 @@
|
|
|
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
|
+
generateStaticParams?: unknown;
|
|
7
8
|
revalidate?: unknown;
|
|
8
9
|
runtime?: string;
|
|
9
10
|
} & RouteHandlerModule;
|
|
@@ -28,12 +29,14 @@ type AppRouteHandlerCacheReadOptions = {
|
|
|
28
29
|
type AppRouteHandlerResponseCacheOptions = {
|
|
29
30
|
dynamicConfig?: string;
|
|
30
31
|
dynamicUsedInHandler: boolean;
|
|
31
|
-
|
|
32
|
+
hasExplicitCacheablePolicy?: boolean;
|
|
33
|
+
handlerSetCachePolicy: boolean;
|
|
32
34
|
isAutoHead: boolean;
|
|
33
35
|
isDraftMode?: boolean;
|
|
34
36
|
isProduction: boolean;
|
|
35
37
|
method: string;
|
|
36
38
|
revalidateSeconds: number | null;
|
|
39
|
+
requiresCompletedResponseAdmission?: boolean;
|
|
37
40
|
};
|
|
38
41
|
type AppRouteHandlerSpecialError = {
|
|
39
42
|
kind: "redirect";
|
|
@@ -46,12 +49,21 @@ type AppRouteHandlerSpecialError = {
|
|
|
46
49
|
type AppRouteHandlerSpecialErrorOptions = {
|
|
47
50
|
isAction: boolean;
|
|
48
51
|
};
|
|
49
|
-
declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "revalidate">): number | null;
|
|
50
|
-
declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
|
|
51
|
-
|
|
52
|
-
declare function
|
|
53
|
-
declare function
|
|
54
|
-
declare function
|
|
55
|
-
declare function
|
|
52
|
+
export declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "dynamic" | "generateStaticParams" | "revalidate">): number | null;
|
|
53
|
+
export declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
|
|
54
|
+
/** Match Next.js methods that force an App Route out of static generation. */
|
|
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
|
+
/**
|
|
60
|
+
* Next.js consumes the full body before completing static generation for an
|
|
61
|
+
* App Route. Keep that completion boundary for every response that can still
|
|
62
|
+
* receive a public framework cache policy, including
|
|
63
|
+
* `revalidate = false` (represented by Infinity).
|
|
64
|
+
*/
|
|
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;
|
|
56
68
|
//#endregion
|
|
57
|
-
export {
|
|
69
|
+
export { isPossibleAppRouteActionRequest };
|