vinext 1.0.0-beta.8 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -84
- package/THIRD_PARTY_LICENSES.md +25 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +1 -13
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +82 -8
- package/dist/build/prerender-paths.js +814 -99
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +67 -15
- package/dist/build/prerender.js +177 -64
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +38 -19
- package/dist/build/report.js +73 -4
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +25 -16
- package/dist/build/server-entry.d.ts +4 -0
- package/dist/build/server-entry.js +28 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +7 -8
- package/dist/cache/cache-adapters-virtual.d.ts +95 -9
- package/dist/cache/cache-adapters-virtual.js +58 -6
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -435
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +21 -17
- package/dist/client/navigation-runtime.js +2 -1
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -8
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +10 -7
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +2 -1
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +5 -6
- package/dist/entries/app-browser-entry.js +3 -2
- package/dist/entries/app-rsc-entry.d.ts +12 -3
- package/dist/entries/app-rsc-entry.js +530 -55
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +27 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +237 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +832 -199
- package/dist/init-cloudflare.d.ts +27 -16
- package/dist/init-cloudflare.js +754 -113
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +123 -41
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
- package/dist/plugins/ignore-dynamic-requests.js +60 -89
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +31 -43
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +3 -4
- package/dist/plugins/og-assets.d.ts +4 -5
- package/dist/plugins/og-assets.js +32 -13
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +260 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +32 -44
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +2 -3
- package/dist/plugins/require-context.js +13 -21
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +5 -6
- package/dist/plugins/strip-server-exports.js +1 -1
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +3 -4
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +6 -7
- package/dist/plugins/typeof-window.js +30 -31
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +19 -19
- package/dist/routing/app-route-graph.js +3 -2
- package/dist/routing/app-router.d.ts +20 -5
- package/dist/routing/app-router.js +28 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +3 -4
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +121 -40
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +14 -1
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +9 -5
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +7 -3
- package/dist/server/app-browser-stream.d.ts +4 -5
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-browser-visible-commit.js +1 -1
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +26 -27
- package/dist/server/app-history-state.js +19 -11
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +15 -7
- package/dist/server/app-middleware.js +30 -5
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +14 -10
- package/dist/server/app-optimistic-routing.js +16 -3
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +2 -1
- package/dist/server/app-page-cache-finalizer.d.ts +32 -8
- package/dist/server/app-page-cache-finalizer.js +118 -14
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -5
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +96 -25
- package/dist/server/app-page-dispatch.d.ts +36 -12
- package/dist/server/app-page-dispatch.js +188 -63
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +12 -8
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +42 -6
- package/dist/server/app-page-render.js +192 -28
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +31 -13
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +42 -6
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +35 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +49 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +19 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +26 -12
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +33 -11
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +115 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +2 -3
- package/dist/server/app-route-handler-cache.js +46 -34
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +75 -57
- package/dist/server/app-route-handler-execution.d.ts +18 -13
- package/dist/server/app-route-handler-execution.js +189 -25
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +22 -10
- package/dist/server/app-route-handler-policy.js +19 -4
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +2 -0
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +2 -0
- package/dist/server/app-router-entry.js +76 -12
- package/dist/server/app-rsc-cache-busting.d.ts +47 -22
- package/dist/server/app-rsc-cache-busting.js +80 -18
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +33 -6
- package/dist/server/app-rsc-handler.js +498 -83
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +2 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +24 -7
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +4 -4
- package/dist/server/app-rsc-route-matching.js +4 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +120 -6
- package/dist/server/app-segment-config.js +264 -12
- package/dist/server/app-server-action-execution.d.ts +16 -12
- package/dist/server/app-server-action-execution.js +88 -35
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +64 -17
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +33 -7
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +39 -11
- package/dist/server/cache-control.js +104 -7
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +8 -0
- package/dist/server/cacheability-limits.js +9 -0
- package/dist/server/cacheability-manifest.d.ts +68 -0
- package/dist/server/cacheability-manifest.js +241 -0
- package/dist/server/cacheability-request.d.ts +49 -0
- package/dist/server/cacheability-request.js +559 -0
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +39 -5
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +130 -61
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +62 -56
- package/dist/server/headers.js +33 -20
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +28 -27
- package/dist/server/isr-cache.js +18 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-cache-policy.d.ts +2 -3
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +68 -2
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +13 -6
- package/dist/server/middleware-matcher.js +22 -1
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +13 -8
- package/dist/server/middleware-runtime.js +54 -10
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/normalize-path.js +1 -1
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +21 -8
- package/dist/server/pages-asset-tags.d.ts +6 -6
- package/dist/server/pages-asset-tags.js +37 -2
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +11 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-i18n.js +3 -2
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +18 -19
- package/dist/server/pages-page-data.js +11 -10
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +98 -47
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +49 -31
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +16 -12
- package/dist/server/pages-request-pipeline.js +69 -28
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +314 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +48 -114
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +11 -11
- package/dist/server/prerender-manifest.js +6 -3
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -2
- package/dist/server/prerender-work-unit-setup.d.ts +4 -4
- package/dist/server/prerender-work-unit-setup.js +37 -14
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +129 -36
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +17 -21
- package/dist/server/request-pipeline.js +8 -10
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +2 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/server-globals.js +13 -0
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +16 -0
- package/dist/server/static-file-signal.js +82 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +18 -0
- package/dist/server/worker-prerender-discovery.js +55 -0
- package/dist/server/worker-revalidation-context.d.ts +2 -3
- package/dist/server/worker-revalidation-context.js +5 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +4 -4
- package/dist/server/workers-tracing.d.ts +17 -0
- package/dist/server/workers-tracing.js +27 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +28 -29
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +239 -121
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +25 -13
- package/dist/shims/cacheability-classification.d.ts +106 -0
- package/dist/shims/cacheability-classification.js +161 -0
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +76 -18
- package/dist/shims/cdn-cache.js +40 -39
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +4 -4
- package/dist/shims/error.js +1 -1
- package/dist/shims/error.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +50 -20
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +68 -32
- package/dist/shims/headers.js +101 -10
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +13 -0
- package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
- package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +8 -3
- package/dist/shims/internal/make-hanging-promise.js +13 -2
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +12 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +67 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +45 -17
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/navigation.react-server.js +1 -1
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +7 -6
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +14 -28
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +34 -31
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +18 -12
- package/dist/shims/url-utils.js +10 -1
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +3 -4
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +9 -10
- package/dist/utils/prerender-output-paths.js +16 -9
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +55 -6
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);
|
|
@@ -181,54 +186,85 @@ function metadataOutputPath(servedUrl) {
|
|
|
181
186
|
if (segments.length === 0 || segments.some((segment) => segment === "." || segment === "..")) return null;
|
|
182
187
|
return segments.join("/");
|
|
183
188
|
}
|
|
184
|
-
function emitStaticMetadataFiles(metadataRoutes, outDir) {
|
|
189
|
+
function emitStaticMetadataFiles(metadataRoutes, outDir, basePath = "") {
|
|
185
190
|
const outputFiles = [];
|
|
191
|
+
const outputPrefix = basePath.replace(/^\//, "").replace(/\/$/, "");
|
|
186
192
|
for (const route of metadataRoutes) {
|
|
187
193
|
if (route.isDynamic) continue;
|
|
188
194
|
const outputPath = metadataOutputPath(route.servedUrl);
|
|
189
195
|
if (!outputPath) continue;
|
|
190
|
-
const
|
|
196
|
+
const namespacedOutputPath = outputPrefix ? `${outputPrefix}/${outputPath}` : outputPath;
|
|
197
|
+
const fullPath = path.join(outDir, ...namespacedOutputPath.split("/"));
|
|
191
198
|
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
192
199
|
fs.copyFileSync(route.filePath, fullPath);
|
|
193
|
-
outputFiles.push(
|
|
200
|
+
outputFiles.push(namespacedOutputPath);
|
|
201
|
+
}
|
|
202
|
+
return outputFiles;
|
|
203
|
+
}
|
|
204
|
+
function emitStatic404Files(outDir, html, trailingSlash) {
|
|
205
|
+
const outputFiles = ["404.html"];
|
|
206
|
+
if (trailingSlash) outputFiles.push("404/index.html");
|
|
207
|
+
for (const outputFile of outputFiles) {
|
|
208
|
+
const fullPath = path.join(outDir, ...outputFile.split("/"));
|
|
209
|
+
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
210
|
+
fs.writeFileSync(fullPath, html, "utf-8");
|
|
194
211
|
}
|
|
195
212
|
return outputFiles;
|
|
196
213
|
}
|
|
197
214
|
/**
|
|
198
|
-
*
|
|
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.
|
|
199
223
|
* Handles top-down generateStaticParams resolution for nested dynamic routes.
|
|
200
224
|
*
|
|
201
225
|
* Uses the `staticParamsMap` (pattern → generateStaticParams) exported from
|
|
202
|
-
* 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).
|
|
203
243
|
*/
|
|
204
|
-
async function resolveParentParams(childRoute, staticParamsMap) {
|
|
205
|
-
|
|
206
|
-
let lastDynamicIdx = -1;
|
|
207
|
-
for (let i = patternParts.length - 1; i >= 0; i--) if (patternParts[i].startsWith(":")) {
|
|
208
|
-
lastDynamicIdx = i;
|
|
209
|
-
break;
|
|
210
|
-
}
|
|
244
|
+
async function resolveParentParams(childRoute, staticParamsMap, options = {}) {
|
|
245
|
+
if (childRoute.routePath && !childRoute.pagePath) return [];
|
|
211
246
|
const parentSegments = [];
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
const
|
|
215
|
-
prefixPattern += "/" + part;
|
|
216
|
-
if (!part.startsWith(":")) continue;
|
|
217
|
-
const fn = staticParamsMap[prefixPattern];
|
|
247
|
+
for (const group of appRouteLayoutStaticParamsGroups(childRoute)) {
|
|
248
|
+
if (group.pattern === childRoute.pattern) continue;
|
|
249
|
+
const fn = staticParamsMap[group.key];
|
|
218
250
|
if (typeof fn === "function") parentSegments.push(fn);
|
|
219
251
|
}
|
|
220
252
|
if (parentSegments.length === 0) return [];
|
|
221
|
-
let currentParams = [
|
|
222
|
-
let resolvedAnyParent = false;
|
|
253
|
+
let currentParams = [];
|
|
223
254
|
for (const generateStaticParams of parentSegments) {
|
|
224
255
|
const nextParams = [];
|
|
225
256
|
let resolvedThisParent = false;
|
|
226
|
-
|
|
257
|
+
const hasParentSets = currentParams.length > 0;
|
|
258
|
+
for (const parentParams of hasParentSets ? currentParams : [{}]) {
|
|
227
259
|
const results = await generateStaticParams({ params: parentParams });
|
|
228
260
|
if (results === null) continue;
|
|
229
261
|
if (!Array.isArray(results)) return [];
|
|
262
|
+
if (options.staticExport && results.length === 0) throw emptyStaticExportParamsError(childRoute.pattern);
|
|
230
263
|
resolvedThisParent = true;
|
|
231
|
-
|
|
264
|
+
if (results.length === 0 && hasParentSets) {
|
|
265
|
+
nextParams.push(parentParams);
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
232
268
|
for (const result of results) nextParams.push({
|
|
233
269
|
...parentParams,
|
|
234
270
|
...result
|
|
@@ -236,7 +272,70 @@ async function resolveParentParams(childRoute, staticParamsMap) {
|
|
|
236
272
|
}
|
|
237
273
|
if (resolvedThisParent) currentParams = nextParams;
|
|
238
274
|
}
|
|
239
|
-
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;
|
|
240
339
|
}
|
|
241
340
|
/**
|
|
242
341
|
* Run the prerender phase for Pages Router.
|
|
@@ -274,7 +373,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
274
373
|
try {
|
|
275
374
|
let prerenderSecret = options._prerenderSecret;
|
|
276
375
|
if (!prerenderSecret && pagesBundlePath) prerenderSecret = readPrerenderSecret(path.dirname(pagesBundlePath));
|
|
277
|
-
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.");
|
|
278
377
|
const prodServer = options._prodServer ? options._prodServer : await (async () => {
|
|
279
378
|
const srv = await startProdServer({
|
|
280
379
|
port: 0,
|
|
@@ -292,7 +391,9 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
292
391
|
let renderRoundRobin = 0;
|
|
293
392
|
const renderPage = (urlPath) => {
|
|
294
393
|
const port = renderPorts[renderRoundRobin++ % renderPorts.length];
|
|
295
|
-
|
|
394
|
+
const routeRequestPath = config.trailingSlash && !urlPath.endsWith("/") ? `${urlPath}/` : urlPath;
|
|
395
|
+
const requestPath = config.basePath && routeRequestPath === "/" && !config.trailingSlash ? config.basePath : `${config.basePath ?? ""}${routeRequestPath}`;
|
|
396
|
+
return fetch(`http://127.0.0.1:${port}${requestPath}`, {
|
|
296
397
|
headers: secretHeaders,
|
|
297
398
|
redirect: "manual"
|
|
298
399
|
});
|
|
@@ -316,7 +417,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
316
417
|
fallback: false
|
|
317
418
|
};
|
|
318
419
|
}
|
|
319
|
-
if (text === "null") return {
|
|
420
|
+
if (res.status === 204 || text === "null") return {
|
|
320
421
|
paths: [],
|
|
321
422
|
fallback: false
|
|
322
423
|
};
|
|
@@ -430,7 +531,7 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
430
531
|
try {
|
|
431
532
|
const response = await renderPage(urlPath);
|
|
432
533
|
const outputFiles = [];
|
|
433
|
-
const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash);
|
|
534
|
+
const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash, mode === "export" ? config.basePath : "");
|
|
434
535
|
const htmlFullPath = path.join(outDir, htmlOutputPath);
|
|
435
536
|
if (response.status >= 300 && response.status < 400) {
|
|
436
537
|
const html = `<!DOCTYPE html><html><head><meta http-equiv="refresh" content="0;url=${(response.headers.get("location") ?? "/").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">")}" /></head><body></body></html>`;
|
|
@@ -479,12 +580,10 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
479
580
|
const contentType = notFoundRes.headers.get("content-type") ?? "";
|
|
480
581
|
if (notFoundRes.status === 404 && contentType.includes("text/html")) {
|
|
481
582
|
const html404 = await notFoundRes.text();
|
|
482
|
-
const fullPath = path.join(outDir, "404.html");
|
|
483
|
-
fs.writeFileSync(fullPath, html404, "utf-8");
|
|
484
583
|
results.push({
|
|
485
584
|
route: "/404",
|
|
486
585
|
status: "rendered",
|
|
487
|
-
outputFiles:
|
|
586
|
+
outputFiles: emitStatic404Files(outDir, html404, config.trailingSlash),
|
|
488
587
|
revalidate: false,
|
|
489
588
|
router: "pages"
|
|
490
589
|
});
|
|
@@ -514,18 +613,18 @@ async function prerenderPages({ routes, apiRoutes, pagesDir, outDir, config, mod
|
|
|
514
613
|
* Starts a local production server and fetches every static/ISR route via HTTP.
|
|
515
614
|
* Works for both plain Node and Cloudflare Workers builds — the CF Workers bundle
|
|
516
615
|
* (`dist/server/index.js`) is a standard Node-compatible server entry, so no
|
|
517
|
-
* wrangler/miniflare is needed. Writes HTML files,
|
|
616
|
+
* wrangler/miniflare is needed. Writes HTML files, Flight payloads, and
|
|
518
617
|
* `vinext-prerender.json` to `outDir`.
|
|
519
618
|
*
|
|
520
619
|
* If the bundle does not exist, an error is thrown directing the user to run
|
|
521
|
-
* `
|
|
620
|
+
* `vite build` first.
|
|
522
621
|
*
|
|
523
622
|
* Speculative static rendering: routes classified as 'unknown' (no explicit
|
|
524
623
|
* config, non-dynamic URL) are attempted with an empty headers/cookies context.
|
|
525
624
|
* If they succeed, they are marked as rendered. If they throw a DynamicUsageError
|
|
526
625
|
* or fail, they are marked as skipped with reason 'dynamic'.
|
|
527
626
|
*/
|
|
528
|
-
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 }) {
|
|
529
628
|
const manifestDir = options.manifestDir ?? outDir;
|
|
530
629
|
const concurrency = options.concurrency ?? DEFAULT_CONCURRENCY;
|
|
531
630
|
const onProgress = options.onProgress;
|
|
@@ -535,7 +634,6 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
535
634
|
const previousHandler = getCacheHandler();
|
|
536
635
|
setCacheHandler(new NoOpCacheHandler());
|
|
537
636
|
const restorePrerenderPhase = enterPrerenderPhase();
|
|
538
|
-
const serverDir = path.dirname(rscBundlePath);
|
|
539
637
|
let rscHandler;
|
|
540
638
|
let staticParamsMap = {};
|
|
541
639
|
let ownedProdServerHandle = null;
|
|
@@ -544,12 +642,14 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
544
642
|
let renderRoundRobin = 0;
|
|
545
643
|
try {
|
|
546
644
|
const prerenderSecret = readPrerenderSecret(serverDir);
|
|
547
|
-
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.");
|
|
548
646
|
const prodServer = options._prodServer ? options._prodServer : await (async () => {
|
|
549
647
|
const srv = await startProdServer({
|
|
550
648
|
port: 0,
|
|
551
649
|
host: "127.0.0.1",
|
|
552
|
-
outDir:
|
|
650
|
+
outDir: buildOutDir,
|
|
651
|
+
rscEntryPath: rscBundlePath,
|
|
652
|
+
serverDir,
|
|
553
653
|
noCompression: true,
|
|
554
654
|
purpose: "prerender"
|
|
555
655
|
});
|
|
@@ -582,6 +682,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
582
682
|
const request = (async () => {
|
|
583
683
|
const search = new URLSearchParams({ pattern });
|
|
584
684
|
if (Object.keys(params).length > 0) search.set("parentParams", JSON.stringify(params));
|
|
685
|
+
if (mode === "export") search.set("rejectEmptyResults", "1");
|
|
585
686
|
const res = await fetch(`${baseUrl}/__vinext/prerender/static-params?${search}`, { headers: secretHeaders });
|
|
586
687
|
const text = await res.text();
|
|
587
688
|
if (!res.ok) {
|
|
@@ -589,7 +690,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
589
690
|
console.warn(`[vinext] Warning: /__vinext/prerender/static-params returned ${res.status} for ${pattern}. Static params will be skipped. This may indicate a stale or missing prerender secret.`);
|
|
590
691
|
return null;
|
|
591
692
|
}
|
|
592
|
-
if (text === "null") return null;
|
|
693
|
+
if (res.status === 204 || text === "null") return null;
|
|
593
694
|
return JSON.parse(text);
|
|
594
695
|
})();
|
|
595
696
|
request.catch(() => staticParamsCache.delete(cacheKey));
|
|
@@ -651,28 +752,36 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
651
752
|
});
|
|
652
753
|
continue;
|
|
653
754
|
}
|
|
654
|
-
const parentParamSets = await resolveParentParams(route, staticParamsMap);
|
|
755
|
+
const parentParamSets = await resolveParentParams(route, staticParamsMap, { staticExport: mode === "export" });
|
|
655
756
|
let paramSets;
|
|
656
757
|
if (parentParamSets.length > 0) {
|
|
657
758
|
paramSets = [];
|
|
658
759
|
for (const parentParams of parentParamSets) {
|
|
659
760
|
const childResults = await generateStaticParamsFn({ params: parentParams });
|
|
660
761
|
if (childResults === null) {
|
|
661
|
-
paramSets =
|
|
762
|
+
paramSets = layoutOnlyParamSets(route, parentParamSets);
|
|
662
763
|
break;
|
|
663
764
|
}
|
|
664
|
-
if (Array.isArray(childResults))
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
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 {
|
|
669
776
|
paramSets = [];
|
|
670
777
|
break;
|
|
671
778
|
}
|
|
672
779
|
}
|
|
780
|
+
if (paramSets !== null) paramSets = routeStaticParamSets(route, paramSets, { staticExport: mode === "export" });
|
|
673
781
|
} else {
|
|
674
782
|
const results = await generateStaticParamsFn({ params: {} });
|
|
675
|
-
|
|
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" });
|
|
676
785
|
}
|
|
677
786
|
if (paramSets === null) {
|
|
678
787
|
if (mode === "export") results.push({
|
|
@@ -691,7 +800,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
691
800
|
results.push({
|
|
692
801
|
route: route.pattern,
|
|
693
802
|
status: "skipped",
|
|
694
|
-
reason: "
|
|
803
|
+
reason: "empty-static-params"
|
|
695
804
|
});
|
|
696
805
|
continue;
|
|
697
806
|
}
|
|
@@ -728,7 +837,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
728
837
|
route: route.pattern,
|
|
729
838
|
status: "error",
|
|
730
839
|
error: `Failed to call generateStaticParams(): ${detail}`,
|
|
731
|
-
...e instanceof PrerenderUserFunctionError ? { fatal: true } : {}
|
|
840
|
+
...e instanceof PrerenderUserFunctionError || e instanceof InvalidStaticParamsError ? { fatal: true } : {}
|
|
732
841
|
});
|
|
733
842
|
}
|
|
734
843
|
else if (type === "unknown") urlsToRender.push({
|
|
@@ -829,7 +938,9 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
829
938
|
const htmlHeaders = new Headers();
|
|
830
939
|
if (prerenderRouteParamsHeader !== null) htmlHeaders.set(VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, prerenderRouteParamsHeader);
|
|
831
940
|
if (isSpeculative) htmlHeaders.set(VINEXT_PRERENDER_SPECULATIVE_HEADER, "1");
|
|
832
|
-
const
|
|
941
|
+
const routeRequestPath = config.trailingSlash && !urlPath.endsWith("/") ? `${urlPath}/` : urlPath;
|
|
942
|
+
const requestPath = config.basePath && routeRequestPath === "/" && !config.trailingSlash ? config.basePath : `${config.basePath ?? ""}${routeRequestPath}`;
|
|
943
|
+
const htmlRequest = new Request(`http://localhost${requestPath}`, { headers: htmlHeaders });
|
|
833
944
|
const htmlRender = await runWithHeadersContext(headersContextFromRequest(htmlRequest), async () => {
|
|
834
945
|
const response = await rscHandler(htmlRequest);
|
|
835
946
|
const cacheControl = response.headers.get("cache-control") ?? "";
|
|
@@ -896,7 +1007,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
896
1007
|
});
|
|
897
1008
|
if (prerenderRouteParamsHeader !== null) rscHeaders.set(VINEXT_PRERENDER_ROUTE_PARAMS_HEADER, prerenderRouteParamsHeader);
|
|
898
1009
|
if (isSpeculative) rscHeaders.set(VINEXT_PRERENDER_SPECULATIVE_HEADER, "1");
|
|
899
|
-
const rscRequest = new Request(`http://localhost${
|
|
1010
|
+
const rscRequest = new Request(`http://localhost${requestPath}`, { headers: rscHeaders });
|
|
900
1011
|
const rscRes = await runWithHeadersContext(headersContextFromRequest(rscRequest), () => rscHandler(rscRequest));
|
|
901
1012
|
if (!rscRes.ok) {
|
|
902
1013
|
await rscRes.body?.cancel();
|
|
@@ -905,12 +1016,16 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
905
1016
|
rscData = new Uint8Array(await rscRes.arrayBuffer());
|
|
906
1017
|
}
|
|
907
1018
|
const outputFiles = [];
|
|
908
|
-
const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash);
|
|
1019
|
+
const htmlOutputPath = getOutputPath(urlPath, config.trailingSlash, mode === "export" ? config.basePath : "");
|
|
909
1020
|
const htmlFullPath = path.join(outDir, htmlOutputPath);
|
|
910
1021
|
fs.mkdirSync(path.dirname(htmlFullPath), { recursive: true });
|
|
911
1022
|
fs.writeFileSync(htmlFullPath, html, "utf-8");
|
|
912
1023
|
outputFiles.push(htmlOutputPath);
|
|
913
|
-
const rscOutputPath = getRscOutputPath(urlPath
|
|
1024
|
+
const rscOutputPath = getRscOutputPath(urlPath, {
|
|
1025
|
+
mode,
|
|
1026
|
+
trailingSlash: config.trailingSlash,
|
|
1027
|
+
basePath: mode === "export" ? config.basePath : ""
|
|
1028
|
+
});
|
|
914
1029
|
const rscFullPath = path.join(outDir, rscOutputPath);
|
|
915
1030
|
fs.mkdirSync(path.dirname(rscFullPath), { recursive: true });
|
|
916
1031
|
fs.writeFileSync(rscFullPath, rscData);
|
|
@@ -950,7 +1065,7 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
950
1065
|
if (!options._prodServer && prerenderPoolAvailable()) {
|
|
951
1066
|
const poolSize = resolvePrerenderPoolSize(urlsToRender.length, concurrency);
|
|
952
1067
|
if (poolSize > 1) {
|
|
953
|
-
renderPool = await startOptionalPrerenderServerPool(
|
|
1068
|
+
renderPool = await startOptionalPrerenderServerPool(buildOutDir, poolSize, rscBundlePath, serverDir);
|
|
954
1069
|
if (renderPool) renderPorts = renderPool.ports;
|
|
955
1070
|
}
|
|
956
1071
|
}
|
|
@@ -967,19 +1082,17 @@ async function prerenderApp({ routes, metadataRoutes = [], outDir, config, mode,
|
|
|
967
1082
|
});
|
|
968
1083
|
results.push(...appResults);
|
|
969
1084
|
renderPool?.assertHealthy();
|
|
970
|
-
const outputFiles = mode === "export" && metadataRoutes.length > 0 ? emitStaticMetadataFiles(metadataRoutes, outDir) : [];
|
|
1085
|
+
const outputFiles = mode === "export" && metadataRoutes.length > 0 ? emitStaticMetadataFiles(metadataRoutes, outDir, config.basePath) : [];
|
|
971
1086
|
try {
|
|
972
|
-
const
|
|
1087
|
+
const notFoundPath = config.trailingSlash && !NOT_FOUND_SENTINEL_PATH.endsWith("/") ? `${NOT_FOUND_SENTINEL_PATH}/` : NOT_FOUND_SENTINEL_PATH;
|
|
1088
|
+
const notFoundRequest = new Request(`http://localhost${config.basePath ?? ""}${notFoundPath}`);
|
|
973
1089
|
const notFoundRes = await runWithHeadersContext(headersContextFromRequest(notFoundRequest), () => rscHandler(notFoundRequest));
|
|
974
1090
|
if (notFoundRes.status === 404) {
|
|
975
1091
|
const html404 = await notFoundRes.text();
|
|
976
|
-
const fullPath = path.join(outDir, "404.html");
|
|
977
|
-
fs.mkdirSync(path.dirname(fullPath), { recursive: true });
|
|
978
|
-
fs.writeFileSync(fullPath, html404, "utf-8");
|
|
979
1092
|
results.push({
|
|
980
1093
|
route: "/404",
|
|
981
1094
|
status: "rendered",
|
|
982
|
-
outputFiles:
|
|
1095
|
+
outputFiles: emitStatic404Files(outDir, html404, config.trailingSlash),
|
|
983
1096
|
revalidate: false,
|
|
984
1097
|
router: "app"
|
|
985
1098
|
});
|
|
@@ -1097,4 +1210,4 @@ function writePrerenderIndex(routes, outDir, options) {
|
|
|
1097
1210
|
fs.writeFileSync(path.join(outDir, "vinext-prerender.json"), JSON.stringify(index, null, 2), "utf-8");
|
|
1098
1211
|
}
|
|
1099
1212
|
//#endregion
|
|
1100
|
-
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 };
|
|
@@ -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
|
|
@@ -4,7 +4,8 @@ import { existsSync } from "node:fs";
|
|
|
4
4
|
const PUBLIC_NEXT_CONFLICT_ERROR = "You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict";
|
|
5
5
|
function assertNoPublicNextDir(root, publicDir) {
|
|
6
6
|
if (!publicDir) return;
|
|
7
|
-
|
|
7
|
+
const publicNextDir = path.join(path.resolve(root, publicDir), "_next");
|
|
8
|
+
if (existsSync(publicNextDir)) throw new Error(PUBLIC_NEXT_CONFLICT_ERROR);
|
|
8
9
|
}
|
|
9
10
|
function assertNoPublicNextRequestConflict({ root, publicDir, basePath, requestUrl }) {
|
|
10
11
|
const internalOrigin = "http://vinext.invalid";
|