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,37 +1,40 @@
|
|
|
1
1
|
import { stripBasePath } from "../utils/base-path.js";
|
|
2
|
-
import { ACTION_REDIRECT_HEADER,
|
|
2
|
+
import { ACTION_REDIRECT_HEADER, ACTION_REDIRECT_STATUS_HEADER, VINEXT_CLIENT_REUSE_MANIFEST_HEADER, VINEXT_PARAMS_HEADER, VINEXT_RSC_REDIRECT_HEADER } from "./headers.js";
|
|
3
3
|
import { DANGEROUS_URL_BLOCK_MESSAGE, isDangerousScheme } from "../shims/url-safety.js";
|
|
4
4
|
import { AppElementsWire } from "./app-elements-wire.js";
|
|
5
5
|
import { APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI } from "./app-rsc-render-mode.js";
|
|
6
6
|
import { getMountedSlotIdsHeader, resolveVisitedResponseInterceptionContext } from "./app-elements.js";
|
|
7
|
+
import { AppRouterContext } from "../shims/internal/app-router-context.js";
|
|
7
8
|
import { installWindowNext } from "../client/window-next.js";
|
|
8
|
-
import { scrollToHashTargetOnNextFrame } from "../shims/hash-scroll.js";
|
|
9
|
+
import { retryScrollTo, scrollToHashTargetOnNextFrame } from "../shims/hash-scroll.js";
|
|
9
10
|
import { getNavigationRuntime, registerNavigationRuntimeBootstrap, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
|
|
10
11
|
import { notifyAppRouterTransitionStart } from "../client/instrumentation-client-state.js";
|
|
11
12
|
import { resolveManifestNavigationInterceptionContext } from "./app-browser-interception-context.js";
|
|
12
|
-
import { createHistoryStateWithNavigationMetadata,
|
|
13
|
-
import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, createRscRequestHeaders, createRscRequestUrl, getVinextRscCompatibilityId, resolveHardNavigationTargetFromRscResponse, resolveRscCompatibilityNavigationDecision } from "./app-rsc-cache-busting.js";
|
|
14
|
-
import {
|
|
15
|
-
import { consumeAppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
|
|
16
|
-
import { __basePath, appRouterInstance, commitClientNavigationState,
|
|
13
|
+
import { createHistoryStateWithNavigationMetadata, isHistoryStateBfcacheVersionCurrent, readHistoryStateBfcacheIds, readHistoryStateBfcacheVersion, readHistoryStatePreviousNextUrl, readHistoryStateTraversalIndex, resolveHistoryTraversalIntent } from "./app-history-state.js";
|
|
14
|
+
import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, createRscRequestHeaders, createRscRequestUrl, createServerActionRequestUrl, getVinextRscCompatibilityId, resolveHardNavigationTargetFromRscResponse, resolveRscCompatibilityNavigationDecision } from "./app-rsc-cache-busting.js";
|
|
15
|
+
import { AppBrowserMpaNavigationScheduler } from "./app-browser-mpa-navigation.js";
|
|
16
|
+
import { beginAppRouterScrollIntent, consumeAppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
|
|
17
|
+
import { __basePath, appRouterInstance, commitClientNavigationState, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, decodeRedirectError, getBfcacheIdMapContext, getClientNavigationRenderContext, getPrefetchCache, invalidatePrefetchCache, isRedirectError, pushHistoryStateWithoutNotify, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, resolvePrefetchCacheEntryMountedSlotsHeader, restoreRscResponse, saveScrollPosition, setClientParams, setMountedSlotsHeader, setNavigationContext, setPendingPathname, useRouter } from "../shims/navigation.js";
|
|
17
18
|
import { DevRecoveryBoundary, RedirectBoundary } from "../shims/error-boundary.js";
|
|
18
19
|
import { AppRouterScrollCommitProvider } from "../shims/app-router-scroll.js";
|
|
19
|
-
import { ElementsContext, Slot } from "../shims/slot.js";
|
|
20
|
+
import { BfcacheStateKeyMapContext, ElementsContext, Slot } from "../shims/slot.js";
|
|
20
21
|
import "../client/instrumentation-client.js";
|
|
21
|
-
import { createDiscardedServerActionRefreshScheduler, createServerActionInitiationSnapshot, isServerActionResult, parseServerActionRevalidationHeader,
|
|
22
|
+
import { createDiscardedServerActionRefreshScheduler, createServerActionInitiationSnapshot, isServerActionResult, normalizeServerActionThrownValue, parseServerActionRevalidationHeader, readInvalidServerActionResponseError, resolveServerActionRedirectCompatibilityHardNavigationTarget, shouldCheckRscCompatibilityForServerActionResponse, shouldClearClientNavigationCachesForServerActionResult } from "./app-browser-action-result.js";
|
|
23
|
+
import { createClientReuseManifestHeaderFromVisibleAppState } from "./app-browser-client-reuse-manifest.js";
|
|
22
24
|
import { chunksToReadableStream, createProgressiveRscStream, getVinextBrowserGlobal } from "./app-browser-stream.js";
|
|
23
|
-
import { FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, isCacheRestorableAppPayloadMetadata, resolveInterceptionContextFromPreviousNextUrl, resolveServerActionRequestState } from "./app-browser-state.js";
|
|
25
|
+
import { FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, createBfcacheSegmentStateKeyMap, createInitialBfcacheIdMap, isCacheRestorableAppPayloadMetadata, resolveInterceptionContextFromPreviousNextUrl, resolveServerActionRequestState } from "./app-browser-state.js";
|
|
24
26
|
import { clearHardNavigationLoopGuard, createAppBrowserNavigationController } from "./app-browser-navigation-controller.js";
|
|
25
27
|
import { consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition } from "./app-browser-hydration.js";
|
|
28
|
+
import { createVisitedResponseCacheEntry, isVisitedResponseCacheEntryFresh } from "./app-visited-response-cache.js";
|
|
26
29
|
import { createPopstateRestoreHandler } from "./app-browser-popstate.js";
|
|
27
30
|
import { createOnUncaughtError } from "./app-browser-error.js";
|
|
28
31
|
import { dismissOverlay } from "./dev-error-overlay-store.js";
|
|
29
|
-
import { devOnCaughtError, devOnUncaughtError, installDevErrorOverlay } from "./dev-error-overlay.js";
|
|
32
|
+
import { devOnCaughtError, devOnUncaughtError, installDevErrorOverlay, installViteHmrErrorHandler, reportInitialDevServerErrors } from "./dev-error-overlay.js";
|
|
30
33
|
import { throwOnServerActionNotFound } from "./server-action-not-found.js";
|
|
31
34
|
import { resolveRscRedirectLifecycleHop } from "./app-browser-rsc-redirect.js";
|
|
32
35
|
import { createOptimisticRouteTemplate, getOptimisticPrefetchSourceKey, getOptimisticRouteTemplateKey, resolveOptimisticNavigationPayload } from "./app-optimistic-routing.js";
|
|
33
36
|
import { removeStylesheetLinksCoveredByInlineCss } from "./app-inline-css-client.js";
|
|
34
|
-
import { createElement, startTransition, use, useLayoutEffect, useRef, useState } from "react";
|
|
37
|
+
import { createElement, startTransition, use, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
35
38
|
import { createFromFetch, createFromReadableStream, createTemporaryReferenceSet, encodeReply, setServerCallback } from "@vitejs/plugin-rsc/browser";
|
|
36
39
|
import { hydrateRoot } from "react-dom/client";
|
|
37
40
|
//#region src/server/app-browser-entry.ts
|
|
@@ -47,8 +50,6 @@ function toOperationLane(kind) {
|
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
const MAX_VISITED_RESPONSE_CACHE_SIZE = 50;
|
|
50
|
-
const VISITED_RESPONSE_CACHE_TTL = 5 * 6e4;
|
|
51
|
-
const MAX_TRAVERSAL_CACHE_TTL = 30 * 6e4;
|
|
52
53
|
const CLIENT_RSC_COMPATIBILITY_ID = getVinextRscCompatibilityId();
|
|
53
54
|
const optimisticRouteTemplates = /* @__PURE__ */ new Map();
|
|
54
55
|
const optimisticRouteTemplateSources = /* @__PURE__ */ new Set();
|
|
@@ -65,6 +66,17 @@ const discardedServerActionRefreshScheduler = createDiscardedServerActionRefresh
|
|
|
65
66
|
getNavigationRuntime()?.functions.navigate?.(window.location.href, 0, "refresh", void 0, void 0, true);
|
|
66
67
|
} });
|
|
67
68
|
const NavigationCommitSignal = browserNavigationController.NavigationCommitSignal;
|
|
69
|
+
const ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR = "data-vinext-action-http-fallback";
|
|
70
|
+
function syncServerActionHttpFallbackHead(status) {
|
|
71
|
+
document.head.querySelectorAll(`meta[${ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR}="robots"]`).forEach((node) => node.remove());
|
|
72
|
+
if (status !== 404) return;
|
|
73
|
+
const robots = document.createElement("meta");
|
|
74
|
+
robots.name = "robots";
|
|
75
|
+
robots.content = "noindex";
|
|
76
|
+
robots.setAttribute(ACTION_HTTP_FALLBACK_ROBOTS_META_ATTR, "robots");
|
|
77
|
+
document.head.appendChild(robots);
|
|
78
|
+
}
|
|
79
|
+
const BfcacheIdMapContext = getBfcacheIdMapContext();
|
|
68
80
|
function parseEncodedJsonHeader(value) {
|
|
69
81
|
if (!value) return null;
|
|
70
82
|
try {
|
|
@@ -80,8 +92,30 @@ let latestClientParams = {};
|
|
|
80
92
|
const visitedResponseCache = /* @__PURE__ */ new Map();
|
|
81
93
|
let browserRouterStateHasEverCommitted = false;
|
|
82
94
|
let pendingNavigationRecoveryHref = null;
|
|
95
|
+
const mpaNavigationScheduler = new AppBrowserMpaNavigationScheduler();
|
|
96
|
+
const unresolvedMpaNavigation = new Promise(() => {});
|
|
97
|
+
const RSC_HMR_SETTLE_DELAY_MS = 150;
|
|
98
|
+
let latestRscHmrUpdateId = 0;
|
|
99
|
+
const initialHistoryBfcacheVersion = readHistoryStateBfcacheVersion(window.history.state);
|
|
100
|
+
let currentBfcacheVersion = initialHistoryBfcacheVersion === null ? 0 : initialHistoryBfcacheVersion + 1;
|
|
83
101
|
let currentHistoryTraversalIndex = readHistoryStateTraversalIndex(window.history.state) ?? 0;
|
|
84
102
|
let nextHistoryTraversalIndex = currentHistoryTraversalIndex;
|
|
103
|
+
function isCurrentBfcacheVersion(state) {
|
|
104
|
+
return isHistoryStateBfcacheVersionCurrent(state, currentBfcacheVersion);
|
|
105
|
+
}
|
|
106
|
+
function waitForRscHmrSettle(delayMs = RSC_HMR_SETTLE_DELAY_MS) {
|
|
107
|
+
return new Promise((resolve) => {
|
|
108
|
+
window.setTimeout(resolve, delayMs);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function readCurrentBfcacheVersionHistoryIds(state) {
|
|
112
|
+
const ids = readHistoryStateBfcacheIds(state);
|
|
113
|
+
if (ids === null) return null;
|
|
114
|
+
return isCurrentBfcacheVersion(state) ? ids : null;
|
|
115
|
+
}
|
|
116
|
+
function invalidateRestorableBfcacheIds() {
|
|
117
|
+
currentBfcacheVersion += 1;
|
|
118
|
+
}
|
|
85
119
|
function allocateNavigationHistoryTraversalIndex(historyUpdateMode) {
|
|
86
120
|
switch (historyUpdateMode) {
|
|
87
121
|
case "push": return nextHistoryTraversalIndex + 1;
|
|
@@ -97,7 +131,10 @@ function commitHistoryTraversalIndex(index) {
|
|
|
97
131
|
function commitHashOnlyNavigation(href, historyUpdateMode, scroll) {
|
|
98
132
|
const navigationHistoryIndex = allocateNavigationHistoryTraversalIndex(historyUpdateMode);
|
|
99
133
|
const previousNextUrl = hasBrowserRouterState() ? getBrowserRouterState().previousNextUrl : readHistoryStatePreviousNextUrl(window.history.state);
|
|
134
|
+
const bfcacheIds = hasBrowserRouterState() ? getBrowserRouterState().bfcacheIds : readCurrentBfcacheVersionHistoryIds(window.history.state);
|
|
100
135
|
const historyState = createHistoryStateWithNavigationMetadata(createHashOnlyNavigationBaseHistoryState(historyUpdateMode, scroll), {
|
|
136
|
+
bfcacheIds,
|
|
137
|
+
bfcacheVersion: bfcacheIds === null ? void 0 : currentBfcacheVersion,
|
|
101
138
|
previousNextUrl,
|
|
102
139
|
traversalIndex: navigationHistoryIndex
|
|
103
140
|
});
|
|
@@ -153,6 +190,7 @@ function clearPrefetchState() {
|
|
|
153
190
|
function clearClientNavigationCaches() {
|
|
154
191
|
clearVisitedResponseCache();
|
|
155
192
|
clearPrefetchState();
|
|
193
|
+
invalidateRestorableBfcacheIds();
|
|
156
194
|
}
|
|
157
195
|
function isSettledPrefetchCacheEntry(entry) {
|
|
158
196
|
return entry.outcome === "cache-seeded" && entry.pending === void 0 && entry.snapshot !== void 0;
|
|
@@ -171,7 +209,7 @@ function parsePrefetchCacheKey(cacheKey) {
|
|
|
171
209
|
async function learnOptimisticRouteTemplateFromPrefetch(options) {
|
|
172
210
|
const source = parsePrefetchCacheKey(options.cacheKey);
|
|
173
211
|
if (source.interceptionContext !== options.interceptionContext) return false;
|
|
174
|
-
if ((options.entry
|
|
212
|
+
if (resolvePrefetchCacheEntryMountedSlotsHeader(options.entry) !== options.mountedSlotsHeader) return false;
|
|
175
213
|
if (options.interceptionContext !== null) return false;
|
|
176
214
|
const elements = await decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(options.entry.snapshot))));
|
|
177
215
|
const template = createOptimisticRouteTemplate({
|
|
@@ -220,11 +258,26 @@ async function learnOptimisticRouteTemplatesFromPrefetchCache(options) {
|
|
|
220
258
|
if (learning.length === 0) return;
|
|
221
259
|
await Promise.allSettled(learning);
|
|
222
260
|
}
|
|
223
|
-
function
|
|
224
|
-
if (
|
|
225
|
-
|
|
261
|
+
function areBfcacheIdMapsEqual(a, b) {
|
|
262
|
+
if (a === b) return true;
|
|
263
|
+
if (a === null || b === null) return false;
|
|
264
|
+
const aEntries = Object.entries(a);
|
|
265
|
+
const bEntries = Object.entries(b);
|
|
266
|
+
if (aEntries.length !== bEntries.length) return false;
|
|
267
|
+
return aEntries.every(([key, value]) => b[key] === value);
|
|
268
|
+
}
|
|
269
|
+
function isHistoryStateNavigationMetadataInSync(state, previousNextUrl, bfcacheIds) {
|
|
270
|
+
return readHistoryStatePreviousNextUrl(state) === previousNextUrl && (bfcacheIds === void 0 || areBfcacheIdMapsEqual(readHistoryStateBfcacheIds(state), bfcacheIds) && isCurrentBfcacheVersion(state));
|
|
271
|
+
}
|
|
272
|
+
function syncCurrentHistoryStatePreviousNextUrl(previousNextUrl, bfcacheIds) {
|
|
273
|
+
if (isHistoryStateNavigationMetadataInSync(window.history.state, previousNextUrl, bfcacheIds)) return;
|
|
274
|
+
const nextHistoryState = createHistoryStateWithNavigationMetadata(window.history.state, {
|
|
275
|
+
bfcacheIds,
|
|
276
|
+
bfcacheVersion: bfcacheIds === void 0 ? void 0 : currentBfcacheVersion,
|
|
277
|
+
previousNextUrl
|
|
278
|
+
});
|
|
226
279
|
replaceHistoryStateWithoutNotify(nextHistoryState, "", window.location.href);
|
|
227
|
-
if (
|
|
280
|
+
if (isHistoryStateNavigationMetadataInSync(window.history.state, previousNextUrl, bfcacheIds)) return;
|
|
228
281
|
window.history.replaceState(nextHistoryState, "", window.location.href);
|
|
229
282
|
}
|
|
230
283
|
function createActionInitiationSnapshot() {
|
|
@@ -236,7 +289,7 @@ function createActionInitiationSnapshot() {
|
|
|
236
289
|
});
|
|
237
290
|
}
|
|
238
291
|
function createNavigationCommitEffect(options) {
|
|
239
|
-
const { href, historyUpdateMode, navId, params, previousNextUrl, targetHistoryIndex } = options;
|
|
292
|
+
const { bfcacheIds, href, historyUpdateMode, navId, params, previousNextUrl, targetHistoryIndex } = options;
|
|
240
293
|
return () => {
|
|
241
294
|
if (!browserNavigationController.isCurrentNavigation(navId)) {
|
|
242
295
|
commitClientNavigationState(void 0, { releaseSnapshot: true });
|
|
@@ -246,6 +299,8 @@ function createNavigationCommitEffect(options) {
|
|
|
246
299
|
const preserveExistingState = historyUpdateMode === "replace";
|
|
247
300
|
const navigationHistoryIndex = targetHistoryIndex !== void 0 ? targetHistoryIndex : allocateNavigationHistoryTraversalIndex(historyUpdateMode);
|
|
248
301
|
const historyState = createHistoryStateWithNavigationMetadata(preserveExistingState ? window.history.state : null, {
|
|
302
|
+
bfcacheIds,
|
|
303
|
+
bfcacheVersion: currentBfcacheVersion,
|
|
249
304
|
previousNextUrl,
|
|
250
305
|
traversalIndex: navigationHistoryIndex
|
|
251
306
|
});
|
|
@@ -262,7 +317,7 @@ function createNavigationCommitEffect(options) {
|
|
|
262
317
|
commitHistoryTraversalIndex(navigationHistoryIndex);
|
|
263
318
|
}
|
|
264
319
|
if (!wroteHistoryState) {
|
|
265
|
-
syncCurrentHistoryStatePreviousNextUrl(previousNextUrl);
|
|
320
|
+
syncCurrentHistoryStatePreviousNextUrl(previousNextUrl, bfcacheIds);
|
|
266
321
|
stageClientParams(params);
|
|
267
322
|
if (targetHistoryIndex !== void 0) commitHistoryTraversalIndex(targetHistoryIndex);
|
|
268
323
|
}
|
|
@@ -270,7 +325,8 @@ function createNavigationCommitEffect(options) {
|
|
|
270
325
|
commitClientNavigationState(navId);
|
|
271
326
|
};
|
|
272
327
|
}
|
|
273
|
-
async function renderNavigationPayload(payload, navigationSnapshot, targetHref, navId, historyUpdateMode, params, previousNextUrl, pendingRouterState, payloadOrigin, actionType = "navigate", operationLane = "navigation", traversalIntent = null, scrollIntent = null) {
|
|
328
|
+
async function renderNavigationPayload(payload, navigationSnapshot, targetHref, navId, historyUpdateMode, params, previousNextUrl, pendingRouterState, payloadOrigin, actionType = "navigate", operationLane = "navigation", traversalIntent = null, scrollIntent = null, restoredBfcacheIds = null) {
|
|
329
|
+
syncServerActionHttpFallbackHead(null);
|
|
274
330
|
try {
|
|
275
331
|
return await browserNavigationController.renderNavigationPayload({
|
|
276
332
|
actionType,
|
|
@@ -287,6 +343,7 @@ async function renderNavigationPayload(payload, navigationSnapshot, targetHref,
|
|
|
287
343
|
pendingRouterState,
|
|
288
344
|
previousNextUrl,
|
|
289
345
|
scrollIntent,
|
|
346
|
+
restoredBfcacheIds,
|
|
290
347
|
targetHistoryIndex: traversalIntent === null ? void 0 : traversalIntent.targetHistoryIndex,
|
|
291
348
|
targetHref,
|
|
292
349
|
navId
|
|
@@ -296,6 +353,52 @@ async function renderNavigationPayload(payload, navigationSnapshot, targetHref,
|
|
|
296
353
|
throw error;
|
|
297
354
|
}
|
|
298
355
|
}
|
|
356
|
+
function resolveActionRedirectTarget(response) {
|
|
357
|
+
const actionRedirect = response.headers.get(ACTION_REDIRECT_HEADER);
|
|
358
|
+
if (!actionRedirect) return null;
|
|
359
|
+
if (isDangerousScheme(actionRedirect)) {
|
|
360
|
+
console.error(DANGEROUS_URL_BLOCK_MESSAGE);
|
|
361
|
+
return null;
|
|
362
|
+
}
|
|
363
|
+
try {
|
|
364
|
+
let redirectUrl;
|
|
365
|
+
if (actionRedirect.startsWith("/") || /^[a-z]+:/i.test(actionRedirect)) redirectUrl = new URL(actionRedirect, window.location.href);
|
|
366
|
+
else {
|
|
367
|
+
const baseParsed = new URL(window.location.href);
|
|
368
|
+
let baseDir = baseParsed.pathname;
|
|
369
|
+
if (!baseDir.endsWith("/")) baseDir = baseDir + "/";
|
|
370
|
+
redirectUrl = new URL(actionRedirect, `${baseParsed.origin}${baseDir}${baseParsed.search}`);
|
|
371
|
+
}
|
|
372
|
+
if (redirectUrl.origin !== window.location.origin) {
|
|
373
|
+
browserNavigationController.performHardNavigation(actionRedirect);
|
|
374
|
+
return null;
|
|
375
|
+
}
|
|
376
|
+
const statusHeader = response.headers.get(ACTION_REDIRECT_STATUS_HEADER);
|
|
377
|
+
const status = statusHeader ? parseInt(statusHeader, 10) : 307;
|
|
378
|
+
return {
|
|
379
|
+
href: redirectUrl.href,
|
|
380
|
+
type: response.headers.get("x-action-redirect-type") ?? "push",
|
|
381
|
+
status
|
|
382
|
+
};
|
|
383
|
+
} catch {
|
|
384
|
+
browserNavigationController.performHardNavigation(actionRedirect);
|
|
385
|
+
return null;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
var ServerActionRedirectError = class extends Error {
|
|
389
|
+
digest;
|
|
390
|
+
handled = true;
|
|
391
|
+
constructor(target) {
|
|
392
|
+
super("NEXT_REDIRECT");
|
|
393
|
+
const redirectUrl = new URL(target.href, window.location.href);
|
|
394
|
+
const redirectHref = redirectUrl.pathname + redirectUrl.search + redirectUrl.hash;
|
|
395
|
+
const redirectType = target.type === "push" ? "push" : "replace";
|
|
396
|
+
this.digest = `NEXT_REDIRECT;${redirectType};${encodeURIComponent(redirectHref)};${target.status};`;
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
function createServerActionRedirectError(target) {
|
|
400
|
+
return new ServerActionRedirectError(target);
|
|
401
|
+
}
|
|
299
402
|
async function commitSameUrlNavigatePayload(nextElements, actionInitiation, returnValue, revalidation = "none") {
|
|
300
403
|
const navigationSnapshot = createClientNavigationRenderSnapshot(actionInitiation.href, actionInitiation.routerState.navigationSnapshot.params);
|
|
301
404
|
return browserNavigationController.commitSameUrlNavigatePayload(nextElements, navigationSnapshot, returnValue, actionInitiation.routerState, {
|
|
@@ -322,18 +425,10 @@ function getVisitedResponse(rscUrl, interceptionContext, mountedSlotsHeader, nav
|
|
|
322
425
|
visitedResponseCache.delete(cacheKey);
|
|
323
426
|
return null;
|
|
324
427
|
}
|
|
325
|
-
if (
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
visitedResponseCache.delete(cacheKey);
|
|
330
|
-
return null;
|
|
331
|
-
}
|
|
332
|
-
visitedResponseCache.delete(cacheKey);
|
|
333
|
-
visitedResponseCache.set(cacheKey, cached);
|
|
334
|
-
return cached;
|
|
335
|
-
}
|
|
336
|
-
if (cached.expiresAt > Date.now()) {
|
|
428
|
+
if (isVisitedResponseCacheEntryFresh(cached, {
|
|
429
|
+
navigationKind,
|
|
430
|
+
now: Date.now()
|
|
431
|
+
})) {
|
|
337
432
|
visitedResponseCache.delete(cacheKey);
|
|
338
433
|
visitedResponseCache.set(cacheKey, cached);
|
|
339
434
|
return cached;
|
|
@@ -341,16 +436,23 @@ function getVisitedResponse(rscUrl, interceptionContext, mountedSlotsHeader, nav
|
|
|
341
436
|
visitedResponseCache.delete(cacheKey);
|
|
342
437
|
return null;
|
|
343
438
|
}
|
|
439
|
+
function deleteVisitedResponse(rscUrl, interceptionContext) {
|
|
440
|
+
visitedResponseCache.delete(AppElementsWire.encodeCacheKey(rscUrl, interceptionContext));
|
|
441
|
+
}
|
|
344
442
|
function storeVisitedResponseSnapshot(rscUrl, interceptionContext, snapshot, params) {
|
|
345
443
|
const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
|
|
346
444
|
visitedResponseCache.delete(cacheKey);
|
|
347
445
|
evictVisitedResponseCacheIfNeeded();
|
|
348
446
|
const now = Date.now();
|
|
349
|
-
visitedResponseCache.set(cacheKey, {
|
|
447
|
+
visitedResponseCache.set(cacheKey, createVisitedResponseCacheEntry({
|
|
448
|
+
now,
|
|
350
449
|
params,
|
|
351
|
-
expiresAt: now + VISITED_RESPONSE_CACHE_TTL,
|
|
352
450
|
response: snapshot
|
|
353
|
-
});
|
|
451
|
+
}));
|
|
452
|
+
}
|
|
453
|
+
function isSamePageSearchNavigation(currentSnapshot, targetUrl) {
|
|
454
|
+
if (stripBasePath(targetUrl.pathname, __basePath) !== currentSnapshot.pathname) return false;
|
|
455
|
+
return targetUrl.searchParams.toString() !== currentSnapshot.searchParams.toString();
|
|
354
456
|
}
|
|
355
457
|
function getRequestState(navigationKind, targetPathname, previousNextUrlOverride, traverseHistoryState) {
|
|
356
458
|
if (previousNextUrlOverride !== void 0) return {
|
|
@@ -399,14 +501,44 @@ function getRequestState(navigationKind, targetPathname, previousNextUrlOverride
|
|
|
399
501
|
function handleDevRecoveryBoundaryCatch(resetKey) {
|
|
400
502
|
browserNavigationController.drainPrePaintEffects(resetKey);
|
|
401
503
|
}
|
|
504
|
+
function isMpaNavigationState(value) {
|
|
505
|
+
return value !== null && typeof value === "object" && "kind" in value && value.kind === "mpa-navigation";
|
|
506
|
+
}
|
|
507
|
+
function performMpaNavigation(href, historyUpdateMode) {
|
|
508
|
+
mpaNavigationScheduler.navigate(window, href, historyUpdateMode);
|
|
509
|
+
}
|
|
510
|
+
function AppRouterRedirectBridge({ children }) {
|
|
511
|
+
const router = useRouter();
|
|
512
|
+
useEffect(() => {
|
|
513
|
+
const handleUnhandledRedirect = (event) => {
|
|
514
|
+
const error = "reason" in event ? event.reason : event.error;
|
|
515
|
+
if (!isRedirectError(error)) return;
|
|
516
|
+
const result = decodeRedirectError(error.digest);
|
|
517
|
+
if (!result) return;
|
|
518
|
+
event.preventDefault();
|
|
519
|
+
startTransition(() => {
|
|
520
|
+
if (result.type === "push") router.push(result.url);
|
|
521
|
+
else router.replace(result.url);
|
|
522
|
+
});
|
|
523
|
+
};
|
|
524
|
+
window.addEventListener("error", handleUnhandledRedirect);
|
|
525
|
+
window.addEventListener("unhandledrejection", handleUnhandledRedirect);
|
|
526
|
+
return () => {
|
|
527
|
+
window.removeEventListener("error", handleUnhandledRedirect);
|
|
528
|
+
window.removeEventListener("unhandledrejection", handleUnhandledRedirect);
|
|
529
|
+
};
|
|
530
|
+
}, [router]);
|
|
531
|
+
return children ?? null;
|
|
532
|
+
}
|
|
402
533
|
function decodeAppElementsPromise(payload) {
|
|
403
534
|
return Promise.resolve(payload).then((elements) => AppElementsWire.decode(elements));
|
|
404
535
|
}
|
|
405
536
|
function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
|
|
406
537
|
const resolvedElements = use(initialElements);
|
|
407
538
|
const initialMetadata = AppElementsWire.readMetadata(resolvedElements);
|
|
408
|
-
const [treeStateValue, setTreeStateValue] = useState({
|
|
539
|
+
const [treeStateValue, setTreeStateValue] = useState(() => ({
|
|
409
540
|
activeOperation: null,
|
|
541
|
+
bfcacheIds: createInitialBfcacheIdMap(resolvedElements),
|
|
410
542
|
elements: resolvedElements,
|
|
411
543
|
interception: initialMetadata.interception,
|
|
412
544
|
interceptionContext: initialMetadata.interceptionContext,
|
|
@@ -419,12 +551,27 @@ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
|
|
|
419
551
|
routeId: initialMetadata.routeId,
|
|
420
552
|
slotBindings: initialMetadata.slotBindings,
|
|
421
553
|
visibleCommitVersion: 0
|
|
422
|
-
});
|
|
554
|
+
}));
|
|
555
|
+
if (isMpaNavigationState(treeStateValue)) {
|
|
556
|
+
performMpaNavigation(treeStateValue.href, treeStateValue.historyUpdateMode);
|
|
557
|
+
throw unresolvedMpaNavigation;
|
|
558
|
+
}
|
|
423
559
|
const treeState = isRouterStatePromise(treeStateValue) ? use(treeStateValue) : treeStateValue;
|
|
424
560
|
const stateRef = useRef(treeState);
|
|
425
561
|
stateRef.current = treeState;
|
|
426
562
|
useLayoutEffect(() => {
|
|
427
|
-
const
|
|
563
|
+
const setAppRouterStateValue = (value) => {
|
|
564
|
+
setTreeStateValue(value);
|
|
565
|
+
};
|
|
566
|
+
const detach = browserNavigationController.attachBrowserRouterState(setAppRouterStateValue, stateRef);
|
|
567
|
+
registerNavigationRuntimeFunctions({ navigateExternal: (href, historyUpdateMode) => {
|
|
568
|
+
setTreeStateValue({
|
|
569
|
+
href,
|
|
570
|
+
historyUpdateMode,
|
|
571
|
+
kind: "mpa-navigation"
|
|
572
|
+
});
|
|
573
|
+
return new Promise(() => {});
|
|
574
|
+
} });
|
|
428
575
|
browserRouterStateHasEverCommitted = true;
|
|
429
576
|
const hydratedAt = performance.now();
|
|
430
577
|
window.__VINEXT_HYDRATED_AT = hydratedAt;
|
|
@@ -432,6 +579,7 @@ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
|
|
|
432
579
|
window.__NEXT_HYDRATED_AT = hydratedAt;
|
|
433
580
|
window.__NEXT_HYDRATED_CB?.();
|
|
434
581
|
return () => {
|
|
582
|
+
registerNavigationRuntimeFunctions({ navigateExternal: void 0 });
|
|
435
583
|
detach();
|
|
436
584
|
setMountedSlotsHeader(null);
|
|
437
585
|
};
|
|
@@ -444,12 +592,24 @@ function BrowserRoot({ initialElements, initialNavigationSnapshot }) {
|
|
|
444
592
|
useLayoutEffect(() => {
|
|
445
593
|
if (treeState.renderId !== 0) return;
|
|
446
594
|
replaceHistoryStateWithoutNotify(createHistoryStateWithNavigationMetadata(window.history.state, {
|
|
595
|
+
bfcacheIds: treeState.bfcacheIds,
|
|
596
|
+
bfcacheVersion: currentBfcacheVersion,
|
|
447
597
|
previousNextUrl: treeState.previousNextUrl,
|
|
448
598
|
traversalIndex: currentHistoryTraversalIndex
|
|
449
599
|
}), "", window.location.href);
|
|
450
|
-
}, [
|
|
600
|
+
}, [
|
|
601
|
+
treeState.bfcacheIds,
|
|
602
|
+
treeState.previousNextUrl,
|
|
603
|
+
treeState.renderId
|
|
604
|
+
]);
|
|
451
605
|
const routeTree = createElement(RedirectBoundary, null, createElement(NavigationCommitSignal, { renderId: treeState.renderId }, createElement(ElementsContext.Provider, { value: treeState.elements }, createElement(Slot, { id: treeState.routeId }))));
|
|
452
|
-
const
|
|
606
|
+
const bfcacheStateKeys = useMemo(() => createBfcacheSegmentStateKeyMap({
|
|
607
|
+
elements: treeState.elements,
|
|
608
|
+
pathname: treeState.navigationSnapshot.pathname
|
|
609
|
+
}), [treeState.elements, treeState.navigationSnapshot.pathname]);
|
|
610
|
+
const stateKeyTree = createElement(BfcacheStateKeyMapContext.Provider, { value: bfcacheStateKeys }, routeTree);
|
|
611
|
+
const redirectedTree = createElement(AppRouterRedirectBridge, null, BfcacheIdMapContext ? createElement(BfcacheIdMapContext.Provider, { value: treeState.bfcacheIds }, stateKeyTree) : stateKeyTree);
|
|
612
|
+
const innerTree = AppRouterContext ? createElement(AppRouterContext.Provider, { value: appRouterInstance }, redirectedTree) : redirectedTree;
|
|
453
613
|
const committedTree = import.meta.env.DEV ? createElement(DevRecoveryBoundary, {
|
|
454
614
|
resetKey: treeState.renderId,
|
|
455
615
|
onCatch: handleDevRecoveryBoundaryCatch
|
|
@@ -466,16 +626,15 @@ function restoreHydrationNavigationContext(pathname, searchParams, params) {
|
|
|
466
626
|
params
|
|
467
627
|
});
|
|
468
628
|
}
|
|
469
|
-
function restorePopstateScrollPosition(state) {
|
|
629
|
+
function restorePopstateScrollPosition(state, options) {
|
|
630
|
+
const shouldContinue = options?.shouldContinue ?? (() => true);
|
|
631
|
+
if (!shouldContinue()) return;
|
|
470
632
|
if (!(state && typeof state === "object" && "__vinext_scrollY" in state)) {
|
|
471
633
|
if (window.location.hash) scrollToHashTargetOnNextFrame(window.location.hash);
|
|
472
634
|
return;
|
|
473
635
|
}
|
|
474
636
|
const y = Number(state.__vinext_scrollY);
|
|
475
|
-
|
|
476
|
-
requestAnimationFrame(() => {
|
|
477
|
-
window.scrollTo(x, y);
|
|
478
|
-
});
|
|
637
|
+
retryScrollTo("__vinext_scrollX" in state ? Number(state.__vinext_scrollX) : 0, y, { shouldContinue });
|
|
479
638
|
}
|
|
480
639
|
function isSameAppRoutePopstateTarget(href) {
|
|
481
640
|
if (!hasBrowserRouterState()) return false;
|
|
@@ -566,9 +725,10 @@ function applyRuntimeRscBootstrap(rsc) {
|
|
|
566
725
|
}
|
|
567
726
|
function registerServerActionCallback() {
|
|
568
727
|
setServerCallback(async (id, args) => {
|
|
728
|
+
syncServerActionHttpFallbackHead(null);
|
|
569
729
|
const temporaryReferences = createTemporaryReferenceSet();
|
|
570
730
|
const actionInitiation = createActionInitiationSnapshot();
|
|
571
|
-
syncCurrentHistoryStatePreviousNextUrl(actionInitiation.routerState.previousNextUrl);
|
|
731
|
+
syncCurrentHistoryStatePreviousNextUrl(actionInitiation.routerState.previousNextUrl, actionInitiation.routerState.bfcacheIds);
|
|
572
732
|
const body = await encodeReply(args, { temporaryReferences });
|
|
573
733
|
const { headers } = resolveServerActionRequestState({
|
|
574
734
|
actionId: id,
|
|
@@ -576,39 +736,26 @@ function registerServerActionCallback() {
|
|
|
576
736
|
elements: actionInitiation.routerState.elements,
|
|
577
737
|
previousNextUrl: actionInitiation.routerState.previousNextUrl
|
|
578
738
|
});
|
|
579
|
-
const fetchResponse = await fetch(
|
|
739
|
+
const fetchResponse = await fetch(createServerActionRequestUrl(actionInitiation.path), {
|
|
580
740
|
method: "POST",
|
|
581
741
|
headers,
|
|
582
742
|
body
|
|
583
743
|
});
|
|
584
744
|
throwOnServerActionNotFound(fetchResponse, id);
|
|
585
|
-
const
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
try {
|
|
595
|
-
redirectLocation = resolveServerActionRedirectLocation({
|
|
596
|
-
currentHref: actionInitiation.href,
|
|
597
|
-
location: actionRedirect,
|
|
598
|
-
origin: window.location.origin
|
|
599
|
-
});
|
|
600
|
-
} catch {
|
|
601
|
-
clearClientNavigationCaches();
|
|
602
|
-
browserNavigationController.performHardNavigation(actionRedirect, hardNavigationMode);
|
|
603
|
-
return;
|
|
604
|
-
}
|
|
745
|
+
const hasActionRedirect = fetchResponse.headers.has(ACTION_REDIRECT_HEADER);
|
|
746
|
+
const actionRedirectTarget = resolveActionRedirectTarget(fetchResponse);
|
|
747
|
+
if (hasActionRedirect && !actionRedirectTarget) return;
|
|
748
|
+
const actionRedirectCompatibilityHardNavigationTarget = resolveServerActionRedirectCompatibilityHardNavigationTarget({
|
|
749
|
+
actionRedirectHref: actionRedirectTarget?.href ?? null,
|
|
750
|
+
clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
|
|
751
|
+
response: fetchResponse
|
|
752
|
+
});
|
|
753
|
+
if (actionRedirectCompatibilityHardNavigationTarget) {
|
|
605
754
|
clearClientNavigationCaches();
|
|
606
|
-
|
|
607
|
-
navigateClientSide(redirectLocation.href, historyUpdateMode, true, true);
|
|
608
|
-
});
|
|
755
|
+
browserNavigationController.performHardNavigation(actionRedirectCompatibilityHardNavigationTarget, actionRedirectTarget?.type === "push" ? "assign" : "replace");
|
|
609
756
|
return;
|
|
610
757
|
}
|
|
611
|
-
if (resolveRscCompatibilityNavigationDecision({
|
|
758
|
+
if (!actionRedirectTarget && shouldCheckRscCompatibilityForServerActionResponse(fetchResponse) && resolveRscCompatibilityNavigationDecision({
|
|
612
759
|
clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
|
|
613
760
|
currentHref: actionInitiation.href,
|
|
614
761
|
origin: window.location.origin,
|
|
@@ -619,12 +766,44 @@ function registerServerActionCallback() {
|
|
|
619
766
|
return;
|
|
620
767
|
}
|
|
621
768
|
const revalidation = parseServerActionRevalidationHeader(fetchResponse.headers);
|
|
622
|
-
const
|
|
769
|
+
const invalidResponseError = await readInvalidServerActionResponseError(fetchResponse.clone(), actionRedirectTarget !== null);
|
|
770
|
+
if (invalidResponseError) throw invalidResponseError;
|
|
771
|
+
if (actionRedirectTarget && !shouldCheckRscCompatibilityForServerActionResponse(fetchResponse)) {
|
|
772
|
+
browserNavigationController.performHardNavigation(actionRedirectTarget.href);
|
|
773
|
+
return;
|
|
774
|
+
}
|
|
775
|
+
const flightResponse = fetchResponse.status === 303 ? new Response(fetchResponse.body, {
|
|
776
|
+
headers: fetchResponse.headers,
|
|
777
|
+
status: 200,
|
|
778
|
+
statusText: "OK"
|
|
779
|
+
}) : fetchResponse;
|
|
780
|
+
const result = await createFromFetch(Promise.resolve(flightResponse), { temporaryReferences });
|
|
623
781
|
if (shouldClearClientNavigationCachesForServerActionResult(result, revalidation)) clearClientNavigationCaches();
|
|
782
|
+
if (actionRedirectTarget) {
|
|
783
|
+
if (isServerActionResult(result) && result.root !== void 0) {
|
|
784
|
+
const decoded = AppElementsWire.decode(result.root);
|
|
785
|
+
const hashIdx = actionRedirectTarget.href.indexOf("#");
|
|
786
|
+
const actionScrollIntent = beginAppRouterScrollIntent((hashIdx !== -1 ? actionRedirectTarget.href.slice(hashIdx) : "") || null);
|
|
787
|
+
if (actionRedirectTarget.type === "push") saveScrollPosition();
|
|
788
|
+
renderNavigationPayload(Promise.resolve(decoded), createClientNavigationRenderSnapshot(actionRedirectTarget.href, actionInitiation.routerState.navigationSnapshot.params), actionRedirectTarget.href, actionInitiation.navigationId, actionRedirectTarget.type === "push" ? "push" : "replace", {}, null, null, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, actionRedirectTarget.type === "push" ? "navigate" : "replace", "server-action", null, actionScrollIntent).catch(() => {
|
|
789
|
+
browserNavigationController.performHardNavigation(actionRedirectTarget.href);
|
|
790
|
+
});
|
|
791
|
+
throw createServerActionRedirectError(actionRedirectTarget);
|
|
792
|
+
}
|
|
793
|
+
browserNavigationController.performHardNavigation(actionRedirectTarget.href);
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
796
|
+
syncServerActionHttpFallbackHead(isServerActionResult(result) && result.root !== void 0 ? null : fetchResponse.status);
|
|
624
797
|
if (isServerActionResult(result)) {
|
|
625
|
-
if (result.root !== void 0)
|
|
798
|
+
if (result.root !== void 0) {
|
|
799
|
+
const returnValue = result.returnValue && !result.returnValue.ok ? {
|
|
800
|
+
ok: false,
|
|
801
|
+
data: normalizeServerActionThrownValue(result.returnValue.data, fetchResponse.status)
|
|
802
|
+
} : result.returnValue;
|
|
803
|
+
return commitSameUrlNavigatePayload(Promise.resolve(AppElementsWire.decode(result.root)), actionInitiation, returnValue, revalidation);
|
|
804
|
+
}
|
|
626
805
|
if (result.returnValue) {
|
|
627
|
-
if (!result.returnValue.ok) throw result.returnValue.data;
|
|
806
|
+
if (!result.returnValue.ok) throw normalizeServerActionThrownValue(result.returnValue.data, fetchResponse.status);
|
|
628
807
|
return result.returnValue.data;
|
|
629
808
|
}
|
|
630
809
|
return;
|
|
@@ -634,12 +813,16 @@ function registerServerActionCallback() {
|
|
|
634
813
|
}
|
|
635
814
|
async function main() {
|
|
636
815
|
registerServerActionCallback();
|
|
816
|
+
if (import.meta.env.DEV) {
|
|
817
|
+
installDevErrorOverlay();
|
|
818
|
+
installViteHmrErrorHandler(import.meta.hot);
|
|
819
|
+
reportInitialDevServerErrors();
|
|
820
|
+
}
|
|
637
821
|
const rscStream = await readInitialRscStream();
|
|
638
822
|
if (rscStream === null) return;
|
|
639
823
|
bootstrapHydration(rscStream);
|
|
640
824
|
}
|
|
641
825
|
function bootstrapHydration(rscStream) {
|
|
642
|
-
if (import.meta.env.DEV) installDevErrorOverlay();
|
|
643
826
|
const root = decodeAppElementsPromise(createFromReadableStream(rscStream));
|
|
644
827
|
const initialNavigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
|
|
645
828
|
replaceHistoryStateWithoutNotify(createHistoryStateWithNavigationMetadata(window.history.state, {
|
|
@@ -686,6 +869,7 @@ function bootstrapHydration(rscStream) {
|
|
|
686
869
|
consumeAppRouterScrollIntent(scrollIntent ?? null);
|
|
687
870
|
return browserNavigationController.performHardNavigation(targetHref);
|
|
688
871
|
};
|
|
872
|
+
let restoredBfcacheIds = navigationKind === "traverse" ? readCurrentBfcacheVersionHistoryIds(activeTraversalIntent?.historyState ?? window.history.state) : null;
|
|
689
873
|
try {
|
|
690
874
|
const shouldUsePendingRouterState = programmaticTransition;
|
|
691
875
|
if (shouldUsePendingRouterState && hasBrowserRouterState()) pendingRouterState = beginPendingBrowserRouterState();
|
|
@@ -699,17 +883,19 @@ function bootstrapHydration(rscStream) {
|
|
|
699
883
|
const requestState = getRequestState(navigationKind, url.pathname, currentPrevNextUrl, activeTraversalIntent?.historyState);
|
|
700
884
|
const requestInterceptionContext = requestState.interceptionContext;
|
|
701
885
|
const requestPreviousNextUrl = requestState.previousNextUrl;
|
|
702
|
-
if (navigationKind === "refresh") syncCurrentHistoryStatePreviousNextUrl(requestPreviousNextUrl);
|
|
886
|
+
if (navigationKind === "refresh") syncCurrentHistoryStatePreviousNextUrl(requestPreviousNextUrl, getBrowserRouterState().bfcacheIds);
|
|
703
887
|
setPendingPathname(url.pathname, navId);
|
|
704
|
-
const
|
|
888
|
+
const routerStateAtNavStart = getBrowserRouterState();
|
|
889
|
+
const elementsAtNavStart = routerStateAtNavStart.elements;
|
|
705
890
|
const mountedSlotsHeader = getMountedSlotIdsHeader(elementsAtNavStart);
|
|
891
|
+
const shouldBypassNavigationCache = navigationKind === "navigate" && isSamePageSearchNavigation(routerStateAtNavStart.navigationSnapshot, url);
|
|
706
892
|
const requestHeaders = createRscRequestHeaders({
|
|
707
893
|
interceptionContext: requestInterceptionContext,
|
|
894
|
+
mountedSlotsHeader,
|
|
708
895
|
renderMode: navigationKind === "refresh" ? APP_RSC_RENDER_MODE_REFRESH_PRESERVE_UI : void 0
|
|
709
896
|
});
|
|
710
|
-
if (mountedSlotsHeader) requestHeaders.set(VINEXT_MOUNTED_SLOTS_HEADER, mountedSlotsHeader);
|
|
711
897
|
const rscUrl = await createRscRequestUrl(url.pathname + url.search, requestHeaders);
|
|
712
|
-
const cachedRoute = getVisitedResponse(rscUrl, requestInterceptionContext, mountedSlotsHeader, navigationKind);
|
|
898
|
+
const cachedRoute = shouldBypassNavigationCache ? null : getVisitedResponse(rscUrl, requestInterceptionContext, mountedSlotsHeader, navigationKind);
|
|
713
899
|
if (cachedRoute) {
|
|
714
900
|
const compatibilityDecision = resolveRscCompatibilityNavigationDecision({
|
|
715
901
|
clientCompatibilityId: CLIENT_RSC_COMPATIBILITY_ID,
|
|
@@ -722,20 +908,47 @@ function bootstrapHydration(rscStream) {
|
|
|
722
908
|
performHardNavigationForScrollIntent(compatibilityDecision.hardNavigationTarget);
|
|
723
909
|
return;
|
|
724
910
|
}
|
|
911
|
+
const cachedRedirectDecision = resolveRscRedirectLifecycleHop({
|
|
912
|
+
currentHref,
|
|
913
|
+
historyUpdateMode: currentHistoryMode ?? "replace",
|
|
914
|
+
origin: window.location.origin,
|
|
915
|
+
redirectDepth: redirectCount,
|
|
916
|
+
requestPreviousNextUrl,
|
|
917
|
+
responseUrl: cachedRoute.response.url
|
|
918
|
+
});
|
|
919
|
+
if (cachedRedirectDecision.kind === "terminal-hard-navigation") {
|
|
920
|
+
if (cachedRedirectDecision.reason === "maxRedirectsExceeded") console.error("[vinext] Too many RSC redirects — aborting navigation to prevent infinite loop.");
|
|
921
|
+
performHardNavigationForScrollIntent(cachedRedirectDecision.href);
|
|
922
|
+
return;
|
|
923
|
+
}
|
|
924
|
+
if (cachedRedirectDecision.kind === "follow") {
|
|
925
|
+
if (navigationKind === "traverse") restoredBfcacheIds = null;
|
|
926
|
+
currentHref = cachedRedirectDecision.href;
|
|
927
|
+
currentHistoryMode = cachedRedirectDecision.historyUpdateMode;
|
|
928
|
+
currentPrevNextUrl = cachedRedirectDecision.previousNextUrl;
|
|
929
|
+
redirectCount = cachedRedirectDecision.redirectDepth;
|
|
930
|
+
continue;
|
|
931
|
+
}
|
|
725
932
|
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
726
933
|
const cachedParams = cachedRoute.params;
|
|
727
934
|
const cachedNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, cachedParams);
|
|
728
935
|
const cachedPayload = decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(cachedRoute.response))));
|
|
729
936
|
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
730
|
-
await renderNavigationPayload(cachedPayload, cachedNavigationSnapshot, currentHref, navId, currentHistoryMode, cachedParams, requestPreviousNextUrl, detachedNavigationCommits ? null : pendingRouterState, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent)
|
|
937
|
+
if (await renderNavigationPayload(cachedPayload, cachedNavigationSnapshot, currentHref, navId, currentHistoryMode, cachedParams, requestPreviousNextUrl, detachedNavigationCommits ? null : pendingRouterState, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent, restoredBfcacheIds) === "no-commit") {
|
|
938
|
+
deleteVisitedResponse(rscUrl, requestInterceptionContext);
|
|
939
|
+
continue;
|
|
940
|
+
}
|
|
731
941
|
return;
|
|
732
942
|
}
|
|
733
943
|
let navResponse;
|
|
944
|
+
let navResponseExpiresAt;
|
|
734
945
|
let navResponseUrl = null;
|
|
735
|
-
if (navigationKind !== "refresh") {
|
|
736
|
-
const prefetchedResponse =
|
|
946
|
+
if (navigationKind !== "refresh" && !shouldBypassNavigationCache) {
|
|
947
|
+
const prefetchedResponse = await consumePrefetchResponseForNavigation(rscUrl, requestInterceptionContext, mountedSlotsHeader, { shouldConsume: () => browserNavigationController.isCurrentNavigation(navId) });
|
|
948
|
+
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
737
949
|
if (prefetchedResponse) {
|
|
738
950
|
navResponse = restoreRscResponse(prefetchedResponse, false);
|
|
951
|
+
navResponseExpiresAt = prefetchedResponse.expiresAt;
|
|
739
952
|
navResponseUrl = prefetchedResponse.url;
|
|
740
953
|
}
|
|
741
954
|
}
|
|
@@ -759,16 +972,22 @@ function bootstrapHydration(rscStream) {
|
|
|
759
972
|
if (optimisticPayload !== null) {
|
|
760
973
|
detachedNavigationCommits = true;
|
|
761
974
|
const optimisticNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, optimisticPayload.params);
|
|
762
|
-
renderNavigationPayload(Promise.resolve(optimisticPayload.elements), optimisticNavigationSnapshot, currentHref, navId, currentHistoryMode, optimisticPayload.params, requestPreviousNextUrl, null, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent).catch((error) => {
|
|
975
|
+
renderNavigationPayload(Promise.resolve(optimisticPayload.elements), optimisticNavigationSnapshot, currentHref, navId, currentHistoryMode, optimisticPayload.params, requestPreviousNextUrl, null, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent, restoredBfcacheIds).catch((error) => {
|
|
763
976
|
if (browserNavigationController.isCurrentNavigation(navId)) console.error("[vinext] Optimistic RSC navigation error:", error);
|
|
764
977
|
});
|
|
765
978
|
}
|
|
766
979
|
}
|
|
767
980
|
}
|
|
768
|
-
if (!navResponse)
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
981
|
+
if (!navResponse) {
|
|
982
|
+
if (navigationKind === "navigate") {
|
|
983
|
+
const clientReuseManifestHeader = createClientReuseManifestHeaderFromVisibleAppState(routerStateAtNavStart);
|
|
984
|
+
if (clientReuseManifestHeader !== null) requestHeaders.set(VINEXT_CLIENT_REUSE_MANIFEST_HEADER, clientReuseManifestHeader);
|
|
985
|
+
}
|
|
986
|
+
navResponse = await fetch(rscUrl, {
|
|
987
|
+
headers: requestHeaders,
|
|
988
|
+
credentials: "include"
|
|
989
|
+
});
|
|
990
|
+
}
|
|
772
991
|
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
773
992
|
const isRscResponse = (navResponse.headers.get("content-type") ?? "").startsWith("text/x-component");
|
|
774
993
|
if (!navResponse.ok || !isRscResponse || !navResponse.body) {
|
|
@@ -800,6 +1019,7 @@ function bootstrapHydration(rscStream) {
|
|
|
800
1019
|
return;
|
|
801
1020
|
}
|
|
802
1021
|
if (redirectDecision.kind === "follow") {
|
|
1022
|
+
if (navigationKind === "traverse") restoredBfcacheIds = null;
|
|
803
1023
|
currentHref = redirectDecision.href;
|
|
804
1024
|
currentHistoryMode = redirectDecision.historyUpdateMode;
|
|
805
1025
|
currentPrevNextUrl = redirectDecision.previousNextUrl;
|
|
@@ -819,7 +1039,10 @@ function bootstrapHydration(rscStream) {
|
|
|
819
1039
|
performHardNavigationForScrollIntent(resolvedTarget.href);
|
|
820
1040
|
return;
|
|
821
1041
|
}
|
|
1042
|
+
if (navigationKind === "traverse") restoredBfcacheIds = null;
|
|
822
1043
|
currentHref = `${resolvedTarget.pathname}${resolvedTarget.search}${resolvedTarget.hash}`;
|
|
1044
|
+
currentHistoryMode = currentHistoryMode ?? "replace";
|
|
1045
|
+
currentPrevNextUrl = requestPreviousNextUrl;
|
|
823
1046
|
redirectCount += 1;
|
|
824
1047
|
continue;
|
|
825
1048
|
}
|
|
@@ -836,17 +1059,22 @@ function bootstrapHydration(rscStream) {
|
|
|
836
1059
|
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
837
1060
|
const rscPayload = decodeAppElementsPromise(createFromFetch(Promise.resolve(reactResponse)));
|
|
838
1061
|
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
839
|
-
if (await renderNavigationPayload(rscPayload, navigationSnapshot, currentHref, navId, currentHistoryMode, navParams, requestPreviousNextUrl, detachedNavigationCommits ? null : pendingRouterState, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent) !== "committed") return;
|
|
1062
|
+
if (await renderNavigationPayload(rscPayload, navigationSnapshot, currentHref, navId, currentHistoryMode, navParams, requestPreviousNextUrl, detachedNavigationCommits ? null : pendingRouterState, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, toActionType(navigationKind), toOperationLane(navigationKind), activeTraversalIntent, scrollIntent, restoredBfcacheIds) !== "committed") return;
|
|
840
1063
|
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
1064
|
+
try {
|
|
1065
|
+
const renderedElements = await rscPayload;
|
|
1066
|
+
const metadata = AppElementsWire.readMetadata(renderedElements);
|
|
1067
|
+
if (!isCacheRestorableAppPayloadMetadata(metadata)) {
|
|
1068
|
+
cacheBufferPromise.catch(() => {});
|
|
1069
|
+
return;
|
|
1070
|
+
}
|
|
1071
|
+
const cacheBuffer = await cacheBufferPromise;
|
|
1072
|
+
storeVisitedResponseSnapshot(rscUrl, resolveVisitedResponseInterceptionContext(requestInterceptionContext, metadata.interceptionContext), {
|
|
1073
|
+
...createCachedRscResponseSnapshot(navResponse, cacheBuffer, navResponseUrl),
|
|
1074
|
+
...navResponseExpiresAt !== void 0 ? { expiresAt: navResponseExpiresAt } : {},
|
|
1075
|
+
mountedSlotsHeader: getMountedSlotIdsHeader(renderedElements)
|
|
1076
|
+
}, navParams);
|
|
1077
|
+
} catch {}
|
|
850
1078
|
return;
|
|
851
1079
|
}
|
|
852
1080
|
} catch (error) {
|
|
@@ -884,25 +1112,35 @@ function bootstrapHydration(rscStream) {
|
|
|
884
1112
|
handlePopstate(event);
|
|
885
1113
|
});
|
|
886
1114
|
if (import.meta.hot) {
|
|
887
|
-
const
|
|
1115
|
+
const applyRscHmrUpdate = async (updateId) => {
|
|
1116
|
+
if (updateId !== latestRscHmrUpdateId) return;
|
|
1117
|
+
if (document.documentElement.id === "__next_error__") {
|
|
1118
|
+
window.location.reload();
|
|
1119
|
+
return;
|
|
1120
|
+
}
|
|
1121
|
+
if (browserRouterStateHasEverCommitted && !browserNavigationController.hasBrowserRouterState()) {
|
|
1122
|
+
window.location.reload();
|
|
1123
|
+
return;
|
|
1124
|
+
}
|
|
1125
|
+
await waitForBrowserRouterStateReady();
|
|
1126
|
+
if (updateId !== latestRscHmrUpdateId) return;
|
|
1127
|
+
if (!browserNavigationController.hasBrowserRouterState()) return;
|
|
1128
|
+
clearClientNavigationCaches();
|
|
1129
|
+
const navigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
|
|
1130
|
+
dismissOverlay();
|
|
1131
|
+
const hmrHeaders = createRscRequestHeaders();
|
|
1132
|
+
await browserNavigationController.hmrReplaceTree(decodeAppElementsPromise(createFromFetch(fetch(await createRscRequestUrl(window.location.pathname + window.location.search, hmrHeaders), { headers: hmrHeaders }))), navigationSnapshot);
|
|
1133
|
+
};
|
|
1134
|
+
const handleRscUpdate = async (updateId) => {
|
|
888
1135
|
try {
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
return;
|
|
892
|
-
}
|
|
893
|
-
await waitForBrowserRouterStateReady();
|
|
894
|
-
if (!browserNavigationController.hasBrowserRouterState()) return;
|
|
895
|
-
clearClientNavigationCaches();
|
|
896
|
-
const navigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
|
|
897
|
-
dismissOverlay();
|
|
898
|
-
const hmrHeaders = createRscRequestHeaders();
|
|
899
|
-
await browserNavigationController.hmrReplaceTree(decodeAppElementsPromise(createFromFetch(fetch(await createRscRequestUrl(window.location.pathname + window.location.search, hmrHeaders), { headers: hmrHeaders }))), navigationSnapshot);
|
|
1136
|
+
await waitForRscHmrSettle();
|
|
1137
|
+
await applyRscHmrUpdate(updateId);
|
|
900
1138
|
} catch (error) {
|
|
901
1139
|
console.error("[vinext] RSC HMR error:", error);
|
|
902
1140
|
}
|
|
903
1141
|
};
|
|
904
1142
|
import.meta.hot.on("rsc:update", () => {
|
|
905
|
-
handleRscUpdate();
|
|
1143
|
+
handleRscUpdate(++latestRscHmrUpdateId);
|
|
906
1144
|
});
|
|
907
1145
|
}
|
|
908
1146
|
}
|
|
@@ -914,12 +1152,11 @@ if (typeof document !== "undefined") {
|
|
|
914
1152
|
window.addEventListener("pagehide", () => {
|
|
915
1153
|
isPageUnloading = true;
|
|
916
1154
|
});
|
|
917
|
-
window.addEventListener("pageshow", () => {
|
|
1155
|
+
window.addEventListener("pageshow", (event) => {
|
|
918
1156
|
isPageUnloading = false;
|
|
1157
|
+
if (event.persisted) mpaNavigationScheduler.reset();
|
|
919
1158
|
});
|
|
920
1159
|
main();
|
|
921
1160
|
}
|
|
922
1161
|
//#endregion
|
|
923
1162
|
export {};
|
|
924
|
-
|
|
925
|
-
//# sourceMappingURL=app-browser-entry.js.map
|