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
|
@@ -8,8 +8,8 @@ import { ComponentType, ReactNode } from "react";
|
|
|
8
8
|
* Returns true when the User-Agent belongs to a bot or crawler that cannot
|
|
9
9
|
* reliably consume a streamed HTML response.
|
|
10
10
|
*/
|
|
11
|
-
declare function isPagesStreamingBot(userAgent: string): boolean;
|
|
12
|
-
declare function generatePagesETag(payload: string): string;
|
|
11
|
+
export declare function isPagesStreamingBot(userAgent: string): boolean;
|
|
12
|
+
export declare function generatePagesETag(payload: string): string;
|
|
13
13
|
/**
|
|
14
14
|
* Returns true when a request `Cache-Control` header asks to bypass the 304
|
|
15
15
|
* short-circuit. Mirrors the `fresh` package's check used by Next.js's
|
|
@@ -17,7 +17,7 @@ declare function generatePagesETag(payload: string): string;
|
|
|
17
17
|
* fresh-MISS bot path here and the ISR HIT/STALE paths in
|
|
18
18
|
* `pages-page-data.ts` so the two cannot drift.
|
|
19
19
|
*/
|
|
20
|
-
declare function requestsNoCache(cacheControl: string | undefined): boolean;
|
|
20
|
+
export declare function requestsNoCache(cacheControl: string | undefined): boolean;
|
|
21
21
|
type PagesFontPreload = {
|
|
22
22
|
href: string;
|
|
23
23
|
type: string;
|
|
@@ -29,14 +29,14 @@ type PagesFontPreload = {
|
|
|
29
29
|
* recompute the initial `router.isReady`. Shared by every render path
|
|
30
30
|
* (initial, ISR regeneration) so they emit identical readiness state.
|
|
31
31
|
*/
|
|
32
|
-
type PagesNextDataExtras = Pick<VinextNextData, "__vinext" | "appGip" | "autoExport" | "gip" | "gsp" | "gssp" | "isExperimentalCompile" | "nextExport">;
|
|
33
|
-
type PagesI18nRenderContext = {
|
|
32
|
+
export type PagesNextDataExtras = Pick<VinextNextData, "__vinext" | "appGip" | "autoExport" | "gip" | "gsp" | "gssp" | "isExperimentalCompile" | "nextExport">;
|
|
33
|
+
export type PagesI18nRenderContext = {
|
|
34
34
|
locale?: string;
|
|
35
35
|
locales?: string[];
|
|
36
36
|
defaultLocale?: string;
|
|
37
37
|
domainLocales?: unknown;
|
|
38
38
|
};
|
|
39
|
-
type PagesGsspResponse = {
|
|
39
|
+
export type PagesGsspResponse = {
|
|
40
40
|
headersSent?: boolean;
|
|
41
41
|
statusCode: number;
|
|
42
42
|
getHeaders(): Record<string, string | number | boolean | string[]>;
|
|
@@ -103,11 +103,16 @@ type RenderPagesPageResponseOptions = {
|
|
|
103
103
|
query?: Record<string, unknown>;
|
|
104
104
|
renderDocumentToString: (element: ReactNode) => Promise<string>;
|
|
105
105
|
renderToReadableStream: (element: ReactNode) => Promise<ReadableStream<Uint8Array>>;
|
|
106
|
+
traceDocument?: <T extends {
|
|
107
|
+
bodyStream?: ReadableStream<Uint8Array>;
|
|
108
|
+
waitForBody?: boolean;
|
|
109
|
+
}>(callback: () => Promise<T>) => Promise<T>;
|
|
106
110
|
resetSSRHead?: (() => void) | undefined;
|
|
107
111
|
routePattern: string;
|
|
108
112
|
routeUrl: string;
|
|
109
113
|
safeJsonStringify: (value: unknown) => string;
|
|
110
114
|
scriptNonce?: string;
|
|
115
|
+
initialStylesheetHrefs?: ReadonlySet<string>;
|
|
111
116
|
crossOrigin?: string;
|
|
112
117
|
disableOptimizedLoading: boolean;
|
|
113
118
|
statusCode?: number;
|
|
@@ -136,9 +141,8 @@ type RenderPagesPageResponseOptions = {
|
|
|
136
141
|
*/
|
|
137
142
|
requestCacheControl?: string;
|
|
138
143
|
};
|
|
139
|
-
declare function buildPagesNextDataScript(options: Pick<RenderPagesPageResponseOptions, "buildId" | "i18n" | "isFallback" | "pageProps" | "props" | "params" | "routePattern" | "safeJsonStringify" | "scriptNonce" | "nextData"> & {
|
|
144
|
+
export declare function buildPagesNextDataScript(options: Pick<RenderPagesPageResponseOptions, "buildId" | "i18n" | "isFallback" | "pageProps" | "props" | "params" | "routePattern" | "safeJsonStringify" | "scriptNonce" | "nextData"> & {
|
|
140
145
|
vinext?: VinextNextData["__vinext"];
|
|
141
146
|
}): string;
|
|
142
|
-
declare function renderPagesPageResponse(options: RenderPagesPageResponseOptions): Promise<Response>;
|
|
143
|
-
//#endregion
|
|
144
|
-
export { PagesGsspResponse, PagesI18nRenderContext, PagesNextDataExtras, buildPagesNextDataScript, generatePagesETag, isPagesStreamingBot, renderPagesPageResponse, requestsNoCache };
|
|
147
|
+
export declare function renderPagesPageResponse(options: RenderPagesPageResponseOptions): Promise<Response>;
|
|
148
|
+
//#endregion
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { isBotUserAgent } from "../utils/html-limited-bots.js";
|
|
1
2
|
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
2
|
-
import { NEXTJS_CACHE_HEADER } from "./headers.js";
|
|
3
|
+
import { NEXTJS_CACHE_HEADER, VINEXT_REVALIDATED_CACHE_TAG_HEADER } from "./headers.js";
|
|
3
4
|
import { reportRequestError } from "./instrumentation.js";
|
|
4
5
|
import { BROWSER_REVALIDATE_CACHE_CONTROL, NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL, applyCdnResponseHeaders, shouldUseNextDeployCacheControl } from "./cache-control.js";
|
|
5
6
|
import { buildMissIsrCacheControl } from "./isr-decision.js";
|
|
@@ -15,7 +16,6 @@ import { setCacheStateHeaders } from "./cache-headers.js";
|
|
|
15
16
|
import { readStreamAsText } from "../utils/text-stream.js";
|
|
16
17
|
import { loadUserDocumentInitialProps, runDocumentRenderPage } from "./pages-document-initial-props.js";
|
|
17
18
|
import { callDocumentGetInitialProps } from "./document-initial-head.js";
|
|
18
|
-
import { isBotUserAgent } from "../utils/html-limited-bots.js";
|
|
19
19
|
import { matchesIfNoneMatch } from "./http-conditional.js";
|
|
20
20
|
import React from "react";
|
|
21
21
|
//#region src/server/pages-page-response.ts
|
|
@@ -119,14 +119,15 @@ async function buildPagesCompositeStream(bodyStream, shellPrefix, shellSuffix) {
|
|
|
119
119
|
async function reportPagesIsrCacheWriteError(error, cacheKey, routePattern) {
|
|
120
120
|
console.error(`[vinext] Pages ISR cache write failed for ${cacheKey}:`, error);
|
|
121
121
|
try {
|
|
122
|
-
await reportRequestError(error
|
|
122
|
+
await reportRequestError(error, {
|
|
123
123
|
path: cacheKey,
|
|
124
124
|
method: "GET",
|
|
125
125
|
headers: {}
|
|
126
126
|
}, {
|
|
127
127
|
routerKind: "Pages Router",
|
|
128
128
|
routePath: routePattern,
|
|
129
|
-
routeType: "render"
|
|
129
|
+
routeType: "render",
|
|
130
|
+
revalidateReason: void 0
|
|
130
131
|
});
|
|
131
132
|
} catch {}
|
|
132
133
|
}
|
|
@@ -181,33 +182,48 @@ async function renderPagesPageResponse(options) {
|
|
|
181
182
|
vinext: options.vinext
|
|
182
183
|
});
|
|
183
184
|
const bodyMarker = "<!--VINEXT_STREAM_BODY-->";
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
185
|
+
const documentResult = await (options.traceDocument ?? ((callback) => callback()))(async () => {
|
|
186
|
+
const documentRenderPage = await runDocumentRenderPage({
|
|
187
|
+
DocumentComponent: options.DocumentComponent,
|
|
188
|
+
enhancePageElement: options.enhancePageElement,
|
|
189
|
+
renderToReadableStream: options.renderToReadableStream,
|
|
190
|
+
renderStylesToString: async (element) => readStreamAsText(await options.renderToReadableStream(element)),
|
|
191
|
+
scriptNonce: options.scriptNonce,
|
|
192
|
+
initialStylesheetHrefs: options.initialStylesheetHrefs,
|
|
193
|
+
context: {
|
|
194
|
+
err: options.err,
|
|
195
|
+
req: options.documentReqRes?.req,
|
|
196
|
+
res: options.documentReqRes?.res,
|
|
197
|
+
pathname: options.routePattern,
|
|
198
|
+
query: options.query ?? options.params,
|
|
199
|
+
asPath: options.routeUrl
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
if (options.documentReqRes?.res.headersSent && options.documentReqRes.responsePromise) return {
|
|
203
|
+
documentRenderPage,
|
|
204
|
+
responseSent: true
|
|
205
|
+
};
|
|
206
|
+
let bodyStream;
|
|
207
|
+
if (documentRenderPage.status === "rendered") bodyStream = new ReadableStream({ start(controller) {
|
|
208
|
+
controller.enqueue(new TextEncoder().encode(documentRenderPage.bodyHtml));
|
|
209
|
+
controller.close();
|
|
210
|
+
} });
|
|
211
|
+
else {
|
|
212
|
+
const pageElement = withScriptNonce(React.createElement(React.Fragment, null, options.createPageElement(renderProps)), options.scriptNonce, options.initialStylesheetHrefs);
|
|
213
|
+
bodyStream = await options.renderToReadableStream(pageElement);
|
|
197
214
|
}
|
|
215
|
+
if (documentRenderPage.status === "skipped") await callDocumentGetInitialProps(options.DocumentComponent, options.setDocumentInitialHead);
|
|
216
|
+
else options.setDocumentInitialHead?.(documentRenderPage.head);
|
|
217
|
+
return {
|
|
218
|
+
bodyStream,
|
|
219
|
+
documentRenderPage,
|
|
220
|
+
responseSent: false,
|
|
221
|
+
waitForBody: documentRenderPage.status === "skipped"
|
|
222
|
+
};
|
|
198
223
|
});
|
|
199
|
-
if (
|
|
200
|
-
|
|
201
|
-
if (
|
|
202
|
-
controller.enqueue(new TextEncoder().encode(documentRenderPage.bodyHtml));
|
|
203
|
-
controller.close();
|
|
204
|
-
} });
|
|
205
|
-
else {
|
|
206
|
-
const pageElement = withScriptNonce(React.createElement(React.Fragment, null, options.createPageElement(renderProps)), options.scriptNonce);
|
|
207
|
-
bodyStream = await options.renderToReadableStream(pageElement);
|
|
208
|
-
}
|
|
209
|
-
if (documentRenderPage.status === "skipped") await callDocumentGetInitialProps(options.DocumentComponent, options.setDocumentInitialHead);
|
|
210
|
-
else options.setDocumentInitialHead?.(documentRenderPage.head);
|
|
224
|
+
if (documentResult.responseSent && options.documentReqRes?.responsePromise) return options.documentReqRes.responsePromise;
|
|
225
|
+
const { bodyStream, documentRenderPage } = documentResult;
|
|
226
|
+
if (!bodyStream) throw new Error("Pages document render did not produce a body stream");
|
|
211
227
|
const headFromShim = options.getSSRHeadHTML?.() ?? "";
|
|
212
228
|
const traceMetaHTML = getClientTraceMetadataHTML(options.clientTraceMetadata);
|
|
213
229
|
const ssrHeadHTML = headFromShim;
|
|
@@ -263,8 +279,10 @@ async function renderPagesPageResponse(options) {
|
|
|
263
279
|
cacheControl: buildMissIsrCacheControl(options.isrRevalidateSeconds, options.expireSeconds),
|
|
264
280
|
tags: [encodeCacheTag(`_N_T_${stem || "/"}`)]
|
|
265
281
|
});
|
|
266
|
-
if (options.isOnDemandRevalidate)
|
|
267
|
-
|
|
282
|
+
if (options.isOnDemandRevalidate) {
|
|
283
|
+
responseHeaders.set(NEXTJS_CACHE_HEADER, "REVALIDATED");
|
|
284
|
+
responseHeaders.set(VINEXT_REVALIDATED_CACHE_TAG_HEADER, encodeCacheTag(`_N_T_${stem || "/"}`));
|
|
285
|
+
} else setCacheStateHeaders(responseHeaders, "MISS");
|
|
268
286
|
} else if (options.isStaticPropsRoute && shouldUseNextDeployCacheControl()) responseHeaders.set("Cache-Control", BROWSER_REVALIDATE_CACHE_CONTROL);
|
|
269
287
|
else if (options.gsspRes && !userSetCacheControl) responseHeaders.set("Cache-Control", NEVER_CACHE_CONTROL);
|
|
270
288
|
if (options.fontLinkHeader) responseHeaders.set("Link", options.fontLinkHeader);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
//#region src/server/pages-preview.d.ts
|
|
2
|
-
declare const PAGES_PREVIEW_CACHE_CONTROL = "private, no-cache, no-store, max-age=0, must-revalidate";
|
|
3
|
-
type PagesPreviewData = object | string;
|
|
4
|
-
type PagesPreviewState = {
|
|
2
|
+
export declare const PAGES_PREVIEW_CACHE_CONTROL = "private, no-cache, no-store, max-age=0, must-revalidate";
|
|
3
|
+
export type PagesPreviewData = object | string;
|
|
4
|
+
export type PagesPreviewState = {
|
|
5
5
|
data: PagesPreviewData | false;
|
|
6
6
|
shouldClear: boolean;
|
|
7
7
|
};
|
|
@@ -9,18 +9,17 @@ type PreviewResponse = {
|
|
|
9
9
|
getHeader(name: string): string | number | boolean | string[] | undefined;
|
|
10
10
|
setHeader(name: string, value: string | number | boolean | string[]): unknown;
|
|
11
11
|
};
|
|
12
|
-
declare function getPagesPreviewModeId(): string;
|
|
13
|
-
declare function getPagesPreviewState(cookieHeader: string | string[] | null | undefined, options?: {
|
|
12
|
+
export declare function getPagesPreviewModeId(): string;
|
|
13
|
+
export declare function getPagesPreviewState(cookieHeader: string | string[] | null | undefined, options?: {
|
|
14
14
|
isOnDemandRevalidate?: boolean;
|
|
15
15
|
}): PagesPreviewState;
|
|
16
|
-
declare function setPagesDraftMode(response: PreviewResponse, enabled: boolean): void;
|
|
17
|
-
declare function setPagesPreviewData(response: PreviewResponse, data: PagesPreviewData, options?: {
|
|
16
|
+
export declare function setPagesDraftMode(response: PreviewResponse, enabled: boolean): void;
|
|
17
|
+
export declare function setPagesPreviewData(response: PreviewResponse, data: PagesPreviewData, options?: {
|
|
18
18
|
maxAge?: number;
|
|
19
19
|
path?: string;
|
|
20
20
|
}): void;
|
|
21
|
-
declare function clearPagesPreviewData(response: PreviewResponse, options?: {
|
|
21
|
+
export declare function clearPagesPreviewData(response: PreviewResponse, options?: {
|
|
22
22
|
path?: string;
|
|
23
23
|
}): void;
|
|
24
|
-
declare function appendPagesPreviewClearCookies(headers: Headers): void;
|
|
25
|
-
//#endregion
|
|
26
|
-
export { PAGES_PREVIEW_CACHE_CONTROL, PagesPreviewData, PagesPreviewState, appendPagesPreviewClearCookies, clearPagesPreviewData, getPagesPreviewModeId, getPagesPreviewState, setPagesDraftMode, setPagesPreviewData };
|
|
24
|
+
export declare function appendPagesPreviewClearCookies(headers: Headers): void;
|
|
25
|
+
//#endregion
|
|
@@ -24,7 +24,7 @@ type PagesReadinessNextData = Pick<VinextNextData, "gssp" | "gsp" | "gip" | "app
|
|
|
24
24
|
* Build the readiness flags for a Pages Router render. Shared by the dev and
|
|
25
25
|
* production Pages render paths.
|
|
26
26
|
*/
|
|
27
|
-
declare function buildPagesReadinessNextData(options: {
|
|
27
|
+
export declare function buildPagesReadinessNextData(options: {
|
|
28
28
|
pageModule: PagesPageModule;
|
|
29
29
|
appComponent: {
|
|
30
30
|
getInitialProps?: unknown;
|
|
@@ -32,5 +32,4 @@ declare function buildPagesReadinessNextData(options: {
|
|
|
32
32
|
} | null | undefined;
|
|
33
33
|
hasRewrites: boolean;
|
|
34
34
|
}): PagesReadinessNextData;
|
|
35
|
-
//#endregion
|
|
36
|
-
export { buildPagesReadinessNextData };
|
|
35
|
+
//#endregion
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import { NextHeader, NextI18nConfig, NextRedirect, NextRewrite } from "../config/next-config.js";
|
|
2
|
+
import { PagesRouteDataKind } from "./pages-route-data-kind.js";
|
|
2
3
|
import { HeaderRecord } from "./request-pipeline.js";
|
|
3
4
|
//#region src/server/pages-request-pipeline.d.ts
|
|
4
|
-
type PagesRenderOptions = {
|
|
5
|
+
export type PagesRenderOptions = {
|
|
5
6
|
isDataReq?: boolean;
|
|
6
7
|
renderErrorPageOnMiss?: boolean;
|
|
7
8
|
originalUrl?: string;
|
|
8
9
|
};
|
|
9
|
-
type FilesystemRoutePhase = "direct" | "beforeFiles" | "afterFiles" | "fallback";
|
|
10
|
+
export type FilesystemRoutePhase = "direct" | "beforeFiles" | "afterFiles" | "fallback";
|
|
10
11
|
type PageRouteMatch = {
|
|
11
12
|
route: {
|
|
12
13
|
isDynamic: boolean;
|
|
13
14
|
pattern?: string;
|
|
14
|
-
dataKind?:
|
|
15
|
+
dataKind?: PagesRouteDataKind;
|
|
15
16
|
};
|
|
16
17
|
};
|
|
17
|
-
declare function fetchWorkerFilesystemRoute(request: Request, requestPathname: string, phase: FilesystemRoutePhase, fetchAsset: (request: Request) => Promise<Response>, publicFiles?: ReadonlySet<string>, isDirectBuildAsset?: boolean): Promise<Response | false>;
|
|
18
|
-
type MiddlewareResult = {
|
|
18
|
+
export declare function fetchWorkerFilesystemRoute(request: Request, requestPathname: string, phase: FilesystemRoutePhase, fetchAsset: (request: Request) => Promise<Response>, publicFiles?: ReadonlySet<string>, isDirectBuildAsset?: boolean): Promise<Response | false>;
|
|
19
|
+
export type MiddlewareResult = {
|
|
19
20
|
continue: boolean;
|
|
21
|
+
/** The pathname matches middleware, irrespective of request `has`/`missing` conditions. */
|
|
22
|
+
pathnameEligible?: boolean;
|
|
20
23
|
redirectUrl?: string;
|
|
21
24
|
redirectStatus?: number;
|
|
22
25
|
rewriteUrl?: string;
|
|
@@ -26,7 +29,7 @@ type MiddlewareResult = {
|
|
|
26
29
|
response?: Response;
|
|
27
30
|
waitUntilPromises?: Promise<unknown>[];
|
|
28
31
|
};
|
|
29
|
-
type PagesPipelineDeps = {
|
|
32
|
+
export type PagesPipelineDeps = {
|
|
30
33
|
basePath: string;
|
|
31
34
|
trailingSlash: boolean;
|
|
32
35
|
i18nConfig: NextI18nConfig | null;
|
|
@@ -42,6 +45,8 @@ type PagesPipelineDeps = {
|
|
|
42
45
|
isDataRequest: boolean;
|
|
43
46
|
hasMiddleware: boolean;
|
|
44
47
|
ctx?: unknown;
|
|
48
|
+
/** False when routing and middleware run outside the shared response stage. */
|
|
49
|
+
recordCacheability?: boolean;
|
|
45
50
|
rawSearch?: string;
|
|
46
51
|
configMatchPathname?: string;
|
|
47
52
|
/**
|
|
@@ -67,7 +72,7 @@ type PagesPipelineDeps = {
|
|
|
67
72
|
/** Stale/malformed data response emitted only if middleware does not handle the request. */
|
|
68
73
|
dataNotFoundResponse?: Response | null;
|
|
69
74
|
renderPage?: ((request: Request, resolvedUrl: string, options?: PagesRenderOptions, stagedHeaders?: Headers) => Promise<Response>) | null;
|
|
70
|
-
handleApi?: ((request: Request, apiUrl: string, ctx: unknown) => Promise<Response>) | null;
|
|
75
|
+
handleApi?: ((request: Request, apiUrl: string, ctx: unknown, stagedHeaders: Headers) => Promise<Response>) | null;
|
|
71
76
|
/**
|
|
72
77
|
* Optional override for proxying external rewrite destinations.
|
|
73
78
|
* When supplied, the pipeline calls this instead of proxyExternalRequest(currentRequest, url).
|
|
@@ -98,8 +103,8 @@ type PagesPipelineDeps = {
|
|
|
98
103
|
* Shared by the Node prod server (prod-server.ts) and the generated Pages
|
|
99
104
|
* Router worker entry (deploy.ts) to keep the two adapters in sync.
|
|
100
105
|
*/
|
|
101
|
-
declare function wrapMiddlewareWithBasePath(runMiddleware: NonNullable<PagesPipelineDeps["runMiddleware"]>, basePath: string, hadBasePath: boolean): NonNullable<PagesPipelineDeps["runMiddleware"]>;
|
|
102
|
-
type PagesPipelineResult = {
|
|
106
|
+
export declare function wrapMiddlewareWithBasePath(runMiddleware: NonNullable<PagesPipelineDeps["runMiddleware"]>, basePath: string, hadBasePath: boolean): NonNullable<PagesPipelineDeps["runMiddleware"]>;
|
|
107
|
+
export type PagesPipelineResult = {
|
|
103
108
|
type: "response";
|
|
104
109
|
response: Response;
|
|
105
110
|
defaultContentType?: string;
|
|
@@ -137,6 +142,5 @@ type PagesPipelineResult = {
|
|
|
137
142
|
* decode/normalize/400, public-file serving.
|
|
138
143
|
* runPagesRequest receives a "clean" request with basePath-stripped URL.
|
|
139
144
|
*/
|
|
140
|
-
declare function runPagesRequest(request: Request, deps: PagesPipelineDeps): Promise<PagesPipelineResult>;
|
|
141
|
-
//#endregion
|
|
142
|
-
export { FilesystemRoutePhase, MiddlewareResult, PagesPipelineDeps, PagesPipelineResult, PagesRenderOptions, fetchWorkerFilesystemRoute, runPagesRequest, wrapMiddlewareWithBasePath };
|
|
145
|
+
export declare function runPagesRequest(request: Request, deps: PagesPipelineDeps): Promise<PagesPipelineResult>;
|
|
146
|
+
//#endregion
|
|
@@ -1,18 +1,35 @@
|
|
|
1
|
-
import { addBasePathToPathname, hasBasePath } from "../utils/base-path.js";
|
|
2
|
-
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
3
|
-
import { requestContextFromRequest } from "../config/request-context.js";
|
|
4
1
|
import { PRERENDER_REVALIDATE_HEADER } from "../utils/protocol-headers.js";
|
|
2
|
+
import { requestContextFromRequest } from "../config/request-context.js";
|
|
5
3
|
import { isExternalUrl } from "../utils/external-url.js";
|
|
6
4
|
import { applyMiddlewareRequestHeaders, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest, sanitizeDestination } from "../config/config-matchers.js";
|
|
5
|
+
import { addBasePathToPathname, hasBasePath } from "../utils/base-path.js";
|
|
6
|
+
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
7
7
|
import { methodNotAllowedResponse, sanitizeMethodNotAllowedHeaders } from "./http-error-responses.js";
|
|
8
8
|
import { cloneRequestWithUrl, normalizeTrailingSlash } from "./request-pipeline.js";
|
|
9
9
|
import { normalizeDefaultLocalePathname, stripI18nLocaleForApiRoute } from "./pages-i18n.js";
|
|
10
|
-
import {
|
|
10
|
+
import { markRouteCacheabilityDynamic } from "../shims/cacheability-classification.js";
|
|
11
|
+
import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
|
|
11
12
|
import { mergeRewriteQuery } from "../utils/query.js";
|
|
12
13
|
import { buildMiddlewarePrefetchSkipResponse } from "./pages-data-route.js";
|
|
14
|
+
import { setFrameworkRequestRoute } from "./request-tracing.js";
|
|
13
15
|
import { applyConfigHeadersToHeaderRecord } from "./config-headers.js";
|
|
14
16
|
import { mergeHeaders } from "./worker-utils.js";
|
|
15
17
|
//#region src/server/pages-request-pipeline.ts
|
|
18
|
+
function ruleUsesUnkeyedRequestCondition(rule) {
|
|
19
|
+
return [...rule.has ?? [], ...rule.missing ?? []].some((condition) => condition.type === "header" || condition.type === "cookie" || condition.type === "host");
|
|
20
|
+
}
|
|
21
|
+
function markConditionalRewriteCacheability(rewrite) {
|
|
22
|
+
if (ruleUsesUnkeyedRequestCondition(rewrite)) markRouteCacheabilityDynamic("next.config rewrite depends on request headers, cookies, or hostnames");
|
|
23
|
+
}
|
|
24
|
+
function markConditionalRedirectCacheability(redirect) {
|
|
25
|
+
if (ruleUsesUnkeyedRequestCondition(redirect)) markRouteCacheabilityDynamic("next.config redirect depends on request headers, cookies, or hostnames");
|
|
26
|
+
}
|
|
27
|
+
function headersFromRecord(record) {
|
|
28
|
+
const headers = new Headers();
|
|
29
|
+
for (const [name, value] of Object.entries(record)) if (Array.isArray(value)) for (const item of value) headers.append(name, item);
|
|
30
|
+
else headers.set(name, value);
|
|
31
|
+
return headers;
|
|
32
|
+
}
|
|
16
33
|
async function fetchWorkerFilesystemRoute(request, requestPathname, phase, fetchAsset, publicFiles, isDirectBuildAsset = false) {
|
|
17
34
|
const isRetrievalMethod = request.method === "GET" || request.method === "HEAD";
|
|
18
35
|
if (phase === "direct" && isRetrievalMethod || phase === "direct" && publicFiles !== void 0 && !isDirectBuildAsset && !publicFiles.has(requestPathname) || requestPathname === "/api" || requestPathname.startsWith("/api/")) return false;
|
|
@@ -64,6 +81,8 @@ function wrapMiddlewareWithBasePath(runMiddleware, basePath, hadBasePath) {
|
|
|
64
81
|
*/
|
|
65
82
|
async function runPagesRequest(request, deps) {
|
|
66
83
|
const { basePath, trailingSlash, i18nConfig, configRedirects, configRewrites, configHeaders, hadBasePath, isDataReq, isDataRequest } = deps;
|
|
84
|
+
const conditionalRedirectCacheability = deps.recordCacheability === false ? void 0 : markConditionalRedirectCacheability;
|
|
85
|
+
const conditionalRewriteCacheability = deps.recordCacheability === false ? void 0 : markConditionalRewriteCacheability;
|
|
67
86
|
const proxyExternal = (currentReq, externalUrl) => deps.proxyExternal ? deps.proxyExternal(currentReq, externalUrl) : proxyExternalRequest(currentReq, externalUrl);
|
|
68
87
|
const url = new URL(request.url);
|
|
69
88
|
let pathname = url.pathname;
|
|
@@ -86,9 +105,10 @@ async function runPagesRequest(request, deps) {
|
|
|
86
105
|
const requestHostname = i18nConfig ? url.hostname : "";
|
|
87
106
|
const requestConfigMatchPathname = i18nConfig ? normalizeDefaultLocalePathname(requestConfigPathname, i18nConfig, { hostname: requestHostname }) : requestConfigPathname;
|
|
88
107
|
if (configRedirects.length) {
|
|
89
|
-
const redirect = matchRedirect(requestConfigMatchPathname, configRedirects, reqCtx, basePathState);
|
|
108
|
+
const redirect = matchRedirect(requestConfigMatchPathname, configRedirects, reqCtx, basePathState, conditionalRedirectCacheability);
|
|
90
109
|
if (redirect) {
|
|
91
|
-
const
|
|
110
|
+
const dest = sanitizeDestination(basePath && hadBasePath && !isExternalUrl(redirect.destination) && !hasBasePath(redirect.destination, basePath) ? basePath + redirect.destination : redirect.destination);
|
|
111
|
+
const location = preserveRedirectDestinationQuery(dest, deps.rawSearch ?? search);
|
|
92
112
|
return {
|
|
93
113
|
type: "response",
|
|
94
114
|
response: new Response(null, {
|
|
@@ -102,6 +122,18 @@ async function runPagesRequest(request, deps) {
|
|
|
102
122
|
let resolvedUrl = originalResolvedUrl;
|
|
103
123
|
let resolvedPathnameIsRequestPathname = true;
|
|
104
124
|
const middlewareHeaders = {};
|
|
125
|
+
const mergeConfigHeadersIntoEarlyResponse = (response) => {
|
|
126
|
+
if (configHeaders.length === 0) return response;
|
|
127
|
+
const matchedConfigHeaders = {};
|
|
128
|
+
applyConfigHeadersToHeaderRecord(matchedConfigHeaders, {
|
|
129
|
+
configHeaders,
|
|
130
|
+
pathname: requestConfigMatchPathname,
|
|
131
|
+
requestContext: reqCtx,
|
|
132
|
+
basePathState,
|
|
133
|
+
recordCacheability: deps.recordCacheability
|
|
134
|
+
});
|
|
135
|
+
return mergeHeaders(response, matchedConfigHeaders);
|
|
136
|
+
};
|
|
105
137
|
let middlewareStatus;
|
|
106
138
|
const serveFilesystemRoute = async (requestPathname, phase) => {
|
|
107
139
|
if (!deps.serveFilesystemRoute) return null;
|
|
@@ -119,6 +151,7 @@ async function runPagesRequest(request, deps) {
|
|
|
119
151
|
};
|
|
120
152
|
if (!isOnDemandRevalidate && typeof deps.runMiddleware === "function") {
|
|
121
153
|
const result = await deps.runMiddleware(deps.middlewareRequest ?? request, deps.ctx ?? null, { isDataRequest });
|
|
154
|
+
if (deps.recordCacheability !== false && result.pathnameEligible) markRouteCacheabilityDynamic("middleware can match this pathname");
|
|
122
155
|
if (result.waitUntilPromises && result.waitUntilPromises.length > 0) {
|
|
123
156
|
const ctx = deps.ctx;
|
|
124
157
|
if (ctx && typeof ctx.waitUntil === "function") for (const p of result.waitUntilPromises) ctx.waitUntil(p);
|
|
@@ -138,15 +171,15 @@ async function runPagesRequest(request, deps) {
|
|
|
138
171
|
else headers.set(k, v);
|
|
139
172
|
return {
|
|
140
173
|
type: "response",
|
|
141
|
-
response: new Response(null, {
|
|
174
|
+
response: mergeConfigHeadersIntoEarlyResponse(new Response(null, {
|
|
142
175
|
status: result.redirectStatus ?? 307,
|
|
143
176
|
headers
|
|
144
|
-
})
|
|
177
|
+
}))
|
|
145
178
|
};
|
|
146
179
|
}
|
|
147
180
|
if (result.response) return {
|
|
148
181
|
type: "response",
|
|
149
|
-
response: result.response
|
|
182
|
+
response: mergeConfigHeadersIntoEarlyResponse(result.response)
|
|
150
183
|
};
|
|
151
184
|
}
|
|
152
185
|
if (result.responseHeaders) for (const [key, value] of result.responseHeaders) if (key === "set-cookie") {
|
|
@@ -195,15 +228,19 @@ async function runPagesRequest(request, deps) {
|
|
|
195
228
|
configHeaders,
|
|
196
229
|
pathname: requestConfigMatchPathname,
|
|
197
230
|
requestContext: reqCtx,
|
|
198
|
-
basePathState
|
|
231
|
+
basePathState,
|
|
232
|
+
recordCacheability: deps.recordCacheability
|
|
199
233
|
});
|
|
200
|
-
if (isExternalUrl(resolvedUrl))
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
234
|
+
if (isExternalUrl(resolvedUrl)) {
|
|
235
|
+
const proxyResponse = await proxyExternal(request, resolvedUrl);
|
|
236
|
+
return {
|
|
237
|
+
type: "response",
|
|
238
|
+
response: mergeHeaders(proxyResponse, middlewareHeaders, void 0)
|
|
239
|
+
};
|
|
240
|
+
}
|
|
204
241
|
let configRewriteFired = false;
|
|
205
242
|
for (const rewrite of configRewrites.beforeFiles ?? []) {
|
|
206
|
-
const rewritten = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState);
|
|
243
|
+
const rewritten = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState, configSourcePathname(), conditionalRewriteCacheability);
|
|
207
244
|
if (rewritten) {
|
|
208
245
|
if (isExternalUrl(rewritten)) return {
|
|
209
246
|
type: "response",
|
|
@@ -230,7 +267,9 @@ async function runPagesRequest(request, deps) {
|
|
|
230
267
|
const apiLookupUrl = stripI18nLocaleForApiRoute(resolvedUrl, i18nConfig);
|
|
231
268
|
const apiLookupPathname = apiLookupUrl.split("?")[0];
|
|
232
269
|
if (!apiLookupPathname.startsWith("/api/") && apiLookupPathname !== "/api") return null;
|
|
233
|
-
|
|
270
|
+
const apiMatch = deps.matchApiRoute ? await deps.matchApiRoute(apiLookupUrl, request) : null;
|
|
271
|
+
if (deps.matchApiRoute && !apiMatch) return null;
|
|
272
|
+
if (apiMatch) setFrameworkRequestRoute(matchedPathnameForRoute(apiMatch.route.pattern));
|
|
234
273
|
if (typeof deps.handleApi === "function") {
|
|
235
274
|
let apiRequest = request;
|
|
236
275
|
if (basePath && hadBasePath) {
|
|
@@ -238,7 +277,7 @@ async function runPagesRequest(request, deps) {
|
|
|
238
277
|
apiRequestUrl.pathname = addBasePathToPathname(apiRequestUrl.pathname, basePath);
|
|
239
278
|
apiRequest = cloneRequestWithUrl(request, apiRequestUrl.toString());
|
|
240
279
|
}
|
|
241
|
-
const response = await deps.handleApi(apiRequest, apiLookupUrl, deps.ctx ?? null);
|
|
280
|
+
const response = await deps.handleApi(apiRequest, apiLookupUrl, deps.ctx ?? null, headersFromRecord(middlewareHeaders));
|
|
242
281
|
const merged = mergeHeaders(response, middlewareHeaders, middlewareStatus);
|
|
243
282
|
if (merged !== response) merged.__vinextStreamedApiResponse = response.__vinextStreamedApiResponse;
|
|
244
283
|
return {
|
|
@@ -261,7 +300,7 @@ async function runPagesRequest(request, deps) {
|
|
|
261
300
|
let pageMatch = !isOutsideBasePathUnclaimed() && deps.matchPageRoute ? deps.matchPageRoute(resolvedPathname, request) : null;
|
|
262
301
|
let resolvedPathnameChanged = false;
|
|
263
302
|
if (!pageMatch || pageMatch.route.isDynamic) for (const rewrite of configRewrites.afterFiles ?? []) {
|
|
264
|
-
const rewritten = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState);
|
|
303
|
+
const rewritten = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState, configSourcePathname(), conditionalRewriteCacheability);
|
|
265
304
|
if (rewritten) {
|
|
266
305
|
if (isExternalUrl(rewritten)) return {
|
|
267
306
|
type: "response",
|
|
@@ -288,7 +327,7 @@ async function runPagesRequest(request, deps) {
|
|
|
288
327
|
if (typeof deps.renderPage === "function") {
|
|
289
328
|
let renderPageMatch = pageMatch;
|
|
290
329
|
if ((isOutsideBasePathUnclaimed() || isDataReq || isDataRequest) && !renderPageMatch && configRewrites.fallback?.length) for (const rewrite of configRewrites.fallback) {
|
|
291
|
-
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState);
|
|
330
|
+
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState, configSourcePathname(), conditionalRewriteCacheability);
|
|
292
331
|
if (!fallbackRewrite) continue;
|
|
293
332
|
if (isExternalUrl(fallbackRewrite)) return {
|
|
294
333
|
type: "response",
|
|
@@ -311,13 +350,12 @@ async function runPagesRequest(request, deps) {
|
|
|
311
350
|
if (isOutsideBasePathUnclaimed()) return outOfBasePathNotFound();
|
|
312
351
|
const shouldDeferErrorPageOnMiss = !isDataReq && !isDataRequest && !!deps.matchPageRoute && !renderPageMatch;
|
|
313
352
|
const initialRenderOptions = shouldDeferErrorPageOnMiss ? { renderErrorPageOnMiss: false } : isDataReq ? { isDataReq: true } : void 0;
|
|
314
|
-
const stagedHeaders =
|
|
315
|
-
|
|
316
|
-
else stagedHeaders.set(k, v);
|
|
353
|
+
const stagedHeaders = headersFromRecord(middlewareHeaders);
|
|
354
|
+
if (renderPageMatch) setFrameworkRequestRoute(matchedPathnameForRoute(renderPageMatch.route.pattern));
|
|
317
355
|
let response = await deps.renderPage(request, resolvedUrl, initialRenderOptions, stagedHeaders);
|
|
318
356
|
let matchedFallbackRewrite = false;
|
|
319
357
|
if (response.status === 404 && shouldDeferErrorPageOnMiss && configRewrites.fallback?.length) for (const rewrite of configRewrites.fallback) {
|
|
320
|
-
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState);
|
|
358
|
+
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState, configSourcePathname(), conditionalRewriteCacheability);
|
|
321
359
|
if (!fallbackRewrite) continue;
|
|
322
360
|
if (isExternalUrl(fallbackRewrite)) return {
|
|
323
361
|
type: "response",
|
|
@@ -332,6 +370,7 @@ async function runPagesRequest(request, deps) {
|
|
|
332
370
|
const fallbackApiResult = await handleResolvedApiRoute();
|
|
333
371
|
if (fallbackApiResult) return fallbackApiResult;
|
|
334
372
|
renderPageMatch = deps.matchPageRoute ? deps.matchPageRoute(resolvedPathname, request) : null;
|
|
373
|
+
if (renderPageMatch) setFrameworkRequestRoute(matchedPathnameForRoute(renderPageMatch.route.pattern));
|
|
335
374
|
response = await deps.renderPage(request, resolvedUrl, void 0, stagedHeaders);
|
|
336
375
|
matchedFallbackRewrite = true;
|
|
337
376
|
if (response.status !== 404) break;
|
|
@@ -342,12 +381,13 @@ async function runPagesRequest(request, deps) {
|
|
|
342
381
|
const headers = new Headers(response.headers);
|
|
343
382
|
headers.set("content-type", "application/json");
|
|
344
383
|
headers.set("x-nextjs-matched-path", matchResolvedPathname(pathname));
|
|
384
|
+
const notFoundResponse = new Response("{}", {
|
|
385
|
+
status: 200,
|
|
386
|
+
headers
|
|
387
|
+
});
|
|
345
388
|
return {
|
|
346
389
|
type: "response",
|
|
347
|
-
response: mergeHeaders(
|
|
348
|
-
status: 200,
|
|
349
|
-
headers
|
|
350
|
-
}), matchedPathHeaders, void 0),
|
|
390
|
+
response: mergeHeaders(notFoundResponse, matchedPathHeaders, void 0),
|
|
351
391
|
defaultContentType: "application/json"
|
|
352
392
|
};
|
|
353
393
|
}
|
|
@@ -362,7 +402,7 @@ async function runPagesRequest(request, deps) {
|
|
|
362
402
|
}
|
|
363
403
|
let devPageMatch = isOutsideBasePathUnclaimed() ? null : resolvedPathnameChanged ? deps.matchPageRoute ? deps.matchPageRoute(resolvedPathname, request) : null : pageMatch;
|
|
364
404
|
if (!devPageMatch && configRewrites.fallback?.length) for (const rewrite of configRewrites.fallback) {
|
|
365
|
-
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState);
|
|
405
|
+
const fallbackRewrite = matchRewrite(configSourcePathname(), [rewrite], rewriteRequestContext(), basePathState, configSourcePathname(), conditionalRewriteCacheability);
|
|
366
406
|
if (!fallbackRewrite) continue;
|
|
367
407
|
if (isExternalUrl(fallbackRewrite)) return {
|
|
368
408
|
type: "response",
|
|
@@ -383,6 +423,7 @@ async function runPagesRequest(request, deps) {
|
|
|
383
423
|
if (prefetchSkipResult) return prefetchSkipResult;
|
|
384
424
|
if (isOutsideBasePathUnclaimed()) return outOfBasePathNotFound();
|
|
385
425
|
refreshDataRewriteHeader();
|
|
426
|
+
if (devPageMatch) setFrameworkRequestRoute(matchedPathnameForRoute(devPageMatch.route.pattern));
|
|
386
427
|
return {
|
|
387
428
|
type: "render",
|
|
388
429
|
resolvedUrl,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { VinextRequestStageContext } from "./multi-stage.js";
|
|
2
|
+
import { ExecutionContextLike } from "../shims/request-context.js";
|
|
3
|
+
import { DispatchWorkerResponseStage, WorkerResponseStageProps } from "./worker-stages.js";
|
|
4
|
+
//#region src/server/pages-request-stage-entry.d.ts
|
|
5
|
+
type AssetFetcher = {
|
|
6
|
+
fetch(request: Request): Promise<Response> | Response;
|
|
7
|
+
};
|
|
8
|
+
export type PagesWorkerEnv = {
|
|
9
|
+
ASSETS?: AssetFetcher;
|
|
10
|
+
} & Record<string, unknown>;
|
|
11
|
+
export type PagesWorkerExecutionContext = {
|
|
12
|
+
waitUntil?(promise: Promise<unknown>): void;
|
|
13
|
+
passThroughOnException?(): void;
|
|
14
|
+
cache?: unknown;
|
|
15
|
+
} & VinextRequestStageContext;
|
|
16
|
+
export type PagesLocalResponseStage = (request: Request, env: PagesWorkerEnv | undefined, ctx: ExecutionContextLike, props: WorkerResponseStageProps) => Promise<Response>;
|
|
17
|
+
export declare const pagesRequestStageBuildId: string | null;
|
|
18
|
+
export declare const pagesRequestStagePrerenderSecret: string | null;
|
|
19
|
+
/** Run the request-time stage with a host-owned response dispatcher. */
|
|
20
|
+
export declare function handleRequestStage(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, dispatchResponseStage: DispatchWorkerResponseStage): Promise<Response>;
|
|
21
|
+
/** Preserve the direct single-entry Worker path without retaining it in request-only builds. */
|
|
22
|
+
export declare function handleRequestStageLocally(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, dispatchResponseStage: PagesLocalResponseStage): Promise<Response>;
|
|
23
|
+
//#endregion
|