@qzsy/vinext 0.1.7
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/LICENSE +21 -0
- package/README.md +773 -0
- package/dist/build/assets-ignore.d.ts +32 -0
- package/dist/build/assets-ignore.js +48 -0
- package/dist/build/clean-output.d.ts +13 -0
- package/dist/build/clean-output.js +34 -0
- package/dist/build/client-build-config.d.ts +171 -0
- package/dist/build/client-build-config.js +270 -0
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +213 -0
- package/dist/build/google-fonts/build-url.d.ts +9 -0
- package/dist/build/google-fonts/build-url.js +28 -0
- package/dist/build/google-fonts/fallback-metrics-data.js +14029 -0
- package/dist/build/google-fonts/fallback-metrics.d.ts +12 -0
- package/dist/build/google-fonts/fallback-metrics.js +44 -0
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +16 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +28 -0
- package/dist/build/google-fonts/font-data.js +24983 -0
- package/dist/build/google-fonts/font-metadata.d.ts +16 -0
- package/dist/build/google-fonts/font-metadata.js +5 -0
- package/dist/build/google-fonts/get-axes.d.ts +6 -0
- package/dist/build/google-fonts/get-axes.js +37 -0
- package/dist/build/google-fonts/sort-variants.d.ts +4 -0
- package/dist/build/google-fonts/sort-variants.js +12 -0
- package/dist/build/google-fonts/validate.d.ts +27 -0
- package/dist/build/google-fonts/validate.js +54 -0
- package/dist/build/inline-css.d.ts +6 -0
- package/dist/build/inline-css.js +48 -0
- package/dist/build/layout-classification-types.d.ts +61 -0
- package/dist/build/layout-classification-types.js +1 -0
- package/dist/build/layout-classification.d.ts +59 -0
- package/dist/build/layout-classification.js +98 -0
- package/dist/build/next-client-runtime-manifests.d.ts +14 -0
- package/dist/build/next-client-runtime-manifests.js +39 -0
- package/dist/build/nitro-route-rules.d.ts +49 -0
- package/dist/build/nitro-route-rules.js +79 -0
- package/dist/build/precompress.d.ts +27 -0
- package/dist/build/precompress.js +110 -0
- package/dist/build/prerender.d.ts +209 -0
- package/dist/build/prerender.js +932 -0
- package/dist/build/report.d.ts +132 -0
- package/dist/build/report.js +504 -0
- package/dist/build/route-classification-injector.d.ts +34 -0
- package/dist/build/route-classification-injector.js +59 -0
- package/dist/build/route-classification-manifest.d.ts +52 -0
- package/dist/build/route-classification-manifest.js +143 -0
- package/dist/build/run-prerender.d.ts +61 -0
- package/dist/build/run-prerender.js +224 -0
- package/dist/build/server-manifest.d.ts +18 -0
- package/dist/build/server-manifest.js +22 -0
- package/dist/build/ssr-manifest.d.ts +18 -0
- package/dist/build/ssr-manifest.js +69 -0
- package/dist/build/standalone.d.ts +31 -0
- package/dist/build/standalone.js +203 -0
- package/dist/build/static-export.d.ts +55 -0
- package/dist/build/static-export.js +60 -0
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/cache.d.ts +2 -0
- package/dist/cache.js +2 -0
- package/dist/check.d.ts +87 -0
- package/dist/check.js +1037 -0
- package/dist/cli-args.d.ts +33 -0
- package/dist/cli-args.js +124 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +744 -0
- package/dist/client/app-nav-failure-handler.d.ts +8 -0
- package/dist/client/app-nav-failure-handler.js +44 -0
- package/dist/client/empty-module.d.ts +1 -0
- package/dist/client/empty-module.js +1 -0
- package/dist/client/instrumentation-client-inject.d.ts +33 -0
- package/dist/client/instrumentation-client-inject.js +55 -0
- package/dist/client/instrumentation-client-state.d.ts +9 -0
- package/dist/client/instrumentation-client-state.js +17 -0
- package/dist/client/instrumentation-client.d.ts +7 -0
- package/dist/client/instrumentation-client.js +6 -0
- package/dist/client/navigation-runtime.d.ts +70 -0
- package/dist/client/navigation-runtime.js +169 -0
- package/dist/client/pages-router-link-navigation.d.ts +61 -0
- package/dist/client/pages-router-link-navigation.js +42 -0
- package/dist/client/validate-module-path.d.ts +17 -0
- package/dist/client/validate-module-path.js +24 -0
- package/dist/client/vinext-next-data.d.ts +44 -0
- package/dist/client/vinext-next-data.js +50 -0
- package/dist/client/window-next.d.ts +168 -0
- package/dist/client/window-next.js +57 -0
- package/dist/cloudflare/index.d.ts +3 -0
- package/dist/cloudflare/index.js +3 -0
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +102 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.d.ts +126 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.js +435 -0
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +82 -0
- package/dist/cloudflare/tpr.js +558 -0
- package/dist/config/config-matchers.d.ts +257 -0
- package/dist/config/config-matchers.js +1046 -0
- package/dist/config/dotenv.d.ts +56 -0
- package/dist/config/dotenv.js +88 -0
- package/dist/config/next-config.d.ts +540 -0
- package/dist/config/next-config.js +1050 -0
- package/dist/config/tsconfig-paths.d.ts +21 -0
- package/dist/config/tsconfig-paths.js +157 -0
- package/dist/deploy.d.ts +190 -0
- package/dist/deploy.js +1033 -0
- package/dist/entries/app-browser-entry.d.ts +29 -0
- package/dist/entries/app-browser-entry.js +83 -0
- package/dist/entries/app-rsc-entry.d.ts +81 -0
- package/dist/entries/app-rsc-entry.js +943 -0
- package/dist/entries/app-rsc-manifest.d.ts +53 -0
- package/dist/entries/app-rsc-manifest.js +294 -0
- package/dist/entries/app-ssr-entry.d.ts +15 -0
- package/dist/entries/app-ssr-entry.js +24 -0
- package/dist/entries/pages-client-entry.d.ts +11 -0
- package/dist/entries/pages-client-entry.js +204 -0
- package/dist/entries/pages-entry-helpers.d.ts +2 -0
- package/dist/entries/pages-entry-helpers.js +2 -0
- package/dist/entries/pages-server-entry.d.ts +11 -0
- package/dist/entries/pages-server-entry.js +398 -0
- package/dist/entries/runtime-entry-module.d.ts +25 -0
- package/dist/entries/runtime-entry-module.js +46 -0
- package/dist/index.d.ts +115 -0
- package/dist/index.js +2661 -0
- package/dist/init.d.ts +69 -0
- package/dist/init.js +253 -0
- package/dist/plugins/ast-utils.d.ts +20 -0
- package/dist/plugins/ast-utils.js +78 -0
- package/dist/plugins/async-hooks-stub.d.ts +18 -0
- package/dist/plugins/async-hooks-stub.js +40 -0
- package/dist/plugins/client-reference-dedup.d.ts +35 -0
- package/dist/plugins/client-reference-dedup.js +189 -0
- package/dist/plugins/css-data-url.d.ts +6 -0
- package/dist/plugins/css-data-url.js +83 -0
- package/dist/plugins/dynamic-preload-metadata.d.ts +13 -0
- package/dist/plugins/dynamic-preload-metadata.js +413 -0
- package/dist/plugins/extensionless-dynamic-import.d.ts +6 -0
- package/dist/plugins/extensionless-dynamic-import.js +155 -0
- package/dist/plugins/fonts.d.ts +95 -0
- package/dist/plugins/fonts.js +711 -0
- package/dist/plugins/import-meta-url.d.ts +16 -0
- package/dist/plugins/import-meta-url.js +353 -0
- package/dist/plugins/instrumentation-client.d.ts +6 -0
- package/dist/plugins/instrumentation-client.js +27 -0
- package/dist/plugins/middleware-export-validation.d.ts +5 -0
- package/dist/plugins/middleware-export-validation.js +36 -0
- package/dist/plugins/middleware-server-only.d.ts +53 -0
- package/dist/plugins/middleware-server-only.js +90 -0
- package/dist/plugins/og-asset-ownership.d.ts +27 -0
- package/dist/plugins/og-asset-ownership.js +285 -0
- package/dist/plugins/og-assets.d.ts +50 -0
- package/dist/plugins/og-assets.js +229 -0
- package/dist/plugins/optimize-imports.d.ts +42 -0
- package/dist/plugins/optimize-imports.js +587 -0
- package/dist/plugins/postcss.d.ts +26 -0
- package/dist/plugins/postcss.js +96 -0
- package/dist/plugins/remove-console.d.ts +21 -0
- package/dist/plugins/remove-console.js +177 -0
- package/dist/plugins/require-context.d.ts +6 -0
- package/dist/plugins/require-context.js +185 -0
- package/dist/plugins/rsc-client-reference-loaders.d.ts +6 -0
- package/dist/plugins/rsc-client-reference-loaders.js +46 -0
- package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
- package/dist/plugins/rsc-client-shim-excludes.js +35 -0
- package/dist/plugins/sass.d.ts +62 -0
- package/dist/plugins/sass.js +268 -0
- package/dist/plugins/server-externals-manifest.d.ts +26 -0
- package/dist/plugins/server-externals-manifest.js +81 -0
- package/dist/plugins/strip-server-exports.d.ts +21 -0
- package/dist/plugins/strip-server-exports.js +519 -0
- package/dist/plugins/typeof-window.d.ts +14 -0
- package/dist/plugins/typeof-window.js +150 -0
- package/dist/plugins/wasm-module-import.d.ts +15 -0
- package/dist/plugins/wasm-module-import.js +50 -0
- package/dist/routing/app-route-graph.d.ts +336 -0
- package/dist/routing/app-route-graph.js +1518 -0
- package/dist/routing/app-router.d.ts +30 -0
- package/dist/routing/app-router.js +59 -0
- package/dist/routing/file-matcher.d.ts +60 -0
- package/dist/routing/file-matcher.js +147 -0
- package/dist/routing/pages-router.d.ts +48 -0
- package/dist/routing/pages-router.js +163 -0
- package/dist/routing/route-matching.d.ts +27 -0
- package/dist/routing/route-matching.js +42 -0
- package/dist/routing/route-pattern.d.ts +64 -0
- package/dist/routing/route-pattern.js +165 -0
- package/dist/routing/route-trie.d.ts +67 -0
- package/dist/routing/route-trie.js +143 -0
- package/dist/routing/route-validation.d.ts +10 -0
- package/dist/routing/route-validation.js +101 -0
- package/dist/routing/utils.d.ts +117 -0
- package/dist/routing/utils.js +242 -0
- package/dist/server/accept-encoding.d.ts +29 -0
- package/dist/server/accept-encoding.js +95 -0
- package/dist/server/api-handler.d.ts +17 -0
- package/dist/server/api-handler.js +276 -0
- package/dist/server/app-action-request.d.ts +4 -0
- package/dist/server/app-action-request.js +9 -0
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-bfcache-identity.d.ts +36 -0
- package/dist/server/app-bfcache-identity.js +156 -0
- package/dist/server/app-browser-action-result.d.ts +64 -0
- package/dist/server/app-browser-action-result.js +111 -0
- package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
- package/dist/server/app-browser-client-reuse-manifest.js +101 -0
- package/dist/server/app-browser-entry.d.ts +1 -0
- package/dist/server/app-browser-entry.js +1087 -0
- package/dist/server/app-browser-error.d.ts +13 -0
- package/dist/server/app-browser-error.js +52 -0
- package/dist/server/app-browser-history-controller.d.ts +104 -0
- package/dist/server/app-browser-history-controller.js +210 -0
- package/dist/server/app-browser-hydration.d.ts +32 -0
- package/dist/server/app-browser-hydration.js +29 -0
- package/dist/server/app-browser-interception-context.d.ts +24 -0
- package/dist/server/app-browser-interception-context.js +43 -0
- package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
- package/dist/server/app-browser-mpa-navigation.js +42 -0
- package/dist/server/app-browser-navigation-controller.d.ts +109 -0
- package/dist/server/app-browser-navigation-controller.js +465 -0
- package/dist/server/app-browser-popstate.d.ts +26 -0
- package/dist/server/app-browser-popstate.js +44 -0
- package/dist/server/app-browser-rsc-redirect.d.ts +38 -0
- package/dist/server/app-browser-rsc-redirect.js +64 -0
- package/dist/server/app-browser-server-action-client.d.ts +32 -0
- package/dist/server/app-browser-server-action-client.js +128 -0
- package/dist/server/app-browser-server-action-navigation.d.ts +6 -0
- package/dist/server/app-browser-server-action-navigation.js +9 -0
- package/dist/server/app-browser-state.d.ts +140 -0
- package/dist/server/app-browser-state.js +315 -0
- package/dist/server/app-browser-stream.d.ts +28 -0
- package/dist/server/app-browser-stream.js +122 -0
- package/dist/server/app-browser-visible-commit.d.ts +78 -0
- package/dist/server/app-browser-visible-commit.js +241 -0
- package/dist/server/app-client-reference-preloader.d.ts +14 -0
- package/dist/server/app-client-reference-preloader.js +44 -0
- package/dist/server/app-elements-wire.d.ts +192 -0
- package/dist/server/app-elements-wire.js +443 -0
- package/dist/server/app-elements.d.ts +9 -0
- package/dist/server/app-elements.js +18 -0
- package/dist/server/app-fallback-renderer.d.ts +89 -0
- package/dist/server/app-fallback-renderer.js +136 -0
- package/dist/server/app-history-state.d.ts +85 -0
- package/dist/server/app-history-state.js +223 -0
- package/dist/server/app-hook-warning-suppression.d.ts +6 -0
- package/dist/server/app-hook-warning-suppression.js +10 -0
- package/dist/server/app-inline-css-client.d.ts +6 -0
- package/dist/server/app-inline-css-client.js +35 -0
- package/dist/server/app-interception-context-header.d.ts +32 -0
- package/dist/server/app-interception-context-header.js +42 -0
- package/dist/server/app-layout-param-observation.d.ts +43 -0
- package/dist/server/app-layout-param-observation.js +168 -0
- package/dist/server/app-middleware.d.ts +46 -0
- package/dist/server/app-middleware.js +168 -0
- package/dist/server/app-mounted-slots-header.d.ts +35 -0
- package/dist/server/app-mounted-slots-header.js +58 -0
- package/dist/server/app-optimistic-routing.d.ts +53 -0
- package/dist/server/app-optimistic-routing.js +227 -0
- package/dist/server/app-page-boundary-render.d.ts +85 -0
- package/dist/server/app-page-boundary-render.js +305 -0
- package/dist/server/app-page-boundary.d.ts +102 -0
- package/dist/server/app-page-boundary.js +120 -0
- package/dist/server/app-page-cache-finalizer.d.ts +62 -0
- package/dist/server/app-page-cache-finalizer.js +122 -0
- package/dist/server/app-page-cache-render.d.ts +53 -0
- package/dist/server/app-page-cache-render.js +91 -0
- package/dist/server/app-page-cache.d.ts +83 -0
- package/dist/server/app-page-cache.js +272 -0
- package/dist/server/app-page-dispatch.d.ts +223 -0
- package/dist/server/app-page-dispatch.js +610 -0
- package/dist/server/app-page-element-builder.d.ts +96 -0
- package/dist/server/app-page-element-builder.js +205 -0
- package/dist/server/app-page-execution.d.ts +138 -0
- package/dist/server/app-page-execution.js +328 -0
- package/dist/server/app-page-head.d.ts +65 -0
- package/dist/server/app-page-head.js +228 -0
- package/dist/server/app-page-method.d.ts +15 -0
- package/dist/server/app-page-method.js +25 -0
- package/dist/server/app-page-params.d.ts +8 -0
- package/dist/server/app-page-params.js +39 -0
- package/dist/server/app-page-ppr-runtime.d.ts +7 -0
- package/dist/server/app-page-ppr-runtime.js +70 -0
- package/dist/server/app-page-probe.d.ts +134 -0
- package/dist/server/app-page-probe.js +276 -0
- package/dist/server/app-page-render-identity.d.ts +21 -0
- package/dist/server/app-page-render-identity.js +40 -0
- package/dist/server/app-page-render-observation.d.ts +36 -0
- package/dist/server/app-page-render-observation.js +82 -0
- package/dist/server/app-page-render.d.ts +111 -0
- package/dist/server/app-page-render.js +602 -0
- package/dist/server/app-page-request.d.ts +137 -0
- package/dist/server/app-page-request.js +216 -0
- package/dist/server/app-page-response.d.ts +68 -0
- package/dist/server/app-page-response.js +120 -0
- package/dist/server/app-page-route-wiring.d.ts +151 -0
- package/dist/server/app-page-route-wiring.js +452 -0
- package/dist/server/app-page-search-params-observation.d.ts +10 -0
- package/dist/server/app-page-search-params-observation.js +20 -0
- package/dist/server/app-page-segment-state.d.ts +9 -0
- package/dist/server/app-page-segment-state.js +80 -0
- package/dist/server/app-page-stream.d.ts +151 -0
- package/dist/server/app-page-stream.js +143 -0
- package/dist/server/app-pages-bridge.d.ts +63 -0
- package/dist/server/app-pages-bridge.js +63 -0
- package/dist/server/app-post-middleware-context.d.ts +15 -0
- package/dist/server/app-post-middleware-context.js +26 -0
- package/dist/server/app-ppr-fallback-shell-render.d.ts +18 -0
- package/dist/server/app-ppr-fallback-shell-render.js +26 -0
- package/dist/server/app-ppr-fallback-shell.d.ts +33 -0
- package/dist/server/app-ppr-fallback-shell.js +89 -0
- package/dist/server/app-prerender-endpoints.d.ts +18 -0
- package/dist/server/app-prerender-endpoints.js +94 -0
- package/dist/server/app-prerender-static-params.d.ts +30 -0
- package/dist/server/app-prerender-static-params.js +81 -0
- package/dist/server/app-render-dependency.d.ts +14 -0
- package/dist/server/app-render-dependency.js +41 -0
- package/dist/server/app-request-context.d.ts +20 -0
- package/dist/server/app-request-context.js +29 -0
- package/dist/server/app-route-handler-cache.d.ts +46 -0
- package/dist/server/app-route-handler-cache.js +78 -0
- package/dist/server/app-route-handler-dispatch.d.ts +49 -0
- package/dist/server/app-route-handler-dispatch.js +163 -0
- package/dist/server/app-route-handler-execution.d.ts +86 -0
- package/dist/server/app-route-handler-execution.js +128 -0
- package/dist/server/app-route-handler-policy.d.ts +55 -0
- package/dist/server/app-route-handler-policy.js +58 -0
- package/dist/server/app-route-handler-response.d.ts +28 -0
- package/dist/server/app-route-handler-response.js +145 -0
- package/dist/server/app-route-handler-runtime.d.ts +39 -0
- package/dist/server/app-route-handler-runtime.js +250 -0
- package/dist/server/app-route-module-loader.d.ts +91 -0
- package/dist/server/app-route-module-loader.js +83 -0
- package/dist/server/app-router-entry.d.ts +13 -0
- package/dist/server/app-router-entry.js +49 -0
- package/dist/server/app-rsc-cache-busting.d.ts +64 -0
- package/dist/server/app-rsc-cache-busting.js +206 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +8 -0
- package/dist/server/app-rsc-embedded-chunks.js +32 -0
- package/dist/server/app-rsc-error-handler.d.ts +20 -0
- package/dist/server/app-rsc-error-handler.js +28 -0
- package/dist/server/app-rsc-errors.d.ts +40 -0
- package/dist/server/app-rsc-errors.js +60 -0
- package/dist/server/app-rsc-handler.d.ts +201 -0
- package/dist/server/app-rsc-handler.js +538 -0
- package/dist/server/app-rsc-render-mode.d.ts +11 -0
- package/dist/server/app-rsc-render-mode.js +25 -0
- package/dist/server/app-rsc-request-normalization.d.ts +48 -0
- package/dist/server/app-rsc-request-normalization.js +75 -0
- package/dist/server/app-rsc-response-finalizer.d.ts +37 -0
- package/dist/server/app-rsc-response-finalizer.js +54 -0
- package/dist/server/app-rsc-route-matching.d.ts +93 -0
- package/dist/server/app-rsc-route-matching.js +134 -0
- package/dist/server/app-segment-config.d.ts +46 -0
- package/dist/server/app-segment-config.js +113 -0
- package/dist/server/app-server-action-execution.d.ts +219 -0
- package/dist/server/app-server-action-execution.js +767 -0
- package/dist/server/app-ssr-entry.d.ts +52 -0
- package/dist/server/app-ssr-entry.js +295 -0
- package/dist/server/app-ssr-error-meta.d.ts +13 -0
- package/dist/server/app-ssr-error-meta.js +48 -0
- package/dist/server/app-ssr-router-instance.d.ts +6 -0
- package/dist/server/app-ssr-router-instance.js +24 -0
- package/dist/server/app-ssr-stream.d.ts +60 -0
- package/dist/server/app-ssr-stream.js +408 -0
- package/dist/server/app-static-generation.d.ts +15 -0
- package/dist/server/app-static-generation.js +19 -0
- package/dist/server/app-visited-response-cache.d.ts +23 -0
- package/dist/server/app-visited-response-cache.js +19 -0
- package/dist/server/artifact-compatibility.d.ts +54 -0
- package/dist/server/artifact-compatibility.js +91 -0
- package/dist/server/before-interactive-head.d.ts +17 -0
- package/dist/server/before-interactive-head.js +35 -0
- package/dist/server/cache-control.d.ts +37 -0
- package/dist/server/cache-control.js +56 -0
- package/dist/server/cache-headers.d.ts +6 -0
- package/dist/server/cache-headers.js +17 -0
- package/dist/server/cache-proof.d.ts +364 -0
- package/dist/server/cache-proof.js +794 -0
- package/dist/server/client-reuse-manifest.d.ts +104 -0
- package/dist/server/client-reuse-manifest.js +209 -0
- package/dist/server/client-trace-metadata.d.ts +30 -0
- package/dist/server/client-trace-metadata.js +81 -0
- package/dist/server/cookie-utils.d.ts +12 -0
- package/dist/server/cookie-utils.js +18 -0
- package/dist/server/csp.d.ts +10 -0
- package/dist/server/csp.js +41 -0
- package/dist/server/default-global-error-module.d.ts +19 -0
- package/dist/server/default-global-error-module.js +18 -0
- package/dist/server/default-not-found-module.d.ts +19 -0
- package/dist/server/default-not-found-module.js +18 -0
- package/dist/server/defer-until-stream-consumed.d.ts +7 -0
- package/dist/server/defer-until-stream-consumed.js +34 -0
- package/dist/server/dev-error-overlay-store.d.ts +39 -0
- package/dist/server/dev-error-overlay-store.js +86 -0
- package/dist/server/dev-error-overlay.d.ts +51 -0
- package/dist/server/dev-error-overlay.js +1341 -0
- package/dist/server/dev-initial-server-error.d.ts +9 -0
- package/dist/server/dev-initial-server-error.js +26 -0
- package/dist/server/dev-lockfile.d.ts +109 -0
- package/dist/server/dev-lockfile.js +179 -0
- package/dist/server/dev-module-runner.d.ts +30 -0
- package/dist/server/dev-module-runner.js +91 -0
- package/dist/server/dev-origin-check.d.ts +62 -0
- package/dist/server/dev-origin-check.js +156 -0
- package/dist/server/dev-route-files.d.ts +6 -0
- package/dist/server/dev-route-files.js +71 -0
- package/dist/server/dev-server.d.ts +58 -0
- package/dist/server/dev-server.js +1114 -0
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
- package/dist/server/dev-stack-sourcemap.d.ts +43 -0
- package/dist/server/dev-stack-sourcemap.js +443 -0
- package/dist/server/document-initial-head.d.ts +6 -0
- package/dist/server/document-initial-head.js +33 -0
- package/dist/server/edge-api-runtime.d.ts +4 -0
- package/dist/server/edge-api-runtime.js +6 -0
- package/dist/server/file-based-metadata.d.ts +29 -0
- package/dist/server/file-based-metadata.js +401 -0
- package/dist/server/headers.d.ts +114 -0
- package/dist/server/headers.js +136 -0
- package/dist/server/html.d.ts +28 -0
- package/dist/server/html.js +41 -0
- package/dist/server/http-error-responses.d.ts +91 -0
- package/dist/server/http-error-responses.js +105 -0
- package/dist/server/hybrid-route-priority.d.ts +22 -0
- package/dist/server/hybrid-route-priority.js +33 -0
- package/dist/server/image-optimization.d.ts +130 -0
- package/dist/server/image-optimization.js +247 -0
- package/dist/server/implicit-tags.d.ts +6 -0
- package/dist/server/implicit-tags.js +44 -0
- package/dist/server/instrumentation-runtime.d.ts +49 -0
- package/dist/server/instrumentation-runtime.js +35 -0
- package/dist/server/instrumentation.d.ts +85 -0
- package/dist/server/instrumentation.js +130 -0
- package/dist/server/isr-cache.d.ts +127 -0
- package/dist/server/isr-cache.js +282 -0
- package/dist/server/isr-decision.d.ts +79 -0
- package/dist/server/isr-decision.js +70 -0
- package/dist/server/metadata-route-build-data.d.ts +24 -0
- package/dist/server/metadata-route-build-data.js +148 -0
- package/dist/server/metadata-route-response.d.ts +16 -0
- package/dist/server/metadata-route-response.js +205 -0
- package/dist/server/metadata-routes.d.ts +139 -0
- package/dist/server/metadata-routes.js +433 -0
- package/dist/server/middleware-matcher.d.ts +14 -0
- package/dist/server/middleware-matcher.js +111 -0
- package/dist/server/middleware-request-headers.d.ts +11 -0
- package/dist/server/middleware-request-headers.js +65 -0
- package/dist/server/middleware-response-headers.d.ts +12 -0
- package/dist/server/middleware-response-headers.js +42 -0
- package/dist/server/middleware-runtime.d.ts +67 -0
- package/dist/server/middleware-runtime.js +240 -0
- package/dist/server/middleware.d.ts +62 -0
- package/dist/server/middleware.js +114 -0
- package/dist/server/navigation-planner.d.ts +308 -0
- package/dist/server/navigation-planner.js +831 -0
- package/dist/server/navigation-trace.d.ts +68 -0
- package/dist/server/navigation-trace.js +71 -0
- package/dist/server/next-error-digest.d.ts +44 -0
- package/dist/server/next-error-digest.js +40 -0
- package/dist/server/normalize-path.d.ts +38 -0
- package/dist/server/normalize-path.js +70 -0
- package/dist/server/open-redirect.d.ts +12 -0
- package/dist/server/open-redirect.js +21 -0
- package/dist/server/operation-token.d.ts +40 -0
- package/dist/server/operation-token.js +85 -0
- package/dist/server/otel-tracer-extension.d.ts +45 -0
- package/dist/server/otel-tracer-extension.js +89 -0
- package/dist/server/pages-api-route.d.ts +83 -0
- package/dist/server/pages-api-route.js +75 -0
- package/dist/server/pages-asset-tags.d.ts +78 -0
- package/dist/server/pages-asset-tags.js +126 -0
- package/dist/server/pages-body-parser-config.d.ts +59 -0
- package/dist/server/pages-body-parser-config.js +77 -0
- package/dist/server/pages-data-route.d.ts +121 -0
- package/dist/server/pages-data-route.js +157 -0
- package/dist/server/pages-default-404.d.ts +30 -0
- package/dist/server/pages-default-404.js +38 -0
- package/dist/server/pages-dev-module-url.d.ts +4 -0
- package/dist/server/pages-dev-module-url.js +15 -0
- package/dist/server/pages-document-initial-props.d.ts +77 -0
- package/dist/server/pages-document-initial-props.js +109 -0
- package/dist/server/pages-get-initial-props.d.ts +67 -0
- package/dist/server/pages-get-initial-props.js +92 -0
- package/dist/server/pages-i18n.d.ts +106 -0
- package/dist/server/pages-i18n.js +183 -0
- package/dist/server/pages-media-type.d.ts +15 -0
- package/dist/server/pages-media-type.js +24 -0
- package/dist/server/pages-node-compat.d.ts +55 -0
- package/dist/server/pages-node-compat.js +235 -0
- package/dist/server/pages-page-data.d.ts +223 -0
- package/dist/server/pages-page-data.js +484 -0
- package/dist/server/pages-page-handler.d.ts +100 -0
- package/dist/server/pages-page-handler.js +403 -0
- package/dist/server/pages-page-method.d.ts +47 -0
- package/dist/server/pages-page-method.js +17 -0
- package/dist/server/pages-page-response.d.ts +138 -0
- package/dist/server/pages-page-response.js +285 -0
- package/dist/server/pages-readiness.d.ts +36 -0
- package/dist/server/pages-readiness.js +21 -0
- package/dist/server/pages-request-pipeline.d.ts +116 -0
- package/dist/server/pages-request-pipeline.js +311 -0
- package/dist/server/pages-revalidate.d.ts +15 -0
- package/dist/server/pages-revalidate.js +19 -0
- package/dist/server/pages-serializable-props.d.ts +24 -0
- package/dist/server/pages-serializable-props.js +67 -0
- package/dist/server/pregenerated-concrete-paths.d.ts +16 -0
- package/dist/server/pregenerated-concrete-paths.js +61 -0
- package/dist/server/prerender-manifest.d.ts +33 -0
- package/dist/server/prerender-manifest.js +54 -0
- package/dist/server/prerender-route-params.d.ts +23 -0
- package/dist/server/prerender-route-params.js +113 -0
- package/dist/server/prerender-work-unit-setup.d.ts +6 -0
- package/dist/server/prerender-work-unit-setup.js +28 -0
- package/dist/server/prod-server.d.ts +148 -0
- package/dist/server/prod-server.js +1136 -0
- package/dist/server/proxy-trust.d.ts +40 -0
- package/dist/server/proxy-trust.js +68 -0
- package/dist/server/request-log.d.ts +39 -0
- package/dist/server/request-log.js +56 -0
- package/dist/server/request-pipeline.d.ts +187 -0
- package/dist/server/request-pipeline.js +447 -0
- package/dist/server/rsc-stream-hints.d.ts +10 -0
- package/dist/server/rsc-stream-hints.js +41 -0
- package/dist/server/seed-cache.d.ts +29 -0
- package/dist/server/seed-cache.js +125 -0
- package/dist/server/server-action-not-found.d.ts +21 -0
- package/dist/server/server-action-not-found.js +62 -0
- package/dist/server/server-globals.d.ts +4 -0
- package/dist/server/server-globals.js +35 -0
- package/dist/server/skip-cache-proof.d.ts +61 -0
- package/dist/server/skip-cache-proof.js +168 -0
- package/dist/server/socket-error-backstop.d.ts +34 -0
- package/dist/server/socket-error-backstop.js +200 -0
- package/dist/server/static-file-cache.d.ts +56 -0
- package/dist/server/static-file-cache.js +231 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
- package/dist/server/static-layout-client-reuse-proof.js +33 -0
- package/dist/server/streaming-metadata.d.ts +4 -0
- package/dist/server/streaming-metadata.js +8 -0
- package/dist/server/worker-utils.d.ts +7 -0
- package/dist/server/worker-utils.js +99 -0
- package/dist/shims/amp.d.ts +19 -0
- package/dist/shims/amp.js +23 -0
- package/dist/shims/app-router-scroll-state.d.ts +15 -0
- package/dist/shims/app-router-scroll-state.js +61 -0
- package/dist/shims/app-router-scroll.d.ts +29 -0
- package/dist/shims/app-router-scroll.js +141 -0
- package/dist/shims/app.d.ts +42 -0
- package/dist/shims/app.js +48 -0
- package/dist/shims/before-interactive-context.d.ts +40 -0
- package/dist/shims/before-interactive-context.js +8 -0
- package/dist/shims/cache-for-request.d.ts +57 -0
- package/dist/shims/cache-for-request.js +72 -0
- package/dist/shims/cache-handler.d.ts +106 -0
- package/dist/shims/cache-handler.js +176 -0
- package/dist/shims/cache-request-state.d.ts +47 -0
- package/dist/shims/cache-request-state.js +126 -0
- package/dist/shims/cache-runtime.d.ts +83 -0
- package/dist/shims/cache-runtime.js +452 -0
- package/dist/shims/cache.d.ts +145 -0
- package/dist/shims/cache.js +401 -0
- package/dist/shims/cdn-cache.d.ts +125 -0
- package/dist/shims/cdn-cache.js +100 -0
- package/dist/shims/client-hook-error.d.ts +13 -0
- package/dist/shims/client-hook-error.js +17 -0
- package/dist/shims/client-locale.d.ts +14 -0
- package/dist/shims/client-locale.js +11 -0
- package/dist/shims/client-only.d.ts +1 -0
- package/dist/shims/client-only.js +1 -0
- package/dist/shims/compat-router.d.ts +16 -0
- package/dist/shims/compat-router.js +25 -0
- package/dist/shims/config.d.ts +28 -0
- package/dist/shims/config.js +21 -0
- package/dist/shims/constants.d.ts +130 -0
- package/dist/shims/constants.js +167 -0
- package/dist/shims/default-global-error.d.ts +31 -0
- package/dist/shims/default-global-error.js +179 -0
- package/dist/shims/default-not-found.d.ts +11 -0
- package/dist/shims/default-not-found.js +59 -0
- package/dist/shims/document.d.ts +92 -0
- package/dist/shims/document.js +76 -0
- package/dist/shims/dynamic-preload-chunks.d.ts +8 -0
- package/dist/shims/dynamic-preload-chunks.js +79 -0
- package/dist/shims/dynamic.d.ts +35 -0
- package/dist/shims/dynamic.js +204 -0
- package/dist/shims/error-boundary-navigation.d.ts +7 -0
- package/dist/shims/error-boundary-navigation.js +44 -0
- package/dist/shims/error-boundary.d.ts +155 -0
- package/dist/shims/error-boundary.js +342 -0
- package/dist/shims/error.d.ts +31 -0
- package/dist/shims/error.js +123 -0
- package/dist/shims/error.react-server.d.ts +9 -0
- package/dist/shims/error.react-server.js +6 -0
- package/dist/shims/fetch-cache.d.ts +136 -0
- package/dist/shims/fetch-cache.js +766 -0
- package/dist/shims/font-google-base.d.ts +83 -0
- package/dist/shims/font-google-base.js +290 -0
- package/dist/shims/font-google.d.ts +2 -0
- package/dist/shims/font-google.js +2 -0
- package/dist/shims/font-local.d.ts +50 -0
- package/dist/shims/font-local.js +195 -0
- package/dist/shims/font-utils.d.ts +56 -0
- package/dist/shims/font-utils.js +107 -0
- package/dist/shims/form.d.ts +19 -0
- package/dist/shims/form.js +236 -0
- package/dist/shims/hash-scroll.d.ts +10 -0
- package/dist/shims/hash-scroll.js +47 -0
- package/dist/shims/head-state.d.ts +16 -0
- package/dist/shims/head-state.js +43 -0
- package/dist/shims/head.d.ts +73 -0
- package/dist/shims/head.js +340 -0
- package/dist/shims/headers.d.ts +253 -0
- package/dist/shims/headers.js +754 -0
- package/dist/shims/i18n-context.d.ts +22 -0
- package/dist/shims/i18n-context.js +42 -0
- package/dist/shims/i18n-state.d.ts +14 -0
- package/dist/shims/i18n-state.js +38 -0
- package/dist/shims/image-config.d.ts +45 -0
- package/dist/shims/image-config.js +85 -0
- package/dist/shims/image.d.ts +55 -0
- package/dist/shims/image.js +582 -0
- package/dist/shims/internal/als-registry.d.ts +14 -0
- package/dist/shims/internal/als-registry.js +80 -0
- package/dist/shims/internal/api-utils.d.ts +14 -0
- package/dist/shims/internal/api-utils.js +1 -0
- package/dist/shims/internal/app-page-props-cache-key.d.ts +5 -0
- package/dist/shims/internal/app-page-props-cache-key.js +16 -0
- package/dist/shims/internal/app-route-detection.d.ts +39 -0
- package/dist/shims/internal/app-route-detection.js +62 -0
- package/dist/shims/internal/app-router-context.d.ts +31 -0
- package/dist/shims/internal/app-router-context.js +28 -0
- package/dist/shims/internal/cookie-serialize.d.ts +45 -0
- package/dist/shims/internal/cookie-serialize.js +49 -0
- package/dist/shims/internal/cookies.d.ts +2 -0
- package/dist/shims/internal/cookies.js +2 -0
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +31 -0
- package/dist/shims/internal/hybrid-client-route-owner.js +143 -0
- package/dist/shims/internal/interpolate-as.d.ts +25 -0
- package/dist/shims/internal/interpolate-as.js +196 -0
- package/dist/shims/internal/link-status-registry.d.ts +43 -0
- package/dist/shims/internal/link-status-registry.js +42 -0
- package/dist/shims/internal/make-hanging-promise.d.ts +15 -0
- package/dist/shims/internal/make-hanging-promise.js +44 -0
- package/dist/shims/internal/navigation-untracked.d.ts +35 -0
- package/dist/shims/internal/navigation-untracked.js +56 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +54 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js +121 -0
- package/dist/shims/internal/pages-data-target.d.ts +62 -0
- package/dist/shims/internal/pages-data-target.js +98 -0
- package/dist/shims/internal/pages-data-url.d.ts +41 -0
- package/dist/shims/internal/pages-data-url.js +71 -0
- package/dist/shims/internal/pages-router-accessor.d.ts +19 -0
- package/dist/shims/internal/pages-router-accessor.js +13 -0
- package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
- package/dist/shims/internal/route-pattern-for-warning.js +40 -0
- package/dist/shims/internal/router-context.d.ts +7 -0
- package/dist/shims/internal/router-context.js +13 -0
- package/dist/shims/internal/utils.d.ts +52 -0
- package/dist/shims/internal/utils.js +27 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +30 -0
- package/dist/shims/internal/work-unit-async-storage.js +17 -0
- package/dist/shims/layout-segment-context.d.ts +24 -0
- package/dist/shims/layout-segment-context.js +39 -0
- package/dist/shims/legacy-image.d.ts +41 -0
- package/dist/shims/legacy-image.js +49 -0
- package/dist/shims/link-prefetch.d.ts +41 -0
- package/dist/shims/link-prefetch.js +43 -0
- package/dist/shims/link.d.ts +102 -0
- package/dist/shims/link.js +687 -0
- package/dist/shims/metadata.d.ts +285 -0
- package/dist/shims/metadata.js +820 -0
- package/dist/shims/navigation-context-state.d.ts +40 -0
- package/dist/shims/navigation-context-state.js +116 -0
- package/dist/shims/navigation-errors.d.ts +55 -0
- package/dist/shims/navigation-errors.js +110 -0
- package/dist/shims/navigation-server.d.ts +3 -0
- package/dist/shims/navigation-server.js +3 -0
- package/dist/shims/navigation-state.d.ts +25 -0
- package/dist/shims/navigation-state.js +66 -0
- package/dist/shims/navigation.d.ts +286 -0
- package/dist/shims/navigation.js +1206 -0
- package/dist/shims/navigation.react-server.d.ts +14 -0
- package/dist/shims/navigation.react-server.js +32 -0
- package/dist/shims/offline.d.ts +4 -0
- package/dist/shims/offline.js +15 -0
- package/dist/shims/og.d.ts +17 -0
- package/dist/shims/og.js +48 -0
- package/dist/shims/pages-router-runtime.d.ts +12 -0
- package/dist/shims/pages-router-runtime.js +24 -0
- package/dist/shims/ppr-fallback-shell.d.ts +33 -0
- package/dist/shims/ppr-fallback-shell.js +170 -0
- package/dist/shims/readonly-url-search-params.d.ts +13 -0
- package/dist/shims/readonly-url-search-params.js +26 -0
- package/dist/shims/request-context.d.ts +58 -0
- package/dist/shims/request-context.js +45 -0
- package/dist/shims/request-state-types.d.ts +12 -0
- package/dist/shims/request-state-types.js +1 -0
- package/dist/shims/root-params.d.ts +12 -0
- package/dist/shims/root-params.js +30 -0
- package/dist/shims/router-state.d.ts +32 -0
- package/dist/shims/router-state.js +39 -0
- package/dist/shims/router.d.ts +192 -0
- package/dist/shims/router.js +1786 -0
- package/dist/shims/script-nonce-context.d.ts +11 -0
- package/dist/shims/script-nonce-context.js +23 -0
- package/dist/shims/script.d.ts +43 -0
- package/dist/shims/script.js +370 -0
- package/dist/shims/server-only.d.ts +1 -0
- package/dist/shims/server-only.js +1 -0
- package/dist/shims/server.d.ts +323 -0
- package/dist/shims/server.js +729 -0
- package/dist/shims/slot.d.ts +45 -0
- package/dist/shims/slot.js +230 -0
- package/dist/shims/thenable-params.d.ts +11 -0
- package/dist/shims/thenable-params.js +176 -0
- package/dist/shims/unified-request-context.d.ts +68 -0
- package/dist/shims/unified-request-context.js +86 -0
- package/dist/shims/unrecognized-action-error.d.ts +34 -0
- package/dist/shims/unrecognized-action-error.js +39 -0
- package/dist/shims/url-safety.d.ts +34 -0
- package/dist/shims/url-safety.js +70 -0
- package/dist/shims/url-utils.d.ts +51 -0
- package/dist/shims/url-utils.js +156 -0
- package/dist/shims/use-merged-ref.d.ts +6 -0
- package/dist/shims/use-merged-ref.js +38 -0
- package/dist/shims/web-vitals.d.ts +8 -0
- package/dist/shims/web-vitals.js +22 -0
- package/dist/typegen.d.ts +9 -0
- package/dist/typegen.js +228 -0
- package/dist/utils/asset-prefix.d.ts +96 -0
- package/dist/utils/asset-prefix.js +122 -0
- package/dist/utils/base-path.d.ts +31 -0
- package/dist/utils/base-path.js +45 -0
- package/dist/utils/built-asset-url.d.ts +4 -0
- package/dist/utils/built-asset-url.js +11 -0
- package/dist/utils/cache-control-metadata.d.ts +4 -0
- package/dist/utils/cache-control-metadata.js +12 -0
- package/dist/utils/client-build-manifest.d.ts +21 -0
- package/dist/utils/client-build-manifest.js +87 -0
- package/dist/utils/client-entry-manifest.d.ts +11 -0
- package/dist/utils/client-entry-manifest.js +29 -0
- package/dist/utils/client-runtime-metadata.d.ts +45 -0
- package/dist/utils/client-runtime-metadata.js +63 -0
- package/dist/utils/commonjs-loader.d.ts +16 -0
- package/dist/utils/commonjs-loader.js +100 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -0
- package/dist/utils/deployment-id.d.ts +8 -0
- package/dist/utils/deployment-id.js +22 -0
- package/dist/utils/dev-error-recovery-event.d.ts +4 -0
- package/dist/utils/dev-error-recovery-event.js +4 -0
- package/dist/utils/domain-locale.d.ts +26 -0
- package/dist/utils/domain-locale.js +50 -0
- package/dist/utils/encode-cache-tag.d.ts +30 -0
- package/dist/utils/encode-cache-tag.js +36 -0
- package/dist/utils/error-cause.d.ts +4 -0
- package/dist/utils/error-cause.js +95 -0
- package/dist/utils/has-trailing-comma.d.ts +24 -0
- package/dist/utils/has-trailing-comma.js +62 -0
- package/dist/utils/hash.d.ts +24 -0
- package/dist/utils/hash.js +55 -0
- package/dist/utils/html-limited-bots.d.ts +21 -0
- package/dist/utils/html-limited-bots.js +35 -0
- package/dist/utils/lazy-chunks.d.ts +59 -0
- package/dist/utils/lazy-chunks.js +112 -0
- package/dist/utils/manifest-paths.d.ts +30 -0
- package/dist/utils/manifest-paths.js +66 -0
- package/dist/utils/mdx-scan.d.ts +9 -0
- package/dist/utils/mdx-scan.js +34 -0
- package/dist/utils/navigation-signal.d.ts +4 -0
- package/dist/utils/navigation-signal.js +12 -0
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/parse-cookie.d.ts +13 -0
- package/dist/utils/parse-cookie.js +52 -0
- package/dist/utils/path.d.ts +22 -0
- package/dist/utils/path.js +30 -0
- package/dist/utils/prerender-output-paths.d.ts +14 -0
- package/dist/utils/prerender-output-paths.js +22 -0
- package/dist/utils/project.d.ts +76 -0
- package/dist/utils/project.js +213 -0
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +4 -0
- package/dist/utils/public-routes.js +48 -0
- package/dist/utils/query.d.ts +49 -0
- package/dist/utils/query.js +122 -0
- package/dist/utils/record.d.ts +4 -0
- package/dist/utils/record.js +6 -0
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +17 -0
- package/dist/utils/safe-json-file.js +23 -0
- package/dist/utils/sorted-array.d.ts +8 -0
- package/dist/utils/sorted-array.js +20 -0
- package/dist/utils/text-stream.d.ts +28 -0
- package/dist/utils/text-stream.js +64 -0
- package/dist/utils/vinext-root.d.ts +23 -0
- package/dist/utils/vinext-root.js +29 -0
- package/dist/utils/virtual-module.d.ts +5 -0
- package/dist/utils/virtual-module.js +0 -0
- package/dist/utils/vite-version.d.ts +21 -0
- package/dist/utils/vite-version.js +42 -0
- package/package.json +145 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/client/app-nav-failure-handler.d.ts
|
|
2
|
+
declare function stageAppNavigationFailureTarget(href: string): void;
|
|
3
|
+
declare function getAppNavigationFailureTarget(href: string): URL | null;
|
|
4
|
+
declare function clearAppNavigationFailureTarget(target?: string | URL): void;
|
|
5
|
+
declare function handleAppNavigationFailure(error: unknown): boolean;
|
|
6
|
+
declare function installAppNavigationFailureListeners(): () => void;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { clearAppNavigationFailureTarget, getAppNavigationFailureTarget, handleAppNavigationFailure, installAppNavigationFailureListeners, stageAppNavigationFailureTarget };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { installWindowNext } from "./window-next.js";
|
|
2
|
+
//#region src/client/app-nav-failure-handler.ts
|
|
3
|
+
function getPendingUrl() {
|
|
4
|
+
if (typeof window === "undefined") return null;
|
|
5
|
+
return window.next?.__pendingUrl ?? null;
|
|
6
|
+
}
|
|
7
|
+
function stageAppNavigationFailureTarget(href) {
|
|
8
|
+
if (!process.env.__NEXT_APP_NAV_FAIL_HANDLING || typeof window === "undefined") return;
|
|
9
|
+
installWindowNext({ __pendingUrl: new URL(href, window.location.href) });
|
|
10
|
+
}
|
|
11
|
+
function getAppNavigationFailureTarget(href) {
|
|
12
|
+
const pendingUrl = getPendingUrl();
|
|
13
|
+
if (pendingUrl === null || typeof window === "undefined") return null;
|
|
14
|
+
return pendingUrl.href === new URL(href, window.location.href).href ? pendingUrl : null;
|
|
15
|
+
}
|
|
16
|
+
function clearAppNavigationFailureTarget(target) {
|
|
17
|
+
if (typeof window === "undefined" || window.next?.__pendingUrl === void 0) return;
|
|
18
|
+
if (target instanceof URL) {
|
|
19
|
+
if (window.next.__pendingUrl !== target) return;
|
|
20
|
+
} else if (target !== void 0 && window.next.__pendingUrl.href !== new URL(target, window.location.href).href) return;
|
|
21
|
+
delete window.next.__pendingUrl;
|
|
22
|
+
}
|
|
23
|
+
function handleAppNavigationFailure(error) {
|
|
24
|
+
if (!process.env.__NEXT_APP_NAV_FAIL_HANDLING || typeof window === "undefined") return false;
|
|
25
|
+
const pendingUrl = getPendingUrl();
|
|
26
|
+
if (pendingUrl === null || pendingUrl.href === window.location.href) return false;
|
|
27
|
+
console.error("Error occurred during navigation, falling back to hard navigation", error);
|
|
28
|
+
window.location.assign(pendingUrl.href);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
function installAppNavigationFailureListeners() {
|
|
32
|
+
if (!process.env.__NEXT_APP_NAV_FAIL_HANDLING || typeof window === "undefined") return () => {};
|
|
33
|
+
const listener = (event) => {
|
|
34
|
+
handleAppNavigationFailure("reason" in event ? event.reason : event.error);
|
|
35
|
+
};
|
|
36
|
+
window.addEventListener("error", listener);
|
|
37
|
+
window.addEventListener("unhandledrejection", listener);
|
|
38
|
+
return () => {
|
|
39
|
+
window.removeEventListener("error", listener);
|
|
40
|
+
window.removeEventListener("unhandledrejection", listener);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { clearAppNavigationFailureTarget, getAppNavigationFailureTarget, handleAppNavigationFailure, installAppNavigationFailureListeners, stageAppNavigationFailureTarget };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/client/instrumentation-client-inject.d.ts
|
|
2
|
+
/** Absolute path to the vinext empty-module fallback for composed client instrumentation. */
|
|
3
|
+
declare const INSTRUMENTATION_CLIENT_EMPTY_MODULE: string;
|
|
4
|
+
/**
|
|
5
|
+
* Generate a virtual ESM module that implements the Next.js
|
|
6
|
+
* `instrumentationClientInject` contract for client bootstrap.
|
|
7
|
+
*
|
|
8
|
+
* Resolution follows two paths depending on whether injects are configured:
|
|
9
|
+
*
|
|
10
|
+
* **Empty injects (`injects.length === 0`):** Returns `export {}` and the
|
|
11
|
+
* plugin does not serve a virtual module. The `resolve.alias` for
|
|
12
|
+
* `private-next-instrumentation-client` resolves directly to the user's
|
|
13
|
+
* `instrumentation-client` file (or {@link INSTRUMENTATION_CLIENT_EMPTY_MODULE} when absent),
|
|
14
|
+
* so the user's `onRouterTransitionStart` is used as-is with no composition.
|
|
15
|
+
*
|
|
16
|
+
* **Non-empty injects:** The plugin serves this generated module via
|
|
17
|
+
* `resolveId`/`load`. It side-effect-imports each inject in config order, then
|
|
18
|
+
* the user's file last, and exports a single composed `onRouterTransitionStart`
|
|
19
|
+
* that fans out to every module's hook.
|
|
20
|
+
*
|
|
21
|
+
* **Specifier resolution:** Next.js webpack loader resolves every inject against
|
|
22
|
+
* the project root at build time (`this.resolve(rootContext, spec)`) and emits
|
|
23
|
+
* `require(resolvedPath)`. Vinext pre-resolves `./` and `../` in the plugin
|
|
24
|
+
* `config()` hook; bare specifiers rely on Vite resolution at bundle time.
|
|
25
|
+
*
|
|
26
|
+
* @param injects - Module specifiers from `nextConfig.instrumentationClientInject`
|
|
27
|
+
* @param userPath - Absolute path to the user's `instrumentation-client` file,
|
|
28
|
+
* or `null` when the file doesn't exist
|
|
29
|
+
* @param emptyModulePath - Absolute path to the empty-module fallback
|
|
30
|
+
*/
|
|
31
|
+
declare function generateInstrumentationClientInjectModule(injects: readonly string[], userPath: string | null, emptyModulePath?: string): string;
|
|
32
|
+
//#endregion
|
|
33
|
+
export { INSTRUMENTATION_CLIENT_EMPTY_MODULE, generateInstrumentationClientInjectModule };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
//#region src/client/instrumentation-client-inject.ts
|
|
4
|
+
/** Resolve empty-module next to this file (.js in dist, .ts in source). */
|
|
5
|
+
function resolveInstrumentationClientEmptyModule(dir) {
|
|
6
|
+
const jsPath = path.join(dir, "empty-module.js");
|
|
7
|
+
if (fs.existsSync(jsPath)) return jsPath;
|
|
8
|
+
return path.join(dir, "empty-module.ts");
|
|
9
|
+
}
|
|
10
|
+
/** Absolute path to the vinext empty-module fallback for composed client instrumentation. */
|
|
11
|
+
const INSTRUMENTATION_CLIENT_EMPTY_MODULE = resolveInstrumentationClientEmptyModule(import.meta.dirname);
|
|
12
|
+
/**
|
|
13
|
+
* Generate a virtual ESM module that implements the Next.js
|
|
14
|
+
* `instrumentationClientInject` contract for client bootstrap.
|
|
15
|
+
*
|
|
16
|
+
* Resolution follows two paths depending on whether injects are configured:
|
|
17
|
+
*
|
|
18
|
+
* **Empty injects (`injects.length === 0`):** Returns `export {}` and the
|
|
19
|
+
* plugin does not serve a virtual module. The `resolve.alias` for
|
|
20
|
+
* `private-next-instrumentation-client` resolves directly to the user's
|
|
21
|
+
* `instrumentation-client` file (or {@link INSTRUMENTATION_CLIENT_EMPTY_MODULE} when absent),
|
|
22
|
+
* so the user's `onRouterTransitionStart` is used as-is with no composition.
|
|
23
|
+
*
|
|
24
|
+
* **Non-empty injects:** The plugin serves this generated module via
|
|
25
|
+
* `resolveId`/`load`. It side-effect-imports each inject in config order, then
|
|
26
|
+
* the user's file last, and exports a single composed `onRouterTransitionStart`
|
|
27
|
+
* that fans out to every module's hook.
|
|
28
|
+
*
|
|
29
|
+
* **Specifier resolution:** Next.js webpack loader resolves every inject against
|
|
30
|
+
* the project root at build time (`this.resolve(rootContext, spec)`) and emits
|
|
31
|
+
* `require(resolvedPath)`. Vinext pre-resolves `./` and `../` in the plugin
|
|
32
|
+
* `config()` hook; bare specifiers rely on Vite resolution at bundle time.
|
|
33
|
+
*
|
|
34
|
+
* @param injects - Module specifiers from `nextConfig.instrumentationClientInject`
|
|
35
|
+
* @param userPath - Absolute path to the user's `instrumentation-client` file,
|
|
36
|
+
* or `null` when the file doesn't exist
|
|
37
|
+
* @param emptyModulePath - Absolute path to the empty-module fallback
|
|
38
|
+
*/
|
|
39
|
+
function generateInstrumentationClientInjectModule(injects, userPath, emptyModulePath = INSTRUMENTATION_CLIENT_EMPTY_MODULE) {
|
|
40
|
+
if (injects.length === 0) return "export {};";
|
|
41
|
+
const lines = [];
|
|
42
|
+
for (let i = 0; i < injects.length; i++) lines.push(`import * as __vinj_${i} from ${JSON.stringify(injects[i])};`);
|
|
43
|
+
const userSlot = injects.length;
|
|
44
|
+
lines.push(`import * as __vinj_${userSlot} from ${JSON.stringify(userPath ?? emptyModulePath)};`);
|
|
45
|
+
const hookCalls = [];
|
|
46
|
+
for (let i = 0; i <= userSlot; i++) hookCalls.push(` if (typeof __vinj_${i}.onRouterTransitionStart === "function") {`, ` __vinj_${i}.onRouterTransitionStart(url, type);`, ` }`);
|
|
47
|
+
lines.push("");
|
|
48
|
+
lines.push("export function onRouterTransitionStart(url, type) {");
|
|
49
|
+
lines.push(...hookCalls);
|
|
50
|
+
lines.push(`}`);
|
|
51
|
+
lines.push("");
|
|
52
|
+
return lines.join("\n");
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { INSTRUMENTATION_CLIENT_EMPTY_MODULE, generateInstrumentationClientInjectModule };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ClientInstrumentationHooks } from "./instrumentation-client.js";
|
|
2
|
+
|
|
3
|
+
//#region src/client/instrumentation-client-state.d.ts
|
|
4
|
+
declare function normalizeClientInstrumentationHooks(hooks: ClientInstrumentationHooks): ClientInstrumentationHooks | null;
|
|
5
|
+
declare function setClientInstrumentationHooks(hooks: ClientInstrumentationHooks | null): ClientInstrumentationHooks | null;
|
|
6
|
+
declare function getClientInstrumentationHooks(): ClientInstrumentationHooks | null;
|
|
7
|
+
declare function notifyAppRouterTransitionStart(href: string, navigationType: "push" | "replace" | "traverse"): void;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { getClientInstrumentationHooks, normalizeClientInstrumentationHooks, notifyAppRouterTransitionStart, setClientInstrumentationHooks };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/client/instrumentation-client-state.ts
|
|
2
|
+
let clientInstrumentationHooks = null;
|
|
3
|
+
function normalizeClientInstrumentationHooks(hooks) {
|
|
4
|
+
return Object.values(hooks).some((value) => typeof value === "function") ? hooks : null;
|
|
5
|
+
}
|
|
6
|
+
function setClientInstrumentationHooks(hooks) {
|
|
7
|
+
clientInstrumentationHooks = hooks;
|
|
8
|
+
return clientInstrumentationHooks;
|
|
9
|
+
}
|
|
10
|
+
function getClientInstrumentationHooks() {
|
|
11
|
+
return clientInstrumentationHooks;
|
|
12
|
+
}
|
|
13
|
+
function notifyAppRouterTransitionStart(href, navigationType) {
|
|
14
|
+
clientInstrumentationHooks?.onRouterTransitionStart?.(href, navigationType);
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { getClientInstrumentationHooks, normalizeClientInstrumentationHooks, notifyAppRouterTransitionStart, setClientInstrumentationHooks };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/client/instrumentation-client.d.ts
|
|
2
|
+
type ClientInstrumentationHooks = {
|
|
3
|
+
onRouterTransitionStart?: (href: string, navigationType: "push" | "replace" | "traverse") => void;
|
|
4
|
+
};
|
|
5
|
+
declare const clientInstrumentationHooks: ClientInstrumentationHooks | null;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { ClientInstrumentationHooks, clientInstrumentationHooks };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { normalizeClientInstrumentationHooks, setClientInstrumentationHooks } from "./instrumentation-client-state.js";
|
|
2
|
+
import * as instrumentationClientHooks from "private-next-instrumentation-client";
|
|
3
|
+
//#region src/client/instrumentation-client.ts
|
|
4
|
+
const clientInstrumentationHooks = setClientInstrumentationHooks(normalizeClientInstrumentationHooks(instrumentationClientHooks));
|
|
5
|
+
//#endregion
|
|
6
|
+
export { clientInstrumentationHooks };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { RouteManifest } from "../routing/app-route-graph.js";
|
|
2
|
+
import { AppRouterScrollIntent } from "../shims/app-router-scroll-state.js";
|
|
3
|
+
|
|
4
|
+
//#region src/client/navigation-runtime.d.ts
|
|
5
|
+
type NavigationRuntimeSnapshot = {
|
|
6
|
+
pathname: string;
|
|
7
|
+
searchParams: [string, string][];
|
|
8
|
+
};
|
|
9
|
+
type NavigationRuntimeRscChunk = string | [3, string];
|
|
10
|
+
type NavigationRuntimeRscBootstrap = {
|
|
11
|
+
done?: boolean;
|
|
12
|
+
nav?: NavigationRuntimeSnapshot;
|
|
13
|
+
params?: Record<string, string | string[]>;
|
|
14
|
+
rsc: NavigationRuntimeRscChunk[];
|
|
15
|
+
};
|
|
16
|
+
type NavigationRuntimeKind = "navigate" | "traverse" | "refresh";
|
|
17
|
+
type NavigationRuntimeHistoryUpdateMode = "push" | "replace";
|
|
18
|
+
type NavigationRuntimeVisibleCommitMode = "transition" | "synchronous";
|
|
19
|
+
type NavigationRuntimeTraversalIntent = {
|
|
20
|
+
direction: "back" | "forward" | "unknown";
|
|
21
|
+
historyState: unknown;
|
|
22
|
+
targetHistoryIndex: number | null;
|
|
23
|
+
};
|
|
24
|
+
type NavigationRuntimeNavigate = (href: string, redirectDepth?: number, navigationKind?: NavigationRuntimeKind, historyUpdateMode?: NavigationRuntimeHistoryUpdateMode, previousNextUrlOverride?: string | null, programmaticTransition?: boolean, traversalIntent?: NavigationRuntimeTraversalIntent, scrollIntent?: AppRouterScrollIntent | null, visibleCommitMode?: NavigationRuntimeVisibleCommitMode) => Promise<void>;
|
|
25
|
+
type NavigationRuntimeFunctions = {
|
|
26
|
+
clearNavigationCaches?: () => void;
|
|
27
|
+
commitHashNavigation?: (href: string, historyUpdateMode: NavigationRuntimeHistoryUpdateMode, scroll: boolean) => void;
|
|
28
|
+
navigateExternal?: (href: string, historyUpdateMode: NavigationRuntimeHistoryUpdateMode) => Promise<void>;
|
|
29
|
+
navigate?: NavigationRuntimeNavigate;
|
|
30
|
+
/**
|
|
31
|
+
* Called at the start of every App Router navigation so the <Link> shim can
|
|
32
|
+
* reset any link that is still showing a `useLinkStatus()` pending state but
|
|
33
|
+
* is not the one driving this navigation (e.g. a programmatic router.push or
|
|
34
|
+
* a shallow-routing transition). Registered by shims/link.tsx; decoupled
|
|
35
|
+
* through the runtime to avoid a circular import with shims/navigation.ts.
|
|
36
|
+
*/
|
|
37
|
+
notifyLinkNavigationStart?: () => void;
|
|
38
|
+
pingVisibleLinks?: () => void;
|
|
39
|
+
};
|
|
40
|
+
type NavigationRuntimeBootstrap = {
|
|
41
|
+
routeManifest: RouteManifest | null;
|
|
42
|
+
rsc: NavigationRuntimeRscBootstrap | undefined;
|
|
43
|
+
};
|
|
44
|
+
type NavigationRuntime = {
|
|
45
|
+
bootstrap: NavigationRuntimeBootstrap;
|
|
46
|
+
functions: NavigationRuntimeFunctions;
|
|
47
|
+
};
|
|
48
|
+
declare const NAVIGATION_RUNTIME_SYMBOL_DESCRIPTION = "vinext.navigationRuntime";
|
|
49
|
+
declare const NAVIGATION_RUNTIME_KEY: unique symbol;
|
|
50
|
+
declare function getNavigationRuntime(): NavigationRuntime | null;
|
|
51
|
+
declare function registerNavigationRuntimeBootstrap(bootstrap: Partial<NavigationRuntimeBootstrap>): NavigationRuntime;
|
|
52
|
+
declare function registerNavigationRuntimeFunctions(functions: Partial<NavigationRuntimeFunctions>): NavigationRuntime;
|
|
53
|
+
declare function ensureNavigationRuntimeRscBootstrap(): NavigationRuntimeRscBootstrap;
|
|
54
|
+
declare function subscribeNavigationRuntimeRscChunk(chunk: NavigationRuntimeRscChunk): NavigationRuntime;
|
|
55
|
+
declare function hasAppNavigationRuntime(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* True when the App Router has installed its runtime bootstrap on `window`,
|
|
58
|
+
* which the inline runtime-metadata script does synchronously in `<head>`.
|
|
59
|
+
*
|
|
60
|
+
* This is a stronger early-life signal than `hasAppNavigationRuntime()` — the
|
|
61
|
+
* latter checks for the fully-wired `navigate` function and so returns false
|
|
62
|
+
* during the brief window between HTML parse and the bootstrap module
|
|
63
|
+
* finishing initialization. Code that needs to differentiate App Router from
|
|
64
|
+
* Pages Router *during hydration* (e.g. the Script shim deciding whether the
|
|
65
|
+
* server-side pre-head splice already emitted the inline beforeInteractive
|
|
66
|
+
* tag) should call this instead.
|
|
67
|
+
*/
|
|
68
|
+
declare function hasAppNavigationRuntimeBootstrap(): boolean;
|
|
69
|
+
//#endregion
|
|
70
|
+
export { NAVIGATION_RUNTIME_KEY, NAVIGATION_RUNTIME_SYMBOL_DESCRIPTION, NavigationRuntime, NavigationRuntimeBootstrap, NavigationRuntimeFunctions, NavigationRuntimeNavigate, NavigationRuntimeRscBootstrap, NavigationRuntimeRscChunk, NavigationRuntimeSnapshot, NavigationRuntimeVisibleCommitMode, ensureNavigationRuntimeRscBootstrap, getNavigationRuntime, hasAppNavigationRuntime, hasAppNavigationRuntimeBootstrap, registerNavigationRuntimeBootstrap, registerNavigationRuntimeFunctions, subscribeNavigationRuntimeRscChunk };
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { isUnknownRecord } from "../utils/record.js";
|
|
2
|
+
//#region src/client/navigation-runtime.ts
|
|
3
|
+
const NAVIGATION_RUNTIME_SYMBOL_DESCRIPTION = "vinext.navigationRuntime";
|
|
4
|
+
const NAVIGATION_RUNTIME_KEY = Symbol.for(NAVIGATION_RUNTIME_SYMBOL_DESCRIPTION);
|
|
5
|
+
const ROUTE_MANIFEST_SEGMENT_GRAPH_MAP_KEYS = [
|
|
6
|
+
"boundaries",
|
|
7
|
+
"defaults",
|
|
8
|
+
"interceptions",
|
|
9
|
+
"interceptionsBySlotId",
|
|
10
|
+
"layouts",
|
|
11
|
+
"pages",
|
|
12
|
+
"rootBoundaries",
|
|
13
|
+
"routeHandlers",
|
|
14
|
+
"routes",
|
|
15
|
+
"slotBindings",
|
|
16
|
+
"slots",
|
|
17
|
+
"templates"
|
|
18
|
+
];
|
|
19
|
+
function createNavigationRuntime() {
|
|
20
|
+
return {
|
|
21
|
+
bootstrap: {
|
|
22
|
+
routeManifest: null,
|
|
23
|
+
rsc: void 0
|
|
24
|
+
},
|
|
25
|
+
functions: {}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function readRuntimeWindow() {
|
|
29
|
+
if (typeof window === "undefined") return null;
|
|
30
|
+
return window;
|
|
31
|
+
}
|
|
32
|
+
function isNavigationRuntimeFunctions(value) {
|
|
33
|
+
if (!isUnknownRecord(value)) return false;
|
|
34
|
+
return isOptionalRuntimeFunction(Reflect.get(value, "clearNavigationCaches")) && isOptionalRuntimeFunction(Reflect.get(value, "commitHashNavigation")) && isOptionalRuntimeFunction(Reflect.get(value, "navigateExternal")) && isOptionalRuntimeFunction(Reflect.get(value, "navigate")) && isOptionalRuntimeFunction(Reflect.get(value, "notifyLinkNavigationStart")) && isOptionalRuntimeFunction(Reflect.get(value, "pingVisibleLinks"));
|
|
35
|
+
}
|
|
36
|
+
function isNavigationRuntimeRscChunk(value) {
|
|
37
|
+
if (typeof value === "string") return true;
|
|
38
|
+
return Array.isArray(value) && value.length === 2 && value[0] === 3 && typeof value[1] === "string";
|
|
39
|
+
}
|
|
40
|
+
function isNavigationRuntimeSnapshot(value) {
|
|
41
|
+
if (!isUnknownRecord(value)) return false;
|
|
42
|
+
const pathname = Reflect.get(value, "pathname");
|
|
43
|
+
const searchParams = Reflect.get(value, "searchParams");
|
|
44
|
+
return typeof pathname === "string" && Array.isArray(searchParams) && searchParams.every((entry) => Array.isArray(entry) && entry.length === 2 && typeof entry[0] === "string" && typeof entry[1] === "string");
|
|
45
|
+
}
|
|
46
|
+
function isNavigationRuntimeParams(value) {
|
|
47
|
+
if (!isUnknownRecord(value)) return false;
|
|
48
|
+
return Object.values(value).every((entry) => typeof entry === "string" || Array.isArray(entry) && entry.every((part) => typeof part === "string"));
|
|
49
|
+
}
|
|
50
|
+
function isNavigationRuntimeRscBootstrap(value) {
|
|
51
|
+
if (!isUnknownRecord(value)) return false;
|
|
52
|
+
const done = Reflect.get(value, "done");
|
|
53
|
+
const nav = Reflect.get(value, "nav");
|
|
54
|
+
const params = Reflect.get(value, "params");
|
|
55
|
+
const rsc = Reflect.get(value, "rsc");
|
|
56
|
+
return (done === void 0 || typeof done === "boolean") && (nav === void 0 || isNavigationRuntimeSnapshot(nav)) && (params === void 0 || isNavigationRuntimeParams(params)) && Array.isArray(rsc) && rsc.every(isNavigationRuntimeRscChunk);
|
|
57
|
+
}
|
|
58
|
+
function isReadonlyStringArray(value) {
|
|
59
|
+
return Array.isArray(value) && value.every((entry) => typeof entry === "string");
|
|
60
|
+
}
|
|
61
|
+
function isNullableString(value) {
|
|
62
|
+
return value === null || typeof value === "string";
|
|
63
|
+
}
|
|
64
|
+
function isNavigationRuntimeInterception(value) {
|
|
65
|
+
if (!isUnknownRecord(value)) return false;
|
|
66
|
+
return typeof value.id === "string" && typeof value.sourcePattern === "string" && isReadonlyStringArray(value.sourcePatternParts) && typeof value.targetPattern === "string" && isReadonlyStringArray(value.targetPatternParts) && typeof value.slotId === "string" && isNullableString(value.ownerLayoutId) && isNullableString(value.interceptingRouteId) && isNullableString(value.targetRouteId);
|
|
67
|
+
}
|
|
68
|
+
function isNavigationRuntimeInterceptionArray(value) {
|
|
69
|
+
return Array.isArray(value) && value.every(isNavigationRuntimeInterception);
|
|
70
|
+
}
|
|
71
|
+
function isNavigationRuntimeRouteManifest(value) {
|
|
72
|
+
if (!isUnknownRecord(value)) return false;
|
|
73
|
+
const graphVersion = Reflect.get(value, "graphVersion");
|
|
74
|
+
const segmentGraph = Reflect.get(value, "segmentGraph");
|
|
75
|
+
if (typeof graphVersion !== "string" || !isUnknownRecord(segmentGraph)) return false;
|
|
76
|
+
const interceptions = Reflect.get(segmentGraph, "interceptions");
|
|
77
|
+
const interceptionsBySlotId = Reflect.get(segmentGraph, "interceptionsBySlotId");
|
|
78
|
+
if (!ROUTE_MANIFEST_SEGMENT_GRAPH_MAP_KEYS.every((key) => Reflect.get(segmentGraph, key) instanceof Map) || !(interceptions instanceof Map) || !(interceptionsBySlotId instanceof Map)) return false;
|
|
79
|
+
for (const interception of interceptions.values()) if (!isNavigationRuntimeInterception(interception)) return false;
|
|
80
|
+
for (const slotInterceptions of interceptionsBySlotId.values()) if (!isNavigationRuntimeInterceptionArray(slotInterceptions)) return false;
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
function isNavigationRuntimeBootstrap(value) {
|
|
84
|
+
if (!isUnknownRecord(value)) return false;
|
|
85
|
+
const routeManifest = Reflect.get(value, "routeManifest");
|
|
86
|
+
const rsc = Reflect.get(value, "rsc");
|
|
87
|
+
return (routeManifest === null || isNavigationRuntimeRouteManifest(routeManifest)) && (rsc === void 0 || isNavigationRuntimeRscBootstrap(rsc));
|
|
88
|
+
}
|
|
89
|
+
function isNavigationRuntime(value) {
|
|
90
|
+
if (!isUnknownRecord(value)) return false;
|
|
91
|
+
if (!("bootstrap" in value) || !("functions" in value)) return false;
|
|
92
|
+
const { bootstrap, functions } = value;
|
|
93
|
+
return isNavigationRuntimeBootstrap(bootstrap) && isNavigationRuntimeFunctions(functions);
|
|
94
|
+
}
|
|
95
|
+
function isOptionalRuntimeFunction(value) {
|
|
96
|
+
return value === void 0 || typeof value === "function";
|
|
97
|
+
}
|
|
98
|
+
function getNavigationRuntime() {
|
|
99
|
+
const runtimeWindow = readRuntimeWindow();
|
|
100
|
+
if (runtimeWindow === null) return null;
|
|
101
|
+
const runtime = Reflect.get(runtimeWindow, NAVIGATION_RUNTIME_KEY);
|
|
102
|
+
return isNavigationRuntime(runtime) ? runtime : null;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Returns the registered browser runtime, creating it when a window exists.
|
|
106
|
+
* Without a window, callers receive a detached runtime and must retain the
|
|
107
|
+
* returned reference themselves; server calls are intentionally not global.
|
|
108
|
+
*/
|
|
109
|
+
function ensureNavigationRuntime() {
|
|
110
|
+
const runtimeWindow = readRuntimeWindow();
|
|
111
|
+
if (runtimeWindow === null) return createNavigationRuntime();
|
|
112
|
+
const existingRuntime = Reflect.get(runtimeWindow, NAVIGATION_RUNTIME_KEY);
|
|
113
|
+
const runtime = isNavigationRuntime(existingRuntime) ? existingRuntime : createNavigationRuntime();
|
|
114
|
+
Reflect.set(runtimeWindow, NAVIGATION_RUNTIME_KEY, runtime);
|
|
115
|
+
return runtime;
|
|
116
|
+
}
|
|
117
|
+
function registerNavigationRuntimeBootstrap(bootstrap) {
|
|
118
|
+
const runtime = ensureNavigationRuntime();
|
|
119
|
+
runtime.bootstrap = {
|
|
120
|
+
...runtime.bootstrap,
|
|
121
|
+
...bootstrap
|
|
122
|
+
};
|
|
123
|
+
return runtime;
|
|
124
|
+
}
|
|
125
|
+
function registerNavigationRuntimeFunctions(functions) {
|
|
126
|
+
const runtime = ensureNavigationRuntime();
|
|
127
|
+
runtime.functions = {
|
|
128
|
+
...runtime.functions,
|
|
129
|
+
...functions
|
|
130
|
+
};
|
|
131
|
+
return runtime;
|
|
132
|
+
}
|
|
133
|
+
function ensureNavigationRuntimeRscBootstrap() {
|
|
134
|
+
return ensureNavigationRuntimeRscBootstrapForRuntime(ensureNavigationRuntime());
|
|
135
|
+
}
|
|
136
|
+
function ensureNavigationRuntimeRscBootstrapForRuntime(runtime) {
|
|
137
|
+
const rscBootstrap = runtime.bootstrap.rsc;
|
|
138
|
+
if (rscBootstrap === void 0) {
|
|
139
|
+
const nextRscBootstrap = { rsc: [] };
|
|
140
|
+
runtime.bootstrap.rsc = nextRscBootstrap;
|
|
141
|
+
return nextRscBootstrap;
|
|
142
|
+
}
|
|
143
|
+
return rscBootstrap;
|
|
144
|
+
}
|
|
145
|
+
function subscribeNavigationRuntimeRscChunk(chunk) {
|
|
146
|
+
const runtime = ensureNavigationRuntime();
|
|
147
|
+
ensureNavigationRuntimeRscBootstrapForRuntime(runtime).rsc.push(chunk);
|
|
148
|
+
return runtime;
|
|
149
|
+
}
|
|
150
|
+
function hasAppNavigationRuntime() {
|
|
151
|
+
return typeof getNavigationRuntime()?.functions.navigate === "function";
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* True when the App Router has installed its runtime bootstrap on `window`,
|
|
155
|
+
* which the inline runtime-metadata script does synchronously in `<head>`.
|
|
156
|
+
*
|
|
157
|
+
* This is a stronger early-life signal than `hasAppNavigationRuntime()` — the
|
|
158
|
+
* latter checks for the fully-wired `navigate` function and so returns false
|
|
159
|
+
* during the brief window between HTML parse and the bootstrap module
|
|
160
|
+
* finishing initialization. Code that needs to differentiate App Router from
|
|
161
|
+
* Pages Router *during hydration* (e.g. the Script shim deciding whether the
|
|
162
|
+
* server-side pre-head splice already emitted the inline beforeInteractive
|
|
163
|
+
* tag) should call this instead.
|
|
164
|
+
*/
|
|
165
|
+
function hasAppNavigationRuntimeBootstrap() {
|
|
166
|
+
return getNavigationRuntime() !== null;
|
|
167
|
+
}
|
|
168
|
+
//#endregion
|
|
169
|
+
export { NAVIGATION_RUNTIME_KEY, NAVIGATION_RUNTIME_SYMBOL_DESCRIPTION, ensureNavigationRuntimeRscBootstrap, getNavigationRuntime, hasAppNavigationRuntime, hasAppNavigationRuntimeBootstrap, registerNavigationRuntimeBootstrap, registerNavigationRuntimeFunctions, subscribeNavigationRuntimeRscChunk };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//#region src/client/pages-router-link-navigation.d.ts
|
|
2
|
+
type PagesRouterLinkTransitionOptions = {
|
|
3
|
+
scroll?: boolean;
|
|
4
|
+
shallow?: boolean;
|
|
5
|
+
locale?: string | false;
|
|
6
|
+
_vinextInterpolateDynamicRoute?: boolean;
|
|
7
|
+
};
|
|
8
|
+
type PagesRouterLinkRuntime = {
|
|
9
|
+
push(url: string, as?: string, options?: PagesRouterLinkTransitionOptions): Promise<boolean>;
|
|
10
|
+
replace(url: string, as?: string, options?: PagesRouterLinkTransitionOptions): Promise<boolean>;
|
|
11
|
+
};
|
|
12
|
+
type PagesRouterLinkNavigation = {
|
|
13
|
+
href: string;
|
|
14
|
+
/**
|
|
15
|
+
* Optional `as` mask — the browser-bar URL when it differs from `href`
|
|
16
|
+
* (a Pages Router route pattern, e.g. `<Link href="/posts/[id]" as="/posts/1">`).
|
|
17
|
+
* When present, `router.push/replace(href, as, ...)` is invoked with both
|
|
18
|
+
* values so the upstream (url, as) pair survives end-to-end. Mirrors
|
|
19
|
+
* Next.js's Link → Router contract: packages/next/src/client/link.tsx
|
|
20
|
+
* → router.push(href, as).
|
|
21
|
+
*/
|
|
22
|
+
as?: string;
|
|
23
|
+
replace: boolean;
|
|
24
|
+
scroll: boolean;
|
|
25
|
+
shallow?: boolean;
|
|
26
|
+
locale?: string | false;
|
|
27
|
+
interpolateDynamicRoute?: boolean;
|
|
28
|
+
};
|
|
29
|
+
declare function resolvePagesRouterQueryOnlyHref(href: string, {
|
|
30
|
+
asPath,
|
|
31
|
+
basePath,
|
|
32
|
+
fallbackHref,
|
|
33
|
+
locales
|
|
34
|
+
}: {
|
|
35
|
+
asPath?: string;
|
|
36
|
+
basePath: string;
|
|
37
|
+
fallbackHref: string;
|
|
38
|
+
locales?: readonly string[];
|
|
39
|
+
}): string;
|
|
40
|
+
declare function navigatePagesRouterLink(router: PagesRouterLinkRuntime, {
|
|
41
|
+
href,
|
|
42
|
+
as,
|
|
43
|
+
replace,
|
|
44
|
+
scroll,
|
|
45
|
+
shallow,
|
|
46
|
+
locale,
|
|
47
|
+
interpolateDynamicRoute
|
|
48
|
+
}: PagesRouterLinkNavigation): Promise<void>;
|
|
49
|
+
declare function navigatePagesRouterLinkWithFallback({
|
|
50
|
+
router,
|
|
51
|
+
loadRouter,
|
|
52
|
+
navigation,
|
|
53
|
+
fallback
|
|
54
|
+
}: {
|
|
55
|
+
router?: PagesRouterLinkRuntime;
|
|
56
|
+
loadRouter: () => Promise<PagesRouterLinkRuntime | undefined>;
|
|
57
|
+
navigation: PagesRouterLinkNavigation;
|
|
58
|
+
fallback: () => void;
|
|
59
|
+
}): Promise<void>;
|
|
60
|
+
//#endregion
|
|
61
|
+
export { navigatePagesRouterLink, navigatePagesRouterLinkWithFallback, resolvePagesRouterQueryOnlyHref };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { stripBasePath } from "../utils/base-path.js";
|
|
2
|
+
import { getLocalePathPrefix } from "../utils/domain-locale.js";
|
|
3
|
+
//#region src/client/pages-router-link-navigation.ts
|
|
4
|
+
function resolvePagesRouterQueryOnlyHref(href, { asPath, basePath, fallbackHref, locales }) {
|
|
5
|
+
if (!href.startsWith("?")) return href;
|
|
6
|
+
try {
|
|
7
|
+
const fallbackUrl = new URL(fallbackHref);
|
|
8
|
+
const base = new URL(asPath ?? `${stripBasePath(fallbackUrl.pathname, basePath)}${fallbackUrl.search}${fallbackUrl.hash}`, "http://vinext.local");
|
|
9
|
+
const locale = getLocalePathPrefix(base.pathname, locales);
|
|
10
|
+
if (locale) base.pathname = base.pathname.slice(locale.length + 1) || "/";
|
|
11
|
+
const resolved = new URL(href, base);
|
|
12
|
+
return resolved.href.slice(resolved.origin.length);
|
|
13
|
+
} catch {
|
|
14
|
+
return href;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async function navigatePagesRouterLink(router, { href, as, replace, scroll, shallow, locale, interpolateDynamicRoute = false }) {
|
|
18
|
+
const routerOptions = {
|
|
19
|
+
scroll,
|
|
20
|
+
locale
|
|
21
|
+
};
|
|
22
|
+
if (interpolateDynamicRoute) routerOptions._vinextInterpolateDynamicRoute = true;
|
|
23
|
+
if (shallow !== void 0) routerOptions.shallow = shallow;
|
|
24
|
+
if (replace) await router.replace(href, as, routerOptions);
|
|
25
|
+
else await router.push(href, as, routerOptions);
|
|
26
|
+
}
|
|
27
|
+
async function navigatePagesRouterLinkWithFallback({ router, loadRouter, navigation, fallback }) {
|
|
28
|
+
let pagesRouter = router;
|
|
29
|
+
if (!pagesRouter) try {
|
|
30
|
+
pagesRouter = await loadRouter();
|
|
31
|
+
} catch {
|
|
32
|
+
fallback();
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (!pagesRouter) {
|
|
36
|
+
fallback();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
await navigatePagesRouterLink(pagesRouter, navigation);
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { navigatePagesRouterLink, navigatePagesRouterLinkWithFallback, resolvePagesRouterQueryOnlyHref };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/client/validate-module-path.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Defense-in-depth: validate module paths before passing them to dynamic import().
|
|
4
|
+
*
|
|
5
|
+
* Shared between entry.ts (initial hydration) and router.ts (client-side navigation)
|
|
6
|
+
* to ensure all dynamic imports of page/app modules go through the same validation.
|
|
7
|
+
*
|
|
8
|
+
* Blocks:
|
|
9
|
+
* - Non-string or empty values
|
|
10
|
+
* - Paths that don't start with `/` or `./` (e.g., `https://evil.com/...`)
|
|
11
|
+
* - Protocol URLs (`://`)
|
|
12
|
+
* - Protocol-relative URLs (`//...`)
|
|
13
|
+
* - Directory traversal (`..`)
|
|
14
|
+
*/
|
|
15
|
+
declare function isValidModulePath(p: unknown): p is string;
|
|
16
|
+
//#endregion
|
|
17
|
+
export { isValidModulePath };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/client/validate-module-path.ts
|
|
2
|
+
/**
|
|
3
|
+
* Defense-in-depth: validate module paths before passing them to dynamic import().
|
|
4
|
+
*
|
|
5
|
+
* Shared between entry.ts (initial hydration) and router.ts (client-side navigation)
|
|
6
|
+
* to ensure all dynamic imports of page/app modules go through the same validation.
|
|
7
|
+
*
|
|
8
|
+
* Blocks:
|
|
9
|
+
* - Non-string or empty values
|
|
10
|
+
* - Paths that don't start with `/` or `./` (e.g., `https://evil.com/...`)
|
|
11
|
+
* - Protocol URLs (`://`)
|
|
12
|
+
* - Protocol-relative URLs (`//...`)
|
|
13
|
+
* - Directory traversal (`..`)
|
|
14
|
+
*/
|
|
15
|
+
function isValidModulePath(p) {
|
|
16
|
+
if (typeof p !== "string" || p.length === 0) return false;
|
|
17
|
+
if (!p.startsWith("/") && !p.startsWith("./")) return false;
|
|
18
|
+
if (p.startsWith("//")) return false;
|
|
19
|
+
if (p.includes("://")) return false;
|
|
20
|
+
if (p.includes("..")) return false;
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { isValidModulePath };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { NEXT_DATA } from "../shims/internal/utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/client/vinext-next-data.d.ts
|
|
4
|
+
type VinextLinkPrefetchRoute = {
|
|
5
|
+
canPrefetchLoadingShell: boolean;
|
|
6
|
+
documentOnly?: boolean;
|
|
7
|
+
isDynamic: boolean;
|
|
8
|
+
patternParts: string[];
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Pages Router route pattern exposed to the client so the App Router's
|
|
12
|
+
* navigation runtime can decide whether a soft-navigated URL should be
|
|
13
|
+
* handled by Pages (hard nav) or App (RSC). Mirrors the public shape of
|
|
14
|
+
* `VinextLinkPrefetchRoute` so a single trie matcher handles both.
|
|
15
|
+
*
|
|
16
|
+
* `canPrefetchLoadingShell` is always `false` for Pages routes — Pages
|
|
17
|
+
* does not have a separate loading boundary and its prefetch surface is
|
|
18
|
+
* `_next/data/<buildId>/<page>.json`.
|
|
19
|
+
*/
|
|
20
|
+
type VinextPagesLinkPrefetchRoute = {
|
|
21
|
+
canPrefetchLoadingShell: false;
|
|
22
|
+
documentOnly?: boolean;
|
|
23
|
+
isDynamic: boolean;
|
|
24
|
+
patternParts: string[];
|
|
25
|
+
};
|
|
26
|
+
type VinextNextData = {
|
|
27
|
+
/** vinext-specific additions (not part of Next.js upstream). */__vinext?: {
|
|
28
|
+
/** Absolute URL of the page module for dynamic import. */pageModuleUrl?: string; /** Absolute URL of the `_app` module for dynamic import. */
|
|
29
|
+
appModuleUrl?: string; /** True when the Pages Router server has middleware/proxy configured. */
|
|
30
|
+
hasMiddleware?: boolean; /** True when build-time rewrites can affect the initial Pages Router ready state. */
|
|
31
|
+
hasRewrites?: boolean;
|
|
32
|
+
};
|
|
33
|
+
} & NEXT_DATA;
|
|
34
|
+
type BrowserVinextNextData = NonNullable<Window["__NEXT_DATA__"]> & VinextNextData;
|
|
35
|
+
type VinextLocaleGlobalTarget = {
|
|
36
|
+
__VINEXT_LOCALE__: string | undefined;
|
|
37
|
+
__VINEXT_LOCALES__: string[] | undefined;
|
|
38
|
+
__VINEXT_DEFAULT_LOCALE__: string | undefined;
|
|
39
|
+
};
|
|
40
|
+
declare function extractVinextNextDataJson(html: string): string | null;
|
|
41
|
+
declare function parseVinextNextDataJson(json: string): BrowserVinextNextData;
|
|
42
|
+
declare function applyVinextLocaleGlobals(target: VinextLocaleGlobalTarget, nextData: VinextNextData): void;
|
|
43
|
+
//#endregion
|
|
44
|
+
export { VinextLinkPrefetchRoute, VinextNextData, VinextPagesLinkPrefetchRoute, applyVinextLocaleGlobals, extractVinextNextDataJson, parseVinextNextDataJson };
|