@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,401 @@
|
|
|
1
|
+
import { getOrCreateAls } from "./internal/als-registry.js";
|
|
2
|
+
import { getRequestContext, isInsideUnifiedScope } from "./unified-request-context.js";
|
|
3
|
+
import { getRequestExecutionContext, runWithExecutionContext } from "./request-context.js";
|
|
4
|
+
import { MemoryCacheHandler, NoOpCacheHandler, configureMemoryCacheHandler, getCacheHandler, getDataCacheHandler, setCacheHandler, setDataCacheHandler } from "./cache-handler.js";
|
|
5
|
+
import { getCdnCacheAdapter } from "./cdn-cache.js";
|
|
6
|
+
import { fnv1a64 } from "../utils/hash.js";
|
|
7
|
+
import { makeHangingPromise } from "./internal/make-hanging-promise.js";
|
|
8
|
+
import { getHeadersAccessPhase, markDynamicUsage } from "./headers.js";
|
|
9
|
+
import { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, _consumeRequestScopedCacheLife, _initRequestScopedCacheState, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife, cacheLifeProfiles, getAndClearActionRevalidationKind, getRegisteredCacheContext, markActionRevalidation, recordUnstableCacheObservation, shouldServeStaleUnstableCacheEntry } from "./cache-request-state.js";
|
|
10
|
+
import { encodeCacheTag, encodeCacheTags } from "../utils/encode-cache-tag.js";
|
|
11
|
+
import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
12
|
+
//#region src/shims/cache.ts
|
|
13
|
+
/**
|
|
14
|
+
* next/cache shim
|
|
15
|
+
*
|
|
16
|
+
* Provides the Next.js caching API surface: revalidateTag, revalidatePath,
|
|
17
|
+
* unstable_cache. Backed by a pluggable CacheHandler that defaults to
|
|
18
|
+
* in-memory but can be swapped for Cloudflare KV, Redis, DynamoDB, etc.
|
|
19
|
+
*
|
|
20
|
+
* The CacheHandler interface matches Next.js 16's CacheHandler class, so
|
|
21
|
+
* existing community adapters (@neshca/cache-handler, @opennextjs/aws, etc.)
|
|
22
|
+
* can be used directly.
|
|
23
|
+
*
|
|
24
|
+
* Recommended configuration is declarative, via the `cache` option on the
|
|
25
|
+
* `vinext()` plugin in vite.config.ts:
|
|
26
|
+
* import { kvDataAdapter } from '@vinext/cloudflare/cache/kv-data-adapter';
|
|
27
|
+
* vinext({ cache: { data: kvDataAdapter({ binding: 'VINEXT_KV_CACHE' }) } })
|
|
28
|
+
*
|
|
29
|
+
* The imperative `setCacheHandler` / `setDataCacheHandler` setters are
|
|
30
|
+
* deprecated for consumers and retained only as the internal registration
|
|
31
|
+
* target used by the generated cache-adapter module.
|
|
32
|
+
*/
|
|
33
|
+
const _g = globalThis;
|
|
34
|
+
/**
|
|
35
|
+
* Revalidate cached data associated with a specific cache tag.
|
|
36
|
+
*
|
|
37
|
+
* Works with both `fetch(..., { next: { tags: ['myTag'] } })` and
|
|
38
|
+
* `unstable_cache(fn, keys, { tags: ['myTag'] })`.
|
|
39
|
+
*
|
|
40
|
+
* Next.js 16 updated signature: accepts a cacheLife profile as second argument
|
|
41
|
+
* for stale-while-revalidate (SWR) behavior. The single-argument form is
|
|
42
|
+
* deprecated but still supported for backward compatibility.
|
|
43
|
+
*
|
|
44
|
+
* @param tag - Cache tag to revalidate
|
|
45
|
+
* @param profile - cacheLife profile name (e.g. 'max', 'hours') or inline { expire: number }
|
|
46
|
+
*/
|
|
47
|
+
async function revalidateTag(tag, profile) {
|
|
48
|
+
let durations;
|
|
49
|
+
if (typeof profile === "string") {
|
|
50
|
+
const resolved = cacheLifeProfiles[profile];
|
|
51
|
+
if (resolved) durations = { expire: resolved.expire };
|
|
52
|
+
} else if (profile && typeof profile === "object") durations = profile;
|
|
53
|
+
if (!profile || !durations || durations.expire === 0) markActionRevalidation(1);
|
|
54
|
+
await _invalidateEncodedTag(encodeCacheTag(tag), durations);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Invalidate one already-encoded tag across both cache layers.
|
|
58
|
+
*
|
|
59
|
+
* Ordering is intentional and load-bearing: invalidate the data cache store
|
|
60
|
+
* FIRST (covers fetch data, `"use cache"`, and page entries stored there by the
|
|
61
|
+
* default CDN adapter), THEN ask the CDN adapter to purge its edge (a no-op for
|
|
62
|
+
* the default adapter). Purging the edge before the store is invalidated would
|
|
63
|
+
* let the edge re-fetch and re-cache stale data.
|
|
64
|
+
*/
|
|
65
|
+
async function _invalidateEncodedTag(encoded, durations) {
|
|
66
|
+
await getDataCacheHandler().revalidateTag(encoded, durations);
|
|
67
|
+
await getCdnCacheAdapter().revalidateTag(encoded, durations);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Revalidate cached data associated with a specific path.
|
|
71
|
+
*
|
|
72
|
+
* Invalidation works through implicit tags generated at render time by
|
|
73
|
+
* `buildAppPageCacheTags`, matching Next.js's getDerivedTags:
|
|
74
|
+
*
|
|
75
|
+
* - `type: "layout"` → invalidates `_N_T_<path>/layout`, cascading to all
|
|
76
|
+
* descendant pages (they carry ancestor layout tags from render time).
|
|
77
|
+
* - `type: "page"` → invalidates `_N_T_<path>/page`, targeting only the
|
|
78
|
+
* exact route's page component.
|
|
79
|
+
* - No type → invalidates `_N_T_<path>` (broader, exact path).
|
|
80
|
+
*
|
|
81
|
+
* The `type` parameter is App Router only — Pages Router does not generate
|
|
82
|
+
* layout/page hierarchy tags, so only no-type invalidation applies there.
|
|
83
|
+
*/
|
|
84
|
+
async function revalidatePath(path, type) {
|
|
85
|
+
markActionRevalidation(1);
|
|
86
|
+
const stem = path.endsWith("/") ? path.slice(0, -1) : path;
|
|
87
|
+
await _invalidateEncodedTag(encodeCacheTag(type ? `_N_T_${stem}/${type}` : `_N_T_${stem || "/"}`));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* No-op shim for API compatibility.
|
|
91
|
+
*
|
|
92
|
+
* In Next.js, calling `refresh()` inside a Server Action triggers a
|
|
93
|
+
* client-side router refresh so the user immediately sees updated data.
|
|
94
|
+
* vinext reports the dynamic-only invalidation through the Server Action
|
|
95
|
+
* response header that the client router already understands.
|
|
96
|
+
*/
|
|
97
|
+
function refresh() {
|
|
98
|
+
markActionRevalidation(2);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Expire a cache tag immediately (Next.js 16).
|
|
102
|
+
*
|
|
103
|
+
* Server Actions-only API that expires a tag so the next request
|
|
104
|
+
* fetches fresh data. Unlike `revalidateTag`, which uses stale-while-revalidate,
|
|
105
|
+
* `updateTag` invalidates synchronously within the same request context.
|
|
106
|
+
*
|
|
107
|
+
* Throws if called outside a Server Action — e.g. from a Route Handler or
|
|
108
|
+
* during render — matching Next.js's enforcement. For Route Handlers, callers
|
|
109
|
+
* should use `revalidateTag` instead.
|
|
110
|
+
*
|
|
111
|
+
* @see https://nextjs.org/docs/app/api-reference/functions/updateTag
|
|
112
|
+
*/
|
|
113
|
+
async function updateTag(tag) {
|
|
114
|
+
if (getHeadersAccessPhase() !== "action") throw new Error("updateTag can only be called from within a Server Action. To invalidate cache tags in Route Handlers or other contexts, use revalidateTag instead. See more info here: https://nextjs.org/docs/app/api-reference/functions/updateTag");
|
|
115
|
+
markActionRevalidation(1);
|
|
116
|
+
await _invalidateEncodedTag(encodeCacheTag(tag));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Opt out of static rendering and indicate a particular component should not be cached.
|
|
120
|
+
*
|
|
121
|
+
* In Next.js, calling noStore() inside a Server Component ensures the component
|
|
122
|
+
* is dynamically rendered. In our implementation, this is a no-op since we don't
|
|
123
|
+
* have the same static/dynamic rendering split — all server rendering is on-demand.
|
|
124
|
+
* It's provided for API compatibility so apps importing it don't break.
|
|
125
|
+
*/
|
|
126
|
+
function unstable_noStore() {
|
|
127
|
+
markDynamicUsage();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* A fulfilled thenable that React can unwrap synchronously via `use()`
|
|
131
|
+
* without ever suspending. Reusing a single instance avoids allocating
|
|
132
|
+
* on every call — matching Next.js's browser/client implementation.
|
|
133
|
+
*
|
|
134
|
+
* @see https://github.com/vercel/next.js/blob/canary/packages/next/src/client/request/io.browser.ts
|
|
135
|
+
*/
|
|
136
|
+
const _resolvedIOPromise = Promise.resolve(void 0);
|
|
137
|
+
_resolvedIOPromise.status = "fulfilled";
|
|
138
|
+
_resolvedIOPromise.value = void 0;
|
|
139
|
+
/**
|
|
140
|
+
* Marks an IO boundary in server components by returning a resolved promise
|
|
141
|
+
* during requests and a hanging promise during prerendering.
|
|
142
|
+
*
|
|
143
|
+
* See: https://github.com/vercel/next.js/pull/92521
|
|
144
|
+
* Guard removed: https://github.com/vercel/next.js/pull/92923
|
|
145
|
+
* Stabilized (renamed from unstable_io): https://github.com/vercel/next.js/pull/93621
|
|
146
|
+
*
|
|
147
|
+
* Ported from Next.js: packages/next/src/server/request/io.ts
|
|
148
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/server/request/io.ts
|
|
149
|
+
*
|
|
150
|
+
* Behavior by work unit type:
|
|
151
|
+
* - request → resolve immediately (no delay needed for dynamic SSR)
|
|
152
|
+
* - prerender / prerender-client / prerender-runtime → hang (prevent
|
|
153
|
+
* execution past IO boundary during static generation)
|
|
154
|
+
* - cache / private-cache / unstable-cache → resolve immediately
|
|
155
|
+
* (caches capture IO results at fill time)
|
|
156
|
+
* - generate-static-params → resolve immediately (build time, no prerender to stall)
|
|
157
|
+
* - prerender-legacy → resolve immediately (no cache components)
|
|
158
|
+
*
|
|
159
|
+
* When no work unit store is present (e.g. client-side, standalone script),
|
|
160
|
+
* resolves immediately — matching the browser/client implementation.
|
|
161
|
+
*/
|
|
162
|
+
function io() {
|
|
163
|
+
const workUnitStore = workUnitAsyncStorage.getStore();
|
|
164
|
+
if (workUnitStore) switch (workUnitStore.type) {
|
|
165
|
+
case "request": return _resolvedIOPromise;
|
|
166
|
+
case "prerender":
|
|
167
|
+
case "prerender-client":
|
|
168
|
+
case "prerender-runtime": return makeHangingPromise(workUnitStore.renderSignal, workUnitStore.route ?? "unknown", "`io()`");
|
|
169
|
+
case "cache":
|
|
170
|
+
case "private-cache":
|
|
171
|
+
case "unstable-cache":
|
|
172
|
+
case "generate-static-params":
|
|
173
|
+
case "prerender-legacy": return _resolvedIOPromise;
|
|
174
|
+
default: return _resolvedIOPromise;
|
|
175
|
+
}
|
|
176
|
+
return _resolvedIOPromise;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* @deprecated Use `io` instead. Kept as a transitional alias since vinext
|
|
180
|
+
* shipped the unstable name longer than upstream Next.js (see #805). Will be
|
|
181
|
+
* removed in a future minor.
|
|
182
|
+
*/
|
|
183
|
+
function unstable_io() {
|
|
184
|
+
if (!_unstableIoWarned) {
|
|
185
|
+
_unstableIoWarned = true;
|
|
186
|
+
console.warn("[vinext] `unstable_io` is deprecated. Import `io` from 'next/cache' instead.");
|
|
187
|
+
}
|
|
188
|
+
return io();
|
|
189
|
+
}
|
|
190
|
+
let _unstableIoWarned = false;
|
|
191
|
+
/**
|
|
192
|
+
* Set the cache lifetime for a "use cache" function.
|
|
193
|
+
*
|
|
194
|
+
* Accepts either a built-in profile name (e.g., "hours", "days") or a custom
|
|
195
|
+
* configuration object. In Next.js, this only works inside "use cache" functions.
|
|
196
|
+
*
|
|
197
|
+
* When called inside a "use cache" function, this sets the cache TTL.
|
|
198
|
+
* The "minimum-wins" rule applies: if called multiple times, the shortest
|
|
199
|
+
* duration for each field wins.
|
|
200
|
+
*
|
|
201
|
+
* When called outside a "use cache" context, this is a validated no-op.
|
|
202
|
+
*/
|
|
203
|
+
function cacheLife(profile) {
|
|
204
|
+
let resolvedConfig;
|
|
205
|
+
if (typeof profile === "string") {
|
|
206
|
+
if (!cacheLifeProfiles[profile]) {
|
|
207
|
+
console.warn(`[vinext] cacheLife: unknown profile "${profile}". Available profiles: ${Object.keys(cacheLifeProfiles).join(", ")}`);
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
resolvedConfig = { ...cacheLifeProfiles[profile] };
|
|
211
|
+
} else if (typeof profile === "object" && profile !== null) {
|
|
212
|
+
if (profile.expire !== void 0 && profile.revalidate !== void 0 && profile.expire < profile.revalidate) console.warn("[vinext] cacheLife: expire must be >= revalidate");
|
|
213
|
+
resolvedConfig = {
|
|
214
|
+
...cacheLifeProfiles.default,
|
|
215
|
+
...profile
|
|
216
|
+
};
|
|
217
|
+
} else return;
|
|
218
|
+
try {
|
|
219
|
+
const ctx = getRegisteredCacheContext();
|
|
220
|
+
if (ctx) {
|
|
221
|
+
ctx.lifeConfigs.push(resolvedConfig);
|
|
222
|
+
if (resolvedConfig.revalidate !== void 0) ctx.hasExplicitRevalidate = true;
|
|
223
|
+
if (resolvedConfig.expire !== void 0) ctx.hasExplicitExpire = true;
|
|
224
|
+
_setRequestScopedCacheLife(resolvedConfig);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
} catch {}
|
|
228
|
+
_setRequestScopedCacheLife(resolvedConfig);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Tag a "use cache" function's cached result for on-demand revalidation.
|
|
232
|
+
*
|
|
233
|
+
* Tags set here can be invalidated via revalidateTag(). In Next.js, this only
|
|
234
|
+
* works inside "use cache" functions.
|
|
235
|
+
*
|
|
236
|
+
* When called inside a "use cache" function, tags are attached to the cached
|
|
237
|
+
* entry. They can later be invalidated via revalidateTag().
|
|
238
|
+
*
|
|
239
|
+
* When called outside a "use cache" context, this is a no-op.
|
|
240
|
+
*/
|
|
241
|
+
function cacheTag(...tags) {
|
|
242
|
+
try {
|
|
243
|
+
const ctx = getRegisteredCacheContext();
|
|
244
|
+
if (ctx) ctx.tags.push(...encodeCacheTags(tags));
|
|
245
|
+
} catch {}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* @deprecated Use `cacheLife` instead. `unstable_cacheLife` was stabilized
|
|
249
|
+
* upstream and the `unstable_`-prefixed name will be removed in a future
|
|
250
|
+
* version of Next.js. Kept as a delegating alias for parity.
|
|
251
|
+
*
|
|
252
|
+
* Emits a one-time deprecation warning via `console.error` (matching Next.js),
|
|
253
|
+
* then delegates to `cacheLife`.
|
|
254
|
+
*
|
|
255
|
+
* Ported from Next.js: packages/next/cache.js
|
|
256
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/cache.js
|
|
257
|
+
*
|
|
258
|
+
* Asserted by Next.js test:
|
|
259
|
+
* test/e2e/app-dir/cache-components-errors/cache-components-unstable-deprecations.test.ts
|
|
260
|
+
*/
|
|
261
|
+
let _unstableCacheLifeWarned = false;
|
|
262
|
+
function unstable_cacheLife(profile) {
|
|
263
|
+
if (!_unstableCacheLifeWarned) {
|
|
264
|
+
_unstableCacheLifeWarned = true;
|
|
265
|
+
console.error(/* @__PURE__ */ new Error("`unstable_cacheLife` was recently stabilized and should be imported as `cacheLife`. The `unstable` prefixed form will be removed in a future version of Next.js."));
|
|
266
|
+
}
|
|
267
|
+
return cacheLife(profile);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* @deprecated Use `cacheTag` instead. `unstable_cacheTag` was stabilized
|
|
271
|
+
* upstream and the `unstable_`-prefixed name will be removed in a future
|
|
272
|
+
* version of Next.js. Kept as a delegating alias for parity.
|
|
273
|
+
*
|
|
274
|
+
* Emits a one-time deprecation warning via `console.error` (matching Next.js),
|
|
275
|
+
* then delegates to `cacheTag`.
|
|
276
|
+
*
|
|
277
|
+
* Ported from Next.js: packages/next/cache.js
|
|
278
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/cache.js
|
|
279
|
+
*
|
|
280
|
+
* Asserted by Next.js test:
|
|
281
|
+
* test/e2e/app-dir/cache-components-errors/cache-components-unstable-deprecations.test.ts
|
|
282
|
+
*/
|
|
283
|
+
let _unstableCacheTagWarned = false;
|
|
284
|
+
function unstable_cacheTag(...tags) {
|
|
285
|
+
if (!_unstableCacheTagWarned) {
|
|
286
|
+
_unstableCacheTagWarned = true;
|
|
287
|
+
console.error(/* @__PURE__ */ new Error("`unstable_cacheTag` was recently stabilized and should be imported as `cacheTag`. The `unstable` prefixed form will be removed in a future version of Next.js."));
|
|
288
|
+
}
|
|
289
|
+
return cacheTag(...tags);
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* AsyncLocalStorage to track whether we're inside an unstable_cache() callback.
|
|
293
|
+
* Stored on globalThis via Symbol so headers.ts can detect the scope without
|
|
294
|
+
* a direct import (avoiding circular dependencies).
|
|
295
|
+
*/
|
|
296
|
+
const _unstableCacheAls = getOrCreateAls("vinext.unstableCache.als");
|
|
297
|
+
function serializeUnstableCacheResult(value) {
|
|
298
|
+
return JSON.stringify(value === void 0 ? { undef: true } : { v: value });
|
|
299
|
+
}
|
|
300
|
+
function deserializeUnstableCacheResult(body) {
|
|
301
|
+
const wrapper = JSON.parse(body);
|
|
302
|
+
return "undef" in wrapper ? void 0 : wrapper.v;
|
|
303
|
+
}
|
|
304
|
+
function tryDeserializeUnstableCacheResult(body) {
|
|
305
|
+
try {
|
|
306
|
+
return {
|
|
307
|
+
ok: true,
|
|
308
|
+
value: deserializeUnstableCacheResult(body)
|
|
309
|
+
};
|
|
310
|
+
} catch {
|
|
311
|
+
return { ok: false };
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Check if the current execution context is inside an unstable_cache() callback.
|
|
316
|
+
* Used by headers(), cookies(), and connection() to throw errors when
|
|
317
|
+
* dynamic request APIs are called inside a cache scope.
|
|
318
|
+
*/
|
|
319
|
+
function isInsideUnstableCacheScope() {
|
|
320
|
+
return _unstableCacheAls.getStore() === true;
|
|
321
|
+
}
|
|
322
|
+
const _UNSTABLE_CACHE_PENDING_REVALIDATIONS_KEY = Symbol.for("vinext.unstableCache.pendingRevalidations");
|
|
323
|
+
function getPendingUnstableCacheRevalidations() {
|
|
324
|
+
const existing = _g[_UNSTABLE_CACHE_PENDING_REVALIDATIONS_KEY];
|
|
325
|
+
if (existing instanceof Map) return existing;
|
|
326
|
+
const pending = /* @__PURE__ */ new Map();
|
|
327
|
+
_g[_UNSTABLE_CACHE_PENDING_REVALIDATIONS_KEY] = pending;
|
|
328
|
+
return pending;
|
|
329
|
+
}
|
|
330
|
+
function waitUntilUnstableCacheRevalidation(promise) {
|
|
331
|
+
if (!isInsideUnifiedScope()) return;
|
|
332
|
+
getRequestContext().executionContext?.waitUntil(promise);
|
|
333
|
+
}
|
|
334
|
+
function scheduleUnstableCacheBackgroundRevalidation(cacheKey, refresh) {
|
|
335
|
+
const pending = getPendingUnstableCacheRevalidations();
|
|
336
|
+
if (pending.has(cacheKey)) return;
|
|
337
|
+
const trackedRevalidation = refresh().then(() => void 0).catch((err) => {
|
|
338
|
+
console.error(`[vinext] unstable_cache background revalidation failed for ${cacheKey}:`, err);
|
|
339
|
+
}).finally(() => {
|
|
340
|
+
if (pending.get(cacheKey) === trackedRevalidation) pending.delete(cacheKey);
|
|
341
|
+
});
|
|
342
|
+
pending.set(cacheKey, trackedRevalidation);
|
|
343
|
+
waitUntilUnstableCacheRevalidation(trackedRevalidation);
|
|
344
|
+
}
|
|
345
|
+
async function refreshUnstableCacheResult(fn, args, cacheKey, tags, revalidateSeconds) {
|
|
346
|
+
const result = await _unstableCacheAls.run(true, () => fn(...args));
|
|
347
|
+
const cacheValue = {
|
|
348
|
+
kind: "FETCH",
|
|
349
|
+
data: {
|
|
350
|
+
headers: {},
|
|
351
|
+
body: serializeUnstableCacheResult(result),
|
|
352
|
+
url: cacheKey
|
|
353
|
+
},
|
|
354
|
+
tags,
|
|
355
|
+
revalidate: typeof revalidateSeconds === "number" ? revalidateSeconds : false
|
|
356
|
+
};
|
|
357
|
+
await getDataCacheHandler().set(cacheKey, cacheValue, {
|
|
358
|
+
fetchCache: true,
|
|
359
|
+
tags,
|
|
360
|
+
revalidate: revalidateSeconds
|
|
361
|
+
});
|
|
362
|
+
return result;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Wrap an async function with caching.
|
|
366
|
+
*
|
|
367
|
+
* Returns a new function that caches results. The cache key is derived
|
|
368
|
+
* from keyParts + serialized arguments.
|
|
369
|
+
*/
|
|
370
|
+
function unstable_cache(fn, keyParts, options) {
|
|
371
|
+
const baseKey = keyParts ? keyParts.join(":") : fnv1a64(fn.toString());
|
|
372
|
+
const tags = encodeCacheTags(options?.tags ?? []);
|
|
373
|
+
const revalidateSeconds = options?.revalidate;
|
|
374
|
+
const cachedFn = async (...args) => {
|
|
375
|
+
const cacheKey = `unstable_cache:${baseKey}:${JSON.stringify(args)}`;
|
|
376
|
+
recordUnstableCacheObservation({
|
|
377
|
+
kind: "unstable_cache",
|
|
378
|
+
keyHash: fnv1a64(cacheKey),
|
|
379
|
+
revalidate: typeof revalidateSeconds === "number" ? revalidateSeconds : revalidateSeconds === false ? false : null,
|
|
380
|
+
tagCount: tags.length,
|
|
381
|
+
tagHash: tags.length > 0 ? fnv1a64(JSON.stringify(tags)) : null
|
|
382
|
+
});
|
|
383
|
+
const existing = await getDataCacheHandler().get(cacheKey, {
|
|
384
|
+
kind: "FETCH",
|
|
385
|
+
tags
|
|
386
|
+
});
|
|
387
|
+
if (existing?.value && existing.value.kind === "FETCH") {
|
|
388
|
+
const cached = tryDeserializeUnstableCacheResult(existing.value.data.body);
|
|
389
|
+
if (cached.ok) if (existing.cacheState === "stale") {
|
|
390
|
+
if (shouldServeStaleUnstableCacheEntry()) {
|
|
391
|
+
scheduleUnstableCacheBackgroundRevalidation(cacheKey, () => refreshUnstableCacheResult(fn, args, cacheKey, tags, revalidateSeconds));
|
|
392
|
+
return cached.value;
|
|
393
|
+
}
|
|
394
|
+
} else return cached.value;
|
|
395
|
+
}
|
|
396
|
+
return await refreshUnstableCacheResult(fn, args, cacheKey, tags, revalidateSeconds);
|
|
397
|
+
};
|
|
398
|
+
return cachedFn;
|
|
399
|
+
}
|
|
400
|
+
//#endregion
|
|
401
|
+
export { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, MemoryCacheHandler, NoOpCacheHandler, _consumeRequestScopedCacheLife, _initRequestScopedCacheState, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife, cacheLife, cacheLifeProfiles, cacheTag, configureMemoryCacheHandler, getAndClearActionRevalidationKind, getCacheHandler, getDataCacheHandler, getRegisteredCacheContext, getRequestExecutionContext, io, isInsideUnstableCacheScope, markActionRevalidation, unstable_noStore as noStore, unstable_noStore, recordUnstableCacheObservation, refresh, revalidatePath, revalidateTag, runWithExecutionContext, setCacheHandler, setDataCacheHandler, shouldServeStaleUnstableCacheEntry, unstable_cache, unstable_cacheLife, unstable_cacheTag, unstable_io, updateTag };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { CacheHandlerValue, IncrementalCacheValue } from "./cache-handler.js";
|
|
2
|
+
|
|
3
|
+
//#region src/shims/cdn-cache.d.ts
|
|
4
|
+
/** A map of response header name -> value the adapter wants applied or removed. */
|
|
5
|
+
type CdnResponseHeaders = Record<string, string | null>;
|
|
6
|
+
type CdnCacheableHeaderInput = {
|
|
7
|
+
/**
|
|
8
|
+
* The cacheable `Cache-Control` value the framework computed for shared
|
|
9
|
+
* caches (e.g. `s-maxage=60, stale-while-revalidate`). May be an empty string
|
|
10
|
+
* when no cacheable policy applies.
|
|
11
|
+
*/
|
|
12
|
+
cacheControl: string;
|
|
13
|
+
/**
|
|
14
|
+
* True when this is a freshly-rendered **streaming** response whose
|
|
15
|
+
* dynamic-ness is not yet proven (late Server Component request-API usage can
|
|
16
|
+
* only be detected after the stream drains).
|
|
17
|
+
*
|
|
18
|
+
* The default adapter forces `no-store` for the browser in this case — the
|
|
19
|
+
* page is instead served from the origin store on subsequent requests. Edge
|
|
20
|
+
* adapters may instead emit edge-only cache headers (e.g. `CDN-Cache-Control`)
|
|
21
|
+
* so the CDN performs SWR while the browser still sees `no-store`.
|
|
22
|
+
*/
|
|
23
|
+
pendingDynamicCheck?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The cache tags associated with this page/route, already canonicalised
|
|
26
|
+
* (e.g. via `encodeCacheTag`). Edge adapters use these to emit a tag header
|
|
27
|
+
* (e.g. a `Cache-Tag` header) so tag-based purging can target the response.
|
|
28
|
+
* The default adapter ignores them.
|
|
29
|
+
*/
|
|
30
|
+
tags?: readonly string[];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* The serving strategy for page-level ISR. Implement this to delegate
|
|
34
|
+
* page/route/image caching to a CDN edge instead of the origin store.
|
|
35
|
+
*/
|
|
36
|
+
type CdnCacheAdapter = {
|
|
37
|
+
/**
|
|
38
|
+
* Read a page-level artifact. Returning a value lets the origin serve it
|
|
39
|
+
* (HIT/STALE); returning `null` makes the origin render fresh.
|
|
40
|
+
*
|
|
41
|
+
* Default: reads the data cache. Edge adapters typically return `null` so the
|
|
42
|
+
* edge owns serving.
|
|
43
|
+
*/
|
|
44
|
+
get(key: string, ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
|
|
45
|
+
/**
|
|
46
|
+
* Persist a freshly-rendered page-level artifact.
|
|
47
|
+
*
|
|
48
|
+
* Default: writes to the data cache. Edge adapters that rely entirely on the
|
|
49
|
+
* CDN may make this a no-op.
|
|
50
|
+
*/
|
|
51
|
+
set(key: string, data: IncrementalCacheValue | null, ctx?: Record<string, unknown>): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Build the response cache headers for a given policy. Returns a map so an
|
|
54
|
+
* adapter can emit more than one header (e.g. `Cache-Control` +
|
|
55
|
+
* `CDN-Cache-Control`) and remove stale adapter-owned headers with `null`.
|
|
56
|
+
*/
|
|
57
|
+
buildResponseHeaders(input: CdnCacheableHeaderInput): CdnResponseHeaders;
|
|
58
|
+
/**
|
|
59
|
+
* Whether the **origin** runs in-process background regeneration when a stale
|
|
60
|
+
* entry is served. Edge adapters set this to `false` because the CDN
|
|
61
|
+
* revalidates by re-requesting the origin.
|
|
62
|
+
*/
|
|
63
|
+
readonly ownsBackgroundRevalidation: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Propagate a tag/path invalidation to the CDN edge (purge). Called *in
|
|
66
|
+
* addition to* the data cache's own tag invalidation, so the default
|
|
67
|
+
* implementation is a no-op (the data cache already invalidated its entries).
|
|
68
|
+
*
|
|
69
|
+
* Edge adapters implement this to purge the edge cache — typically firing the
|
|
70
|
+
* purge through the request execution context (`ctx.waitUntil`).
|
|
71
|
+
*/
|
|
72
|
+
revalidateTag(tags: string | string[], durations?: {
|
|
73
|
+
expire?: number;
|
|
74
|
+
}): Promise<void>;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Default origin-managed ISR strategy: store page artifacts in the data cache,
|
|
78
|
+
* serve HIT/STALE from it, run in-process background regeneration, and emit the
|
|
79
|
+
* framework's standard `Cache-Control` headers.
|
|
80
|
+
*/
|
|
81
|
+
declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
82
|
+
readonly ownsBackgroundRevalidation = true;
|
|
83
|
+
get(key: string, ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
|
|
84
|
+
set(key: string, data: IncrementalCacheValue | null, ctx?: Record<string, unknown>): Promise<void>;
|
|
85
|
+
buildResponseHeaders(input: CdnCacheableHeaderInput): CdnResponseHeaders;
|
|
86
|
+
revalidateTag(_tags: string | string[], _durations?: {
|
|
87
|
+
expire?: number;
|
|
88
|
+
}): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Set a custom CDN cache adapter to delegate page-level ISR to a CDN edge. An
|
|
92
|
+
* explicit adapter always wins over the built-in request-context / default
|
|
93
|
+
* selection.
|
|
94
|
+
*
|
|
95
|
+
* @deprecated Don't wire up the CDN cache adapter imperatively. Configure it
|
|
96
|
+
* declaratively via the `cache.cdn` option on the `vinext()` plugin in your
|
|
97
|
+
* `vite.config.ts`, using a config-time adapter builder. On Cloudflare Workers:
|
|
98
|
+
*
|
|
99
|
+
* ```ts
|
|
100
|
+
* import { vinext } from "vinext";
|
|
101
|
+
* import { cdnAdapter } from "@vinext/cloudflare/cache/cdn-adapter";
|
|
102
|
+
*
|
|
103
|
+
* export default defineConfig({
|
|
104
|
+
* plugins: [vinext({ cache: { cdn: cdnAdapter() } })],
|
|
105
|
+
* });
|
|
106
|
+
* ```
|
|
107
|
+
*
|
|
108
|
+
* The plugin registers the adapter across every runtime/router entry, so you
|
|
109
|
+
* don't have to call this from a worker entry. This setter remains as the
|
|
110
|
+
* internal registration target and for backwards compatibility, but is not the
|
|
111
|
+
* recommended consumer API.
|
|
112
|
+
*/
|
|
113
|
+
declare function setCdnCacheAdapter(adapter: CdnCacheAdapter): void;
|
|
114
|
+
/**
|
|
115
|
+
* Get the active CDN cache adapter. See the precedence note above:
|
|
116
|
+
* explicit (or an already-resolved auto-detected edge adapter) → origin-managed
|
|
117
|
+
* {@link DefaultCdnCacheAdapter}.
|
|
118
|
+
*
|
|
119
|
+
* Auto-detection of the Cloudflare Workers Cache (`ctx.cache`) only runs when
|
|
120
|
+
* `VINEXT_CDN_CACHE_AUTO_DETECT === "1"`; otherwise the default adapter is used
|
|
121
|
+
* unless an adapter was set explicitly.
|
|
122
|
+
*/
|
|
123
|
+
declare function getCdnCacheAdapter(): CdnCacheAdapter;
|
|
124
|
+
//#endregion
|
|
125
|
+
export { CdnCacheAdapter, CdnCacheableHeaderInput, CdnResponseHeaders, DefaultCdnCacheAdapter, getCdnCacheAdapter, setCdnCacheAdapter };
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { getRequestExecutionContext } from "./request-context.js";
|
|
2
|
+
import { getDataCacheHandler } from "./cache-handler.js";
|
|
3
|
+
import { CloudflareCdnCacheAdapter } from "../cloudflare/src/cache/cdn-adapter.runtime.js";
|
|
4
|
+
//#region src/shims/cdn-cache.ts
|
|
5
|
+
/**
|
|
6
|
+
* CDN cache adapter — owns the *page-level ISR serving strategy*.
|
|
7
|
+
*
|
|
8
|
+
* This is deliberately distinct from the data cache handler (see `./cache.ts`):
|
|
9
|
+
*
|
|
10
|
+
* - The **data cache** stores cached data (fetch, `"use cache"`,
|
|
11
|
+
* `unstable_cache`, route-handler data). It is a pure key/value store.
|
|
12
|
+
*
|
|
13
|
+
* - The **CDN cache adapter** decides *how page-level ISR is served*: where the
|
|
14
|
+
* rendered page/route/image artifacts live, what cache headers the response
|
|
15
|
+
* carries, whether the origin runs background regeneration, and how
|
|
16
|
+
* invalidation propagates to a CDN edge.
|
|
17
|
+
*
|
|
18
|
+
* Two strategies sit behind one interface:
|
|
19
|
+
*
|
|
20
|
+
* | Concern | DefaultCdnCacheAdapter (origin-managed) | Edge adapter (CDN-managed) |
|
|
21
|
+
* | ------------------ | --------------------------------------- | ------------------------------------------- |
|
|
22
|
+
* | Serve from store? | Yes — reads the data cache | No — origin renders fresh, edge caches |
|
|
23
|
+
* | Background regen | In-process via `waitUntil` | Edge re-requests origin |
|
|
24
|
+
* | Response headers | `Cache-Control` (SWR) | `Cache-Control: no-store` + `CDN-Cache-Control: <SWR>` |
|
|
25
|
+
* | Invalidation | (data cache handles tag invalidation) | purge / revalidate via request context |
|
|
26
|
+
*
|
|
27
|
+
* The default adapter is a thin shim over the data cache + the framework's
|
|
28
|
+
* existing header logic, so default behavior is byte-for-byte identical to the
|
|
29
|
+
* pre-split implementation.
|
|
30
|
+
*/
|
|
31
|
+
const PENDING_DYNAMIC_CACHE_CONTROL = "no-store, must-revalidate";
|
|
32
|
+
/**
|
|
33
|
+
* Default origin-managed ISR strategy: store page artifacts in the data cache,
|
|
34
|
+
* serve HIT/STALE from it, run in-process background regeneration, and emit the
|
|
35
|
+
* framework's standard `Cache-Control` headers.
|
|
36
|
+
*/
|
|
37
|
+
var DefaultCdnCacheAdapter = class {
|
|
38
|
+
ownsBackgroundRevalidation = true;
|
|
39
|
+
async get(key, ctx) {
|
|
40
|
+
return getDataCacheHandler().get(key, ctx);
|
|
41
|
+
}
|
|
42
|
+
async set(key, data, ctx) {
|
|
43
|
+
await getDataCacheHandler().set(key, data, ctx);
|
|
44
|
+
}
|
|
45
|
+
buildResponseHeaders(input) {
|
|
46
|
+
if (input.pendingDynamicCheck) return { "Cache-Control": PENDING_DYNAMIC_CACHE_CONTROL };
|
|
47
|
+
return { "Cache-Control": input.cacheControl };
|
|
48
|
+
}
|
|
49
|
+
async revalidateTag(_tags, _durations) {}
|
|
50
|
+
};
|
|
51
|
+
const _CDN_KEY = Symbol.for("vinext.cdnCacheAdapter");
|
|
52
|
+
const _gCdn = globalThis;
|
|
53
|
+
let _defaultAdapter = null;
|
|
54
|
+
/**
|
|
55
|
+
* Set a custom CDN cache adapter to delegate page-level ISR to a CDN edge. An
|
|
56
|
+
* explicit adapter always wins over the built-in request-context / default
|
|
57
|
+
* selection.
|
|
58
|
+
*
|
|
59
|
+
* @deprecated Don't wire up the CDN cache adapter imperatively. Configure it
|
|
60
|
+
* declaratively via the `cache.cdn` option on the `vinext()` plugin in your
|
|
61
|
+
* `vite.config.ts`, using a config-time adapter builder. On Cloudflare Workers:
|
|
62
|
+
*
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { vinext } from "vinext";
|
|
65
|
+
* import { cdnAdapter } from "@vinext/cloudflare/cache/cdn-adapter";
|
|
66
|
+
*
|
|
67
|
+
* export default defineConfig({
|
|
68
|
+
* plugins: [vinext({ cache: { cdn: cdnAdapter() } })],
|
|
69
|
+
* });
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* The plugin registers the adapter across every runtime/router entry, so you
|
|
73
|
+
* don't have to call this from a worker entry. This setter remains as the
|
|
74
|
+
* internal registration target and for backwards compatibility, but is not the
|
|
75
|
+
* recommended consumer API.
|
|
76
|
+
*/
|
|
77
|
+
function setCdnCacheAdapter(adapter) {
|
|
78
|
+
_gCdn[_CDN_KEY] = adapter;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get the active CDN cache adapter. See the precedence note above:
|
|
82
|
+
* explicit (or an already-resolved auto-detected edge adapter) → origin-managed
|
|
83
|
+
* {@link DefaultCdnCacheAdapter}.
|
|
84
|
+
*
|
|
85
|
+
* Auto-detection of the Cloudflare Workers Cache (`ctx.cache`) only runs when
|
|
86
|
+
* `VINEXT_CDN_CACHE_AUTO_DETECT === "1"`; otherwise the default adapter is used
|
|
87
|
+
* unless an adapter was set explicitly.
|
|
88
|
+
*/
|
|
89
|
+
function getCdnCacheAdapter() {
|
|
90
|
+
const active = _gCdn[_CDN_KEY];
|
|
91
|
+
if (active) return active;
|
|
92
|
+
if (process.env.VINEXT_CDN_CACHE_AUTO_DETECT === "1" && getRequestExecutionContext()?.cache) {
|
|
93
|
+
const edge = new CloudflareCdnCacheAdapter();
|
|
94
|
+
_gCdn[_CDN_KEY] = edge;
|
|
95
|
+
return edge;
|
|
96
|
+
}
|
|
97
|
+
return _defaultAdapter ??= new DefaultCdnCacheAdapter();
|
|
98
|
+
}
|
|
99
|
+
//#endregion
|
|
100
|
+
export { DefaultCdnCacheAdapter, getCdnCacheAdapter, setCdnCacheAdapter };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/shims/client-hook-error.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared error helper for client-only hooks called in Server Components.
|
|
4
|
+
*
|
|
5
|
+
* Used by `.react-server.ts` shim variants to provide a clear, actionable
|
|
6
|
+
* error message when a developer forgets the "use client" directive.
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/cloudflare/vinext/issues/834
|
|
9
|
+
*/
|
|
10
|
+
declare function buildClientHookErrorMessage(hookName: string): string;
|
|
11
|
+
declare function throwClientHookError(hookName: string): never;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { buildClientHookErrorMessage, throwClientHookError };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/shims/client-hook-error.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared error helper for client-only hooks called in Server Components.
|
|
4
|
+
*
|
|
5
|
+
* Used by `.react-server.ts` shim variants to provide a clear, actionable
|
|
6
|
+
* error message when a developer forgets the "use client" directive.
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/cloudflare/vinext/issues/834
|
|
9
|
+
*/
|
|
10
|
+
function buildClientHookErrorMessage(hookName) {
|
|
11
|
+
return `${hookName} only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`;
|
|
12
|
+
}
|
|
13
|
+
function throwClientHookError(hookName) {
|
|
14
|
+
throw new Error(buildClientHookErrorMessage(hookName));
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { buildClientHookErrorMessage, throwClientHookError };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DomainLocale } from "../utils/domain-locale.js";
|
|
2
|
+
|
|
3
|
+
//#region src/shims/client-locale.d.ts
|
|
4
|
+
declare function getCurrentBrowserLocale({
|
|
5
|
+
basePath,
|
|
6
|
+
domainLocales,
|
|
7
|
+
hostname
|
|
8
|
+
}: {
|
|
9
|
+
basePath: string;
|
|
10
|
+
domainLocales: readonly DomainLocale[] | undefined;
|
|
11
|
+
hostname: string | null | undefined;
|
|
12
|
+
}): string | undefined;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { getCurrentBrowserLocale };
|