vinext 0.0.54 → 0.1.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 +52 -15
- package/dist/build/clean-output.d.ts +1 -2
- package/dist/build/clean-output.js +0 -2
- package/dist/build/client-build-config.d.ts +16 -3
- package/dist/build/client-build-config.js +29 -4
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +211 -0
- package/dist/build/google-fonts/build-url.d.ts +1 -2
- package/dist/build/google-fonts/build-url.js +0 -2
- package/dist/build/google-fonts/fallback-metrics-data.js +0 -2
- package/dist/build/google-fonts/fallback-metrics.d.ts +1 -2
- package/dist/build/google-fonts/fallback-metrics.js +0 -2
- package/dist/build/google-fonts/font-data.js +0 -2
- package/dist/build/google-fonts/font-metadata.d.ts +1 -2
- package/dist/build/google-fonts/font-metadata.js +0 -2
- package/dist/build/google-fonts/get-axes.d.ts +1 -2
- package/dist/build/google-fonts/get-axes.js +0 -2
- package/dist/build/google-fonts/sort-variants.d.ts +1 -2
- package/dist/build/google-fonts/sort-variants.js +0 -2
- package/dist/build/google-fonts/validate.d.ts +1 -2
- package/dist/build/google-fonts/validate.js +0 -2
- package/dist/build/inline-css.d.ts +1 -2
- package/dist/build/inline-css.js +0 -2
- package/dist/build/layout-classification-types.d.ts +1 -2
- package/dist/build/layout-classification.d.ts +2 -3
- package/dist/build/layout-classification.js +1 -3
- package/dist/build/next-client-runtime-manifests.d.ts +14 -0
- package/dist/build/next-client-runtime-manifests.js +39 -0
- package/dist/build/nitro-route-rules.d.ts +1 -2
- package/dist/build/nitro-route-rules.js +0 -2
- package/dist/build/precompress.d.ts +1 -2
- package/dist/build/precompress.js +0 -2
- package/dist/build/prerender.d.ts +2 -3
- package/dist/build/prerender.js +14 -2
- package/dist/build/report.d.ts +1 -2
- package/dist/build/report.js +0 -2
- package/dist/build/route-classification-injector.d.ts +1 -2
- package/dist/build/route-classification-injector.js +4 -6
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/route-classification-manifest.js +5 -7
- package/dist/build/run-prerender.d.ts +1 -2
- package/dist/build/run-prerender.js +15 -7
- package/dist/build/server-manifest.d.ts +1 -2
- package/dist/build/server-manifest.js +0 -2
- package/dist/build/ssr-manifest.d.ts +1 -2
- package/dist/build/ssr-manifest.js +2 -4
- package/dist/build/standalone.d.ts +1 -2
- package/dist/build/standalone.js +0 -2
- package/dist/build/static-export.d.ts +2 -3
- package/dist/build/static-export.js +0 -2
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/check.d.ts +33 -2
- package/dist/check.js +321 -27
- package/dist/cli-args.d.ts +1 -2
- package/dist/cli-args.js +0 -2
- package/dist/cli.js +7 -13
- package/dist/client/instrumentation-client-inject.d.ts +1 -2
- package/dist/client/instrumentation-client-inject.js +0 -2
- package/dist/client/instrumentation-client-state.d.ts +1 -2
- package/dist/client/instrumentation-client-state.js +0 -2
- package/dist/client/instrumentation-client.d.ts +1 -2
- package/dist/client/instrumentation-client.js +0 -2
- package/dist/client/navigation-runtime.d.ts +2 -2
- package/dist/client/navigation-runtime.js +1 -3
- package/dist/client/pages-router-link-navigation.d.ts +1 -2
- package/dist/client/pages-router-link-navigation.js +0 -2
- package/dist/client/validate-module-path.d.ts +1 -2
- package/dist/client/validate-module-path.js +0 -2
- package/dist/client/vinext-next-data.d.ts +1 -2
- package/dist/client/vinext-next-data.js +0 -2
- package/dist/client/window-next.d.ts +1 -2
- package/dist/client/window-next.js +0 -2
- package/dist/cloudflare/index.d.ts +1 -1
- package/dist/cloudflare/index.js +1 -1
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +97 -0
- package/dist/cloudflare/{kv-cache-handler.d.ts → src/cache/kv-data-adapter.runtime.d.ts} +25 -6
- package/dist/cloudflare/{kv-cache-handler.js → src/cache/kv-data-adapter.runtime.js} +36 -28
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +2 -3
- package/dist/cloudflare/tpr.js +8 -8
- package/dist/config/config-matchers.d.ts +1 -2
- package/dist/config/config-matchers.js +0 -2
- package/dist/config/dotenv.d.ts +1 -2
- package/dist/config/dotenv.js +0 -2
- package/dist/config/next-config.d.ts +30 -3
- package/dist/config/next-config.js +47 -8
- package/dist/config/tsconfig-paths.d.ts +12 -4
- package/dist/config/tsconfig-paths.js +58 -31
- package/dist/deploy.d.ts +48 -3
- package/dist/deploy.js +141 -112
- package/dist/entries/app-browser-entry.d.ts +1 -2
- package/dist/entries/app-browser-entry.js +0 -2
- package/dist/entries/app-rsc-entry.d.ts +6 -5
- package/dist/entries/app-rsc-entry.js +62 -61
- package/dist/entries/app-rsc-manifest.d.ts +1 -2
- package/dist/entries/app-rsc-manifest.js +42 -12
- package/dist/entries/app-ssr-entry.d.ts +1 -2
- package/dist/entries/app-ssr-entry.js +0 -2
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +16 -5
- package/dist/entries/pages-entry-helpers.d.ts +2 -11
- package/dist/entries/pages-entry-helpers.js +1 -20
- package/dist/entries/pages-server-entry.d.ts +2 -3
- package/dist/entries/pages-server-entry.js +94 -670
- package/dist/entries/runtime-entry-module.d.ts +1 -2
- package/dist/entries/runtime-entry-module.js +0 -2
- package/dist/index.d.ts +22 -2
- package/dist/index.js +297 -140
- package/dist/init.d.ts +1 -2
- package/dist/init.js +1 -3
- package/dist/plugins/ast-utils.d.ts +20 -0
- package/dist/plugins/ast-utils.js +78 -0
- package/dist/plugins/async-hooks-stub.d.ts +1 -2
- package/dist/plugins/async-hooks-stub.js +0 -2
- package/dist/plugins/client-reference-dedup.d.ts +1 -2
- package/dist/plugins/client-reference-dedup.js +4 -8
- package/dist/plugins/css-data-url.d.ts +1 -2
- package/dist/plugins/css-data-url.js +0 -2
- package/dist/plugins/fonts.d.ts +13 -3
- package/dist/plugins/fonts.js +19 -13
- package/dist/plugins/import-meta-url.d.ts +16 -0
- package/dist/plugins/import-meta-url.js +347 -0
- package/dist/plugins/instrumentation-client.d.ts +1 -2
- package/dist/plugins/instrumentation-client.js +0 -2
- package/dist/plugins/middleware-server-only.d.ts +1 -2
- package/dist/plugins/middleware-server-only.js +0 -2
- package/dist/plugins/og-assets.d.ts +32 -8
- package/dist/plugins/og-assets.js +126 -34
- package/dist/plugins/optimize-imports.d.ts +1 -2
- package/dist/plugins/optimize-imports.js +9 -17
- package/dist/plugins/postcss.d.ts +1 -2
- package/dist/plugins/postcss.js +0 -2
- package/dist/plugins/remove-console.d.ts +1 -2
- package/dist/plugins/remove-console.js +0 -2
- package/dist/plugins/rsc-client-reference-loaders.d.ts +1 -2
- package/dist/plugins/rsc-client-reference-loaders.js +0 -2
- package/dist/plugins/rsc-client-shim-excludes.d.ts +1 -2
- package/dist/plugins/rsc-client-shim-excludes.js +0 -2
- package/dist/plugins/sass.d.ts +1 -2
- package/dist/plugins/sass.js +0 -2
- package/dist/plugins/server-externals-manifest.d.ts +1 -2
- package/dist/plugins/server-externals-manifest.js +0 -2
- package/dist/plugins/strip-server-exports.d.ts +1 -2
- package/dist/plugins/strip-server-exports.js +0 -2
- package/dist/routing/app-route-graph.d.ts +2 -9
- package/dist/routing/app-route-graph.js +9 -30
- package/dist/routing/app-router.d.ts +1 -2
- package/dist/routing/app-router.js +0 -2
- package/dist/routing/file-matcher.d.ts +6 -2
- package/dist/routing/file-matcher.js +15 -7
- package/dist/routing/pages-router.d.ts +1 -2
- package/dist/routing/pages-router.js +0 -2
- package/dist/routing/route-matching.d.ts +1 -2
- package/dist/routing/route-matching.js +0 -2
- package/dist/routing/route-pattern.d.ts +1 -2
- package/dist/routing/route-pattern.js +0 -2
- package/dist/routing/route-trie.d.ts +1 -2
- package/dist/routing/route-trie.js +0 -2
- package/dist/routing/route-validation.d.ts +1 -2
- package/dist/routing/route-validation.js +0 -2
- package/dist/routing/utils.d.ts +44 -2
- package/dist/routing/utils.js +62 -3
- package/dist/server/api-handler.d.ts +1 -2
- package/dist/server/api-handler.js +0 -2
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-browser-action-result.d.ts +9 -17
- package/dist/server/app-browser-action-result.js +25 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
- package/dist/server/app-browser-client-reuse-manifest.js +101 -0
- package/dist/server/app-browser-entry.js +352 -115
- package/dist/server/app-browser-error.d.ts +1 -2
- package/dist/server/app-browser-error.js +0 -2
- package/dist/server/app-browser-hydration.d.ts +1 -2
- package/dist/server/app-browser-hydration.js +0 -2
- package/dist/server/app-browser-interception-context.d.ts +1 -2
- package/dist/server/app-browser-interception-context.js +0 -2
- package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
- package/dist/server/app-browser-mpa-navigation.js +42 -0
- package/dist/server/app-browser-navigation-controller.d.ts +5 -4
- package/dist/server/app-browser-navigation-controller.js +3 -3
- package/dist/server/app-browser-popstate.d.ts +4 -3
- package/dist/server/app-browser-popstate.js +15 -3
- package/dist/server/app-browser-rsc-redirect.d.ts +1 -2
- package/dist/server/app-browser-rsc-redirect.js +0 -2
- package/dist/server/app-browser-state.d.ts +28 -4
- package/dist/server/app-browser-state.js +195 -11
- package/dist/server/app-browser-stream.d.ts +1 -2
- package/dist/server/app-browser-stream.js +0 -2
- package/dist/server/app-browser-visible-commit.d.ts +2 -3
- package/dist/server/app-browser-visible-commit.js +24 -17
- package/dist/server/app-client-reference-preloader.d.ts +1 -2
- package/dist/server/app-client-reference-preloader.js +0 -2
- package/dist/server/app-elements-wire.d.ts +14 -8
- package/dist/server/app-elements-wire.js +45 -24
- package/dist/server/app-elements.d.ts +2 -3
- package/dist/server/app-elements.js +2 -4
- package/dist/server/app-fallback-renderer.d.ts +5 -5
- package/dist/server/app-fallback-renderer.js +4 -3
- package/dist/server/app-history-state.d.ts +18 -2
- package/dist/server/app-history-state.js +68 -10
- package/dist/server/app-hook-warning-suppression.d.ts +1 -2
- package/dist/server/app-hook-warning-suppression.js +0 -2
- package/dist/server/app-inline-css-client.d.ts +1 -2
- package/dist/server/app-inline-css-client.js +0 -2
- package/dist/server/app-interception-context-header.d.ts +1 -2
- package/dist/server/app-interception-context-header.js +0 -2
- package/dist/server/app-layout-param-observation.d.ts +43 -0
- package/dist/server/app-layout-param-observation.js +168 -0
- package/dist/server/app-middleware.d.ts +1 -2
- package/dist/server/app-middleware.js +0 -2
- package/dist/server/app-mounted-slots-header.d.ts +1 -2
- package/dist/server/app-mounted-slots-header.js +0 -2
- package/dist/server/app-optimistic-routing.d.ts +1 -2
- package/dist/server/app-optimistic-routing.js +0 -2
- package/dist/server/app-page-boundary-render.d.ts +4 -3
- package/dist/server/app-page-boundary-render.js +20 -11
- package/dist/server/app-page-boundary.d.ts +11 -2
- package/dist/server/app-page-boundary.js +13 -4
- package/dist/server/app-page-cache.d.ts +3 -3
- package/dist/server/app-page-cache.js +36 -11
- package/dist/server/app-page-dispatch.d.ts +19 -5
- package/dist/server/app-page-dispatch.js +119 -24
- package/dist/server/app-page-element-builder.d.ts +3 -2
- package/dist/server/app-page-element-builder.js +9 -11
- package/dist/server/app-page-execution.d.ts +8 -3
- package/dist/server/app-page-execution.js +55 -24
- package/dist/server/app-page-head.d.ts +1 -2
- package/dist/server/app-page-head.js +6 -6
- package/dist/server/app-page-method.d.ts +1 -2
- package/dist/server/app-page-method.js +0 -2
- package/dist/server/app-page-params.d.ts +2 -2
- package/dist/server/app-page-params.js +14 -3
- package/dist/server/app-page-probe.d.ts +90 -2
- package/dist/server/app-page-probe.js +201 -6
- package/dist/server/app-page-render-identity.d.ts +1 -2
- package/dist/server/app-page-render-identity.js +0 -2
- package/dist/server/app-page-render-observation.d.ts +1 -2
- package/dist/server/app-page-render-observation.js +0 -2
- package/dist/server/app-page-render.d.ts +9 -3
- package/dist/server/app-page-render.js +167 -10
- package/dist/server/app-page-request.d.ts +4 -3
- package/dist/server/app-page-request.js +1 -3
- package/dist/server/app-page-response.d.ts +2 -2
- package/dist/server/app-page-response.js +5 -3
- package/dist/server/app-page-route-wiring.d.ts +14 -3
- package/dist/server/app-page-route-wiring.js +63 -11
- package/dist/server/app-page-search-params-observation.d.ts +10 -0
- package/dist/server/app-page-search-params-observation.js +20 -0
- package/dist/server/app-page-segment-state.d.ts +1 -2
- package/dist/server/app-page-segment-state.js +1 -8
- package/dist/server/app-page-stream.d.ts +19 -9
- package/dist/server/app-page-stream.js +28 -10
- package/dist/server/app-pages-bridge.d.ts +25 -0
- package/dist/server/app-pages-bridge.js +34 -0
- package/dist/server/app-post-middleware-context.d.ts +1 -2
- package/dist/server/app-post-middleware-context.js +0 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +21 -0
- package/dist/server/app-ppr-fallback-shell.js +82 -0
- package/dist/server/app-prerender-endpoints.d.ts +1 -2
- package/dist/server/app-prerender-endpoints.js +0 -2
- package/dist/server/app-prerender-static-params.d.ts +15 -2
- package/dist/server/app-prerender-static-params.js +44 -13
- package/dist/server/app-render-dependency.d.ts +3 -2
- package/dist/server/app-render-dependency.js +9 -3
- package/dist/server/app-request-context.d.ts +1 -2
- package/dist/server/app-request-context.js +0 -2
- package/dist/server/app-route-handler-cache.d.ts +1 -2
- package/dist/server/app-route-handler-cache.js +0 -2
- package/dist/server/app-route-handler-dispatch.d.ts +1 -2
- package/dist/server/app-route-handler-dispatch.js +0 -2
- package/dist/server/app-route-handler-execution.d.ts +1 -2
- package/dist/server/app-route-handler-execution.js +2 -4
- package/dist/server/app-route-handler-policy.d.ts +1 -2
- package/dist/server/app-route-handler-policy.js +0 -2
- package/dist/server/app-route-handler-response.d.ts +2 -3
- package/dist/server/app-route-handler-response.js +8 -7
- package/dist/server/app-route-handler-runtime.d.ts +1 -2
- package/dist/server/app-route-handler-runtime.js +0 -2
- package/dist/server/app-route-module-loader.d.ts +43 -0
- package/dist/server/app-route-module-loader.js +32 -0
- package/dist/server/app-router-entry.d.ts +1 -2
- package/dist/server/app-router-entry.js +2 -2
- package/dist/server/app-rsc-cache-busting.d.ts +12 -3
- package/dist/server/app-rsc-cache-busting.js +21 -10
- package/dist/server/app-rsc-embedded-chunks.d.ts +1 -2
- package/dist/server/app-rsc-embedded-chunks.js +0 -2
- package/dist/server/app-rsc-error-handler.d.ts +1 -2
- package/dist/server/app-rsc-error-handler.js +0 -2
- package/dist/server/app-rsc-errors.d.ts +1 -2
- package/dist/server/app-rsc-errors.js +0 -2
- package/dist/server/app-rsc-handler.d.ts +16 -2
- package/dist/server/app-rsc-handler.js +32 -14
- package/dist/server/app-rsc-render-mode.d.ts +1 -2
- package/dist/server/app-rsc-render-mode.js +0 -2
- package/dist/server/app-rsc-request-normalization.d.ts +4 -5
- package/dist/server/app-rsc-request-normalization.js +2 -4
- package/dist/server/app-rsc-response-finalizer.d.ts +1 -2
- package/dist/server/app-rsc-response-finalizer.js +2 -2
- package/dist/server/app-rsc-route-matching.d.ts +1 -2
- package/dist/server/app-rsc-route-matching.js +0 -2
- package/dist/server/app-segment-config.d.ts +5 -3
- package/dist/server/app-segment-config.js +12 -3
- package/dist/server/app-server-action-execution.d.ts +12 -2
- package/dist/server/app-server-action-execution.js +200 -25
- package/dist/server/app-ssr-entry.d.ts +5 -4
- package/dist/server/app-ssr-entry.js +31 -15
- package/dist/server/app-ssr-error-meta.d.ts +1 -2
- package/dist/server/app-ssr-error-meta.js +0 -2
- package/dist/server/app-ssr-stream.d.ts +1 -2
- package/dist/server/app-ssr-stream.js +31 -3
- package/dist/server/app-static-generation.d.ts +1 -2
- package/dist/server/app-static-generation.js +0 -2
- package/dist/server/app-visited-response-cache.d.ts +23 -0
- package/dist/server/app-visited-response-cache.js +19 -0
- package/dist/server/artifact-compatibility.d.ts +2 -2
- package/dist/server/artifact-compatibility.js +12 -7
- package/dist/server/cache-control.d.ts +15 -2
- package/dist/server/cache-control.js +21 -3
- package/dist/server/cache-headers.d.ts +1 -2
- package/dist/server/cache-headers.js +0 -2
- package/dist/server/cache-proof.d.ts +1 -2
- package/dist/server/cache-proof.js +0 -2
- package/dist/server/client-reuse-manifest.d.ts +10 -5
- package/dist/server/client-reuse-manifest.js +7 -10
- package/dist/server/client-trace-metadata.d.ts +1 -2
- package/dist/server/client-trace-metadata.js +0 -2
- package/dist/server/cookie-utils.d.ts +1 -2
- package/dist/server/cookie-utils.js +0 -2
- package/dist/server/csp.d.ts +1 -2
- package/dist/server/csp.js +0 -2
- package/dist/server/default-global-error-module.d.ts +1 -2
- package/dist/server/default-global-error-module.js +0 -2
- package/dist/server/default-not-found-module.d.ts +1 -2
- package/dist/server/default-not-found-module.js +0 -2
- package/dist/server/dev-error-overlay-store.d.ts +20 -4
- package/dist/server/dev-error-overlay-store.js +23 -4
- package/dist/server/dev-error-overlay.d.ts +39 -3
- package/dist/server/dev-error-overlay.js +952 -164
- package/dist/server/dev-initial-server-error.d.ts +9 -0
- package/dist/server/dev-initial-server-error.js +26 -0
- package/dist/server/dev-lockfile.d.ts +1 -2
- package/dist/server/dev-lockfile.js +0 -2
- package/dist/server/dev-module-runner.d.ts +1 -2
- package/dist/server/dev-module-runner.js +0 -2
- package/dist/server/dev-origin-check.d.ts +1 -2
- package/dist/server/dev-origin-check.js +0 -2
- package/dist/server/dev-route-files.d.ts +1 -2
- package/dist/server/dev-route-files.js +0 -2
- package/dist/server/dev-server.d.ts +2 -3
- package/dist/server/dev-server.js +127 -28
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
- package/dist/server/dev-stack-sourcemap.d.ts +43 -0
- package/dist/server/dev-stack-sourcemap.js +443 -0
- package/dist/server/document-initial-head.d.ts +6 -0
- package/dist/server/document-initial-head.js +33 -0
- package/dist/server/edge-api-runtime.d.ts +1 -2
- package/dist/server/edge-api-runtime.js +0 -2
- package/dist/server/file-based-metadata.d.ts +1 -2
- package/dist/server/file-based-metadata.js +0 -2
- package/dist/server/headers.d.ts +3 -2
- package/dist/server/headers.js +3 -3
- package/dist/server/html.d.ts +1 -2
- package/dist/server/html.js +0 -2
- package/dist/server/http-error-responses.d.ts +1 -2
- package/dist/server/http-error-responses.js +0 -2
- package/dist/server/image-optimization.d.ts +1 -2
- package/dist/server/image-optimization.js +0 -2
- package/dist/server/implicit-tags.d.ts +1 -2
- package/dist/server/implicit-tags.js +0 -2
- package/dist/server/instrumentation-runtime.d.ts +1 -2
- package/dist/server/instrumentation-runtime.js +0 -2
- package/dist/server/instrumentation.d.ts +1 -2
- package/dist/server/instrumentation.js +0 -2
- package/dist/server/isr-cache.d.ts +10 -3
- package/dist/server/isr-cache.js +13 -28
- package/dist/server/metadata-route-build-data.d.ts +1 -2
- package/dist/server/metadata-route-build-data.js +0 -2
- package/dist/server/metadata-route-response.d.ts +1 -2
- package/dist/server/metadata-route-response.js +0 -2
- package/dist/server/metadata-routes.d.ts +1 -2
- package/dist/server/metadata-routes.js +0 -2
- package/dist/server/middleware-matcher.d.ts +1 -2
- package/dist/server/middleware-matcher.js +0 -2
- package/dist/server/middleware-request-headers.d.ts +1 -2
- package/dist/server/middleware-request-headers.js +0 -2
- package/dist/server/middleware-response-headers.d.ts +1 -2
- package/dist/server/middleware-response-headers.js +0 -2
- package/dist/server/middleware-runtime.d.ts +1 -2
- package/dist/server/middleware-runtime.js +14 -5
- package/dist/server/middleware.d.ts +2 -3
- package/dist/server/middleware.js +0 -2
- package/dist/server/navigation-planner.d.ts +16 -2
- package/dist/server/navigation-planner.js +1 -3
- package/dist/server/navigation-trace.d.ts +1 -2
- package/dist/server/navigation-trace.js +0 -2
- package/dist/server/next-error-digest.d.ts +1 -2
- package/dist/server/next-error-digest.js +0 -2
- package/dist/server/normalize-path.d.ts +1 -2
- package/dist/server/normalize-path.js +0 -2
- package/dist/server/pages-api-route.d.ts +1 -2
- package/dist/server/pages-api-route.js +1 -3
- package/dist/server/pages-asset-tags.d.ts +66 -0
- package/dist/server/pages-asset-tags.js +116 -0
- package/dist/server/pages-body-parser-config.d.ts +1 -2
- package/dist/server/pages-body-parser-config.js +0 -2
- package/dist/server/pages-data-route.d.ts +39 -2
- package/dist/server/pages-data-route.js +46 -3
- package/dist/server/pages-default-404.d.ts +1 -2
- package/dist/server/pages-default-404.js +0 -2
- package/dist/server/pages-document-initial-props.d.ts +84 -3
- package/dist/server/pages-document-initial-props.js +127 -3
- package/dist/server/pages-get-initial-props.d.ts +17 -0
- package/dist/server/pages-get-initial-props.js +50 -0
- package/dist/server/pages-i18n.d.ts +1 -2
- package/dist/server/pages-i18n.js +0 -2
- package/dist/server/pages-media-type.d.ts +1 -2
- package/dist/server/pages-media-type.js +1 -2
- package/dist/server/pages-node-compat.d.ts +9 -2
- package/dist/server/pages-node-compat.js +35 -4
- package/dist/server/pages-page-data.d.ts +7 -3
- package/dist/server/pages-page-data.js +75 -33
- package/dist/server/pages-page-handler.d.ts +90 -0
- package/dist/server/pages-page-handler.js +335 -0
- package/dist/server/pages-page-method.d.ts +1 -2
- package/dist/server/pages-page-method.js +0 -2
- package/dist/server/pages-page-response.d.ts +15 -2
- package/dist/server/pages-page-response.js +39 -12
- package/dist/server/pages-serializable-props.d.ts +1 -2
- package/dist/server/pages-serializable-props.js +0 -2
- package/dist/server/pregenerated-concrete-paths.d.ts +32 -0
- package/dist/server/pregenerated-concrete-paths.js +78 -0
- package/dist/server/prerender-route-params.d.ts +13 -3
- package/dist/server/prerender-route-params.js +30 -11
- package/dist/server/prerender-work-unit-setup.d.ts +1 -2
- package/dist/server/prerender-work-unit-setup.js +0 -2
- package/dist/server/prod-server.d.ts +2 -4
- package/dist/server/prod-server.js +13 -8
- package/dist/server/proxy-trust.d.ts +1 -2
- package/dist/server/proxy-trust.js +0 -2
- package/dist/server/request-log.d.ts +1 -2
- package/dist/server/request-log.js +0 -2
- package/dist/server/request-pipeline.d.ts +14 -2
- package/dist/server/request-pipeline.js +42 -3
- package/dist/server/rsc-stream-hints.d.ts +1 -2
- package/dist/server/rsc-stream-hints.js +0 -2
- package/dist/server/seed-cache.d.ts +6 -2
- package/dist/server/seed-cache.js +10 -8
- package/dist/server/server-action-not-found.d.ts +1 -2
- package/dist/server/server-action-not-found.js +0 -2
- package/dist/server/server-globals.d.ts +1 -2
- package/dist/server/server-globals.js +0 -2
- package/dist/server/skip-cache-proof.d.ts +23 -3
- package/dist/server/skip-cache-proof.js +81 -14
- package/dist/server/socket-error-backstop.d.ts +1 -2
- package/dist/server/socket-error-backstop.js +0 -2
- package/dist/server/static-file-cache.d.ts +1 -2
- package/dist/server/static-file-cache.js +0 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
- package/dist/server/static-layout-client-reuse-proof.js +33 -0
- package/dist/server/streaming-metadata.d.ts +1 -2
- package/dist/server/streaming-metadata.js +0 -2
- package/dist/server/worker-utils.d.ts +1 -2
- package/dist/server/worker-utils.js +3 -6
- package/dist/shims/amp.d.ts +1 -2
- package/dist/shims/amp.js +0 -2
- package/dist/shims/app-router-scroll-state.d.ts +1 -2
- package/dist/shims/app-router-scroll-state.js +0 -2
- package/dist/shims/app-router-scroll.d.ts +3 -5
- package/dist/shims/app-router-scroll.js +0 -2
- package/dist/shims/app.d.ts +1 -2
- package/dist/shims/app.js +0 -2
- package/dist/shims/before-interactive-context.d.ts +1 -2
- package/dist/shims/before-interactive-context.js +0 -2
- package/dist/shims/cache-for-request.d.ts +1 -2
- package/dist/shims/cache-for-request.js +0 -2
- package/dist/shims/cache-runtime.d.ts +20 -5
- package/dist/shims/cache-runtime.js +35 -30
- package/dist/shims/cache.d.ts +68 -7
- package/dist/shims/cache.js +179 -25
- package/dist/shims/cdn-cache.d.ts +125 -0
- package/dist/shims/cdn-cache.js +100 -0
- package/dist/shims/client-hook-error.d.ts +1 -2
- package/dist/shims/client-hook-error.js +0 -2
- package/dist/shims/client-locale.d.ts +1 -2
- package/dist/shims/client-locale.js +1 -3
- package/dist/shims/compat-router.d.ts +1 -2
- package/dist/shims/compat-router.js +0 -2
- package/dist/shims/config.d.ts +1 -2
- package/dist/shims/config.js +0 -2
- package/dist/shims/constants.d.ts +1 -2
- package/dist/shims/constants.js +0 -2
- package/dist/shims/default-global-error.d.ts +3 -4
- package/dist/shims/default-global-error.js +0 -2
- package/dist/shims/default-not-found.d.ts +1 -2
- package/dist/shims/default-not-found.js +0 -2
- package/dist/shims/document.d.ts +11 -7
- package/dist/shims/document.js +7 -10
- package/dist/shims/dynamic.d.ts +1 -2
- package/dist/shims/dynamic.js +0 -2
- package/dist/shims/error-boundary.d.ts +16 -12
- package/dist/shims/error-boundary.js +60 -28
- package/dist/shims/error.d.ts +1 -2
- package/dist/shims/error.js +0 -2
- package/dist/shims/fetch-cache.d.ts +3 -2
- package/dist/shims/fetch-cache.js +18 -9
- package/dist/shims/font-google-base.d.ts +1 -2
- package/dist/shims/font-google-base.js +1 -13
- package/dist/shims/font-local.d.ts +1 -2
- package/dist/shims/font-local.js +1 -15
- package/dist/shims/font-utils.d.ts +7 -2
- package/dist/shims/font-utils.js +13 -3
- package/dist/shims/form.d.ts +12 -5
- package/dist/shims/form.js +98 -21
- package/dist/shims/hash-scroll.d.ts +4 -2
- package/dist/shims/hash-scroll.js +13 -3
- package/dist/shims/head-state.d.ts +2 -2
- package/dist/shims/head-state.js +18 -5
- package/dist/shims/head.d.ts +35 -2
- package/dist/shims/head.js +113 -16
- package/dist/shims/headers.d.ts +9 -2
- package/dist/shims/headers.js +13 -3
- package/dist/shims/i18n-context.d.ts +1 -2
- package/dist/shims/i18n-context.js +0 -2
- package/dist/shims/i18n-state.d.ts +1 -2
- package/dist/shims/i18n-state.js +0 -2
- package/dist/shims/image-config.d.ts +1 -2
- package/dist/shims/image-config.js +0 -2
- package/dist/shims/image.d.ts +1 -2
- package/dist/shims/image.js +1 -3
- package/dist/shims/internal/als-registry.d.ts +1 -2
- package/dist/shims/internal/als-registry.js +0 -2
- package/dist/shims/internal/api-utils.d.ts +1 -2
- package/dist/shims/internal/app-route-detection.d.ts +1 -2
- package/dist/shims/internal/app-route-detection.js +0 -2
- package/dist/shims/internal/app-router-context.d.ts +1 -2
- package/dist/shims/internal/app-router-context.js +0 -2
- package/dist/shims/internal/cookie-serialize.d.ts +1 -2
- package/dist/shims/internal/cookie-serialize.js +0 -2
- package/dist/shims/internal/make-hanging-promise.d.ts +1 -2
- package/dist/shims/internal/make-hanging-promise.js +0 -2
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +55 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js +68 -0
- package/dist/shims/internal/pages-data-target.d.ts +1 -2
- package/dist/shims/internal/pages-data-target.js +0 -2
- package/dist/shims/internal/pages-data-url.d.ts +1 -2
- package/dist/shims/internal/pages-data-url.js +0 -2
- package/dist/shims/internal/parse-cookie-header.d.ts +1 -2
- package/dist/shims/internal/parse-cookie-header.js +0 -2
- package/dist/shims/internal/router-context.d.ts +2 -4
- package/dist/shims/internal/router-context.js +0 -2
- package/dist/shims/internal/utils.d.ts +1 -2
- package/dist/shims/internal/utils.js +0 -2
- package/dist/shims/internal/work-unit-async-storage.d.ts +1 -2
- package/dist/shims/internal/work-unit-async-storage.js +0 -2
- package/dist/shims/layout-segment-context.d.ts +2 -4
- package/dist/shims/layout-segment-context.js +0 -2
- package/dist/shims/legacy-image.d.ts +1 -2
- package/dist/shims/legacy-image.js +0 -2
- package/dist/shims/link-prefetch.d.ts +1 -2
- package/dist/shims/link-prefetch.js +0 -2
- package/dist/shims/link.d.ts +2 -2
- package/dist/shims/link.js +47 -15
- package/dist/shims/metadata.d.ts +4 -5
- package/dist/shims/metadata.js +1 -3
- package/dist/shims/navigation-state.d.ts +1 -2
- package/dist/shims/navigation-state.js +0 -2
- package/dist/shims/navigation.d.ts +61 -7
- package/dist/shims/navigation.js +244 -47
- package/dist/shims/navigation.react-server.d.ts +1 -2
- package/dist/shims/navigation.react-server.js +0 -2
- package/dist/shims/offline.d.ts +1 -2
- package/dist/shims/offline.js +0 -2
- package/dist/shims/og.d.ts +1 -2
- package/dist/shims/og.js +2 -4
- package/dist/shims/pages-router-runtime.d.ts +7 -2
- package/dist/shims/pages-router-runtime.js +11 -3
- package/dist/shims/ppr-fallback-shell.d.ts +29 -0
- package/dist/shims/ppr-fallback-shell.js +149 -0
- package/dist/shims/readonly-url-search-params.d.ts +1 -2
- package/dist/shims/readonly-url-search-params.js +0 -2
- package/dist/shims/request-context.d.ts +9 -5
- package/dist/shims/request-context.js +0 -2
- package/dist/shims/request-state-types.d.ts +1 -1
- package/dist/shims/root-params.d.ts +1 -2
- package/dist/shims/root-params.js +0 -2
- package/dist/shims/router-state.d.ts +1 -2
- package/dist/shims/router-state.js +0 -2
- package/dist/shims/router.d.ts +1 -2
- package/dist/shims/router.js +172 -37
- package/dist/shims/script-nonce-context.d.ts +1 -2
- package/dist/shims/script-nonce-context.js +0 -2
- package/dist/shims/script.d.ts +1 -2
- package/dist/shims/script.js +0 -2
- package/dist/shims/server.d.ts +1 -2
- package/dist/shims/server.js +0 -2
- package/dist/shims/slot.d.ts +11 -4
- package/dist/shims/slot.js +121 -9
- package/dist/shims/thenable-params.d.ts +6 -3
- package/dist/shims/thenable-params.js +131 -12
- package/dist/shims/unified-request-context.d.ts +1 -2
- package/dist/shims/unified-request-context.js +3 -2
- package/dist/shims/unrecognized-action-error.d.ts +1 -2
- package/dist/shims/unrecognized-action-error.js +0 -2
- package/dist/shims/url-safety.d.ts +1 -2
- package/dist/shims/url-safety.js +0 -2
- package/dist/shims/url-utils.d.ts +1 -2
- package/dist/shims/url-utils.js +0 -2
- package/dist/shims/use-merged-ref.d.ts +1 -2
- package/dist/shims/use-merged-ref.js +0 -2
- package/dist/shims/web-vitals.d.ts +1 -2
- package/dist/shims/web-vitals.js +0 -2
- package/dist/typegen.d.ts +1 -2
- package/dist/typegen.js +2 -9
- package/dist/utils/asset-prefix.d.ts +1 -2
- package/dist/utils/asset-prefix.js +0 -2
- package/dist/utils/base-path.d.ts +1 -2
- package/dist/utils/base-path.js +0 -2
- package/dist/utils/cache-control-metadata.d.ts +1 -4
- package/dist/utils/cache-control-metadata.js +1 -3
- package/dist/utils/client-build-manifest.d.ts +14 -0
- package/dist/utils/client-build-manifest.js +52 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -0
- package/dist/utils/dev-error-recovery-event.d.ts +4 -0
- package/dist/utils/dev-error-recovery-event.js +4 -0
- package/dist/utils/domain-locale.d.ts +1 -2
- package/dist/utils/domain-locale.js +2 -4
- package/dist/utils/encode-cache-tag.d.ts +1 -2
- package/dist/utils/encode-cache-tag.js +0 -2
- package/dist/utils/error-cause.d.ts +1 -2
- package/dist/utils/error-cause.js +0 -2
- package/dist/utils/hash.d.ts +1 -2
- package/dist/utils/hash.js +1 -3
- package/dist/utils/html-limited-bots.d.ts +1 -2
- package/dist/utils/html-limited-bots.js +0 -2
- package/dist/utils/lazy-chunks.d.ts +1 -2
- package/dist/utils/lazy-chunks.js +0 -2
- package/dist/utils/manifest-paths.d.ts +8 -3
- package/dist/utils/manifest-paths.js +15 -3
- package/dist/utils/mdx-scan.d.ts +1 -2
- package/dist/utils/mdx-scan.js +0 -2
- package/dist/utils/navigation-signal.d.ts +1 -2
- package/dist/utils/navigation-signal.js +0 -2
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/path.d.ts +4 -2
- package/dist/utils/path.js +5 -3
- package/dist/utils/prerender-output-paths.d.ts +1 -2
- package/dist/utils/prerender-output-paths.js +0 -2
- package/dist/utils/project.d.ts +1 -2
- package/dist/utils/project.js +0 -2
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +1 -2
- package/dist/utils/public-routes.js +0 -2
- package/dist/utils/query.d.ts +1 -2
- package/dist/utils/query.js +0 -2
- package/dist/utils/record.d.ts +1 -2
- package/dist/utils/record.js +0 -2
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +1 -2
- package/dist/utils/safe-json-file.js +0 -2
- package/dist/utils/sorted-array.d.ts +1 -2
- package/dist/utils/sorted-array.js +0 -2
- package/dist/utils/text-stream.d.ts +1 -2
- package/dist/utils/text-stream.js +0 -2
- package/dist/utils/vinext-root.d.ts +1 -2
- package/dist/utils/vinext-root.js +0 -2
- package/dist/utils/vite-version.d.ts +10 -0
- package/dist/utils/vite-version.js +34 -0
- package/package.json +20 -7
- package/dist/build/clean-output.js.map +0 -1
- package/dist/build/client-build-config.js.map +0 -1
- package/dist/build/google-fonts/build-url.js.map +0 -1
- package/dist/build/google-fonts/fallback-metrics-data.js.map +0 -1
- package/dist/build/google-fonts/fallback-metrics.js.map +0 -1
- package/dist/build/google-fonts/font-data.js.map +0 -1
- package/dist/build/google-fonts/font-metadata.js.map +0 -1
- package/dist/build/google-fonts/get-axes.js.map +0 -1
- package/dist/build/google-fonts/sort-variants.js.map +0 -1
- package/dist/build/google-fonts/validate.js.map +0 -1
- package/dist/build/inline-css.js.map +0 -1
- package/dist/build/layout-classification.js.map +0 -1
- package/dist/build/nitro-route-rules.js.map +0 -1
- package/dist/build/precompress.js.map +0 -1
- package/dist/build/prerender.js.map +0 -1
- package/dist/build/report.js.map +0 -1
- package/dist/build/route-classification-injector.js.map +0 -1
- package/dist/build/route-classification-manifest.js.map +0 -1
- package/dist/build/run-prerender.js.map +0 -1
- package/dist/build/server-manifest.js.map +0 -1
- package/dist/build/ssr-manifest.js.map +0 -1
- package/dist/build/standalone.js.map +0 -1
- package/dist/build/static-export.js.map +0 -1
- package/dist/check.js.map +0 -1
- package/dist/cli-args.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/client/instrumentation-client-inject.js.map +0 -1
- package/dist/client/instrumentation-client-state.js.map +0 -1
- package/dist/client/instrumentation-client.js.map +0 -1
- package/dist/client/navigation-runtime.js.map +0 -1
- package/dist/client/pages-router-link-navigation.js.map +0 -1
- package/dist/client/validate-module-path.js.map +0 -1
- package/dist/client/vinext-next-data.js.map +0 -1
- package/dist/client/window-next.js.map +0 -1
- package/dist/cloudflare/kv-cache-handler.js.map +0 -1
- package/dist/cloudflare/tpr.js.map +0 -1
- package/dist/config/config-matchers.js.map +0 -1
- package/dist/config/dotenv.js.map +0 -1
- package/dist/config/next-config.js.map +0 -1
- package/dist/config/tsconfig-paths.js.map +0 -1
- package/dist/deploy.js.map +0 -1
- package/dist/entries/app-browser-entry.js.map +0 -1
- package/dist/entries/app-rsc-entry.js.map +0 -1
- package/dist/entries/app-rsc-manifest.js.map +0 -1
- package/dist/entries/app-ssr-entry.js.map +0 -1
- package/dist/entries/pages-client-entry.js.map +0 -1
- package/dist/entries/pages-entry-helpers.js.map +0 -1
- package/dist/entries/pages-server-entry.js.map +0 -1
- package/dist/entries/runtime-entry-module.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init.js.map +0 -1
- package/dist/plugins/async-hooks-stub.js.map +0 -1
- package/dist/plugins/client-reference-dedup.js.map +0 -1
- package/dist/plugins/css-data-url.js.map +0 -1
- package/dist/plugins/fonts.js.map +0 -1
- package/dist/plugins/instrumentation-client.js.map +0 -1
- package/dist/plugins/middleware-server-only.js.map +0 -1
- package/dist/plugins/og-assets.js.map +0 -1
- package/dist/plugins/optimize-imports.js.map +0 -1
- package/dist/plugins/postcss.js.map +0 -1
- package/dist/plugins/remove-console.js.map +0 -1
- package/dist/plugins/rsc-client-reference-loaders.js.map +0 -1
- package/dist/plugins/rsc-client-shim-excludes.js.map +0 -1
- package/dist/plugins/sass.js.map +0 -1
- package/dist/plugins/server-externals-manifest.js.map +0 -1
- package/dist/plugins/strip-server-exports.js.map +0 -1
- package/dist/routing/app-route-graph.js.map +0 -1
- package/dist/routing/app-router.js.map +0 -1
- package/dist/routing/file-matcher.js.map +0 -1
- package/dist/routing/pages-router.js.map +0 -1
- package/dist/routing/route-matching.js.map +0 -1
- package/dist/routing/route-pattern.js.map +0 -1
- package/dist/routing/route-trie.js.map +0 -1
- package/dist/routing/route-validation.js.map +0 -1
- package/dist/routing/utils.js.map +0 -1
- package/dist/server/api-handler.js.map +0 -1
- package/dist/server/app-browser-action-result.js.map +0 -1
- package/dist/server/app-browser-entry.js.map +0 -1
- package/dist/server/app-browser-error.js.map +0 -1
- package/dist/server/app-browser-hydration.js.map +0 -1
- package/dist/server/app-browser-interception-context.js.map +0 -1
- package/dist/server/app-browser-navigation-controller.js.map +0 -1
- package/dist/server/app-browser-popstate.js.map +0 -1
- package/dist/server/app-browser-rsc-redirect.js.map +0 -1
- package/dist/server/app-browser-state.js.map +0 -1
- package/dist/server/app-browser-stream.js.map +0 -1
- package/dist/server/app-browser-visible-commit.js.map +0 -1
- package/dist/server/app-client-reference-preloader.js.map +0 -1
- package/dist/server/app-elements-wire.js.map +0 -1
- package/dist/server/app-elements.js.map +0 -1
- package/dist/server/app-fallback-renderer.js.map +0 -1
- package/dist/server/app-history-state.js.map +0 -1
- package/dist/server/app-hook-warning-suppression.js.map +0 -1
- package/dist/server/app-inline-css-client.js.map +0 -1
- package/dist/server/app-interception-context-header.js.map +0 -1
- package/dist/server/app-middleware.js.map +0 -1
- package/dist/server/app-mounted-slots-header.js.map +0 -1
- package/dist/server/app-optimistic-routing.js.map +0 -1
- package/dist/server/app-page-boundary-render.js.map +0 -1
- package/dist/server/app-page-boundary.js.map +0 -1
- package/dist/server/app-page-cache.js.map +0 -1
- package/dist/server/app-page-dispatch.js.map +0 -1
- package/dist/server/app-page-element-builder.js.map +0 -1
- package/dist/server/app-page-execution.js.map +0 -1
- package/dist/server/app-page-head.js.map +0 -1
- package/dist/server/app-page-method.js.map +0 -1
- package/dist/server/app-page-params.js.map +0 -1
- package/dist/server/app-page-probe.js.map +0 -1
- package/dist/server/app-page-render-identity.js.map +0 -1
- package/dist/server/app-page-render-observation.js.map +0 -1
- package/dist/server/app-page-render.js.map +0 -1
- package/dist/server/app-page-request.js.map +0 -1
- package/dist/server/app-page-response.js.map +0 -1
- package/dist/server/app-page-route-wiring.js.map +0 -1
- package/dist/server/app-page-segment-state.js.map +0 -1
- package/dist/server/app-page-stream.js.map +0 -1
- package/dist/server/app-post-middleware-context.js.map +0 -1
- package/dist/server/app-prerender-endpoints.js.map +0 -1
- package/dist/server/app-prerender-static-params.js.map +0 -1
- package/dist/server/app-render-dependency.js.map +0 -1
- package/dist/server/app-request-context.js.map +0 -1
- package/dist/server/app-route-handler-cache.js.map +0 -1
- package/dist/server/app-route-handler-dispatch.js.map +0 -1
- package/dist/server/app-route-handler-execution.js.map +0 -1
- package/dist/server/app-route-handler-policy.js.map +0 -1
- package/dist/server/app-route-handler-response.js.map +0 -1
- package/dist/server/app-route-handler-runtime.js.map +0 -1
- package/dist/server/app-router-entry.js.map +0 -1
- package/dist/server/app-rsc-cache-busting.js.map +0 -1
- package/dist/server/app-rsc-embedded-chunks.js.map +0 -1
- package/dist/server/app-rsc-error-handler.js.map +0 -1
- package/dist/server/app-rsc-errors.js.map +0 -1
- package/dist/server/app-rsc-handler.js.map +0 -1
- package/dist/server/app-rsc-render-mode.js.map +0 -1
- package/dist/server/app-rsc-request-normalization.js.map +0 -1
- package/dist/server/app-rsc-response-finalizer.js.map +0 -1
- package/dist/server/app-rsc-route-matching.js.map +0 -1
- package/dist/server/app-segment-config.js.map +0 -1
- package/dist/server/app-server-action-execution.js.map +0 -1
- package/dist/server/app-ssr-entry.js.map +0 -1
- package/dist/server/app-ssr-error-meta.js.map +0 -1
- package/dist/server/app-ssr-stream.js.map +0 -1
- package/dist/server/app-static-generation.js.map +0 -1
- package/dist/server/artifact-compatibility.js.map +0 -1
- package/dist/server/cache-control.js.map +0 -1
- package/dist/server/cache-headers.js.map +0 -1
- package/dist/server/cache-proof.js.map +0 -1
- package/dist/server/client-reuse-manifest.js.map +0 -1
- package/dist/server/client-trace-metadata.js.map +0 -1
- package/dist/server/cookie-utils.js.map +0 -1
- package/dist/server/csp.js.map +0 -1
- package/dist/server/default-global-error-module.js.map +0 -1
- package/dist/server/default-not-found-module.js.map +0 -1
- package/dist/server/dev-error-overlay-store.js.map +0 -1
- package/dist/server/dev-error-overlay.js.map +0 -1
- package/dist/server/dev-lockfile.js.map +0 -1
- package/dist/server/dev-module-runner.js.map +0 -1
- package/dist/server/dev-origin-check.js.map +0 -1
- package/dist/server/dev-route-files.js.map +0 -1
- package/dist/server/dev-server.js.map +0 -1
- package/dist/server/edge-api-runtime.js.map +0 -1
- package/dist/server/file-based-metadata.js.map +0 -1
- package/dist/server/headers.js.map +0 -1
- package/dist/server/html.js.map +0 -1
- package/dist/server/http-error-responses.js.map +0 -1
- package/dist/server/image-optimization.js.map +0 -1
- package/dist/server/implicit-tags.js.map +0 -1
- package/dist/server/instrumentation-runtime.js.map +0 -1
- package/dist/server/instrumentation.js.map +0 -1
- package/dist/server/isr-cache.js.map +0 -1
- package/dist/server/metadata-route-build-data.js.map +0 -1
- package/dist/server/metadata-route-response.js.map +0 -1
- package/dist/server/metadata-routes.js.map +0 -1
- package/dist/server/middleware-matcher.js.map +0 -1
- package/dist/server/middleware-request-headers.js.map +0 -1
- package/dist/server/middleware-response-headers.js.map +0 -1
- package/dist/server/middleware-runtime.js.map +0 -1
- package/dist/server/middleware.js.map +0 -1
- package/dist/server/navigation-planner.js.map +0 -1
- package/dist/server/navigation-trace.js.map +0 -1
- package/dist/server/next-error-digest.js.map +0 -1
- package/dist/server/normalize-path.js.map +0 -1
- package/dist/server/pages-api-route.js.map +0 -1
- package/dist/server/pages-body-parser-config.js.map +0 -1
- package/dist/server/pages-data-route.js.map +0 -1
- package/dist/server/pages-default-404.js.map +0 -1
- package/dist/server/pages-document-initial-props.js.map +0 -1
- package/dist/server/pages-i18n.js.map +0 -1
- package/dist/server/pages-media-type.js.map +0 -1
- package/dist/server/pages-node-compat.js.map +0 -1
- package/dist/server/pages-page-data.js.map +0 -1
- package/dist/server/pages-page-method.js.map +0 -1
- package/dist/server/pages-page-response.js.map +0 -1
- package/dist/server/pages-serializable-props.js.map +0 -1
- package/dist/server/prerender-route-params.js.map +0 -1
- package/dist/server/prerender-work-unit-setup.js.map +0 -1
- package/dist/server/prod-server.js.map +0 -1
- package/dist/server/proxy-trust.js.map +0 -1
- package/dist/server/request-log.js.map +0 -1
- package/dist/server/request-pipeline.js.map +0 -1
- package/dist/server/rsc-stream-hints.js.map +0 -1
- package/dist/server/seed-cache.js.map +0 -1
- package/dist/server/server-action-not-found.js.map +0 -1
- package/dist/server/server-globals.js.map +0 -1
- package/dist/server/skip-cache-proof.js.map +0 -1
- package/dist/server/socket-error-backstop.js.map +0 -1
- package/dist/server/static-file-cache.js.map +0 -1
- package/dist/server/streaming-metadata.js.map +0 -1
- package/dist/server/worker-utils.js.map +0 -1
- package/dist/shims/amp.js.map +0 -1
- package/dist/shims/app-router-scroll-state.js.map +0 -1
- package/dist/shims/app-router-scroll.js.map +0 -1
- package/dist/shims/app.js.map +0 -1
- package/dist/shims/before-interactive-context.js.map +0 -1
- package/dist/shims/cache-for-request.js.map +0 -1
- package/dist/shims/cache-runtime.js.map +0 -1
- package/dist/shims/cache.js.map +0 -1
- package/dist/shims/client-hook-error.js.map +0 -1
- package/dist/shims/client-locale.js.map +0 -1
- package/dist/shims/compat-router.js.map +0 -1
- package/dist/shims/config.js.map +0 -1
- package/dist/shims/constants.js.map +0 -1
- package/dist/shims/default-global-error.js.map +0 -1
- package/dist/shims/default-not-found.js.map +0 -1
- package/dist/shims/document.js.map +0 -1
- package/dist/shims/dynamic.js.map +0 -1
- package/dist/shims/error-boundary.js.map +0 -1
- package/dist/shims/error.js.map +0 -1
- package/dist/shims/fetch-cache.js.map +0 -1
- package/dist/shims/font-google-base.js.map +0 -1
- package/dist/shims/font-local.js.map +0 -1
- package/dist/shims/font-utils.js.map +0 -1
- package/dist/shims/form.js.map +0 -1
- package/dist/shims/hash-scroll.js.map +0 -1
- package/dist/shims/head-state.js.map +0 -1
- package/dist/shims/head.js.map +0 -1
- package/dist/shims/headers.js.map +0 -1
- package/dist/shims/i18n-context.js.map +0 -1
- package/dist/shims/i18n-state.js.map +0 -1
- package/dist/shims/image-config.js.map +0 -1
- package/dist/shims/image.js.map +0 -1
- package/dist/shims/internal/als-registry.js.map +0 -1
- package/dist/shims/internal/app-route-detection.js.map +0 -1
- package/dist/shims/internal/app-router-context.js.map +0 -1
- package/dist/shims/internal/cookie-serialize.js.map +0 -1
- package/dist/shims/internal/make-hanging-promise.js.map +0 -1
- package/dist/shims/internal/pages-data-target.js.map +0 -1
- package/dist/shims/internal/pages-data-url.js.map +0 -1
- package/dist/shims/internal/parse-cookie-header.js.map +0 -1
- package/dist/shims/internal/router-context.js.map +0 -1
- package/dist/shims/internal/utils.js.map +0 -1
- package/dist/shims/internal/work-unit-async-storage.js.map +0 -1
- package/dist/shims/layout-segment-context.js.map +0 -1
- package/dist/shims/legacy-image.js.map +0 -1
- package/dist/shims/link-prefetch.js.map +0 -1
- package/dist/shims/link.js.map +0 -1
- package/dist/shims/metadata.js.map +0 -1
- package/dist/shims/navigation-state.js.map +0 -1
- package/dist/shims/navigation.js.map +0 -1
- package/dist/shims/navigation.react-server.js.map +0 -1
- package/dist/shims/offline.js.map +0 -1
- package/dist/shims/og.js.map +0 -1
- package/dist/shims/pages-router-runtime.js.map +0 -1
- package/dist/shims/readonly-url-search-params.js.map +0 -1
- package/dist/shims/request-context.js.map +0 -1
- package/dist/shims/root-params.js.map +0 -1
- package/dist/shims/router-state.js.map +0 -1
- package/dist/shims/router.js.map +0 -1
- package/dist/shims/script-nonce-context.js.map +0 -1
- package/dist/shims/script.js.map +0 -1
- package/dist/shims/server.js.map +0 -1
- package/dist/shims/slot.js.map +0 -1
- package/dist/shims/thenable-params.js.map +0 -1
- package/dist/shims/unified-request-context.js.map +0 -1
- package/dist/shims/unrecognized-action-error.js.map +0 -1
- package/dist/shims/url-safety.js.map +0 -1
- package/dist/shims/url-utils.js.map +0 -1
- package/dist/shims/use-merged-ref.js.map +0 -1
- package/dist/shims/web-vitals.js.map +0 -1
- package/dist/typegen.js.map +0 -1
- package/dist/utils/asset-prefix.js.map +0 -1
- package/dist/utils/base-path.js.map +0 -1
- package/dist/utils/cache-control-metadata.js.map +0 -1
- package/dist/utils/domain-locale.js.map +0 -1
- package/dist/utils/encode-cache-tag.js.map +0 -1
- package/dist/utils/error-cause.js.map +0 -1
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/html-limited-bots.js.map +0 -1
- package/dist/utils/lazy-chunks.js.map +0 -1
- package/dist/utils/manifest-paths.js.map +0 -1
- package/dist/utils/mdx-scan.js.map +0 -1
- package/dist/utils/navigation-signal.js.map +0 -1
- package/dist/utils/path.js.map +0 -1
- package/dist/utils/prerender-output-paths.js.map +0 -1
- package/dist/utils/project.js.map +0 -1
- package/dist/utils/public-routes.js.map +0 -1
- package/dist/utils/query.js.map +0 -1
- package/dist/utils/record.js.map +0 -1
- package/dist/utils/safe-json-file.js.map +0 -1
- package/dist/utils/sorted-array.js.map +0 -1
- package/dist/utils/text-stream.js.map +0 -1
- package/dist/utils/vinext-root.js.map +0 -1
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { ClassificationReason } from "../build/layout-classification-types.js";
|
|
2
2
|
import { CachedAppPageValue } from "../shims/cache.js";
|
|
3
|
+
import { ClientReuseManifestParseResult } from "./client-reuse-manifest.js";
|
|
3
4
|
import { AppOutgoingElements } from "./app-elements-wire.js";
|
|
5
|
+
import { NavigationContext } from "../shims/navigation.js";
|
|
4
6
|
import { AppPageFontPreload, LayoutClassificationOptions } from "./app-page-execution.js";
|
|
5
7
|
import { AppPageMiddlewareContext } from "./app-page-response.js";
|
|
6
8
|
import { RootParams } from "../shims/root-params.js";
|
|
7
9
|
import { AppPageSsrHandler } from "./app-page-stream.js";
|
|
10
|
+
import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
|
|
8
11
|
import { AppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
9
12
|
import { ISRCacheEntry } from "./isr-cache.js";
|
|
10
13
|
import { FetchCacheMode } from "../shims/fetch-cache.js";
|
|
@@ -45,6 +48,8 @@ type AppPageDispatchInterceptOptions<TPage = unknown> = {
|
|
|
45
48
|
};
|
|
46
49
|
type AppPageModule = {
|
|
47
50
|
default?: unknown;
|
|
51
|
+
dynamic?: unknown;
|
|
52
|
+
revalidate?: unknown;
|
|
48
53
|
};
|
|
49
54
|
type AppPageDispatchRoute = {
|
|
50
55
|
__buildTimeClassifications?: LayoutClassificationOptions["buildTimeClassifications"];
|
|
@@ -73,14 +78,22 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
73
78
|
* SSR head. Undefined or empty disables emission entirely.
|
|
74
79
|
*/
|
|
75
80
|
clientTraceMetadata?: readonly string[];
|
|
76
|
-
buildPageElement: (route: TRoute, params: AppPageParams, opts: AppPageDispatchInterceptOptions | undefined, searchParams: URLSearchParams) => Promise<AppPageElement>;
|
|
81
|
+
buildPageElement: (route: TRoute, params: AppPageParams, opts: AppPageDispatchInterceptOptions | undefined, searchParams: URLSearchParams, layoutParamAccess?: AppLayoutParamAccessTracker) => Promise<AppPageElement>;
|
|
82
|
+
clientReuseManifest?: ClientReuseManifestParseResult;
|
|
77
83
|
cleanPathname: string;
|
|
78
84
|
clearRequestContext: () => void;
|
|
79
85
|
createRscOnErrorHandler: (pathname: string, routePath: string) => AppPageBoundaryOnError;
|
|
80
86
|
debugClassification?: (layoutId: string, reason: ClassificationReason) => void;
|
|
81
87
|
draftModeSecret: string;
|
|
82
88
|
dynamicConfig?: string;
|
|
89
|
+
dynamicStaleTimeSeconds?: number;
|
|
83
90
|
dynamicParamsConfig?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Hydrate a source route's lazy page/route-handler modules before reading
|
|
93
|
+
* `route.page` (e.g. for fetch-cache-mode resolution) on intercept and ISR
|
|
94
|
+
* revalidation targets obtained via `getSourceRoute`. Idempotent.
|
|
95
|
+
*/
|
|
96
|
+
ensureRouteLoaded?: (route: TRoute) => unknown;
|
|
84
97
|
fetchCache?: FetchCacheMode | null;
|
|
85
98
|
findIntercept: (pathname: string) => AppPageDispatchIntercept | null;
|
|
86
99
|
formState?: ReactFormState | null;
|
|
@@ -90,12 +103,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
90
103
|
getFontLinks: () => string[];
|
|
91
104
|
getFontPreloads: () => AppPageFontPreload[];
|
|
92
105
|
getFontStyles: () => string[];
|
|
93
|
-
getNavigationContext: () =>
|
|
106
|
+
getNavigationContext: () => NavigationContext | null;
|
|
94
107
|
getSourceRoute: (sourceRouteIndex: number) => TRoute | undefined;
|
|
95
108
|
hasGenerateStaticParams: boolean;
|
|
96
109
|
hasPageDefaultExport: boolean;
|
|
97
110
|
hasPageModule: boolean;
|
|
98
111
|
handlerStart: number;
|
|
112
|
+
htmlLimitedBots?: string;
|
|
99
113
|
interceptionContext: string | null;
|
|
100
114
|
isEdgeRuntime?: boolean;
|
|
101
115
|
isProgressiveActionRender?: boolean;
|
|
@@ -112,12 +126,13 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
112
126
|
params: AppPageParams;
|
|
113
127
|
staticParamsValidationParams?: AppPageParams;
|
|
114
128
|
rootParams?: RootParams;
|
|
115
|
-
probeLayoutAt: (layoutIndex: number) => unknown;
|
|
129
|
+
probeLayoutAt: (layoutIndex: number, layoutParamAccess?: AppLayoutParamAccessTracker) => unknown;
|
|
116
130
|
probePage: () => unknown;
|
|
117
131
|
expireSeconds?: number;
|
|
118
132
|
renderErrorBoundaryPage: (error: unknown) => Promise<Response | null>;
|
|
119
133
|
renderHttpAccessFallbackPage: (statusCode: number, opts: {
|
|
120
134
|
boundaryComponent?: unknown;
|
|
135
|
+
boundaryModule?: AppPageModule | null;
|
|
121
136
|
layouts?: readonly AppPageModule[];
|
|
122
137
|
matchedParams: AppPageParams;
|
|
123
138
|
}, middlewareContext: AppPageMiddlewareContext | null) => Promise<Response | null>;
|
|
@@ -144,5 +159,4 @@ type DispatchAppPageOptions<TRoute extends AppPageDispatchRoute> = {
|
|
|
144
159
|
};
|
|
145
160
|
declare function dispatchAppPage<TRoute extends AppPageDispatchRoute>(options: DispatchAppPageOptions<TRoute>): Promise<Response>;
|
|
146
161
|
//#endregion
|
|
147
|
-
export { dispatchAppPage };
|
|
148
|
-
//# sourceMappingURL=app-page-dispatch.d.ts.map
|
|
162
|
+
export { dispatchAppPage };
|
|
@@ -7,17 +7,20 @@ import { shouldSuppressLoadingBoundaries } from "./app-rsc-render-mode.js";
|
|
|
7
7
|
import "./app-elements.js";
|
|
8
8
|
import { consumeDynamicFetchObservations, ensureFetchPatch, getCollectedFetchTags, peekDynamicFetchObservations, runWithFetchDedupe, setCurrentFetchCacheMode, setCurrentFetchSoftTags } from "../shims/fetch-cache.js";
|
|
9
9
|
import { VINEXT_RSC_CONTENT_TYPE, VINEXT_RSC_VARY_HEADER, applyRscCompatibilityIdHeader } from "./app-rsc-cache-busting.js";
|
|
10
|
-
import { createAppPageTreePath } from "./app-page-route-wiring.js";
|
|
11
10
|
import { readStreamAsText } from "../utils/text-stream.js";
|
|
12
11
|
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
13
12
|
import "./app-page-response.js";
|
|
14
13
|
import { buildAppPageSpecialErrorResponse, resolveAppPageSpecialError, teeAppPageRscStreamForCapture } from "./app-page-execution.js";
|
|
15
|
-
import {
|
|
14
|
+
import { createAppPageTreePath } from "./app-page-route-wiring.js";
|
|
16
15
|
import { createAppPageHtmlOutputScope, createAppPageRenderObservation, createAppPageRscOutputScope } from "./app-page-render-observation.js";
|
|
17
16
|
import { readAppPageCacheResponse } from "./app-page-cache.js";
|
|
17
|
+
import { resolveAppPageParentHttpAccessBoundary, resolveAppPageParentHttpAccessBoundaryModule } from "./app-page-boundary.js";
|
|
18
|
+
import { isAppSsrRenderResult } from "./app-page-stream.js";
|
|
19
|
+
import { createAppLayoutParamAccessTracker, isAppLayoutObservationUnsafeForStaticReuse } from "./app-layout-param-observation.js";
|
|
18
20
|
import { resolveAppPageMethodResponse } from "./app-page-method.js";
|
|
19
21
|
import { buildAppPageElement, resolveAppPageIntercept, resolveAppPageInterceptionRerenderTarget, validateAppPageDynamicParams } from "./app-page-request.js";
|
|
20
22
|
import { renderAppPageLifecycle } from "./app-page-render.js";
|
|
23
|
+
import { shouldServeStreamingMetadata } from "./streaming-metadata.js";
|
|
21
24
|
import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
|
|
22
25
|
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
23
26
|
import React from "react";
|
|
@@ -28,9 +31,81 @@ function resolveAppPageRouteBoundaryModule(route, statusCode) {
|
|
|
28
31
|
if (statusCode === 404) return route.notFound ?? null;
|
|
29
32
|
return null;
|
|
30
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Request-time counterpart to the build-time `classifyLayoutSegmentConfig`
|
|
36
|
+
* (`build/report.ts`). Both classify a layout by its `dynamic`/`revalidate`
|
|
37
|
+
* segment config and agree on the shared cases (the build-time version
|
|
38
|
+
* normalizes `revalidate = false` to `Infinity` upstream, so both treat it as
|
|
39
|
+
* static); keep them aligned when either changes.
|
|
40
|
+
*
|
|
41
|
+
* The meaningful difference is scope, not logic: this request-time pass reads
|
|
42
|
+
* the resolved module value, so it classifies layouts that were never captured
|
|
43
|
+
* at build time (e.g. dev mode). Its result is merged on top of the build-time
|
|
44
|
+
* classification map in `createEffectiveLayoutClassifications`, so such layouts
|
|
45
|
+
* are classified here where they previously were not.
|
|
46
|
+
*/
|
|
47
|
+
function classifyLayoutSegmentConfigFromModule(layout) {
|
|
48
|
+
if (!layout) return null;
|
|
49
|
+
switch (layout.dynamic) {
|
|
50
|
+
case "force-dynamic": return {
|
|
51
|
+
kind: "dynamic",
|
|
52
|
+
reason: {
|
|
53
|
+
layer: "segment-config",
|
|
54
|
+
key: "dynamic",
|
|
55
|
+
value: "force-dynamic"
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
case "force-static":
|
|
59
|
+
case "error": return {
|
|
60
|
+
kind: "static",
|
|
61
|
+
reason: {
|
|
62
|
+
layer: "segment-config",
|
|
63
|
+
key: "dynamic",
|
|
64
|
+
value: layout.dynamic
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (layout.revalidate === false || layout.revalidate === Infinity) return {
|
|
69
|
+
kind: "static",
|
|
70
|
+
reason: {
|
|
71
|
+
layer: "segment-config",
|
|
72
|
+
key: "revalidate",
|
|
73
|
+
value: Infinity
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
if (layout.revalidate === 0) return {
|
|
77
|
+
kind: "dynamic",
|
|
78
|
+
reason: {
|
|
79
|
+
layer: "segment-config",
|
|
80
|
+
key: "revalidate",
|
|
81
|
+
value: 0
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
function createEffectiveLayoutClassifications(route, includeReasons) {
|
|
87
|
+
const classifications = new Map(route.__buildTimeClassifications ?? []);
|
|
88
|
+
const reasons = includeReasons ? new Map(route.__buildTimeReasons ?? []) : null;
|
|
89
|
+
for (let index = 0; index < route.layouts.length; index++) {
|
|
90
|
+
const classification = classifyLayoutSegmentConfigFromModule(route.layouts[index]);
|
|
91
|
+
if (classification === null) continue;
|
|
92
|
+
classifications.set(index, classification.kind);
|
|
93
|
+
reasons?.set(index, classification.reason);
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
buildTimeClassifications: classifications.size > 0 ? classifications : null,
|
|
97
|
+
buildTimeReasons: reasons && reasons.size > 0 ? reasons : null
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function getEffectiveLayoutClassifications(route, debugClassification) {
|
|
101
|
+
return createEffectiveLayoutClassifications(route, debugClassification !== void 0);
|
|
102
|
+
}
|
|
31
103
|
function shouldReadAppPageCache(options) {
|
|
32
104
|
return options.isProduction && !options.isProgressiveActionRender && !options.isDraftMode && !options.isForceDynamic && (options.isRscRequest || !options.scriptNonce) && (options.revalidateSeconds === null || options.revalidateSeconds > 0);
|
|
33
105
|
}
|
|
106
|
+
function hasSearchParams(searchParams) {
|
|
107
|
+
return searchParams !== null && searchParams !== void 0 && searchParams.size > 0;
|
|
108
|
+
}
|
|
34
109
|
function buildAppPageTags(cleanPathname, extraTags, routeSegments) {
|
|
35
110
|
return buildPageCacheTags(cleanPathname, extraTags, [...routeSegments], "page");
|
|
36
111
|
}
|
|
@@ -82,6 +157,7 @@ async function dispatchAppPageInner(options) {
|
|
|
82
157
|
const isDynamicError = dynamicConfig === "error";
|
|
83
158
|
const isForceDynamic = dynamicConfig === "force-dynamic";
|
|
84
159
|
const isDraftMode = isDraftModeRequest(options.request, options.draftModeSecret);
|
|
160
|
+
const layoutParamAccess = createAppLayoutParamAccessTracker();
|
|
85
161
|
setCurrentFetchSoftTags(buildAppPageTags(options.cleanPathname, [], route.routeSegments));
|
|
86
162
|
setCurrentFetchCacheMode(options.fetchCache ?? null);
|
|
87
163
|
if (options.hasPageModule && !options.hasPageDefaultExport) {
|
|
@@ -125,6 +201,7 @@ async function dispatchAppPageInner(options) {
|
|
|
125
201
|
const cachedPageResponse = await readAppPageCacheResponse({
|
|
126
202
|
cleanPathname: options.cleanPathname,
|
|
127
203
|
clearRequestContext: options.clearRequestContext,
|
|
204
|
+
hasRequestSearchParams: !isForceStatic && hasSearchParams(options.searchParams),
|
|
128
205
|
isEdgeRuntime: options.isEdgeRuntime,
|
|
129
206
|
isRscRequest: options.isRscRequest,
|
|
130
207
|
isrDebug: options.isrDebug,
|
|
@@ -156,6 +233,7 @@ async function dispatchAppPageInner(options) {
|
|
|
156
233
|
return toInterceptOptions(options.interceptionContext, intercept);
|
|
157
234
|
}
|
|
158
235
|
});
|
|
236
|
+
await options.ensureRouteLoaded?.(revalidationTarget.route);
|
|
159
237
|
return runAppPageRevalidationContext({
|
|
160
238
|
cleanPathname: options.cleanPathname,
|
|
161
239
|
currentFetchCacheMode: options.resolveRouteFetchCacheMode?.(revalidationTarget.route) ?? (revalidationTarget.route === route ? options.fetchCache ?? null : null),
|
|
@@ -171,7 +249,7 @@ async function dispatchAppPageInner(options) {
|
|
|
171
249
|
const revalidatedRscCapture = teeAppPageRscStreamForCapture(options.renderToReadableStream(revalidatedElement, { onError: revalidatedOnError }), true);
|
|
172
250
|
const revalidatedSsrEntry = await options.loadSsrHandler();
|
|
173
251
|
const revalidatedCapturedRscRef = { value: null };
|
|
174
|
-
const
|
|
252
|
+
const revalidatedHtmlResult = await revalidatedSsrEntry.handleSsr(revalidatedRscCapture.ssrStream, options.getNavigationContext(), {
|
|
175
253
|
links: options.getFontLinks(),
|
|
176
254
|
styles: options.getFontStyles(),
|
|
177
255
|
preloads: options.getFontPreloads()
|
|
@@ -179,11 +257,13 @@ async function dispatchAppPageInner(options) {
|
|
|
179
257
|
basePath: options.basePath,
|
|
180
258
|
clientTraceMetadata: options.clientTraceMetadata,
|
|
181
259
|
rootParams: options.rootParams,
|
|
260
|
+
waitForAllReady: true,
|
|
182
261
|
...revalidatedRscCapture.sideStream ? {
|
|
183
262
|
sideStream: revalidatedRscCapture.sideStream,
|
|
184
263
|
capturedRscDataRef: revalidatedCapturedRscRef
|
|
185
264
|
} : {}
|
|
186
|
-
})
|
|
265
|
+
});
|
|
266
|
+
const html = await readStreamAsText(isAppSsrRenderResult(revalidatedHtmlResult) ? revalidatedHtmlResult.htmlStream : revalidatedHtmlResult);
|
|
187
267
|
const rscData = await getCapturedRscDataPromise(revalidatedCapturedRscRef.value);
|
|
188
268
|
const cacheLife = _consumeRequestScopedCacheLife();
|
|
189
269
|
options.clearRequestContext();
|
|
@@ -253,9 +333,10 @@ async function dispatchAppPageInner(options) {
|
|
|
253
333
|
});
|
|
254
334
|
if (dynamicParamsResponse) return dynamicParamsResponse;
|
|
255
335
|
const interceptResult = await resolveAppPageIntercept({
|
|
256
|
-
buildPageElement(interceptRoute, interceptParams, interceptOpts, interceptSearchParams) {
|
|
336
|
+
async buildPageElement(interceptRoute, interceptParams, interceptOpts, interceptSearchParams, interceptLayoutParamAccess) {
|
|
337
|
+
await options.ensureRouteLoaded?.(interceptRoute);
|
|
257
338
|
setCurrentFetchCacheMode(options.resolveRouteFetchCacheMode?.(interceptRoute) ?? null);
|
|
258
|
-
return options.buildPageElement(interceptRoute, interceptParams, interceptOpts, interceptSearchParams);
|
|
339
|
+
return options.buildPageElement(interceptRoute, interceptParams, interceptOpts, interceptSearchParams, interceptLayoutParamAccess);
|
|
259
340
|
},
|
|
260
341
|
cleanPathname: options.cleanPathname,
|
|
261
342
|
currentRoute: route,
|
|
@@ -269,6 +350,7 @@ async function dispatchAppPageInner(options) {
|
|
|
269
350
|
return options.getSourceRoute(sourceRouteIndex);
|
|
270
351
|
},
|
|
271
352
|
isRscRequest: options.isRscRequest,
|
|
353
|
+
layoutParamAccess,
|
|
272
354
|
renderInterceptResponse(sourceRoute, interceptElement) {
|
|
273
355
|
const interceptOnError = options.createRscOnErrorHandler(options.cleanPathname, sourceRoute.pattern);
|
|
274
356
|
const interceptStream = options.renderToReadableStream(interceptElement, { onError: interceptOnError });
|
|
@@ -293,7 +375,7 @@ async function dispatchAppPageInner(options) {
|
|
|
293
375
|
const pageBuildResult = await buildAppPageElement({
|
|
294
376
|
buildPageElement() {
|
|
295
377
|
if (options.actionFailed) throw options.actionError;
|
|
296
|
-
return options.buildPageElement(route, options.params, interceptResult.interceptOpts, options.searchParams);
|
|
378
|
+
return options.buildPageElement(route, options.params, interceptResult.interceptOpts, options.searchParams, layoutParamAccess);
|
|
297
379
|
},
|
|
298
380
|
renderErrorBoundaryPage(buildError) {
|
|
299
381
|
return options.renderErrorBoundaryPage(buildError);
|
|
@@ -304,6 +386,7 @@ async function dispatchAppPageInner(options) {
|
|
|
304
386
|
resolveSpecialError: resolveAppPageSpecialError
|
|
305
387
|
});
|
|
306
388
|
if (pageBuildResult.response) return pageBuildResult.response;
|
|
389
|
+
const layoutClassifications = getEffectiveLayoutClassifications(route, options.debugClassification);
|
|
307
390
|
return renderAppPageLifecycle({
|
|
308
391
|
basePath: options.basePath,
|
|
309
392
|
clientTraceMetadata: options.clientTraceMetadata,
|
|
@@ -321,6 +404,7 @@ async function dispatchAppPageInner(options) {
|
|
|
321
404
|
return options.createRscOnErrorHandler(pathname, routePath);
|
|
322
405
|
},
|
|
323
406
|
element: pageBuildResult.element,
|
|
407
|
+
clientReuseManifest: options.clientReuseManifest,
|
|
324
408
|
getDraftModeCookieHeader,
|
|
325
409
|
getFontLinks: options.getFontLinks,
|
|
326
410
|
getFontPreloads: options.getFontPreloads,
|
|
@@ -357,6 +441,7 @@ async function dispatchAppPageInner(options) {
|
|
|
357
441
|
loadSsrHandler: options.loadSsrHandler,
|
|
358
442
|
middlewareContext: options.middlewareContext,
|
|
359
443
|
params: options.params,
|
|
444
|
+
layoutParamAccess,
|
|
360
445
|
rootParams: options.rootParams,
|
|
361
446
|
peekRenderObservationState() {
|
|
362
447
|
return {
|
|
@@ -365,7 +450,7 @@ async function dispatchAppPageInner(options) {
|
|
|
365
450
|
};
|
|
366
451
|
},
|
|
367
452
|
probeLayoutAt(layoutIndex) {
|
|
368
|
-
return options.probeLayoutAt(layoutIndex);
|
|
453
|
+
return options.probeLayoutAt(layoutIndex, layoutParamAccess);
|
|
369
454
|
},
|
|
370
455
|
probePage() {
|
|
371
456
|
return options.probePage();
|
|
@@ -375,9 +460,12 @@ async function dispatchAppPageInner(options) {
|
|
|
375
460
|
const treePosition = route.layoutTreePositions?.[index] ?? 0;
|
|
376
461
|
return AppElementsWire.encodeLayoutId(createAppPageTreePath([...route.routeSegments], treePosition));
|
|
377
462
|
},
|
|
378
|
-
buildTimeClassifications:
|
|
379
|
-
buildTimeReasons:
|
|
463
|
+
buildTimeClassifications: layoutClassifications.buildTimeClassifications,
|
|
464
|
+
buildTimeReasons: layoutClassifications.buildTimeReasons,
|
|
380
465
|
debugClassification: options.debugClassification,
|
|
466
|
+
isLayoutObservationDynamic(layoutId) {
|
|
467
|
+
return isAppLayoutObservationUnsafeForStaticReuse(layoutParamAccess.getLayoutObservation(layoutId));
|
|
468
|
+
},
|
|
381
469
|
async runWithIsolatedDynamicScope(fn) {
|
|
382
470
|
const priorDynamic = consumeDynamicUsage();
|
|
383
471
|
try {
|
|
@@ -391,6 +479,7 @@ async function dispatchAppPageInner(options) {
|
|
|
391
479
|
}
|
|
392
480
|
}
|
|
393
481
|
},
|
|
482
|
+
dynamicStaleTimeSeconds: options.dynamicStaleTimeSeconds,
|
|
394
483
|
revalidateSeconds: currentRevalidateSeconds,
|
|
395
484
|
mountedSlotsHeader: options.mountedSlotsHeader,
|
|
396
485
|
renderMode: options.renderMode ?? "navigation",
|
|
@@ -443,11 +532,12 @@ async function renderLayoutSpecialError(options, specialError, layoutIndex) {
|
|
|
443
532
|
buildRscRedirectFlightStream: (rscOptions) => buildRscRedirectFlightStream(options, rscOptions.digest),
|
|
444
533
|
clearRequestContext: options.clearRequestContext,
|
|
445
534
|
getAndClearPendingCookies,
|
|
535
|
+
serveStreamingMetadata: shouldServeStreamingMetadata(options.request.headers.get("user-agent") ?? "", options.htmlLimitedBots),
|
|
446
536
|
isEdgeRuntime: options.isEdgeRuntime,
|
|
447
537
|
isRscRequest: options.isRscRequest,
|
|
448
538
|
middlewareContext: options.middlewareContext,
|
|
449
539
|
renderFallbackPage(statusCode) {
|
|
450
|
-
const
|
|
540
|
+
const parentBoundaryModule = resolveAppPageParentHttpAccessBoundaryModule({
|
|
451
541
|
layoutIndex,
|
|
452
542
|
rootForbiddenModule: options.rootForbiddenModule,
|
|
453
543
|
rootNotFoundModule: options.rootNotFoundModule,
|
|
@@ -456,12 +546,16 @@ async function renderLayoutSpecialError(options, specialError, layoutIndex) {
|
|
|
456
546
|
routeNotFoundModules: options.route.notFounds,
|
|
457
547
|
routeUnauthorizedModules: options.route.unauthorizeds,
|
|
458
548
|
statusCode
|
|
459
|
-
})
|
|
460
|
-
|
|
461
|
-
boundaryComponent: parentBoundary,
|
|
549
|
+
});
|
|
550
|
+
const fallbackOptions = {
|
|
462
551
|
layouts: options.route.layouts.slice(0, layoutIndex),
|
|
463
552
|
matchedParams: options.params
|
|
464
|
-
}
|
|
553
|
+
};
|
|
554
|
+
if (parentBoundaryModule) {
|
|
555
|
+
fallbackOptions.boundaryComponent = parentBoundaryModule.default;
|
|
556
|
+
fallbackOptions.boundaryModule = parentBoundaryModule;
|
|
557
|
+
}
|
|
558
|
+
return options.renderHttpAccessFallbackPage(statusCode, fallbackOptions, null);
|
|
465
559
|
},
|
|
466
560
|
request: options.request,
|
|
467
561
|
specialError
|
|
@@ -473,6 +567,7 @@ async function renderPageSpecialError(options, specialError) {
|
|
|
473
567
|
buildRscRedirectFlightStream: (rscOptions) => buildRscRedirectFlightStream(options, rscOptions.digest),
|
|
474
568
|
clearRequestContext: options.clearRequestContext,
|
|
475
569
|
getAndClearPendingCookies,
|
|
570
|
+
serveStreamingMetadata: shouldServeStreamingMetadata(options.request.headers.get("user-agent") ?? "", options.htmlLimitedBots),
|
|
476
571
|
isEdgeRuntime: options.isEdgeRuntime,
|
|
477
572
|
isRscRequest: options.isRscRequest,
|
|
478
573
|
middlewareContext: options.middlewareContext,
|
|
@@ -490,13 +585,15 @@ async function renderPageSpecialError(options, specialError) {
|
|
|
490
585
|
statusCode
|
|
491
586
|
});
|
|
492
587
|
const useLayoutAlignedBoundary = boundaryLayoutIndex !== null && (routeBoundaryModule === null || routeBoundaryModule === parentBoundaryModule);
|
|
493
|
-
const
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
588
|
+
const fallbackOptions = { matchedParams: options.params };
|
|
589
|
+
if (useLayoutAlignedBoundary && boundaryLayoutIndex !== null) {
|
|
590
|
+
fallbackOptions.layouts = options.route.layouts.slice(0, boundaryLayoutIndex + 1);
|
|
591
|
+
if (parentBoundaryModule) {
|
|
592
|
+
fallbackOptions.boundaryComponent = parentBoundaryModule.default;
|
|
593
|
+
fallbackOptions.boundaryModule = parentBoundaryModule;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
return options.renderHttpAccessFallbackPage(statusCode, fallbackOptions, null);
|
|
500
597
|
},
|
|
501
598
|
request: options.request,
|
|
502
599
|
specialError
|
|
@@ -504,5 +601,3 @@ async function renderPageSpecialError(options, specialError) {
|
|
|
504
601
|
}
|
|
505
602
|
//#endregion
|
|
506
603
|
export { dispatchAppPage };
|
|
507
|
-
|
|
508
|
-
//# sourceMappingURL=app-page-dispatch.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { MetadataFileRoute } from "./metadata-routes.js";
|
|
2
2
|
import { AppElements } from "./app-elements-wire.js";
|
|
3
3
|
import { AppPageParams } from "./app-page-boundary.js";
|
|
4
|
+
import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
|
|
4
5
|
import { AppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
5
6
|
import { AppPageErrorModule, AppPageModule, AppPageRouteWiringRoute } from "./app-page-route-wiring.js";
|
|
6
7
|
|
|
@@ -42,6 +43,7 @@ type BuildPageElementsOptions<TModule extends AppPageModule = AppPageModule, TEr
|
|
|
42
43
|
rootForbiddenModule?: TModule | null; /** Root-level unauthorized.tsx module. Present when the app defines this file. */
|
|
43
44
|
rootUnauthorizedModule?: TModule | null; /** File-based metadata routes (favicon, manifest, sitemap, etc.). */
|
|
44
45
|
metadataRoutes: readonly MetadataFileRoute[];
|
|
46
|
+
layoutParamAccess?: AppLayoutParamAccessTracker;
|
|
45
47
|
/**
|
|
46
48
|
* Configured next.config `basePath`. Threaded through `resolveAppPageHead`
|
|
47
49
|
* so file-based metadata route URLs emitted in <head> are prefixed.
|
|
@@ -67,5 +69,4 @@ type BuildPageElementsOptions<TModule extends AppPageModule = AppPageModule, TEr
|
|
|
67
69
|
*/
|
|
68
70
|
declare function buildPageElements<TModule extends AppPageModule = AppPageModule, TErrorModule extends AppPageErrorModule = AppPageErrorModule>(options: BuildPageElementsOptions<TModule, TErrorModule>): Promise<AppElements>;
|
|
69
71
|
//#endregion
|
|
70
|
-
export { AppPageBuildRoute, type AppPageErrorModule, AppPageInterceptOptions, AppPagePageRequest, type AppPageRouteWiringRoute, BuildPageElementsOptions, buildPageElements };
|
|
71
|
-
//# sourceMappingURL=app-page-element-builder.d.ts.map
|
|
72
|
+
export { AppPageBuildRoute, type AppPageErrorModule, AppPageInterceptOptions, AppPagePageRequest, type AppPageRouteWiringRoute, BuildPageElementsOptions, buildPageElements };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { matchRoutePattern } from "../routing/route-pattern.js";
|
|
2
|
-
import { markDynamicUsage, markRenderRequestApiUsage } from "../shims/headers.js";
|
|
3
2
|
import { AppElementsWire } from "./app-elements-wire.js";
|
|
4
|
-
import { APP_RSC_RENDER_MODE_NAVIGATION } from "./app-rsc-render-mode.js";
|
|
3
|
+
import { APP_RSC_RENDER_MODE_NAVIGATION, shouldSuppressLoadingBoundaries } from "./app-rsc-render-mode.js";
|
|
5
4
|
import "./app-elements.js";
|
|
6
5
|
import { createAppPageRenderIdentity } from "./app-page-render-identity.js";
|
|
7
6
|
import { makeThenableParams } from "../shims/thenable-params.js";
|
|
8
|
-
import { buildAppPageElements, createAppPageTreePath } from "./app-page-route-wiring.js";
|
|
9
7
|
import { resolveActiveParallelRouteHeadInputs, resolveAppPageHead } from "./app-page-head.js";
|
|
8
|
+
import { makeObservedAppPageSearchParamsThenable } from "./app-page-search-params-observation.js";
|
|
9
|
+
import { buildAppPageElements, createAppPageTreePath } from "./app-page-route-wiring.js";
|
|
10
10
|
import { DEFAULT_GLOBAL_ERROR_MODULE } from "./default-global-error-module.js";
|
|
11
11
|
import { shouldServeStreamingMetadata } from "./streaming-metadata.js";
|
|
12
12
|
import { createElement } from "react";
|
|
@@ -57,7 +57,7 @@ async function buildPageElements(options) {
|
|
|
57
57
|
[renderIdentity.routeId]: createElement("div", null, "Page has no default export")
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
|
-
const {
|
|
60
|
+
const { hasDynamicMetadata, metadata: resolvedMetadata, pageSearchParams, viewport: resolvedViewport } = await resolveAppPageHead({
|
|
61
61
|
basePath: options.basePath ?? "",
|
|
62
62
|
layoutModules: route.layouts,
|
|
63
63
|
layoutTreePositions: route.layoutTreePositions,
|
|
@@ -78,12 +78,10 @@ async function buildPageElements(options) {
|
|
|
78
78
|
searchParams
|
|
79
79
|
});
|
|
80
80
|
const pageProps = { params: makeThenableParams(params) };
|
|
81
|
+
let pageSearchParamsThenable;
|
|
81
82
|
if (searchParams) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
markDynamicUsage();
|
|
85
|
-
markRenderRequestApiUsage("searchParams");
|
|
86
|
-
}
|
|
83
|
+
pageSearchParamsThenable = !shouldSuppressLoadingBoundaries(renderMode) && Boolean(route.loading?.default) ? makeObservedAppPageSearchParamsThenable(pageSearchParams) : makeThenableParams(pageSearchParams);
|
|
84
|
+
pageProps.searchParams = pageSearchParamsThenable;
|
|
87
85
|
}
|
|
88
86
|
const mountedSlotIds = mountedSlotsHeader ? new Set(mountedSlotsHeader.split(" ")) : null;
|
|
89
87
|
const slotOverrides = buildSlotOverrides(route, params, routePath, opts);
|
|
@@ -92,6 +90,7 @@ async function buildPageElements(options) {
|
|
|
92
90
|
element: PageComponent ? createElement(PageComponent, pageProps) : null,
|
|
93
91
|
globalErrorModule: globalErrorModule ?? DEFAULT_GLOBAL_ERROR_MODULE,
|
|
94
92
|
isRscRequest,
|
|
93
|
+
layoutParamAccess: options.layoutParamAccess,
|
|
95
94
|
mountedSlotIds,
|
|
96
95
|
makeThenableParams,
|
|
97
96
|
matchedParams: params,
|
|
@@ -105,6 +104,7 @@ async function buildPageElements(options) {
|
|
|
105
104
|
rootForbiddenModule: rootForbiddenModule ?? null,
|
|
106
105
|
rootUnauthorizedModule: rootUnauthorizedModule ?? null,
|
|
107
106
|
route,
|
|
107
|
+
searchParams: pageSearchParamsThenable,
|
|
108
108
|
slotOverrides,
|
|
109
109
|
renderMode
|
|
110
110
|
});
|
|
@@ -158,5 +158,3 @@ function collectParamNameSet(params) {
|
|
|
158
158
|
}
|
|
159
159
|
//#endregion
|
|
160
160
|
export { buildPageElements };
|
|
161
|
-
|
|
162
|
-
//# sourceMappingURL=app-page-element-builder.js.map
|
|
@@ -72,6 +72,7 @@ type BuildAppPageSpecialErrorResponseOptions = {
|
|
|
72
72
|
};
|
|
73
73
|
renderFallbackPage?: (statusCode: number) => Promise<Response | null>;
|
|
74
74
|
request: Request;
|
|
75
|
+
serveStreamingMetadata?: boolean;
|
|
75
76
|
specialError: AppPageSpecialError;
|
|
76
77
|
};
|
|
77
78
|
type ProbeAppPageLayoutsResult = {
|
|
@@ -96,7 +97,12 @@ type LayoutClassificationOptions = {
|
|
|
96
97
|
* active. When undefined, the probe loop skips debug emission entirely.
|
|
97
98
|
*/
|
|
98
99
|
debugClassification?: (layoutId: string, reason: ClassificationReason) => void; /** Maps layout index to its layout ID (e.g. "layout:/blog"). */
|
|
99
|
-
getLayoutId: (layoutIndex: number) => string;
|
|
100
|
+
getLayoutId: (layoutIndex: number) => string;
|
|
101
|
+
/**
|
|
102
|
+
* Returns whether the completed per-layout observation makes static reuse
|
|
103
|
+
* unsafe even if the older dynamic scope did not report dynamic usage.
|
|
104
|
+
*/
|
|
105
|
+
isLayoutObservationDynamic?: (layoutId: string) => boolean; /** Runs a function with isolated dynamic usage tracking per layout. */
|
|
100
106
|
runWithIsolatedDynamicScope: <T>(fn: () => T) => Promise<{
|
|
101
107
|
result: T;
|
|
102
108
|
dynamicDetected: boolean;
|
|
@@ -124,5 +130,4 @@ declare function readAppPageBinaryStream(stream: ReadableStream<Uint8Array>): Pr
|
|
|
124
130
|
declare function teeAppPageRscStreamForCapture(stream: ReadableStream<Uint8Array>, shouldCapture: boolean): AppPageRscStreamCapture;
|
|
125
131
|
declare function buildAppPageFontLinkHeader(preloads: readonly AppPageFontPreload[] | null | undefined): string;
|
|
126
132
|
//#endregion
|
|
127
|
-
export { AppPageFontPreload, AppPageSpecialError,
|
|
128
|
-
//# sourceMappingURL=app-page-execution.d.ts.map
|
|
133
|
+
export { AppPageFontPreload, AppPageSpecialError, LayoutClassificationOptions, type LayoutFlags, buildAppPageFontLinkHeader, buildAppPageSpecialErrorResponse, probeAppPageComponent, probeAppPageLayouts, readAppPageBinaryStream, resolveAppPageSpecialError, tagAppPageMetadataError, teeAppPageRscStreamForCapture };
|
|
@@ -4,6 +4,8 @@ import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, createRscRedire
|
|
|
4
4
|
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
5
5
|
import { applyEdgeRuntimeHeader } from "./app-page-response.js";
|
|
6
6
|
import { parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
|
|
7
|
+
import { renderSsrErrorMetaTags } from "./app-ssr-error-meta.js";
|
|
8
|
+
import { isPromiseLike } from "../utils/promise.js";
|
|
7
9
|
//#region src/server/app-page-execution.ts
|
|
8
10
|
/**
|
|
9
11
|
* Builds the canonical `NEXT_REDIRECT;<type>;<url>;<status>;` digest that
|
|
@@ -28,14 +30,20 @@ function formatNextRedirectDigest(options) {
|
|
|
28
30
|
/**
|
|
29
31
|
* Marker we tag onto a thrown redirect/notFound error when it originates from
|
|
30
32
|
* `generateMetadata()` (vs. a server component itself). Metadata resolution is
|
|
31
|
-
* suspended/streamed in Next.js, so a redirect from metadata
|
|
32
|
-
* HTTP-level 307
|
|
33
|
-
*
|
|
34
|
-
*
|
|
33
|
+
* suspended/streamed in Next.js, so a redirect from metadata is not emitted as
|
|
34
|
+
* a plain HTTP-level 307. Instead the transport depends on the request:
|
|
35
|
+
* - RSC navigation requests (`Rsc: 1`) ride inside the flight payload with a
|
|
36
|
+
* 200 status; the client router decodes the redirect digest.
|
|
37
|
+
* - Streaming-capable document requests get a 200 HTML response carrying a
|
|
38
|
+
* refresh meta tag (the streamed document can't switch to a 307 after the
|
|
39
|
+
* head has flushed).
|
|
40
|
+
* - html-limited bots (which Next.js serves a blocking, non-streamed
|
|
41
|
+
* response) get the HTTP-level 307.
|
|
42
|
+
* Page-level redirect()s, by contrast, still produce a 307 for SSR document
|
|
43
|
+
* requests.
|
|
35
44
|
*
|
|
36
45
|
* See Next.js test:
|
|
37
|
-
* test/e2e/app-dir/metadata-
|
|
38
|
-
* ("should support redirect in generateMetadata")
|
|
46
|
+
* test/e2e/app-dir/metadata-streaming/metadata-streaming.test.ts
|
|
39
47
|
*/
|
|
40
48
|
const APP_PAGE_METADATA_ERROR_MARKER = Symbol.for("vinext.appPage.metadataError");
|
|
41
49
|
function tagAppPageMetadataError(error) {
|
|
@@ -49,9 +57,6 @@ function tagAppPageMetadataError(error) {
|
|
|
49
57
|
} catch {}
|
|
50
58
|
return error;
|
|
51
59
|
}
|
|
52
|
-
function isPromiseLike(value) {
|
|
53
|
-
return Boolean(value && (typeof value === "object" || typeof value === "function") && "then" in value && typeof value.then === "function");
|
|
54
|
-
}
|
|
55
60
|
function getAppPageStatusText(statusCode) {
|
|
56
61
|
return statusCode === 403 ? "Forbidden" : statusCode === 401 ? "Unauthorized" : "Not Found";
|
|
57
62
|
}
|
|
@@ -120,16 +125,34 @@ function sameOriginPathOrAbsolute(location, requestUrl) {
|
|
|
120
125
|
return location;
|
|
121
126
|
}
|
|
122
127
|
}
|
|
128
|
+
function buildMetadataRedirectHtmlResponse(options) {
|
|
129
|
+
const headers = new Headers({ "Content-Type": "text/html; charset=utf-8" });
|
|
130
|
+
applyEdgeRuntimeHeader(headers, options.isEdgeRuntime);
|
|
131
|
+
mergeMiddlewareResponseHeaders(headers, options.middlewareContext?.headers ?? null);
|
|
132
|
+
const pendingCookies = options.getAndClearPendingCookies?.() ?? [];
|
|
133
|
+
for (const cookie of pendingCookies) headers.append("Set-Cookie", cookie);
|
|
134
|
+
const errorMetaTags = renderSsrErrorMetaTags([{ digest: options.digest }]);
|
|
135
|
+
return new Response(`<!DOCTYPE html><html><head>${errorMetaTags}</head><body></body></html>`, {
|
|
136
|
+
headers,
|
|
137
|
+
status: 200
|
|
138
|
+
});
|
|
139
|
+
}
|
|
123
140
|
async function buildAppPageSpecialErrorResponse(options) {
|
|
124
141
|
if (options.specialError.kind === "redirect") {
|
|
125
142
|
options.clearRequestContext();
|
|
126
143
|
const prefixedLocation = applyAppPageRedirectBasePath(options.specialError.location, options.request.url, options.basePath);
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
144
|
+
const digestUrl = sameOriginPathOrAbsolute(prefixedLocation, options.request.url);
|
|
145
|
+
const digest = formatNextRedirectDigest({
|
|
146
|
+
url: digestUrl,
|
|
147
|
+
statusCode: options.specialError.statusCode
|
|
148
|
+
});
|
|
149
|
+
if (options.specialError.fromMetadata === true && !options.isRscRequest && options.serveStreamingMetadata !== false) return buildMetadataRedirectHtmlResponse({
|
|
150
|
+
digest,
|
|
151
|
+
getAndClearPendingCookies: options.getAndClearPendingCookies,
|
|
152
|
+
isEdgeRuntime: options.isEdgeRuntime,
|
|
153
|
+
middlewareContext: options.middlewareContext
|
|
154
|
+
});
|
|
155
|
+
if (Boolean(options.buildRscRedirectFlightStream) && options.isRscRequest && options.buildRscRedirectFlightStream) {
|
|
133
156
|
const stream = options.buildRscRedirectFlightStream({ digest });
|
|
134
157
|
const headers = new Headers({
|
|
135
158
|
"Content-Type": VINEXT_RSC_CONTENT_TYPE,
|
|
@@ -171,23 +194,33 @@ async function probeAppPageLayouts(options) {
|
|
|
171
194
|
for (let layoutIndex = options.layoutCount - 1; layoutIndex >= 0; layoutIndex--) {
|
|
172
195
|
const buildTimeResult = cls?.buildTimeClassifications?.get(layoutIndex);
|
|
173
196
|
if (cls && buildTimeResult) {
|
|
174
|
-
|
|
175
|
-
|
|
197
|
+
const layoutId = cls.getLayoutId(layoutIndex);
|
|
198
|
+
layoutFlags[layoutId] = buildTimeResult === "static" ? "s" : "d";
|
|
176
199
|
const errorResponse = await probeLayoutForErrors(options, layoutIndex);
|
|
177
200
|
if (errorResponse) return errorResponse;
|
|
201
|
+
const observationDynamic = cls.isLayoutObservationDynamic?.(layoutId) === true;
|
|
202
|
+
layoutFlags[layoutId] = buildTimeResult === "dynamic" || observationDynamic ? "d" : "s";
|
|
203
|
+
if (cls.debugClassification) if (observationDynamic && buildTimeResult === "static") cls.debugClassification(layoutId, {
|
|
204
|
+
layer: "runtime-probe",
|
|
205
|
+
outcome: "dynamic"
|
|
206
|
+
});
|
|
207
|
+
else cls.debugClassification(layoutId, cls.buildTimeReasons?.get(layoutIndex) ?? { layer: "no-classifier" });
|
|
178
208
|
continue;
|
|
179
209
|
}
|
|
180
210
|
if (cls) {
|
|
211
|
+
const layoutId = cls.getLayoutId(layoutIndex);
|
|
181
212
|
try {
|
|
182
213
|
const { dynamicDetected } = await cls.runWithIsolatedDynamicScope(() => options.probeLayoutAt(layoutIndex));
|
|
183
|
-
|
|
184
|
-
|
|
214
|
+
const observationDynamic = cls.isLayoutObservationDynamic?.(layoutId) === true;
|
|
215
|
+
const layoutDynamic = dynamicDetected || observationDynamic;
|
|
216
|
+
layoutFlags[layoutId] = layoutDynamic ? "d" : "s";
|
|
217
|
+
if (cls.debugClassification) cls.debugClassification(layoutId, {
|
|
185
218
|
layer: "runtime-probe",
|
|
186
|
-
outcome:
|
|
219
|
+
outcome: layoutDynamic ? "dynamic" : "static"
|
|
187
220
|
});
|
|
188
221
|
} catch (error) {
|
|
189
|
-
layoutFlags[
|
|
190
|
-
if (cls.debugClassification) cls.debugClassification(
|
|
222
|
+
layoutFlags[layoutId] = "d";
|
|
223
|
+
if (cls.debugClassification) cls.debugClassification(layoutId, {
|
|
191
224
|
layer: "runtime-probe",
|
|
192
225
|
outcome: "dynamic",
|
|
193
226
|
error: error instanceof Error ? error.message : String(error)
|
|
@@ -258,5 +291,3 @@ function buildAppPageFontLinkHeader(preloads) {
|
|
|
258
291
|
}
|
|
259
292
|
//#endregion
|
|
260
293
|
export { buildAppPageFontLinkHeader, buildAppPageSpecialErrorResponse, probeAppPageComponent, probeAppPageLayouts, readAppPageBinaryStream, resolveAppPageSpecialError, tagAppPageMetadataError, teeAppPageRscStreamForCapture };
|
|
261
|
-
|
|
262
|
-
//# sourceMappingURL=app-page-execution.js.map
|
|
@@ -59,5 +59,4 @@ declare function resolveActiveParallelRouteHeadInputs<TModule extends AppPageHea
|
|
|
59
59
|
declare function collectAppPageSearchParams(searchParams: URLSearchParams | null | undefined): AppPageSearchParamsCollection;
|
|
60
60
|
declare function resolveAppPageHead<TModule extends AppPageHeadModule>(options: ResolveAppPageHeadOptions<TModule>): Promise<ResolveAppPageHeadResult>;
|
|
61
61
|
//#endregion
|
|
62
|
-
export { collectAppPageSearchParams, resolveActiveParallelRouteHeadInputs, resolveAppPageHead };
|
|
63
|
-
//# sourceMappingURL=app-page-head.d.ts.map
|
|
62
|
+
export { AppPageSearchParams, collectAppPageSearchParams, resolveActiveParallelRouteHeadInputs, resolveAppPageHead };
|