@rangojs/router 0.5.1 → 0.6.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 +5 -1
- package/dist/bin/rango.js +343 -125
- package/dist/types/browser/event-controller.d.ts +6 -0
- package/dist/types/browser/react/use-router.d.ts +10 -3
- package/dist/types/browser/react/use-search-params.d.ts +57 -10
- package/dist/types/browser/types.d.ts +22 -0
- package/dist/types/build/merge-full-manifests.d.ts +3 -0
- package/dist/types/build/route-trie.d.ts +4 -73
- package/dist/types/build/route-types/per-module-writer.d.ts +6 -4
- package/dist/types/build/route-types/router-processing.d.ts +2 -3
- package/dist/types/cache/cache-exec-scope.d.ts +31 -0
- package/dist/types/cache/cf/cf-cache-constants.d.ts +8 -1
- package/dist/types/cache/cf/cf-cache-store.d.ts +15 -1
- package/dist/types/cache/cf/cf-cache-types.d.ts +1 -1
- package/dist/types/cache/cf/cf-kv-utils.d.ts +21 -0
- package/dist/types/cache/taint.d.ts +12 -6
- package/dist/types/client-urls/client-root.d.ts +38 -0
- package/dist/types/client-urls/client-urls.d.ts +5 -0
- package/dist/types/client-urls/navigation.d.ts +38 -0
- package/dist/types/client-urls/revalidation-protocol.d.ts +25 -0
- package/dist/types/client-urls/server-projection.d.ts +62 -0
- package/dist/types/client-urls/types.d.ts +144 -0
- package/dist/types/client.d.ts +12 -4
- package/dist/types/client.rsc.d.ts +4 -1
- package/dist/types/decode-loader-results.d.ts +37 -0
- package/dist/types/errors.d.ts +1 -0
- package/dist/types/handles/is-thenable.d.ts +2 -4
- package/dist/types/index.d.ts +1 -1
- package/dist/types/loader-redirect.d.ts +27 -0
- package/dist/types/outlet-context.d.ts +12 -0
- package/dist/types/outlet-provider.d.ts +3 -1
- package/dist/types/redirect-origin.d.ts +4 -0
- package/dist/types/route-content-wrapper.d.ts +42 -1
- package/dist/types/route-definition/helpers-types.d.ts +13 -2
- package/dist/types/router/error-handling.d.ts +35 -1
- package/dist/types/router/intercept-resolution.d.ts +12 -0
- package/dist/types/router/loader-resolution.d.ts +24 -2
- package/dist/types/router/revalidation.d.ts +7 -0
- package/dist/{types.backup/build/route-trie.d.ts → types/router/route-trie-builder.d.ts} +4 -16
- package/dist/types/router/router-interfaces.d.ts +20 -0
- package/dist/types/router/segment-resolution/helpers.d.ts +1 -1
- package/dist/types/router/trie-matching.d.ts +1 -1
- package/dist/types/rsc/helpers.d.ts +3 -0
- package/dist/types/rsc/manifest-init.d.ts +5 -5
- package/dist/types/rsc/render-pipeline.d.ts +9 -0
- package/dist/types/rsc/routine-plan.d.ts +124 -0
- package/dist/types/rsc/shell-capture-constants.d.ts +17 -0
- package/dist/types/rsc/shell-capture.d.ts +9 -0
- package/dist/types/rsc/shell-serve.d.ts +11 -0
- package/dist/types/rsc/types.d.ts +30 -0
- package/dist/types/segment-system.d.ts +2 -0
- package/dist/types/server/context.d.ts +10 -0
- package/dist/types/server/handle-store.d.ts +34 -3
- package/dist/types/server/request-context.d.ts +14 -1
- package/dist/types/server.d.ts +1 -0
- package/dist/types/ssr/index.d.ts +22 -0
- package/dist/types/ssr/ssr-root.d.ts +10 -0
- package/dist/types/testing/dom.entry.d.ts +1 -1
- package/dist/types/testing/render-route.d.ts +16 -6
- package/dist/types/testing/run-loader.d.ts +9 -0
- package/dist/types/types/boundaries.d.ts +22 -0
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/loader-types.d.ts +57 -5
- package/dist/types/types/segments.d.ts +7 -0
- package/dist/types/urls/path-helper-types.d.ts +10 -4
- package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
- package/dist/types/vite/discovery/discover-routers.d.ts +1 -1
- package/dist/types/vite/discovery/state.d.ts +8 -1
- package/dist/types/vite/encryption-key.d.ts +2 -0
- package/dist/types/vite/plugins/expose-internal-ids.d.ts +10 -0
- package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
- package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
- package/dist/types/vite/utils/shared-utils.d.ts +12 -0
- package/dist/vite/index.js +5101 -2056
- package/package.json +3 -3
- package/skills/breadcrumbs/SKILL.md +39 -9
- package/skills/caching/SKILL.md +1 -1
- package/skills/catalog.json +7 -1
- package/skills/client-urls/SKILL.md +338 -0
- package/skills/comparison/references/framework-comparison.md +23 -9
- package/skills/hooks/SKILL.md +2 -2
- package/skills/hooks/data.md +11 -2
- package/skills/hooks/handle-and-actions.md +7 -0
- package/skills/hooks/outlets.md +26 -5
- package/skills/hooks/urls.md +40 -3
- package/skills/loader/SKILL.md +132 -20
- package/skills/migrate-nextjs/SKILL.md +70 -10
- package/skills/migrate-react-router/SKILL.md +49 -13
- package/skills/migrate-react-router/component-migration.md +18 -13
- package/skills/migrate-react-router/data-and-actions.md +14 -3
- package/skills/migrate-react-router/route-mapping.md +15 -2
- package/skills/mime-routes/SKILL.md +3 -1
- package/skills/parallel/SKILL.md +32 -1
- package/skills/ppr/SKILL.md +16 -6
- package/skills/prerender/SKILL.md +8 -4
- package/skills/rango/SKILL.md +21 -17
- package/skills/react-compiler/SKILL.md +3 -3
- package/skills/response-routes/SKILL.md +4 -2
- package/skills/route/SKILL.md +5 -2
- package/skills/router-setup/SKILL.md +16 -2
- package/skills/scripts/SKILL.md +16 -6
- package/skills/shell-manifest/SKILL.md +16 -7
- package/skills/testing/SKILL.md +2 -2
- package/skills/testing/client-components.md +6 -0
- package/skills/testing/handles.md +30 -8
- package/skills/testing/loader.md +51 -49
- package/skills/testing/middleware.md +1 -1
- package/skills/theme/SKILL.md +8 -5
- package/skills/typesafety/generated-files-and-cli.md +16 -9
- package/skills/typesafety/route-types.md +5 -1
- package/skills/use-cache/SKILL.md +47 -0
- package/src/bin/rango.ts +7 -3
- package/src/browser/event-controller.ts +40 -15
- package/src/browser/navigation-bridge.ts +6 -0
- package/src/browser/navigation-client.ts +5 -0
- package/src/browser/partial-update.ts +77 -10
- package/src/browser/react/NavigationProvider.tsx +7 -0
- package/src/browser/react/use-router.ts +40 -11
- package/src/browser/react/use-search-params.ts +140 -17
- package/src/browser/rsc-router.tsx +59 -0
- package/src/browser/server-action-bridge.ts +26 -0
- package/src/browser/types.ts +22 -0
- package/src/build/merge-full-manifests.ts +161 -0
- package/src/build/route-trie.ts +9 -332
- package/src/build/route-types/include-resolution.ts +66 -11
- package/src/build/route-types/per-module-writer.ts +11 -6
- package/src/build/route-types/router-processing.ts +184 -153
- package/src/build/runtime-discovery.ts +23 -12
- package/src/cache/cache-exec-scope.ts +47 -0
- package/src/cache/cache-runtime.ts +113 -40
- package/src/cache/cf/cf-cache-constants.ts +8 -1
- package/src/cache/cf/cf-cache-store.ts +41 -64
- package/src/cache/cf/cf-cache-types.ts +1 -1
- package/src/cache/cf/cf-kv-utils.ts +38 -0
- package/src/cache/segment-codec.ts +21 -5
- package/src/cache/taint.ts +28 -9
- package/src/client-urls/client-root.tsx +168 -0
- package/src/client-urls/client-urls.ts +698 -0
- package/src/client-urls/navigation.ts +237 -0
- package/src/client-urls/revalidation-protocol.ts +56 -0
- package/src/client-urls/server-projection.ts +579 -0
- package/src/client-urls/types.ts +195 -0
- package/src/client.rsc.tsx +12 -0
- package/src/client.tsx +49 -6
- package/src/decode-loader-results.ts +113 -0
- package/src/errors.ts +14 -0
- package/src/handles/deferred-resolution.ts +14 -7
- package/src/handles/is-thenable.ts +2 -4
- package/src/index.ts +1 -0
- package/src/loader-redirect.tsx +64 -0
- package/src/outlet-context.ts +12 -0
- package/src/outlet-provider.tsx +15 -1
- package/src/redirect-origin.ts +29 -0
- package/src/route-content-wrapper.tsx +96 -3
- package/src/route-definition/dsl-helpers.ts +28 -3
- package/src/route-definition/helpers-types.ts +13 -0
- package/src/route-definition/redirect.ts +17 -18
- package/src/router/error-handling.ts +65 -11
- package/src/router/intercept-resolution.ts +29 -0
- package/src/router/loader-resolution.ts +261 -28
- package/src/router/match-middleware/cache-lookup.ts +24 -15
- package/src/router/match-result.ts +7 -0
- package/src/router/revalidation.ts +24 -11
- package/src/router/route-trie-builder.ts +334 -0
- package/src/router/router-interfaces.ts +38 -0
- package/src/router/segment-resolution/fresh.ts +47 -0
- package/src/router/segment-resolution/helpers.ts +9 -11
- package/src/router/segment-resolution/loader-cache.ts +14 -24
- package/src/router/segment-resolution/revalidation.ts +20 -1
- package/src/router/trie-matching.ts +3 -3
- package/src/router.ts +46 -1
- package/src/rsc/full-payload.ts +6 -0
- package/src/rsc/handler.ts +36 -12
- package/src/rsc/helpers.ts +13 -0
- package/src/rsc/loader-fetch.ts +2 -2
- package/src/rsc/manifest-init.ts +28 -9
- package/src/rsc/progressive-enhancement.ts +247 -70
- package/src/rsc/render-pipeline.ts +68 -24
- package/src/rsc/routine-plan.ts +359 -0
- package/src/rsc/rsc-rendering.ts +569 -302
- package/src/rsc/server-action.ts +180 -71
- package/src/rsc/shell-capture-constants.ts +18 -0
- package/src/rsc/shell-capture.ts +104 -21
- package/src/rsc/shell-serve.ts +15 -2
- package/src/rsc/ssr-setup.ts +10 -1
- package/src/rsc/types.ts +31 -2
- package/src/segment-system.tsx +83 -26
- package/src/server/context.ts +10 -0
- package/src/server/cookie-store.ts +19 -19
- package/src/server/handle-store.ts +185 -48
- package/src/server/request-context.ts +36 -6
- package/src/server.ts +7 -0
- package/src/ssr/index.tsx +37 -2
- package/src/ssr/ssr-root.tsx +30 -2
- package/src/testing/dom.entry.ts +1 -1
- package/src/testing/render-route.tsx +22 -8
- package/src/testing/run-loader.ts +51 -13
- package/src/types/boundaries.ts +19 -0
- package/src/types/index.ts +1 -0
- package/src/types/loader-types.ts +60 -5
- package/src/types/segments.ts +7 -0
- package/src/urls/include-helper.ts +22 -4
- package/src/urls/path-helper-types.ts +14 -1
- package/src/use-loader.tsx +67 -6
- package/src/vite/discovery/client-urls-projection.ts +322 -0
- package/src/vite/discovery/discover-routers.ts +43 -17
- package/src/vite/discovery/state.ts +11 -1
- package/src/vite/discovery/virtual-module-codegen.ts +20 -0
- package/src/vite/encryption-key.ts +29 -0
- package/src/vite/plugins/expose-action-id.ts +2 -2
- package/src/vite/plugins/expose-internal-ids.ts +46 -0
- package/src/vite/plugins/server-ref-hashing.ts +74 -0
- package/src/vite/plugins/server-reference-pattern.ts +10 -0
- package/src/vite/plugins/virtual-entries.ts +12 -3
- package/src/vite/rango.ts +9 -0
- package/src/vite/router-discovery.ts +184 -14
- package/src/vite/utils/shared-utils.ts +12 -7
- package/dist/types.backup/__internal.d.ts +0 -127
- package/dist/types.backup/bin/rango.d.ts +0 -1
- package/dist/types.backup/browser/action-coordinator.d.ts +0 -57
- package/dist/types.backup/browser/action-fence.d.ts +0 -33
- package/dist/types.backup/browser/app-shell.d.ts +0 -34
- package/dist/types.backup/browser/app-version.d.ts +0 -6
- package/dist/types.backup/browser/connection-warmup.d.ts +0 -31
- package/dist/types.backup/browser/cookie-name.d.ts +0 -66
- package/dist/types.backup/browser/event-controller.d.ts +0 -221
- package/dist/types.backup/browser/history-state.d.ts +0 -26
- package/dist/types.backup/browser/index.d.ts +0 -1
- package/dist/types.backup/browser/intercept-utils.d.ts +0 -30
- package/dist/types.backup/browser/invalidate-client-cache.d.ts +0 -17
- package/dist/types.backup/browser/link-interceptor.d.ts +0 -43
- package/dist/types.backup/browser/logging.d.ts +0 -33
- package/dist/types.backup/browser/merge-segment-loaders.d.ts +0 -38
- package/dist/types.backup/browser/navigation-bridge.d.ts +0 -27
- package/dist/types.backup/browser/navigation-client.d.ts +0 -17
- package/dist/types.backup/browser/navigation-store-handle.d.ts +0 -25
- package/dist/types.backup/browser/navigation-store.d.ts +0 -95
- package/dist/types.backup/browser/navigation-transaction.d.ts +0 -75
- package/dist/types.backup/browser/network-error-handler.d.ts +0 -35
- package/dist/types.backup/browser/partial-update.d.ts +0 -61
- package/dist/types.backup/browser/prefetch/cache.d.ts +0 -183
- package/dist/types.backup/browser/prefetch/fetch.d.ts +0 -52
- package/dist/types.backup/browser/prefetch/observer.d.ts +0 -27
- package/dist/types.backup/browser/prefetch/policy.d.ts +0 -13
- package/dist/types.backup/browser/prefetch/queue.d.ts +0 -48
- package/dist/types.backup/browser/prefetch/resource-ready.d.ts +0 -28
- package/dist/types.backup/browser/rango-state.d.ts +0 -52
- package/dist/types.backup/browser/react/Link.d.ts +0 -140
- package/dist/types.backup/browser/react/NavigationProvider.d.ts +0 -88
- package/dist/types.backup/browser/react/ScrollRestoration.d.ts +0 -78
- package/dist/types.backup/browser/react/context.d.ts +0 -54
- package/dist/types.backup/browser/react/filter-segment-order.d.ts +0 -35
- package/dist/types.backup/browser/react/index.d.ts +0 -1
- package/dist/types.backup/browser/react/location-state-shared.d.ts +0 -162
- package/dist/types.backup/browser/react/location-state.d.ts +0 -29
- package/dist/types.backup/browser/react/mount-context.d.ts +0 -23
- package/dist/types.backup/browser/react/nonce-context.d.ts +0 -14
- package/dist/types.backup/browser/react/shallow-equal.d.ts +0 -5
- package/dist/types.backup/browser/react/use-action.d.ts +0 -61
- package/dist/types.backup/browser/react/use-handle.d.ts +0 -21
- package/dist/types.backup/browser/react/use-href.d.ts +0 -32
- package/dist/types.backup/browser/react/use-link-status.d.ts +0 -36
- package/dist/types.backup/browser/react/use-mount.d.ts +0 -24
- package/dist/types.backup/browser/react/use-navigation.d.ts +0 -15
- package/dist/types.backup/browser/react/use-params.d.ts +0 -21
- package/dist/types.backup/browser/react/use-pathname.d.ts +0 -13
- package/dist/types.backup/browser/react/use-reverse.d.ts +0 -40
- package/dist/types.backup/browser/react/use-router.d.ts +0 -23
- package/dist/types.backup/browser/react/use-search-params.d.ts +0 -19
- package/dist/types.backup/browser/react/use-segments.d.ts +0 -29
- package/dist/types.backup/browser/response-adapter.d.ts +0 -58
- package/dist/types.backup/browser/rsc-router.d.ts +0 -141
- package/dist/types.backup/browser/scroll-restoration.d.ts +0 -103
- package/dist/types.backup/browser/segment-reconciler.d.ts +0 -74
- package/dist/types.backup/browser/segment-structure-assert.d.ts +0 -16
- package/dist/types.backup/browser/server-action-bridge.d.ts +0 -29
- package/dist/types.backup/browser/types.d.ts +0 -530
- package/dist/types.backup/browser/validate-redirect-origin.d.ts +0 -28
- package/dist/types.backup/build/collect-fallback-refs.d.ts +0 -5
- package/dist/types.backup/build/generate-manifest.d.ts +0 -100
- package/dist/types.backup/build/generate-route-types.d.ts +0 -8
- package/dist/types.backup/build/index.d.ts +0 -21
- package/dist/types.backup/build/prefix-tree-utils.d.ts +0 -56
- package/dist/types.backup/build/route-types/ast-helpers.d.ts +0 -3
- package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +0 -13
- package/dist/types.backup/build/route-types/codegen.d.ts +0 -16
- package/dist/types.backup/build/route-types/include-resolution.d.ts +0 -74
- package/dist/types.backup/build/route-types/param-extraction.d.ts +0 -13
- package/dist/types.backup/build/route-types/per-module-writer.d.ts +0 -18
- package/dist/types.backup/build/route-types/router-processing.d.ts +0 -82
- package/dist/types.backup/build/route-types/scan-filter.d.ts +0 -17
- package/dist/types.backup/build/route-types/source-scan.d.ts +0 -13
- package/dist/types.backup/build/runtime-discovery.d.ts +0 -24
- package/dist/types.backup/cache/background-task.d.ts +0 -21
- package/dist/types.backup/cache/cache-error.d.ts +0 -71
- package/dist/types.backup/cache/cache-key-utils.d.ts +0 -35
- package/dist/types.backup/cache/cache-policy.d.ts +0 -59
- package/dist/types.backup/cache/cache-runtime.d.ts +0 -51
- package/dist/types.backup/cache/cache-scope.d.ts +0 -134
- package/dist/types.backup/cache/cache-tag.d.ts +0 -79
- package/dist/types.backup/cache/cf/cf-base64.d.ts +0 -4
- package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +0 -105
- package/dist/types.backup/cache/cf/cf-cache-store.d.ts +0 -481
- package/dist/types.backup/cache/cf/cf-cache-types.d.ts +0 -300
- package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +0 -22
- package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +0 -15
- package/dist/types.backup/cache/cf/index.d.ts +0 -3
- package/dist/types.backup/cache/document-cache.d.ts +0 -69
- package/dist/types.backup/cache/handle-capture.d.ts +0 -23
- package/dist/types.backup/cache/handle-snapshot.d.ts +0 -39
- package/dist/types.backup/cache/index.d.ts +0 -7
- package/dist/types.backup/cache/memory-segment-store.d.ts +0 -163
- package/dist/types.backup/cache/profile-registry.d.ts +0 -40
- package/dist/types.backup/cache/read-through-swr.d.ts +0 -60
- package/dist/types.backup/cache/segment-codec.d.ts +0 -78
- package/dist/types.backup/cache/shell-snapshot.d.ts +0 -162
- package/dist/types.backup/cache/tag-invalidation.d.ts +0 -74
- package/dist/types.backup/cache/taint.d.ts +0 -71
- package/dist/types.backup/cache/types.d.ts +0 -407
- package/dist/types.backup/cache/vercel/index.d.ts +0 -1
- package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +0 -267
- package/dist/types.backup/client.d.ts +0 -184
- package/dist/types.backup/client.rsc.d.ts +0 -39
- package/dist/types.backup/cloudflare/index.d.ts +0 -7
- package/dist/types.backup/cloudflare/tracing.d.ts +0 -53
- package/dist/types.backup/component-utils.d.ts +0 -46
- package/dist/types.backup/components/DefaultDocument.d.ts +0 -13
- package/dist/types.backup/context-var.d.ts +0 -84
- package/dist/types.backup/debug.d.ts +0 -57
- package/dist/types.backup/decode-loader-results.d.ts +0 -5
- package/dist/types.backup/default-error-boundary.d.ts +0 -10
- package/dist/types.backup/defer.d.ts +0 -89
- package/dist/types.backup/deps/browser.d.ts +0 -1
- package/dist/types.backup/deps/html-stream-client.d.ts +0 -1
- package/dist/types.backup/deps/html-stream-server.d.ts +0 -1
- package/dist/types.backup/deps/rsc.d.ts +0 -1
- package/dist/types.backup/deps/ssr.d.ts +0 -1
- package/dist/types.backup/encode-kv.d.ts +0 -35
- package/dist/types.backup/errors.d.ts +0 -226
- package/dist/types.backup/escape-script.d.ts +0 -44
- package/dist/types.backup/handle.d.ts +0 -93
- package/dist/types.backup/handles/MetaTags.d.ts +0 -17
- package/dist/types.backup/handles/Scripts.d.ts +0 -38
- package/dist/types.backup/handles/breadcrumbs.d.ts +0 -43
- package/dist/types.backup/handles/deferred-resolution.d.ts +0 -53
- package/dist/types.backup/handles/is-thenable.d.ts +0 -12
- package/dist/types.backup/handles/meta.d.ts +0 -43
- package/dist/types.backup/handles/script.d.ts +0 -139
- package/dist/types.backup/host/cookie-handler.d.ts +0 -8
- package/dist/types.backup/host/errors.d.ts +0 -40
- package/dist/types.backup/host/index.d.ts +0 -33
- package/dist/types.backup/host/pattern-matcher.d.ts +0 -30
- package/dist/types.backup/host/router.d.ts +0 -12
- package/dist/types.backup/host/testing.d.ts +0 -41
- package/dist/types.backup/host/types.d.ts +0 -148
- package/dist/types.backup/host/utils.d.ts +0 -20
- package/dist/types.backup/href-client.d.ts +0 -214
- package/dist/types.backup/index.d.ts +0 -112
- package/dist/types.backup/index.rsc.d.ts +0 -51
- package/dist/types.backup/internal-debug.d.ts +0 -1
- package/dist/types.backup/loader-store.d.ts +0 -193
- package/dist/types.backup/loader.d.ts +0 -18
- package/dist/types.backup/loader.rsc.d.ts +0 -18
- package/dist/types.backup/missing-id-error.d.ts +0 -1
- package/dist/types.backup/outlet-context.d.ts +0 -12
- package/dist/types.backup/outlet-provider.d.ts +0 -12
- package/dist/types.backup/prerender/build-shell-capture.d.ts +0 -104
- package/dist/types.backup/prerender/param-hash.d.ts +0 -6
- package/dist/types.backup/prerender/shell-manifest-key.d.ts +0 -18
- package/dist/types.backup/prerender/store.d.ts +0 -62
- package/dist/types.backup/prerender.d.ts +0 -292
- package/dist/types.backup/redirect-origin.d.ts +0 -55
- package/dist/types.backup/regex-escape.d.ts +0 -6
- package/dist/types.backup/render-error-thrower.d.ts +0 -13
- package/dist/types.backup/response-utils.d.ts +0 -35
- package/dist/types.backup/reverse.d.ts +0 -206
- package/dist/types.backup/root-error-boundary.d.ts +0 -32
- package/dist/types.backup/route-content-wrapper.d.ts +0 -40
- package/dist/types.backup/route-definition/dsl-helpers.d.ts +0 -130
- package/dist/types.backup/route-definition/helper-factories.d.ts +0 -22
- package/dist/types.backup/route-definition/helpers-types.d.ts +0 -392
- package/dist/types.backup/route-definition/index.d.ts +0 -7
- package/dist/types.backup/route-definition/redirect.d.ts +0 -48
- package/dist/types.backup/route-definition/resolve-handler-use.d.ts +0 -19
- package/dist/types.backup/route-definition/use-item-types.d.ts +0 -1
- package/dist/types.backup/route-definition.d.ts +0 -1
- package/dist/types.backup/route-map-builder.d.ts +0 -127
- package/dist/types.backup/route-name.d.ts +0 -27
- package/dist/types.backup/route-types.d.ts +0 -172
- package/dist/types.backup/router/basename.d.ts +0 -10
- package/dist/types.backup/router/content-negotiation.d.ts +0 -91
- package/dist/types.backup/router/debug-manifest.d.ts +0 -7
- package/dist/types.backup/router/error-handling.d.ts +0 -76
- package/dist/types.backup/router/find-match.d.ts +0 -19
- package/dist/types.backup/router/handler-context.d.ts +0 -41
- package/dist/types.backup/router/instrument.d.ts +0 -161
- package/dist/types.backup/router/intercept-resolution.d.ts +0 -79
- package/dist/types.backup/router/lazy-includes.d.ts +0 -26
- package/dist/types.backup/router/loader-resolution.d.ts +0 -63
- package/dist/types.backup/router/logging.d.ts +0 -41
- package/dist/types.backup/router/manifest.d.ts +0 -8
- package/dist/types.backup/router/match-api.d.ts +0 -19
- package/dist/types.backup/router/match-context.d.ts +0 -184
- package/dist/types.backup/router/match-handlers.d.ts +0 -49
- package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +0 -113
- package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +0 -113
- package/dist/types.backup/router/match-middleware/cache-store.d.ts +0 -112
- package/dist/types.backup/router/match-middleware/index.d.ts +0 -80
- package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +0 -116
- package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +0 -94
- package/dist/types.backup/router/match-pipelines.d.ts +0 -103
- package/dist/types.backup/router/match-result.d.ts +0 -114
- package/dist/types.backup/router/metrics.d.ts +0 -6
- package/dist/types.backup/router/middleware-types.d.ts +0 -74
- package/dist/types.backup/router/middleware.d.ts +0 -116
- package/dist/types.backup/router/navigation-snapshot.d.ts +0 -22
- package/dist/types.backup/router/params-util.d.ts +0 -8
- package/dist/types.backup/router/parse-pattern.d.ts +0 -38
- package/dist/types.backup/router/pattern-matching.d.ts +0 -169
- package/dist/types.backup/router/prefetch-cache-ttl.d.ts +0 -27
- package/dist/types.backup/router/prefetch-limits.d.ts +0 -20
- package/dist/types.backup/router/prerender-match.d.ts +0 -50
- package/dist/types.backup/router/preview-match.d.ts +0 -22
- package/dist/types.backup/router/request-classification.d.ts +0 -104
- package/dist/types.backup/router/revalidation.d.ts +0 -57
- package/dist/types.backup/router/route-snapshot.d.ts +0 -112
- package/dist/types.backup/router/router-context.d.ts +0 -137
- package/dist/types.backup/router/router-interfaces.d.ts +0 -432
- package/dist/types.backup/router/router-options.d.ts +0 -738
- package/dist/types.backup/router/router-registry.d.ts +0 -15
- package/dist/types.backup/router/segment-resolution/fresh.d.ts +0 -55
- package/dist/types.backup/router/segment-resolution/helpers.d.ts +0 -93
- package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +0 -33
- package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +0 -44
- package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +0 -90
- package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +0 -53
- package/dist/types.backup/router/segment-resolution/revalidation.d.ts +0 -85
- package/dist/types.backup/router/segment-resolution/static-store.d.ts +0 -17
- package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +0 -16
- package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +0 -28
- package/dist/types.backup/router/segment-resolution.d.ts +0 -3
- package/dist/types.backup/router/segment-wrappers.d.ts +0 -53
- package/dist/types.backup/router/state-cookie-name.d.ts +0 -1
- package/dist/types.backup/router/substitute-pattern-params.d.ts +0 -23
- package/dist/types.backup/router/telemetry-otel.d.ts +0 -113
- package/dist/types.backup/router/telemetry.d.ts +0 -215
- package/dist/types.backup/router/timeout.d.ts +0 -68
- package/dist/types.backup/router/tracing.d.ts +0 -125
- package/dist/types.backup/router/trie-matching.d.ts +0 -32
- package/dist/types.backup/router/types.d.ts +0 -98
- package/dist/types.backup/router/url-params.d.ts +0 -26
- package/dist/types.backup/router.d.ts +0 -7
- package/dist/types.backup/rsc/capture-queue.d.ts +0 -6
- package/dist/types.backup/rsc/full-payload.d.ts +0 -22
- package/dist/types.backup/rsc/handler-context.d.ts +0 -31
- package/dist/types.backup/rsc/handler.d.ts +0 -9
- package/dist/types.backup/rsc/helpers.d.ts +0 -213
- package/dist/types.backup/rsc/index.d.ts +0 -17
- package/dist/types.backup/rsc/json-route-result.d.ts +0 -20
- package/dist/types.backup/rsc/loader-fetch.d.ts +0 -14
- package/dist/types.backup/rsc/manifest-init.d.ts +0 -18
- package/dist/types.backup/rsc/nonce.d.ts +0 -28
- package/dist/types.backup/rsc/origin-guard.d.ts +0 -50
- package/dist/types.backup/rsc/progressive-enhancement.d.ts +0 -19
- package/dist/types.backup/rsc/redirect-guard.d.ts +0 -35
- package/dist/types.backup/rsc/response-cache-serve.d.ts +0 -46
- package/dist/types.backup/rsc/response-error.d.ts +0 -19
- package/dist/types.backup/rsc/response-route-handler.d.ts +0 -29
- package/dist/types.backup/rsc/rsc-rendering.d.ts +0 -23
- package/dist/types.backup/rsc/runtime-warnings.d.ts +0 -22
- package/dist/types.backup/rsc/server-action.d.ts +0 -68
- package/dist/types.backup/rsc/shell-build-manifest.d.ts +0 -84
- package/dist/types.backup/rsc/shell-capture-constants.d.ts +0 -27
- package/dist/types.backup/rsc/shell-capture.d.ts +0 -374
- package/dist/types.backup/rsc/shell-serve.d.ts +0 -136
- package/dist/types.backup/rsc/ssr-setup.d.ts +0 -48
- package/dist/types.backup/rsc/transition-gate.d.ts +0 -27
- package/dist/types.backup/rsc/types.d.ts +0 -290
- package/dist/types.backup/runtime-env.d.ts +0 -1
- package/dist/types.backup/search-params.d.ts +0 -125
- package/dist/types.backup/segment-content-promise.d.ts +0 -13
- package/dist/types.backup/segment-fragments.d.ts +0 -56
- package/dist/types.backup/segment-loader-promise.d.ts +0 -22
- package/dist/types.backup/segment-system.d.ts +0 -84
- package/dist/types.backup/serialize.d.ts +0 -164
- package/dist/types.backup/server/context.d.ts +0 -494
- package/dist/types.backup/server/cookie-parse.d.ts +0 -10
- package/dist/types.backup/server/cookie-store.d.ts +0 -107
- package/dist/types.backup/server/fetchable-loader-store.d.ts +0 -20
- package/dist/types.backup/server/handle-store.d.ts +0 -100
- package/dist/types.backup/server/loader-registry.d.ts +0 -32
- package/dist/types.backup/server/request-context.d.ts +0 -596
- package/dist/types.backup/server/root-layout.d.ts +0 -3
- package/dist/types.backup/server.d.ts +0 -15
- package/dist/types.backup/ssr/index.d.ts +0 -233
- package/dist/types.backup/ssr/inject-rsc-eager.d.ts +0 -3
- package/dist/types.backup/ssr/preinit-client-references.d.ts +0 -71
- package/dist/types.backup/ssr/ssr-root.d.ts +0 -69
- package/dist/types.backup/static-handler.d.ts +0 -57
- package/dist/types.backup/testing/cache-status.d.ts +0 -63
- package/dist/types.backup/testing/collect-handle.d.ts +0 -20
- package/dist/types.backup/testing/dispatch.d.ts +0 -123
- package/dist/types.backup/testing/dom.entry.d.ts +0 -15
- package/dist/types.backup/testing/e2e/fixture.d.ts +0 -37
- package/dist/types.backup/testing/e2e/index.d.ts +0 -30
- package/dist/types.backup/testing/e2e/matchers.d.ts +0 -17
- package/dist/types.backup/testing/e2e/page-helpers.d.ts +0 -62
- package/dist/types.backup/testing/e2e/parity.d.ts +0 -111
- package/dist/types.backup/testing/e2e/server.d.ts +0 -35
- package/dist/types.backup/testing/flight-matchers.d.ts +0 -55
- package/dist/types.backup/testing/flight-normalize.d.ts +0 -1
- package/dist/types.backup/testing/flight-tree.d.ts +0 -192
- package/dist/types.backup/testing/flight.d.ts +0 -115
- package/dist/types.backup/testing/flight.entry.d.ts +0 -27
- package/dist/types.backup/testing/generated-routes.d.ts +0 -66
- package/dist/types.backup/testing/index.d.ts +0 -52
- package/dist/types.backup/testing/internal/context.d.ts +0 -225
- package/dist/types.backup/testing/internal/flight-client-globals.d.ts +0 -1
- package/dist/types.backup/testing/internal/seed-vars.d.ts +0 -30
- package/dist/types.backup/testing/render-handler.d.ts +0 -160
- package/dist/types.backup/testing/render-route.d.ts +0 -246
- package/dist/types.backup/testing/run-loader.d.ts +0 -186
- package/dist/types.backup/testing/run-middleware.d.ts +0 -132
- package/dist/types.backup/testing/run-transition-when.d.ts +0 -77
- package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +0 -6
- package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +0 -13
- package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +0 -7
- package/dist/types.backup/testing/vitest-stubs/version.d.ts +0 -1
- package/dist/types.backup/testing/vitest.d.ts +0 -205
- package/dist/types.backup/theme/ThemeProvider.d.ts +0 -13
- package/dist/types.backup/theme/ThemeScript.d.ts +0 -45
- package/dist/types.backup/theme/constants.d.ts +0 -39
- package/dist/types.backup/theme/index.d.ts +0 -29
- package/dist/types.backup/theme/theme-context.d.ts +0 -21
- package/dist/types.backup/theme/theme-script.d.ts +0 -26
- package/dist/types.backup/theme/types.d.ts +0 -162
- package/dist/types.backup/theme/use-theme.d.ts +0 -8
- package/dist/types.backup/types/boundaries.d.ts +0 -93
- package/dist/types.backup/types/cache-types.d.ts +0 -191
- package/dist/types.backup/types/error-types.d.ts +0 -114
- package/dist/types.backup/types/global-namespace.d.ts +0 -90
- package/dist/types.backup/types/handler-context.d.ts +0 -658
- package/dist/types.backup/types/index.d.ts +0 -11
- package/dist/types.backup/types/loader-types.d.ts +0 -182
- package/dist/types.backup/types/request-scope.d.ts +0 -93
- package/dist/types.backup/types/route-config.d.ts +0 -105
- package/dist/types.backup/types/route-entry.d.ts +0 -95
- package/dist/types.backup/types/segments.d.ts +0 -234
- package/dist/types.backup/types.d.ts +0 -1
- package/dist/types.backup/urls/include-helper.d.ts +0 -17
- package/dist/types.backup/urls/include-provider.d.ts +0 -27
- package/dist/types.backup/urls/index.d.ts +0 -6
- package/dist/types.backup/urls/path-helper-types.d.ts +0 -197
- package/dist/types.backup/urls/path-helper.d.ts +0 -12
- package/dist/types.backup/urls/pattern-types.d.ts +0 -166
- package/dist/types.backup/urls/response-types.d.ts +0 -67
- package/dist/types.backup/urls/type-extraction.d.ts +0 -157
- package/dist/types.backup/urls/urls-function.d.ts +0 -24
- package/dist/types.backup/urls.d.ts +0 -1
- package/dist/types.backup/use-loader.d.ts +0 -150
- package/dist/types.backup/vercel/index.d.ts +0 -10
- package/dist/types.backup/vercel/tracing.d.ts +0 -70
- package/dist/types.backup/vite/debug.d.ts +0 -80
- package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +0 -12
- package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +0 -65
- package/dist/types.backup/vite/discovery/discover-routers.d.ts +0 -17
- package/dist/types.backup/vite/discovery/discovery-errors.d.ts +0 -113
- package/dist/types.backup/vite/discovery/gate-state.d.ts +0 -79
- package/dist/types.backup/vite/discovery/prerender-collection.d.ts +0 -24
- package/dist/types.backup/vite/discovery/route-types-writer.d.ts +0 -32
- package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +0 -22
- package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +0 -40
- package/dist/types.backup/vite/discovery/state.d.ts +0 -162
- package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +0 -15
- package/dist/types.backup/vite/index.d.ts +0 -11
- package/dist/types.backup/vite/inject-client-debug.d.ts +0 -56
- package/dist/types.backup/vite/plugin-types.d.ts +0 -298
- package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +0 -6
- package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +0 -40
- package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +0 -35
- package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +0 -64
- package/dist/types.backup/vite/plugins/expose-action-id.d.ts +0 -18
- package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +0 -37
- package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +0 -19
- package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +0 -10
- package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +0 -8
- package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +0 -13
- package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +0 -29
- package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +0 -6
- package/dist/types.backup/vite/plugins/performance-tracks.d.ts +0 -25
- package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +0 -20
- package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +0 -20
- package/dist/types.backup/vite/plugins/vercel-output.d.ts +0 -85
- package/dist/types.backup/vite/plugins/version-injector.d.ts +0 -21
- package/dist/types.backup/vite/plugins/version-plugin.d.ts +0 -19
- package/dist/types.backup/vite/plugins/virtual-entries.d.ts +0 -36
- package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +0 -7
- package/dist/types.backup/vite/rango.d.ts +0 -29
- package/dist/types.backup/vite/router-discovery.d.ts +0 -23
- package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +0 -64
- package/dist/types.backup/vite/utils/banner.d.ts +0 -2
- package/dist/types.backup/vite/utils/bundle-analysis.d.ts +0 -28
- package/dist/types.backup/vite/utils/client-chunks.d.ts +0 -55
- package/dist/types.backup/vite/utils/directive-prologue.d.ts +0 -16
- package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +0 -37
- package/dist/types.backup/vite/utils/manifest-utils.d.ts +0 -7
- package/dist/types.backup/vite/utils/package-resolution.d.ts +0 -6
- package/dist/types.backup/vite/utils/prerender-utils.d.ts +0 -32
- package/dist/types.backup/vite/utils/shared-utils.d.ts +0 -55
|
@@ -1,481 +0,0 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
interface CacheStorage {
|
|
3
|
-
readonly default: Cache;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Cloudflare Edge Cache Store
|
|
8
|
-
*
|
|
9
|
-
* Production cache store using Cloudflare's Cache API (L1) with optional
|
|
10
|
-
* KV persistence (L2).
|
|
11
|
-
*
|
|
12
|
-
* L1 (Cache API): Per-colo, fast, ephemeral. Handles SWR atomically.
|
|
13
|
-
* L2 (KV): Global, persistent, ~50ms reads. Auto-warms cold colos.
|
|
14
|
-
*
|
|
15
|
-
* Read flow: L1 hit → serve | L1 miss → L2 hit → serve + promote to L1 | both miss → render
|
|
16
|
-
* Write flow: L1 write + L2 write (both via waitUntil)
|
|
17
|
-
*
|
|
18
|
-
* Features:
|
|
19
|
-
* - Extended TTL for SWR window (max-age = ttl + swr)
|
|
20
|
-
* - Staleness via x-edge-cache-stale-at header
|
|
21
|
-
* - Atomic REVALIDATING status for thundering herd prevention (L1 only)
|
|
22
|
-
* - Non-blocking writes via waitUntil
|
|
23
|
-
* - KV L2 for cross-colo cache persistence
|
|
24
|
-
*/
|
|
25
|
-
import type { SegmentCacheStore, CachedEntryData, CacheDefaults, CacheGetResult, CacheItemResult, CacheItemOptions, ShellCacheEntry } from "../types.js";
|
|
26
|
-
import { type RequestContext } from "../../server/request-context.js";
|
|
27
|
-
import { CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER, CACHE_TAGS_HEADER, CACHE_TAGGED_AT_HEADER, TAG_MARKER_PREFIX, CACHE_REVALIDATING_AT_HEADER, MAX_REVALIDATION_INTERVAL, EDGE_LOOKUP_TIMEOUT_MS, EDGE_READ_TIMEOUT_MS, KV_READ_TIMEOUT_MS } from "./cf-cache-constants.js";
|
|
28
|
-
export { CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER, CACHE_TAGS_HEADER, CACHE_TAGGED_AT_HEADER, TAG_MARKER_PREFIX, CACHE_REVALIDATING_AT_HEADER, MAX_REVALIDATION_INTERVAL, EDGE_LOOKUP_TIMEOUT_MS, EDGE_READ_TIMEOUT_MS, KV_READ_TIMEOUT_MS, };
|
|
29
|
-
import type { KVNamespace, CFCacheReadDebugEvent, CFCacheDebug, CFCacheStoreOptions } from "./cf-cache-types.js";
|
|
30
|
-
export type { KVNamespace, CFCacheReadDebugEvent, CFCacheDebug, CFCacheStoreOptions, };
|
|
31
|
-
export declare class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
|
|
32
|
-
readonly defaults?: CacheDefaults;
|
|
33
|
-
readonly keyGenerator?: (ctx: RequestContext<TEnv>, defaultKey: string) => string | Promise<string>;
|
|
34
|
-
private readonly namespace?;
|
|
35
|
-
private readonly explicitBaseUrl?;
|
|
36
|
-
private readonly waitUntil?;
|
|
37
|
-
private readonly version?;
|
|
38
|
-
private readonly edgeLookupTimeoutMs;
|
|
39
|
-
private readonly edgeReadTimeoutMs;
|
|
40
|
-
private readonly kvReadTimeoutMs;
|
|
41
|
-
private readonly debug?;
|
|
42
|
-
private readonly kv?;
|
|
43
|
-
private readonly onRevalidateTag?;
|
|
44
|
-
private readonly tagInvalidationTtl?;
|
|
45
|
-
private readonly tagCacheTtl;
|
|
46
|
-
constructor(options: CFCacheStoreOptions<TEnv>);
|
|
47
|
-
/**
|
|
48
|
-
* Warn about a namespace-scoped misconfiguration once per namespace per
|
|
49
|
-
* isolate. `seen` is the module-level Set for that message family -- Sets
|
|
50
|
-
* are module-level (not instance fields) so re-constructed stores in the
|
|
51
|
-
* same isolate don't re-warn.
|
|
52
|
-
* @internal
|
|
53
|
-
*/
|
|
54
|
-
private warnOncePerNamespace;
|
|
55
|
-
/**
|
|
56
|
-
* Validate a consumer-supplied tagInvalidationTtl against CF KV's expirationTtl
|
|
57
|
-
* floor. A finite value below KV_MIN_EXPIRATION_TTL is raised to it (with a
|
|
58
|
-
* one-time warning) so invalidation keeps working instead of every marker
|
|
59
|
-
* write throwing; a non-finite or non-positive value returns undefined (the
|
|
60
|
-
* no-expiry default). The warning still notes the sizing rule: the TTL must
|
|
61
|
-
* exceed the largest entry TTL+SWR or invalidated entries can resurrect.
|
|
62
|
-
* @internal
|
|
63
|
-
*/
|
|
64
|
-
private sanitizeTagInvalidationTtl;
|
|
65
|
-
/**
|
|
66
|
-
* Emit a debug event if `debug` is enabled. Swallows sink errors so a faulty
|
|
67
|
-
* debug callback can never break a cache read.
|
|
68
|
-
* @internal
|
|
69
|
-
*/
|
|
70
|
-
private emitDebug;
|
|
71
|
-
/**
|
|
72
|
-
* Resolve the cache-key base URL for the current cache operation.
|
|
73
|
-
* Prefers an explicit `baseUrl` option; otherwise derives it from the live
|
|
74
|
-
* request. Called per operation (from keyToRequest), which runs inside the
|
|
75
|
-
* request-context ALS, so deriveBaseUrl sees the request and can use the
|
|
76
|
-
* production host instead of the internal fallback.
|
|
77
|
-
* @internal
|
|
78
|
-
*/
|
|
79
|
-
private resolveBaseUrl;
|
|
80
|
-
/**
|
|
81
|
-
* Derive base URL from request hostname via requestContext.
|
|
82
|
-
* Uses internal fallback for dev/preview environments and untrusted hostnames.
|
|
83
|
-
* Must run inside the request context (invoked lazily via resolveBaseUrl).
|
|
84
|
-
* @internal
|
|
85
|
-
*/
|
|
86
|
-
private deriveBaseUrl;
|
|
87
|
-
/**
|
|
88
|
-
* Get the cache instance - uses caches.default unless namespace is specified.
|
|
89
|
-
* @internal
|
|
90
|
-
*/
|
|
91
|
-
private getCache;
|
|
92
|
-
/**
|
|
93
|
-
* Race an async cache read against a latency budget. Shared by all three read
|
|
94
|
-
* tiers (L1 match, L1 body, L2/KV) so the timeout policy lives in one place:
|
|
95
|
-
* on timeout it returns `{ value: undefined, timedOut: true }` and logs
|
|
96
|
-
* `${label} exceeded ${budgetMs}ms; treating as miss`; the abandoned read is
|
|
97
|
-
* left to settle in the background (late rejection swallowed) rather than
|
|
98
|
-
* aborted, since the underlying CF primitives expose no cancellation. A budget
|
|
99
|
-
* <= 0 disables the bound and awaits the read directly. `read` is a thunk so
|
|
100
|
-
* the disabled path and the raced path start the read identically.
|
|
101
|
-
* @internal
|
|
102
|
-
*/
|
|
103
|
-
private readWithTimeout;
|
|
104
|
-
/**
|
|
105
|
-
* Read from the L1 edge cache under the edgeLookupTimeoutMs budget. A `match`
|
|
106
|
-
* slower than the budget is abandoned and reported as a miss
|
|
107
|
-
* (`{ response: undefined, timedOut: true }`) so a degraded colo cannot stall
|
|
108
|
-
* the request; callers fall through to their normal miss path (L2/KV or
|
|
109
|
-
* render). The `timedOut` flag lets callers distinguish an abandoned slow
|
|
110
|
-
* match from a genuine miss for debug reporting; `error` is set when the
|
|
111
|
-
* `match` itself rejected (a transient L1 infra error) so the caller can
|
|
112
|
-
* report it as cache-read while still degrading to L2/KV -- distinct from a
|
|
113
|
-
* genuine miss (no entry), which sets neither flag.
|
|
114
|
-
* @internal
|
|
115
|
-
*/
|
|
116
|
-
private matchWithTimeout;
|
|
117
|
-
/**
|
|
118
|
-
* Read and JSON-parse a matched L1 Response's body under the edgeReadTimeoutMs
|
|
119
|
-
* budget. CF resolves `match()` with a lazily-streamed body, so the latency
|
|
120
|
-
* tail surfaces here -- after matchWithTimeout has already passed -- not in the
|
|
121
|
-
* match itself. On timeout `undefined` is returned so the caller falls through
|
|
122
|
-
* to L2/KV or render.
|
|
123
|
-
* @internal
|
|
124
|
-
*/
|
|
125
|
-
private readJsonWithTimeout;
|
|
126
|
-
/**
|
|
127
|
-
* Self-heal a corrupt L1 entry, then return the fall-through result. Reports
|
|
128
|
-
* the corruption as cache-corrupt (so an onError consumer sees it distinctly
|
|
129
|
-
* from a transient outage), runs the caller's L2/KV fall-through, and evicts
|
|
130
|
-
* the faulty per-colo entry ONLY when that fall-through found no good copy.
|
|
131
|
-
*
|
|
132
|
-
* The conditional evict is the load-bearing detail: when KV DOES serve a copy,
|
|
133
|
-
* kvGet* has already scheduled a same-key promote (`cache.put`); an eager
|
|
134
|
-
* `cache.delete` here would race that put with no CF Cache API ordering
|
|
135
|
-
* guarantee and could clobber the freshly-restored entry. So in that case we
|
|
136
|
-
* lean on #558's heal-by-overwrite (the non-suppressed fall-through promotes /
|
|
137
|
-
* a fresh render re-`set`s over the bad entry) and skip the delete. Only when
|
|
138
|
-
* this request's fall-through found no copy (=== null) is the eager evict
|
|
139
|
-
* scheduled -- useful then, since nothing else will overwrite the poison entry.
|
|
140
|
-
* A null fall-through can also be a KV-read TIMEOUT rather than a genuine miss:
|
|
141
|
-
* a concurrent request that read KV successfully may be promoting the same key,
|
|
142
|
-
* and this evict could race it. That is benign -- the worst case is one wasted
|
|
143
|
-
* colo-local promote, never a wrong served value, and the next read self-heals
|
|
144
|
-
* -- so we accept it rather than suppressing the evict on a timeout (which
|
|
145
|
-
* would strand the poison entry when KV really is empty). The evict is
|
|
146
|
-
* non-blocking (waitUntil) so it never adds latency to the degraded read.
|
|
147
|
-
* @internal
|
|
148
|
-
*/
|
|
149
|
-
private healCorruptL1;
|
|
150
|
-
/**
|
|
151
|
-
* Re-put a stale L1 entry marked REVALIDATING, so concurrent requests serve it
|
|
152
|
-
* without each triggering a revalidation. Shared by get()/getItem().
|
|
153
|
-
*
|
|
154
|
-
* The write is NON-BLOCKING (waitUntil) and best-effort by design:
|
|
155
|
-
* - It runs in waitUntil, so it never adds the put latency to the served stale
|
|
156
|
-
* read and a put failure can never turn that good read into a miss. The put
|
|
157
|
-
* is still initiated synchronously (this.waitUntil invokes its callback
|
|
158
|
-
* immediately), so concurrent readers see the marker land at the same time an
|
|
159
|
-
* awaited write would -- awaiting only blocks the current request.
|
|
160
|
-
* - The background revalidation's fresh set() is gated behind a full re-render,
|
|
161
|
-
* so it lands well after this put; a stale-clobbers-fresh race would require
|
|
162
|
-
* this single put to be slower than that entire render+set, and self-heals
|
|
163
|
-
* within MAX_REVALIDATION_INTERVAL.
|
|
164
|
-
*
|
|
165
|
-
* Cache-Control is recomputed to the REMAINING ttl from the stored hard-expiry
|
|
166
|
-
* deadline (see remainingCacheControl), not copied from the original
|
|
167
|
-
* full-window header -- copying it would restart CF retention on every re-arm
|
|
168
|
-
* and pin a perpetually-failing entry past hard-expiry. A legacy/tampered entry
|
|
169
|
-
* without a valid deadline floors to max-age=1 and self-heals via KV.
|
|
170
|
-
* @internal
|
|
171
|
-
*/
|
|
172
|
-
private markRevalidating;
|
|
173
|
-
/**
|
|
174
|
-
* Document-tier counterpart of markRevalidating for getResponse's herd guard.
|
|
175
|
-
* The segment/item tiers JSON-parse the body, so they re-put with a string
|
|
176
|
-
* body; document bodies are streamed verbatim, so we re-put with a CLONED
|
|
177
|
-
* response body (`response.clone()`) supplied by the caller -- the original
|
|
178
|
-
* body still streams to the client while the marker carries the clone. Same
|
|
179
|
-
* REVALIDATING status header, same revalidating-at stamp, same
|
|
180
|
-
* remainingCacheControl re-put math as markRevalidating, so the document tier
|
|
181
|
-
* suppresses concurrent revalidation for the identical MAX_REVALIDATION_INTERVAL
|
|
182
|
-
* window the segment tier does. Best-effort and non-blocking: a failed marker
|
|
183
|
-
* write must not affect the served stale read.
|
|
184
|
-
* @internal
|
|
185
|
-
*/
|
|
186
|
-
private markResponseRevalidating;
|
|
187
|
-
/**
|
|
188
|
-
* Guard the segment tier against a `keyGenerator` that returns a key colliding
|
|
189
|
-
* with a reserved tag-marker namespace: `__tag__/` (the KV marker key) or
|
|
190
|
-
* `__tagmarker__/` (the L1 Cache API marker request). The item/doc tiers are
|
|
191
|
-
* internally prefixed (`fn:`/`doc:`) so only the bare segment key can collide;
|
|
192
|
-
* a collision would let a segment write clobber - or a segment read/delete
|
|
193
|
-
* evict - a live tag marker, silently breaking invalidation. Report loudly
|
|
194
|
-
* (so a misconfigured keyGenerator surfaces immediately) and treat the segment
|
|
195
|
-
* operation as a miss/no-op rather than corrupting the marker namespace.
|
|
196
|
-
* @internal
|
|
197
|
-
*/
|
|
198
|
-
private isReservedSegmentKey;
|
|
199
|
-
/**
|
|
200
|
-
* Get cached entry data by key.
|
|
201
|
-
*
|
|
202
|
-
* Handles SWR atomically:
|
|
203
|
-
* - If stale and not already revalidating, marks as REVALIDATING and returns shouldRevalidate: true
|
|
204
|
-
* - If already REVALIDATING (and recent), returns shouldRevalidate: false
|
|
205
|
-
* - If fresh, returns shouldRevalidate: false
|
|
206
|
-
*
|
|
207
|
-
* On L1 miss, falls back to KV (L2) if configured.
|
|
208
|
-
* KV hits are promoted to L1 in the background.
|
|
209
|
-
*/
|
|
210
|
-
get(key: string): Promise<CacheGetResult | null>;
|
|
211
|
-
/**
|
|
212
|
-
* Store entry data with TTL and optional SWR window.
|
|
213
|
-
* Uses waitUntil for non-blocking write when available.
|
|
214
|
-
* When KV is configured, also persists to L2.
|
|
215
|
-
*/
|
|
216
|
-
set(key: string, data: CachedEntryData, ttl: number, swr?: number): Promise<void>;
|
|
217
|
-
/**
|
|
218
|
-
* Delete a cached entry from L1 and L2.
|
|
219
|
-
*/
|
|
220
|
-
delete(key: string): Promise<boolean>;
|
|
221
|
-
/**
|
|
222
|
-
* Get a cached Response by key (for document-level caching).
|
|
223
|
-
* Returns the response and whether it should be revalidated (SWR).
|
|
224
|
-
* Falls back to KV (L2) on L1 miss.
|
|
225
|
-
*/
|
|
226
|
-
getResponse(key: string): Promise<{
|
|
227
|
-
response: Response;
|
|
228
|
-
shouldRevalidate: boolean;
|
|
229
|
-
} | null>;
|
|
230
|
-
/**
|
|
231
|
-
* Strip internal edge headers and restore the author's Cache-Control before a
|
|
232
|
-
* cached document Response is served to a client. L1 entries carry the
|
|
233
|
-
* internal staleness/status headers and a rewritten Cache-Control; none of
|
|
234
|
-
* those should reach the browser or an upstream CDN.
|
|
235
|
-
*/
|
|
236
|
-
private toClientResponse;
|
|
237
|
-
/**
|
|
238
|
-
* Store a Response with TTL and optional SWR window (for document-level caching).
|
|
239
|
-
* When KV is configured, also persists to L2.
|
|
240
|
-
*/
|
|
241
|
-
putResponse(key: string, response: Response, ttl: number, swr?: number, tags?: string[]): Promise<void>;
|
|
242
|
-
/**
|
|
243
|
-
* Get a cached function result by key.
|
|
244
|
-
* Follows the same SWR pattern as get() for segment caching.
|
|
245
|
-
* Falls back to KV (L2) on L1 miss.
|
|
246
|
-
*/
|
|
247
|
-
getItem(key: string): Promise<CacheItemResult | null>;
|
|
248
|
-
/**
|
|
249
|
-
* Store a function result with TTL and optional SWR window.
|
|
250
|
-
* When KV is configured, also persists to L2.
|
|
251
|
-
*/
|
|
252
|
-
setItem(key: string, value: string, options?: CacheItemOptions): Promise<void>;
|
|
253
|
-
/**
|
|
254
|
-
* Warn once per isolate that the shell family is inert: getShell/putShell
|
|
255
|
-
* are ONLY called for routes that declared the `ppr` path option, so firing
|
|
256
|
-
* here (not in the constructor) scopes the warning to apps that actually
|
|
257
|
-
* use PPR — a KV-less CFCacheStore is a perfectly fine config otherwise.
|
|
258
|
-
* Without it, the correctness-first fail-open (issue #651) is invisible:
|
|
259
|
-
* every ppr route is a permanent MISS with zero diagnostics.
|
|
260
|
-
* @internal
|
|
261
|
-
*/
|
|
262
|
-
private warnShellFamilyInertOnce;
|
|
263
|
-
/**
|
|
264
|
-
* Get a cached PPR shell entry by key from KV (no L1). Applies the KV read
|
|
265
|
-
* budget, corrupt-entry eviction, hard-expiry, and tag invalidation exactly
|
|
266
|
-
* like kvGetItem, minus the L1 promote. SWR is a plain staleness flag — KV has
|
|
267
|
-
* no REVALIDATING herd guard, so the shell-cache middleware's module-level
|
|
268
|
-
* in-flight set is the recapture stampede guard.
|
|
269
|
-
*/
|
|
270
|
-
getShell(key: string): Promise<{
|
|
271
|
-
entry: ShellCacheEntry;
|
|
272
|
-
shouldRevalidate?: boolean;
|
|
273
|
-
} | null>;
|
|
274
|
-
/**
|
|
275
|
-
* Store a PPR shell entry in KV with TTL and optional SWR window. Non-blocking
|
|
276
|
-
* (waitUntil) like the other KV writes. The tags/taggedAt ride in the envelope
|
|
277
|
-
* so isGloballyInvalidated() can invalidate the shell via the shared KV markers.
|
|
278
|
-
*/
|
|
279
|
-
putShell(key: string, entry: ShellCacheEntry, ttlSeconds?: number, swrSeconds?: number, tags?: string[]): Promise<void>;
|
|
280
|
-
/**
|
|
281
|
-
* Convert string key to Request object for CF Cache API.
|
|
282
|
-
* Includes version in URL if specified (for cache invalidation on code changes).
|
|
283
|
-
* @internal
|
|
284
|
-
*/
|
|
285
|
-
private keyToRequest;
|
|
286
|
-
/**
|
|
287
|
-
* Convert string key to KV key string.
|
|
288
|
-
* Uses same version prefix as Cache API for consistent invalidation.
|
|
289
|
-
* @internal
|
|
290
|
-
*/
|
|
291
|
-
private toKVKey;
|
|
292
|
-
/**
|
|
293
|
-
* Host token for the current request, used to namespace the document KV key.
|
|
294
|
-
* Derived from the same resolveBaseUrl() that namespaces the L1 (Cache API)
|
|
295
|
-
* tier, so a doc entry's KV twin lands under the identical host bucket.
|
|
296
|
-
* Falls back to "_" if the base URL cannot be parsed (it always carries a
|
|
297
|
-
* trailing-slash origin, so parsing succeeds in practice).
|
|
298
|
-
* @internal
|
|
299
|
-
*/
|
|
300
|
-
private docKVHost;
|
|
301
|
-
/**
|
|
302
|
-
* Convert a document key to its host-namespaced KV key. The L1 tier already
|
|
303
|
-
* namespaces document entries by host via keyToRequest/resolveBaseUrl, but the
|
|
304
|
-
* KV fallback keyed only on `doc:{key}`, so two hosts serving the same path
|
|
305
|
-
* could collide on the KV tier (one host serving another's cached document).
|
|
306
|
-
* Prefixing the host closes that cross-host collision. Deterministic per
|
|
307
|
-
* (host, key). Segment/fn/tag-marker KV keys keep toKVKey unchanged: tag
|
|
308
|
-
* markers are intentionally global (invalidation must cross hosts), and the
|
|
309
|
-
* document tier is the one with a request-host context here.
|
|
310
|
-
* @internal
|
|
311
|
-
*/
|
|
312
|
-
private toDocKVKey;
|
|
313
|
-
/**
|
|
314
|
-
* Best-effort delete of a single KV key, reporting (not swallowing) a delete
|
|
315
|
-
* failure as cache-delete. Used by the corrupt-entry self-heal paths.
|
|
316
|
-
* @internal
|
|
317
|
-
*/
|
|
318
|
-
private evictKvKey;
|
|
319
|
-
/**
|
|
320
|
-
* Schedule a corrupt-entry KV eviction as a NON-BLOCKING background task
|
|
321
|
-
* (waitUntil) instead of awaiting it on the request path. The corrupt read has
|
|
322
|
-
* already resolved to a miss; awaiting an unbounded kv.delete here would re-add
|
|
323
|
-
* exactly the multi-second stall the read budgets exist to prevent when the KV
|
|
324
|
-
* namespace is degraded. evictKvKey never rejects (it reports its own failure),
|
|
325
|
-
* so the fire-and-forget fallback is safe when no waitUntil is available.
|
|
326
|
-
* @internal
|
|
327
|
-
*/
|
|
328
|
-
private scheduleKvEvict;
|
|
329
|
-
/**
|
|
330
|
-
* KV-get a JSON envelope, EVICTING the key only when it is genuinely corrupt.
|
|
331
|
-
*
|
|
332
|
-
* Reads as { type: "text" }, NOT { type: "json" }, on purpose: the "json" form
|
|
333
|
-
* fuses the network read and the JSON parse, so a transient KV outage (5xx/429/
|
|
334
|
-
* network blip) is indistinguishable from a malformed body and would delete a
|
|
335
|
-
* still-good cross-colo entry - a self-inflicted miss storm. Reading text lets a
|
|
336
|
-
* transient read error propagate to the caller's outer catch (reported
|
|
337
|
-
* cache-read, the entry left intact); only a JSON.parse failure on a body that
|
|
338
|
-
* WAS successfully read - or an envelope that parses but fails `validate`
|
|
339
|
-
* (fields missing from a truncated write) - is true corruption that evicts +
|
|
340
|
-
* reports cache-corrupt. A MISSING key (kv.get -> null) is a normal miss.
|
|
341
|
-
* @internal
|
|
342
|
-
*/
|
|
343
|
-
private kvGetOrEvict;
|
|
344
|
-
/** KV key for a tag's invalidation marker. */
|
|
345
|
-
private tagMarkerKey;
|
|
346
|
-
/**
|
|
347
|
-
* Header entries carrying an entry's tags (JSON-encoded, comma-safe) and the
|
|
348
|
-
* timestamp they were attached. Returns an empty object when there are no
|
|
349
|
-
* tags so untagged entries stay header-free and skip the invalidation check.
|
|
350
|
-
*/
|
|
351
|
-
private tagHeaderEntries;
|
|
352
|
-
/**
|
|
353
|
-
* Merge the internal tag headers onto an existing Headers instance. The
|
|
354
|
-
* from-scratch paths spread tagHeaderEntries() into an object-literal init;
|
|
355
|
-
* the document put/promote paths build a Headers first, so they .set() each
|
|
356
|
-
* entry instead.
|
|
357
|
-
*/
|
|
358
|
-
private setTagHeaders;
|
|
359
|
-
/** Read an entry's tags/taggedAt back from its headers. */
|
|
360
|
-
private readTagInfo;
|
|
361
|
-
/**
|
|
362
|
-
* Whether an entry tagged at `taggedAt` with `tags` has been invalidated since.
|
|
363
|
-
* Reads the per-tag invalidation markers from KV and returns true if any tag's
|
|
364
|
-
* latest invalidation is at or after taggedAt (>= so a same-millisecond
|
|
365
|
-
* invalidate wins, favouring freshness over staleness). Fails open: KV errors
|
|
366
|
-
* never turn a hit into a wrongful miss-storm beyond this single read.
|
|
367
|
-
*/
|
|
368
|
-
private isGloballyInvalidated;
|
|
369
|
-
/** Synthetic Cache API request for a tag's L1-cached invalidation marker. */
|
|
370
|
-
private tagMarkerRequest;
|
|
371
|
-
/**
|
|
372
|
-
* Read a tag's latest invalidation timestamp (or null if never invalidated)
|
|
373
|
-
* through the cascade: per-request memo -> per-colo L1 cache (only when
|
|
374
|
-
* tagCacheTtl > 0) -> KV (the global truth). The memo is always consulted
|
|
375
|
-
* first so it stays authoritative within a request (read-your-own-writes),
|
|
376
|
-
* and every KV/L1 result is written back into the memo. A Cache API miss
|
|
377
|
-
* always falls through to KV; absence is represented by a cached sentinel,
|
|
378
|
-
* never by a miss.
|
|
379
|
-
*
|
|
380
|
-
* Concurrent reads of the same tag within a request share one in-flight read
|
|
381
|
-
* (the resolved-value memo only collapses sequential reads; parallel segment
|
|
382
|
-
* loading would otherwise issue one KV read per concurrent reader).
|
|
383
|
-
* @internal
|
|
384
|
-
*/
|
|
385
|
-
private readTagMarker;
|
|
386
|
-
/**
|
|
387
|
-
* Uncached body of readTagMarker: L1 (per-colo Cache API, opt-in via
|
|
388
|
-
* tagCacheTtl) -> KV. Writes the resolved value back into the memo.
|
|
389
|
-
* @internal
|
|
390
|
-
*/
|
|
391
|
-
private fetchTagMarker;
|
|
392
|
-
/**
|
|
393
|
-
* Cloudflare Cache-Tags written on a tag's L1 marker entry, namespaced per
|
|
394
|
-
* store so purges never collide with other Cache-Tags in the zone. Three
|
|
395
|
-
* tiers, broad to specific:
|
|
396
|
-
* rg:{ns} - everything this store cached (deploy/nuclear reset)
|
|
397
|
-
* rg:{ns}:lk - all tag-lookup markers
|
|
398
|
-
* rg:{ns}:lk:{tag} - this tag's lookup (the normal updateTag purge target)
|
|
399
|
-
* The tag value is encodeURIComponent'd so commas/spaces can't corrupt the
|
|
400
|
-
* comma-delimited Cache-Tag header.
|
|
401
|
-
* @internal
|
|
402
|
-
*/
|
|
403
|
-
private lookupCacheTags;
|
|
404
|
-
/** The specific Cache-Tag a consumer purges to evict tag `tag`'s lookup. */
|
|
405
|
-
private lookupPurgeTag;
|
|
406
|
-
/**
|
|
407
|
-
* Write a tag marker value into the per-colo L1 Cache API with tagCacheTtl.
|
|
408
|
-
* `null` is stored as the TAG_MARKER_ABSENT sentinel so "no marker yet" is
|
|
409
|
-
* cacheable (most tags are never invalidated - that is where the read savings
|
|
410
|
-
* come from). The entry also carries a namespaced Cache-Tag so an external
|
|
411
|
-
* purge-by-tag (via onRevalidateTag) can evict it across colos promptly,
|
|
412
|
-
* rather than waiting out tagCacheTtl. Best-effort.
|
|
413
|
-
* @internal
|
|
414
|
-
*/
|
|
415
|
-
private putTagMarkerL1;
|
|
416
|
-
/**
|
|
417
|
-
* Invalidate every entry tagged with any of `tags`. Receives the whole batch
|
|
418
|
-
* from one updateTag()/revalidateTag() call so the eager-purge hook fires
|
|
419
|
-
* ONCE (one CDN purge request, not one per tag). For each tag: records the KV
|
|
420
|
-
* marker (the durable cross-colo truth that reads compare taggedAt against),
|
|
421
|
-
* writes the fresh marker straight into this colo's L1 (write-through, NOT
|
|
422
|
-
* delete - a delete would let the next read re-read a not-yet-converged KV
|
|
423
|
-
* value and re-arm the stale window), and memoizes it for same-request
|
|
424
|
-
* read-your-own-writes. Finally fires onRevalidateTag with the namespaced
|
|
425
|
-
* lookup Cache-Tags so a consumer purge evicts the cached lookups in other
|
|
426
|
-
* colos promptly (otherwise they converge within tagCacheTtl).
|
|
427
|
-
*
|
|
428
|
-
* Durable-write integrity: the in-memory write-through (memo + L1) for a tag
|
|
429
|
-
* runs ONLY after that tag's KV marker write is confirmed. If any KV write
|
|
430
|
-
* fails (transient error, or an over-512-byte key), this rejects with the
|
|
431
|
-
* failed tags so an awaiting updateTag() surfaces the failure instead of
|
|
432
|
-
* silently reporting success while other requests/colos serve stale data. The
|
|
433
|
-
* eager purge still fires for the whole batch first (it is additive).
|
|
434
|
-
*/
|
|
435
|
-
/**
|
|
436
|
-
* Build-shell read-through gate (SegmentCacheStore.isTagsInvalidatedSince):
|
|
437
|
-
* a baked shell entry is immutable in the build manifest, so eviction is
|
|
438
|
-
* answered by the SAME KV tag markers updateTag() writes, compared against
|
|
439
|
-
* the entry's build-time createdAt. Thin public wrapper over the private
|
|
440
|
-
* envelope check (identical semantics: marker >= since, fail open).
|
|
441
|
-
*/
|
|
442
|
-
isTagsInvalidatedSince(tags: string[], sinceMs: number): Promise<boolean>;
|
|
443
|
-
invalidateTags(tags: string[]): Promise<void>;
|
|
444
|
-
/**
|
|
445
|
-
* KV fallback for segment cache reads.
|
|
446
|
-
* Returns null if KV is not configured, entry is missing, or expired.
|
|
447
|
-
* Promotes hits to L1 via waitUntil.
|
|
448
|
-
* @internal
|
|
449
|
-
*/
|
|
450
|
-
private kvGetSegment;
|
|
451
|
-
/**
|
|
452
|
-
* Write segment data to KV.
|
|
453
|
-
* @internal
|
|
454
|
-
*/
|
|
455
|
-
private kvSetSegment;
|
|
456
|
-
/**
|
|
457
|
-
* Promote segment data from KV to L1 Cache API.
|
|
458
|
-
* @internal
|
|
459
|
-
*/
|
|
460
|
-
private promoteSegmentToL1;
|
|
461
|
-
/**
|
|
462
|
-
* KV fallback for function cache reads.
|
|
463
|
-
* @internal
|
|
464
|
-
*/
|
|
465
|
-
private kvGetItem;
|
|
466
|
-
/**
|
|
467
|
-
* Promote function cache data from KV to L1.
|
|
468
|
-
* @internal
|
|
469
|
-
*/
|
|
470
|
-
private promoteItemToL1;
|
|
471
|
-
/**
|
|
472
|
-
* KV fallback for document cache reads.
|
|
473
|
-
* @internal
|
|
474
|
-
*/
|
|
475
|
-
private kvGetResponse;
|
|
476
|
-
/**
|
|
477
|
-
* Promote document cache data from KV to L1.
|
|
478
|
-
* @internal
|
|
479
|
-
*/
|
|
480
|
-
private promoteResponseToL1;
|
|
481
|
-
}
|