@rangojs/router 0.0.0-experimental.124 → 0.0.0-experimental.125
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/bin/rango.js +3 -4
- package/dist/vite/index.js +9 -43
- package/package.json +1 -1
- package/skills/hooks/SKILL.md +2 -2
- package/skills/route/SKILL.md +6 -0
- package/src/__internal.ts +0 -65
- package/src/browser/action-coordinator.ts +1 -1
- package/src/browser/action-fence.ts +10 -0
- package/src/browser/event-controller.ts +1 -83
- package/src/browser/navigation-store-handle.ts +3 -4
- package/src/browser/navigation-store.ts +0 -39
- package/src/browser/navigation-transaction.ts +0 -32
- package/src/browser/partial-update.ts +1 -83
- package/src/browser/prefetch/cache.ts +6 -45
- package/src/browser/prefetch/queue.ts +6 -3
- package/src/browser/rango-state.ts +2 -23
- package/src/browser/react/Link.tsx +0 -2
- package/src/browser/react/NavigationProvider.tsx +2 -1
- package/src/browser/react/ScrollRestoration.tsx +10 -6
- package/src/browser/react/filter-segment-order.ts +0 -2
- package/src/browser/react/index.ts +0 -45
- package/src/browser/react/location-state-shared.ts +0 -13
- package/src/browser/react/location-state.ts +0 -1
- package/src/browser/react/use-action.ts +6 -15
- package/src/browser/react/use-handle.ts +0 -5
- package/src/browser/react/use-link-status.ts +0 -4
- package/src/browser/react/use-navigation.ts +0 -3
- package/src/browser/react/use-params.ts +0 -2
- package/src/browser/react/use-search-params.ts +0 -5
- package/src/browser/react/use-segments.ts +0 -13
- package/src/browser/rsc-router.tsx +2 -2
- package/src/browser/types.ts +0 -1
- package/src/browser/validate-redirect-origin.ts +4 -5
- package/src/build/route-trie.ts +3 -0
- package/src/build/route-types/param-extraction.ts +6 -3
- package/src/build/route-types/router-processing.ts +0 -8
- package/src/cache/cache-policy.ts +0 -54
- package/src/cache/cache-runtime.ts +27 -24
- package/src/cache/cache-scope.ts +0 -27
- package/src/cache/cache-tag.ts +0 -37
- package/src/cache/cf/cf-cache-store.ts +72 -45
- package/src/cache/cf/index.ts +0 -24
- package/src/cache/document-cache.ts +0 -36
- package/src/cache/handle-snapshot.ts +0 -40
- package/src/cache/index.ts +0 -27
- package/src/cache/memory-segment-store.ts +0 -52
- package/src/cache/profile-registry.ts +7 -3
- package/src/cache/read-through-swr.ts +41 -11
- package/src/cache/segment-codec.ts +0 -16
- package/src/cache/types.ts +0 -98
- package/src/client.rsc.tsx +1 -22
- package/src/client.tsx +14 -32
- package/src/deps/ssr.ts +0 -1
- package/src/handle.ts +2 -12
- package/src/handles/MetaTags.tsx +0 -14
- package/src/handles/meta.ts +0 -39
- package/src/host/cookie-handler.ts +0 -36
- package/src/host/errors.ts +0 -24
- package/src/host/index.ts +6 -0
- package/src/host/pattern-matcher.ts +7 -50
- package/src/host/router.ts +1 -65
- package/src/host/testing.ts +0 -16
- package/src/host/types.ts +6 -2
- package/src/href-client.ts +0 -4
- package/src/index.rsc.ts +20 -2
- package/src/internal-debug.ts +2 -4
- package/src/loader.rsc.ts +4 -15
- package/src/loader.ts +3 -9
- package/src/network-error-thrower.tsx +1 -6
- package/src/outlet-provider.tsx +1 -5
- package/src/prerender/param-hash.ts +10 -11
- package/src/prerender/store.ts +23 -30
- package/src/prerender.ts +34 -0
- package/src/root-error-boundary.tsx +1 -19
- package/src/route-content-wrapper.tsx +1 -44
- package/src/route-definition/dsl-helpers.ts +7 -19
- package/src/route-definition/helpers-types.ts +3 -3
- package/src/route-definition/redirect.ts +11 -1
- package/src/route-map-builder.ts +0 -16
- package/src/router/content-negotiation.ts +0 -13
- package/src/router/error-handling.ts +12 -16
- package/src/router/find-match.ts +4 -30
- package/src/router/intercept-resolution.ts +10 -1
- package/src/router/lazy-includes.ts +1 -57
- package/src/router/loader-resolution.ts +3 -2
- package/src/router/logging.ts +0 -6
- package/src/router/manifest.ts +1 -25
- package/src/router/match-api.ts +0 -20
- package/src/router/match-context.ts +0 -22
- package/src/router/match-handlers.ts +0 -43
- package/src/router/match-middleware/background-revalidation.ts +0 -7
- package/src/router/match-middleware/cache-lookup.ts +1 -54
- package/src/router/match-middleware/cache-store.ts +0 -31
- package/src/router/match-middleware/intercept-resolution.ts +0 -22
- package/src/router/match-middleware/segment-resolution.ts +0 -21
- package/src/router/match-pipelines.ts +1 -42
- package/src/router/match-result.ts +1 -52
- package/src/router/metrics.ts +0 -34
- package/src/router/middleware-cookies.ts +0 -13
- package/src/router/middleware-types.ts +0 -115
- package/src/router/middleware.ts +7 -30
- package/src/router/navigation-snapshot.ts +0 -51
- package/src/router/params-util.ts +23 -0
- package/src/router/pattern-matching.ts +1 -33
- package/src/router/prerender-match.ts +29 -45
- package/src/router/request-classification.ts +1 -38
- package/src/router/revalidation.ts +5 -58
- package/src/router/router-context.ts +0 -26
- package/src/router/segment-resolution/fresh.ts +25 -57
- package/src/router/segment-resolution/helpers.ts +34 -0
- package/src/router/segment-resolution/loader-cache.ts +10 -13
- package/src/router/segment-resolution/revalidation.ts +5 -42
- package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
- package/src/router/segment-resolution.ts +4 -1
- package/src/router/telemetry-otel.ts +0 -20
- package/src/router/telemetry.ts +0 -22
- package/src/router/timeout.ts +0 -20
- package/src/router/trie-matching.ts +63 -40
- package/src/router/types.ts +1 -63
- package/src/router/url-params.ts +0 -5
- package/src/router.ts +4 -2
- package/src/rsc/handler.ts +11 -2
- package/src/rsc/helpers.ts +15 -0
- package/src/rsc/origin-guard.ts +0 -12
- package/src/rsc/progressive-enhancement.ts +2 -1
- package/src/rsc/rsc-rendering.ts +2 -7
- package/src/rsc/runtime-warnings.ts +14 -0
- package/src/rsc/server-action.ts +30 -28
- package/src/rsc/types.ts +0 -1
- package/src/search-params.ts +0 -16
- package/src/segment-loader-promise.ts +14 -2
- package/src/segment-system.tsx +79 -88
- package/src/server/handle-store.ts +7 -24
- package/src/server/loader-registry.ts +5 -24
- package/src/server/request-context.ts +6 -78
- package/src/ssr/index.tsx +14 -14
- package/src/static-handler.ts +2 -27
- package/src/testing/cache-status.ts +0 -47
- package/src/testing/collect-handle.ts +1 -24
- package/src/testing/e2e/index.ts +0 -22
- package/src/testing/e2e/matchers.ts +0 -16
- package/src/testing/flight-matchers.ts +0 -13
- package/src/testing/flight-normalize.ts +3 -30
- package/src/testing/flight.ts +0 -48
- package/src/testing/generated-routes.ts +1 -41
- package/src/testing/index.ts +0 -21
- package/src/testing/internal/context.ts +3 -45
- package/src/testing/internal/seed-vars.ts +0 -26
- package/src/testing/render-handler.ts +0 -49
- package/src/testing/render-route.tsx +0 -90
- package/src/testing/run-loader.ts +0 -96
- package/src/testing/run-middleware.ts +0 -26
- package/src/theme/ThemeProvider.tsx +0 -52
- package/src/theme/ThemeScript.tsx +0 -6
- package/src/theme/constants.ts +0 -12
- package/src/theme/index.ts +0 -7
- package/src/theme/theme-context.ts +1 -5
- package/src/theme/theme-script.ts +0 -14
- package/src/theme/use-theme.ts +0 -3
- package/src/types/boundaries.ts +0 -35
- package/src/types/error-types.ts +25 -89
- package/src/types/global-namespace.ts +4 -14
- package/src/types/handler-context.ts +0 -8
- package/src/types/index.ts +0 -10
- package/src/types/request-scope.ts +0 -19
- package/src/types/route-config.ts +6 -50
- package/src/types/route-entry.ts +0 -6
- package/src/types/segments.ts +0 -13
- package/src/urls/include-helper.ts +0 -4
- package/src/urls/index.ts +0 -6
- package/src/urls/path-helper-types.ts +2 -2
- package/src/urls/path-helper.ts +0 -54
- package/src/urls/urls-function.ts +0 -13
- package/src/use-loader.tsx +0 -186
- package/src/vite/discovery/bundle-postprocess.ts +2 -1
- package/src/vite/discovery/discover-routers.ts +6 -7
- package/src/vite/discovery/virtual-module-codegen.ts +1 -11
- package/src/vite/plugin-types.ts +3 -1
- package/src/vite/plugins/cjs-to-esm.ts +0 -11
- package/src/vite/plugins/client-ref-dedup.ts +0 -11
- package/src/vite/plugins/client-ref-hashing.ts +0 -10
- package/src/vite/plugins/cloudflare-protocol-stub.ts +0 -20
- package/src/vite/plugins/expose-action-id.ts +2 -73
- package/src/vite/plugins/expose-id-utils.ts +0 -55
- package/src/vite/plugins/expose-ids/export-analysis.ts +0 -38
- package/src/vite/plugins/expose-ids/handler-transform.ts +0 -15
- package/src/vite/plugins/expose-ids/loader-transform.ts +0 -15
- package/src/vite/plugins/expose-ids/router-transform.ts +0 -13
- package/src/vite/plugins/expose-internal-ids.ts +10 -0
- package/src/vite/plugins/performance-tracks.ts +0 -3
- package/src/vite/plugins/use-cache-transform.ts +0 -36
- package/src/vite/plugins/version-injector.ts +0 -20
- package/src/vite/plugins/version-plugin.ts +1 -49
- package/src/vite/plugins/virtual-entries.ts +0 -15
- package/src/vite/rango.ts +1 -108
- package/src/vite/router-discovery.ts +2 -1
- package/src/vite/utils/ast-handler-extract.ts +0 -16
- package/src/vite/utils/bundle-analysis.ts +6 -13
- package/src/vite/utils/client-chunks.ts +0 -6
- package/src/vite/utils/forward-user-plugins.ts +0 -22
- package/src/vite/utils/manifest-utils.ts +0 -4
- package/src/vite/utils/package-resolution.ts +1 -73
- package/src/vite/utils/prerender-utils.ts +0 -35
- package/src/vite/utils/shared-utils.ts +3 -35
- 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.bak +0 -5448
- 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
- package/src/browser/shallow.ts +0 -40
|
@@ -89,20 +89,6 @@ export interface MatchHandlers<TEnv = any> {
|
|
|
89
89
|
negotiated?: boolean;
|
|
90
90
|
manifestEntry?: EntryData;
|
|
91
91
|
} | null>;
|
|
92
|
-
createMatchContextForFull: (
|
|
93
|
-
request: Request,
|
|
94
|
-
env: TEnv,
|
|
95
|
-
) => Promise<MatchContext<TEnv> | { type: "redirect"; redirectUrl: string }>;
|
|
96
|
-
createMatchContextForPartial: (
|
|
97
|
-
request: Request,
|
|
98
|
-
env: TEnv,
|
|
99
|
-
actionContext?: {
|
|
100
|
-
actionId?: string;
|
|
101
|
-
actionUrl?: URL;
|
|
102
|
-
actionResult?: any;
|
|
103
|
-
formData?: FormData;
|
|
104
|
-
},
|
|
105
|
-
) => Promise<MatchContext<TEnv> | null>;
|
|
106
92
|
}
|
|
107
93
|
|
|
108
94
|
/**
|
|
@@ -123,9 +109,6 @@ export function createMatchHandlers<TEnv = any>(
|
|
|
123
109
|
const hasTelemetry = !!deps.telemetry;
|
|
124
110
|
const telemetry = resolveSink(deps.telemetry);
|
|
125
111
|
const cacheSignalEnabled = !!deps.cacheSignalEnabled;
|
|
126
|
-
// Compute the coarse cache signal when EITHER telemetry needs it (for the
|
|
127
|
-
// cache.decision event) OR the debug header gate is on. When neither is set,
|
|
128
|
-
// this is never called — zero extra work on the hot path.
|
|
129
112
|
const buildSignal = (
|
|
130
113
|
routeKey: string,
|
|
131
114
|
state: {
|
|
@@ -134,8 +117,6 @@ export function createMatchHandlers<TEnv = any>(
|
|
|
134
117
|
shouldRevalidate?: boolean;
|
|
135
118
|
},
|
|
136
119
|
): CacheSegmentSignal[] => buildCacheSignalSegments(routeKey, state);
|
|
137
|
-
// Stash the signal on the request context for the response path to emit as
|
|
138
|
-
// the X-Rango-Cache header. Only when the debug gate is on.
|
|
139
120
|
const recordSignalIfEnabled = (segments: CacheSegmentSignal[]): void => {
|
|
140
121
|
if (!cacheSignalEnabled) return;
|
|
141
122
|
const reqCtx = _getRequestContext();
|
|
@@ -173,15 +154,6 @@ export function createMatchHandlers<TEnv = any>(
|
|
|
173
154
|
);
|
|
174
155
|
}
|
|
175
156
|
|
|
176
|
-
/**
|
|
177
|
-
* Match request and return segments (document/SSR requests)
|
|
178
|
-
*
|
|
179
|
-
* Uses generator middleware pipeline for clean separation of concerns:
|
|
180
|
-
* - cache-lookup: Check cache first
|
|
181
|
-
* - segment-resolution: Resolve segments on cache miss
|
|
182
|
-
* - cache-store: Store results in cache
|
|
183
|
-
* - background-revalidation: SWR revalidation
|
|
184
|
-
*/
|
|
185
157
|
async function match(request: Request, env: TEnv): Promise<MatchResult> {
|
|
186
158
|
const requestId = hasTelemetry ? getRequestId(request) : undefined;
|
|
187
159
|
return runWithRouterLogContext({ request, transaction: "match" }, () => {
|
|
@@ -205,7 +177,6 @@ export function createMatchHandlers<TEnv = any>(
|
|
|
205
177
|
|
|
206
178
|
const result = await createMatchContextForFull(request, env);
|
|
207
179
|
|
|
208
|
-
// Handle redirect case
|
|
209
180
|
if ("type" in result && result.type === "redirect") {
|
|
210
181
|
if (hasTelemetry) {
|
|
211
182
|
safeEmit(telemetry, {
|
|
@@ -284,7 +255,6 @@ export function createMatchHandlers<TEnv = any>(
|
|
|
284
255
|
});
|
|
285
256
|
}
|
|
286
257
|
if (error instanceof Response) throw error;
|
|
287
|
-
// Report unhandled errors during full match pipeline
|
|
288
258
|
callOnError(error, "routing", {
|
|
289
259
|
request,
|
|
290
260
|
url: ctx.url,
|
|
@@ -319,16 +289,6 @@ export function createMatchHandlers<TEnv = any>(
|
|
|
319
289
|
);
|
|
320
290
|
}
|
|
321
291
|
|
|
322
|
-
/**
|
|
323
|
-
* Match partial request with revalidation
|
|
324
|
-
*
|
|
325
|
-
* Uses generator middleware pipeline for clean separation of concerns:
|
|
326
|
-
* - cache-lookup: Check cache first
|
|
327
|
-
* - segment-resolution: Resolve segments on cache miss
|
|
328
|
-
* - intercept-resolution: Handle intercept routes
|
|
329
|
-
* - cache-store: Store results in cache
|
|
330
|
-
* - background-revalidation: SWR revalidation
|
|
331
|
-
*/
|
|
332
292
|
async function matchPartial(
|
|
333
293
|
request: Request,
|
|
334
294
|
context: TEnv,
|
|
@@ -448,7 +408,6 @@ export function createMatchHandlers<TEnv = any>(
|
|
|
448
408
|
});
|
|
449
409
|
}
|
|
450
410
|
if (error instanceof Response) throw error;
|
|
451
|
-
// Report unhandled errors during partial match pipeline
|
|
452
411
|
callOnError(error, actionContext ? "action" : "revalidation", {
|
|
453
412
|
request,
|
|
454
413
|
url: ctx.url,
|
|
@@ -477,7 +436,5 @@ export function createMatchHandlers<TEnv = any>(
|
|
|
477
436
|
matchPartial: matchPartial,
|
|
478
437
|
matchError: matchError,
|
|
479
438
|
previewMatch: previewMatch,
|
|
480
|
-
createMatchContextForFull: createMatchContextForFull,
|
|
481
|
-
createMatchContextForPartial: createMatchContextForPartial,
|
|
482
439
|
};
|
|
483
440
|
}
|
|
@@ -168,8 +168,6 @@ export function withBackgroundRevalidation<TEnv>(
|
|
|
168
168
|
requestCtx._handleStore = createHandleStore();
|
|
169
169
|
|
|
170
170
|
try {
|
|
171
|
-
// Create fresh handler context and loader promises to avoid
|
|
172
|
-
// reusing memoized results from the foreground pass
|
|
173
171
|
const freshHandlerContext = createHandlerContext(
|
|
174
172
|
ctx.matched.params,
|
|
175
173
|
ctx.request,
|
|
@@ -185,10 +183,6 @@ export function withBackgroundRevalidation<TEnv>(
|
|
|
185
183
|
const freshLoaderPromises = new Map<string, Promise<any>>();
|
|
186
184
|
setupLoaderAccess(freshHandlerContext, freshLoaderPromises);
|
|
187
185
|
|
|
188
|
-
// Resolve all segments fresh (without revalidation logic)
|
|
189
|
-
// to ensure complete components for caching.
|
|
190
|
-
// Skip DSL loaders — they are never cached (cacheRoute filters them)
|
|
191
|
-
// and are always resolved fresh on each request.
|
|
192
186
|
const freshSegments = await ctx.Store.run(() =>
|
|
193
187
|
resolveAllSegments(
|
|
194
188
|
ctx.entries,
|
|
@@ -200,7 +194,6 @@ export function withBackgroundRevalidation<TEnv>(
|
|
|
200
194
|
),
|
|
201
195
|
);
|
|
202
196
|
|
|
203
|
-
// Also resolve intercept segments fresh if applicable
|
|
204
197
|
let freshInterceptSegments: ResolvedSegment[] = [];
|
|
205
198
|
if (ctx.interceptResult) {
|
|
206
199
|
freshInterceptSegments = await ctx.Store.run(() =>
|
|
@@ -103,6 +103,7 @@ import {
|
|
|
103
103
|
getRequestContext,
|
|
104
104
|
_getRequestContext,
|
|
105
105
|
} from "../../server/request-context.js";
|
|
106
|
+
import { paramsEqual } from "../params-util.js";
|
|
106
107
|
|
|
107
108
|
// Lazily initialized prerender store singleton and dynamically imported deps.
|
|
108
109
|
// Dynamic imports prevent pulling in @vitejs/plugin-rsc/rsc virtual module at
|
|
@@ -124,22 +125,6 @@ let _lazyGetRequestContext:
|
|
|
124
125
|
| typeof import("../../server/request-context.js").getRequestContext
|
|
125
126
|
| undefined;
|
|
126
127
|
|
|
127
|
-
function paramsEqual(
|
|
128
|
-
a: Record<string, string>,
|
|
129
|
-
b: Record<string, string>,
|
|
130
|
-
): boolean {
|
|
131
|
-
if (a === b) return true;
|
|
132
|
-
|
|
133
|
-
const keysA = Object.keys(a);
|
|
134
|
-
if (keysA.length !== Object.keys(b).length) return false;
|
|
135
|
-
|
|
136
|
-
for (const key of keysA) {
|
|
137
|
-
if (a[key] !== b[key]) return false;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
128
|
async function ensurePrerenderDeps() {
|
|
144
129
|
if (!_deserializeSegments) {
|
|
145
130
|
const [codec, snapshot, paramHash, reqCtx, store] = await Promise.all([
|
|
@@ -367,10 +352,6 @@ export function withCacheLookup<TEnv>(
|
|
|
367
352
|
resolveLoadersOnly,
|
|
368
353
|
} = getRouterContext<TEnv>();
|
|
369
354
|
|
|
370
|
-
// Prerender lookup: check build-time cached data before runtime cache.
|
|
371
|
-
// Prerender data is available regardless of runtime cache configuration.
|
|
372
|
-
// Skip for HMR requests — the dev prerender endpoint reads from a stale
|
|
373
|
-
// RouterRegistry snapshot; rendering fresh ensures edits are visible.
|
|
374
355
|
const isHmr = !!ctx.request.headers.get("X-RSC-HMR");
|
|
375
356
|
if (!ctx.isAction && !isHmr && ctx.matched.pr) {
|
|
376
357
|
await ensurePrerenderDeps();
|
|
@@ -385,14 +366,6 @@ export function withCacheLookup<TEnv>(
|
|
|
385
366
|
}
|
|
386
367
|
}
|
|
387
368
|
|
|
388
|
-
// Dev-mode static handler interception for non-Node.js runtimes.
|
|
389
|
-
// __PRERENDER_DEV_URL is set by the Vite plugin when the RSC environment
|
|
390
|
-
// lacks a Node.js module runner (e.g. workerd, Deno workers). In those
|
|
391
|
-
// runtimes, handlers that depend on Node APIs like node:fs can't run
|
|
392
|
-
// in-process. We redirect them to the /__rsc_prerender endpoint which
|
|
393
|
-
// resolves segments in a Node.js temp server, same as prerender routes.
|
|
394
|
-
// In Node.js dev mode this variable is undefined -- handlers run
|
|
395
|
-
// in-process where Node APIs work, so no interception is needed.
|
|
396
369
|
if (!ctx.isAction && !ctx.matched.pr && globalThis.__PRERENDER_DEV_URL) {
|
|
397
370
|
const hasStatic = ctx.entries.some(
|
|
398
371
|
(e) =>
|
|
@@ -415,9 +388,7 @@ export function withCacheLookup<TEnv>(
|
|
|
415
388
|
}
|
|
416
389
|
}
|
|
417
390
|
|
|
418
|
-
// Skip cache during actions
|
|
419
391
|
if (ctx.isAction || !ctx.cacheScope?.enabled) {
|
|
420
|
-
// Cache miss - pass through to segment resolution
|
|
421
392
|
yield* source;
|
|
422
393
|
if (ms) {
|
|
423
394
|
ms.metrics.push({
|
|
@@ -429,7 +400,6 @@ export function withCacheLookup<TEnv>(
|
|
|
429
400
|
return;
|
|
430
401
|
}
|
|
431
402
|
|
|
432
|
-
// Lookup cache
|
|
433
403
|
const cacheResult = await ctx.cacheScope.lookupRoute(
|
|
434
404
|
ctx.pathname,
|
|
435
405
|
ctx.matched.params,
|
|
@@ -437,7 +407,6 @@ export function withCacheLookup<TEnv>(
|
|
|
437
407
|
);
|
|
438
408
|
|
|
439
409
|
if (!cacheResult) {
|
|
440
|
-
// Cache miss - pass through to segment resolution
|
|
441
410
|
yield* source;
|
|
442
411
|
if (ms) {
|
|
443
412
|
ms.metrics.push({
|
|
@@ -449,16 +418,12 @@ export function withCacheLookup<TEnv>(
|
|
|
449
418
|
return;
|
|
450
419
|
}
|
|
451
420
|
|
|
452
|
-
// Cache HIT
|
|
453
421
|
state.cacheHit = true;
|
|
454
422
|
state.cacheSource = "runtime";
|
|
455
423
|
state.shouldRevalidate = cacheResult.shouldRevalidate;
|
|
456
424
|
state.cachedSegments = cacheResult.segments;
|
|
457
425
|
state.cachedMatchedIds = cacheResult.segments.map((s) => s.id);
|
|
458
426
|
|
|
459
|
-
// Apply revalidation to cached segments.
|
|
460
|
-
// For full matches or empty client segment sets, this map is unnecessary:
|
|
461
|
-
// we never run segment-level revalidation and can stream segments directly.
|
|
462
427
|
const canCheckSegmentRevalidation =
|
|
463
428
|
!ctx.isFullMatch &&
|
|
464
429
|
ctx.clientSegmentSet.size > 0 &&
|
|
@@ -468,7 +433,6 @@ export function withCacheLookup<TEnv>(
|
|
|
468
433
|
: undefined;
|
|
469
434
|
|
|
470
435
|
for (const segment of cacheResult.segments) {
|
|
471
|
-
// Skip segments client doesn't have - they need their component
|
|
472
436
|
if (!ctx.clientSegmentSet.has(segment.id)) {
|
|
473
437
|
if (isTraceActive()) {
|
|
474
438
|
pushRevalidationTraceEntry({
|
|
@@ -485,19 +449,13 @@ export function withCacheLookup<TEnv>(
|
|
|
485
449
|
continue;
|
|
486
450
|
}
|
|
487
451
|
|
|
488
|
-
// Skip intercept segments - they're handled separately
|
|
489
452
|
if (segment.namespace?.startsWith("intercept:")) {
|
|
490
453
|
yield segment;
|
|
491
454
|
continue;
|
|
492
455
|
}
|
|
493
456
|
|
|
494
|
-
// Look up revalidation rules for this segment
|
|
495
457
|
const entryInfo = entryRevalidateMap?.get(segment.id);
|
|
496
458
|
|
|
497
|
-
// Even without explicit revalidation rules, route segments and their
|
|
498
|
-
// children must re-render when params or search params change — the
|
|
499
|
-
// handler reads ctx.params/ctx.searchParams so different values produce
|
|
500
|
-
// different content. Matches evaluateRevalidation's default logic.
|
|
501
459
|
const searchChanged = ctx.prevUrl.search !== ctx.url.search;
|
|
502
460
|
const routeParamsChanged = !paramsEqual(
|
|
503
461
|
ctx.matched.params,
|
|
@@ -511,7 +469,6 @@ export function withCacheLookup<TEnv>(
|
|
|
511
469
|
|
|
512
470
|
if (!entryInfo || entryInfo.revalidate.length === 0) {
|
|
513
471
|
if (shouldDefaultRevalidate) {
|
|
514
|
-
// Params or search params changed — must re-render even without custom rules
|
|
515
472
|
if (isTraceActive()) {
|
|
516
473
|
pushRevalidationTraceEntry({
|
|
517
474
|
segmentId: segment.id,
|
|
@@ -528,7 +485,6 @@ export function withCacheLookup<TEnv>(
|
|
|
528
485
|
yield segment;
|
|
529
486
|
continue;
|
|
530
487
|
}
|
|
531
|
-
// No revalidation rules, use default behavior (skip if client has)
|
|
532
488
|
if (isTraceActive()) {
|
|
533
489
|
pushRevalidationTraceEntry({
|
|
534
490
|
segmentId: segment.id,
|
|
@@ -546,7 +502,6 @@ export function withCacheLookup<TEnv>(
|
|
|
546
502
|
continue;
|
|
547
503
|
}
|
|
548
504
|
|
|
549
|
-
// Evaluate revalidation rules
|
|
550
505
|
const shouldRevalidate = await evaluateRevalidation({
|
|
551
506
|
segment,
|
|
552
507
|
prevParams: ctx.prevParams,
|
|
@@ -580,7 +535,6 @@ export function withCacheLookup<TEnv>(
|
|
|
580
535
|
}
|
|
581
536
|
|
|
582
537
|
if (!shouldRevalidate) {
|
|
583
|
-
// Client has it, no revalidation needed
|
|
584
538
|
segment.component = null;
|
|
585
539
|
segment.loading = undefined;
|
|
586
540
|
}
|
|
@@ -588,7 +542,6 @@ export function withCacheLookup<TEnv>(
|
|
|
588
542
|
yield segment;
|
|
589
543
|
}
|
|
590
544
|
|
|
591
|
-
// Set streaming flag (once) and resolve render barrier.
|
|
592
545
|
const barrierReqCtx = _getRequestContext();
|
|
593
546
|
if (barrierReqCtx) {
|
|
594
547
|
if (barrierReqCtx._treeHasStreaming === undefined) {
|
|
@@ -597,22 +550,17 @@ export function withCacheLookup<TEnv>(
|
|
|
597
550
|
barrierReqCtx._resolveRenderBarrier(cacheResult.segments);
|
|
598
551
|
}
|
|
599
552
|
|
|
600
|
-
// Resolve loaders fresh (loaders are NOT cached by default)
|
|
601
|
-
// This ensures fresh data even on cache hit
|
|
602
553
|
const Store = ctx.Store;
|
|
603
554
|
const loaderStart = performance.now();
|
|
604
555
|
|
|
605
556
|
if (ctx.isFullMatch) {
|
|
606
|
-
// Full match (document request) - simple loader resolution without revalidation
|
|
607
557
|
if (resolveLoadersOnly) {
|
|
608
558
|
const loaderSegments = await Store.run(() =>
|
|
609
559
|
resolveLoadersOnly(ctx.entries, ctx.handlerContext),
|
|
610
560
|
);
|
|
611
561
|
|
|
612
|
-
// Update state - full match doesn't track matchedIds separately
|
|
613
562
|
state.matchedIds = state.cachedMatchedIds!;
|
|
614
563
|
|
|
615
|
-
// Yield fresh loader segments
|
|
616
564
|
for (const segment of loaderSegments) {
|
|
617
565
|
yield segment;
|
|
618
566
|
}
|
|
@@ -620,7 +568,6 @@ export function withCacheLookup<TEnv>(
|
|
|
620
568
|
state.matchedIds = state.cachedMatchedIds!;
|
|
621
569
|
}
|
|
622
570
|
} else {
|
|
623
|
-
// Partial match (navigation) - loader resolution with revalidation
|
|
624
571
|
if (resolveLoadersOnlyWithRevalidation) {
|
|
625
572
|
const loaderResult = await Store.run(() =>
|
|
626
573
|
resolveLoadersOnlyWithRevalidation(
|
|
@@ -123,21 +123,14 @@ export function withCacheStore<TEnv>(
|
|
|
123
123
|
): AsyncGenerator<ResolvedSegment> {
|
|
124
124
|
const ms = ctx.metricsStore;
|
|
125
125
|
|
|
126
|
-
// Collect all segments while passing them through
|
|
127
126
|
const allSegments: ResolvedSegment[] = [];
|
|
128
127
|
for await (const segment of source) {
|
|
129
128
|
allSegments.push(segment);
|
|
130
129
|
yield segment;
|
|
131
130
|
}
|
|
132
131
|
|
|
133
|
-
// Measure own work only (after source iteration completes)
|
|
134
132
|
const ownStart = performance.now();
|
|
135
133
|
|
|
136
|
-
// Skip caching if:
|
|
137
|
-
// 1. Cache miss but cache scope is disabled
|
|
138
|
-
// 2. This is an action (actions don't cache)
|
|
139
|
-
// 3. Cache was already hit (no need to re-cache)
|
|
140
|
-
// 4. Non-GET request (only cache GET requests)
|
|
141
134
|
if (
|
|
142
135
|
!ctx.cacheScope?.enabled ||
|
|
143
136
|
ctx.isAction ||
|
|
@@ -162,13 +155,8 @@ export function withCacheStore<TEnv>(
|
|
|
162
155
|
createHandleStore,
|
|
163
156
|
} = getRouterContext<TEnv>();
|
|
164
157
|
|
|
165
|
-
// Combine main segments with intercept segments
|
|
166
158
|
const allSegmentsToCache = [...allSegments, ...state.interceptSegments];
|
|
167
159
|
|
|
168
|
-
// Check if any non-loader segments have null components from revalidation
|
|
169
|
-
// skip (client already had them). Segments where the handler intentionally
|
|
170
|
-
// returned null are not revalidation skips — re-rendering them will still
|
|
171
|
-
// produce null, so proactive caching would be wasted work.
|
|
172
160
|
const hasNullComponents = allSegmentsToCache.some(
|
|
173
161
|
(s) =>
|
|
174
162
|
s.component === null &&
|
|
@@ -184,10 +172,7 @@ export function withCacheStore<TEnv>(
|
|
|
184
172
|
? getOrCreateRequestId(ctx.request)
|
|
185
173
|
: undefined;
|
|
186
174
|
|
|
187
|
-
// Register onResponse callback to skip caching for non-200 responses
|
|
188
|
-
// Note: error/notFound status codes are set elsewhere (not caching-specific)
|
|
189
175
|
requestCtx.onResponse((response) => {
|
|
190
|
-
// Only cache successful responses
|
|
191
176
|
if (response.status !== 200) {
|
|
192
177
|
debugLog("cacheStore", "skipping cache for non-200 response", {
|
|
193
178
|
status: response.status,
|
|
@@ -197,10 +182,7 @@ export function withCacheStore<TEnv>(
|
|
|
197
182
|
}
|
|
198
183
|
|
|
199
184
|
if (hasNullComponents) {
|
|
200
|
-
// Proactive caching: render all segments fresh in background
|
|
201
|
-
// This ensures cache has complete components for future requests
|
|
202
185
|
requestCtx.waitUntil(async () => {
|
|
203
|
-
// Prevent background metrics from polluting foreground timeline.
|
|
204
186
|
const savedMetrics = ctx.Store.metrics;
|
|
205
187
|
ctx.Store.metrics = undefined;
|
|
206
188
|
|
|
@@ -208,15 +190,9 @@ export function withCacheStore<TEnv>(
|
|
|
208
190
|
debugLog("cacheStore", "proactive caching started", {
|
|
209
191
|
pathname: ctx.pathname,
|
|
210
192
|
});
|
|
211
|
-
// Swap to a fresh HandleStore so handle.push() calls from
|
|
212
|
-
// proactive resolution are captured (not silenced). The original
|
|
213
|
-
// store's stream is already sent by waitUntil time.
|
|
214
|
-
// cacheRoute reads from requestCtx._handleStore, so this ensures
|
|
215
|
-
// complete handle data (e.g. breadcrumbs) is cached.
|
|
216
193
|
const originalHandleStore = requestCtx._handleStore;
|
|
217
194
|
requestCtx._handleStore = createHandleStore();
|
|
218
195
|
try {
|
|
219
|
-
// Create fresh context for proactive caching
|
|
220
196
|
const proactiveHandlerContext = createHandlerContext(
|
|
221
197
|
ctx.matched.params,
|
|
222
198
|
ctx.request,
|
|
@@ -231,12 +207,8 @@ export function withCacheStore<TEnv>(
|
|
|
231
207
|
);
|
|
232
208
|
const proactiveLoaderPromises = new Map<string, Promise<any>>();
|
|
233
209
|
|
|
234
|
-
// Use normal loader access so handle data is captured
|
|
235
210
|
setupLoaderAccess(proactiveHandlerContext, proactiveLoaderPromises);
|
|
236
211
|
|
|
237
|
-
// Re-resolve ALL segments without revalidation.
|
|
238
|
-
// Skip DSL loaders — they are never cached (cacheRoute filters them)
|
|
239
|
-
// and are always resolved fresh on each request.
|
|
240
212
|
const Store = ctx.Store;
|
|
241
213
|
const freshSegments = await Store.run(() =>
|
|
242
214
|
resolveAllSegments(
|
|
@@ -249,7 +221,6 @@ export function withCacheStore<TEnv>(
|
|
|
249
221
|
),
|
|
250
222
|
);
|
|
251
223
|
|
|
252
|
-
// Also resolve intercept segments fresh if applicable
|
|
253
224
|
let freshInterceptSegments: ResolvedSegment[] = [];
|
|
254
225
|
if (ctx.interceptResult) {
|
|
255
226
|
freshInterceptSegments = await Store.run(() =>
|
|
@@ -301,8 +272,6 @@ export function withCacheStore<TEnv>(
|
|
|
301
272
|
}
|
|
302
273
|
});
|
|
303
274
|
} else {
|
|
304
|
-
// All segments have components - cache directly
|
|
305
|
-
// Schedule caching in waitUntil since cacheRoute is now async (key resolution)
|
|
306
275
|
if (INTERNAL_RANGO_DEBUG) {
|
|
307
276
|
console.log(
|
|
308
277
|
`[RSC CacheStore][req:${reqId}] Direct cache path: scheduling cacheRoute for ${ctx.pathname} (${allSegmentsToCache.length} segments, hasNullComponents=${hasNullComponents})`,
|
|
@@ -125,17 +125,14 @@ export function withInterceptResolution<TEnv>(
|
|
|
125
125
|
): AsyncGenerator<ResolvedSegment> {
|
|
126
126
|
const ms = ctx.metricsStore;
|
|
127
127
|
|
|
128
|
-
// First, yield all segments from the source (main segment resolution or cache)
|
|
129
128
|
const segments: ResolvedSegment[] = [];
|
|
130
129
|
for await (const segment of source) {
|
|
131
130
|
segments.push(segment);
|
|
132
131
|
yield segment;
|
|
133
132
|
}
|
|
134
133
|
|
|
135
|
-
// Measure own work only (after source iteration completes)
|
|
136
134
|
const ownStart = performance.now();
|
|
137
135
|
|
|
138
|
-
// Skip intercept resolution for full match (document requests don't have intercepts)
|
|
139
136
|
if (ctx.isFullMatch) {
|
|
140
137
|
if (ms) {
|
|
141
138
|
ms.metrics.push({
|
|
@@ -147,18 +144,12 @@ export function withInterceptResolution<TEnv>(
|
|
|
147
144
|
return;
|
|
148
145
|
}
|
|
149
146
|
|
|
150
|
-
// Skip intercept resolution if:
|
|
151
|
-
// 1. No intercept result
|
|
152
|
-
// 2. Already have intercept segments (from cache hit with intercept key)
|
|
153
|
-
// 3. Cache hit with intercept key
|
|
154
147
|
const skipInterceptResolution =
|
|
155
148
|
!ctx.interceptResult ||
|
|
156
149
|
state.interceptSegments.length > 0 ||
|
|
157
150
|
(state.cacheHit && ctx.isIntercept);
|
|
158
151
|
|
|
159
152
|
if (skipInterceptResolution) {
|
|
160
|
-
// For cache hit with intercept, extract intercept segments from cached data for slots
|
|
161
|
-
// and re-resolve loaders for fresh data
|
|
162
153
|
if (ctx.interceptResult && state.cacheHit && ctx.isIntercept) {
|
|
163
154
|
await handleCacheHitIntercept(ctx, state, segments);
|
|
164
155
|
}
|
|
@@ -172,7 +163,6 @@ export function withInterceptResolution<TEnv>(
|
|
|
172
163
|
return;
|
|
173
164
|
}
|
|
174
165
|
|
|
175
|
-
// Resolve intercept segments
|
|
176
166
|
const { resolveInterceptEntry } = getRouterContext<TEnv>();
|
|
177
167
|
|
|
178
168
|
const slotName = ctx.interceptResult!.intercept.slotName;
|
|
@@ -181,7 +171,6 @@ export function withInterceptResolution<TEnv>(
|
|
|
181
171
|
slotName,
|
|
182
172
|
});
|
|
183
173
|
|
|
184
|
-
// Resolve intercept entry (middleware, loaders, handler)
|
|
185
174
|
const Store = ctx.Store;
|
|
186
175
|
const interceptSegments = await Store.run(() =>
|
|
187
176
|
resolveInterceptEntry(
|
|
@@ -203,14 +192,12 @@ export function withInterceptResolution<TEnv>(
|
|
|
203
192
|
),
|
|
204
193
|
);
|
|
205
194
|
|
|
206
|
-
// Update state
|
|
207
195
|
state.interceptSegments = interceptSegments;
|
|
208
196
|
state.slots[slotName] = {
|
|
209
197
|
active: true,
|
|
210
198
|
segments: interceptSegments,
|
|
211
199
|
};
|
|
212
200
|
|
|
213
|
-
// Yield intercept segments
|
|
214
201
|
for (const segment of interceptSegments) {
|
|
215
202
|
yield segment;
|
|
216
203
|
}
|
|
@@ -225,11 +212,6 @@ export function withInterceptResolution<TEnv>(
|
|
|
225
212
|
};
|
|
226
213
|
}
|
|
227
214
|
|
|
228
|
-
/**
|
|
229
|
-
* Handle cache hit with intercept scenario
|
|
230
|
-
*
|
|
231
|
-
* Extract intercept segments from cached data and re-resolve loaders for fresh data.
|
|
232
|
-
*/
|
|
233
215
|
async function handleCacheHitIntercept<TEnv>(
|
|
234
216
|
ctx: MatchContext<TEnv>,
|
|
235
217
|
state: MatchPipelineState,
|
|
@@ -241,14 +223,11 @@ async function handleCacheHitIntercept<TEnv>(
|
|
|
241
223
|
|
|
242
224
|
const slotName = ctx.interceptResult.intercept.slotName;
|
|
243
225
|
|
|
244
|
-
// Find intercept segments from cached segments (namespace starts with "intercept:")
|
|
245
226
|
const interceptSegments = segments.filter((s) =>
|
|
246
227
|
s.namespace?.startsWith("intercept:"),
|
|
247
228
|
);
|
|
248
229
|
state.interceptSegments = interceptSegments;
|
|
249
230
|
|
|
250
|
-
// Re-resolve intercept loaders for fresh data on cache hit
|
|
251
|
-
// This keeps cached component/layout but fetches fresh loader data
|
|
252
231
|
if (resolveInterceptLoadersOnly) {
|
|
253
232
|
const Store = ctx.Store;
|
|
254
233
|
const freshLoaderResult = await Store.run(() =>
|
|
@@ -271,7 +250,6 @@ async function handleCacheHitIntercept<TEnv>(
|
|
|
271
250
|
),
|
|
272
251
|
);
|
|
273
252
|
|
|
274
|
-
// Update intercept segment's loaderDataPromise with fresh data
|
|
275
253
|
if (freshLoaderResult) {
|
|
276
254
|
const interceptMainSegment = interceptSegments.find(
|
|
277
255
|
(s) => s.type === "parallel" && s.slot,
|
|
@@ -93,12 +93,6 @@ import type { MatchContext, MatchPipelineState } from "../match-context.js";
|
|
|
93
93
|
import { getRouterContext } from "../router-context.js";
|
|
94
94
|
import type { GeneratorMiddleware } from "./cache-lookup.js";
|
|
95
95
|
|
|
96
|
-
/**
|
|
97
|
-
* Check whether any entry in the tree uses loading() (streaming).
|
|
98
|
-
* Matches the router's streaming semantics in fresh.ts: streaming is
|
|
99
|
-
* enabled when `loading` is defined AND not `false`. `loading: false`
|
|
100
|
-
* explicitly disables streaming; `undefined` means no loading at all.
|
|
101
|
-
*/
|
|
102
96
|
export function treeHasStreaming(entries: EntryData[]): boolean {
|
|
103
97
|
for (const entry of entries) {
|
|
104
98
|
if (
|
|
@@ -130,12 +124,6 @@ export function treeHasStreaming(entries: EntryData[]): boolean {
|
|
|
130
124
|
return false;
|
|
131
125
|
}
|
|
132
126
|
|
|
133
|
-
/**
|
|
134
|
-
* Creates segment resolution middleware
|
|
135
|
-
*
|
|
136
|
-
* Only runs on cache miss (state.cacheHit === false).
|
|
137
|
-
* Uses resolveAllSegmentsWithRevalidation from RouterContext to resolve segments.
|
|
138
|
-
*/
|
|
139
127
|
export function withSegmentResolution<TEnv>(
|
|
140
128
|
ctx: MatchContext<TEnv>,
|
|
141
129
|
state: MatchPipelineState,
|
|
@@ -145,17 +133,12 @@ export function withSegmentResolution<TEnv>(
|
|
|
145
133
|
): AsyncGenerator<ResolvedSegment> {
|
|
146
134
|
const ms = ctx.metricsStore;
|
|
147
135
|
|
|
148
|
-
// IMPORTANT: Always iterate source first to give cache-lookup a chance
|
|
149
|
-
// to run and set state.cacheHit. Without this, cache-lookup never executes!
|
|
150
136
|
for await (const segment of source) {
|
|
151
137
|
yield segment;
|
|
152
138
|
}
|
|
153
139
|
|
|
154
|
-
// Measure own work only (after source iteration completes)
|
|
155
140
|
const ownStart = performance.now();
|
|
156
141
|
|
|
157
|
-
// If cache hit, segments were already yielded by cache lookup
|
|
158
|
-
// (render barrier is resolved on the cache-hit path)
|
|
159
142
|
if (state.cacheHit) {
|
|
160
143
|
if (ms) {
|
|
161
144
|
ms.metrics.push({
|
|
@@ -178,7 +161,6 @@ export function withSegmentResolution<TEnv>(
|
|
|
178
161
|
const Store = ctx.Store;
|
|
179
162
|
|
|
180
163
|
if (ctx.isFullMatch) {
|
|
181
|
-
// Full match (document request) - simple resolution without revalidation
|
|
182
164
|
const segments = await Store.run(() =>
|
|
183
165
|
resolveAllSegments(
|
|
184
166
|
ctx.entries,
|
|
@@ -189,15 +171,12 @@ export function withSegmentResolution<TEnv>(
|
|
|
189
171
|
),
|
|
190
172
|
);
|
|
191
173
|
|
|
192
|
-
// Update state with resolved segments
|
|
193
174
|
state.segments = segments;
|
|
194
175
|
state.matchedIds = segments.map((s: { id: string }) => s.id);
|
|
195
176
|
|
|
196
177
|
if (reqCtx) {
|
|
197
178
|
reqCtx._resolveRenderBarrier(segments);
|
|
198
179
|
}
|
|
199
|
-
|
|
200
|
-
// Yield all resolved segments
|
|
201
180
|
for (const segment of segments) {
|
|
202
181
|
yield segment;
|
|
203
182
|
}
|
|
@@ -106,16 +106,6 @@ import {
|
|
|
106
106
|
withSegmentResolution,
|
|
107
107
|
} from "./match-middleware/index.js";
|
|
108
108
|
|
|
109
|
-
/**
|
|
110
|
-
* Compose multiple async generator middleware into a single middleware
|
|
111
|
-
*
|
|
112
|
-
* Middleware are applied in reverse order (rightmost runs first, innermost).
|
|
113
|
-
* For the pipeline:
|
|
114
|
-
* compose(A, B, C)(source)
|
|
115
|
-
*
|
|
116
|
-
* The flow is: source -> C -> B -> A -> output
|
|
117
|
-
* Where C is the innermost (runs first on input) and A is outermost (runs last).
|
|
118
|
-
*/
|
|
119
109
|
export function compose<T>(
|
|
120
110
|
...middleware: GeneratorMiddleware<T>[]
|
|
121
111
|
): GeneratorMiddleware<T> {
|
|
@@ -126,54 +116,23 @@ export function compose<T>(
|
|
|
126
116
|
return middleware[0];
|
|
127
117
|
}
|
|
128
118
|
return (source) => {
|
|
129
|
-
// Apply middleware in reverse order (rightmost first)
|
|
130
119
|
return middleware.reduceRight((prev, fn) => fn(prev), source);
|
|
131
120
|
};
|
|
132
121
|
}
|
|
133
122
|
|
|
134
|
-
|
|
135
|
-
* Create an empty async generator (source for pipeline)
|
|
136
|
-
*/
|
|
137
|
-
export async function* empty<T>(): AsyncGenerator<T> {
|
|
138
|
-
// Yields nothing - used as the initial source for the pipeline
|
|
139
|
-
}
|
|
123
|
+
export async function* empty<T>(): AsyncGenerator<T> {}
|
|
140
124
|
|
|
141
|
-
/**
|
|
142
|
-
* Create the match partial pipeline
|
|
143
|
-
*
|
|
144
|
-
* Pipeline order (innermost to outermost):
|
|
145
|
-
* 1. cache-lookup - Check cache first, yield cached segments if hit
|
|
146
|
-
* 2. segment-resolution - Resolve segments if cache miss
|
|
147
|
-
* 3. intercept-resolution - Resolve intercept segments
|
|
148
|
-
* 4. cache-store - Store segments in cache
|
|
149
|
-
* 5. background-revalidation - Trigger SWR if cache was stale
|
|
150
|
-
*
|
|
151
|
-
* Data flow:
|
|
152
|
-
* - empty() produces no segments
|
|
153
|
-
* - cache-lookup either yields cached segments OR passes through to segment-resolution
|
|
154
|
-
* - segment-resolution resolves fresh segments on cache miss
|
|
155
|
-
* - intercept-resolution adds intercept segments
|
|
156
|
-
* - cache-store observes and caches segments
|
|
157
|
-
* - background-revalidation triggers SWR revalidation if needed
|
|
158
|
-
*/
|
|
159
125
|
export function createMatchPartialPipeline<TEnv>(
|
|
160
126
|
ctx: MatchContext<TEnv>,
|
|
161
127
|
state: MatchPipelineState,
|
|
162
128
|
): AsyncGenerator<ResolvedSegment> {
|
|
163
|
-
// Build the middleware chain
|
|
164
129
|
const pipeline = compose<ResolvedSegment>(
|
|
165
|
-
// Outermost - observes segments and triggers background revalidation
|
|
166
130
|
withBackgroundRevalidation(ctx, state),
|
|
167
|
-
// Observes and stores segments in cache
|
|
168
131
|
withCacheStore(ctx, state),
|
|
169
|
-
// Adds intercept segments after main segments
|
|
170
132
|
withInterceptResolution(ctx, state),
|
|
171
|
-
// Resolves segments on cache miss
|
|
172
133
|
withSegmentResolution(ctx, state),
|
|
173
|
-
// Innermost - checks cache first
|
|
174
134
|
withCacheLookup(ctx, state),
|
|
175
135
|
);
|
|
176
136
|
|
|
177
|
-
// Start with empty source - cache lookup or segment resolution will produce segments
|
|
178
137
|
return pipeline(empty());
|
|
179
138
|
}
|