@rangojs/router 0.1.1 → 0.4.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 +2 -1
- package/dist/types/browser/prefetch/default-strategy.d.ts +22 -0
- package/dist/types/browser/prefetch/runtime.d.ts +0 -1
- package/dist/types/browser/react/Link.d.ts +8 -11
- package/dist/types/browser/types.d.ts +5 -0
- package/dist/types/cache/document-cache.d.ts +3 -1
- package/dist/types/cache/types.d.ts +10 -3
- package/dist/types/route-definition/helpers-types.d.ts +6 -6
- package/dist/types/router/match-handlers.d.ts +2 -3
- package/dist/types/router/prefetch-default.d.ts +28 -0
- package/dist/types/router/router-interfaces.d.ts +7 -0
- package/dist/types/router/router-options.d.ts +30 -0
- package/dist/types/router/segment-resolution/view-transition-default.d.ts +3 -4
- package/dist/types/router/transition-when.d.ts +13 -0
- package/dist/types/rsc/capture-queue.d.ts +6 -0
- package/dist/types/rsc/shell-capture.d.ts +15 -7
- package/dist/types/rsc/shell-serve.d.ts +6 -3
- package/dist/types/rsc/transition-gate.d.ts +10 -14
- package/dist/types/rsc/types.d.ts +2 -0
- package/dist/types/server/request-context.d.ts +5 -1
- package/dist/types/testing/e2e/index.d.ts +3 -3
- package/dist/types/testing/e2e/page-helpers.d.ts +24 -0
- package/dist/types/testing/index.d.ts +2 -2
- package/dist/types/testing/run-transition-when.d.ts +6 -5
- package/dist/types/testing/shell-status.d.ts +23 -3
- package/dist/types/types/segments.d.ts +27 -22
- package/dist/types/urls/path-helper-types.d.ts +4 -3
- package/dist/types.backup/__internal.d.ts +127 -0
- package/dist/types.backup/bin/rango.d.ts +1 -0
- package/dist/types.backup/browser/action-coordinator.d.ts +57 -0
- package/dist/types.backup/browser/action-fence.d.ts +33 -0
- package/dist/types.backup/browser/app-shell.d.ts +34 -0
- package/dist/types.backup/browser/app-version.d.ts +6 -0
- package/dist/types.backup/browser/connection-warmup.d.ts +31 -0
- package/dist/types.backup/browser/cookie-name.d.ts +66 -0
- package/dist/types.backup/browser/event-controller.d.ts +221 -0
- package/dist/types.backup/browser/history-state.d.ts +26 -0
- package/dist/types.backup/browser/index.d.ts +1 -0
- package/dist/types.backup/browser/intercept-utils.d.ts +30 -0
- package/dist/types.backup/browser/invalidate-client-cache.d.ts +17 -0
- package/dist/types.backup/browser/link-interceptor.d.ts +43 -0
- package/dist/types.backup/browser/logging.d.ts +33 -0
- package/dist/types.backup/browser/merge-segment-loaders.d.ts +38 -0
- package/dist/types.backup/browser/navigation-bridge.d.ts +27 -0
- package/dist/types.backup/browser/navigation-client.d.ts +17 -0
- package/dist/types.backup/browser/navigation-store-handle.d.ts +25 -0
- package/dist/types.backup/browser/navigation-store.d.ts +95 -0
- package/dist/types.backup/browser/navigation-transaction.d.ts +75 -0
- package/dist/types.backup/browser/network-error-handler.d.ts +35 -0
- package/dist/types.backup/browser/partial-update.d.ts +61 -0
- package/dist/types.backup/browser/prefetch/cache.d.ts +183 -0
- package/dist/types.backup/browser/prefetch/fetch.d.ts +52 -0
- package/dist/types.backup/browser/prefetch/observer.d.ts +27 -0
- package/dist/types.backup/browser/prefetch/policy.d.ts +13 -0
- package/dist/types.backup/browser/prefetch/queue.d.ts +48 -0
- package/dist/types.backup/browser/prefetch/resource-ready.d.ts +28 -0
- package/dist/types.backup/browser/rango-state.d.ts +52 -0
- package/dist/types.backup/browser/react/Link.d.ts +140 -0
- package/dist/types.backup/browser/react/NavigationProvider.d.ts +88 -0
- package/dist/types.backup/browser/react/ScrollRestoration.d.ts +78 -0
- package/dist/types.backup/browser/react/context.d.ts +54 -0
- package/dist/types.backup/browser/react/filter-segment-order.d.ts +35 -0
- package/dist/types.backup/browser/react/index.d.ts +1 -0
- package/dist/types.backup/browser/react/location-state-shared.d.ts +162 -0
- package/dist/types.backup/browser/react/location-state.d.ts +29 -0
- package/dist/types.backup/browser/react/mount-context.d.ts +23 -0
- package/dist/types.backup/browser/react/nonce-context.d.ts +14 -0
- package/dist/types.backup/browser/react/shallow-equal.d.ts +5 -0
- package/dist/types.backup/browser/react/use-action.d.ts +61 -0
- package/dist/types.backup/browser/react/use-handle.d.ts +21 -0
- package/dist/types.backup/browser/react/use-href.d.ts +32 -0
- package/dist/types.backup/browser/react/use-link-status.d.ts +36 -0
- package/dist/types.backup/browser/react/use-mount.d.ts +24 -0
- package/dist/types.backup/browser/react/use-navigation.d.ts +15 -0
- package/dist/types.backup/browser/react/use-params.d.ts +21 -0
- package/dist/types.backup/browser/react/use-pathname.d.ts +13 -0
- package/dist/types.backup/browser/react/use-reverse.d.ts +40 -0
- package/dist/types.backup/browser/react/use-router.d.ts +23 -0
- package/dist/types.backup/browser/react/use-search-params.d.ts +19 -0
- package/dist/types.backup/browser/react/use-segments.d.ts +29 -0
- package/dist/types.backup/browser/response-adapter.d.ts +58 -0
- package/dist/types.backup/browser/rsc-router.d.ts +141 -0
- package/dist/types.backup/browser/scroll-restoration.d.ts +103 -0
- package/dist/types.backup/browser/segment-reconciler.d.ts +74 -0
- package/dist/types.backup/browser/segment-structure-assert.d.ts +16 -0
- package/dist/types.backup/browser/server-action-bridge.d.ts +29 -0
- package/dist/types.backup/browser/types.d.ts +530 -0
- package/dist/types.backup/browser/validate-redirect-origin.d.ts +28 -0
- package/dist/types.backup/build/collect-fallback-refs.d.ts +5 -0
- package/dist/types.backup/build/generate-manifest.d.ts +100 -0
- package/dist/types.backup/build/generate-route-types.d.ts +8 -0
- package/dist/types.backup/build/index.d.ts +21 -0
- package/dist/types.backup/build/prefix-tree-utils.d.ts +56 -0
- package/dist/types.backup/build/route-trie.d.ts +89 -0
- package/dist/types.backup/build/route-types/ast-helpers.d.ts +3 -0
- package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +13 -0
- package/dist/types.backup/build/route-types/codegen.d.ts +16 -0
- package/dist/types.backup/build/route-types/include-resolution.d.ts +74 -0
- package/dist/types.backup/build/route-types/param-extraction.d.ts +13 -0
- package/dist/types.backup/build/route-types/per-module-writer.d.ts +18 -0
- package/dist/types.backup/build/route-types/router-processing.d.ts +82 -0
- package/dist/types.backup/build/route-types/scan-filter.d.ts +17 -0
- package/dist/types.backup/build/route-types/source-scan.d.ts +13 -0
- package/dist/types.backup/build/runtime-discovery.d.ts +24 -0
- package/dist/types.backup/cache/background-task.d.ts +21 -0
- package/dist/types.backup/cache/cache-error.d.ts +71 -0
- package/dist/types.backup/cache/cache-key-utils.d.ts +35 -0
- package/dist/types.backup/cache/cache-policy.d.ts +59 -0
- package/dist/types.backup/cache/cache-runtime.d.ts +51 -0
- package/dist/types.backup/cache/cache-scope.d.ts +134 -0
- package/dist/types.backup/cache/cache-tag.d.ts +79 -0
- package/dist/types.backup/cache/cf/cf-base64.d.ts +4 -0
- package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +105 -0
- package/dist/types.backup/cache/cf/cf-cache-store.d.ts +481 -0
- package/dist/types.backup/cache/cf/cf-cache-types.d.ts +300 -0
- package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +22 -0
- package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +15 -0
- package/dist/types.backup/cache/cf/index.d.ts +3 -0
- package/dist/types.backup/cache/document-cache.d.ts +69 -0
- package/dist/types.backup/cache/handle-capture.d.ts +23 -0
- package/dist/types.backup/cache/handle-snapshot.d.ts +39 -0
- package/dist/types.backup/cache/index.d.ts +7 -0
- package/dist/types.backup/cache/memory-segment-store.d.ts +163 -0
- package/dist/types.backup/cache/profile-registry.d.ts +40 -0
- package/dist/types.backup/cache/read-through-swr.d.ts +60 -0
- package/dist/types.backup/cache/segment-codec.d.ts +78 -0
- package/dist/types.backup/cache/shell-snapshot.d.ts +162 -0
- package/dist/types.backup/cache/tag-invalidation.d.ts +74 -0
- package/dist/types.backup/cache/taint.d.ts +71 -0
- package/dist/types.backup/cache/types.d.ts +407 -0
- package/dist/types.backup/cache/vercel/index.d.ts +1 -0
- package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +267 -0
- package/dist/types.backup/client.d.ts +184 -0
- package/dist/types.backup/client.rsc.d.ts +39 -0
- package/dist/types.backup/cloudflare/index.d.ts +7 -0
- package/dist/types.backup/cloudflare/tracing.d.ts +53 -0
- package/dist/types.backup/component-utils.d.ts +46 -0
- package/dist/types.backup/components/DefaultDocument.d.ts +13 -0
- package/dist/types.backup/context-var.d.ts +84 -0
- package/dist/types.backup/debug.d.ts +57 -0
- package/dist/types.backup/decode-loader-results.d.ts +5 -0
- package/dist/types.backup/default-error-boundary.d.ts +10 -0
- package/dist/types.backup/defer.d.ts +89 -0
- package/dist/types.backup/deps/browser.d.ts +1 -0
- package/dist/types.backup/deps/html-stream-client.d.ts +1 -0
- package/dist/types.backup/deps/html-stream-server.d.ts +1 -0
- package/dist/types.backup/deps/rsc.d.ts +1 -0
- package/dist/types.backup/deps/ssr.d.ts +1 -0
- package/dist/types.backup/encode-kv.d.ts +35 -0
- package/dist/types.backup/errors.d.ts +226 -0
- package/dist/types.backup/escape-script.d.ts +44 -0
- package/dist/types.backup/handle.d.ts +93 -0
- package/dist/types.backup/handles/MetaTags.d.ts +17 -0
- package/dist/types.backup/handles/Scripts.d.ts +38 -0
- package/dist/types.backup/handles/breadcrumbs.d.ts +43 -0
- package/dist/types.backup/handles/deferred-resolution.d.ts +53 -0
- package/dist/types.backup/handles/is-thenable.d.ts +12 -0
- package/dist/types.backup/handles/meta.d.ts +43 -0
- package/dist/types.backup/handles/script.d.ts +139 -0
- package/dist/types.backup/host/cookie-handler.d.ts +8 -0
- package/dist/types.backup/host/errors.d.ts +40 -0
- package/dist/types.backup/host/index.d.ts +33 -0
- package/dist/types.backup/host/pattern-matcher.d.ts +30 -0
- package/dist/types.backup/host/router.d.ts +12 -0
- package/dist/types.backup/host/testing.d.ts +41 -0
- package/dist/types.backup/host/types.d.ts +148 -0
- package/dist/types.backup/host/utils.d.ts +20 -0
- package/dist/types.backup/href-client.d.ts +214 -0
- package/dist/types.backup/index.d.ts +112 -0
- package/dist/types.backup/index.rsc.d.ts +51 -0
- package/dist/types.backup/internal-debug.d.ts +1 -0
- package/dist/types.backup/loader-store.d.ts +193 -0
- package/dist/types.backup/loader.d.ts +18 -0
- package/dist/types.backup/loader.rsc.d.ts +18 -0
- package/dist/types.backup/missing-id-error.d.ts +1 -0
- package/dist/types.backup/outlet-context.d.ts +12 -0
- package/dist/types.backup/outlet-provider.d.ts +12 -0
- package/dist/types.backup/prerender/build-shell-capture.d.ts +104 -0
- package/dist/types.backup/prerender/param-hash.d.ts +6 -0
- package/dist/types.backup/prerender/shell-manifest-key.d.ts +18 -0
- package/dist/types.backup/prerender/store.d.ts +62 -0
- package/dist/types.backup/prerender.d.ts +292 -0
- package/dist/types.backup/redirect-origin.d.ts +55 -0
- package/dist/types.backup/regex-escape.d.ts +6 -0
- package/dist/types.backup/render-error-thrower.d.ts +13 -0
- package/dist/types.backup/response-utils.d.ts +35 -0
- package/dist/types.backup/reverse.d.ts +206 -0
- package/dist/types.backup/root-error-boundary.d.ts +32 -0
- package/dist/types.backup/route-content-wrapper.d.ts +40 -0
- package/dist/types.backup/route-definition/dsl-helpers.d.ts +130 -0
- package/dist/types.backup/route-definition/helper-factories.d.ts +22 -0
- package/dist/types.backup/route-definition/helpers-types.d.ts +392 -0
- package/dist/types.backup/route-definition/index.d.ts +7 -0
- package/dist/types.backup/route-definition/redirect.d.ts +48 -0
- package/dist/types.backup/route-definition/resolve-handler-use.d.ts +19 -0
- package/dist/types.backup/route-definition/use-item-types.d.ts +1 -0
- package/dist/types.backup/route-definition.d.ts +1 -0
- package/dist/types.backup/route-map-builder.d.ts +127 -0
- package/dist/types.backup/route-name.d.ts +27 -0
- package/dist/types.backup/route-types.d.ts +172 -0
- package/dist/types.backup/router/basename.d.ts +10 -0
- package/dist/types.backup/router/content-negotiation.d.ts +91 -0
- package/dist/types.backup/router/debug-manifest.d.ts +7 -0
- package/dist/types.backup/router/error-handling.d.ts +76 -0
- package/dist/types.backup/router/find-match.d.ts +19 -0
- package/dist/types.backup/router/handler-context.d.ts +41 -0
- package/dist/types.backup/router/instrument.d.ts +161 -0
- package/dist/types.backup/router/intercept-resolution.d.ts +79 -0
- package/dist/types.backup/router/lazy-includes.d.ts +26 -0
- package/dist/types.backup/router/loader-resolution.d.ts +63 -0
- package/dist/types.backup/router/logging.d.ts +41 -0
- package/dist/types.backup/router/manifest.d.ts +8 -0
- package/dist/types.backup/router/match-api.d.ts +19 -0
- package/dist/types.backup/router/match-context.d.ts +184 -0
- package/dist/types.backup/router/match-handlers.d.ts +49 -0
- package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +113 -0
- package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +113 -0
- package/dist/types.backup/router/match-middleware/cache-store.d.ts +112 -0
- package/dist/types.backup/router/match-middleware/index.d.ts +80 -0
- package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +116 -0
- package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +94 -0
- package/dist/types.backup/router/match-pipelines.d.ts +103 -0
- package/dist/types.backup/router/match-result.d.ts +114 -0
- package/dist/types.backup/router/metrics.d.ts +6 -0
- package/dist/types.backup/router/middleware-types.d.ts +74 -0
- package/dist/types.backup/router/middleware.d.ts +116 -0
- package/dist/types.backup/router/navigation-snapshot.d.ts +22 -0
- package/dist/types.backup/router/params-util.d.ts +8 -0
- package/dist/types.backup/router/parse-pattern.d.ts +38 -0
- package/dist/types.backup/router/pattern-matching.d.ts +169 -0
- package/dist/types.backup/router/prefetch-cache-ttl.d.ts +27 -0
- package/dist/types.backup/router/prefetch-limits.d.ts +20 -0
- package/dist/types.backup/router/prerender-match.d.ts +50 -0
- package/dist/types.backup/router/preview-match.d.ts +22 -0
- package/dist/types.backup/router/request-classification.d.ts +104 -0
- package/dist/types.backup/router/revalidation.d.ts +57 -0
- package/dist/types.backup/router/route-snapshot.d.ts +112 -0
- package/dist/types.backup/router/router-context.d.ts +137 -0
- package/dist/types.backup/router/router-interfaces.d.ts +432 -0
- package/dist/types.backup/router/router-options.d.ts +738 -0
- package/dist/types.backup/router/router-registry.d.ts +15 -0
- package/dist/types.backup/router/segment-resolution/fresh.d.ts +55 -0
- package/dist/types.backup/router/segment-resolution/helpers.d.ts +93 -0
- package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +33 -0
- package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +44 -0
- package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +90 -0
- package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +53 -0
- package/dist/types.backup/router/segment-resolution/revalidation.d.ts +85 -0
- package/dist/types.backup/router/segment-resolution/static-store.d.ts +17 -0
- package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
- package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +28 -0
- package/dist/types.backup/router/segment-resolution.d.ts +3 -0
- package/dist/types.backup/router/segment-wrappers.d.ts +53 -0
- package/dist/types.backup/router/state-cookie-name.d.ts +1 -0
- package/dist/types.backup/router/substitute-pattern-params.d.ts +23 -0
- package/dist/types.backup/router/telemetry-otel.d.ts +113 -0
- package/dist/types.backup/router/telemetry.d.ts +215 -0
- package/dist/types.backup/router/timeout.d.ts +68 -0
- package/dist/types.backup/router/tracing.d.ts +125 -0
- package/dist/types.backup/router/trie-matching.d.ts +32 -0
- package/dist/types.backup/router/types.d.ts +98 -0
- package/dist/types.backup/router/url-params.d.ts +26 -0
- package/dist/types.backup/router.d.ts +7 -0
- package/dist/types.backup/rsc/capture-queue.d.ts +6 -0
- package/dist/types.backup/rsc/full-payload.d.ts +22 -0
- package/dist/types.backup/rsc/handler-context.d.ts +31 -0
- package/dist/types.backup/rsc/handler.d.ts +9 -0
- package/dist/types.backup/rsc/helpers.d.ts +213 -0
- package/dist/types.backup/rsc/index.d.ts +17 -0
- package/dist/types.backup/rsc/json-route-result.d.ts +20 -0
- package/dist/types.backup/rsc/loader-fetch.d.ts +14 -0
- package/dist/types.backup/rsc/manifest-init.d.ts +18 -0
- package/dist/types.backup/rsc/nonce.d.ts +28 -0
- package/dist/types.backup/rsc/origin-guard.d.ts +50 -0
- package/dist/types.backup/rsc/progressive-enhancement.d.ts +19 -0
- package/dist/types.backup/rsc/redirect-guard.d.ts +35 -0
- package/dist/types.backup/rsc/response-cache-serve.d.ts +46 -0
- package/dist/types.backup/rsc/response-error.d.ts +19 -0
- package/dist/types.backup/rsc/response-route-handler.d.ts +29 -0
- package/dist/types.backup/rsc/rsc-rendering.d.ts +23 -0
- package/dist/types.backup/rsc/runtime-warnings.d.ts +22 -0
- package/dist/types.backup/rsc/server-action.d.ts +68 -0
- package/dist/types.backup/rsc/shell-build-manifest.d.ts +84 -0
- package/dist/types.backup/rsc/shell-capture-constants.d.ts +27 -0
- package/dist/types.backup/rsc/shell-capture.d.ts +374 -0
- package/dist/types.backup/rsc/shell-serve.d.ts +136 -0
- package/dist/types.backup/rsc/ssr-setup.d.ts +48 -0
- package/dist/types.backup/rsc/transition-gate.d.ts +27 -0
- package/dist/types.backup/rsc/types.d.ts +290 -0
- package/dist/types.backup/runtime-env.d.ts +1 -0
- package/dist/types.backup/search-params.d.ts +125 -0
- package/dist/types.backup/segment-content-promise.d.ts +13 -0
- package/dist/types.backup/segment-fragments.d.ts +56 -0
- package/dist/types.backup/segment-loader-promise.d.ts +22 -0
- package/dist/types.backup/segment-system.d.ts +84 -0
- package/dist/types.backup/serialize.d.ts +164 -0
- package/dist/types.backup/server/context.d.ts +494 -0
- package/dist/types.backup/server/cookie-parse.d.ts +10 -0
- package/dist/types.backup/server/cookie-store.d.ts +107 -0
- package/dist/types.backup/server/fetchable-loader-store.d.ts +20 -0
- package/dist/types.backup/server/handle-store.d.ts +100 -0
- package/dist/types.backup/server/loader-registry.d.ts +32 -0
- package/dist/types.backup/server/request-context.d.ts +596 -0
- package/dist/types.backup/server/root-layout.d.ts +3 -0
- package/dist/types.backup/server.d.ts +15 -0
- package/dist/types.backup/ssr/index.d.ts +233 -0
- package/dist/types.backup/ssr/inject-rsc-eager.d.ts +3 -0
- package/dist/types.backup/ssr/preinit-client-references.d.ts +71 -0
- package/dist/types.backup/ssr/ssr-root.d.ts +69 -0
- package/dist/types.backup/static-handler.d.ts +57 -0
- package/dist/types.backup/testing/cache-status.d.ts +63 -0
- package/dist/types.backup/testing/collect-handle.d.ts +20 -0
- package/dist/types.backup/testing/dispatch.d.ts +123 -0
- package/dist/types.backup/testing/dom.entry.d.ts +15 -0
- package/dist/types.backup/testing/e2e/fixture.d.ts +37 -0
- package/dist/types.backup/testing/e2e/index.d.ts +30 -0
- package/dist/types.backup/testing/e2e/matchers.d.ts +17 -0
- package/dist/types.backup/testing/e2e/page-helpers.d.ts +62 -0
- package/dist/types.backup/testing/e2e/parity.d.ts +111 -0
- package/dist/types.backup/testing/e2e/server.d.ts +35 -0
- package/dist/types.backup/testing/flight-matchers.d.ts +55 -0
- package/dist/types.backup/testing/flight-normalize.d.ts +1 -0
- package/dist/types.backup/testing/flight-tree.d.ts +192 -0
- package/dist/types.backup/testing/flight.d.ts +115 -0
- package/dist/types.backup/testing/flight.entry.d.ts +27 -0
- package/dist/types.backup/testing/generated-routes.d.ts +66 -0
- package/dist/types.backup/testing/index.d.ts +52 -0
- package/dist/types.backup/testing/internal/context.d.ts +225 -0
- package/dist/types.backup/testing/internal/flight-client-globals.d.ts +1 -0
- package/dist/types.backup/testing/internal/seed-vars.d.ts +30 -0
- package/dist/types.backup/testing/render-handler.d.ts +160 -0
- package/dist/types.backup/testing/render-route.d.ts +246 -0
- package/dist/types.backup/testing/run-loader.d.ts +186 -0
- package/dist/types.backup/testing/run-middleware.d.ts +132 -0
- package/dist/types.backup/testing/run-transition-when.d.ts +77 -0
- package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
- package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
- package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
- package/dist/types.backup/testing/vitest-stubs/version.d.ts +1 -0
- package/dist/types.backup/testing/vitest.d.ts +205 -0
- package/dist/types.backup/theme/ThemeProvider.d.ts +13 -0
- package/dist/types.backup/theme/ThemeScript.d.ts +45 -0
- package/dist/types.backup/theme/constants.d.ts +39 -0
- package/dist/types.backup/theme/index.d.ts +29 -0
- package/dist/types.backup/theme/theme-context.d.ts +21 -0
- package/dist/types.backup/theme/theme-script.d.ts +26 -0
- package/dist/types.backup/theme/types.d.ts +162 -0
- package/dist/types.backup/theme/use-theme.d.ts +8 -0
- package/dist/types.backup/types/boundaries.d.ts +93 -0
- package/dist/types.backup/types/cache-types.d.ts +191 -0
- package/dist/types.backup/types/error-types.d.ts +114 -0
- package/dist/types.backup/types/global-namespace.d.ts +90 -0
- package/dist/types.backup/types/handler-context.d.ts +658 -0
- package/dist/types.backup/types/index.d.ts +11 -0
- package/dist/types.backup/types/loader-types.d.ts +182 -0
- package/dist/types.backup/types/request-scope.d.ts +93 -0
- package/dist/types.backup/types/route-config.d.ts +105 -0
- package/dist/types.backup/types/route-entry.d.ts +95 -0
- package/dist/types.backup/types/segments.d.ts +234 -0
- package/dist/types.backup/types.d.ts +1 -0
- package/dist/types.backup/urls/include-helper.d.ts +17 -0
- package/dist/types.backup/urls/include-provider.d.ts +27 -0
- package/dist/types.backup/urls/index.d.ts +6 -0
- package/dist/types.backup/urls/path-helper-types.d.ts +197 -0
- package/dist/types.backup/urls/path-helper.d.ts +12 -0
- package/dist/types.backup/urls/pattern-types.d.ts +166 -0
- package/dist/types.backup/urls/response-types.d.ts +67 -0
- package/dist/types.backup/urls/type-extraction.d.ts +157 -0
- package/dist/types.backup/urls/urls-function.d.ts +24 -0
- package/dist/types.backup/urls.d.ts +1 -0
- package/dist/types.backup/use-loader.d.ts +150 -0
- package/dist/types.backup/vercel/index.d.ts +10 -0
- package/dist/types.backup/vercel/tracing.d.ts +70 -0
- package/dist/types.backup/vite/debug.d.ts +80 -0
- package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +12 -0
- package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +65 -0
- package/dist/types.backup/vite/discovery/discover-routers.d.ts +17 -0
- package/dist/types.backup/vite/discovery/discovery-errors.d.ts +113 -0
- package/dist/types.backup/vite/discovery/gate-state.d.ts +79 -0
- package/dist/types.backup/vite/discovery/prerender-collection.d.ts +24 -0
- package/dist/types.backup/vite/discovery/route-types-writer.d.ts +32 -0
- package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +22 -0
- package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +40 -0
- package/dist/types.backup/vite/discovery/state.d.ts +162 -0
- package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +15 -0
- package/dist/types.backup/vite/index.d.ts +11 -0
- package/dist/types.backup/vite/inject-client-debug.d.ts +56 -0
- package/dist/types.backup/vite/plugin-types.d.ts +298 -0
- package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +6 -0
- package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +40 -0
- package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +35 -0
- package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
- package/dist/types.backup/vite/plugins/expose-action-id.d.ts +18 -0
- package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +37 -0
- package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
- package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
- package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
- package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +13 -0
- package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +29 -0
- package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +6 -0
- package/dist/types.backup/vite/plugins/performance-tracks.d.ts +25 -0
- package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +20 -0
- package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +20 -0
- package/dist/types.backup/vite/plugins/vercel-output.d.ts +85 -0
- package/dist/types.backup/vite/plugins/version-injector.d.ts +21 -0
- package/dist/types.backup/vite/plugins/version-plugin.d.ts +19 -0
- package/dist/types.backup/vite/plugins/virtual-entries.d.ts +36 -0
- package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +7 -0
- package/dist/types.backup/vite/rango.d.ts +29 -0
- package/dist/types.backup/vite/router-discovery.d.ts +23 -0
- package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +64 -0
- package/dist/types.backup/vite/utils/banner.d.ts +2 -0
- package/dist/types.backup/vite/utils/bundle-analysis.d.ts +28 -0
- package/dist/types.backup/vite/utils/client-chunks.d.ts +55 -0
- package/dist/types.backup/vite/utils/directive-prologue.d.ts +16 -0
- package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +37 -0
- package/dist/types.backup/vite/utils/manifest-utils.d.ts +7 -0
- package/dist/types.backup/vite/utils/package-resolution.d.ts +6 -0
- package/dist/types.backup/vite/utils/prerender-utils.d.ts +32 -0
- package/dist/types.backup/vite/utils/shared-utils.d.ts +55 -0
- package/dist/vite/index.js +5 -2
- package/package.json +20 -21
- package/skills/cache-guide/SKILL.md +6 -3
- package/skills/catalog.json +7 -1
- package/skills/comparison/references/framework-comparison.md +2 -1
- package/skills/deployment-caching/SKILL.md +176 -0
- package/skills/document-cache/SKILL.md +30 -3
- package/skills/ppr/SKILL.md +81 -34
- package/skills/prerender/SKILL.md +15 -8
- package/skills/rango/SKILL.md +20 -17
- package/skills/router-setup/SKILL.md +4 -0
- package/skills/testing/SKILL.md +1 -1
- package/skills/testing/cache-prerender.md +5 -1
- package/skills/vercel/SKILL.md +22 -1
- package/skills/view-transitions/SKILL.md +12 -8
- package/src/browser/prefetch/default-strategy.ts +34 -0
- package/src/browser/prefetch/loader.ts +6 -12
- package/src/browser/prefetch/runtime.ts +0 -1
- package/src/browser/react/Link.tsx +22 -21
- package/src/browser/rsc-router.tsx +8 -0
- package/src/browser/types.ts +5 -0
- package/src/cache/cache-scope.ts +6 -1
- package/src/cache/cf/cf-cache-store.ts +4 -0
- package/src/cache/document-cache.ts +4 -2
- package/src/cache/types.ts +10 -3
- package/src/cache/vercel/vercel-cache-store.ts +6 -1
- package/src/route-definition/helpers-types.ts +6 -6
- package/src/router/match-handlers.ts +44 -6
- package/src/router/match-middleware/cache-lookup.ts +10 -3
- package/src/router/prefetch-default.ts +59 -0
- package/src/router/router-interfaces.ts +8 -0
- package/src/router/router-options.ts +31 -0
- package/src/router/segment-resolution/view-transition-default.ts +9 -5
- package/src/router/transition-when.ts +76 -0
- package/src/router.ts +7 -0
- package/src/rsc/capture-queue.ts +24 -1
- package/src/rsc/full-payload.ts +1 -0
- package/src/rsc/handler.ts +1 -0
- package/src/rsc/progressive-enhancement.ts +9 -14
- package/src/rsc/rsc-rendering.ts +261 -48
- package/src/rsc/shell-capture.ts +94 -50
- package/src/rsc/shell-serve.ts +9 -4
- package/src/rsc/transition-gate.ts +37 -40
- package/src/rsc/types.ts +2 -0
- package/src/server/request-context.ts +6 -0
- package/src/testing/e2e/index.ts +11 -0
- package/src/testing/e2e/page-helpers.ts +47 -0
- package/src/testing/e2e/parity.ts +13 -0
- package/src/testing/index.ts +9 -1
- package/src/testing/run-transition-when.ts +42 -9
- package/src/testing/shell-status.ts +92 -3
- package/src/types/segments.ts +27 -22
- package/src/urls/path-helper-types.ts +4 -3
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* runTransitionWhen — unit-test a transition({ when }) predicate in isolation.
|
|
3
3
|
*
|
|
4
|
-
* Runs the SAME
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* TransitionWhenContext and evaluates the predicate post-handler). So the
|
|
4
|
+
* Runs the SAME server functions the router uses — the PPR pre-handler evaluator
|
|
5
|
+
* when `ppr: true`, applyViewTransitionDefault (which strips the server-only
|
|
6
|
+
* function), and gateTransitions. So the
|
|
8
7
|
* predicate sees exactly the navigation/action metadata it would at runtime
|
|
9
8
|
* (currentUrl/currentParams/fromRouteName, nextUrl/nextParams/toRouteName,
|
|
10
9
|
* actionId/actionUrl/actionResult/formData/method, get/env), and `kept` reflects
|
|
@@ -33,6 +32,9 @@ import type {
|
|
|
33
32
|
TransitionWhenContext,
|
|
34
33
|
} from "../types/segments.js";
|
|
35
34
|
import type { OnErrorCallback } from "../types/error-types.js";
|
|
35
|
+
import type { EntryData } from "../server/context.js";
|
|
36
|
+
import { evaluatePprTransitionWhen } from "../router/transition-when.js";
|
|
37
|
+
import { invokeOnError } from "../router/error-handling.js";
|
|
36
38
|
|
|
37
39
|
const toURL = (v: string | URL, base: URL): URL =>
|
|
38
40
|
typeof v === "string" ? new URL(v, base.origin) : v;
|
|
@@ -53,7 +55,7 @@ export interface RunTransitionWhenOptions<TEnv = any> {
|
|
|
53
55
|
toRouteName?: string;
|
|
54
56
|
/** Environment bindings surfaced as `env` (and `ctx.env`). */
|
|
55
57
|
env?: TEnv;
|
|
56
|
-
/** Variables
|
|
58
|
+
/** Variables readable via the predicate's `get()`. With `ppr`, these model pre-handler middleware/input state. */
|
|
57
59
|
vars?: VarsInit;
|
|
58
60
|
/** Navigation SOURCE url (`currentUrl`): a URL or path string. */
|
|
59
61
|
currentUrl?: string | URL;
|
|
@@ -71,6 +73,8 @@ export interface RunTransitionWhenOptions<TEnv = any> {
|
|
|
71
73
|
formData?: FormData;
|
|
72
74
|
/** Receives an error thrown by the predicate (the gate reports to `router.onError`, phase `"rendering"`). */
|
|
73
75
|
onError?: OnErrorCallback;
|
|
76
|
+
/** Model a route with `ppr`, where the predicate runs before route handlers and cache lookup. */
|
|
77
|
+
ppr?: boolean;
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
/**
|
|
@@ -138,8 +142,37 @@ export function runTransitionWhen<TEnv = any>(
|
|
|
138
142
|
: config;
|
|
139
143
|
|
|
140
144
|
return runWithRequestContext(reqCtx, () => {
|
|
141
|
-
|
|
142
|
-
|
|
145
|
+
if (opts.ppr) {
|
|
146
|
+
const entry = {
|
|
147
|
+
type: "route",
|
|
148
|
+
id: "tx-when-entry",
|
|
149
|
+
shortCode: "tx-when-seg",
|
|
150
|
+
parent: null,
|
|
151
|
+
transition: configForGate,
|
|
152
|
+
layout: [],
|
|
153
|
+
parallel: {},
|
|
154
|
+
} as unknown as EntryData;
|
|
155
|
+
evaluatePprTransitionWhen(
|
|
156
|
+
[entry],
|
|
157
|
+
reqCtx,
|
|
158
|
+
{ params: reqCtx.params, routeName: opts.toRouteName },
|
|
159
|
+
(error, segmentId) =>
|
|
160
|
+
invokeOnError(
|
|
161
|
+
opts.onError,
|
|
162
|
+
error,
|
|
163
|
+
"rendering",
|
|
164
|
+
{
|
|
165
|
+
request: reqCtx.request,
|
|
166
|
+
url: reqCtx.url,
|
|
167
|
+
params: reqCtx.params,
|
|
168
|
+
segmentId,
|
|
169
|
+
},
|
|
170
|
+
"RSC",
|
|
171
|
+
),
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
// Ordinary predicates are collected here and evaluated by the gate. PPR
|
|
175
|
+
// predicates keep the decision already evaluated before this step.
|
|
143
176
|
const serialized = applyViewTransitionDefault(
|
|
144
177
|
configForGate,
|
|
145
178
|
undefined,
|
|
@@ -153,12 +186,12 @@ export function runTransitionWhen<TEnv = any>(
|
|
|
153
186
|
component: null,
|
|
154
187
|
transition: serialized,
|
|
155
188
|
} as ResolvedSegment;
|
|
156
|
-
gateTransitions(
|
|
189
|
+
const [gatedSegment] = gateTransitions(
|
|
157
190
|
[segment],
|
|
158
191
|
reqCtx as Parameters<typeof gateTransitions>[1],
|
|
159
192
|
opts.onError,
|
|
160
193
|
);
|
|
161
|
-
const kept =
|
|
194
|
+
const kept = gatedSegment.transition !== undefined;
|
|
162
195
|
return { kept, dropped: !kept, whenContext, ctx: reqCtx };
|
|
163
196
|
});
|
|
164
197
|
}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* PPR shell-status testing primitives for @rangojs/router consumers.
|
|
3
3
|
*
|
|
4
4
|
* Companion to `cache-status.ts` (segment/document cache): this module covers
|
|
5
|
-
* the **shell axis** (`ppr` path option → `x-rango-shell: HIT | MISS`)
|
|
5
|
+
* the **shell axis** (`ppr` path option → `x-rango-shell: HIT | MISS`) and
|
|
6
|
+
* partial-navigation segment replay (`x-rango-ppr-replay: HIT`).
|
|
6
7
|
*
|
|
7
8
|
* ## Spike conclusions (plan 009)
|
|
8
9
|
*
|
|
@@ -11,8 +12,9 @@
|
|
|
11
12
|
* + `ppr: true` on a response route is a no-op for shell serve/capture. The
|
|
12
13
|
* production path lives in `rsc/rsc-rendering.ts` + `rsc/shell-capture.ts`.
|
|
13
14
|
*
|
|
14
|
-
* 2. **Smallest
|
|
15
|
-
*
|
|
15
|
+
* 2. **Smallest status signals:** `x-rango-shell` (`HIT` | `MISS`) on document
|
|
16
|
+
* GETs, and `x-rango-ppr-replay` on partial requests to ppr routes. A replay
|
|
17
|
+
* HIT is reported only when matching consumes the captured segment record.
|
|
16
18
|
* Secondary unit signal: `store.getShell(shellCacheKey(url))` after a real
|
|
17
19
|
* capture flush (background `putShell`). There is no Flight flag for shell HIT.
|
|
18
20
|
*
|
|
@@ -31,9 +33,37 @@ import { sortedSearchString } from "../cache/cache-key-utils.js";
|
|
|
31
33
|
/** Production header name (`rsc/shell-serve.ts` `SHELL_STATUS_HEADER`). */
|
|
32
34
|
export const SHELL_STATUS_HEADER: string = "x-rango-shell";
|
|
33
35
|
|
|
36
|
+
/** Partial-navigation replay decision header from `rsc/rsc-rendering.ts`. */
|
|
37
|
+
export const PPR_REPLAY_STATUS_HEADER: string = "x-rango-ppr-replay";
|
|
38
|
+
|
|
34
39
|
/** Values the serve path writes on `x-rango-shell`. */
|
|
35
40
|
export type ShellStatus = "HIT" | "MISS";
|
|
36
41
|
|
|
42
|
+
const PPR_REPLAY_BYPASS_REASONS = [
|
|
43
|
+
"method",
|
|
44
|
+
"dynamic",
|
|
45
|
+
"nonce",
|
|
46
|
+
"store-unavailable",
|
|
47
|
+
"passive-read-unsupported",
|
|
48
|
+
"read-error",
|
|
49
|
+
"no-entry",
|
|
50
|
+
"invalid-version",
|
|
51
|
+
"corrupt-entry",
|
|
52
|
+
"handler-live-holes",
|
|
53
|
+
"transition-when",
|
|
54
|
+
"no-segment-snapshot",
|
|
55
|
+
"snapshot-miss",
|
|
56
|
+
"stale-build-entry",
|
|
57
|
+
] as const;
|
|
58
|
+
|
|
59
|
+
/** Bounded reasons a PPR partial request can fall open to ordinary matching. */
|
|
60
|
+
export type PprReplayBypassReason = (typeof PPR_REPLAY_BYPASS_REASONS)[number];
|
|
61
|
+
|
|
62
|
+
/** Parsed `x-rango-ppr-replay` value. */
|
|
63
|
+
export type PprReplayStatus =
|
|
64
|
+
| { outcome: "HIT"; freshness: "fresh" | "stale" }
|
|
65
|
+
| { outcome: "BYPASS"; reason: PprReplayBypassReason };
|
|
66
|
+
|
|
37
67
|
/** A target carrying response headers (a Response or a `{ headers }` object). */
|
|
38
68
|
export type ShellStatusTarget = Response | { headers: Headers };
|
|
39
69
|
|
|
@@ -58,6 +88,8 @@ function getHeaders(target: ShellStatusTarget): Headers {
|
|
|
58
88
|
return target.headers;
|
|
59
89
|
}
|
|
60
90
|
|
|
91
|
+
const PPR_REPLAY_BYPASS_REASON_SET = new Set<string>(PPR_REPLAY_BYPASS_REASONS);
|
|
92
|
+
|
|
61
93
|
/**
|
|
62
94
|
* Read `x-rango-shell` from a response. Returns `null` when the header is
|
|
63
95
|
* absent (axis-1 / non-ppr / ineligible request).
|
|
@@ -98,3 +130,60 @@ export function assertShellStatus(
|
|
|
98
130
|
);
|
|
99
131
|
}
|
|
100
132
|
}
|
|
133
|
+
|
|
134
|
+
/** Parse the dedicated PPR partial-navigation replay decision header. */
|
|
135
|
+
export function parsePprReplayStatus(
|
|
136
|
+
target: ShellStatusTarget,
|
|
137
|
+
): PprReplayStatus | null {
|
|
138
|
+
const raw = getHeaders(target).get(PPR_REPLAY_STATUS_HEADER)?.trim();
|
|
139
|
+
if (!raw) return null;
|
|
140
|
+
|
|
141
|
+
const [outcome, detail, ...extra] = raw.split(";").map((part) => part.trim());
|
|
142
|
+
if (extra.length > 0 || !detail) return null;
|
|
143
|
+
|
|
144
|
+
if (outcome === "HIT") {
|
|
145
|
+
const freshness = detail.match(/^freshness=(fresh|stale)$/)?.[1];
|
|
146
|
+
if (freshness === "fresh" || freshness === "stale") {
|
|
147
|
+
return { outcome, freshness };
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (outcome === "BYPASS") {
|
|
153
|
+
const reason = detail.match(/^reason=(.+)$/)?.[1] as
|
|
154
|
+
| PprReplayBypassReason
|
|
155
|
+
| undefined;
|
|
156
|
+
if (reason && PPR_REPLAY_BYPASS_REASON_SET.has(reason)) {
|
|
157
|
+
return { outcome, reason };
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/** Assert a partial response's PPR replay outcome and freshness/reason. */
|
|
165
|
+
export function assertPprReplayStatus(
|
|
166
|
+
target: ShellStatusTarget,
|
|
167
|
+
expected: PprReplayStatus,
|
|
168
|
+
): void {
|
|
169
|
+
const raw = getHeaders(target).get(PPR_REPLAY_STATUS_HEADER);
|
|
170
|
+
if (raw === null) {
|
|
171
|
+
throw new Error(
|
|
172
|
+
`assertPprReplayStatus: response has no ${PPR_REPLAY_STATUS_HEADER} header. ` +
|
|
173
|
+
"The header is set on partial requests to ppr-declared routes.",
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
const actual = parsePprReplayStatus(target);
|
|
178
|
+
if (!actual) {
|
|
179
|
+
throw new Error(
|
|
180
|
+
`assertPprReplayStatus: unrecognized ${PPR_REPLAY_STATUS_HEADER} value "${raw}".`,
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (JSON.stringify(actual) !== JSON.stringify(expected)) {
|
|
185
|
+
throw new Error(
|
|
186
|
+
`assertPprReplayStatus: expected ${JSON.stringify(expected)} but got ${JSON.stringify(actual)}.`,
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
}
|
package/src/types/segments.ts
CHANGED
|
@@ -14,11 +14,12 @@ export type ViewTransitionClass = Record<string, string> | string;
|
|
|
14
14
|
*
|
|
15
15
|
* It mirrors the {@link ShouldRevalidateFn} args a `revalidate()` predicate
|
|
16
16
|
* gets — the same navigation/action metadata — so the two read the same shape,
|
|
17
|
-
* plus `get`/`env` for
|
|
17
|
+
* plus `get`/`env` for request-context reads. There is no full `HandlerContext`
|
|
18
18
|
* here: the gate runs at the RSC-payload layer with the request context, not a
|
|
19
19
|
* handler context, so handler-only sugar (`search`/`build`/`dev`/`headers`) is
|
|
20
|
-
* absent by design. `get`
|
|
21
|
-
* via `ctx.set(...)`
|
|
20
|
+
* absent by design. On ordinary routes, `get` can read what handlers or
|
|
21
|
+
* middleware set via `ctx.set(...)`. On `ppr` routes the gate runs before route
|
|
22
|
+
* handlers, so only middleware-established values are available.
|
|
22
23
|
*
|
|
23
24
|
* Field availability (all source fields are optional — never fabricated):
|
|
24
25
|
* - `currentUrl` / `currentParams` / `fromRouteName` (the navigation SOURCE) are
|
|
@@ -43,11 +44,12 @@ export type ViewTransitionClass = Record<string, string> | string;
|
|
|
43
44
|
* time, so `currentUrl`/`currentParams`/`fromRouteName` reflect the page the
|
|
44
45
|
* prefetch fired from, NOT necessarily the page the user actually navigates from
|
|
45
46
|
* — the decision is baked into the stored Flight payload and replayed verbatim.
|
|
46
|
-
* A `cache()`/prerender hit replays the stored transition with the
|
|
47
|
-
* re-run
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
47
|
+
* A non-PPR `cache()`/prerender hit replays the stored transition with the
|
|
48
|
+
* predicate NOT re-run. A `ppr` route instead evaluates the predicate before
|
|
49
|
+
* handlers on every match, including cache, prerender, and PPR replay. Prefetch
|
|
50
|
+
* still freezes the server decision into its Flight payload. If the gate must
|
|
51
|
+
* reflect the exact click-time source, source-scope the prefetch
|
|
52
|
+
* (`<Link prefetchKey=":source">`).
|
|
51
53
|
*/
|
|
52
54
|
export type TransitionWhenContext<
|
|
53
55
|
TParams = Record<string, string>,
|
|
@@ -74,17 +76,19 @@ export type TransitionWhenContext<
|
|
|
74
76
|
/**
|
|
75
77
|
* Predicate that gates whether a transition() applies for the current request.
|
|
76
78
|
*
|
|
77
|
-
* Evaluated server-side
|
|
78
|
-
* handler
|
|
79
|
-
*
|
|
79
|
+
* Evaluated server-side outside any cache scope. On ordinary routes it runs
|
|
80
|
+
* AFTER the route's handler, so `get(...)` can read handler/middleware state. A
|
|
81
|
+
* route with `ppr` automatically hoists it before route handlers and reevaluates
|
|
82
|
+
* it on every cache/prerender/PPR replay; there `get(...)` can read middleware
|
|
83
|
+
* state, but not values set by route handlers. Return false to drop this
|
|
84
|
+
* segment's transition for the request; return true to apply it. The
|
|
80
85
|
* context ({@link TransitionWhenContext}) carries the same navigation/action
|
|
81
86
|
* metadata a `revalidate()` predicate sees plus `get`/`env`. If it throws, the
|
|
82
87
|
* error is reported to the router's onError (phase "rendering") and the
|
|
83
88
|
* transition is dropped (the navigation does not hold).
|
|
84
89
|
*
|
|
85
90
|
* Distinct from intercept()'s `when` config selector, which runs at MATCH time
|
|
86
|
-
* over `{ from, to, params, segments, … }
|
|
87
|
-
* post-handler over the resolved payload.
|
|
91
|
+
* over `{ from, to, params, segments, … }`.
|
|
88
92
|
*
|
|
89
93
|
* Scope: dropping a transition removes only THIS segment's contribution to the
|
|
90
94
|
* navigation's hold. The startTransition hold is navigation-wide — it engages if
|
|
@@ -92,10 +96,10 @@ export type TransitionWhenContext<
|
|
|
92
96
|
* navigation stream its loading fallback only when no other matched segment
|
|
93
97
|
* keeps a transition (the common case: a single transition on the route).
|
|
94
98
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* {@link TransitionWhenContext}.
|
|
99
|
+
* On non-PPR routes it runs only during fresh resolution. On PPR routes it runs
|
|
100
|
+
* before handlers for every match, including runtime cache, build-time
|
|
101
|
+
* prerender, and PPR segment replay. A prefetched navigation still freezes the
|
|
102
|
+
* result to prefetch time; see {@link TransitionWhenContext}.
|
|
99
103
|
*/
|
|
100
104
|
export type TransitionWhenFn = (ctx: TransitionWhenContext) => boolean;
|
|
101
105
|
|
|
@@ -129,11 +133,12 @@ export interface TransitionConfig {
|
|
|
129
133
|
viewTransition?: "auto" | false;
|
|
130
134
|
/**
|
|
131
135
|
* Optional server-side predicate that gates this transition per request. When
|
|
132
|
-
* present and it returns false
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
136
|
+
* present and it returns false, the router drops this segment's transition for
|
|
137
|
+
* the request, so the navigation streams its loading fallback instead of
|
|
138
|
+
* holding. PPR routes evaluate it before route handlers and on every replay;
|
|
139
|
+
* other routes evaluate it after handlers on fresh resolution. The predicate
|
|
140
|
+
* is server-only and never serialized to the client; only its resolved effect
|
|
141
|
+
* crosses. See {@link TransitionWhenFn}.
|
|
137
142
|
*/
|
|
138
143
|
when?: TransitionWhenFn;
|
|
139
144
|
}
|
|
@@ -394,9 +394,10 @@ export type PathHelpers<TEnv> = {
|
|
|
394
394
|
* transition cannot fire without a startTransition. See
|
|
395
395
|
* skills/view-transitions for the startTransition x ViewTransition matrix.
|
|
396
396
|
*
|
|
397
|
-
* Pass `when: (ctx) => boolean` to gate the transition per request
|
|
398
|
-
*
|
|
399
|
-
*
|
|
397
|
+
* Pass `when: (ctx) => boolean` to gate the transition per request. It normally
|
|
398
|
+
* runs after the route handler; `ppr` routes automatically run it before route
|
|
399
|
+
* handlers and on every replay, where `ctx.get(...)` sees middleware state but
|
|
400
|
+
* not handler-set values.
|
|
400
401
|
*/
|
|
401
402
|
transition: {
|
|
402
403
|
(): TransitionItem;
|