@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,452 @@
|
|
|
1
|
+
import { getOrCreateAls } from "./internal/als-registry.js";
|
|
2
|
+
import { getRequestContext, isInsideUnifiedScope, runWithUnifiedStateMutation } from "./unified-request-context.js";
|
|
3
|
+
import { VINEXT_RSC_MARKER_HEADER } from "../server/headers.js";
|
|
4
|
+
import { getDataCacheHandler } from "./cache-handler.js";
|
|
5
|
+
import { trackPprFallbackShellCacheTask } from "./ppr-fallback-shell.js";
|
|
6
|
+
import { markDynamicUsage } from "./headers.js";
|
|
7
|
+
import { _registerCacheContextAccessor, _setRequestScopedCacheLife, cacheLifeProfiles } from "./cache-request-state.js";
|
|
8
|
+
import { addCollectedRequestTags, getCurrentFetchSoftTags } from "./fetch-cache.js";
|
|
9
|
+
import { isMarkedAppPagePropsObject, markAppPagePropsForUseCache } from "./internal/app-page-props-cache-key.js";
|
|
10
|
+
//#region src/shims/cache-runtime.ts
|
|
11
|
+
/**
|
|
12
|
+
* "use cache" runtime
|
|
13
|
+
*
|
|
14
|
+
* This module provides the runtime for "use cache" directive support.
|
|
15
|
+
* Functions marked with "use cache" are transformed by the vinext:use-cache
|
|
16
|
+
* Vite plugin to wrap them with `registerCachedFunction()`.
|
|
17
|
+
*
|
|
18
|
+
* The runtime:
|
|
19
|
+
* 1. Generates a cache key from deployment/build ID + function identity + serialized arguments
|
|
20
|
+
* 2. Checks the CacheHandler for a cached value
|
|
21
|
+
* 3. On HIT: returns the cached value (deserialized via RSC stream)
|
|
22
|
+
* 4. On MISS: creates an AsyncLocalStorage context for cacheLife/cacheTag,
|
|
23
|
+
* calls the original function, serializes the result via RSC stream,
|
|
24
|
+
* collects metadata, stores the result
|
|
25
|
+
*
|
|
26
|
+
* Serialization uses the RSC protocol (renderToReadableStream /
|
|
27
|
+
* createFromReadableStream / encodeReply) from @vitejs/plugin-rsc.
|
|
28
|
+
* This correctly handles React elements, client references, Promises,
|
|
29
|
+
* and all RSC-serializable types — unlike JSON.stringify which silently
|
|
30
|
+
* drops $$typeof Symbols and function values.
|
|
31
|
+
*
|
|
32
|
+
* When RSC APIs are unavailable (e.g. in unit tests), falls back to
|
|
33
|
+
* JSON.stringify/parse with the same stableStringify cache key generation.
|
|
34
|
+
*
|
|
35
|
+
* Cache variants:
|
|
36
|
+
* - "use cache" — shared cache (default profile)
|
|
37
|
+
* - "use cache: remote" — shared cache (explicit)
|
|
38
|
+
* - "use cache: private" — per-request cache (not shared across requests)
|
|
39
|
+
*/
|
|
40
|
+
/** Threshold below which expire is considered "dynamic" (5 minutes in seconds). */
|
|
41
|
+
const DYNAMIC_EXPIRE = 300;
|
|
42
|
+
/**
|
|
43
|
+
* Used purely as `cause` for the nested-dynamic cache error: its captured stack
|
|
44
|
+
* points at the inner "use cache" invocation that propagated a dynamic cache
|
|
45
|
+
* life up to the outer cache. Constructed eagerly while the caller is still on
|
|
46
|
+
* the synchronous stack.
|
|
47
|
+
*/
|
|
48
|
+
var NestedDynamicUseCacheError = class extends Error {
|
|
49
|
+
constructor() {
|
|
50
|
+
super("This \"use cache\" has a dynamic cache life that was propagated to its parent.");
|
|
51
|
+
this.name = "Nested dynamic \"use cache\"";
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Returns the human-readable phrase describing the current context for use in
|
|
56
|
+
* nested-dynamic error messages. The throw is gated to fire only during the
|
|
57
|
+
* build's prerender phase (`VINEXT_PRERENDER=1`) or development; this phrase
|
|
58
|
+
* tells the user which one they're in so the message isn't misleading.
|
|
59
|
+
*
|
|
60
|
+
* `VINEXT_PRERENDER` takes priority over `NODE_ENV=development`: if the
|
|
61
|
+
* prerender flag is set, the user really is prerendering regardless of
|
|
62
|
+
* NODE_ENV (this matters for scenarios like a dev-config prerender). Defaults
|
|
63
|
+
* to "during prerendering" to match Next.js wording when called from a
|
|
64
|
+
* context we don't recognize (the throw also wouldn't fire in that case).
|
|
65
|
+
*/
|
|
66
|
+
function nestedCacheContextPhrase() {
|
|
67
|
+
if (typeof process === "undefined") return "during prerendering";
|
|
68
|
+
if (process.env.VINEXT_PRERENDER === "1") return "during prerendering";
|
|
69
|
+
if (process.env.NODE_ENV === "development") return "in development";
|
|
70
|
+
return "during prerendering";
|
|
71
|
+
}
|
|
72
|
+
function getNestedCacheZeroRevalidateErrorMessage() {
|
|
73
|
+
return `A "use cache" with zero \`revalidate\` is nested inside another "use cache" that has no explicit \`cacheLife\`, which is not allowed ${nestedCacheContextPhrase()}. Add \`cacheLife()\` to the outer "use cache" to choose whether it should be prerendered (with non-zero \`revalidate\`) or remain dynamic (with zero \`revalidate\`). Read more: https://nextjs.org/docs/messages/nested-use-cache-no-explicit-cachelife`;
|
|
74
|
+
}
|
|
75
|
+
function getNestedCacheShortExpireErrorMessage() {
|
|
76
|
+
return `A "use cache" with short \`expire\` (under 5 minutes) is nested inside another "use cache" that has no explicit \`cacheLife\`, which is not allowed ${nestedCacheContextPhrase()}. Add \`cacheLife()\` to the outer "use cache" to choose whether it should be prerendered (with longer \`expire\`) or remain dynamic (with short \`expire\`). Read more: https://nextjs.org/docs/messages/nested-use-cache-no-explicit-cachelife`;
|
|
77
|
+
}
|
|
78
|
+
const cacheContextStorage = getOrCreateAls("vinext.cacheRuntime.contextAls");
|
|
79
|
+
_registerCacheContextAccessor(() => cacheContextStorage.getStore() ?? null);
|
|
80
|
+
/**
|
|
81
|
+
* Get the current cache context. Returns null if not inside a "use cache" function.
|
|
82
|
+
*/
|
|
83
|
+
function getCacheContext() {
|
|
84
|
+
return cacheContextStorage.getStore() ?? null;
|
|
85
|
+
}
|
|
86
|
+
function getUseCacheDeploymentIdDefine() {
|
|
87
|
+
try {
|
|
88
|
+
return process.env.__VINEXT_DEPLOYMENT_ID || process.env.NEXT_DEPLOYMENT_ID;
|
|
89
|
+
} catch (error) {
|
|
90
|
+
if (error instanceof ReferenceError) return void 0;
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function getUseCacheBuildIdDefine() {
|
|
95
|
+
try {
|
|
96
|
+
return process.env.__VINEXT_BUILD_ID;
|
|
97
|
+
} catch (error) {
|
|
98
|
+
if (error instanceof ReferenceError) return void 0;
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
function getUseCacheKeySeed() {
|
|
103
|
+
return getUseCacheDeploymentIdDefine() || getUseCacheBuildIdDefine();
|
|
104
|
+
}
|
|
105
|
+
function buildUseCacheKey(id, keySeed, argsKey) {
|
|
106
|
+
const scopedId = keySeed ? `build:${encodeURIComponent(keySeed)}:${id}` : id;
|
|
107
|
+
return argsKey === void 0 ? `use-cache:${scopedId}` : `use-cache:${scopedId}:${argsKey}`;
|
|
108
|
+
}
|
|
109
|
+
const NOT_LOADED = Symbol("not-loaded");
|
|
110
|
+
let _rscModule = NOT_LOADED;
|
|
111
|
+
async function getRscModule() {
|
|
112
|
+
if (_rscModule !== NOT_LOADED) return _rscModule;
|
|
113
|
+
try {
|
|
114
|
+
_rscModule = await import("@vitejs/plugin-rsc/react/rsc");
|
|
115
|
+
} catch {
|
|
116
|
+
_rscModule = null;
|
|
117
|
+
}
|
|
118
|
+
return _rscModule;
|
|
119
|
+
}
|
|
120
|
+
/** Collect a ReadableStream<Uint8Array> into a single Uint8Array. */
|
|
121
|
+
async function collectStream(stream) {
|
|
122
|
+
const reader = stream.getReader();
|
|
123
|
+
const chunks = [];
|
|
124
|
+
let totalLength = 0;
|
|
125
|
+
for (;;) {
|
|
126
|
+
const { done, value } = await reader.read();
|
|
127
|
+
if (done) break;
|
|
128
|
+
chunks.push(value);
|
|
129
|
+
totalLength += value.length;
|
|
130
|
+
}
|
|
131
|
+
if (chunks.length === 1) return chunks[0];
|
|
132
|
+
const result = new Uint8Array(totalLength);
|
|
133
|
+
let offset = 0;
|
|
134
|
+
for (const chunk of chunks) {
|
|
135
|
+
result.set(chunk, offset);
|
|
136
|
+
offset += chunk.length;
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
/** Encode a Uint8Array as a base64 string for storage. Uses Node Buffer. */
|
|
141
|
+
function uint8ToBase64(bytes) {
|
|
142
|
+
return Buffer.from(bytes).toString("base64");
|
|
143
|
+
}
|
|
144
|
+
/** Decode a base64 string back to Uint8Array. Uses Node Buffer. */
|
|
145
|
+
function base64ToUint8(base64) {
|
|
146
|
+
return new Uint8Array(Buffer.from(base64, "base64"));
|
|
147
|
+
}
|
|
148
|
+
/** Create a ReadableStream from a Uint8Array. */
|
|
149
|
+
function uint8ToStream(bytes) {
|
|
150
|
+
return new ReadableStream({ start(controller) {
|
|
151
|
+
controller.enqueue(bytes);
|
|
152
|
+
controller.close();
|
|
153
|
+
} });
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Convert an encodeReply result (string | FormData) to a cache key string.
|
|
157
|
+
* For FormData (binary args), produces a deterministic SHA-256 hash over
|
|
158
|
+
* the sorted entries. We can't hash `new Response(formData).arrayBuffer()`
|
|
159
|
+
* because multipart boundaries are non-deterministic across serializations.
|
|
160
|
+
*
|
|
161
|
+
* Exported for testing.
|
|
162
|
+
*/
|
|
163
|
+
async function replyToCacheKey(reply) {
|
|
164
|
+
if (typeof reply === "string") return reply;
|
|
165
|
+
const entries = [...reply.entries()];
|
|
166
|
+
const valStr = (v) => typeof v === "string" ? v : v.name;
|
|
167
|
+
entries.sort((a, b) => a[0].localeCompare(b[0]) || valStr(a[1]).localeCompare(valStr(b[1])));
|
|
168
|
+
const parts = [];
|
|
169
|
+
for (const [name, value] of entries) if (typeof value === "string") parts.push(`${name}=s:${value}`);
|
|
170
|
+
else {
|
|
171
|
+
const bytes = new Uint8Array(await value.arrayBuffer());
|
|
172
|
+
parts.push(`${name}=b:${value.type}:${value.size}:${Buffer.from(bytes).toString("base64")}`);
|
|
173
|
+
}
|
|
174
|
+
const payload = new TextEncoder().encode(parts.join("\0"));
|
|
175
|
+
const hashBuffer = await crypto.subtle.digest("SHA-256", payload);
|
|
176
|
+
return Buffer.from(new Uint8Array(hashBuffer)).toString("base64url");
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Resolve collected cacheLife configs into a single effective config.
|
|
180
|
+
* The "minimum-wins" rule: if multiple cacheLife() calls are made,
|
|
181
|
+
* each field takes the smallest value across all calls.
|
|
182
|
+
*/
|
|
183
|
+
function resolveCacheLife(configs) {
|
|
184
|
+
if (configs.length === 0) return { ...cacheLifeProfiles.default };
|
|
185
|
+
if (configs.length === 1) return { ...configs[0] };
|
|
186
|
+
const result = {};
|
|
187
|
+
for (const config of configs) {
|
|
188
|
+
if (config.stale !== void 0) result.stale = result.stale !== void 0 ? Math.min(result.stale, config.stale) : config.stale;
|
|
189
|
+
if (config.revalidate !== void 0) result.revalidate = result.revalidate !== void 0 ? Math.min(result.revalidate, config.revalidate) : config.revalidate;
|
|
190
|
+
if (config.expire !== void 0) result.expire = result.expire !== void 0 ? Math.min(result.expire, config.expire) : config.expire;
|
|
191
|
+
}
|
|
192
|
+
return result;
|
|
193
|
+
}
|
|
194
|
+
const _PRIVATE_FALLBACK_KEY = Symbol.for("vinext.cacheRuntime.privateFallback");
|
|
195
|
+
const _g = globalThis;
|
|
196
|
+
const _privateAls = getOrCreateAls("vinext.cacheRuntime.privateAls");
|
|
197
|
+
const _privateFallbackState = _g[_PRIVATE_FALLBACK_KEY] ??= { _privateCache: /* @__PURE__ */ new Map() };
|
|
198
|
+
function _getPrivateState() {
|
|
199
|
+
if (isInsideUnifiedScope()) {
|
|
200
|
+
const ctx = getRequestContext();
|
|
201
|
+
if (ctx._privateCache === null) ctx._privateCache = /* @__PURE__ */ new Map();
|
|
202
|
+
return ctx;
|
|
203
|
+
}
|
|
204
|
+
return _privateAls.getStore() ?? _privateFallbackState;
|
|
205
|
+
}
|
|
206
|
+
function runWithPrivateCache(fn) {
|
|
207
|
+
if (isInsideUnifiedScope()) return runWithUnifiedStateMutation((uCtx) => {
|
|
208
|
+
uCtx._privateCache = /* @__PURE__ */ new Map();
|
|
209
|
+
}, fn);
|
|
210
|
+
const state = { _privateCache: /* @__PURE__ */ new Map() };
|
|
211
|
+
return _privateAls.run(state, fn);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Clear the private per-request cache. Should be called at the start of each request.
|
|
215
|
+
* Only needed when not using runWithPrivateCache() (legacy path).
|
|
216
|
+
*/
|
|
217
|
+
function clearPrivateCache() {
|
|
218
|
+
if (isInsideUnifiedScope()) {
|
|
219
|
+
getRequestContext()._privateCache = /* @__PURE__ */ new Map();
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const state = _privateAls.getStore();
|
|
223
|
+
if (state) state._privateCache = /* @__PURE__ */ new Map();
|
|
224
|
+
else _privateFallbackState._privateCache = /* @__PURE__ */ new Map();
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Register a function as a cached function. This is called by the Vite
|
|
228
|
+
* transform for each "use cache" function.
|
|
229
|
+
*
|
|
230
|
+
* @param fn - The original async function
|
|
231
|
+
* @param id - A stable identifier for the function (module path + export name)
|
|
232
|
+
* @param variant - Cache variant: "" (default/shared), "remote", "private"
|
|
233
|
+
* @returns A wrapper function that checks cache before calling the original
|
|
234
|
+
*/
|
|
235
|
+
function registerCachedFunction(fn, id, variant, options = {}) {
|
|
236
|
+
const cacheVariant = variant ?? "";
|
|
237
|
+
const omitAppPageSearchParamsFromFirstArg = options.appPageDefaultExport === true;
|
|
238
|
+
const isDev = typeof process !== "undefined" && process.env.NODE_ENV === "development";
|
|
239
|
+
const cachedFn = (...args) => trackPprFallbackShellCacheTask(async () => {
|
|
240
|
+
const rsc = await getRscModule();
|
|
241
|
+
const keySeed = getUseCacheKeySeed();
|
|
242
|
+
let cacheKey;
|
|
243
|
+
try {
|
|
244
|
+
const processedArgs = args.length > 0 ? unwrapThenableObjectArray(args, { omitAppPageSearchParamsFromFirstArg }) : [];
|
|
245
|
+
if (rsc && args.length > 0) {
|
|
246
|
+
const tempRefs = rsc.createClientTemporaryReferenceSet();
|
|
247
|
+
cacheKey = buildUseCacheKey(id, keySeed, await replyToCacheKey(await rsc.encodeReply(processedArgs, { temporaryReferences: tempRefs })));
|
|
248
|
+
} else cacheKey = buildUseCacheKey(id, keySeed, processedArgs.length > 0 ? stableStringify(processedArgs) : void 0);
|
|
249
|
+
} catch {
|
|
250
|
+
return fn(...args);
|
|
251
|
+
}
|
|
252
|
+
if (cacheVariant === "private") {
|
|
253
|
+
const parentCtx = cacheContextStorage.getStore();
|
|
254
|
+
if (parentCtx && parentCtx.variant !== "private") throwPrivateUseCacheInsidePublicUseCacheError();
|
|
255
|
+
if (typeof process !== "undefined" && process.env.VINEXT_PRERENDER === "1") markDynamicUsage();
|
|
256
|
+
const privateCache = _getPrivateState()._privateCache;
|
|
257
|
+
const privateHit = privateCache.get(cacheKey);
|
|
258
|
+
if (privateHit !== void 0) return privateHit;
|
|
259
|
+
const result = await executeWithContext(fn, args, cacheVariant);
|
|
260
|
+
privateCache.set(cacheKey, result);
|
|
261
|
+
return result;
|
|
262
|
+
}
|
|
263
|
+
if (isDev) return executeWithContext(fn, args, cacheVariant);
|
|
264
|
+
const handler = getDataCacheHandler();
|
|
265
|
+
const softTags = getCurrentFetchSoftTags();
|
|
266
|
+
const existing = await handler.get(cacheKey, {
|
|
267
|
+
kind: "FETCH",
|
|
268
|
+
softTags
|
|
269
|
+
});
|
|
270
|
+
if (existing?.value && existing.value.kind === "FETCH" && existing.cacheState !== "stale") try {
|
|
271
|
+
propagateCacheTagsToRequest(existing.value.tags);
|
|
272
|
+
if (rsc && existing.value.data.headers["x-vinext-rsc"] === "1") {
|
|
273
|
+
const stream = uint8ToStream(base64ToUint8(existing.value.data.body));
|
|
274
|
+
const result = await rsc.createFromReadableStream(stream);
|
|
275
|
+
recordRequestScopedCacheControl(existing.cacheControl);
|
|
276
|
+
return result;
|
|
277
|
+
}
|
|
278
|
+
const result = JSON.parse(existing.value.data.body);
|
|
279
|
+
recordRequestScopedCacheControl(existing.cacheControl);
|
|
280
|
+
return result;
|
|
281
|
+
} catch {}
|
|
282
|
+
const { result, ctx, effectiveLife } = await runCachedFunctionWithContext(fn, args, cacheVariant);
|
|
283
|
+
recordRequestScopedCacheLife(effectiveLife);
|
|
284
|
+
propagateCacheTagsToRequest(ctx.tags);
|
|
285
|
+
const revalidateSeconds = effectiveLife.revalidate ?? cacheLifeProfiles.default.revalidate ?? 900;
|
|
286
|
+
try {
|
|
287
|
+
let body;
|
|
288
|
+
const headers = {};
|
|
289
|
+
if (rsc) {
|
|
290
|
+
body = uint8ToBase64(await collectStream(rsc.renderToReadableStream(result)));
|
|
291
|
+
headers[VINEXT_RSC_MARKER_HEADER] = "1";
|
|
292
|
+
} else {
|
|
293
|
+
body = JSON.stringify(result);
|
|
294
|
+
if (body === void 0) return result;
|
|
295
|
+
}
|
|
296
|
+
const cacheValue = {
|
|
297
|
+
kind: "FETCH",
|
|
298
|
+
data: {
|
|
299
|
+
headers,
|
|
300
|
+
body,
|
|
301
|
+
url: cacheKey
|
|
302
|
+
},
|
|
303
|
+
tags: ctx.tags,
|
|
304
|
+
revalidate: revalidateSeconds
|
|
305
|
+
};
|
|
306
|
+
await handler.set(cacheKey, cacheValue, {
|
|
307
|
+
fetchCache: true,
|
|
308
|
+
tags: ctx.tags,
|
|
309
|
+
cacheControl: {
|
|
310
|
+
revalidate: revalidateSeconds,
|
|
311
|
+
expire: effectiveLife.expire
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
} catch {}
|
|
315
|
+
return result;
|
|
316
|
+
}, cacheVariant);
|
|
317
|
+
Object.defineProperty(cachedFn, "length", {
|
|
318
|
+
value: fn.length,
|
|
319
|
+
configurable: true
|
|
320
|
+
});
|
|
321
|
+
cachedFn[USE_CACHE_FUNCTION_SYMBOL] = true;
|
|
322
|
+
return cachedFn;
|
|
323
|
+
}
|
|
324
|
+
/** @internal Symbol used to identify "use cache" wrapper functions. */
|
|
325
|
+
const USE_CACHE_FUNCTION_SYMBOL = Symbol.for("vinext.useCacheFunction");
|
|
326
|
+
function throwPrivateUseCacheInsidePublicUseCacheError() {
|
|
327
|
+
const error = /* @__PURE__ */ new Error("\"use cache: private\" must not be used within \"use cache\". It can only be nested inside of another \"use cache: private\".");
|
|
328
|
+
const ctx = getRequestContext();
|
|
329
|
+
if (ctx) ctx.invalidDynamicUsageError = error;
|
|
330
|
+
throw error;
|
|
331
|
+
}
|
|
332
|
+
function recordRequestScopedCacheControl(cacheControl) {
|
|
333
|
+
if (cacheControl === void 0) return;
|
|
334
|
+
_setRequestScopedCacheLife({
|
|
335
|
+
revalidate: cacheControl.revalidate,
|
|
336
|
+
expire: cacheControl.expire
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
function recordRequestScopedCacheLife(cacheLife) {
|
|
340
|
+
_setRequestScopedCacheLife(cacheLife);
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Bubble a `"use cache"` scope's tags toward where they can drive invalidation.
|
|
344
|
+
*
|
|
345
|
+
* When this cache is nested inside another (`parentCtx` present), the tags flow
|
|
346
|
+
* into the parent scope so they end up on the outer cache entry — mirroring
|
|
347
|
+
* Next.js's `propagateCacheLifeAndTagsToRevalidateStore`. The outermost scope
|
|
348
|
+
* (no parent) instead records onto the surrounding request's collected tags, so
|
|
349
|
+
* the enclosing page / route-handler ISR entry carries them and `revalidateTag`
|
|
350
|
+
* can evict the rendered output (issue #1453).
|
|
351
|
+
*
|
|
352
|
+
* Used by both the data cache HIT and MISS paths. On MISS the parent-bubble for
|
|
353
|
+
* the *executed* scope also happens in `runCachedFunctionWithContext`; this keeps
|
|
354
|
+
* the HIT path (where that function never runs) correct without dropping a nested
|
|
355
|
+
* inner entry's stored tags. Deduped to keep tag lists tidy.
|
|
356
|
+
*/
|
|
357
|
+
function propagateCacheTagsToRequest(tags) {
|
|
358
|
+
if (!tags || tags.length === 0) return;
|
|
359
|
+
const parentCtx = cacheContextStorage.getStore();
|
|
360
|
+
if (parentCtx) {
|
|
361
|
+
for (const tag of tags) if (!parentCtx.tags.includes(tag)) parentCtx.tags.push(tag);
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
addCollectedRequestTags(tags);
|
|
365
|
+
}
|
|
366
|
+
async function executeWithContext(fn, args, variant) {
|
|
367
|
+
const { result, ctx: _ctx, effectiveLife } = await runCachedFunctionWithContext(fn, args, variant);
|
|
368
|
+
recordRequestScopedCacheLife(effectiveLife);
|
|
369
|
+
return result;
|
|
370
|
+
}
|
|
371
|
+
async function runCachedFunctionWithContext(fn, args, variant) {
|
|
372
|
+
const parentCtx = cacheContextStorage.getStore();
|
|
373
|
+
let eagerError;
|
|
374
|
+
if (parentCtx && parentCtx.variant !== "private") {
|
|
375
|
+
eagerError = new NestedDynamicUseCacheError();
|
|
376
|
+
if (typeof Error.captureStackTrace === "function") Error.captureStackTrace(eagerError, runCachedFunctionWithContext);
|
|
377
|
+
}
|
|
378
|
+
const ctx = {
|
|
379
|
+
tags: [],
|
|
380
|
+
lifeConfigs: [],
|
|
381
|
+
variant: variant || "default",
|
|
382
|
+
hasExplicitRevalidate: false,
|
|
383
|
+
hasExplicitExpire: false,
|
|
384
|
+
dynamicNestedCacheError: void 0,
|
|
385
|
+
invalidDynamicUsageError: void 0
|
|
386
|
+
};
|
|
387
|
+
const result = await cacheContextStorage.run(ctx, () => fn(...args));
|
|
388
|
+
if (ctx.invalidDynamicUsageError) throw ctx.invalidDynamicUsageError;
|
|
389
|
+
const effectiveLife = resolveCacheLife(ctx.lifeConfigs);
|
|
390
|
+
if (parentCtx) {
|
|
391
|
+
parentCtx.lifeConfigs.push(effectiveLife);
|
|
392
|
+
for (const tag of ctx.tags) if (!parentCtx.tags.includes(tag)) parentCtx.tags.push(tag);
|
|
393
|
+
}
|
|
394
|
+
if (parentCtx && eagerError && (effectiveLife.revalidate === 0 || effectiveLife.expire !== void 0 && effectiveLife.expire < DYNAMIC_EXPIRE)) parentCtx.dynamicNestedCacheError ??= eagerError;
|
|
395
|
+
if (typeof process !== "undefined" && (process.env.VINEXT_PRERENDER === "1" || process.env.NODE_ENV === "development") && ctx.dynamicNestedCacheError) {
|
|
396
|
+
if (effectiveLife.revalidate === 0 && !ctx.hasExplicitRevalidate) throw new Error(getNestedCacheZeroRevalidateErrorMessage(), { cause: ctx.dynamicNestedCacheError });
|
|
397
|
+
if (effectiveLife.expire !== void 0 && effectiveLife.expire < DYNAMIC_EXPIRE && !ctx.hasExplicitExpire) throw new Error(getNestedCacheShortExpireErrorMessage(), { cause: ctx.dynamicNestedCacheError });
|
|
398
|
+
}
|
|
399
|
+
return {
|
|
400
|
+
result,
|
|
401
|
+
ctx,
|
|
402
|
+
effectiveLife
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
function unwrapThenableObjects(value, options = {}) {
|
|
406
|
+
if (value === null || value === void 0 || typeof value !== "object") return value;
|
|
407
|
+
if (Array.isArray(value)) return value.map((item) => unwrapThenableObjects(item));
|
|
408
|
+
if (typeof value.then === "function") {
|
|
409
|
+
const keys = Object.keys(value);
|
|
410
|
+
if (keys.length > 0) {
|
|
411
|
+
const plain = {};
|
|
412
|
+
for (const key of keys) plain[key] = unwrapThenableObjects(value[key]);
|
|
413
|
+
return plain;
|
|
414
|
+
}
|
|
415
|
+
return value;
|
|
416
|
+
}
|
|
417
|
+
const result = {};
|
|
418
|
+
for (const key of Object.keys(value)) {
|
|
419
|
+
if (key === "searchParams" && (options.omitAppPageSearchParamsAtRoot || isMarkedAppPagePropsObject(value))) continue;
|
|
420
|
+
result[key] = unwrapThenableObjects(value[key]);
|
|
421
|
+
}
|
|
422
|
+
return result;
|
|
423
|
+
}
|
|
424
|
+
function unwrapThenableObjectArray(values, options) {
|
|
425
|
+
return values.map((value, index) => unwrapThenableObjects(value, { omitAppPageSearchParamsAtRoot: index === 0 && options.omitAppPageSearchParamsFromFirstArg }));
|
|
426
|
+
}
|
|
427
|
+
function stableStringify(value, seen) {
|
|
428
|
+
if (value === void 0) return "undefined";
|
|
429
|
+
if (value === null) return "null";
|
|
430
|
+
if (typeof value === "function") throw new Error("Cannot serialize function");
|
|
431
|
+
if (typeof value === "symbol") throw new Error("Cannot serialize symbol");
|
|
432
|
+
if (Array.isArray(value)) {
|
|
433
|
+
if (!seen) seen = /* @__PURE__ */ new Set();
|
|
434
|
+
if (seen.has(value)) throw new Error("Circular reference");
|
|
435
|
+
seen.add(value);
|
|
436
|
+
const result = "[" + value.map((v) => stableStringify(v, seen)).join(",") + "]";
|
|
437
|
+
seen.delete(value);
|
|
438
|
+
return result;
|
|
439
|
+
}
|
|
440
|
+
if (typeof value === "object" && value !== null) {
|
|
441
|
+
if (value instanceof Date) return `Date(${value.getTime()})`;
|
|
442
|
+
if (!seen) seen = /* @__PURE__ */ new Set();
|
|
443
|
+
if (seen.has(value)) throw new Error("Circular reference");
|
|
444
|
+
seen.add(value);
|
|
445
|
+
const result = "{" + Object.keys(value).sort().map((k) => `${JSON.stringify(k)}:${stableStringify(value[k], seen)}`).join(",") + "}";
|
|
446
|
+
seen.delete(value);
|
|
447
|
+
return result;
|
|
448
|
+
}
|
|
449
|
+
return JSON.stringify(value);
|
|
450
|
+
}
|
|
451
|
+
//#endregion
|
|
452
|
+
export { NestedDynamicUseCacheError, cacheContextStorage, clearPrivateCache, getCacheContext, markAppPagePropsForUseCache, registerCachedFunction, replyToCacheKey, runWithPrivateCache };
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, ActionRevalidationKind, CacheLifeConfig, CacheState, UnstableCacheObservation, UnstableCacheRevalidationMode, _consumeRequestScopedCacheLife, _initRequestScopedCacheState, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife, cacheLifeProfiles, getAndClearActionRevalidationKind, getRegisteredCacheContext, markActionRevalidation, recordUnstableCacheObservation, shouldServeStaleUnstableCacheEntry } from "./cache-request-state.js";
|
|
2
|
+
import { CacheControlMetadata, CacheHandler, CacheHandlerContext, CacheHandlerValue, CachedAppPageValue, CachedFetchValue, CachedImageValue, CachedPagesValue, CachedRedirectValue, CachedRouteValue, IncrementalCacheValue, MemoryCacheHandler, NoOpCacheHandler, configureMemoryCacheHandler, getCacheHandler, getDataCacheHandler, setCacheHandler, setDataCacheHandler } from "./cache-handler.js";
|
|
3
|
+
import { ExecutionContextLike, getRequestExecutionContext, runWithExecutionContext } from "./request-context.js";
|
|
4
|
+
|
|
5
|
+
//#region src/shims/cache.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Revalidate cached data associated with a specific cache tag.
|
|
8
|
+
*
|
|
9
|
+
* Works with both `fetch(..., { next: { tags: ['myTag'] } })` and
|
|
10
|
+
* `unstable_cache(fn, keys, { tags: ['myTag'] })`.
|
|
11
|
+
*
|
|
12
|
+
* Next.js 16 updated signature: accepts a cacheLife profile as second argument
|
|
13
|
+
* for stale-while-revalidate (SWR) behavior. The single-argument form is
|
|
14
|
+
* deprecated but still supported for backward compatibility.
|
|
15
|
+
*
|
|
16
|
+
* @param tag - Cache tag to revalidate
|
|
17
|
+
* @param profile - cacheLife profile name (e.g. 'max', 'hours') or inline { expire: number }
|
|
18
|
+
*/
|
|
19
|
+
declare function revalidateTag(tag: string, profile?: string | {
|
|
20
|
+
expire?: number;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Revalidate cached data associated with a specific path.
|
|
24
|
+
*
|
|
25
|
+
* Invalidation works through implicit tags generated at render time by
|
|
26
|
+
* `buildAppPageCacheTags`, matching Next.js's getDerivedTags:
|
|
27
|
+
*
|
|
28
|
+
* - `type: "layout"` → invalidates `_N_T_<path>/layout`, cascading to all
|
|
29
|
+
* descendant pages (they carry ancestor layout tags from render time).
|
|
30
|
+
* - `type: "page"` → invalidates `_N_T_<path>/page`, targeting only the
|
|
31
|
+
* exact route's page component.
|
|
32
|
+
* - No type → invalidates `_N_T_<path>` (broader, exact path).
|
|
33
|
+
*
|
|
34
|
+
* The `type` parameter is App Router only — Pages Router does not generate
|
|
35
|
+
* layout/page hierarchy tags, so only no-type invalidation applies there.
|
|
36
|
+
*/
|
|
37
|
+
declare function revalidatePath(path: string, type?: "page" | "layout"): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* No-op shim for API compatibility.
|
|
40
|
+
*
|
|
41
|
+
* In Next.js, calling `refresh()` inside a Server Action triggers a
|
|
42
|
+
* client-side router refresh so the user immediately sees updated data.
|
|
43
|
+
* vinext reports the dynamic-only invalidation through the Server Action
|
|
44
|
+
* response header that the client router already understands.
|
|
45
|
+
*/
|
|
46
|
+
declare function refresh(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Expire a cache tag immediately (Next.js 16).
|
|
49
|
+
*
|
|
50
|
+
* Server Actions-only API that expires a tag so the next request
|
|
51
|
+
* fetches fresh data. Unlike `revalidateTag`, which uses stale-while-revalidate,
|
|
52
|
+
* `updateTag` invalidates synchronously within the same request context.
|
|
53
|
+
*
|
|
54
|
+
* Throws if called outside a Server Action — e.g. from a Route Handler or
|
|
55
|
+
* during render — matching Next.js's enforcement. For Route Handlers, callers
|
|
56
|
+
* should use `revalidateTag` instead.
|
|
57
|
+
*
|
|
58
|
+
* @see https://nextjs.org/docs/app/api-reference/functions/updateTag
|
|
59
|
+
*/
|
|
60
|
+
declare function updateTag(tag: string): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Opt out of static rendering and indicate a particular component should not be cached.
|
|
63
|
+
*
|
|
64
|
+
* In Next.js, calling noStore() inside a Server Component ensures the component
|
|
65
|
+
* is dynamically rendered. In our implementation, this is a no-op since we don't
|
|
66
|
+
* have the same static/dynamic rendering split — all server rendering is on-demand.
|
|
67
|
+
* It's provided for API compatibility so apps importing it don't break.
|
|
68
|
+
*/
|
|
69
|
+
declare function unstable_noStore(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Marks an IO boundary in server components by returning a resolved promise
|
|
72
|
+
* during requests and a hanging promise during prerendering.
|
|
73
|
+
*
|
|
74
|
+
* See: https://github.com/vercel/next.js/pull/92521
|
|
75
|
+
* Guard removed: https://github.com/vercel/next.js/pull/92923
|
|
76
|
+
* Stabilized (renamed from unstable_io): https://github.com/vercel/next.js/pull/93621
|
|
77
|
+
*
|
|
78
|
+
* Ported from Next.js: packages/next/src/server/request/io.ts
|
|
79
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/server/request/io.ts
|
|
80
|
+
*
|
|
81
|
+
* Behavior by work unit type:
|
|
82
|
+
* - request → resolve immediately (no delay needed for dynamic SSR)
|
|
83
|
+
* - prerender / prerender-client / prerender-runtime → hang (prevent
|
|
84
|
+
* execution past IO boundary during static generation)
|
|
85
|
+
* - cache / private-cache / unstable-cache → resolve immediately
|
|
86
|
+
* (caches capture IO results at fill time)
|
|
87
|
+
* - generate-static-params → resolve immediately (build time, no prerender to stall)
|
|
88
|
+
* - prerender-legacy → resolve immediately (no cache components)
|
|
89
|
+
*
|
|
90
|
+
* When no work unit store is present (e.g. client-side, standalone script),
|
|
91
|
+
* resolves immediately — matching the browser/client implementation.
|
|
92
|
+
*/
|
|
93
|
+
declare function io(): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* @deprecated Use `io` instead. Kept as a transitional alias since vinext
|
|
96
|
+
* shipped the unstable name longer than upstream Next.js (see #805). Will be
|
|
97
|
+
* removed in a future minor.
|
|
98
|
+
*/
|
|
99
|
+
declare function unstable_io(): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Set the cache lifetime for a "use cache" function.
|
|
102
|
+
*
|
|
103
|
+
* Accepts either a built-in profile name (e.g., "hours", "days") or a custom
|
|
104
|
+
* configuration object. In Next.js, this only works inside "use cache" functions.
|
|
105
|
+
*
|
|
106
|
+
* When called inside a "use cache" function, this sets the cache TTL.
|
|
107
|
+
* The "minimum-wins" rule applies: if called multiple times, the shortest
|
|
108
|
+
* duration for each field wins.
|
|
109
|
+
*
|
|
110
|
+
* When called outside a "use cache" context, this is a validated no-op.
|
|
111
|
+
*/
|
|
112
|
+
declare function cacheLife(profile: string | CacheLifeConfig): void;
|
|
113
|
+
/**
|
|
114
|
+
* Tag a "use cache" function's cached result for on-demand revalidation.
|
|
115
|
+
*
|
|
116
|
+
* Tags set here can be invalidated via revalidateTag(). In Next.js, this only
|
|
117
|
+
* works inside "use cache" functions.
|
|
118
|
+
*
|
|
119
|
+
* When called inside a "use cache" function, tags are attached to the cached
|
|
120
|
+
* entry. They can later be invalidated via revalidateTag().
|
|
121
|
+
*
|
|
122
|
+
* When called outside a "use cache" context, this is a no-op.
|
|
123
|
+
*/
|
|
124
|
+
declare function cacheTag(...tags: string[]): void;
|
|
125
|
+
declare function unstable_cacheLife(profile: string | CacheLifeConfig): void;
|
|
126
|
+
declare function unstable_cacheTag(...tags: string[]): void;
|
|
127
|
+
/**
|
|
128
|
+
* Check if the current execution context is inside an unstable_cache() callback.
|
|
129
|
+
* Used by headers(), cookies(), and connection() to throw errors when
|
|
130
|
+
* dynamic request APIs are called inside a cache scope.
|
|
131
|
+
*/
|
|
132
|
+
declare function isInsideUnstableCacheScope(): boolean;
|
|
133
|
+
type UnstableCacheOptions = {
|
|
134
|
+
revalidate?: number | false;
|
|
135
|
+
tags?: string[];
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Wrap an async function with caching.
|
|
139
|
+
*
|
|
140
|
+
* Returns a new function that caches results. The cache key is derived
|
|
141
|
+
* from keyParts + serialized arguments.
|
|
142
|
+
*/
|
|
143
|
+
declare function unstable_cache<T extends (...args: any[]) => Promise<any>>(fn: T, keyParts?: string[], options?: UnstableCacheOptions): T;
|
|
144
|
+
//#endregion
|
|
145
|
+
export { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, ActionRevalidationKind, CacheControlMetadata, CacheHandler, CacheHandlerContext, CacheHandlerValue, CacheLifeConfig, CacheState, CachedAppPageValue, CachedFetchValue, CachedImageValue, CachedPagesValue, CachedRedirectValue, CachedRouteValue, type ExecutionContextLike, IncrementalCacheValue, MemoryCacheHandler, NoOpCacheHandler, UnstableCacheObservation, UnstableCacheRevalidationMode, _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 };
|