vinext 1.0.0-beta.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -92
- package/THIRD_PARTY_LICENSES.md +25 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +1 -13
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +273 -97
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +65 -15
- package/dist/build/prerender.js +139 -43
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +25 -16
- package/dist/build/server-entry.d.ts +4 -0
- package/dist/build/server-entry.js +28 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +21 -17
- package/dist/client/navigation-runtime.js +2 -1
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +2 -1
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +502 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +711 -189
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +710 -102
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +123 -41
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
- package/dist/plugins/ignore-dynamic-requests.js +60 -89
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +31 -43
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +3 -4
- package/dist/plugins/og-assets.d.ts +4 -5
- package/dist/plugins/og-assets.js +32 -13
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +260 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +32 -44
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +2 -3
- package/dist/plugins/require-context.js +13 -21
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +5 -6
- package/dist/plugins/strip-server-exports.js +1 -1
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +3 -4
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +6 -7
- package/dist/plugins/typeof-window.js +30 -31
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +19 -19
- package/dist/routing/app-route-graph.js +3 -2
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +3 -4
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +87 -34
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +14 -1
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +8 -4
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +6 -2
- package/dist/server/app-browser-stream.d.ts +4 -5
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +26 -27
- package/dist/server/app-history-state.js +19 -11
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -5
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -25
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +42 -6
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +49 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +17 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +115 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +2 -3
- package/dist/server/app-route-handler-cache.js +46 -34
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +68 -54
- package/dist/server/app-route-handler-execution.d.ts +17 -13
- package/dist/server/app-route-handler-execution.js +69 -18
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +2 -0
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +2 -0
- package/dist/server/app-router-entry.js +28 -8
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +31 -6
- package/dist/server/app-rsc-handler.js +411 -61
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +2 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +6 -6
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +16 -12
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +61 -14
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +33 -7
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +71 -5
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +159 -57
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +130 -61
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +54 -61
- package/dist/server/headers.js +18 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +28 -27
- package/dist/server/isr-cache.js +18 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-cache-policy.d.ts +2 -3
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +68 -2
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +20 -7
- package/dist/server/pages-asset-tags.d.ts +6 -6
- package/dist/server/pages-asset-tags.js +37 -2
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +11 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +18 -19
- package/dist/server/pages-page-data.js +11 -10
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +77 -39
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +49 -31
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +14 -12
- package/dist/server/pages-request-pipeline.js +60 -30
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +314 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +11 -11
- package/dist/server/prerender-manifest.js +6 -3
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +124 -31
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +2 -3
- package/dist/server/worker-revalidation-context.js +5 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +17 -0
- package/dist/server/workers-tracing.js +27 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +28 -29
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +107 -27
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +15 -13
- package/dist/shims/cacheability-classification.d.ts +49 -28
- package/dist/shims/cacheability-classification.js +27 -12
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +50 -21
- package/dist/shims/cdn-cache.js +15 -38
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +4 -4
- package/dist/shims/error.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +42 -17
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +67 -33
- package/dist/shims/headers.js +93 -6
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +24 -16
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +14 -28
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +34 -31
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +3 -4
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +47 -6
|
@@ -1,24 +1,27 @@
|
|
|
1
1
|
import path, { toSlash } from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
2
|
import { findDir } from "../utils/project.js";
|
|
3
|
-
import {
|
|
3
|
+
import { BLOCKED_PAGES, PHASE_PRODUCTION_BUILD } from "../shims/constants.js";
|
|
4
4
|
import { VINEXT_PRERENDER_SECRET_HEADER } from "../utils/protocol-headers.js";
|
|
5
|
-
import "../
|
|
5
|
+
import { isExternalUrl } from "../utils/external-url.js";
|
|
6
6
|
import { matchHeaders, matchesRewriteSource } from "../config/config-matchers.js";
|
|
7
|
-
import {
|
|
8
|
-
import { classifyAppRoute, classifyAppRouteHandler, classifyPagesRoute, extractExportConstString, getAppRouteRenderEntryPath } from "./report.js";
|
|
7
|
+
import { loadNextConfig, resolveNextConfig } from "../config/next-config.js";
|
|
9
8
|
import { appRouteHasMainTreeLoadingBoundary, appRouter, matchAppRoute } from "../routing/app-router.js";
|
|
9
|
+
import { apiRouter, matchRoute, pagesRouter } from "../routing/pages-router.js";
|
|
10
|
+
import "../server/headers.js";
|
|
11
|
+
import { matchesMiddlewarePathname } from "../server/middleware-matcher.js";
|
|
12
|
+
import { extractLocaleFromUrl, normalizeDefaultLocalePathname } from "../server/pages-i18n.js";
|
|
13
|
+
import { classifyAppRoute, classifyAppRouteHandler, classifyPagesRoute, extractExportConstNumber, extractExportConstString, extractMiddlewareMatcherConfig, getAppRouteRenderEntryPath, hasRuntimeExportedName } from "./report.js";
|
|
10
14
|
import { normalizeStaticPathname, normalizeStaticPathsEntry } from "../routing/route-pattern.js";
|
|
11
15
|
import { buildPagesDataHref } from "../shims/internal/pages-data-url.js";
|
|
12
16
|
import { normalizePathTrailingSlash } from "../shims/url-utils.js";
|
|
13
|
-
import { BLOCKED_PAGES, PHASE_PRODUCTION_BUILD } from "../shims/constants.js";
|
|
14
|
-
import { loadNextConfig, resolveNextConfig } from "../config/next-config.js";
|
|
15
|
-
import { CACHEABILITY_POLICY_HEADERS } from "../shims/cacheability-classification.js";
|
|
16
17
|
import { pagesRouteHasPriorityOverAppRoute } from "../server/hybrid-route-priority.js";
|
|
17
18
|
import { readPrerenderSecret } from "./server-manifest.js";
|
|
19
|
+
import { loadMdxEsmReader } from "../utils/mdx-scan.js";
|
|
18
20
|
import { startProdServer } from "../server/prod-server.js";
|
|
19
21
|
import { enterPrerenderPhase } from "./prerender-phase.js";
|
|
20
|
-
import { buildUrlFromParams, resolveParentParams } from "./prerender.js";
|
|
21
|
-
import { resolveAppPageDynamicConfig } from "../server/app-segment-config.js";
|
|
22
|
+
import { buildUrlFromParams, layoutOnlyParamSets, resolveParentParams, routeStaticParamSets, validateDiscoveredParams } from "./prerender.js";
|
|
23
|
+
import { collectAppPageStaticGenerationRuntimes, hasAppPageGenerateStaticParamsAtLastDynamicSegment, isAppPageStaticEligible, isEdgeRuntime, resolveAppPageDynamicConfig, resolveAppPageSegmentConfig, resolveAppPageStaticGenerationRuntime } from "../server/app-segment-config.js";
|
|
24
|
+
import { resolveBuiltRscEntryPath } from "./server-entry.js";
|
|
22
25
|
import fs from "node:fs";
|
|
23
26
|
//#region src/build/prerender-paths.ts
|
|
24
27
|
const PRERENDER_PATH_DISCOVERY_ENV = "__VINEXT_PRERENDER_PATH_DISCOVERY";
|
|
@@ -62,7 +65,7 @@ function addPath(paths, seen, pathname) {
|
|
|
62
65
|
}
|
|
63
66
|
function throwDiscoveryFailure(route, error) {
|
|
64
67
|
const message = error instanceof Error ? error.message : String(error);
|
|
65
|
-
if (/cloudflare:|ERR_UNSUPPORTED_ESM_URL_SCHEME/i.test(message)) throw new Error(`Failed to discover warmup path(s) for ${route}: Cloudflare runtime bindings cannot execute in the local Node prerender server. Use \`vinext-cloudflare deploy --
|
|
68
|
+
if (/cloudflare:|ERR_UNSUPPORTED_ESM_URL_SCHEME/i.test(message)) throw new Error(`Failed to discover warmup path(s) for ${route}: Cloudflare runtime bindings cannot execute in the local Node prerender server. Use \`vinext-cloudflare deploy --warm-cache\` so path discovery runs against the staged Worker version.`, { cause: error });
|
|
66
69
|
throw new Error(`Failed to discover warmup path(s) for ${route}: ${message}`, { cause: error });
|
|
67
70
|
}
|
|
68
71
|
function validatePagesStaticPathsResult(value, route) {
|
|
@@ -85,28 +88,6 @@ function hasUnsafeRawUrlPathCharacter(value) {
|
|
|
85
88
|
}
|
|
86
89
|
return false;
|
|
87
90
|
}
|
|
88
|
-
function getDynamicPatternParams(pattern) {
|
|
89
|
-
return pattern.split("/").filter((segment) => segment.startsWith(":")).map((segment) => ({
|
|
90
|
-
name: segment.slice(1, segment.endsWith("+") || segment.endsWith("*") ? -1 : void 0),
|
|
91
|
-
optional: segment.endsWith("*"),
|
|
92
|
-
repeat: segment.endsWith("+") || segment.endsWith("*")
|
|
93
|
-
}));
|
|
94
|
-
}
|
|
95
|
-
function validateDiscoveredParams(value, pattern, source) {
|
|
96
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) throw new Error(`${source} must return parameter objects for ${pattern}.`);
|
|
97
|
-
const params = { ...value };
|
|
98
|
-
for (const { name, optional, repeat } of getDynamicPatternParams(pattern)) {
|
|
99
|
-
const hasValue = Object.prototype.hasOwnProperty.call(params, name);
|
|
100
|
-
let paramValue = params[name];
|
|
101
|
-
if (optional && hasValue && (paramValue === null || paramValue === void 0 || paramValue === false)) {
|
|
102
|
-
paramValue = [];
|
|
103
|
-
params[name] = paramValue;
|
|
104
|
-
}
|
|
105
|
-
if (!(repeat ? Array.isArray(paramValue) && paramValue.every((entry) => typeof entry === "string") : typeof paramValue === "string")) throw new Error(`Parameter ${name} from ${source} for ${pattern} must be ${repeat ? "an array of strings" : "a string"}.`);
|
|
106
|
-
if ((Array.isArray(paramValue) ? paramValue : [paramValue]).some((entry) => entry === "." || entry === "..")) throw new Error(`Parameter ${name} from ${source} for ${pattern} must not contain dot path segments.`);
|
|
107
|
-
}
|
|
108
|
-
return params;
|
|
109
|
-
}
|
|
110
91
|
function validatePagesStaticPathsEntry(entry, pattern) {
|
|
111
92
|
if (typeof entry === "string") {
|
|
112
93
|
if (!entry.startsWith("/") || entry.includes("//") || entry.includes("?") || entry.includes("#") || hasUnsafeRawUrlPathCharacter(entry)) throw new Error(`The provided path \`${entry}\` from getStaticPaths does not match the route pattern \`${pattern}\`.`);
|
|
@@ -246,6 +227,8 @@ async function collectPagesPaths(options) {
|
|
|
246
227
|
const dataPaths = [];
|
|
247
228
|
const seenDataPaths = /* @__PURE__ */ new Set();
|
|
248
229
|
const fallbackRoutePatterns = [];
|
|
230
|
+
const nonDynamicPaths = [];
|
|
231
|
+
const seenNonDynamicPaths = /* @__PURE__ */ new Set();
|
|
249
232
|
for (const route of pageRoutes) {
|
|
250
233
|
if (apiPatterns.has(route.pattern)) continue;
|
|
251
234
|
if (BLOCKED_PAGES.includes(route.pattern)) continue;
|
|
@@ -256,14 +239,17 @@ async function collectPagesPaths(options) {
|
|
|
256
239
|
if (options.i18n) for (const locale of options.i18n.locales) {
|
|
257
240
|
const pathname = localizePagesPath(route.pattern, locale, options.i18n);
|
|
258
241
|
addPath(paths, seen, pathname);
|
|
242
|
+
addPath(nonDynamicPaths, seenNonDynamicPaths, pathname);
|
|
259
243
|
if (hasStaticProps || hasServerSideProps) addPath(dataPaths, seenDataPaths, pathname);
|
|
260
244
|
}
|
|
261
245
|
else {
|
|
262
246
|
addPath(paths, seen, route.pattern);
|
|
247
|
+
addPath(nonDynamicPaths, seenNonDynamicPaths, route.pattern);
|
|
263
248
|
if (hasStaticProps || hasServerSideProps) addPath(dataPaths, seenDataPaths, route.pattern);
|
|
264
249
|
}
|
|
265
250
|
continue;
|
|
266
251
|
}
|
|
252
|
+
if (!options.enumerateDynamicPaths) continue;
|
|
267
253
|
if (type === "ssr") continue;
|
|
268
254
|
if (!options.baseUrl) continue;
|
|
269
255
|
try {
|
|
@@ -301,6 +287,7 @@ async function collectPagesPaths(options) {
|
|
|
301
287
|
return {
|
|
302
288
|
dataPaths,
|
|
303
289
|
fallbackRoutePatterns,
|
|
290
|
+
nonDynamicPaths,
|
|
304
291
|
paths
|
|
305
292
|
};
|
|
306
293
|
}
|
|
@@ -312,15 +299,31 @@ async function excludePagesApiWarmPaths(options) {
|
|
|
312
299
|
return matchRoute(pagesPathname, apiRoutes) === null;
|
|
313
300
|
});
|
|
314
301
|
}
|
|
315
|
-
async function
|
|
302
|
+
async function resolvePagesWarmRouteMetadata(options) {
|
|
316
303
|
const pageRoutes = await pagesRouter(options.pagesDir, options.pageExtensions);
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
304
|
+
const classifications = /* @__PURE__ */ new Map();
|
|
305
|
+
const dataPaths = [];
|
|
306
|
+
const routePatterns = {};
|
|
307
|
+
for (const pathname of options.paths) {
|
|
308
|
+
const pagesPathname = options.i18n ? extractLocaleFromUrl(pathname, options.i18n).url : pathname;
|
|
309
|
+
const match = matchRoute(pagesPathname, pageRoutes);
|
|
310
|
+
if (!match) continue;
|
|
311
|
+
routePatterns[pathname] = {
|
|
320
312
|
kind: "pages-page",
|
|
321
313
|
pattern: match.route.pattern
|
|
322
|
-
}
|
|
323
|
-
|
|
314
|
+
};
|
|
315
|
+
let classification = classifications.get(match.route.filePath);
|
|
316
|
+
if (!classification) {
|
|
317
|
+
classification = classifyPagesRoute(match.route.filePath);
|
|
318
|
+
classifications.set(match.route.filePath, classification);
|
|
319
|
+
}
|
|
320
|
+
const { hasServerSideProps, hasStaticProps } = classification;
|
|
321
|
+
if (hasServerSideProps || hasStaticProps) dataPaths.push(pathname);
|
|
322
|
+
}
|
|
323
|
+
return {
|
|
324
|
+
dataPaths,
|
|
325
|
+
routePatterns
|
|
326
|
+
};
|
|
324
327
|
}
|
|
325
328
|
function localizePagesPath(pathname, locale, i18n) {
|
|
326
329
|
if (!i18n || !locale || locale === i18n.defaultLocale) return pathname;
|
|
@@ -352,27 +355,110 @@ function extractPagesStaticPathLocale(url, i18n) {
|
|
|
352
355
|
url: `${rest || "/"}${query}`
|
|
353
356
|
};
|
|
354
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* Whether Next.js classifies an App page route as static or SSG, read from its
|
|
360
|
+
* layout, page and parallel-slot sources with the helpers dispatch applies to
|
|
361
|
+
* the loaded modules. Only such a route has listed paths.
|
|
362
|
+
*
|
|
363
|
+
* An MDX source read without the MDX parser has unknown exports, so its route
|
|
364
|
+
* is "unreadable". Its paths are still listed: the built runtime reads the real
|
|
365
|
+
* exports and never stores a route that isn't static, while an unlisted path's
|
|
366
|
+
* render failure would be dropped instead of failing. But no probe renders an
|
|
367
|
+
* unreadable route's fallback, so it never certifies one.
|
|
368
|
+
*/
|
|
369
|
+
function classifyAppPageRouteStaticEligibility(route, readMdxEsm) {
|
|
370
|
+
let unreadable = false;
|
|
371
|
+
const readSegmentConfig = (filePath) => {
|
|
372
|
+
if (!filePath) return null;
|
|
373
|
+
let code = fs.readFileSync(filePath, "utf8");
|
|
374
|
+
if (filePath.toLowerCase().endsWith(".mdx")) {
|
|
375
|
+
let esm = null;
|
|
376
|
+
try {
|
|
377
|
+
esm = readMdxEsm?.(code) ?? null;
|
|
378
|
+
} catch {}
|
|
379
|
+
unreadable ||= esm === null;
|
|
380
|
+
code = esm ?? "";
|
|
381
|
+
}
|
|
382
|
+
const dynamic = extractExportConstString(code, "dynamic");
|
|
383
|
+
const revalidate = extractExportConstNumber(code, "revalidate");
|
|
384
|
+
const runtime = extractExportConstString(code, "runtime");
|
|
385
|
+
return {
|
|
386
|
+
...dynamic === null ? {} : { dynamic },
|
|
387
|
+
...hasRuntimeExportedName(code, "generateStaticParams") ? { generateStaticParams() {} } : {},
|
|
388
|
+
...revalidate === null ? {} : { revalidate },
|
|
389
|
+
...runtime === null ? {} : { runtime }
|
|
390
|
+
};
|
|
391
|
+
};
|
|
392
|
+
const layouts = route.layouts.map(readSegmentConfig);
|
|
393
|
+
const page = readSegmentConfig(route.pagePath);
|
|
394
|
+
const parallelBranches = route.parallelSlots.map((slot) => ({
|
|
395
|
+
configLayouts: (slot.configLayoutPaths ?? []).map(readSegmentConfig),
|
|
396
|
+
configLayoutTreePositions: slot.configLayoutTreePositions ?? [],
|
|
397
|
+
isDefault: !slot.pagePath,
|
|
398
|
+
layout: readSegmentConfig(slot.layoutPath),
|
|
399
|
+
name: slot.name,
|
|
400
|
+
ownerTreePosition: slot.ownerTreePosition ?? null,
|
|
401
|
+
page: readSegmentConfig(slot.pagePath ?? slot.defaultPath),
|
|
402
|
+
routeSegments: slot.routeSegments
|
|
403
|
+
}));
|
|
404
|
+
if (unreadable) return "unreadable";
|
|
405
|
+
const segmentConfig = resolveAppPageSegmentConfig({
|
|
406
|
+
layouts,
|
|
407
|
+
layoutTreePositions: route.layoutTreePositions,
|
|
408
|
+
page,
|
|
409
|
+
parallelBranches,
|
|
410
|
+
routeSegments: route.routeSegments
|
|
411
|
+
});
|
|
412
|
+
return isAppPageStaticEligible({
|
|
413
|
+
dynamicConfig: segmentConfig.dynamicConfig,
|
|
414
|
+
hasGenerateStaticParams: hasAppPageGenerateStaticParamsAtLastDynamicSegment({
|
|
415
|
+
childrenSlot: route.childrenSlot ?? null,
|
|
416
|
+
layouts,
|
|
417
|
+
layoutTreePositions: route.layoutTreePositions,
|
|
418
|
+
page,
|
|
419
|
+
parallelBranches,
|
|
420
|
+
routeSegments: route.routeSegments
|
|
421
|
+
}),
|
|
422
|
+
isDynamicRoute: route.isDynamic,
|
|
423
|
+
isStaticGenerationEdgeRuntime: isEdgeRuntime(resolveAppPageStaticGenerationRuntime(collectAppPageStaticGenerationRuntimes({
|
|
424
|
+
childrenSlot: route.childrenSlot ?? null,
|
|
425
|
+
layouts,
|
|
426
|
+
layoutTreePositions: route.layoutTreePositions,
|
|
427
|
+
page,
|
|
428
|
+
parallelBranches,
|
|
429
|
+
routeSegments: route.routeSegments
|
|
430
|
+
}))),
|
|
431
|
+
revalidateSeconds: segmentConfig.revalidateSeconds
|
|
432
|
+
}) ? "eligible" : "ineligible";
|
|
433
|
+
}
|
|
434
|
+
/** Keys a path an App page route lists by the route and the pathname together. */
|
|
435
|
+
function appPageListingKey(routePattern, pathname) {
|
|
436
|
+
return `${routePattern}\0${pathname}`;
|
|
437
|
+
}
|
|
355
438
|
async function collectAppPaths(options) {
|
|
356
439
|
const routes = await appRouter(options.appDir, options.pageExtensions);
|
|
357
440
|
const paths = [];
|
|
358
441
|
const seen = /* @__PURE__ */ new Set();
|
|
359
|
-
const loadingShellPaths = [];
|
|
360
|
-
const seenLoadingShellPaths = /* @__PURE__ */ new Set();
|
|
361
442
|
const routeHandlerPaths = [];
|
|
362
443
|
const seenRouteHandlerPaths = /* @__PURE__ */ new Set();
|
|
363
444
|
const fallbackRoutePatterns = [];
|
|
445
|
+
const nonDynamicPaths = [];
|
|
446
|
+
const seenNonDynamicPaths = /* @__PURE__ */ new Set();
|
|
447
|
+
const listedRoutePaths = /* @__PURE__ */ new Set();
|
|
364
448
|
const staticParamsCache = /* @__PURE__ */ new Map();
|
|
365
449
|
let requireNonEmptyStaticParams = false;
|
|
366
450
|
const staticParamsMap = new Proxy({}, {
|
|
367
451
|
get(_target, pattern) {
|
|
368
452
|
return async ({ params }) => {
|
|
369
453
|
if (!options.baseUrl) return null;
|
|
370
|
-
const
|
|
454
|
+
const rejectEmptyResults = requireNonEmptyStaticParams;
|
|
455
|
+
const cacheKey = `${pattern}\0${JSON.stringify(params)}\0${rejectEmptyResults}`;
|
|
371
456
|
let request = staticParamsCache.get(cacheKey);
|
|
372
457
|
if (request === void 0) {
|
|
373
458
|
request = (async () => {
|
|
374
459
|
const search = new URLSearchParams({ pattern });
|
|
375
460
|
if (Object.keys(params).length > 0) search.set("parentParams", JSON.stringify(params));
|
|
461
|
+
if (rejectEmptyResults) search.set("rejectEmptyResults", "1");
|
|
376
462
|
const text = await fetchDiscoveryEndpoint(`${options.baseUrl}/__vinext/prerender/static-params?${search}`, options.secretHeaders, options.retryOptions);
|
|
377
463
|
if (text === null) return null;
|
|
378
464
|
const value = JSON.parse(text);
|
|
@@ -389,7 +475,7 @@ async function collectAppPaths(options) {
|
|
|
389
475
|
staticParamsCache.set(cacheKey, request);
|
|
390
476
|
}
|
|
391
477
|
const value = await request;
|
|
392
|
-
if (
|
|
478
|
+
if (rejectEmptyResults && value?.length === 0) throw new Error("When using Cache Components, all `generateStaticParams` functions must return at least one result. This is to ensure that we can perform build-time validation that there is no other dynamic accesses that would cause a runtime error.\n\nLearn more: https://nextjs.org/docs/messages/empty-generate-static-params");
|
|
393
479
|
return value;
|
|
394
480
|
};
|
|
395
481
|
},
|
|
@@ -397,6 +483,7 @@ async function collectAppPaths(options) {
|
|
|
397
483
|
return false;
|
|
398
484
|
}
|
|
399
485
|
});
|
|
486
|
+
const readMdxEsm = !options.cacheComponents && options.pageExtensions.includes("mdx") ? await loadMdxEsmReader(options.root) : null;
|
|
400
487
|
for (const route of routes) {
|
|
401
488
|
const isRouteHandler = route.routePath !== null && route.pagePath === null;
|
|
402
489
|
const renderEntryPath = isRouteHandler ? route.routePath : getAppRouteRenderEntryPath(route);
|
|
@@ -408,19 +495,22 @@ async function collectAppPaths(options) {
|
|
|
408
495
|
const { type } = classifyAppRoute(renderEntryPath, route.routePath, route.isDynamic);
|
|
409
496
|
if (type === "api") continue;
|
|
410
497
|
}
|
|
411
|
-
const
|
|
498
|
+
const staticEligibility = isRouteHandler || options.cacheComponents ? "eligible" : classifyAppPageRouteStaticEligibility(route, readMdxEsm);
|
|
499
|
+
const isStaticEligible = staticEligibility !== "ineligible";
|
|
412
500
|
const addDiscoveredPath = (pathname) => {
|
|
413
501
|
if (isRouteHandler) {
|
|
414
502
|
addPath(routeHandlerPaths, seenRouteHandlerPaths, pathname);
|
|
415
503
|
return;
|
|
416
504
|
}
|
|
417
505
|
addPath(paths, seen, pathname);
|
|
418
|
-
if (
|
|
506
|
+
if (isStaticEligible) listedRoutePaths.add(appPageListingKey(route.pattern, pathname));
|
|
419
507
|
};
|
|
420
508
|
if (!route.isDynamic) {
|
|
421
509
|
addDiscoveredPath(route.pattern);
|
|
510
|
+
addPath(nonDynamicPaths, seenNonDynamicPaths, route.pattern);
|
|
422
511
|
continue;
|
|
423
512
|
}
|
|
513
|
+
if (!options.enumerateDynamicPaths) continue;
|
|
424
514
|
requireNonEmptyStaticParams = options.cacheComponents && !isRouteHandler;
|
|
425
515
|
try {
|
|
426
516
|
const generateStaticParams = staticParamsMap[route.pattern];
|
|
@@ -432,20 +522,21 @@ async function collectAppPaths(options) {
|
|
|
432
522
|
for (const parentParams of parentParamSets) {
|
|
433
523
|
const childResults = await generateStaticParams({ params: parentParams });
|
|
434
524
|
if (childResults === null) {
|
|
435
|
-
paramSets =
|
|
525
|
+
paramSets = layoutOnlyParamSets(route, parentParamSets);
|
|
436
526
|
break;
|
|
437
527
|
}
|
|
438
|
-
if (Array.isArray(childResults))
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
528
|
+
if (Array.isArray(childResults)) {
|
|
529
|
+
if (childResults.length === 0) paramSets.push(parentParams);
|
|
530
|
+
for (const childParams of childResults) paramSets.push({
|
|
531
|
+
...parentParams,
|
|
532
|
+
...childParams
|
|
533
|
+
});
|
|
534
|
+
}
|
|
442
535
|
}
|
|
536
|
+
if (paramSets !== null) paramSets = routeStaticParamSets(route, paramSets);
|
|
443
537
|
} else {
|
|
444
538
|
const results = await generateStaticParams({ params: {} });
|
|
445
|
-
|
|
446
|
-
const layoutParamSets = await resolveParentParams(route, staticParamsMap, { includeLastDynamicSegment: true });
|
|
447
|
-
paramSets = layoutParamSets.length > 0 ? layoutParamSets : null;
|
|
448
|
-
} else paramSets = Array.isArray(results) ? results : [];
|
|
539
|
+
paramSets = results === null ? null : routeStaticParamSets(route, Array.isArray(results) ? results : []);
|
|
449
540
|
}
|
|
450
541
|
if (!paramSets?.length) {
|
|
451
542
|
if (isRouteHandler) {
|
|
@@ -475,7 +566,7 @@ async function collectAppPaths(options) {
|
|
|
475
566
|
page: readDynamicConfig(renderEntryPath),
|
|
476
567
|
parallelSegments: parallelSegments.map(readDynamicConfig)
|
|
477
568
|
});
|
|
478
|
-
if ((paramSets !== null || dynamicConfig === "force-static" || dynamicConfig === "error") && !hasDynamicSegment) fallbackRoutePatterns.push({
|
|
569
|
+
if ((paramSets !== null || dynamicConfig === "force-static" || dynamicConfig === "error") && !hasDynamicSegment && staticEligibility === "eligible") fallbackRoutePatterns.push({
|
|
479
570
|
kind: "app-page",
|
|
480
571
|
pattern: route.pattern
|
|
481
572
|
});
|
|
@@ -491,13 +582,15 @@ async function collectAppPaths(options) {
|
|
|
491
582
|
}
|
|
492
583
|
return {
|
|
493
584
|
fallbackRoutePatterns,
|
|
494
|
-
|
|
585
|
+
nonDynamicPaths,
|
|
495
586
|
paths,
|
|
496
|
-
routeHandlerPaths
|
|
587
|
+
routeHandlerPaths,
|
|
588
|
+
listedRoutePaths
|
|
497
589
|
};
|
|
498
590
|
}
|
|
499
591
|
async function resolveAppWarmPaths(options) {
|
|
500
592
|
const appRoutes = await appRouter(options.appDir, options.pageExtensions);
|
|
593
|
+
const loadingBoundaryRoutePatterns = appRoutes.filter((route) => !(route.routePath && !route.pagePath) && appRouteHasMainTreeLoadingBoundary(route)).map((route) => route.pattern).sort();
|
|
501
594
|
const routeHandlerClassifications = new Map(appRoutes.flatMap((route) => route.routePath && !route.pagePath ? [[route.routePath, classifyAppRouteHandler(route.routePath)]] : []));
|
|
502
595
|
const [pageRoutes, apiRoutes] = options.pagesDir ? await Promise.all([pagesRouter(options.pagesDir, options.pageExtensions), apiRouter(options.pagesDir, options.pageExtensions)]) : [[], []];
|
|
503
596
|
const rscPaths = [];
|
|
@@ -552,13 +645,13 @@ async function resolveAppWarmPaths(options) {
|
|
|
552
645
|
appPaths,
|
|
553
646
|
appRoutePaths,
|
|
554
647
|
htmlPaths,
|
|
648
|
+
loadingBoundaryRoutePatterns,
|
|
555
649
|
loadingShellPaths,
|
|
556
650
|
pagesPaths,
|
|
557
651
|
routePatterns,
|
|
558
652
|
rscPaths
|
|
559
653
|
};
|
|
560
654
|
}
|
|
561
|
-
const CACHEABILITY_POLICY_HEADER_NAMES = new Set(CACHEABILITY_POLICY_HEADERS);
|
|
562
655
|
function cachePolicyRuleMatchesWarmPath(pathname, rule, config) {
|
|
563
656
|
const canonicalPathname = normalizePathTrailingSlash(pathname, config.trailingSlash);
|
|
564
657
|
return [void 0, ...config.i18n?.domains?.map((domain) => domain.domain) ?? []].some((hostname) => {
|
|
@@ -607,8 +700,8 @@ function routePatternCouldIntersectCachePolicyRule(routePattern, rule, basePath)
|
|
|
607
700
|
* request-specific next.config cache policy. The final Worker still evaluates
|
|
608
701
|
* every concrete response before emitting public cache headers.
|
|
609
702
|
*/
|
|
610
|
-
function annotateCacheabilityProbeSafety(routePatterns, config) {
|
|
611
|
-
const cachePolicyRules = config.headers.filter((rule) => rule.headers.some((header) =>
|
|
703
|
+
function annotateCacheabilityProbeSafety(routePatterns, config, routeMayResolve, requestStageMayTerminate, unlisted, isResponsePolicyHeader) {
|
|
704
|
+
const cachePolicyRules = config.headers.filter((rule) => rule.headers.some((header) => isResponsePolicyHeader(header.key)));
|
|
612
705
|
const matchingPolicyRules = new Map(Object.keys(routePatterns).map((pathname) => [pathname, new Set(cachePolicyRules.filter((rule) => cachePolicyRuleMatchesWarmPath(pathname, rule, config)))]));
|
|
613
706
|
const pathsByPattern = /* @__PURE__ */ new Map();
|
|
614
707
|
for (const [pathname, route] of Object.entries(routePatterns)) {
|
|
@@ -628,44 +721,82 @@ function annotateCacheabilityProbeSafety(routePatterns, config) {
|
|
|
628
721
|
const canPrunePattern = canPrunePatterns.get(patternKey) ?? false;
|
|
629
722
|
return [pathname, {
|
|
630
723
|
...route,
|
|
631
|
-
cacheabilityProbe: {
|
|
724
|
+
cacheabilityProbe: {
|
|
725
|
+
canPrunePattern,
|
|
726
|
+
...routeMayResolve.has(pathname) ? { routeMayResolve: true } : {},
|
|
727
|
+
...requestStageMayTerminate.has(pathname) ? { requestStageMayTerminate: true } : {},
|
|
728
|
+
...unlisted.has(pathname) ? { unlisted: true } : {}
|
|
729
|
+
}
|
|
632
730
|
}];
|
|
633
731
|
}));
|
|
634
732
|
}
|
|
635
|
-
function
|
|
733
|
+
function configuredRulesAffectWarmPath(pathname, rules, config) {
|
|
636
734
|
const canonicalPathname = normalizePathTrailingSlash(pathname, config.trailingSlash);
|
|
637
735
|
const hostnames = [void 0, ...config.i18n?.domains?.map((domain) => domain.domain) ?? []];
|
|
638
736
|
const matchPathnames = new Set(hostnames.map((hostname) => normalizeDefaultLocalePathname(canonicalPathname, config.i18n, { hostname })));
|
|
639
|
-
return
|
|
640
|
-
...config.rewrites.beforeFiles,
|
|
641
|
-
...config.rewrites.afterFiles,
|
|
642
|
-
...config.rewrites.fallback
|
|
643
|
-
], ...config.redirects].some((rule) => Array.from(matchPathnames).some((matchPathname) => matchesRewriteSource(matchPathname, rule, {
|
|
737
|
+
return rules.some((rule) => Array.from(matchPathnames).some((matchPathname) => matchesRewriteSource(matchPathname, rule, {
|
|
644
738
|
basePath: config.basePath,
|
|
645
739
|
hadBasePath: true
|
|
646
740
|
})));
|
|
647
741
|
}
|
|
742
|
+
/**
|
|
743
|
+
* Whether a configured rewrite can replace a route-owned warm response.
|
|
744
|
+
* Non-dynamic filesystem routes win before `afterFiles`, while every concrete
|
|
745
|
+
* path discovered here wins dynamic matching before `fallback`.
|
|
746
|
+
*/
|
|
747
|
+
function configuredRewritesCanReplaceWarmPath(pathname, rewrites, hasNonDynamicRoute, config, include) {
|
|
748
|
+
return configuredRulesAffectWarmPath(pathname, [...rewrites.beforeFiles.filter(include), ...hasNonDynamicRoute ? [] : rewrites.afterFiles.filter(include)], config);
|
|
749
|
+
}
|
|
750
|
+
function findMiddlewareConventionFile(root, appDir, pagesDir, pageExtensions) {
|
|
751
|
+
const routeDir = appDir ?? pagesDir;
|
|
752
|
+
const routeRoot = routeDir ? path.dirname(routeDir) : root;
|
|
753
|
+
const conventionDir = routeRoot === path.join(root, "src") ? routeRoot : root;
|
|
754
|
+
for (const name of ["proxy", "middleware"]) for (const extension of pageExtensions) {
|
|
755
|
+
const filePath = path.join(conventionDir, `${name}.${extension}`);
|
|
756
|
+
if (fs.existsSync(filePath)) return filePath;
|
|
757
|
+
}
|
|
758
|
+
return null;
|
|
759
|
+
}
|
|
760
|
+
/** @internal Match the pathname forms and locale provenance used by middleware runtime. */
|
|
761
|
+
function matchesMiddlewareWarmPath(pathname, matcher, i18n) {
|
|
762
|
+
const encodedPathname = new URL(pathname, "https://vinext.invalid").pathname;
|
|
763
|
+
const firstSegment = encodedPathname.split("/", 3)[1]?.toLowerCase();
|
|
764
|
+
const localeContexts = i18n ? i18n.locales.some((locale) => locale.toLowerCase() === firstSegment) ? [{ kind: "literal" }] : Array.from(/* @__PURE__ */ new Set([i18n.defaultLocale, ...i18n.domains?.map((domain) => domain.defaultLocale) ?? []]), (defaultLocale) => ({
|
|
765
|
+
defaultLocale,
|
|
766
|
+
kind: "defaulted"
|
|
767
|
+
})) : [void 0];
|
|
768
|
+
const matchPathnames = [encodedPathname];
|
|
769
|
+
try {
|
|
770
|
+
const decodedPathname = decodeURIComponent(encodedPathname);
|
|
771
|
+
if (decodedPathname !== encodedPathname) matchPathnames.push(decodedPathname);
|
|
772
|
+
} catch {}
|
|
773
|
+
return matchPathnames.some((matchPathname) => localeContexts.some((localeContext) => matchesMiddlewarePathname(matchPathname, matcher, i18n, localeContext)));
|
|
774
|
+
}
|
|
648
775
|
async function startPathDiscoveryServer(options) {
|
|
649
776
|
return startProdServer({
|
|
650
777
|
port: 0,
|
|
651
778
|
host: "127.0.0.1",
|
|
652
779
|
outDir: options.pagesBundlePath ? path.dirname(path.dirname(options.pagesBundlePath)) : path.dirname(options.serverDir),
|
|
653
780
|
rscEntryPath: options.rscBundlePath,
|
|
781
|
+
serverDir: options.serverDir,
|
|
654
782
|
serverEntryPath: options.pagesBundlePath,
|
|
655
783
|
noCompression: true,
|
|
656
784
|
purpose: "prerender"
|
|
657
785
|
});
|
|
658
786
|
}
|
|
659
|
-
async function
|
|
787
|
+
async function discoverPrerenderPathManifest(options) {
|
|
660
788
|
const { root } = options;
|
|
661
789
|
const configuredRouteDirs = resolveConfiguredRouteDirs(root, options.routeRootConfig);
|
|
662
790
|
const appDir = options.appDir !== void 0 ? options.appDir : configuredRouteDirs.appDir;
|
|
663
791
|
const pagesDir = options.pagesDir !== void 0 ? options.pagesDir : configuredRouteDirs.pagesDir;
|
|
664
792
|
if (!appDir && !pagesDir) return null;
|
|
665
|
-
const
|
|
793
|
+
const configuredRscServerDir = options.routeRootConfig?.rscOutDir ? path.resolve(root, options.routeRootConfig.rscOutDir) : path.join(root, "dist", "server");
|
|
794
|
+
const defaultRscBundlePath = resolveBuiltRscEntryPath(configuredRscServerDir);
|
|
666
795
|
const rscBundlePath = options.rscBundlePath ?? defaultRscBundlePath;
|
|
796
|
+
const relativeRscEntryPath = path.relative(configuredRscServerDir, rscBundlePath);
|
|
797
|
+
const rscServerDir = !relativeRscEntryPath.startsWith("../") && !path.isAbsolute(relativeRscEntryPath) ? configuredRscServerDir : path.dirname(rscBundlePath);
|
|
667
798
|
const pagesBundlePath = options.pagesBundlePath ?? path.join(root, "dist", "server", "entry.js");
|
|
668
|
-
const bundleServerDir = fs.existsSync(rscBundlePath) ?
|
|
799
|
+
const bundleServerDir = fs.existsSync(rscBundlePath) ? rscServerDir : path.dirname(pagesBundlePath);
|
|
669
800
|
const manifestDir = path.join(root, "dist", "server");
|
|
670
801
|
const config = options.nextConfig ? { ...options.nextConfig } : { ...await resolveNextConfig(await loadNextConfig(root, PHASE_PRODUCTION_BUILD), root) };
|
|
671
802
|
const builtBuildId = readBuiltBuildId(manifestDir) ?? readBuiltBuildId(bundleServerDir);
|
|
@@ -677,12 +808,11 @@ async function emitPrerenderPathManifest(options) {
|
|
|
677
808
|
const seenPagesPaths = /* @__PURE__ */ new Set();
|
|
678
809
|
const discoveredPagesDataPaths = [];
|
|
679
810
|
const seenPagesDataPaths = /* @__PURE__ */ new Set();
|
|
680
|
-
const discoveredAppPaths = [];
|
|
681
|
-
const seenAppPaths = /* @__PURE__ */ new Set();
|
|
682
811
|
const discoveredRouteHandlerPaths = [];
|
|
683
812
|
const seenRouteHandlerPaths = /* @__PURE__ */ new Set();
|
|
684
|
-
const
|
|
685
|
-
const
|
|
813
|
+
const discoveredNonDynamicPathSet = /* @__PURE__ */ new Set();
|
|
814
|
+
const appListedRoutePaths = /* @__PURE__ */ new Set();
|
|
815
|
+
const candidateOnlyPathSet = /* @__PURE__ */ new Set();
|
|
686
816
|
const fallbackRoutePatterns = [];
|
|
687
817
|
await withPrerenderEndpoints(async () => {
|
|
688
818
|
let prodServer = null;
|
|
@@ -718,21 +848,22 @@ async function emitPrerenderPathManifest(options) {
|
|
|
718
848
|
appDir,
|
|
719
849
|
baseUrl,
|
|
720
850
|
cacheComponents: config.cacheComponents,
|
|
851
|
+
enumerateDynamicPaths: options.candidatePathsOnly !== true,
|
|
721
852
|
pageExtensions: config.pageExtensions,
|
|
722
853
|
retryOptions: pathDiscoveryRetryOptions,
|
|
854
|
+
root,
|
|
723
855
|
secretHeaders
|
|
724
856
|
});
|
|
725
|
-
for (const pathname of appPathResult.paths)
|
|
726
|
-
addPath(paths, seen, pathname);
|
|
727
|
-
addPath(discoveredAppPaths, seenAppPaths, pathname);
|
|
728
|
-
}
|
|
729
|
-
for (const pathname of appPathResult.loadingShellPaths) addPath(discoveredLoadingShellPaths, seenLoadingShellPaths, pathname);
|
|
857
|
+
for (const pathname of appPathResult.paths) addPath(paths, seen, pathname);
|
|
730
858
|
for (const pathname of appPathResult.routeHandlerPaths) addPath(discoveredRouteHandlerPaths, seenRouteHandlerPaths, pathname);
|
|
859
|
+
for (const pathname of appPathResult.nonDynamicPaths) discoveredNonDynamicPathSet.add(pathname);
|
|
731
860
|
fallbackRoutePatterns.push(...appPathResult.fallbackRoutePatterns);
|
|
861
|
+
for (const key of appPathResult.listedRoutePaths) appListedRoutePaths.add(key);
|
|
732
862
|
}
|
|
733
863
|
if (pagesDir) {
|
|
734
864
|
const pagesPathResult = await collectPagesPaths({
|
|
735
865
|
baseUrl,
|
|
866
|
+
enumerateDynamicPaths: options.candidatePathsOnly !== true,
|
|
736
867
|
i18n: config.i18n,
|
|
737
868
|
pagesDir,
|
|
738
869
|
pageExtensions: config.pageExtensions,
|
|
@@ -744,13 +875,32 @@ async function emitPrerenderPathManifest(options) {
|
|
|
744
875
|
addPath(discoveredPagesPaths, seenPagesPaths, pathname);
|
|
745
876
|
}
|
|
746
877
|
for (const pathname of pagesPathResult.dataPaths) addPath(discoveredPagesDataPaths, seenPagesDataPaths, pathname);
|
|
878
|
+
for (const pathname of pagesPathResult.nonDynamicPaths) discoveredNonDynamicPathSet.add(pathname);
|
|
747
879
|
fallbackRoutePatterns.push(...pagesPathResult.fallbackRoutePatterns);
|
|
748
880
|
}
|
|
749
881
|
} finally {
|
|
750
882
|
if (prodServer) await new Promise((resolve) => prodServer.server.close(() => resolve()));
|
|
751
883
|
}
|
|
752
884
|
});
|
|
753
|
-
const
|
|
885
|
+
for (const publicPathname of options.candidatePaths ?? []) {
|
|
886
|
+
let pathname = normalizePathTrailingSlash(new URL(publicPathname, "http://vinext.local").pathname, false);
|
|
887
|
+
if (config.basePath) {
|
|
888
|
+
if (pathname === config.basePath) pathname = "/";
|
|
889
|
+
else if (pathname.startsWith(`${config.basePath}/`)) pathname = pathname.slice(config.basePath.length);
|
|
890
|
+
else continue;
|
|
891
|
+
}
|
|
892
|
+
if (!seen.has(pathname)) candidateOnlyPathSet.add(pathname);
|
|
893
|
+
addPath(paths, seen, pathname);
|
|
894
|
+
if (pagesDir) addPath(discoveredPagesPaths, seenPagesPaths, pathname);
|
|
895
|
+
}
|
|
896
|
+
const hasStagedRequestRouting = options.requestRouting === "uncached-stage";
|
|
897
|
+
const middlewarePath = hasStagedRequestRouting ? findMiddlewareConventionFile(root, appDir, pagesDir, config.pageExtensions) : null;
|
|
898
|
+
const configuredMatcher = middlewarePath ? extractMiddlewareMatcherConfig(middlewarePath) : void 0;
|
|
899
|
+
const middlewareMayRouteWarmPath = (pathname) => middlewarePath !== null && matchesMiddlewareWarmPath(pathname, configuredMatcher, config.i18n);
|
|
900
|
+
const routedWarmPaths = [...paths, ...discoveredRouteHandlerPaths];
|
|
901
|
+
const routeMayResolveWarmPathSet = new Set(hasStagedRequestRouting ? routedWarmPaths.filter((pathname) => middlewareMayRouteWarmPath(pathname) || configuredRewritesCanReplaceWarmPath(pathname, config.rewrites, discoveredNonDynamicPathSet.has(pathname), config, (rewrite) => !isExternalUrl(rewrite.destination))) : []);
|
|
902
|
+
const requestStageMayTerminateWarmPathSet = new Set(hasStagedRequestRouting ? routedWarmPaths.filter((pathname) => middlewareMayRouteWarmPath(pathname) || configuredRulesAffectWarmPath(pathname, config.redirects, config) || configuredRewritesCanReplaceWarmPath(pathname, config.rewrites, discoveredNonDynamicPathSet.has(pathname), config, (rewrite) => isExternalUrl(rewrite.destination))) : []);
|
|
903
|
+
const excludedWarmPathSet = new Set(options.responseVary && !hasStagedRequestRouting ? routedWarmPaths.filter((pathname) => configuredRulesAffectWarmPath(pathname, config.redirects, config) || configuredRewritesCanReplaceWarmPath(pathname, config.rewrites, discoveredNonDynamicPathSet.has(pathname), config, () => true)) : []);
|
|
754
904
|
const configuredPagesWarmPaths = discoveredPagesPaths.filter((pathname) => !excludedWarmPathSet.has(pathname));
|
|
755
905
|
const resolvedPagesWarmPaths = !appDir && pagesDir ? await excludePagesApiWarmPaths({
|
|
756
906
|
i18n: config.i18n,
|
|
@@ -758,9 +908,20 @@ async function emitPrerenderPathManifest(options) {
|
|
|
758
908
|
pageExtensions: config.pageExtensions,
|
|
759
909
|
paths: configuredPagesWarmPaths
|
|
760
910
|
}) : configuredPagesWarmPaths;
|
|
761
|
-
const discoveredPagesDataPathSet = new Set(discoveredPagesDataPaths);
|
|
762
911
|
const configuredCandidatePaths = paths.filter((pathname) => !excludedWarmPathSet.has(pathname));
|
|
763
912
|
const configuredRouteHandlerPaths = discoveredRouteHandlerPaths.filter((pathname) => !excludedWarmPathSet.has(pathname));
|
|
913
|
+
const pagesWarmMetadata = pagesDir ? await resolvePagesWarmRouteMetadata({
|
|
914
|
+
i18n: config.i18n,
|
|
915
|
+
pagesDir,
|
|
916
|
+
pageExtensions: config.pageExtensions,
|
|
917
|
+
paths: resolvedPagesWarmPaths
|
|
918
|
+
}) : {
|
|
919
|
+
dataPaths: [],
|
|
920
|
+
routePatterns: {}
|
|
921
|
+
};
|
|
922
|
+
for (const pathname of pagesWarmMetadata.dataPaths) addPath(discoveredPagesDataPaths, seenPagesDataPaths, pathname);
|
|
923
|
+
const discoveredPagesDataPathSet = new Set(discoveredPagesDataPaths);
|
|
924
|
+
const pagesOnlyWarmPaths = resolvedPagesWarmPaths.filter((pathname) => pagesWarmMetadata.routePatterns[pathname] !== void 0);
|
|
764
925
|
const appOwnedWarmPaths = appDir ? await resolveAppWarmPaths({
|
|
765
926
|
appDir,
|
|
766
927
|
i18n: config.i18n,
|
|
@@ -770,22 +931,29 @@ async function emitPrerenderPathManifest(options) {
|
|
|
770
931
|
}) : {
|
|
771
932
|
appPaths: [],
|
|
772
933
|
appRoutePaths: [],
|
|
773
|
-
htmlPaths:
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
pageExtensions: config.pageExtensions,
|
|
780
|
-
paths: resolvedPagesWarmPaths
|
|
781
|
-
}) : {},
|
|
782
|
-
rscPaths: discoveredAppPaths
|
|
934
|
+
htmlPaths: pagesOnlyWarmPaths,
|
|
935
|
+
loadingBoundaryRoutePatterns: [],
|
|
936
|
+
loadingShellPaths: [],
|
|
937
|
+
pagesPaths: pagesOnlyWarmPaths,
|
|
938
|
+
routePatterns: pagesWarmMetadata.routePatterns,
|
|
939
|
+
rscPaths: []
|
|
783
940
|
};
|
|
784
|
-
const
|
|
785
|
-
|
|
941
|
+
for (const pathname of configuredCandidatePaths) {
|
|
942
|
+
if (appOwnedWarmPaths.routePatterns[pathname] || !routeMayResolveWarmPathSet.has(pathname) && !requestStageMayTerminateWarmPathSet.has(pathname)) continue;
|
|
943
|
+
appOwnedWarmPaths.htmlPaths.push(pathname);
|
|
944
|
+
(appDir ? appOwnedWarmPaths.appPaths : appOwnedWarmPaths.pagesPaths).push(pathname);
|
|
945
|
+
if (appDir && routeMayResolveWarmPathSet.has(pathname)) appOwnedWarmPaths.rscPaths.push(pathname);
|
|
946
|
+
appOwnedWarmPaths.routePatterns[pathname] = {
|
|
947
|
+
kind: appDir ? "app-page" : "pages-page",
|
|
948
|
+
pattern: pathname
|
|
949
|
+
};
|
|
950
|
+
}
|
|
951
|
+
const warmPaths = appOwnedWarmPaths.htmlPaths;
|
|
952
|
+
const pagesOwnedWarmPaths = appOwnedWarmPaths.pagesPaths;
|
|
786
953
|
const resolvedPagesDataWarmPaths = pagesOwnedWarmPaths.filter((pathname) => discoveredPagesDataPathSet.has(pathname));
|
|
787
954
|
const pagesDataPaths = resolvedPagesDataWarmPaths.map((pathname) => buildPagesDataHref(config.basePath, config.buildId, localizePagesDataPath(pathname, config.i18n), ""));
|
|
788
|
-
const
|
|
955
|
+
const unlistedPathSet = new Set(Object.entries(appOwnedWarmPaths.routePatterns).flatMap(([pathname, route]) => (route.kind === "app-page" ? !appListedRoutePaths.has(appPageListingKey(route.pattern, pathname)) : candidateOnlyPathSet.has(pathname)) ? [pathname] : []));
|
|
956
|
+
const routePatterns = annotateCacheabilityProbeSafety(appOwnedWarmPaths.routePatterns, config, routeMayResolveWarmPathSet, requestStageMayTerminateWarmPathSet, unlistedPathSet, (name) => name.trim().toLowerCase() === "cache-control" || options.isResponsePolicyHeader?.(name) === true);
|
|
789
957
|
for (let index = 0; index < resolvedPagesDataWarmPaths.length; index++) {
|
|
790
958
|
const route = routePatterns[resolvedPagesDataWarmPaths[index]];
|
|
791
959
|
if (route) {
|
|
@@ -799,6 +967,7 @@ async function emitPrerenderPathManifest(options) {
|
|
|
799
967
|
};
|
|
800
968
|
}
|
|
801
969
|
}
|
|
970
|
+
const includeCanonicalRsc = options.responseVary || options.includeCanonicalRsc;
|
|
802
971
|
const manifest = {
|
|
803
972
|
...appDir ? { appPaths: appOwnedWarmPaths.appPaths } : {},
|
|
804
973
|
...config.basePath ? { basePath: config.basePath } : {},
|
|
@@ -811,19 +980,26 @@ async function emitPrerenderPathManifest(options) {
|
|
|
811
980
|
} : {},
|
|
812
981
|
...excludedWarmPathSet.size > 0 ? { excludedWarmPaths: Array.from(excludedWarmPathSet) } : {},
|
|
813
982
|
...fallbackRoutePatterns.length > 0 ? { fallbackRoutePatterns } : {},
|
|
983
|
+
...appOwnedWarmPaths.loadingBoundaryRoutePatterns.length > 0 ? { loadingBoundaryRoutePatterns: appOwnedWarmPaths.loadingBoundaryRoutePatterns } : {},
|
|
814
984
|
...rscBuildId ? { rscBuildId } : {},
|
|
815
985
|
...options.responseVary ? { responseVary: options.responseVary } : {},
|
|
816
|
-
...
|
|
986
|
+
...includeCanonicalRsc ? { rscPaths: appOwnedWarmPaths.rscPaths } : {},
|
|
817
987
|
...Object.keys(routePatterns).length > 0 ? { routePatterns } : {},
|
|
818
988
|
...appOwnedWarmPaths.appRoutePaths.length > 0 ? { routeHandlerPaths: appOwnedWarmPaths.appRoutePaths } : {},
|
|
819
|
-
...
|
|
989
|
+
...includeCanonicalRsc ? { loadingShellPaths: appOwnedWarmPaths.loadingShellPaths } : {},
|
|
820
990
|
trailingSlash: config.trailingSlash,
|
|
821
991
|
paths: warmPaths
|
|
822
992
|
};
|
|
993
|
+
console.log(` Discovered ${warmPaths.length + appOwnedWarmPaths.appRoutePaths.length} CDN warmup path(s).`);
|
|
994
|
+
return manifest;
|
|
995
|
+
}
|
|
996
|
+
async function emitPrerenderPathManifest(options) {
|
|
997
|
+
const manifest = await discoverPrerenderPathManifest(options);
|
|
998
|
+
if (!manifest) return null;
|
|
999
|
+
const manifestDir = path.join(options.root, "dist", "server");
|
|
823
1000
|
fs.mkdirSync(manifestDir, { recursive: true });
|
|
824
1001
|
fs.writeFileSync(path.join(manifestDir, PRERENDER_PATHS_MANIFEST), JSON.stringify(manifest, null, 2) + "\n", "utf-8");
|
|
825
|
-
console.log(` Discovered ${warmPaths.length + appOwnedWarmPaths.appRoutePaths.length} CDN warmup path(s).`);
|
|
826
1002
|
return manifest;
|
|
827
1003
|
}
|
|
828
1004
|
//#endregion
|
|
829
|
-
export { DEFAULT_REMOTE_PATH_DISCOVERY_PHASE_TIMEOUT_MS, DEFAULT_REMOTE_PATH_DISCOVERY_RETRY_DELAY_MS, PRERENDER_PATHS_MANIFEST, PRERENDER_PATH_DISCOVERY_ENV, emitPrerenderPathManifest };
|
|
1005
|
+
export { DEFAULT_REMOTE_PATH_DISCOVERY_PHASE_TIMEOUT_MS, DEFAULT_REMOTE_PATH_DISCOVERY_RETRY_DELAY_MS, PRERENDER_PATHS_MANIFEST, PRERENDER_PATH_DISCOVERY_ENV, discoverPrerenderPathManifest, emitPrerenderPathManifest, matchesMiddlewareWarmPath };
|