vinext 1.0.0-beta.8 → 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 +158 -84
- 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 +82 -8
- package/dist/build/prerender-paths.js +814 -99
- 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 +67 -15
- package/dist/build/prerender.js +177 -64
- 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 +38 -19
- package/dist/build/report.js +73 -4
- 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 +7 -8
- package/dist/cache/cache-adapters-virtual.d.ts +95 -9
- package/dist/cache/cache-adapters-virtual.js +58 -6
- 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 -435
- 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 -8
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +10 -7
- 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 +5 -6
- package/dist/entries/app-browser-entry.js +3 -2
- package/dist/entries/app-rsc-entry.d.ts +12 -3
- package/dist/entries/app-rsc-entry.js +530 -55
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +27 -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 +237 -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 +832 -199
- package/dist/init-cloudflare.d.ts +27 -16
- package/dist/init-cloudflare.js +754 -113
- 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 +20 -5
- package/dist/routing/app-router.js +28 -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 +121 -40
- 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 +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 +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-browser-visible-commit.js +1 -1
- 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 +15 -7
- package/dist/server/app-middleware.js +30 -5
- 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 +14 -10
- package/dist/server/app-optimistic-routing.js +16 -3
- 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 +2 -1
- package/dist/server/app-page-cache-finalizer.d.ts +32 -8
- package/dist/server/app-page-cache-finalizer.js +118 -14
- 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 +96 -25
- package/dist/server/app-page-dispatch.d.ts +36 -12
- package/dist/server/app-page-dispatch.js +188 -63
- 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 +12 -8
- 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 +42 -6
- package/dist/server/app-page-render.js +192 -28
- 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 +31 -13
- 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 +35 -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 +19 -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 +26 -12
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +33 -11
- 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 +75 -57
- package/dist/server/app-route-handler-execution.d.ts +18 -13
- package/dist/server/app-route-handler-execution.js +189 -25
- 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 +22 -10
- package/dist/server/app-route-handler-policy.js +19 -4
- 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 +76 -12
- package/dist/server/app-rsc-cache-busting.d.ts +47 -22
- package/dist/server/app-rsc-cache-busting.js +80 -18
- 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 +33 -6
- package/dist/server/app-rsc-handler.js +498 -83
- 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 +24 -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 +4 -4
- package/dist/server/app-rsc-route-matching.js +4 -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 +120 -6
- package/dist/server/app-segment-config.js +264 -12
- package/dist/server/app-server-action-execution.d.ts +16 -12
- package/dist/server/app-server-action-execution.js +88 -35
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +64 -17
- 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 +39 -11
- package/dist/server/cache-control.js +104 -7
- 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 +8 -0
- package/dist/server/cacheability-limits.js +9 -0
- package/dist/server/cacheability-manifest.d.ts +68 -0
- package/dist/server/cacheability-manifest.js +241 -0
- package/dist/server/cacheability-request.d.ts +49 -0
- package/dist/server/cacheability-request.js +559 -0
- 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 +39 -5
- 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 +62 -56
- package/dist/server/headers.js +33 -20
- 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 +13 -6
- package/dist/server/middleware-matcher.js +22 -1
- 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 +13 -8
- package/dist/server/middleware-runtime.js +54 -10
- 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/normalize-path.js +1 -1
- 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 +21 -8
- 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-i18n.js +3 -2
- 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 +98 -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 +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 +16 -12
- package/dist/server/pages-request-pipeline.js +69 -28
- 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 +48 -114
- 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 -2
- package/dist/server/prerender-work-unit-setup.d.ts +4 -4
- package/dist/server/prerender-work-unit-setup.js +37 -14
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +129 -36
- 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 +17 -21
- package/dist/server/request-pipeline.js +8 -10
- 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 +2 -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/server-globals.js +13 -0
- 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 +16 -0
- package/dist/server/static-file-signal.js +82 -0
- 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 +18 -0
- package/dist/server/worker-prerender-discovery.js +55 -0
- 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 +4 -4
- 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 +239 -121
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +25 -13
- package/dist/shims/cacheability-classification.d.ts +106 -0
- package/dist/shims/cacheability-classification.js +161 -0
- 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 +76 -18
- package/dist/shims/cdn-cache.js +40 -39
- 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.js +1 -1
- 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 +50 -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 +68 -32
- package/dist/shims/headers.js +101 -10
- 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 +13 -0
- package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
- package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
- 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-direct.js +29 -11
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
- 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 +8 -3
- package/dist/shims/internal/make-hanging-promise.js +13 -2
- 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 +12 -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 +67 -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 +45 -17
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/navigation.react-server.js +1 -1
- 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 +7 -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 +18 -12
- package/dist/shims/url-utils.js +10 -1
- 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 +9 -10
- package/dist/utils/prerender-output-paths.js +16 -9
- 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 +55 -6
package/dist/shims/cache.js
CHANGED
|
@@ -1,15 +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 { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
13
14
|
//#region src/shims/cache.ts
|
|
14
15
|
/**
|
|
15
16
|
* next/cache shim
|
|
@@ -28,8 +29,7 @@ import { workUnitAsyncStorage } from "./internal/work-unit-async-storage.js";
|
|
|
28
29
|
* vinext({ cache: { data: kvDataAdapter({ binding: 'VINEXT_KV_CACHE' }) } })
|
|
29
30
|
*
|
|
30
31
|
* The imperative `setCacheHandler` / `setDataCacheHandler` setters are
|
|
31
|
-
* deprecated for consumers and retained
|
|
32
|
-
* target used by the generated cache-adapter module.
|
|
32
|
+
* deprecated for consumers and retained for backwards compatibility.
|
|
33
33
|
*/
|
|
34
34
|
const _g = globalThis;
|
|
35
35
|
function scheduleRevalidation(promise) {
|
|
@@ -54,6 +54,10 @@ function scheduleRevalidation(promise) {
|
|
|
54
54
|
* @param profile - cacheLife profile name (e.g. 'max', 'hours') or inline { expire: number }
|
|
55
55
|
*/
|
|
56
56
|
function revalidateTag(tag, profile) {
|
|
57
|
+
if (isStagedCacheabilityProbeActive()) {
|
|
58
|
+
markDynamicUsage();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
57
61
|
let durations;
|
|
58
62
|
if (typeof profile === "string") {
|
|
59
63
|
const resolved = cacheLifeProfiles[profile];
|
|
@@ -93,9 +97,14 @@ async function _invalidateEncodedTag(encoded, durations) {
|
|
|
93
97
|
* layout/page hierarchy tags, so only no-type invalidation applies there.
|
|
94
98
|
*/
|
|
95
99
|
function revalidatePath(path, type) {
|
|
100
|
+
if (isStagedCacheabilityProbeActive()) {
|
|
101
|
+
markDynamicUsage();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
96
104
|
markActionRevalidation(1);
|
|
97
105
|
const stem = path.endsWith("/") ? path.slice(0, -1) : path;
|
|
98
|
-
const
|
|
106
|
+
const tag = type ? `_N_T_${stem}/${type}` : `_N_T_${stem || "/"}`;
|
|
107
|
+
const encodedTag = encodeCacheTag(tag);
|
|
99
108
|
_markPendingRevalidatedTag(encodedTag);
|
|
100
109
|
return scheduleRevalidation(_invalidateEncodedTag(encodedTag));
|
|
101
110
|
}
|
|
@@ -304,6 +313,7 @@ function unstable_cacheTag(...tags) {
|
|
|
304
313
|
}
|
|
305
314
|
return cacheTag(...tags);
|
|
306
315
|
}
|
|
316
|
+
const UNSTABLE_CACHE_KEY_PREFIX = "unstable_cache:v2";
|
|
307
317
|
/**
|
|
308
318
|
* AsyncLocalStorage to track whether we're inside an unstable_cache() callback.
|
|
309
319
|
* Stored on globalThis via Symbol so headers.ts can detect the scope without
|
|
@@ -389,7 +399,7 @@ function unstable_cache(fn, keyParts, options) {
|
|
|
389
399
|
const revalidateSeconds = options?.revalidate;
|
|
390
400
|
const cachedFn = async (...args) => {
|
|
391
401
|
const argsKey = JSON.stringify(args);
|
|
392
|
-
const cacheKey =
|
|
402
|
+
const cacheKey = `${UNSTABLE_CACHE_KEY_PREFIX}:${baseKey}:${argsKey}`;
|
|
393
403
|
addCollectedRequestTags(tags);
|
|
394
404
|
recordUnstableCacheObservation({
|
|
395
405
|
kind: "unstable_cache",
|
|
@@ -408,12 +418,14 @@ function unstable_cache(fn, keyParts, options) {
|
|
|
408
418
|
});
|
|
409
419
|
if (existing?.value && existing.value.kind === "FETCH") {
|
|
410
420
|
const cached = tryDeserializeUnstableCacheResult(existing.value.data.body);
|
|
411
|
-
if (cached.ok)
|
|
412
|
-
if (
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
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
|
+
}
|
|
417
429
|
}
|
|
418
430
|
}
|
|
419
431
|
if (isDraftMode) return await _unstableCacheAls.run(true, () => fn(...args));
|
|
@@ -422,4 +434,4 @@ function unstable_cache(fn, keyParts, options) {
|
|
|
422
434
|
return cachedFn;
|
|
423
435
|
}
|
|
424
436
|
//#endregion
|
|
425
|
-
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 };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
//#region src/shims/cacheability-classification.d.ts
|
|
2
|
+
export declare const CACHEABILITY_REQUEST_STATE: unique symbol;
|
|
3
|
+
export type RouteCacheabilityOutcome = {
|
|
4
|
+
cacheControl?: string;
|
|
5
|
+
cacheable: boolean;
|
|
6
|
+
classificationFailure?: boolean;
|
|
7
|
+
dynamicUsage?: boolean;
|
|
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;
|
|
13
|
+
tags?: readonly string[];
|
|
14
|
+
};
|
|
15
|
+
export type RouteCacheabilityState = {
|
|
16
|
+
admission?: {
|
|
17
|
+
manifest?: unknown;
|
|
18
|
+
policy: "deny" | "manifest" | "runtime";
|
|
19
|
+
representation?: string;
|
|
20
|
+
requestKey?: string;
|
|
21
|
+
routePathname?: string;
|
|
22
|
+
};
|
|
23
|
+
/** Optional admission budget override used by focused runtime tests. */
|
|
24
|
+
captureBudget?: {
|
|
25
|
+
maxBytes: number;
|
|
26
|
+
reservedBytes: number;
|
|
27
|
+
};
|
|
28
|
+
captureDeadlineAt: number;
|
|
29
|
+
complete?: (outcome: RouteCacheabilityOutcome) => void;
|
|
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;
|
|
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>;
|
|
40
|
+
explicitConfigCachePolicy?: boolean;
|
|
41
|
+
explicitResponseCachePolicy?: boolean;
|
|
42
|
+
finalResponseVetoReason?: string;
|
|
43
|
+
forcedDynamicReason?: string;
|
|
44
|
+
/** A route-config decision that applies to every concrete identity for this pattern. */
|
|
45
|
+
patternDynamicReason?: string;
|
|
46
|
+
frameworkResponseCachePolicy?: Headers;
|
|
47
|
+
mode: "admit" | "identity" | "probe";
|
|
48
|
+
outcome?: RouteCacheabilityOutcome;
|
|
49
|
+
preserveResponseCachePolicy?: boolean;
|
|
50
|
+
/** Whether an API request carried credentials that must not enter shared caching. */
|
|
51
|
+
credentialedRequest?: boolean;
|
|
52
|
+
/** Cache-key behavior declared by the active CDN adapter. */
|
|
53
|
+
responseVary?: "verbatim";
|
|
54
|
+
/** Concrete pathname resolved by the trusted request stage before rendering. */
|
|
55
|
+
resolvedRoutePathname?: string;
|
|
56
|
+
probeBailout?: {
|
|
57
|
+
kind: "private-cache";
|
|
58
|
+
outcome: RouteCacheabilityOutcome;
|
|
59
|
+
};
|
|
60
|
+
route?: {
|
|
61
|
+
kind: "app-page" | "app-route" | "pages-api" | "pages-page";
|
|
62
|
+
pattern: string;
|
|
63
|
+
};
|
|
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;
|
|
69
|
+
/** Preserve the existing policy when hybrid routing hands the request to Pages Router. */
|
|
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;
|
|
73
|
+
/** Prevent shared caching when request processing before route dispatch was request-specific. */
|
|
74
|
+
export declare function markRouteCacheabilityDynamic(reason: string): void;
|
|
75
|
+
/** Mark an effective route configuration that makes the whole pattern dynamic. */
|
|
76
|
+
export declare function markRouteCacheabilityPatternDynamic(reason: string): void;
|
|
77
|
+
/** Read a request-specific routing veto without making the route globally dynamic. */
|
|
78
|
+
export declare function getRouteCacheabilityDynamicReason(): string | null;
|
|
79
|
+
/** Reuse the active request's bounded response-capture envelope when available. */
|
|
80
|
+
export declare function getRouteCacheabilityCaptureOptions(): Pick<RouteCacheabilityState, "captureBudget" | "captureDeadlineAt"> | null;
|
|
81
|
+
/** Keep a completed response private without treating it as static-to-dynamic. */
|
|
82
|
+
export declare function markRouteCacheabilityFinalResponseUncacheable(reason: string): void;
|
|
83
|
+
/** Record that next.config explicitly owns the final response cache policy. */
|
|
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 a public cache policy supplied by the Route Handler itself. */
|
|
90
|
+
export declare function markRouteCacheabilityExplicitResponsePolicy(): void;
|
|
91
|
+
/** Record that the response body reached clean EOF and is now a replay stream. */
|
|
92
|
+
export declare function markRouteCacheabilityResponseBodyComplete(): void;
|
|
93
|
+
/** Record framework-owned policy so admission can identify policy added later. */
|
|
94
|
+
export declare function captureRouteCacheabilityResponsePolicy(headers: Headers): void;
|
|
95
|
+
/** True only for an authenticated probe that must render the matched App Page. */
|
|
96
|
+
export declare function isRouteCacheabilityProbe(): boolean;
|
|
97
|
+
/** True when the outer Worker must decide cache admission after clean EOF. */
|
|
98
|
+
export declare function isRouteCacheabilityEvaluation(): boolean;
|
|
99
|
+
/** True for the authenticated routing pass that must not evaluate user components. */
|
|
100
|
+
export declare function isRouteCacheabilityIdentityProbe(): boolean;
|
|
101
|
+
/** True for every side-effect-free staged Worker observation request. */
|
|
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
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { getRequestExecutionContext } from "./request-context.js";
|
|
2
|
+
//#region src/shims/cacheability-classification.ts
|
|
3
|
+
const CACHEABILITY_REQUEST_STATE = Symbol.for("vinext.cacheabilityRequestState");
|
|
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
|
+
}
|
|
17
|
+
/** Preserve the existing policy when hybrid routing hands the request to Pages Router. */
|
|
18
|
+
function preserveRouteCacheabilityResponsePolicy() {
|
|
19
|
+
const state = readRouteCacheabilityState();
|
|
20
|
+
if (!state || state.mode !== "admit") return;
|
|
21
|
+
if (state.route?.kind === "pages-page") return;
|
|
22
|
+
state.preserveResponseCachePolicy = true;
|
|
23
|
+
}
|
|
24
|
+
function readRouteCacheabilityState() {
|
|
25
|
+
const context = getRequestExecutionContext();
|
|
26
|
+
if (!context) return null;
|
|
27
|
+
return Reflect.get(context, CACHEABILITY_REQUEST_STATE) ?? null;
|
|
28
|
+
}
|
|
29
|
+
function beginRouteCacheability(kind, pattern) {
|
|
30
|
+
const state = readRouteCacheabilityState();
|
|
31
|
+
if (!state) return false;
|
|
32
|
+
state.route = {
|
|
33
|
+
kind,
|
|
34
|
+
pattern
|
|
35
|
+
};
|
|
36
|
+
if (kind === "pages-page") state.preserveResponseCachePolicy = false;
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
/** Prevent shared caching when request processing before route dispatch was request-specific. */
|
|
40
|
+
function markRouteCacheabilityDynamic(reason) {
|
|
41
|
+
const state = readRouteCacheabilityState();
|
|
42
|
+
if (!state) return;
|
|
43
|
+
state.forcedDynamicReason = reason;
|
|
44
|
+
}
|
|
45
|
+
/** Mark an effective route configuration that makes the whole pattern dynamic. */
|
|
46
|
+
function markRouteCacheabilityPatternDynamic(reason) {
|
|
47
|
+
const state = readRouteCacheabilityState();
|
|
48
|
+
if (!state) return;
|
|
49
|
+
state.patternDynamicReason = reason;
|
|
50
|
+
}
|
|
51
|
+
/** Read a request-specific routing veto without making the route globally dynamic. */
|
|
52
|
+
function getRouteCacheabilityDynamicReason() {
|
|
53
|
+
return readRouteCacheabilityState()?.forcedDynamicReason ?? null;
|
|
54
|
+
}
|
|
55
|
+
/** Reuse the active request's bounded response-capture envelope when available. */
|
|
56
|
+
function getRouteCacheabilityCaptureOptions() {
|
|
57
|
+
const state = readRouteCacheabilityState();
|
|
58
|
+
return state ? {
|
|
59
|
+
captureBudget: state.captureBudget,
|
|
60
|
+
captureDeadlineAt: state.captureDeadlineAt
|
|
61
|
+
} : null;
|
|
62
|
+
}
|
|
63
|
+
/** Keep a completed response private without treating it as static-to-dynamic. */
|
|
64
|
+
function markRouteCacheabilityFinalResponseUncacheable(reason) {
|
|
65
|
+
const state = readRouteCacheabilityState();
|
|
66
|
+
if (!state || state.mode !== "admit") return;
|
|
67
|
+
state.finalResponseVetoReason ??= reason;
|
|
68
|
+
}
|
|
69
|
+
/** Record that next.config explicitly owns the final response cache policy. */
|
|
70
|
+
function markRouteCacheabilityExplicitConfigPolicy() {
|
|
71
|
+
const state = readRouteCacheabilityState();
|
|
72
|
+
if (!state) return;
|
|
73
|
+
state.explicitConfigCachePolicy = true;
|
|
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
|
+
}
|
|
87
|
+
/** Record a public cache policy supplied by the Route Handler itself. */
|
|
88
|
+
function markRouteCacheabilityExplicitResponsePolicy() {
|
|
89
|
+
const state = readRouteCacheabilityState();
|
|
90
|
+
if (!state || state.mode !== "admit") return;
|
|
91
|
+
state.explicitResponseCachePolicy = true;
|
|
92
|
+
}
|
|
93
|
+
/** Record that the response body reached clean EOF and is now a replay stream. */
|
|
94
|
+
function markRouteCacheabilityResponseBodyComplete() {
|
|
95
|
+
const state = readRouteCacheabilityState();
|
|
96
|
+
if (!state) return;
|
|
97
|
+
state.completedResponseBody = true;
|
|
98
|
+
}
|
|
99
|
+
/** Record framework-owned policy so admission can identify policy added later. */
|
|
100
|
+
function captureRouteCacheabilityResponsePolicy(headers) {
|
|
101
|
+
const state = readRouteCacheabilityState();
|
|
102
|
+
if (!state || state.mode !== "admit") return;
|
|
103
|
+
state.frameworkResponseCachePolicy = new Headers(headers);
|
|
104
|
+
}
|
|
105
|
+
/** True only for an authenticated probe that must render the matched App Page. */
|
|
106
|
+
function isRouteCacheabilityProbe() {
|
|
107
|
+
return readRouteCacheabilityState()?.mode === "probe";
|
|
108
|
+
}
|
|
109
|
+
/** True when the outer Worker must decide cache admission after clean EOF. */
|
|
110
|
+
function isRouteCacheabilityEvaluation() {
|
|
111
|
+
const mode = readRouteCacheabilityState()?.mode;
|
|
112
|
+
return mode === "probe" || mode === "admit";
|
|
113
|
+
}
|
|
114
|
+
/** True for the authenticated routing pass that must not evaluate user components. */
|
|
115
|
+
function isRouteCacheabilityIdentityProbe() {
|
|
116
|
+
return readRouteCacheabilityState()?.mode === "identity";
|
|
117
|
+
}
|
|
118
|
+
/** True for every side-effect-free staged Worker observation request. */
|
|
119
|
+
function isStagedCacheabilityProbeActive() {
|
|
120
|
+
const mode = readRouteCacheabilityState()?.mode;
|
|
121
|
+
return mode === "probe" || mode === "identity";
|
|
122
|
+
}
|
|
123
|
+
function deferRouteCacheability() {
|
|
124
|
+
const state = readRouteCacheabilityState();
|
|
125
|
+
if (!state?.route || state.completion) return null;
|
|
126
|
+
state.completion = new Promise((resolve) => {
|
|
127
|
+
state.complete = (outcome) => {
|
|
128
|
+
const resolvedOutcome = state.forcedDynamicReason ? {
|
|
129
|
+
cacheable: false,
|
|
130
|
+
dynamicUsage: true,
|
|
131
|
+
reason: state.forcedDynamicReason
|
|
132
|
+
} : outcome;
|
|
133
|
+
state.outcome = resolvedOutcome;
|
|
134
|
+
resolve(resolvedOutcome);
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
return (outcome) => state.complete?.(outcome);
|
|
138
|
+
}
|
|
139
|
+
function recordRouteCacheability(outcome) {
|
|
140
|
+
const state = readRouteCacheabilityState();
|
|
141
|
+
if (!state?.route) return;
|
|
142
|
+
const resolvedOutcome = state.forcedDynamicReason ? {
|
|
143
|
+
cacheable: false,
|
|
144
|
+
dynamicUsage: true,
|
|
145
|
+
reason: state.forcedDynamicReason
|
|
146
|
+
} : outcome;
|
|
147
|
+
state.outcome = resolvedOutcome;
|
|
148
|
+
state.complete?.(resolvedOutcome);
|
|
149
|
+
}
|
|
150
|
+
function recordRouteCacheabilityProbeBailout(kind, outcome) {
|
|
151
|
+
const state = readRouteCacheabilityState();
|
|
152
|
+
if (state?.mode !== "probe" || !state.route) return;
|
|
153
|
+
state.probeBailout = {
|
|
154
|
+
kind,
|
|
155
|
+
outcome
|
|
156
|
+
};
|
|
157
|
+
state.outcome = outcome;
|
|
158
|
+
state.complete?.(outcome);
|
|
159
|
+
}
|
|
160
|
+
//#endregion
|
|
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,11 +29,69 @@ 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
|
+
};
|
|
50
|
+
/** Whether a Cache-Control value contains an exact non-cacheable directive. */
|
|
51
|
+
export declare function isNonCacheableCacheControl(cacheControl: string): boolean;
|
|
31
52
|
/**
|
|
32
53
|
* The serving strategy for page-level ISR. Implement this to delegate
|
|
33
54
|
* page/route/image caching to a CDN edge instead of the origin store.
|
|
34
55
|
*/
|
|
35
|
-
type CdnCacheAdapter = {
|
|
56
|
+
export type CdnCacheAdapter = {
|
|
57
|
+
/**
|
|
58
|
+
* The shared cache selects response variants using every request header
|
|
59
|
+
* named by `Vary`, comparing values verbatim.
|
|
60
|
+
*/
|
|
61
|
+
readonly responseVary?: "verbatim";
|
|
62
|
+
/** Provider-specific response-policy interpretation, when the adapter has one. */
|
|
63
|
+
readonly responsePolicy?: CdnResponsePolicy;
|
|
64
|
+
/**
|
|
65
|
+
* Fresh App Page responses must reach clean EOF before this adapter may emit
|
|
66
|
+
* shared-cache headers. Used by edge adapters whose cache sits in front of
|
|
67
|
+
* the Worker; origin-managed adapters can stream privately and persist only
|
|
68
|
+
* the completed artifact.
|
|
69
|
+
*/
|
|
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;
|
|
86
|
+
/**
|
|
87
|
+
* Validate provider-specific request routing before the application handles
|
|
88
|
+
* the request. Returning a response short-circuits the request pipeline;
|
|
89
|
+
* returning `null` continues normally.
|
|
90
|
+
*
|
|
91
|
+
* Core deliberately passes the untouched request and does not interpret any
|
|
92
|
+
* provider headers or bindings itself.
|
|
93
|
+
*/
|
|
94
|
+
validateRequest?(request: Request): Response | null | Promise<Response | null>;
|
|
36
95
|
/**
|
|
37
96
|
* Read a page-level artifact. Returning a value lets the origin serve it
|
|
38
97
|
* (HIT/STALE); returning `null` makes the origin render fresh.
|
|
@@ -57,13 +116,11 @@ type CdnCacheAdapter = {
|
|
|
57
116
|
*/
|
|
58
117
|
buildResponseHeaders(input: CdnCacheableHeaderInput): CdnResponseHeaders;
|
|
59
118
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* When omitted, core inspects only the generic `Cache-Control` header.
|
|
119
|
+
* Build adapter-owned headers that identify the deployed application build.
|
|
120
|
+
* Core applies these at the outer page-response boundary, including response
|
|
121
|
+
* paths that do not pass through cache-policy finalization.
|
|
65
122
|
*/
|
|
66
|
-
|
|
123
|
+
buildResponseIdentityHeaders?(): CdnResponseHeaders;
|
|
67
124
|
/**
|
|
68
125
|
* Whether the **origin** runs in-process background regeneration when a stale
|
|
69
126
|
* entry is served. Edge adapters set this to `false` because the CDN
|
|
@@ -89,11 +146,14 @@ type CdnCacheAdapter = {
|
|
|
89
146
|
* response headers alone. Deployments where provider headers carry cache
|
|
90
147
|
* semantics must configure the adapter that owns those headers.
|
|
91
148
|
*/
|
|
92
|
-
declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
149
|
+
export declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
150
|
+
private readonly buildIdentity?;
|
|
93
151
|
readonly ownsBackgroundRevalidation = true;
|
|
152
|
+
constructor(buildIdentity?: string | undefined);
|
|
94
153
|
get(key: string, ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
|
|
95
154
|
set(key: string, data: IncrementalCacheValue | null, ctx?: Record<string, unknown>): Promise<void>;
|
|
96
155
|
buildResponseHeaders(input: CdnCacheableHeaderInput): CdnResponseHeaders;
|
|
156
|
+
buildResponseIdentityHeaders(): CdnResponseHeaders;
|
|
97
157
|
revalidateTag(_tags: string | string[], _durations?: {
|
|
98
158
|
expire?: number;
|
|
99
159
|
}): Promise<void>;
|
|
@@ -109,23 +169,21 @@ declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
|
109
169
|
*
|
|
110
170
|
* ```ts
|
|
111
171
|
* import { vinext } from "vinext";
|
|
112
|
-
* import {
|
|
172
|
+
* import { workersCacheCdnAdapter } from "@vinext/cloudflare/cache/workers-cache-cdn-adapter";
|
|
113
173
|
*
|
|
114
174
|
* export default defineConfig({
|
|
115
|
-
* plugins: [vinext({ cache: { cdn:
|
|
175
|
+
* plugins: [vinext({ cache: { cdn: workersCacheCdnAdapter() } })],
|
|
116
176
|
* });
|
|
117
177
|
* ```
|
|
118
178
|
*
|
|
119
179
|
* The plugin registers the adapter across every runtime/router entry, so you
|
|
120
|
-
* don't have to call this from a worker entry. This setter remains
|
|
121
|
-
*
|
|
122
|
-
* 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.
|
|
123
182
|
*/
|
|
124
|
-
declare function setCdnCacheAdapter(adapter: CdnCacheAdapter): void;
|
|
125
183
|
/**
|
|
126
184
|
* Get the active CDN cache adapter. An explicitly configured adapter wins;
|
|
127
185
|
* otherwise the origin-managed {@link DefaultCdnCacheAdapter} is used.
|
|
128
186
|
*/
|
|
129
|
-
declare function getCdnCacheAdapter(): CdnCacheAdapter;
|
|
187
|
+
export declare function getCdnCacheAdapter(): CdnCacheAdapter;
|
|
130
188
|
//#endregion
|
|
131
|
-
export {
|
|
189
|
+
export { setCdnCacheAdapter };
|