vinext 1.0.0-beta.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +150 -92
- package/THIRD_PARTY_LICENSES.md +25 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +1 -13
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +273 -97
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +65 -15
- package/dist/build/prerender.js +139 -43
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +25 -16
- package/dist/build/server-entry.d.ts +4 -0
- package/dist/build/server-entry.js +28 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +21 -17
- package/dist/client/navigation-runtime.js +2 -1
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +2 -1
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +502 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +711 -189
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +710 -102
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +123 -41
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +3 -4
- package/dist/plugins/ignore-dynamic-requests.js +60 -89
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +31 -43
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +3 -4
- package/dist/plugins/og-assets.d.ts +4 -5
- package/dist/plugins/og-assets.js +32 -13
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +260 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +32 -44
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +2 -3
- package/dist/plugins/require-context.js +13 -21
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +5 -6
- package/dist/plugins/strip-server-exports.js +1 -1
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +3 -4
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +6 -7
- package/dist/plugins/typeof-window.js +30 -31
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +19 -19
- package/dist/routing/app-route-graph.js +3 -2
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +3 -4
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +87 -34
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +14 -1
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +8 -4
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +6 -2
- package/dist/server/app-browser-stream.d.ts +4 -5
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +26 -27
- package/dist/server/app-history-state.js +19 -11
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -5
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -25
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +42 -6
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +49 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +17 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +115 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +2 -3
- package/dist/server/app-route-handler-cache.js +46 -34
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +68 -54
- package/dist/server/app-route-handler-execution.d.ts +17 -13
- package/dist/server/app-route-handler-execution.js +69 -18
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +2 -0
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +2 -0
- package/dist/server/app-router-entry.js +28 -8
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +31 -6
- package/dist/server/app-rsc-handler.js +411 -61
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +2 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +6 -6
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +16 -12
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +61 -14
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +33 -7
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +71 -5
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +159 -57
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +130 -61
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +54 -61
- package/dist/server/headers.js +18 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +28 -27
- package/dist/server/isr-cache.js +18 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-cache-policy.d.ts +2 -3
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +68 -2
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +20 -7
- package/dist/server/pages-asset-tags.d.ts +6 -6
- package/dist/server/pages-asset-tags.js +37 -2
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +11 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +18 -19
- package/dist/server/pages-page-data.js +11 -10
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +77 -39
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +49 -31
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +14 -12
- package/dist/server/pages-request-pipeline.js +60 -30
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +314 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +11 -11
- package/dist/server/prerender-manifest.js +6 -3
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +124 -31
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +2 -3
- package/dist/server/worker-revalidation-context.js +5 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +17 -0
- package/dist/server/workers-tracing.js +27 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +28 -29
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +107 -27
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +15 -13
- package/dist/shims/cacheability-classification.d.ts +49 -28
- package/dist/shims/cacheability-classification.js +27 -12
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +50 -21
- package/dist/shims/cdn-cache.js +15 -38
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +4 -4
- package/dist/shims/error.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +42 -17
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +67 -33
- package/dist/shims/headers.js +93 -6
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +24 -16
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +14 -28
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +34 -31
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +3 -4
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +47 -6
package/dist/shims/link.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { isBotUserAgent } from "../utils/html-limited-bots.js";
|
|
2
3
|
import { isDangerousScheme, reportBlockedDangerousNavigation } from "./url-safety.js";
|
|
3
4
|
import { addLocalePrefix, getDomainLocaleUrl } from "../utils/domain-locale.js";
|
|
4
5
|
import { RouterContext } from "./internal/router-context.js";
|
|
5
6
|
import { getPagesMiddlewareDataHref, prefetchPagesData, resolvePagesDataNavigationTarget } from "./internal/pages-data-target.js";
|
|
6
7
|
import { markAppRouteDetectedOnPrefetch } from "./internal/app-route-detection.js";
|
|
7
8
|
import { isAbsoluteOrProtocolRelativeUrl, normalizePathTrailingSlash, toCanonicalBrowserNavigationHref, toSameOriginAppPath, withBasePath } from "./url-utils.js";
|
|
8
|
-
import { appendSearchParamsToUrl, urlQueryToSearchParams } from "../utils/query.js";
|
|
9
9
|
import { interpolateDynamicRouteHref, resolveDynamicRouteHref } from "./internal/interpolate-as.js";
|
|
10
|
-
import {
|
|
10
|
+
import { formatUrlObject, formatUrlObjectWithValidation } from "./internal/format-url-object.js";
|
|
11
|
+
import { normalizeRouterHref, resolvePagesRouterHref } from "./internal/normalize-router-href.js";
|
|
11
12
|
import { getCurrentRoutePathnameForWarning } from "./internal/route-pattern-for-warning.js";
|
|
12
|
-
import {
|
|
13
|
+
import { getCurrentBrowserLocale } from "./client-locale.js";
|
|
13
14
|
import { getNavigationRuntime, hasAppNavigationRuntime, registerNavigationRuntimeFunctions } from "../client/navigation-runtime.js";
|
|
14
15
|
import { navigatePagesRouterLinkWithFallback, resolvePagesRouterQueryOnlyHref } from "../client/pages-router-link-navigation.js";
|
|
15
16
|
import { scheduleAppPrefetchFetch } from "./internal/app-prefetch-fetch-queue.js";
|
|
@@ -65,22 +66,23 @@ const __basePath = process.env.__NEXT_ROUTER_BASEPATH ?? "";
|
|
|
65
66
|
/** trailingSlash from next.config.js, injected by the plugin at build time */
|
|
66
67
|
const __trailingSlash = process.env.__VINEXT_TRAILING_SLASH === "true";
|
|
67
68
|
const __prefetchInlining = process.env.__VINEXT_PREFETCH_INLINING === "true";
|
|
68
|
-
function resolveHref(href) {
|
|
69
|
+
function resolveHref(href, validate = false) {
|
|
69
70
|
if (typeof href === "string") return href;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
return
|
|
71
|
+
return validate ? formatUrlObjectWithValidation(href) : formatUrlObject(href);
|
|
72
|
+
}
|
|
73
|
+
function resolvePagesLinkValue(value, pagesRouter, routePathnameForWarning) {
|
|
74
|
+
const formatted = resolveHref(value, pagesRouter !== null);
|
|
75
|
+
if (pagesRouter === null) return formatted;
|
|
76
|
+
if (typeof pagesRouter.pathname === "string" && typeof pagesRouter.asPath === "string" && !formatted.startsWith("?") && !formatted.startsWith("#")) return resolvePagesRouterHref(formatted, pagesRouter, __basePath);
|
|
77
|
+
return normalizeRouterHref(formatted, routePathnameForWarning);
|
|
77
78
|
}
|
|
78
79
|
function resolvePagesQueryOnlyHref(href) {
|
|
79
80
|
if (!HAS_PAGES_ROUTER) return href;
|
|
80
81
|
if (!href.startsWith("?") && !href.startsWith("#") || typeof window === "undefined") return href;
|
|
81
82
|
const pagesRouter = window.next?.appDir === true ? void 0 : window.next?.router;
|
|
83
|
+
const visibleHref = pagesRouter && "reload" in pagesRouter && "asPath" in pagesRouter && typeof pagesRouter.asPath === "string" ? pagesRouter.asPath : void 0;
|
|
82
84
|
return resolvePagesRouterQueryOnlyHref(href, {
|
|
83
|
-
asPath:
|
|
85
|
+
asPath: visibleHref,
|
|
84
86
|
basePath: __basePath,
|
|
85
87
|
fallbackHref: window.location.href,
|
|
86
88
|
locales: window.__VINEXT_LOCALES__
|
|
@@ -94,52 +96,6 @@ function applyPagesNavigationFallback(href, replace) {
|
|
|
94
96
|
else window.history.pushState({}, "", href);
|
|
95
97
|
window.dispatchEvent(new PopStateEvent("popstate"));
|
|
96
98
|
}
|
|
97
|
-
/**
|
|
98
|
-
* Collapse repeated forward-slashes (and convert backslashes to forward-slashes)
|
|
99
|
-
* in the path portion of a URL, preserving any query string.
|
|
100
|
-
*
|
|
101
|
-
* Ported from Next.js: packages/next/src/shared/lib/utils/normalize-repeated-slashes.ts
|
|
102
|
-
* https://github.com/vercel/next.js/blob/canary/packages/next/src/shared/lib/utils/normalize-repeated-slashes.ts
|
|
103
|
-
*/
|
|
104
|
-
function normalizeRepeatedSlashes(url) {
|
|
105
|
-
const urlParts = url.split("?");
|
|
106
|
-
const urlNoQueryString = urlParts.shift() ?? "";
|
|
107
|
-
const queryString = urlParts.join("?");
|
|
108
|
-
return urlNoQueryString.replace(/\\/g, "/").replace(/\/\/+/g, "/") + (queryString ? `?${queryString}` : "");
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Emit Next.js's "Invalid href" `console.error` when `href` contains repeated
|
|
112
|
-
* forward slashes or backslashes in its path portion, and return the
|
|
113
|
-
* normalized URL (with `\\` converted to `/` and runs of `/` collapsed). If
|
|
114
|
-
* the href is already well-formed, the original string is returned unchanged.
|
|
115
|
-
*
|
|
116
|
-
* Ported from Next.js: packages/next/src/client/resolve-href.ts
|
|
117
|
-
* https://github.com/vercel/next.js/blob/canary/packages/next/src/client/resolve-href.ts
|
|
118
|
-
*
|
|
119
|
-
* Matches the message asserted by:
|
|
120
|
-
* test/e2e/repeated-forward-slashes-error/repeated-forward-slashes-error.test.ts
|
|
121
|
-
*
|
|
122
|
-
* Note: Next.js fires this warning unconditionally on every call to
|
|
123
|
-
* `resolveHref`. We mirror that behaviour (no dedup) for exact parity.
|
|
124
|
-
*
|
|
125
|
-
* Note: Next.js uses `router.pathname` (the route pattern, e.g.
|
|
126
|
-
* `/posts/[id]`) for the "in page" segment of the message. The Next.js
|
|
127
|
-
* compat test asserts this exact text (`in page: '/my/path/[name]'`), so we
|
|
128
|
-
* source it from the current render's route pattern via
|
|
129
|
-
* `getCurrentRoutePathnameForWarning()`: the Pages Router SSR context's route
|
|
130
|
-
* pattern on the server, `window.location.pathname` on the client, falling
|
|
131
|
-
* back to `"/"`.
|
|
132
|
-
*/
|
|
133
|
-
function warnAndNormalizeRepeatedSlashesInHref(urlAsString) {
|
|
134
|
-
if (urlAsString.startsWith("//")) return urlAsString;
|
|
135
|
-
const urlProtoMatch = urlAsString.match(/^[a-z][a-z0-9+.-]*:\/\//i);
|
|
136
|
-
const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;
|
|
137
|
-
if (!(urlAsStringNoProto.split("?", 1)[0] || "").match(/(\/\/|\\)/)) return urlAsString;
|
|
138
|
-
const pathname = getCurrentRoutePathnameForWarning();
|
|
139
|
-
console.error(`Invalid href '${urlAsString}' passed to next/router in page: '${pathname}'. Repeated forward-slashes (//) or backslashes \\ are not valid in the href.`);
|
|
140
|
-
const normalizedNoProto = normalizeRepeatedSlashes(urlAsStringNoProto);
|
|
141
|
-
return (urlProtoMatch ? urlProtoMatch[0] : "") + normalizedNoProto;
|
|
142
|
-
}
|
|
143
99
|
function resolveLinkPrefetchMode(prefetchProp, isDangerous) {
|
|
144
100
|
if (isDangerous || prefetchProp === false) return "disabled";
|
|
145
101
|
if (prefetchProp === true) return "full";
|
|
@@ -170,11 +126,12 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
|
|
|
170
126
|
});
|
|
171
127
|
if (prefetchHref == null) return;
|
|
172
128
|
const fullHref = toCanonicalBrowserNavigationHref(prefetchHref, window.location.href, __basePath, __trailingSlash);
|
|
173
|
-
const
|
|
129
|
+
const routePrefetchHref = pagesRouteHref === void 0 ? prefetchHref : getLinkPrefetchHref({
|
|
174
130
|
href: pagesRouteHref,
|
|
175
131
|
basePath: __basePath,
|
|
176
132
|
currentOrigin: window.location.origin
|
|
177
|
-
}) ?? prefetchHref
|
|
133
|
+
}) ?? prefetchHref;
|
|
134
|
+
const fullRouteHref = toCanonicalBrowserNavigationHref(routePrefetchHref, window.location.href, __basePath, __trailingSlash);
|
|
178
135
|
const target = new URL(fullHref, window.location.href);
|
|
179
136
|
if (target.origin === window.location.origin && target.pathname === window.location.pathname && target.search === window.location.search) return;
|
|
180
137
|
if (mode === "auto" && priority === "low" && target.origin === window.location.origin && target.pathname === window.location.pathname && target.search !== window.location.search && target.hash !== "") return;
|
|
@@ -223,14 +180,9 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
|
|
|
223
180
|
headers.set(NEXT_ROUTER_PREFETCH_HEADER, "1");
|
|
224
181
|
headers.set(NEXT_ROUTER_SEGMENT_PREFETCH_HEADER, "1");
|
|
225
182
|
}
|
|
226
|
-
const { additionalRscUrls, rscUrl
|
|
227
|
-
canUseCanonicalLoadingShell: autoPrefetch.canUseCanonicalLoadingShell === true,
|
|
183
|
+
const { additionalRscUrls, rscUrl } = await resolveAppPrefetchRscRequest({
|
|
228
184
|
fullHref,
|
|
229
185
|
headers,
|
|
230
|
-
interceptionContext,
|
|
231
|
-
mountedSlotsHeader,
|
|
232
|
-
prefetchInlining: __prefetchInlining,
|
|
233
|
-
requiresRouteTreePrefetch,
|
|
234
186
|
rewrittenPrefetchHref
|
|
235
187
|
});
|
|
236
188
|
if (navigationEpoch !== linkPrefetchNavigationEpoch) return;
|
|
@@ -302,9 +254,9 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
|
|
|
302
254
|
return;
|
|
303
255
|
}
|
|
304
256
|
prefetched.add(cacheKey);
|
|
305
|
-
const gateViaRouteTree =
|
|
257
|
+
const gateViaRouteTree = (__prefetchInlining || requiresRouteTreePrefetch) && mode === "auto" && autoPrefetch.prefetchShellFirst;
|
|
306
258
|
const gateViaExplicitSearchShell = mode === "full" && hasSearchParams && autoPrefetch.prefetchShellFirst && mountedSlotsHeader === null;
|
|
307
|
-
const gateViaLoadingShell =
|
|
259
|
+
const gateViaLoadingShell = (mode === "full-after-shell" || gateViaExplicitSearchShell) && autoPrefetch.prefetchShellFirst;
|
|
308
260
|
const fetchPromise = autoPrefetch.cacheForNavigation && (gateViaRouteTree || gateViaLoadingShell) ? (async () => {
|
|
309
261
|
if (gateViaLoadingShell) {
|
|
310
262
|
await fetchLoadingShellForReuse();
|
|
@@ -325,7 +277,7 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
|
|
|
325
277
|
mountedSlotsHeader
|
|
326
278
|
});
|
|
327
279
|
})() : fetchFullRscPayload();
|
|
328
|
-
if (!
|
|
280
|
+
if (!__prefetchInlining && mode === "full" && autoPrefetch.cacheForNavigation && autoPrefetch.prefetchShellFirst && mountedSlotsHeader === null && !gateViaExplicitSearchShell) fetchLoadingShellForReuse();
|
|
329
281
|
prefetchRscResponse(rscUrl, fetchPromise, interceptionContext, mountedSlotsHeader, void 0, {
|
|
330
282
|
cacheForNavigation: autoPrefetch.cacheForNavigation,
|
|
331
283
|
fallbackTtlMs: autoPrefetch.fallbackTtl === "dynamic" ? DYNAMIC_NAVIGATION_CACHE_TTL : PREFETCH_CACHE_TTL,
|
|
@@ -338,7 +290,7 @@ function prefetchUrl(href, mode, priority = "low", pagesRouteHref, locale) {
|
|
|
338
290
|
} else if (HAS_PAGES_ROUTER && window.__NEXT_DATA__) {
|
|
339
291
|
const dataTarget = resolvePagesDataNavigationTarget(fullRouteHref, __basePath, { locale });
|
|
340
292
|
if (dataTarget) {
|
|
341
|
-
const middlewareDataHref = fullRouteHref === fullHref ? dataTarget.middlewareDataHref : getPagesMiddlewareDataHref(fullHref, __basePath, { locale }) ?? void 0;
|
|
293
|
+
const middlewareDataHref = fullRouteHref === fullHref ? dataTarget.middlewareDataHref : getPagesMiddlewareDataHref(fullHref, __basePath, { locale }, fullRouteHref) ?? void 0;
|
|
342
294
|
prefetchPagesData({
|
|
343
295
|
...dataTarget,
|
|
344
296
|
middlewareDataHref
|
|
@@ -500,56 +452,41 @@ function applyLocaleToHref(href, locale) {
|
|
|
500
452
|
}
|
|
501
453
|
return addLocalePrefix(href, resolvedLocale, defaultLocale);
|
|
502
454
|
}
|
|
503
|
-
/**
|
|
504
|
-
* For the `<Link href="/blog/[slug]" as="/blog/test-post">` case, project the
|
|
505
|
-
* bracket-pattern href + the resolved `as` back into a concrete route URL the
|
|
506
|
-
* Pages Router can fetch (`/blog/test-post`). Returns null when:
|
|
507
|
-
* - `href` has no bracket params (already concrete; the existing forwarding
|
|
508
|
-
* path works as-is)
|
|
509
|
-
* - interpolation fails because a required param could not be resolved
|
|
510
|
-
* (caller falls back to `as`, matching pre-PR behavior)
|
|
511
|
-
*
|
|
512
|
-
* The query for interpolation is the href's own query — `as` is the matcher
|
|
513
|
-
* input rather than the source of param values. For string hrefs the search
|
|
514
|
-
* portion is parsed into the query record; for object hrefs we take
|
|
515
|
-
* `href.query` directly.
|
|
516
|
-
*/
|
|
455
|
+
/** Resolve a dynamic route pattern to the concrete URL used for prefetching. */
|
|
517
456
|
function resolveConcreteRouteHref(href, as) {
|
|
518
457
|
if (typeof as !== "string") return null;
|
|
519
|
-
return interpolateDynamicRouteHref(
|
|
458
|
+
return interpolateDynamicRouteHref(href, as)?.href || null;
|
|
520
459
|
}
|
|
521
460
|
const Link = forwardRef(function Link({ href, as, replace = false, prefetch: prefetchProp, scroll = true, shallow = false, children: childrenProp, onClick, onMouseEnter, onTouchStart, onNavigate, unstable_dynamicOnHover = false, legacyBehavior = false, passHref = false, transitionTypes: _transitionTypes, ...rest }, forwardedRef) {
|
|
522
461
|
const pagesRouter = useContext(RouterContext);
|
|
523
|
-
const
|
|
524
|
-
const hrefStr =
|
|
462
|
+
const routePathnameForWarning = getCurrentRoutePathnameForWarning();
|
|
463
|
+
const hrefStr = resolvePagesLinkValue(href, pagesRouter, routePathnameForWarning);
|
|
464
|
+
const asHref = as === void 0 ? void 0 : resolvePagesLinkValue(as, pagesRouter, routePathnameForWarning);
|
|
525
465
|
const { locale, ...restWithoutLocale } = rest;
|
|
526
466
|
let children = childrenProp;
|
|
527
467
|
if (legacyBehavior && (typeof childrenProp === "string" || typeof childrenProp === "number")) children = React.createElement("a", null, childrenProp);
|
|
528
468
|
const hrefForImplicitInterpolation = isAbsoluteOrProtocolRelativeUrl(hrefStr) ? hrefStr.startsWith("//") ? null : toSameOriginAppPath(hrefStr, __basePath) : hrefStr;
|
|
529
469
|
const implicitDynamicRouteHref = HAS_PAGES_ROUTER && pagesRouter !== null && asHref === void 0 && hrefForImplicitInterpolation !== null ? resolveDynamicRouteHref(hrefForImplicitInterpolation) : null;
|
|
530
|
-
const
|
|
531
|
-
...implicitDynamicRouteHref,
|
|
532
|
-
href: hrefStr
|
|
533
|
-
} : null;
|
|
534
|
-
const pagesAsHref = asHref ?? dynamicRouteHref?.as;
|
|
470
|
+
const pagesAsHref = asHref ?? implicitDynamicRouteHref?.as;
|
|
535
471
|
const unresolvedHref = pagesAsHref ?? hrefStr;
|
|
536
|
-
const
|
|
537
|
-
const concreteRouteHref = HAS_PAGES_ROUTER ? resolveConcreteRouteHref(
|
|
538
|
-
const routeHrefRaw =
|
|
472
|
+
const resolvedHref = unresolvedHref.startsWith("#") && !getNavigationRuntime()?.functions.navigate ? resolvePagesQueryOnlyHref(unresolvedHref) : unresolvedHref;
|
|
473
|
+
const concreteRouteHref = HAS_PAGES_ROUTER ? resolveConcreteRouteHref(hrefForImplicitInterpolation ?? hrefStr, pagesAsHref) : null;
|
|
474
|
+
const routeHrefRaw = hrefStr;
|
|
539
475
|
const prefetchRouteHrefRaw = concreteRouteHref ?? routeHrefRaw;
|
|
540
|
-
const hasPagesHrefAsPair = HAS_PAGES_ROUTER &&
|
|
541
|
-
const
|
|
542
|
-
const
|
|
543
|
-
const
|
|
544
|
-
const
|
|
476
|
+
const hasPagesHrefAsPair = HAS_PAGES_ROUTER && pagesAsHref !== void 0 && pagesAsHref !== routeHrefRaw;
|
|
477
|
+
const isDangerous = isDangerousScheme(resolvedHref);
|
|
478
|
+
const isRouteDangerous = isDangerousScheme(prefetchRouteHrefRaw);
|
|
479
|
+
const isPrefetchDangerous = isDangerous || pagesRouter !== null && isRouteDangerous;
|
|
480
|
+
const localizedHref = applyLocaleToHref(isDangerous ? "/" : resolvedHref, locale);
|
|
481
|
+
const normalizedHref = normalizePathTrailingSlash(localizedHref, __trailingSlash);
|
|
482
|
+
const normalizedRouteHref = hasPagesHrefAsPair ? normalizePathTrailingSlash(applyLocaleToHref(isRouteDangerous ? "/" : prefetchRouteHrefRaw, locale), __trailingSlash) : normalizedHref;
|
|
545
483
|
const fullHref = normalizePathTrailingSlash(withBasePath(normalizedHref, __basePath), __trailingSlash);
|
|
546
484
|
const [pending, setPending] = useState(false);
|
|
547
485
|
const mountedRef = useRef(true);
|
|
548
486
|
const pendingPagesIntentPrefetchRef = useRef(null);
|
|
549
|
-
const setPendingRef = useRef(
|
|
550
|
-
if (setPendingRef.current === null) setPendingRef.current = (next) => {
|
|
487
|
+
const setPendingRef = useRef((next) => {
|
|
551
488
|
if (mountedRef.current) setPending(next);
|
|
552
|
-
};
|
|
489
|
+
});
|
|
553
490
|
useEffect(() => {
|
|
554
491
|
mountedRef.current = true;
|
|
555
492
|
const setter = setPendingRef.current;
|
|
@@ -564,11 +501,11 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
|
|
|
564
501
|
const prefetchRouterMode = getLinkPrefetchRouterMode();
|
|
565
502
|
const isShallowPagesLink = prefetchRouterMode === "pages" && shallow;
|
|
566
503
|
const effectivePrefetchProp = isShallowPagesLink ? false : prefetchProp;
|
|
567
|
-
const prefetchMode = resolveLinkPrefetchMode(effectivePrefetchProp,
|
|
504
|
+
const prefetchMode = resolveLinkPrefetchMode(effectivePrefetchProp, isPrefetchDangerous);
|
|
568
505
|
const shouldViewportPrefetch = canLinkPrefetch({
|
|
569
506
|
nodeEnv: process.env.NODE_ENV,
|
|
570
507
|
prefetch: effectivePrefetchProp,
|
|
571
|
-
isDangerous
|
|
508
|
+
isDangerous: isPrefetchDangerous
|
|
572
509
|
});
|
|
573
510
|
const setRefs = useCallback((node) => {
|
|
574
511
|
internalRef.current = node;
|
|
@@ -622,7 +559,7 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
|
|
|
622
559
|
if (isShallowPagesLink || !canLinkIntentPrefetch({
|
|
623
560
|
nodeEnv: process.env.NODE_ENV,
|
|
624
561
|
prefetch: effectivePrefetchProp,
|
|
625
|
-
isDangerous,
|
|
562
|
+
isDangerous: isPrefetchDangerous,
|
|
626
563
|
routerMode: prefetchRouterMode
|
|
627
564
|
})) return;
|
|
628
565
|
const intentMode = unstable_dynamicOnHover ? "full-after-shell" : prefetchMode;
|
|
@@ -634,7 +571,7 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
|
|
|
634
571
|
prefetchUrl(normalizedHref, intentMode, "high", normalizedRouteHref === normalizedHref ? void 0 : normalizedRouteHref, locale);
|
|
635
572
|
}, [
|
|
636
573
|
effectivePrefetchProp,
|
|
637
|
-
|
|
574
|
+
isPrefetchDangerous,
|
|
638
575
|
isShallowPagesLink,
|
|
639
576
|
prefetchMode,
|
|
640
577
|
prefetchRouterMode,
|
|
@@ -724,8 +661,9 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
|
|
|
724
661
|
return;
|
|
725
662
|
} else if (HAS_PAGES_ROUTER) {
|
|
726
663
|
const Router = window.next?.appDir === true ? void 0 : window.next?.router;
|
|
664
|
+
const pagesRouter = Router && "reload" in Router ? Router : void 0;
|
|
727
665
|
await navigatePagesRouterLinkWithFallback({
|
|
728
|
-
router:
|
|
666
|
+
router: pagesRouter,
|
|
729
667
|
loadRouter: async () => (await import("next/router")).default,
|
|
730
668
|
navigation: {
|
|
731
669
|
href: pagesHrefForLink,
|
|
@@ -758,15 +696,16 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
|
|
|
758
696
|
if (typeof childRef === "function") childRef(node);
|
|
759
697
|
else if (childRef) childRef.current = node;
|
|
760
698
|
};
|
|
699
|
+
const dangerousChild = React.cloneElement(child, {
|
|
700
|
+
ref: setDangerousRefs,
|
|
701
|
+
onClick: (event) => {
|
|
702
|
+
if (childOnClick) childOnClick(event);
|
|
703
|
+
reportBlockedDangerousNavigation();
|
|
704
|
+
}
|
|
705
|
+
});
|
|
761
706
|
return /* @__PURE__ */ jsx(LinkStatusContext.Provider, {
|
|
762
707
|
value: linkStatusValue,
|
|
763
|
-
children:
|
|
764
|
-
ref: setDangerousRefs,
|
|
765
|
-
onClick: (event) => {
|
|
766
|
-
if (childOnClick) childOnClick(event);
|
|
767
|
-
reportBlockedDangerousNavigation();
|
|
768
|
-
}
|
|
769
|
-
})
|
|
708
|
+
children: dangerousChild
|
|
770
709
|
});
|
|
771
710
|
}
|
|
772
711
|
return /* @__PURE__ */ jsx(LinkStatusContext.Provider, {
|
|
@@ -816,9 +755,10 @@ const Link = forwardRef(function Link({ href, as, replace = false, prefetch: pre
|
|
|
816
755
|
}
|
|
817
756
|
};
|
|
818
757
|
if (shouldForwardHref) clonedProps.href = fullHref;
|
|
758
|
+
const clonedChild = React.cloneElement(child, clonedProps);
|
|
819
759
|
return /* @__PURE__ */ jsx(LinkStatusContext.Provider, {
|
|
820
760
|
value: linkStatusValue,
|
|
821
|
-
children:
|
|
761
|
+
children: clonedChild
|
|
822
762
|
});
|
|
823
763
|
}
|
|
824
764
|
return /* @__PURE__ */ jsx(LinkStatusContext.Provider, {
|
package/dist/shims/metadata.d.ts
CHANGED
|
@@ -2,26 +2,26 @@ import { ThenableParamsObserver } from "./thenable-params.js";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { ResolvedViewport as ResolvedViewport$1, Viewport as Viewport$1 } from "@vinext/types/next/upstream/dist/lib/metadata/types/metadata-interface";
|
|
4
4
|
//#region src/shims/metadata.d.ts
|
|
5
|
-
type Viewport = Viewport$1;
|
|
6
|
-
type ResolvedViewport = ResolvedViewport$1;
|
|
5
|
+
export type Viewport = Viewport$1;
|
|
6
|
+
export type ResolvedViewport = ResolvedViewport$1;
|
|
7
7
|
/**
|
|
8
8
|
* Resolve viewport config from a module. Handles both static `viewport` export
|
|
9
9
|
* and async `generateViewport()` function.
|
|
10
10
|
*/
|
|
11
|
-
declare function resolveModuleViewport(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<ResolvedViewport>, searchParamsObserver?: ThenableParamsObserver): Promise<Viewport | null>;
|
|
11
|
+
export declare function resolveModuleViewport(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<ResolvedViewport>, searchParamsObserver?: ThenableParamsObserver): Promise<Viewport | null>;
|
|
12
12
|
/**
|
|
13
13
|
* Merge viewport configs from multiple sources (layouts + page).
|
|
14
14
|
* Later entries override earlier ones.
|
|
15
15
|
*/
|
|
16
|
-
declare const DEFAULT_VIEWPORT: ResolvedViewport;
|
|
17
|
-
declare function mergeViewport(viewportList: readonly Viewport[]): ResolvedViewport;
|
|
16
|
+
export declare const DEFAULT_VIEWPORT: ResolvedViewport;
|
|
17
|
+
export declare function mergeViewport(viewportList: readonly Viewport[]): ResolvedViewport;
|
|
18
18
|
/**
|
|
19
19
|
* React component that renders viewport meta tags into <head>.
|
|
20
20
|
*/
|
|
21
|
-
declare function ViewportHead({ viewport }: {
|
|
21
|
+
export declare function ViewportHead({ viewport }: {
|
|
22
22
|
viewport: Viewport;
|
|
23
23
|
}): React.JSX.Element;
|
|
24
|
-
type Metadata = {
|
|
24
|
+
export type Metadata = {
|
|
25
25
|
title?: string | {
|
|
26
26
|
default?: string;
|
|
27
27
|
template?: string;
|
|
@@ -193,7 +193,7 @@ type IconsMap = {
|
|
|
193
193
|
other?: IconDescriptor | IconDescriptor[];
|
|
194
194
|
};
|
|
195
195
|
type IconsMetadata = IconInput | IconInput[] | IconsMap;
|
|
196
|
-
type MetadataMergeEntry = {
|
|
196
|
+
export type MetadataMergeEntry = {
|
|
197
197
|
contributesTitle?: boolean;
|
|
198
198
|
isPage?: boolean;
|
|
199
199
|
metadata: Metadata;
|
|
@@ -209,7 +209,7 @@ type MetadataMergeEntry = {
|
|
|
209
209
|
*
|
|
210
210
|
* Shallow merge: later entries override earlier ones (per Next.js docs).
|
|
211
211
|
*/
|
|
212
|
-
declare function mergeMetadata(metadataList: Metadata[]): Metadata;
|
|
212
|
+
export declare function mergeMetadata(metadataList: Metadata[]): Metadata;
|
|
213
213
|
/**
|
|
214
214
|
* Post-process merged metadata to cross-fill openGraph and Twitter fields.
|
|
215
215
|
*
|
|
@@ -222,7 +222,7 @@ declare function mergeMetadata(metadataList: Metadata[]): Metadata;
|
|
|
222
222
|
* Ported from Next.js:
|
|
223
223
|
* https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/metadata/resolve-metadata.ts
|
|
224
224
|
*/
|
|
225
|
-
declare function postProcessMetadata(merged: Metadata): Metadata;
|
|
225
|
+
export declare function postProcessMetadata(merged: Metadata): Metadata;
|
|
226
226
|
/**
|
|
227
227
|
* Merge metadata from multiple sources (layouts + page).
|
|
228
228
|
*
|
|
@@ -235,7 +235,7 @@ declare function postProcessMetadata(merged: Metadata): Metadata;
|
|
|
235
235
|
* For top-level keys, later entries override earlier ones. `other` custom meta
|
|
236
236
|
* tags are the exception: Next.js merges those across segments.
|
|
237
237
|
*/
|
|
238
|
-
declare function mergeMetadataEntries(entries: readonly MetadataMergeEntry[]): Metadata;
|
|
238
|
+
export declare function mergeMetadataEntries(entries: readonly MetadataMergeEntry[]): Metadata;
|
|
239
239
|
/**
|
|
240
240
|
* Resolve metadata from a module. Handles both static `metadata` export
|
|
241
241
|
* and async `generateMetadata()` function.
|
|
@@ -246,17 +246,16 @@ declare function mergeMetadataEntries(entries: readonly MetadataMergeEntry[]): M
|
|
|
246
246
|
* resolution approach. If not provided, defaults to a promise that resolves
|
|
247
247
|
* to an empty object (so `await parent` never throws).
|
|
248
248
|
*/
|
|
249
|
-
declare function resolveModuleMetadata(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<Metadata>, searchParamsObserver?: ThenableParamsObserver): Promise<Metadata | null>;
|
|
249
|
+
export declare function resolveModuleMetadata(mod: Record<string, unknown>, params?: Record<string, string | string[]>, searchParams?: Record<string, string | string[]>, parent?: Promise<Metadata>, searchParamsObserver?: ThenableParamsObserver): Promise<Metadata | null>;
|
|
250
250
|
type MetadataHeadProps = {
|
|
251
251
|
metadata: Metadata;
|
|
252
252
|
pathname?: string;
|
|
253
253
|
trailingSlash?: boolean;
|
|
254
254
|
streamedIconKey?: string;
|
|
255
255
|
};
|
|
256
|
-
declare function renderMetadataToHtml(metadata: Metadata, pathname?: string, options?: {
|
|
256
|
+
export declare function renderMetadataToHtml(metadata: Metadata, pathname?: string, options?: {
|
|
257
257
|
trailingSlash?: boolean;
|
|
258
258
|
streamedIconKey?: string;
|
|
259
259
|
}): string;
|
|
260
|
-
declare function MetadataHead({ metadata, pathname, trailingSlash, streamedIconKey }: MetadataHeadProps): React.JSX.Element;
|
|
261
|
-
//#endregion
|
|
262
|
-
export { DEFAULT_VIEWPORT, Metadata, MetadataHead, MetadataMergeEntry, ResolvedViewport, Viewport, ViewportHead, mergeMetadata, mergeMetadataEntries, mergeViewport, postProcessMetadata, renderMetadataToHtml, resolveModuleMetadata, resolveModuleViewport };
|
|
260
|
+
export declare function MetadataHead({ metadata, pathname, trailingSlash, streamedIconKey }: MetadataHeadProps): React.JSX.Element;
|
|
261
|
+
//#endregion
|
package/dist/shims/metadata.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isAbsoluteOrProtocolRelativeUrl } from "./url-utils.js";
|
|
2
2
|
import { makeThenableParams } from "./thenable-params.js";
|
|
3
|
+
import { withUseCachePageMarker } from "./internal/app-page-props-cache-key.js";
|
|
3
4
|
import React from "react";
|
|
4
5
|
import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
|
|
5
6
|
//#region src/shims/metadata.tsx
|
|
@@ -18,10 +19,10 @@ const USE_CACHE_ACCEPTS_SECOND_ARGUMENT_SYMBOL = Symbol.for("vinext.useCacheAcce
|
|
|
18
19
|
async function resolveModuleViewport(mod, params = {}, searchParams, parent = Promise.resolve(mergeViewport([])), searchParamsObserver) {
|
|
19
20
|
if (typeof mod.generateViewport === "function") {
|
|
20
21
|
const asyncParams = makeThenableParams(params);
|
|
21
|
-
const props = searchParams === void 0 ? { params: asyncParams } : {
|
|
22
|
+
const props = searchParams === void 0 ? { params: asyncParams } : withUseCachePageMarker(mod.generateViewport, {
|
|
22
23
|
params: asyncParams,
|
|
23
24
|
searchParams: makeThenableParams(searchParams, searchParamsObserver)
|
|
24
|
-
};
|
|
25
|
+
});
|
|
25
26
|
return await mod.generateViewport(props, parent);
|
|
26
27
|
}
|
|
27
28
|
if (mod.viewport && typeof mod.viewport === "object") return mod.viewport;
|
|
@@ -67,10 +68,7 @@ function mergeViewport(viewportList) {
|
|
|
67
68
|
case "viewportFit":
|
|
68
69
|
merged.viewportFit = viewport.viewportFit;
|
|
69
70
|
break;
|
|
70
|
-
case "interactiveWidget":
|
|
71
|
-
merged.interactiveWidget = viewport.interactiveWidget;
|
|
72
|
-
break;
|
|
73
|
-
default:
|
|
71
|
+
case "interactiveWidget": merged.interactiveWidget = viewport.interactiveWidget;
|
|
74
72
|
}
|
|
75
73
|
return merged;
|
|
76
74
|
}
|
|
@@ -197,11 +195,13 @@ function postProcessMetadata(merged) {
|
|
|
197
195
|
}
|
|
198
196
|
if (!hasTwDescription) autoFill.description = result.openGraph.description || result.description || void 0;
|
|
199
197
|
if (!hasTwImages && result.openGraph.images !== void 0) autoFill.images = result.openGraph.images;
|
|
200
|
-
if (Object.keys(autoFill).length > 0)
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
198
|
+
if (Object.keys(autoFill).length > 0) {
|
|
199
|
+
if (existingTwitter) result.twitter = {
|
|
200
|
+
...existingTwitter,
|
|
201
|
+
...autoFill
|
|
202
|
+
};
|
|
203
|
+
else result.twitter = autoFill;
|
|
204
|
+
}
|
|
205
205
|
}
|
|
206
206
|
if (result.twitter) {
|
|
207
207
|
const tw = { ...result.twitter };
|
|
@@ -268,10 +268,10 @@ async function resolveModuleMetadata(mod, params = {}, searchParams, parent = Pr
|
|
|
268
268
|
if (typeof mod.generateMetadata === "function") {
|
|
269
269
|
const generateMetadata = mod.generateMetadata;
|
|
270
270
|
const asyncParams = makeThenableParams(params);
|
|
271
|
-
const props = searchParams === void 0 ? { params: asyncParams } : {
|
|
271
|
+
const props = searchParams === void 0 ? { params: asyncParams } : withUseCachePageMarker(generateMetadata, {
|
|
272
272
|
params: asyncParams,
|
|
273
273
|
searchParams: makeThenableParams(searchParams, searchParamsObserver)
|
|
274
|
-
};
|
|
274
|
+
});
|
|
275
275
|
const isUseCacheFunction = Reflect.get(generateMetadata, USE_CACHE_FUNCTION_SYMBOL) === true;
|
|
276
276
|
const acceptsSecondArgument = Reflect.get(generateMetadata, USE_CACHE_ACCEPTS_SECOND_ARGUMENT_SYMBOL);
|
|
277
277
|
return await (!isUseCacheFunction || (typeof acceptsSecondArgument === "boolean" ? acceptsSecondArgument : generateMetadata.length >= 2) ? generateMetadata(props, parent) : generateMetadata(props));
|
|
@@ -509,33 +509,37 @@ function MetadataHead({ metadata, pathname = "/", trailingSlash, streamedIconKey
|
|
|
509
509
|
name: "category",
|
|
510
510
|
content: metadata.category
|
|
511
511
|
}, key++));
|
|
512
|
-
if (metadata.robots)
|
|
513
|
-
|
|
514
|
-
content: metadata.robots
|
|
515
|
-
}, key++));
|
|
516
|
-
else {
|
|
517
|
-
const { googleBot, ...robotsRest } = metadata.robots;
|
|
518
|
-
const robotParts = [];
|
|
519
|
-
for (const [k, v] of Object.entries(robotsRest)) if (v === true) robotParts.push(k);
|
|
520
|
-
else if (v === false) robotParts.push(`no${k}`);
|
|
521
|
-
else if (typeof v === "string" || typeof v === "number") robotParts.push(`${k}:${v}`);
|
|
522
|
-
if (robotParts.length > 0) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
512
|
+
if (metadata.robots) {
|
|
513
|
+
if (typeof metadata.robots === "string") elements.push(/* @__PURE__ */ jsx("meta", {
|
|
523
514
|
name: "robots",
|
|
524
|
-
content:
|
|
525
|
-
}, key++));
|
|
526
|
-
if (googleBot) if (typeof googleBot === "string") elements.push(/* @__PURE__ */ jsx("meta", {
|
|
527
|
-
name: "googlebot",
|
|
528
|
-
content: googleBot
|
|
515
|
+
content: metadata.robots
|
|
529
516
|
}, key++));
|
|
530
517
|
else {
|
|
531
|
-
const
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
else if (
|
|
535
|
-
if (
|
|
536
|
-
|
|
537
|
-
|
|
518
|
+
const { googleBot, ...robotsRest } = metadata.robots;
|
|
519
|
+
const robotParts = [];
|
|
520
|
+
for (const [k, v] of Object.entries(robotsRest)) if (v === true) robotParts.push(k);
|
|
521
|
+
else if (v === false) robotParts.push(`no${k}`);
|
|
522
|
+
else if (typeof v === "string" || typeof v === "number") robotParts.push(`${k}:${v}`);
|
|
523
|
+
if (robotParts.length > 0) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
524
|
+
name: "robots",
|
|
525
|
+
content: robotParts.join(", ")
|
|
538
526
|
}, key++));
|
|
527
|
+
if (googleBot) {
|
|
528
|
+
if (typeof googleBot === "string") elements.push(/* @__PURE__ */ jsx("meta", {
|
|
529
|
+
name: "googlebot",
|
|
530
|
+
content: googleBot
|
|
531
|
+
}, key++));
|
|
532
|
+
else {
|
|
533
|
+
const gbParts = [];
|
|
534
|
+
for (const [k, v] of Object.entries(googleBot)) if (v === true) gbParts.push(k);
|
|
535
|
+
else if (v === false) gbParts.push(`no${k}`);
|
|
536
|
+
else if (typeof v === "string" || typeof v === "number") gbParts.push(`${k}:${v}`);
|
|
537
|
+
if (gbParts.length > 0) elements.push(/* @__PURE__ */ jsx("meta", {
|
|
538
|
+
name: "googlebot",
|
|
539
|
+
content: gbParts.join(", ")
|
|
540
|
+
}, key++));
|
|
541
|
+
}
|
|
542
|
+
}
|
|
539
543
|
}
|
|
540
544
|
}
|
|
541
545
|
if (metadata.openGraph) {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/shims/navigation-context-accessors.d.ts
|
|
2
|
+
export type NavigationContext = {
|
|
3
|
+
pathname: string;
|
|
4
|
+
searchParams: URLSearchParams;
|
|
5
|
+
params: Record<string, string | string[]>;
|
|
6
|
+
};
|
|
7
|
+
/** Lightweight server context setter for request-only runtimes such as middleware. */
|
|
8
|
+
export declare function setNavigationContext(context: NavigationContext | null): void;
|
|
9
|
+
//#endregion
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/shims/navigation-context-accessors.ts
|
|
2
|
+
const GLOBAL_ACCESSORS_KEY = Symbol.for("vinext.navigation.globalAccessors");
|
|
3
|
+
const NAVIGATION_FALLBACK_STATE_KEY = Symbol.for("vinext.navigation.fallback");
|
|
4
|
+
/** Lightweight server context setter for request-only runtimes such as middleware. */
|
|
5
|
+
function setNavigationContext(context) {
|
|
6
|
+
const globalState = globalThis;
|
|
7
|
+
const accessors = globalState[GLOBAL_ACCESSORS_KEY];
|
|
8
|
+
if (accessors) {
|
|
9
|
+
accessors.setServerContext(context);
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const fallback = globalState[NAVIGATION_FALLBACK_STATE_KEY] ??= {
|
|
13
|
+
serverContext: null,
|
|
14
|
+
serverInsertedHTMLCallbacks: []
|
|
15
|
+
};
|
|
16
|
+
fallback.serverContext = context;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { setNavigationContext };
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
import { SearchParamsGate } from "./search-params-gate.js";
|
|
1
2
|
import * as React$1 from "react";
|
|
2
3
|
//#region src/shims/navigation-context-state.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* Map of parallel route key to child segments below the current layout.
|
|
5
6
|
* The "children" key is always present.
|
|
6
7
|
*/
|
|
7
|
-
type SegmentMap = Readonly<Record<string, string[]>> & {
|
|
8
|
+
export type SegmentMap = Readonly<Record<string, string[]>> & {
|
|
8
9
|
readonly children: string[];
|
|
9
10
|
};
|
|
10
|
-
type NavigationContext = {
|
|
11
|
+
export type NavigationContext = {
|
|
11
12
|
pathname: string;
|
|
12
13
|
searchParams: URLSearchParams;
|
|
13
14
|
params: Record<string, string | string[]>;
|
|
@@ -15,29 +16,37 @@ type NavigationContext = {
|
|
|
15
16
|
isStaticGeneration?: boolean;
|
|
16
17
|
/** `dynamic = "force-static"` suppresses the static useSearchParams bailout. */
|
|
17
18
|
isForceStatic?: boolean;
|
|
19
|
+
/** SSR-only: set for a cache-candidate render. See `search-params-gate.ts`. */
|
|
20
|
+
searchParamsGate?: SearchParamsGate;
|
|
21
|
+
/**
|
|
22
|
+
* SSR-only: the `searchParams` a client page receives, one promise per page
|
|
23
|
+
* for the render, so `use()` keeps seeing the same promise and React's
|
|
24
|
+
* bookkeeping from one page's `use()` never reaches another. See
|
|
25
|
+
* `client-page-root.tsx`.
|
|
26
|
+
*/
|
|
27
|
+
getClientPageSearchParams?: (pageProps: object) => Promise<Record<string, string | string[]>>;
|
|
18
28
|
};
|
|
19
|
-
declare const ServerInsertedHTMLContext: React$1.Context<((callback: () => React$1.ReactNode) => void) | null> | null;
|
|
20
|
-
declare function getLayoutSegmentContext(): React$1.Context<SegmentMap> | null;
|
|
21
|
-
declare function getBfcacheIdMapContext(): React$1.Context<Readonly<Record<string, string>> | null> | null;
|
|
22
|
-
declare function getBfcacheSegmentIdContext(): React$1.Context<string | null> | null;
|
|
23
|
-
type NavigationStateAccessors = {
|
|
29
|
+
export declare const ServerInsertedHTMLContext: React$1.Context<((callback: () => React$1.ReactNode) => void) | null> | null;
|
|
30
|
+
export declare function getLayoutSegmentContext(): React$1.Context<SegmentMap> | null;
|
|
31
|
+
export declare function getBfcacheIdMapContext(): React$1.Context<Readonly<Record<string, string>> | null> | null;
|
|
32
|
+
export declare function getBfcacheSegmentIdContext(): React$1.Context<string | null> | null;
|
|
33
|
+
export type NavigationStateAccessors = {
|
|
24
34
|
getServerContext: () => NavigationContext | null;
|
|
25
35
|
setServerContext: (context: NavigationContext | null) => void;
|
|
26
36
|
getInsertedHTMLCallbacks: () => Array<() => unknown>;
|
|
27
37
|
clearInsertedHTMLCallbacks: () => void;
|
|
28
38
|
};
|
|
29
|
-
declare const GLOBAL_ACCESSORS_KEY: unique symbol;
|
|
30
|
-
declare function clearClientHydrationContext(): void;
|
|
39
|
+
export declare const GLOBAL_ACCESSORS_KEY: unique symbol;
|
|
40
|
+
export declare function clearClientHydrationContext(): void;
|
|
31
41
|
/**
|
|
32
42
|
* Register request-scoped accessors supplied by navigation-state.ts.
|
|
33
43
|
* The global accessor key also bridges separate Vite module instances.
|
|
34
44
|
*/
|
|
35
|
-
declare function _registerStateAccessors(accessors: NavigationStateAccessors): void;
|
|
36
|
-
declare function getNavigationContext(): NavigationContext | null;
|
|
37
|
-
declare function setNavigationContext(context: NavigationContext | null): void;
|
|
38
|
-
declare function registerServerInsertedHTMLCallback(callback: () => unknown): void;
|
|
39
|
-
declare function flushServerInsertedHTML(): unknown[];
|
|
40
|
-
declare function renderServerInsertedHTML(): unknown[];
|
|
41
|
-
declare function clearServerInsertedHTML(): void;
|
|
42
|
-
//#endregion
|
|
43
|
-
export { GLOBAL_ACCESSORS_KEY, NavigationContext, NavigationStateAccessors, SegmentMap, ServerInsertedHTMLContext, _registerStateAccessors, clearClientHydrationContext, clearServerInsertedHTML, flushServerInsertedHTML, getBfcacheIdMapContext, getBfcacheSegmentIdContext, getLayoutSegmentContext, getNavigationContext, registerServerInsertedHTMLCallback, renderServerInsertedHTML, setNavigationContext };
|
|
45
|
+
export declare function _registerStateAccessors(accessors: NavigationStateAccessors): void;
|
|
46
|
+
export declare function getNavigationContext(): NavigationContext | null;
|
|
47
|
+
export declare function setNavigationContext(context: NavigationContext | null): void;
|
|
48
|
+
export declare function registerServerInsertedHTMLCallback(callback: () => unknown): void;
|
|
49
|
+
export declare function flushServerInsertedHTML(): unknown[];
|
|
50
|
+
export declare function renderServerInsertedHTML(): unknown[];
|
|
51
|
+
export declare function clearServerInsertedHTML(): void;
|
|
52
|
+
//#endregion
|