@rangojs/router 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/bin/rango.js +343 -125
- package/dist/types/browser/event-controller.d.ts +6 -0
- package/dist/types/browser/react/use-router.d.ts +10 -3
- package/dist/types/browser/react/use-search-params.d.ts +57 -10
- package/dist/types/browser/types.d.ts +22 -0
- package/dist/types/build/merge-full-manifests.d.ts +3 -0
- package/dist/types/build/route-trie.d.ts +4 -73
- package/dist/types/build/route-types/per-module-writer.d.ts +6 -4
- package/dist/types/build/route-types/router-processing.d.ts +2 -3
- package/dist/types/cache/cache-exec-scope.d.ts +31 -0
- package/dist/types/cache/cf/cf-cache-constants.d.ts +8 -1
- package/dist/types/cache/cf/cf-cache-store.d.ts +15 -1
- package/dist/types/cache/cf/cf-cache-types.d.ts +1 -1
- package/dist/types/cache/cf/cf-kv-utils.d.ts +21 -0
- package/dist/types/cache/taint.d.ts +12 -6
- package/dist/types/client-urls/client-root.d.ts +38 -0
- package/dist/types/client-urls/client-urls.d.ts +5 -0
- package/dist/types/client-urls/navigation.d.ts +38 -0
- package/dist/types/client-urls/revalidation-protocol.d.ts +25 -0
- package/dist/types/client-urls/server-projection.d.ts +62 -0
- package/dist/types/client-urls/types.d.ts +144 -0
- package/dist/types/client.d.ts +12 -4
- package/dist/types/client.rsc.d.ts +4 -1
- package/dist/types/decode-loader-results.d.ts +37 -0
- package/dist/types/errors.d.ts +1 -0
- package/dist/types/handles/is-thenable.d.ts +2 -4
- package/dist/types/index.d.ts +1 -1
- package/dist/types/loader-redirect.d.ts +27 -0
- package/dist/types/outlet-context.d.ts +12 -0
- package/dist/types/outlet-provider.d.ts +3 -1
- package/dist/types/redirect-origin.d.ts +4 -0
- package/dist/types/route-content-wrapper.d.ts +42 -1
- package/dist/types/route-definition/helpers-types.d.ts +13 -2
- package/dist/types/router/error-handling.d.ts +35 -1
- package/dist/types/router/intercept-resolution.d.ts +12 -0
- package/dist/types/router/loader-resolution.d.ts +24 -2
- package/dist/types/router/revalidation.d.ts +7 -0
- package/dist/{types.backup/build/route-trie.d.ts → types/router/route-trie-builder.d.ts} +4 -16
- package/dist/types/router/router-interfaces.d.ts +20 -0
- package/dist/types/router/segment-resolution/helpers.d.ts +1 -1
- package/dist/types/router/trie-matching.d.ts +1 -1
- package/dist/types/rsc/helpers.d.ts +3 -0
- package/dist/types/rsc/manifest-init.d.ts +5 -5
- package/dist/types/rsc/render-pipeline.d.ts +9 -0
- package/dist/types/rsc/routine-plan.d.ts +124 -0
- package/dist/types/rsc/shell-capture-constants.d.ts +17 -0
- package/dist/types/rsc/shell-capture.d.ts +9 -0
- package/dist/types/rsc/shell-serve.d.ts +11 -0
- package/dist/types/rsc/types.d.ts +30 -0
- package/dist/types/segment-system.d.ts +2 -0
- package/dist/types/server/context.d.ts +10 -0
- package/dist/types/server/handle-store.d.ts +34 -3
- package/dist/types/server/request-context.d.ts +14 -1
- package/dist/types/server.d.ts +1 -0
- package/dist/types/ssr/index.d.ts +22 -0
- package/dist/types/ssr/ssr-root.d.ts +10 -0
- package/dist/types/testing/dom.entry.d.ts +1 -1
- package/dist/types/testing/render-route.d.ts +16 -6
- package/dist/types/testing/run-loader.d.ts +9 -0
- package/dist/types/types/boundaries.d.ts +22 -0
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/loader-types.d.ts +57 -5
- package/dist/types/types/segments.d.ts +7 -0
- package/dist/types/urls/path-helper-types.d.ts +10 -4
- package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
- package/dist/types/vite/discovery/discover-routers.d.ts +1 -1
- package/dist/types/vite/discovery/state.d.ts +8 -1
- package/dist/types/vite/encryption-key.d.ts +2 -0
- package/dist/types/vite/plugins/expose-internal-ids.d.ts +10 -0
- package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
- package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
- package/dist/types/vite/utils/shared-utils.d.ts +12 -0
- package/dist/vite/index.js +5101 -2056
- package/package.json +3 -3
- package/skills/breadcrumbs/SKILL.md +39 -9
- package/skills/caching/SKILL.md +1 -1
- package/skills/catalog.json +7 -1
- package/skills/client-urls/SKILL.md +338 -0
- package/skills/comparison/references/framework-comparison.md +23 -9
- package/skills/hooks/SKILL.md +2 -2
- package/skills/hooks/data.md +11 -2
- package/skills/hooks/handle-and-actions.md +7 -0
- package/skills/hooks/outlets.md +26 -5
- package/skills/hooks/urls.md +40 -3
- package/skills/loader/SKILL.md +132 -20
- package/skills/migrate-nextjs/SKILL.md +70 -10
- package/skills/migrate-react-router/SKILL.md +49 -13
- package/skills/migrate-react-router/component-migration.md +18 -13
- package/skills/migrate-react-router/data-and-actions.md +14 -3
- package/skills/migrate-react-router/route-mapping.md +15 -2
- package/skills/mime-routes/SKILL.md +3 -1
- package/skills/parallel/SKILL.md +32 -1
- package/skills/ppr/SKILL.md +16 -6
- package/skills/prerender/SKILL.md +8 -4
- package/skills/rango/SKILL.md +21 -17
- package/skills/react-compiler/SKILL.md +3 -3
- package/skills/response-routes/SKILL.md +4 -2
- package/skills/route/SKILL.md +5 -2
- package/skills/router-setup/SKILL.md +16 -2
- package/skills/scripts/SKILL.md +16 -6
- package/skills/shell-manifest/SKILL.md +16 -7
- package/skills/testing/SKILL.md +2 -2
- package/skills/testing/client-components.md +6 -0
- package/skills/testing/handles.md +30 -8
- package/skills/testing/loader.md +51 -49
- package/skills/testing/middleware.md +1 -1
- package/skills/theme/SKILL.md +8 -5
- package/skills/typesafety/generated-files-and-cli.md +16 -9
- package/skills/typesafety/route-types.md +5 -1
- package/skills/use-cache/SKILL.md +47 -0
- package/src/bin/rango.ts +7 -3
- package/src/browser/event-controller.ts +40 -15
- package/src/browser/navigation-bridge.ts +6 -0
- package/src/browser/navigation-client.ts +5 -0
- package/src/browser/partial-update.ts +77 -10
- package/src/browser/react/NavigationProvider.tsx +7 -0
- package/src/browser/react/use-router.ts +40 -11
- package/src/browser/react/use-search-params.ts +140 -17
- package/src/browser/rsc-router.tsx +59 -0
- package/src/browser/server-action-bridge.ts +26 -0
- package/src/browser/types.ts +22 -0
- package/src/build/merge-full-manifests.ts +161 -0
- package/src/build/route-trie.ts +9 -332
- package/src/build/route-types/include-resolution.ts +66 -11
- package/src/build/route-types/per-module-writer.ts +11 -6
- package/src/build/route-types/router-processing.ts +184 -153
- package/src/build/runtime-discovery.ts +23 -12
- package/src/cache/cache-exec-scope.ts +47 -0
- package/src/cache/cache-runtime.ts +113 -40
- package/src/cache/cf/cf-cache-constants.ts +8 -1
- package/src/cache/cf/cf-cache-store.ts +41 -64
- package/src/cache/cf/cf-cache-types.ts +1 -1
- package/src/cache/cf/cf-kv-utils.ts +38 -0
- package/src/cache/segment-codec.ts +21 -5
- package/src/cache/taint.ts +28 -9
- package/src/client-urls/client-root.tsx +168 -0
- package/src/client-urls/client-urls.ts +698 -0
- package/src/client-urls/navigation.ts +237 -0
- package/src/client-urls/revalidation-protocol.ts +56 -0
- package/src/client-urls/server-projection.ts +579 -0
- package/src/client-urls/types.ts +195 -0
- package/src/client.rsc.tsx +12 -0
- package/src/client.tsx +49 -6
- package/src/decode-loader-results.ts +113 -0
- package/src/errors.ts +14 -0
- package/src/handles/deferred-resolution.ts +14 -7
- package/src/handles/is-thenable.ts +2 -4
- package/src/index.ts +1 -0
- package/src/loader-redirect.tsx +64 -0
- package/src/outlet-context.ts +12 -0
- package/src/outlet-provider.tsx +15 -1
- package/src/redirect-origin.ts +29 -0
- package/src/route-content-wrapper.tsx +96 -3
- package/src/route-definition/dsl-helpers.ts +28 -3
- package/src/route-definition/helpers-types.ts +13 -0
- package/src/route-definition/redirect.ts +17 -18
- package/src/router/error-handling.ts +65 -11
- package/src/router/intercept-resolution.ts +29 -0
- package/src/router/loader-resolution.ts +261 -28
- package/src/router/match-middleware/cache-lookup.ts +24 -15
- package/src/router/match-result.ts +7 -0
- package/src/router/revalidation.ts +24 -11
- package/src/router/route-trie-builder.ts +334 -0
- package/src/router/router-interfaces.ts +38 -0
- package/src/router/segment-resolution/fresh.ts +47 -0
- package/src/router/segment-resolution/helpers.ts +9 -11
- package/src/router/segment-resolution/loader-cache.ts +14 -24
- package/src/router/segment-resolution/revalidation.ts +20 -1
- package/src/router/trie-matching.ts +3 -3
- package/src/router.ts +46 -1
- package/src/rsc/full-payload.ts +6 -0
- package/src/rsc/handler.ts +36 -12
- package/src/rsc/helpers.ts +13 -0
- package/src/rsc/loader-fetch.ts +2 -2
- package/src/rsc/manifest-init.ts +28 -9
- package/src/rsc/progressive-enhancement.ts +247 -70
- package/src/rsc/render-pipeline.ts +68 -24
- package/src/rsc/routine-plan.ts +359 -0
- package/src/rsc/rsc-rendering.ts +569 -302
- package/src/rsc/server-action.ts +180 -71
- package/src/rsc/shell-capture-constants.ts +18 -0
- package/src/rsc/shell-capture.ts +104 -21
- package/src/rsc/shell-serve.ts +15 -2
- package/src/rsc/ssr-setup.ts +10 -1
- package/src/rsc/types.ts +31 -2
- package/src/segment-system.tsx +83 -26
- package/src/server/context.ts +10 -0
- package/src/server/cookie-store.ts +19 -19
- package/src/server/handle-store.ts +185 -48
- package/src/server/request-context.ts +36 -6
- package/src/server.ts +7 -0
- package/src/ssr/index.tsx +37 -2
- package/src/ssr/ssr-root.tsx +30 -2
- package/src/testing/dom.entry.ts +1 -1
- package/src/testing/render-route.tsx +22 -8
- package/src/testing/run-loader.ts +51 -13
- package/src/types/boundaries.ts +19 -0
- package/src/types/index.ts +1 -0
- package/src/types/loader-types.ts +60 -5
- package/src/types/segments.ts +7 -0
- package/src/urls/include-helper.ts +22 -4
- package/src/urls/path-helper-types.ts +14 -1
- package/src/use-loader.tsx +67 -6
- package/src/vite/discovery/client-urls-projection.ts +322 -0
- package/src/vite/discovery/discover-routers.ts +43 -17
- package/src/vite/discovery/state.ts +11 -1
- package/src/vite/discovery/virtual-module-codegen.ts +20 -0
- package/src/vite/encryption-key.ts +29 -0
- package/src/vite/plugins/expose-action-id.ts +2 -2
- package/src/vite/plugins/expose-internal-ids.ts +46 -0
- package/src/vite/plugins/server-ref-hashing.ts +74 -0
- package/src/vite/plugins/server-reference-pattern.ts +10 -0
- package/src/vite/plugins/virtual-entries.ts +12 -3
- package/src/vite/rango.ts +9 -0
- package/src/vite/router-discovery.ts +184 -14
- package/src/vite/utils/shared-utils.ts +12 -7
- package/dist/types.backup/__internal.d.ts +0 -127
- package/dist/types.backup/bin/rango.d.ts +0 -1
- package/dist/types.backup/browser/action-coordinator.d.ts +0 -57
- package/dist/types.backup/browser/action-fence.d.ts +0 -33
- package/dist/types.backup/browser/app-shell.d.ts +0 -34
- package/dist/types.backup/browser/app-version.d.ts +0 -6
- package/dist/types.backup/browser/connection-warmup.d.ts +0 -31
- package/dist/types.backup/browser/cookie-name.d.ts +0 -66
- package/dist/types.backup/browser/event-controller.d.ts +0 -221
- package/dist/types.backup/browser/history-state.d.ts +0 -26
- package/dist/types.backup/browser/index.d.ts +0 -1
- package/dist/types.backup/browser/intercept-utils.d.ts +0 -30
- package/dist/types.backup/browser/invalidate-client-cache.d.ts +0 -17
- package/dist/types.backup/browser/link-interceptor.d.ts +0 -43
- package/dist/types.backup/browser/logging.d.ts +0 -33
- package/dist/types.backup/browser/merge-segment-loaders.d.ts +0 -38
- package/dist/types.backup/browser/navigation-bridge.d.ts +0 -27
- package/dist/types.backup/browser/navigation-client.d.ts +0 -17
- package/dist/types.backup/browser/navigation-store-handle.d.ts +0 -25
- package/dist/types.backup/browser/navigation-store.d.ts +0 -95
- package/dist/types.backup/browser/navigation-transaction.d.ts +0 -75
- package/dist/types.backup/browser/network-error-handler.d.ts +0 -35
- package/dist/types.backup/browser/partial-update.d.ts +0 -61
- package/dist/types.backup/browser/prefetch/cache.d.ts +0 -183
- package/dist/types.backup/browser/prefetch/fetch.d.ts +0 -52
- package/dist/types.backup/browser/prefetch/observer.d.ts +0 -27
- package/dist/types.backup/browser/prefetch/policy.d.ts +0 -13
- package/dist/types.backup/browser/prefetch/queue.d.ts +0 -48
- package/dist/types.backup/browser/prefetch/resource-ready.d.ts +0 -28
- package/dist/types.backup/browser/rango-state.d.ts +0 -52
- package/dist/types.backup/browser/react/Link.d.ts +0 -140
- package/dist/types.backup/browser/react/NavigationProvider.d.ts +0 -88
- package/dist/types.backup/browser/react/ScrollRestoration.d.ts +0 -78
- package/dist/types.backup/browser/react/context.d.ts +0 -54
- package/dist/types.backup/browser/react/filter-segment-order.d.ts +0 -35
- package/dist/types.backup/browser/react/index.d.ts +0 -1
- package/dist/types.backup/browser/react/location-state-shared.d.ts +0 -162
- package/dist/types.backup/browser/react/location-state.d.ts +0 -29
- package/dist/types.backup/browser/react/mount-context.d.ts +0 -23
- package/dist/types.backup/browser/react/nonce-context.d.ts +0 -14
- package/dist/types.backup/browser/react/shallow-equal.d.ts +0 -5
- package/dist/types.backup/browser/react/use-action.d.ts +0 -61
- package/dist/types.backup/browser/react/use-handle.d.ts +0 -21
- package/dist/types.backup/browser/react/use-href.d.ts +0 -32
- package/dist/types.backup/browser/react/use-link-status.d.ts +0 -36
- package/dist/types.backup/browser/react/use-mount.d.ts +0 -24
- package/dist/types.backup/browser/react/use-navigation.d.ts +0 -15
- package/dist/types.backup/browser/react/use-params.d.ts +0 -21
- package/dist/types.backup/browser/react/use-pathname.d.ts +0 -13
- package/dist/types.backup/browser/react/use-reverse.d.ts +0 -40
- package/dist/types.backup/browser/react/use-router.d.ts +0 -23
- package/dist/types.backup/browser/react/use-search-params.d.ts +0 -19
- package/dist/types.backup/browser/react/use-segments.d.ts +0 -29
- package/dist/types.backup/browser/response-adapter.d.ts +0 -58
- package/dist/types.backup/browser/rsc-router.d.ts +0 -141
- package/dist/types.backup/browser/scroll-restoration.d.ts +0 -103
- package/dist/types.backup/browser/segment-reconciler.d.ts +0 -74
- package/dist/types.backup/browser/segment-structure-assert.d.ts +0 -16
- package/dist/types.backup/browser/server-action-bridge.d.ts +0 -29
- package/dist/types.backup/browser/types.d.ts +0 -530
- package/dist/types.backup/browser/validate-redirect-origin.d.ts +0 -28
- package/dist/types.backup/build/collect-fallback-refs.d.ts +0 -5
- package/dist/types.backup/build/generate-manifest.d.ts +0 -100
- package/dist/types.backup/build/generate-route-types.d.ts +0 -8
- package/dist/types.backup/build/index.d.ts +0 -21
- package/dist/types.backup/build/prefix-tree-utils.d.ts +0 -56
- package/dist/types.backup/build/route-types/ast-helpers.d.ts +0 -3
- package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +0 -13
- package/dist/types.backup/build/route-types/codegen.d.ts +0 -16
- package/dist/types.backup/build/route-types/include-resolution.d.ts +0 -74
- package/dist/types.backup/build/route-types/param-extraction.d.ts +0 -13
- package/dist/types.backup/build/route-types/per-module-writer.d.ts +0 -18
- package/dist/types.backup/build/route-types/router-processing.d.ts +0 -82
- package/dist/types.backup/build/route-types/scan-filter.d.ts +0 -17
- package/dist/types.backup/build/route-types/source-scan.d.ts +0 -13
- package/dist/types.backup/build/runtime-discovery.d.ts +0 -24
- package/dist/types.backup/cache/background-task.d.ts +0 -21
- package/dist/types.backup/cache/cache-error.d.ts +0 -71
- package/dist/types.backup/cache/cache-key-utils.d.ts +0 -35
- package/dist/types.backup/cache/cache-policy.d.ts +0 -59
- package/dist/types.backup/cache/cache-runtime.d.ts +0 -51
- package/dist/types.backup/cache/cache-scope.d.ts +0 -134
- package/dist/types.backup/cache/cache-tag.d.ts +0 -79
- package/dist/types.backup/cache/cf/cf-base64.d.ts +0 -4
- package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +0 -105
- package/dist/types.backup/cache/cf/cf-cache-store.d.ts +0 -481
- package/dist/types.backup/cache/cf/cf-cache-types.d.ts +0 -300
- package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +0 -22
- package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +0 -15
- package/dist/types.backup/cache/cf/index.d.ts +0 -3
- package/dist/types.backup/cache/document-cache.d.ts +0 -69
- package/dist/types.backup/cache/handle-capture.d.ts +0 -23
- package/dist/types.backup/cache/handle-snapshot.d.ts +0 -39
- package/dist/types.backup/cache/index.d.ts +0 -7
- package/dist/types.backup/cache/memory-segment-store.d.ts +0 -163
- package/dist/types.backup/cache/profile-registry.d.ts +0 -40
- package/dist/types.backup/cache/read-through-swr.d.ts +0 -60
- package/dist/types.backup/cache/segment-codec.d.ts +0 -78
- package/dist/types.backup/cache/shell-snapshot.d.ts +0 -162
- package/dist/types.backup/cache/tag-invalidation.d.ts +0 -74
- package/dist/types.backup/cache/taint.d.ts +0 -71
- package/dist/types.backup/cache/types.d.ts +0 -407
- package/dist/types.backup/cache/vercel/index.d.ts +0 -1
- package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +0 -267
- package/dist/types.backup/client.d.ts +0 -184
- package/dist/types.backup/client.rsc.d.ts +0 -39
- package/dist/types.backup/cloudflare/index.d.ts +0 -7
- package/dist/types.backup/cloudflare/tracing.d.ts +0 -53
- package/dist/types.backup/component-utils.d.ts +0 -46
- package/dist/types.backup/components/DefaultDocument.d.ts +0 -13
- package/dist/types.backup/context-var.d.ts +0 -84
- package/dist/types.backup/debug.d.ts +0 -57
- package/dist/types.backup/decode-loader-results.d.ts +0 -5
- package/dist/types.backup/default-error-boundary.d.ts +0 -10
- package/dist/types.backup/defer.d.ts +0 -89
- package/dist/types.backup/deps/browser.d.ts +0 -1
- package/dist/types.backup/deps/html-stream-client.d.ts +0 -1
- package/dist/types.backup/deps/html-stream-server.d.ts +0 -1
- package/dist/types.backup/deps/rsc.d.ts +0 -1
- package/dist/types.backup/deps/ssr.d.ts +0 -1
- package/dist/types.backup/encode-kv.d.ts +0 -35
- package/dist/types.backup/errors.d.ts +0 -226
- package/dist/types.backup/escape-script.d.ts +0 -44
- package/dist/types.backup/handle.d.ts +0 -93
- package/dist/types.backup/handles/MetaTags.d.ts +0 -17
- package/dist/types.backup/handles/Scripts.d.ts +0 -38
- package/dist/types.backup/handles/breadcrumbs.d.ts +0 -43
- package/dist/types.backup/handles/deferred-resolution.d.ts +0 -53
- package/dist/types.backup/handles/is-thenable.d.ts +0 -12
- package/dist/types.backup/handles/meta.d.ts +0 -43
- package/dist/types.backup/handles/script.d.ts +0 -139
- package/dist/types.backup/host/cookie-handler.d.ts +0 -8
- package/dist/types.backup/host/errors.d.ts +0 -40
- package/dist/types.backup/host/index.d.ts +0 -33
- package/dist/types.backup/host/pattern-matcher.d.ts +0 -30
- package/dist/types.backup/host/router.d.ts +0 -12
- package/dist/types.backup/host/testing.d.ts +0 -41
- package/dist/types.backup/host/types.d.ts +0 -148
- package/dist/types.backup/host/utils.d.ts +0 -20
- package/dist/types.backup/href-client.d.ts +0 -214
- package/dist/types.backup/index.d.ts +0 -112
- package/dist/types.backup/index.rsc.d.ts +0 -51
- package/dist/types.backup/internal-debug.d.ts +0 -1
- package/dist/types.backup/loader-store.d.ts +0 -193
- package/dist/types.backup/loader.d.ts +0 -18
- package/dist/types.backup/loader.rsc.d.ts +0 -18
- package/dist/types.backup/missing-id-error.d.ts +0 -1
- package/dist/types.backup/outlet-context.d.ts +0 -12
- package/dist/types.backup/outlet-provider.d.ts +0 -12
- package/dist/types.backup/prerender/build-shell-capture.d.ts +0 -104
- package/dist/types.backup/prerender/param-hash.d.ts +0 -6
- package/dist/types.backup/prerender/shell-manifest-key.d.ts +0 -18
- package/dist/types.backup/prerender/store.d.ts +0 -62
- package/dist/types.backup/prerender.d.ts +0 -292
- package/dist/types.backup/redirect-origin.d.ts +0 -55
- package/dist/types.backup/regex-escape.d.ts +0 -6
- package/dist/types.backup/render-error-thrower.d.ts +0 -13
- package/dist/types.backup/response-utils.d.ts +0 -35
- package/dist/types.backup/reverse.d.ts +0 -206
- package/dist/types.backup/root-error-boundary.d.ts +0 -32
- package/dist/types.backup/route-content-wrapper.d.ts +0 -40
- package/dist/types.backup/route-definition/dsl-helpers.d.ts +0 -130
- package/dist/types.backup/route-definition/helper-factories.d.ts +0 -22
- package/dist/types.backup/route-definition/helpers-types.d.ts +0 -392
- package/dist/types.backup/route-definition/index.d.ts +0 -7
- package/dist/types.backup/route-definition/redirect.d.ts +0 -48
- package/dist/types.backup/route-definition/resolve-handler-use.d.ts +0 -19
- package/dist/types.backup/route-definition/use-item-types.d.ts +0 -1
- package/dist/types.backup/route-definition.d.ts +0 -1
- package/dist/types.backup/route-map-builder.d.ts +0 -127
- package/dist/types.backup/route-name.d.ts +0 -27
- package/dist/types.backup/route-types.d.ts +0 -172
- package/dist/types.backup/router/basename.d.ts +0 -10
- package/dist/types.backup/router/content-negotiation.d.ts +0 -91
- package/dist/types.backup/router/debug-manifest.d.ts +0 -7
- package/dist/types.backup/router/error-handling.d.ts +0 -76
- package/dist/types.backup/router/find-match.d.ts +0 -19
- package/dist/types.backup/router/handler-context.d.ts +0 -41
- package/dist/types.backup/router/instrument.d.ts +0 -161
- package/dist/types.backup/router/intercept-resolution.d.ts +0 -79
- package/dist/types.backup/router/lazy-includes.d.ts +0 -26
- package/dist/types.backup/router/loader-resolution.d.ts +0 -63
- package/dist/types.backup/router/logging.d.ts +0 -41
- package/dist/types.backup/router/manifest.d.ts +0 -8
- package/dist/types.backup/router/match-api.d.ts +0 -19
- package/dist/types.backup/router/match-context.d.ts +0 -184
- package/dist/types.backup/router/match-handlers.d.ts +0 -49
- package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +0 -113
- package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +0 -113
- package/dist/types.backup/router/match-middleware/cache-store.d.ts +0 -112
- package/dist/types.backup/router/match-middleware/index.d.ts +0 -80
- package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +0 -116
- package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +0 -94
- package/dist/types.backup/router/match-pipelines.d.ts +0 -103
- package/dist/types.backup/router/match-result.d.ts +0 -114
- package/dist/types.backup/router/metrics.d.ts +0 -6
- package/dist/types.backup/router/middleware-types.d.ts +0 -74
- package/dist/types.backup/router/middleware.d.ts +0 -116
- package/dist/types.backup/router/navigation-snapshot.d.ts +0 -22
- package/dist/types.backup/router/params-util.d.ts +0 -8
- package/dist/types.backup/router/parse-pattern.d.ts +0 -38
- package/dist/types.backup/router/pattern-matching.d.ts +0 -169
- package/dist/types.backup/router/prefetch-cache-ttl.d.ts +0 -27
- package/dist/types.backup/router/prefetch-limits.d.ts +0 -20
- package/dist/types.backup/router/prerender-match.d.ts +0 -50
- package/dist/types.backup/router/preview-match.d.ts +0 -22
- package/dist/types.backup/router/request-classification.d.ts +0 -104
- package/dist/types.backup/router/revalidation.d.ts +0 -57
- package/dist/types.backup/router/route-snapshot.d.ts +0 -112
- package/dist/types.backup/router/router-context.d.ts +0 -137
- package/dist/types.backup/router/router-interfaces.d.ts +0 -432
- package/dist/types.backup/router/router-options.d.ts +0 -738
- package/dist/types.backup/router/router-registry.d.ts +0 -15
- package/dist/types.backup/router/segment-resolution/fresh.d.ts +0 -55
- package/dist/types.backup/router/segment-resolution/helpers.d.ts +0 -93
- package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +0 -33
- package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +0 -44
- package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +0 -90
- package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +0 -53
- package/dist/types.backup/router/segment-resolution/revalidation.d.ts +0 -85
- package/dist/types.backup/router/segment-resolution/static-store.d.ts +0 -17
- package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +0 -16
- package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +0 -28
- package/dist/types.backup/router/segment-resolution.d.ts +0 -3
- package/dist/types.backup/router/segment-wrappers.d.ts +0 -53
- package/dist/types.backup/router/state-cookie-name.d.ts +0 -1
- package/dist/types.backup/router/substitute-pattern-params.d.ts +0 -23
- package/dist/types.backup/router/telemetry-otel.d.ts +0 -113
- package/dist/types.backup/router/telemetry.d.ts +0 -215
- package/dist/types.backup/router/timeout.d.ts +0 -68
- package/dist/types.backup/router/tracing.d.ts +0 -125
- package/dist/types.backup/router/trie-matching.d.ts +0 -32
- package/dist/types.backup/router/types.d.ts +0 -98
- package/dist/types.backup/router/url-params.d.ts +0 -26
- package/dist/types.backup/router.d.ts +0 -7
- package/dist/types.backup/rsc/capture-queue.d.ts +0 -6
- package/dist/types.backup/rsc/full-payload.d.ts +0 -22
- package/dist/types.backup/rsc/handler-context.d.ts +0 -31
- package/dist/types.backup/rsc/handler.d.ts +0 -9
- package/dist/types.backup/rsc/helpers.d.ts +0 -213
- package/dist/types.backup/rsc/index.d.ts +0 -17
- package/dist/types.backup/rsc/json-route-result.d.ts +0 -20
- package/dist/types.backup/rsc/loader-fetch.d.ts +0 -14
- package/dist/types.backup/rsc/manifest-init.d.ts +0 -18
- package/dist/types.backup/rsc/nonce.d.ts +0 -28
- package/dist/types.backup/rsc/origin-guard.d.ts +0 -50
- package/dist/types.backup/rsc/progressive-enhancement.d.ts +0 -19
- package/dist/types.backup/rsc/redirect-guard.d.ts +0 -35
- package/dist/types.backup/rsc/response-cache-serve.d.ts +0 -46
- package/dist/types.backup/rsc/response-error.d.ts +0 -19
- package/dist/types.backup/rsc/response-route-handler.d.ts +0 -29
- package/dist/types.backup/rsc/rsc-rendering.d.ts +0 -23
- package/dist/types.backup/rsc/runtime-warnings.d.ts +0 -22
- package/dist/types.backup/rsc/server-action.d.ts +0 -68
- package/dist/types.backup/rsc/shell-build-manifest.d.ts +0 -84
- package/dist/types.backup/rsc/shell-capture-constants.d.ts +0 -27
- package/dist/types.backup/rsc/shell-capture.d.ts +0 -374
- package/dist/types.backup/rsc/shell-serve.d.ts +0 -136
- package/dist/types.backup/rsc/ssr-setup.d.ts +0 -48
- package/dist/types.backup/rsc/transition-gate.d.ts +0 -27
- package/dist/types.backup/rsc/types.d.ts +0 -290
- package/dist/types.backup/runtime-env.d.ts +0 -1
- package/dist/types.backup/search-params.d.ts +0 -125
- package/dist/types.backup/segment-content-promise.d.ts +0 -13
- package/dist/types.backup/segment-fragments.d.ts +0 -56
- package/dist/types.backup/segment-loader-promise.d.ts +0 -22
- package/dist/types.backup/segment-system.d.ts +0 -84
- package/dist/types.backup/serialize.d.ts +0 -164
- package/dist/types.backup/server/context.d.ts +0 -494
- package/dist/types.backup/server/cookie-parse.d.ts +0 -10
- package/dist/types.backup/server/cookie-store.d.ts +0 -107
- package/dist/types.backup/server/fetchable-loader-store.d.ts +0 -20
- package/dist/types.backup/server/handle-store.d.ts +0 -100
- package/dist/types.backup/server/loader-registry.d.ts +0 -32
- package/dist/types.backup/server/request-context.d.ts +0 -596
- package/dist/types.backup/server/root-layout.d.ts +0 -3
- package/dist/types.backup/server.d.ts +0 -15
- package/dist/types.backup/ssr/index.d.ts +0 -233
- package/dist/types.backup/ssr/inject-rsc-eager.d.ts +0 -3
- package/dist/types.backup/ssr/preinit-client-references.d.ts +0 -71
- package/dist/types.backup/ssr/ssr-root.d.ts +0 -69
- package/dist/types.backup/static-handler.d.ts +0 -57
- package/dist/types.backup/testing/cache-status.d.ts +0 -63
- package/dist/types.backup/testing/collect-handle.d.ts +0 -20
- package/dist/types.backup/testing/dispatch.d.ts +0 -123
- package/dist/types.backup/testing/dom.entry.d.ts +0 -15
- package/dist/types.backup/testing/e2e/fixture.d.ts +0 -37
- package/dist/types.backup/testing/e2e/index.d.ts +0 -30
- package/dist/types.backup/testing/e2e/matchers.d.ts +0 -17
- package/dist/types.backup/testing/e2e/page-helpers.d.ts +0 -62
- package/dist/types.backup/testing/e2e/parity.d.ts +0 -111
- package/dist/types.backup/testing/e2e/server.d.ts +0 -35
- package/dist/types.backup/testing/flight-matchers.d.ts +0 -55
- package/dist/types.backup/testing/flight-normalize.d.ts +0 -1
- package/dist/types.backup/testing/flight-tree.d.ts +0 -192
- package/dist/types.backup/testing/flight.d.ts +0 -115
- package/dist/types.backup/testing/flight.entry.d.ts +0 -27
- package/dist/types.backup/testing/generated-routes.d.ts +0 -66
- package/dist/types.backup/testing/index.d.ts +0 -52
- package/dist/types.backup/testing/internal/context.d.ts +0 -225
- package/dist/types.backup/testing/internal/flight-client-globals.d.ts +0 -1
- package/dist/types.backup/testing/internal/seed-vars.d.ts +0 -30
- package/dist/types.backup/testing/render-handler.d.ts +0 -160
- package/dist/types.backup/testing/render-route.d.ts +0 -246
- package/dist/types.backup/testing/run-loader.d.ts +0 -186
- package/dist/types.backup/testing/run-middleware.d.ts +0 -132
- package/dist/types.backup/testing/run-transition-when.d.ts +0 -77
- package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +0 -6
- package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +0 -13
- package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +0 -7
- package/dist/types.backup/testing/vitest-stubs/version.d.ts +0 -1
- package/dist/types.backup/testing/vitest.d.ts +0 -205
- package/dist/types.backup/theme/ThemeProvider.d.ts +0 -13
- package/dist/types.backup/theme/ThemeScript.d.ts +0 -45
- package/dist/types.backup/theme/constants.d.ts +0 -39
- package/dist/types.backup/theme/index.d.ts +0 -29
- package/dist/types.backup/theme/theme-context.d.ts +0 -21
- package/dist/types.backup/theme/theme-script.d.ts +0 -26
- package/dist/types.backup/theme/types.d.ts +0 -162
- package/dist/types.backup/theme/use-theme.d.ts +0 -8
- package/dist/types.backup/types/boundaries.d.ts +0 -93
- package/dist/types.backup/types/cache-types.d.ts +0 -191
- package/dist/types.backup/types/error-types.d.ts +0 -114
- package/dist/types.backup/types/global-namespace.d.ts +0 -90
- package/dist/types.backup/types/handler-context.d.ts +0 -658
- package/dist/types.backup/types/index.d.ts +0 -11
- package/dist/types.backup/types/loader-types.d.ts +0 -182
- package/dist/types.backup/types/request-scope.d.ts +0 -93
- package/dist/types.backup/types/route-config.d.ts +0 -105
- package/dist/types.backup/types/route-entry.d.ts +0 -95
- package/dist/types.backup/types/segments.d.ts +0 -234
- package/dist/types.backup/types.d.ts +0 -1
- package/dist/types.backup/urls/include-helper.d.ts +0 -17
- package/dist/types.backup/urls/include-provider.d.ts +0 -27
- package/dist/types.backup/urls/index.d.ts +0 -6
- package/dist/types.backup/urls/path-helper-types.d.ts +0 -197
- package/dist/types.backup/urls/path-helper.d.ts +0 -12
- package/dist/types.backup/urls/pattern-types.d.ts +0 -166
- package/dist/types.backup/urls/response-types.d.ts +0 -67
- package/dist/types.backup/urls/type-extraction.d.ts +0 -157
- package/dist/types.backup/urls/urls-function.d.ts +0 -24
- package/dist/types.backup/urls.d.ts +0 -1
- package/dist/types.backup/use-loader.d.ts +0 -150
- package/dist/types.backup/vercel/index.d.ts +0 -10
- package/dist/types.backup/vercel/tracing.d.ts +0 -70
- package/dist/types.backup/vite/debug.d.ts +0 -80
- package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +0 -12
- package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +0 -65
- package/dist/types.backup/vite/discovery/discover-routers.d.ts +0 -17
- package/dist/types.backup/vite/discovery/discovery-errors.d.ts +0 -113
- package/dist/types.backup/vite/discovery/gate-state.d.ts +0 -79
- package/dist/types.backup/vite/discovery/prerender-collection.d.ts +0 -24
- package/dist/types.backup/vite/discovery/route-types-writer.d.ts +0 -32
- package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +0 -22
- package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +0 -40
- package/dist/types.backup/vite/discovery/state.d.ts +0 -162
- package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +0 -15
- package/dist/types.backup/vite/index.d.ts +0 -11
- package/dist/types.backup/vite/inject-client-debug.d.ts +0 -56
- package/dist/types.backup/vite/plugin-types.d.ts +0 -298
- package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +0 -6
- package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +0 -40
- package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +0 -35
- package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +0 -64
- package/dist/types.backup/vite/plugins/expose-action-id.d.ts +0 -18
- package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +0 -37
- package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +0 -19
- package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +0 -10
- package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +0 -8
- package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +0 -13
- package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +0 -29
- package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +0 -6
- package/dist/types.backup/vite/plugins/performance-tracks.d.ts +0 -25
- package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +0 -20
- package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +0 -20
- package/dist/types.backup/vite/plugins/vercel-output.d.ts +0 -85
- package/dist/types.backup/vite/plugins/version-injector.d.ts +0 -21
- package/dist/types.backup/vite/plugins/version-plugin.d.ts +0 -19
- package/dist/types.backup/vite/plugins/virtual-entries.d.ts +0 -36
- package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +0 -7
- package/dist/types.backup/vite/rango.d.ts +0 -29
- package/dist/types.backup/vite/router-discovery.d.ts +0 -23
- package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +0 -64
- package/dist/types.backup/vite/utils/banner.d.ts +0 -2
- package/dist/types.backup/vite/utils/bundle-analysis.d.ts +0 -28
- package/dist/types.backup/vite/utils/client-chunks.d.ts +0 -55
- package/dist/types.backup/vite/utils/directive-prologue.d.ts +0 -16
- package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +0 -37
- package/dist/types.backup/vite/utils/manifest-utils.d.ts +0 -7
- package/dist/types.backup/vite/utils/package-resolution.d.ts +0 -6
- package/dist/types.backup/vite/utils/prerender-utils.d.ts +0 -32
- package/dist/types.backup/vite/utils/shared-utils.d.ts +0 -55
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare const createFromReadableStream: () => never;
|
|
2
|
-
export declare const renderToReadableStream: () => never;
|
|
3
|
-
export declare const loadServerAction: () => undefined;
|
|
4
|
-
export declare const decodeReply: () => undefined;
|
|
5
|
-
export declare const decodeAction: () => undefined;
|
|
6
|
-
export declare const decodeFormState: () => undefined;
|
|
7
|
-
export declare const createTemporaryReferenceSet: () => Record<string, never>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const VERSION = "";
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @rangojs/router/testing/vitest
|
|
3
|
-
*
|
|
4
|
-
* Vitest setup helper for the UNIT + INTEGRATION + DOM test project of a
|
|
5
|
-
* @rangojs/router consumer app. It returns the `resolve.alias` entries that make
|
|
6
|
-
* a real app's router / loaders / middleware importable in a bare Vitest process.
|
|
7
|
-
*
|
|
8
|
-
* Why this is needed (the documented "vi.mock(plugin-rsc) + import router"
|
|
9
|
-
* recipe is not sufficient for a real app):
|
|
10
|
-
*
|
|
11
|
-
* - `@rangojs/router` resolves to SERVER-ONLY STUBS outside the `react-server`
|
|
12
|
-
* condition — `urls()`, `createRouter()`, `cookies()`, `getRequestContext()`
|
|
13
|
-
* throw "only available in a react-server environment". Importing the app's own
|
|
14
|
-
* router/loaders/middleware then fails immediately. Vitest does NOT apply the
|
|
15
|
-
* `react-server` condition to bare-package exports resolution, and enabling it
|
|
16
|
-
* globally flips React to its server build (no `createContext`), crashing the
|
|
17
|
-
* router's client-boundary imports. The surgical fix is to alias ONLY the bare
|
|
18
|
-
* `@rangojs/router` specifier to its react-server entry (real impls) while
|
|
19
|
-
* leaving React as the client build — which is exactly what this helper does.
|
|
20
|
-
* - The build-only `@rangojs/router:version` virtual and `@vitejs/plugin-rsc/rsc`
|
|
21
|
-
* (whose real body imports unresolvable Vite virtuals) are stubbed.
|
|
22
|
-
* - Cloudflare apps additionally import the `cloudflare:workers` /
|
|
23
|
-
* `cloudflare:email` runtime virtuals; pass `{ preset: "cloudflare" }` to stub them.
|
|
24
|
-
*
|
|
25
|
-
* Usage (recommended one-call form — see {@link rangoTestConfig}):
|
|
26
|
-
*
|
|
27
|
-
* ```ts
|
|
28
|
-
* // vitest.config.ts
|
|
29
|
-
* import { defineConfig } from "vitest/config";
|
|
30
|
-
* import { rangoTestConfig } from "@rangojs/router/testing/vitest";
|
|
31
|
-
*
|
|
32
|
-
* export default defineConfig({
|
|
33
|
-
* test: {
|
|
34
|
-
* globals: true,
|
|
35
|
-
* include: ["test/**\/*.test.{ts,tsx}"],
|
|
36
|
-
* environment: "node",
|
|
37
|
-
* ...rangoTestConfig({ preset: "cloudflare" }),
|
|
38
|
-
* },
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*
|
|
42
|
-
* `rangoTestConfig` bundles the resolve aliases ({@link rangoTestAliases}) with
|
|
43
|
-
* the `server.deps.inline` contract ({@link rangoInlineDeps}) an installed
|
|
44
|
-
* consumer needs — @rangojs/router ships as TS source, and without `deps.inline`
|
|
45
|
-
* Vitest hands those `.ts` files to Node, which on Node >= 23 throws
|
|
46
|
-
* `ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING`. Use the lower-level
|
|
47
|
-
* `rangoTestAliases` directly only if you wire `deps.inline` yourself.
|
|
48
|
-
*
|
|
49
|
-
* Notes:
|
|
50
|
-
* - The Flight project (real RSC rendering via `@rangojs/router/testing/flight`)
|
|
51
|
-
* uses the `react-server` condition AND needs this same alias whenever a
|
|
52
|
-
* rendered handler/component imports a server API (`getRequestContext`,
|
|
53
|
-
* `cookies`) from the bare `@rangojs/router` — without it that import resolves
|
|
54
|
-
* to the throwing out-of-react-server stub (`resolve.conditions` alone is not
|
|
55
|
-
* reliably applied to bare-package export resolution). The alias points at
|
|
56
|
-
* `index.rsc.ts` (the real react-server build) and leaves React itself
|
|
57
|
-
* untouched, so it does NOT crash the server React build. The router's OWN
|
|
58
|
-
* Flight tests omit it only because they import via RELATIVE paths, not the
|
|
59
|
-
* bare specifier; a consumer importing the bare specifier must include it. See
|
|
60
|
-
* the testing skill (`skills/testing/setup.md`, shipped in the package) for
|
|
61
|
-
* the complete Flight config.
|
|
62
|
-
* - `renderRoute` (`@rangojs/router/testing/dom`) tests run in this same project
|
|
63
|
-
* under a DOM environment (`happy-dom`/`jsdom`); the alias does not affect them.
|
|
64
|
-
* - A router using `Prerender()` / `createLoader()` / `Static()` now CONSTRUCTS in
|
|
65
|
-
* a bare test: each assigns a process-stable runtime fallback `$$id` ONLY under
|
|
66
|
-
* a test runner (`process.env.VITEST`), so `createRouter().routes(...)` builds
|
|
67
|
-
* without the "missing `$$id`" throw (for `dispatch` / `assertGeneratedRoutesMatch`).
|
|
68
|
-
* Outside a test runner (a real build) a missing id still THROWS — so an
|
|
69
|
-
* unsupported handler shape the plugin skipped (e.g. `export let`) fails loud
|
|
70
|
-
* rather than getting a silent synthetic id. (The plugin always injects for
|
|
71
|
-
* supported `export const` shapes, and the static manifest keys on that id.)
|
|
72
|
-
* - Importing your app's whole router *file* can still fail for app-specific
|
|
73
|
-
* reasons (page modules pulling their own deps, or plugin `virtual:` modules
|
|
74
|
-
* that need the rango plugin) — build whole-router `dispatch`/drift checks from
|
|
75
|
-
* a focused include, or use e2e.
|
|
76
|
-
*/
|
|
77
|
-
/** A single Vite/Vitest resolve alias entry. Structurally a Vite `Alias`. */
|
|
78
|
-
export interface TestAlias {
|
|
79
|
-
find: string | RegExp;
|
|
80
|
-
replacement: string;
|
|
81
|
-
}
|
|
82
|
-
/** Options for {@link rangoTestAliases}. */
|
|
83
|
-
export interface RangoTestAliasOptions {
|
|
84
|
-
/**
|
|
85
|
-
* Deployment preset, matching `rango({ preset })` in the Vite plugin. With
|
|
86
|
-
* `"cloudflare"` the helper additionally stubs the Cloudflare Workers runtime
|
|
87
|
-
* virtuals (`cloudflare:workers` / `cloudflare:email`) a CF app's route tree
|
|
88
|
-
* imports. A string (not a boolean) so more presets can be added without an
|
|
89
|
-
* API change. Default: `"node"`.
|
|
90
|
-
*/
|
|
91
|
-
preset?: "node" | "cloudflare";
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Build the `resolve.alias` entries a consumer's node/DOM Vitest project needs to
|
|
95
|
-
* import a real @rangojs/router app's router/loaders/middleware. Spread into a
|
|
96
|
-
* Vitest config: `resolve: { alias: rangoTestAliases(...) }` (concat your own
|
|
97
|
-
* aliases as needed).
|
|
98
|
-
*/
|
|
99
|
-
export declare function rangoTestAliases(opts?: RangoTestAliasOptions): TestAlias[];
|
|
100
|
-
/**
|
|
101
|
-
* Vitest `server.deps.inline` patterns that force Vite (not Node) to transpile
|
|
102
|
-
* @rangojs/router's TypeScript source under test.
|
|
103
|
-
*
|
|
104
|
-
* REQUIRED for an installed (node_modules) consumer: @rangojs/router ships as TS
|
|
105
|
-
* source, and Vitest externalizes node_modules by default — so without this Node
|
|
106
|
-
* loads the `.ts` files directly and, on Node >= 23, throws
|
|
107
|
-
* `ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING`. In this monorepo it is a no-op
|
|
108
|
-
* (the workspace symlink resolves to a realpath outside node_modules, which Vite
|
|
109
|
-
* already transpiles), which is precisely why an in-repo dogfood never surfaces
|
|
110
|
-
* the need and the contract has to be shipped explicitly.
|
|
111
|
-
*/
|
|
112
|
-
export declare const rangoInlineDeps: RegExp[];
|
|
113
|
-
/** The Vitest `test`-block fragment {@link rangoTestConfig} returns. */
|
|
114
|
-
export interface RangoTestConfig {
|
|
115
|
-
alias: TestAlias[];
|
|
116
|
-
server: {
|
|
117
|
-
deps: {
|
|
118
|
-
inline: RegExp[];
|
|
119
|
-
};
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* The complete Vitest `test`-block fragment a consumer needs: the resolve
|
|
124
|
-
* aliases ({@link rangoTestAliases}) AND the `server.deps.inline` contract
|
|
125
|
-
* ({@link rangoInlineDeps}). Spread it into your `test` block so both land in
|
|
126
|
-
* one place and a consumer cannot forget the `deps.inline` half (omitting it
|
|
127
|
-
* loads rango's TS source through Node and breaks on Node >= 23):
|
|
128
|
-
*
|
|
129
|
-
* ```ts
|
|
130
|
-
* // vitest.config.ts
|
|
131
|
-
* import { defineConfig } from "vitest/config";
|
|
132
|
-
* import { rangoTestConfig } from "@rangojs/router/testing/vitest";
|
|
133
|
-
*
|
|
134
|
-
* export default defineConfig({
|
|
135
|
-
* test: {
|
|
136
|
-
* globals: true,
|
|
137
|
-
* include: ["test/**\/*.test.{ts,tsx}"],
|
|
138
|
-
* environment: "node",
|
|
139
|
-
* ...rangoTestConfig({ preset: "cloudflare" }),
|
|
140
|
-
* },
|
|
141
|
-
* });
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
export declare function rangoTestConfig(opts?: RangoTestAliasOptions): RangoTestConfig;
|
|
145
|
-
/** A minimal Vite plugin shape (avoids a hard dependency on Vite's types). */
|
|
146
|
-
interface FlightTransformPlugin {
|
|
147
|
-
name: string;
|
|
148
|
-
transform(code: string, id: string): Promise<{
|
|
149
|
-
code: string;
|
|
150
|
-
map: unknown;
|
|
151
|
-
} | undefined>;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* A Vite plugin for the FLIGHT (react-server) Vitest project that applies the
|
|
155
|
-
* `"use client"` transform to a consumer's client modules — the same transform a
|
|
156
|
-
* real build applies. With it, `renderServerTree` (`@rangojs/router/testing/flight`)
|
|
157
|
-
* resolves client islands AUTOMATICALLY from the server tree's own imports: no
|
|
158
|
-
* `clientComponents` to pass, no filename convention. Without it, a `"use client"`
|
|
159
|
-
* module is imported as a plain (unmarked) function and would render server-side,
|
|
160
|
-
* so you must list islands via `renderServerTree(..., { clientComponents })`.
|
|
161
|
-
*
|
|
162
|
-
* Add it to your react-server Vitest project. This is the COMPLETE config — the
|
|
163
|
-
* alias, `server.deps.inline`, and `NODE_ENV` are load-bearing, not optional (see
|
|
164
|
-
* the inline notes). The testing skill (`skills/testing/setup.md`, shipped in the
|
|
165
|
-
* package) has the annotated walkthrough.
|
|
166
|
-
*
|
|
167
|
-
* ```ts
|
|
168
|
-
* // vitest.rsc.config.ts
|
|
169
|
-
* import { defineConfig } from "vitest/config";
|
|
170
|
-
* import {
|
|
171
|
-
* rangoUseClientTransform,
|
|
172
|
-
* rangoTestAliases,
|
|
173
|
-
* rangoInlineDeps,
|
|
174
|
-
* } from "@rangojs/router/testing/vitest";
|
|
175
|
-
*
|
|
176
|
-
* // Flight serialization needs React's production build; the dev build's jsxDEV
|
|
177
|
-
* // crashes / yields unstable snapshots.
|
|
178
|
-
* process.env.NODE_ENV = "production";
|
|
179
|
-
*
|
|
180
|
-
* export default defineConfig({
|
|
181
|
-
* plugins: [rangoUseClientTransform()],
|
|
182
|
-
* resolve: {
|
|
183
|
-
* conditions: ["react-server"],
|
|
184
|
-
* // Bare `@rangojs/router` -> its react-server build, so a handler/component
|
|
185
|
-
* // reading getRequestContext()/cookies() resolves the real impl, not the
|
|
186
|
-
* // throwing stub. Pass { preset: "cloudflare" } for a CF app.
|
|
187
|
-
* alias: rangoTestAliases(),
|
|
188
|
-
* },
|
|
189
|
-
* test: {
|
|
190
|
-
* include: ["test/**\/*.rsc-test.{ts,tsx}"],
|
|
191
|
-
* pool: "forks",
|
|
192
|
-
* execArgv: ["--conditions=react-server"],
|
|
193
|
-
* // Required for an INSTALLED consumer on Node >= 23 (rango ships TS source).
|
|
194
|
-
* server: { deps: { inline: rangoInlineDeps } },
|
|
195
|
-
* },
|
|
196
|
-
* });
|
|
197
|
-
* ```
|
|
198
|
-
*
|
|
199
|
-
* Each `"use client"` module's exports are replaced with client references keyed
|
|
200
|
-
* by the module's absolute path (the boundary id), the export name becoming the
|
|
201
|
-
* boundary name. Modules without the directive (server components) are untouched,
|
|
202
|
-
* so `renderToFlightString` of pure leaf trees is unaffected.
|
|
203
|
-
*/
|
|
204
|
-
export declare function rangoUseClientTransform(): FlightTransformPlugin;
|
|
205
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ThemeProvider - Client component that provides theme state and management.
|
|
3
|
-
*
|
|
4
|
-
* Features:
|
|
5
|
-
* - Syncs theme to cookie/localStorage
|
|
6
|
-
* - Detects system preference changes
|
|
7
|
-
* - Cross-tab synchronization via storage events
|
|
8
|
-
* - Updates HTML element attribute when theme changes
|
|
9
|
-
* - Handles SSR hydration by deferring system theme detection
|
|
10
|
-
*/
|
|
11
|
-
import React from "react";
|
|
12
|
-
import type { ThemeProviderProps } from "./types.js";
|
|
13
|
-
export declare function ThemeProvider({ config, initialTheme, children, }: ThemeProviderProps): React.ReactNode;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ThemeScript - Server component that renders an inline script for FOUC prevention.
|
|
3
|
-
*
|
|
4
|
-
* This component renders a blocking inline script that:
|
|
5
|
-
* 1. Reads theme from cookie/localStorage before paint
|
|
6
|
-
* 2. Applies the theme to the HTML element immediately
|
|
7
|
-
* 3. Prevents flash of unstyled content (FOUC)
|
|
8
|
-
*
|
|
9
|
-
* Must be placed in the <head> element of your document, before any stylesheets.
|
|
10
|
-
*
|
|
11
|
-
* Note: when theme is enabled in the router config, `<MetaTags />` ALREADY
|
|
12
|
-
* renders this FOUC script. Use `<ThemeScript />` only if you do NOT render
|
|
13
|
-
* `<MetaTags />`. Rendering both is safe — the inline script guards the
|
|
14
|
-
* matchMedia listener registration against double-running — but it is redundant.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```tsx
|
|
18
|
-
* // In your document component. Use ThemeScript only when you do not render MetaTags.
|
|
19
|
-
* import { ThemeScript } from "@rangojs/router/theme";
|
|
20
|
-
*
|
|
21
|
-
* export function Document({ children }) {
|
|
22
|
-
* return (
|
|
23
|
-
* <html lang="en" suppressHydrationWarning>
|
|
24
|
-
* <head>
|
|
25
|
-
* <ThemeScript config={config} />
|
|
26
|
-
* </head>
|
|
27
|
-
* <body>{children}</body>
|
|
28
|
-
* </html>
|
|
29
|
-
* );
|
|
30
|
-
* }
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
import React from "react";
|
|
34
|
-
import type { ResolvedThemeConfig } from "./types.js";
|
|
35
|
-
export interface ThemeScriptProps {
|
|
36
|
-
/**
|
|
37
|
-
* Theme configuration - passed from router.themeConfig
|
|
38
|
-
*/
|
|
39
|
-
config: ResolvedThemeConfig;
|
|
40
|
-
/**
|
|
41
|
-
* Optional nonce for CSP
|
|
42
|
-
*/
|
|
43
|
-
nonce?: string;
|
|
44
|
-
}
|
|
45
|
-
export declare function ThemeScript({ config, nonce, }: ThemeScriptProps): React.ReactNode;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Default values for theme configuration
|
|
3
|
-
*/
|
|
4
|
-
import type { ResolvedThemeConfig, ThemeConfig } from "./types.js";
|
|
5
|
-
export declare const THEME_DEFAULTS: {
|
|
6
|
-
readonly defaultTheme: "system";
|
|
7
|
-
readonly themes: readonly ["light", "dark"];
|
|
8
|
-
readonly attribute: "class";
|
|
9
|
-
readonly storageKey: "theme";
|
|
10
|
-
readonly enableSystem: true;
|
|
11
|
-
readonly enableColorScheme: true;
|
|
12
|
-
};
|
|
13
|
-
export declare const THEME_COOKIE: {
|
|
14
|
-
readonly maxAge: number;
|
|
15
|
-
readonly path: string;
|
|
16
|
-
readonly sameSite: "lax";
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Single owner of the setTheme validity rule, shared by the client
|
|
20
|
-
* (ThemeProvider) and server (ctx.setTheme) guards so they cannot drift.
|
|
21
|
-
*
|
|
22
|
-
* A theme is valid when it is one of the configured concrete themes, OR
|
|
23
|
-
* "system" but only while system detection is enabled. Rejecting "system" when
|
|
24
|
-
* `enableSystem` is false is load-bearing: applyThemeToDocument would otherwise
|
|
25
|
-
* leave "system" unresolved and write a bogus class="system" / colorScheme
|
|
26
|
-
* ="system" on <html> (the same bogus value resolveThemeConfig coerces away for
|
|
27
|
-
* the default).
|
|
28
|
-
*/
|
|
29
|
-
export declare function isValidTheme(theme: string, config: Pick<ResolvedThemeConfig, "themes" | "enableSystem">): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Emit the shared "[Theme] Invalid theme value" warning. One owner of the
|
|
32
|
-
* message string so the client and server guards stay byte-identical.
|
|
33
|
-
*
|
|
34
|
-
* The valid-values list mirrors isValidTheme: "system" is only listed when
|
|
35
|
-
* enableSystem is true, otherwise the message would advertise a value the guard
|
|
36
|
-
* itself rejects.
|
|
37
|
-
*/
|
|
38
|
-
export declare function warnInvalidTheme(theme: string, config: Pick<ResolvedThemeConfig, "themes" | "enableSystem">): void;
|
|
39
|
-
export declare function resolveThemeConfig(config: ThemeConfig | true): ResolvedThemeConfig;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Theme module exports for @rangojs/router/theme
|
|
3
|
-
*
|
|
4
|
-
* This module provides the public theme API:
|
|
5
|
-
* - useTheme: Hook for accessing theme state in client components
|
|
6
|
-
* - ThemeProvider: Component for manual theme provider setup (typically not needed)
|
|
7
|
-
* - ThemeScript: FOUC-prevention script component for document/head usage
|
|
8
|
-
* - Types for theme configuration
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```tsx
|
|
12
|
-
* // In a client component
|
|
13
|
-
* import { useTheme } from "@rangojs/router/theme";
|
|
14
|
-
*
|
|
15
|
-
* function ThemeToggle() {
|
|
16
|
-
* const { theme, setTheme, themes } = useTheme();
|
|
17
|
-
* return (
|
|
18
|
-
* <select value={theme} onChange={e => setTheme(e.target.value)}>
|
|
19
|
-
* {themes.map(t => <option key={t}>{t}</option>)}
|
|
20
|
-
* </select>
|
|
21
|
-
* );
|
|
22
|
-
* }
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export { useTheme } from "./use-theme.js";
|
|
26
|
-
export { ThemeProvider } from "./ThemeProvider.js";
|
|
27
|
-
export { ThemeScript, type ThemeScriptProps } from "./ThemeScript.js";
|
|
28
|
-
export type { Theme, ResolvedTheme, ThemeAttribute, ThemeConfig, ResolvedThemeConfig, UseThemeReturn, ThemeProviderProps, ThemeContextValue, } from "./types.js";
|
|
29
|
-
export { THEME_DEFAULTS, THEME_COOKIE } from "./constants.js";
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Theme context for sharing theme state and configuration.
|
|
3
|
-
*
|
|
4
|
-
* Used by:
|
|
5
|
-
* - ThemeProvider to provide theme state
|
|
6
|
-
* - useTheme hook to access theme state
|
|
7
|
-
* - MetaTags to check if theme is enabled and render script
|
|
8
|
-
*/
|
|
9
|
-
import { type Context } from "react";
|
|
10
|
-
import type { ThemeContextValue } from "./types.js";
|
|
11
|
-
/**
|
|
12
|
-
* React context for theme state
|
|
13
|
-
* null when theme is not enabled in router config
|
|
14
|
-
*/
|
|
15
|
-
export declare const ThemeContext: Context<ThemeContextValue | null>;
|
|
16
|
-
export declare function useThemeContext(): ThemeContextValue | null;
|
|
17
|
-
/**
|
|
18
|
-
* Get theme context, throwing if not available
|
|
19
|
-
* Used by useTheme hook
|
|
20
|
-
*/
|
|
21
|
-
export declare function requireThemeContext(): ThemeContextValue;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates an inline script for FOUC prevention.
|
|
3
|
-
*
|
|
4
|
-
* This script runs synchronously before page paint to:
|
|
5
|
-
* 1. Read theme from cookie or localStorage
|
|
6
|
-
* 2. Detect system preference if theme is "system"
|
|
7
|
-
* 3. Apply theme to HTML element via class or data attribute
|
|
8
|
-
* 4. Optionally set color-scheme CSS property
|
|
9
|
-
*
|
|
10
|
-
* The script is minified and inlined in <head> before any other content.
|
|
11
|
-
*/
|
|
12
|
-
import type { ResolvedThemeConfig } from "./types.js";
|
|
13
|
-
/**
|
|
14
|
-
* Generate the inline script for theme initialization
|
|
15
|
-
*
|
|
16
|
-
* The script is designed to:
|
|
17
|
-
* - Run synchronously before paint (blocking)
|
|
18
|
-
* - Be as small as possible to minimize blocking time
|
|
19
|
-
* - Work without any external dependencies
|
|
20
|
-
* - Handle all edge cases (no localStorage, no cookie, etc.)
|
|
21
|
-
*/
|
|
22
|
-
export declare function generateThemeScript(config: ResolvedThemeConfig): string;
|
|
23
|
-
/**
|
|
24
|
-
* Generate nonce attribute string if nonce is provided
|
|
25
|
-
*/
|
|
26
|
-
export declare function getNonceAttribute(nonce?: string): string;
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Theme type definitions for rsc-router theme system.
|
|
3
|
-
*
|
|
4
|
-
* The theme system provides:
|
|
5
|
-
* - Opt-in via router config
|
|
6
|
-
* - FOUC prevention via inline script
|
|
7
|
-
* - Server-side theme access via ctx.theme/ctx.setTheme
|
|
8
|
-
* - Client-side theme access via useTheme hook
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Theme value - stored in cookies/localStorage
|
|
12
|
-
*/
|
|
13
|
-
export type Theme = "light" | "dark" | "system";
|
|
14
|
-
/**
|
|
15
|
-
* Resolved theme - actual visual appearance (system preference resolved)
|
|
16
|
-
*/
|
|
17
|
-
export type ResolvedTheme = "light" | "dark";
|
|
18
|
-
/**
|
|
19
|
-
* Attribute used to apply theme to HTML element
|
|
20
|
-
* - "class": Adds theme value as CSS class (e.g., <html class="dark">)
|
|
21
|
-
* - "data-*": Sets data attribute (e.g., <html data-theme="dark">)
|
|
22
|
-
*/
|
|
23
|
-
export type ThemeAttribute = "class" | `data-${string}`;
|
|
24
|
-
/**
|
|
25
|
-
* Theme configuration for router
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* const router = createRouter<Env>({
|
|
30
|
-
* theme: {
|
|
31
|
-
* defaultTheme: "system",
|
|
32
|
-
* themes: ["light", "dark"],
|
|
33
|
-
* attribute: "class",
|
|
34
|
-
* storageKey: "theme",
|
|
35
|
-
* }
|
|
36
|
-
* });
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export interface ThemeConfig {
|
|
40
|
-
/**
|
|
41
|
-
* Default theme when no preference is stored
|
|
42
|
-
* @default "system"
|
|
43
|
-
*/
|
|
44
|
-
defaultTheme?: Theme;
|
|
45
|
-
/**
|
|
46
|
-
* Available theme options
|
|
47
|
-
* @default ["light", "dark"]
|
|
48
|
-
*/
|
|
49
|
-
themes?: string[];
|
|
50
|
-
/**
|
|
51
|
-
* Attribute to apply to HTML element
|
|
52
|
-
* @default "class"
|
|
53
|
-
*/
|
|
54
|
-
attribute?: ThemeAttribute;
|
|
55
|
-
/**
|
|
56
|
-
* Key for cookie and localStorage
|
|
57
|
-
* @default "theme"
|
|
58
|
-
*/
|
|
59
|
-
storageKey?: string;
|
|
60
|
-
/**
|
|
61
|
-
* Enable system preference detection
|
|
62
|
-
* When true, "system" theme will resolve based on prefers-color-scheme
|
|
63
|
-
* @default true
|
|
64
|
-
*/
|
|
65
|
-
enableSystem?: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Set CSS color-scheme property on HTML element
|
|
68
|
-
* This enables native dark mode for form controls, scrollbars, etc.
|
|
69
|
-
* @default true
|
|
70
|
-
*/
|
|
71
|
-
enableColorScheme?: boolean;
|
|
72
|
-
/**
|
|
73
|
-
* Custom mapping of theme names to attribute values
|
|
74
|
-
* Useful when theme names don't match desired attribute values
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* value: {
|
|
79
|
-
* light: "light-mode",
|
|
80
|
-
* dark: "dark-mode",
|
|
81
|
-
* }
|
|
82
|
-
* ```
|
|
83
|
-
*/
|
|
84
|
-
value?: Record<string, string>;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Resolved theme configuration with defaults applied
|
|
88
|
-
*/
|
|
89
|
-
export interface ResolvedThemeConfig {
|
|
90
|
-
defaultTheme: Theme;
|
|
91
|
-
themes: string[];
|
|
92
|
-
attribute: ThemeAttribute;
|
|
93
|
-
storageKey: string;
|
|
94
|
-
enableSystem: boolean;
|
|
95
|
-
enableColorScheme: boolean;
|
|
96
|
-
value: Record<string, string>;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Return type from useTheme hook
|
|
100
|
-
*
|
|
101
|
-
* @example
|
|
102
|
-
* ```tsx
|
|
103
|
-
* function ThemeToggle() {
|
|
104
|
-
* const { theme, setTheme, resolvedTheme, themes } = useTheme();
|
|
105
|
-
*
|
|
106
|
-
* return (
|
|
107
|
-
* <select value={theme} onChange={e => setTheme(e.target.value as Theme)}>
|
|
108
|
-
* {themes.map(t => <option key={t}>{t}</option>)}
|
|
109
|
-
* </select>
|
|
110
|
-
* );
|
|
111
|
-
* }
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
export interface UseThemeReturn {
|
|
115
|
-
/**
|
|
116
|
-
* Current theme setting ("light" | "dark" | "system")
|
|
117
|
-
*/
|
|
118
|
-
theme: Theme;
|
|
119
|
-
/**
|
|
120
|
-
* Set the theme
|
|
121
|
-
*/
|
|
122
|
-
setTheme: (theme: Theme) => void;
|
|
123
|
-
/**
|
|
124
|
-
* Resolved theme based on system preference
|
|
125
|
-
* When theme is "system", this reflects the actual appearance
|
|
126
|
-
*/
|
|
127
|
-
resolvedTheme: ResolvedTheme;
|
|
128
|
-
/**
|
|
129
|
-
* Current system preference ("light" | "dark")
|
|
130
|
-
*/
|
|
131
|
-
systemTheme: ResolvedTheme;
|
|
132
|
-
/**
|
|
133
|
-
* Available theme options (includes "system" if enableSystem is true)
|
|
134
|
-
*/
|
|
135
|
-
themes: string[];
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Props for ThemeProvider component
|
|
139
|
-
*/
|
|
140
|
-
export interface ThemeProviderProps {
|
|
141
|
-
/**
|
|
142
|
-
* Theme configuration
|
|
143
|
-
*/
|
|
144
|
-
config: ResolvedThemeConfig;
|
|
145
|
-
/**
|
|
146
|
-
* Initial theme from server (from cookie)
|
|
147
|
-
*/
|
|
148
|
-
initialTheme?: Theme;
|
|
149
|
-
/**
|
|
150
|
-
* Children to render
|
|
151
|
-
*/
|
|
152
|
-
children: React.ReactNode;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Context value for ThemeContext
|
|
156
|
-
*/
|
|
157
|
-
export interface ThemeContextValue extends UseThemeReturn {
|
|
158
|
-
/**
|
|
159
|
-
* Full theme configuration
|
|
160
|
-
*/
|
|
161
|
-
config: ResolvedThemeConfig;
|
|
162
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { UseThemeReturn } from "./types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Hook to access theme state and methods.
|
|
4
|
-
*
|
|
5
|
-
* Must be used within a ThemeProvider (which is automatically included
|
|
6
|
-
* in NavigationProvider when theme is enabled in router config).
|
|
7
|
-
*/
|
|
8
|
-
export declare function useTheme(): UseThemeReturn;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from "react";
|
|
2
|
-
export interface ErrorInfo {
|
|
3
|
-
message: string;
|
|
4
|
-
name: string;
|
|
5
|
-
code?: string;
|
|
6
|
-
stack?: string;
|
|
7
|
-
cause?: unknown;
|
|
8
|
-
segmentId: string;
|
|
9
|
-
segmentType: "layout" | "route" | "parallel" | "loader" | "middleware" | "cache";
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Props passed to server-side error boundary fallback components
|
|
13
|
-
*
|
|
14
|
-
* Server error boundaries don't have a reset function since the error
|
|
15
|
-
* occurred during server rendering. Users can navigate away or refresh.
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* function ProductErrorFallback({ error }: ErrorBoundaryFallbackProps) {
|
|
20
|
-
* return (
|
|
21
|
-
* <div>
|
|
22
|
-
* <h2>Something went wrong loading the product</h2>
|
|
23
|
-
* <p>{error.message}</p>
|
|
24
|
-
* <a href="/">Go home</a>
|
|
25
|
-
* </div>
|
|
26
|
-
* );
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export interface ErrorBoundaryFallbackProps {
|
|
31
|
-
error: ErrorInfo;
|
|
32
|
-
}
|
|
33
|
-
export type ErrorBoundaryHandler = (props: ErrorBoundaryFallbackProps) => ReactNode;
|
|
34
|
-
/**
|
|
35
|
-
* Props passed to client-side error boundary fallback components
|
|
36
|
-
*
|
|
37
|
-
* Client error boundaries have a reset function that clears the error state
|
|
38
|
-
* and re-renders the children.
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```typescript
|
|
42
|
-
* function ClientErrorFallback({ error, reset }: ClientErrorBoundaryFallbackProps) {
|
|
43
|
-
* return (
|
|
44
|
-
* <div>
|
|
45
|
-
* <h2>Something went wrong</h2>
|
|
46
|
-
* <p>{error.message}</p>
|
|
47
|
-
* <button onClick={reset}>Try again</button>
|
|
48
|
-
* </div>
|
|
49
|
-
* );
|
|
50
|
-
* }
|
|
51
|
-
* ```
|
|
52
|
-
*/
|
|
53
|
-
export interface ClientErrorBoundaryFallbackProps {
|
|
54
|
-
error: ErrorInfo;
|
|
55
|
-
reset: () => void;
|
|
56
|
-
}
|
|
57
|
-
export type LoaderDataResult<T = unknown> = {
|
|
58
|
-
__loaderResult: true;
|
|
59
|
-
ok: true;
|
|
60
|
-
data: T;
|
|
61
|
-
} | {
|
|
62
|
-
__loaderResult: true;
|
|
63
|
-
ok: false;
|
|
64
|
-
error: ErrorInfo;
|
|
65
|
-
fallback: ReactNode | null;
|
|
66
|
-
};
|
|
67
|
-
export declare function isLoaderDataResult(value: unknown): value is LoaderDataResult;
|
|
68
|
-
export interface NotFoundInfo {
|
|
69
|
-
message: string;
|
|
70
|
-
segmentId: string;
|
|
71
|
-
segmentType: "layout" | "route" | "parallel" | "loader" | "middleware" | "cache";
|
|
72
|
-
pathname?: string;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Props passed to notFound boundary fallback components
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* ```typescript
|
|
79
|
-
* function ProductNotFound({ notFound }: NotFoundBoundaryFallbackProps) {
|
|
80
|
-
* return (
|
|
81
|
-
* <div>
|
|
82
|
-
* <h2>Product Not Found</h2>
|
|
83
|
-
* <p>{notFound.message}</p>
|
|
84
|
-
* <a href="/products">Browse all products</a>
|
|
85
|
-
* </div>
|
|
86
|
-
* );
|
|
87
|
-
* }
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
export interface NotFoundBoundaryFallbackProps {
|
|
91
|
-
notFound: NotFoundInfo;
|
|
92
|
-
}
|
|
93
|
-
export type NotFoundBoundaryHandler = (props: NotFoundBoundaryFallbackProps) => ReactNode;
|