@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
|
@@ -52,6 +52,7 @@ export type TestLoaderContext<TEnv = any> = Omit<LoaderContext<any, TEnv>, "reve
|
|
|
52
52
|
reverse: (name: string, params?: Record<string, string>, search?: Record<string, unknown>) => string;
|
|
53
53
|
get: {
|
|
54
54
|
<T>(contextVar: ContextVar<T>): T | undefined;
|
|
55
|
+
<TData, TAccumulated = TData[]>(handle: Handle<TData, TAccumulated>): TAccumulated;
|
|
55
56
|
<T = unknown>(key: string): T | undefined;
|
|
56
57
|
};
|
|
57
58
|
};
|
|
@@ -182,5 +183,13 @@ export interface RunLoaderResult<T> {
|
|
|
182
183
|
locationState: Record<string, unknown>;
|
|
183
184
|
/** The resolved rango state cookie name seeded for the run (default `rango-state_router_0`). */
|
|
184
185
|
stateCookieName: string;
|
|
186
|
+
/**
|
|
187
|
+
* Handle writes the loader made via `ctx.use(SomeHandle)({...})`, in push
|
|
188
|
+
* order. A `.defer()` resolver's value is recorded when the resolver runs.
|
|
189
|
+
*/
|
|
190
|
+
handlePushes: Array<{
|
|
191
|
+
handle: Handle<any, any>;
|
|
192
|
+
value: unknown;
|
|
193
|
+
}>;
|
|
185
194
|
}
|
|
186
195
|
export declare function runLoaderResult<T>(loader: RunnableLoader<T>, opts?: RunLoaderOptions): Promise<RunLoaderResult<T>>;
|
|
@@ -63,6 +63,28 @@ export type LoaderDataResult<T = unknown> = {
|
|
|
63
63
|
ok: false;
|
|
64
64
|
error: ErrorInfo;
|
|
65
65
|
fallback: ReactNode | null;
|
|
66
|
+
/**
|
|
67
|
+
* Loader threw notFound() (DataNotFoundError). `fallback` carries the
|
|
68
|
+
* SERVER-RENDERED not-found UI (nearest notFoundBoundary → router
|
|
69
|
+
* notFound option → default), so the client swaps to 404 presentation
|
|
70
|
+
* with zero extra round trips. Routed by decodeLoaderEntry via
|
|
71
|
+
* LOADER_NOT_FOUND_FALLBACK, not the error-fallback marker.
|
|
72
|
+
*/
|
|
73
|
+
notFound?: true;
|
|
74
|
+
/**
|
|
75
|
+
* Loader threw redirect(...) (a 3xx Response). `to` is resolved through
|
|
76
|
+
* the soft-redirect same-origin rules BEFORE leaving the server
|
|
77
|
+
* (resolveSoftRedirectUrl), so unsafe targets never reach the wire. The
|
|
78
|
+
* client navigates (replace) when the entry decodes. `state` is the
|
|
79
|
+
* resolved `redirect(url, { state })` record (`__rsc_ls_*` keys) — it
|
|
80
|
+
* travels on the marker because a streaming loader settles after
|
|
81
|
+
* payload metadata flushed; the redirect navigation merges it at the
|
|
82
|
+
* target entry.
|
|
83
|
+
*/
|
|
84
|
+
redirect?: {
|
|
85
|
+
to: string;
|
|
86
|
+
state?: Record<string, unknown>;
|
|
87
|
+
};
|
|
66
88
|
};
|
|
67
89
|
export declare function isLoaderDataResult(value: unknown): value is LoaderDataResult;
|
|
68
90
|
export interface NotFoundInfo {
|
|
@@ -6,6 +6,6 @@ export { isLoaderDataResult } from "./boundaries.js";
|
|
|
6
6
|
export type { MiddlewareFn, ScopedRouteMap, Handler, HandlerContext, InternalHandlerContext, GenericParams, RevalidateParams, ShouldRevalidateFn, ActionRef, RouteKeys, ExtractRouteParams, HandlersForRouteMap, Revalidate, Middleware, } from "./handler-context.js";
|
|
7
7
|
export type { ViewTransitionClass, TransitionConfig, TransitionWhenFn, TransitionWhenContext, ResolvedSegment, SegmentMetadata, SlotState, RootLayoutProps, MatchResult, } from "./segments.js";
|
|
8
8
|
export type { LazyIncludeContext, RouteEntry } from "./route-entry.js";
|
|
9
|
-
export type { LoaderContext, LoaderFn, FetchableLoaderOptions, LoadOptions, LoaderDefinition, } from "./loader-types.js";
|
|
9
|
+
export type { LoaderContext, LoaderFn, FetchableLoaderOptions, LoaderOptions, LoadOptions, LoaderDefinition, } from "./loader-types.js";
|
|
10
10
|
export type { CacheContext, CacheOptions, PartialCacheOptions, EntryCacheConfig, } from "./cache-types.js";
|
|
11
11
|
export type { ErrorPhase, OnErrorContext, OnErrorCallback, } from "./error-types.js";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ContextVar } from "../context-var.js";
|
|
2
2
|
import type { Handle } from "../handle.js";
|
|
3
|
+
import type { HandlePush } from "../defer.js";
|
|
3
4
|
import type { MiddlewareFn } from "../router/middleware.js";
|
|
4
5
|
import type { ScopedReverseFunction } from "../reverse.js";
|
|
5
6
|
import type { SearchSchema, ResolveSearchSchema } from "../search-params.js";
|
|
@@ -41,24 +42,50 @@ export type LoaderContext<TParams = Record<string, string | undefined>, TEnv = D
|
|
|
41
42
|
*/
|
|
42
43
|
routeParams: Record<string, string>;
|
|
43
44
|
search: {} extends TSearch ? {} : ResolveSearchSchema<TSearch>;
|
|
45
|
+
/**
|
|
46
|
+
* Read a context variable — or READ collected handle data after
|
|
47
|
+
* `await ctx.rendered()` (the rendered-barrier contract; handle reads
|
|
48
|
+
* moved here from ctx.use(handle), which is now the write).
|
|
49
|
+
*/
|
|
44
50
|
get: {
|
|
45
51
|
<T>(contextVar: ContextVar<T>): T | undefined;
|
|
52
|
+
<TData, TAccumulated = TData[]>(handle: Handle<TData, TAccumulated>): TAccumulated;
|
|
46
53
|
} & (<K extends keyof DefaultVars>(key: K) => DefaultVars[K]);
|
|
47
54
|
/**
|
|
48
|
-
* Access another loader's data, or
|
|
55
|
+
* Access another loader's data, or WRITE handle data (meta, breadcrumbs, …)
|
|
56
|
+
* — handler parity: `ctx.use(Meta)({ title })` pushes exactly like it does
|
|
57
|
+
* in a handler. Handle READS live on `ctx.get(handle)` (after rendered()).
|
|
49
58
|
*
|
|
50
59
|
* For loaders: returns a promise (loaders run in parallel).
|
|
51
|
-
* For handles: returns
|
|
60
|
+
* For handles: returns the push function, legal for the whole body,
|
|
61
|
+
* streaming loaders included. Delivery is async by the race model: pushes
|
|
62
|
+
* that settle before the handler barrier ride the SSR handle snapshot;
|
|
63
|
+
* later ones stream to the client and apply post-hydration (document lane)
|
|
64
|
+
* or progressively (navigation/action lanes). To guarantee a loader's
|
|
65
|
+
* handles are in the SSR'd document, register it as
|
|
66
|
+
* `loader(Def, { stream: "navigation" })` so the document render awaits it
|
|
67
|
+
* (see {@link LoaderOptions}).
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* export const ProductLoader = createLoader(async (ctx) => {
|
|
72
|
+
* "use server";
|
|
73
|
+
* const product = await getProduct(ctx.params.slug);
|
|
74
|
+
* ctx.use(Meta)({ title: product.name });
|
|
75
|
+
* ctx.use(Breadcrumbs)({ label: product.name });
|
|
76
|
+
* return product;
|
|
77
|
+
* });
|
|
78
|
+
* ```
|
|
52
79
|
*/
|
|
53
80
|
use: {
|
|
54
81
|
<T, TLoaderParams = any>(loader: LoaderDefinition<T, TLoaderParams>): Promise<T>;
|
|
55
|
-
<TData, TAccumulated = TData[]>(handle: Handle<TData, TAccumulated>):
|
|
82
|
+
<TData, TAccumulated = TData[]>(handle: Handle<TData, TAccumulated>): HandlePush<TData>;
|
|
56
83
|
};
|
|
57
84
|
/**
|
|
58
85
|
* **Experimental.** Wait for all non-loader segments to settle.
|
|
59
86
|
*
|
|
60
87
|
* After the returned promise resolves, handle data is available via
|
|
61
|
-
* `ctx.
|
|
88
|
+
* `ctx.get(handle)`. Supported in DSL loaders, including on streaming
|
|
62
89
|
* trees that use `loading()` — the barrier waits for the streaming
|
|
63
90
|
* handlers to finish pushing before it resolves. Throws if called from a
|
|
64
91
|
* handler-invoked loader, or if a handler is already awaiting this loader
|
|
@@ -70,7 +97,7 @@ export type LoaderContext<TParams = Record<string, string | undefined>, TEnv = D
|
|
|
70
97
|
* const PricesLoader = createLoader(async (ctx) => {
|
|
71
98
|
* "use server";
|
|
72
99
|
* await ctx.rendered();
|
|
73
|
-
* const products = ctx.
|
|
100
|
+
* const products = ctx.get(Products); // reads handle data
|
|
74
101
|
* return pricing.getLive(products.map(p => p.id));
|
|
75
102
|
* });
|
|
76
103
|
* ```
|
|
@@ -121,6 +148,31 @@ export type LoaderContext<TParams = Record<string, string | undefined>, TEnv = D
|
|
|
121
148
|
* ```
|
|
122
149
|
*/
|
|
123
150
|
export type LoaderFn<T, TParams = Record<string, string | undefined>, TEnv = DefaultEnv> = (ctx: LoaderContext<TParams, TEnv>) => Promise<T> | T;
|
|
151
|
+
/**
|
|
152
|
+
* Delivery mode for a DSL-registered loader: `loader(Def, { stream })`.
|
|
153
|
+
*
|
|
154
|
+
* Default (omitted): the loader streams on every render. Its data, its
|
|
155
|
+
* `ctx.use(Handle)` pushes, and any `notFound()`/`redirect()` it throws may land
|
|
156
|
+
* AFTER the document Response is constructed, so none of them are guaranteed to
|
|
157
|
+
* be in the SSR'd HTML.
|
|
158
|
+
*
|
|
159
|
+
* `"navigation"` narrows streaming to client navigations only: on a DOCUMENT
|
|
160
|
+
* request the loader is awaited before first flush. `useLoader` still suspends,
|
|
161
|
+
* but on an already-settled promise, so no fallback paints. This is the
|
|
162
|
+
* SSR-completeness opt-in — the name is about WHERE streaming still applies, not
|
|
163
|
+
* about disabling it. Choose it when the loader feeds something that must exist
|
|
164
|
+
* in the document: `<head>` meta via a handle, or a real 404 status (an awaited
|
|
165
|
+
* `notFound()` deterministically precedes Response construction, where the
|
|
166
|
+
* streamed default only wins that race opportunistically). It does NOT change
|
|
167
|
+
* PPR capture behavior: capture renders mask loaders and skip this await.
|
|
168
|
+
*
|
|
169
|
+
* Scoped per LOADER, not per segment: a baked loader alongside a deliberately
|
|
170
|
+
* dynamic sibling awaits only itself, and the sibling keeps streaming behind its
|
|
171
|
+
* `loading()`/Suspense boundary.
|
|
172
|
+
*/
|
|
173
|
+
export type LoaderOptions = {
|
|
174
|
+
stream?: "navigation";
|
|
175
|
+
};
|
|
124
176
|
/**
|
|
125
177
|
* Options for fetchable loaders
|
|
126
178
|
*
|
|
@@ -221,6 +221,13 @@ export interface MatchResult {
|
|
|
221
221
|
* Slots are used for intercepting routes during soft navigation
|
|
222
222
|
*/
|
|
223
223
|
slots?: Record<string, SlotState>;
|
|
224
|
+
/**
|
|
225
|
+
* Intercept TARGET route names reachable when this location is a navigation
|
|
226
|
+
* origin (chain walk of the matched entry, when-conditionals included).
|
|
227
|
+
* Shipped in payload metadata so the browser-local clientUrls matcher can
|
|
228
|
+
* decline its optimistic presentation for targets an intercept would claim.
|
|
229
|
+
*/
|
|
230
|
+
interceptTargets?: string[];
|
|
224
231
|
/**
|
|
225
232
|
* Redirect URL for trailing slash normalization.
|
|
226
233
|
* When set, the RSC handler should return a 308 redirect to this URL
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
|
-
import type { ErrorBoundaryHandler, ExtractParams, Handler, HandlerContext, LoaderDefinition, MiddlewareFn, NotFoundBoundaryHandler, PartialCacheOptions, ShouldRevalidateFn, TransitionConfig } from "../types.js";
|
|
2
|
+
import type { ErrorBoundaryHandler, ExtractParams, Handler, HandlerContext, LoaderDefinition, LoaderOptions, MiddlewareFn, NotFoundBoundaryHandler, PartialCacheOptions, ShouldRevalidateFn, TransitionConfig } from "../types.js";
|
|
3
3
|
import type { AllUseItems, TypedLayoutItem, ParallelItem, InterceptItem, MiddlewareItem, RevalidateItem, LoaderItem, LoadingItem, ErrorBoundaryItem, NotFoundBoundaryItem, LayoutUseItem, RouteUseItem, ResponseRouteUseItem, ParallelUseItem, InterceptUseItem, LoaderUseItem, TypedCacheItem, TransitionItem, TypedTransitionItem, TypedRouteItem, TypedIncludeItem, UseItems } from "../route-types.js";
|
|
4
4
|
import type { SearchSchema } from "../search-params.js";
|
|
5
5
|
import type { PrerenderHandlerDefinition, PassthroughHandlerDefinition } from "../prerender.js";
|
|
@@ -7,6 +7,7 @@ import type { StaticHandlerDefinition, StaticHandlerRef } from "../static-handle
|
|
|
7
7
|
import type { ResponseHandler, ResponseHandlerContext, TextResponseHandler } from "./response-types.js";
|
|
8
8
|
import type { UnnamedRoute, LocalOnlyInclude, PathOptions, UrlPatterns, IncludeOptions } from "./pattern-types.js";
|
|
9
9
|
import type { ExtractRoutes, ExtractResponses } from "./type-extraction.js";
|
|
10
|
+
import type { ClientUrlPatterns } from "../client-urls/types.js";
|
|
10
11
|
/**
|
|
11
12
|
* Base path function signature for defining routes with URL patterns.
|
|
12
13
|
*/
|
|
@@ -45,7 +46,7 @@ type IncludeResolved<TEnv, TRoutes extends Record<string, any>, TResponses exten
|
|
|
45
46
|
default: UrlPatterns<TEnv, TRoutes, TResponses>;
|
|
46
47
|
};
|
|
47
48
|
/** include() argument: an eager `urls()` value or an async provider thunk. */
|
|
48
|
-
export type IncludeArg<TEnv, TRoutes extends Record<string, any>, TResponses extends Record<string, unknown>> = UrlPatterns<TEnv, TRoutes, TResponses> | (() => IncludeResolved<TEnv, TRoutes, TResponses> | Promise<IncludeResolved<TEnv, TRoutes, TResponses>>);
|
|
49
|
+
export type IncludeArg<TEnv, TRoutes extends Record<string, any>, TResponses extends Record<string, unknown>> = UrlPatterns<TEnv, TRoutes, TResponses> | ClientUrlPatterns<TRoutes> | (() => IncludeResolved<TEnv, TRoutes, TResponses> | Promise<IncludeResolved<TEnv, TRoutes, TResponses>>);
|
|
49
50
|
/**
|
|
50
51
|
* Base include function signature.
|
|
51
52
|
*/
|
|
@@ -145,9 +146,14 @@ export type PathHelpers<TEnv> = {
|
|
|
145
146
|
*/
|
|
146
147
|
revalidate: (fn: ShouldRevalidateFn<any, TEnv>) => RevalidateItem;
|
|
147
148
|
/**
|
|
148
|
-
* Attach a data loader to the current route/layout
|
|
149
|
+
* Attach a data loader to the current route/layout.
|
|
150
|
+
*
|
|
151
|
+
* Pass `{ stream: "navigation" }` to await this loader before first flush
|
|
152
|
+
* on DOCUMENT requests (see {@link LoaderOptions}) — the opt-in for loaders
|
|
153
|
+
* whose data, handle pushes, or thrown notFound()/redirect() must be in the
|
|
154
|
+
* SSR'd HTML. Per-loader: a dynamic sibling keeps streaming.
|
|
149
155
|
*/
|
|
150
|
-
loader: <TData>(loaderDef: LoaderDefinition<TData>, use?: () => LoaderUseItem[]) => LoaderItem;
|
|
156
|
+
loader: <TData>(loaderDef: LoaderDefinition<TData>, optionsOrUse?: LoaderOptions | (() => LoaderUseItem[]), use?: () => LoaderUseItem[]) => LoaderItem;
|
|
151
157
|
/**
|
|
152
158
|
* Attach a loading component to the current route/layout
|
|
153
159
|
*/
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ClientUrlProjection } from "../../client-urls/server-projection.js";
|
|
2
|
+
import type { DiscoveryState } from "./state.js";
|
|
3
|
+
interface ClientUrlSsrEnvironment {
|
|
4
|
+
readonly runner?: {
|
|
5
|
+
import(id: string): Promise<Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
interface ClientUrlProjectionServerModule {
|
|
9
|
+
clearClientUrlProjections(): void;
|
|
10
|
+
setClientUrlProjection(referenceId: string, projection: ClientUrlProjection): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function recordClientUrlsModule(state: DiscoveryState, code: string, id: string): void;
|
|
13
|
+
export declare function resolveClientUrlsSource(state: DiscoveryState, referenceId: string): string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Deterministic filesystem discovery of clientUrls modules. Transform-based
|
|
16
|
+
* recording only sees modules that some environment actually loads — a
|
|
17
|
+
* clientUrls module not yet reachable from any transformed graph at discovery
|
|
18
|
+
* time (cold ordering, a mount added before its first import is served) would
|
|
19
|
+
* never be recorded and its include would fail with empty projections. Walking
|
|
20
|
+
* the project source (the same walk static route-type generation performs)
|
|
21
|
+
* makes recording independent of module-graph timing. The transform hooks
|
|
22
|
+
* still record too — they refresh dev HMR edits between scans.
|
|
23
|
+
*/
|
|
24
|
+
export declare function scanForClientUrlModules(state: DiscoveryState): void;
|
|
25
|
+
/**
|
|
26
|
+
* Lenient pre-entry projection refresh. Re-serializes every RECORDED clientUrls
|
|
27
|
+
* module before the discovery pass imports the entry, so routers re-created by
|
|
28
|
+
* that import materialize against the CURRENT module contents.
|
|
29
|
+
*
|
|
30
|
+
* Scar: node-preset HMR served stale client-urls routes after a route-shape
|
|
31
|
+
* edit — the clientUrls module is an HMR-accepted client boundary in the rsc
|
|
32
|
+
* graph, and the strict registry-driven pass below only runs AFTER the entry
|
|
33
|
+
* import, so `.routes(reference)` materialized the previous pass's projection.
|
|
34
|
+
*
|
|
35
|
+
* Errors are deliberately swallowed per source (a module mid-edit keeps its
|
|
36
|
+
* last-known projection); the strict discoverClientUrlProjections() pass still
|
|
37
|
+
* surfaces real failures afterwards. No-ops on cold start (nothing recorded
|
|
38
|
+
* yet) and when the SSR runner is unavailable.
|
|
39
|
+
*/
|
|
40
|
+
export declare function refreshRecordedClientUrlProjections(state: DiscoveryState, ssrEnv: ClientUrlSsrEnvironment | undefined, serverMod: ClientUrlProjectionServerModule): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Strict projection discovery over every RECORDED clientUrls module. Recorded
|
|
43
|
+
* modules — not router references — are the source of truth: include() mounts
|
|
44
|
+
* materialize lazily from the projection registry, so there is no router-level
|
|
45
|
+
* reference list to consult. Serializes every source before atomically
|
|
46
|
+
* installing the new projections (a failure preserves last-known state).
|
|
47
|
+
*
|
|
48
|
+
* A recorded source whose file no longer exists is dropped silently
|
|
49
|
+
* (recordClientUrlsModule never un-records, so deletions must self-heal here).
|
|
50
|
+
* A present-but-broken module is a hard error: it is part of the app graph.
|
|
51
|
+
*/
|
|
52
|
+
export declare function discoverClientUrlProjections(state: DiscoveryState, ssrEnv: ClientUrlSsrEnvironment | undefined, serverMod: ClientUrlProjectionServerModule): Promise<void>;
|
|
53
|
+
export {};
|
|
@@ -14,4 +14,4 @@ import type { DiscoveryState } from "./state.js";
|
|
|
14
14
|
* Returns the imported `@rangojs/router/server` module so the caller
|
|
15
15
|
* can access the RouterRegistry and manifest setters.
|
|
16
16
|
*/
|
|
17
|
-
export declare function discoverRouters(state: DiscoveryState, rscEnv: any): Promise<any>;
|
|
17
|
+
export declare function discoverRouters(state: DiscoveryState, rscEnv: any, ssrEnv?: any): Promise<any>;
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* to all extracted helper functions.
|
|
7
7
|
*/
|
|
8
8
|
import type { ScanFilter } from "../../build/generate-route-types.js";
|
|
9
|
+
import type { ClientUrlProjection } from "../../client-urls/server-projection.js";
|
|
9
10
|
export declare const VIRTUAL_ROUTES_MANIFEST_ID = "virtual:rsc-router/routes-manifest";
|
|
10
11
|
export interface PluginOptions {
|
|
11
12
|
enableBuildPrerender?: boolean;
|
|
@@ -81,6 +82,10 @@ export interface ShellPrerenderCandidate {
|
|
|
81
82
|
captureTimeout?: number;
|
|
82
83
|
};
|
|
83
84
|
}
|
|
85
|
+
export interface ClientUrlDiscoveryState {
|
|
86
|
+
clientUrlSourceByReferenceId: Map<string, string>;
|
|
87
|
+
clientUrlProjectionMap: Map<string, ClientUrlProjection>;
|
|
88
|
+
}
|
|
84
89
|
export interface DiscoveryState {
|
|
85
90
|
resolvedEntryPath: string | undefined;
|
|
86
91
|
projectRoot: string;
|
|
@@ -107,6 +112,8 @@ export interface DiscoveryState {
|
|
|
107
112
|
perRouterTrieMap: Map<string, any>;
|
|
108
113
|
perRouterPrecomputedMap: Map<string, PrecomputedEntry[]>;
|
|
109
114
|
perRouterManifestDataMap: Map<string, Record<string, string>>;
|
|
115
|
+
clientUrlSourceByReferenceId?: Map<string, string>;
|
|
116
|
+
clientUrlProjectionMap?: Map<string, ClientUrlProjection>;
|
|
110
117
|
prerenderManifestEntries: Record<string, string> | null;
|
|
111
118
|
staticManifestEntries: Record<string, string> | null;
|
|
112
119
|
/**
|
|
@@ -160,4 +167,4 @@ export interface DiscoveryState {
|
|
|
160
167
|
at: number;
|
|
161
168
|
} | null;
|
|
162
169
|
}
|
|
163
|
-
export declare function createDiscoveryState(entryPath: string | undefined, opts: PluginOptions | undefined): DiscoveryState;
|
|
170
|
+
export declare function createDiscoveryState(entryPath: string | undefined, opts: PluginOptions | undefined): DiscoveryState & ClientUrlDiscoveryState;
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import type { Plugin } from "vite";
|
|
2
2
|
export { exposeRouterId } from "./expose-ids/router-transform.js";
|
|
3
3
|
export type { ExposeInternalIdsApi } from "./expose-ids/types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Stub export-only loader modules before plugin-rsc reduces scan modules to
|
|
6
|
+
* imports. The regular post transform remains authoritative outside scan builds.
|
|
7
|
+
*
|
|
8
|
+
* Handles and location-state definitions are intentionally excluded: handle
|
|
9
|
+
* collect functions run in the browser, and location-state definitions are
|
|
10
|
+
* callable browser objects. Their dependencies must remain visible to non-RSC
|
|
11
|
+
* validation rather than being hidden behind an opaque scan stub.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createLoaderScanStubPlugin(): Plugin;
|
|
4
14
|
export declare function exposeInternalIds(options?: {
|
|
5
15
|
forceBuild?: boolean;
|
|
6
16
|
}): Plugin;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Plugin } from "vite";
|
|
2
|
+
/**
|
|
3
|
+
* Replace dev-style server-reference ids with their production hashes. The temp
|
|
4
|
+
* server renders Static/Prerender in a dev/serve Vite server, so plugin-rsc mints
|
|
5
|
+
* a dev-style id (e.g. "/src/urls/prerender.tsx"); rewriting only the id (group 2)
|
|
6
|
+
* leaves the hoisted function and its trailing encrypted .bind(...) untouched.
|
|
7
|
+
* Exported for testing; used by hashServerRefs. Returns null if nothing changed.
|
|
8
|
+
*/
|
|
9
|
+
export declare function transformServerRefs(code: string, projectRoot: string): string | null;
|
|
10
|
+
/**
|
|
11
|
+
* Server-side analog of hashClientRefs. Runs in the build-discovery temp server
|
|
12
|
+
* (a dev/serve Vite server, where plugin-rsc mints dev-style ids), rewriting
|
|
13
|
+
* registerServerReference ids to production hashes AFTER plugin-rsc's
|
|
14
|
+
* rsc:use-server transform (enforce:"post"), so the Flight serializer bakes the
|
|
15
|
+
* production hash into the stored prerender/static payloads.
|
|
16
|
+
*
|
|
17
|
+
* Without this, a server-created action embedded in a prerendered/static Flight
|
|
18
|
+
* is stored with a dev-style id that the production hash-keyed server-references
|
|
19
|
+
* manifest cannot resolve -> "server reference not found" on a build-time-cache
|
|
20
|
+
* hit. Mirrors hashClientRefs, which already does exactly this for the client
|
|
21
|
+
* half of the same payload (which is why client refs in stored Flight are
|
|
22
|
+
* already production hashes while server refs were not).
|
|
23
|
+
*/
|
|
24
|
+
export declare function hashServerRefs(projectRoot: string): Plugin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function registerServerReferenceRegex(): RegExp;
|
|
@@ -52,4 +52,16 @@ export declare function createVirtualEntriesPlugin(entries: {
|
|
|
52
52
|
* asset collisions from @vitejs/plugin-rsc copying RSC-env assets to the client bundle.
|
|
53
53
|
*/
|
|
54
54
|
export declare function onwarn(warning: Vite.Rollup.RollupLog, defaultHandler: (warning: Vite.Rollup.RollupLog) => void): void;
|
|
55
|
+
/**
|
|
56
|
+
* All of `browser/prefetch/` belongs to the eager "router" chunk — including
|
|
57
|
+
* the modules reachable only via loader.ts's dynamic import. #766 split those
|
|
58
|
+
* into a separate lazy chunk to trim the eager runtime (~2.3 KB gzip), but
|
|
59
|
+
* production's `defaultPrefetch: "viewport"` loads them on almost every page,
|
|
60
|
+
* so the split became a document -> router -> runtime request waterfall
|
|
61
|
+
* (measured 502 ms critical-path latency in a deployed worker). Same-chunk
|
|
62
|
+
* placement resolves the dynamic import without a network fetch
|
|
63
|
+
* (`Promise.resolve().then(...)` in the emitted chunk), and the merged chunk
|
|
64
|
+
* gzips smaller than the two chunks did apart. Do not re-split without new
|
|
65
|
+
* information (AGENTS.md, Bundle hygiene, rejected optimizations).
|
|
66
|
+
*/
|
|
55
67
|
export declare function getManualChunks(id: string): string | undefined;
|