vinext 1.0.0-beta.9 → 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 +150 -92
- 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 +36 -11
- package/dist/build/prerender-paths.js +273 -97
- 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 +65 -15
- package/dist/build/prerender.js +139 -43
- 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 +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 +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/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 -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 +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 +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 +502 -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 +711 -189
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +710 -102
- 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 +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 +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 +87 -34
- 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 +8 -4
- 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 +6 -2
- 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-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 +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 -5
- 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 -25
- 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 +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 +34 -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 +17 -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-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 +68 -54
- package/dist/server/app-route-handler-execution.d.ts +17 -13
- package/dist/server/app-route-handler-execution.js +69 -18
- 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-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 +28 -8
- 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 +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +31 -6
- package/dist/server/app-rsc-handler.js +411 -61
- 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 +6 -6
- 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 +16 -12
- 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 +61 -14
- 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 +35 -13
- package/dist/server/cache-control.js +71 -5
- 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 +159 -57
- 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 +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 +54 -61
- package/dist/server/headers.js +18 -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-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 +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 +20 -7
- 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-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 +77 -39
- 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 +14 -12
- package/dist/server/pages-request-pipeline.js +60 -30
- 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 +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 +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 -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 +124 -31
- 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 +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 +2 -1
- 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 +107 -27
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +15 -13
- package/dist/shims/cacheability-classification.d.ts +49 -28
- package/dist/shims/cacheability-classification.js +27 -12
- 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 +50 -21
- package/dist/shims/cdn-cache.js +15 -38
- 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.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +42 -17
- 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 +67 -33
- package/dist/shims/headers.js +93 -6
- 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/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.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 +24 -16
- 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/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 +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 +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 +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 +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +47 -6
|
@@ -10,6 +10,5 @@ type PrerenderPhaseEnv = {
|
|
|
10
10
|
* direct prerender helpers can run inside the CLI's broader build scope without
|
|
11
11
|
* overwriting the caller's prior phase when they finish.
|
|
12
12
|
*/
|
|
13
|
-
declare function enterPrerenderPhase(env?: PrerenderPhaseEnv): () => void;
|
|
14
|
-
//#endregion
|
|
15
|
-
export { enterPrerenderPhase };
|
|
13
|
+
export declare function enterPrerenderPhase(env?: PrerenderPhaseEnv): () => void;
|
|
14
|
+
//#endregion
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NoOpCacheHandler, setCacheHandler } from "../shims/cache-handler.js";
|
|
2
|
+
import { registerPrerenderCloudflareLoader } from "./prerender-cloudflare-loader.js";
|
|
2
3
|
import { startProdServer } from "../server/prod-server.js";
|
|
3
4
|
//#region src/build/prerender-server-entry.ts
|
|
4
5
|
/**
|
|
@@ -11,18 +12,25 @@ import { startProdServer } from "../server/prod-server.js";
|
|
|
11
12
|
* vinext production server on an ephemeral port and reports it to the parent
|
|
12
13
|
* over IPC. The parent then load-balances per-route fetches across the pool.
|
|
13
14
|
*
|
|
14
|
-
* `VINEXT_PRERENDER
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* `VINEXT_PRERENDER`, `NEXT_PHASE`, `VINEXT_PRERENDER_OUTDIR`, and the optional
|
|
16
|
+
* `VINEXT_PRERENDER_RSC_ENTRY_PATH`, and `VINEXT_PRERENDER_SERVER_DIR` are
|
|
17
|
+
* passed via the fork env so they are set
|
|
18
|
+
* before any module loads (some server and user modules read the phase at
|
|
19
|
+
* import time).
|
|
17
20
|
*/
|
|
18
21
|
async function main() {
|
|
19
22
|
const outDir = process.env.VINEXT_PRERENDER_OUTDIR;
|
|
23
|
+
const rscEntryPath = process.env.VINEXT_PRERENDER_RSC_ENTRY_PATH;
|
|
24
|
+
const serverDir = process.env.VINEXT_PRERENDER_SERVER_DIR;
|
|
20
25
|
if (!outDir) throw new Error("[vinext] prerender server worker: VINEXT_PRERENDER_OUTDIR not set");
|
|
21
26
|
setCacheHandler(new NoOpCacheHandler());
|
|
27
|
+
registerPrerenderCloudflareLoader();
|
|
22
28
|
const { port } = await startProdServer({
|
|
23
29
|
port: 0,
|
|
24
30
|
host: "127.0.0.1",
|
|
25
31
|
outDir,
|
|
32
|
+
...rscEntryPath ? { rscEntryPath } : {},
|
|
33
|
+
...serverDir ? { serverDir } : {},
|
|
26
34
|
noCompression: true,
|
|
27
35
|
purpose: "prerender",
|
|
28
36
|
silent: true
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* fly and a forked plain-node child can't load `.ts`); callers fall back to the
|
|
6
6
|
* single in-process server. True in the published/built package.
|
|
7
7
|
*/
|
|
8
|
-
declare function prerenderPoolAvailable(): boolean;
|
|
9
|
-
type PrerenderServerPool = {
|
|
8
|
+
export declare function prerenderPoolAvailable(): boolean;
|
|
9
|
+
export type PrerenderServerPool = {
|
|
10
10
|
/** Ports of the forked render servers, for round-robin per-route fetches. */
|
|
11
11
|
ports: number[];
|
|
12
12
|
/**
|
|
@@ -35,12 +35,15 @@ type PrerenderServerPool = {
|
|
|
35
35
|
* number of in-flight route fetches and the worker count (the default is capped
|
|
36
36
|
* at `min(cores, 8)`).
|
|
37
37
|
*/
|
|
38
|
-
declare function resolvePrerenderPoolSize(routeCount: number, maxOverride?: number): number;
|
|
38
|
+
export declare function resolvePrerenderPoolSize(routeCount: number, maxOverride?: number): number;
|
|
39
39
|
/**
|
|
40
40
|
* Fork `size` production servers against `outDir` and resolve once all are
|
|
41
41
|
* listening. Each child reports its port over IPC. Rejects (and tears down any
|
|
42
42
|
* already-started children) if any child fails to come up.
|
|
43
43
|
*/
|
|
44
|
-
declare function startPrerenderServerPool(outDir: string, size: number,
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
export declare function startPrerenderServerPool(outDir: string, size: number, options?: {
|
|
45
|
+
entry?: string;
|
|
46
|
+
rscEntryPath?: string;
|
|
47
|
+
serverDir?: string;
|
|
48
|
+
}): Promise<PrerenderServerPool>;
|
|
49
|
+
//#endregion
|
|
@@ -2,8 +2,8 @@ import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
|
2
2
|
import { PHASE_PRODUCTION_BUILD } from "../shims/constants.js";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import os from "node:os";
|
|
6
5
|
import { fork } from "node:child_process";
|
|
6
|
+
import os from "node:os";
|
|
7
7
|
//#region src/build/prerender-server-pool.ts
|
|
8
8
|
/**
|
|
9
9
|
* Parallel prerender server pool.
|
|
@@ -41,12 +41,12 @@ const MAX_POOL_SIZE = 8;
|
|
|
41
41
|
const MIN_ROUTES_PER_WORKER = 48;
|
|
42
42
|
/** Rough memory budget reserved for the main build process plus its in-process
|
|
43
43
|
* prerender server. */
|
|
44
|
-
const APPROX_MAIN_PROCESS_BYTES =
|
|
44
|
+
const APPROX_MAIN_PROCESS_BYTES = 805306368;
|
|
45
45
|
/** Rough memory budget per worker (a worker loads the whole server bundle).
|
|
46
46
|
* Used with total system memory as a coarse upper bound on constrained machines
|
|
47
47
|
* so K render processes don't OOM. Deliberately under-forks rather than risking
|
|
48
48
|
* OOM; measured mid-size apps are usually lower (~260-380 MB/worker). */
|
|
49
|
-
const APPROX_BYTES_PER_WORKER =
|
|
49
|
+
const APPROX_BYTES_PER_WORKER = 805306368;
|
|
50
50
|
/** Per-worker readiness timeout. */
|
|
51
51
|
const WORKER_READY_TIMEOUT_MS = 6e4;
|
|
52
52
|
/** Best-effort close timeout so build cleanup is not blocked forever by a wedged child. */
|
|
@@ -90,7 +90,8 @@ function isWorkerTransportError(err) {
|
|
|
90
90
|
* listening. Each child reports its port over IPC. Rejects (and tears down any
|
|
91
91
|
* already-started children) if any child fails to come up.
|
|
92
92
|
*/
|
|
93
|
-
async function startPrerenderServerPool(outDir, size,
|
|
93
|
+
async function startPrerenderServerPool(outDir, size, options = {}) {
|
|
94
|
+
const { entry = WORKER_ENTRY, rscEntryPath, serverDir } = options;
|
|
94
95
|
const children = [];
|
|
95
96
|
let shuttingDown = false;
|
|
96
97
|
let crash = null;
|
|
@@ -107,7 +108,9 @@ async function startPrerenderServerPool(outDir, size, entry = WORKER_ENTRY) {
|
|
|
107
108
|
...process.env,
|
|
108
109
|
VINEXT_PRERENDER: "1",
|
|
109
110
|
NEXT_PHASE: PHASE_PRODUCTION_BUILD,
|
|
110
|
-
VINEXT_PRERENDER_OUTDIR: outDir
|
|
111
|
+
VINEXT_PRERENDER_OUTDIR: outDir,
|
|
112
|
+
...rscEntryPath ? { VINEXT_PRERENDER_RSC_ENTRY_PATH: rscEntryPath } : {},
|
|
113
|
+
...serverDir ? { VINEXT_PRERENDER_SERVER_DIR: serverDir } : {}
|
|
111
114
|
},
|
|
112
115
|
stdio: [
|
|
113
116
|
"ignore",
|
|
@@ -5,13 +5,13 @@ import { MetadataFileRoute } from "../server/metadata-routes.js";
|
|
|
5
5
|
import { readPrerenderSecret } from "./server-manifest.js";
|
|
6
6
|
import { Server } from "node:http";
|
|
7
7
|
//#region src/build/prerender.d.ts
|
|
8
|
-
type PrerenderResult = {
|
|
8
|
+
export type PrerenderResult = {
|
|
9
9
|
/** One entry per route (including skipped/error routes). */
|
|
10
10
|
routes: PrerenderRouteResult[];
|
|
11
11
|
/** Additional generated files that are not represented as route entries. */
|
|
12
12
|
outputFiles?: string[];
|
|
13
13
|
};
|
|
14
|
-
type PrerenderRouteResult = {
|
|
14
|
+
export type PrerenderRouteResult = {
|
|
15
15
|
/** The route's file-system pattern, e.g. `/blog/:slug`. */
|
|
16
16
|
route: string;
|
|
17
17
|
status: "rendered";
|
|
@@ -41,7 +41,7 @@ type PrerenderRouteResult = {
|
|
|
41
41
|
} | {
|
|
42
42
|
route: string;
|
|
43
43
|
status: "skipped";
|
|
44
|
-
reason: "ssr" | "dynamic" | "no-static-params" | "api" | "internal";
|
|
44
|
+
reason: "ssr" | "dynamic" | "no-static-params" | "empty-static-params" | "api" | "internal";
|
|
45
45
|
} | {
|
|
46
46
|
route: string;
|
|
47
47
|
status: "error";
|
|
@@ -124,6 +124,16 @@ type PrerenderAppOptions = {
|
|
|
124
124
|
* Absolute path to the pre-built RSC handler bundle (e.g. `dist/server/index.js`).
|
|
125
125
|
*/
|
|
126
126
|
rscBundlePath: string;
|
|
127
|
+
/**
|
|
128
|
+
* Root directory for build metadata and sibling server artifacts. Defaults
|
|
129
|
+
* to the RSC entry's directory for compatibility with standalone callers.
|
|
130
|
+
*/
|
|
131
|
+
serverDir?: string;
|
|
132
|
+
/**
|
|
133
|
+
* Root of the complete production build passed to the local prerender
|
|
134
|
+
* server. Defaults to the parent of `serverDir` for standalone callers.
|
|
135
|
+
*/
|
|
136
|
+
buildOutDir?: string;
|
|
127
137
|
} & PrerenderOptions;
|
|
128
138
|
type PrerenderPagesOptionsInternal = PrerenderPagesOptions & {
|
|
129
139
|
_prodServer?: {
|
|
@@ -158,7 +168,7 @@ type PrerenderAppOptionsInternal = PrerenderAppOptions & {
|
|
|
158
168
|
* Safe regex usage: safeJsonStringify (used by createRscEmbedTransform) escapes
|
|
159
169
|
* all '<' and '>' in the embedded JSON, preventing false </script> matches.
|
|
160
170
|
*/
|
|
161
|
-
declare function extractRscPayloadFromPrerenderedHtml(html: string): Uint8Array | null;
|
|
171
|
+
export declare function extractRscPayloadFromPrerenderedHtml(html: string): Uint8Array | null;
|
|
162
172
|
/**
|
|
163
173
|
* Build a URL path from a route pattern and params.
|
|
164
174
|
* "/posts/:id" + { id: "42" } → "/posts/42"
|
|
@@ -169,21 +179,61 @@ declare function extractRscPayloadFromPrerenderedHtml(html: string): Uint8Array
|
|
|
169
179
|
* caller (prerenderPages / prerenderApp) catches this and surfaces it as a
|
|
170
180
|
* per-route error result.
|
|
171
181
|
*/
|
|
172
|
-
declare function buildUrlFromParams(pattern: string, params: Record<string, string | string[]> | undefined | null): string;
|
|
182
|
+
export declare function buildUrlFromParams(pattern: string, params: Record<string, string | string[]> | undefined | null): string;
|
|
173
183
|
/** Map of route patterns to generateStaticParams functions (or null/undefined). */
|
|
174
|
-
type StaticParamsMap = Record<string, ((opts: {
|
|
184
|
+
export type StaticParamsMap = Record<string, ((opts: {
|
|
175
185
|
params: Record<string, string | string[]>;
|
|
176
186
|
}) => Promise<unknown>) | null | undefined>;
|
|
177
187
|
/**
|
|
178
|
-
* Resolve
|
|
188
|
+
* Resolve the params a route's layouts above its own pattern generate.
|
|
179
189
|
* Handles top-down generateStaticParams resolution for nested dynamic routes.
|
|
180
190
|
*
|
|
181
191
|
* Uses the `staticParamsMap` (pattern → generateStaticParams) exported from
|
|
182
|
-
* the production bundle.
|
|
192
|
+
* the production bundle. As in Next.js, which walks every segment of the
|
|
193
|
+
* route's own loader tree top-down and passes each parent param set to the
|
|
194
|
+
* next generateStaticParams (build/static-paths/app.ts
|
|
195
|
+
* generateRouteStaticParams), every layout of the route contributes, including
|
|
196
|
+
* one at the last dynamic segment when static segments follow it. The layouts
|
|
197
|
+
* at the route's full pattern compose with its page under
|
|
198
|
+
* `staticParamsMap[route.pattern]`, so they're left to the caller. A page or a
|
|
199
|
+
* route group's layout at the same prefix belongs to a sibling route and never
|
|
200
|
+
* supplies params.
|
|
201
|
+
*
|
|
202
|
+
* An App Route handler inherits no layouts: Next.js builds its segments from
|
|
203
|
+
* the route module alone (build/segment-config/app/app-segments.ts
|
|
204
|
+
* collectAppRouteSegments), so it has no parent params. A layout that returns
|
|
205
|
+
* no params passes each parent set through unchanged, as Next.js does outside
|
|
206
|
+
* Cache Components, except under `output: "export"`, where Next.js rejects any
|
|
207
|
+
* generateStaticParams that returns no params (build/static-paths/app.ts
|
|
208
|
+
* callGenerateStaticParams).
|
|
183
209
|
*/
|
|
184
|
-
declare function resolveParentParams(childRoute: AppRoute, staticParamsMap: StaticParamsMap, options?: {
|
|
185
|
-
|
|
210
|
+
export declare function resolveParentParams(childRoute: AppRoute, staticParamsMap: StaticParamsMap, options?: {
|
|
211
|
+
staticExport?: boolean;
|
|
186
212
|
}): Promise<Record<string, string | string[]>[]>;
|
|
213
|
+
export declare function validateDiscoveredParams(value: unknown, pattern: string, source: "generateStaticParams" | "getStaticPaths"): Record<string, string | string[]>;
|
|
214
|
+
/**
|
|
215
|
+
* The param sets of an App route that become concrete paths, following
|
|
216
|
+
* Next.js's buildAppStaticPaths (build/static-paths/app.ts). Unless every set
|
|
217
|
+
* names every pathname param (hadAllParamsGenerated), none is prerendered.
|
|
218
|
+
* Otherwise every set is checked against the route's pathname params
|
|
219
|
+
* (validateParams), and, outside a partial prerender, a set with an empty
|
|
220
|
+
* required value is skipped rather than built into a path with an empty
|
|
221
|
+
* segment. An array, including an optional catch-all's empty one, is never
|
|
222
|
+
* empty in that sense. Under `output: "export"` incomplete sets fail the
|
|
223
|
+
* build instead, as Next.js requires every export path to be generated.
|
|
224
|
+
*/
|
|
225
|
+
export declare function routeStaticParamSets(route: Pick<AppRoute, "pattern">, paramSets: readonly unknown[], options?: {
|
|
226
|
+
staticExport?: boolean;
|
|
227
|
+
}): Record<string, string | string[]>[];
|
|
228
|
+
/**
|
|
229
|
+
* The param sets a route's layouts generate, standing in for the route's own
|
|
230
|
+
* when none of the segments at its full pattern has generateStaticParams.
|
|
231
|
+
* Next.js prerenders none of a route's paths unless every set fills every
|
|
232
|
+
* pathname param (build/static-paths/app.ts hadAllParamsGenerated), so
|
|
233
|
+
* incomplete sets leave the route without static params (`null`). Complete
|
|
234
|
+
* sets still go through routeStaticParamSets.
|
|
235
|
+
*/
|
|
236
|
+
export declare function layoutOnlyParamSets(route: Pick<AppRoute, "params" | "pattern">, parentParamSets: Record<string, string | string[]>[]): Record<string, string | string[]>[] | null;
|
|
187
237
|
/**
|
|
188
238
|
* Run the prerender phase for Pages Router.
|
|
189
239
|
*
|
|
@@ -197,7 +247,7 @@ declare function resolveParentParams(childRoute: AppRoute, staticParamsMap: Stat
|
|
|
197
247
|
* Writes HTML files to `outDir`. If `manifestDir` is set, writes
|
|
198
248
|
* `vinext-prerender.json` there; otherwise writes it to `outDir`.
|
|
199
249
|
*/
|
|
200
|
-
declare function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mode, ...options }: PrerenderPagesOptionsInternal): Promise<PrerenderResult>;
|
|
250
|
+
export declare function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mode, ...options }: PrerenderPagesOptionsInternal): Promise<PrerenderResult>;
|
|
201
251
|
/**
|
|
202
252
|
* Run the prerender phase for App Router.
|
|
203
253
|
*
|
|
@@ -208,14 +258,14 @@ declare function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, m
|
|
|
208
258
|
* `vinext-prerender.json` to `outDir`.
|
|
209
259
|
*
|
|
210
260
|
* If the bundle does not exist, an error is thrown directing the user to run
|
|
211
|
-
* `
|
|
261
|
+
* `vite build` first.
|
|
212
262
|
*
|
|
213
263
|
* Speculative static rendering: routes classified as 'unknown' (no explicit
|
|
214
264
|
* config, non-dynamic URL) are attempted with an empty headers/cookies context.
|
|
215
265
|
* If they succeed, they are marked as rendered. If they throw a DynamicUsageError
|
|
216
266
|
* or fail, they are marked as skipped with reason 'dynamic'.
|
|
217
267
|
*/
|
|
218
|
-
declare function prerenderApp({ routes, metadataRoutes, outDir, config, mode, rscBundlePath, ...options }: PrerenderAppOptionsInternal): Promise<PrerenderResult>;
|
|
268
|
+
export declare function prerenderApp({ routes, metadataRoutes, outDir, config, mode, rscBundlePath, serverDir, buildOutDir, ...options }: PrerenderAppOptionsInternal): Promise<PrerenderResult>;
|
|
219
269
|
/**
|
|
220
270
|
* Write `vinext-prerender.json` to `outDir`.
|
|
221
271
|
*
|
|
@@ -223,9 +273,9 @@ declare function prerenderApp({ routes, metadataRoutes, outDir, config, mode, rs
|
|
|
223
273
|
* ISR cache population at production startup. The `buildId` is included so
|
|
224
274
|
* the seeding function can construct matching cache keys.
|
|
225
275
|
*/
|
|
226
|
-
declare function writePrerenderIndex(routes: PrerenderRouteResult[], outDir: string, options?: {
|
|
276
|
+
export declare function writePrerenderIndex(routes: PrerenderRouteResult[], outDir: string, options?: {
|
|
227
277
|
buildId?: string;
|
|
228
278
|
trailingSlash?: boolean;
|
|
229
279
|
}): void;
|
|
230
280
|
//#endregion
|
|
231
|
-
export {
|
|
281
|
+
export { readPrerenderSecret };
|
package/dist/build/prerender.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
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 { BLOCKED_PAGES } from "../shims/constants.js";
|
|
3
4
|
import { VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, VINEXT_PRERENDER_SECRET_HEADER, VINEXT_PRERENDER_SPECULATIVE_HEADER } from "../utils/protocol-headers.js";
|
|
5
|
+
import { appRouteLayoutStaticParamsGroups } from "../routing/app-router.js";
|
|
4
6
|
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";
|
|
5
7
|
import { classifyAppRoute, classifyPagesRoute, getAppRouteRenderEntryPath } from "./report.js";
|
|
6
8
|
import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
|
|
@@ -8,12 +10,11 @@ import { NoOpCacheHandler, getCacheHandler, setCacheHandler } from "../shims/cac
|
|
|
8
10
|
import { headersContextFromRequest, runWithHeadersContext } from "../shims/headers.js";
|
|
9
11
|
import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
|
|
10
12
|
import { normalizeStaticPathsEntry } from "../routing/route-pattern.js";
|
|
11
|
-
import {
|
|
13
|
+
import { readPrerenderSecret } from "./server-manifest.js";
|
|
12
14
|
import { buildPregeneratedConcretePathTable } from "../server/prerender-manifest.js";
|
|
13
15
|
import { concatUint8Arrays, decodeRscEmbeddedChunk } from "../server/app-rsc-embedded-chunks.js";
|
|
14
16
|
import { navigationRuntimeRscBootstrapExpression } from "../server/app-ssr-stream.js";
|
|
15
17
|
import { encodePrerenderRouteParams, serializePrerenderRouteParamsHeader } from "../server/prerender-route-params.js";
|
|
16
|
-
import { readPrerenderSecret } from "./server-manifest.js";
|
|
17
18
|
import { createAppPprFallbackShells, markAppPprDynamicFallbackShellHtml } from "../server/app-ppr-fallback-shell.js";
|
|
18
19
|
import { getAppRouteOutputPath, getOutputPath, getRscOutputPath } from "../utils/prerender-output-paths.js";
|
|
19
20
|
import { startProdServer } from "../server/prod-server.js";
|
|
@@ -25,7 +26,7 @@ import fs from "node:fs";
|
|
|
25
26
|
import os from "node:os";
|
|
26
27
|
//#region src/build/prerender.ts
|
|
27
28
|
/**
|
|
28
|
-
* Prerendering phase for
|
|
29
|
+
* Prerendering phase for vite build.
|
|
29
30
|
*
|
|
30
31
|
* Classifies every route, renders static and ISR routes to HTML/JSON/RSC files,
|
|
31
32
|
* and writes a `vinext-prerender.json` build index.
|
|
@@ -48,15 +49,19 @@ function isExperimentalPprFallbackShellGenerationEnabled(env = process.env) {
|
|
|
48
49
|
function getErrorMessageWithStack(err) {
|
|
49
50
|
return err.stack || err.message;
|
|
50
51
|
}
|
|
51
|
-
async function startOptionalPrerenderServerPool(outDir, poolSize) {
|
|
52
|
+
async function startOptionalPrerenderServerPool(outDir, poolSize, rscEntryPath, serverDir) {
|
|
52
53
|
try {
|
|
53
|
-
return await startPrerenderServerPool(outDir, poolSize
|
|
54
|
+
return await startPrerenderServerPool(outDir, poolSize, {
|
|
55
|
+
rscEntryPath,
|
|
56
|
+
serverDir
|
|
57
|
+
});
|
|
54
58
|
} catch (e) {
|
|
55
59
|
console.warn(`[vinext] prerender render pool failed to start; falling back to single-process render: ${e instanceof Error ? e.message : String(e)}`);
|
|
56
60
|
return null;
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
var PrerenderUserFunctionError = class extends Error {};
|
|
64
|
+
var InvalidStaticParamsError = class extends Error {};
|
|
60
65
|
function parsePrerenderEndpointError(text) {
|
|
61
66
|
try {
|
|
62
67
|
const parsed = JSON.parse(text);
|
|
@@ -207,41 +212,59 @@ function emitStatic404Files(outDir, html, trailingSlash) {
|
|
|
207
212
|
return outputFiles;
|
|
208
213
|
}
|
|
209
214
|
/**
|
|
210
|
-
*
|
|
215
|
+
* Next.js fails `output: "export"` on any generateStaticParams call that
|
|
216
|
+
* returns no params (build/static-paths/app.ts callGenerateStaticParams).
|
|
217
|
+
*/
|
|
218
|
+
function emptyStaticExportParamsError(pattern) {
|
|
219
|
+
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`);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Resolve the params a route's layouts above its own pattern generate.
|
|
211
223
|
* Handles top-down generateStaticParams resolution for nested dynamic routes.
|
|
212
224
|
*
|
|
213
225
|
* Uses the `staticParamsMap` (pattern → generateStaticParams) exported from
|
|
214
|
-
* the production bundle.
|
|
226
|
+
* the production bundle. As in Next.js, which walks every segment of the
|
|
227
|
+
* route's own loader tree top-down and passes each parent param set to the
|
|
228
|
+
* next generateStaticParams (build/static-paths/app.ts
|
|
229
|
+
* generateRouteStaticParams), every layout of the route contributes, including
|
|
230
|
+
* one at the last dynamic segment when static segments follow it. The layouts
|
|
231
|
+
* at the route's full pattern compose with its page under
|
|
232
|
+
* `staticParamsMap[route.pattern]`, so they're left to the caller. A page or a
|
|
233
|
+
* route group's layout at the same prefix belongs to a sibling route and never
|
|
234
|
+
* supplies params.
|
|
235
|
+
*
|
|
236
|
+
* An App Route handler inherits no layouts: Next.js builds its segments from
|
|
237
|
+
* the route module alone (build/segment-config/app/app-segments.ts
|
|
238
|
+
* collectAppRouteSegments), so it has no parent params. A layout that returns
|
|
239
|
+
* no params passes each parent set through unchanged, as Next.js does outside
|
|
240
|
+
* Cache Components, except under `output: "export"`, where Next.js rejects any
|
|
241
|
+
* generateStaticParams that returns no params (build/static-paths/app.ts
|
|
242
|
+
* callGenerateStaticParams).
|
|
215
243
|
*/
|
|
216
244
|
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
|
-
}
|
|
245
|
+
if (childRoute.routePath && !childRoute.pagePath) return [];
|
|
223
246
|
const parentSegments = [];
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const part = patternParts[i];
|
|
228
|
-
prefixPattern += "/" + part;
|
|
229
|
-
if (!part.startsWith(":")) continue;
|
|
230
|
-
const fn = staticParamsMap[prefixPattern];
|
|
247
|
+
for (const group of appRouteLayoutStaticParamsGroups(childRoute)) {
|
|
248
|
+
if (group.pattern === childRoute.pattern) continue;
|
|
249
|
+
const fn = staticParamsMap[group.key];
|
|
231
250
|
if (typeof fn === "function") parentSegments.push(fn);
|
|
232
251
|
}
|
|
233
252
|
if (parentSegments.length === 0) return [];
|
|
234
|
-
let currentParams = [
|
|
235
|
-
let resolvedAnyParent = false;
|
|
253
|
+
let currentParams = [];
|
|
236
254
|
for (const generateStaticParams of parentSegments) {
|
|
237
255
|
const nextParams = [];
|
|
238
256
|
let resolvedThisParent = false;
|
|
239
|
-
|
|
257
|
+
const hasParentSets = currentParams.length > 0;
|
|
258
|
+
for (const parentParams of hasParentSets ? currentParams : [{}]) {
|
|
240
259
|
const results = await generateStaticParams({ params: parentParams });
|
|
241
260
|
if (results === null) continue;
|
|
242
261
|
if (!Array.isArray(results)) return [];
|
|
262
|
+
if (options.staticExport && results.length === 0) throw emptyStaticExportParamsError(childRoute.pattern);
|
|
243
263
|
resolvedThisParent = true;
|
|
244
|
-
|
|
264
|
+
if (results.length === 0 && hasParentSets) {
|
|
265
|
+
nextParams.push(parentParams);
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
245
268
|
for (const result of results) nextParams.push({
|
|
246
269
|
...parentParams,
|
|
247
270
|
...result
|
|
@@ -249,7 +272,70 @@ async function resolveParentParams(childRoute, staticParamsMap, options = {}) {
|
|
|
249
272
|
}
|
|
250
273
|
if (resolvedThisParent) currentParams = nextParams;
|
|
251
274
|
}
|
|
252
|
-
return
|
|
275
|
+
return currentParams;
|
|
276
|
+
}
|
|
277
|
+
function getDynamicPatternParams(pattern) {
|
|
278
|
+
return pattern.split("/").filter((segment) => segment.startsWith(":")).map((segment) => ({
|
|
279
|
+
name: segment.slice(1, segment.endsWith("+") || segment.endsWith("*") ? -1 : void 0),
|
|
280
|
+
optional: segment.endsWith("*"),
|
|
281
|
+
repeat: segment.endsWith("+") || segment.endsWith("*")
|
|
282
|
+
}));
|
|
283
|
+
}
|
|
284
|
+
function validateDiscoveredParams(value, pattern, source) {
|
|
285
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) throw new InvalidStaticParamsError(`${source} must return parameter objects for ${pattern}.`);
|
|
286
|
+
const params = { ...value };
|
|
287
|
+
for (const { name, optional, repeat } of getDynamicPatternParams(pattern)) {
|
|
288
|
+
const hasValue = Object.prototype.hasOwnProperty.call(params, name);
|
|
289
|
+
let paramValue = params[name];
|
|
290
|
+
if (optional && hasValue && (paramValue === null || paramValue === void 0 || paramValue === false)) {
|
|
291
|
+
paramValue = [];
|
|
292
|
+
params[name] = paramValue;
|
|
293
|
+
}
|
|
294
|
+
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"}.`);
|
|
295
|
+
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.`);
|
|
296
|
+
}
|
|
297
|
+
return params;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* The param sets of an App route that become concrete paths, following
|
|
301
|
+
* Next.js's buildAppStaticPaths (build/static-paths/app.ts). Unless every set
|
|
302
|
+
* names every pathname param (hadAllParamsGenerated), none is prerendered.
|
|
303
|
+
* Otherwise every set is checked against the route's pathname params
|
|
304
|
+
* (validateParams), and, outside a partial prerender, a set with an empty
|
|
305
|
+
* required value is skipped rather than built into a path with an empty
|
|
306
|
+
* segment. An array, including an optional catch-all's empty one, is never
|
|
307
|
+
* empty in that sense. Under `output: "export"` incomplete sets fail the
|
|
308
|
+
* build instead, as Next.js requires every export path to be generated.
|
|
309
|
+
*/
|
|
310
|
+
function routeStaticParamSets(route, paramSets, options = {}) {
|
|
311
|
+
const patternParams = getDynamicPatternParams(route.pattern);
|
|
312
|
+
const objects = paramSets.map((value) => {
|
|
313
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) throw new InvalidStaticParamsError(`generateStaticParams must return parameter objects for ${route.pattern}.`);
|
|
314
|
+
return value;
|
|
315
|
+
});
|
|
316
|
+
const missingParamNames = patternParams.filter(({ name }) => objects.some((params) => !(name in params))).map(({ name }) => name);
|
|
317
|
+
if (missingParamNames.length > 0) {
|
|
318
|
+
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`);
|
|
319
|
+
return [];
|
|
320
|
+
}
|
|
321
|
+
const materializable = [];
|
|
322
|
+
for (const value of objects) {
|
|
323
|
+
const params = validateDiscoveredParams(value, route.pattern, "generateStaticParams");
|
|
324
|
+
if (patternParams.some(({ name, repeat }) => !repeat && params[name] === "")) continue;
|
|
325
|
+
materializable.push(params);
|
|
326
|
+
}
|
|
327
|
+
return materializable;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* The param sets a route's layouts generate, standing in for the route's own
|
|
331
|
+
* when none of the segments at its full pattern has generateStaticParams.
|
|
332
|
+
* Next.js prerenders none of a route's paths unless every set fills every
|
|
333
|
+
* pathname param (build/static-paths/app.ts hadAllParamsGenerated), so
|
|
334
|
+
* incomplete sets leave the route without static params (`null`). Complete
|
|
335
|
+
* sets still go through routeStaticParamSets.
|
|
336
|
+
*/
|
|
337
|
+
function layoutOnlyParamSets(route, parentParamSets) {
|
|
338
|
+
return parentParamSets.length > 0 && parentParamSets.every((params) => route.params.every((name) => name in params)) ? parentParamSets : null;
|
|
253
339
|
}
|
|
254
340
|
/**
|
|
255
341
|
* Run the prerender phase for Pages Router.
|
|
@@ -287,7 +373,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
287
373
|
try {
|
|
288
374
|
let prerenderSecret = options._prerenderSecret;
|
|
289
375
|
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 `
|
|
376
|
+
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
377
|
const prodServer = options._prodServer ? options._prodServer : await (async () => {
|
|
292
378
|
const srv = await startProdServer({
|
|
293
379
|
port: 0,
|
|
@@ -531,14 +617,14 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
531
617
|
* `vinext-prerender.json` to `outDir`.
|
|
532
618
|
*
|
|
533
619
|
* If the bundle does not exist, an error is thrown directing the user to run
|
|
534
|
-
* `
|
|
620
|
+
* `vite build` first.
|
|
535
621
|
*
|
|
536
622
|
* Speculative static rendering: routes classified as 'unknown' (no explicit
|
|
537
623
|
* config, non-dynamic URL) are attempted with an empty headers/cookies context.
|
|
538
624
|
* If they succeed, they are marked as rendered. If they throw a DynamicUsageError
|
|
539
625
|
* or fail, they are marked as skipped with reason 'dynamic'.
|
|
540
626
|
*/
|
|
541
|
-
async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, ...options }) {
|
|
627
|
+
async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode, rscBundlePath, serverDir = path.dirname(rscBundlePath), buildOutDir = path.dirname(serverDir), ...options }) {
|
|
542
628
|
const manifestDir = options.manifestDir ?? outDir;
|
|
543
629
|
const concurrency = options.concurrency ?? DEFAULT_CONCURRENCY;
|
|
544
630
|
const onProgress = options.onProgress;
|
|
@@ -548,7 +634,6 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
548
634
|
const previousHandler = getCacheHandler();
|
|
549
635
|
setCacheHandler(new NoOpCacheHandler());
|
|
550
636
|
const restorePrerenderPhase = enterPrerenderPhase();
|
|
551
|
-
const serverDir = path.dirname(rscBundlePath);
|
|
552
637
|
let rscHandler;
|
|
553
638
|
let staticParamsMap = {};
|
|
554
639
|
let ownedProdServerHandle = null;
|
|
@@ -557,12 +642,14 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
557
642
|
let renderRoundRobin = 0;
|
|
558
643
|
try {
|
|
559
644
|
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 `
|
|
645
|
+
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
646
|
const prodServer = options._prodServer ? options._prodServer : await (async () => {
|
|
562
647
|
const srv = await startProdServer({
|
|
563
648
|
port: 0,
|
|
564
649
|
host: "127.0.0.1",
|
|
565
|
-
outDir:
|
|
650
|
+
outDir: buildOutDir,
|
|
651
|
+
rscEntryPath: rscBundlePath,
|
|
652
|
+
serverDir,
|
|
566
653
|
noCompression: true,
|
|
567
654
|
purpose: "prerender"
|
|
568
655
|
});
|
|
@@ -595,6 +682,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
595
682
|
const request = (async () => {
|
|
596
683
|
const search = new URLSearchParams({ pattern });
|
|
597
684
|
if (Object.keys(params).length > 0) search.set("parentParams", JSON.stringify(params));
|
|
685
|
+
if (mode === "export") search.set("rejectEmptyResults", "1");
|
|
598
686
|
const res = await fetch(`${baseUrl}/__vinext/prerender/static-params?${search}`, { headers: secretHeaders });
|
|
599
687
|
const text = await res.text();
|
|
600
688
|
if (!res.ok) {
|
|
@@ -664,28 +752,36 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
664
752
|
});
|
|
665
753
|
continue;
|
|
666
754
|
}
|
|
667
|
-
const parentParamSets = await resolveParentParams(route, staticParamsMap);
|
|
755
|
+
const parentParamSets = await resolveParentParams(route, staticParamsMap, { staticExport: mode === "export" });
|
|
668
756
|
let paramSets;
|
|
669
757
|
if (parentParamSets.length > 0) {
|
|
670
758
|
paramSets = [];
|
|
671
759
|
for (const parentParams of parentParamSets) {
|
|
672
760
|
const childResults = await generateStaticParamsFn({ params: parentParams });
|
|
673
761
|
if (childResults === null) {
|
|
674
|
-
paramSets =
|
|
762
|
+
paramSets = layoutOnlyParamSets(route, parentParamSets);
|
|
675
763
|
break;
|
|
676
764
|
}
|
|
677
|
-
if (Array.isArray(childResults))
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
765
|
+
if (Array.isArray(childResults)) {
|
|
766
|
+
if (mode === "export" && childResults.length === 0) throw emptyStaticExportParamsError(route.pattern);
|
|
767
|
+
if (childResults.length === 0) {
|
|
768
|
+
paramSets.push(parentParams);
|
|
769
|
+
continue;
|
|
770
|
+
}
|
|
771
|
+
for (const childParams of childResults) paramSets.push({
|
|
772
|
+
...parentParams,
|
|
773
|
+
...childParams
|
|
774
|
+
});
|
|
775
|
+
} else {
|
|
682
776
|
paramSets = [];
|
|
683
777
|
break;
|
|
684
778
|
}
|
|
685
779
|
}
|
|
780
|
+
if (paramSets !== null) paramSets = routeStaticParamSets(route, paramSets, { staticExport: mode === "export" });
|
|
686
781
|
} else {
|
|
687
782
|
const results = await generateStaticParamsFn({ params: {} });
|
|
688
|
-
|
|
783
|
+
if (mode === "export" && Array.isArray(results) && results.length === 0) throw emptyStaticExportParamsError(route.pattern);
|
|
784
|
+
paramSets = results === null ? null : routeStaticParamSets(route, Array.isArray(results) ? results : [], { staticExport: mode === "export" });
|
|
689
785
|
}
|
|
690
786
|
if (paramSets === null) {
|
|
691
787
|
if (mode === "export") results.push({
|
|
@@ -704,7 +800,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
704
800
|
results.push({
|
|
705
801
|
route: route.pattern,
|
|
706
802
|
status: "skipped",
|
|
707
|
-
reason: "
|
|
803
|
+
reason: "empty-static-params"
|
|
708
804
|
});
|
|
709
805
|
continue;
|
|
710
806
|
}
|
|
@@ -741,7 +837,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
741
837
|
route: route.pattern,
|
|
742
838
|
status: "error",
|
|
743
839
|
error: `Failed to call generateStaticParams(): ${detail}`,
|
|
744
|
-
...e instanceof PrerenderUserFunctionError ? { fatal: true } : {}
|
|
840
|
+
...e instanceof PrerenderUserFunctionError || e instanceof InvalidStaticParamsError ? { fatal: true } : {}
|
|
745
841
|
});
|
|
746
842
|
}
|
|
747
843
|
else if (type === "unknown") urlsToRender.push({
|
|
@@ -969,7 +1065,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
969
1065
|
if (!options._prodServer && prerenderPoolAvailable()) {
|
|
970
1066
|
const poolSize = resolvePrerenderPoolSize(urlsToRender.length, concurrency);
|
|
971
1067
|
if (poolSize > 1) {
|
|
972
|
-
renderPool = await startOptionalPrerenderServerPool(
|
|
1068
|
+
renderPool = await startOptionalPrerenderServerPool(buildOutDir, poolSize, rscBundlePath, serverDir);
|
|
973
1069
|
if (renderPool) renderPorts = renderPool.ports;
|
|
974
1070
|
}
|
|
975
1071
|
}
|
|
@@ -1114,4 +1210,4 @@ function writePrerenderIndex(routes, outDir, options) {
|
|
|
1114
1210
|
fs.writeFileSync(path.join(outDir, "vinext-prerender.json"), JSON.stringify(index, null, 2), "utf-8");
|
|
1115
1211
|
}
|
|
1116
1212
|
//#endregion
|
|
1117
|
-
export { buildUrlFromParams, extractRscPayloadFromPrerenderedHtml, prerenderApp, prerenderPages, readPrerenderSecret, resolveParentParams, writePrerenderIndex };
|
|
1213
|
+
export { buildUrlFromParams, extractRscPayloadFromPrerenderedHtml, layoutOnlyParamSets, 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 };
|