vinext 1.0.0-beta.9 → 1.0.0
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 +25 -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 +1 -13
- package/dist/build/precompress.d.ts +2 -3
- 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 +273 -97
- 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 +65 -15
- package/dist/build/prerender.js +139 -43
- 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 +25 -16
- package/dist/build/server-entry.d.ts +4 -0
- package/dist/build/server-entry.js +28 -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/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 +21 -17
- package/dist/client/navigation-runtime.js +2 -1
- 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 +2 -1
- 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 +502 -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 +711 -189
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +710 -102
- 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 +123 -41
- 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/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 +3 -4
- package/dist/plugins/ignore-dynamic-requests.js +60 -89
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +31 -43
- 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 +3 -4
- package/dist/plugins/og-assets.d.ts +4 -5
- package/dist/plugins/og-assets.js +32 -13
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +260 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +32 -44
- 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 +2 -3
- package/dist/plugins/require-context.js +13 -21
- 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/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +5 -6
- package/dist/plugins/strip-server-exports.js +1 -1
- 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 +3 -4
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +6 -7
- package/dist/plugins/typeof-window.js +30 -31
- 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 +19 -19
- package/dist/routing/app-route-graph.js +3 -2
- 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 +3 -4
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- 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 +87 -34
- 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 +14 -1
- 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 +8 -4
- 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 +6 -2
- package/dist/server/app-browser-stream.d.ts +4 -5
- 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 +26 -27
- package/dist/server/app-history-state.js +19 -11
- 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 -5
- 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 -25
- 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 +42 -6
- 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 +49 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +17 -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-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 +115 -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 +2 -3
- package/dist/server/app-route-handler-cache.js +46 -34
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +68 -54
- package/dist/server/app-route-handler-execution.d.ts +17 -13
- package/dist/server/app-route-handler-execution.js +69 -18
- 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-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +2 -0
- 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 +2 -0
- package/dist/server/app-router-entry.js +28 -8
- 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 +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +31 -6
- package/dist/server/app-rsc-handler.js +411 -61
- 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 +2 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +6 -6
- 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 +16 -12
- 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 +61 -14
- 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 +33 -7
- 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 +71 -5
- 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 +159 -57
- 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 +130 -61
- 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 +54 -61
- package/dist/server/headers.js +18 -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-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 +28 -27
- package/dist/server/isr-cache.js +18 -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-cache-policy.d.ts +2 -3
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +68 -2
- 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 +20 -7
- package/dist/server/pages-asset-tags.d.ts +6 -6
- package/dist/server/pages-asset-tags.js +37 -2
- 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 +11 -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 +18 -19
- package/dist/server/pages-page-data.js +11 -10
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +77 -39
- 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 +49 -31
- 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 +14 -12
- package/dist/server/pages-request-pipeline.js +60 -30
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +314 -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 +11 -11
- package/dist/server/prerender-manifest.js +6 -3
- 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 +124 -31
- 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 +2 -3
- package/dist/server/worker-revalidation-context.js +5 -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 +17 -0
- package/dist/server/workers-tracing.js +27 -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 +28 -29
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +107 -27
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +15 -13
- package/dist/shims/cacheability-classification.d.ts +49 -28
- package/dist/shims/cacheability-classification.js +27 -12
- 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 +50 -21
- package/dist/shims/cdn-cache.js +15 -38
- 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 +4 -4
- package/dist/shims/error.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +42 -17
- 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 +67 -33
- package/dist/shims/headers.js +93 -6
- 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/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/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 +24 -16
- 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/root-params.d.ts +14 -15
- 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 +14 -28
- 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 +34 -31
- 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 +3 -4
- 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 +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +47 -6
package/dist/shims/cache.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
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
11
|
import { getHeadersAccessPhase, isDraftModeEnabled, markDynamicUsage } from "./headers.js";
|
|
10
12
|
import { ACTION_DID_REVALIDATE_DYNAMIC_ONLY, ACTION_DID_REVALIDATE_STATIC_AND_DYNAMIC, _captureRequestScopedCacheLifeAccessors, _consumeRequestScopedCacheLife, _drainPendingRevalidations, _hasPendingRevalidatedTag, _initRequestScopedCacheState, _markPendingRevalidatedTag, _peekRequestScopedCacheLife, _peekUnstableCacheObservations, _queuePendingRevalidation, _recordUseCacheRootParamRead, _registerCacheContextAccessor, _runWithCacheState, _setRequestScopedCacheLife, cacheLifeProfiles, getAndClearActionRevalidationKind, getRegisteredCacheContext, markActionRevalidation, recordUnstableCacheObservation, shouldServeStaleUnstableCacheEntry } from "./cache-request-state.js";
|
|
11
13
|
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
14
|
//#region src/shims/cache.ts
|
|
15
15
|
/**
|
|
16
16
|
* next/cache shim
|
|
@@ -29,8 +29,7 @@ import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
|
29
29
|
* vinext({ cache: { data: kvDataAdapter({ binding: 'VINEXT_KV_CACHE' }) } })
|
|
30
30
|
*
|
|
31
31
|
* The imperative `setCacheHandler` / `setDataCacheHandler` setters are
|
|
32
|
-
* deprecated for consumers and retained
|
|
33
|
-
* target used by the generated cache-adapter module.
|
|
32
|
+
* deprecated for consumers and retained for backwards compatibility.
|
|
34
33
|
*/
|
|
35
34
|
const _g = globalThis;
|
|
36
35
|
function scheduleRevalidation(promise) {
|
|
@@ -104,7 +103,8 @@ function revalidatePath(path, type) {
|
|
|
104
103
|
}
|
|
105
104
|
markActionRevalidation(1);
|
|
106
105
|
const stem = path.endsWith("/") ? path.slice(0, -1) : path;
|
|
107
|
-
const
|
|
106
|
+
const tag = type ? `_N_T_${stem}/${type}` : `_N_T_${stem || "/"}`;
|
|
107
|
+
const encodedTag = encodeCacheTag(tag);
|
|
108
108
|
_markPendingRevalidatedTag(encodedTag);
|
|
109
109
|
return scheduleRevalidation(_invalidateEncodedTag(encodedTag));
|
|
110
110
|
}
|
|
@@ -418,12 +418,14 @@ function unstable_cache(fn, keyParts, options) {
|
|
|
418
418
|
});
|
|
419
419
|
if (existing?.value && existing.value.kind === "FETCH") {
|
|
420
420
|
const cached = tryDeserializeUnstableCacheResult(existing.value.data.body);
|
|
421
|
-
if (cached.ok)
|
|
422
|
-
if (
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
421
|
+
if (cached.ok) {
|
|
422
|
+
if (existing.cacheState === "stale") {
|
|
423
|
+
if (shouldServeStaleUnstableCacheEntry()) {
|
|
424
|
+
scheduleUnstableCacheBackgroundRevalidation(cacheKey, () => refreshUnstableCacheResult(fn, args, cacheKey, tags, revalidateSeconds));
|
|
425
|
+
return cached.value;
|
|
426
|
+
}
|
|
427
|
+
} else return cached.value;
|
|
428
|
+
}
|
|
427
429
|
}
|
|
428
430
|
}
|
|
429
431
|
if (isDraftMode) return await _unstableCacheAls.run(true, () => fn(...args));
|
|
@@ -432,4 +434,4 @@ function unstable_cache(fn, keyParts, options) {
|
|
|
432
434
|
return cachedFn;
|
|
433
435
|
}
|
|
434
436
|
//#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 };
|
|
437
|
+
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;
|
|
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;
|
|
67
89
|
/** Record a public cache policy supplied by the Route Handler itself. */
|
|
68
|
-
declare function markRouteCacheabilityExplicitResponsePolicy(): void;
|
|
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,6 +72,18 @@ function markRouteCacheabilityExplicitConfigPolicy() {
|
|
|
64
72
|
if (!state) return;
|
|
65
73
|
state.explicitConfigCachePolicy = true;
|
|
66
74
|
}
|
|
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
|
+
}
|
|
67
87
|
/** Record a public cache policy supplied by the Route Handler itself. */
|
|
68
88
|
function markRouteCacheabilityExplicitResponsePolicy() {
|
|
69
89
|
const state = readRouteCacheabilityState();
|
|
@@ -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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/shims/cdn-cache-state.ts
|
|
2
|
+
const CDN_CACHE_ADAPTER_KEY = Symbol.for("vinext.cdnCacheAdapter");
|
|
3
|
+
const globals = globalThis;
|
|
4
|
+
/** Register an adapter without loading the origin cache implementation. */
|
|
5
|
+
function setCdnCacheAdapter(adapter) {
|
|
6
|
+
globals[CDN_CACHE_ADAPTER_KEY] = adapter;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Lazily keep the first declaratively configured adapter shared across
|
|
10
|
+
* duplicated stage modules. Failed factories remain retryable so a later
|
|
11
|
+
* entrypoint with the required runtime bindings can register successfully.
|
|
12
|
+
*/
|
|
13
|
+
function registerCdnCacheAdapter(factory) {
|
|
14
|
+
if (globals[CDN_CACHE_ADAPTER_KEY] !== void 0) return;
|
|
15
|
+
const adapter = factory();
|
|
16
|
+
if (globals[CDN_CACHE_ADAPTER_KEY] === void 0) globals[CDN_CACHE_ADAPTER_KEY] = adapter;
|
|
17
|
+
}
|
|
18
|
+
/** Read only an explicitly registered adapter; defaults belong to cdn-cache. */
|
|
19
|
+
function getExplicitCdnCacheAdapter() {
|
|
20
|
+
return globals[CDN_CACHE_ADAPTER_KEY] ?? null;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { getExplicitCdnCacheAdapter, registerCdnCacheAdapter, setCdnCacheAdapter };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { CacheHandlerValue, IncrementalCacheValue } from "./cache-handler.js";
|
|
2
|
+
import { setCdnCacheAdapter } from "./cdn-cache-state.js";
|
|
2
3
|
//#region src/shims/cdn-cache.d.ts
|
|
3
4
|
/** A map of response header name -> value the adapter wants applied or removed. */
|
|
4
|
-
type CdnResponseHeaders = Record<string, string | null>;
|
|
5
|
-
type CdnCacheableHeaderInput = {
|
|
5
|
+
export type CdnResponseHeaders = Record<string, string | null>;
|
|
6
|
+
export type CdnCacheableHeaderInput = {
|
|
6
7
|
/**
|
|
7
8
|
* The cacheable `Cache-Control` value the framework computed for shared
|
|
8
9
|
* caches (e.g. `s-maxage=60, stale-while-revalidate`). May be an empty string
|
|
@@ -28,18 +29,38 @@ type CdnCacheableHeaderInput = {
|
|
|
28
29
|
*/
|
|
29
30
|
tags?: readonly string[];
|
|
30
31
|
};
|
|
32
|
+
export type CdnResponsePolicy = {
|
|
33
|
+
/** Whether a provider-specific response header controls shared caching. */
|
|
34
|
+
isHeader(name: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Read the effective shared-cache policy from a response. The returned value
|
|
37
|
+
* uses Cache-Control syntax so core can apply the framework's cacheability
|
|
38
|
+
* rules without knowing which provider header carried it.
|
|
39
|
+
*/
|
|
40
|
+
readCacheControl(headers: Headers): string | null;
|
|
41
|
+
/**
|
|
42
|
+
* Name the response header `readCacheControl` interpreted, or `null` when
|
|
43
|
+
* none did. Core uses it to tell which stage owns the effective policy;
|
|
44
|
+
* without it, core cannot attribute that policy to next.config.
|
|
45
|
+
*/
|
|
46
|
+
readCacheControlHeaderName?(headers: Headers): string | null;
|
|
47
|
+
/** Whether provider policy explicitly opts out of storage. */
|
|
48
|
+
hasExplicitNonCacheablePolicy(headers: Headers, baseline?: Headers): boolean;
|
|
49
|
+
};
|
|
31
50
|
/** Whether a Cache-Control value contains an exact non-cacheable directive. */
|
|
32
|
-
declare function isNonCacheableCacheControl(cacheControl: string): boolean;
|
|
51
|
+
export declare function isNonCacheableCacheControl(cacheControl: string): boolean;
|
|
33
52
|
/**
|
|
34
53
|
* The serving strategy for page-level ISR. Implement this to delegate
|
|
35
54
|
* page/route/image caching to a CDN edge instead of the origin store.
|
|
36
55
|
*/
|
|
37
|
-
type CdnCacheAdapter = {
|
|
56
|
+
export type CdnCacheAdapter = {
|
|
38
57
|
/**
|
|
39
58
|
* The shared cache selects response variants using every request header
|
|
40
59
|
* named by `Vary`, comparing values verbatim.
|
|
41
60
|
*/
|
|
42
61
|
readonly responseVary?: "verbatim";
|
|
62
|
+
/** Provider-specific response-policy interpretation, when the adapter has one. */
|
|
63
|
+
readonly responsePolicy?: CdnResponsePolicy;
|
|
43
64
|
/**
|
|
44
65
|
* Fresh App Page responses must reach clean EOF before this adapter may emit
|
|
45
66
|
* shared-cache headers. Used by edge adapters whose cache sits in front of
|
|
@@ -47,6 +68,21 @@ type CdnCacheAdapter = {
|
|
|
47
68
|
* the completed artifact.
|
|
48
69
|
*/
|
|
49
70
|
readonly requiresCompletedResponseAdmission?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* This adapter's response-stage transport keys shared App page dispatches by
|
|
73
|
+
* `VinextResponseStageDispatchOptions.cacheIdentity` when core supplies one.
|
|
74
|
+
* Core supplies it only when completed-response admission is also required,
|
|
75
|
+
* because that admission is what makes a query-free identity safe.
|
|
76
|
+
*/
|
|
77
|
+
readonly responseStageCacheIdentity?: "query-free";
|
|
78
|
+
/**
|
|
79
|
+
* Optionally return a foreground page response while completed-response
|
|
80
|
+
* admission continues on an independent body branch. Returning `null` keeps
|
|
81
|
+
* the normal blocking admission path. API responses are never passed here.
|
|
82
|
+
*/
|
|
83
|
+
deferCompletedPageResponseAdmission?(response: Response, complete: (response: Response) => Promise<Response>): Response | null;
|
|
84
|
+
/** Capture the full-route RSC side stream while admitting a completed HTML response. */
|
|
85
|
+
captureAppPageRscData?(rscData: Promise<ArrayBuffer>): void;
|
|
50
86
|
/**
|
|
51
87
|
* Validate provider-specific request routing before the application handles
|
|
52
88
|
* the request. Returning a response short-circuits the request pipeline;
|
|
@@ -85,14 +121,6 @@ type CdnCacheAdapter = {
|
|
|
85
121
|
* paths that do not pass through cache-policy finalization.
|
|
86
122
|
*/
|
|
87
123
|
buildResponseIdentityHeaders?(): CdnResponseHeaders;
|
|
88
|
-
/**
|
|
89
|
-
* Whether existing response headers explicitly opt out of storage. Adapters
|
|
90
|
-
* that split browser and provider cache policy should implement this so they
|
|
91
|
-
* can interpret the provider-specific headers they own.
|
|
92
|
-
*
|
|
93
|
-
* When omitted, core inspects only the generic `Cache-Control` header.
|
|
94
|
-
*/
|
|
95
|
-
hasExplicitNonCacheableResponsePolicy?(headers: Headers): boolean;
|
|
96
124
|
/**
|
|
97
125
|
* Whether the **origin** runs in-process background regeneration when a stale
|
|
98
126
|
* entry is served. Edge adapters set this to `false` because the CDN
|
|
@@ -118,11 +146,14 @@ type CdnCacheAdapter = {
|
|
|
118
146
|
* response headers alone. Deployments where provider headers carry cache
|
|
119
147
|
* semantics must configure the adapter that owns those headers.
|
|
120
148
|
*/
|
|
121
|
-
declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
149
|
+
export declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
150
|
+
private readonly buildIdentity?;
|
|
122
151
|
readonly ownsBackgroundRevalidation = true;
|
|
152
|
+
constructor(buildIdentity?: string | undefined);
|
|
123
153
|
get(key: string, ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
|
|
124
154
|
set(key: string, data: IncrementalCacheValue | null, ctx?: Record<string, unknown>): Promise<void>;
|
|
125
155
|
buildResponseHeaders(input: CdnCacheableHeaderInput): CdnResponseHeaders;
|
|
156
|
+
buildResponseIdentityHeaders(): CdnResponseHeaders;
|
|
126
157
|
revalidateTag(_tags: string | string[], _durations?: {
|
|
127
158
|
expire?: number;
|
|
128
159
|
}): Promise<void>;
|
|
@@ -138,23 +169,21 @@ declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
|
138
169
|
*
|
|
139
170
|
* ```ts
|
|
140
171
|
* import { vinext } from "vinext";
|
|
141
|
-
* import {
|
|
172
|
+
* import { workersCacheCdnAdapter } from "@vinext/cloudflare/cache/workers-cache-cdn-adapter";
|
|
142
173
|
*
|
|
143
174
|
* export default defineConfig({
|
|
144
|
-
* plugins: [vinext({ cache: { cdn:
|
|
175
|
+
* plugins: [vinext({ cache: { cdn: workersCacheCdnAdapter() } })],
|
|
145
176
|
* });
|
|
146
177
|
* ```
|
|
147
178
|
*
|
|
148
179
|
* The plugin registers the adapter across every runtime/router entry, so you
|
|
149
|
-
* don't have to call this from a worker entry. This setter remains
|
|
150
|
-
*
|
|
151
|
-
* recommended consumer API.
|
|
180
|
+
* don't have to call this from a worker entry. This setter remains for
|
|
181
|
+
* backwards compatibility, but is not the recommended consumer API.
|
|
152
182
|
*/
|
|
153
|
-
declare function setCdnCacheAdapter(adapter: CdnCacheAdapter): void;
|
|
154
183
|
/**
|
|
155
184
|
* Get the active CDN cache adapter. An explicitly configured adapter wins;
|
|
156
185
|
* otherwise the origin-managed {@link DefaultCdnCacheAdapter} is used.
|
|
157
186
|
*/
|
|
158
|
-
declare function getCdnCacheAdapter(): CdnCacheAdapter;
|
|
187
|
+
export declare function getCdnCacheAdapter(): CdnCacheAdapter;
|
|
159
188
|
//#endregion
|
|
160
|
-
export {
|
|
189
|
+
export { setCdnCacheAdapter };
|
package/dist/shims/cdn-cache.js
CHANGED
|
@@ -1,31 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getExplicitCdnCacheAdapter, setCdnCacheAdapter } from "./cdn-cache-state.js";
|
|
2
2
|
//#region src/shims/cdn-cache.ts
|
|
3
|
-
/**
|
|
4
|
-
* CDN cache adapter — owns the *page-level ISR serving strategy*.
|
|
5
|
-
*
|
|
6
|
-
* This is deliberately distinct from the data cache handler (see `./cache.ts`):
|
|
7
|
-
*
|
|
8
|
-
* - The **data cache** stores cached data (fetch, `"use cache"`,
|
|
9
|
-
* `unstable_cache`, route-handler data). It is a pure key/value store.
|
|
10
|
-
*
|
|
11
|
-
* - The **CDN cache adapter** decides *how page-level ISR is served*: where the
|
|
12
|
-
* rendered page/route/image artifacts live, what cache headers the response
|
|
13
|
-
* carries, whether the origin runs background regeneration, and how
|
|
14
|
-
* invalidation propagates to a CDN edge.
|
|
15
|
-
*
|
|
16
|
-
* Two strategies sit behind one interface:
|
|
17
|
-
*
|
|
18
|
-
* | Concern | DefaultCdnCacheAdapter (origin-managed) | Edge adapter (CDN-managed) |
|
|
19
|
-
* | ------------------ | --------------------------------------- | ------------------------------------------- |
|
|
20
|
-
* | Serve from store? | Yes — reads the data cache | No — origin renders fresh, edge caches |
|
|
21
|
-
* | Background regen | In-process via `waitUntil` | Edge re-requests origin |
|
|
22
|
-
* | Response headers | Framework cache policy | Provider-specific cache policy |
|
|
23
|
-
* | Invalidation | (data cache handles tag invalidation) | purge / revalidate via request context |
|
|
24
|
-
*
|
|
25
|
-
* The default adapter is a thin shim over the data cache + the framework's
|
|
26
|
-
* existing header logic, so default behavior is byte-for-byte identical to the
|
|
27
|
-
* pre-split implementation.
|
|
28
|
-
*/
|
|
29
3
|
/** Whether a Cache-Control value contains an exact non-cacheable directive. */
|
|
30
4
|
function isNonCacheableCacheControl(cacheControl) {
|
|
31
5
|
let start = 0;
|
|
@@ -59,21 +33,28 @@ const PENDING_DYNAMIC_CACHE_CONTROL = "no-store, must-revalidate";
|
|
|
59
33
|
* semantics must configure the adapter that owns those headers.
|
|
60
34
|
*/
|
|
61
35
|
var DefaultCdnCacheAdapter = class {
|
|
36
|
+
buildIdentity;
|
|
62
37
|
ownsBackgroundRevalidation = true;
|
|
38
|
+
constructor(buildIdentity) {
|
|
39
|
+
this.buildIdentity = buildIdentity;
|
|
40
|
+
}
|
|
63
41
|
async get(key, ctx) {
|
|
42
|
+
const { getDataCacheHandler } = await import("./cache-handler.js");
|
|
64
43
|
return getDataCacheHandler().get(key, ctx);
|
|
65
44
|
}
|
|
66
45
|
async set(key, data, ctx) {
|
|
46
|
+
const { getDataCacheHandler } = await import("./cache-handler.js");
|
|
67
47
|
await getDataCacheHandler().set(key, data, ctx);
|
|
68
48
|
}
|
|
69
49
|
buildResponseHeaders(input) {
|
|
70
50
|
if (input.pendingDynamicCheck) return { "Cache-Control": PENDING_DYNAMIC_CACHE_CONTROL };
|
|
71
51
|
return { "Cache-Control": input.cacheControl };
|
|
72
52
|
}
|
|
53
|
+
buildResponseIdentityHeaders() {
|
|
54
|
+
return this.buildIdentity ? { "X-Vinext-Build-Id": this.buildIdentity } : {};
|
|
55
|
+
}
|
|
73
56
|
async revalidateTag(_tags, _durations) {}
|
|
74
57
|
};
|
|
75
|
-
const _CDN_KEY = Symbol.for("vinext.cdnCacheAdapter");
|
|
76
|
-
const _gCdn = globalThis;
|
|
77
58
|
let _defaultAdapter = null;
|
|
78
59
|
/**
|
|
79
60
|
* Set a custom CDN cache adapter to delegate page-level ISR to a CDN edge. An
|
|
@@ -86,27 +67,23 @@ let _defaultAdapter = null;
|
|
|
86
67
|
*
|
|
87
68
|
* ```ts
|
|
88
69
|
* import { vinext } from "vinext";
|
|
89
|
-
* import {
|
|
70
|
+
* import { workersCacheCdnAdapter } from "@vinext/cloudflare/cache/workers-cache-cdn-adapter";
|
|
90
71
|
*
|
|
91
72
|
* export default defineConfig({
|
|
92
|
-
* plugins: [vinext({ cache: { cdn:
|
|
73
|
+
* plugins: [vinext({ cache: { cdn: workersCacheCdnAdapter() } })],
|
|
93
74
|
* });
|
|
94
75
|
* ```
|
|
95
76
|
*
|
|
96
77
|
* The plugin registers the adapter across every runtime/router entry, so you
|
|
97
|
-
* don't have to call this from a worker entry. This setter remains
|
|
98
|
-
*
|
|
99
|
-
* recommended consumer API.
|
|
78
|
+
* don't have to call this from a worker entry. This setter remains for
|
|
79
|
+
* backwards compatibility, but is not the recommended consumer API.
|
|
100
80
|
*/
|
|
101
|
-
function setCdnCacheAdapter(adapter) {
|
|
102
|
-
_gCdn[_CDN_KEY] = adapter;
|
|
103
|
-
}
|
|
104
81
|
/**
|
|
105
82
|
* Get the active CDN cache adapter. An explicitly configured adapter wins;
|
|
106
83
|
* otherwise the origin-managed {@link DefaultCdnCacheAdapter} is used.
|
|
107
84
|
*/
|
|
108
85
|
function getCdnCacheAdapter() {
|
|
109
|
-
const active =
|
|
86
|
+
const active = getExplicitCdnCacheAdapter();
|
|
110
87
|
if (active) return active;
|
|
111
88
|
return _defaultAdapter ??= new DefaultCdnCacheAdapter();
|
|
112
89
|
}
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @see https://github.com/cloudflare/vinext/issues/834
|
|
9
9
|
*/
|
|
10
|
-
declare function buildClientHookErrorMessage(hookName: string): string;
|
|
11
|
-
declare function throwClientHookError(hookName: string): never;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { buildClientHookErrorMessage, throwClientHookError };
|
|
10
|
+
export declare function buildClientHookErrorMessage(hookName: string): string;
|
|
11
|
+
export declare function throwClientHookError(hookName: string): never;
|
|
12
|
+
//#endregion
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { DomainLocale } from "../utils/domain-locale.js";
|
|
2
2
|
//#region src/shims/client-locale.d.ts
|
|
3
|
-
declare function getCurrentBrowserLocale({ basePath, domainLocales, hostname }: {
|
|
3
|
+
export declare function getCurrentBrowserLocale({ basePath, domainLocales, hostname }: {
|
|
4
4
|
basePath: string;
|
|
5
5
|
domainLocales: readonly DomainLocale[] | undefined;
|
|
6
6
|
hostname: string | null | undefined;
|
|
7
7
|
}): string | undefined;
|
|
8
|
-
//#endregion
|
|
9
|
-
export { getCurrentBrowserLocale };
|
|
8
|
+
//#endregion
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ComponentType } from "react";
|
|
2
|
+
//#region src/shims/client-page-root.d.ts
|
|
3
|
+
type ClientPageSearchParams = Record<string, string | string[]>;
|
|
4
|
+
export type ClientPageRootProps = {
|
|
5
|
+
Component: ComponentType<Record<string, unknown>>;
|
|
6
|
+
/** The page's other props (`params`, slot props). Never `searchParams`. */
|
|
7
|
+
pageProps: Readonly<Record<string, unknown>>;
|
|
8
|
+
/** The page always reads an empty query: `force-static`, or static export. */
|
|
9
|
+
emptySearchParams?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Build an untracked `searchParams` promise, like Next.js 15's browser
|
|
13
|
+
* `makeUntrackedExoticSearchParams`: a settled promise whose query keys are
|
|
14
|
+
* also readable synchronously, except names Promise and React rely on.
|
|
15
|
+
*
|
|
16
|
+
* It matches the SSR thenable (`makeThenableParams`) wherever a page could
|
|
17
|
+
* tell them apart during hydration, so it is a proxy in the same way: the
|
|
18
|
+
* query keys are virtual, and the promise's methods run on the promise
|
|
19
|
+
* itself. As real own properties, a `constructor` key would replace the
|
|
20
|
+
* promise's species, and `await` would throw.
|
|
21
|
+
*/
|
|
22
|
+
export declare function createClientPageSearchParams(searchParams: URLSearchParams | null | undefined): Promise<ClientPageSearchParams>;
|
|
23
|
+
export declare function ClientPageRoot({ Component, pageProps, emptySearchParams }: ClientPageRootProps): import("react").ReactElement<Record<string, unknown>, string | import("react").JSXElementConstructor<any>>;
|
|
24
|
+
//#endregion
|