vinext 0.0.55 → 0.1.1
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/README.md +51 -15
- package/dist/build/assets-ignore.d.ts +32 -0
- package/dist/build/assets-ignore.js +48 -0
- package/dist/build/clean-output.d.ts +1 -2
- package/dist/build/clean-output.js +0 -2
- package/dist/build/client-build-config.d.ts +42 -3
- package/dist/build/client-build-config.js +86 -4
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +211 -0
- package/dist/build/google-fonts/build-url.d.ts +1 -2
- package/dist/build/google-fonts/build-url.js +0 -2
- package/dist/build/google-fonts/fallback-metrics-data.js +0 -2
- package/dist/build/google-fonts/fallback-metrics.d.ts +1 -2
- package/dist/build/google-fonts/fallback-metrics.js +0 -2
- package/dist/build/google-fonts/font-data.js +0 -2
- package/dist/build/google-fonts/font-metadata.d.ts +1 -2
- package/dist/build/google-fonts/font-metadata.js +0 -2
- package/dist/build/google-fonts/get-axes.d.ts +1 -2
- package/dist/build/google-fonts/get-axes.js +0 -2
- package/dist/build/google-fonts/sort-variants.d.ts +1 -2
- package/dist/build/google-fonts/sort-variants.js +0 -2
- package/dist/build/google-fonts/validate.d.ts +1 -2
- package/dist/build/google-fonts/validate.js +0 -2
- package/dist/build/inline-css.d.ts +1 -2
- package/dist/build/inline-css.js +0 -2
- package/dist/build/layout-classification-types.d.ts +1 -2
- package/dist/build/layout-classification.d.ts +2 -3
- package/dist/build/layout-classification.js +1 -3
- 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 +1 -2
- package/dist/build/nitro-route-rules.js +0 -2
- package/dist/build/precompress.d.ts +1 -2
- package/dist/build/precompress.js +0 -2
- package/dist/build/prerender.d.ts +2 -3
- package/dist/build/prerender.js +14 -2
- package/dist/build/report.d.ts +1 -2
- package/dist/build/report.js +0 -2
- package/dist/build/route-classification-injector.d.ts +1 -2
- package/dist/build/route-classification-injector.js +4 -6
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/route-classification-manifest.js +5 -7
- package/dist/build/run-prerender.d.ts +1 -2
- package/dist/build/run-prerender.js +15 -7
- package/dist/build/server-manifest.d.ts +1 -2
- package/dist/build/server-manifest.js +0 -2
- package/dist/build/ssr-manifest.d.ts +1 -2
- package/dist/build/ssr-manifest.js +2 -4
- package/dist/build/standalone.d.ts +1 -2
- package/dist/build/standalone.js +0 -2
- package/dist/build/static-export.d.ts +2 -3
- package/dist/build/static-export.js +0 -2
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/check.d.ts +33 -2
- package/dist/check.js +306 -24
- package/dist/cli-args.d.ts +1 -2
- package/dist/cli-args.js +0 -2
- package/dist/cli.js +9 -13
- package/dist/client/instrumentation-client-inject.d.ts +1 -2
- package/dist/client/instrumentation-client-inject.js +0 -2
- package/dist/client/instrumentation-client-state.d.ts +1 -2
- package/dist/client/instrumentation-client-state.js +0 -2
- package/dist/client/instrumentation-client.d.ts +1 -2
- package/dist/client/instrumentation-client.js +0 -2
- package/dist/client/navigation-runtime.d.ts +9 -2
- package/dist/client/navigation-runtime.js +1 -3
- package/dist/client/pages-router-link-navigation.d.ts +1 -2
- package/dist/client/pages-router-link-navigation.js +0 -2
- package/dist/client/validate-module-path.d.ts +1 -2
- package/dist/client/validate-module-path.js +0 -2
- package/dist/client/vinext-next-data.d.ts +3 -3
- package/dist/client/vinext-next-data.js +0 -2
- package/dist/client/window-next.d.ts +1 -2
- package/dist/client/window-next.js +0 -2
- package/dist/cloudflare/index.d.ts +1 -1
- package/dist/cloudflare/index.js +1 -1
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +97 -0
- package/dist/cloudflare/{kv-cache-handler.d.ts → src/cache/kv-data-adapter.runtime.d.ts} +25 -6
- package/dist/cloudflare/{kv-cache-handler.js → src/cache/kv-data-adapter.runtime.js} +36 -28
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +2 -3
- package/dist/cloudflare/tpr.js +8 -8
- package/dist/config/config-matchers.d.ts +20 -2
- package/dist/config/config-matchers.js +35 -3
- package/dist/config/dotenv.d.ts +1 -2
- package/dist/config/dotenv.js +0 -2
- package/dist/config/next-config.d.ts +32 -5
- package/dist/config/next-config.js +53 -6
- package/dist/config/tsconfig-paths.d.ts +1 -2
- package/dist/config/tsconfig-paths.js +3 -7
- package/dist/deploy.d.ts +48 -3
- package/dist/deploy.js +180 -415
- package/dist/entries/app-browser-entry.d.ts +1 -2
- package/dist/entries/app-browser-entry.js +0 -2
- package/dist/entries/app-rsc-entry.d.ts +12 -6
- package/dist/entries/app-rsc-entry.js +101 -62
- package/dist/entries/app-rsc-manifest.d.ts +1 -2
- package/dist/entries/app-rsc-manifest.js +40 -9
- package/dist/entries/app-ssr-entry.d.ts +1 -2
- package/dist/entries/app-ssr-entry.js +0 -2
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +16 -5
- package/dist/entries/pages-entry-helpers.d.ts +2 -11
- package/dist/entries/pages-entry-helpers.js +1 -20
- package/dist/entries/pages-server-entry.d.ts +2 -3
- package/dist/entries/pages-server-entry.js +98 -703
- package/dist/entries/runtime-entry-module.d.ts +1 -2
- package/dist/entries/runtime-entry-module.js +0 -2
- package/dist/index.d.ts +22 -2
- package/dist/index.js +376 -316
- package/dist/init.d.ts +1 -2
- package/dist/init.js +1 -3
- 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 +1 -2
- package/dist/plugins/async-hooks-stub.js +0 -2
- package/dist/plugins/client-reference-dedup.d.ts +1 -2
- package/dist/plugins/client-reference-dedup.js +4 -8
- package/dist/plugins/css-data-url.d.ts +1 -2
- package/dist/plugins/css-data-url.js +0 -2
- package/dist/plugins/fonts.d.ts +13 -3
- package/dist/plugins/fonts.js +19 -13
- package/dist/plugins/import-meta-url.d.ts +2 -2
- package/dist/plugins/import-meta-url.js +187 -33
- package/dist/plugins/instrumentation-client.d.ts +1 -2
- package/dist/plugins/instrumentation-client.js +0 -2
- package/dist/plugins/middleware-server-only.d.ts +1 -2
- package/dist/plugins/middleware-server-only.js +0 -2
- package/dist/plugins/og-assets.d.ts +32 -8
- package/dist/plugins/og-assets.js +126 -34
- package/dist/plugins/optimize-imports.d.ts +1 -2
- package/dist/plugins/optimize-imports.js +9 -17
- package/dist/plugins/postcss.d.ts +1 -2
- package/dist/plugins/postcss.js +18 -16
- package/dist/plugins/remove-console.d.ts +1 -2
- package/dist/plugins/remove-console.js +0 -2
- package/dist/plugins/require-context.d.ts +6 -0
- package/dist/plugins/require-context.js +184 -0
- package/dist/plugins/rsc-client-reference-loaders.d.ts +1 -2
- package/dist/plugins/rsc-client-reference-loaders.js +0 -2
- package/dist/plugins/rsc-client-shim-excludes.d.ts +1 -2
- package/dist/plugins/rsc-client-shim-excludes.js +0 -2
- package/dist/plugins/sass.d.ts +1 -2
- package/dist/plugins/sass.js +0 -2
- package/dist/plugins/server-externals-manifest.d.ts +1 -2
- package/dist/plugins/server-externals-manifest.js +0 -2
- package/dist/plugins/strip-server-exports.d.ts +1 -2
- package/dist/plugins/strip-server-exports.js +0 -2
- package/dist/routing/app-route-graph.d.ts +14 -10
- package/dist/routing/app-route-graph.js +146 -35
- package/dist/routing/app-router.d.ts +1 -2
- package/dist/routing/app-router.js +0 -2
- package/dist/routing/file-matcher.d.ts +6 -2
- package/dist/routing/file-matcher.js +15 -7
- package/dist/routing/pages-router.d.ts +1 -2
- package/dist/routing/pages-router.js +0 -2
- package/dist/routing/route-matching.d.ts +1 -2
- package/dist/routing/route-matching.js +0 -2
- package/dist/routing/route-pattern.d.ts +2 -2
- package/dist/routing/route-pattern.js +16 -3
- package/dist/routing/route-trie.d.ts +1 -2
- package/dist/routing/route-trie.js +0 -2
- package/dist/routing/route-validation.d.ts +1 -2
- package/dist/routing/route-validation.js +0 -2
- package/dist/routing/utils.d.ts +44 -2
- package/dist/routing/utils.js +62 -3
- package/dist/server/api-handler.d.ts +1 -2
- package/dist/server/api-handler.js +4 -2
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-browser-action-result.d.ts +1 -2
- package/dist/server/app-browser-action-result.js +0 -2
- 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.js +244 -88
- package/dist/server/app-browser-error.d.ts +1 -2
- package/dist/server/app-browser-error.js +0 -2
- package/dist/server/app-browser-hydration.d.ts +1 -2
- package/dist/server/app-browser-hydration.js +0 -2
- package/dist/server/app-browser-interception-context.d.ts +2 -2
- package/dist/server/app-browser-interception-context.js +15 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +2 -2
- package/dist/server/app-browser-mpa-navigation.js +9 -3
- package/dist/server/app-browser-navigation-controller.d.ts +15 -4
- package/dist/server/app-browser-navigation-controller.js +80 -4
- package/dist/server/app-browser-popstate.d.ts +12 -4
- package/dist/server/app-browser-popstate.js +19 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +1 -2
- package/dist/server/app-browser-rsc-redirect.js +0 -2
- package/dist/server/app-browser-state.d.ts +31 -4
- package/dist/server/app-browser-state.js +196 -10
- package/dist/server/app-browser-stream.d.ts +1 -2
- package/dist/server/app-browser-stream.js +0 -2
- package/dist/server/app-browser-visible-commit.d.ts +2 -3
- package/dist/server/app-browser-visible-commit.js +30 -21
- package/dist/server/app-client-reference-preloader.d.ts +1 -2
- package/dist/server/app-client-reference-preloader.js +0 -2
- package/dist/server/app-elements-wire.d.ts +14 -8
- package/dist/server/app-elements-wire.js +45 -24
- package/dist/server/app-elements.d.ts +2 -3
- package/dist/server/app-elements.js +2 -4
- package/dist/server/app-fallback-renderer.d.ts +5 -5
- package/dist/server/app-fallback-renderer.js +4 -3
- package/dist/server/app-history-state.d.ts +62 -2
- package/dist/server/app-history-state.js +176 -10
- package/dist/server/app-hook-warning-suppression.d.ts +1 -2
- package/dist/server/app-hook-warning-suppression.js +0 -2
- package/dist/server/app-inline-css-client.d.ts +1 -2
- package/dist/server/app-inline-css-client.js +0 -2
- package/dist/server/app-interception-context-header.d.ts +1 -2
- package/dist/server/app-interception-context-header.js +0 -2
- package/dist/server/app-layout-param-observation.d.ts +15 -2
- package/dist/server/app-layout-param-observation.js +46 -8
- package/dist/server/app-middleware.d.ts +1 -2
- package/dist/server/app-middleware.js +0 -2
- package/dist/server/app-mounted-slots-header.d.ts +1 -2
- package/dist/server/app-mounted-slots-header.js +0 -2
- package/dist/server/app-optimistic-routing.d.ts +1 -2
- package/dist/server/app-optimistic-routing.js +0 -2
- package/dist/server/app-page-boundary-render.d.ts +4 -3
- package/dist/server/app-page-boundary-render.js +59 -28
- package/dist/server/app-page-boundary.d.ts +11 -2
- package/dist/server/app-page-boundary.js +13 -4
- package/dist/server/app-page-cache.d.ts +3 -3
- package/dist/server/app-page-cache.js +36 -11
- package/dist/server/app-page-dispatch.d.ts +25 -5
- package/dist/server/app-page-dispatch.js +122 -25
- package/dist/server/app-page-element-builder.d.ts +4 -2
- package/dist/server/app-page-element-builder.js +31 -21
- package/dist/server/app-page-execution.d.ts +8 -3
- package/dist/server/app-page-execution.js +55 -24
- package/dist/server/app-page-head.d.ts +1 -2
- package/dist/server/app-page-head.js +6 -6
- package/dist/server/app-page-method.d.ts +1 -2
- package/dist/server/app-page-method.js +0 -2
- package/dist/server/app-page-params.d.ts +1 -2
- package/dist/server/app-page-params.js +0 -2
- package/dist/server/app-page-probe.d.ts +79 -2
- package/dist/server/app-page-probe.js +89 -9
- package/dist/server/app-page-render-identity.d.ts +1 -2
- package/dist/server/app-page-render-identity.js +0 -2
- package/dist/server/app-page-render-observation.d.ts +1 -2
- package/dist/server/app-page-render-observation.js +0 -2
- package/dist/server/app-page-render.d.ts +15 -3
- package/dist/server/app-page-render.js +171 -12
- package/dist/server/app-page-request.d.ts +12 -9
- package/dist/server/app-page-request.js +12 -11
- package/dist/server/app-page-response.d.ts +4 -4
- package/dist/server/app-page-response.js +6 -4
- package/dist/server/app-page-route-wiring.d.ts +14 -3
- package/dist/server/app-page-route-wiring.js +65 -12
- 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 +1 -2
- package/dist/server/app-page-segment-state.js +1 -8
- package/dist/server/app-page-stream.d.ts +54 -9
- package/dist/server/app-page-stream.js +61 -10
- package/dist/server/app-pages-bridge.d.ts +41 -0
- package/dist/server/app-pages-bridge.js +54 -0
- package/dist/server/app-post-middleware-context.d.ts +1 -2
- package/dist/server/app-post-middleware-context.js +0 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +21 -0
- package/dist/server/app-ppr-fallback-shell.js +82 -0
- package/dist/server/app-prerender-endpoints.d.ts +1 -2
- package/dist/server/app-prerender-endpoints.js +0 -2
- package/dist/server/app-prerender-static-params.d.ts +15 -2
- package/dist/server/app-prerender-static-params.js +44 -13
- package/dist/server/app-render-dependency.d.ts +3 -2
- package/dist/server/app-render-dependency.js +9 -3
- package/dist/server/app-request-context.d.ts +1 -2
- package/dist/server/app-request-context.js +0 -2
- package/dist/server/app-route-handler-cache.d.ts +2 -2
- package/dist/server/app-route-handler-cache.js +1 -2
- package/dist/server/app-route-handler-dispatch.d.ts +2 -2
- package/dist/server/app-route-handler-dispatch.js +2 -2
- package/dist/server/app-route-handler-execution.d.ts +2 -2
- package/dist/server/app-route-handler-execution.js +3 -4
- package/dist/server/app-route-handler-policy.d.ts +1 -2
- package/dist/server/app-route-handler-policy.js +0 -2
- package/dist/server/app-route-handler-response.d.ts +2 -3
- package/dist/server/app-route-handler-response.js +7 -6
- package/dist/server/app-route-handler-runtime.d.ts +2 -2
- package/dist/server/app-route-handler-runtime.js +3 -4
- package/dist/server/app-route-module-loader.d.ts +43 -0
- package/dist/server/app-route-module-loader.js +32 -0
- package/dist/server/app-router-entry.d.ts +1 -2
- package/dist/server/app-router-entry.js +2 -2
- package/dist/server/app-rsc-cache-busting.d.ts +10 -2
- package/dist/server/app-rsc-cache-busting.js +13 -4
- package/dist/server/app-rsc-embedded-chunks.d.ts +1 -2
- package/dist/server/app-rsc-embedded-chunks.js +0 -2
- package/dist/server/app-rsc-error-handler.d.ts +1 -2
- package/dist/server/app-rsc-error-handler.js +0 -2
- package/dist/server/app-rsc-errors.d.ts +1 -2
- package/dist/server/app-rsc-errors.js +0 -2
- package/dist/server/app-rsc-handler.d.ts +17 -2
- package/dist/server/app-rsc-handler.js +24 -15
- package/dist/server/app-rsc-render-mode.d.ts +1 -2
- package/dist/server/app-rsc-render-mode.js +0 -2
- package/dist/server/app-rsc-request-normalization.d.ts +4 -5
- package/dist/server/app-rsc-request-normalization.js +2 -4
- package/dist/server/app-rsc-response-finalizer.d.ts +1 -2
- package/dist/server/app-rsc-response-finalizer.js +2 -2
- package/dist/server/app-rsc-route-matching.d.ts +20 -2
- package/dist/server/app-rsc-route-matching.js +29 -6
- package/dist/server/app-segment-config.d.ts +4 -2
- package/dist/server/app-segment-config.js +8 -2
- package/dist/server/app-server-action-execution.d.ts +18 -3
- package/dist/server/app-server-action-execution.js +75 -18
- package/dist/server/app-ssr-entry.d.ts +11 -4
- package/dist/server/app-ssr-entry.js +47 -15
- package/dist/server/app-ssr-error-meta.d.ts +1 -2
- package/dist/server/app-ssr-error-meta.js +0 -2
- package/dist/server/app-ssr-stream.d.ts +1 -2
- package/dist/server/app-ssr-stream.js +31 -3
- package/dist/server/app-static-generation.d.ts +1 -2
- package/dist/server/app-static-generation.js +0 -2
- 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 +1 -2
- package/dist/server/artifact-compatibility.js +2 -6
- package/dist/server/cache-control.d.ts +15 -2
- package/dist/server/cache-control.js +21 -3
- package/dist/server/cache-headers.d.ts +1 -2
- package/dist/server/cache-headers.js +0 -2
- package/dist/server/cache-proof.d.ts +1 -2
- package/dist/server/cache-proof.js +0 -2
- package/dist/server/client-reuse-manifest.d.ts +3 -3
- package/dist/server/client-reuse-manifest.js +6 -10
- package/dist/server/client-trace-metadata.d.ts +1 -2
- package/dist/server/client-trace-metadata.js +0 -2
- package/dist/server/cookie-utils.d.ts +1 -2
- package/dist/server/cookie-utils.js +0 -2
- package/dist/server/csp.d.ts +1 -2
- package/dist/server/csp.js +0 -2
- package/dist/server/default-global-error-module.d.ts +1 -2
- package/dist/server/default-global-error-module.js +0 -2
- package/dist/server/default-not-found-module.d.ts +1 -2
- package/dist/server/default-not-found-module.js +0 -2
- package/dist/server/dev-error-overlay-store.d.ts +20 -4
- package/dist/server/dev-error-overlay-store.js +23 -4
- package/dist/server/dev-error-overlay.d.ts +39 -3
- package/dist/server/dev-error-overlay.js +952 -164
- 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 +1 -2
- package/dist/server/dev-lockfile.js +0 -2
- package/dist/server/dev-module-runner.d.ts +1 -2
- package/dist/server/dev-module-runner.js +0 -2
- package/dist/server/dev-origin-check.d.ts +1 -2
- package/dist/server/dev-origin-check.js +0 -2
- package/dist/server/dev-route-files.d.ts +1 -2
- package/dist/server/dev-route-files.js +0 -2
- package/dist/server/dev-server.d.ts +3 -4
- package/dist/server/dev-server.js +129 -49
- 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 +1 -2
- package/dist/server/document-initial-head.js +0 -2
- package/dist/server/edge-api-runtime.d.ts +1 -2
- package/dist/server/edge-api-runtime.js +0 -2
- package/dist/server/file-based-metadata.d.ts +1 -2
- package/dist/server/file-based-metadata.js +0 -2
- package/dist/server/headers.d.ts +3 -2
- package/dist/server/headers.js +3 -3
- package/dist/server/html.d.ts +1 -2
- package/dist/server/html.js +0 -2
- package/dist/server/http-error-responses.d.ts +1 -2
- package/dist/server/http-error-responses.js +0 -2
- package/dist/server/image-optimization.d.ts +1 -2
- package/dist/server/image-optimization.js +0 -2
- package/dist/server/implicit-tags.d.ts +1 -2
- package/dist/server/implicit-tags.js +0 -2
- package/dist/server/instrumentation-runtime.d.ts +1 -2
- package/dist/server/instrumentation-runtime.js +0 -2
- package/dist/server/instrumentation.d.ts +1 -2
- package/dist/server/instrumentation.js +0 -2
- package/dist/server/isr-cache.d.ts +46 -3
- package/dist/server/isr-cache.js +93 -24
- package/dist/server/metadata-route-build-data.d.ts +1 -2
- package/dist/server/metadata-route-build-data.js +0 -2
- package/dist/server/metadata-route-response.d.ts +1 -2
- package/dist/server/metadata-route-response.js +0 -2
- package/dist/server/metadata-routes.d.ts +1 -2
- package/dist/server/metadata-routes.js +0 -2
- package/dist/server/middleware-matcher.d.ts +1 -2
- package/dist/server/middleware-matcher.js +0 -2
- package/dist/server/middleware-request-headers.d.ts +1 -2
- package/dist/server/middleware-request-headers.js +0 -2
- package/dist/server/middleware-response-headers.d.ts +1 -2
- package/dist/server/middleware-response-headers.js +0 -2
- package/dist/server/middleware-runtime.d.ts +1 -2
- package/dist/server/middleware-runtime.js +14 -5
- package/dist/server/middleware.d.ts +2 -3
- package/dist/server/middleware.js +0 -2
- package/dist/server/navigation-planner.d.ts +16 -2
- package/dist/server/navigation-planner.js +6 -6
- package/dist/server/navigation-trace.d.ts +1 -2
- package/dist/server/navigation-trace.js +0 -2
- package/dist/server/next-error-digest.d.ts +1 -2
- package/dist/server/next-error-digest.js +0 -2
- package/dist/server/normalize-path.d.ts +1 -2
- package/dist/server/normalize-path.js +0 -2
- package/dist/server/pages-api-route.d.ts +1 -2
- package/dist/server/pages-api-route.js +1 -3
- package/dist/server/pages-asset-tags.d.ts +66 -0
- package/dist/server/pages-asset-tags.js +116 -0
- package/dist/server/pages-body-parser-config.d.ts +1 -2
- package/dist/server/pages-body-parser-config.js +0 -2
- package/dist/server/pages-data-route.d.ts +39 -2
- package/dist/server/pages-data-route.js +46 -3
- package/dist/server/pages-default-404.d.ts +1 -2
- package/dist/server/pages-default-404.js +0 -2
- package/dist/server/pages-document-initial-props.d.ts +1 -2
- package/dist/server/pages-document-initial-props.js +0 -2
- package/dist/server/pages-get-initial-props.d.ts +17 -0
- package/dist/server/pages-get-initial-props.js +50 -0
- package/dist/server/pages-i18n.d.ts +1 -2
- package/dist/server/pages-i18n.js +0 -2
- package/dist/server/pages-media-type.d.ts +1 -2
- package/dist/server/pages-media-type.js +1 -2
- package/dist/server/pages-node-compat.d.ts +11 -2
- package/dist/server/pages-node-compat.js +38 -3
- package/dist/server/pages-page-data.d.ts +17 -10
- package/dist/server/pages-page-data.js +79 -35
- package/dist/server/pages-page-handler.d.ts +97 -0
- package/dist/server/pages-page-handler.js +348 -0
- package/dist/server/pages-page-method.d.ts +1 -2
- package/dist/server/pages-page-method.js +0 -2
- package/dist/server/pages-page-response.d.ts +11 -3
- package/dist/server/pages-page-response.js +16 -5
- 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 +99 -0
- package/dist/server/pages-request-pipeline.js +209 -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 +1 -2
- package/dist/server/pages-serializable-props.js +0 -2
- package/dist/server/pregenerated-concrete-paths.d.ts +32 -0
- package/dist/server/pregenerated-concrete-paths.js +78 -0
- package/dist/server/prerender-route-params.d.ts +13 -3
- package/dist/server/prerender-route-params.js +30 -11
- package/dist/server/prerender-work-unit-setup.d.ts +1 -2
- package/dist/server/prerender-work-unit-setup.js +0 -2
- package/dist/server/prod-server.d.ts +8 -6
- package/dist/server/prod-server.js +101 -219
- package/dist/server/proxy-trust.d.ts +1 -2
- package/dist/server/proxy-trust.js +0 -2
- package/dist/server/request-log.d.ts +1 -2
- package/dist/server/request-log.js +0 -2
- package/dist/server/request-pipeline.d.ts +14 -2
- package/dist/server/request-pipeline.js +42 -3
- package/dist/server/rsc-stream-hints.d.ts +1 -2
- package/dist/server/rsc-stream-hints.js +0 -2
- package/dist/server/seed-cache.d.ts +6 -2
- package/dist/server/seed-cache.js +10 -8
- package/dist/server/server-action-not-found.d.ts +1 -2
- package/dist/server/server-action-not-found.js +0 -2
- package/dist/server/server-globals.d.ts +1 -2
- package/dist/server/server-globals.js +0 -2
- package/dist/server/skip-cache-proof.d.ts +1 -2
- package/dist/server/skip-cache-proof.js +0 -2
- package/dist/server/socket-error-backstop.d.ts +19 -2
- package/dist/server/socket-error-backstop.js +77 -6
- package/dist/server/static-file-cache.d.ts +1 -2
- package/dist/server/static-file-cache.js +0 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +1 -2
- package/dist/server/static-layout-client-reuse-proof.js +0 -2
- package/dist/server/streaming-metadata.d.ts +1 -2
- package/dist/server/streaming-metadata.js +0 -2
- package/dist/server/worker-utils.d.ts +1 -2
- package/dist/server/worker-utils.js +3 -6
- package/dist/shims/amp.d.ts +1 -2
- package/dist/shims/amp.js +0 -2
- package/dist/shims/app-router-scroll-state.d.ts +1 -2
- package/dist/shims/app-router-scroll-state.js +0 -2
- package/dist/shims/app-router-scroll.d.ts +3 -5
- package/dist/shims/app-router-scroll.js +22 -6
- package/dist/shims/app.d.ts +1 -2
- package/dist/shims/app.js +0 -2
- package/dist/shims/before-interactive-context.d.ts +1 -2
- package/dist/shims/before-interactive-context.js +0 -2
- package/dist/shims/cache-for-request.d.ts +1 -2
- package/dist/shims/cache-for-request.js +0 -2
- package/dist/shims/cache-runtime.d.ts +20 -5
- package/dist/shims/cache-runtime.js +66 -31
- package/dist/shims/cache.d.ts +48 -7
- package/dist/shims/cache.js +79 -20
- 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 +1 -2
- package/dist/shims/client-hook-error.js +0 -2
- package/dist/shims/client-locale.d.ts +1 -2
- package/dist/shims/client-locale.js +1 -3
- package/dist/shims/compat-router.d.ts +1 -2
- package/dist/shims/compat-router.js +0 -2
- package/dist/shims/config.d.ts +1 -2
- package/dist/shims/config.js +0 -2
- package/dist/shims/constants.d.ts +1 -2
- package/dist/shims/constants.js +0 -2
- package/dist/shims/default-global-error.d.ts +3 -4
- package/dist/shims/default-global-error.js +0 -2
- package/dist/shims/default-not-found.d.ts +1 -2
- package/dist/shims/default-not-found.js +0 -2
- package/dist/shims/document.d.ts +5 -7
- package/dist/shims/document.js +0 -2
- package/dist/shims/dynamic.d.ts +1 -2
- package/dist/shims/dynamic.js +0 -2
- package/dist/shims/error-boundary.d.ts +32 -18
- package/dist/shims/error-boundary.js +43 -3
- package/dist/shims/error.d.ts +1 -2
- package/dist/shims/error.js +0 -2
- package/dist/shims/fetch-cache.d.ts +14 -2
- package/dist/shims/fetch-cache.js +20 -5
- package/dist/shims/font-google-base.d.ts +1 -2
- package/dist/shims/font-google-base.js +1 -13
- package/dist/shims/font-local.d.ts +1 -2
- package/dist/shims/font-local.js +1 -15
- package/dist/shims/font-utils.d.ts +7 -2
- package/dist/shims/font-utils.js +13 -3
- package/dist/shims/form.d.ts +12 -5
- package/dist/shims/form.js +98 -21
- package/dist/shims/hash-scroll.d.ts +2 -2
- package/dist/shims/hash-scroll.js +3 -3
- package/dist/shims/head-state.d.ts +1 -2
- package/dist/shims/head-state.js +0 -2
- package/dist/shims/head.d.ts +1 -2
- package/dist/shims/head.js +0 -2
- package/dist/shims/headers.d.ts +9 -2
- package/dist/shims/headers.js +13 -3
- package/dist/shims/i18n-context.d.ts +1 -2
- package/dist/shims/i18n-context.js +0 -2
- package/dist/shims/i18n-state.d.ts +1 -2
- package/dist/shims/i18n-state.js +0 -2
- package/dist/shims/image-config.d.ts +1 -2
- package/dist/shims/image-config.js +0 -2
- package/dist/shims/image.d.ts +1 -2
- package/dist/shims/image.js +1 -3
- package/dist/shims/internal/als-registry.d.ts +1 -2
- package/dist/shims/internal/als-registry.js +0 -2
- package/dist/shims/internal/api-utils.d.ts +1 -2
- package/dist/shims/internal/app-route-detection.d.ts +1 -2
- package/dist/shims/internal/app-route-detection.js +0 -2
- package/dist/shims/internal/app-router-context.d.ts +1 -2
- package/dist/shims/internal/app-router-context.js +0 -2
- package/dist/shims/internal/cookie-serialize.d.ts +1 -2
- package/dist/shims/internal/cookie-serialize.js +0 -2
- 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 +1 -2
- package/dist/shims/internal/make-hanging-promise.js +0 -2
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +1 -2
- package/dist/shims/internal/pages-data-fetch-dedup.js +0 -2
- package/dist/shims/internal/pages-data-target.d.ts +1 -2
- package/dist/shims/internal/pages-data-target.js +0 -2
- package/dist/shims/internal/pages-data-url.d.ts +1 -2
- package/dist/shims/internal/pages-data-url.js +0 -2
- package/dist/shims/internal/parse-cookie-header.d.ts +1 -2
- package/dist/shims/internal/parse-cookie-header.js +0 -2
- 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 +2 -4
- package/dist/shims/internal/router-context.js +0 -2
- package/dist/shims/internal/utils.d.ts +2 -2
- package/dist/shims/internal/utils.js +0 -2
- package/dist/shims/internal/work-unit-async-storage.d.ts +1 -2
- package/dist/shims/internal/work-unit-async-storage.js +0 -2
- package/dist/shims/layout-segment-context.d.ts +2 -4
- package/dist/shims/layout-segment-context.js +0 -2
- package/dist/shims/legacy-image.d.ts +1 -2
- package/dist/shims/legacy-image.js +0 -2
- package/dist/shims/link-prefetch.d.ts +1 -2
- package/dist/shims/link-prefetch.js +0 -2
- package/dist/shims/link.d.ts +2 -2
- package/dist/shims/link.js +40 -20
- package/dist/shims/metadata.d.ts +4 -5
- package/dist/shims/metadata.js +1 -3
- package/dist/shims/navigation-state.d.ts +1 -2
- package/dist/shims/navigation-state.js +0 -2
- package/dist/shims/navigation.d.ts +25 -9
- package/dist/shims/navigation.js +251 -46
- package/dist/shims/navigation.react-server.d.ts +1 -2
- package/dist/shims/navigation.react-server.js +0 -2
- package/dist/shims/offline.d.ts +1 -2
- package/dist/shims/offline.js +0 -2
- package/dist/shims/og.d.ts +1 -2
- package/dist/shims/og.js +2 -4
- package/dist/shims/pages-router-runtime.d.ts +7 -2
- package/dist/shims/pages-router-runtime.js +11 -3
- package/dist/shims/ppr-fallback-shell.d.ts +29 -0
- package/dist/shims/ppr-fallback-shell.js +149 -0
- package/dist/shims/readonly-url-search-params.d.ts +1 -2
- package/dist/shims/readonly-url-search-params.js +0 -2
- package/dist/shims/request-context.d.ts +9 -5
- package/dist/shims/request-context.js +0 -2
- package/dist/shims/request-state-types.d.ts +1 -1
- package/dist/shims/root-params.d.ts +1 -2
- package/dist/shims/root-params.js +0 -2
- package/dist/shims/router-state.d.ts +2 -2
- package/dist/shims/router-state.js +2 -2
- package/dist/shims/router.d.ts +6 -4
- package/dist/shims/router.js +262 -40
- package/dist/shims/script-nonce-context.d.ts +1 -2
- package/dist/shims/script-nonce-context.js +0 -2
- package/dist/shims/script.d.ts +1 -2
- package/dist/shims/script.js +0 -2
- package/dist/shims/server.d.ts +1 -2
- package/dist/shims/server.js +0 -2
- package/dist/shims/slot.d.ts +11 -4
- package/dist/shims/slot.js +121 -9
- package/dist/shims/thenable-params.d.ts +2 -2
- package/dist/shims/thenable-params.js +107 -12
- package/dist/shims/unified-request-context.d.ts +1 -2
- package/dist/shims/unified-request-context.js +0 -2
- package/dist/shims/unrecognized-action-error.d.ts +1 -2
- package/dist/shims/unrecognized-action-error.js +0 -2
- package/dist/shims/url-safety.d.ts +1 -2
- package/dist/shims/url-safety.js +0 -2
- package/dist/shims/url-utils.d.ts +1 -2
- package/dist/shims/url-utils.js +0 -2
- package/dist/shims/use-merged-ref.d.ts +1 -2
- package/dist/shims/use-merged-ref.js +0 -2
- package/dist/shims/web-vitals.d.ts +1 -2
- package/dist/shims/web-vitals.js +0 -2
- package/dist/typegen.d.ts +1 -2
- package/dist/typegen.js +2 -9
- package/dist/utils/asset-prefix.d.ts +1 -2
- package/dist/utils/asset-prefix.js +0 -2
- package/dist/utils/base-path.d.ts +1 -2
- package/dist/utils/base-path.js +0 -2
- package/dist/utils/cache-control-metadata.d.ts +1 -4
- package/dist/utils/cache-control-metadata.js +1 -3
- package/dist/utils/client-build-manifest.d.ts +8 -2
- package/dist/utils/client-build-manifest.js +30 -7
- package/dist/utils/client-entry-manifest.d.ts +11 -0
- package/dist/utils/client-entry-manifest.js +29 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -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 +1 -2
- package/dist/utils/domain-locale.js +2 -4
- package/dist/utils/encode-cache-tag.d.ts +1 -2
- package/dist/utils/encode-cache-tag.js +0 -2
- package/dist/utils/error-cause.d.ts +1 -2
- package/dist/utils/error-cause.js +0 -2
- package/dist/utils/hash.d.ts +1 -2
- package/dist/utils/hash.js +0 -2
- package/dist/utils/html-limited-bots.d.ts +1 -2
- package/dist/utils/html-limited-bots.js +0 -2
- package/dist/utils/lazy-chunks.d.ts +1 -2
- package/dist/utils/lazy-chunks.js +0 -2
- package/dist/utils/manifest-paths.d.ts +8 -3
- package/dist/utils/manifest-paths.js +15 -3
- package/dist/utils/mdx-scan.d.ts +1 -2
- package/dist/utils/mdx-scan.js +0 -2
- package/dist/utils/navigation-signal.d.ts +1 -2
- package/dist/utils/navigation-signal.js +0 -2
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/path.d.ts +4 -2
- package/dist/utils/path.js +5 -3
- package/dist/utils/prerender-output-paths.d.ts +1 -2
- package/dist/utils/prerender-output-paths.js +0 -2
- package/dist/utils/project.d.ts +1 -2
- package/dist/utils/project.js +0 -2
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +1 -2
- package/dist/utils/public-routes.js +0 -2
- package/dist/utils/query.d.ts +1 -2
- package/dist/utils/query.js +0 -2
- package/dist/utils/record.d.ts +1 -2
- package/dist/utils/record.js +0 -2
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +1 -2
- package/dist/utils/safe-json-file.js +0 -2
- package/dist/utils/sorted-array.d.ts +1 -2
- package/dist/utils/sorted-array.js +0 -2
- package/dist/utils/text-stream.d.ts +1 -2
- package/dist/utils/text-stream.js +0 -2
- package/dist/utils/vinext-root.d.ts +1 -2
- package/dist/utils/vinext-root.js +0 -2
- package/dist/utils/vite-version.d.ts +1 -2
- package/dist/utils/vite-version.js +0 -2
- package/package.json +23 -6
- package/dist/build/clean-output.js.map +0 -1
- package/dist/build/client-build-config.js.map +0 -1
- package/dist/build/google-fonts/build-url.js.map +0 -1
- package/dist/build/google-fonts/fallback-metrics-data.js.map +0 -1
- package/dist/build/google-fonts/fallback-metrics.js.map +0 -1
- package/dist/build/google-fonts/font-data.js.map +0 -1
- package/dist/build/google-fonts/font-metadata.js.map +0 -1
- package/dist/build/google-fonts/get-axes.js.map +0 -1
- package/dist/build/google-fonts/sort-variants.js.map +0 -1
- package/dist/build/google-fonts/validate.js.map +0 -1
- package/dist/build/inline-css.js.map +0 -1
- package/dist/build/layout-classification.js.map +0 -1
- package/dist/build/nitro-route-rules.js.map +0 -1
- package/dist/build/precompress.js.map +0 -1
- package/dist/build/prerender.js.map +0 -1
- package/dist/build/report.js.map +0 -1
- package/dist/build/route-classification-injector.js.map +0 -1
- package/dist/build/route-classification-manifest.js.map +0 -1
- package/dist/build/run-prerender.js.map +0 -1
- package/dist/build/server-manifest.js.map +0 -1
- package/dist/build/ssr-manifest.js.map +0 -1
- package/dist/build/standalone.js.map +0 -1
- package/dist/build/static-export.js.map +0 -1
- package/dist/check.js.map +0 -1
- package/dist/cli-args.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/client/instrumentation-client-inject.js.map +0 -1
- package/dist/client/instrumentation-client-state.js.map +0 -1
- package/dist/client/instrumentation-client.js.map +0 -1
- package/dist/client/navigation-runtime.js.map +0 -1
- package/dist/client/pages-router-link-navigation.js.map +0 -1
- package/dist/client/validate-module-path.js.map +0 -1
- package/dist/client/vinext-next-data.js.map +0 -1
- package/dist/client/window-next.js.map +0 -1
- package/dist/cloudflare/kv-cache-handler.js.map +0 -1
- package/dist/cloudflare/tpr.js.map +0 -1
- package/dist/config/config-matchers.js.map +0 -1
- package/dist/config/dotenv.js.map +0 -1
- package/dist/config/next-config.js.map +0 -1
- package/dist/config/tsconfig-paths.js.map +0 -1
- package/dist/deploy.js.map +0 -1
- package/dist/entries/app-browser-entry.js.map +0 -1
- package/dist/entries/app-rsc-entry.js.map +0 -1
- package/dist/entries/app-rsc-manifest.js.map +0 -1
- package/dist/entries/app-ssr-entry.js.map +0 -1
- package/dist/entries/pages-client-entry.js.map +0 -1
- package/dist/entries/pages-entry-helpers.js.map +0 -1
- package/dist/entries/pages-server-entry.js.map +0 -1
- package/dist/entries/runtime-entry-module.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init.js.map +0 -1
- package/dist/plugins/async-hooks-stub.js.map +0 -1
- package/dist/plugins/client-reference-dedup.js.map +0 -1
- package/dist/plugins/css-data-url.js.map +0 -1
- package/dist/plugins/fonts.js.map +0 -1
- package/dist/plugins/import-meta-url.js.map +0 -1
- package/dist/plugins/instrumentation-client.js.map +0 -1
- package/dist/plugins/middleware-server-only.js.map +0 -1
- package/dist/plugins/og-assets.js.map +0 -1
- package/dist/plugins/optimize-imports.js.map +0 -1
- package/dist/plugins/postcss.js.map +0 -1
- package/dist/plugins/remove-console.js.map +0 -1
- package/dist/plugins/rsc-client-reference-loaders.js.map +0 -1
- package/dist/plugins/rsc-client-shim-excludes.js.map +0 -1
- package/dist/plugins/sass.js.map +0 -1
- package/dist/plugins/server-externals-manifest.js.map +0 -1
- package/dist/plugins/strip-server-exports.js.map +0 -1
- package/dist/routing/app-route-graph.js.map +0 -1
- package/dist/routing/app-router.js.map +0 -1
- package/dist/routing/file-matcher.js.map +0 -1
- package/dist/routing/pages-router.js.map +0 -1
- package/dist/routing/route-matching.js.map +0 -1
- package/dist/routing/route-pattern.js.map +0 -1
- package/dist/routing/route-trie.js.map +0 -1
- package/dist/routing/route-validation.js.map +0 -1
- package/dist/routing/utils.js.map +0 -1
- package/dist/server/api-handler.js.map +0 -1
- package/dist/server/app-browser-action-result.js.map +0 -1
- package/dist/server/app-browser-entry.js.map +0 -1
- package/dist/server/app-browser-error.js.map +0 -1
- package/dist/server/app-browser-hydration.js.map +0 -1
- package/dist/server/app-browser-interception-context.js.map +0 -1
- package/dist/server/app-browser-mpa-navigation.js.map +0 -1
- package/dist/server/app-browser-navigation-controller.js.map +0 -1
- package/dist/server/app-browser-popstate.js.map +0 -1
- package/dist/server/app-browser-rsc-redirect.js.map +0 -1
- package/dist/server/app-browser-state.js.map +0 -1
- package/dist/server/app-browser-stream.js.map +0 -1
- package/dist/server/app-browser-visible-commit.js.map +0 -1
- package/dist/server/app-client-reference-preloader.js.map +0 -1
- package/dist/server/app-elements-wire.js.map +0 -1
- package/dist/server/app-elements.js.map +0 -1
- package/dist/server/app-fallback-renderer.js.map +0 -1
- package/dist/server/app-history-state.js.map +0 -1
- package/dist/server/app-hook-warning-suppression.js.map +0 -1
- package/dist/server/app-inline-css-client.js.map +0 -1
- package/dist/server/app-interception-context-header.js.map +0 -1
- package/dist/server/app-layout-param-observation.js.map +0 -1
- package/dist/server/app-middleware.js.map +0 -1
- package/dist/server/app-mounted-slots-header.js.map +0 -1
- package/dist/server/app-optimistic-routing.js.map +0 -1
- package/dist/server/app-page-boundary-render.js.map +0 -1
- package/dist/server/app-page-boundary.js.map +0 -1
- package/dist/server/app-page-cache.js.map +0 -1
- package/dist/server/app-page-dispatch.js.map +0 -1
- package/dist/server/app-page-element-builder.js.map +0 -1
- package/dist/server/app-page-execution.js.map +0 -1
- package/dist/server/app-page-head.js.map +0 -1
- package/dist/server/app-page-method.js.map +0 -1
- package/dist/server/app-page-params.js.map +0 -1
- package/dist/server/app-page-probe.js.map +0 -1
- package/dist/server/app-page-render-identity.js.map +0 -1
- package/dist/server/app-page-render-observation.js.map +0 -1
- package/dist/server/app-page-render.js.map +0 -1
- package/dist/server/app-page-request.js.map +0 -1
- package/dist/server/app-page-response.js.map +0 -1
- package/dist/server/app-page-route-wiring.js.map +0 -1
- package/dist/server/app-page-segment-state.js.map +0 -1
- package/dist/server/app-page-stream.js.map +0 -1
- package/dist/server/app-post-middleware-context.js.map +0 -1
- package/dist/server/app-prerender-endpoints.js.map +0 -1
- package/dist/server/app-prerender-static-params.js.map +0 -1
- package/dist/server/app-render-dependency.js.map +0 -1
- package/dist/server/app-request-context.js.map +0 -1
- package/dist/server/app-route-handler-cache.js.map +0 -1
- package/dist/server/app-route-handler-dispatch.js.map +0 -1
- package/dist/server/app-route-handler-execution.js.map +0 -1
- package/dist/server/app-route-handler-policy.js.map +0 -1
- package/dist/server/app-route-handler-response.js.map +0 -1
- package/dist/server/app-route-handler-runtime.js.map +0 -1
- package/dist/server/app-router-entry.js.map +0 -1
- package/dist/server/app-rsc-cache-busting.js.map +0 -1
- package/dist/server/app-rsc-embedded-chunks.js.map +0 -1
- package/dist/server/app-rsc-error-handler.js.map +0 -1
- package/dist/server/app-rsc-errors.js.map +0 -1
- package/dist/server/app-rsc-handler.js.map +0 -1
- package/dist/server/app-rsc-render-mode.js.map +0 -1
- package/dist/server/app-rsc-request-normalization.js.map +0 -1
- package/dist/server/app-rsc-response-finalizer.js.map +0 -1
- package/dist/server/app-rsc-route-matching.js.map +0 -1
- package/dist/server/app-segment-config.js.map +0 -1
- package/dist/server/app-server-action-execution.js.map +0 -1
- package/dist/server/app-ssr-entry.js.map +0 -1
- package/dist/server/app-ssr-error-meta.js.map +0 -1
- package/dist/server/app-ssr-stream.js.map +0 -1
- package/dist/server/app-static-generation.js.map +0 -1
- package/dist/server/artifact-compatibility.js.map +0 -1
- package/dist/server/cache-control.js.map +0 -1
- package/dist/server/cache-headers.js.map +0 -1
- package/dist/server/cache-proof.js.map +0 -1
- package/dist/server/client-reuse-manifest.js.map +0 -1
- package/dist/server/client-trace-metadata.js.map +0 -1
- package/dist/server/cookie-utils.js.map +0 -1
- package/dist/server/csp.js.map +0 -1
- package/dist/server/default-global-error-module.js.map +0 -1
- package/dist/server/default-not-found-module.js.map +0 -1
- package/dist/server/dev-error-overlay-store.js.map +0 -1
- package/dist/server/dev-error-overlay.js.map +0 -1
- package/dist/server/dev-lockfile.js.map +0 -1
- package/dist/server/dev-module-runner.js.map +0 -1
- package/dist/server/dev-origin-check.js.map +0 -1
- package/dist/server/dev-route-files.js.map +0 -1
- package/dist/server/dev-server.js.map +0 -1
- package/dist/server/document-initial-head.js.map +0 -1
- package/dist/server/edge-api-runtime.js.map +0 -1
- package/dist/server/file-based-metadata.js.map +0 -1
- package/dist/server/headers.js.map +0 -1
- package/dist/server/html.js.map +0 -1
- package/dist/server/http-error-responses.js.map +0 -1
- package/dist/server/image-optimization.js.map +0 -1
- package/dist/server/implicit-tags.js.map +0 -1
- package/dist/server/instrumentation-runtime.js.map +0 -1
- package/dist/server/instrumentation.js.map +0 -1
- package/dist/server/isr-cache.js.map +0 -1
- package/dist/server/metadata-route-build-data.js.map +0 -1
- package/dist/server/metadata-route-response.js.map +0 -1
- package/dist/server/metadata-routes.js.map +0 -1
- package/dist/server/middleware-matcher.js.map +0 -1
- package/dist/server/middleware-request-headers.js.map +0 -1
- package/dist/server/middleware-response-headers.js.map +0 -1
- package/dist/server/middleware-runtime.js.map +0 -1
- package/dist/server/middleware.js.map +0 -1
- package/dist/server/navigation-planner.js.map +0 -1
- package/dist/server/navigation-trace.js.map +0 -1
- package/dist/server/next-error-digest.js.map +0 -1
- package/dist/server/normalize-path.js.map +0 -1
- package/dist/server/pages-api-route.js.map +0 -1
- package/dist/server/pages-body-parser-config.js.map +0 -1
- package/dist/server/pages-data-route.js.map +0 -1
- package/dist/server/pages-default-404.js.map +0 -1
- package/dist/server/pages-document-initial-props.js.map +0 -1
- package/dist/server/pages-i18n.js.map +0 -1
- package/dist/server/pages-media-type.js.map +0 -1
- package/dist/server/pages-node-compat.js.map +0 -1
- package/dist/server/pages-page-data.js.map +0 -1
- package/dist/server/pages-page-method.js.map +0 -1
- package/dist/server/pages-page-response.js.map +0 -1
- package/dist/server/pages-serializable-props.js.map +0 -1
- package/dist/server/prerender-route-params.js.map +0 -1
- package/dist/server/prerender-work-unit-setup.js.map +0 -1
- package/dist/server/prod-server.js.map +0 -1
- package/dist/server/proxy-trust.js.map +0 -1
- package/dist/server/request-log.js.map +0 -1
- package/dist/server/request-pipeline.js.map +0 -1
- package/dist/server/rsc-stream-hints.js.map +0 -1
- package/dist/server/seed-cache.js.map +0 -1
- package/dist/server/server-action-not-found.js.map +0 -1
- package/dist/server/server-globals.js.map +0 -1
- package/dist/server/skip-cache-proof.js.map +0 -1
- package/dist/server/socket-error-backstop.js.map +0 -1
- package/dist/server/static-file-cache.js.map +0 -1
- package/dist/server/static-layout-client-reuse-proof.js.map +0 -1
- package/dist/server/streaming-metadata.js.map +0 -1
- package/dist/server/worker-utils.js.map +0 -1
- package/dist/shims/amp.js.map +0 -1
- package/dist/shims/app-router-scroll-state.js.map +0 -1
- package/dist/shims/app-router-scroll.js.map +0 -1
- package/dist/shims/app.js.map +0 -1
- package/dist/shims/before-interactive-context.js.map +0 -1
- package/dist/shims/cache-for-request.js.map +0 -1
- package/dist/shims/cache-runtime.js.map +0 -1
- package/dist/shims/cache.js.map +0 -1
- package/dist/shims/client-hook-error.js.map +0 -1
- package/dist/shims/client-locale.js.map +0 -1
- package/dist/shims/compat-router.js.map +0 -1
- package/dist/shims/config.js.map +0 -1
- package/dist/shims/constants.js.map +0 -1
- package/dist/shims/default-global-error.js.map +0 -1
- package/dist/shims/default-not-found.js.map +0 -1
- package/dist/shims/document.js.map +0 -1
- package/dist/shims/dynamic.js.map +0 -1
- package/dist/shims/error-boundary.js.map +0 -1
- package/dist/shims/error.js.map +0 -1
- package/dist/shims/fetch-cache.js.map +0 -1
- package/dist/shims/font-google-base.js.map +0 -1
- package/dist/shims/font-local.js.map +0 -1
- package/dist/shims/font-utils.js.map +0 -1
- package/dist/shims/form.js.map +0 -1
- package/dist/shims/hash-scroll.js.map +0 -1
- package/dist/shims/head-state.js.map +0 -1
- package/dist/shims/head.js.map +0 -1
- package/dist/shims/headers.js.map +0 -1
- package/dist/shims/i18n-context.js.map +0 -1
- package/dist/shims/i18n-state.js.map +0 -1
- package/dist/shims/image-config.js.map +0 -1
- package/dist/shims/image.js.map +0 -1
- package/dist/shims/internal/als-registry.js.map +0 -1
- package/dist/shims/internal/app-route-detection.js.map +0 -1
- package/dist/shims/internal/app-router-context.js.map +0 -1
- package/dist/shims/internal/cookie-serialize.js.map +0 -1
- package/dist/shims/internal/make-hanging-promise.js.map +0 -1
- package/dist/shims/internal/pages-data-fetch-dedup.js.map +0 -1
- package/dist/shims/internal/pages-data-target.js.map +0 -1
- package/dist/shims/internal/pages-data-url.js.map +0 -1
- package/dist/shims/internal/parse-cookie-header.js.map +0 -1
- package/dist/shims/internal/router-context.js.map +0 -1
- package/dist/shims/internal/utils.js.map +0 -1
- package/dist/shims/internal/work-unit-async-storage.js.map +0 -1
- package/dist/shims/layout-segment-context.js.map +0 -1
- package/dist/shims/legacy-image.js.map +0 -1
- package/dist/shims/link-prefetch.js.map +0 -1
- package/dist/shims/link.js.map +0 -1
- package/dist/shims/metadata.js.map +0 -1
- package/dist/shims/navigation-state.js.map +0 -1
- package/dist/shims/navigation.js.map +0 -1
- package/dist/shims/navigation.react-server.js.map +0 -1
- package/dist/shims/offline.js.map +0 -1
- package/dist/shims/og.js.map +0 -1
- package/dist/shims/pages-router-runtime.js.map +0 -1
- package/dist/shims/readonly-url-search-params.js.map +0 -1
- package/dist/shims/request-context.js.map +0 -1
- package/dist/shims/root-params.js.map +0 -1
- package/dist/shims/router-state.js.map +0 -1
- package/dist/shims/router.js.map +0 -1
- package/dist/shims/script-nonce-context.js.map +0 -1
- package/dist/shims/script.js.map +0 -1
- package/dist/shims/server.js.map +0 -1
- package/dist/shims/slot.js.map +0 -1
- package/dist/shims/thenable-params.js.map +0 -1
- package/dist/shims/unified-request-context.js.map +0 -1
- package/dist/shims/unrecognized-action-error.js.map +0 -1
- package/dist/shims/url-safety.js.map +0 -1
- package/dist/shims/url-utils.js.map +0 -1
- package/dist/shims/use-merged-ref.js.map +0 -1
- package/dist/shims/web-vitals.js.map +0 -1
- package/dist/typegen.js.map +0 -1
- package/dist/utils/asset-prefix.js.map +0 -1
- package/dist/utils/base-path.js.map +0 -1
- package/dist/utils/cache-control-metadata.js.map +0 -1
- package/dist/utils/client-build-manifest.js.map +0 -1
- package/dist/utils/domain-locale.js.map +0 -1
- package/dist/utils/encode-cache-tag.js.map +0 -1
- package/dist/utils/error-cause.js.map +0 -1
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/html-limited-bots.js.map +0 -1
- package/dist/utils/lazy-chunks.js.map +0 -1
- package/dist/utils/manifest-paths.js.map +0 -1
- package/dist/utils/mdx-scan.js.map +0 -1
- package/dist/utils/navigation-signal.js.map +0 -1
- package/dist/utils/path.js.map +0 -1
- package/dist/utils/prerender-output-paths.js.map +0 -1
- package/dist/utils/project.js.map +0 -1
- package/dist/utils/public-routes.js.map +0 -1
- package/dist/utils/query.js.map +0 -1
- package/dist/utils/record.js.map +0 -1
- package/dist/utils/safe-json-file.js.map +0 -1
- package/dist/utils/sorted-array.js.map +0 -1
- package/dist/utils/text-stream.js.map +0 -1
- package/dist/utils/vinext-root.js.map +0 -1
- package/dist/utils/vite-version.js.map +0 -1
|
@@ -2,7 +2,8 @@ import { getOrCreateAls } from "./internal/als-registry.js";
|
|
|
2
2
|
import { getRequestContext, isInsideUnifiedScope, runWithUnifiedStateMutation } from "./unified-request-context.js";
|
|
3
3
|
import { VINEXT_RSC_MARKER_HEADER } from "../server/headers.js";
|
|
4
4
|
import { markDynamicUsage } from "./headers.js";
|
|
5
|
-
import { _registerCacheContextAccessor, _setRequestScopedCacheLife, cacheLifeProfiles,
|
|
5
|
+
import { _registerCacheContextAccessor, _setRequestScopedCacheLife, cacheLifeProfiles, getDataCacheHandler } from "./cache.js";
|
|
6
|
+
import { addCollectedRequestTags } from "./fetch-cache.js";
|
|
6
7
|
//#region src/shims/cache-runtime.ts
|
|
7
8
|
/**
|
|
8
9
|
* "use cache" runtime
|
|
@@ -33,6 +34,7 @@ import { _registerCacheContextAccessor, _setRequestScopedCacheLife, cacheLifePro
|
|
|
33
34
|
* - "use cache: remote" — shared cache (explicit)
|
|
34
35
|
* - "use cache: private" — per-request cache (not shared across requests)
|
|
35
36
|
*/
|
|
37
|
+
const APP_PAGE_PROPS_CACHE_KEY_MARKER = Symbol.for("vinext.appPagePropsCacheKeyMarker");
|
|
36
38
|
/** Threshold below which expire is considered "dynamic" (5 minutes in seconds). */
|
|
37
39
|
const DYNAMIC_EXPIRE = 300;
|
|
38
40
|
/**
|
|
@@ -219,6 +221,15 @@ function clearPrivateCache() {
|
|
|
219
221
|
if (state) state._privateCache = /* @__PURE__ */ new Map();
|
|
220
222
|
else _privateFallbackState._privateCache = /* @__PURE__ */ new Map();
|
|
221
223
|
}
|
|
224
|
+
function markAppPagePropsForUseCache(props) {
|
|
225
|
+
Object.defineProperty(props, APP_PAGE_PROPS_CACHE_KEY_MARKER, {
|
|
226
|
+
configurable: false,
|
|
227
|
+
enumerable: false,
|
|
228
|
+
value: true,
|
|
229
|
+
writable: false
|
|
230
|
+
});
|
|
231
|
+
return props;
|
|
232
|
+
}
|
|
222
233
|
/**
|
|
223
234
|
* Register a function as a cached function. This is called by the Vite
|
|
224
235
|
* transform for each "use cache" function.
|
|
@@ -228,19 +239,20 @@ function clearPrivateCache() {
|
|
|
228
239
|
* @param variant - Cache variant: "" (default/shared), "remote", "private"
|
|
229
240
|
* @returns A wrapper function that checks cache before calling the original
|
|
230
241
|
*/
|
|
231
|
-
function registerCachedFunction(fn, id, variant) {
|
|
242
|
+
function registerCachedFunction(fn, id, variant, options = {}) {
|
|
232
243
|
const cacheVariant = variant ?? "";
|
|
244
|
+
const omitAppPageSearchParamsFromFirstArg = options.appPageDefaultExport === true;
|
|
233
245
|
const isDev = typeof process !== "undefined" && process.env.NODE_ENV === "development";
|
|
234
246
|
const cachedFn = async (...args) => {
|
|
235
247
|
const rsc = await getRscModule();
|
|
236
248
|
const keySeed = getUseCacheKeySeed();
|
|
237
249
|
let cacheKey;
|
|
238
250
|
try {
|
|
251
|
+
const processedArgs = args.length > 0 ? unwrapThenableObjectArray(args, { omitAppPageSearchParamsFromFirstArg }) : [];
|
|
239
252
|
if (rsc && args.length > 0) {
|
|
240
253
|
const tempRefs = rsc.createClientTemporaryReferenceSet();
|
|
241
|
-
const processedArgs = unwrapThenableObjectArray(args);
|
|
242
254
|
cacheKey = buildUseCacheKey(id, keySeed, await replyToCacheKey(await rsc.encodeReply(processedArgs, { temporaryReferences: tempRefs })));
|
|
243
|
-
} else cacheKey = buildUseCacheKey(id, keySeed,
|
|
255
|
+
} else cacheKey = buildUseCacheKey(id, keySeed, processedArgs.length > 0 ? stableStringify(processedArgs) : void 0);
|
|
244
256
|
} catch {
|
|
245
257
|
return fn(...args);
|
|
246
258
|
}
|
|
@@ -256,9 +268,10 @@ function registerCachedFunction(fn, id, variant) {
|
|
|
256
268
|
return result;
|
|
257
269
|
}
|
|
258
270
|
if (isDev) return executeWithContext(fn, args, cacheVariant);
|
|
259
|
-
const handler =
|
|
271
|
+
const handler = getDataCacheHandler();
|
|
260
272
|
const existing = await handler.get(cacheKey, { kind: "FETCH" });
|
|
261
273
|
if (existing?.value && existing.value.kind === "FETCH" && existing.cacheState !== "stale") try {
|
|
274
|
+
propagateCacheTagsToRequest(existing.value.tags);
|
|
262
275
|
if (rsc && existing.value.data.headers["x-vinext-rsc"] === "1") {
|
|
263
276
|
const stream = uint8ToStream(base64ToUint8(existing.value.data.body));
|
|
264
277
|
const result = await rsc.createFromReadableStream(stream);
|
|
@@ -271,6 +284,7 @@ function registerCachedFunction(fn, id, variant) {
|
|
|
271
284
|
} catch {}
|
|
272
285
|
const { result, ctx, effectiveLife } = await runCachedFunctionWithContext(fn, args, cacheVariant);
|
|
273
286
|
recordRequestScopedCacheLife(effectiveLife);
|
|
287
|
+
propagateCacheTagsToRequest(ctx.tags);
|
|
274
288
|
const revalidateSeconds = effectiveLife.revalidate ?? cacheLifeProfiles.default.revalidate ?? 900;
|
|
275
289
|
try {
|
|
276
290
|
let body;
|
|
@@ -303,6 +317,10 @@ function registerCachedFunction(fn, id, variant) {
|
|
|
303
317
|
} catch {}
|
|
304
318
|
return result;
|
|
305
319
|
};
|
|
320
|
+
Object.defineProperty(cachedFn, "length", {
|
|
321
|
+
value: fn.length,
|
|
322
|
+
configurable: true
|
|
323
|
+
});
|
|
306
324
|
return cachedFn;
|
|
307
325
|
}
|
|
308
326
|
function throwPrivateUseCacheInsidePublicUseCacheError() {
|
|
@@ -321,6 +339,30 @@ function recordRequestScopedCacheControl(cacheControl) {
|
|
|
321
339
|
function recordRequestScopedCacheLife(cacheLife) {
|
|
322
340
|
_setRequestScopedCacheLife(cacheLife);
|
|
323
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
|
+
}
|
|
324
366
|
async function executeWithContext(fn, args, variant) {
|
|
325
367
|
const { result, ctx: _ctx, effectiveLife } = await runCachedFunctionWithContext(fn, args, variant);
|
|
326
368
|
recordRequestScopedCacheLife(effectiveLife);
|
|
@@ -339,11 +381,16 @@ async function runCachedFunctionWithContext(fn, args, variant) {
|
|
|
339
381
|
variant: variant || "default",
|
|
340
382
|
hasExplicitRevalidate: false,
|
|
341
383
|
hasExplicitExpire: false,
|
|
342
|
-
dynamicNestedCacheError: void 0
|
|
384
|
+
dynamicNestedCacheError: void 0,
|
|
385
|
+
invalidDynamicUsageError: void 0
|
|
343
386
|
};
|
|
344
387
|
const result = await cacheContextStorage.run(ctx, () => fn(...args));
|
|
388
|
+
if (ctx.invalidDynamicUsageError) throw ctx.invalidDynamicUsageError;
|
|
345
389
|
const effectiveLife = resolveCacheLife(ctx.lifeConfigs);
|
|
346
|
-
if (parentCtx)
|
|
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
|
+
}
|
|
347
394
|
if (parentCtx && eagerError && (effectiveLife.revalidate === 0 || effectiveLife.expire !== void 0 && effectiveLife.expire < DYNAMIC_EXPIRE)) parentCtx.dynamicNestedCacheError ??= eagerError;
|
|
348
395
|
if (typeof process !== "undefined" && (process.env.VINEXT_PRERENDER === "1" || process.env.NODE_ENV === "development") && ctx.dynamicNestedCacheError) {
|
|
349
396
|
if (effectiveLife.revalidate === 0 && !ctx.hasExplicitRevalidate) throw new Error(getNestedCacheZeroRevalidateErrorMessage(), { cause: ctx.dynamicNestedCacheError });
|
|
@@ -355,25 +402,9 @@ async function runCachedFunctionWithContext(fn, args, variant) {
|
|
|
355
402
|
effectiveLife
|
|
356
403
|
};
|
|
357
404
|
}
|
|
358
|
-
|
|
359
|
-
* Recursively unwrap "thenable objects" — values created by
|
|
360
|
-
* `Object.assign(Promise.resolve(obj), obj)` — into plain objects.
|
|
361
|
-
*
|
|
362
|
-
* Next.js 16 params and searchParams are passed as Promise-augmented objects
|
|
363
|
-
* that work both as `await params` and `params.key`. When these are fed to
|
|
364
|
-
* `encodeReply` with `temporaryReferences`, the Promise is treated as a
|
|
365
|
-
* temporary reference and its actual values are **excluded** from the
|
|
366
|
-
* serialized output. This means different param values (e.g.,
|
|
367
|
-
* `section:"sports"` vs `section:"electronics"`) produce identical cache keys.
|
|
368
|
-
*
|
|
369
|
-
* This function extracts the own enumerable properties into plain objects
|
|
370
|
-
* so `encodeReply` can serialize the actual values into the cache key.
|
|
371
|
-
* Only used for cache key generation — the original Promise-augmented
|
|
372
|
-
* objects are still passed to the actual function on cache miss.
|
|
373
|
-
*/
|
|
374
|
-
function unwrapThenableObjects(value) {
|
|
405
|
+
function unwrapThenableObjects(value, options = {}) {
|
|
375
406
|
if (value === null || value === void 0 || typeof value !== "object") return value;
|
|
376
|
-
if (Array.isArray(value)) return value.map(unwrapThenableObjects);
|
|
407
|
+
if (Array.isArray(value)) return value.map((item) => unwrapThenableObjects(item));
|
|
377
408
|
if (typeof value.then === "function") {
|
|
378
409
|
const keys = Object.keys(value);
|
|
379
410
|
if (keys.length > 0) {
|
|
@@ -384,11 +415,17 @@ function unwrapThenableObjects(value) {
|
|
|
384
415
|
return value;
|
|
385
416
|
}
|
|
386
417
|
const result = {};
|
|
387
|
-
for (const key of Object.keys(value))
|
|
418
|
+
for (const key of Object.keys(value)) {
|
|
419
|
+
if (key === "searchParams" && (options.omitAppPageSearchParamsAtRoot || isMarkedAppPagePropsObject(value))) continue;
|
|
420
|
+
result[key] = unwrapThenableObjects(value[key]);
|
|
421
|
+
}
|
|
388
422
|
return result;
|
|
389
423
|
}
|
|
390
|
-
function
|
|
391
|
-
return
|
|
424
|
+
function isMarkedAppPagePropsObject(value) {
|
|
425
|
+
return Reflect.get(value, APP_PAGE_PROPS_CACHE_KEY_MARKER) === true;
|
|
426
|
+
}
|
|
427
|
+
function unwrapThenableObjectArray(values, options) {
|
|
428
|
+
return values.map((value, index) => unwrapThenableObjects(value, { omitAppPageSearchParamsAtRoot: index === 0 && options.omitAppPageSearchParamsFromFirstArg }));
|
|
392
429
|
}
|
|
393
430
|
function stableStringify(value, seen) {
|
|
394
431
|
if (value === void 0) return "undefined";
|
|
@@ -415,6 +452,4 @@ function stableStringify(value, seen) {
|
|
|
415
452
|
return JSON.stringify(value);
|
|
416
453
|
}
|
|
417
454
|
//#endregion
|
|
418
|
-
export { NestedDynamicUseCacheError, cacheContextStorage, clearPrivateCache, getCacheContext, registerCachedFunction, replyToCacheKey, runWithPrivateCache };
|
|
419
|
-
|
|
420
|
-
//# sourceMappingURL=cache-runtime.js.map
|
|
455
|
+
export { NestedDynamicUseCacheError, cacheContextStorage, clearPrivateCache, getCacheContext, markAppPagePropsForUseCache, registerCachedFunction, replyToCacheKey, runWithPrivateCache };
|
package/dist/shims/cache.d.ts
CHANGED
|
@@ -97,6 +97,16 @@ declare class NoOpCacheHandler implements CacheHandler {
|
|
|
97
97
|
type MemoryCacheHandlerOptions = Pick<CacheHandlerContext, "maxMemoryCacheSize"> & {
|
|
98
98
|
cacheMaxMemorySize?: number;
|
|
99
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* In-memory data cache handler. This is the built-in default — vinext installs
|
|
102
|
+
* it automatically, so consumers should not construct or register it by hand.
|
|
103
|
+
*
|
|
104
|
+
* @deprecated Consumers should not instantiate cache handlers directly.
|
|
105
|
+
* Configure caching declaratively via the `cache` option on the `vinext()`
|
|
106
|
+
* plugin (see {@link setDataCacheHandler}); the in-memory handler is the
|
|
107
|
+
* default when nothing is configured, and its size is tuned via the
|
|
108
|
+
* `cacheMaxMemorySize` plugin option.
|
|
109
|
+
*/
|
|
100
110
|
declare class MemoryCacheHandler implements CacheHandler {
|
|
101
111
|
private store;
|
|
102
112
|
private tagRevalidatedAt;
|
|
@@ -116,15 +126,47 @@ declare class MemoryCacheHandler implements CacheHandler {
|
|
|
116
126
|
}
|
|
117
127
|
declare function configureMemoryCacheHandler(options?: MemoryCacheHandlerOptions): void;
|
|
118
128
|
/**
|
|
119
|
-
* Set
|
|
120
|
-
*
|
|
129
|
+
* Set the **data cache** handler. This backs all data-cache concerns —
|
|
130
|
+
* `fetch` caching, `"use cache"`, `unstable_cache` — and is also the default
|
|
131
|
+
* underlying store for page-level ISR (via the default CDN cache adapter).
|
|
132
|
+
*
|
|
133
|
+
* The handler must implement the CacheHandler interface (same shape as
|
|
134
|
+
* Next.js 16's CacheHandler class).
|
|
135
|
+
*
|
|
136
|
+
* @deprecated Don't wire up the data cache imperatively. Configure it
|
|
137
|
+
* declaratively via the `cache.data` option on the `vinext()` plugin in your
|
|
138
|
+
* `vite.config.ts`, using a config-time adapter builder. On Cloudflare Workers:
|
|
139
|
+
*
|
|
140
|
+
* ```ts
|
|
141
|
+
* import { vinext } from "vinext";
|
|
142
|
+
* import { kvDataAdapter } from "@vinext/cloudflare/cache/kv-data-adapter";
|
|
121
143
|
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
144
|
+
* export default defineConfig({
|
|
145
|
+
* plugins: [vinext({ cache: { data: kvDataAdapter({ binding: "VINEXT_KV_CACHE" }) } })],
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*
|
|
149
|
+
* The plugin defers instantiation to the first request and registers the
|
|
150
|
+
* handler across every runtime/router entry, so you don't have to call this
|
|
151
|
+
* from a worker entry. This setter remains as the internal registration target
|
|
152
|
+
* and for backwards compatibility, but is not the recommended consumer API.
|
|
153
|
+
*/
|
|
154
|
+
declare function setDataCacheHandler(handler: CacheHandler): void;
|
|
155
|
+
/**
|
|
156
|
+
* Get the active data cache handler (for internal use or testing).
|
|
157
|
+
*/
|
|
158
|
+
declare function getDataCacheHandler(): CacheHandler;
|
|
159
|
+
/**
|
|
160
|
+
* @deprecated Don't wire up the data cache imperatively. Configure it
|
|
161
|
+
* declaratively via the `cache.data` option on the `vinext()` plugin (e.g.
|
|
162
|
+
* `kvDataAdapter()` from `@vinext/cloudflare/cache/kv-data-adapter`). See
|
|
163
|
+
* {@link setDataCacheHandler} for the migration example. Retained as a
|
|
164
|
+
* backwards-compatible alias — `setCacheHandler` has always configured the
|
|
165
|
+
* data cache handler.
|
|
124
166
|
*/
|
|
125
167
|
declare function setCacheHandler(handler: CacheHandler): void;
|
|
126
168
|
/**
|
|
127
|
-
*
|
|
169
|
+
* @deprecated Prefer {@link getDataCacheHandler}.
|
|
128
170
|
*/
|
|
129
171
|
declare function getCacheHandler(): CacheHandler;
|
|
130
172
|
/**
|
|
@@ -327,5 +369,4 @@ type UnstableCacheOptions = {
|
|
|
327
369
|
*/
|
|
328
370
|
declare function unstable_cache<T extends (...args: any[]) => Promise<any>>(fn: T, keyParts?: string[], options?: UnstableCacheOptions): T;
|
|
329
371
|
//#endregion
|
|
330
|
-
export { 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, getRequestExecutionContext, io, isInsideUnstableCacheScope, unstable_noStore as noStore, unstable_noStore, refresh, revalidatePath, revalidateTag, runWithExecutionContext, setCacheHandler, unstable_cache, unstable_cacheLife, unstable_cacheTag, unstable_io, updateTag };
|
|
331
|
-
//# sourceMappingURL=cache.d.ts.map
|
|
372
|
+
export { 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, getRequestExecutionContext, io, isInsideUnstableCacheScope, unstable_noStore as noStore, unstable_noStore, refresh, revalidatePath, revalidateTag, runWithExecutionContext, setCacheHandler, setDataCacheHandler, unstable_cache, unstable_cacheLife, unstable_cacheTag, unstable_io, updateTag };
|
package/dist/shims/cache.js
CHANGED
|
@@ -7,6 +7,7 @@ import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
|
7
7
|
import { makeHangingPromise } from "./internal/make-hanging-promise.js";
|
|
8
8
|
import { readCacheControlNumberField } from "../utils/cache-control-metadata.js";
|
|
9
9
|
import { encodeCacheTag, encodeCacheTags } from "../utils/encode-cache-tag.js";
|
|
10
|
+
import { getCdnCacheAdapter } from "./cdn-cache.js";
|
|
10
11
|
//#region src/shims/cache.ts
|
|
11
12
|
/**
|
|
12
13
|
* next/cache shim
|
|
@@ -19,12 +20,14 @@ import { encodeCacheTag, encodeCacheTags } from "../utils/encode-cache-tag.js";
|
|
|
19
20
|
* existing community adapters (@neshca/cache-handler, @opennextjs/aws, etc.)
|
|
20
21
|
* can be used directly.
|
|
21
22
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
23
|
+
* Recommended configuration is declarative, via the `cache` option on the
|
|
24
|
+
* `vinext()` plugin in vite.config.ts:
|
|
25
|
+
* import { kvDataAdapter } from '@vinext/cloudflare/cache/kv-data-adapter';
|
|
26
|
+
* vinext({ cache: { data: kvDataAdapter({ binding: 'VINEXT_KV_CACHE' }) } })
|
|
24
27
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
+
* The imperative `setCacheHandler` / `setDataCacheHandler` setters are
|
|
29
|
+
* deprecated for consumers and retained only as the internal registration
|
|
30
|
+
* target used by the generated cache-adapter module.
|
|
28
31
|
*/
|
|
29
32
|
/** @internal Set by cache-runtime.ts on import to avoid circular dependency */
|
|
30
33
|
let _getCacheContextFn = null;
|
|
@@ -77,6 +80,16 @@ function readStringArrayField(ctx, field) {
|
|
|
77
80
|
if (!Array.isArray(value)) return [];
|
|
78
81
|
return value.filter((item) => typeof item === "string");
|
|
79
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* In-memory data cache handler. This is the built-in default — vinext installs
|
|
85
|
+
* it automatically, so consumers should not construct or register it by hand.
|
|
86
|
+
*
|
|
87
|
+
* @deprecated Consumers should not instantiate cache handlers directly.
|
|
88
|
+
* Configure caching declaratively via the `cache` option on the `vinext()`
|
|
89
|
+
* plugin (see {@link setDataCacheHandler}); the in-memory handler is the
|
|
90
|
+
* default when nothing is configured, and its size is tuned via the
|
|
91
|
+
* `cacheMaxMemorySize` plugin option.
|
|
92
|
+
*/
|
|
80
93
|
var MemoryCacheHandler = class {
|
|
81
94
|
store = /* @__PURE__ */ new Map();
|
|
82
95
|
tagRevalidatedAt = /* @__PURE__ */ new Map();
|
|
@@ -198,22 +211,58 @@ function configureMemoryCacheHandler(options) {
|
|
|
198
211
|
_gHandler[_HANDLER_KEY] = new MemoryCacheHandler(options);
|
|
199
212
|
}
|
|
200
213
|
/**
|
|
201
|
-
* Set
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
214
|
+
* Set the **data cache** handler. This backs all data-cache concerns —
|
|
215
|
+
* `fetch` caching, `"use cache"`, `unstable_cache` — and is also the default
|
|
216
|
+
* underlying store for page-level ISR (via the default CDN cache adapter).
|
|
217
|
+
*
|
|
218
|
+
* The handler must implement the CacheHandler interface (same shape as
|
|
219
|
+
* Next.js 16's CacheHandler class).
|
|
220
|
+
*
|
|
221
|
+
* @deprecated Don't wire up the data cache imperatively. Configure it
|
|
222
|
+
* declaratively via the `cache.data` option on the `vinext()` plugin in your
|
|
223
|
+
* `vite.config.ts`, using a config-time adapter builder. On Cloudflare Workers:
|
|
224
|
+
*
|
|
225
|
+
* ```ts
|
|
226
|
+
* import { vinext } from "vinext";
|
|
227
|
+
* import { kvDataAdapter } from "@vinext/cloudflare/cache/kv-data-adapter";
|
|
228
|
+
*
|
|
229
|
+
* export default defineConfig({
|
|
230
|
+
* plugins: [vinext({ cache: { data: kvDataAdapter({ binding: "VINEXT_KV_CACHE" }) } })],
|
|
231
|
+
* });
|
|
232
|
+
* ```
|
|
233
|
+
*
|
|
234
|
+
* The plugin defers instantiation to the first request and registers the
|
|
235
|
+
* handler across every runtime/router entry, so you don't have to call this
|
|
236
|
+
* from a worker entry. This setter remains as the internal registration target
|
|
237
|
+
* and for backwards compatibility, but is not the recommended consumer API.
|
|
206
238
|
*/
|
|
207
|
-
function
|
|
239
|
+
function setDataCacheHandler(handler) {
|
|
208
240
|
_gHandler[_HANDLER_KEY] = handler;
|
|
209
241
|
}
|
|
210
242
|
/**
|
|
211
|
-
* Get the active
|
|
243
|
+
* Get the active data cache handler (for internal use or testing).
|
|
212
244
|
*/
|
|
213
|
-
function
|
|
245
|
+
function getDataCacheHandler() {
|
|
214
246
|
return _getActiveHandler();
|
|
215
247
|
}
|
|
216
248
|
/**
|
|
249
|
+
* @deprecated Don't wire up the data cache imperatively. Configure it
|
|
250
|
+
* declaratively via the `cache.data` option on the `vinext()` plugin (e.g.
|
|
251
|
+
* `kvDataAdapter()` from `@vinext/cloudflare/cache/kv-data-adapter`). See
|
|
252
|
+
* {@link setDataCacheHandler} for the migration example. Retained as a
|
|
253
|
+
* backwards-compatible alias — `setCacheHandler` has always configured the
|
|
254
|
+
* data cache handler.
|
|
255
|
+
*/
|
|
256
|
+
function setCacheHandler(handler) {
|
|
257
|
+
setDataCacheHandler(handler);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* @deprecated Prefer {@link getDataCacheHandler}.
|
|
261
|
+
*/
|
|
262
|
+
function getCacheHandler() {
|
|
263
|
+
return getDataCacheHandler();
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
217
266
|
* Revalidate cached data associated with a specific cache tag.
|
|
218
267
|
*
|
|
219
268
|
* Works with both `fetch(..., { next: { tags: ['myTag'] } })` and
|
|
@@ -233,7 +282,20 @@ async function revalidateTag(tag, profile) {
|
|
|
233
282
|
if (resolved) durations = { expire: resolved.expire };
|
|
234
283
|
} else if (profile && typeof profile === "object") durations = profile;
|
|
235
284
|
if (!profile || !durations || durations.expire === 0) markActionRevalidation(ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC);
|
|
236
|
-
await
|
|
285
|
+
await _invalidateEncodedTag(encodeCacheTag(tag), durations);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Invalidate one already-encoded tag across both cache layers.
|
|
289
|
+
*
|
|
290
|
+
* Ordering is intentional and load-bearing: invalidate the data cache store
|
|
291
|
+
* FIRST (covers fetch data, `"use cache"`, and page entries stored there by the
|
|
292
|
+
* default CDN adapter), THEN ask the CDN adapter to purge its edge (a no-op for
|
|
293
|
+
* the default adapter). Purging the edge before the store is invalidated would
|
|
294
|
+
* let the edge re-fetch and re-cache stale data.
|
|
295
|
+
*/
|
|
296
|
+
async function _invalidateEncodedTag(encoded, durations) {
|
|
297
|
+
await _getActiveHandler().revalidateTag(encoded, durations);
|
|
298
|
+
await getCdnCacheAdapter().revalidateTag(encoded, durations);
|
|
237
299
|
}
|
|
238
300
|
/**
|
|
239
301
|
* Revalidate cached data associated with a specific path.
|
|
@@ -253,8 +315,7 @@ async function revalidateTag(tag, profile) {
|
|
|
253
315
|
async function revalidatePath(path, type) {
|
|
254
316
|
markActionRevalidation(ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC);
|
|
255
317
|
const stem = path.endsWith("/") ? path.slice(0, -1) : path;
|
|
256
|
-
|
|
257
|
-
await _getActiveHandler().revalidateTag(encodeCacheTag(tag));
|
|
318
|
+
await _invalidateEncodedTag(encodeCacheTag(type ? `_N_T_${stem}/${type}` : `_N_T_${stem || "/"}`));
|
|
258
319
|
}
|
|
259
320
|
/**
|
|
260
321
|
* No-op shim for API compatibility.
|
|
@@ -283,7 +344,7 @@ function refresh() {
|
|
|
283
344
|
async function updateTag(tag) {
|
|
284
345
|
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");
|
|
285
346
|
markActionRevalidation(ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC);
|
|
286
|
-
await
|
|
347
|
+
await _invalidateEncodedTag(encodeCacheTag(tag));
|
|
287
348
|
}
|
|
288
349
|
/**
|
|
289
350
|
* Opt out of static rendering and indicate a particular component should not be cached.
|
|
@@ -703,6 +764,4 @@ function unstable_cache(fn, keyParts, options) {
|
|
|
703
764
|
return cachedFn;
|
|
704
765
|
}
|
|
705
766
|
//#endregion
|
|
706
|
-
export { MemoryCacheHandler, NoOpCacheHandler, _consumeRequestScopedCacheLife, _initRequestScopedCacheState, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife, cacheLife, cacheLifeProfiles, cacheTag, configureMemoryCacheHandler, getAndClearActionRevalidationKind, getCacheHandler, getRequestExecutionContext, io, isInsideUnstableCacheScope, unstable_noStore as noStore, unstable_noStore, refresh, revalidatePath, revalidateTag, runWithExecutionContext, setCacheHandler, unstable_cache, unstable_cacheLife, unstable_cacheTag, unstable_io, updateTag };
|
|
707
|
-
|
|
708
|
-
//# sourceMappingURL=cache.js.map
|
|
767
|
+
export { MemoryCacheHandler, NoOpCacheHandler, _consumeRequestScopedCacheLife, _initRequestScopedCacheState, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife, cacheLife, cacheLifeProfiles, cacheTag, configureMemoryCacheHandler, getAndClearActionRevalidationKind, getCacheHandler, getDataCacheHandler, getRequestExecutionContext, io, isInsideUnstableCacheScope, unstable_noStore as noStore, unstable_noStore, refresh, revalidatePath, revalidateTag, runWithExecutionContext, setCacheHandler, setDataCacheHandler, unstable_cache, unstable_cacheLife, unstable_cacheTag, unstable_io, updateTag };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { CacheHandlerValue, IncrementalCacheValue } from "./cache.js";
|
|
2
|
+
|
|
3
|
+
//#region src/shims/cdn-cache.d.ts
|
|
4
|
+
/** A map of response header name -> value the adapter wants applied. */
|
|
5
|
+
type CdnResponseHeaders = Record<string, string>;
|
|
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 cacheable policy. Returns a map
|
|
54
|
+
* so an adapter can emit more than one header (e.g. `Cache-Control` +
|
|
55
|
+
* `CDN-Cache-Control`).
|
|
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.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 };
|
|
@@ -10,5 +10,4 @@
|
|
|
10
10
|
declare function buildClientHookErrorMessage(hookName: string): string;
|
|
11
11
|
declare function throwClientHookError(hookName: string): never;
|
|
12
12
|
//#endregion
|
|
13
|
-
export { buildClientHookErrorMessage, throwClientHookError };
|
|
14
|
-
//# sourceMappingURL=client-hook-error.d.ts.map
|
|
13
|
+
export { buildClientHookErrorMessage, throwClientHookError };
|