@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,80 @@
|
|
|
1
|
+
import { isCatchAllSegment, isOptionalCatchAllSegment } from "../routing/utils.js";
|
|
2
|
+
//#region src/server/app-page-segment-state.ts
|
|
3
|
+
function isDynamicSegment(segment) {
|
|
4
|
+
return segment.startsWith("[") && segment.endsWith("]") && !segment.includes(".");
|
|
5
|
+
}
|
|
6
|
+
function isRouteGroupSegment(segment) {
|
|
7
|
+
return segment.startsWith("(") && segment.endsWith(")");
|
|
8
|
+
}
|
|
9
|
+
function formatParamSegmentValue(value) {
|
|
10
|
+
if (Array.isArray(value)) return value.join("/");
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
function readSegmentParam(segment) {
|
|
14
|
+
if (isOptionalCatchAllSegment(segment)) return {
|
|
15
|
+
name: segment.slice(5, -2),
|
|
16
|
+
type: "oc"
|
|
17
|
+
};
|
|
18
|
+
if (isCatchAllSegment(segment)) return {
|
|
19
|
+
name: segment.slice(4, -1),
|
|
20
|
+
type: "c"
|
|
21
|
+
};
|
|
22
|
+
if (isDynamicSegment(segment)) return {
|
|
23
|
+
name: segment.slice(1, -1),
|
|
24
|
+
type: "d"
|
|
25
|
+
};
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
function formatSegmentStateParamValue(param, params, fallbackSegment) {
|
|
29
|
+
const value = params[param.name];
|
|
30
|
+
if (param.type === "oc" && (value === void 0 || Array.isArray(value) && value.length === 0)) return "";
|
|
31
|
+
return formatParamSegmentValue(value) ?? fallbackSegment;
|
|
32
|
+
}
|
|
33
|
+
function resolveSingleSegmentStateKey(segment, params) {
|
|
34
|
+
const param = readSegmentParam(segment);
|
|
35
|
+
if (!param) return segment;
|
|
36
|
+
return `${param.name}|${formatSegmentStateParamValue(param, params, segment)}|${param.type}`;
|
|
37
|
+
}
|
|
38
|
+
function resolveAppPageChildSegments(routeSegments, treePosition, params) {
|
|
39
|
+
const rawSegments = routeSegments.slice(treePosition);
|
|
40
|
+
const resolvedSegments = [];
|
|
41
|
+
for (const segment of rawSegments) {
|
|
42
|
+
if (isOptionalCatchAllSegment(segment)) {
|
|
43
|
+
const paramValue = params[segment.slice(5, -2)];
|
|
44
|
+
if (Array.isArray(paramValue) && paramValue.length === 0) continue;
|
|
45
|
+
const resolvedValue = formatParamSegmentValue(paramValue);
|
|
46
|
+
if (resolvedValue !== void 0) resolvedSegments.push(resolvedValue);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if (isCatchAllSegment(segment)) {
|
|
50
|
+
const paramName = segment.slice(4, -1);
|
|
51
|
+
resolvedSegments.push(formatParamSegmentValue(params[paramName]) ?? segment);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (isDynamicSegment(segment)) {
|
|
55
|
+
const paramName = segment.slice(1, -1);
|
|
56
|
+
resolvedSegments.push(formatParamSegmentValue(params[paramName]) ?? segment);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
resolvedSegments.push(segment);
|
|
60
|
+
}
|
|
61
|
+
return resolvedSegments;
|
|
62
|
+
}
|
|
63
|
+
function resolveAppPageSegmentStateKey(routeSegments, treePosition, params) {
|
|
64
|
+
for (const segment of routeSegments.slice(treePosition)) if (!isRouteGroupSegment(segment)) return resolveSingleSegmentStateKey(segment, params);
|
|
65
|
+
return "";
|
|
66
|
+
}
|
|
67
|
+
function resolveAppPageRouteStateKey(routeSegments, params) {
|
|
68
|
+
const statePath = [];
|
|
69
|
+
for (const segment of routeSegments) if (!isRouteGroupSegment(segment)) statePath.push(resolveSingleSegmentStateKey(segment, params));
|
|
70
|
+
return statePath.length > 0 ? JSON.stringify(statePath) : "";
|
|
71
|
+
}
|
|
72
|
+
function resolveAppPageLeafSegmentStateKey(routeSegments, params) {
|
|
73
|
+
for (let treePosition = routeSegments.length - 1; treePosition >= 0; treePosition--) {
|
|
74
|
+
const segmentStateKey = resolveAppPageSegmentStateKey(routeSegments, treePosition, params);
|
|
75
|
+
if (segmentStateKey) return segmentStateKey;
|
|
76
|
+
}
|
|
77
|
+
return "";
|
|
78
|
+
}
|
|
79
|
+
//#endregion
|
|
80
|
+
export { resolveAppPageChildSegments, resolveAppPageLeafSegmentStateKey, resolveAppPageRouteStateKey, resolveAppPageSegmentStateKey };
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { NavigationContext } from "../shims/navigation-context-state.js";
|
|
2
|
+
import { AppPageFontPreload } from "./app-page-execution.js";
|
|
3
|
+
import { RootParams } from "../shims/root-params.js";
|
|
4
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
5
|
+
import { ReactFormState } from "react-dom/client";
|
|
6
|
+
|
|
7
|
+
//#region src/server/app-page-stream.d.ts
|
|
8
|
+
type AppPageFontData = {
|
|
9
|
+
links: string[];
|
|
10
|
+
preloads: readonly AppPageFontPreload[];
|
|
11
|
+
styles: string[];
|
|
12
|
+
};
|
|
13
|
+
type CreateAppPageFontDataOptions = {
|
|
14
|
+
getLinks: () => string[];
|
|
15
|
+
getPreloads: () => AppPageFontPreload[];
|
|
16
|
+
getStyles: () => string[];
|
|
17
|
+
};
|
|
18
|
+
type AppSsrRenderResult = {
|
|
19
|
+
htmlStream: ReadableStream<Uint8Array>;
|
|
20
|
+
metadataReady: Promise<void>;
|
|
21
|
+
capturedRscData: Promise<ArrayBuffer> | null;
|
|
22
|
+
shellErrorRecovered?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Preload `Link` header value emitted by React during SSR (via `onHeaders`),
|
|
25
|
+
* already capped to `reactMaxHeadersLength`. Empty/undefined when React
|
|
26
|
+
* emitted no preload headers (or emission was disabled with `0`).
|
|
27
|
+
*/
|
|
28
|
+
linkHeader?: string;
|
|
29
|
+
};
|
|
30
|
+
declare function isAppSsrRenderResult(value: unknown): value is AppSsrRenderResult;
|
|
31
|
+
/**
|
|
32
|
+
* Combine the React-emitted preload `Link` header with vinext's font preload
|
|
33
|
+
* `Link` header, capping the result to `reactMaxHeadersLength`.
|
|
34
|
+
*
|
|
35
|
+
* React already caps its own portion, but vinext emits font preloads through a
|
|
36
|
+
* separate channel. Mirroring Next.js — where every preload flows through a
|
|
37
|
+
* single capped `onHeaders` callback — we cap the *combined* header here,
|
|
38
|
+
* keeping only whole entries that fit and dropping the rest once the limit is
|
|
39
|
+
* exceeded. `0` disables emission entirely (matches React); `undefined` falls
|
|
40
|
+
* back to the React default of 6000.
|
|
41
|
+
*
|
|
42
|
+
* React's hints (scripts/modules/styles) come first so that under a tight cap
|
|
43
|
+
* the render-critical entries survive and trailing font preloads are dropped
|
|
44
|
+
* first.
|
|
45
|
+
*/
|
|
46
|
+
declare function buildAppPageLinkHeader(reactLinkHeader: string | undefined, fontLinkHeader: string | undefined, maxHeadersLength: number | undefined): string;
|
|
47
|
+
type AppPageSsrHandler = {
|
|
48
|
+
handleSsr: (rscStream: ReadableStream<Uint8Array>, navigationContext: NavigationContext | null, fontData: AppPageFontData, options?: {
|
|
49
|
+
formState?: ReactFormState | null;
|
|
50
|
+
scriptNonce?: string;
|
|
51
|
+
basePath?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Allow-list of OpenTelemetry propagation keys to emit as `<meta>` tags
|
|
54
|
+
* in the SSR head. Sourced from `experimental.clientTraceMetadata`.
|
|
55
|
+
*/
|
|
56
|
+
clientTraceMetadata?: readonly string[];
|
|
57
|
+
/**
|
|
58
|
+
* Maximum total length (in characters) of the preload `Link` header
|
|
59
|
+
* emitted during SSR. `0` disables emission. From `reactMaxHeadersLength`
|
|
60
|
+
* in `next.config`.
|
|
61
|
+
*/
|
|
62
|
+
reactMaxHeadersLength?: number;
|
|
63
|
+
rootParams?: RootParams;
|
|
64
|
+
sideStream?: ReadableStream<Uint8Array>;
|
|
65
|
+
capturedRscDataRef?: {
|
|
66
|
+
value: Promise<ArrayBuffer> | null;
|
|
67
|
+
}; /** Abort signal for a build-time PPR fallback-shell static render. */
|
|
68
|
+
pprFallbackShellSignal?: AbortSignal; /** When true, wait for the full React tree before emitting bytes. */
|
|
69
|
+
waitForAllReady?: boolean; /** Dev-only: original server error to surface in the browser overlay. */
|
|
70
|
+
initialDevServerError?: unknown;
|
|
71
|
+
/** When true, an SSR-phase-only shell render error resolves to the
|
|
72
|
+
* default `__next_error__` error-document shell (with the original
|
|
73
|
+
* flight payload and bootstrap) instead of rejecting. See handleSsr. */
|
|
74
|
+
fallbackToErrorDocumentOnShellError?: boolean;
|
|
75
|
+
}) => Promise<ReadableStream<Uint8Array> | AppSsrRenderResult>;
|
|
76
|
+
};
|
|
77
|
+
type RenderAppPageHtmlStreamOptions = {
|
|
78
|
+
fontData: AppPageFontData;
|
|
79
|
+
formState?: ReactFormState | null;
|
|
80
|
+
navigationContext: NavigationContext | null;
|
|
81
|
+
rscStream: ReadableStream<Uint8Array>;
|
|
82
|
+
scriptNonce?: string;
|
|
83
|
+
basePath?: string;
|
|
84
|
+
/**
|
|
85
|
+
* Allow-list of OpenTelemetry propagation keys (from
|
|
86
|
+
* `experimental.clientTraceMetadata`) to surface as `<meta>` tags in
|
|
87
|
+
* the SSR head. Undefined or empty disables emission.
|
|
88
|
+
*/
|
|
89
|
+
clientTraceMetadata?: readonly string[];
|
|
90
|
+
/**
|
|
91
|
+
* Maximum total length (in characters) of the preload `Link` header emitted
|
|
92
|
+
* during SSR. `0` disables emission. From `reactMaxHeadersLength` in
|
|
93
|
+
* `next.config`.
|
|
94
|
+
*/
|
|
95
|
+
reactMaxHeadersLength?: number;
|
|
96
|
+
rootParams?: RootParams;
|
|
97
|
+
ssrHandler: AppPageSsrHandler;
|
|
98
|
+
/** Pre-split side stream for fused embed+capture (#981). When set,
|
|
99
|
+
* handleSsr skips its internal tee and accumulates raw RSC bytes. */
|
|
100
|
+
sideStream?: ReadableStream<Uint8Array>; /** Out-parameter filled with accumulated raw RSC bytes after stream consumption. */
|
|
101
|
+
capturedRscDataRef?: {
|
|
102
|
+
value: Promise<ArrayBuffer> | null;
|
|
103
|
+
}; /** Abort signal for a build-time PPR fallback-shell static render. */
|
|
104
|
+
pprFallbackShellSignal?: AbortSignal; /** When true, wait for the full React tree before emitting bytes. */
|
|
105
|
+
waitForAllReady?: boolean; /** Dev-only: original server error to surface in the browser overlay. */
|
|
106
|
+
initialDevServerError?: unknown;
|
|
107
|
+
/** True when the app supplies a custom global-error.tsx. Disables the
|
|
108
|
+
* default error-document shell fallback so SSR shell errors keep driving
|
|
109
|
+
* the server-rendered global-error boundary re-render. */
|
|
110
|
+
hasCustomGlobalError?: boolean;
|
|
111
|
+
};
|
|
112
|
+
type RenderAppPageHtmlResponseOptions = {
|
|
113
|
+
clearRequestContext: () => void;
|
|
114
|
+
fontLinkHeader?: string;
|
|
115
|
+
isEdgeRuntime?: boolean;
|
|
116
|
+
middlewareHeaders?: Headers | null;
|
|
117
|
+
status: number;
|
|
118
|
+
} & RenderAppPageHtmlStreamOptions;
|
|
119
|
+
type AppPageHtmlStreamRecoveryResult = {
|
|
120
|
+
htmlStream: ReadableStream<Uint8Array> | null;
|
|
121
|
+
response: Response | null;
|
|
122
|
+
metadataReady: Promise<void>;
|
|
123
|
+
capturedRscData: Promise<ArrayBuffer> | null;
|
|
124
|
+
shellErrorRecovered: boolean; /** React-emitted preload `Link` header (already capped). */
|
|
125
|
+
linkHeader?: string;
|
|
126
|
+
};
|
|
127
|
+
type RenderAppPageHtmlStreamWithRecoveryOptions<TSpecialError> = {
|
|
128
|
+
onShellRendered?: () => void;
|
|
129
|
+
renderErrorBoundaryResponse: (error: unknown) => Promise<Response | null>;
|
|
130
|
+
renderHtmlStream: () => Promise<ReadableStream<Uint8Array> | AppSsrRenderResult>;
|
|
131
|
+
renderSpecialErrorResponse: (specialError: TSpecialError) => Promise<Response>;
|
|
132
|
+
resolveSpecialError: (error: unknown) => TSpecialError | null;
|
|
133
|
+
};
|
|
134
|
+
type AppPageRscErrorTracker = {
|
|
135
|
+
getCapturedError: () => unknown;
|
|
136
|
+
/**
|
|
137
|
+
* Returns a NEXT_REDIRECT or NEXT_HTTP_ERROR_FALLBACK error captured during
|
|
138
|
+
* the RSC render. Read after the SSR shell promise resolves to swap a
|
|
139
|
+
* 307/404 in place of the streamed body when redirect()/notFound() throws
|
|
140
|
+
* synchronously inside a route-level Suspense boundary (loading.tsx).
|
|
141
|
+
*/
|
|
142
|
+
getCapturedSpecialError: () => unknown;
|
|
143
|
+
onRenderError: (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown;
|
|
144
|
+
};
|
|
145
|
+
declare function createAppPageFontData(options: CreateAppPageFontDataOptions): AppPageFontData;
|
|
146
|
+
declare function renderAppPageHtmlStream(options: RenderAppPageHtmlStreamOptions): Promise<AppSsrRenderResult>;
|
|
147
|
+
declare function renderAppPageHtmlResponse(options: RenderAppPageHtmlResponseOptions): Promise<Response>;
|
|
148
|
+
declare function renderAppPageHtmlStreamWithRecovery<TSpecialError>(options: RenderAppPageHtmlStreamWithRecoveryOptions<TSpecialError>): Promise<AppPageHtmlStreamRecoveryResult>;
|
|
149
|
+
declare function createAppPageRscErrorTracker(baseOnError: (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown): AppPageRscErrorTracker;
|
|
150
|
+
//#endregion
|
|
151
|
+
export { AppPageFontData, AppPageSsrHandler, AppSsrRenderResult, buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, deferUntilStreamConsumed, isAppSsrRenderResult, renderAppPageHtmlResponse, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery };
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { isNavigationSignalError } from "../utils/navigation-signal.js";
|
|
2
|
+
import { VINEXT_RSC_VARY_HEADER } from "./app-rsc-cache-busting.js";
|
|
3
|
+
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
4
|
+
import { applyEdgeRuntimeHeader } from "./app-page-response.js";
|
|
5
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
6
|
+
//#region src/server/app-page-stream.ts
|
|
7
|
+
function isAppSsrRenderResult(value) {
|
|
8
|
+
return typeof value === "object" && value !== null && "htmlStream" in value && "metadataReady" in value;
|
|
9
|
+
}
|
|
10
|
+
const resolvedMetadataReady = Promise.resolve();
|
|
11
|
+
function normalizeAppSsrRenderResult(raw, fallbackCapturedRscData = null) {
|
|
12
|
+
if (isAppSsrRenderResult(raw)) return raw;
|
|
13
|
+
return {
|
|
14
|
+
htmlStream: raw,
|
|
15
|
+
metadataReady: resolvedMetadataReady,
|
|
16
|
+
capturedRscData: fallbackCapturedRscData,
|
|
17
|
+
shellErrorRecovered: false
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Combine the React-emitted preload `Link` header with vinext's font preload
|
|
22
|
+
* `Link` header, capping the result to `reactMaxHeadersLength`.
|
|
23
|
+
*
|
|
24
|
+
* React already caps its own portion, but vinext emits font preloads through a
|
|
25
|
+
* separate channel. Mirroring Next.js — where every preload flows through a
|
|
26
|
+
* single capped `onHeaders` callback — we cap the *combined* header here,
|
|
27
|
+
* keeping only whole entries that fit and dropping the rest once the limit is
|
|
28
|
+
* exceeded. `0` disables emission entirely (matches React); `undefined` falls
|
|
29
|
+
* back to the React default of 6000.
|
|
30
|
+
*
|
|
31
|
+
* React's hints (scripts/modules/styles) come first so that under a tight cap
|
|
32
|
+
* the render-critical entries survive and trailing font preloads are dropped
|
|
33
|
+
* first.
|
|
34
|
+
*/
|
|
35
|
+
function buildAppPageLinkHeader(reactLinkHeader, fontLinkHeader, maxHeadersLength) {
|
|
36
|
+
const limit = typeof maxHeadersLength === "number" ? maxHeadersLength : 6e3;
|
|
37
|
+
if (limit <= 0) return "";
|
|
38
|
+
const entries = [];
|
|
39
|
+
for (const source of [reactLinkHeader, fontLinkHeader]) {
|
|
40
|
+
if (!source) continue;
|
|
41
|
+
for (const entry of source.split(", ")) if (entry.length > 0) entries.push(entry);
|
|
42
|
+
}
|
|
43
|
+
let header = "";
|
|
44
|
+
for (const entry of entries) {
|
|
45
|
+
const next = header.length === 0 ? entry : `${header}, ${entry}`;
|
|
46
|
+
if (next.length > limit) break;
|
|
47
|
+
header = next;
|
|
48
|
+
}
|
|
49
|
+
return header;
|
|
50
|
+
}
|
|
51
|
+
function createAppPageFontData(options) {
|
|
52
|
+
return {
|
|
53
|
+
links: options.getLinks(),
|
|
54
|
+
preloads: options.getPreloads(),
|
|
55
|
+
styles: options.getStyles()
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async function renderAppPageHtmlStream(options) {
|
|
59
|
+
const ssrOptions = {
|
|
60
|
+
formState: options.formState ?? null,
|
|
61
|
+
scriptNonce: options.scriptNonce,
|
|
62
|
+
basePath: options.basePath,
|
|
63
|
+
clientTraceMetadata: options.clientTraceMetadata,
|
|
64
|
+
reactMaxHeadersLength: options.reactMaxHeadersLength,
|
|
65
|
+
rootParams: options.rootParams,
|
|
66
|
+
sideStream: options.sideStream,
|
|
67
|
+
capturedRscDataRef: options.capturedRscDataRef,
|
|
68
|
+
pprFallbackShellSignal: options.pprFallbackShellSignal,
|
|
69
|
+
waitForAllReady: options.waitForAllReady,
|
|
70
|
+
initialDevServerError: options.initialDevServerError,
|
|
71
|
+
fallbackToErrorDocumentOnShellError: options.waitForAllReady !== true && options.hasCustomGlobalError === false
|
|
72
|
+
};
|
|
73
|
+
return normalizeAppSsrRenderResult(await options.ssrHandler.handleSsr(options.rscStream, options.navigationContext, options.fontData, ssrOptions), options.capturedRscDataRef?.value ?? null);
|
|
74
|
+
}
|
|
75
|
+
async function renderAppPageHtmlResponse(options) {
|
|
76
|
+
const { htmlStream } = await renderAppPageHtmlStream(options);
|
|
77
|
+
const safeStream = deferUntilStreamConsumed(htmlStream, () => {
|
|
78
|
+
options.clearRequestContext();
|
|
79
|
+
});
|
|
80
|
+
const headers = new Headers({
|
|
81
|
+
"Content-Type": "text/html; charset=utf-8",
|
|
82
|
+
Vary: VINEXT_RSC_VARY_HEADER
|
|
83
|
+
});
|
|
84
|
+
applyEdgeRuntimeHeader(headers, options.isEdgeRuntime);
|
|
85
|
+
if (options.fontLinkHeader) headers.set("Link", options.fontLinkHeader);
|
|
86
|
+
mergeMiddlewareResponseHeaders(headers, options.middlewareHeaders ?? null);
|
|
87
|
+
return new Response(safeStream, {
|
|
88
|
+
status: options.status,
|
|
89
|
+
headers
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async function renderAppPageHtmlStreamWithRecovery(options) {
|
|
93
|
+
try {
|
|
94
|
+
const { htmlStream, metadataReady, capturedRscData, linkHeader, shellErrorRecovered } = normalizeAppSsrRenderResult(await options.renderHtmlStream());
|
|
95
|
+
options.onShellRendered?.();
|
|
96
|
+
return {
|
|
97
|
+
htmlStream,
|
|
98
|
+
response: null,
|
|
99
|
+
metadataReady,
|
|
100
|
+
capturedRscData,
|
|
101
|
+
shellErrorRecovered: shellErrorRecovered === true,
|
|
102
|
+
linkHeader
|
|
103
|
+
};
|
|
104
|
+
} catch (error) {
|
|
105
|
+
const specialError = options.resolveSpecialError(error);
|
|
106
|
+
if (specialError) return {
|
|
107
|
+
htmlStream: null,
|
|
108
|
+
response: await options.renderSpecialErrorResponse(specialError),
|
|
109
|
+
metadataReady: resolvedMetadataReady,
|
|
110
|
+
capturedRscData: null,
|
|
111
|
+
shellErrorRecovered: false
|
|
112
|
+
};
|
|
113
|
+
const boundaryResponse = await options.renderErrorBoundaryResponse(error);
|
|
114
|
+
if (boundaryResponse) return {
|
|
115
|
+
htmlStream: null,
|
|
116
|
+
response: boundaryResponse,
|
|
117
|
+
metadataReady: resolvedMetadataReady,
|
|
118
|
+
capturedRscData: null,
|
|
119
|
+
shellErrorRecovered: false
|
|
120
|
+
};
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function createAppPageRscErrorTracker(baseOnError) {
|
|
125
|
+
let capturedError = null;
|
|
126
|
+
let capturedSpecialError = null;
|
|
127
|
+
return {
|
|
128
|
+
getCapturedError() {
|
|
129
|
+
return capturedError;
|
|
130
|
+
},
|
|
131
|
+
getCapturedSpecialError() {
|
|
132
|
+
return capturedSpecialError;
|
|
133
|
+
},
|
|
134
|
+
onRenderError(error, requestInfo, errorContext) {
|
|
135
|
+
if (isNavigationSignalError(error)) {
|
|
136
|
+
if (capturedSpecialError === null) capturedSpecialError = error;
|
|
137
|
+
} else capturedError = error;
|
|
138
|
+
return baseOnError(error, requestInfo, errorContext);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//#endregion
|
|
143
|
+
export { buildAppPageLinkHeader, createAppPageFontData, createAppPageRscErrorTracker, deferUntilStreamConsumed, isAppSsrRenderResult, renderAppPageHtmlResponse, renderAppPageHtmlStream, renderAppPageHtmlStreamWithRecovery };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { AppMiddlewareContext } from "./app-middleware.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/app-pages-bridge.d.ts
|
|
4
|
+
type PagesEntry = {
|
|
5
|
+
handleApiRoute?: (request: Request, url: string) => Promise<Response> | Response;
|
|
6
|
+
matchApiRoute?: (url: string, request: Request) => PagesRouteMatch | null;
|
|
7
|
+
matchPageRoute?: (url: string, request: Request) => PagesRouteMatch | null;
|
|
8
|
+
renderPage?: (request: Request, url: string, query: Record<string, unknown>, parsedUrl: unknown, middlewareRequestHeaders?: Headers | null, options?: {
|
|
9
|
+
isDataReq?: boolean;
|
|
10
|
+
}) => Promise<Response> | Response;
|
|
11
|
+
};
|
|
12
|
+
type PagesRouteMatch = {
|
|
13
|
+
route: {
|
|
14
|
+
isDynamic: boolean;
|
|
15
|
+
pattern: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
type AppRouteMatch = {
|
|
19
|
+
route: {
|
|
20
|
+
isDynamic: boolean;
|
|
21
|
+
pattern: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
type RenderPagesFallbackDependencies = {
|
|
25
|
+
loadPagesEntry: () => Promise<PagesEntry> | PagesEntry;
|
|
26
|
+
buildRequestHeaders: (requestHeaders: Headers, middlewareRequestHeaders: Headers) => Headers | null;
|
|
27
|
+
decodePathParams: (pathname: string) => string;
|
|
28
|
+
applyRouteHandlerMiddlewareContext: (response: Response, middlewareContext: AppMiddlewareContext) => Response;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the `__prerender_bypass` Set-Cookie header emitted by a
|
|
31
|
+
* `draftMode().enable()`/`disable()` call inside middleware, if any. Reading
|
|
32
|
+
* it clears it. Mirrors how App Router route handlers and page renders surface
|
|
33
|
+
* the middleware-enabled draft cookie so the same flow works when the request
|
|
34
|
+
* falls through to a Pages Router route.
|
|
35
|
+
*
|
|
36
|
+
* Note: this closes the draft-mode flow for production (Cloudflare Workers /
|
|
37
|
+
* Node), where middleware runs inline in the same RSC handler context that
|
|
38
|
+
* builds this fallback. In hybrid *dev*, middleware runs in a separate Vite
|
|
39
|
+
* Pages SSR runner and `draftMode()` inside middleware is not yet permitted
|
|
40
|
+
* there (it throws a scope error before any cookie is set), so this getter
|
|
41
|
+
* returns `null` and no cookie is appended. That dev limitation is pre-existing
|
|
42
|
+
* and tracked separately from #1520.
|
|
43
|
+
*/
|
|
44
|
+
getDraftModeCookieHeader: () => string | null | undefined;
|
|
45
|
+
};
|
|
46
|
+
type RenderPagesFallbackOptions = {
|
|
47
|
+
allowRscDocumentFallback?: boolean;
|
|
48
|
+
appRouteMatch?: AppRouteMatch | null;
|
|
49
|
+
isDataRequest?: boolean;
|
|
50
|
+
isRscRequest: boolean;
|
|
51
|
+
matchKind?: "dynamic" | "static";
|
|
52
|
+
middlewareContext: AppMiddlewareContext;
|
|
53
|
+
pathname?: string;
|
|
54
|
+
pagesDataRequest?: Request | null;
|
|
55
|
+
request: Request;
|
|
56
|
+
url: URL;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Fallback handler to route App Router requests to the Pages Router when no App Router route matches.
|
|
60
|
+
*/
|
|
61
|
+
declare function renderPagesFallback(options: RenderPagesFallbackOptions, dependencies: RenderPagesFallbackDependencies): Promise<Response | null>;
|
|
62
|
+
//#endregion
|
|
63
|
+
export { PagesEntry, renderPagesFallback };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { cloneRequestWithHeaders, cloneRequestWithUrl } from "./request-pipeline.js";
|
|
2
|
+
import { pagesRouteHasPriorityOverAppRoute } from "./hybrid-route-priority.js";
|
|
3
|
+
//#region src/server/app-pages-bridge.ts
|
|
4
|
+
/**
|
|
5
|
+
* Fallback handler to route App Router requests to the Pages Router when no App Router route matches.
|
|
6
|
+
*/
|
|
7
|
+
async function renderPagesFallback(options, dependencies) {
|
|
8
|
+
const { allowRscDocumentFallback = false, appRouteMatch = null, isDataRequest = false, isRscRequest, matchKind, middlewareContext, pathname = options.url.pathname, pagesDataRequest = null, request, url } = options;
|
|
9
|
+
const { loadPagesEntry, buildRequestHeaders, decodePathParams, applyRouteHandlerMiddlewareContext, getDraftModeCookieHeader } = dependencies;
|
|
10
|
+
if (isRscRequest && !allowRscDocumentFallback) return null;
|
|
11
|
+
const pagesEntry = await loadPagesEntry();
|
|
12
|
+
const pagesRequestHeaders = middlewareContext.requestHeaders ? buildRequestHeaders(request.headers, middlewareContext.requestHeaders) : null;
|
|
13
|
+
let pagesRequest = request;
|
|
14
|
+
if (pagesRequestHeaders) pagesRequest = cloneRequestWithHeaders(request, pagesRequestHeaders);
|
|
15
|
+
const queryIndex = pathname.indexOf("?");
|
|
16
|
+
const pagesPathname = queryIndex === -1 ? pathname : pathname.slice(0, queryIndex);
|
|
17
|
+
const pagesSearch = queryIndex === -1 ? url.search || "" : pathname.slice(queryIndex);
|
|
18
|
+
const pagesUrl = decodePathParams(pagesPathname) + pagesSearch;
|
|
19
|
+
if (pagesPathname.startsWith("/api/") || pagesPathname === "/api") {
|
|
20
|
+
if (typeof pagesEntry.handleApiRoute !== "function") return null;
|
|
21
|
+
const hasApiMatcher = typeof pagesEntry.matchApiRoute === "function";
|
|
22
|
+
const apiMatch = hasApiMatcher ? pagesEntry.matchApiRoute?.(pagesUrl, pagesRequest) ?? null : null;
|
|
23
|
+
if (hasApiMatcher && apiMatch === null) return null;
|
|
24
|
+
if (apiMatch !== null && matchKind === "static" && apiMatch.route.isDynamic) return null;
|
|
25
|
+
if (apiMatch !== null && matchKind === "dynamic" && !apiMatch.route.isDynamic) return null;
|
|
26
|
+
if (appRouteMatch !== null) {
|
|
27
|
+
if (apiMatch === null || !pagesRouteHasPriorityOverAppRoute(apiMatch.route, appRouteMatch.route)) return null;
|
|
28
|
+
}
|
|
29
|
+
const pagesApiResponse = await pagesEntry.handleApiRoute(pagesRequest, pagesUrl);
|
|
30
|
+
const draftCookie = getDraftModeCookieHeader();
|
|
31
|
+
return applyDraftModeCookie(applyRouteHandlerMiddlewareContext(pagesApiResponse, middlewareContext), draftCookie);
|
|
32
|
+
}
|
|
33
|
+
if (typeof pagesEntry.renderPage !== "function") return null;
|
|
34
|
+
const hasPageMatcher = typeof pagesEntry.matchPageRoute === "function";
|
|
35
|
+
const pageMatch = hasPageMatcher ? pagesEntry.matchPageRoute?.(pagesUrl, pagesRequest) ?? null : null;
|
|
36
|
+
if (hasPageMatcher && pageMatch === null) return null;
|
|
37
|
+
if (pageMatch !== null && matchKind === "static" && pageMatch.route.isDynamic) return null;
|
|
38
|
+
if (pageMatch !== null && matchKind === "dynamic" && !pageMatch.route.isDynamic) return null;
|
|
39
|
+
if (appRouteMatch !== null && (pageMatch === null || !pagesRouteHasPriorityOverAppRoute(pageMatch.route, appRouteMatch.route))) return null;
|
|
40
|
+
const renderRequest = pagesDataRequest ? cloneRequestWithUrl(pagesRequest, pagesDataRequest.url) : pagesRequest;
|
|
41
|
+
const pagesRes = isDataRequest ? await pagesEntry.renderPage(renderRequest, pagesUrl, {}, void 0, middlewareContext.requestHeaders, { isDataReq: true }) : await pagesEntry.renderPage(renderRequest, pagesUrl, {}, void 0, middlewareContext.requestHeaders);
|
|
42
|
+
if (pagesRes.status === 404 && pageMatch === null) return null;
|
|
43
|
+
return applyDraftModeCookie(pagesRes, getDraftModeCookieHeader());
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Append a middleware-emitted `__prerender_bypass` Set-Cookie header to a Pages
|
|
47
|
+
* Router fallback response. Returns the response unchanged when there is no
|
|
48
|
+
* draft cookie to add. App Router route handlers/page renders surface this same
|
|
49
|
+
* cookie via `finalizeRouteHandlerResponse`/the page response builder; this
|
|
50
|
+
* keeps draft-mode parity for requests that fall through to the Pages Router.
|
|
51
|
+
*/
|
|
52
|
+
function applyDraftModeCookie(response, draftCookie) {
|
|
53
|
+
if (!draftCookie) return response;
|
|
54
|
+
const headers = new Headers(response.headers);
|
|
55
|
+
headers.append("Set-Cookie", draftCookie);
|
|
56
|
+
return new Response(response.body, {
|
|
57
|
+
status: response.status,
|
|
58
|
+
statusText: response.statusText,
|
|
59
|
+
headers
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//#endregion
|
|
63
|
+
export { renderPagesFallback };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { RequestContext } from "../config/config-matchers.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/app-post-middleware-context.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Build a request context from the live ALS HeadersContext, which reflects
|
|
6
|
+
* any x-middleware-request-* header mutations applied by middleware.
|
|
7
|
+
* Used for afterFiles and fallback rewrite has/missing evaluation — these
|
|
8
|
+
* run after middleware in the App Router execution order.
|
|
9
|
+
*
|
|
10
|
+
* Falls back to `requestContextFromRequest(request)` when no HeadersContext
|
|
11
|
+
* is set (no middleware ran, or middleware didn't set request headers).
|
|
12
|
+
*/
|
|
13
|
+
declare function buildPostMwRequestContext(request: Request): RequestContext;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { buildPostMwRequestContext };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { normalizeHost, requestContextFromRequest } from "../config/config-matchers.js";
|
|
2
|
+
import { getHeadersContext } from "../shims/headers.js";
|
|
3
|
+
//#region src/server/app-post-middleware-context.ts
|
|
4
|
+
/**
|
|
5
|
+
* Build a request context from the live ALS HeadersContext, which reflects
|
|
6
|
+
* any x-middleware-request-* header mutations applied by middleware.
|
|
7
|
+
* Used for afterFiles and fallback rewrite has/missing evaluation — these
|
|
8
|
+
* run after middleware in the App Router execution order.
|
|
9
|
+
*
|
|
10
|
+
* Falls back to `requestContextFromRequest(request)` when no HeadersContext
|
|
11
|
+
* is set (no middleware ran, or middleware didn't set request headers).
|
|
12
|
+
*/
|
|
13
|
+
function buildPostMwRequestContext(request) {
|
|
14
|
+
const url = new URL(request.url);
|
|
15
|
+
const ctx = getHeadersContext();
|
|
16
|
+
if (!ctx) return requestContextFromRequest(request);
|
|
17
|
+
const cookiesRecord = Object.fromEntries(ctx.cookies);
|
|
18
|
+
return {
|
|
19
|
+
headers: ctx.headers,
|
|
20
|
+
cookies: cookiesRecord,
|
|
21
|
+
query: url.searchParams,
|
|
22
|
+
host: normalizeHost(ctx.headers.get("host"), url.hostname)
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { buildPostMwRequestContext };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PprFallbackShellState } from "../shims/ppr-fallback-shell.js";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/server/app-ppr-fallback-shell-render.d.ts
|
|
5
|
+
type AppPageBoundaryOnError = (error: unknown, requestInfo: unknown, errorContext: unknown) => unknown;
|
|
6
|
+
type AppPageRenderableElement = ReactNode | Record<string, ReactNode>;
|
|
7
|
+
type WarmPprFallbackShellCachesOptions = {
|
|
8
|
+
element: AppPageRenderableElement;
|
|
9
|
+
onError: AppPageBoundaryOnError;
|
|
10
|
+
renderToReadableStream: (element: AppPageRenderableElement, options: {
|
|
11
|
+
onError: AppPageBoundaryOnError;
|
|
12
|
+
signal?: AbortSignal;
|
|
13
|
+
}) => ReadableStream<Uint8Array>;
|
|
14
|
+
state: PprFallbackShellState;
|
|
15
|
+
};
|
|
16
|
+
declare function warmPprFallbackShellCaches(options: WarmPprFallbackShellCachesOptions): Promise<void>;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { WarmPprFallbackShellCachesOptions, warmPprFallbackShellCaches };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isPprFallbackShellAbortError, preparePprFallbackShellFinalRender, waitForPprFallbackShellCacheReady } from "../shims/ppr-fallback-shell.js";
|
|
2
|
+
import { readAppPageBinaryStream } from "./app-page-execution.js";
|
|
3
|
+
//#region src/server/app-ppr-fallback-shell-render.ts
|
|
4
|
+
async function warmPprFallbackShellCaches(options) {
|
|
5
|
+
let warmupError = null;
|
|
6
|
+
const warmupDrain = readAppPageBinaryStream(options.renderToReadableStream(options.element, {
|
|
7
|
+
signal: options.state.abortController.signal,
|
|
8
|
+
onError(error, requestInfo, errorContext) {
|
|
9
|
+
if (options.state.abortController.signal.aborted || isPprFallbackShellAbortError(error)) return;
|
|
10
|
+
return options.onError(error, requestInfo, errorContext);
|
|
11
|
+
}
|
|
12
|
+
})).catch((error) => {
|
|
13
|
+
if (options.state.abortController.signal.aborted || isPprFallbackShellAbortError(error)) return;
|
|
14
|
+
warmupError = error;
|
|
15
|
+
});
|
|
16
|
+
try {
|
|
17
|
+
await waitForPprFallbackShellCacheReady(options.state);
|
|
18
|
+
} finally {
|
|
19
|
+
options.state.abortController.abort();
|
|
20
|
+
await warmupDrain;
|
|
21
|
+
preparePprFallbackShellFinalRender(options.state);
|
|
22
|
+
}
|
|
23
|
+
if (warmupError) throw warmupError;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { warmPprFallbackShellCaches };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/server/app-ppr-fallback-shell.d.ts
|
|
2
|
+
type AppPprFallbackShellRoute = {
|
|
3
|
+
params: readonly string[];
|
|
4
|
+
pattern: string;
|
|
5
|
+
rootParamNames?: readonly string[] | null;
|
|
6
|
+
};
|
|
7
|
+
type AppPprFallbackShell = {
|
|
8
|
+
fallbackParamNames: readonly string[];
|
|
9
|
+
pathname: string;
|
|
10
|
+
params: Record<string, string | string[]>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* A fallback-shell cache entry as consumed by the dispatch layer.
|
|
14
|
+
* Produced at build time by the PPR prerender and served at request time
|
|
15
|
+
* when the exact cache entry for a dynamic child param is missing.
|
|
16
|
+
*/
|
|
17
|
+
type AppPagePprFallbackCacheShell = {
|
|
18
|
+
fallbackParamNames: readonly string[];
|
|
19
|
+
params: Record<string, string | string[]>;
|
|
20
|
+
pathname: string;
|
|
21
|
+
};
|
|
22
|
+
declare function markAppPprDynamicFallbackShellHtml(html: string): string;
|
|
23
|
+
declare function isAppPprDynamicFallbackShellHtml(html: string): boolean;
|
|
24
|
+
declare function createAppPprFallbackShell(route: AppPprFallbackShellRoute, matchedParams: Record<string, string | string[]>): AppPprFallbackShell | null;
|
|
25
|
+
declare function createAppPprFallbackShells(route: AppPprFallbackShellRoute, matchedParams: Record<string, string | string[]>): AppPprFallbackShell[];
|
|
26
|
+
declare function rewriteAppPprFallbackShellHtmlNavigation(options: {
|
|
27
|
+
html: string;
|
|
28
|
+
params: Record<string, string | string[]>;
|
|
29
|
+
pathname: string;
|
|
30
|
+
searchParams: URLSearchParams;
|
|
31
|
+
}): string;
|
|
32
|
+
//#endregion
|
|
33
|
+
export { AppPagePprFallbackCacheShell, createAppPprFallbackShell, createAppPprFallbackShells, isAppPprDynamicFallbackShellHtml, markAppPprDynamicFallbackShellHtml, rewriteAppPprFallbackShellHtmlNavigation };
|