vinext 1.0.0-beta.9 → 1.0.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 +150 -92
- package/THIRD_PARTY_LICENSES.md +51 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +7 -14
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +274 -102
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +73 -16
- package/dist/build/prerender.js +272 -80
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +26 -16
- package/dist/build/server-entry.d.ts +6 -0
- package/dist/build/server-entry.js +34 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/browser-globals.d.ts +4 -0
- package/dist/client/browser-globals.js +5 -0
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +20 -17
- package/dist/client/navigation-runtime.js +4 -3
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +14 -2
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +503 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +848 -255
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +711 -103
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +126 -42
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/commonjs-syntax.d.ts +16 -0
- package/dist/plugins/commonjs-syntax.js +22 -0
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +14 -4
- package/dist/plugins/ignore-dynamic-requests.js +113 -91
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +36 -48
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +5 -4
- package/dist/plugins/og-asset-ownership.js +24 -13
- package/dist/plugins/og-assets.d.ts +22 -5
- package/dist/plugins/og-assets.js +82 -21
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +271 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +34 -45
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +3 -3
- package/dist/plugins/require-context.js +41 -22
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/scan-build-css.d.ts +12 -0
- package/dist/plugins/scan-build-css.js +39 -0
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +7 -6
- package/dist/plugins/strip-server-exports.js +4 -2
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +21 -4
- package/dist/plugins/transform-result.js +23 -2
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +16 -7
- package/dist/plugins/typeof-window.js +62 -39
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +18 -19
- package/dist/routing/app-route-graph.js +5 -6
- package/dist/routing/app-route-ids.d.ts +3 -0
- package/dist/routing/app-route-ids.js +6 -0
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +4 -4
- package/dist/server/app-bfcache-id.js +7 -1
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-bfcache-identity.js +1 -2
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +91 -36
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +15 -2
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +9 -5
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +7 -3
- package/dist/server/app-browser-stream.d.ts +5 -6
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +25 -27
- package/dist/server/app-history-state.js +21 -16
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -4
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -24
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +43 -7
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +50 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +18 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-abort-error.d.ts +3 -0
- package/dist/server/app-render-abort-error.js +8 -0
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +112 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +4 -4
- package/dist/server/app-route-handler-cache.js +51 -35
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +77 -56
- package/dist/server/app-route-handler-execution.d.ts +26 -14
- package/dist/server/app-route-handler-execution.js +94 -28
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-policy.js +2 -2
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +14 -3
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +4 -1
- package/dist/server/app-router-entry.js +33 -17
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +11 -9
- package/dist/server/app-rsc-errors.js +14 -16
- package/dist/server/app-rsc-handler.d.ts +32 -6
- package/dist/server/app-rsc-handler.js +425 -64
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +5 -3
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +10 -7
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +18 -13
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +62 -15
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +34 -8
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +64 -6
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +192 -90
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +141 -64
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +56 -61
- package/dist/server/headers.js +22 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-error-responses.js +1 -0
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +30 -27
- package/dist/server/isr-cache.js +23 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +158 -35
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +28 -9
- package/dist/server/pages-asset-tags.d.ts +7 -6
- package/dist/server/pages-asset-tags.js +104 -18
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +13 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +23 -19
- package/dist/server/pages-page-data.js +82 -75
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +103 -47
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +52 -32
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +15 -12
- package/dist/server/pages-request-pipeline.js +80 -35
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +316 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +17 -11
- package/dist/server/prerender-manifest.js +7 -4
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +127 -44
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +4 -4
- package/dist/server/worker-revalidation-context.js +6 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +34 -0
- package/dist/server/workers-tracing.js +67 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +26 -38
- package/dist/shims/cache-request-state.js +2 -13
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +110 -28
- package/dist/shims/cache.d.ts +17 -16
- package/dist/shims/cache.js +19 -15
- package/dist/shims/cacheability-classification.d.ts +50 -29
- package/dist/shims/cacheability-classification.js +29 -14
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +59 -21
- package/dist/shims/cdn-cache.js +31 -47
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +5 -19
- package/dist/shims/error.js +17 -10
- package/dist/shims/error.react-server.d.ts +4 -7
- package/dist/shims/error.react-server.js +4 -1
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +46 -20
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +44 -73
- package/dist/shims/headers.js +87 -144
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cache-context-accessor.d.ts +16 -0
- package/dist/shims/internal/cache-context-accessor.js +15 -0
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/headers-state.d.ts +74 -0
- package/dist/shims/internal/headers-state.js +157 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +26 -18
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/root-params.js +1 -1
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +66 -30
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +35 -32
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +4 -4
- package/dist/utils/encode-cache-tag.js +11 -1
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +151 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +51 -6
- package/dist/server/metadata-route-cache-policy.d.ts +0 -6
- package/dist/server/metadata-route-cache-policy.js +0 -6
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
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
|
+
import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
5
|
+
import { isRouteCacheabilityProbe, recordRouteCacheabilityProbeBailout } from "./cacheability-classification.js";
|
|
4
6
|
import { getDataCacheHandler } from "./cache-handler.js";
|
|
5
7
|
import { suppressHangingPromiseAbortRejections } from "./internal/make-hanging-promise.js";
|
|
6
8
|
import { createPprFallbackShellSuspensePromise, trackPprFallbackShellCacheTask } from "./ppr-fallback-shell.js";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
+
import { markDynamicUsage, throwIfInsideCacheScope } from "./internal/headers-state.js";
|
|
10
|
+
import { isDraftModeEnabled } from "./headers.js";
|
|
11
|
+
import { _registerCacheContextAccessor } from "./internal/cache-context-accessor.js";
|
|
12
|
+
import { _hasPendingRevalidatedTag, _setRequestScopedCacheLife, cacheLifeProfiles } from "./cache-request-state.js";
|
|
9
13
|
import { addCollectedRequestTags, getCurrentFetchSoftTags } from "./fetch-cache.js";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
14
|
+
import { makeThenableParams } from "./thenable-params.js";
|
|
15
|
+
import { APP_PAGE_USE_CACHE_MARKER, hasUseCachePageMarker, isMarkedAppPagePropsObject, isUseCacheFunctionReference, markAppPagePropsForUseCache } from "./internal/app-page-props-cache-key.js";
|
|
12
16
|
import { getCurrentRootParams } from "./root-params.js";
|
|
13
|
-
import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
14
17
|
//#region src/shims/cache-runtime.ts
|
|
15
18
|
/**
|
|
16
19
|
* "use cache" runtime
|
|
@@ -309,7 +312,8 @@ function propagateRootParamNamesToParent(names) {
|
|
|
309
312
|
*/
|
|
310
313
|
function registerCachedFunction(fn, id, variant, options = {}) {
|
|
311
314
|
const cacheVariant = variant ?? "";
|
|
312
|
-
const
|
|
315
|
+
const omitAppPageSearchParams = cacheVariant !== "private";
|
|
316
|
+
const cacheFunctionId = options.serverReferenceId ? JSON.stringify([id, options.serverReferenceId]) : id;
|
|
313
317
|
const isDev = typeof process !== "undefined" && process.env.NODE_ENV === "development";
|
|
314
318
|
const cachedFn = (...args) => {
|
|
315
319
|
if (cacheVariant === "private") {
|
|
@@ -346,18 +350,29 @@ function registerCachedFunction(fn, id, variant, options = {}) {
|
|
|
346
350
|
const keySeed = getUseCacheKeySeed();
|
|
347
351
|
const captures = options.decryptCaptures ? await options.decryptCaptures(args[0]) : void 0;
|
|
348
352
|
const hasCaptureEnvelope = captures !== void 0;
|
|
349
|
-
const
|
|
353
|
+
const pagePropsArgIndex = args.findIndex(hasUseCachePageMarker);
|
|
354
|
+
const isPageInvocation = pagePropsArgIndex !== -1;
|
|
355
|
+
const invocationArgs = isPageInvocation ? replaceArgument(args, pagePropsArgIndex, withoutUseCachePageMarker(args[pagePropsArgIndex])) : args;
|
|
356
|
+
const admittedArgs = options.argumentCount === void 0 ? invocationArgs : hasCaptureEnvelope ? [invocationArgs[0], ...invocationArgs.slice(1, 1 + options.argumentCount)] : invocationArgs.slice(0, options.argumentCount);
|
|
350
357
|
const executionArgs = hasCaptureEnvelope ? [captures, ...admittedArgs.slice(1)] : admittedArgs;
|
|
351
|
-
const
|
|
358
|
+
const pagePropsIndex = omitAppPageSearchParams && isPageInvocation ? pagePropsArgIndex : void 0;
|
|
359
|
+
const callArgs = pagePropsIndex === void 0 ? executionArgs : withErroringPageSearchParams(executionArgs, pagePropsIndex);
|
|
352
360
|
let cacheKey;
|
|
353
361
|
try {
|
|
354
|
-
const processedArgs = executionArgs.length > 0 ? unwrapThenableObjectArray(executionArgs, {
|
|
362
|
+
const processedArgs = executionArgs.length > 0 ? unwrapThenableObjectArray(executionArgs, {
|
|
363
|
+
pagePropsIndex,
|
|
364
|
+
omitMarkedAppPageSearchParams: omitAppPageSearchParams
|
|
365
|
+
}) : [];
|
|
355
366
|
if (rsc && executionArgs.length > 0) {
|
|
356
367
|
const tempRefs = rsc.createClientTemporaryReferenceSet();
|
|
357
|
-
|
|
358
|
-
|
|
368
|
+
const encoded = await rsc.encodeReply(processedArgs, { temporaryReferences: tempRefs });
|
|
369
|
+
cacheKey = buildUseCacheKey(cacheFunctionId, keySeed, await replyToCacheKey(encoded));
|
|
370
|
+
} else {
|
|
371
|
+
const argsKey = processedArgs.length > 0 ? stableStringify(processedArgs) : void 0;
|
|
372
|
+
cacheKey = buildUseCacheKey(cacheFunctionId, keySeed, argsKey);
|
|
373
|
+
}
|
|
359
374
|
} catch {
|
|
360
|
-
return fn
|
|
375
|
+
return (await executeWithContext(fn, callArgs, cacheVariant)).result;
|
|
361
376
|
}
|
|
362
377
|
if (cacheVariant === "private") {
|
|
363
378
|
const privateCache = _getPrivateState()._privateCache;
|
|
@@ -415,6 +430,15 @@ function registerCachedFunction(fn, id, variant, options = {}) {
|
|
|
415
430
|
propagateCacheTagsToRequest(ctx.tags);
|
|
416
431
|
const revalidateSeconds = effectiveLife.revalidate ?? cacheLifeProfiles.default.revalidate ?? 900;
|
|
417
432
|
if (collectedResult?.cacheEntry) try {
|
|
433
|
+
let cacheFunctionInvocation;
|
|
434
|
+
if (options.serverReferenceId && options.encodeInvocationArgs) try {
|
|
435
|
+
cacheFunctionInvocation = {
|
|
436
|
+
encryptedArgs: await options.encodeInvocationArgs(pagePropsIndex === void 0 ? admittedArgs : toReplayablePageArgs(admittedArgs, pagePropsIndex)),
|
|
437
|
+
referenceId: options.serverReferenceId,
|
|
438
|
+
rootParams: Object.fromEntries(Object.entries(rootParams ?? {}).filter((entry) => entry[1] !== void 0)),
|
|
439
|
+
softTags
|
|
440
|
+
};
|
|
441
|
+
} catch {}
|
|
418
442
|
const serialized = collectedResult.cacheEntry;
|
|
419
443
|
const cacheValue = {
|
|
420
444
|
kind: "FETCH",
|
|
@@ -429,6 +453,7 @@ function registerCachedFunction(fn, id, variant, options = {}) {
|
|
|
429
453
|
const cacheContext = {
|
|
430
454
|
fetchCache: true,
|
|
431
455
|
tags: ctx.tags,
|
|
456
|
+
...cacheFunctionInvocation ? { cacheFunctionInvocation } : {},
|
|
432
457
|
cacheControl: {
|
|
433
458
|
revalidate: revalidateSeconds,
|
|
434
459
|
expire: effectiveLife.expire,
|
|
@@ -470,6 +495,10 @@ function registerCachedFunction(fn, id, variant, options = {}) {
|
|
|
470
495
|
const USE_CACHE_FUNCTION_SYMBOL = Symbol.for("vinext.useCacheFunction");
|
|
471
496
|
/** @internal Symbol carrying transform-derived cached function argument metadata. */
|
|
472
497
|
const USE_CACHE_ACCEPTS_SECOND_ARGUMENT_SYMBOL = Symbol.for("vinext.useCacheAcceptsSecondArgument");
|
|
498
|
+
/** Whether a loaded server reference is a transformed `"use cache"` function. */
|
|
499
|
+
function isUseCacheFunction(value) {
|
|
500
|
+
return isUseCacheFunctionReference(value);
|
|
501
|
+
}
|
|
473
502
|
function throwPrivateUseCacheInsidePublicUseCacheError() {
|
|
474
503
|
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\".");
|
|
475
504
|
const ctx = getRequestContext();
|
|
@@ -551,11 +580,12 @@ async function runCachedFunctionWithContext(fn, args, variant, collectResult) {
|
|
|
551
580
|
invalidDynamicUsageError: void 0
|
|
552
581
|
};
|
|
553
582
|
let collectedResult;
|
|
554
|
-
const
|
|
583
|
+
const workUnitType = variant === "private" ? "private-cache" : "cache";
|
|
584
|
+
const result = await workUnitAsyncStorage.run({ type: workUnitType }, () => cacheContextStorage.run(ctx, async () => {
|
|
555
585
|
const value = await fn(...args);
|
|
556
586
|
if (collectResult) collectedResult = await collectResult(value, ctx);
|
|
557
587
|
return value;
|
|
558
|
-
});
|
|
588
|
+
}));
|
|
559
589
|
if (ctx.invalidDynamicUsageError) throw ctx.invalidDynamicUsageError;
|
|
560
590
|
const effectiveLife = resolveCacheLife(ctx.lifeConfigs);
|
|
561
591
|
if (parentCtx) {
|
|
@@ -575,27 +605,79 @@ async function runCachedFunctionWithContext(fn, args, variant, collectResult) {
|
|
|
575
605
|
collectedResult
|
|
576
606
|
};
|
|
577
607
|
}
|
|
578
|
-
function unwrapThenableObjects(value, options
|
|
608
|
+
function unwrapThenableObjects(value, options) {
|
|
579
609
|
if (value === null || value === void 0 || typeof value !== "object") return value;
|
|
580
|
-
|
|
581
|
-
if (
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
return plain;
|
|
587
|
-
}
|
|
588
|
-
return value;
|
|
610
|
+
const childOptions = { omitMarkedAppPageSearchParams: options.omitMarkedAppPageSearchParams };
|
|
611
|
+
if (Array.isArray(value)) return value.map((item) => unwrapThenableObjects(item, childOptions));
|
|
612
|
+
if (isThenableObject(value)) {
|
|
613
|
+
const plain = {};
|
|
614
|
+
for (const key of Object.keys(value)) plain[key] = unwrapThenableObjects(value[key], childOptions);
|
|
615
|
+
return plain;
|
|
589
616
|
}
|
|
617
|
+
if (typeof value.then === "function") return value;
|
|
590
618
|
const result = {};
|
|
591
619
|
for (const key of Object.keys(value)) {
|
|
592
|
-
if (key === "searchParams" && (options.omitAppPageSearchParamsAtRoot || isMarkedAppPagePropsObject(value))) continue;
|
|
593
|
-
result[key] = unwrapThenableObjects(value[key]);
|
|
620
|
+
if (key === "searchParams" && (options.omitAppPageSearchParamsAtRoot || options.omitMarkedAppPageSearchParams && isMarkedAppPagePropsObject(value))) continue;
|
|
621
|
+
result[key] = unwrapThenableObjects(value[key], childOptions);
|
|
594
622
|
}
|
|
595
623
|
return result;
|
|
596
624
|
}
|
|
625
|
+
/**
|
|
626
|
+
* A thenable (not an array) with own enumerable properties — the
|
|
627
|
+
* `Object.assign(Promise.resolve(obj), obj)` pattern Next.js params use. The
|
|
628
|
+
* cache key is built from its fields instead of the promise.
|
|
629
|
+
*/
|
|
630
|
+
function isThenableObject(value) {
|
|
631
|
+
return !Array.isArray(value) && "then" in value && typeof value.then === "function" && Object.keys(value).length > 0;
|
|
632
|
+
}
|
|
633
|
+
function isPagePropsObject(value) {
|
|
634
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
635
|
+
}
|
|
636
|
+
function replaceArgument(args, index, value) {
|
|
637
|
+
const result = [...args];
|
|
638
|
+
result[index] = value;
|
|
639
|
+
return result;
|
|
640
|
+
}
|
|
641
|
+
/** Remove the `$$isPage` invocation marker before props reach the key or user code. */
|
|
642
|
+
function withoutUseCachePageMarker(props) {
|
|
643
|
+
const { [APP_PAGE_USE_CACHE_MARKER]: _marker, ...pageProps } = props;
|
|
644
|
+
return isMarkedAppPagePropsObject(props) ? markAppPagePropsForUseCache(pageProps) : pageProps;
|
|
645
|
+
}
|
|
646
|
+
/**
|
|
647
|
+
* Response Store replay args for a public page cache: drop `searchParams` from
|
|
648
|
+
* the page props at `index` (after a capture envelope, if any), as Next.js does
|
|
649
|
+
* for the serialized arguments (use-cache-wrapper.ts, `isPageSegmentFunction`),
|
|
650
|
+
* and keep the `$$isPage` marker so a replay regains page semantics, including
|
|
651
|
+
* the erroring searchParams fallback.
|
|
652
|
+
*/
|
|
653
|
+
function toReplayablePageArgs(args, index) {
|
|
654
|
+
const props = args[index];
|
|
655
|
+
if (!isPagePropsObject(props)) return [...args];
|
|
656
|
+
const { searchParams: _searchParams, ...pageProps } = props;
|
|
657
|
+
return replaceArgument(args, index, {
|
|
658
|
+
...pageProps,
|
|
659
|
+
[APP_PAGE_USE_CACHE_MARKER]: true
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
/**
|
|
663
|
+
* Give page props at `index` without `searchParams` (a Response Store replay of
|
|
664
|
+
* args encoded by `toReplayablePageArgs`) a value that throws on
|
|
665
|
+
* access inside the cache scope, like Next.js's
|
|
666
|
+
* `makeErroringSearchParamsForUseCache`, instead of `undefined`.
|
|
667
|
+
*/
|
|
668
|
+
function withErroringPageSearchParams(args, index) {
|
|
669
|
+
const props = args[index];
|
|
670
|
+
if (!isPagePropsObject(props) || "searchParams" in props) return args;
|
|
671
|
+
return replaceArgument(args, index, {
|
|
672
|
+
...props,
|
|
673
|
+
searchParams: makeThenableParams({}, { observeParamAccess: () => throwIfInsideCacheScope("searchParams") })
|
|
674
|
+
});
|
|
675
|
+
}
|
|
597
676
|
function unwrapThenableObjectArray(values, options) {
|
|
598
|
-
return values.map((value, index) => unwrapThenableObjects(value, {
|
|
677
|
+
return values.map((value, index) => unwrapThenableObjects(value, {
|
|
678
|
+
omitAppPageSearchParamsAtRoot: index === options.pagePropsIndex,
|
|
679
|
+
omitMarkedAppPageSearchParams: options.omitMarkedAppPageSearchParams
|
|
680
|
+
}));
|
|
599
681
|
}
|
|
600
682
|
function stableStringify(value, seen) {
|
|
601
683
|
if (value === void 0) return "undefined";
|
|
@@ -622,4 +704,4 @@ function stableStringify(value, seen) {
|
|
|
622
704
|
return JSON.stringify(value);
|
|
623
705
|
}
|
|
624
706
|
//#endregion
|
|
625
|
-
export { NestedDynamicUseCacheError, buildUseCacheKey, cacheContextStorage, clearPrivateCache, getCacheContext, markAppPagePropsForUseCache, registerCachedFunction, replyToCacheKey, runWithPrivateCache };
|
|
707
|
+
export { NestedDynamicUseCacheError, buildUseCacheKey, cacheContextStorage, clearPrivateCache, getCacheContext, isThenableObject, isUseCacheFunction, markAppPagePropsForUseCache, registerCachedFunction, replyToCacheKey, runWithPrivateCache };
|
package/dist/shims/cache.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ExecutionContextLike, getRequestExecutionContext, runWithExecutionContext } from "./request-context.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { _recordUseCacheRootParamRead, _registerCacheContextAccessor, getRegisteredCacheContext } from "./internal/cache-context-accessor.js";
|
|
3
|
+
import { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, ActionRevalidationKind, CacheLifeConfig, CacheState, UnstableCacheObservation, UnstableCacheRevalidationMode, _captureRequestScopedCacheLifeAccessors, _consumeRequestScopedCacheLife, _drainPendingRevalidations, _hasPendingRevalidatedTag, _initRequestScopedCacheState, _markPendingRevalidatedTag, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _queuePendingRevalidation, _runWithCacheState, _setRequestScopedCacheLife, cacheLifeProfiles, getAndClearActionRevalidationKind, markActionRevalidation, recordUnstableCacheObservation, shouldServeStaleUnstableCacheEntry } from "./cache-request-state.js";
|
|
4
|
+
import { CacheControlMetadata, CacheHandler, CacheHandlerContext, CacheHandlerValue, CachedAppPageValue, CachedFetchValue, CachedImageValue, CachedPagesValue, CachedRedirectValue, CachedRouteValue, IncrementalCacheValue, MemoryCacheHandler, NoOpCacheHandler, configureMemoryCacheHandler, getCacheHandler, getDataCacheHandler, registerDataCacheHandler, registerLazyDataCacheHandler, setCacheHandler, setDataCacheHandler } from "./cache-handler.js";
|
|
4
5
|
//#region src/shims/cache.d.ts
|
|
5
6
|
/**
|
|
6
7
|
* Revalidate cached data associated with a specific cache tag.
|
|
@@ -15,7 +16,7 @@ import { CacheControlMetadata, CacheHandler, CacheHandlerContext, CacheHandlerVa
|
|
|
15
16
|
* @param tag - Cache tag to revalidate
|
|
16
17
|
* @param profile - cacheLife profile name (e.g. 'max', 'hours') or inline { expire: number }
|
|
17
18
|
*/
|
|
18
|
-
declare function revalidateTag(tag: string, profile?: string | {
|
|
19
|
+
export declare function revalidateTag(tag: string, profile?: string | {
|
|
19
20
|
expire?: number;
|
|
20
21
|
}): undefined;
|
|
21
22
|
/**
|
|
@@ -33,7 +34,7 @@ declare function revalidateTag(tag: string, profile?: string | {
|
|
|
33
34
|
* The `type` parameter is App Router only — Pages Router does not generate
|
|
34
35
|
* layout/page hierarchy tags, so only no-type invalidation applies there.
|
|
35
36
|
*/
|
|
36
|
-
declare function revalidatePath(path: string, type?: "page" | "layout"): undefined;
|
|
37
|
+
export declare function revalidatePath(path: string, type?: "page" | "layout"): undefined;
|
|
37
38
|
/**
|
|
38
39
|
* No-op shim for API compatibility.
|
|
39
40
|
*
|
|
@@ -42,7 +43,7 @@ declare function revalidatePath(path: string, type?: "page" | "layout"): undefin
|
|
|
42
43
|
* vinext reports the dynamic-only invalidation through the Server Action
|
|
43
44
|
* response header that the client router already understands.
|
|
44
45
|
*/
|
|
45
|
-
declare function refresh(): void;
|
|
46
|
+
export declare function refresh(): void;
|
|
46
47
|
/**
|
|
47
48
|
* Expire a cache tag immediately (Next.js 16).
|
|
48
49
|
*
|
|
@@ -56,7 +57,7 @@ declare function refresh(): void;
|
|
|
56
57
|
*
|
|
57
58
|
* @see https://nextjs.org/docs/app/api-reference/functions/updateTag
|
|
58
59
|
*/
|
|
59
|
-
declare function updateTag(tag: string): undefined;
|
|
60
|
+
export declare function updateTag(tag: string): undefined;
|
|
60
61
|
/**
|
|
61
62
|
* Opt out of static rendering and indicate a particular component should not be cached.
|
|
62
63
|
*
|
|
@@ -65,7 +66,7 @@ declare function updateTag(tag: string): undefined;
|
|
|
65
66
|
* have the same static/dynamic rendering split — all server rendering is on-demand.
|
|
66
67
|
* It's provided for API compatibility so apps importing it don't break.
|
|
67
68
|
*/
|
|
68
|
-
declare function unstable_noStore(): void;
|
|
69
|
+
export declare function unstable_noStore(): void;
|
|
69
70
|
/**
|
|
70
71
|
* Marks an IO boundary in server components by returning a resolved promise
|
|
71
72
|
* during requests and a hanging promise during prerendering.
|
|
@@ -89,13 +90,13 @@ declare function unstable_noStore(): void;
|
|
|
89
90
|
* When no work unit store is present (e.g. client-side, standalone script),
|
|
90
91
|
* resolves immediately — matching the browser/client implementation.
|
|
91
92
|
*/
|
|
92
|
-
declare function io(): Promise<void>;
|
|
93
|
+
export declare function io(): Promise<void>;
|
|
93
94
|
/**
|
|
94
95
|
* @deprecated Use `io` instead. Kept as a transitional alias since vinext
|
|
95
96
|
* shipped the unstable name longer than upstream Next.js (see #805). Will be
|
|
96
97
|
* removed in a future minor.
|
|
97
98
|
*/
|
|
98
|
-
declare function unstable_io(): Promise<void>;
|
|
99
|
+
export declare function unstable_io(): Promise<void>;
|
|
99
100
|
/**
|
|
100
101
|
* Set the cache lifetime for a "use cache" function.
|
|
101
102
|
*
|
|
@@ -108,7 +109,7 @@ declare function unstable_io(): Promise<void>;
|
|
|
108
109
|
*
|
|
109
110
|
* When called outside a "use cache" context, this is a validated no-op.
|
|
110
111
|
*/
|
|
111
|
-
declare function cacheLife(profile: string | CacheLifeConfig): void;
|
|
112
|
+
export declare function cacheLife(profile: string | CacheLifeConfig): void;
|
|
112
113
|
/**
|
|
113
114
|
* Tag a "use cache" function's cached result for on-demand revalidation.
|
|
114
115
|
*
|
|
@@ -120,15 +121,15 @@ declare function cacheLife(profile: string | CacheLifeConfig): void;
|
|
|
120
121
|
*
|
|
121
122
|
* When called outside a "use cache" context, this is a no-op.
|
|
122
123
|
*/
|
|
123
|
-
declare function cacheTag(...tags: string[]): void;
|
|
124
|
-
declare function unstable_cacheLife(profile: string | CacheLifeConfig): void;
|
|
125
|
-
declare function unstable_cacheTag(...tags: string[]): void;
|
|
124
|
+
export declare function cacheTag(...tags: string[]): void;
|
|
125
|
+
export declare function unstable_cacheLife(profile: string | CacheLifeConfig): void;
|
|
126
|
+
export declare function unstable_cacheTag(...tags: string[]): void;
|
|
126
127
|
/**
|
|
127
128
|
* Check if the current execution context is inside an unstable_cache() callback.
|
|
128
129
|
* Used by headers(), cookies(), and connection() to throw errors when
|
|
129
130
|
* dynamic request APIs are called inside a cache scope.
|
|
130
131
|
*/
|
|
131
|
-
declare function isInsideUnstableCacheScope(): boolean;
|
|
132
|
+
export declare function isInsideUnstableCacheScope(): boolean;
|
|
132
133
|
type UnstableCacheOptions = {
|
|
133
134
|
revalidate?: number | false;
|
|
134
135
|
tags?: string[];
|
|
@@ -139,6 +140,6 @@ type UnstableCacheOptions = {
|
|
|
139
140
|
* Returns a new function that caches results. The cache key is derived
|
|
140
141
|
* from keyParts + serialized arguments.
|
|
141
142
|
*/
|
|
142
|
-
declare function unstable_cache<T extends (...args: any[]) => Promise<any>>(fn: T, keyParts?: string[], options?: UnstableCacheOptions): T;
|
|
143
|
+
export declare function unstable_cache<T extends (...args: any[]) => Promise<any>>(fn: T, keyParts?: string[], options?: UnstableCacheOptions): T;
|
|
143
144
|
//#endregion
|
|
144
|
-
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, _captureRequestScopedCacheLifeAccessors, _consumeRequestScopedCacheLife, _drainPendingRevalidations, _hasPendingRevalidatedTag, _initRequestScopedCacheState, _markPendingRevalidatedTag, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _queuePendingRevalidation, _recordUseCacheRootParamRead, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife,
|
|
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, _captureRequestScopedCacheLifeAccessors, _consumeRequestScopedCacheLife, _drainPendingRevalidations, _hasPendingRevalidatedTag, _initRequestScopedCacheState, _markPendingRevalidatedTag, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _queuePendingRevalidation, _recordUseCacheRootParamRead, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife, cacheLifeProfiles, configureMemoryCacheHandler, getAndClearActionRevalidationKind, getCacheHandler, getDataCacheHandler, getRegisteredCacheContext, getRequestExecutionContext, markActionRevalidation, unstable_noStore as noStore, recordUnstableCacheObservation, registerDataCacheHandler, registerLazyDataCacheHandler, runWithExecutionContext, setCacheHandler, setDataCacheHandler, shouldServeStaleUnstableCacheEntry };
|
package/dist/shims/cache.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { getOrCreateAls } from "./internal/als-registry.js";
|
|
2
2
|
import { getRequestContext, isInsideUnifiedScope } from "./unified-request-context.js";
|
|
3
3
|
import { getRequestExecutionContext, runWithExecutionContext } from "./request-context.js";
|
|
4
|
-
import {
|
|
4
|
+
import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
5
5
|
import { getCdnCacheAdapter } from "./cdn-cache.js";
|
|
6
|
+
import { isStagedCacheabilityProbeActive } from "./cacheability-classification.js";
|
|
6
7
|
import { fnv1a64 } from "../utils/hash.js";
|
|
8
|
+
import { MemoryCacheHandler, NoOpCacheHandler, configureMemoryCacheHandler, getCacheHandler, getDataCacheHandler, registerDataCacheHandler, registerLazyDataCacheHandler, setCacheHandler, setDataCacheHandler } from "./cache-handler.js";
|
|
7
9
|
import { encodeCacheTag, encodeCacheTags } from "../utils/encode-cache-tag.js";
|
|
8
10
|
import { makeHangingPromise } from "./internal/make-hanging-promise.js";
|
|
9
|
-
import { getHeadersAccessPhase,
|
|
10
|
-
import {
|
|
11
|
+
import { getHeadersAccessPhase, markDynamicUsage } from "./internal/headers-state.js";
|
|
12
|
+
import { isDraftModeEnabled } from "./headers.js";
|
|
13
|
+
import { _recordUseCacheRootParamRead, _registerCacheContextAccessor, getRegisteredCacheContext } from "./internal/cache-context-accessor.js";
|
|
14
|
+
import { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, _captureRequestScopedCacheLifeAccessors, _consumeRequestScopedCacheLife, _drainPendingRevalidations, _hasPendingRevalidatedTag, _initRequestScopedCacheState, _markPendingRevalidatedTag, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _queuePendingRevalidation, _runWithCacheState, _setRequestScopedCacheLife, cacheLifeProfiles, getAndClearActionRevalidationKind, markActionRevalidation, recordUnstableCacheObservation, shouldServeStaleUnstableCacheEntry } from "./cache-request-state.js";
|
|
11
15
|
import { addCollectedRequestTags, getCurrentFetchSoftTags } from "./fetch-cache.js";
|
|
12
|
-
import { isStagedCacheabilityProbeActive } from "./cacheability-classification.js";
|
|
13
|
-
import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
14
16
|
//#region src/shims/cache.ts
|
|
15
17
|
/**
|
|
16
18
|
* next/cache shim
|
|
@@ -29,8 +31,7 @@ import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
|
29
31
|
* vinext({ cache: { data: kvDataAdapter({ binding: 'VINEXT_KV_CACHE' }) } })
|
|
30
32
|
*
|
|
31
33
|
* The imperative `setCacheHandler` / `setDataCacheHandler` setters are
|
|
32
|
-
* deprecated for consumers and retained
|
|
33
|
-
* target used by the generated cache-adapter module.
|
|
34
|
+
* deprecated for consumers and retained for backwards compatibility.
|
|
34
35
|
*/
|
|
35
36
|
const _g = globalThis;
|
|
36
37
|
function scheduleRevalidation(promise) {
|
|
@@ -104,7 +105,8 @@ function revalidatePath(path, type) {
|
|
|
104
105
|
}
|
|
105
106
|
markActionRevalidation(1);
|
|
106
107
|
const stem = path.endsWith("/") ? path.slice(0, -1) : path;
|
|
107
|
-
const
|
|
108
|
+
const tag = type ? `_N_T_${stem}/${type}` : `_N_T_${stem || "/"}`;
|
|
109
|
+
const encodedTag = encodeCacheTag(tag);
|
|
108
110
|
_markPendingRevalidatedTag(encodedTag);
|
|
109
111
|
return scheduleRevalidation(_invalidateEncodedTag(encodedTag));
|
|
110
112
|
}
|
|
@@ -418,12 +420,14 @@ function unstable_cache(fn, keyParts, options) {
|
|
|
418
420
|
});
|
|
419
421
|
if (existing?.value && existing.value.kind === "FETCH") {
|
|
420
422
|
const cached = tryDeserializeUnstableCacheResult(existing.value.data.body);
|
|
421
|
-
if (cached.ok)
|
|
422
|
-
if (
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
423
|
+
if (cached.ok) {
|
|
424
|
+
if (existing.cacheState === "stale") {
|
|
425
|
+
if (shouldServeStaleUnstableCacheEntry()) {
|
|
426
|
+
scheduleUnstableCacheBackgroundRevalidation(cacheKey, () => refreshUnstableCacheResult(fn, args, cacheKey, tags, revalidateSeconds));
|
|
427
|
+
return cached.value;
|
|
428
|
+
}
|
|
429
|
+
} else return cached.value;
|
|
430
|
+
}
|
|
427
431
|
}
|
|
428
432
|
}
|
|
429
433
|
if (isDraftMode) return await _unstableCacheAls.run(true, () => fn(...args));
|
|
@@ -432,4 +436,4 @@ function unstable_cache(fn, keyParts, options) {
|
|
|
432
436
|
return cachedFn;
|
|
433
437
|
}
|
|
434
438
|
//#endregion
|
|
435
|
-
export { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, MemoryCacheHandler, NoOpCacheHandler, _captureRequestScopedCacheLifeAccessors, _consumeRequestScopedCacheLife, _drainPendingRevalidations, _hasPendingRevalidatedTag, _initRequestScopedCacheState, _markPendingRevalidatedTag, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _queuePendingRevalidation, _recordUseCacheRootParamRead, _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 };
|
|
439
|
+
export { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, MemoryCacheHandler, NoOpCacheHandler, _captureRequestScopedCacheLifeAccessors, _consumeRequestScopedCacheLife, _drainPendingRevalidations, _hasPendingRevalidatedTag, _initRequestScopedCacheState, _markPendingRevalidatedTag, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _queuePendingRevalidation, _recordUseCacheRootParamRead, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife, cacheLife, cacheLifeProfiles, cacheTag, configureMemoryCacheHandler, getAndClearActionRevalidationKind, getCacheHandler, getDataCacheHandler, getRegisteredCacheContext, getRequestExecutionContext, io, isInsideUnstableCacheScope, markActionRevalidation, unstable_noStore as noStore, unstable_noStore, recordUnstableCacheObservation, refresh, registerDataCacheHandler, registerLazyDataCacheHandler, revalidatePath, revalidateTag, runWithExecutionContext, setCacheHandler, setDataCacheHandler, shouldServeStaleUnstableCacheEntry, unstable_cache, unstable_cacheLife, unstable_cacheTag, unstable_io, updateTag };
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
//#region src/shims/cacheability-classification.d.ts
|
|
2
|
-
declare const CACHEABILITY_REQUEST_STATE: unique symbol;
|
|
3
|
-
|
|
4
|
-
type CacheabilityPolicyHeader = (typeof CACHEABILITY_POLICY_HEADERS)[number];
|
|
5
|
-
type RouteCacheabilityOutcome = {
|
|
2
|
+
export declare const CACHEABILITY_REQUEST_STATE: unique symbol;
|
|
3
|
+
export type RouteCacheabilityOutcome = {
|
|
6
4
|
cacheControl?: string;
|
|
7
5
|
cacheable: boolean;
|
|
8
6
|
classificationFailure?: boolean;
|
|
9
7
|
dynamicUsage?: boolean;
|
|
10
8
|
reason?: string;
|
|
9
|
+
/** App pages: the render proved it left searchParams unread, so its response holds for every query. */
|
|
10
|
+
searchParamsUnread?: true;
|
|
11
|
+
/** A transient classification failure that may succeed on another bounded attempt. */
|
|
12
|
+
retryable?: true;
|
|
11
13
|
tags?: readonly string[];
|
|
12
14
|
};
|
|
13
|
-
type RouteCacheabilityState = {
|
|
15
|
+
export type RouteCacheabilityState = {
|
|
14
16
|
admission?: {
|
|
15
17
|
manifest?: unknown;
|
|
16
18
|
policy: "deny" | "manifest" | "runtime";
|
|
@@ -26,60 +28,79 @@ type RouteCacheabilityState = {
|
|
|
26
28
|
captureDeadlineAt: number;
|
|
27
29
|
complete?: (outcome: RouteCacheabilityOutcome) => void;
|
|
28
30
|
completion?: Promise<RouteCacheabilityOutcome>;
|
|
31
|
+
/** Canonical framework tags most recently handed to the active CDN adapter. */
|
|
32
|
+
cdnCacheTags?: readonly string[];
|
|
33
|
+
/** Private marker surrounding this render's injected client trace metadata. */
|
|
34
|
+
clientTraceMetadataMarker?: string;
|
|
29
35
|
completedResponseBody?: boolean;
|
|
36
|
+
/** Whether admission must translate a completed response through the active adapter. */
|
|
37
|
+
applyCompletedResponsePolicy?: boolean;
|
|
38
|
+
/** Core- or adapter-owned cache policy headers set by next.config, by lowercased name. */
|
|
39
|
+
configCdnCachePolicy?: Map<string, string>;
|
|
30
40
|
explicitConfigCachePolicy?: boolean;
|
|
31
41
|
explicitResponseCachePolicy?: boolean;
|
|
32
42
|
finalResponseVetoReason?: string;
|
|
33
43
|
forcedDynamicReason?: string;
|
|
34
44
|
/** A route-config decision that applies to every concrete identity for this pattern. */
|
|
35
45
|
patternDynamicReason?: string;
|
|
36
|
-
frameworkResponseCachePolicy?:
|
|
46
|
+
frameworkResponseCachePolicy?: Headers;
|
|
37
47
|
mode: "admit" | "identity" | "probe";
|
|
38
48
|
outcome?: RouteCacheabilityOutcome;
|
|
39
49
|
preserveResponseCachePolicy?: boolean;
|
|
50
|
+
/** Whether an API request carried credentials that must not enter shared caching. */
|
|
51
|
+
credentialedRequest?: boolean;
|
|
40
52
|
/** Cache-key behavior declared by the active CDN adapter. */
|
|
41
53
|
responseVary?: "verbatim";
|
|
54
|
+
/** Concrete pathname resolved by the trusted request stage before rendering. */
|
|
55
|
+
resolvedRoutePathname?: string;
|
|
42
56
|
probeBailout?: {
|
|
43
57
|
kind: "private-cache";
|
|
44
58
|
outcome: RouteCacheabilityOutcome;
|
|
45
59
|
};
|
|
46
60
|
route?: {
|
|
47
|
-
kind: "app-page" | "app-route" | "pages-page";
|
|
61
|
+
kind: "app-page" | "app-route" | "pages-api" | "pages-page";
|
|
48
62
|
pattern: string;
|
|
49
63
|
};
|
|
50
64
|
};
|
|
65
|
+
/** Retain canonical tags across completed-response admission and adapter header shaping. */
|
|
66
|
+
export declare function recordRouteCacheabilityCdnTags(tags: readonly string[] | undefined): void;
|
|
67
|
+
/** Retain the exact trace metadata marker for completed shared-response admission. */
|
|
68
|
+
export declare function recordRouteCacheabilityClientTraceMetadataMarker(marker: string): void;
|
|
51
69
|
/** Preserve the existing policy when hybrid routing hands the request to Pages Router. */
|
|
52
|
-
declare function preserveRouteCacheabilityResponsePolicy(): void;
|
|
53
|
-
declare function readRouteCacheabilityState(): RouteCacheabilityState | null;
|
|
54
|
-
declare function beginRouteCacheability(kind: "app-page" | "app-route" | "pages-page", pattern: string): boolean;
|
|
70
|
+
export declare function preserveRouteCacheabilityResponsePolicy(): void;
|
|
71
|
+
export declare function readRouteCacheabilityState(): RouteCacheabilityState | null;
|
|
72
|
+
export declare function beginRouteCacheability(kind: "app-page" | "app-route" | "pages-api" | "pages-page", pattern: string): boolean;
|
|
55
73
|
/** Prevent shared caching when request processing before route dispatch was request-specific. */
|
|
56
|
-
declare function markRouteCacheabilityDynamic(reason: string): void;
|
|
74
|
+
export declare function markRouteCacheabilityDynamic(reason: string): void;
|
|
57
75
|
/** Mark an effective route configuration that makes the whole pattern dynamic. */
|
|
58
|
-
declare function markRouteCacheabilityPatternDynamic(reason: string): void;
|
|
76
|
+
export declare function markRouteCacheabilityPatternDynamic(reason: string): void;
|
|
59
77
|
/** Read a request-specific routing veto without making the route globally dynamic. */
|
|
60
|
-
declare function getRouteCacheabilityDynamicReason(): string | null;
|
|
78
|
+
export declare function getRouteCacheabilityDynamicReason(): string | null;
|
|
61
79
|
/** Reuse the active request's bounded response-capture envelope when available. */
|
|
62
|
-
declare function getRouteCacheabilityCaptureOptions(): Pick<RouteCacheabilityState, "captureBudget" | "captureDeadlineAt"> | null;
|
|
80
|
+
export declare function getRouteCacheabilityCaptureOptions(): Pick<RouteCacheabilityState, "captureBudget" | "captureDeadlineAt"> | null;
|
|
63
81
|
/** Keep a completed response private without treating it as static-to-dynamic. */
|
|
64
|
-
declare function markRouteCacheabilityFinalResponseUncacheable(reason: string): void;
|
|
82
|
+
export declare function markRouteCacheabilityFinalResponseUncacheable(reason: string): void;
|
|
65
83
|
/** Record that next.config explicitly owns the final response cache policy. */
|
|
66
|
-
declare function markRouteCacheabilityExplicitConfigPolicy(): void;
|
|
67
|
-
/** Record a
|
|
68
|
-
declare function
|
|
84
|
+
export declare function markRouteCacheabilityExplicitConfigPolicy(): void;
|
|
85
|
+
/** Record a cache policy header, not just Vary, that a next.config rule set. */
|
|
86
|
+
export declare function markRouteCacheabilityConfigCdnCachePolicy(name: string, value: string): void;
|
|
87
|
+
/** Record a next.config cache policy header with the value a response carries. */
|
|
88
|
+
export declare function recordConfigCdnCachePolicyHeader(state: RouteCacheabilityState, name: string, value: string): void;
|
|
89
|
+
/** Record an explicit cache policy supplied by the Route Handler itself. */
|
|
90
|
+
export declare function markRouteCacheabilityExplicitResponsePolicy(): void;
|
|
69
91
|
/** Record that the response body reached clean EOF and is now a replay stream. */
|
|
70
|
-
declare function markRouteCacheabilityResponseBodyComplete(): void;
|
|
92
|
+
export declare function markRouteCacheabilityResponseBodyComplete(): void;
|
|
71
93
|
/** Record framework-owned policy so admission can identify policy added later. */
|
|
72
|
-
declare function captureRouteCacheabilityResponsePolicy(headers: Headers): void;
|
|
94
|
+
export declare function captureRouteCacheabilityResponsePolicy(headers: Headers): void;
|
|
73
95
|
/** True only for an authenticated probe that must render the matched App Page. */
|
|
74
|
-
declare function isRouteCacheabilityProbe(): boolean;
|
|
96
|
+
export declare function isRouteCacheabilityProbe(): boolean;
|
|
75
97
|
/** True when the outer Worker must decide cache admission after clean EOF. */
|
|
76
|
-
declare function isRouteCacheabilityEvaluation(): boolean;
|
|
98
|
+
export declare function isRouteCacheabilityEvaluation(): boolean;
|
|
77
99
|
/** True for the authenticated routing pass that must not evaluate user components. */
|
|
78
|
-
declare function isRouteCacheabilityIdentityProbe(): boolean;
|
|
100
|
+
export declare function isRouteCacheabilityIdentityProbe(): boolean;
|
|
79
101
|
/** True for every side-effect-free staged Worker observation request. */
|
|
80
|
-
declare function isStagedCacheabilityProbeActive(): boolean;
|
|
81
|
-
declare function deferRouteCacheability(): ((outcome: RouteCacheabilityOutcome) => void) | null;
|
|
82
|
-
declare function recordRouteCacheability(outcome: RouteCacheabilityOutcome): void;
|
|
83
|
-
declare function recordRouteCacheabilityProbeBailout(kind: "private-cache", outcome: RouteCacheabilityOutcome): void;
|
|
84
|
-
//#endregion
|
|
85
|
-
export { CACHEABILITY_POLICY_HEADERS, CACHEABILITY_REQUEST_STATE, RouteCacheabilityOutcome, RouteCacheabilityState, beginRouteCacheability, captureRouteCacheabilityResponsePolicy, deferRouteCacheability, getRouteCacheabilityCaptureOptions, getRouteCacheabilityDynamicReason, isRouteCacheabilityEvaluation, isRouteCacheabilityIdentityProbe, isRouteCacheabilityProbe, isStagedCacheabilityProbeActive, markRouteCacheabilityDynamic, markRouteCacheabilityExplicitConfigPolicy, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityFinalResponseUncacheable, markRouteCacheabilityPatternDynamic, markRouteCacheabilityResponseBodyComplete, preserveRouteCacheabilityResponsePolicy, readRouteCacheabilityState, recordRouteCacheability, recordRouteCacheabilityProbeBailout };
|
|
102
|
+
export declare function isStagedCacheabilityProbeActive(): boolean;
|
|
103
|
+
export declare function deferRouteCacheability(): ((outcome: RouteCacheabilityOutcome) => void) | null;
|
|
104
|
+
export declare function recordRouteCacheability(outcome: RouteCacheabilityOutcome): void;
|
|
105
|
+
export declare function recordRouteCacheabilityProbeBailout(kind: "private-cache", outcome: RouteCacheabilityOutcome): void;
|
|
106
|
+
//#endregion
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { getRequestExecutionContext } from "./request-context.js";
|
|
2
2
|
//#region src/shims/cacheability-classification.ts
|
|
3
3
|
const CACHEABILITY_REQUEST_STATE = Symbol.for("vinext.cacheabilityRequestState");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
/** Retain canonical tags across completed-response admission and adapter header shaping. */
|
|
5
|
+
function recordRouteCacheabilityCdnTags(tags) {
|
|
6
|
+
if (tags === void 0) return;
|
|
7
|
+
const state = readRouteCacheabilityState();
|
|
8
|
+
if (state?.mode !== "admit") return;
|
|
9
|
+
state.cdnCacheTags = [...tags];
|
|
10
|
+
}
|
|
11
|
+
/** Retain the exact trace metadata marker for completed shared-response admission. */
|
|
12
|
+
function recordRouteCacheabilityClientTraceMetadataMarker(marker) {
|
|
13
|
+
const state = readRouteCacheabilityState();
|
|
14
|
+
if (state?.mode !== "admit") return;
|
|
15
|
+
state.clientTraceMetadataMarker = marker;
|
|
16
|
+
}
|
|
9
17
|
/** Preserve the existing policy when hybrid routing hands the request to Pages Router. */
|
|
10
18
|
function preserveRouteCacheabilityResponsePolicy() {
|
|
11
19
|
const state = readRouteCacheabilityState();
|
|
@@ -64,10 +72,22 @@ function markRouteCacheabilityExplicitConfigPolicy() {
|
|
|
64
72
|
if (!state) return;
|
|
65
73
|
state.explicitConfigCachePolicy = true;
|
|
66
74
|
}
|
|
67
|
-
/** Record a
|
|
75
|
+
/** Record a cache policy header, not just Vary, that a next.config rule set. */
|
|
76
|
+
function markRouteCacheabilityConfigCdnCachePolicy(name, value) {
|
|
77
|
+
const state = readRouteCacheabilityState();
|
|
78
|
+
if (!state) return;
|
|
79
|
+
recordConfigCdnCachePolicyHeader(state, name, value);
|
|
80
|
+
}
|
|
81
|
+
/** Record a next.config cache policy header with the value a response carries. */
|
|
82
|
+
function recordConfigCdnCachePolicyHeader(state, name, value) {
|
|
83
|
+
state.explicitConfigCachePolicy = true;
|
|
84
|
+
const applied = new Headers([[name, value]]).get(name) ?? value;
|
|
85
|
+
(state.configCdnCachePolicy ??= /* @__PURE__ */ new Map()).set(name.toLowerCase(), applied);
|
|
86
|
+
}
|
|
87
|
+
/** Record an explicit cache policy supplied by the Route Handler itself. */
|
|
68
88
|
function markRouteCacheabilityExplicitResponsePolicy() {
|
|
69
89
|
const state = readRouteCacheabilityState();
|
|
70
|
-
if (!state
|
|
90
|
+
if (!state) return;
|
|
71
91
|
state.explicitResponseCachePolicy = true;
|
|
72
92
|
}
|
|
73
93
|
/** Record that the response body reached clean EOF and is now a replay stream. */
|
|
@@ -80,12 +100,7 @@ function markRouteCacheabilityResponseBodyComplete() {
|
|
|
80
100
|
function captureRouteCacheabilityResponsePolicy(headers) {
|
|
81
101
|
const state = readRouteCacheabilityState();
|
|
82
102
|
if (!state || state.mode !== "admit") return;
|
|
83
|
-
|
|
84
|
-
for (const name of CACHEABILITY_POLICY_HEADERS) {
|
|
85
|
-
const value = headers.get(name);
|
|
86
|
-
if (value !== null) policy[name] = value;
|
|
87
|
-
}
|
|
88
|
-
state.frameworkResponseCachePolicy = policy;
|
|
103
|
+
state.frameworkResponseCachePolicy = new Headers(headers);
|
|
89
104
|
}
|
|
90
105
|
/** True only for an authenticated probe that must render the matched App Page. */
|
|
91
106
|
function isRouteCacheabilityProbe() {
|
|
@@ -143,4 +158,4 @@ function recordRouteCacheabilityProbeBailout(kind, outcome) {
|
|
|
143
158
|
state.complete?.(outcome);
|
|
144
159
|
}
|
|
145
160
|
//#endregion
|
|
146
|
-
export {
|
|
161
|
+
export { CACHEABILITY_REQUEST_STATE, beginRouteCacheability, captureRouteCacheabilityResponsePolicy, deferRouteCacheability, getRouteCacheabilityCaptureOptions, getRouteCacheabilityDynamicReason, isRouteCacheabilityEvaluation, isRouteCacheabilityIdentityProbe, isRouteCacheabilityProbe, isStagedCacheabilityProbeActive, markRouteCacheabilityConfigCdnCachePolicy, markRouteCacheabilityDynamic, markRouteCacheabilityExplicitConfigPolicy, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityFinalResponseUncacheable, markRouteCacheabilityPatternDynamic, markRouteCacheabilityResponseBodyComplete, preserveRouteCacheabilityResponsePolicy, readRouteCacheabilityState, recordConfigCdnCachePolicyHeader, recordRouteCacheability, recordRouteCacheabilityCdnTags, recordRouteCacheabilityClientTraceMetadataMarker, recordRouteCacheabilityProbeBailout };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CdnCacheAdapter } from "./cdn-cache.js";
|
|
2
|
+
//#region src/shims/cdn-cache-state.d.ts
|
|
3
|
+
/** Register an adapter without loading the origin cache implementation. */
|
|
4
|
+
export declare function setCdnCacheAdapter(adapter: CdnCacheAdapter): void;
|
|
5
|
+
/**
|
|
6
|
+
* Lazily keep the first declaratively configured adapter shared across
|
|
7
|
+
* duplicated stage modules. Failed factories remain retryable so a later
|
|
8
|
+
* entrypoint with the required runtime bindings can register successfully.
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerCdnCacheAdapter(factory: () => CdnCacheAdapter): void;
|
|
11
|
+
/** Read only an explicitly registered adapter; defaults belong to cdn-cache. */
|
|
12
|
+
export declare function getExplicitCdnCacheAdapter(): CdnCacheAdapter | null;
|
|
13
|
+
//#endregion
|