vinext 1.0.0-beta.9 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -92
- package/THIRD_PARTY_LICENSES.md +51 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +7 -14
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +274 -102
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +73 -16
- package/dist/build/prerender.js +272 -80
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +26 -16
- package/dist/build/server-entry.d.ts +6 -0
- package/dist/build/server-entry.js +34 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/browser-globals.d.ts +4 -0
- package/dist/client/browser-globals.js +5 -0
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +20 -17
- package/dist/client/navigation-runtime.js +4 -3
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +14 -2
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +503 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +848 -255
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +711 -103
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +126 -42
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/commonjs-syntax.d.ts +16 -0
- package/dist/plugins/commonjs-syntax.js +22 -0
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +14 -4
- package/dist/plugins/ignore-dynamic-requests.js +113 -91
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +36 -48
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +5 -4
- package/dist/plugins/og-asset-ownership.js +24 -13
- package/dist/plugins/og-assets.d.ts +22 -5
- package/dist/plugins/og-assets.js +82 -21
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +271 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +34 -45
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +3 -3
- package/dist/plugins/require-context.js +41 -22
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/scan-build-css.d.ts +12 -0
- package/dist/plugins/scan-build-css.js +39 -0
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +7 -6
- package/dist/plugins/strip-server-exports.js +4 -2
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +21 -4
- package/dist/plugins/transform-result.js +23 -2
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +16 -7
- package/dist/plugins/typeof-window.js +62 -39
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +18 -19
- package/dist/routing/app-route-graph.js +5 -6
- package/dist/routing/app-route-ids.d.ts +3 -0
- package/dist/routing/app-route-ids.js +6 -0
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +4 -4
- package/dist/server/app-bfcache-id.js +7 -1
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-bfcache-identity.js +1 -2
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +91 -36
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +15 -2
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +9 -5
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +7 -3
- package/dist/server/app-browser-stream.d.ts +5 -6
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +25 -27
- package/dist/server/app-history-state.js +21 -16
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -4
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -24
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +43 -7
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +50 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +18 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-abort-error.d.ts +3 -0
- package/dist/server/app-render-abort-error.js +8 -0
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +112 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +4 -4
- package/dist/server/app-route-handler-cache.js +51 -35
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +77 -56
- package/dist/server/app-route-handler-execution.d.ts +26 -14
- package/dist/server/app-route-handler-execution.js +94 -28
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-policy.js +2 -2
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +14 -3
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +4 -1
- package/dist/server/app-router-entry.js +33 -17
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +11 -9
- package/dist/server/app-rsc-errors.js +14 -16
- package/dist/server/app-rsc-handler.d.ts +32 -6
- package/dist/server/app-rsc-handler.js +425 -64
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +5 -3
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +10 -7
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +18 -13
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +62 -15
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +34 -8
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +64 -6
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +192 -90
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +141 -64
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +56 -61
- package/dist/server/headers.js +22 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-error-responses.js +1 -0
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +30 -27
- package/dist/server/isr-cache.js +23 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +158 -35
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +28 -9
- package/dist/server/pages-asset-tags.d.ts +7 -6
- package/dist/server/pages-asset-tags.js +104 -18
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +13 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +23 -19
- package/dist/server/pages-page-data.js +82 -75
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +103 -47
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +52 -32
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +15 -12
- package/dist/server/pages-request-pipeline.js +80 -35
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +316 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +17 -11
- package/dist/server/prerender-manifest.js +7 -4
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +127 -44
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +4 -4
- package/dist/server/worker-revalidation-context.js +6 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +34 -0
- package/dist/server/workers-tracing.js +67 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +26 -38
- package/dist/shims/cache-request-state.js +2 -13
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +110 -28
- package/dist/shims/cache.d.ts +17 -16
- package/dist/shims/cache.js +19 -15
- package/dist/shims/cacheability-classification.d.ts +50 -29
- package/dist/shims/cacheability-classification.js +29 -14
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +59 -21
- package/dist/shims/cdn-cache.js +31 -47
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +5 -19
- package/dist/shims/error.js +17 -10
- package/dist/shims/error.react-server.d.ts +4 -7
- package/dist/shims/error.react-server.js +4 -1
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +46 -20
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +44 -73
- package/dist/shims/headers.js +87 -144
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cache-context-accessor.d.ts +16 -0
- package/dist/shims/internal/cache-context-accessor.js +15 -0
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/headers-state.d.ts +74 -0
- package/dist/shims/internal/headers-state.js +157 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +26 -18
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/root-params.js +1 -1
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +66 -30
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +35 -32
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +4 -4
- package/dist/utils/encode-cache-tag.js +11 -1
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +151 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +51 -6
- package/dist/server/metadata-route-cache-policy.d.ts +0 -6
- package/dist/server/metadata-route-cache-policy.js +0 -6
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
import { splitPathnameForRouteMatch } from "../routing/utils.js";
|
|
2
2
|
import { addBasePathToPathname, stripBasePath } from "../utils/base-path.js";
|
|
3
|
-
import { VINEXT_CLIENT_REUSE_MANIFEST_HEADER, VINEXT_PARAMS_HEADER, VINEXT_RSC_REDIRECT_HEADER, VINEXT_RSC_REDIRECT_TYPE_HEADER } from "./headers.js";
|
|
3
|
+
import { VINEXT_CLIENT_REUSE_MANIFEST_HEADER, VINEXT_PARAMS_HEADER, VINEXT_RENDERED_PATH_AND_SEARCH_HEADER, VINEXT_RSC_REDIRECT_HEADER, VINEXT_RSC_REDIRECT_TYPE_HEADER } from "./headers.js";
|
|
4
4
|
import { AppElementsWire } from "./app-elements-wire.js";
|
|
5
5
|
import { getMountedSlotIdsHeader, resolveVisitedResponseInterceptionContext } from "./app-elements.js";
|
|
6
6
|
import { AppRouterContext } from "../shims/internal/app-router-context.js";
|
|
7
7
|
import { matchRoutePattern } from "../routing/route-pattern.js";
|
|
8
8
|
import { installWindowNext, setWindowNextInternalSourcePage } from "../client/window-next.js";
|
|
9
9
|
import { retryScrollTo, scrollToHashTargetOnNextFrame } from "../shims/hash-scroll.js";
|
|
10
|
-
import { getBfcacheIdMapContext, setNavigationContext } from "../shims/navigation-context-state.js";
|
|
10
|
+
import { getBfcacheIdMapContext, getNavigationContext, setNavigationContext } from "../shims/navigation-context-state.js";
|
|
11
11
|
import { decodeRedirectError, isRedirectError } from "../shims/navigation-errors.js";
|
|
12
12
|
import DefaultGlobalError from "../shims/default-global-error.js";
|
|
13
13
|
import { clearAppNavigationFailureTarget, installAppNavigationFailureListeners } from "../client/app-nav-failure-handler.js";
|
|
14
14
|
import { DevRecoveryBoundary, GlobalErrorBoundary, RedirectBoundary } from "../shims/error-boundary.js";
|
|
15
15
|
import { beginAppRouterScrollIntent, consumeAppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
|
|
16
16
|
import { AppRouterScrollCommitProvider } from "../shims/app-router-scroll.js";
|
|
17
|
-
import { BfcacheIdentityMapContext, ElementsContext, Slot } from "../shims/slot.js";
|
|
18
|
-
import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, VINEXT_RSC_CONTENT_TYPE,
|
|
19
|
-
import { getNavigationRuntime, registerNavigationRuntimeBootstrap, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
|
|
17
|
+
import { BfcacheIdentityMapContext, ElementsContext, Slot, bindAppElementsRenderedSearch, setAppElementsRenderedSearch } from "../shims/slot.js";
|
|
18
|
+
import { VINEXT_RSC_COMPATIBILITY_ID_HEADER, VINEXT_RSC_CONTENT_TYPE, createRscRequestHeaders, createRscRequestUrl, getVinextRscCompatibilityId } from "./app-rsc-cache-busting.js";
|
|
20
19
|
import { notifyAppRouterTransitionStart } from "../client/instrumentation-client-state.js";
|
|
21
20
|
import "../client/instrumentation-client.js";
|
|
22
|
-
import {
|
|
21
|
+
import { getNavigationRuntime, registerNavigationRuntimeBootstrap, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
|
|
23
22
|
import { createBfcacheSegmentIdentityMap, createInitialBfcacheIdMap } from "./app-bfcache-identity.js";
|
|
24
23
|
import { createDiscardedServerActionRefreshScheduler, createServerActionInitiationSnapshot, resolveServerActionOperationLane } from "./app-browser-action-result.js";
|
|
25
24
|
import { createClientReuseManifestHeaderFromVisibleAppState } from "./app-browser-client-reuse-manifest.js";
|
|
26
25
|
import { resolveManifestNavigationInterceptionContext, resolveMiddlewareRewriteNavigationInterceptionContext } from "./app-browser-interception-context.js";
|
|
26
|
+
import { isExternalHistoryState, readHistoryStateActiveRoutePaths, readHistoryStatePreviousNextUrl, resolveActiveRoutePaths } from "./app-history-state.js";
|
|
27
27
|
import { AppBrowserMpaNavigationScheduler } from "./app-browser-mpa-navigation.js";
|
|
28
28
|
import { stripRscCompletionMetadataResponse } from "./rsc-completion-metadata.js";
|
|
29
29
|
import { blockDangerousStreamedRscRedirect } from "./app-browser-rsc-redirect.js";
|
|
30
30
|
import { navigationPlanner } from "./navigation-planner.js";
|
|
31
|
-
import { DYNAMIC_NAVIGATION_CACHE_TTL, PREFETCH_CACHE_TTL, __basePath, appRouterInstance, commitClientNavigationState, consumePrefetchResponse, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, createSnapshotPathAndSearch, deletePrefetchResponseSnapshot, disableNavigationResponsePrefetchCacheReuse, getClientNavigationRenderContext, getMountedSlotsHeader, getPrefetchCache, hasPrefetchCacheEntryForNavigation, invalidatePrefetchCache, preloadHybridClientRouteOwner, pushHistoryStateWithoutNotify, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, resolveLoadedHybridClientRewriteHref, resolvePrefetchCacheEntryMountedSlotsHeader, restoreRscResponse, saveScrollPosition, seedPrefetchResponseSnapshot, setClientParams, setMountedSlotsHeader, setPendingPathname, useRouter } from "../shims/navigation.js";
|
|
31
|
+
import { DYNAMIC_NAVIGATION_CACHE_TTL, PREFETCH_CACHE_TTL, __basePath, appRouterInstance, commitClientNavigationState, consumePrefetchResponse, consumePrefetchResponseForNavigation, createCachedRscResponseSnapshot, createClientNavigationRenderSnapshot, createSnapshotPathAndSearch, deletePrefetchResponseSnapshot, disableNavigationResponsePrefetchCacheReuse, getClientNavigationRenderContext, getMountedSlotsHeader, getPrefetchCache, hasPrefetchCacheEntryForNavigation, invalidatePrefetchCache, parseRenderedPathAndSearchHeader, preloadHybridClientRouteOwner, pushHistoryStateWithoutNotify, replaceClientParamsWithoutNotify, replaceHistoryStateWithoutNotify, resolveLoadedHybridClientRewriteHref, resolvePrefetchCacheEntryMountedSlotsHeader, restoreRscResponse, saveScrollPosition, seedPrefetchResponseSnapshot, setClientParams, setMountedSlotsHeader, setPendingPathname, useRouter } from "../shims/navigation.js";
|
|
32
32
|
import { chunksToReadableStream, createProgressiveRscStream, getVinextBrowserGlobal } from "./app-browser-stream.js";
|
|
33
33
|
import { COMMITTED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, VISITED_CACHE_APP_NAVIGATION_PAYLOAD_ORIGIN, isCacheRestorableAppPayloadMetadata, isCompleteAppPayloadMetadata, resolveInterceptionContextFromPreviousNextUrl } from "./app-browser-state.js";
|
|
34
34
|
import { clearHardNavigationLoopGuard, createAppBrowserNavigationController, createBasePathStrippedPathAndSearch } from "./app-browser-navigation-controller.js";
|
|
35
35
|
import { shouldRecoverSamePathSearchCommitOnResponseCompletion } from "./app-browser-navigation-response.js";
|
|
36
36
|
import { createSupplementalRefreshCoordinator, mergeRefreshedParallelSlot, requireCompleteSupplementalRefresh, resolvePersistedSourcePageRefreshes, resolveServerActionSupplementalRefresh, resolveSupplementalRefreshes } from "./app-browser-supplemental-refresh.js";
|
|
37
37
|
import { createAppBrowserNavigationAbortCoordinator } from "./app-browser-navigation-abort.js";
|
|
38
|
-
import { consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition } from "./app-browser-hydration.js";
|
|
38
|
+
import { consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition, resolveFetchedHydrationLocation } from "./app-browser-hydration.js";
|
|
39
39
|
import { AppBrowserHistoryController } from "./app-browser-history-controller.js";
|
|
40
40
|
import { createVisitedResponseCacheEntry, deleteAllVisitedResponseCacheEntries, deleteInvalidatedHistoryRestoreEntries, deleteVisitedResponseCacheEntry, findVisitedResponseCacheEntry, hasNavigationResponseHistoryLifetime, isVisitedResponseCacheEntryFresh } from "./app-visited-response-cache.js";
|
|
41
41
|
import { createPopstateRestoreHandler, restoreSynchronousPopstateScrollPosition, shouldCommitPopstateUrlWithoutNavigation } from "./app-browser-popstate.js";
|
|
42
|
-
import { createDevOnCaughtError, createOnUncaughtError, createProdOnCaughtError,
|
|
42
|
+
import { createDevOnCaughtError, createOnUncaughtError, createProdOnCaughtError, createProdOnRecoverableError } from "./app-browser-error.js";
|
|
43
43
|
import { createHydrationCachePublication } from "./app-hydration-cache-publication.js";
|
|
44
44
|
import { peekSettledPrefetchResponseForNavigation, prepareConsumedPrefetchResponseForPublication, preserveCommittedPrefetchExpiry, resolvePrefetchNavigationResponseUrl } from "./app-browser-prefetch-response.js";
|
|
45
45
|
import { canCommitOptimisticRouteTemplate, createOptimisticRouteTemplate, getOptimisticPrefetchSourceKey, getOptimisticRouteTemplateKey, matchOptimisticRouteManifestRoute, resolveOptimisticNavigationParamsForHref, resolveOptimisticNavigationPayload } from "./app-optimistic-routing.js";
|
|
@@ -230,7 +230,8 @@ function getMatchedUrlPathname(matchedUrl) {
|
|
|
230
230
|
}
|
|
231
231
|
function resolvePersistedRefreshInterceptions(state, routeManifest, refreshUrl, requestInterceptionContext) {
|
|
232
232
|
if (routeManifest === null) return [];
|
|
233
|
-
const
|
|
233
|
+
const refreshPathname = stripBasePath(refreshUrl.pathname, __basePath);
|
|
234
|
+
const refreshPathParts = splitPathnameForRouteMatch(refreshPathname);
|
|
234
235
|
const resolved = [];
|
|
235
236
|
for (const binding of state.slotBindings) {
|
|
236
237
|
if (binding.state !== "active" || !binding.activeRouteId) continue;
|
|
@@ -260,21 +261,29 @@ async function fetchPersistedInterceptedSlotRefresh(options) {
|
|
|
260
261
|
interceptionId: options.interceptionId,
|
|
261
262
|
mountedSlotsHeader: options.mountedSlotsHeader
|
|
262
263
|
});
|
|
263
|
-
|
|
264
|
+
return decodeSupplementalRefresh(await fetch(await createRscRequestUrl(options.targetPathname, headers), {
|
|
264
265
|
credentials: "include",
|
|
265
266
|
headers,
|
|
266
267
|
signal: options.signal
|
|
267
|
-
});
|
|
268
|
-
return decodeAppElementsPromise(createFromFetch(Promise.resolve(response)));
|
|
268
|
+
}), options.targetPathname);
|
|
269
269
|
}
|
|
270
270
|
async function fetchPersistedSourcePageRefresh(options) {
|
|
271
271
|
const headers = createRscRequestHeaders({ mountedSlotsHeader: options.mountedSlotsHeader });
|
|
272
|
-
|
|
272
|
+
return decodeSupplementalRefresh(await fetch(await createRscRequestUrl(options.targetPathname, headers), {
|
|
273
273
|
credentials: "include",
|
|
274
274
|
headers,
|
|
275
275
|
signal: options.signal
|
|
276
|
-
});
|
|
277
|
-
|
|
276
|
+
}), options.targetPathname);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Decode a kept branch a refresh fetched from its own URL. Its client pages
|
|
280
|
+
* read the query the server rendered it with, not the navigation's.
|
|
281
|
+
*/
|
|
282
|
+
async function decodeSupplementalRefresh(response, targetPathname) {
|
|
283
|
+
const elements = await decodeAppElementsPromise(createFromFetch(Promise.resolve(response)));
|
|
284
|
+
const renderedPathAndSearch = parseRenderedPathAndSearchHeader(response.headers.get(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER));
|
|
285
|
+
setAppElementsRenderedSearch(elements, new URL(renderedPathAndSearch ?? targetPathname, window.location.origin).search);
|
|
286
|
+
return elements;
|
|
278
287
|
}
|
|
279
288
|
function isSettledPrefetchCacheEntry(entry) {
|
|
280
289
|
return entry.outcome === "cache-seeded" && entry.pending === void 0 && entry.snapshot !== void 0;
|
|
@@ -397,7 +406,7 @@ async function renderNavigationPayload(options) {
|
|
|
397
406
|
visibleCommitMode: options.visibleCommitMode ?? "transition"
|
|
398
407
|
});
|
|
399
408
|
}
|
|
400
|
-
async function commitSameUrlNavigatePayload(nextElements, actionInitiation, returnValue, revalidation = "none") {
|
|
409
|
+
async function commitSameUrlNavigatePayload(nextElements, actionInitiation, returnValue, revalidation = "none", renderedPathAndSearch = null) {
|
|
401
410
|
let shouldRetrySupplementalRefresh = false;
|
|
402
411
|
let supplementalHandle = null;
|
|
403
412
|
if (revalidation !== "none") {
|
|
@@ -439,7 +448,7 @@ async function commitSameUrlNavigatePayload(nextElements, actionInitiation, retu
|
|
|
439
448
|
});
|
|
440
449
|
}
|
|
441
450
|
}
|
|
442
|
-
const navigationSnapshot = createClientNavigationRenderSnapshot(actionInitiation.href, actionInitiation.routerState.navigationSnapshot.params);
|
|
451
|
+
const navigationSnapshot = renderedPathAndSearch === null ? withRenderedSearchOf(createClientNavigationRenderSnapshot(actionInitiation.href, actionInitiation.routerState.navigationSnapshot.params), actionInitiation.routerState.navigationSnapshot) : createClientNavigationRenderSnapshot(actionInitiation.href, actionInitiation.routerState.navigationSnapshot.params, renderedPathAndSearch);
|
|
443
452
|
try {
|
|
444
453
|
const result = await browserNavigationController.commitSameUrlNavigatePayload(nextElements, navigationSnapshot, returnValue, actionInitiation.routerState, {
|
|
445
454
|
onDiscardedRevalidation() {
|
|
@@ -712,7 +721,8 @@ function BrowserRoot({ hydrationCachePublication, initialElements, initialNaviga
|
|
|
712
721
|
const routeTree = createElement(RedirectBoundary, null, createElement(NavigationCommitSignal, { renderId: treeState.renderId }, createElement(ElementsContext.Provider, { value: treeState.elements }, createElement(Slot, { id: treeState.routeId }))));
|
|
713
722
|
const bfcacheSegmentIdentities = useMemo(() => createBfcacheSegmentIdentityMap({ elements: treeState.elements }), [treeState.elements]);
|
|
714
723
|
const identityMapTree = createElement(BfcacheIdentityMapContext.Provider, { value: bfcacheSegmentIdentities }, routeTree);
|
|
715
|
-
const
|
|
724
|
+
const bfcacheTree = BfcacheIdMapContext ? createElement(BfcacheIdMapContext.Provider, { value: treeState.bfcacheIds }, identityMapTree) : identityMapTree;
|
|
725
|
+
const redirectedTree = createElement(AppRouterRedirectBridge, null, bfcacheTree);
|
|
716
726
|
const innerTree = AppRouterContext ? createElement(AppRouterContext.Provider, { value: appRouterInstance }, redirectedTree) : redirectedTree;
|
|
717
727
|
const committedTree = import.meta.env.DEV ? createElement(DevRecoveryBoundary, {
|
|
718
728
|
isImplicitRootErrorBoundary: true,
|
|
@@ -738,6 +748,38 @@ function restoreHydrationNavigationContext(pathname, searchParams, params) {
|
|
|
738
748
|
function restoreEmbeddedHydrationNavigationContext(pathname, searchParams, params, searchParamsFromBrowser) {
|
|
739
749
|
restoreHydrationNavigationContext(pathname, searchParamsFromBrowser ? window.location.search : searchParams, params);
|
|
740
750
|
}
|
|
751
|
+
/**
|
|
752
|
+
* The path and query SSR rendered, from the navigation payload the document
|
|
753
|
+
* embeds: the effective query, which a rewrite may have changed, or the
|
|
754
|
+
* browser URL's when a stored document leaves the query out.
|
|
755
|
+
*/
|
|
756
|
+
function getHydrationRenderedPathAndSearch() {
|
|
757
|
+
const context = getNavigationContext();
|
|
758
|
+
if (!context) return null;
|
|
759
|
+
const search = context.searchParams.toString();
|
|
760
|
+
return search ? `${context.pathname}?${search}` : context.pathname;
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* A render that turns dynamic after the head sends its client pages' query
|
|
764
|
+
* later in the document (see `app-ssr-entry.ts`), possibly after bootstrap, so
|
|
765
|
+
* the hydration snapshot reads it when a client page first renders.
|
|
766
|
+
*/
|
|
767
|
+
function withLateRenderedSearch(snapshot, rsc) {
|
|
768
|
+
if (!rsc) return snapshot;
|
|
769
|
+
const headRenderedSearch = snapshot.renderedSearch;
|
|
770
|
+
return Object.defineProperty(snapshot, "renderedSearch", {
|
|
771
|
+
configurable: true,
|
|
772
|
+
enumerable: true,
|
|
773
|
+
get: () => rsc.renderedSearch ?? headRenderedSearch
|
|
774
|
+
});
|
|
775
|
+
}
|
|
776
|
+
/** Carry the rendered query over to a snapshot of the same URL. */
|
|
777
|
+
function withRenderedSearchOf(snapshot, source) {
|
|
778
|
+
return source.renderedSearch === void 0 ? snapshot : {
|
|
779
|
+
...snapshot,
|
|
780
|
+
renderedSearch: source.renderedSearch
|
|
781
|
+
};
|
|
782
|
+
}
|
|
741
783
|
function restorePopstateScrollPosition(state, options) {
|
|
742
784
|
const shouldContinue = options?.shouldContinue ?? (() => true);
|
|
743
785
|
if (!shouldContinue()) return;
|
|
@@ -746,7 +788,8 @@ function restorePopstateScrollPosition(state, options) {
|
|
|
746
788
|
return;
|
|
747
789
|
}
|
|
748
790
|
const y = Number(state.__vinext_scrollY);
|
|
749
|
-
|
|
791
|
+
const x = "__vinext_scrollX" in state ? Number(state.__vinext_scrollX) : 0;
|
|
792
|
+
retryScrollTo(x, y, {
|
|
750
793
|
minFrames: 1,
|
|
751
794
|
shouldContinue
|
|
752
795
|
});
|
|
@@ -825,7 +868,8 @@ async function readInitialRscStream() {
|
|
|
825
868
|
if (parsedParams) try {
|
|
826
869
|
applyClientParams(parsedParams);
|
|
827
870
|
} catch {}
|
|
828
|
-
|
|
871
|
+
const rendered = resolveFetchedHydrationLocation(parseRenderedPathAndSearchHeader(rscResponse.headers.get(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER)), window.location);
|
|
872
|
+
restoreHydrationNavigationContext(rendered.pathname, rendered.search, params);
|
|
829
873
|
return rscResponse.body;
|
|
830
874
|
}
|
|
831
875
|
function applyRuntimeRscBootstrap(rsc) {
|
|
@@ -845,14 +889,16 @@ function registerServerActionCallback() {
|
|
|
845
889
|
navigationPlanner,
|
|
846
890
|
performHardNavigation: (url, historyMode) => browserNavigationController.performHardNavigation(url, historyMode),
|
|
847
891
|
renderRedirectPayload(elements, target, actionInitiation, revalidation) {
|
|
892
|
+
if (browserNavigationController.isCurrentNavigation(actionInitiation.navigationId)) getNavigationRuntime()?.functions.notifyLinkNavigationStart?.();
|
|
848
893
|
const hashIdx = target.href.indexOf("#");
|
|
849
|
-
const
|
|
894
|
+
const hash = hashIdx !== -1 ? target.href.slice(hashIdx) : "";
|
|
895
|
+
const actionScrollIntent = beginAppRouterScrollIntent(hash || null);
|
|
850
896
|
if (target.type === "push") saveScrollPosition();
|
|
851
897
|
renderNavigationPayload({
|
|
852
898
|
actionType: target.type === "push" ? "navigate" : "replace",
|
|
853
899
|
historyUpdateMode: target.type === "push" ? "push" : "replace",
|
|
854
900
|
navigationInitiationState: actionInitiation.routerState,
|
|
855
|
-
navigationSnapshot: createClientNavigationRenderSnapshot(target.href, actionInitiation.routerState.navigationSnapshot.params),
|
|
901
|
+
navigationSnapshot: createClientNavigationRenderSnapshot(target.href, actionInitiation.routerState.navigationSnapshot.params, target.renderedPathAndSearch),
|
|
856
902
|
navId: actionInitiation.navigationId,
|
|
857
903
|
operationLane: resolveServerActionOperationLane(revalidation),
|
|
858
904
|
params: {},
|
|
@@ -892,8 +938,11 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
892
938
|
const hydrationCachePublication = createHydrationCachePublication();
|
|
893
939
|
const cacheGeneration = clientNavigationCacheGeneration;
|
|
894
940
|
const [reactBranch, cacheBranch] = rscStream.tee();
|
|
895
|
-
const
|
|
896
|
-
const
|
|
941
|
+
const initialNavigationSnapshot = withLateRenderedSearch(createClientNavigationRenderSnapshot(window.location.href, latestClientParams, getHydrationRenderedPathAndSearch()), initialRscBootstrap);
|
|
942
|
+
const root = decodeAppElementsPromise(createFromReadableStream(reactBranch)).then((elements) => {
|
|
943
|
+
bindAppElementsRenderedSearch(elements, initialNavigationSnapshot);
|
|
944
|
+
return elements;
|
|
945
|
+
});
|
|
897
946
|
const initialParams = initialNavigationSnapshot.params;
|
|
898
947
|
const initialPathAndSearch = createSnapshotPathAndSearch(initialNavigationSnapshot);
|
|
899
948
|
const initialCacheBuffer = new Response(cacheBranch).arrayBuffer();
|
|
@@ -935,10 +984,9 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
935
984
|
hydrationCachePublication.fail();
|
|
936
985
|
reportUncaughtError(...args);
|
|
937
986
|
};
|
|
938
|
-
const onRecoverableError = (
|
|
987
|
+
const onRecoverableError = createProdOnRecoverableError(() => {
|
|
939
988
|
hydrationCachePublication.fail();
|
|
940
|
-
|
|
941
|
-
};
|
|
989
|
+
});
|
|
942
990
|
const invalidateOnCaughtError = (handler) => ((...args) => {
|
|
943
991
|
hydrationCachePublication.fail();
|
|
944
992
|
handler(...args);
|
|
@@ -1084,13 +1132,12 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
1084
1132
|
navigationKind,
|
|
1085
1133
|
targetPathAndSearch
|
|
1086
1134
|
});
|
|
1087
|
-
const usesCanonicalPrewarmedRequest = !IS_STATIC_EXPORT && process.env.__VINEXT_CANONICAL_RSC_REQUESTS === "1" && navigationKind === "navigate" && settledPrefetchedResponse === null && requestInterceptionContext === null && mountedSlotsHeader === null && (rewrittenNavigationHref === null || rewrittenNavigationHref === currentHref) && canonicalizePrewarmableRscRequestHeaders(requestHeaders);
|
|
1088
1135
|
const rscUrl = settledPrefetchedResponse ? resolvePrefetchNavigationResponseUrl({
|
|
1089
1136
|
additionalRscUrls: additionalPrefetchPathAndSearch,
|
|
1090
1137
|
origin: window.location.origin,
|
|
1091
1138
|
responseUrl: settledPrefetchedResponse.url,
|
|
1092
1139
|
visibleRscUrl: targetPathAndSearch
|
|
1093
|
-
}) :
|
|
1140
|
+
}) : await createRscRequestUrl(targetPathAndSearch, requestHeaders);
|
|
1094
1141
|
const additionalPrefetchRscUrls = settledPrefetchedResponse ? additionalPrefetchPathAndSearch : await Promise.all(additionalPrefetchPathAndSearch.map((href) => createRscRequestUrl(href, requestHeaders)));
|
|
1095
1142
|
const visitedResponseCandidate = shouldBypassNavigationCache ? {
|
|
1096
1143
|
cacheKey: AppElementsWire.encodeCacheKey(rscUrl, requestInterceptionContext),
|
|
@@ -1135,7 +1182,7 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
1135
1182
|
redirectDepth: redirectCount,
|
|
1136
1183
|
requestPreviousNextUrl,
|
|
1137
1184
|
responseOk: true,
|
|
1138
|
-
responseUrl: cachedRoute.response.url,
|
|
1185
|
+
responseUrl: IS_STATIC_EXPORT ? currentHref : cachedRoute.response.url,
|
|
1139
1186
|
source: "cached",
|
|
1140
1187
|
streamedRedirectTarget: null
|
|
1141
1188
|
});
|
|
@@ -1154,7 +1201,7 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
1154
1201
|
}
|
|
1155
1202
|
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
1156
1203
|
const cachedParams = cachedRoute.params;
|
|
1157
|
-
const cachedNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, cachedParams);
|
|
1204
|
+
const cachedNavigationSnapshot = createClientNavigationRenderSnapshot(currentHref, cachedParams, cachedRoute.response.renderedPathAndSearch);
|
|
1158
1205
|
const cachedPayload = cachedRoute.elements ? Promise.resolve(cachedRoute.elements) : decodeAppElementsPromise(createFromFetch(Promise.resolve(restoreRscResponse(cachedRoute.response))));
|
|
1159
1206
|
if (!browserNavigationController.isCurrentNavigation(navId)) return;
|
|
1160
1207
|
if (await renderNavigationPayload({
|
|
@@ -1276,7 +1323,7 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
1276
1323
|
}
|
|
1277
1324
|
}
|
|
1278
1325
|
if (!navResponse) {
|
|
1279
|
-
if (navigationKind === "navigate"
|
|
1326
|
+
if (navigationKind === "navigate") {
|
|
1280
1327
|
const clientReuseManifestHeader = createClientReuseManifestHeaderFromVisibleAppState(navigationInitiationState);
|
|
1281
1328
|
if (clientReuseManifestHeader !== null) requestHeaders.set(VINEXT_CLIENT_REUSE_MANIFEST_HEADER, clientReuseManifestHeader);
|
|
1282
1329
|
}
|
|
@@ -1329,7 +1376,7 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
1329
1376
|
}
|
|
1330
1377
|
if (!hasSupplementalRefresh) navigationAbortHandle.release();
|
|
1331
1378
|
const navParams = parseEncodedJsonHeader(navResponse.headers.get("X-Vinext-Params")) ?? (IS_STATIC_EXPORT ? resolveStaticExportRouteParams(currentHref) : {});
|
|
1332
|
-
const navigationSnapshot = createClientNavigationRenderSnapshot(currentHref, navParams);
|
|
1379
|
+
const navigationSnapshot = createClientNavigationRenderSnapshot(currentHref, navParams, parseRenderedPathAndSearchHeader(navResponse.headers.get(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER)));
|
|
1333
1380
|
const navBody = navResponse.body;
|
|
1334
1381
|
if (!navBody) return;
|
|
1335
1382
|
const [reactBranch, cacheBranch] = navBody.tee();
|
|
@@ -1360,6 +1407,8 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
1360
1407
|
primary: Promise.resolve(rscPayload),
|
|
1361
1408
|
signal: navigationAbortHandle.signal,
|
|
1362
1409
|
supplemental
|
|
1410
|
+
}).finally(() => {
|
|
1411
|
+
navigationAbortHandle.release();
|
|
1363
1412
|
}).then(requireCompleteSupplementalRefresh);
|
|
1364
1413
|
}
|
|
1365
1414
|
if (IS_STATIC_EXPORT) {
|
|
@@ -1521,10 +1570,16 @@ function bootstrapHydration(rscStream, devErrorOverlay, initialRscBootstrap) {
|
|
|
1521
1570
|
if (updateId !== latestRscHmrUpdateId) return;
|
|
1522
1571
|
if (!browserNavigationController.hasBrowserRouterState()) return;
|
|
1523
1572
|
clearClientNavigationCaches();
|
|
1524
|
-
const navigationSnapshot = createClientNavigationRenderSnapshot(window.location.href, latestClientParams);
|
|
1525
1573
|
devErrorOverlay?.dismissOverlay();
|
|
1526
1574
|
const hmrHeaders = createRscRequestHeaders({ mountedSlotsHeader: getMountedSlotIdsHeader(browserNavigationController.getBrowserRouterState().elements) });
|
|
1527
|
-
|
|
1575
|
+
const hmrHref = window.location.href;
|
|
1576
|
+
const hmrParams = latestClientParams;
|
|
1577
|
+
const sameQuerySnapshot = withRenderedSearchOf(createClientNavigationRenderSnapshot(hmrHref, hmrParams), browserNavigationController.getBrowserRouterState().navigationSnapshot);
|
|
1578
|
+
const hmrResponse = fetch(await createRscRequestUrl(window.location.pathname + window.location.search, hmrHeaders), { headers: hmrHeaders });
|
|
1579
|
+
await browserNavigationController.hmrReplaceTree(decodeAppElementsPromise(createFromFetch(hmrResponse.then(stripRscCompletionMetadataResponse))), hmrResponse.then((response) => {
|
|
1580
|
+
const renderedPathAndSearch = parseRenderedPathAndSearchHeader(response.headers.get(VINEXT_RENDERED_PATH_AND_SEARCH_HEADER));
|
|
1581
|
+
return renderedPathAndSearch === null ? sameQuerySnapshot : createClientNavigationRenderSnapshot(hmrHref, hmrParams, renderedPathAndSearch);
|
|
1582
|
+
}));
|
|
1528
1583
|
};
|
|
1529
1584
|
const handleRscUpdate = async (updateId) => {
|
|
1530
1585
|
try {
|
|
@@ -4,9 +4,8 @@ type VinextHydrateRootErrorInfo = {
|
|
|
4
4
|
errorBoundary?: unknown;
|
|
5
5
|
};
|
|
6
6
|
type HydrateRootErrorHandler = (error: unknown, errorInfo: VinextHydrateRootErrorInfo) => void;
|
|
7
|
-
declare function createOnUncaughtError(): HydrateRootErrorHandler;
|
|
8
|
-
declare function createProdOnCaughtError(onImplicitRootError: HydrateRootErrorHandler): HydrateRootErrorHandler;
|
|
9
|
-
declare function createDevOnCaughtError(onCaughtError: HydrateRootErrorHandler, onImplicitRootError: HydrateRootErrorHandler): HydrateRootErrorHandler;
|
|
10
|
-
declare function
|
|
11
|
-
//#endregion
|
|
12
|
-
export { createDevOnCaughtError, createOnUncaughtError, createProdOnCaughtError, prodOnRecoverableError };
|
|
7
|
+
export declare function createOnUncaughtError(): HydrateRootErrorHandler;
|
|
8
|
+
export declare function createProdOnCaughtError(onImplicitRootError: HydrateRootErrorHandler): HydrateRootErrorHandler;
|
|
9
|
+
export declare function createDevOnCaughtError(onCaughtError: HydrateRootErrorHandler, onImplicitRootError: HydrateRootErrorHandler): HydrateRootErrorHandler;
|
|
10
|
+
export declare function createProdOnRecoverableError(onReportedError: () => void): (error: unknown) => void;
|
|
11
|
+
//#endregion
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isUnknownRecord } from "../utils/record.js";
|
|
2
2
|
import { isNavigationSignalError } from "../utils/navigation-signal.js";
|
|
3
|
+
import { isBailoutToCSRError } from "../shims/navigation-errors.js";
|
|
3
4
|
//#region src/server/app-browser-error.ts
|
|
4
5
|
function isImplicitRootErrorBoundary(errorInfo) {
|
|
5
6
|
if (!isUnknownRecord(errorInfo.errorBoundary)) return false;
|
|
@@ -41,8 +42,13 @@ function createDevOnCaughtError(onCaughtError, onImplicitRootError) {
|
|
|
41
42
|
onCaughtError(error, errorInfo);
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
|
-
function
|
|
45
|
-
|
|
45
|
+
function createProdOnRecoverableError(onReportedError) {
|
|
46
|
+
return (error) => {
|
|
47
|
+
const cause = error instanceof Error && error.cause !== void 0 ? error.cause : error;
|
|
48
|
+
if (isBailoutToCSRError(cause)) return;
|
|
49
|
+
onReportedError();
|
|
50
|
+
reportGlobalError(cause);
|
|
51
|
+
};
|
|
46
52
|
}
|
|
47
53
|
//#endregion
|
|
48
|
-
export { createDevOnCaughtError, createOnUncaughtError, createProdOnCaughtError,
|
|
54
|
+
export { createDevOnCaughtError, createOnUncaughtError, createProdOnCaughtError, createProdOnRecoverableError };
|
|
@@ -32,7 +32,7 @@ type AppBrowserHistoryControllerDeps = {
|
|
|
32
32
|
* `AppBrowserNavigationController.restoreHistorySnapshotVisibleState()` call and
|
|
33
33
|
* the `ApprovedVisibleCommit` boundary.
|
|
34
34
|
*/
|
|
35
|
-
type RestorableSnapshotCandidate = {
|
|
35
|
+
export type RestorableSnapshotCandidate = {
|
|
36
36
|
state: AppRouterState;
|
|
37
37
|
beforeCommit: () => void;
|
|
38
38
|
};
|
|
@@ -51,7 +51,7 @@ type CommitNavigationHistoryOptions = {
|
|
|
51
51
|
targetHistoryIndex?: number | null;
|
|
52
52
|
stageClientParams: () => void;
|
|
53
53
|
};
|
|
54
|
-
declare function createCanonicalBrowserHistoryHref(href: string): string;
|
|
54
|
+
export declare function createCanonicalBrowserHistoryHref(href: string): string;
|
|
55
55
|
/**
|
|
56
56
|
* Owns App Router browser-history metadata and traversal bookkeeping behind a
|
|
57
57
|
* typed seam: traversal index allocation/commit, push/replace/traverse/hash-only
|
|
@@ -65,7 +65,7 @@ declare function createCanonicalBrowserHistoryHref(href: string): string;
|
|
|
65
65
|
* `applyApprovedVisibleCommit()`, and never bypasses the `ApprovedVisibleCommit`
|
|
66
66
|
* boundary owned by `AppBrowserNavigationController`.
|
|
67
67
|
*/
|
|
68
|
-
declare class AppBrowserHistoryController {
|
|
68
|
+
export declare class AppBrowserHistoryController {
|
|
69
69
|
#private;
|
|
70
70
|
constructor(deps: AppBrowserHistoryControllerDeps);
|
|
71
71
|
get currentHistoryTraversalIndex(): number | null;
|
|
@@ -119,5 +119,4 @@ declare class AppBrowserHistoryController {
|
|
|
119
119
|
*/
|
|
120
120
|
restoreHistorySnapshot(options: RestoreHistorySnapshotOptions): boolean;
|
|
121
121
|
}
|
|
122
|
-
//#endregion
|
|
123
|
-
export { AppBrowserHistoryController, RestorableSnapshotCandidate, createCanonicalBrowserHistoryHref };
|
|
122
|
+
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RSC_FORM_STATE_GLOBAL } from "../client/browser-globals.js";
|
|
1
2
|
import { ReactFormState, hydrateRoot } from "react-dom/client";
|
|
2
3
|
//#region src/server/app-browser-hydration.d.ts
|
|
3
4
|
type HydrateRootOptions = NonNullable<Parameters<typeof hydrateRoot>[2]>;
|
|
@@ -9,23 +10,32 @@ type HydrateRootCaughtErrorHandler = NonNullable<HydrateRootOptions["onCaughtErr
|
|
|
9
10
|
type HydrateRootUncaughtErrorHandler = NonNullable<HydrateRootOptions["onUncaughtError"]>;
|
|
10
11
|
type HydrateRootRecoverableErrorHandler = NonNullable<HydrateRootOptions["onRecoverableError"]>;
|
|
11
12
|
type StartTransition = (action: () => void) => void;
|
|
12
|
-
declare const RSC_FORM_STATE_GLOBAL = "__VINEXT_RSC_FORM_STATE__";
|
|
13
13
|
type FormStateGlobal = {
|
|
14
14
|
[RSC_FORM_STATE_GLOBAL]?: ReactFormState;
|
|
15
15
|
};
|
|
16
|
-
declare function consumeInitialFormState(global: FormStateGlobal): ReactFormState | null;
|
|
17
|
-
declare function createVinextHydrateRootOptions(options: {
|
|
16
|
+
export declare function consumeInitialFormState(global: FormStateGlobal): ReactFormState | null;
|
|
17
|
+
export declare function createVinextHydrateRootOptions(options: {
|
|
18
18
|
formState: ReactFormState | null;
|
|
19
19
|
onCaughtError?: HydrateRootCaughtErrorHandler;
|
|
20
20
|
onRecoverableError?: HydrateRootRecoverableErrorHandler;
|
|
21
21
|
onUncaughtError: HydrateRootUncaughtErrorHandler;
|
|
22
22
|
}): HydrateRootOptions;
|
|
23
|
-
declare function hydrateRootInTransition(options: {
|
|
23
|
+
export declare function hydrateRootInTransition(options: {
|
|
24
24
|
children: HydrateRootChildren;
|
|
25
25
|
container: HydrateRootContainer;
|
|
26
26
|
hydrateRoot: HydrateRoot;
|
|
27
27
|
options: HydrateRootOptions;
|
|
28
28
|
startTransition: StartTransition;
|
|
29
29
|
}): HydrateRootReturn;
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
/**
|
|
31
|
+
* The pathname and query to hydrate with when the initial Flight payload is
|
|
32
|
+
* fetched instead of embedded, matching what SSR rendered: the query the
|
|
33
|
+
* server rendered (`X-Vinext-Rendered-Path-And-Search`), which a rewrite may
|
|
34
|
+
* have changed, under the public pathname `usePathname()` exposes. The
|
|
35
|
+
* header's path is the rewrite target, so it is never the pathname.
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveFetchedHydrationLocation(renderedPathAndSearch: string | null, location: Pick<Location, "origin" | "pathname" | "search">): {
|
|
38
|
+
pathname: string;
|
|
39
|
+
search: string;
|
|
40
|
+
};
|
|
41
|
+
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { RSC_FORM_STATE_GLOBAL } from "../client/browser-globals.js";
|
|
1
2
|
//#region src/server/app-browser-hydration.ts
|
|
2
|
-
const RSC_FORM_STATE_GLOBAL = "__VINEXT_RSC_FORM_STATE__";
|
|
3
3
|
function consumeInitialFormState(global) {
|
|
4
4
|
const formState = global["__VINEXT_RSC_FORM_STATE__"] ?? null;
|
|
5
5
|
delete global[RSC_FORM_STATE_GLOBAL];
|
|
@@ -25,5 +25,18 @@ function hydrateRootInTransition(options) {
|
|
|
25
25
|
if (root === void 0) throw new Error("[vinext] React.startTransition did not synchronously start hydration");
|
|
26
26
|
return root;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* The pathname and query to hydrate with when the initial Flight payload is
|
|
30
|
+
* fetched instead of embedded, matching what SSR rendered: the query the
|
|
31
|
+
* server rendered (`X-Vinext-Rendered-Path-And-Search`), which a rewrite may
|
|
32
|
+
* have changed, under the public pathname `usePathname()` exposes. The
|
|
33
|
+
* header's path is the rewrite target, so it is never the pathname.
|
|
34
|
+
*/
|
|
35
|
+
function resolveFetchedHydrationLocation(renderedPathAndSearch, location) {
|
|
36
|
+
return {
|
|
37
|
+
pathname: location.pathname,
|
|
38
|
+
search: renderedPathAndSearch === null ? location.search : new URL(renderedPathAndSearch, location.origin).search
|
|
39
|
+
};
|
|
40
|
+
}
|
|
28
41
|
//#endregion
|
|
29
|
-
export {
|
|
42
|
+
export { consumeInitialFormState, createVinextHydrateRootOptions, hydrateRootInTransition, resolveFetchedHydrationLocation };
|
|
@@ -18,7 +18,6 @@ type ResolveManifestNavigationInterceptionContextOptions = {
|
|
|
18
18
|
* When multiple manifest interceptions match, the first one wins. That order
|
|
19
19
|
* is owned by the deterministic route graph builder.
|
|
20
20
|
*/
|
|
21
|
-
declare function resolveManifestNavigationInterceptionContext(options: ResolveManifestNavigationInterceptionContextOptions): string | null;
|
|
22
|
-
declare function resolveMiddlewareRewriteNavigationInterceptionContext(options: ResolveManifestNavigationInterceptionContextOptions): string | null;
|
|
23
|
-
//#endregion
|
|
24
|
-
export { resolveManifestNavigationInterceptionContext, resolveMiddlewareRewriteNavigationInterceptionContext };
|
|
21
|
+
export declare function resolveManifestNavigationInterceptionContext(options: ResolveManifestNavigationInterceptionContextOptions): string | null;
|
|
22
|
+
export declare function resolveMiddlewareRewriteNavigationInterceptionContext(options: ResolveManifestNavigationInterceptionContextOptions): string | null;
|
|
23
|
+
//#endregion
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { HistoryUpdateMode } from "./app-browser-navigation-controller.js";
|
|
2
2
|
//#region src/server/app-browser-mpa-navigation.d.ts
|
|
3
|
-
type AppBrowserMpaNavigationWindow = {
|
|
3
|
+
export type AppBrowserMpaNavigationWindow = {
|
|
4
4
|
location: Pick<Location, "assign" | "replace">;
|
|
5
5
|
requestAnimationFrame?: (callback: FrameRequestCallback) => unknown;
|
|
6
6
|
setTimeout(callback: () => void, timeout: number): unknown;
|
|
7
7
|
};
|
|
8
|
-
declare function hasPendingAppRouterPageRedirect(targetDocument: unknown): boolean;
|
|
9
|
-
declare class AppBrowserMpaNavigationScheduler {
|
|
8
|
+
export declare function hasPendingAppRouterPageRedirect(targetDocument: unknown): boolean;
|
|
9
|
+
export declare class AppBrowserMpaNavigationScheduler {
|
|
10
10
|
#private;
|
|
11
11
|
reset(): void;
|
|
12
12
|
navigate(targetWindow: AppBrowserMpaNavigationWindow, href: string, historyUpdateMode: HistoryUpdateMode): void;
|
|
13
13
|
}
|
|
14
|
-
//#endregion
|
|
15
|
-
export { AppBrowserMpaNavigationScheduler, AppBrowserMpaNavigationWindow, hasPendingAppRouterPageRedirect };
|
|
14
|
+
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/server/app-browser-navigation-abort.d.ts
|
|
2
|
-
type AppBrowserNavigationAbortHandle = {
|
|
2
|
+
export type AppBrowserNavigationAbortHandle = {
|
|
3
3
|
release(): void;
|
|
4
4
|
signal: AbortSignal;
|
|
5
5
|
};
|
|
@@ -8,9 +8,8 @@ type AppBrowserNavigationAbortHandle = {
|
|
|
8
8
|
* Once a Flight response is handed to React, release the handle so a newer
|
|
9
9
|
* navigation does not abort the response body while React is decoding it.
|
|
10
10
|
*/
|
|
11
|
-
declare function createAppBrowserNavigationAbortCoordinator(): {
|
|
11
|
+
export declare function createAppBrowserNavigationAbortCoordinator(): {
|
|
12
12
|
abortActive(): void;
|
|
13
13
|
begin(): AppBrowserNavigationAbortHandle;
|
|
14
14
|
};
|
|
15
|
-
//#endregion
|
|
16
|
-
export { AppBrowserNavigationAbortHandle, createAppBrowserNavigationAbortCoordinator };
|
|
15
|
+
//#endregion
|
|
@@ -9,13 +9,13 @@ import { ClientNavigationRenderSnapshot, commitClientNavigationState, createSnap
|
|
|
9
9
|
import { AppNavigationPayloadOrigin, AppRouterState } from "./app-browser-state.js";
|
|
10
10
|
import { Dispatch, ReactNode } from "react";
|
|
11
11
|
//#region src/server/app-browser-navigation-controller.d.ts
|
|
12
|
-
type HistoryUpdateMode = "push" | "replace";
|
|
13
|
-
type PendingBrowserRouterState = {
|
|
12
|
+
export type HistoryUpdateMode = "push" | "replace";
|
|
13
|
+
export type PendingBrowserRouterState = {
|
|
14
14
|
promise: Promise<AppRouterState>;
|
|
15
15
|
resolve: (state: AppRouterState) => void;
|
|
16
16
|
settled: boolean;
|
|
17
17
|
};
|
|
18
|
-
type NavigationPayloadOutcome = "committed" | "no-commit" | "hard-navigate";
|
|
18
|
+
export type NavigationPayloadOutcome = "committed" | "no-commit" | "hard-navigate";
|
|
19
19
|
type HardNavigationMode = "assign" | "replace";
|
|
20
20
|
type BrowserNavigationCommitEffect = () => void;
|
|
21
21
|
type BrowserNavigationCommitEffectFactory = (options: {
|
|
@@ -90,7 +90,7 @@ type BrowserNavigationController = {
|
|
|
90
90
|
ok: boolean;
|
|
91
91
|
data: unknown;
|
|
92
92
|
}, actionInitiationState?: AppRouterState, lifecycleOptions?: SameUrlServerActionLifecycleOptions): Promise<unknown>;
|
|
93
|
-
hmrReplaceTree(nextElements: Promise<AppElements>, navigationSnapshot: ClientNavigationRenderSnapshot): Promise<void>;
|
|
93
|
+
hmrReplaceTree(nextElements: Promise<AppElements>, navigationSnapshot: ClientNavigationRenderSnapshot | Promise<ClientNavigationRenderSnapshot>): Promise<void>;
|
|
94
94
|
/**
|
|
95
95
|
* Force-drain the queued pre-paint effect for the given renderId without
|
|
96
96
|
* waiting for NavigationCommitSignal to commit. Used by the dev recovery
|
|
@@ -107,8 +107,8 @@ type BrowserNavigationController = {
|
|
|
107
107
|
children?: ReactNode;
|
|
108
108
|
}): ReactNode;
|
|
109
109
|
};
|
|
110
|
-
declare function clearHardNavigationLoopGuard(): void;
|
|
111
|
-
declare function createBasePathStrippedPathAndSearch(url: URL, basePath: string): string;
|
|
112
|
-
declare function createAppBrowserNavigationController(deps?: BrowserNavigationControllerDeps): BrowserNavigationController;
|
|
110
|
+
export declare function clearHardNavigationLoopGuard(): void;
|
|
111
|
+
export declare function createBasePathStrippedPathAndSearch(url: URL, basePath: string): string;
|
|
112
|
+
export declare function createAppBrowserNavigationController(deps?: BrowserNavigationControllerDeps): BrowserNavigationController;
|
|
113
113
|
//#endregion
|
|
114
|
-
export {
|
|
114
|
+
export { createSnapshotPathAndSearch };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { stripBasePath } from "../utils/base-path.js";
|
|
2
2
|
import { clearAppNavigationFailureTarget, getAppNavigationFailureTarget } from "../client/app-nav-failure-handler.js";
|
|
3
3
|
import { claimAppRouterScrollIntentForCommit, consumeAppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
|
|
4
|
-
import { resolveActiveRoutePaths } from "./app-history-state.js";
|
|
5
4
|
import { resolveServerActionOperationLane, shouldScheduleRefreshForDiscardedServerAction } from "./app-browser-action-result.js";
|
|
5
|
+
import { resolveActiveRoutePaths } from "./app-history-state.js";
|
|
6
6
|
import { activateNavigationSnapshot, clearPendingPathname, commitClientNavigationState, createSnapshotPathAndSearch } from "../shims/navigation.js";
|
|
7
7
|
import { FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN, createPendingNavigationCommit, createPendingNavigationCommitFromElements } from "./app-browser-state.js";
|
|
8
8
|
import { applyApprovedVisibleCommit, approveHmrVisibleCommit, approvePendingNavigationCommit, resolveAndClassifyNavigationCommit } from "./app-browser-visible-commit.js";
|
|
@@ -210,17 +210,20 @@ function createAppBrowserNavigationController(deps = {}) {
|
|
|
210
210
|
clearAppNavigationFailureTarget(targetHref);
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
|
-
async function hmrReplaceTree(nextElements,
|
|
213
|
+
async function hmrReplaceTree(nextElements, pendingNavigationSnapshot) {
|
|
214
214
|
const hmrUpdateId = ++latestHmrUpdateId;
|
|
215
215
|
const startedDuringUserNavigation = pendingUserNavigationLane === "navigation";
|
|
216
216
|
if (!hasBrowserRouterState()) return;
|
|
217
|
+
const currentState = getBrowserRouterState();
|
|
218
|
+
const renderId = allocateRenderId();
|
|
219
|
+
const [navigationSnapshot] = await Promise.all([pendingNavigationSnapshot, nextElements]);
|
|
217
220
|
const pending = await createPendingNavigationCommit({
|
|
218
|
-
currentState
|
|
221
|
+
currentState,
|
|
219
222
|
nextElements,
|
|
220
223
|
navigationSnapshot,
|
|
221
224
|
operationLane: "hmr",
|
|
222
225
|
payloadOrigin: FRESH_APP_NAVIGATION_PAYLOAD_ORIGIN,
|
|
223
|
-
renderId
|
|
226
|
+
renderId,
|
|
224
227
|
type: "replace"
|
|
225
228
|
});
|
|
226
229
|
if (hmrUpdateId !== latestHmrUpdateId || startedDuringUserNavigation) return;
|
|
@@ -337,7 +340,8 @@ function createAppBrowserNavigationController(deps = {}) {
|
|
|
337
340
|
return true;
|
|
338
341
|
}
|
|
339
342
|
function notifyDiscardedServerActionRevalidation(lifecycleOptions) {
|
|
340
|
-
|
|
343
|
+
const revalidation = lifecycleOptions?.revalidation ?? "none";
|
|
344
|
+
if (!shouldScheduleRefreshForDiscardedServerAction(revalidation)) return;
|
|
341
345
|
lifecycleOptions?.onDiscardedRevalidation?.();
|
|
342
346
|
}
|
|
343
347
|
function isSamePathSearchHashCommit(targetHref) {
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { ClientNavigationRenderSnapshot } from "../shims/navigation.js";
|
|
2
2
|
//#region src/server/app-browser-navigation-response.d.ts
|
|
3
|
-
declare function shouldRecoverSamePathSearchCommitOnResponseCompletion(options: {
|
|
3
|
+
export declare function shouldRecoverSamePathSearchCommitOnResponseCompletion(options: {
|
|
4
4
|
basePath: string;
|
|
5
5
|
currentSnapshot: ClientNavigationRenderSnapshot;
|
|
6
6
|
navigationKind: "navigate" | "traverse" | "refresh";
|
|
7
7
|
programmaticTransition: boolean;
|
|
8
8
|
targetUrl: URL;
|
|
9
9
|
}): boolean;
|
|
10
|
-
//#endregion
|
|
11
|
-
export { shouldRecoverSamePathSearchCommitOnResponseCompletion };
|
|
10
|
+
//#endregion
|
|
@@ -19,12 +19,11 @@ type SynchronousPopstateScrollRestoreDeps = {
|
|
|
19
19
|
markScrollRestoreConsumed: (navId: number) => void;
|
|
20
20
|
restorePopstateScrollPosition: RestoreScrollPosition;
|
|
21
21
|
};
|
|
22
|
-
declare function restoreSynchronousPopstateScrollPosition(deps: SynchronousPopstateScrollRestoreDeps, state: unknown): void;
|
|
23
|
-
declare function shouldCommitPopstateUrlWithoutNavigation(options: {
|
|
22
|
+
export declare function restoreSynchronousPopstateScrollPosition(deps: SynchronousPopstateScrollRestoreDeps, state: unknown): void;
|
|
23
|
+
export declare function shouldCommitPopstateUrlWithoutNavigation(options: {
|
|
24
24
|
historyState: unknown;
|
|
25
25
|
isCurrentExternalHistoryTree: boolean;
|
|
26
26
|
isSameAppRouteTarget: boolean;
|
|
27
27
|
}): boolean;
|
|
28
|
-
declare function createPopstateRestoreHandler(deps: BrowserPopstateRestoreDeps): (event: PopStateEvent) => void;
|
|
29
|
-
//#endregion
|
|
30
|
-
export { createPopstateRestoreHandler, restoreSynchronousPopstateScrollPosition, shouldCommitPopstateUrlWithoutNavigation };
|
|
28
|
+
export declare function createPopstateRestoreHandler(deps: BrowserPopstateRestoreDeps): (event: PopStateEvent) => void;
|
|
29
|
+
//#endregion
|