@rangojs/router 0.0.0-experimental.ce770c9a → 0.0.0-experimental.debug-cache-fix
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/dist/vite/index.js +1 -1
- package/package.json +1 -1
- package/skills/parallel/SKILL.md +67 -0
- package/src/browser/partial-update.ts +11 -0
- package/src/cache/cache-runtime.ts +15 -11
- package/src/cache/cache-scope.ts +48 -5
- package/src/router/match-middleware/background-revalidation.ts +12 -1
- package/src/router/match-middleware/cache-lookup.ts +42 -2
- package/src/router/match-middleware/cache-store.ts +21 -4
- package/src/router/match-result.ts +11 -5
- package/src/router/router-context.ts +1 -0
- package/src/router/segment-resolution/fresh.ts +23 -12
- package/src/router/segment-resolution/revalidation.ts +35 -22
- package/src/types/handler-context.ts +103 -17
- package/dist/__internal.d.ts +0 -83
- package/dist/__internal.d.ts.map +0 -1
- package/dist/__internal.js +0 -19
- package/dist/__internal.js.map +0 -1
- package/dist/__mocks__/version.d.ts +0 -7
- package/dist/__mocks__/version.d.ts.map +0 -1
- package/dist/__mocks__/version.js +0 -7
- package/dist/__mocks__/version.js.map +0 -1
- package/dist/__tests__/client-href.test.d.ts +0 -2
- package/dist/__tests__/client-href.test.d.ts.map +0 -1
- package/dist/__tests__/client-href.test.js +0 -74
- package/dist/__tests__/client-href.test.js.map +0 -1
- package/dist/__tests__/component-utils.test.d.ts +0 -2
- package/dist/__tests__/component-utils.test.d.ts.map +0 -1
- package/dist/__tests__/component-utils.test.js +0 -51
- package/dist/__tests__/component-utils.test.js.map +0 -1
- package/dist/__tests__/event-controller.test.d.ts +0 -2
- package/dist/__tests__/event-controller.test.d.ts.map +0 -1
- package/dist/__tests__/event-controller.test.js +0 -538
- package/dist/__tests__/event-controller.test.js.map +0 -1
- package/dist/__tests__/helpers/route-tree.d.ts +0 -118
- package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
- package/dist/__tests__/helpers/route-tree.js +0 -374
- package/dist/__tests__/helpers/route-tree.js.map +0 -1
- package/dist/__tests__/match-result.test.d.ts +0 -2
- package/dist/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/__tests__/match-result.test.js +0 -154
- package/dist/__tests__/match-result.test.js.map +0 -1
- package/dist/__tests__/navigation-store.test.d.ts +0 -2
- package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
- package/dist/__tests__/navigation-store.test.js +0 -440
- package/dist/__tests__/navigation-store.test.js.map +0 -1
- package/dist/__tests__/partial-update.test.d.ts +0 -2
- package/dist/__tests__/partial-update.test.d.ts.map +0 -1
- package/dist/__tests__/partial-update.test.js +0 -1009
- package/dist/__tests__/partial-update.test.js.map +0 -1
- package/dist/__tests__/reverse-types.test.d.ts +0 -8
- package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
- package/dist/__tests__/reverse-types.test.js +0 -656
- package/dist/__tests__/reverse-types.test.js.map +0 -1
- package/dist/__tests__/route-definition.test.d.ts +0 -2
- package/dist/__tests__/route-definition.test.d.ts.map +0 -1
- package/dist/__tests__/route-definition.test.js +0 -55
- package/dist/__tests__/route-definition.test.js.map +0 -1
- package/dist/__tests__/router-helpers.test.d.ts +0 -2
- package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
- package/dist/__tests__/router-helpers.test.js +0 -377
- package/dist/__tests__/router-helpers.test.js.map +0 -1
- package/dist/__tests__/router-integration-2.test.d.ts +0 -2
- package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration-2.test.js +0 -426
- package/dist/__tests__/router-integration-2.test.js.map +0 -1
- package/dist/__tests__/router-integration.test.d.ts +0 -2
- package/dist/__tests__/router-integration.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration.test.js +0 -1051
- package/dist/__tests__/router-integration.test.js.map +0 -1
- package/dist/__tests__/search-params.test.d.ts +0 -5
- package/dist/__tests__/search-params.test.d.ts.map +0 -1
- package/dist/__tests__/search-params.test.js +0 -306
- package/dist/__tests__/search-params.test.js.map +0 -1
- package/dist/__tests__/segment-system.test.d.ts +0 -2
- package/dist/__tests__/segment-system.test.d.ts.map +0 -1
- package/dist/__tests__/segment-system.test.js +0 -627
- package/dist/__tests__/segment-system.test.js.map +0 -1
- package/dist/__tests__/static-handler-types.test.d.ts +0 -8
- package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
- package/dist/__tests__/static-handler-types.test.js +0 -63
- package/dist/__tests__/static-handler-types.test.js.map +0 -1
- package/dist/__tests__/urls.test.d.ts +0 -2
- package/dist/__tests__/urls.test.d.ts.map +0 -1
- package/dist/__tests__/urls.test.js +0 -421
- package/dist/__tests__/urls.test.js.map +0 -1
- package/dist/__tests__/use-mount.test.d.ts +0 -2
- package/dist/__tests__/use-mount.test.d.ts.map +0 -1
- package/dist/__tests__/use-mount.test.js +0 -35
- package/dist/__tests__/use-mount.test.js.map +0 -1
- package/dist/bin/rango.d.ts +0 -2
- package/dist/bin/rango.d.ts.map +0 -1
- package/dist/bin/rango.js.map +0 -1
- package/dist/browser/event-controller.d.ts +0 -191
- package/dist/browser/event-controller.d.ts.map +0 -1
- package/dist/browser/event-controller.js +0 -559
- package/dist/browser/event-controller.js.map +0 -1
- package/dist/browser/index.d.ts +0 -2
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -14
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/link-interceptor.d.ts +0 -38
- package/dist/browser/link-interceptor.d.ts.map +0 -1
- package/dist/browser/link-interceptor.js +0 -99
- package/dist/browser/link-interceptor.js.map +0 -1
- package/dist/browser/logging.d.ts +0 -10
- package/dist/browser/logging.d.ts.map +0 -1
- package/dist/browser/logging.js +0 -29
- package/dist/browser/logging.js.map +0 -1
- package/dist/browser/lru-cache.d.ts +0 -17
- package/dist/browser/lru-cache.d.ts.map +0 -1
- package/dist/browser/lru-cache.js +0 -50
- package/dist/browser/lru-cache.js.map +0 -1
- package/dist/browser/merge-segment-loaders.d.ts +0 -39
- package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
- package/dist/browser/merge-segment-loaders.js +0 -102
- package/dist/browser/merge-segment-loaders.js.map +0 -1
- package/dist/browser/navigation-bridge.d.ts +0 -102
- package/dist/browser/navigation-bridge.d.ts.map +0 -1
- package/dist/browser/navigation-bridge.js +0 -708
- package/dist/browser/navigation-bridge.js.map +0 -1
- package/dist/browser/navigation-client.d.ts +0 -25
- package/dist/browser/navigation-client.d.ts.map +0 -1
- package/dist/browser/navigation-client.js +0 -157
- package/dist/browser/navigation-client.js.map +0 -1
- package/dist/browser/navigation-store.d.ts +0 -101
- package/dist/browser/navigation-store.d.ts.map +0 -1
- package/dist/browser/navigation-store.js +0 -625
- package/dist/browser/navigation-store.js.map +0 -1
- package/dist/browser/partial-update.d.ts +0 -75
- package/dist/browser/partial-update.d.ts.map +0 -1
- package/dist/browser/partial-update.js +0 -426
- package/dist/browser/partial-update.js.map +0 -1
- package/dist/browser/react/Link.d.ts +0 -86
- package/dist/browser/react/Link.d.ts.map +0 -1
- package/dist/browser/react/Link.js +0 -128
- package/dist/browser/react/Link.js.map +0 -1
- package/dist/browser/react/NavigationProvider.d.ts +0 -63
- package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
- package/dist/browser/react/NavigationProvider.js +0 -216
- package/dist/browser/react/NavigationProvider.js.map +0 -1
- package/dist/browser/react/ScrollRestoration.d.ts +0 -75
- package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
- package/dist/browser/react/ScrollRestoration.js +0 -57
- package/dist/browser/react/ScrollRestoration.js.map +0 -1
- package/dist/browser/react/context.d.ts +0 -46
- package/dist/browser/react/context.d.ts.map +0 -1
- package/dist/browser/react/context.js +0 -10
- package/dist/browser/react/context.js.map +0 -1
- package/dist/browser/react/index.d.ts +0 -11
- package/dist/browser/react/index.d.ts.map +0 -1
- package/dist/browser/react/index.js +0 -22
- package/dist/browser/react/index.js.map +0 -1
- package/dist/browser/react/location-state-shared.d.ts +0 -63
- package/dist/browser/react/location-state-shared.d.ts.map +0 -1
- package/dist/browser/react/location-state-shared.js +0 -81
- package/dist/browser/react/location-state-shared.js.map +0 -1
- package/dist/browser/react/location-state.d.ts +0 -23
- package/dist/browser/react/location-state.d.ts.map +0 -1
- package/dist/browser/react/location-state.js +0 -29
- package/dist/browser/react/location-state.js.map +0 -1
- package/dist/browser/react/mount-context.d.ts +0 -24
- package/dist/browser/react/mount-context.d.ts.map +0 -1
- package/dist/browser/react/mount-context.js +0 -24
- package/dist/browser/react/mount-context.js.map +0 -1
- package/dist/browser/react/use-action.d.ts +0 -64
- package/dist/browser/react/use-action.d.ts.map +0 -1
- package/dist/browser/react/use-action.js +0 -134
- package/dist/browser/react/use-action.js.map +0 -1
- package/dist/browser/react/use-client-cache.d.ts +0 -41
- package/dist/browser/react/use-client-cache.d.ts.map +0 -1
- package/dist/browser/react/use-client-cache.js +0 -39
- package/dist/browser/react/use-client-cache.js.map +0 -1
- package/dist/browser/react/use-handle.d.ts +0 -31
- package/dist/browser/react/use-handle.d.ts.map +0 -1
- package/dist/browser/react/use-handle.js +0 -144
- package/dist/browser/react/use-handle.js.map +0 -1
- package/dist/browser/react/use-href.d.ts +0 -33
- package/dist/browser/react/use-href.d.ts.map +0 -1
- package/dist/browser/react/use-href.js +0 -39
- package/dist/browser/react/use-href.js.map +0 -1
- package/dist/browser/react/use-link-status.d.ts +0 -37
- package/dist/browser/react/use-link-status.d.ts.map +0 -1
- package/dist/browser/react/use-link-status.js +0 -99
- package/dist/browser/react/use-link-status.js.map +0 -1
- package/dist/browser/react/use-mount.d.ts +0 -25
- package/dist/browser/react/use-mount.d.ts.map +0 -1
- package/dist/browser/react/use-mount.js +0 -30
- package/dist/browser/react/use-mount.js.map +0 -1
- package/dist/browser/react/use-navigation.d.ts +0 -27
- package/dist/browser/react/use-navigation.d.ts.map +0 -1
- package/dist/browser/react/use-navigation.js +0 -87
- package/dist/browser/react/use-navigation.js.map +0 -1
- package/dist/browser/react/use-segments.d.ts +0 -38
- package/dist/browser/react/use-segments.d.ts.map +0 -1
- package/dist/browser/react/use-segments.js +0 -130
- package/dist/browser/react/use-segments.js.map +0 -1
- package/dist/browser/request-controller.d.ts +0 -26
- package/dist/browser/request-controller.d.ts.map +0 -1
- package/dist/browser/request-controller.js +0 -147
- package/dist/browser/request-controller.js.map +0 -1
- package/dist/browser/rsc-router.d.ts +0 -129
- package/dist/browser/rsc-router.d.ts.map +0 -1
- package/dist/browser/rsc-router.js +0 -195
- package/dist/browser/rsc-router.js.map +0 -1
- package/dist/browser/scroll-restoration.d.ts +0 -93
- package/dist/browser/scroll-restoration.d.ts.map +0 -1
- package/dist/browser/scroll-restoration.js +0 -321
- package/dist/browser/scroll-restoration.js.map +0 -1
- package/dist/browser/segment-structure-assert.d.ts +0 -17
- package/dist/browser/segment-structure-assert.d.ts.map +0 -1
- package/dist/browser/segment-structure-assert.js +0 -59
- package/dist/browser/segment-structure-assert.js.map +0 -1
- package/dist/browser/server-action-bridge.d.ts +0 -26
- package/dist/browser/server-action-bridge.d.ts.map +0 -1
- package/dist/browser/server-action-bridge.js +0 -668
- package/dist/browser/server-action-bridge.js.map +0 -1
- package/dist/browser/shallow.d.ts +0 -12
- package/dist/browser/shallow.d.ts.map +0 -1
- package/dist/browser/shallow.js +0 -34
- package/dist/browser/shallow.js.map +0 -1
- package/dist/browser/types.d.ts +0 -369
- package/dist/browser/types.d.ts.map +0 -1
- package/dist/browser/types.js +0 -2
- package/dist/browser/types.js.map +0 -1
- package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
- package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-cli.test.js +0 -237
- package/dist/build/__tests__/generate-cli.test.js.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.js +0 -119
- package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
- package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.js +0 -620
- package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.js +0 -308
- package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
- package/dist/build/generate-manifest.d.ts +0 -81
- package/dist/build/generate-manifest.d.ts.map +0 -1
- package/dist/build/generate-manifest.js +0 -276
- package/dist/build/generate-manifest.js.map +0 -1
- package/dist/build/generate-route-types.d.ts +0 -115
- package/dist/build/generate-route-types.d.ts.map +0 -1
- package/dist/build/generate-route-types.js +0 -740
- package/dist/build/generate-route-types.js.map +0 -1
- package/dist/build/index.d.ts +0 -21
- package/dist/build/index.d.ts.map +0 -1
- package/dist/build/index.js +0 -21
- package/dist/build/index.js.map +0 -1
- package/dist/build/route-trie.d.ts +0 -71
- package/dist/build/route-trie.d.ts.map +0 -1
- package/dist/build/route-trie.js +0 -175
- package/dist/build/route-trie.js.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
- package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.js +0 -208
- package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
- package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
- package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
- package/dist/cache/__tests__/document-cache.test.js +0 -345
- package/dist/cache/__tests__/document-cache.test.js.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
- package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
- package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-store.test.js +0 -367
- package/dist/cache/__tests__/memory-store.test.js.map +0 -1
- package/dist/cache/cache-scope.d.ts +0 -102
- package/dist/cache/cache-scope.d.ts.map +0 -1
- package/dist/cache/cache-scope.js +0 -440
- package/dist/cache/cache-scope.js.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
- package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
- package/dist/cache/cf/cf-cache-store.d.ts +0 -165
- package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
- package/dist/cache/cf/cf-cache-store.js +0 -242
- package/dist/cache/cf/cf-cache-store.js.map +0 -1
- package/dist/cache/cf/index.d.ts +0 -14
- package/dist/cache/cf/index.d.ts.map +0 -1
- package/dist/cache/cf/index.js +0 -17
- package/dist/cache/cf/index.js.map +0 -1
- package/dist/cache/document-cache.d.ts +0 -64
- package/dist/cache/document-cache.d.ts.map +0 -1
- package/dist/cache/document-cache.js +0 -228
- package/dist/cache/document-cache.js.map +0 -1
- package/dist/cache/index.d.ts +0 -19
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -21
- package/dist/cache/index.js.map +0 -1
- package/dist/cache/memory-segment-store.d.ts +0 -110
- package/dist/cache/memory-segment-store.d.ts.map +0 -1
- package/dist/cache/memory-segment-store.js +0 -117
- package/dist/cache/memory-segment-store.js.map +0 -1
- package/dist/cache/memory-store.d.ts +0 -41
- package/dist/cache/memory-store.d.ts.map +0 -1
- package/dist/cache/memory-store.js +0 -191
- package/dist/cache/memory-store.js.map +0 -1
- package/dist/cache/types.d.ts +0 -317
- package/dist/cache/types.d.ts.map +0 -1
- package/dist/cache/types.js +0 -12
- package/dist/cache/types.js.map +0 -1
- package/dist/client.d.ts +0 -248
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -367
- package/dist/client.js.map +0 -1
- package/dist/client.rsc.d.ts +0 -26
- package/dist/client.rsc.d.ts.map +0 -1
- package/dist/client.rsc.js +0 -46
- package/dist/client.rsc.js.map +0 -1
- package/dist/component-utils.d.ts +0 -36
- package/dist/component-utils.d.ts.map +0 -1
- package/dist/component-utils.js +0 -61
- package/dist/component-utils.js.map +0 -1
- package/dist/components/DefaultDocument.d.ts +0 -13
- package/dist/components/DefaultDocument.d.ts.map +0 -1
- package/dist/components/DefaultDocument.js +0 -15
- package/dist/components/DefaultDocument.js.map +0 -1
- package/dist/debug.d.ts +0 -58
- package/dist/debug.d.ts.map +0 -1
- package/dist/debug.js +0 -157
- package/dist/debug.js.map +0 -1
- package/dist/default-error-boundary.d.ts +0 -11
- package/dist/default-error-boundary.d.ts.map +0 -1
- package/dist/default-error-boundary.js +0 -45
- package/dist/default-error-boundary.js.map +0 -1
- package/dist/deps/browser.d.ts +0 -2
- package/dist/deps/browser.d.ts.map +0 -1
- package/dist/deps/browser.js +0 -3
- package/dist/deps/browser.js.map +0 -1
- package/dist/deps/html-stream-client.d.ts +0 -2
- package/dist/deps/html-stream-client.d.ts.map +0 -1
- package/dist/deps/html-stream-client.js +0 -3
- package/dist/deps/html-stream-client.js.map +0 -1
- package/dist/deps/html-stream-server.d.ts +0 -2
- package/dist/deps/html-stream-server.d.ts.map +0 -1
- package/dist/deps/html-stream-server.js +0 -3
- package/dist/deps/html-stream-server.js.map +0 -1
- package/dist/deps/rsc.d.ts +0 -2
- package/dist/deps/rsc.d.ts.map +0 -1
- package/dist/deps/rsc.js +0 -4
- package/dist/deps/rsc.js.map +0 -1
- package/dist/deps/ssr.d.ts +0 -2
- package/dist/deps/ssr.d.ts.map +0 -1
- package/dist/deps/ssr.js +0 -3
- package/dist/deps/ssr.js.map +0 -1
- package/dist/errors.d.ts +0 -174
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -241
- package/dist/errors.js.map +0 -1
- package/dist/handle.d.ts +0 -78
- package/dist/handle.d.ts.map +0 -1
- package/dist/handle.js +0 -82
- package/dist/handle.js.map +0 -1
- package/dist/handles/MetaTags.d.ts +0 -14
- package/dist/handles/MetaTags.d.ts.map +0 -1
- package/dist/handles/MetaTags.js +0 -136
- package/dist/handles/MetaTags.js.map +0 -1
- package/dist/handles/index.d.ts +0 -6
- package/dist/handles/index.d.ts.map +0 -1
- package/dist/handles/index.js +0 -6
- package/dist/handles/index.js.map +0 -1
- package/dist/handles/meta.d.ts +0 -39
- package/dist/handles/meta.d.ts.map +0 -1
- package/dist/handles/meta.js +0 -202
- package/dist/handles/meta.js.map +0 -1
- package/dist/host/__tests__/errors.test.d.ts +0 -2
- package/dist/host/__tests__/errors.test.d.ts.map +0 -1
- package/dist/host/__tests__/errors.test.js +0 -76
- package/dist/host/__tests__/errors.test.js.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.js +0 -251
- package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
- package/dist/host/__tests__/router.test.d.ts +0 -2
- package/dist/host/__tests__/router.test.d.ts.map +0 -1
- package/dist/host/__tests__/router.test.js +0 -241
- package/dist/host/__tests__/router.test.js.map +0 -1
- package/dist/host/__tests__/testing.test.d.ts +0 -2
- package/dist/host/__tests__/testing.test.d.ts.map +0 -1
- package/dist/host/__tests__/testing.test.js +0 -64
- package/dist/host/__tests__/testing.test.js.map +0 -1
- package/dist/host/__tests__/utils.test.d.ts +0 -2
- package/dist/host/__tests__/utils.test.d.ts.map +0 -1
- package/dist/host/__tests__/utils.test.js +0 -29
- package/dist/host/__tests__/utils.test.js.map +0 -1
- package/dist/host/cookie-handler.d.ts +0 -34
- package/dist/host/cookie-handler.d.ts.map +0 -1
- package/dist/host/cookie-handler.js +0 -124
- package/dist/host/cookie-handler.js.map +0 -1
- package/dist/host/errors.d.ts +0 -56
- package/dist/host/errors.d.ts.map +0 -1
- package/dist/host/errors.js +0 -79
- package/dist/host/errors.js.map +0 -1
- package/dist/host/index.d.ts +0 -29
- package/dist/host/index.d.ts.map +0 -1
- package/dist/host/index.js +0 -32
- package/dist/host/index.js.map +0 -1
- package/dist/host/pattern-matcher.d.ts +0 -36
- package/dist/host/pattern-matcher.d.ts.map +0 -1
- package/dist/host/pattern-matcher.js +0 -172
- package/dist/host/pattern-matcher.js.map +0 -1
- package/dist/host/router.d.ts +0 -26
- package/dist/host/router.d.ts.map +0 -1
- package/dist/host/router.js +0 -218
- package/dist/host/router.js.map +0 -1
- package/dist/host/testing.d.ts +0 -36
- package/dist/host/testing.d.ts.map +0 -1
- package/dist/host/testing.js +0 -55
- package/dist/host/testing.js.map +0 -1
- package/dist/host/types.d.ts +0 -115
- package/dist/host/types.d.ts.map +0 -1
- package/dist/host/types.js +0 -7
- package/dist/host/types.js.map +0 -1
- package/dist/host/utils.d.ts +0 -21
- package/dist/host/utils.d.ts.map +0 -1
- package/dist/host/utils.js +0 -23
- package/dist/host/utils.js.map +0 -1
- package/dist/href-client.d.ts +0 -131
- package/dist/href-client.d.ts.map +0 -1
- package/dist/href-client.js +0 -64
- package/dist/href-client.js.map +0 -1
- package/dist/href-context.d.ts +0 -29
- package/dist/href-context.d.ts.map +0 -1
- package/dist/href-context.js +0 -21
- package/dist/href-context.js.map +0 -1
- package/dist/index.d.ts +0 -73
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -91
- package/dist/index.js.map +0 -1
- package/dist/index.rsc.d.ts +0 -32
- package/dist/index.rsc.d.ts.map +0 -1
- package/dist/index.rsc.js +0 -40
- package/dist/index.rsc.js.map +0 -1
- package/dist/internal-debug.d.ts +0 -2
- package/dist/internal-debug.d.ts.map +0 -1
- package/dist/internal-debug.js +0 -5
- package/dist/internal-debug.js.map +0 -1
- package/dist/loader.d.ts +0 -14
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -20
- package/dist/loader.js.map +0 -1
- package/dist/loader.rsc.d.ts +0 -19
- package/dist/loader.rsc.d.ts.map +0 -1
- package/dist/loader.rsc.js +0 -99
- package/dist/loader.rsc.js.map +0 -1
- package/dist/network-error-thrower.d.ts +0 -17
- package/dist/network-error-thrower.d.ts.map +0 -1
- package/dist/network-error-thrower.js +0 -14
- package/dist/network-error-thrower.js.map +0 -1
- package/dist/outlet-context.d.ts +0 -13
- package/dist/outlet-context.d.ts.map +0 -1
- package/dist/outlet-context.js +0 -3
- package/dist/outlet-context.js.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
- package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.js +0 -148
- package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
- package/dist/prerender/param-hash.d.ts +0 -16
- package/dist/prerender/param-hash.d.ts.map +0 -1
- package/dist/prerender/param-hash.js +0 -36
- package/dist/prerender/param-hash.js.map +0 -1
- package/dist/prerender/store.d.ts +0 -38
- package/dist/prerender/store.d.ts.map +0 -1
- package/dist/prerender/store.js +0 -61
- package/dist/prerender/store.js.map +0 -1
- package/dist/prerender.d.ts +0 -66
- package/dist/prerender.d.ts.map +0 -1
- package/dist/prerender.js +0 -57
- package/dist/prerender.js.map +0 -1
- package/dist/reverse.d.ts +0 -196
- package/dist/reverse.d.ts.map +0 -1
- package/dist/reverse.js +0 -78
- package/dist/reverse.js.map +0 -1
- package/dist/root-error-boundary.d.ts +0 -33
- package/dist/root-error-boundary.d.ts.map +0 -1
- package/dist/root-error-boundary.js +0 -165
- package/dist/root-error-boundary.js.map +0 -1
- package/dist/route-content-wrapper.d.ts +0 -46
- package/dist/route-content-wrapper.d.ts.map +0 -1
- package/dist/route-content-wrapper.js +0 -77
- package/dist/route-content-wrapper.js.map +0 -1
- package/dist/route-definition.d.ts +0 -421
- package/dist/route-definition.d.ts.map +0 -1
- package/dist/route-definition.js +0 -868
- package/dist/route-definition.js.map +0 -1
- package/dist/route-map-builder.d.ts +0 -155
- package/dist/route-map-builder.d.ts.map +0 -1
- package/dist/route-map-builder.js +0 -237
- package/dist/route-map-builder.js.map +0 -1
- package/dist/route-types.d.ts +0 -165
- package/dist/route-types.d.ts.map +0 -1
- package/dist/route-types.js +0 -7
- package/dist/route-types.js.map +0 -1
- package/dist/router/__tests__/handler-context.test.d.ts +0 -2
- package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/handler-context.test.js +0 -65
- package/dist/router/__tests__/handler-context.test.js.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
- package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
- package/dist/router/__tests__/match-context.test.d.ts +0 -2
- package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-context.test.js +0 -92
- package/dist/router/__tests__/match-context.test.js.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
- package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.js +0 -417
- package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
- package/dist/router/__tests__/match-result.test.d.ts +0 -2
- package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-result.test.js +0 -457
- package/dist/router/__tests__/match-result.test.js.map +0 -1
- package/dist/router/__tests__/on-error.test.d.ts +0 -2
- package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
- package/dist/router/__tests__/on-error.test.js +0 -678
- package/dist/router/__tests__/on-error.test.js.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
- package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.js +0 -629
- package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
- package/dist/router/error-handling.d.ts +0 -77
- package/dist/router/error-handling.d.ts.map +0 -1
- package/dist/router/error-handling.js +0 -202
- package/dist/router/error-handling.js.map +0 -1
- package/dist/router/handler-context.d.ts +0 -20
- package/dist/router/handler-context.d.ts.map +0 -1
- package/dist/router/handler-context.js +0 -198
- package/dist/router/handler-context.js.map +0 -1
- package/dist/router/intercept-resolution.d.ts +0 -66
- package/dist/router/intercept-resolution.d.ts.map +0 -1
- package/dist/router/intercept-resolution.js +0 -246
- package/dist/router/intercept-resolution.js.map +0 -1
- package/dist/router/loader-resolution.d.ts +0 -64
- package/dist/router/loader-resolution.d.ts.map +0 -1
- package/dist/router/loader-resolution.js +0 -284
- package/dist/router/loader-resolution.js.map +0 -1
- package/dist/router/logging.d.ts +0 -15
- package/dist/router/logging.d.ts.map +0 -1
- package/dist/router/logging.js +0 -99
- package/dist/router/logging.js.map +0 -1
- package/dist/router/manifest.d.ts +0 -22
- package/dist/router/manifest.d.ts.map +0 -1
- package/dist/router/manifest.js +0 -181
- package/dist/router/manifest.js.map +0 -1
- package/dist/router/match-api.d.ts +0 -35
- package/dist/router/match-api.d.ts.map +0 -1
- package/dist/router/match-api.js +0 -406
- package/dist/router/match-api.js.map +0 -1
- package/dist/router/match-context.d.ts +0 -206
- package/dist/router/match-context.d.ts.map +0 -1
- package/dist/router/match-context.js +0 -17
- package/dist/router/match-context.js.map +0 -1
- package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
- package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
- package/dist/router/match-middleware/background-revalidation.js +0 -75
- package/dist/router/match-middleware/background-revalidation.js.map +0 -1
- package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
- package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-lookup.js +0 -257
- package/dist/router/match-middleware/cache-lookup.js.map +0 -1
- package/dist/router/match-middleware/cache-store.d.ts +0 -113
- package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-store.js +0 -108
- package/dist/router/match-middleware/cache-store.js.map +0 -1
- package/dist/router/match-middleware/index.d.ts +0 -81
- package/dist/router/match-middleware/index.d.ts.map +0 -1
- package/dist/router/match-middleware/index.js +0 -80
- package/dist/router/match-middleware/index.js.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
- package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.js +0 -134
- package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
- package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
- package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/segment-resolution.js +0 -53
- package/dist/router/match-middleware/segment-resolution.js.map +0 -1
- package/dist/router/match-pipelines.d.ts +0 -147
- package/dist/router/match-pipelines.d.ts.map +0 -1
- package/dist/router/match-pipelines.js +0 -82
- package/dist/router/match-pipelines.js.map +0 -1
- package/dist/router/match-result.d.ts +0 -126
- package/dist/router/match-result.d.ts.map +0 -1
- package/dist/router/match-result.js +0 -93
- package/dist/router/match-result.js.map +0 -1
- package/dist/router/metrics.d.ts +0 -20
- package/dist/router/metrics.d.ts.map +0 -1
- package/dist/router/metrics.js +0 -47
- package/dist/router/metrics.js.map +0 -1
- package/dist/router/middleware.d.ts +0 -249
- package/dist/router/middleware.d.ts.map +0 -1
- package/dist/router/middleware.js +0 -434
- package/dist/router/middleware.js.map +0 -1
- package/dist/router/middleware.test.d.ts +0 -2
- package/dist/router/middleware.test.d.ts.map +0 -1
- package/dist/router/middleware.test.js +0 -816
- package/dist/router/middleware.test.js.map +0 -1
- package/dist/router/pattern-matching.d.ts +0 -149
- package/dist/router/pattern-matching.d.ts.map +0 -1
- package/dist/router/pattern-matching.js +0 -349
- package/dist/router/pattern-matching.js.map +0 -1
- package/dist/router/revalidation.d.ts +0 -44
- package/dist/router/revalidation.d.ts.map +0 -1
- package/dist/router/revalidation.js +0 -147
- package/dist/router/revalidation.js.map +0 -1
- package/dist/router/router-context.d.ts +0 -135
- package/dist/router/router-context.d.ts.map +0 -1
- package/dist/router/router-context.js +0 -36
- package/dist/router/router-context.js.map +0 -1
- package/dist/router/segment-resolution.d.ts +0 -127
- package/dist/router/segment-resolution.d.ts.map +0 -1
- package/dist/router/segment-resolution.js +0 -919
- package/dist/router/segment-resolution.js.map +0 -1
- package/dist/router/trie-matching.d.ts +0 -40
- package/dist/router/trie-matching.d.ts.map +0 -1
- package/dist/router/trie-matching.js +0 -127
- package/dist/router/trie-matching.js.map +0 -1
- package/dist/router/types.d.ts +0 -136
- package/dist/router/types.d.ts.map +0 -1
- package/dist/router/types.js +0 -7
- package/dist/router/types.js.map +0 -1
- package/dist/router.d.ts +0 -753
- package/dist/router.d.ts.map +0 -1
- package/dist/router.gen.d.ts +0 -6
- package/dist/router.gen.d.ts.map +0 -1
- package/dist/router.gen.js +0 -6
- package/dist/router.gen.js.map +0 -1
- package/dist/router.js +0 -1304
- package/dist/router.js.map +0 -1
- package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
- package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
- package/dist/rsc/__tests__/helpers.test.js +0 -140
- package/dist/rsc/__tests__/helpers.test.js.map +0 -1
- package/dist/rsc/handler.d.ts +0 -45
- package/dist/rsc/handler.d.ts.map +0 -1
- package/dist/rsc/handler.js +0 -1172
- package/dist/rsc/handler.js.map +0 -1
- package/dist/rsc/helpers.d.ts +0 -16
- package/dist/rsc/helpers.d.ts.map +0 -1
- package/dist/rsc/helpers.js +0 -55
- package/dist/rsc/helpers.js.map +0 -1
- package/dist/rsc/index.d.ts +0 -22
- package/dist/rsc/index.d.ts.map +0 -1
- package/dist/rsc/index.js +0 -23
- package/dist/rsc/index.js.map +0 -1
- package/dist/rsc/nonce.d.ts +0 -9
- package/dist/rsc/nonce.d.ts.map +0 -1
- package/dist/rsc/nonce.js +0 -18
- package/dist/rsc/nonce.js.map +0 -1
- package/dist/rsc/types.d.ts +0 -206
- package/dist/rsc/types.d.ts.map +0 -1
- package/dist/rsc/types.js +0 -8
- package/dist/rsc/types.js.map +0 -1
- package/dist/search-params.d.ts +0 -103
- package/dist/search-params.d.ts.map +0 -1
- package/dist/search-params.js +0 -74
- package/dist/search-params.js.map +0 -1
- package/dist/segment-system.d.ts +0 -75
- package/dist/segment-system.d.ts.map +0 -1
- package/dist/segment-system.js +0 -336
- package/dist/segment-system.js.map +0 -1
- package/dist/server/context.d.ts +0 -245
- package/dist/server/context.d.ts.map +0 -1
- package/dist/server/context.js +0 -197
- package/dist/server/context.js.map +0 -1
- package/dist/server/fetchable-loader-store.d.ts +0 -18
- package/dist/server/fetchable-loader-store.d.ts.map +0 -1
- package/dist/server/fetchable-loader-store.js +0 -18
- package/dist/server/fetchable-loader-store.js.map +0 -1
- package/dist/server/handle-store.d.ts +0 -85
- package/dist/server/handle-store.d.ts.map +0 -1
- package/dist/server/handle-store.js +0 -142
- package/dist/server/handle-store.js.map +0 -1
- package/dist/server/loader-registry.d.ts +0 -55
- package/dist/server/loader-registry.d.ts.map +0 -1
- package/dist/server/loader-registry.js +0 -132
- package/dist/server/loader-registry.js.map +0 -1
- package/dist/server/request-context.d.ts +0 -226
- package/dist/server/request-context.d.ts.map +0 -1
- package/dist/server/request-context.js +0 -290
- package/dist/server/request-context.js.map +0 -1
- package/dist/server/root-layout.d.ts +0 -4
- package/dist/server/root-layout.d.ts.map +0 -1
- package/dist/server/root-layout.js +0 -5
- package/dist/server/root-layout.js.map +0 -1
- package/dist/server.d.ts +0 -15
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -20
- package/dist/server.js.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
- package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
- package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
- package/dist/ssr/index.d.ts +0 -98
- package/dist/ssr/index.d.ts.map +0 -1
- package/dist/ssr/index.js +0 -158
- package/dist/ssr/index.js.map +0 -1
- package/dist/static-handler.d.ts +0 -50
- package/dist/static-handler.d.ts.map +0 -1
- package/dist/static-handler.gen.d.ts +0 -5
- package/dist/static-handler.gen.d.ts.map +0 -1
- package/dist/static-handler.gen.js +0 -5
- package/dist/static-handler.gen.js.map +0 -1
- package/dist/static-handler.js +0 -29
- package/dist/static-handler.js.map +0 -1
- package/dist/theme/ThemeProvider.d.ts +0 -20
- package/dist/theme/ThemeProvider.d.ts.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -240
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/ThemeScript.d.ts +0 -48
- package/dist/theme/ThemeScript.d.ts.map +0 -1
- package/dist/theme/ThemeScript.js +0 -13
- package/dist/theme/ThemeScript.js.map +0 -1
- package/dist/theme/__tests__/theme.test.d.ts +0 -2
- package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
- package/dist/theme/__tests__/theme.test.js +0 -103
- package/dist/theme/__tests__/theme.test.js.map +0 -1
- package/dist/theme/constants.d.ts +0 -29
- package/dist/theme/constants.d.ts.map +0 -1
- package/dist/theme/constants.js +0 -48
- package/dist/theme/constants.js.map +0 -1
- package/dist/theme/index.d.ts +0 -31
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js +0 -36
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/theme-context.d.ts +0 -40
- package/dist/theme/theme-context.d.ts.map +0 -1
- package/dist/theme/theme-context.js +0 -60
- package/dist/theme/theme-context.js.map +0 -1
- package/dist/theme/theme-script.d.ts +0 -27
- package/dist/theme/theme-script.d.ts.map +0 -1
- package/dist/theme/theme-script.js +0 -147
- package/dist/theme/theme-script.js.map +0 -1
- package/dist/theme/types.d.ts +0 -163
- package/dist/theme/types.d.ts.map +0 -1
- package/dist/theme/types.js +0 -11
- package/dist/theme/types.js.map +0 -1
- package/dist/theme/use-theme.d.ts +0 -12
- package/dist/theme/use-theme.d.ts.map +0 -1
- package/dist/theme/use-theme.js +0 -40
- package/dist/theme/use-theme.js.map +0 -1
- package/dist/types.d.ts +0 -1479
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -10
- package/dist/types.js.map +0 -1
- package/dist/urls.d.ts +0 -441
- package/dist/urls.d.ts.map +0 -1
- package/dist/urls.gen.d.ts +0 -8
- package/dist/urls.gen.d.ts.map +0 -1
- package/dist/urls.gen.js +0 -8
- package/dist/urls.gen.js.map +0 -1
- package/dist/urls.js +0 -443
- package/dist/urls.js.map +0 -1
- package/dist/use-loader.d.ts +0 -127
- package/dist/use-loader.d.ts.map +0 -1
- package/dist/use-loader.js +0 -237
- package/dist/use-loader.js.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
- package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
- package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
- package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.js +0 -39
- package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
- package/dist/vite/ast-handler-extract.d.ts +0 -49
- package/dist/vite/ast-handler-extract.d.ts.map +0 -1
- package/dist/vite/ast-handler-extract.js +0 -249
- package/dist/vite/ast-handler-extract.js.map +0 -1
- package/dist/vite/expose-action-id.d.ts +0 -19
- package/dist/vite/expose-action-id.d.ts.map +0 -1
- package/dist/vite/expose-action-id.js +0 -250
- package/dist/vite/expose-action-id.js.map +0 -1
- package/dist/vite/expose-id-utils.d.ts +0 -69
- package/dist/vite/expose-id-utils.d.ts.map +0 -1
- package/dist/vite/expose-id-utils.js +0 -289
- package/dist/vite/expose-id-utils.js.map +0 -1
- package/dist/vite/expose-internal-ids.d.ts +0 -22
- package/dist/vite/expose-internal-ids.d.ts.map +0 -1
- package/dist/vite/expose-internal-ids.js +0 -886
- package/dist/vite/expose-internal-ids.js.map +0 -1
- package/dist/vite/index.d.ts +0 -149
- package/dist/vite/index.d.ts.map +0 -1
- package/dist/vite/index.js.map +0 -1
- package/dist/vite/index.named-routes.gen.ts +0 -103
- package/dist/vite/package-resolution.d.ts +0 -43
- package/dist/vite/package-resolution.d.ts.map +0 -1
- package/dist/vite/package-resolution.js +0 -112
- package/dist/vite/package-resolution.js.map +0 -1
- package/dist/vite/virtual-entries.d.ts +0 -25
- package/dist/vite/virtual-entries.d.ts.map +0 -1
- package/dist/vite/virtual-entries.js +0 -110
- package/dist/vite/virtual-entries.js.map +0 -1
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
/// <reference path="../../vite/version.d.ts" />
|
|
2
|
-
import { getRequestContext, } from "../../server/request-context.js";
|
|
3
|
-
import { VERSION } from "@rangojs/router:version";
|
|
4
|
-
// ============================================================================
|
|
5
|
-
// Constants
|
|
6
|
-
// ============================================================================
|
|
7
|
-
/** Header storing timestamp when entry becomes stale */
|
|
8
|
-
export const CACHE_STALE_AT_HEADER = "x-edge-cache-stale-at";
|
|
9
|
-
/** Header storing cache status: HIT | REVALIDATING */
|
|
10
|
-
export const CACHE_STATUS_HEADER = "x-edge-cache-status";
|
|
11
|
-
/**
|
|
12
|
-
* Maximum age in seconds for REVALIDATING status before allowing new revalidation.
|
|
13
|
-
* After this period, a stale entry in REVALIDATING status will trigger revalidation again.
|
|
14
|
-
* @internal
|
|
15
|
-
*/
|
|
16
|
-
export const MAX_REVALIDATION_INTERVAL = 30;
|
|
17
|
-
// ============================================================================
|
|
18
|
-
// CFCacheStore Implementation
|
|
19
|
-
// ============================================================================
|
|
20
|
-
export class CFCacheStore {
|
|
21
|
-
constructor(options) {
|
|
22
|
-
if (!options.ctx) {
|
|
23
|
-
throw new Error("[CFCacheStore] ExecutionContext (ctx) is required. " +
|
|
24
|
-
"Pass the Cloudflare ExecutionContext from your worker's fetch handler: " +
|
|
25
|
-
"new CFCacheStore({ ctx: env.ctx })");
|
|
26
|
-
}
|
|
27
|
-
this.namespace = options.namespace;
|
|
28
|
-
this.baseUrl = options.baseUrl ?? this.deriveBaseUrl();
|
|
29
|
-
this.defaults = options.defaults;
|
|
30
|
-
this.version = options.version ?? VERSION;
|
|
31
|
-
this.keyGenerator = options.keyGenerator;
|
|
32
|
-
this.waitUntil = (fn) => options.ctx.waitUntil(fn());
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Derive base URL from request hostname via requestContext.
|
|
36
|
-
* Uses internal fallback for dev/preview environments.
|
|
37
|
-
* @internal
|
|
38
|
-
*/
|
|
39
|
-
deriveBaseUrl() {
|
|
40
|
-
const fallback = "https://rsc-cache.internal.com/";
|
|
41
|
-
const ctx = getRequestContext();
|
|
42
|
-
if (!ctx?.request) {
|
|
43
|
-
return fallback;
|
|
44
|
-
}
|
|
45
|
-
try {
|
|
46
|
-
const url = new URL(ctx.request.url);
|
|
47
|
-
const hostname = url.hostname;
|
|
48
|
-
// Use fallback for dev/preview environments
|
|
49
|
-
if (hostname === "localhost" ||
|
|
50
|
-
hostname === "127.0.0.1" ||
|
|
51
|
-
hostname.endsWith(".workers.dev") ||
|
|
52
|
-
hostname.endsWith(".pages.dev")) {
|
|
53
|
-
return fallback;
|
|
54
|
-
}
|
|
55
|
-
// Use actual hostname for production
|
|
56
|
-
return `https://${hostname}/`;
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
return fallback;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Get the cache instance - uses caches.default unless namespace is specified.
|
|
64
|
-
* @internal
|
|
65
|
-
*/
|
|
66
|
-
getCache() {
|
|
67
|
-
if (this.namespace) {
|
|
68
|
-
return caches.open(this.namespace);
|
|
69
|
-
}
|
|
70
|
-
return caches.default;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Get cached entry data by key.
|
|
74
|
-
*
|
|
75
|
-
* Handles SWR atomically:
|
|
76
|
-
* - If stale and not already revalidating, marks as REVALIDATING and returns shouldRevalidate: true
|
|
77
|
-
* - If already REVALIDATING (and recent), returns shouldRevalidate: false
|
|
78
|
-
* - If fresh, returns shouldRevalidate: false
|
|
79
|
-
*
|
|
80
|
-
* The atomic mark prevents thundering herd - only first request triggers revalidation.
|
|
81
|
-
*/
|
|
82
|
-
async get(key) {
|
|
83
|
-
try {
|
|
84
|
-
const cache = await this.getCache();
|
|
85
|
-
const request = this.keyToRequest(key);
|
|
86
|
-
const response = await cache.match(request);
|
|
87
|
-
if (!response) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
// Read status headers
|
|
91
|
-
const status = response.headers.get(CACHE_STATUS_HEADER);
|
|
92
|
-
const age = Number(response.headers.get("age") ?? "0");
|
|
93
|
-
const staleAt = Number(response.headers.get(CACHE_STALE_AT_HEADER) ?? "0");
|
|
94
|
-
const isStale = staleAt > 0 && Date.now() > staleAt;
|
|
95
|
-
const isRevalidating = status === "REVALIDATING" && age < MAX_REVALIDATION_INTERVAL;
|
|
96
|
-
// Case 1: Fresh or already being revalidated - just return data
|
|
97
|
-
if (!isStale || isRevalidating) {
|
|
98
|
-
const data = (await response.json());
|
|
99
|
-
return { data, shouldRevalidate: false };
|
|
100
|
-
}
|
|
101
|
-
// Case 2: Stale and needs revalidation - atomically mark REVALIDATING
|
|
102
|
-
const [b1, b2] = response.body.tee();
|
|
103
|
-
const headers = new Headers(response.headers);
|
|
104
|
-
headers.set(CACHE_STATUS_HEADER, "REVALIDATING");
|
|
105
|
-
// Blocking write - must complete before returning to prevent race
|
|
106
|
-
await cache.put(request, new Response(b1, { status: response.status, headers }));
|
|
107
|
-
const data = (await new Response(b2).json());
|
|
108
|
-
return { data, shouldRevalidate: true };
|
|
109
|
-
}
|
|
110
|
-
catch (error) {
|
|
111
|
-
console.error("[CFCacheStore] get failed:", error);
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Store entry data with TTL and optional SWR window.
|
|
117
|
-
* Uses waitUntil for non-blocking write when available.
|
|
118
|
-
*/
|
|
119
|
-
async set(key, data, ttl, swr) {
|
|
120
|
-
try {
|
|
121
|
-
const cache = await this.getCache();
|
|
122
|
-
const request = this.keyToRequest(key);
|
|
123
|
-
// Extended TTL covers SWR window
|
|
124
|
-
const swrWindow = swr ?? this.defaults?.swr ?? 0;
|
|
125
|
-
const totalTtl = ttl + swrWindow;
|
|
126
|
-
const staleAt = Date.now() + ttl * 1000;
|
|
127
|
-
const response = new Response(JSON.stringify(data), {
|
|
128
|
-
headers: {
|
|
129
|
-
"Content-Type": "application/json",
|
|
130
|
-
"Cache-Control": `public, max-age=${totalTtl}`,
|
|
131
|
-
[CACHE_STALE_AT_HEADER]: String(staleAt),
|
|
132
|
-
[CACHE_STATUS_HEADER]: "HIT",
|
|
133
|
-
},
|
|
134
|
-
});
|
|
135
|
-
const putPromise = cache.put(request, response);
|
|
136
|
-
if (this.waitUntil) {
|
|
137
|
-
// Non-blocking write
|
|
138
|
-
this.waitUntil(async () => {
|
|
139
|
-
await putPromise;
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
// Blocking fallback
|
|
144
|
-
await putPromise;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
console.error("[CFCacheStore] set failed:", error);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Delete a cached entry
|
|
153
|
-
*/
|
|
154
|
-
async delete(key) {
|
|
155
|
-
try {
|
|
156
|
-
const cache = await this.getCache();
|
|
157
|
-
return await cache.delete(this.keyToRequest(key));
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
160
|
-
console.error("[CFCacheStore] delete failed:", error);
|
|
161
|
-
return false;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
// ============================================================================
|
|
165
|
-
// Document Cache Methods
|
|
166
|
-
// ============================================================================
|
|
167
|
-
/**
|
|
168
|
-
* Get a cached Response by key (for document-level caching).
|
|
169
|
-
* Returns the response and whether it should be revalidated (SWR).
|
|
170
|
-
*/
|
|
171
|
-
async getResponse(key) {
|
|
172
|
-
try {
|
|
173
|
-
const cache = await this.getCache();
|
|
174
|
-
const request = this.keyToRequest(`doc:${key}`);
|
|
175
|
-
const response = await cache.match(request);
|
|
176
|
-
if (!response || response.status !== 200) {
|
|
177
|
-
return null;
|
|
178
|
-
}
|
|
179
|
-
// Check staleness
|
|
180
|
-
const staleAt = Number(response.headers.get(CACHE_STALE_AT_HEADER) || 0);
|
|
181
|
-
const isStale = staleAt > 0 && Date.now() > staleAt;
|
|
182
|
-
return {
|
|
183
|
-
response,
|
|
184
|
-
shouldRevalidate: isStale,
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
catch (error) {
|
|
188
|
-
console.error("[CFCacheStore] getResponse failed:", error);
|
|
189
|
-
return null;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Store a Response with TTL and optional SWR window (for document-level caching).
|
|
194
|
-
*/
|
|
195
|
-
async putResponse(key, response, ttl, swr) {
|
|
196
|
-
try {
|
|
197
|
-
const cache = await this.getCache();
|
|
198
|
-
const request = this.keyToRequest(`doc:${key}`);
|
|
199
|
-
// Extended TTL covers SWR window
|
|
200
|
-
const swrWindow = swr ?? this.defaults?.swr ?? 0;
|
|
201
|
-
const totalTtl = ttl + swrWindow;
|
|
202
|
-
const staleAt = Date.now() + ttl * 1000;
|
|
203
|
-
// Clone and add cache headers
|
|
204
|
-
const headers = new Headers(response.headers);
|
|
205
|
-
headers.set("Cache-Control", `public, max-age=${totalTtl}`);
|
|
206
|
-
headers.set(CACHE_STALE_AT_HEADER, String(staleAt));
|
|
207
|
-
const toCache = new Response(response.body, {
|
|
208
|
-
status: response.status,
|
|
209
|
-
statusText: response.statusText,
|
|
210
|
-
headers,
|
|
211
|
-
});
|
|
212
|
-
const putPromise = cache.put(request, toCache);
|
|
213
|
-
if (this.waitUntil) {
|
|
214
|
-
// Non-blocking write
|
|
215
|
-
this.waitUntil(async () => {
|
|
216
|
-
await putPromise;
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
// Blocking fallback
|
|
221
|
-
await putPromise;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
catch (error) {
|
|
225
|
-
console.error("[CFCacheStore] putResponse failed:", error);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Convert string key to Request object for CF Cache API.
|
|
230
|
-
* Includes version in URL if specified (for cache invalidation on code changes).
|
|
231
|
-
* @internal
|
|
232
|
-
*/
|
|
233
|
-
keyToRequest(key) {
|
|
234
|
-
const encodedKey = encodeURIComponent(key);
|
|
235
|
-
// Include version in URL path to invalidate cache when version changes
|
|
236
|
-
const versionPath = this.version ? `v/${this.version}/` : "";
|
|
237
|
-
return new Request(`${this.baseUrl}${versionPath}${encodedKey}`, {
|
|
238
|
-
method: "GET",
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
//# sourceMappingURL=cf-cache-store.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cf-cache-store.js","sourceRoot":"","sources":["../../../src/cache/cf/cf-cache-store.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/cf/index.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloudflare Cache Store Exports
|
|
3
|
-
*
|
|
4
|
-
* Main export:
|
|
5
|
-
* - CFCacheStore - Production cache store using Cloudflare's Cache API
|
|
6
|
-
*
|
|
7
|
-
* Header constants (for inspection/debugging):
|
|
8
|
-
* - CACHE_STALE_AT_HEADER - Header containing staleness timestamp
|
|
9
|
-
* - CACHE_STATUS_HEADER - Header containing HIT/REVALIDATING status
|
|
10
|
-
*/
|
|
11
|
-
export { CFCacheStore, type CFCacheStoreOptions } from "./cf-cache-store.js";
|
|
12
|
-
export { CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER } from "./cf-cache-store.js";
|
|
13
|
-
export { type CacheStatus, MAX_REVALIDATION_INTERVAL } from "./cf-cache-store.js";
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cache/cf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,OAAO,EAAE,KAAK,WAAW,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/cache/cf/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloudflare Cache Store Exports
|
|
3
|
-
*
|
|
4
|
-
* Main export:
|
|
5
|
-
* - CFCacheStore - Production cache store using Cloudflare's Cache API
|
|
6
|
-
*
|
|
7
|
-
* Header constants (for inspection/debugging):
|
|
8
|
-
* - CACHE_STALE_AT_HEADER - Header containing staleness timestamp
|
|
9
|
-
* - CACHE_STATUS_HEADER - Header containing HIT/REVALIDATING status
|
|
10
|
-
*/
|
|
11
|
-
// Public API
|
|
12
|
-
export { CFCacheStore } from "./cf-cache-store.js";
|
|
13
|
-
// Header constants for debugging and inspection
|
|
14
|
-
export { CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER } from "./cf-cache-store.js";
|
|
15
|
-
// Internal exports (re-exported for backwards compatibility, marked @internal in source)
|
|
16
|
-
export { MAX_REVALIDATION_INTERVAL } from "./cf-cache-store.js";
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/cf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,aAAa;AACb,OAAO,EAAE,YAAY,EAA4B,MAAM,qBAAqB,CAAC;AAE7E,gDAAgD;AAChD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,yFAAyF;AACzF,OAAO,EAAoB,yBAAyB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Document-Level Cache Middleware
|
|
3
|
-
*
|
|
4
|
-
* Caches full HTTP responses at the edge based on Cache-Control headers.
|
|
5
|
-
* Routes opt-in to caching by setting s-maxage or stale-while-revalidate headers.
|
|
6
|
-
*
|
|
7
|
-
* Flow:
|
|
8
|
-
* 1. Check cache for existing response
|
|
9
|
-
* 2. If fresh hit → return cached response
|
|
10
|
-
* 3. If stale hit (within SWR window) → return cached, revalidate in background
|
|
11
|
-
* 4. If miss → run handler, cache if response has cache headers
|
|
12
|
-
*/
|
|
13
|
-
import type { MiddlewareFn, MiddlewareContext } from "../router/middleware.js";
|
|
14
|
-
export interface DocumentCacheOptions<TEnv = any> {
|
|
15
|
-
/**
|
|
16
|
-
* Skip caching for specific paths (e.g., API routes)
|
|
17
|
-
*/
|
|
18
|
-
skipPaths?: string[];
|
|
19
|
-
/**
|
|
20
|
-
* Custom cache key generator
|
|
21
|
-
*/
|
|
22
|
-
keyGenerator?: (url: URL) => string;
|
|
23
|
-
/**
|
|
24
|
-
* Callback to determine if caching should be enabled for this request.
|
|
25
|
-
* Receives the middleware context and returns true to enable caching.
|
|
26
|
-
* If not provided, caching is enabled by default.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* createDocumentCacheMiddleware({
|
|
31
|
-
* isEnabled: (ctx) => !ctx.request.headers.has('x-skip-cache'),
|
|
32
|
-
* })
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
isEnabled?: (ctx: MiddlewareContext<TEnv>) => boolean | Promise<boolean>;
|
|
36
|
-
/**
|
|
37
|
-
* Enable debug logging for cache operations.
|
|
38
|
-
* Logs HIT, MISS, STALE, and REVALIDATED events.
|
|
39
|
-
* Defaults to false.
|
|
40
|
-
*/
|
|
41
|
-
debug?: boolean;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Create document cache middleware
|
|
45
|
-
*
|
|
46
|
-
* Add this middleware to your router to enable document-level caching.
|
|
47
|
-
* It uses the cache store's getResponse/putResponse methods for caching.
|
|
48
|
-
* Routes opt-in by setting Cache-Control headers with s-maxage.
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* ```typescript
|
|
52
|
-
* // Add middleware to router
|
|
53
|
-
* const router = createRouter<AppEnv>()
|
|
54
|
-
* .use(createDocumentCacheMiddleware({
|
|
55
|
-
* isEnabled: (ctx) => ctx.url.pathname !== '/admin',
|
|
56
|
-
* }))
|
|
57
|
-
* .route("home", (ctx) => {
|
|
58
|
-
* ctx.headers.set("Cache-Control", "s-maxage=60, stale-while-revalidate=300");
|
|
59
|
-
* return <HomePage />;
|
|
60
|
-
* });
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
|
-
export declare function createDocumentCacheMiddleware<TEnv = any>(options?: DocumentCacheOptions<TEnv>): MiddlewareFn<TEnv>;
|
|
64
|
-
//# sourceMappingURL=document-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-cache.d.ts","sourceRoot":"","sources":["../../src/cache/document-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAoH/E,MAAM,WAAW,oBAAoB,CAAC,IAAI,GAAG,GAAG;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IAEpC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzE;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,GAAG,GAAG,EACtD,OAAO,GAAE,oBAAoB,CAAC,IAAI,CAAM,GACvC,YAAY,CAAC,IAAI,CAAC,CA2JpB"}
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Document-Level Cache Middleware
|
|
3
|
-
*
|
|
4
|
-
* Caches full HTTP responses at the edge based on Cache-Control headers.
|
|
5
|
-
* Routes opt-in to caching by setting s-maxage or stale-while-revalidate headers.
|
|
6
|
-
*
|
|
7
|
-
* Flow:
|
|
8
|
-
* 1. Check cache for existing response
|
|
9
|
-
* 2. If fresh hit → return cached response
|
|
10
|
-
* 3. If stale hit (within SWR window) → return cached, revalidate in background
|
|
11
|
-
* 4. If miss → run handler, cache if response has cache headers
|
|
12
|
-
*/
|
|
13
|
-
import { getRequestContext } from "../server/request-context.js";
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// Constants
|
|
16
|
-
// ============================================================================
|
|
17
|
-
/** Header indicating cache status for debugging */
|
|
18
|
-
const CACHE_STATUS_HEADER = "x-document-cache-status";
|
|
19
|
-
/**
|
|
20
|
-
* Simple hash function for segment IDs.
|
|
21
|
-
* Creates a short, deterministic hash to differentiate cache keys
|
|
22
|
-
* based on which segments the client already has.
|
|
23
|
-
*/
|
|
24
|
-
function hashSegmentIds(segmentIds) {
|
|
25
|
-
if (!segmentIds)
|
|
26
|
-
return "";
|
|
27
|
-
let hash = 0;
|
|
28
|
-
for (let i = 0; i < segmentIds.length; i++) {
|
|
29
|
-
const char = segmentIds.charCodeAt(i);
|
|
30
|
-
hash = ((hash << 5) - hash + char) | 0;
|
|
31
|
-
}
|
|
32
|
-
// Convert to base36 for shorter string, take absolute value
|
|
33
|
-
return Math.abs(hash).toString(36);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Parse Cache-Control header for s-maxage and stale-while-revalidate directives
|
|
37
|
-
*/
|
|
38
|
-
function parseCacheControl(header) {
|
|
39
|
-
if (!header)
|
|
40
|
-
return null;
|
|
41
|
-
const directives = {};
|
|
42
|
-
// Parse s-maxage
|
|
43
|
-
const sMaxAgeMatch = header.match(/s-maxage\s*=\s*(\d+)/i);
|
|
44
|
-
if (sMaxAgeMatch) {
|
|
45
|
-
directives.sMaxAge = parseInt(sMaxAgeMatch[1], 10);
|
|
46
|
-
}
|
|
47
|
-
// Parse stale-while-revalidate
|
|
48
|
-
const swrMatch = header.match(/stale-while-revalidate\s*=\s*(\d+)/i);
|
|
49
|
-
if (swrMatch) {
|
|
50
|
-
directives.staleWhileRevalidate = parseInt(swrMatch[1], 10);
|
|
51
|
-
}
|
|
52
|
-
// Only return if we have at least s-maxage (required for document caching)
|
|
53
|
-
if (directives.sMaxAge !== undefined) {
|
|
54
|
-
return directives;
|
|
55
|
-
}
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Check if response should be cached based on Cache-Control headers
|
|
60
|
-
*/
|
|
61
|
-
function shouldCacheResponse(response) {
|
|
62
|
-
// Only cache successful responses
|
|
63
|
-
if (response.status !== 200) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
const cacheControl = response.headers.get("Cache-Control");
|
|
67
|
-
return parseCacheControl(cacheControl);
|
|
68
|
-
}
|
|
69
|
-
// ============================================================================
|
|
70
|
-
// Response Helpers
|
|
71
|
-
// ============================================================================
|
|
72
|
-
/**
|
|
73
|
-
* Add cache status header to response for debugging
|
|
74
|
-
*/
|
|
75
|
-
function addCacheStatusHeader(response, status) {
|
|
76
|
-
const headers = new Headers(response.headers);
|
|
77
|
-
headers.set(CACHE_STATUS_HEADER, status);
|
|
78
|
-
return new Response(response.body, {
|
|
79
|
-
status: response.status,
|
|
80
|
-
statusText: response.statusText,
|
|
81
|
-
headers,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Run onResponse callbacks registered on the request context
|
|
86
|
-
*/
|
|
87
|
-
function runOnResponseCallbacks(response, callbacks) {
|
|
88
|
-
let result = response;
|
|
89
|
-
for (const callback of callbacks) {
|
|
90
|
-
result = callback(result);
|
|
91
|
-
}
|
|
92
|
-
return result;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Create document cache middleware
|
|
96
|
-
*
|
|
97
|
-
* Add this middleware to your router to enable document-level caching.
|
|
98
|
-
* It uses the cache store's getResponse/putResponse methods for caching.
|
|
99
|
-
* Routes opt-in by setting Cache-Control headers with s-maxage.
|
|
100
|
-
*
|
|
101
|
-
* @example
|
|
102
|
-
* ```typescript
|
|
103
|
-
* // Add middleware to router
|
|
104
|
-
* const router = createRouter<AppEnv>()
|
|
105
|
-
* .use(createDocumentCacheMiddleware({
|
|
106
|
-
* isEnabled: (ctx) => ctx.url.pathname !== '/admin',
|
|
107
|
-
* }))
|
|
108
|
-
* .route("home", (ctx) => {
|
|
109
|
-
* ctx.headers.set("Cache-Control", "s-maxage=60, stale-while-revalidate=300");
|
|
110
|
-
* return <HomePage />;
|
|
111
|
-
* });
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
export function createDocumentCacheMiddleware(options = {}) {
|
|
115
|
-
const { skipPaths = [], keyGenerator, isEnabled, debug = false } = options;
|
|
116
|
-
const log = debug
|
|
117
|
-
? (message) => console.log(message)
|
|
118
|
-
: () => { };
|
|
119
|
-
return async function documentCacheMiddleware(ctx, next) {
|
|
120
|
-
const url = ctx.url;
|
|
121
|
-
// Skip RSC action requests (mutations shouldn't be cached)
|
|
122
|
-
if (url.searchParams.has("_rsc_action")) {
|
|
123
|
-
return next();
|
|
124
|
-
}
|
|
125
|
-
// Skip loader requests (have their own caching)
|
|
126
|
-
if (url.searchParams.has("_rsc_loader")) {
|
|
127
|
-
return next();
|
|
128
|
-
}
|
|
129
|
-
// Skip configured paths
|
|
130
|
-
if (skipPaths.some((path) => url.pathname.startsWith(path))) {
|
|
131
|
-
return next();
|
|
132
|
-
}
|
|
133
|
-
// Check if caching is enabled for this request
|
|
134
|
-
if (isEnabled) {
|
|
135
|
-
const enabled = await isEnabled(ctx);
|
|
136
|
-
if (!enabled) {
|
|
137
|
-
return next();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
// Get request context and cache store
|
|
141
|
-
const requestCtx = getRequestContext();
|
|
142
|
-
const store = requestCtx?._cacheStore;
|
|
143
|
-
// Skip if no cache store or store doesn't support response caching
|
|
144
|
-
if (!store?.getResponse || !store?.putResponse) {
|
|
145
|
-
return next();
|
|
146
|
-
}
|
|
147
|
-
// Determine request type for cache key differentiation
|
|
148
|
-
const isPartial = url.searchParams.has("_rsc_partial");
|
|
149
|
-
const typeLabel = isPartial ? "RSC" : "HTML";
|
|
150
|
-
// Generate cache key
|
|
151
|
-
// For partial requests, include hash of client segments to prevent serving
|
|
152
|
-
// wrong cached response when navigating from different pages with different layouts
|
|
153
|
-
const clientSegments = url.searchParams.get("_rsc_segments") || "";
|
|
154
|
-
const segmentHash = isPartial && clientSegments ? `:${hashSegmentIds(clientSegments)}` : "";
|
|
155
|
-
const typeSuffix = isPartial ? ":rsc" : ":html";
|
|
156
|
-
const cacheKey = keyGenerator
|
|
157
|
-
? keyGenerator(url) + segmentHash + typeSuffix
|
|
158
|
-
: `${url.pathname}${segmentHash}${typeSuffix}`;
|
|
159
|
-
try {
|
|
160
|
-
// 1. Check cache
|
|
161
|
-
const cached = await store.getResponse(cacheKey);
|
|
162
|
-
if (cached && cached.response.status === 200) {
|
|
163
|
-
if (!cached.shouldRevalidate) {
|
|
164
|
-
// Fresh hit - return immediately
|
|
165
|
-
log(`[DocumentCache] HIT ${typeLabel}: ${url.pathname}`);
|
|
166
|
-
let response = addCacheStatusHeader(cached.response, "HIT");
|
|
167
|
-
// Run onResponse callbacks even for cache hits
|
|
168
|
-
if (requestCtx && requestCtx._onResponseCallbacks.length > 0) {
|
|
169
|
-
response = runOnResponseCallbacks(response, requestCtx._onResponseCallbacks);
|
|
170
|
-
}
|
|
171
|
-
return response;
|
|
172
|
-
}
|
|
173
|
-
// Stale hit - return cached response, revalidate in background
|
|
174
|
-
log(`[DocumentCache] STALE ${typeLabel}: ${url.pathname} (revalidating)`);
|
|
175
|
-
if (requestCtx) {
|
|
176
|
-
requestCtx.waitUntil(async () => {
|
|
177
|
-
try {
|
|
178
|
-
const fresh = await next();
|
|
179
|
-
const directives = shouldCacheResponse(fresh);
|
|
180
|
-
if (directives) {
|
|
181
|
-
await store.putResponse(cacheKey, fresh, directives.sMaxAge, directives.staleWhileRevalidate);
|
|
182
|
-
log(`[DocumentCache] REVALIDATED ${typeLabel}: ${url.pathname}`);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
catch (error) {
|
|
186
|
-
console.error(`[DocumentCache] Revalidation failed:`, error);
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
let response = addCacheStatusHeader(cached.response, "STALE");
|
|
191
|
-
// Run onResponse callbacks even for stale cache hits
|
|
192
|
-
if (requestCtx && requestCtx._onResponseCallbacks.length > 0) {
|
|
193
|
-
response = runOnResponseCallbacks(response, requestCtx._onResponseCallbacks);
|
|
194
|
-
}
|
|
195
|
-
return response;
|
|
196
|
-
}
|
|
197
|
-
// 2. Cache miss - run handler
|
|
198
|
-
const originalResponse = await next();
|
|
199
|
-
// 3. Cache if response has appropriate headers
|
|
200
|
-
const directives = shouldCacheResponse(originalResponse);
|
|
201
|
-
if (directives) {
|
|
202
|
-
log(`[DocumentCache] MISS ${typeLabel}: ${url.pathname} (caching with s-maxage=${directives.sMaxAge})`);
|
|
203
|
-
// Tee the body so we can return one stream and cache the other
|
|
204
|
-
const [returnStream, cacheStream] = originalResponse.body.tee();
|
|
205
|
-
// Clone response for caching (non-blocking)
|
|
206
|
-
if (requestCtx) {
|
|
207
|
-
requestCtx.waitUntil(async () => {
|
|
208
|
-
try {
|
|
209
|
-
await store.putResponse(cacheKey, new Response(cacheStream, originalResponse), directives.sMaxAge, directives.staleWhileRevalidate);
|
|
210
|
-
}
|
|
211
|
-
catch (error) {
|
|
212
|
-
console.error(`[DocumentCache] Cache write failed:`, error);
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
return addCacheStatusHeader(new Response(returnStream, originalResponse), "MISS");
|
|
217
|
-
}
|
|
218
|
-
// No cache headers - pass through
|
|
219
|
-
return originalResponse;
|
|
220
|
-
}
|
|
221
|
-
catch (error) {
|
|
222
|
-
console.error(`[DocumentCache] Error:`, error);
|
|
223
|
-
// On any cache error, fall through to handler
|
|
224
|
-
return next();
|
|
225
|
-
}
|
|
226
|
-
};
|
|
227
|
-
}
|
|
228
|
-
//# sourceMappingURL=document-cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-cache.js","sourceRoot":"","sources":["../../src/cache/document-cache.ts"],"names":[],"mappings":"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"}
|
package/dist/cache/index.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cache Store
|
|
3
|
-
*
|
|
4
|
-
* Server-side caching for RSC segments and loader data.
|
|
5
|
-
*
|
|
6
|
-
* Main exports for users:
|
|
7
|
-
* - SegmentCacheStore - Interface for implementing custom cache stores
|
|
8
|
-
* - MemorySegmentCacheStore - In-memory cache for development/testing
|
|
9
|
-
* - CFCacheStore - Cloudflare edge cache store for production
|
|
10
|
-
* - CacheScope / createCacheScope - Request-scoped cache provider
|
|
11
|
-
*/
|
|
12
|
-
export type { CacheStore, CacheEntry, CacheValue, CacheValueType, CachePutOptions, CacheMetadata, } from "./types.js";
|
|
13
|
-
export { MemoryCacheStore } from "./memory-store.js";
|
|
14
|
-
export type { SegmentCacheStore, SegmentCacheProvider, CachedEntryData, CachedEntryResult, CacheGetResult, SerializedSegmentData, SegmentHandleData, CacheConfig, CacheConfigOrFactory, } from "./types.js";
|
|
15
|
-
export { MemorySegmentCacheStore } from "./memory-segment-store.js";
|
|
16
|
-
export { CFCacheStore, type CFCacheStoreOptions, CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER, } from "./cf/index.js";
|
|
17
|
-
export { CacheScope, createCacheScope } from "./cache-scope.js";
|
|
18
|
-
export { createDocumentCacheMiddleware, type DocumentCacheOptions, } from "./document-cache.js";
|
|
19
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,YAAY,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EACL,6BAA6B,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC"}
|
package/dist/cache/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cache Store
|
|
3
|
-
*
|
|
4
|
-
* Server-side caching for RSC segments and loader data.
|
|
5
|
-
*
|
|
6
|
-
* Main exports for users:
|
|
7
|
-
* - SegmentCacheStore - Interface for implementing custom cache stores
|
|
8
|
-
* - MemorySegmentCacheStore - In-memory cache for development/testing
|
|
9
|
-
* - CFCacheStore - Cloudflare edge cache store for production
|
|
10
|
-
* - CacheScope / createCacheScope - Request-scoped cache provider
|
|
11
|
-
*/
|
|
12
|
-
// Generic memory cache (reserved for future extensibility)
|
|
13
|
-
export { MemoryCacheStore } from "./memory-store.js";
|
|
14
|
-
export { MemorySegmentCacheStore } from "./memory-segment-store.js";
|
|
15
|
-
// Cloudflare cache store
|
|
16
|
-
export { CFCacheStore, CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER, } from "./cf/index.js";
|
|
17
|
-
// Cache scope
|
|
18
|
-
export { CacheScope, createCacheScope } from "./cache-scope.js";
|
|
19
|
-
// Document-level cache middleware
|
|
20
|
-
export { createDocumentCacheMiddleware, } from "./document-cache.js";
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cache/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,2DAA2D;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAerD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,yBAAyB;AACzB,OAAO,EACL,YAAY,EAEZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,kCAAkC;AAClC,OAAO,EACL,6BAA6B,GAE9B,MAAM,qBAAqB,CAAC"}
|