vinext 1.0.0-beta.9 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -92
- package/THIRD_PARTY_LICENSES.md +51 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +7 -14
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +274 -102
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +73 -16
- package/dist/build/prerender.js +272 -80
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +26 -16
- package/dist/build/server-entry.d.ts +6 -0
- package/dist/build/server-entry.js +34 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/browser-globals.d.ts +4 -0
- package/dist/client/browser-globals.js +5 -0
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +20 -17
- package/dist/client/navigation-runtime.js +4 -3
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +14 -2
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +503 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +848 -255
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +711 -103
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +126 -42
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/commonjs-syntax.d.ts +16 -0
- package/dist/plugins/commonjs-syntax.js +22 -0
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +14 -4
- package/dist/plugins/ignore-dynamic-requests.js +113 -91
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +36 -48
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +5 -4
- package/dist/plugins/og-asset-ownership.js +24 -13
- package/dist/plugins/og-assets.d.ts +22 -5
- package/dist/plugins/og-assets.js +82 -21
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +271 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +34 -45
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +3 -3
- package/dist/plugins/require-context.js +41 -22
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/scan-build-css.d.ts +12 -0
- package/dist/plugins/scan-build-css.js +39 -0
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +7 -6
- package/dist/plugins/strip-server-exports.js +4 -2
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +21 -4
- package/dist/plugins/transform-result.js +23 -2
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +16 -7
- package/dist/plugins/typeof-window.js +62 -39
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +18 -19
- package/dist/routing/app-route-graph.js +5 -6
- package/dist/routing/app-route-ids.d.ts +3 -0
- package/dist/routing/app-route-ids.js +6 -0
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +4 -4
- package/dist/server/app-bfcache-id.js +7 -1
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-bfcache-identity.js +1 -2
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +91 -36
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +15 -2
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +9 -5
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +7 -3
- package/dist/server/app-browser-stream.d.ts +5 -6
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +25 -27
- package/dist/server/app-history-state.js +21 -16
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -4
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -24
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +43 -7
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +50 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +18 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-abort-error.d.ts +3 -0
- package/dist/server/app-render-abort-error.js +8 -0
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +112 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +4 -4
- package/dist/server/app-route-handler-cache.js +51 -35
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +77 -56
- package/dist/server/app-route-handler-execution.d.ts +26 -14
- package/dist/server/app-route-handler-execution.js +94 -28
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-policy.js +2 -2
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +14 -3
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +4 -1
- package/dist/server/app-router-entry.js +33 -17
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +11 -9
- package/dist/server/app-rsc-errors.js +14 -16
- package/dist/server/app-rsc-handler.d.ts +32 -6
- package/dist/server/app-rsc-handler.js +425 -64
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +5 -3
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +10 -7
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +18 -13
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +62 -15
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +34 -8
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +64 -6
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +192 -90
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +141 -64
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +56 -61
- package/dist/server/headers.js +22 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-error-responses.js +1 -0
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +30 -27
- package/dist/server/isr-cache.js +23 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +158 -35
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +28 -9
- package/dist/server/pages-asset-tags.d.ts +7 -6
- package/dist/server/pages-asset-tags.js +104 -18
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +13 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +23 -19
- package/dist/server/pages-page-data.js +82 -75
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +103 -47
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +52 -32
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +15 -12
- package/dist/server/pages-request-pipeline.js +80 -35
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +316 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +17 -11
- package/dist/server/prerender-manifest.js +7 -4
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +127 -44
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +4 -4
- package/dist/server/worker-revalidation-context.js +6 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +34 -0
- package/dist/server/workers-tracing.js +67 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +26 -38
- package/dist/shims/cache-request-state.js +2 -13
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +110 -28
- package/dist/shims/cache.d.ts +17 -16
- package/dist/shims/cache.js +19 -15
- package/dist/shims/cacheability-classification.d.ts +50 -29
- package/dist/shims/cacheability-classification.js +29 -14
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +59 -21
- package/dist/shims/cdn-cache.js +31 -47
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +5 -19
- package/dist/shims/error.js +17 -10
- package/dist/shims/error.react-server.d.ts +4 -7
- package/dist/shims/error.react-server.js +4 -1
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +46 -20
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +44 -73
- package/dist/shims/headers.js +87 -144
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cache-context-accessor.d.ts +16 -0
- package/dist/shims/internal/cache-context-accessor.js +15 -0
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/headers-state.d.ts +74 -0
- package/dist/shims/internal/headers-state.js +157 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +26 -18
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/root-params.js +1 -1
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +66 -30
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +35 -32
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +4 -4
- package/dist/utils/encode-cache-tag.js +11 -1
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +151 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +51 -6
- package/dist/server/metadata-route-cache-policy.d.ts +0 -6
- package/dist/server/metadata-route-cache-policy.js +0 -6
package/dist/build/prerender.js
CHANGED
|
@@ -1,31 +1,33 @@
|
|
|
1
1
|
import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
2
|
import { createValidFileMatcher, findFileWithExtensions } from "../routing/file-matcher.js";
|
|
3
|
+
import { isUnknownRecord } from "../utils/record.js";
|
|
4
|
+
import { BLOCKED_PAGES } from "../shims/constants.js";
|
|
3
5
|
import { VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SECRET_HEADER, VINEXT_PRERENDER_SPECULATIVE_HEADER } from "../utils/protocol-headers.js";
|
|
6
|
+
import { appRouteLayoutStaticParamsGroups } from "../routing/app-router.js";
|
|
4
7
|
import { NEXT_CACHE_TAGS_HEADER, VINEXT_METADATA_ROUTE_CACHE_HEADER, VINEXT_PRERENDER_CACHE_LIFE_HEADER, VINEXT_PRERENDER_METADATA_ROUTES_PATH, VINEXT_PRERENDER_RENDER_ERROR_HEADER } from "../server/headers.js";
|
|
8
|
+
import { extractLocaleFromUrl } from "../server/pages-i18n.js";
|
|
5
9
|
import { classifyAppRoute, classifyPagesRoute, getAppRouteRenderEntryPath } from "./report.js";
|
|
6
10
|
import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
|
|
7
11
|
import { NoOpCacheHandler, getCacheHandler, setCacheHandler } from "../shims/cache-handler.js";
|
|
8
12
|
import { headersContextFromRequest, runWithHeadersContext } from "../shims/headers.js";
|
|
9
13
|
import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
|
|
10
14
|
import { normalizeStaticPathsEntry } from "../routing/route-pattern.js";
|
|
11
|
-
import {
|
|
15
|
+
import { readPrerenderSecret } from "./server-manifest.js";
|
|
12
16
|
import { buildPregeneratedConcretePathTable } from "../server/prerender-manifest.js";
|
|
13
17
|
import { concatUint8Arrays, decodeRscEmbeddedChunk } from "../server/app-rsc-embedded-chunks.js";
|
|
14
18
|
import { navigationRuntimeRscBootstrapExpression } from "../server/app-ssr-stream.js";
|
|
15
19
|
import { encodePrerenderRouteParams, serializePrerenderRouteParamsHeader } from "../server/prerender-route-params.js";
|
|
16
|
-
import { readPrerenderSecret } from "./server-manifest.js";
|
|
17
20
|
import { createAppPprFallbackShells, markAppPprDynamicFallbackShellHtml } from "../server/app-ppr-fallback-shell.js";
|
|
18
21
|
import { getAppRouteOutputPath, getOutputPath, getRscOutputPath } from "../utils/prerender-output-paths.js";
|
|
19
22
|
import { startProdServer } from "../server/prod-server.js";
|
|
20
23
|
import { prerenderPoolAvailable, resolvePrerenderPoolSize, startPrerenderServerPool } from "./prerender-server-pool.js";
|
|
21
24
|
import { enterPrerenderPhase } from "./prerender-phase.js";
|
|
22
25
|
import { buildAppRouteCacheValue } from "../server/app-route-handler-response.js";
|
|
23
|
-
import { isMetadataResponseCacheable } from "../server/metadata-route-cache-policy.js";
|
|
24
26
|
import fs from "node:fs";
|
|
25
27
|
import os from "node:os";
|
|
26
28
|
//#region src/build/prerender.ts
|
|
27
29
|
/**
|
|
28
|
-
* Prerendering phase for
|
|
30
|
+
* Prerendering phase for vite build.
|
|
29
31
|
*
|
|
30
32
|
* Classifies every route, renders static and ISR routes to HTML/JSON/RSC files,
|
|
31
33
|
* and writes a `vinext-prerender.json` build index.
|
|
@@ -48,15 +50,19 @@ function isExperimentalPprFallbackShellGenerationEnabled(env = process.env) {
|
|
|
48
50
|
function getErrorMessageWithStack(err) {
|
|
49
51
|
return err.stack || err.message;
|
|
50
52
|
}
|
|
51
|
-
async function startOptionalPrerenderServerPool(outDir, poolSize) {
|
|
53
|
+
async function startOptionalPrerenderServerPool(outDir, poolSize, rscEntryPath, serverDir) {
|
|
52
54
|
try {
|
|
53
|
-
return await startPrerenderServerPool(outDir, poolSize
|
|
55
|
+
return await startPrerenderServerPool(outDir, poolSize, {
|
|
56
|
+
rscEntryPath,
|
|
57
|
+
serverDir
|
|
58
|
+
});
|
|
54
59
|
} catch (e) {
|
|
55
60
|
console.warn(`[vinext] prerender render pool failed to start; falling back to single-process render: ${e instanceof Error ? e.message : String(e)}`);
|
|
56
61
|
return null;
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
64
|
var PrerenderUserFunctionError = class extends Error {};
|
|
65
|
+
var InvalidStaticParamsError = class extends Error {};
|
|
60
66
|
function parsePrerenderEndpointError(text) {
|
|
61
67
|
try {
|
|
62
68
|
const parsed = JSON.parse(text);
|
|
@@ -207,41 +213,59 @@ function emitStatic404Files(outDir, html, trailingSlash) {
|
|
|
207
213
|
return outputFiles;
|
|
208
214
|
}
|
|
209
215
|
/**
|
|
210
|
-
*
|
|
216
|
+
* Next.js fails `output: "export"` on any generateStaticParams call that
|
|
217
|
+
* returns no params (build/static-paths/app.ts callGenerateStaticParams).
|
|
218
|
+
*/
|
|
219
|
+
function emptyStaticExportParamsError(pattern) {
|
|
220
|
+
return /* @__PURE__ */ new Error(`Page "${pattern}" returned an empty array from "generateStaticParams()". With "output: export", at least one route must be generated. See more info here: https://nextjs.org/docs/messages/generate-static-params`);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Resolve the params a route's layouts above its own pattern generate.
|
|
211
224
|
* Handles top-down generateStaticParams resolution for nested dynamic routes.
|
|
212
225
|
*
|
|
213
226
|
* Uses the `staticParamsMap` (pattern → generateStaticParams) exported from
|
|
214
|
-
* the production bundle.
|
|
227
|
+
* the production bundle. As in Next.js, which walks every segment of the
|
|
228
|
+
* route's own loader tree top-down and passes each parent param set to the
|
|
229
|
+
* next generateStaticParams (build/static-paths/app.ts
|
|
230
|
+
* generateRouteStaticParams), every layout of the route contributes, including
|
|
231
|
+
* one at the last dynamic segment when static segments follow it. The layouts
|
|
232
|
+
* at the route's full pattern compose with its page under
|
|
233
|
+
* `staticParamsMap[route.pattern]`, so they're left to the caller. A page or a
|
|
234
|
+
* route group's layout at the same prefix belongs to a sibling route and never
|
|
235
|
+
* supplies params.
|
|
236
|
+
*
|
|
237
|
+
* An App Route handler inherits no layouts: Next.js builds its segments from
|
|
238
|
+
* the route module alone (build/segment-config/app/app-segments.ts
|
|
239
|
+
* collectAppRouteSegments), so it has no parent params. A layout that returns
|
|
240
|
+
* no params passes each parent set through unchanged, as Next.js does outside
|
|
241
|
+
* Cache Components, except under `output: "export"`, where Next.js rejects any
|
|
242
|
+
* generateStaticParams that returns no params (build/static-paths/app.ts
|
|
243
|
+
* callGenerateStaticParams).
|
|
215
244
|
*/
|
|
216
245
|
async function resolveParentParams(childRoute, staticParamsMap, options = {}) {
|
|
217
|
-
|
|
218
|
-
let lastDynamicIdx = -1;
|
|
219
|
-
for (let i = patternParts.length - 1; i >= 0; i--) if (patternParts[i].startsWith(":")) {
|
|
220
|
-
lastDynamicIdx = i;
|
|
221
|
-
break;
|
|
222
|
-
}
|
|
246
|
+
if (childRoute.routePath && !childRoute.pagePath) return [];
|
|
223
247
|
const parentSegments = [];
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const part = patternParts[i];
|
|
228
|
-
prefixPattern += "/" + part;
|
|
229
|
-
if (!part.startsWith(":")) continue;
|
|
230
|
-
const fn = staticParamsMap[prefixPattern];
|
|
248
|
+
for (const group of appRouteLayoutStaticParamsGroups(childRoute)) {
|
|
249
|
+
if (group.pattern === childRoute.pattern) continue;
|
|
250
|
+
const fn = staticParamsMap[group.key];
|
|
231
251
|
if (typeof fn === "function") parentSegments.push(fn);
|
|
232
252
|
}
|
|
233
253
|
if (parentSegments.length === 0) return [];
|
|
234
|
-
let currentParams = [
|
|
235
|
-
let resolvedAnyParent = false;
|
|
254
|
+
let currentParams = [];
|
|
236
255
|
for (const generateStaticParams of parentSegments) {
|
|
237
256
|
const nextParams = [];
|
|
238
257
|
let resolvedThisParent = false;
|
|
239
|
-
|
|
258
|
+
const hasParentSets = currentParams.length > 0;
|
|
259
|
+
for (const parentParams of hasParentSets ? currentParams : [{}]) {
|
|
240
260
|
const results = await generateStaticParams({ params: parentParams });
|
|
241
261
|
if (results === null) continue;
|
|
242
262
|
if (!Array.isArray(results)) return [];
|
|
263
|
+
if (options.staticExport && results.length === 0) throw emptyStaticExportParamsError(childRoute.pattern);
|
|
243
264
|
resolvedThisParent = true;
|
|
244
|
-
|
|
265
|
+
if (results.length === 0 && hasParentSets) {
|
|
266
|
+
nextParams.push(parentParams);
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
245
269
|
for (const result of results) nextParams.push({
|
|
246
270
|
...parentParams,
|
|
247
271
|
...result
|
|
@@ -249,7 +273,78 @@ async function resolveParentParams(childRoute, staticParamsMap, options = {}) {
|
|
|
249
273
|
}
|
|
250
274
|
if (resolvedThisParent) currentParams = nextParams;
|
|
251
275
|
}
|
|
252
|
-
return
|
|
276
|
+
return currentParams;
|
|
277
|
+
}
|
|
278
|
+
function getDynamicPatternParams(pattern) {
|
|
279
|
+
return pattern.split("/").filter((segment) => segment.startsWith(":")).map((segment) => ({
|
|
280
|
+
name: segment.slice(1, segment.endsWith("+") || segment.endsWith("*") ? -1 : void 0),
|
|
281
|
+
optional: segment.endsWith("*"),
|
|
282
|
+
repeat: segment.endsWith("+") || segment.endsWith("*")
|
|
283
|
+
}));
|
|
284
|
+
}
|
|
285
|
+
function validateDiscoveredParams(value, pattern, source) {
|
|
286
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) throw new InvalidStaticParamsError(`${source} must return parameter objects for ${pattern}.`);
|
|
287
|
+
const params = { ...value };
|
|
288
|
+
for (const { name, optional, repeat } of getDynamicPatternParams(pattern)) {
|
|
289
|
+
const hasValue = Object.prototype.hasOwnProperty.call(params, name);
|
|
290
|
+
let paramValue = params[name];
|
|
291
|
+
if (optional && hasValue && (paramValue === null || paramValue === void 0 || paramValue === false)) {
|
|
292
|
+
paramValue = [];
|
|
293
|
+
params[name] = paramValue;
|
|
294
|
+
}
|
|
295
|
+
if (!(repeat ? Array.isArray(paramValue) && paramValue.every((entry) => typeof entry === "string") : typeof paramValue === "string")) throw new InvalidStaticParamsError(`Parameter ${name} from ${source} for ${pattern} must be ${repeat ? "an array of strings" : "a string"}.`);
|
|
296
|
+
if ((Array.isArray(paramValue) ? paramValue : [paramValue]).some((entry) => entry === "." || entry === "..")) throw new InvalidStaticParamsError(`Parameter ${name} from ${source} for ${pattern} must not contain dot path segments.`);
|
|
297
|
+
}
|
|
298
|
+
return params;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* The param sets of an App route that become concrete paths, following
|
|
302
|
+
* Next.js's buildAppStaticPaths (build/static-paths/app.ts). Unless every set
|
|
303
|
+
* names every pathname param (hadAllParamsGenerated), none is prerendered.
|
|
304
|
+
* Otherwise every set is checked against the route's pathname params
|
|
305
|
+
* (validateParams), and, outside a partial prerender, a set with an empty
|
|
306
|
+
* required value is skipped rather than built into a path with an empty
|
|
307
|
+
* segment. An array, including an optional catch-all's empty one, is never
|
|
308
|
+
* empty in that sense. Under `output: "export"` incomplete sets fail the
|
|
309
|
+
* build instead, as Next.js requires every export path to be generated.
|
|
310
|
+
*/
|
|
311
|
+
function routeStaticParamSets(route, paramSets, options = {}) {
|
|
312
|
+
const patternParams = getDynamicPatternParams(route.pattern);
|
|
313
|
+
const objects = paramSets.map((value) => {
|
|
314
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) throw new InvalidStaticParamsError(`generateStaticParams must return parameter objects for ${route.pattern}.`);
|
|
315
|
+
return value;
|
|
316
|
+
});
|
|
317
|
+
const missingParamNames = patternParams.filter(({ name }) => objects.some((params) => !(name in params))).map(({ name }) => name);
|
|
318
|
+
if (missingParamNames.length > 0) {
|
|
319
|
+
if (options.staticExport && objects.length > 0) throw new InvalidStaticParamsError(`Page "${route.pattern}" returned incomplete params from "generateStaticParams()". With "output: export", every params object must include all dynamic route parameters. Missing: ${missingParamNames.map((name) => `"${name}"`).join(", ")}. See more info here: https://nextjs.org/docs/messages/generate-static-params`);
|
|
320
|
+
return [];
|
|
321
|
+
}
|
|
322
|
+
const materializable = [];
|
|
323
|
+
for (const value of objects) {
|
|
324
|
+
const params = validateDiscoveredParams(value, route.pattern, "generateStaticParams");
|
|
325
|
+
if (patternParams.some(({ name, repeat }) => !repeat && params[name] === "")) continue;
|
|
326
|
+
materializable.push(params);
|
|
327
|
+
}
|
|
328
|
+
return materializable;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* The param sets a route's layouts generate, standing in for the route's own
|
|
332
|
+
* when none of the segments at its full pattern has generateStaticParams.
|
|
333
|
+
* Next.js prerenders none of a route's paths unless every set fills every
|
|
334
|
+
* pathname param (build/static-paths/app.ts hadAllParamsGenerated), so
|
|
335
|
+
* incomplete sets leave the route without static params (`null`). Complete
|
|
336
|
+
* sets still go through routeStaticParamSets.
|
|
337
|
+
*/
|
|
338
|
+
function layoutOnlyParamSets(route, parentParamSets) {
|
|
339
|
+
return parentParamSets.length > 0 && parentParamSets.every((params) => route.params.every((name) => name in params)) ? parentParamSets : null;
|
|
340
|
+
}
|
|
341
|
+
function localizePagesPath(pathname, locale, i18n) {
|
|
342
|
+
if (!i18n || !locale) return pathname;
|
|
343
|
+
if (locale === i18n.defaultLocale) {
|
|
344
|
+
const firstSegment = pathname.split("/")[1]?.toLowerCase();
|
|
345
|
+
if (!i18n.locales.some((candidate) => candidate.toLowerCase() === firstSegment)) return pathname;
|
|
346
|
+
}
|
|
347
|
+
return pathname === "/" ? `/${locale}` : `/${locale}${pathname}`;
|
|
253
348
|
}
|
|
254
349
|
/**
|
|
255
350
|
* Run the prerender phase for Pages Router.
|
|
@@ -287,12 +382,14 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
287
382
|
try {
|
|
288
383
|
let prerenderSecret = options._prerenderSecret;
|
|
289
384
|
if (!prerenderSecret && pagesBundlePath) prerenderSecret = readPrerenderSecret(path.dirname(pagesBundlePath));
|
|
290
|
-
if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and dynamic routes will produce no paths. Run `
|
|
385
|
+
if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and dynamic routes will produce no paths. Run `vite build` to regenerate the secret.");
|
|
291
386
|
const prodServer = options._prodServer ? options._prodServer : await (async () => {
|
|
292
387
|
const srv = await startProdServer({
|
|
293
388
|
port: 0,
|
|
294
389
|
host: "127.0.0.1",
|
|
295
390
|
outDir: path.dirname(path.dirname(pagesBundlePath)),
|
|
391
|
+
serverDir: path.dirname(pagesBundlePath),
|
|
392
|
+
serverEntryPath: pagesBundlePath,
|
|
296
393
|
noCompression: true,
|
|
297
394
|
purpose: "prerender"
|
|
298
395
|
});
|
|
@@ -342,7 +439,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
342
439
|
for (const route of bundlePageRoutes) {
|
|
343
440
|
if (BLOCKED_PAGES.includes(route.pattern)) continue;
|
|
344
441
|
if (route.pattern === "/404") continue;
|
|
345
|
-
const { type, revalidate: classifiedRevalidate } = classifyPagesRoute(route.filePath);
|
|
442
|
+
const { type, revalidate: classifiedRevalidate, hasStaticProps = false } = classifyPagesRoute(route.filePath);
|
|
346
443
|
if (type === "ssr") {
|
|
347
444
|
if (mode === "export") results.push({
|
|
348
445
|
route: route.pattern,
|
|
@@ -374,8 +471,8 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
374
471
|
let pathsResult;
|
|
375
472
|
try {
|
|
376
473
|
pathsResult = await route.module.getStaticPaths({
|
|
377
|
-
locales: [],
|
|
378
|
-
defaultLocale: ""
|
|
474
|
+
locales: [...config.i18n?.locales ?? []],
|
|
475
|
+
defaultLocale: config.i18n?.defaultLocale ?? ""
|
|
379
476
|
});
|
|
380
477
|
} catch (e) {
|
|
381
478
|
results.push({
|
|
@@ -397,21 +494,38 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
397
494
|
}
|
|
398
495
|
const paths = pathsResult?.paths ?? [];
|
|
399
496
|
let entryError = null;
|
|
497
|
+
const seenPaths = /* @__PURE__ */ new Set();
|
|
400
498
|
for (const item of paths) {
|
|
401
|
-
|
|
499
|
+
let locale = config.i18n?.defaultLocale;
|
|
500
|
+
let pathEntry = item;
|
|
501
|
+
if (config.i18n && typeof item === "string") {
|
|
502
|
+
const localized = extractLocaleFromUrl(item, config.i18n);
|
|
503
|
+
locale = localized.locale;
|
|
504
|
+
pathEntry = localized.url;
|
|
505
|
+
} else if (item && typeof item === "object" && item.locale !== void 0) locale = item.locale;
|
|
506
|
+
const normalized = normalizeStaticPathsEntry(pathEntry, route.pattern);
|
|
402
507
|
if ("error" in normalized) {
|
|
403
508
|
entryError = normalized.error;
|
|
404
509
|
break;
|
|
405
510
|
}
|
|
511
|
+
if (locale !== void 0 && !config.i18n?.locales.includes(locale)) {
|
|
512
|
+
entryError = `Invalid locale returned from getStaticPaths for ${route.pattern}: ${locale}`;
|
|
513
|
+
break;
|
|
514
|
+
}
|
|
406
515
|
const { params } = normalized;
|
|
407
516
|
try {
|
|
408
|
-
const urlPath = buildUrlFromParams(route.pattern, params);
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
517
|
+
const urlPath = localizePagesPath(buildUrlFromParams(route.pattern, params), locale, config.i18n);
|
|
518
|
+
if (!seenPaths.has(urlPath)) {
|
|
519
|
+
seenPaths.add(urlPath);
|
|
520
|
+
pagesToRender.push({
|
|
521
|
+
route,
|
|
522
|
+
urlPath,
|
|
523
|
+
params,
|
|
524
|
+
revalidate,
|
|
525
|
+
hasStaticProps,
|
|
526
|
+
locale
|
|
527
|
+
});
|
|
528
|
+
}
|
|
415
529
|
} catch (e) {
|
|
416
530
|
entryError = e.message;
|
|
417
531
|
break;
|
|
@@ -425,25 +539,58 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
425
539
|
});
|
|
426
540
|
continue;
|
|
427
541
|
}
|
|
428
|
-
} else pagesToRender.push({
|
|
542
|
+
} else for (const locale of config.i18n?.locales ?? [void 0]) pagesToRender.push({
|
|
429
543
|
route,
|
|
430
|
-
urlPath: route.pattern,
|
|
544
|
+
urlPath: localizePagesPath(route.pattern, locale, config.i18n),
|
|
431
545
|
params: {},
|
|
432
|
-
revalidate
|
|
546
|
+
revalidate,
|
|
547
|
+
hasStaticProps,
|
|
548
|
+
locale
|
|
433
549
|
});
|
|
434
550
|
}
|
|
435
551
|
if (!options._prodServer && pagesBundlePath && prerenderPoolAvailable()) {
|
|
436
552
|
const poolSize = resolvePrerenderPoolSize(pagesToRender.length, concurrency);
|
|
437
553
|
if (poolSize > 1) {
|
|
438
|
-
renderPool = await startOptionalPrerenderServerPool(path.dirname(path.dirname(pagesBundlePath)), poolSize);
|
|
554
|
+
renderPool = await startOptionalPrerenderServerPool(path.dirname(path.dirname(pagesBundlePath)), poolSize, void 0, path.dirname(pagesBundlePath));
|
|
439
555
|
if (renderPool) renderPorts = renderPool.ports;
|
|
440
556
|
}
|
|
441
557
|
}
|
|
442
558
|
let completed = 0;
|
|
443
|
-
const pageResults = await runWithConcurrency(pagesToRender, concurrency, async ({ route, urlPath, revalidate }) => {
|
|
559
|
+
const pageResults = await runWithConcurrency(pagesToRender, concurrency, async ({ route, urlPath, revalidate, hasStaticProps, locale }) => {
|
|
444
560
|
let result;
|
|
445
561
|
try {
|
|
446
562
|
const response = await renderPage(urlPath);
|
|
563
|
+
if (mode === "default" && response.headers.get("x-vinext-prerender-rewritten") !== "0") {
|
|
564
|
+
response.body?.cancel().catch(() => {});
|
|
565
|
+
const skipped = {
|
|
566
|
+
route: route.pattern,
|
|
567
|
+
status: "skipped",
|
|
568
|
+
reason: "dynamic"
|
|
569
|
+
};
|
|
570
|
+
onProgress?.({
|
|
571
|
+
completed: ++completed,
|
|
572
|
+
total: pagesToRender.length,
|
|
573
|
+
route: urlPath,
|
|
574
|
+
status: skipped.status
|
|
575
|
+
});
|
|
576
|
+
return skipped;
|
|
577
|
+
}
|
|
578
|
+
const contentType = response.headers.get("content-type");
|
|
579
|
+
const isStaticPropsResponse = mode === "default" && hasStaticProps && response.headers.get("X-Vinext-Cache") === "MISS";
|
|
580
|
+
const notFound = isStaticPropsResponse && response.status === 404;
|
|
581
|
+
const redirect = isStaticPropsResponse && [
|
|
582
|
+
301,
|
|
583
|
+
302,
|
|
584
|
+
303,
|
|
585
|
+
307,
|
|
586
|
+
308
|
|
587
|
+
].includes(response.status);
|
|
588
|
+
let redirectProps;
|
|
589
|
+
if (redirect) {
|
|
590
|
+
const props = await response.json();
|
|
591
|
+
if (!isUnknownRecord(props) || !isUnknownRecord(props.pageProps) || typeof props.pageProps.__N_REDIRECT !== "string" || props.pageProps.__N_REDIRECT_STATUS !== response.status || props.pageProps.__N_REDIRECT_BASE_PATH !== void 0 && typeof props.pageProps.__N_REDIRECT_BASE_PATH !== "boolean") throw new Error(`Invalid prerendered Pages redirect props for ${urlPath}`);
|
|
592
|
+
redirectProps = props;
|
|
593
|
+
}
|
|
447
594
|
const outputFiles = [];
|
|
448
595
|
const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash, mode === "export" ? config.basePath : "");
|
|
449
596
|
const htmlFullPath = path.join(outDir, htmlOutputPath);
|
|
@@ -453,7 +600,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
453
600
|
fs.writeFileSync(htmlFullPath, html, "utf-8");
|
|
454
601
|
outputFiles.push(htmlOutputPath);
|
|
455
602
|
} else {
|
|
456
|
-
if (!response.ok) throw new Error(`renderPage returned ${response.status} for ${urlPath}`);
|
|
603
|
+
if (!response.ok && !notFound) throw new Error(`renderPage returned ${response.status} for ${urlPath}`);
|
|
457
604
|
const html = await response.text();
|
|
458
605
|
fs.mkdirSync(path.dirname(htmlFullPath), { recursive: true });
|
|
459
606
|
fs.writeFileSync(htmlFullPath, html, "utf-8");
|
|
@@ -466,7 +613,19 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
466
613
|
revalidate,
|
|
467
614
|
...typeof revalidate === "number" ? { expire: config.expireTime } : {},
|
|
468
615
|
router: "pages",
|
|
469
|
-
...urlPath !== route.pattern ? { path: urlPath } : {}
|
|
616
|
+
...urlPath !== route.pattern ? { path: urlPath } : {},
|
|
617
|
+
...locale ? { locale } : {},
|
|
618
|
+
...response.ok ? { responseStatus: response.status } : {},
|
|
619
|
+
...response.ok && contentType ? { headers: { "content-type": contentType } } : {},
|
|
620
|
+
...notFound ? {
|
|
621
|
+
notFound: true,
|
|
622
|
+
responseStatus: 404
|
|
623
|
+
} : {},
|
|
624
|
+
...redirect ? {
|
|
625
|
+
responseStatus: response.status,
|
|
626
|
+
redirectProps,
|
|
627
|
+
headers: { location: response.headers.get("location") ?? "/" }
|
|
628
|
+
} : {}
|
|
470
629
|
};
|
|
471
630
|
} catch (e) {
|
|
472
631
|
renderPool?.recordRenderError(e);
|
|
@@ -489,21 +648,41 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
489
648
|
renderPool?.assertHealthy();
|
|
490
649
|
const hasCustom404 = findFileWithExtensions(path.join(pagesDir, "404"), fileMatcher);
|
|
491
650
|
const hasErrorPage = findFileWithExtensions(path.join(pagesDir, "_error"), fileMatcher);
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
651
|
+
for (const locale of config.i18n?.locales ?? [void 0]) {
|
|
652
|
+
if (!hasCustom404 && !hasErrorPage) break;
|
|
653
|
+
try {
|
|
654
|
+
const notFoundRes = await renderPage(localizePagesPath(hasCustom404 ? "/404" : NOT_FOUND_SENTINEL_PATH, locale, config.i18n));
|
|
655
|
+
if (mode === "default" && notFoundRes.headers.get("x-vinext-prerender-rewritten") !== "0") {
|
|
656
|
+
notFoundRes.body?.cancel().catch(() => {});
|
|
657
|
+
continue;
|
|
658
|
+
}
|
|
659
|
+
const contentType = notFoundRes.headers.get("content-type") ?? "";
|
|
660
|
+
if (notFoundRes.status === 404 && contentType.includes("text/html")) {
|
|
661
|
+
const html404 = await notFoundRes.text();
|
|
662
|
+
const pathname = localizePagesPath("/404", locale, config.i18n);
|
|
663
|
+
let outputFiles;
|
|
664
|
+
if (pathname === "/404") outputFiles = emitStatic404Files(outDir, html404, config.trailingSlash);
|
|
665
|
+
else {
|
|
666
|
+
const outputPath = getOutputPath(pathname, config.trailingSlash);
|
|
667
|
+
const fullPath = path.join(outDir, outputPath);
|
|
668
|
+
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
669
|
+
fs.writeFileSync(fullPath, html404, "utf8");
|
|
670
|
+
outputFiles = [outputPath];
|
|
671
|
+
}
|
|
672
|
+
results.push({
|
|
673
|
+
route: "/404",
|
|
674
|
+
status: "rendered",
|
|
675
|
+
outputFiles,
|
|
676
|
+
revalidate: false,
|
|
677
|
+
router: "pages",
|
|
678
|
+
headers: { "content-type": contentType },
|
|
679
|
+
...pathname !== "/404" ? { path: pathname } : {},
|
|
680
|
+
...locale ? { locale } : {}
|
|
681
|
+
});
|
|
682
|
+
}
|
|
683
|
+
} catch (e) {
|
|
684
|
+
renderPool?.recordRenderError(e);
|
|
504
685
|
}
|
|
505
|
-
} catch (e) {
|
|
506
|
-
renderPool?.recordRenderError(e);
|
|
507
686
|
}
|
|
508
687
|
renderPool?.assertHealthy();
|
|
509
688
|
if (!skipManifest) writePrerenderIndex(results, manifestDir, {
|
|
@@ -531,14 +710,14 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
531
710
|
* `vinext-prerender.json` to `outDir`.
|
|
532
711
|
*
|
|
533
712
|
* If the bundle does not exist, an error is thrown directing the user to run
|
|
534
|
-
* `
|
|
713
|
+
* `vite build` first.
|
|
535
714
|
*
|
|
536
715
|
* Speculative static rendering: routes classified as 'unknown' (no explicit
|
|
537
716
|
* config, non-dynamic URL) are attempted with an empty headers/cookies context.
|
|
538
717
|
* If they succeed, they are marked as rendered. If they throw a DynamicUsageError
|
|
539
718
|
* or fail, they are marked as skipped with reason 'dynamic'.
|
|
540
719
|
*/
|
|
541
|
-
async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, ...options }) {
|
|
720
|
+
async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, serverDir = path.dirname(rscBundlePath), buildOutDir = path.dirname(serverDir), ...options }) {
|
|
542
721
|
const manifestDir = options.manifestDir ?? outDir;
|
|
543
722
|
const concurrency = options.concurrency ?? DEFAULT_CONCURRENCY;
|
|
544
723
|
const onProgress = options.onProgress;
|
|
@@ -548,7 +727,6 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
548
727
|
const previousHandler = getCacheHandler();
|
|
549
728
|
setCacheHandler(new NoOpCacheHandler());
|
|
550
729
|
const restorePrerenderPhase = enterPrerenderPhase();
|
|
551
|
-
const serverDir = path.dirname(rscBundlePath);
|
|
552
730
|
let rscHandler;
|
|
553
731
|
let staticParamsMap = {};
|
|
554
732
|
let ownedProdServerHandle = null;
|
|
@@ -557,12 +735,14 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
557
735
|
let renderRoundRobin = 0;
|
|
558
736
|
try {
|
|
559
737
|
const prerenderSecret = readPrerenderSecret(serverDir);
|
|
560
|
-
if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and generateStaticParams will not be called. Run `
|
|
738
|
+
if (!prerenderSecret) console.warn("[vinext] Warning: prerender secret not found. /__vinext/prerender/* endpoints will return 403 and generateStaticParams will not be called. Run `vite build` to regenerate the secret.");
|
|
561
739
|
const prodServer = options._prodServer ? options._prodServer : await (async () => {
|
|
562
740
|
const srv = await startProdServer({
|
|
563
741
|
port: 0,
|
|
564
742
|
host: "127.0.0.1",
|
|
565
|
-
outDir:
|
|
743
|
+
outDir: buildOutDir,
|
|
744
|
+
rscEntryPath: rscBundlePath,
|
|
745
|
+
serverDir,
|
|
566
746
|
noCompression: true,
|
|
567
747
|
purpose: "prerender"
|
|
568
748
|
});
|
|
@@ -595,6 +775,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
595
775
|
const request = (async () => {
|
|
596
776
|
const search = new URLSearchParams({ pattern });
|
|
597
777
|
if (Object.keys(params).length > 0) search.set("parentParams", JSON.stringify(params));
|
|
778
|
+
if (mode === "export") search.set("rejectEmptyResults", "1");
|
|
598
779
|
const res = await fetch(`${baseUrl}/__vinext/prerender/static-params?${search}`, { headers: secretHeaders });
|
|
599
780
|
const text = await res.text();
|
|
600
781
|
if (!res.ok) {
|
|
@@ -664,28 +845,36 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
664
845
|
});
|
|
665
846
|
continue;
|
|
666
847
|
}
|
|
667
|
-
const parentParamSets = await resolveParentParams(route, staticParamsMap);
|
|
848
|
+
const parentParamSets = await resolveParentParams(route, staticParamsMap, { staticExport: mode === "export" });
|
|
668
849
|
let paramSets;
|
|
669
850
|
if (parentParamSets.length > 0) {
|
|
670
851
|
paramSets = [];
|
|
671
852
|
for (const parentParams of parentParamSets) {
|
|
672
853
|
const childResults = await generateStaticParamsFn({ params: parentParams });
|
|
673
854
|
if (childResults === null) {
|
|
674
|
-
paramSets =
|
|
855
|
+
paramSets = layoutOnlyParamSets(route, parentParamSets);
|
|
675
856
|
break;
|
|
676
857
|
}
|
|
677
|
-
if (Array.isArray(childResults))
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
858
|
+
if (Array.isArray(childResults)) {
|
|
859
|
+
if (mode === "export" && childResults.length === 0) throw emptyStaticExportParamsError(route.pattern);
|
|
860
|
+
if (childResults.length === 0) {
|
|
861
|
+
paramSets.push(parentParams);
|
|
862
|
+
continue;
|
|
863
|
+
}
|
|
864
|
+
for (const childParams of childResults) paramSets.push({
|
|
865
|
+
...parentParams,
|
|
866
|
+
...childParams
|
|
867
|
+
});
|
|
868
|
+
} else {
|
|
682
869
|
paramSets = [];
|
|
683
870
|
break;
|
|
684
871
|
}
|
|
685
872
|
}
|
|
873
|
+
if (paramSets !== null) paramSets = routeStaticParamSets(route, paramSets, { staticExport: mode === "export" });
|
|
686
874
|
} else {
|
|
687
875
|
const results = await generateStaticParamsFn({ params: {} });
|
|
688
|
-
|
|
876
|
+
if (mode === "export" && Array.isArray(results) && results.length === 0) throw emptyStaticExportParamsError(route.pattern);
|
|
877
|
+
paramSets = results === null ? null : routeStaticParamSets(route, Array.isArray(results) ? results : [], { staticExport: mode === "export" });
|
|
689
878
|
}
|
|
690
879
|
if (paramSets === null) {
|
|
691
880
|
if (mode === "export") results.push({
|
|
@@ -704,7 +893,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
704
893
|
results.push({
|
|
705
894
|
route: route.pattern,
|
|
706
895
|
status: "skipped",
|
|
707
|
-
reason: "
|
|
896
|
+
reason: "empty-static-params"
|
|
708
897
|
});
|
|
709
898
|
continue;
|
|
710
899
|
}
|
|
@@ -741,7 +930,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
741
930
|
route: route.pattern,
|
|
742
931
|
status: "error",
|
|
743
932
|
error: `Failed to call generateStaticParams(): ${detail}`,
|
|
744
|
-
...e instanceof PrerenderUserFunctionError ? { fatal: true } : {}
|
|
933
|
+
...e instanceof PrerenderUserFunctionError || e instanceof InvalidStaticParamsError ? { fatal: true } : {}
|
|
745
934
|
});
|
|
746
935
|
}
|
|
747
936
|
else if (type === "unknown") urlsToRender.push({
|
|
@@ -804,7 +993,8 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
804
993
|
};
|
|
805
994
|
}
|
|
806
995
|
const cacheControl = response.headers.get("cache-control") ?? "";
|
|
807
|
-
|
|
996
|
+
const requestCacheLife = readPrerenderCacheLifeHeader(response.headers);
|
|
997
|
+
if (requestCacheLife?.revalidate === 0) {
|
|
808
998
|
await response.body?.cancel();
|
|
809
999
|
return {
|
|
810
1000
|
route: routePattern,
|
|
@@ -812,15 +1002,14 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
812
1002
|
reason: "dynamic"
|
|
813
1003
|
};
|
|
814
1004
|
}
|
|
815
|
-
const requestCacheLife = readPrerenderCacheLifeHeader(response.headers);
|
|
816
1005
|
const collectedTags = readPrerenderCacheTagsHeader(response.headers);
|
|
817
|
-
const cacheValue = await buildAppRouteCacheValue(response);
|
|
1006
|
+
const cacheValue = await buildAppRouteCacheValue(response, cacheControl);
|
|
818
1007
|
cacheValue.headers[VINEXT_METADATA_ROUTE_CACHE_HEADER] = "1";
|
|
819
1008
|
const outputPath = getAppRouteOutputPath(urlPath);
|
|
820
1009
|
const fullPath = path.join(outDir, outputPath);
|
|
821
1010
|
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
822
1011
|
fs.writeFileSync(fullPath, new Uint8Array(cacheValue.body));
|
|
823
|
-
const renderedCacheControl = resolveRenderedCacheControl(requestCacheLife ?? {},
|
|
1012
|
+
const renderedCacheControl = resolveRenderedCacheControl(requestCacheLife ?? {}, "", config.expireTime);
|
|
824
1013
|
const renderedRevalidate = renderedCacheControl.revalidate ?? false;
|
|
825
1014
|
const renderedStale = resolveClientStaleTimeSeconds(requestCacheLife ?? void 0);
|
|
826
1015
|
return {
|
|
@@ -969,7 +1158,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
969
1158
|
if (!options._prodServer && prerenderPoolAvailable()) {
|
|
970
1159
|
const poolSize = resolvePrerenderPoolSize(urlsToRender.length, concurrency);
|
|
971
1160
|
if (poolSize > 1) {
|
|
972
|
-
renderPool = await startOptionalPrerenderServerPool(
|
|
1161
|
+
renderPool = await startOptionalPrerenderServerPool(buildOutDir, poolSize, rscBundlePath, serverDir);
|
|
973
1162
|
if (renderPool) renderPorts = renderPool.ports;
|
|
974
1163
|
}
|
|
975
1164
|
}
|
|
@@ -1091,6 +1280,9 @@ function writePrerenderIndex(routes, outDir, options) {
|
|
|
1091
1280
|
...r.routeSegments ? { routeSegments: r.routeSegments } : {},
|
|
1092
1281
|
...r.headers ? { headers: r.headers } : {},
|
|
1093
1282
|
...typeof r.responseStatus === "number" ? { responseStatus: r.responseStatus } : {},
|
|
1283
|
+
...r.notFound ? { notFound: true } : {},
|
|
1284
|
+
...r.redirectProps ? { redirectProps: r.redirectProps } : {},
|
|
1285
|
+
...r.locale ? { locale: r.locale } : {},
|
|
1094
1286
|
...r.path ? { path: r.path } : {},
|
|
1095
1287
|
...r.fallback ? { fallback: true } : {}
|
|
1096
1288
|
};
|
|
@@ -1114,4 +1306,4 @@ function writePrerenderIndex(routes, outDir, options) {
|
|
|
1114
1306
|
fs.writeFileSync(path.join(outDir, "vinext-prerender.json"), JSON.stringify(index, null, 2), "utf-8");
|
|
1115
1307
|
}
|
|
1116
1308
|
//#endregion
|
|
1117
|
-
export { buildUrlFromParams, extractRscPayloadFromPrerenderedHtml, prerenderApp, prerenderPages, readPrerenderSecret, resolveParentParams, writePrerenderIndex };
|
|
1309
|
+
export { buildUrlFromParams, extractRscPayloadFromPrerenderedHtml, layoutOnlyParamSets, localizePagesPath, prerenderApp, prerenderPages, readPrerenderSecret, resolveParentParams, routeStaticParamSets, validateDiscoveredParams, writePrerenderIndex };
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
//#region src/build/preview-credentials.d.ts
|
|
2
|
-
type PreviewBuildCredentials = {
|
|
2
|
+
export type PreviewBuildCredentials = {
|
|
3
3
|
id: string;
|
|
4
4
|
signingKey: string;
|
|
5
5
|
encryptionKey: string;
|
|
6
6
|
};
|
|
7
|
-
declare function createPreviewBuildCredentials(): PreviewBuildCredentials;
|
|
8
|
-
declare function getPreviewBuildCredentials(): PreviewBuildCredentials | undefined;
|
|
9
|
-
declare function runWithPreviewBuildCredentials<T>(callback: () => T): T;
|
|
10
|
-
//#endregion
|
|
11
|
-
export { PreviewBuildCredentials, createPreviewBuildCredentials, getPreviewBuildCredentials, runWithPreviewBuildCredentials };
|
|
7
|
+
export declare function createPreviewBuildCredentials(): PreviewBuildCredentials;
|
|
8
|
+
export declare function getPreviewBuildCredentials(): PreviewBuildCredentials | undefined;
|
|
9
|
+
export declare function runWithPreviewBuildCredentials<T>(callback: () => T, credentials?: PreviewBuildCredentials): T;
|
|
10
|
+
//#endregion
|
|
@@ -12,8 +12,8 @@ function createPreviewBuildCredentials() {
|
|
|
12
12
|
function getPreviewBuildCredentials() {
|
|
13
13
|
return previewBuildCredentialsStorage.getStore();
|
|
14
14
|
}
|
|
15
|
-
function runWithPreviewBuildCredentials(callback) {
|
|
16
|
-
return previewBuildCredentialsStorage.run(
|
|
15
|
+
function runWithPreviewBuildCredentials(callback, credentials = createPreviewBuildCredentials()) {
|
|
16
|
+
return previewBuildCredentialsStorage.run(credentials, callback);
|
|
17
17
|
}
|
|
18
18
|
//#endregion
|
|
19
19
|
export { createPreviewBuildCredentials, getPreviewBuildCredentials, runWithPreviewBuildCredentials };
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
//#region src/build/public-dir-conflict.d.ts
|
|
2
|
-
type PublicDirConflictOptions = {
|
|
2
|
+
export type PublicDirConflictOptions = {
|
|
3
3
|
root: string;
|
|
4
4
|
publicDir: string | null;
|
|
5
5
|
assetsDir: string;
|
|
6
6
|
};
|
|
7
|
-
type PublicNextRequestConflictOptions = Pick<PublicDirConflictOptions, "root" | "publicDir"> & {
|
|
7
|
+
export type PublicNextRequestConflictOptions = Pick<PublicDirConflictOptions, "root" | "publicDir"> & {
|
|
8
8
|
basePath: string;
|
|
9
9
|
requestUrl: string;
|
|
10
10
|
};
|
|
11
|
-
declare function assertNoPublicNextRequestConflict({ root, publicDir, basePath, requestUrl }: PublicNextRequestConflictOptions): void;
|
|
12
|
-
declare function assertNoPublicDirAssetConflict({ root, publicDir, assetsDir }: PublicDirConflictOptions): void;
|
|
13
|
-
//#endregion
|
|
14
|
-
export { PublicDirConflictOptions, PublicNextRequestConflictOptions, assertNoPublicDirAssetConflict, assertNoPublicNextRequestConflict };
|
|
11
|
+
export declare function assertNoPublicNextRequestConflict({ root, publicDir, basePath, requestUrl }: PublicNextRequestConflictOptions): void;
|
|
12
|
+
export declare function assertNoPublicDirAssetConflict({ root, publicDir, assetsDir }: PublicDirConflictOptions): void;
|
|
13
|
+
//#endregion
|