@rangojs/router 0.0.0-experimental.73ab3466 → 0.0.0-experimental.73e3d61f
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 +80 -150
- package/package.json +2 -2
- package/src/browser/app-version.ts +14 -0
- package/src/browser/navigation-bridge.ts +10 -3
- package/src/browser/navigation-client.ts +60 -64
- package/src/browser/partial-update.ts +10 -4
- package/src/browser/react/Link.tsx +3 -2
- package/src/browser/react/NavigationProvider.tsx +1 -1
- package/src/browser/react/context.ts +1 -2
- package/src/browser/react/use-router.ts +2 -1
- package/src/browser/rsc-router.tsx +18 -3
- package/src/browser/server-action-bridge.ts +3 -18
- package/src/browser/types.ts +2 -1
- package/src/deps/browser.ts +0 -1
- package/src/host/router.ts +19 -9
- package/src/router/intercept-resolution.ts +3 -2
- package/src/router/match-middleware/cache-lookup.ts +4 -1
- package/src/router/segment-resolution/fresh.ts +11 -3
- package/src/router/segment-resolution/revalidation.ts +8 -3
- package/src/router.ts +4 -1
- package/src/rsc/handler.ts +2 -27
- package/src/rsc/loader-fetch.ts +2 -7
- package/src/rsc/progressive-enhancement.ts +1 -4
- package/src/rsc/rsc-rendering.ts +1 -4
- package/src/rsc/server-action.ts +0 -2
- package/src/rsc/types.ts +0 -4
- package/src/server/context.ts +57 -1
- package/src/server/request-context.ts +0 -7
- package/src/vite/plugins/performance-tracks.ts +64 -216
- package/src/vite/rango.ts +15 -10
- package/src/vite/utils/shared-utils.ts +3 -2
- 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
- package/src/browser/debug-channel.ts +0 -93
package/dist/vite/index.js
CHANGED
|
@@ -9,18 +9,18 @@ import fs from "node:fs";
|
|
|
9
9
|
|
|
10
10
|
// src/vite/plugins/expose-id-utils.ts
|
|
11
11
|
import path from "node:path";
|
|
12
|
-
import
|
|
12
|
+
import crypto from "node:crypto";
|
|
13
13
|
function normalizePath(p) {
|
|
14
14
|
return p.split(path.sep).join("/");
|
|
15
15
|
}
|
|
16
16
|
function hashId(filePath, exportName) {
|
|
17
17
|
const input = `${filePath}#${exportName}`;
|
|
18
|
-
const hash =
|
|
18
|
+
const hash = crypto.createHash("sha256").update(input).digest("hex");
|
|
19
19
|
return `${hash.slice(0, 8)}#${exportName}`;
|
|
20
20
|
}
|
|
21
21
|
function hashInlineId(filePath, lineNumber, index) {
|
|
22
22
|
const input = index !== void 0 && index > 0 ? `${filePath}:${lineNumber}:${index}` : `${filePath}:${lineNumber}`;
|
|
23
|
-
return
|
|
23
|
+
return crypto.createHash("sha256").update(input).digest("hex").slice(0, 8);
|
|
24
24
|
}
|
|
25
25
|
function buildExportMap(program) {
|
|
26
26
|
const exportMap = /* @__PURE__ */ new Map();
|
|
@@ -1745,7 +1745,7 @@ import { resolve } from "node:path";
|
|
|
1745
1745
|
// package.json
|
|
1746
1746
|
var package_default = {
|
|
1747
1747
|
name: "@rangojs/router",
|
|
1748
|
-
version: "0.0.0-experimental.
|
|
1748
|
+
version: "0.0.0-experimental.73e3d61f",
|
|
1749
1749
|
description: "Django-inspired RSC router with composable URL patterns",
|
|
1750
1750
|
keywords: [
|
|
1751
1751
|
"react",
|
|
@@ -1887,7 +1887,7 @@ var package_default = {
|
|
|
1887
1887
|
"test:unit:watch": "vitest"
|
|
1888
1888
|
},
|
|
1889
1889
|
dependencies: {
|
|
1890
|
-
"@vitejs/plugin-rsc": "^0.5.
|
|
1890
|
+
"@vitejs/plugin-rsc": "^0.5.19",
|
|
1891
1891
|
"magic-string": "^0.30.17",
|
|
1892
1892
|
picomatch: "^4.0.3",
|
|
1893
1893
|
"rsc-html-stream": "^0.0.7"
|
|
@@ -2784,6 +2784,68 @@ function createVersionPlugin() {
|
|
|
2784
2784
|
|
|
2785
2785
|
// src/vite/utils/shared-utils.ts
|
|
2786
2786
|
import * as Vite from "vite";
|
|
2787
|
+
|
|
2788
|
+
// src/vite/plugins/performance-tracks.ts
|
|
2789
|
+
import { readFile } from "node:fs/promises";
|
|
2790
|
+
var RSDW_PATCH_RE = /((?:var|let|const)\s+\w+\s*=\s*root\._children\s*,\s*(\w+)\s*=\s*root\._debugInfo\s*[;,])/;
|
|
2791
|
+
function buildPatchReplacement(match, debugInfoVar) {
|
|
2792
|
+
return `${match}
|
|
2793
|
+
if (${debugInfoVar} && 0 === ${debugInfoVar}.length && "fulfilled" === root.status) {
|
|
2794
|
+
var _resolved = "function" === typeof resolveLazy ? resolveLazy(root.value) : root.value;
|
|
2795
|
+
if ("object" === typeof _resolved && null !== _resolved && isArrayImpl(_resolved._debugInfo)) {
|
|
2796
|
+
${debugInfoVar} = _resolved._debugInfo;
|
|
2797
|
+
}
|
|
2798
|
+
}`;
|
|
2799
|
+
}
|
|
2800
|
+
function patchRsdwClientDebugInfoRecovery(code) {
|
|
2801
|
+
const match = code.match(RSDW_PATCH_RE);
|
|
2802
|
+
if (!match) {
|
|
2803
|
+
return { code, debugInfoVar: null };
|
|
2804
|
+
}
|
|
2805
|
+
return {
|
|
2806
|
+
code: code.replace(match[1], buildPatchReplacement(match[1], match[2])),
|
|
2807
|
+
debugInfoVar: match[2]
|
|
2808
|
+
};
|
|
2809
|
+
}
|
|
2810
|
+
function performanceTracksOptimizeDepsPlugin() {
|
|
2811
|
+
return {
|
|
2812
|
+
name: "@rangojs/router:performance-tracks-optimize-deps",
|
|
2813
|
+
setup(build) {
|
|
2814
|
+
build.onLoad(
|
|
2815
|
+
{
|
|
2816
|
+
filter: /react-server-dom-webpack-client\.browser\.(development|production)\.js$/
|
|
2817
|
+
},
|
|
2818
|
+
async (args) => {
|
|
2819
|
+
const code = await readFile(args.path, "utf8");
|
|
2820
|
+
const patched = patchRsdwClientDebugInfoRecovery(code);
|
|
2821
|
+
return {
|
|
2822
|
+
contents: patched.code,
|
|
2823
|
+
loader: "js"
|
|
2824
|
+
};
|
|
2825
|
+
}
|
|
2826
|
+
);
|
|
2827
|
+
}
|
|
2828
|
+
};
|
|
2829
|
+
}
|
|
2830
|
+
function performanceTracksPlugin() {
|
|
2831
|
+
return {
|
|
2832
|
+
name: "@rangojs/router:performance-tracks",
|
|
2833
|
+
transform(code, id) {
|
|
2834
|
+
if (!id.includes("react-server-dom") || !id.includes("client")) return;
|
|
2835
|
+
const patched = patchRsdwClientDebugInfoRecovery(code);
|
|
2836
|
+
if (!patched.debugInfoVar) return;
|
|
2837
|
+
if (process.env.INTERNAL_RANGO_DEBUG)
|
|
2838
|
+
console.log(
|
|
2839
|
+
"[perf-tracks] patched RSDW client (var:",
|
|
2840
|
+
patched.debugInfoVar,
|
|
2841
|
+
")"
|
|
2842
|
+
);
|
|
2843
|
+
return patched.code;
|
|
2844
|
+
}
|
|
2845
|
+
};
|
|
2846
|
+
}
|
|
2847
|
+
|
|
2848
|
+
// src/vite/utils/shared-utils.ts
|
|
2787
2849
|
var versionEsbuildPlugin = {
|
|
2788
2850
|
name: "@rangojs/router-version",
|
|
2789
2851
|
setup(build) {
|
|
@@ -2801,7 +2863,7 @@ var versionEsbuildPlugin = {
|
|
|
2801
2863
|
}
|
|
2802
2864
|
};
|
|
2803
2865
|
var sharedEsbuildOptions = {
|
|
2804
|
-
plugins: [versionEsbuildPlugin]
|
|
2866
|
+
plugins: [versionEsbuildPlugin, performanceTracksOptimizeDepsPlugin()]
|
|
2805
2867
|
};
|
|
2806
2868
|
function createVirtualEntriesPlugin(entries, routerPathRef) {
|
|
2807
2869
|
const virtualModules = {};
|
|
@@ -4861,151 +4923,23 @@ ${details}`
|
|
|
4861
4923
|
};
|
|
4862
4924
|
}
|
|
4863
4925
|
|
|
4864
|
-
// src/vite/plugins/performance-tracks.ts
|
|
4865
|
-
import { Module } from "node:module";
|
|
4866
|
-
var DEBUG_ID_HEADER = "X-RSC-Debug-Id";
|
|
4867
|
-
var DEBUG_S2C_EVENT = "rango:perf-s2c";
|
|
4868
|
-
var DEBUG_C2S_EVENT = "rango:perf-c2s";
|
|
4869
|
-
var GLOBAL_KEY = "__RANGO_DEBUG_CHANNELS__";
|
|
4870
|
-
function getRegistry() {
|
|
4871
|
-
return Module[GLOBAL_KEY] ??= {
|
|
4872
|
-
channels: /* @__PURE__ */ new Map(),
|
|
4873
|
-
sessions: /* @__PURE__ */ new Map()
|
|
4874
|
-
};
|
|
4875
|
-
}
|
|
4876
|
-
var bytesToBase64 = (bytes) => Buffer.from(bytes).toString("base64");
|
|
4877
|
-
var base64ToBytes = (base64) => new Uint8Array(Buffer.from(base64, "base64"));
|
|
4878
|
-
function performanceTracksPlugin() {
|
|
4879
|
-
return {
|
|
4880
|
-
name: "@rangojs/router:performance-tracks",
|
|
4881
|
-
// Only configureServer hook — naturally dev-only
|
|
4882
|
-
configureServer(server) {
|
|
4883
|
-
console.log("[perf-tracks] plugin loaded, configureServer called");
|
|
4884
|
-
const hot = server.environments.client.hot;
|
|
4885
|
-
const registry = getRegistry();
|
|
4886
|
-
const sessions = registry.sessions;
|
|
4887
|
-
const sendChunk = (debugId, chunk) => {
|
|
4888
|
-
hot.send(DEBUG_S2C_EVENT, {
|
|
4889
|
-
i: debugId,
|
|
4890
|
-
b: bytesToBase64(chunk)
|
|
4891
|
-
});
|
|
4892
|
-
};
|
|
4893
|
-
const cleanupIfEnded = (debugId, session) => {
|
|
4894
|
-
if (session.pendingChunks || !session.ended) return;
|
|
4895
|
-
sessions.delete(debugId);
|
|
4896
|
-
hot.send(DEBUG_S2C_EVENT, {
|
|
4897
|
-
i: debugId,
|
|
4898
|
-
d: true
|
|
4899
|
-
});
|
|
4900
|
-
};
|
|
4901
|
-
const registerDebugChannel = (debugId) => {
|
|
4902
|
-
let session = sessions.get(debugId);
|
|
4903
|
-
if (!session) {
|
|
4904
|
-
session = { pendingChunks: [], ended: false };
|
|
4905
|
-
sessions.set(debugId, session);
|
|
4906
|
-
}
|
|
4907
|
-
const readable = new ReadableStream({
|
|
4908
|
-
start(controller) {
|
|
4909
|
-
session.cmdController = controller;
|
|
4910
|
-
},
|
|
4911
|
-
cancel() {
|
|
4912
|
-
delete session.cmdController;
|
|
4913
|
-
}
|
|
4914
|
-
});
|
|
4915
|
-
const writable = new WritableStream({
|
|
4916
|
-
write(chunk) {
|
|
4917
|
-
if (session.pendingChunks) {
|
|
4918
|
-
session.pendingChunks.push(chunk);
|
|
4919
|
-
} else {
|
|
4920
|
-
sendChunk(debugId, chunk);
|
|
4921
|
-
}
|
|
4922
|
-
},
|
|
4923
|
-
close() {
|
|
4924
|
-
session.ended = true;
|
|
4925
|
-
cleanupIfEnded(debugId, session);
|
|
4926
|
-
},
|
|
4927
|
-
abort() {
|
|
4928
|
-
session.ended = true;
|
|
4929
|
-
cleanupIfEnded(debugId, session);
|
|
4930
|
-
}
|
|
4931
|
-
});
|
|
4932
|
-
registry.channels.set(debugId, { readable, writable });
|
|
4933
|
-
};
|
|
4934
|
-
hot.on(DEBUG_C2S_EVENT, (raw) => {
|
|
4935
|
-
const payload = raw;
|
|
4936
|
-
const session = sessions.get(payload.i);
|
|
4937
|
-
if (payload.d) {
|
|
4938
|
-
if (session?.cmdController) {
|
|
4939
|
-
try {
|
|
4940
|
-
session.cmdController.close();
|
|
4941
|
-
} catch {
|
|
4942
|
-
}
|
|
4943
|
-
delete session.cmdController;
|
|
4944
|
-
}
|
|
4945
|
-
return;
|
|
4946
|
-
}
|
|
4947
|
-
if (payload.b) {
|
|
4948
|
-
if (session?.cmdController) {
|
|
4949
|
-
try {
|
|
4950
|
-
session.cmdController.enqueue(base64ToBytes(payload.b));
|
|
4951
|
-
} catch {
|
|
4952
|
-
delete session.cmdController;
|
|
4953
|
-
}
|
|
4954
|
-
}
|
|
4955
|
-
return;
|
|
4956
|
-
}
|
|
4957
|
-
if (session) {
|
|
4958
|
-
if (session.pendingChunks) {
|
|
4959
|
-
for (const chunk of session.pendingChunks) {
|
|
4960
|
-
sendChunk(payload.i, chunk);
|
|
4961
|
-
}
|
|
4962
|
-
delete session.pendingChunks;
|
|
4963
|
-
}
|
|
4964
|
-
cleanupIfEnded(payload.i, session);
|
|
4965
|
-
} else {
|
|
4966
|
-
sessions.set(payload.i, { ended: false });
|
|
4967
|
-
}
|
|
4968
|
-
});
|
|
4969
|
-
server.middlewares.use((req, _res, next) => {
|
|
4970
|
-
const url = req.url || "";
|
|
4971
|
-
const existingId = req.headers[DEBUG_ID_HEADER.toLowerCase()];
|
|
4972
|
-
const isHtml = req.headers.accept?.includes("text/html");
|
|
4973
|
-
const isRsc = url.includes("_rsc_partial");
|
|
4974
|
-
if (!existingId && !isHtml && !isRsc) {
|
|
4975
|
-
next();
|
|
4976
|
-
return;
|
|
4977
|
-
}
|
|
4978
|
-
const debugId = existingId || crypto.randomUUID();
|
|
4979
|
-
if (!existingId) {
|
|
4980
|
-
const lowerName = DEBUG_ID_HEADER.toLowerCase();
|
|
4981
|
-
req.headers[lowerName] = debugId;
|
|
4982
|
-
if (req.rawHeaders) {
|
|
4983
|
-
req.rawHeaders.push(DEBUG_ID_HEADER, debugId);
|
|
4984
|
-
}
|
|
4985
|
-
}
|
|
4986
|
-
registerDebugChannel(debugId);
|
|
4987
|
-
console.log(
|
|
4988
|
-
"[perf-tracks] middleware: channel for",
|
|
4989
|
-
debugId,
|
|
4990
|
-
"url:",
|
|
4991
|
-
url.slice(0, 80),
|
|
4992
|
-
existingId ? "(client)" : isHtml ? "(SSR)" : "(RSC partial)"
|
|
4993
|
-
);
|
|
4994
|
-
next();
|
|
4995
|
-
});
|
|
4996
|
-
}
|
|
4997
|
-
};
|
|
4998
|
-
}
|
|
4999
|
-
|
|
5000
4926
|
// src/vite/rango.ts
|
|
5001
4927
|
async function rango(options) {
|
|
5002
4928
|
const resolvedOptions = options ?? { preset: "node" };
|
|
5003
4929
|
const preset = resolvedOptions.preset ?? "node";
|
|
5004
|
-
console.log("[perf-tracks] rango() called, preset:", preset);
|
|
5005
4930
|
const showBanner = resolvedOptions.banner ?? true;
|
|
5006
4931
|
const plugins = [];
|
|
5007
4932
|
const rangoAliases = getPackageAliases();
|
|
5008
|
-
const excludeDeps =
|
|
4933
|
+
const excludeDeps = [
|
|
4934
|
+
...getExcludeDeps(),
|
|
4935
|
+
// The public browser entry re-exports the RSDW browser client.
|
|
4936
|
+
// Excluding both keeps Vite from freezing the unpatched bundle into
|
|
4937
|
+
// .vite/deps before our source transforms run.
|
|
4938
|
+
"@vitejs/plugin-rsc/browser",
|
|
4939
|
+
// Keep the browser RSDW client out of Vite's dep optimizer so our
|
|
4940
|
+
// cjs-to-esm transform can patch the real file.
|
|
4941
|
+
"@vitejs/plugin-rsc/vendor/react-server-dom/client.browser"
|
|
4942
|
+
];
|
|
5009
4943
|
const routerRef = { path: void 0 };
|
|
5010
4944
|
const prerenderEnabled = true;
|
|
5011
4945
|
if (preset === "cloudflare") {
|
|
@@ -5101,6 +5035,7 @@ async function rango(options) {
|
|
|
5101
5035
|
}
|
|
5102
5036
|
});
|
|
5103
5037
|
plugins.push(createVirtualEntriesPlugin(finalEntries));
|
|
5038
|
+
plugins.push(performanceTracksPlugin());
|
|
5104
5039
|
plugins.push(
|
|
5105
5040
|
rsc({
|
|
5106
5041
|
entries: finalEntries,
|
|
@@ -5219,12 +5154,7 @@ ${list}`);
|
|
|
5219
5154
|
}
|
|
5220
5155
|
});
|
|
5221
5156
|
plugins.push(createVirtualEntriesPlugin(finalEntries, routerRef));
|
|
5222
|
-
|
|
5223
|
-
console.log(
|
|
5224
|
-
"[perf-tracks] rango: plugin created, has configureServer:",
|
|
5225
|
-
!!perfPlugin.configureServer
|
|
5226
|
-
);
|
|
5227
|
-
plugins.push(perfPlugin);
|
|
5157
|
+
plugins.push(performanceTracksPlugin());
|
|
5228
5158
|
plugins.push(
|
|
5229
5159
|
rsc({
|
|
5230
5160
|
entries: finalEntries
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rangojs/router",
|
|
3
|
-
"version": "0.0.0-experimental.
|
|
3
|
+
"version": "0.0.0-experimental.73e3d61f",
|
|
4
4
|
"description": "Django-inspired RSC router with composable URL patterns",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
"test:unit:watch": "vitest"
|
|
143
143
|
},
|
|
144
144
|
"dependencies": {
|
|
145
|
-
"@vitejs/plugin-rsc": "^0.5.
|
|
145
|
+
"@vitejs/plugin-rsc": "^0.5.19",
|
|
146
146
|
"magic-string": "^0.30.17",
|
|
147
147
|
"picomatch": "^4.0.3",
|
|
148
148
|
"rsc-html-stream": "^0.0.7"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mutable app version — updated after HMR revalidation.
|
|
3
|
+
* Read by prefetch, navigation, and context code.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
let currentVersion: string | undefined;
|
|
7
|
+
|
|
8
|
+
export function getAppVersion(): string | undefined {
|
|
9
|
+
return currentVersion;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function setAppVersion(version: string | undefined): void {
|
|
13
|
+
currentVersion = version;
|
|
14
|
+
}
|
|
@@ -4,6 +4,7 @@ import type {
|
|
|
4
4
|
NavigateOptionsInternal,
|
|
5
5
|
ResolvedSegment,
|
|
6
6
|
} from "./types.js";
|
|
7
|
+
import { setAppVersion } from "./app-version.js";
|
|
7
8
|
import * as React from "react";
|
|
8
9
|
import { startTransition } from "react";
|
|
9
10
|
import {
|
|
@@ -67,8 +68,8 @@ export interface NavigationBridgeConfigWithController extends NavigationBridgeCo
|
|
|
67
68
|
export function createNavigationBridge(
|
|
68
69
|
config: NavigationBridgeConfigWithController,
|
|
69
70
|
): NavigationBridge {
|
|
70
|
-
const { store, client, eventController, onUpdate, renderSegments
|
|
71
|
-
|
|
71
|
+
const { store, client, eventController, onUpdate, renderSegments } = config;
|
|
72
|
+
let version = config.version;
|
|
72
73
|
|
|
73
74
|
// Create shared partial updater
|
|
74
75
|
const fetchPartialUpdate = createPartialUpdater({
|
|
@@ -76,7 +77,7 @@ export function createNavigationBridge(
|
|
|
76
77
|
client,
|
|
77
78
|
onUpdate,
|
|
78
79
|
renderSegments,
|
|
79
|
-
version,
|
|
80
|
+
getVersion: () => version,
|
|
80
81
|
});
|
|
81
82
|
|
|
82
83
|
return {
|
|
@@ -632,6 +633,12 @@ export function createNavigationBridge(
|
|
|
632
633
|
window.removeEventListener("pageshow", handlePageShow);
|
|
633
634
|
};
|
|
634
635
|
},
|
|
636
|
+
|
|
637
|
+
updateVersion(newVersion: string): void {
|
|
638
|
+
version = newVersion;
|
|
639
|
+
setAppVersion(newVersion);
|
|
640
|
+
store.clearHistoryCache();
|
|
641
|
+
},
|
|
635
642
|
};
|
|
636
643
|
}
|
|
637
644
|
|
|
@@ -12,8 +12,6 @@ import {
|
|
|
12
12
|
startBrowserTransaction,
|
|
13
13
|
} from "./logging.js";
|
|
14
14
|
import { getRangoState } from "./rango-state.js";
|
|
15
|
-
import { createClientDebugChannel, DEBUG_ID_HEADER } from "./debug-channel.js";
|
|
16
|
-
import { findSourceMapURL } from "../deps/browser.js";
|
|
17
15
|
import {
|
|
18
16
|
extractRscHeaderUrl,
|
|
19
17
|
emptyResponse,
|
|
@@ -109,21 +107,53 @@ export function createNavigationClient(
|
|
|
109
107
|
resolveStreamComplete = resolve;
|
|
110
108
|
});
|
|
111
109
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
:
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
110
|
+
/**
|
|
111
|
+
* Validate RSC control headers on any response (fresh, cached, or
|
|
112
|
+
* in-flight). Handles version-mismatch reloads and server redirects.
|
|
113
|
+
* Returns the response unchanged when no control header is present.
|
|
114
|
+
*/
|
|
115
|
+
const validateRscHeaders = (
|
|
116
|
+
response: Response,
|
|
117
|
+
source: string,
|
|
118
|
+
): Response | Promise<Response> => {
|
|
119
|
+
// Version mismatch — server wants a full page reload
|
|
120
|
+
const reload = extractRscHeaderUrl(response, "X-RSC-Reload");
|
|
121
|
+
if (reload === "blocked") {
|
|
122
|
+
resolveStreamComplete();
|
|
123
|
+
return emptyResponse();
|
|
124
|
+
}
|
|
125
|
+
if (reload) {
|
|
126
|
+
if (tx) {
|
|
127
|
+
browserDebugLog(tx, `version mismatch, reloading (${source})`, {
|
|
128
|
+
reloadUrl: reload.url,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
window.location.href = reload.url;
|
|
132
|
+
// Block further processing — page is reloading
|
|
133
|
+
return new Promise<Response>(() => {});
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Server-side redirect without state: the server returned 204 with
|
|
137
|
+
// X-RSC-Redirect instead of a 3xx (which fetch would auto-follow
|
|
138
|
+
// to a URL rendering full HTML). Throw ServerRedirect so the
|
|
139
|
+
// navigation bridge catches it and re-navigates with _skipCache.
|
|
140
|
+
const redirect = extractRscHeaderUrl(response, "X-RSC-Redirect");
|
|
141
|
+
if (redirect === "blocked") {
|
|
142
|
+
resolveStreamComplete();
|
|
143
|
+
return emptyResponse();
|
|
144
|
+
}
|
|
145
|
+
if (redirect) {
|
|
146
|
+
if (tx) {
|
|
147
|
+
browserDebugLog(tx, `server redirect (${source})`, {
|
|
148
|
+
redirectUrl: redirect.url,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
resolveStreamComplete();
|
|
152
|
+
throw new ServerRedirect(redirect.url, undefined);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return response;
|
|
156
|
+
};
|
|
127
157
|
|
|
128
158
|
/** Start a fresh navigation fetch (no cache / inflight hit). */
|
|
129
159
|
const doFreshFetch = (): Promise<Response> => {
|
|
@@ -142,47 +172,14 @@ export function createNavigationClient(
|
|
|
142
172
|
"X-RSC-Router-Intercept-Source": interceptSourceUrl,
|
|
143
173
|
}),
|
|
144
174
|
...(hmr && { "X-RSC-HMR": "1" }),
|
|
145
|
-
...(debugId && { [DEBUG_ID_HEADER]: debugId }),
|
|
146
175
|
},
|
|
147
176
|
signal,
|
|
148
177
|
}).then((response) => {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
if (reload === "blocked") {
|
|
152
|
-
resolveStreamComplete();
|
|
153
|
-
return emptyResponse();
|
|
154
|
-
}
|
|
155
|
-
if (reload) {
|
|
156
|
-
if (tx) {
|
|
157
|
-
browserDebugLog(tx, "version mismatch, reloading", {
|
|
158
|
-
reloadUrl: reload.url,
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
window.location.href = reload.url;
|
|
162
|
-
return new Promise<Response>(() => {});
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// Server-side redirect without state: the server returned 204 with
|
|
166
|
-
// X-RSC-Redirect instead of a 3xx (which fetch would auto-follow
|
|
167
|
-
// to a URL rendering full HTML). Throw ServerRedirect so the
|
|
168
|
-
// navigation bridge catches it and re-navigates with _skipCache.
|
|
169
|
-
const redirect = extractRscHeaderUrl(response, "X-RSC-Redirect");
|
|
170
|
-
if (redirect === "blocked") {
|
|
171
|
-
resolveStreamComplete();
|
|
172
|
-
return emptyResponse();
|
|
173
|
-
}
|
|
174
|
-
if (redirect) {
|
|
175
|
-
if (tx) {
|
|
176
|
-
browserDebugLog(tx, "server redirect", {
|
|
177
|
-
redirectUrl: redirect.url,
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
resolveStreamComplete();
|
|
181
|
-
throw new ServerRedirect(redirect.url, undefined);
|
|
182
|
-
}
|
|
178
|
+
const validated = validateRscHeaders(response, "fetch");
|
|
179
|
+
if (validated instanceof Promise) return validated;
|
|
183
180
|
|
|
184
181
|
return teeWithCompletion(
|
|
185
|
-
|
|
182
|
+
validated,
|
|
186
183
|
() => {
|
|
187
184
|
if (tx) browserDebugLog(tx, "stream complete");
|
|
188
185
|
resolveStreamComplete();
|
|
@@ -198,11 +195,12 @@ export function createNavigationClient(
|
|
|
198
195
|
if (tx) {
|
|
199
196
|
browserDebugLog(tx, "prefetch cache hit", { key: cacheKey });
|
|
200
197
|
}
|
|
201
|
-
// Cached response body is already fully buffered (arrayBuffer),
|
|
202
|
-
// so stream completion is immediate.
|
|
203
198
|
responsePromise = Promise.resolve(cachedResponse).then((response) => {
|
|
199
|
+
const validated = validateRscHeaders(response, "prefetch cache");
|
|
200
|
+
if (validated instanceof Promise) return validated;
|
|
201
|
+
|
|
204
202
|
return teeWithCompletion(
|
|
205
|
-
|
|
203
|
+
validated,
|
|
206
204
|
() => {
|
|
207
205
|
if (tx) browserDebugLog(tx, "stream complete (from cache)");
|
|
208
206
|
resolveStreamComplete();
|
|
@@ -222,8 +220,11 @@ export function createNavigationClient(
|
|
|
222
220
|
return doFreshFetch();
|
|
223
221
|
}
|
|
224
222
|
|
|
223
|
+
const validated = validateRscHeaders(response, "inflight prefetch");
|
|
224
|
+
if (validated instanceof Promise) return validated;
|
|
225
|
+
|
|
225
226
|
return teeWithCompletion(
|
|
226
|
-
|
|
227
|
+
validated,
|
|
227
228
|
() => {
|
|
228
229
|
if (tx) {
|
|
229
230
|
browserDebugLog(tx, "stream complete (from inflight prefetch)");
|
|
@@ -238,13 +239,8 @@ export function createNavigationClient(
|
|
|
238
239
|
}
|
|
239
240
|
|
|
240
241
|
try {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
responsePromise,
|
|
244
|
-
{
|
|
245
|
-
...(debugChannel && { debugChannel, findSourceMapURL }),
|
|
246
|
-
},
|
|
247
|
-
);
|
|
242
|
+
const payload = await deps.createFromFetch<RscPayload>(responsePromise);
|
|
243
|
+
|
|
248
244
|
if (tx) {
|
|
249
245
|
browserDebugLog(tx, "response received", {
|
|
250
246
|
isPartial: payload.metadata?.isPartial,
|
|
@@ -39,8 +39,8 @@ export interface PartialUpdateConfig {
|
|
|
39
39
|
segments: ResolvedSegment[],
|
|
40
40
|
options?: RenderSegmentsOptions,
|
|
41
41
|
) => Promise<ReactNode> | ReactNode;
|
|
42
|
-
/** RSC version
|
|
43
|
-
|
|
42
|
+
/** RSC version getter — returns the current version (may change after HMR) */
|
|
43
|
+
getVersion?: () => string | undefined;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/**
|
|
@@ -104,7 +104,13 @@ export type PartialUpdater = (
|
|
|
104
104
|
export function createPartialUpdater(
|
|
105
105
|
config: PartialUpdateConfig,
|
|
106
106
|
): PartialUpdater {
|
|
107
|
-
const {
|
|
107
|
+
const {
|
|
108
|
+
store,
|
|
109
|
+
client,
|
|
110
|
+
onUpdate,
|
|
111
|
+
renderSegments,
|
|
112
|
+
getVersion = () => undefined,
|
|
113
|
+
} = config;
|
|
108
114
|
|
|
109
115
|
/**
|
|
110
116
|
* Get current page's cached segments as an array
|
|
@@ -193,7 +199,7 @@ export function createPartialUpdater(
|
|
|
193
199
|
// (action redirect sends empty segments for a fresh render).
|
|
194
200
|
staleRevalidation:
|
|
195
201
|
mode.type === "stale-revalidation" || segments.length === 0,
|
|
196
|
-
version,
|
|
202
|
+
version: getVersion(),
|
|
197
203
|
});
|
|
198
204
|
// Mark navigation as streaming (response received, now parsing RSC).
|
|
199
205
|
// Called after fetchPartial so pendingUrl stays set during the network wait,
|
|
@@ -32,6 +32,7 @@ export type LinkState =
|
|
|
32
32
|
| StateOrGetter<Record<string, unknown>>;
|
|
33
33
|
|
|
34
34
|
import { prefetchDirect, prefetchQueued } from "../prefetch/fetch.js";
|
|
35
|
+
import { getAppVersion } from "../app-version.js";
|
|
35
36
|
import {
|
|
36
37
|
observeForPrefetch,
|
|
37
38
|
unobserveForPrefetch,
|
|
@@ -289,7 +290,7 @@ export const Link: ForwardRefExoticComponent<
|
|
|
289
290
|
// prefetch — prefetchDirect bypasses the queue, and hasPrefetch
|
|
290
291
|
// deduplicates if the viewport prefetch already completed.
|
|
291
292
|
const segmentState = ctx.store.getSegmentState();
|
|
292
|
-
prefetchDirect(to, segmentState.currentSegmentIds,
|
|
293
|
+
prefetchDirect(to, segmentState.currentSegmentIds, getAppVersion());
|
|
293
294
|
}
|
|
294
295
|
}, [resolvedStrategy, to, isExternal, ctx]);
|
|
295
296
|
|
|
@@ -308,7 +309,7 @@ export const Link: ForwardRefExoticComponent<
|
|
|
308
309
|
const triggerPrefetch = () => {
|
|
309
310
|
if (cancelled) return;
|
|
310
311
|
const segmentState = ctx.store.getSegmentState();
|
|
311
|
-
prefetchQueued(to, segmentState.currentSegmentIds,
|
|
312
|
+
prefetchQueued(to, segmentState.currentSegmentIds, getAppVersion());
|
|
312
313
|
};
|
|
313
314
|
|
|
314
315
|
// Schedule prefetch only when the app is idle (no navigation/streaming).
|
|
@@ -134,7 +134,7 @@ export interface NavigationProviderProps {
|
|
|
134
134
|
|
|
135
135
|
/**
|
|
136
136
|
* App version from server payload (stable, immutable).
|
|
137
|
-
* Forwarded to
|
|
137
|
+
* Forwarded to context for cache key building.
|
|
138
138
|
*/
|
|
139
139
|
version?: string;
|
|
140
140
|
}
|
|
@@ -43,8 +43,7 @@ export interface NavigationStoreContextValue {
|
|
|
43
43
|
refresh: () => Promise<void>;
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
|
-
* App version from server payload
|
|
47
|
-
* Used in prefetch requests for version mismatch detection.
|
|
46
|
+
* App version from the initial server payload.
|
|
48
47
|
*/
|
|
49
48
|
version: string | undefined;
|
|
50
49
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useContext, useMemo } from "react";
|
|
4
4
|
import { NavigationStoreContext } from "./context.js";
|
|
5
5
|
import { prefetchDirect } from "../prefetch/fetch.js";
|
|
6
|
+
import { getAppVersion } from "../app-version.js";
|
|
6
7
|
import type { RouterInstance, RouterNavigateOptions } from "../types.js";
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -46,7 +47,7 @@ export function useRouter(): RouterInstance {
|
|
|
46
47
|
prefetch(url: string): void {
|
|
47
48
|
const segmentState = ctx.store?.getSegmentState();
|
|
48
49
|
if (segmentState) {
|
|
49
|
-
prefetchDirect(url, segmentState.currentSegmentIds,
|
|
50
|
+
prefetchDirect(url, segmentState.currentSegmentIds, getAppVersion());
|
|
50
51
|
}
|
|
51
52
|
},
|
|
52
53
|
|