@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
|
@@ -594,12 +594,9 @@ export function createRequestContext<TEnv>(
|
|
|
594
594
|
version: stateVersion,
|
|
595
595
|
} = options;
|
|
596
596
|
const cookieHeader = request.headers.get("Cookie");
|
|
597
|
-
// One Set-Cookie per request no matter how many invalidateClientCache() calls.
|
|
598
597
|
let rangoStateRotated = false;
|
|
599
598
|
let parsedCookies: Record<string, string> | null = null;
|
|
600
599
|
|
|
601
|
-
// Create stub response for collecting headers/cookies.
|
|
602
|
-
// All cookie/header mutations go here; cookie reads derive from it.
|
|
603
600
|
let stubResponse = initialResponse
|
|
604
601
|
? new Response(null, {
|
|
605
602
|
status: initialResponse.status,
|
|
@@ -608,11 +605,9 @@ export function createRequestContext<TEnv>(
|
|
|
608
605
|
})
|
|
609
606
|
: new Response(null, { status: 200 });
|
|
610
607
|
|
|
611
|
-
// Create handle store and loader memoization for this request
|
|
612
608
|
const handleStore = createHandleStore();
|
|
613
609
|
const loaderPromises = new Map<string, Promise<any>>();
|
|
614
610
|
|
|
615
|
-
// Lazy parse cookies from the original Cookie header
|
|
616
611
|
const getParsedCookies = (): Record<string, string> => {
|
|
617
612
|
if (!parsedCookies) {
|
|
618
613
|
parsedCookies = parseCookiesFromHeader(cookieHeader);
|
|
@@ -620,7 +615,6 @@ export function createRequestContext<TEnv>(
|
|
|
620
615
|
return parsedCookies;
|
|
621
616
|
};
|
|
622
617
|
|
|
623
|
-
// Cached response cookie mutations — invalidated on setCookie/deleteCookie/setTheme
|
|
624
618
|
let responseCookieCache: Map<string, string | null> | null = null;
|
|
625
619
|
const getResponseCookies = (): Map<string, string | null> => {
|
|
626
620
|
if (!responseCookieCache) {
|
|
@@ -632,8 +626,6 @@ export function createRequestContext<TEnv>(
|
|
|
632
626
|
responseCookieCache = null;
|
|
633
627
|
};
|
|
634
628
|
|
|
635
|
-
// Guard: throw if a response-level side effect is called inside a cache() scope.
|
|
636
|
-
// Uses ALS to detect the scope (set during segment resolution).
|
|
637
629
|
function assertNotInsideCacheScopeALS(methodName: string): void {
|
|
638
630
|
if (isInsideCacheScope()) {
|
|
639
631
|
throw new Error(
|
|
@@ -644,8 +636,7 @@ export function createRequestContext<TEnv>(
|
|
|
644
636
|
}
|
|
645
637
|
}
|
|
646
638
|
|
|
647
|
-
//
|
|
648
|
-
// The stub IS the source of truth for same-request mutations.
|
|
639
|
+
// Response stub Set-Cookie wins, then original header (source of truth for mutations).
|
|
649
640
|
const effectiveCookie = (name: string): string | undefined => {
|
|
650
641
|
const mutations = getResponseCookies();
|
|
651
642
|
if (mutations.has(name)) {
|
|
@@ -655,14 +646,11 @@ export function createRequestContext<TEnv>(
|
|
|
655
646
|
return getParsedCookies()[name];
|
|
656
647
|
};
|
|
657
648
|
|
|
658
|
-
// Theme helpers (only used when themeConfig is provided)
|
|
659
649
|
const getTheme = (): Theme | undefined => {
|
|
660
650
|
if (!themeConfig) return undefined;
|
|
661
651
|
|
|
662
|
-
// Use overlay-aware read so setTheme() in the same request is reflected
|
|
663
652
|
const stored = effectiveCookie(themeConfig.storageKey);
|
|
664
653
|
if (stored) {
|
|
665
|
-
// Validate stored value
|
|
666
654
|
if (stored === "system" && themeConfig.enableSystem) {
|
|
667
655
|
return "system";
|
|
668
656
|
}
|
|
@@ -676,7 +664,6 @@ export function createRequestContext<TEnv>(
|
|
|
676
664
|
const setTheme = (theme: Theme): void => {
|
|
677
665
|
if (!themeConfig) return;
|
|
678
666
|
|
|
679
|
-
// Validate theme value
|
|
680
667
|
if (theme !== "system" && !themeConfig.themes.includes(theme)) {
|
|
681
668
|
console.warn(
|
|
682
669
|
`[Theme] Invalid theme value: "${theme}". Valid values: system, ${themeConfig.themes.join(", ")}`,
|
|
@@ -684,7 +671,6 @@ export function createRequestContext<TEnv>(
|
|
|
684
671
|
return;
|
|
685
672
|
}
|
|
686
673
|
|
|
687
|
-
// Write to stub — effectiveCookie() will pick it up on next read
|
|
688
674
|
stubResponse.headers.append(
|
|
689
675
|
"Set-Cookie",
|
|
690
676
|
serializeCookieValue(themeConfig.storageKey, theme, {
|
|
@@ -696,10 +682,8 @@ export function createRequestContext<TEnv>(
|
|
|
696
682
|
invalidateResponseCookieCache();
|
|
697
683
|
};
|
|
698
684
|
|
|
699
|
-
// Strip internal _rsc* params so userland sees a clean URL.
|
|
700
685
|
const cleanUrl = stripInternalParams(url);
|
|
701
686
|
|
|
702
|
-
// Build the context object first (without use), then add use
|
|
703
687
|
const ctx: RequestContext<TEnv> = {
|
|
704
688
|
env,
|
|
705
689
|
request,
|
|
@@ -840,7 +824,6 @@ export function createRequestContext<TEnv>(
|
|
|
840
824
|
});
|
|
841
825
|
},
|
|
842
826
|
|
|
843
|
-
// Placeholder - will be replaced below
|
|
844
827
|
use: null as any,
|
|
845
828
|
|
|
846
829
|
method: request.method,
|
|
@@ -869,7 +852,6 @@ export function createRequestContext<TEnv>(
|
|
|
869
852
|
this._onResponseCallbacks.push(callback);
|
|
870
853
|
},
|
|
871
854
|
|
|
872
|
-
// Theme properties (only set when themeConfig is provided)
|
|
873
855
|
get theme() {
|
|
874
856
|
return themeConfig ? getTheme() : undefined;
|
|
875
857
|
},
|
|
@@ -893,19 +875,17 @@ export function createRequestContext<TEnv>(
|
|
|
893
875
|
_reportedErrors: new WeakSet<object>(),
|
|
894
876
|
_metricsStore: undefined,
|
|
895
877
|
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
_resolveRenderBarrier: null as any, // set below
|
|
878
|
+
_renderBarrier: null as any,
|
|
879
|
+
_resolveRenderBarrier: null as any,
|
|
899
880
|
_renderBarrierSegmentOrder: undefined,
|
|
900
881
|
|
|
901
882
|
reverse: createReverseFunction(getGlobalRouteMap(), undefined, {}),
|
|
902
883
|
};
|
|
903
884
|
|
|
904
|
-
// Lazy
|
|
905
|
-
// calls rendered(). Requests that don't use rendered() pay zero cost.
|
|
885
|
+
// Lazy allocation: only create Promise when a loader calls rendered().
|
|
906
886
|
let barrierResolved = false;
|
|
907
887
|
let resolveBarrier: (() => void) | undefined;
|
|
908
|
-
ctx._renderBarrier = null as any;
|
|
888
|
+
ctx._renderBarrier = null as any;
|
|
909
889
|
ctx._resolveRenderBarrier = (
|
|
910
890
|
segments: Array<{ type: string; id: string }>,
|
|
911
891
|
) => {
|
|
@@ -916,9 +896,6 @@ export function createRequestContext<TEnv>(
|
|
|
916
896
|
.map((s) => s.id);
|
|
917
897
|
ctx._renderBarrierSegmentOrder = segOrder;
|
|
918
898
|
|
|
919
|
-
// Closing the guard window means no handler can still form a deadlock cycle
|
|
920
|
-
// with a rendered() loader: drop the dependency-tracking state and mark it
|
|
921
|
-
// closed. WHEN this runs is the only streaming/non-streaming difference.
|
|
922
899
|
const closeGuard = () => {
|
|
923
900
|
ctx._renderBarrierWaiters = undefined;
|
|
924
901
|
ctx._handlerLoaderDeps = undefined;
|
|
@@ -926,20 +903,8 @@ export function createRequestContext<TEnv>(
|
|
|
926
903
|
};
|
|
927
904
|
|
|
928
905
|
if (ctx._treeHasStreaming) {
|
|
929
|
-
// Streaming: rendered() keeps waiting on handleStore.settled past this
|
|
930
|
-
// point, and loading() handlers are still in flight. The eager snapshot
|
|
931
|
-
// here would be incomplete, so leave it unset — rendered() builds and
|
|
932
|
-
// caches the complete one after settled. Keep the guard window OPEN so a
|
|
933
|
-
// handler that resumes and awaits a still-waiting rendered() loader is
|
|
934
|
-
// still caught; close it once settled (every tracked handler has finished
|
|
935
|
-
// then, so none can await a loader anymore). settled resolves after
|
|
936
|
-
// rendered() seals; if no loader used rendered(), nothing seals and the
|
|
937
|
-
// (empty) guard state is simply GC'd at request end.
|
|
938
906
|
handleStore.settled.then(closeGuard);
|
|
939
907
|
} else {
|
|
940
|
-
// Non-streaming: all handlers have settled by now. Build and cache the
|
|
941
|
-
// snapshot so loader ctx.use(handle) calls don't rebuild it, and close the
|
|
942
|
-
// guard window immediately.
|
|
943
908
|
ctx._renderBarrierHandleSnapshot = buildHandleSnapshot(
|
|
944
909
|
handleStore,
|
|
945
910
|
segOrder,
|
|
@@ -950,9 +915,6 @@ export function createRequestContext<TEnv>(
|
|
|
950
915
|
};
|
|
951
916
|
Object.defineProperty(ctx, "_renderBarrier", {
|
|
952
917
|
get() {
|
|
953
|
-
// Barrier already resolved (cache/prerender hit) or first lazy access.
|
|
954
|
-
// Either way, replace the getter with a concrete value to avoid
|
|
955
|
-
// repeated Promise.resolve() allocations on subsequent reads.
|
|
956
918
|
const p = barrierResolved
|
|
957
919
|
? Promise.resolve()
|
|
958
920
|
: new Promise<void>((resolve) => {
|
|
@@ -968,24 +930,16 @@ export function createRequestContext<TEnv>(
|
|
|
968
930
|
configurable: true,
|
|
969
931
|
});
|
|
970
932
|
|
|
971
|
-
// Now create use() with access to ctx
|
|
972
933
|
ctx.use = createUseFunction({
|
|
973
934
|
handleStore,
|
|
974
935
|
loaderPromises,
|
|
975
936
|
getContext: () => ctx,
|
|
976
937
|
});
|
|
977
938
|
|
|
978
|
-
// Brand with taint symbol so "use cache" excludes ctx from cache keys
|
|
979
939
|
(ctx as any)[NOCACHE_SYMBOL] = true;
|
|
980
940
|
return ctx;
|
|
981
941
|
}
|
|
982
942
|
|
|
983
|
-
/**
|
|
984
|
-
* Parse Set-Cookie headers from a response into effective cookie state.
|
|
985
|
-
* Returns a map of cookie name -> value (string) or name -> null (deleted).
|
|
986
|
-
* Last-write-wins: later Set-Cookie entries for the same name overwrite earlier ones.
|
|
987
|
-
* Max-Age=0 is treated as a delete.
|
|
988
|
-
*/
|
|
989
943
|
const MAX_AGE_ZERO_RE = /;\s*Max-Age\s*=\s*0/i;
|
|
990
944
|
|
|
991
945
|
function parseResponseCookies(response: Response): Map<string, string | null> {
|
|
@@ -993,7 +947,6 @@ function parseResponseCookies(response: Response): Map<string, string | null> {
|
|
|
993
947
|
const setCookies = response.headers.getSetCookie();
|
|
994
948
|
|
|
995
949
|
for (const header of setCookies) {
|
|
996
|
-
// First segment before ';' is the name=value pair
|
|
997
950
|
const semiIdx = header.indexOf(";");
|
|
998
951
|
const pair = semiIdx === -1 ? header : header.substring(0, semiIdx);
|
|
999
952
|
const eqIdx = pair.indexOf("=");
|
|
@@ -1005,11 +958,9 @@ function parseResponseCookies(response: Response): Map<string, string | null> {
|
|
|
1005
958
|
name = decodeURIComponent(pair.substring(0, eqIdx).trim());
|
|
1006
959
|
value = decodeURIComponent(pair.substring(eqIdx + 1).trim());
|
|
1007
960
|
} catch {
|
|
1008
|
-
// Malformed encoding — skip this entry
|
|
1009
961
|
continue;
|
|
1010
962
|
}
|
|
1011
963
|
|
|
1012
|
-
// Max-Age=0 means the cookie is being deleted
|
|
1013
964
|
const isDeleted = MAX_AGE_ZERO_RE.test(header);
|
|
1014
965
|
result.set(name, isDeleted ? null : value);
|
|
1015
966
|
}
|
|
@@ -1017,9 +968,6 @@ function parseResponseCookies(response: Response): Map<string, string | null> {
|
|
|
1017
968
|
return result;
|
|
1018
969
|
}
|
|
1019
970
|
|
|
1020
|
-
/**
|
|
1021
|
-
* Parse cookies from Cookie header
|
|
1022
|
-
*/
|
|
1023
971
|
function parseCookiesFromHeader(
|
|
1024
972
|
cookieHeader: string | null,
|
|
1025
973
|
): Record<string, string> {
|
|
@@ -1035,7 +983,7 @@ function parseCookiesFromHeader(
|
|
|
1035
983
|
try {
|
|
1036
984
|
cookies[name] = decodeURIComponent(raw);
|
|
1037
985
|
} catch {
|
|
1038
|
-
// Malformed percent-
|
|
986
|
+
// Malformed percent-encoding: fall back to raw value
|
|
1039
987
|
cookies[name] = raw;
|
|
1040
988
|
}
|
|
1041
989
|
}
|
|
@@ -1044,9 +992,6 @@ function parseCookiesFromHeader(
|
|
|
1044
992
|
return cookies;
|
|
1045
993
|
}
|
|
1046
994
|
|
|
1047
|
-
/**
|
|
1048
|
-
* Serialize a cookie for Set-Cookie header
|
|
1049
|
-
*/
|
|
1050
995
|
function serializeCookieValue(
|
|
1051
996
|
name: string,
|
|
1052
997
|
value: string,
|
|
@@ -1074,20 +1019,12 @@ export interface CreateUseFunctionOptions<TEnv> {
|
|
|
1074
1019
|
getContext: () => RequestContext<TEnv>;
|
|
1075
1020
|
}
|
|
1076
1021
|
|
|
1077
|
-
/**
|
|
1078
|
-
* Create the use() function for loader and handle composition.
|
|
1079
|
-
*
|
|
1080
|
-
* This is the unified implementation used by both RequestContext and HandlerContext.
|
|
1081
|
-
* - For loaders: executes and memoizes loader functions
|
|
1082
|
-
* - For handles: returns a push function to add handle data
|
|
1083
|
-
*/
|
|
1084
1022
|
export function createUseFunction<TEnv>(
|
|
1085
1023
|
options: CreateUseFunctionOptions<TEnv>,
|
|
1086
1024
|
): RequestContext["use"] {
|
|
1087
1025
|
const { handleStore, loaderPromises, getContext } = options;
|
|
1088
1026
|
|
|
1089
1027
|
return ((item: LoaderDefinition<any, any> | Handle<any, any>) => {
|
|
1090
|
-
// Handle case: return a push function
|
|
1091
1028
|
if (isHandle(item)) {
|
|
1092
1029
|
const handle = item;
|
|
1093
1030
|
const ctx = getContext();
|
|
@@ -1100,30 +1037,24 @@ export function createUseFunction<TEnv>(
|
|
|
1100
1037
|
);
|
|
1101
1038
|
}
|
|
1102
1039
|
|
|
1103
|
-
// Return a push function bound to this handle and segment
|
|
1104
1040
|
return (
|
|
1105
1041
|
dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>),
|
|
1106
1042
|
) => {
|
|
1107
|
-
// If it's a function, call it immediately to get the promise
|
|
1108
1043
|
const valueOrPromise =
|
|
1109
1044
|
typeof dataOrFn === "function"
|
|
1110
1045
|
? (dataOrFn as () => Promise<unknown>)()
|
|
1111
1046
|
: dataOrFn;
|
|
1112
1047
|
|
|
1113
|
-
// Push directly - promises will be serialized by RSC and streamed
|
|
1114
1048
|
handleStore.push(handle.$$id, segmentId, valueOrPromise);
|
|
1115
1049
|
};
|
|
1116
1050
|
}
|
|
1117
1051
|
|
|
1118
|
-
// Loader case
|
|
1119
1052
|
const loader = item as LoaderDefinition<any, any>;
|
|
1120
1053
|
|
|
1121
|
-
// Return cached promise if already started
|
|
1122
1054
|
if (loaderPromises.has(loader.$$id)) {
|
|
1123
1055
|
return loaderPromises.get(loader.$$id);
|
|
1124
1056
|
}
|
|
1125
1057
|
|
|
1126
|
-
// Get loader function - either from loader object or fetchable registry
|
|
1127
1058
|
let loaderFn = loader.fn;
|
|
1128
1059
|
if (!loaderFn) {
|
|
1129
1060
|
const fetchable = getFetchableLoader(loader.$$id);
|
|
@@ -1140,7 +1071,6 @@ export function createUseFunction<TEnv>(
|
|
|
1140
1071
|
|
|
1141
1072
|
const ctx = getContext();
|
|
1142
1073
|
|
|
1143
|
-
// Create loader context with recursive use() support
|
|
1144
1074
|
const loaderCtx: LoaderContext<Record<string, string | undefined>, TEnv> = {
|
|
1145
1075
|
params: ctx.params,
|
|
1146
1076
|
routeParams: (ctx.params ?? {}) as Record<string, string>,
|
|
@@ -1157,7 +1087,6 @@ export function createUseFunction<TEnv>(
|
|
|
1157
1087
|
use: (<TDep, TDepParams = any>(
|
|
1158
1088
|
dep: LoaderDefinition<TDep, TDepParams>,
|
|
1159
1089
|
): Promise<TDep> => {
|
|
1160
|
-
// Recursive call - will start dep loader if not already started
|
|
1161
1090
|
return ctx.use(dep);
|
|
1162
1091
|
}) as LoaderContext["use"],
|
|
1163
1092
|
method: "GET",
|
|
@@ -1181,7 +1110,6 @@ export function createUseFunction<TEnv>(
|
|
|
1181
1110
|
doneLoader();
|
|
1182
1111
|
});
|
|
1183
1112
|
|
|
1184
|
-
// Memoize for subsequent calls
|
|
1185
1113
|
loaderPromises.set(loader.$$id, promise);
|
|
1186
1114
|
|
|
1187
1115
|
return promise;
|
package/src/ssr/index.tsx
CHANGED
|
@@ -71,7 +71,7 @@ export interface SSRRenderOptions {
|
|
|
71
71
|
*/
|
|
72
72
|
export interface SSRDependencies<TEnv = unknown> {
|
|
73
73
|
/**
|
|
74
|
-
* createFromReadableStream from @
|
|
74
|
+
* createFromReadableStream from @rangojs/router/internal/deps/ssr
|
|
75
75
|
*/
|
|
76
76
|
createFromReadableStream: <T>(
|
|
77
77
|
stream: ReadableStream<Uint8Array>,
|
|
@@ -86,7 +86,7 @@ export interface SSRDependencies<TEnv = unknown> {
|
|
|
86
86
|
) => Promise<ReactDOMReadableStream>;
|
|
87
87
|
|
|
88
88
|
/**
|
|
89
|
-
* injectRSCPayload from
|
|
89
|
+
* injectRSCPayload from @rangojs/router/internal/deps/html-stream-server
|
|
90
90
|
*/
|
|
91
91
|
injectRSCPayload: (
|
|
92
92
|
rscStream: ReadableStream<Uint8Array>,
|
|
@@ -218,10 +218,10 @@ function createSsrEventController(opts: {
|
|
|
218
218
|
*
|
|
219
219
|
* @example
|
|
220
220
|
* ```tsx
|
|
221
|
-
* import { createSSRHandler } from "
|
|
222
|
-
* import { createFromReadableStream } from "@
|
|
221
|
+
* import { createSSRHandler } from "@rangojs/router/ssr";
|
|
222
|
+
* import { createFromReadableStream } from "@rangojs/router/internal/deps/ssr";
|
|
223
223
|
* import { renderToReadableStream } from "react-dom/server.edge";
|
|
224
|
-
* import { injectRSCPayload } from "
|
|
224
|
+
* import { injectRSCPayload } from "@rangojs/router/internal/deps/html-stream-server";
|
|
225
225
|
*
|
|
226
226
|
* export const renderHTML = createSSRHandler({
|
|
227
227
|
* createFromReadableStream,
|
|
@@ -263,6 +263,7 @@ export function createSSRHandler<TEnv = unknown>(deps: SSRDependencies<TEnv>) {
|
|
|
263
263
|
let payload: Promise<RscPayload> | undefined;
|
|
264
264
|
let handlesPromise: Promise<HandleData> | undefined;
|
|
265
265
|
let ssrContextValue: NavigationStoreContextValue | undefined;
|
|
266
|
+
let rootPromise: Promise<React.ReactNode> | undefined;
|
|
266
267
|
function SsrRoot() {
|
|
267
268
|
payload ??= createFromReadableStream<RscPayload>(rscStream1);
|
|
268
269
|
const resolved = React.use(payload);
|
|
@@ -296,17 +297,16 @@ export function createSSRHandler<TEnv = unknown>(deps: SSRDependencies<TEnv>) {
|
|
|
296
297
|
};
|
|
297
298
|
|
|
298
299
|
// Build content tree from segments.
|
|
299
|
-
// Order must match NavigationProvider: NavigationStoreContext > ThemeProvider > content
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
300
|
+
// Order must match NavigationProvider: NavigationStoreContext > NonceContext > ThemeProvider > content
|
|
301
|
+
// Memoize like payload/handles above: renderSegments is async, so
|
|
302
|
+
// React.use() on a fresh promise suspends and replays SsrRoot, which
|
|
303
|
+
// would re-run the entire segment-tree build on every initial render.
|
|
304
|
+
rootPromise ??= Promise.resolve(
|
|
305
|
+
renderSegments(resolved.metadata?.segments ?? [], {
|
|
303
306
|
rootLayout: resolved.metadata?.rootLayout,
|
|
304
|
-
},
|
|
307
|
+
}),
|
|
305
308
|
);
|
|
306
|
-
let content: React.ReactNode =
|
|
307
|
-
reconstructedRoot instanceof Promise
|
|
308
|
-
? React.use(reconstructedRoot)
|
|
309
|
-
: reconstructedRoot;
|
|
309
|
+
let content: React.ReactNode = React.use(rootPromise);
|
|
310
310
|
|
|
311
311
|
// Wrap content with ThemeProvider if theme is enabled
|
|
312
312
|
if (themeConfig) {
|
package/src/static-handler.ts
CHANGED
|
@@ -37,8 +37,6 @@ import type { UseItems, HandlerUseItem } from "./route-types.js";
|
|
|
37
37
|
import { isCachedFunction } from "./cache/taint.js";
|
|
38
38
|
import { isUnderTestRunner } from "./runtime-env.js";
|
|
39
39
|
|
|
40
|
-
// -- Types ------------------------------------------------------------------
|
|
41
|
-
|
|
42
40
|
export interface StaticHandlerOptions {
|
|
43
41
|
/**
|
|
44
42
|
* Keep handler in server bundle for live fallback (default: false).
|
|
@@ -62,11 +60,8 @@ export interface StaticHandlerDefinition<
|
|
|
62
60
|
use?: () => UseItems<HandlerUseItem>;
|
|
63
61
|
}
|
|
64
62
|
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
// Process-stable fallback id counter (mirrors createHandle / createLoader /
|
|
68
|
-
// Prerender). Only assigned in a bare unit test where the Vite plugin did not
|
|
69
|
-
// inject an id; never fires in a real build (the plugin always injects).
|
|
63
|
+
// Process-stable fallback id counter (mirrors createHandle/createLoader/Prerender).
|
|
64
|
+
// Only assigned in bare unit tests where the Vite plugin did not inject an id.
|
|
70
65
|
let runtimeStaticIdCounter = 0;
|
|
71
66
|
|
|
72
67
|
export function Static<TParams extends Record<string, any> = {}>(
|
|
@@ -75,8 +70,6 @@ export function Static<TParams extends Record<string, any> = {}>(
|
|
|
75
70
|
__injectedId?: string,
|
|
76
71
|
): StaticHandlerDefinition<TParams>;
|
|
77
72
|
|
|
78
|
-
// -- Implementation ---------------------------------------------------------
|
|
79
|
-
|
|
80
73
|
export function Static<TParams extends Record<string, any>>(
|
|
81
74
|
handler: Function,
|
|
82
75
|
optionsOrId?: StaticHandlerOptions | string,
|
|
@@ -100,25 +93,12 @@ export function Static<TParams extends Record<string, any>>(
|
|
|
100
93
|
id = maybeId ?? "";
|
|
101
94
|
}
|
|
102
95
|
|
|
103
|
-
// Throw unless under a test runner. The plugin always injects $$id for a
|
|
104
|
-
// supported `export const` Static on every build, so a missing id means either
|
|
105
|
-
// no plugin (a bare test — fall back below) or an UNSUPPORTED shape the plugin
|
|
106
|
-
// silently skipped (dev OR a real build — fail loud; a synthetic id would
|
|
107
|
-
// degrade to a silent static/prerender miss). The message is already small (no
|
|
108
|
-
// stack-parsing diagnostic), so it ships as-is. isUnderTestRunner() is
|
|
109
|
-
// runtime-safe — never a bare `process.env` access.
|
|
110
96
|
if (!id && !isUnderTestRunner()) {
|
|
111
97
|
throw new Error(
|
|
112
98
|
"[rango] Static: missing $$id. Use `export const X = Static(...)` and " +
|
|
113
99
|
"ensure the exposeInternalIds Vite plugin is configured.",
|
|
114
100
|
);
|
|
115
101
|
}
|
|
116
|
-
// Under vitest with no plugin id: assign a process-stable runtime id so a
|
|
117
|
-
// whole-app router with Static() routes constructs in a bare test. Never
|
|
118
|
-
// reached in a real build (the throw above fires there); staticHandlerId is
|
|
119
|
-
// read only during RSC serving (never in dispatch / assertGeneratedRoutesMatch),
|
|
120
|
-
// and the build static manifest keys on the plugin id. Mirrors createHandle /
|
|
121
|
-
// createLoader / Prerender.
|
|
122
102
|
if (!id) {
|
|
123
103
|
id = `__rango_runtime_static_${runtimeStaticIdCounter++}`;
|
|
124
104
|
}
|
|
@@ -131,11 +111,6 @@ export function Static<TParams extends Record<string, any>>(
|
|
|
131
111
|
};
|
|
132
112
|
}
|
|
133
113
|
|
|
134
|
-
// -- Type guard -------------------------------------------------------------
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Type guard to check if a value is a StaticHandlerDefinition.
|
|
138
|
-
*/
|
|
139
114
|
export function isStaticHandler(
|
|
140
115
|
value: unknown,
|
|
141
116
|
): value is StaticHandlerDefinition {
|
|
@@ -37,18 +37,6 @@ export type ExpectedCacheStatus = CacheSegmentStatus;
|
|
|
37
37
|
/** A target carrying response headers (a Response or a `{ headers }` object). */
|
|
38
38
|
export type CacheStatusTarget = Response | { headers: Headers };
|
|
39
39
|
|
|
40
|
-
/**
|
|
41
|
-
* Parse an `X-Rango-Cache` header value into a `{ routeKey: status }` map.
|
|
42
|
-
*
|
|
43
|
-
* Header format: `<routeKey>=<status>, <routeKey2>=<status2>`. The key is the
|
|
44
|
-
* route NAME (ctx.routeKey, e.g. `product.detail`), NOT the URL pattern —
|
|
45
|
-
* see assertCacheStatus. Whitespace around entries and the `=` is tolerated.
|
|
46
|
-
* Entries without a status are ignored.
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* parseCacheHeader("product.detail=hit, shop.layout=stale")
|
|
50
|
-
* // => { "product.detail": "hit", "shop.layout": "stale" }
|
|
51
|
-
*/
|
|
52
40
|
export function parseCacheHeader(
|
|
53
41
|
headerValue: string | null | undefined,
|
|
54
42
|
): Record<string, string> {
|
|
@@ -71,25 +59,6 @@ function getHeaders(target: CacheStatusTarget): Headers {
|
|
|
71
59
|
return target.headers;
|
|
72
60
|
}
|
|
73
61
|
|
|
74
|
-
/**
|
|
75
|
-
* Assert that the `X-Rango-Cache` header reports `expected` status for the
|
|
76
|
-
* given route. Throws a descriptive error when the header is missing (gate
|
|
77
|
-
* off), the route is absent, or the status differs.
|
|
78
|
-
*
|
|
79
|
-
* `routeKey` is the route NAME (e.g. `product.detail`), the same id the header
|
|
80
|
-
* carries — NOT the URL pattern (`/products/:id`). The signal is built from
|
|
81
|
-
* ctx.routeKey (telemetry.ts), so a pattern-shaped key never matches.
|
|
82
|
-
*
|
|
83
|
-
* The header is produced by the RSC render pipeline, so get the Response from
|
|
84
|
-
* the router's real fetch path (`router.fetch(...)`), with the debug cache
|
|
85
|
-
* signal gate enabled (`debugCacheSignal: true` or `RANGO_TEST_SIGNALS=1`).
|
|
86
|
-
* NOTE: `dispatch()` is the non-RSC primitive and never emits this header.
|
|
87
|
-
*
|
|
88
|
-
* @example
|
|
89
|
-
* // debugCacheSignal must be enabled on the router under test.
|
|
90
|
-
* const res = await router.fetch(new Request("https://app/products/42"));
|
|
91
|
-
* assertCacheStatus(res, "product.detail", "hit");
|
|
92
|
-
*/
|
|
93
62
|
export function assertCacheStatus(
|
|
94
63
|
target: CacheStatusTarget,
|
|
95
64
|
segment: string,
|
|
@@ -131,19 +100,6 @@ export interface CacheSink {
|
|
|
131
100
|
events: TelemetryEvent[];
|
|
132
101
|
}
|
|
133
102
|
|
|
134
|
-
/**
|
|
135
|
-
* Create a capturing telemetry sink for asserting on `cache.decision` events.
|
|
136
|
-
*
|
|
137
|
-
* This is the ZERO-production-surface path: no response header is emitted, the
|
|
138
|
-
* consumer just inspects the captured events.
|
|
139
|
-
*
|
|
140
|
-
* @example
|
|
141
|
-
* const { sink, events } = createCacheSink();
|
|
142
|
-
* const router = createRouter({ telemetry: sink, ... });
|
|
143
|
-
* // ...send a request through the router's RSC fetch path...
|
|
144
|
-
* const decisions = filterCacheDecisions(events);
|
|
145
|
-
* expect(decisions[0].segments?.[0].cacheStatus).toBe("hit");
|
|
146
|
-
*/
|
|
147
103
|
export function createCacheSink(): CacheSink {
|
|
148
104
|
const events: TelemetryEvent[] = [];
|
|
149
105
|
const sink: TelemetrySink = {
|
|
@@ -154,9 +110,6 @@ export function createCacheSink(): CacheSink {
|
|
|
154
110
|
return { sink, events };
|
|
155
111
|
}
|
|
156
112
|
|
|
157
|
-
/**
|
|
158
|
-
* Filter captured telemetry events down to `cache.decision` events.
|
|
159
|
-
*/
|
|
160
113
|
export function filterCacheDecisions(
|
|
161
114
|
events: readonly TelemetryEvent[],
|
|
162
115
|
): CacheDecisionEvent[] {
|
|
@@ -17,27 +17,6 @@
|
|
|
17
17
|
|
|
18
18
|
import { getCollectFn, type Handle } from "../handle.js";
|
|
19
19
|
|
|
20
|
-
/**
|
|
21
|
-
* Run a handle's collect function on per-segment pushed values.
|
|
22
|
-
*
|
|
23
|
-
* @param handle - The handle whose collect to run.
|
|
24
|
-
* @param segments - Per-segment pushed values: each entry is the array of values
|
|
25
|
-
* one route segment pushed for this handle, in parent -> child order. Empty
|
|
26
|
-
* per-segment arrays are dropped before the collect runs, matching production
|
|
27
|
-
* collectHandleData (a segment that pushed nothing is not passed through).
|
|
28
|
-
* @returns The accumulated value the handle's collect produces.
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```ts
|
|
32
|
-
* // Default flatten
|
|
33
|
-
* collectHandle(Breadcrumbs, [[{ label: "Home", href: "/" }], [{ label: "P", href: "/p" }]]);
|
|
34
|
-
* // -> [{ label: "Home", href: "/" }, { label: "P", href: "/p" }]
|
|
35
|
-
*
|
|
36
|
-
* // Custom "last wins"
|
|
37
|
-
* const PageTitle = createHandle<string, string>((s) => s.flat().at(-1) ?? "");
|
|
38
|
-
* collectHandle(PageTitle, [["Home"], ["Product"]]); // -> "Product"
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
20
|
export function collectHandle<TData, TAccumulated>(
|
|
42
21
|
handle: Handle<TData, TAccumulated>,
|
|
43
22
|
segments: ReadonlyArray<ReadonlyArray<TData>>,
|
|
@@ -55,9 +34,7 @@ export function collectHandle<TData, TAccumulated>(
|
|
|
55
34
|
return segments.flat() as unknown as TAccumulated;
|
|
56
35
|
}
|
|
57
36
|
|
|
58
|
-
//
|
|
59
|
-
// nothing (empty arrays) are dropped before the collect runs, so a collect
|
|
60
|
-
// that inspects segment count or indices sees the same input as at runtime.
|
|
37
|
+
// Drop empty arrays matching production behavior (segment count/indices).
|
|
61
38
|
const nonEmpty = segments.filter((seg) => seg.length > 0) as TData[][];
|
|
62
39
|
return collectFn(nonEmpty);
|
|
63
40
|
}
|
package/src/testing/e2e/index.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
// Public entry for the consumer e2e harness. `createRangoE2E({ test, expect })`
|
|
2
|
-
// wires the server fixture, page helpers, parity helpers, and matchers around
|
|
3
|
-
// the consumer's Playwright `test`/`expect` objects so this module never
|
|
4
|
-
// imports `@playwright/test` at runtime (type-only imports are erased).
|
|
5
|
-
|
|
6
1
|
import type { Expect, TestType } from "@playwright/test";
|
|
7
2
|
import {
|
|
8
3
|
createUseFixture,
|
|
@@ -35,12 +30,6 @@ import {
|
|
|
35
30
|
} from "./parity.js";
|
|
36
31
|
import { createRangoMatchers, type RangoMatchers } from "./matchers.js";
|
|
37
32
|
|
|
38
|
-
// Cache-status helpers are pure (cache-status.ts imports only TYPES), so they
|
|
39
|
-
// are safe to surface from this Playwright-runnable entry. Importing them from
|
|
40
|
-
// the `@rangojs/router/testing` barrel does NOT work in a plain Playwright
|
|
41
|
-
// runner — the barrel transitively pulls the build-only `@rangojs/router:version`
|
|
42
|
-
// virtual via the route-manifest path. Asserting cache status on a real
|
|
43
|
-
// response is an e2e activity, so this is their Playwright-safe home.
|
|
44
33
|
export {
|
|
45
34
|
assertCacheStatus,
|
|
46
35
|
parseCacheHeader,
|
|
@@ -50,9 +39,6 @@ export {
|
|
|
50
39
|
type ExpectedCacheStatus,
|
|
51
40
|
type CacheStatusTarget,
|
|
52
41
|
} from "../cache-status.js";
|
|
53
|
-
|
|
54
|
-
// Re-export standalone helpers and all public types so the barrel can re-export
|
|
55
|
-
// them from a single module.
|
|
56
42
|
export {
|
|
57
43
|
testId,
|
|
58
44
|
waitForHydration,
|
|
@@ -87,7 +73,6 @@ export interface RangoE2E extends PageHelpers, Parity {
|
|
|
87
73
|
useFixture: (options: FixtureOptions) => Fixture;
|
|
88
74
|
testNoJs: TestType<any, any>;
|
|
89
75
|
rangoMatchers: RangoMatchers;
|
|
90
|
-
// Standalone helpers, re-surfaced for convenience.
|
|
91
76
|
testId: typeof testId;
|
|
92
77
|
waitForHydration: typeof waitForHydration;
|
|
93
78
|
waitForNavigation: typeof waitForNavigation;
|
|
@@ -102,12 +87,6 @@ export interface RangoE2E extends PageHelpers, Parity {
|
|
|
102
87
|
measureTime: typeof measureTime;
|
|
103
88
|
}
|
|
104
89
|
|
|
105
|
-
/**
|
|
106
|
-
* Wire the full e2e harness around a consumer's Playwright `test`/`expect`.
|
|
107
|
-
*
|
|
108
|
-
* @param defaultRoot - fallback app root for `parityDescribe` when a call omits
|
|
109
|
-
* `options.root`.
|
|
110
|
-
*/
|
|
111
90
|
export function createRangoE2E({
|
|
112
91
|
test,
|
|
113
92
|
expect,
|
|
@@ -132,7 +111,6 @@ export function createRangoE2E({
|
|
|
132
111
|
rangoMatchers,
|
|
133
112
|
...parity,
|
|
134
113
|
...pageHelpers,
|
|
135
|
-
// Standalone helpers.
|
|
136
114
|
testId,
|
|
137
115
|
waitForHydration,
|
|
138
116
|
waitForNavigation,
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
// Custom Playwright matchers for Rango assertions. Returned as an object
|
|
2
|
-
// suitable for `expect.extend(...)`. v1 ships only `toHaveRangoPathname`.
|
|
3
|
-
|
|
4
1
|
import type { Expect, Page } from "@playwright/test";
|
|
5
2
|
|
|
6
3
|
interface MatcherResult {
|
|
@@ -12,17 +9,6 @@ export interface RangoMatchers {
|
|
|
12
9
|
toHaveRangoPathname: (page: Page, expected: string) => MatcherResult;
|
|
13
10
|
}
|
|
14
11
|
|
|
15
|
-
/**
|
|
16
|
-
* Build the matcher object for `expect.extend(createRangoMatchers(expect))`.
|
|
17
|
-
*
|
|
18
|
-
* `toHaveRangoPathname(page, expected)` asserts that the pathname of the page's
|
|
19
|
-
* current URL equals `expected`.
|
|
20
|
-
*
|
|
21
|
-
* TODO: `toHaveSegments` / `toHaveParams` are intentionally not implemented.
|
|
22
|
-
* They require a client-emitted signal (the active segment chain / resolved
|
|
23
|
-
* params exposed on the page) that does not exist yet; implementing them by
|
|
24
|
-
* scraping the DOM would be a guess. Add them once the router emits that signal.
|
|
25
|
-
*/
|
|
26
12
|
export function createRangoMatchers(_expect: Expect): RangoMatchers {
|
|
27
13
|
return {
|
|
28
14
|
toHaveRangoPathname(page: Page, expected: string): MatcherResult {
|
|
@@ -39,8 +25,6 @@ export function createRangoMatchers(_expect: Expect): RangoMatchers {
|
|
|
39
25
|
};
|
|
40
26
|
}
|
|
41
27
|
|
|
42
|
-
// Type augmentation so consumers can call `await expect(page).toHaveRangoPathname("/x")`
|
|
43
|
-
// after `expect.extend(rangoMatchers)`, without re-declaring the matcher.
|
|
44
28
|
declare global {
|
|
45
29
|
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
46
30
|
namespace PlaywrightTest {
|