@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,163 @@
|
|
|
1
|
+
import { createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
|
|
2
|
+
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
3
|
+
import { reportRequestError } from "./instrumentation.js";
|
|
4
|
+
import { consumeDynamicUsage, getAndClearPendingCookies, getDraftModeCookieHeader, markDynamicUsage, setHeadersAccessPhase } from "../shims/headers.js";
|
|
5
|
+
import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchCacheMode, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
|
|
6
|
+
import { setNavigationContext } from "../shims/navigation-context-state.js";
|
|
7
|
+
import { makeThenableParams } from "../shims/thenable-params.js";
|
|
8
|
+
import "../shims/navigation.js";
|
|
9
|
+
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
10
|
+
import { applyRouteHandlerMiddlewareContext } from "./app-route-handler-response.js";
|
|
11
|
+
import { isKnownDynamicAppRoute, isValidHTTPMethod } from "./app-route-handler-runtime.js";
|
|
12
|
+
import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
|
|
13
|
+
import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
|
|
14
|
+
import { executeAppRouteHandler } from "./app-route-handler-execution.js";
|
|
15
|
+
import { readAppRouteHandlerCacheResponse } from "./app-route-handler-cache.js";
|
|
16
|
+
import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
|
|
17
|
+
//#region src/server/app-route-handler-dispatch.ts
|
|
18
|
+
function isAppRouteHandlerFunction(value) {
|
|
19
|
+
return typeof value === "function";
|
|
20
|
+
}
|
|
21
|
+
function buildRouteHandlerPageCacheTags(pathname, extraTags, routeSegments) {
|
|
22
|
+
return buildPageCacheTags(pathname, extraTags, routeSegments, "route");
|
|
23
|
+
}
|
|
24
|
+
async function runInRouteHandlerRevalidationContext(options, renderFn) {
|
|
25
|
+
await runWithRequestContext(createRequestContext({
|
|
26
|
+
headersContext: createStaticGenerationHeadersContext({
|
|
27
|
+
draftModeSecret: options.draftModeSecret,
|
|
28
|
+
dynamicConfig: options.dynamicConfig,
|
|
29
|
+
routeKind: "route",
|
|
30
|
+
routePattern: options.routePattern
|
|
31
|
+
}),
|
|
32
|
+
executionContext: getRequestExecutionContext(),
|
|
33
|
+
unstableCacheRevalidation: "foreground"
|
|
34
|
+
}), async () => {
|
|
35
|
+
ensureFetchPatch();
|
|
36
|
+
setCurrentFetchSoftTags(buildRouteHandlerPageCacheTags(options.cleanPathname, [], options.routeSegments));
|
|
37
|
+
setCurrentFetchCacheMode(options.fetchCacheMode);
|
|
38
|
+
setCurrentForceDynamicFetchDefault(options.dynamicConfig === "force-dynamic");
|
|
39
|
+
await renderFn();
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
async function dispatchAppRouteHandler(options) {
|
|
43
|
+
const { route } = options;
|
|
44
|
+
const handler = route.routeHandler;
|
|
45
|
+
const method = options.request.method.toUpperCase();
|
|
46
|
+
const revalidateSeconds = getAppRouteHandlerRevalidateSeconds(handler);
|
|
47
|
+
const isDevelopment = options.isDevelopment ?? process.env.NODE_ENV === "development";
|
|
48
|
+
const isProduction = options.isProduction ?? process.env.NODE_ENV === "production";
|
|
49
|
+
if (hasAppRouteHandlerDefaultExport(handler) && isDevelopment) console.error("[vinext] Detected default export in route handler " + route.pattern + ". Export a named export for each HTTP method instead.");
|
|
50
|
+
if (!isValidHTTPMethod(method)) {
|
|
51
|
+
options.clearRequestContext();
|
|
52
|
+
return applyRouteHandlerMiddlewareContext(new Response(null, { status: 400 }), options.middlewareContext);
|
|
53
|
+
}
|
|
54
|
+
const { allowHeaderForOptions, handlerFn, isAutoHead, shouldAutoRespondToOptions } = resolveAppRouteHandlerMethod(handler, method);
|
|
55
|
+
if (shouldAutoRespondToOptions) {
|
|
56
|
+
options.clearRequestContext();
|
|
57
|
+
return applyRouteHandlerMiddlewareContext(new Response(null, {
|
|
58
|
+
status: 204,
|
|
59
|
+
headers: { Allow: allowHeaderForOptions }
|
|
60
|
+
}), options.middlewareContext);
|
|
61
|
+
}
|
|
62
|
+
const resolvedHandlerFn = isAppRouteHandlerFunction(handlerFn) ? handlerFn : void 0;
|
|
63
|
+
const fetchCacheMode = resolveAppRouteHandlerFetchCacheMode(handler);
|
|
64
|
+
setCurrentFetchCacheMode(fetchCacheMode);
|
|
65
|
+
setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
|
|
66
|
+
if (revalidateSeconds !== null && shouldReadAppRouteHandlerCache({
|
|
67
|
+
dynamicConfig: handler.dynamic,
|
|
68
|
+
handlerFn: resolvedHandlerFn,
|
|
69
|
+
isAutoHead,
|
|
70
|
+
isKnownDynamic: isKnownDynamicAppRoute(route.pattern),
|
|
71
|
+
isProduction,
|
|
72
|
+
method,
|
|
73
|
+
revalidateSeconds
|
|
74
|
+
}) && resolvedHandlerFn) {
|
|
75
|
+
const cachedRouteResponse = await readAppRouteHandlerCacheResponse({
|
|
76
|
+
basePath: options.basePath,
|
|
77
|
+
buildPageCacheTags(pathname, extraTags) {
|
|
78
|
+
return buildRouteHandlerPageCacheTags(pathname, extraTags, route.routeSegments);
|
|
79
|
+
},
|
|
80
|
+
cleanPathname: options.cleanPathname,
|
|
81
|
+
clearRequestContext: options.clearRequestContext,
|
|
82
|
+
consumeDynamicUsage,
|
|
83
|
+
dynamicConfig: handler.dynamic,
|
|
84
|
+
getCollectedFetchTags,
|
|
85
|
+
handlerFn: resolvedHandlerFn,
|
|
86
|
+
i18n: options.i18n,
|
|
87
|
+
trailingSlash: options.trailingSlash,
|
|
88
|
+
isAutoHead,
|
|
89
|
+
isrDebug: options.isrDebug,
|
|
90
|
+
isrGet: options.isrGet,
|
|
91
|
+
isrRouteKey: options.isrRouteKey,
|
|
92
|
+
isrSet: options.isrSet,
|
|
93
|
+
markDynamicUsage,
|
|
94
|
+
middlewareContext: options.middlewareContext,
|
|
95
|
+
params: options.params,
|
|
96
|
+
requestUrl: options.request.url,
|
|
97
|
+
revalidateSearchParams: options.searchParams,
|
|
98
|
+
expireSeconds: options.expireSeconds,
|
|
99
|
+
revalidateSeconds,
|
|
100
|
+
routePattern: route.pattern,
|
|
101
|
+
runInRevalidationContext(renderFn) {
|
|
102
|
+
return runInRouteHandlerRevalidationContext({
|
|
103
|
+
cleanPathname: options.cleanPathname,
|
|
104
|
+
draftModeSecret: options.draftModeSecret,
|
|
105
|
+
dynamicConfig: handler.dynamic,
|
|
106
|
+
fetchCacheMode,
|
|
107
|
+
routePattern: route.pattern,
|
|
108
|
+
routeSegments: route.routeSegments
|
|
109
|
+
}, renderFn);
|
|
110
|
+
},
|
|
111
|
+
scheduleBackgroundRegeneration(key, renderFn) {
|
|
112
|
+
options.scheduleBackgroundRegeneration(key, renderFn, {
|
|
113
|
+
routerKind: "App Router",
|
|
114
|
+
routePath: route.pattern,
|
|
115
|
+
routeType: "route"
|
|
116
|
+
});
|
|
117
|
+
},
|
|
118
|
+
setHeadersAccessPhase,
|
|
119
|
+
setNavigationContext
|
|
120
|
+
});
|
|
121
|
+
if (cachedRouteResponse) return cachedRouteResponse;
|
|
122
|
+
}
|
|
123
|
+
if (resolvedHandlerFn) return executeAppRouteHandler({
|
|
124
|
+
basePath: options.basePath,
|
|
125
|
+
buildPageCacheTags(pathname, extraTags) {
|
|
126
|
+
return buildRouteHandlerPageCacheTags(pathname, extraTags, route.routeSegments);
|
|
127
|
+
},
|
|
128
|
+
cleanPathname: options.cleanPathname,
|
|
129
|
+
clearRequestContext: options.clearRequestContext,
|
|
130
|
+
consumeDynamicUsage,
|
|
131
|
+
draftModeSecret: options.draftModeSecret,
|
|
132
|
+
executionContext: getRequestExecutionContext(),
|
|
133
|
+
getAndClearPendingCookies,
|
|
134
|
+
getCollectedFetchTags,
|
|
135
|
+
getDraftModeCookieHeader,
|
|
136
|
+
handler,
|
|
137
|
+
handlerFn: resolvedHandlerFn,
|
|
138
|
+
i18n: options.i18n,
|
|
139
|
+
trailingSlash: options.trailingSlash,
|
|
140
|
+
isAutoHead,
|
|
141
|
+
isProduction,
|
|
142
|
+
isrDebug: options.isrDebug,
|
|
143
|
+
isrRouteKey: options.isrRouteKey,
|
|
144
|
+
isrSet: options.isrSet,
|
|
145
|
+
markDynamicUsage,
|
|
146
|
+
method,
|
|
147
|
+
middlewareContext: options.middlewareContext,
|
|
148
|
+
middlewareRequestHeaders: options.middlewareRequestHeaders,
|
|
149
|
+
params: options.params === null ? null : makeThenableParams(options.params),
|
|
150
|
+
reportRequestError(error, request, context) {
|
|
151
|
+
reportRequestError(error, request, context);
|
|
152
|
+
},
|
|
153
|
+
request: options.request,
|
|
154
|
+
expireSeconds: options.expireSeconds,
|
|
155
|
+
revalidateSeconds,
|
|
156
|
+
routePattern: route.pattern,
|
|
157
|
+
setHeadersAccessPhase
|
|
158
|
+
});
|
|
159
|
+
options.clearRequestContext();
|
|
160
|
+
return applyRouteHandlerMiddlewareContext(new Response(null, { status: 405 }), options.middlewareContext);
|
|
161
|
+
}
|
|
162
|
+
//#endregion
|
|
163
|
+
export { dispatchAppRouteHandler };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { NextI18nConfig } from "../config/next-config.js";
|
|
2
|
+
import { CachedRouteValue } from "../shims/cache-handler.js";
|
|
3
|
+
import { ExecutionContextLike } from "../shims/request-context.js";
|
|
4
|
+
import { NextRequest } from "../shims/server.js";
|
|
5
|
+
import { HeadersAccessPhase } from "../shims/headers.js";
|
|
6
|
+
import { RouteHandlerMiddlewareContext } from "./app-route-handler-response.js";
|
|
7
|
+
import { AppRouteHandlerModule } from "./app-route-handler-policy.js";
|
|
8
|
+
|
|
9
|
+
//#region src/server/app-route-handler-execution.d.ts
|
|
10
|
+
type AppRouteParams = Record<string, string | string[]>;
|
|
11
|
+
type AppRouteDynamicUsageFn = () => boolean;
|
|
12
|
+
type MarkAppRouteDynamicUsageFn = () => void;
|
|
13
|
+
/**
|
|
14
|
+
* Route handler context.
|
|
15
|
+
*
|
|
16
|
+
* `params` is `null` for non-dynamic routes (no `[param]` segments) so that
|
|
17
|
+
* user code like `params ? await params : null` resolves to `null`, matching
|
|
18
|
+
* Next.js behavior. For dynamic routes it's a thenable that resolves to the
|
|
19
|
+
* matched params object.
|
|
20
|
+
*
|
|
21
|
+
* See: test/e2e/app-dir/app-routes/app-custom-routes.test.ts in Next.js for
|
|
22
|
+
* the authoritative assertion (`expect(meta.params).toEqual(null)`).
|
|
23
|
+
*/
|
|
24
|
+
type AppRouteHandlerFunction = (request: NextRequest, context: {
|
|
25
|
+
params: AppRouteParams | null;
|
|
26
|
+
}) => Response | Promise<Response>;
|
|
27
|
+
type RouteHandlerCacheSetter = (key: string, data: CachedRouteValue, revalidateSeconds: number, tags: string[], expireSeconds?: number) => Promise<void>;
|
|
28
|
+
type AppRouteErrorReporter = (error: Error, request: {
|
|
29
|
+
path: string;
|
|
30
|
+
method: string;
|
|
31
|
+
headers: Record<string, string>;
|
|
32
|
+
}, route: {
|
|
33
|
+
routerKind: "App Router";
|
|
34
|
+
routePath: string;
|
|
35
|
+
routeType: "route";
|
|
36
|
+
}) => void;
|
|
37
|
+
type AppRouteDebugLogger = (event: string, detail: string) => void;
|
|
38
|
+
type RunAppRouteHandlerOptions = {
|
|
39
|
+
basePath?: string;
|
|
40
|
+
consumeDynamicUsage: AppRouteDynamicUsageFn;
|
|
41
|
+
draftModeSecret?: string;
|
|
42
|
+
dynamicConfig?: string;
|
|
43
|
+
handlerFn: AppRouteHandlerFunction;
|
|
44
|
+
i18n?: NextI18nConfig | null;
|
|
45
|
+
trailingSlash?: boolean;
|
|
46
|
+
markDynamicUsage: MarkAppRouteDynamicUsageFn;
|
|
47
|
+
middlewareRequestHeaders?: Headers | null;
|
|
48
|
+
/**
|
|
49
|
+
* `null` for non-dynamic routes. Passed through to the handler context
|
|
50
|
+
* unchanged — callers are expected to compute this from `route.isDynamic`.
|
|
51
|
+
*/
|
|
52
|
+
params: AppRouteParams | null;
|
|
53
|
+
request: Request;
|
|
54
|
+
routePattern?: string;
|
|
55
|
+
setHeadersAccessPhase?: (phase: HeadersAccessPhase) => HeadersAccessPhase;
|
|
56
|
+
};
|
|
57
|
+
type RunAppRouteHandlerResult = {
|
|
58
|
+
dynamicUsedInHandler: boolean;
|
|
59
|
+
response: Response;
|
|
60
|
+
};
|
|
61
|
+
type ExecuteAppRouteHandlerOptions = {
|
|
62
|
+
buildPageCacheTags: (pathname: string, extraTags: string[]) => string[];
|
|
63
|
+
clearRequestContext: () => void;
|
|
64
|
+
cleanPathname: string;
|
|
65
|
+
executionContext: ExecutionContextLike | null;
|
|
66
|
+
getAndClearPendingCookies: () => string[];
|
|
67
|
+
getCollectedFetchTags: () => string[];
|
|
68
|
+
getDraftModeCookieHeader: () => string | null | undefined;
|
|
69
|
+
handler: AppRouteHandlerModule;
|
|
70
|
+
isAutoHead: boolean;
|
|
71
|
+
isProduction: boolean;
|
|
72
|
+
isrDebug?: AppRouteDebugLogger;
|
|
73
|
+
isrRouteKey: (pathname: string) => string;
|
|
74
|
+
isrSet: RouteHandlerCacheSetter;
|
|
75
|
+
method: string;
|
|
76
|
+
middlewareContext: RouteHandlerMiddlewareContext;
|
|
77
|
+
reportRequestError: AppRouteErrorReporter;
|
|
78
|
+
expireSeconds?: number;
|
|
79
|
+
revalidateSeconds: number | null;
|
|
80
|
+
routePattern: string;
|
|
81
|
+
setHeadersAccessPhase: (phase: HeadersAccessPhase) => HeadersAccessPhase;
|
|
82
|
+
} & RunAppRouteHandlerOptions;
|
|
83
|
+
declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
|
|
84
|
+
declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
|
|
85
|
+
//#endregion
|
|
86
|
+
export { AppRouteDebugLogger, AppRouteDynamicUsageFn, AppRouteHandlerFunction, AppRouteParams, MarkAppRouteDynamicUsageFn, RouteHandlerCacheSetter, executeAppRouteHandler, runAppRouteHandler };
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { setHeadersContext } from "../shims/headers.js";
|
|
2
|
+
import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
|
|
3
|
+
import { applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss } from "./app-route-handler-response.js";
|
|
4
|
+
import { createTrackedAppRouteRequest, markKnownDynamicAppRoute } from "./app-route-handler-runtime.js";
|
|
5
|
+
import { createStaticGenerationHeadersContext, getAppRouteStaticGenerationErrorMessage } from "./app-static-generation.js";
|
|
6
|
+
import { resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldWriteAppRouteHandlerCache } from "./app-route-handler-policy.js";
|
|
7
|
+
//#region src/server/app-route-handler-execution.ts
|
|
8
|
+
function configureAppRouteStaticGenerationContext(options) {
|
|
9
|
+
if (options.dynamicConfig === "force-static" || options.dynamicConfig === "error") {
|
|
10
|
+
setHeadersContext(createStaticGenerationHeadersContext({
|
|
11
|
+
draftModeSecret: options.draftModeSecret,
|
|
12
|
+
dynamicConfig: options.dynamicConfig,
|
|
13
|
+
routeKind: "route",
|
|
14
|
+
routePattern: options.routePattern
|
|
15
|
+
}));
|
|
16
|
+
options.setHeadersAccessPhase?.("route-handler");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function runAppRouteHandler(options) {
|
|
20
|
+
options.consumeDynamicUsage();
|
|
21
|
+
configureAppRouteStaticGenerationContext(options);
|
|
22
|
+
const trackedRequest = createTrackedAppRouteRequest(options.request, {
|
|
23
|
+
basePath: options.basePath,
|
|
24
|
+
i18n: options.i18n,
|
|
25
|
+
trailingSlash: options.trailingSlash,
|
|
26
|
+
middlewareHeaders: options.middlewareRequestHeaders,
|
|
27
|
+
onDynamicAccess() {
|
|
28
|
+
options.markDynamicUsage();
|
|
29
|
+
},
|
|
30
|
+
requestMode: options.dynamicConfig === "force-static" || options.dynamicConfig === "error" ? options.dynamicConfig : "auto",
|
|
31
|
+
staticGenerationErrorMessage(expression) {
|
|
32
|
+
return getAppRouteStaticGenerationErrorMessage(options.routePattern, expression);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const response = await options.handlerFn(trackedRequest.request, { params: options.params });
|
|
36
|
+
return {
|
|
37
|
+
dynamicUsedInHandler: options.consumeDynamicUsage(),
|
|
38
|
+
response
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
async function executeAppRouteHandler(options) {
|
|
42
|
+
const previousHeadersPhase = options.setHeadersAccessPhase("route-handler");
|
|
43
|
+
try {
|
|
44
|
+
const { dynamicUsedInHandler, response } = await runAppRouteHandler({
|
|
45
|
+
...options,
|
|
46
|
+
dynamicConfig: options.handler.dynamic
|
|
47
|
+
});
|
|
48
|
+
assertSupportedAppRouteHandlerResponse(response);
|
|
49
|
+
const handlerSetCacheControl = response.headers.has("cache-control");
|
|
50
|
+
if (dynamicUsedInHandler) markKnownDynamicAppRoute(options.routePattern);
|
|
51
|
+
const routeTags = options.buildPageCacheTags(options.cleanPathname, options.getCollectedFetchTags());
|
|
52
|
+
if (shouldApplyAppRouteHandlerRevalidateHeader({
|
|
53
|
+
dynamicUsedInHandler,
|
|
54
|
+
handlerSetCacheControl,
|
|
55
|
+
isAutoHead: options.isAutoHead,
|
|
56
|
+
method: options.method,
|
|
57
|
+
revalidateSeconds: options.revalidateSeconds
|
|
58
|
+
})) {
|
|
59
|
+
const revalidateSeconds = options.revalidateSeconds;
|
|
60
|
+
if (revalidateSeconds == null) throw new Error("Expected route handler revalidate seconds");
|
|
61
|
+
applyRouteHandlerRevalidateHeader(response, revalidateSeconds, options.expireSeconds, routeTags);
|
|
62
|
+
}
|
|
63
|
+
if (shouldWriteAppRouteHandlerCache({
|
|
64
|
+
dynamicConfig: options.handler.dynamic,
|
|
65
|
+
dynamicUsedInHandler,
|
|
66
|
+
handlerSetCacheControl,
|
|
67
|
+
isAutoHead: options.isAutoHead,
|
|
68
|
+
isProduction: options.isProduction,
|
|
69
|
+
method: options.method,
|
|
70
|
+
revalidateSeconds: options.revalidateSeconds
|
|
71
|
+
})) {
|
|
72
|
+
markRouteHandlerCacheMiss(response);
|
|
73
|
+
const routeClone = response.clone();
|
|
74
|
+
const routeKey = options.isrRouteKey(options.cleanPathname);
|
|
75
|
+
const revalidateSeconds = options.revalidateSeconds;
|
|
76
|
+
if (revalidateSeconds == null) throw new Error("Expected route handler cache revalidate seconds");
|
|
77
|
+
const routeWritePromise = (async () => {
|
|
78
|
+
try {
|
|
79
|
+
const routeCacheValue = await buildAppRouteCacheValue(routeClone);
|
|
80
|
+
await options.isrSet(routeKey, routeCacheValue, revalidateSeconds, routeTags, options.expireSeconds);
|
|
81
|
+
options.isrDebug?.("route cache written", routeKey);
|
|
82
|
+
} catch (cacheErr) {
|
|
83
|
+
console.error("[vinext] ISR route cache write error:", cacheErr);
|
|
84
|
+
}
|
|
85
|
+
})();
|
|
86
|
+
options.executionContext?.waitUntil(routeWritePromise);
|
|
87
|
+
}
|
|
88
|
+
const pendingCookies = options.getAndClearPendingCookies();
|
|
89
|
+
const draftCookie = options.getDraftModeCookieHeader();
|
|
90
|
+
options.clearRequestContext();
|
|
91
|
+
return applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(response, {
|
|
92
|
+
pendingCookies,
|
|
93
|
+
draftCookie,
|
|
94
|
+
isHead: options.isAutoHead
|
|
95
|
+
}), options.middlewareContext);
|
|
96
|
+
} catch (error) {
|
|
97
|
+
const pendingCookies = options.getAndClearPendingCookies();
|
|
98
|
+
const draftCookie = options.getDraftModeCookieHeader();
|
|
99
|
+
const specialError = resolveAppRouteHandlerSpecialError(error, options.request.url, { isAction: isPossibleAppRouteActionRequest(options.request) });
|
|
100
|
+
options.clearRequestContext();
|
|
101
|
+
if (specialError) {
|
|
102
|
+
if (specialError.kind === "redirect") return applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(new Response(null, {
|
|
103
|
+
status: specialError.statusCode,
|
|
104
|
+
headers: { Location: specialError.location }
|
|
105
|
+
}), {
|
|
106
|
+
pendingCookies,
|
|
107
|
+
draftCookie,
|
|
108
|
+
isHead: options.isAutoHead
|
|
109
|
+
}), options.middlewareContext);
|
|
110
|
+
return applyRouteHandlerMiddlewareContext(new Response(null, { status: specialError.statusCode }), options.middlewareContext);
|
|
111
|
+
}
|
|
112
|
+
console.error("[vinext] Route handler error:", error);
|
|
113
|
+
options.reportRequestError(error instanceof Error ? error : new Error(String(error)), {
|
|
114
|
+
path: options.cleanPathname,
|
|
115
|
+
method: options.request.method,
|
|
116
|
+
headers: Object.fromEntries(options.request.headers.entries())
|
|
117
|
+
}, {
|
|
118
|
+
routerKind: "App Router",
|
|
119
|
+
routePath: options.routePattern,
|
|
120
|
+
routeType: "route"
|
|
121
|
+
});
|
|
122
|
+
return applyRouteHandlerMiddlewareContext(new Response(null, { status: 500 }), options.middlewareContext);
|
|
123
|
+
} finally {
|
|
124
|
+
options.setHeadersAccessPhase(previousHeadersPhase);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { executeAppRouteHandler, runAppRouteHandler };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
|
|
2
|
+
import { RouteHandlerHttpMethod, RouteHandlerModule } from "./app-route-handler-runtime.js";
|
|
3
|
+
|
|
4
|
+
//#region src/server/app-route-handler-policy.d.ts
|
|
5
|
+
type AppRouteHandlerModule = {
|
|
6
|
+
dynamic?: string;
|
|
7
|
+
fetchCache?: unknown;
|
|
8
|
+
revalidate?: unknown;
|
|
9
|
+
} & RouteHandlerModule;
|
|
10
|
+
type AppRouteHandlerFunction = (...args: unknown[]) => unknown;
|
|
11
|
+
type ResolvedAppRouteHandlerMethod = {
|
|
12
|
+
allowHeaderForOptions: string;
|
|
13
|
+
exportedMethods: RouteHandlerHttpMethod[];
|
|
14
|
+
handlerFn: AppRouteHandlerFunction | undefined;
|
|
15
|
+
isAutoHead: boolean;
|
|
16
|
+
shouldAutoRespondToOptions: boolean;
|
|
17
|
+
};
|
|
18
|
+
type AppRouteHandlerCacheReadOptions = {
|
|
19
|
+
dynamicConfig?: string;
|
|
20
|
+
handlerFn: unknown;
|
|
21
|
+
isAutoHead: boolean;
|
|
22
|
+
isKnownDynamic: boolean;
|
|
23
|
+
isProduction: boolean;
|
|
24
|
+
method: string;
|
|
25
|
+
revalidateSeconds: number | null;
|
|
26
|
+
};
|
|
27
|
+
type AppRouteHandlerResponseCacheOptions = {
|
|
28
|
+
dynamicConfig?: string;
|
|
29
|
+
dynamicUsedInHandler: boolean;
|
|
30
|
+
handlerSetCacheControl: boolean;
|
|
31
|
+
isAutoHead: boolean;
|
|
32
|
+
isProduction: boolean;
|
|
33
|
+
method: string;
|
|
34
|
+
revalidateSeconds: number | null;
|
|
35
|
+
};
|
|
36
|
+
type AppRouteHandlerSpecialError = {
|
|
37
|
+
kind: "redirect";
|
|
38
|
+
location: string;
|
|
39
|
+
statusCode: number;
|
|
40
|
+
} | {
|
|
41
|
+
kind: "status";
|
|
42
|
+
statusCode: number;
|
|
43
|
+
};
|
|
44
|
+
type AppRouteHandlerSpecialErrorOptions = {
|
|
45
|
+
isAction: boolean;
|
|
46
|
+
};
|
|
47
|
+
declare function getAppRouteHandlerRevalidateSeconds(handler: Pick<AppRouteHandlerModule, "revalidate">): number | null;
|
|
48
|
+
declare function hasAppRouteHandlerDefaultExport(handler: RouteHandlerModule): boolean;
|
|
49
|
+
declare function resolveAppRouteHandlerMethod(handler: AppRouteHandlerModule, method: string): ResolvedAppRouteHandlerMethod;
|
|
50
|
+
declare function shouldReadAppRouteHandlerCache(options: AppRouteHandlerCacheReadOptions): boolean;
|
|
51
|
+
declare function shouldApplyAppRouteHandlerRevalidateHeader(options: Omit<AppRouteHandlerResponseCacheOptions, "dynamicConfig" | "isProduction">): boolean;
|
|
52
|
+
declare function shouldWriteAppRouteHandlerCache(options: AppRouteHandlerResponseCacheOptions): boolean;
|
|
53
|
+
declare function resolveAppRouteHandlerSpecialError(error: unknown, requestUrl: string, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { AppRouteHandlerModule, getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, isPossibleAppRouteActionRequest, resolveAppRouteHandlerMethod, resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldReadAppRouteHandlerCache, shouldWriteAppRouteHandlerCache };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
|
|
2
|
+
import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
|
|
3
|
+
import { buildRouteHandlerAllowHeader, collectRouteHandlerMethods } from "./app-route-handler-runtime.js";
|
|
4
|
+
//#region src/server/app-route-handler-policy.ts
|
|
5
|
+
function getAppRouteHandlerRevalidateSeconds(handler) {
|
|
6
|
+
const { revalidate } = handler;
|
|
7
|
+
if (revalidate === false) return Infinity;
|
|
8
|
+
if (typeof revalidate !== "number" || !Number.isFinite(revalidate) || revalidate < 0) return null;
|
|
9
|
+
return revalidate;
|
|
10
|
+
}
|
|
11
|
+
function hasAppRouteHandlerDefaultExport(handler) {
|
|
12
|
+
return typeof handler.default === "function";
|
|
13
|
+
}
|
|
14
|
+
function resolveAppRouteHandlerMethod(handler, method) {
|
|
15
|
+
const exportedMethods = collectRouteHandlerMethods(handler);
|
|
16
|
+
const allowHeaderForOptions = buildRouteHandlerAllowHeader(exportedMethods);
|
|
17
|
+
const shouldAutoRespondToOptions = method === "OPTIONS" && typeof handler.OPTIONS !== "function";
|
|
18
|
+
let handlerFn = typeof handler[method] === "function" ? handler[method] : void 0;
|
|
19
|
+
let isAutoHead = false;
|
|
20
|
+
if (method === "HEAD" && typeof handler.HEAD !== "function" && typeof handler.GET === "function") {
|
|
21
|
+
handlerFn = handler.GET;
|
|
22
|
+
isAutoHead = true;
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
allowHeaderForOptions,
|
|
26
|
+
exportedMethods,
|
|
27
|
+
handlerFn,
|
|
28
|
+
isAutoHead,
|
|
29
|
+
shouldAutoRespondToOptions
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function shouldReadAppRouteHandlerCache(options) {
|
|
33
|
+
return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.revalidateSeconds !== Infinity && options.dynamicConfig !== "force-dynamic" && !options.isKnownDynamic && (options.method === "GET" || options.isAutoHead) && typeof options.handlerFn === "function";
|
|
34
|
+
}
|
|
35
|
+
function shouldApplyAppRouteHandlerRevalidateHeader(options) {
|
|
36
|
+
return options.revalidateSeconds !== null && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead) && !options.handlerSetCacheControl;
|
|
37
|
+
}
|
|
38
|
+
function shouldWriteAppRouteHandlerCache(options) {
|
|
39
|
+
return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.revalidateSeconds !== Infinity && options.dynamicConfig !== "force-dynamic" && shouldApplyAppRouteHandlerRevalidateHeader(options);
|
|
40
|
+
}
|
|
41
|
+
function resolveAppRouteHandlerSpecialError(error, requestUrl, options) {
|
|
42
|
+
if (!(error && typeof error === "object" && "digest" in error)) return null;
|
|
43
|
+
const digest = String(error.digest);
|
|
44
|
+
const redirect = parseNextRedirectDigest(digest);
|
|
45
|
+
if (redirect) return {
|
|
46
|
+
kind: "redirect",
|
|
47
|
+
location: new URL(redirect.url, requestUrl).toString(),
|
|
48
|
+
statusCode: options?.isAction ? 303 : redirect.status
|
|
49
|
+
};
|
|
50
|
+
const httpError = parseNextHttpErrorDigest(digest);
|
|
51
|
+
if (httpError) return {
|
|
52
|
+
kind: "status",
|
|
53
|
+
statusCode: httpError.status
|
|
54
|
+
};
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
//#endregion
|
|
58
|
+
export { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, isPossibleAppRouteActionRequest, resolveAppRouteHandlerMethod, resolveAppRouteHandlerSpecialError, shouldApplyAppRouteHandlerRevalidateHeader, shouldReadAppRouteHandlerCache, shouldWriteAppRouteHandlerCache };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CacheControlMetadata, CachedRouteValue } from "../shims/cache-handler.js";
|
|
2
|
+
|
|
3
|
+
//#region src/server/app-route-handler-response.d.ts
|
|
4
|
+
type RouteHandlerMiddlewareContext = {
|
|
5
|
+
headers: Headers | null;
|
|
6
|
+
status: number | null;
|
|
7
|
+
};
|
|
8
|
+
type BuildRouteHandlerCachedResponseOptions = {
|
|
9
|
+
cacheControl?: CacheControlMetadata;
|
|
10
|
+
cacheState: "HIT" | "STALE";
|
|
11
|
+
expireSeconds?: number;
|
|
12
|
+
isHead: boolean;
|
|
13
|
+
revalidateSeconds: number;
|
|
14
|
+
};
|
|
15
|
+
type FinalizeRouteHandlerResponseOptions = {
|
|
16
|
+
pendingCookies: string[];
|
|
17
|
+
draftCookie?: string | null;
|
|
18
|
+
isHead: boolean;
|
|
19
|
+
};
|
|
20
|
+
declare function applyRouteHandlerMiddlewareContext(response: Response, middlewareContext: RouteHandlerMiddlewareContext): Response;
|
|
21
|
+
declare function assertSupportedAppRouteHandlerResponse(response: Response): void;
|
|
22
|
+
declare function buildRouteHandlerCachedResponse(cachedValue: CachedRouteValue, options: BuildRouteHandlerCachedResponseOptions): Response;
|
|
23
|
+
declare function applyRouteHandlerRevalidateHeader(response: Response, revalidateSeconds: number, expireSeconds?: number, tags?: readonly string[]): void;
|
|
24
|
+
declare function markRouteHandlerCacheMiss(response: Response): void;
|
|
25
|
+
declare function buildAppRouteCacheValue(response: Response): Promise<CachedRouteValue>;
|
|
26
|
+
declare function finalizeRouteHandlerResponse(response: Response, options: FinalizeRouteHandlerResponseOptions): Response;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { RouteHandlerMiddlewareContext, applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, buildRouteHandlerCachedResponse, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss };
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import "./headers.js";
|
|
2
|
+
import { processMiddlewareHeaders } from "./request-pipeline.js";
|
|
3
|
+
import { setCacheStateHeaders } from "./cache-headers.js";
|
|
4
|
+
import { applyCdnResponseHeaders } from "./cache-control.js";
|
|
5
|
+
import { buildAppRouteMissIsrCacheControl, decideIsr } from "./isr-decision.js";
|
|
6
|
+
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
7
|
+
import { getSetCookieName } from "./cookie-utils.js";
|
|
8
|
+
//#region src/server/app-route-handler-response.ts
|
|
9
|
+
const APP_ROUTE_REWRITE_ERROR = "NextResponse.rewrite() was used in a app route handler, this is not currently supported. Please remove the invocation to continue.";
|
|
10
|
+
const APP_ROUTE_NEXT_ERROR = "NextResponse.next() was used in a app route handler, this is not supported. See here for more info: https://nextjs.org/docs/messages/next-response-next-in-app-route-handler";
|
|
11
|
+
function hasMiddlewareHeader(headers) {
|
|
12
|
+
for (const key of headers.keys()) if (key.startsWith("x-middleware-")) return true;
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
function applyRouteHandlerMiddlewareContext(response, middlewareContext) {
|
|
16
|
+
if (!middlewareContext.headers && middlewareContext.status == null) return response;
|
|
17
|
+
const responseHeaders = new Headers(response.headers);
|
|
18
|
+
mergeMiddlewareResponseHeaders(responseHeaders, middlewareContext.headers);
|
|
19
|
+
return new Response(response.body, {
|
|
20
|
+
status: middlewareContext.status ?? response.status,
|
|
21
|
+
statusText: response.statusText,
|
|
22
|
+
headers: responseHeaders
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function assertSupportedAppRouteHandlerResponse(response) {
|
|
26
|
+
if (response.headers.has("x-middleware-rewrite")) throw new Error(APP_ROUTE_REWRITE_ERROR);
|
|
27
|
+
if (response.headers.get("x-middleware-next") === "1") throw new Error(APP_ROUTE_NEXT_ERROR);
|
|
28
|
+
}
|
|
29
|
+
function buildRouteHandlerCachedResponse(cachedValue, options) {
|
|
30
|
+
const headers = new Headers();
|
|
31
|
+
for (const [key, value] of Object.entries(cachedValue.headers)) if (Array.isArray(value)) for (const entry of value) headers.append(key, entry);
|
|
32
|
+
else headers.set(key, value);
|
|
33
|
+
setCacheStateHeaders(headers, options.cacheState);
|
|
34
|
+
const { cacheControl } = decideIsr({
|
|
35
|
+
cacheState: options.cacheState,
|
|
36
|
+
kind: "app-route",
|
|
37
|
+
revalidateSeconds: options.revalidateSeconds,
|
|
38
|
+
expireSeconds: options.expireSeconds,
|
|
39
|
+
cacheControlMeta: options.cacheControl
|
|
40
|
+
});
|
|
41
|
+
applyCdnResponseHeaders(headers, { cacheControl });
|
|
42
|
+
return new Response(options.isHead ? null : cachedValue.body, {
|
|
43
|
+
status: cachedValue.status,
|
|
44
|
+
headers
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function applyRouteHandlerRevalidateHeader(response, revalidateSeconds, expireSeconds, tags) {
|
|
48
|
+
applyCdnResponseHeaders(response.headers, {
|
|
49
|
+
cacheControl: buildAppRouteMissIsrCacheControl(revalidateSeconds, expireSeconds),
|
|
50
|
+
tags
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function markRouteHandlerCacheMiss(response) {
|
|
54
|
+
setCacheStateHeaders(response.headers, "MISS");
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns true when the given Set-Cookie string already declares any of the
|
|
58
|
+
* attributes that follow the first `;` (case-insensitively). Used to detect
|
|
59
|
+
* whether a user-emitted Set-Cookie line already carries an explicit `Path=`,
|
|
60
|
+
* matching Next.js's `appendMutableCookies` which re-runs every cookie through
|
|
61
|
+
* `ResponseCookies.set` (and therefore picks up the `Path=/` default for any
|
|
62
|
+
* cookie that didn't supply one).
|
|
63
|
+
*/
|
|
64
|
+
function hasCookieAttribute(cookie, attributeName) {
|
|
65
|
+
const target = attributeName.toLowerCase();
|
|
66
|
+
let i = cookie.indexOf(";");
|
|
67
|
+
while (i !== -1) {
|
|
68
|
+
let start = i + 1;
|
|
69
|
+
while (start < cookie.length && cookie[start] === " ") start++;
|
|
70
|
+
const next = cookie.indexOf(";", start);
|
|
71
|
+
const end = next === -1 ? cookie.length : next;
|
|
72
|
+
const eq = cookie.indexOf("=", start);
|
|
73
|
+
const attrEnd = eq === -1 || eq > end ? end : eq;
|
|
74
|
+
if (cookie.slice(start, attrEnd).trim().toLowerCase() === target) return true;
|
|
75
|
+
i = next;
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Ensure each Set-Cookie line carries `Path=/` by default — Next.js's
|
|
81
|
+
* `appendMutableCookies` re-runs every returned cookie through
|
|
82
|
+
* `ResponseCookies.set`, which normalises a missing `path` to `/`. Without
|
|
83
|
+
* this, a raw `new Response(..., { headers: [['Set-Cookie', 'bar=bar2']] })`
|
|
84
|
+
* lands without `Path=/` and tests that assert on the full attribute set
|
|
85
|
+
* (e.g. Next.js's `app-action.test.ts` route-handler-overrides case, see
|
|
86
|
+
* issue #1484) break.
|
|
87
|
+
*/
|
|
88
|
+
function normalizeReturnedCookie(cookie) {
|
|
89
|
+
if (hasCookieAttribute(cookie, "Path")) return cookie;
|
|
90
|
+
return `${cookie.replace(/;\s*$/, "")}; Path=/`;
|
|
91
|
+
}
|
|
92
|
+
function applyMutableCookieFallbacks(headers, pendingCookies) {
|
|
93
|
+
if (pendingCookies.length === 0) return;
|
|
94
|
+
const returnedCookies = headers.getSetCookie();
|
|
95
|
+
const returnedCookieNames = /* @__PURE__ */ new Set();
|
|
96
|
+
for (const cookie of returnedCookies) {
|
|
97
|
+
const name = getSetCookieName(cookie);
|
|
98
|
+
if (name) returnedCookieNames.add(name);
|
|
99
|
+
}
|
|
100
|
+
const fallbackCookies = /* @__PURE__ */ new Map();
|
|
101
|
+
const unkeyedFallbackCookies = [];
|
|
102
|
+
for (const cookie of pendingCookies) {
|
|
103
|
+
const name = getSetCookieName(cookie);
|
|
104
|
+
if (!name) {
|
|
105
|
+
unkeyedFallbackCookies.push(cookie);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (!returnedCookieNames.has(name)) fallbackCookies.set(name, cookie);
|
|
109
|
+
}
|
|
110
|
+
headers.delete("Set-Cookie");
|
|
111
|
+
for (const cookie of unkeyedFallbackCookies) headers.append("Set-Cookie", cookie);
|
|
112
|
+
for (const cookie of fallbackCookies.values()) headers.append("Set-Cookie", cookie);
|
|
113
|
+
for (const cookie of returnedCookies) headers.append("Set-Cookie", normalizeReturnedCookie(cookie));
|
|
114
|
+
}
|
|
115
|
+
async function buildAppRouteCacheValue(response) {
|
|
116
|
+
const body = await response.arrayBuffer();
|
|
117
|
+
const headers = {};
|
|
118
|
+
response.headers.forEach((value, key) => {
|
|
119
|
+
if (key === "set-cookie" || key === "X-Vinext-Cache".toLowerCase() || key === "x-nextjs-cache".toLowerCase() || key === "cache-control" || key.startsWith("x-middleware-")) return;
|
|
120
|
+
headers[key] = value;
|
|
121
|
+
});
|
|
122
|
+
const setCookies = response.headers.getSetCookie?.() ?? [];
|
|
123
|
+
if (setCookies.length > 0) headers["set-cookie"] = setCookies;
|
|
124
|
+
return {
|
|
125
|
+
kind: "APP_ROUTE",
|
|
126
|
+
body,
|
|
127
|
+
status: response.status,
|
|
128
|
+
headers
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function finalizeRouteHandlerResponse(response, options) {
|
|
132
|
+
const { pendingCookies, draftCookie, isHead } = options;
|
|
133
|
+
if (pendingCookies.length === 0 && !draftCookie && !isHead && !hasMiddlewareHeader(response.headers)) return response;
|
|
134
|
+
const headers = new Headers(response.headers);
|
|
135
|
+
processMiddlewareHeaders(headers);
|
|
136
|
+
applyMutableCookieFallbacks(headers, pendingCookies);
|
|
137
|
+
if (draftCookie) headers.append("Set-Cookie", draftCookie);
|
|
138
|
+
return new Response(isHead ? null : response.body, {
|
|
139
|
+
status: response.status,
|
|
140
|
+
statusText: response.statusText,
|
|
141
|
+
headers
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
//#endregion
|
|
145
|
+
export { applyRouteHandlerMiddlewareContext, applyRouteHandlerRevalidateHeader, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, buildRouteHandlerCachedResponse, finalizeRouteHandlerResponse, markRouteHandlerCacheMiss };
|