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
|
@@ -21,10 +21,24 @@ type EffectiveAppPageSegmentConfig = {
|
|
|
21
21
|
type ParallelAppPageSegmentConfigBranch = {
|
|
22
22
|
configLayouts?: readonly (AppRouteSegmentConfigModule | null | undefined)[] | null;
|
|
23
23
|
configLayoutTreePositions?: readonly number[] | null;
|
|
24
|
+
/** Whether the slot renders its `default` module instead of a matched page. */
|
|
25
|
+
isDefault?: boolean;
|
|
24
26
|
layout?: AppRouteSegmentConfigModule | null;
|
|
27
|
+
/** The slot's name, which orders sibling slots in the loader tree. */
|
|
28
|
+
name?: string;
|
|
29
|
+
/** The main-tree position of the folder that owns the slot. */
|
|
30
|
+
ownerTreePosition?: number | null;
|
|
25
31
|
page?: AppRouteSegmentConfigModule | null;
|
|
26
32
|
routeSegments?: readonly string[] | null;
|
|
27
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* The route's implicit `children` slot. A route that only a nested slot page
|
|
36
|
+
* materializes renders the owner's `default` (or nothing) as its children.
|
|
37
|
+
*/
|
|
38
|
+
type AppPageChildrenSlot = {
|
|
39
|
+
ownerTreePath: string;
|
|
40
|
+
state: "active" | "default" | "unmatched";
|
|
41
|
+
};
|
|
28
42
|
type ResolveAppPageSegmentConfigOptions = {
|
|
29
43
|
layouts?: readonly (AppRouteSegmentConfigModule | null | undefined)[];
|
|
30
44
|
layoutTreePositions?: readonly number[];
|
|
@@ -34,6 +48,8 @@ type ResolveAppPageSegmentConfigOptions = {
|
|
|
34
48
|
parallelSegments?: readonly (AppRouteSegmentConfigModule | null | undefined)[];
|
|
35
49
|
routeSegments?: readonly string[];
|
|
36
50
|
};
|
|
51
|
+
/** Resolve the effective `dynamic` mode using the same traversal semantics as rendering. */
|
|
52
|
+
export declare function resolveAppPageDynamicConfig(options: Pick<ResolveAppPageSegmentConfigOptions, "layouts" | "page" | "parallelBranches" | "parallelSegments">): AppRouteSegmentDynamic | undefined;
|
|
37
53
|
/**
|
|
38
54
|
* Resolve the route segment config that applies to an App page route.
|
|
39
55
|
*
|
|
@@ -42,8 +58,8 @@ type ResolveAppPageSegmentConfigOptions = {
|
|
|
42
58
|
* the concrete layout/page modules for a route, so it should only describe
|
|
43
59
|
* those modules and delegate the behavior to this helper.
|
|
44
60
|
*/
|
|
45
|
-
declare function resolveAppPageSegmentConfig(options: ResolveAppPageSegmentConfigOptions): EffectiveAppPageSegmentConfig;
|
|
46
|
-
declare function resolveAppPageFetchCacheMode(options: ResolveAppPageSegmentConfigOptions): FetchCacheMode | null;
|
|
61
|
+
export declare function resolveAppPageSegmentConfig(options: ResolveAppPageSegmentConfigOptions): EffectiveAppPageSegmentConfig;
|
|
62
|
+
export declare function resolveAppPageFetchCacheMode(options: ResolveAppPageSegmentConfigOptions): FetchCacheMode | null;
|
|
47
63
|
/**
|
|
48
64
|
* Resolve the `fetchCache` segment config exported by a route handler module.
|
|
49
65
|
*
|
|
@@ -51,7 +67,105 @@ declare function resolveAppPageFetchCacheMode(options: ResolveAppPageSegmentConf
|
|
|
51
67
|
* directly. Mirrors upstream's app-route module, which copies
|
|
52
68
|
* `userland.fetchCache` into the work store before invoking the handler.
|
|
53
69
|
*/
|
|
54
|
-
declare function resolveAppRouteHandlerFetchCacheMode(handler: Pick<AppRouteSegmentConfigModule, "fetchCache">): FetchCacheMode | null;
|
|
55
|
-
declare function isEdgeRuntime(runtime: string | undefined): boolean;
|
|
56
|
-
|
|
57
|
-
|
|
70
|
+
export declare function resolveAppRouteHandlerFetchCacheMode(handler: Pick<AppRouteSegmentConfigModule, "fetchCache">): FetchCacheMode | null;
|
|
71
|
+
export declare function isEdgeRuntime(runtime: string | undefined): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Resolve a `runtime` from a chain of segment values, outermost first: the
|
|
74
|
+
* last valid value wins, as a child's value wins over its parent's.
|
|
75
|
+
* `collectAppPageStaticGenerationRuntimes` supplies the value Next.js uses to
|
|
76
|
+
* decide whether a page can be statically generated.
|
|
77
|
+
*/
|
|
78
|
+
export declare function resolveAppPageStaticGenerationRuntime(values: readonly unknown[]): EffectiveAppPageSegmentConfig["runtime"];
|
|
79
|
+
/**
|
|
80
|
+
* The `runtime` Next.js's default build (Turbopack) derives for an App page,
|
|
81
|
+
* for `resolveAppPageStaticGenerationRuntime`. It reads the whole loader tree:
|
|
82
|
+
* at each node the values of every parallel branch (children, matched slots
|
|
83
|
+
* and slots that render `default`) merge, and a conflict fails the build; the
|
|
84
|
+
* node's own layout, page or default module then fills in only an unset value.
|
|
85
|
+
* So an edge slot page next to a Node children page makes the route edge.
|
|
86
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/segment_config.rs#L1323-L1357
|
|
87
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/next_app/app_page_entry.rs#L40-L41
|
|
88
|
+
*/
|
|
89
|
+
export declare function collectAppPageStaticGenerationRuntimes(options: Parameters<typeof collectAppPageStaticParamsWalkSegments>[0]): unknown[];
|
|
90
|
+
/**
|
|
91
|
+
* One segment of an App page's loader tree, as Next.js's build visits it when
|
|
92
|
+
* it classifies the route.
|
|
93
|
+
*/
|
|
94
|
+
export type AppPageStaticParamsWalkSegment = {
|
|
95
|
+
/** Whether the segment is a dynamic URL segment (`[slug]`, `[...slug]`). */
|
|
96
|
+
dynamic: boolean;
|
|
97
|
+
/** Whether the segment's layout (or page) exports `generateStaticParams`. */
|
|
98
|
+
generateStaticParams: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* The segment name and the file that supplies its module. Next.js visits
|
|
101
|
+
* each distinct pair once, so a slot's layout-less `[slug]` folder that
|
|
102
|
+
* repeats the main tree's does not count twice.
|
|
103
|
+
*/
|
|
104
|
+
identity: readonly [name: string, file: unknown];
|
|
105
|
+
/**
|
|
106
|
+
* The segment's position in the loader tree: its index among its parent's
|
|
107
|
+
* children at each level, from the root. The root layout's segment is `[]`.
|
|
108
|
+
*/
|
|
109
|
+
treePath: readonly number[];
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Whether `generateStaticParams` is exported at or below the route's last
|
|
113
|
+
* dynamic segment: by that segment's layout, a deeper layout, or the page.
|
|
114
|
+
* Next.js classifies such a route as SSG (static generation with an on-demand
|
|
115
|
+
* fallback). A dynamic-segment route without it is dynamic (ƒ) and is never
|
|
116
|
+
* full-page cached.
|
|
117
|
+
*
|
|
118
|
+
* Port of Next.js's `lastDynamicSegmentHadGenerateStaticParams` walk: segments
|
|
119
|
+
* are visited breadth-first, a dynamic segment without `generateStaticParams`
|
|
120
|
+
* clears the flag, and any segment with it sets the flag.
|
|
121
|
+
* https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/static-paths/app.ts#L926-L935
|
|
122
|
+
* https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/segment-config/app/app-segments.ts#L72-L126
|
|
123
|
+
*/
|
|
124
|
+
export declare function lastDynamicSegmentHasGenerateStaticParams(segments: readonly AppPageStaticParamsWalkSegment[]): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Collect the loader-tree segments of an App page route from its layout, page
|
|
127
|
+
* and parallel-slot modules, for `lastDynamicSegmentHasGenerateStaticParams`.
|
|
128
|
+
*
|
|
129
|
+
* Children follow the loader tree Next.js's default build (Turbopack) makes:
|
|
130
|
+
* `children` first, then every slot in folder-name order, whether it matched
|
|
131
|
+
* a page or renders `default`. A default slot is a single `__DEFAULT__`
|
|
132
|
+
* segment without the slot's layout.
|
|
133
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L1489-L1511
|
|
134
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L1515-L1548
|
|
135
|
+
*/
|
|
136
|
+
export declare function collectAppPageStaticParamsWalkSegments(options: Pick<ResolveAppPageSegmentConfigOptions, "layoutTreePositions" | "layouts" | "page" | "parallelBranches" | "routeSegments"> & {
|
|
137
|
+
childrenSlot?: AppPageChildrenSlot | null;
|
|
138
|
+
}): AppPageStaticParamsWalkSegment[];
|
|
139
|
+
/**
|
|
140
|
+
* Whether an App page route exports `generateStaticParams` at or below its last
|
|
141
|
+
* dynamic segment, read from its layout, page and parallel-slot modules.
|
|
142
|
+
*/
|
|
143
|
+
export declare function hasAppPageGenerateStaticParamsAtLastDynamicSegment(options: Parameters<typeof collectAppPageStaticParamsWalkSegments>[0]): boolean;
|
|
144
|
+
/**
|
|
145
|
+
* Whether Next.js would classify an App page route as static or SSG from its
|
|
146
|
+
* config alone. Only such routes are full-page cache candidates; every other
|
|
147
|
+
* route renders per request with real values and is never ISR-cached.
|
|
148
|
+
*
|
|
149
|
+
* - `runtime = "edge"` disables static generation, whatever else the route
|
|
150
|
+
* sets.
|
|
151
|
+
* - `dynamic = "force-dynamic"` and `revalidate = 0` are dynamic.
|
|
152
|
+
* - `dynamic = "force-static"` and `dynamic = "error"` are static.
|
|
153
|
+
* - Otherwise a route is static when it has no dynamic segments, or when
|
|
154
|
+
* `generateStaticParams` sits at or below its last dynamic segment.
|
|
155
|
+
*
|
|
156
|
+
* Next.js also treats a route as SSG when an ancestor's `generateStaticParams`
|
|
157
|
+
* returns every pathname param (`hadAllParamsGenerated`). That depends on the
|
|
158
|
+
* generator's output, which vinext doesn't compute per request, so such a
|
|
159
|
+
* route is treated as dynamic here. Adding `generateStaticParams` to the last
|
|
160
|
+
* dynamic segment (even returning `[]`) opts it in, on both.
|
|
161
|
+
*
|
|
162
|
+
* https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/index.ts#L2333-L2408
|
|
163
|
+
*/
|
|
164
|
+
export declare function isAppPageStaticEligible(options: {
|
|
165
|
+
dynamicConfig?: string;
|
|
166
|
+
hasGenerateStaticParams: boolean;
|
|
167
|
+
isDynamicRoute: boolean;
|
|
168
|
+
isStaticGenerationEdgeRuntime: boolean;
|
|
169
|
+
revalidateSeconds: number | null;
|
|
170
|
+
}): boolean;
|
|
171
|
+
//#endregion
|
|
@@ -57,6 +57,23 @@ function getParallelSegments(options) {
|
|
|
57
57
|
branch.page
|
|
58
58
|
] : []);
|
|
59
59
|
}
|
|
60
|
+
/** Resolve the effective `dynamic` mode using the same traversal semantics as rendering. */
|
|
61
|
+
function resolveAppPageDynamicConfig(options) {
|
|
62
|
+
const segments = [...options.layouts ?? [], options.page];
|
|
63
|
+
const parallelSegments = getParallelSegments(options);
|
|
64
|
+
let dynamicConfig;
|
|
65
|
+
let hasForceDynamic = false;
|
|
66
|
+
for (const segment of segments) {
|
|
67
|
+
if (!isRouteSegmentDynamic(segment?.dynamic)) continue;
|
|
68
|
+
if (segment.dynamic === "force-dynamic") hasForceDynamic = true;
|
|
69
|
+
dynamicConfig = hasForceDynamic ? "force-dynamic" : segment.dynamic;
|
|
70
|
+
}
|
|
71
|
+
for (const segment of parallelSegments) if (segment?.dynamic === "force-dynamic") {
|
|
72
|
+
hasForceDynamic = true;
|
|
73
|
+
dynamicConfig = "force-dynamic";
|
|
74
|
+
} else if (dynamicConfig === void 0 && isRouteSegmentDynamic(segment?.dynamic)) dynamicConfig = segment.dynamic;
|
|
75
|
+
return dynamicConfig;
|
|
76
|
+
}
|
|
60
77
|
function resolveDynamicParamsConfig(options) {
|
|
61
78
|
const parallelSegments = getParallelSegments(options);
|
|
62
79
|
const segments = [
|
|
@@ -123,21 +140,21 @@ function describeFetchCacheConflict(value) {
|
|
|
123
140
|
function resolveAppPageSegmentConfig(options) {
|
|
124
141
|
const segments = [...options.layouts ?? [], options.page];
|
|
125
142
|
const parallelSegments = getParallelSegments(options);
|
|
126
|
-
const
|
|
143
|
+
const dynamicConfig = resolveAppPageDynamicConfig(options);
|
|
144
|
+
const config = {
|
|
145
|
+
...dynamicConfig === void 0 ? {} : { dynamicConfig },
|
|
146
|
+
revalidateSeconds: null
|
|
147
|
+
};
|
|
127
148
|
config.dynamicParamsConfig = resolveDynamicParamsConfig(options);
|
|
128
149
|
let hasForceCache = false;
|
|
129
150
|
let hasForceNoStore = false;
|
|
130
151
|
let hasOnlyCache = false;
|
|
131
152
|
let hasOnlyNoStore = false;
|
|
132
153
|
let hasParentDefaultNoStore = false;
|
|
133
|
-
|
|
154
|
+
const primaryRuntime = resolveAppPageStaticGenerationRuntime(segments.map((segment) => segment?.runtime));
|
|
155
|
+
if (primaryRuntime !== void 0) config.runtime = primaryRuntime;
|
|
134
156
|
for (const segment of segments) {
|
|
135
157
|
if (!segment) continue;
|
|
136
|
-
if (isRouteSegmentDynamic(segment.dynamic)) {
|
|
137
|
-
if (segment.dynamic === "force-dynamic") hasForceDynamic = true;
|
|
138
|
-
config.dynamicConfig = hasForceDynamic ? "force-dynamic" : segment.dynamic;
|
|
139
|
-
}
|
|
140
|
-
if (isRouteSegmentRuntime(segment.runtime)) config.runtime = segment.runtime;
|
|
141
158
|
if (isRouteSegmentFetchCache(segment.fetchCache)) {
|
|
142
159
|
const fetchCache = segment.fetchCache;
|
|
143
160
|
if (hasParentDefaultNoStore && (fetchCache === "auto" || isCacheFetchCacheMode(fetchCache))) throw new Error(describeFetchCacheConflict(fetchCache));
|
|
@@ -157,10 +174,6 @@ function resolveAppPageSegmentConfig(options) {
|
|
|
157
174
|
}
|
|
158
175
|
for (const segment of parallelSegments) {
|
|
159
176
|
if (!segment) continue;
|
|
160
|
-
if (segment.dynamic === "force-dynamic") {
|
|
161
|
-
hasForceDynamic = true;
|
|
162
|
-
config.dynamicConfig = "force-dynamic";
|
|
163
|
-
} else if (config.dynamicConfig === void 0 && isRouteSegmentDynamic(segment.dynamic)) config.dynamicConfig = segment.dynamic;
|
|
164
177
|
if (config.runtime === void 0 && isRouteSegmentRuntime(segment.runtime)) config.runtime = segment.runtime;
|
|
165
178
|
if (isRouteSegmentFetchCache(segment.fetchCache)) {
|
|
166
179
|
const fetchCache = segment.fetchCache;
|
|
@@ -205,5 +218,244 @@ function resolveAppRouteHandlerFetchCacheMode(handler) {
|
|
|
205
218
|
function isEdgeRuntime(runtime) {
|
|
206
219
|
return isEdgeApiRuntime(runtime);
|
|
207
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Resolve a `runtime` from a chain of segment values, outermost first: the
|
|
223
|
+
* last valid value wins, as a child's value wins over its parent's.
|
|
224
|
+
* `collectAppPageStaticGenerationRuntimes` supplies the value Next.js uses to
|
|
225
|
+
* decide whether a page can be statically generated.
|
|
226
|
+
*/
|
|
227
|
+
function resolveAppPageStaticGenerationRuntime(values) {
|
|
228
|
+
let runtime;
|
|
229
|
+
for (const value of values) if (isRouteSegmentRuntime(value)) runtime = value;
|
|
230
|
+
return runtime;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Where the children slot renders its `default` instead of a page: the
|
|
234
|
+
* main-tree position of the folder that owns it. `null` when children renders
|
|
235
|
+
* a page.
|
|
236
|
+
*/
|
|
237
|
+
function resolveChildrenDefaultTreePosition(childrenSlot) {
|
|
238
|
+
if (!childrenSlot || childrenSlot.state === "active") return null;
|
|
239
|
+
return treePathDepth(childrenSlot.ownerTreePath);
|
|
240
|
+
}
|
|
241
|
+
function treePathDepth(treePath) {
|
|
242
|
+
return treePath.split("/").filter(Boolean).length;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* The `runtime` Next.js's default build (Turbopack) derives for an App page,
|
|
246
|
+
* for `resolveAppPageStaticGenerationRuntime`. It reads the whole loader tree:
|
|
247
|
+
* at each node the values of every parallel branch (children, matched slots
|
|
248
|
+
* and slots that render `default`) merge, and a conflict fails the build; the
|
|
249
|
+
* node's own layout, page or default module then fills in only an unset value.
|
|
250
|
+
* So an edge slot page next to a Node children page makes the route edge.
|
|
251
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/segment_config.rs#L1323-L1357
|
|
252
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/next_app/app_page_entry.rs#L40-L41
|
|
253
|
+
*/
|
|
254
|
+
function collectAppPageStaticGenerationRuntimes(options) {
|
|
255
|
+
const segments = collectAppPageStaticParamsWalkSegments(options);
|
|
256
|
+
const isAt = (segment, treePath) => segment.treePath.length === treePath.length && treePath.every((index, depth) => segment.treePath[depth] === index);
|
|
257
|
+
const resolveAt = (treePath) => {
|
|
258
|
+
let runtime;
|
|
259
|
+
for (const segment of segments) if (segment.treePath.length === treePath.length + 1 && treePath.every((index, depth) => segment.treePath[depth] === index)) runtime = mergeParallelRuntime(runtime, resolveAt(segment.treePath));
|
|
260
|
+
if (runtime !== void 0) return runtime;
|
|
261
|
+
const segmentModule = segments.find((segment) => isAt(segment, treePath))?.identity[1];
|
|
262
|
+
return resolveAppPageStaticGenerationRuntime([segmentModule?.runtime]);
|
|
263
|
+
};
|
|
264
|
+
return [resolveAt([])];
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Merge a parallel branch's runtime into its siblings'. Next.js fails the
|
|
268
|
+
* build when two siblings set different values; the edge one is kept here,
|
|
269
|
+
* since it keeps the route out of static generation either way.
|
|
270
|
+
*/
|
|
271
|
+
function mergeParallelRuntime(current, sibling) {
|
|
272
|
+
if (current === void 0) return sibling;
|
|
273
|
+
if (sibling === void 0 || current === sibling) return current;
|
|
274
|
+
return isEdgeRuntime(current) ? current : sibling;
|
|
275
|
+
}
|
|
276
|
+
function compareTreePaths(a, b) {
|
|
277
|
+
if (a.length !== b.length) return a.length - b.length;
|
|
278
|
+
for (let index = 0; index < a.length; index++) if (a[index] !== b[index]) return a[index] - b[index];
|
|
279
|
+
return 0;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Whether `generateStaticParams` is exported at or below the route's last
|
|
283
|
+
* dynamic segment: by that segment's layout, a deeper layout, or the page.
|
|
284
|
+
* Next.js classifies such a route as SSG (static generation with an on-demand
|
|
285
|
+
* fallback). A dynamic-segment route without it is dynamic (ƒ) and is never
|
|
286
|
+
* full-page cached.
|
|
287
|
+
*
|
|
288
|
+
* Port of Next.js's `lastDynamicSegmentHadGenerateStaticParams` walk: segments
|
|
289
|
+
* are visited breadth-first, a dynamic segment without `generateStaticParams`
|
|
290
|
+
* clears the flag, and any segment with it sets the flag.
|
|
291
|
+
* https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/static-paths/app.ts#L926-L935
|
|
292
|
+
* https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/segment-config/app/app-segments.ts#L72-L126
|
|
293
|
+
*/
|
|
294
|
+
function lastDynamicSegmentHasGenerateStaticParams(segments) {
|
|
295
|
+
const visited = [];
|
|
296
|
+
const ordered = [...segments].sort((a, b) => compareTreePaths(a.treePath, b.treePath));
|
|
297
|
+
let hasGenerateStaticParams = false;
|
|
298
|
+
for (const segment of ordered) {
|
|
299
|
+
const [name, file] = segment.identity;
|
|
300
|
+
if (visited.some(([seenName, seenFile]) => seenName === name && seenFile === file)) continue;
|
|
301
|
+
visited.push(segment.identity);
|
|
302
|
+
if (segment.dynamic && !segment.generateStaticParams) hasGenerateStaticParams = false;
|
|
303
|
+
else if (segment.generateStaticParams) hasGenerateStaticParams = true;
|
|
304
|
+
}
|
|
305
|
+
return hasGenerateStaticParams;
|
|
306
|
+
}
|
|
307
|
+
const PAGE_SEGMENT_NAME = "__PAGE__";
|
|
308
|
+
function hasGenerateStaticParamsExport(segment) {
|
|
309
|
+
return typeof segment?.generateStaticParams === "function";
|
|
310
|
+
}
|
|
311
|
+
const DEFAULT_SEGMENT_NAME = "__DEFAULT__";
|
|
312
|
+
/**
|
|
313
|
+
* Turbopack reads a folder's subfolders from a `BTreeMap<RcStr, _>`, whose
|
|
314
|
+
* keys compare as Rust `str`s: by UTF-8 bytes. That is Unicode code point
|
|
315
|
+
* order, which JavaScript's `<` (UTF-16 code units) doesn't match above the
|
|
316
|
+
* Basic Multilingual Plane.
|
|
317
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L188-L192
|
|
318
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/turbopack/crates/turbo-rcstr/src/lib.rs#L350-L354
|
|
319
|
+
*/
|
|
320
|
+
function compareFolderNames(a, b) {
|
|
321
|
+
const left = Array.from(a, (char) => char.codePointAt(0) ?? 0);
|
|
322
|
+
const right = Array.from(b, (char) => char.codePointAt(0) ?? 0);
|
|
323
|
+
for (let index = 0; index < Math.min(left.length, right.length); index++) if (left[index] !== right[index]) return left[index] - right[index];
|
|
324
|
+
return left.length - right.length;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Collect the loader-tree segments of an App page route from its layout, page
|
|
328
|
+
* and parallel-slot modules, for `lastDynamicSegmentHasGenerateStaticParams`.
|
|
329
|
+
*
|
|
330
|
+
* Children follow the loader tree Next.js's default build (Turbopack) makes:
|
|
331
|
+
* `children` first, then every slot in folder-name order, whether it matched
|
|
332
|
+
* a page or renders `default`. A default slot is a single `__DEFAULT__`
|
|
333
|
+
* segment without the slot's layout.
|
|
334
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L1489-L1511
|
|
335
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L1515-L1548
|
|
336
|
+
*/
|
|
337
|
+
function collectAppPageStaticParamsWalkSegments(options) {
|
|
338
|
+
const childrenDefaultPosition = resolveChildrenDefaultTreePosition(options.childrenSlot);
|
|
339
|
+
const routeSegments = childrenDefaultPosition === null ? options.routeSegments ?? [] : (options.routeSegments ?? []).slice(0, childrenDefaultPosition);
|
|
340
|
+
const layoutsByPosition = /* @__PURE__ */ new Map();
|
|
341
|
+
options.layouts?.forEach((layout, index) => {
|
|
342
|
+
if (layout) layoutsByPosition.set(options.layoutTreePositions?.[index] ?? 0, layout);
|
|
343
|
+
});
|
|
344
|
+
const branchesByOwner = /* @__PURE__ */ new Map();
|
|
345
|
+
for (const branch of options.parallelBranches ?? []) {
|
|
346
|
+
if (!branch) continue;
|
|
347
|
+
const owner = Math.min(branch.ownerTreePosition ?? routeSegments.length - (branch.isDefault ? 0 : (branch.routeSegments ?? []).length), routeSegments.length);
|
|
348
|
+
branchesByOwner.set(owner, [...branchesByOwner.get(owner) ?? [], branch]);
|
|
349
|
+
}
|
|
350
|
+
const segments = [];
|
|
351
|
+
let treePath = [];
|
|
352
|
+
for (let position = 0; position <= routeSegments.length + 1; position++) {
|
|
353
|
+
if (position <= routeSegments.length) {
|
|
354
|
+
const name = position === 0 ? "" : routeSegments[position - 1];
|
|
355
|
+
const layout = layoutsByPosition.get(position);
|
|
356
|
+
segments.push({
|
|
357
|
+
dynamic: position > 0 && isDynamicSegment(name),
|
|
358
|
+
generateStaticParams: hasGenerateStaticParamsExport(layout),
|
|
359
|
+
identity: [name, layout],
|
|
360
|
+
treePath
|
|
361
|
+
});
|
|
362
|
+
} else {
|
|
363
|
+
segments.push({
|
|
364
|
+
dynamic: false,
|
|
365
|
+
generateStaticParams: hasGenerateStaticParamsExport(options.page),
|
|
366
|
+
identity: [PAGE_SEGMENT_NAME, options.page ?? void 0],
|
|
367
|
+
treePath
|
|
368
|
+
});
|
|
369
|
+
break;
|
|
370
|
+
}
|
|
371
|
+
[...branchesByOwner.get(position) ?? []].sort((a, b) => compareFolderNames(a.name ?? "", b.name ?? "")).forEach((branch, index) => {
|
|
372
|
+
const slotPath = [...treePath, index + 1];
|
|
373
|
+
if (branch.isDefault) segments.push({
|
|
374
|
+
dynamic: false,
|
|
375
|
+
generateStaticParams: hasGenerateStaticParamsExport(branch.page),
|
|
376
|
+
identity: [DEFAULT_SEGMENT_NAME, branch.page ?? void 0],
|
|
377
|
+
treePath: slotPath
|
|
378
|
+
});
|
|
379
|
+
else segments.push(...collectActiveSlotSegments(branch, slotPath));
|
|
380
|
+
});
|
|
381
|
+
if (position === childrenDefaultPosition) {
|
|
382
|
+
segments.push({
|
|
383
|
+
dynamic: false,
|
|
384
|
+
generateStaticParams: hasGenerateStaticParamsExport(options.page),
|
|
385
|
+
identity: [DEFAULT_SEGMENT_NAME, options.page ?? void 0],
|
|
386
|
+
treePath: [...treePath, 0]
|
|
387
|
+
});
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
treePath = [...treePath, 0];
|
|
391
|
+
}
|
|
392
|
+
return segments;
|
|
393
|
+
}
|
|
394
|
+
function collectActiveSlotSegments(branch, slotPath) {
|
|
395
|
+
const branchSegments = branch.routeSegments ?? [];
|
|
396
|
+
const configLayoutsByPosition = /* @__PURE__ */ new Map();
|
|
397
|
+
branch.configLayouts?.forEach((layout, index) => {
|
|
398
|
+
if (layout) configLayoutsByPosition.set(branch.configLayoutTreePositions?.[index] ?? 0, layout);
|
|
399
|
+
});
|
|
400
|
+
const segments = [{
|
|
401
|
+
dynamic: false,
|
|
402
|
+
generateStaticParams: hasGenerateStaticParamsExport(branch.layout),
|
|
403
|
+
identity: [`@${branch.name ?? ""}`, branch.layout ?? void 0],
|
|
404
|
+
treePath: slotPath
|
|
405
|
+
}];
|
|
406
|
+
const depth = Math.max(branchSegments.length, ...branch.configLayoutTreePositions ?? []);
|
|
407
|
+
let treePath = [...slotPath];
|
|
408
|
+
for (let index = 0; index < depth; index++) {
|
|
409
|
+
treePath = [...treePath, 0];
|
|
410
|
+
const name = branchSegments[index];
|
|
411
|
+
const layout = configLayoutsByPosition.get(index + 1);
|
|
412
|
+
segments.push({
|
|
413
|
+
dynamic: name !== void 0 && isDynamicSegment(name),
|
|
414
|
+
generateStaticParams: hasGenerateStaticParamsExport(layout),
|
|
415
|
+
identity: [name ?? "", layout],
|
|
416
|
+
treePath
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
segments.push({
|
|
420
|
+
dynamic: false,
|
|
421
|
+
generateStaticParams: hasGenerateStaticParamsExport(branch.page),
|
|
422
|
+
identity: [PAGE_SEGMENT_NAME, branch.page ?? void 0],
|
|
423
|
+
treePath: [...treePath, 0]
|
|
424
|
+
});
|
|
425
|
+
return segments;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Whether an App page route exports `generateStaticParams` at or below its last
|
|
429
|
+
* dynamic segment, read from its layout, page and parallel-slot modules.
|
|
430
|
+
*/
|
|
431
|
+
function hasAppPageGenerateStaticParamsAtLastDynamicSegment(options) {
|
|
432
|
+
return lastDynamicSegmentHasGenerateStaticParams(collectAppPageStaticParamsWalkSegments(options));
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Whether Next.js would classify an App page route as static or SSG from its
|
|
436
|
+
* config alone. Only such routes are full-page cache candidates; every other
|
|
437
|
+
* route renders per request with real values and is never ISR-cached.
|
|
438
|
+
*
|
|
439
|
+
* - `runtime = "edge"` disables static generation, whatever else the route
|
|
440
|
+
* sets.
|
|
441
|
+
* - `dynamic = "force-dynamic"` and `revalidate = 0` are dynamic.
|
|
442
|
+
* - `dynamic = "force-static"` and `dynamic = "error"` are static.
|
|
443
|
+
* - Otherwise a route is static when it has no dynamic segments, or when
|
|
444
|
+
* `generateStaticParams` sits at or below its last dynamic segment.
|
|
445
|
+
*
|
|
446
|
+
* Next.js also treats a route as SSG when an ancestor's `generateStaticParams`
|
|
447
|
+
* returns every pathname param (`hadAllParamsGenerated`). That depends on the
|
|
448
|
+
* generator's output, which vinext doesn't compute per request, so such a
|
|
449
|
+
* route is treated as dynamic here. Adding `generateStaticParams` to the last
|
|
450
|
+
* dynamic segment (even returning `[]`) opts it in, on both.
|
|
451
|
+
*
|
|
452
|
+
* https://github.com/vercel/next.js/blob/v16.2.6/packages/next/src/build/index.ts#L2333-L2408
|
|
453
|
+
*/
|
|
454
|
+
function isAppPageStaticEligible(options) {
|
|
455
|
+
if (options.isStaticGenerationEdgeRuntime) return false;
|
|
456
|
+
if (options.dynamicConfig === "force-dynamic" || options.revalidateSeconds === 0) return false;
|
|
457
|
+
if (options.dynamicConfig === "force-static" || options.dynamicConfig === "error") return true;
|
|
458
|
+
return !options.isDynamicRoute || options.hasGenerateStaticParams;
|
|
459
|
+
}
|
|
208
460
|
//#endregion
|
|
209
|
-
export { isEdgeRuntime, resolveAppPageFetchCacheMode, resolveAppPageSegmentConfig, resolveAppRouteHandlerFetchCacheMode };
|
|
461
|
+
export { collectAppPageStaticGenerationRuntimes, collectAppPageStaticParamsWalkSegments, hasAppPageGenerateStaticParamsAtLastDynamicSegment, isAppPageStaticEligible, isEdgeRuntime, lastDynamicSegmentHasGenerateStaticParams, resolveAppPageDynamicConfig, resolveAppPageFetchCacheMode, resolveAppPageSegmentConfig, resolveAppPageStaticGenerationRuntime, resolveAppRouteHandlerFetchCacheMode };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { AppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
2
2
|
import { ActionRevalidationKind } from "../shims/cache-request-state.js";
|
|
3
|
+
import { AppRenderErrorContextOverrides } from "./app-rsc-error-handler.js";
|
|
3
4
|
import { FetchCacheMode } from "../shims/fetch-cache.js";
|
|
4
5
|
import { HeadersAccessPhase } from "../shims/headers.js";
|
|
5
6
|
import { ReactFormState } from "react-dom/client";
|
|
6
7
|
//#region src/server/app-server-action-execution.d.ts
|
|
7
8
|
type AppPageParams = Record<string, string | string[]>;
|
|
8
|
-
type AppServerActionErrorReporter = (error:
|
|
9
|
+
type AppServerActionErrorReporter = (error: unknown, request: {
|
|
9
10
|
path: string;
|
|
10
11
|
method: string;
|
|
11
12
|
headers: Record<string, string>;
|
|
@@ -13,6 +14,8 @@ type AppServerActionErrorReporter = (error: Error, request: {
|
|
|
13
14
|
routerKind: "App Router";
|
|
14
15
|
routePath: string;
|
|
15
16
|
routeType: "action";
|
|
17
|
+
renderSource: "react-server-components-payload";
|
|
18
|
+
revalidateReason: undefined;
|
|
16
19
|
}) => void;
|
|
17
20
|
type AppServerActionDecoder = (body: FormData) => Promise<unknown>;
|
|
18
21
|
type AppServerActionFormStateDecoder = (actionResult: unknown, body: FormData) => Promise<ReactFormState | undefined>;
|
|
@@ -103,6 +106,7 @@ type BuildServerActionPageElementOptions<TRoute extends AppServerActionRoute, TI
|
|
|
103
106
|
searchParams: URLSearchParams;
|
|
104
107
|
scriptNonce?: string;
|
|
105
108
|
renderMode: AppRscRenderMode;
|
|
109
|
+
isForceStatic?: boolean;
|
|
106
110
|
observeMetadataSearchParamsAccess?: boolean;
|
|
107
111
|
observePageSearchParamsAccess?: boolean;
|
|
108
112
|
};
|
|
@@ -122,7 +126,7 @@ type RenderServerActionRscStreamOptions<TTemporaryReferences> = {
|
|
|
122
126
|
type DecodeServerActionReplyOptions<TTemporaryReferences> = {
|
|
123
127
|
temporaryReferences: TTemporaryReferences;
|
|
124
128
|
};
|
|
125
|
-
type HandleProgressiveServerActionRequestOptions = {
|
|
129
|
+
export type HandleProgressiveServerActionRequestOptions = {
|
|
126
130
|
actionId: string | null;
|
|
127
131
|
allowedOrigins: string[];
|
|
128
132
|
/** Configured next.config `basePath`. Prefixed onto progressive Location targets. */
|
|
@@ -150,9 +154,10 @@ type HandleProgressiveServerActionRequestOptions = {
|
|
|
150
154
|
readFormDataWithLimit: ReadFormDataWithLimit;
|
|
151
155
|
reportRequestError: AppServerActionErrorReporter;
|
|
152
156
|
request: Request;
|
|
157
|
+
routePattern: string;
|
|
153
158
|
setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;
|
|
154
159
|
};
|
|
155
|
-
type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown> = {
|
|
160
|
+
export type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown> = {
|
|
156
161
|
actionId: string | null;
|
|
157
162
|
allowedOrigins: string[];
|
|
158
163
|
/** Configured next.config `basePath`. Prefixed onto ACTION_REDIRECT_HEADER targets. */
|
|
@@ -167,7 +172,7 @@ type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServerActio
|
|
|
167
172
|
currentRoutePathname: string;
|
|
168
173
|
createNotFoundElement: (routeId: string) => TElement;
|
|
169
174
|
createPayloadRouteId: (pathname: string, interceptionContext: string | null) => string;
|
|
170
|
-
createRscOnErrorHandler: (request: Request, pathname: string, pattern: string) => (error: unknown) => unknown;
|
|
175
|
+
createRscOnErrorHandler: (request: Request, pathname: string, pattern: string, overrides?: AppRenderErrorContextOverrides) => (error: unknown) => unknown;
|
|
171
176
|
createTemporaryReferenceSet: () => TTemporaryReferences;
|
|
172
177
|
decodeReply: (body: string | FormData, options: DecodeServerActionReplyOptions<TTemporaryReferences>) => Promise<unknown[]> | unknown[];
|
|
173
178
|
draftModeSecret: string;
|
|
@@ -229,8 +234,8 @@ type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServerActio
|
|
|
229
234
|
}) => void;
|
|
230
235
|
toInterceptOpts: (intercept: AppServerActionIntercept<TPage>) => TInterceptOpts;
|
|
231
236
|
};
|
|
232
|
-
declare function readActionBodyWithLimit(request: Request, maxBytes: number): Promise<string>;
|
|
233
|
-
declare function readActionFormDataWithLimit(request: Request, maxBytes: number): Promise<FormData>;
|
|
237
|
+
export declare function readActionBodyWithLimit(request: Request, maxBytes: number): Promise<string>;
|
|
238
|
+
export declare function readActionFormDataWithLimit(request: Request, maxBytes: number): Promise<FormData>;
|
|
234
239
|
/**
|
|
235
240
|
* Prepend the configured next.config `basePath` to a server-action redirect
|
|
236
241
|
* target before it goes on the wire.
|
|
@@ -254,9 +259,8 @@ declare function readActionFormDataWithLimit(request: Request, maxBytes: number)
|
|
|
254
259
|
*
|
|
255
260
|
* @see https://github.com/vercel/next.js/blob/canary/packages/next/src/server/app-render/action-handler.ts
|
|
256
261
|
*/
|
|
257
|
-
declare function applyActionRedirectBasePath(url: string, basePath: string): string;
|
|
258
|
-
declare function isProgressiveServerActionRequest(request: Pick<Request, "method">, contentType: string, actionId: string | null): boolean;
|
|
259
|
-
declare function handleProgressiveServerActionRequest(options: HandleProgressiveServerActionRequestOptions): Promise<Response | ProgressiveServerActionResult | null>;
|
|
260
|
-
declare function handleServerActionRscRequest<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown>(options: HandleServerActionRscRequestOptions<TElement, TRoute, TInterceptOpts, TTemporaryReferences, TPage>): Promise<Response | null>;
|
|
261
|
-
//#endregion
|
|
262
|
-
export { HandleProgressiveServerActionRequestOptions, HandleServerActionRscRequestOptions, applyActionRedirectBasePath, handleProgressiveServerActionRequest, handleServerActionRscRequest, isProgressiveServerActionRequest, readActionBodyWithLimit, readActionFormDataWithLimit };
|
|
262
|
+
export declare function applyActionRedirectBasePath(url: string, basePath: string): string;
|
|
263
|
+
export declare function isProgressiveServerActionRequest(request: Pick<Request, "method">, contentType: string, actionId: string | null): boolean;
|
|
264
|
+
export declare function handleProgressiveServerActionRequest(options: HandleProgressiveServerActionRequestOptions): Promise<Response | ProgressiveServerActionResult | null>;
|
|
265
|
+
export declare function handleServerActionRscRequest<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown>(options: HandleServerActionRscRequestOptions<TElement, TRoute, TInterceptOpts, TTemporaryReferences, TPage>): Promise<Response | null>;
|
|
266
|
+
//#endregion
|