@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,75 @@
|
|
|
1
|
+
import { normalizePathnameForRouteMatchStrict } from "../routing/utils.js";
|
|
2
|
+
import { hasBasePath, stripBasePath } from "../utils/base-path.js";
|
|
3
|
+
import { VINEXT_CLIENT_REUSE_MANIFEST_HEADER, VINEXT_INTERCEPTION_CONTEXT_HEADER, VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_RENDER_MODE_HEADER } from "./headers.js";
|
|
4
|
+
import { normalizePath } from "./normalize-path.js";
|
|
5
|
+
import { badRequestResponse, notFoundResponse } from "./http-error-responses.js";
|
|
6
|
+
import { guardProtocolRelativeUrl } from "./request-pipeline.js";
|
|
7
|
+
import { normalizeMountedSlotsHeader } from "./app-mounted-slots-header.js";
|
|
8
|
+
import { APP_RSC_RENDER_MODE_NAVIGATION, parseAppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
9
|
+
import { stripRscSuffix } from "./app-rsc-cache-busting.js";
|
|
10
|
+
import { parseClientReuseManifestHeader } from "./client-reuse-manifest.js";
|
|
11
|
+
import { normalizeInterceptionContextHeader } from "./app-interception-context-header.js";
|
|
12
|
+
//#region src/server/app-rsc-request-normalization.ts
|
|
13
|
+
/**
|
|
14
|
+
* Normalize an App Router RSC request.
|
|
15
|
+
*
|
|
16
|
+
* Performs all security-sensitive and compatibility-sensitive preprocessing before
|
|
17
|
+
* route matching. The ordering of steps is security-critical — changing it introduces
|
|
18
|
+
* vulnerabilities:
|
|
19
|
+
*
|
|
20
|
+
* 1. Parse URL
|
|
21
|
+
* 2. Protocol-relative URL guard — on the raw pathname, BEFORE normalizePath collapses
|
|
22
|
+
* `//` to `/`. If the guard ran after normalization, `//evil.com` → `/evil.com`
|
|
23
|
+
* would bypass the check and reach the trailing-slash redirector, which echoes the
|
|
24
|
+
* path into a `Location` header that browsers interpret as protocol-relative.
|
|
25
|
+
* 3. Strict percent-decode each segment — throws on malformed sequences (→ 400). Must
|
|
26
|
+
* run before basePath check so %2F-encoded slashes cannot create fake basePath prefixes.
|
|
27
|
+
* 4. Collapse double-slashes, resolve `.` and `..` segments (normalizePath)
|
|
28
|
+
* 5. basePath check + strip — 404 when pathname lacks the basePath prefix.
|
|
29
|
+
* `/__vinext/` bypasses this for internal prerender endpoints.
|
|
30
|
+
* 6. RSC detection: `.rsc` suffix, or Next-style `RSC: 1` plus the internal
|
|
31
|
+
* `_rsc` cache-busting query. The header alone does not select payload
|
|
32
|
+
* rendering at the canonical HTML URL, so caches that ignore Vary cannot
|
|
33
|
+
* store Flight responses under HTML URLs.
|
|
34
|
+
* 7. cleanPathname — pathname with `.rsc` suffix stripped
|
|
35
|
+
* 8. Sanitize X-Vinext-Interception-Context — strip null bytes (header injection)
|
|
36
|
+
* 9. Normalize x-vinext-mounted-slots — dedup and sort for canonical cache keys
|
|
37
|
+
* 10. Read semantic render mode for refresh/action payload rendering
|
|
38
|
+
* 11. Parse ClientReuseManifest hints on canonical RSC payload requests
|
|
39
|
+
*
|
|
40
|
+
* @returns A 400 or 404 Response for invalid or out-of-scope inputs,
|
|
41
|
+
* or a NormalizedRscRequest for valid requests.
|
|
42
|
+
*/
|
|
43
|
+
function normalizeRscRequest(request, basePath) {
|
|
44
|
+
const url = new URL(request.url);
|
|
45
|
+
const protoGuard = guardProtocolRelativeUrl(url.pathname);
|
|
46
|
+
if (protoGuard) return protoGuard;
|
|
47
|
+
let decoded;
|
|
48
|
+
try {
|
|
49
|
+
decoded = normalizePathnameForRouteMatchStrict(url.pathname);
|
|
50
|
+
} catch {
|
|
51
|
+
return badRequestResponse();
|
|
52
|
+
}
|
|
53
|
+
let pathname = normalizePath(decoded);
|
|
54
|
+
if (basePath) {
|
|
55
|
+
if (!hasBasePath(pathname, basePath) && !pathname.startsWith("/__vinext/")) return notFoundResponse();
|
|
56
|
+
pathname = stripBasePath(pathname, basePath);
|
|
57
|
+
}
|
|
58
|
+
const isRscRequest = pathname.endsWith(".rsc") || request.headers.get("RSC") === "1" && url.searchParams.has("_rsc");
|
|
59
|
+
const cleanPathname = stripRscSuffix(pathname);
|
|
60
|
+
const interceptionContextHeader = normalizeInterceptionContextHeader(request.headers.get(VINEXT_INTERCEPTION_CONTEXT_HEADER));
|
|
61
|
+
const mountedSlotsHeader = normalizeMountedSlotsHeader(request.headers.get(VINEXT_MOUNTED_SLOTS_HEADER));
|
|
62
|
+
const renderMode = isRscRequest ? parseAppRscRenderMode(request.headers.get(VINEXT_RSC_RENDER_MODE_HEADER)) : APP_RSC_RENDER_MODE_NAVIGATION;
|
|
63
|
+
return {
|
|
64
|
+
clientReuseManifest: isRscRequest ? parseClientReuseManifestHeader(request.headers.get(VINEXT_CLIENT_REUSE_MANIFEST_HEADER)) : { kind: "absent" },
|
|
65
|
+
url,
|
|
66
|
+
pathname,
|
|
67
|
+
cleanPathname,
|
|
68
|
+
isRscRequest,
|
|
69
|
+
interceptionContextHeader,
|
|
70
|
+
mountedSlotsHeader,
|
|
71
|
+
renderMode
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { normalizeMountedSlotsHeader, normalizeRscRequest };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { NextHeader, NextI18nConfig } from "../config/next-config.js";
|
|
2
|
+
import { RequestContext } from "../config/config-matchers.js";
|
|
3
|
+
|
|
4
|
+
//#region src/server/app-rsc-response-finalizer.d.ts
|
|
5
|
+
type FinalizeAppRscResponseOptions = {
|
|
6
|
+
basePath: string;
|
|
7
|
+
configHeaders: NextHeader[];
|
|
8
|
+
/**
|
|
9
|
+
* i18n config used to splice the default locale into unprefixed paths
|
|
10
|
+
* before config header matching, so locale-aware `has`/`missing` rules
|
|
11
|
+
* with `:locale` placeholders or `locale: false` overrides still match
|
|
12
|
+
* default-locale URLs (issue #1336, item 4).
|
|
13
|
+
*/
|
|
14
|
+
i18nConfig: NextI18nConfig | null;
|
|
15
|
+
/**
|
|
16
|
+
* Original pre-middleware request context.
|
|
17
|
+
* Next.js evaluates config header has/missing conditions against the
|
|
18
|
+
* unmodified incoming request, so callers must pass the snapshot taken
|
|
19
|
+
* before middleware runs.
|
|
20
|
+
*/
|
|
21
|
+
requestContext: RequestContext;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Apply App Router response finalization that must happen outside individual
|
|
25
|
+
* route dispatchers.
|
|
26
|
+
*
|
|
27
|
+
* Called once per request in the outer handler() wrapper, after all route
|
|
28
|
+
* handling, so that every response path (page, route handler, server action,
|
|
29
|
+
* metadata, not-found) gets headers applied consistently.
|
|
30
|
+
*
|
|
31
|
+
* Skips 3xx redirect responses. Response.redirect() creates immutable
|
|
32
|
+
* headers that throw on mutation, and Next.js does not apply config headers
|
|
33
|
+
* to redirects regardless.
|
|
34
|
+
*/
|
|
35
|
+
declare function finalizeAppRscResponse(response: Response, request: Request, options: FinalizeAppRscResponseOptions): Response;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { finalizeAppRscResponse };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { normalizePathnameForRouteMatch } from "../routing/utils.js";
|
|
2
|
+
import { hasBasePath, stripBasePath } from "../utils/base-path.js";
|
|
3
|
+
import "./headers.js";
|
|
4
|
+
import { normalizePath } from "./normalize-path.js";
|
|
5
|
+
import { applyConfigHeadersToResponse } from "./request-pipeline.js";
|
|
6
|
+
import { applyCdnResponseHeaders } from "./cache-control.js";
|
|
7
|
+
import { normalizeDefaultLocalePathname } from "./pages-i18n.js";
|
|
8
|
+
import { VINEXT_RSC_VARY_HEADER } from "./app-rsc-cache-busting.js";
|
|
9
|
+
import { mergeVaryHeader } from "./middleware-response-headers.js";
|
|
10
|
+
//#region src/server/app-rsc-response-finalizer.ts
|
|
11
|
+
/**
|
|
12
|
+
* Apply App Router response finalization that must happen outside individual
|
|
13
|
+
* route dispatchers.
|
|
14
|
+
*
|
|
15
|
+
* Called once per request in the outer handler() wrapper, after all route
|
|
16
|
+
* handling, so that every response path (page, route handler, server action,
|
|
17
|
+
* metadata, not-found) gets headers applied consistently.
|
|
18
|
+
*
|
|
19
|
+
* Skips 3xx redirect responses. Response.redirect() creates immutable
|
|
20
|
+
* headers that throw on mutation, and Next.js does not apply config headers
|
|
21
|
+
* to redirects regardless.
|
|
22
|
+
*/
|
|
23
|
+
function finalizeAppRscResponse(response, request, options) {
|
|
24
|
+
if (response.status >= 300 && response.status < 400) return response;
|
|
25
|
+
if (!response.headers.has("x-vinext-static-file")) {
|
|
26
|
+
const varyHeader = response.headers.get("Vary");
|
|
27
|
+
if (varyHeader === null) response.headers.set("Vary", VINEXT_RSC_VARY_HEADER);
|
|
28
|
+
else if (varyHeader !== VINEXT_RSC_VARY_HEADER) mergeVaryHeader(response.headers, VINEXT_RSC_VARY_HEADER);
|
|
29
|
+
}
|
|
30
|
+
if (!response.headers.has("Cache-Control")) applyCdnResponseHeaders(response.headers, { cacheControl: "" });
|
|
31
|
+
if (!options.configHeaders.length) return response;
|
|
32
|
+
const url = new URL(request.url);
|
|
33
|
+
let pathname;
|
|
34
|
+
try {
|
|
35
|
+
pathname = normalizePath(normalizePathnameForRouteMatch(url.pathname));
|
|
36
|
+
} catch {
|
|
37
|
+
pathname = url.pathname;
|
|
38
|
+
}
|
|
39
|
+
const hadBasePath = !options.basePath || hasBasePath(pathname, options.basePath);
|
|
40
|
+
pathname = stripBasePath(pathname, options.basePath);
|
|
41
|
+
const matchPathname = options.i18nConfig ? normalizeDefaultLocalePathname(pathname, options.i18nConfig, { hostname: url.hostname }) : pathname;
|
|
42
|
+
applyConfigHeadersToResponse(response.headers, {
|
|
43
|
+
configHeaders: options.configHeaders,
|
|
44
|
+
pathname: matchPathname,
|
|
45
|
+
requestContext: options.requestContext,
|
|
46
|
+
basePathState: {
|
|
47
|
+
basePath: options.basePath,
|
|
48
|
+
hadBasePath
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return response;
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { finalizeAppRscResponse };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { RoutePatternParams } from "../routing/route-pattern.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/app-rsc-route-matching.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Sentinel slot key used for sibling-style interception entries.
|
|
6
|
+
* When a matched intercept carries this key, the render layer replaces the
|
|
7
|
+
* route's main page element instead of a parallel slot.
|
|
8
|
+
*/
|
|
9
|
+
declare const SIBLING_PAGE_INTERCEPT_SLOT_KEY = "__vinext_page_intercept";
|
|
10
|
+
type AppRscRouteParams = RoutePatternParams;
|
|
11
|
+
type AppRscInterceptForMatching = {
|
|
12
|
+
targetPattern: string;
|
|
13
|
+
/**
|
|
14
|
+
* URL pattern of the *intercepting route* (the path that owns the slot,
|
|
15
|
+
* with route groups and `@slot` segments stripped). Mirrors Next.js'
|
|
16
|
+
* `interceptingRoute` from `extractInterceptionRouteInformation`.
|
|
17
|
+
*
|
|
18
|
+
* Next.js implements interception as a rewrite that fires only when the
|
|
19
|
+
* `Next-URL` header matches `^<sourceMatchPattern>(?:/.*)?$`. vinext's
|
|
20
|
+
* matcher enforces the same constraint at `findIntercept`: an intercept
|
|
21
|
+
* whose `targetPattern` matches the request URL is only valid when the
|
|
22
|
+
* provided source pathname (X-Vinext-Interception-Context / Next-URL)
|
|
23
|
+
* matches this pattern, with descendants allowed.
|
|
24
|
+
*
|
|
25
|
+
* Optional for backwards compat: when absent or empty, the matcher falls
|
|
26
|
+
* back to the legacy behavior of matching by target alone (still gated on
|
|
27
|
+
* a non-null source pathname).
|
|
28
|
+
*
|
|
29
|
+
* @see https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/generate-interception-routes-rewrites.ts
|
|
30
|
+
*/
|
|
31
|
+
sourceMatchPattern?: string;
|
|
32
|
+
sourcePageSegments?: readonly string[];
|
|
33
|
+
interceptLayouts: readonly unknown[];
|
|
34
|
+
__loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
|
|
35
|
+
page: unknown;
|
|
36
|
+
__pageLoader?: (() => Promise<unknown>) | null;
|
|
37
|
+
params: readonly string[];
|
|
38
|
+
};
|
|
39
|
+
type AppRscSlotForMatching = {
|
|
40
|
+
id?: string | null;
|
|
41
|
+
intercepts?: readonly AppRscInterceptForMatching[];
|
|
42
|
+
};
|
|
43
|
+
type AppRscSiblingInterceptForMatching = {
|
|
44
|
+
targetPattern: string;
|
|
45
|
+
sourceMatchPattern: string | null;
|
|
46
|
+
sourcePageSegments?: readonly string[];
|
|
47
|
+
slotId: string | null;
|
|
48
|
+
interceptLayouts: readonly unknown[];
|
|
49
|
+
__loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
|
|
50
|
+
page: unknown;
|
|
51
|
+
__pageLoader?: (() => Promise<unknown>) | null;
|
|
52
|
+
params: readonly string[];
|
|
53
|
+
};
|
|
54
|
+
type AppRscRouteForMatching = {
|
|
55
|
+
pattern: string;
|
|
56
|
+
patternParts: string[];
|
|
57
|
+
slots?: Record<string, AppRscSlotForMatching>;
|
|
58
|
+
siblingIntercepts?: AppRscSiblingInterceptForMatching[];
|
|
59
|
+
};
|
|
60
|
+
type AppRscInterceptMatch = AppRscInterceptLookupEntry & {
|
|
61
|
+
matchedParams: AppRscRouteParams;
|
|
62
|
+
};
|
|
63
|
+
type AppRscInterceptLoadState = {
|
|
64
|
+
page: unknown;
|
|
65
|
+
pageLoading: Promise<unknown> | null;
|
|
66
|
+
interceptLayoutsLoading: Promise<readonly unknown[]> | null;
|
|
67
|
+
};
|
|
68
|
+
type AppRscInterceptLookupEntry = {
|
|
69
|
+
sourceRouteIndex: number;
|
|
70
|
+
slotKey: string;
|
|
71
|
+
targetPattern: string;
|
|
72
|
+
targetPatternParts: string[];
|
|
73
|
+
sourceMatchPattern: string | null;
|
|
74
|
+
sourceMatchPatternParts: string[] | null;
|
|
75
|
+
sourcePageSegments: readonly string[] | null;
|
|
76
|
+
interceptLayouts: readonly unknown[];
|
|
77
|
+
__loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
|
|
78
|
+
page: unknown;
|
|
79
|
+
__pageLoader?: (() => Promise<unknown>) | null;
|
|
80
|
+
__loadState: AppRscInterceptLoadState;
|
|
81
|
+
params: readonly string[];
|
|
82
|
+
slotId: string | null;
|
|
83
|
+
};
|
|
84
|
+
declare function createAppRscRouteMatcher<Route extends AppRscRouteForMatching>(routes: Route[]): {
|
|
85
|
+
matchRoute(url: string): {
|
|
86
|
+
route: Route;
|
|
87
|
+
params: AppRscRouteParams;
|
|
88
|
+
} | null;
|
|
89
|
+
findIntercept(pathname: string, sourcePathname?: string | null): AppRscInterceptMatch | null;
|
|
90
|
+
};
|
|
91
|
+
declare function matchAppRscRoutePattern(urlParts: string[], patternParts: string[]): AppRscRouteParams | null;
|
|
92
|
+
//#endregion
|
|
93
|
+
export { SIBLING_PAGE_INTERCEPT_SLOT_KEY, createAppRscRouteMatcher, matchAppRscRoutePattern };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { splitPathnameForRouteMatch } from "../routing/utils.js";
|
|
2
|
+
import { buildRouteTrie, trieMatch } from "../routing/route-trie.js";
|
|
3
|
+
import { matchRoutePattern, matchRoutePatternPrefix } from "../routing/route-pattern.js";
|
|
4
|
+
//#region src/server/app-rsc-route-matching.ts
|
|
5
|
+
/**
|
|
6
|
+
* Sentinel slot key used for sibling-style interception entries.
|
|
7
|
+
* When a matched intercept carries this key, the render layer replaces the
|
|
8
|
+
* route's main page element instead of a parallel slot.
|
|
9
|
+
*/
|
|
10
|
+
const SIBLING_PAGE_INTERCEPT_SLOT_KEY = "__vinext_page_intercept";
|
|
11
|
+
function createRouteParams() {
|
|
12
|
+
return Object.create(null);
|
|
13
|
+
}
|
|
14
|
+
function appRscPathnameParts(pathname) {
|
|
15
|
+
const pathOnly = pathname.split("?")[0];
|
|
16
|
+
return splitPathnameForRouteMatch(pathOnly === "/" ? "/" : pathOnly.replace(/\/$/, ""));
|
|
17
|
+
}
|
|
18
|
+
function createAppRscRouteMatcher(routes) {
|
|
19
|
+
const routeTrie = buildRouteTrie(routes);
|
|
20
|
+
const interceptLookup = createInterceptLookup(routes);
|
|
21
|
+
const routeIndexes = new Map(routes.map((route, index) => [route, index]));
|
|
22
|
+
return {
|
|
23
|
+
matchRoute(url) {
|
|
24
|
+
return trieMatch(routeTrie, appRscPathnameParts(url));
|
|
25
|
+
},
|
|
26
|
+
findIntercept(pathname, sourcePathname = null) {
|
|
27
|
+
if (sourcePathname === null) return null;
|
|
28
|
+
const urlParts = appRscPathnameParts(pathname);
|
|
29
|
+
const sourceParts = appRscPathnameParts(sourcePathname);
|
|
30
|
+
const matchedSourceRoute = trieMatch(routeTrie, sourceParts);
|
|
31
|
+
for (const entry of interceptLookup) {
|
|
32
|
+
if (!matchInterceptSource(sourceParts, entry)) continue;
|
|
33
|
+
const params = matchAppRscRoutePattern(urlParts, entry.targetPatternParts);
|
|
34
|
+
if (params === null) continue;
|
|
35
|
+
const concreteSourceRouteIndex = matchedSourceRoute && entry.sourceMatchPatternParts !== null ? routeIndexes.get(matchedSourceRoute.route) ?? entry.sourceRouteIndex : entry.sourceRouteIndex;
|
|
36
|
+
const sourceRoute = routes[concreteSourceRouteIndex];
|
|
37
|
+
const matchedSourceParams = matchedSourceRoute && entry.sourceMatchPatternParts !== null ? matchedSourceRoute.params : sourceRoute ? matchAppRscRoutePattern(sourceParts, sourceRoute.patternParts) : null;
|
|
38
|
+
if (matchedSourceParams === null && entry.sourceMatchPatternParts === null) continue;
|
|
39
|
+
const sourceParams = matchedSourceParams ?? createRouteParams();
|
|
40
|
+
return {
|
|
41
|
+
...entry,
|
|
42
|
+
page: entry.__loadState.page,
|
|
43
|
+
sourceRouteIndex: concreteSourceRouteIndex,
|
|
44
|
+
matchedParams: mergeMatchedParams(sourceParams, params)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check whether the request's source pathname (Next-URL / interception
|
|
53
|
+
* context) satisfies the intercept entry's intercepting-route pattern, with
|
|
54
|
+
* descendants allowed. Mirrors the header regex shape Next.js emits for the
|
|
55
|
+
* generated interception rewrite: `^<pattern>(?:/.*)?$`.
|
|
56
|
+
*
|
|
57
|
+
* When the entry has no declared `sourceMatchPatternParts`, fall back to the
|
|
58
|
+
* legacy behavior of accepting any source (we still require the source to be
|
|
59
|
+
* non-null at the caller — see `findIntercept`).
|
|
60
|
+
*/
|
|
61
|
+
function matchInterceptSource(sourceParts, entry) {
|
|
62
|
+
const patternParts = entry.sourceMatchPatternParts;
|
|
63
|
+
if (!patternParts) return true;
|
|
64
|
+
if (patternParts.length === 0) return true;
|
|
65
|
+
return matchRoutePatternPrefix(sourceParts, patternParts);
|
|
66
|
+
}
|
|
67
|
+
function createInterceptLookup(routes) {
|
|
68
|
+
const patternToIndex = new Map(routes.map((r, i) => [r.pattern, i]));
|
|
69
|
+
const interceptLookup = [];
|
|
70
|
+
for (let routeIndex = 0; routeIndex < routes.length; routeIndex++) {
|
|
71
|
+
const route = routes[routeIndex];
|
|
72
|
+
if (route.slots) for (const [slotKey, slotModule] of Object.entries(route.slots)) {
|
|
73
|
+
if (!slotModule.intercepts) continue;
|
|
74
|
+
for (const intercept of slotModule.intercepts) {
|
|
75
|
+
const sourceMatchPattern = intercept.sourceMatchPattern ?? null;
|
|
76
|
+
const sourceMatchPatternParts = sourceMatchPattern ? sourceMatchPattern.split("/").filter(Boolean) : null;
|
|
77
|
+
const ownerRouteIndex = sourceMatchPattern !== null ? patternToIndex.get(sourceMatchPattern) ?? routeIndex : routeIndex;
|
|
78
|
+
interceptLookup.push({
|
|
79
|
+
sourceRouteIndex: ownerRouteIndex,
|
|
80
|
+
slotKey,
|
|
81
|
+
slotId: typeof slotModule.id === "string" ? slotModule.id : null,
|
|
82
|
+
targetPattern: intercept.targetPattern,
|
|
83
|
+
targetPatternParts: intercept.targetPattern.split("/").filter(Boolean),
|
|
84
|
+
sourceMatchPattern,
|
|
85
|
+
sourceMatchPatternParts,
|
|
86
|
+
sourcePageSegments: intercept.sourcePageSegments ?? null,
|
|
87
|
+
interceptLayouts: intercept.interceptLayouts,
|
|
88
|
+
__loadInterceptLayouts: intercept.__loadInterceptLayouts,
|
|
89
|
+
page: intercept.page,
|
|
90
|
+
__pageLoader: intercept.__pageLoader,
|
|
91
|
+
__loadState: {
|
|
92
|
+
page: intercept.page,
|
|
93
|
+
pageLoading: null,
|
|
94
|
+
interceptLayoutsLoading: null
|
|
95
|
+
},
|
|
96
|
+
params: intercept.params
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (route.siblingIntercepts) for (const intercept of route.siblingIntercepts) {
|
|
101
|
+
const sourceMatchPattern = intercept.sourceMatchPattern ?? null;
|
|
102
|
+
const sourceMatchPatternParts = sourceMatchPattern ? sourceMatchPattern.split("/").filter(Boolean) : null;
|
|
103
|
+
interceptLookup.push({
|
|
104
|
+
sourceRouteIndex: routeIndex,
|
|
105
|
+
slotKey: SIBLING_PAGE_INTERCEPT_SLOT_KEY,
|
|
106
|
+
slotId: typeof intercept.slotId === "string" ? intercept.slotId : null,
|
|
107
|
+
targetPattern: intercept.targetPattern,
|
|
108
|
+
targetPatternParts: intercept.targetPattern.split("/").filter(Boolean),
|
|
109
|
+
sourceMatchPattern,
|
|
110
|
+
sourceMatchPatternParts,
|
|
111
|
+
sourcePageSegments: intercept.sourcePageSegments ?? null,
|
|
112
|
+
interceptLayouts: intercept.interceptLayouts,
|
|
113
|
+
__loadInterceptLayouts: intercept.__loadInterceptLayouts,
|
|
114
|
+
page: intercept.page,
|
|
115
|
+
__pageLoader: intercept.__pageLoader,
|
|
116
|
+
__loadState: {
|
|
117
|
+
page: intercept.page,
|
|
118
|
+
pageLoading: null,
|
|
119
|
+
interceptLayoutsLoading: null
|
|
120
|
+
},
|
|
121
|
+
params: intercept.params
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return interceptLookup;
|
|
126
|
+
}
|
|
127
|
+
function matchAppRscRoutePattern(urlParts, patternParts) {
|
|
128
|
+
return matchRoutePattern(urlParts, patternParts);
|
|
129
|
+
}
|
|
130
|
+
function mergeMatchedParams(sourceParams, targetParams) {
|
|
131
|
+
return Object.assign(createRouteParams(), sourceParams, targetParams);
|
|
132
|
+
}
|
|
133
|
+
//#endregion
|
|
134
|
+
export { SIBLING_PAGE_INTERCEPT_SLOT_KEY, createAppRscRouteMatcher, matchAppRscRoutePattern };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { FetchCacheMode } from "../shims/fetch-cache.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/app-segment-config.d.ts
|
|
4
|
+
type AppRouteSegmentDynamic = "auto" | "error" | "force-dynamic" | "force-static";
|
|
5
|
+
type AppRouteSegmentConfigModule = {
|
|
6
|
+
dynamic?: unknown;
|
|
7
|
+
dynamicParams?: unknown;
|
|
8
|
+
fetchCache?: unknown;
|
|
9
|
+
revalidate?: unknown;
|
|
10
|
+
runtime?: unknown;
|
|
11
|
+
unstable_dynamicStaleTime?: unknown;
|
|
12
|
+
};
|
|
13
|
+
type EffectiveAppPageSegmentConfig = {
|
|
14
|
+
dynamicConfig?: AppRouteSegmentDynamic;
|
|
15
|
+
dynamicParamsConfig?: boolean;
|
|
16
|
+
dynamicStaleTimeSeconds?: number;
|
|
17
|
+
fetchCache?: FetchCacheMode;
|
|
18
|
+
revalidateSeconds: number | null;
|
|
19
|
+
runtime?: "edge" | "experimental-edge" | "nodejs";
|
|
20
|
+
};
|
|
21
|
+
type ResolveAppPageSegmentConfigOptions = {
|
|
22
|
+
layouts?: readonly (AppRouteSegmentConfigModule | null | undefined)[];
|
|
23
|
+
page?: AppRouteSegmentConfigModule | null;
|
|
24
|
+
parallelPages?: readonly (AppRouteSegmentConfigModule | null | undefined)[];
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the route segment config that applies to an App page route.
|
|
28
|
+
*
|
|
29
|
+
* Next.js collects config from every segment in the loader tree and reduces it
|
|
30
|
+
* into the effective route config. The generated vinext entry already knows
|
|
31
|
+
* the concrete layout/page modules for a route, so it should only describe
|
|
32
|
+
* those modules and delegate the behavior to this helper.
|
|
33
|
+
*/
|
|
34
|
+
declare function resolveAppPageSegmentConfig(options: ResolveAppPageSegmentConfigOptions): EffectiveAppPageSegmentConfig;
|
|
35
|
+
declare function resolveAppPageFetchCacheMode(options: ResolveAppPageSegmentConfigOptions): FetchCacheMode | null;
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the `fetchCache` segment config exported by a route handler module.
|
|
38
|
+
*
|
|
39
|
+
* Route handlers have no layout chain, so the module's own export applies
|
|
40
|
+
* directly. Mirrors upstream's app-route module, which copies
|
|
41
|
+
* `userland.fetchCache` into the work store before invoking the handler.
|
|
42
|
+
*/
|
|
43
|
+
declare function resolveAppRouteHandlerFetchCacheMode(handler: Pick<AppRouteSegmentConfigModule, "fetchCache">): FetchCacheMode | null;
|
|
44
|
+
declare function isEdgeRuntime(runtime: string | undefined): boolean;
|
|
45
|
+
//#endregion
|
|
46
|
+
export { isEdgeRuntime, resolveAppPageFetchCacheMode, resolveAppPageSegmentConfig, resolveAppRouteHandlerFetchCacheMode };
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { isEdgeApiRuntime } from "./edge-api-runtime.js";
|
|
2
|
+
//#region src/server/app-segment-config.ts
|
|
3
|
+
const DYNAMIC_VALUES = new Set([
|
|
4
|
+
"auto",
|
|
5
|
+
"error",
|
|
6
|
+
"force-dynamic",
|
|
7
|
+
"force-static"
|
|
8
|
+
]);
|
|
9
|
+
const FETCH_CACHE_VALUES = new Set([
|
|
10
|
+
"auto",
|
|
11
|
+
"default-cache",
|
|
12
|
+
"default-no-store",
|
|
13
|
+
"force-cache",
|
|
14
|
+
"force-no-store",
|
|
15
|
+
"only-cache",
|
|
16
|
+
"only-no-store"
|
|
17
|
+
]);
|
|
18
|
+
function isRouteSegmentDynamic(value) {
|
|
19
|
+
return DYNAMIC_VALUES.has(value);
|
|
20
|
+
}
|
|
21
|
+
function isRouteSegmentFetchCache(value) {
|
|
22
|
+
return FETCH_CACHE_VALUES.has(value);
|
|
23
|
+
}
|
|
24
|
+
function isRouteSegmentRuntime(value) {
|
|
25
|
+
return value === "edge" || value === "experimental-edge" || value === "nodejs";
|
|
26
|
+
}
|
|
27
|
+
function resolveRevalidateSeconds(current, value) {
|
|
28
|
+
if (value === false) {
|
|
29
|
+
if (current === null) return Infinity;
|
|
30
|
+
return current === Infinity ? Infinity : current;
|
|
31
|
+
}
|
|
32
|
+
if (typeof value !== "number") return current;
|
|
33
|
+
if (current === null) return value;
|
|
34
|
+
return value < current ? value : current;
|
|
35
|
+
}
|
|
36
|
+
function resolveDynamicStaleTimeSeconds(current, value) {
|
|
37
|
+
if (typeof value !== "number" || !Number.isInteger(value) || value < 0) return current;
|
|
38
|
+
return current === void 0 ? value : Math.min(current, value);
|
|
39
|
+
}
|
|
40
|
+
function isCacheFetchCacheMode(value) {
|
|
41
|
+
return value === "default-cache" || value === "force-cache" || value === "only-cache";
|
|
42
|
+
}
|
|
43
|
+
function describeFetchCacheConflict(value) {
|
|
44
|
+
return `Route segment config has incompatible fetchCache values including "${value}".`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolve the route segment config that applies to an App page route.
|
|
48
|
+
*
|
|
49
|
+
* Next.js collects config from every segment in the loader tree and reduces it
|
|
50
|
+
* into the effective route config. The generated vinext entry already knows
|
|
51
|
+
* the concrete layout/page modules for a route, so it should only describe
|
|
52
|
+
* those modules and delegate the behavior to this helper.
|
|
53
|
+
*/
|
|
54
|
+
function resolveAppPageSegmentConfig(options) {
|
|
55
|
+
const segments = [...options.layouts ?? [], options.page];
|
|
56
|
+
const config = { revalidateSeconds: null };
|
|
57
|
+
let hasForceCache = false;
|
|
58
|
+
let hasForceNoStore = false;
|
|
59
|
+
let hasOnlyCache = false;
|
|
60
|
+
let hasOnlyNoStore = false;
|
|
61
|
+
let hasParentDefaultNoStore = false;
|
|
62
|
+
for (const segment of segments) {
|
|
63
|
+
if (!segment) continue;
|
|
64
|
+
if (isRouteSegmentDynamic(segment.dynamic)) config.dynamicConfig = segment.dynamic;
|
|
65
|
+
if (isRouteSegmentRuntime(segment.runtime)) config.runtime = segment.runtime;
|
|
66
|
+
if (segment.dynamicParams === false) config.dynamicParamsConfig = false;
|
|
67
|
+
else if (segment.dynamicParams === true && config.dynamicParamsConfig !== false) config.dynamicParamsConfig = true;
|
|
68
|
+
if (isRouteSegmentFetchCache(segment.fetchCache)) {
|
|
69
|
+
const fetchCache = segment.fetchCache;
|
|
70
|
+
if (hasParentDefaultNoStore && (fetchCache === "auto" || isCacheFetchCacheMode(fetchCache))) throw new Error(describeFetchCacheConflict(fetchCache));
|
|
71
|
+
if (fetchCache === "force-cache") hasForceCache = true;
|
|
72
|
+
if (fetchCache === "force-no-store") hasForceNoStore = true;
|
|
73
|
+
if (fetchCache === "only-cache") hasOnlyCache = true;
|
|
74
|
+
if (fetchCache === "only-no-store") hasOnlyNoStore = true;
|
|
75
|
+
if ((hasForceCache || hasOnlyCache) && (hasForceNoStore || hasOnlyNoStore)) throw new Error(describeFetchCacheConflict(fetchCache));
|
|
76
|
+
if (fetchCache === "default-no-store") hasParentDefaultNoStore = true;
|
|
77
|
+
if (hasForceCache) config.fetchCache = "force-cache";
|
|
78
|
+
else if (hasForceNoStore) config.fetchCache = "force-no-store";
|
|
79
|
+
else if (hasOnlyCache) config.fetchCache = "only-cache";
|
|
80
|
+
else if (hasOnlyNoStore) config.fetchCache = "only-no-store";
|
|
81
|
+
else config.fetchCache = fetchCache;
|
|
82
|
+
}
|
|
83
|
+
config.revalidateSeconds = resolveRevalidateSeconds(config.revalidateSeconds, segment.revalidate);
|
|
84
|
+
}
|
|
85
|
+
for (const segment of [options.page, ...options.parallelPages ?? []]) {
|
|
86
|
+
if (!segment) continue;
|
|
87
|
+
config.dynamicStaleTimeSeconds = resolveDynamicStaleTimeSeconds(config.dynamicStaleTimeSeconds, segment.unstable_dynamicStaleTime);
|
|
88
|
+
}
|
|
89
|
+
if (config.dynamicConfig === "force-dynamic") config.revalidateSeconds = 0;
|
|
90
|
+
if (config.fetchCache === void 0) {
|
|
91
|
+
if (config.dynamicConfig === "error") config.fetchCache = "only-cache";
|
|
92
|
+
}
|
|
93
|
+
if (config.dynamicParamsConfig === void 0 && (config.dynamicConfig === "error" || config.dynamicConfig === "force-static")) config.dynamicParamsConfig = false;
|
|
94
|
+
return config;
|
|
95
|
+
}
|
|
96
|
+
function resolveAppPageFetchCacheMode(options) {
|
|
97
|
+
return resolveAppPageSegmentConfig(options).fetchCache ?? null;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Resolve the `fetchCache` segment config exported by a route handler module.
|
|
101
|
+
*
|
|
102
|
+
* Route handlers have no layout chain, so the module's own export applies
|
|
103
|
+
* directly. Mirrors upstream's app-route module, which copies
|
|
104
|
+
* `userland.fetchCache` into the work store before invoking the handler.
|
|
105
|
+
*/
|
|
106
|
+
function resolveAppRouteHandlerFetchCacheMode(handler) {
|
|
107
|
+
return isRouteSegmentFetchCache(handler.fetchCache) ? handler.fetchCache : null;
|
|
108
|
+
}
|
|
109
|
+
function isEdgeRuntime(runtime) {
|
|
110
|
+
return isEdgeApiRuntime(runtime);
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
export { isEdgeRuntime, resolveAppPageFetchCacheMode, resolveAppPageSegmentConfig, resolveAppRouteHandlerFetchCacheMode };
|