@rangojs/router 0.0.0-experimental.35 → 0.0.0-experimental.358c376d
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/AGENTS.md +11 -3
- package/README.md +320 -735
- package/dist/bin/rango.js +983 -241
- package/dist/testing/vitest.js +82 -0
- package/dist/types/__internal.d.ts +127 -0
- package/dist/types/bin/rango.d.ts +1 -0
- package/dist/types/browser/action-coordinator.d.ts +57 -0
- package/dist/types/browser/action-fence.d.ts +33 -0
- package/dist/types/browser/app-shell.d.ts +34 -0
- package/dist/types/browser/app-version.d.ts +6 -0
- package/dist/types/browser/connection-warmup.d.ts +31 -0
- package/dist/types/browser/cookie-name.d.ts +66 -0
- package/dist/types/browser/dev-discovery.d.ts +11 -0
- package/dist/types/browser/event-controller.d.ts +231 -0
- package/dist/types/browser/history-state.d.ts +26 -0
- package/dist/types/browser/index.d.ts +1 -0
- package/dist/types/browser/intercept-utils.d.ts +30 -0
- package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
- package/dist/types/browser/link-interceptor.d.ts +53 -0
- package/dist/types/browser/logging.d.ts +33 -0
- package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
- package/dist/types/browser/navigation-bridge.d.ts +39 -0
- package/dist/types/browser/navigation-client.d.ts +17 -0
- package/dist/types/browser/navigation-store-handle.d.ts +25 -0
- package/dist/types/browser/navigation-store.d.ts +85 -0
- package/dist/types/browser/navigation-transaction.d.ts +75 -0
- package/dist/types/browser/network-error-handler.d.ts +35 -0
- package/dist/types/browser/notify-listeners.d.ts +2 -0
- package/dist/types/browser/partial-update.d.ts +61 -0
- package/dist/types/browser/prefetch/cache.d.ts +224 -0
- package/dist/types/browser/prefetch/default-strategy.d.ts +31 -0
- package/dist/types/browser/prefetch/fetch.d.ts +52 -0
- package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
- package/dist/types/browser/prefetch/loader.d.ts +12 -0
- package/dist/types/browser/prefetch/observer.d.ts +24 -0
- package/dist/types/browser/prefetch/policy.d.ts +13 -0
- package/dist/types/browser/prefetch/queue.d.ts +48 -0
- package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
- package/dist/types/browser/prefetch/runtime.d.ts +2 -0
- package/dist/types/browser/rango-state.d.ts +56 -0
- package/dist/types/browser/react/Link.d.ts +132 -0
- package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
- package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
- package/dist/types/browser/react/context.d.ts +57 -0
- package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
- package/dist/types/browser/react/index.d.ts +1 -0
- package/dist/types/browser/react/location-state-shared.d.ts +162 -0
- package/dist/types/browser/react/location-state.d.ts +29 -0
- package/dist/types/browser/react/mount-context.d.ts +23 -0
- package/dist/types/browser/react/nonce-context.d.ts +14 -0
- package/dist/types/browser/react/shallow-equal.d.ts +5 -0
- package/dist/types/browser/react/use-action.d.ts +61 -0
- package/dist/types/browser/react/use-handle.d.ts +21 -0
- package/dist/types/browser/react/use-href.d.ts +32 -0
- package/dist/types/browser/react/use-link-status.d.ts +36 -0
- package/dist/types/browser/react/use-mount.d.ts +24 -0
- package/dist/types/browser/react/use-navigation.d.ts +15 -0
- package/dist/types/browser/react/use-params.d.ts +21 -0
- package/dist/types/browser/react/use-pathname.d.ts +13 -0
- package/dist/types/browser/react/use-reverse.d.ts +40 -0
- package/dist/types/browser/react/use-router.d.ts +23 -0
- package/dist/types/browser/react/use-search-params.d.ts +19 -0
- package/dist/types/browser/react/use-segments.d.ts +29 -0
- package/dist/types/browser/response-adapter.d.ts +58 -0
- package/dist/types/browser/rsc-router.d.ts +146 -0
- package/dist/types/browser/scroll-restoration.d.ts +103 -0
- package/dist/types/browser/segment-reconciler.d.ts +74 -0
- package/dist/types/browser/segment-structure-assert.d.ts +16 -0
- package/dist/types/browser/server-action-bridge.d.ts +29 -0
- package/dist/types/browser/types.d.ts +546 -0
- package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
- package/dist/types/build/collect-fallback-refs.d.ts +5 -0
- package/dist/types/build/generate-manifest.d.ts +106 -0
- package/dist/types/build/generate-route-types.d.ts +8 -0
- package/dist/types/build/index.d.ts +21 -0
- package/dist/types/build/merge-full-manifests.d.ts +3 -0
- package/dist/types/build/prefix-tree-utils.d.ts +56 -0
- package/dist/types/build/route-trie.d.ts +20 -0
- package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
- package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
- package/dist/types/build/route-types/codegen.d.ts +16 -0
- package/dist/types/build/route-types/include-resolution.d.ts +74 -0
- package/dist/types/build/route-types/param-extraction.d.ts +13 -0
- package/dist/types/build/route-types/per-module-writer.d.ts +20 -0
- package/dist/types/build/route-types/router-processing.d.ts +81 -0
- package/dist/types/build/route-types/scan-filter.d.ts +17 -0
- package/dist/types/build/route-types/source-scan.d.ts +13 -0
- package/dist/types/build/runtime-discovery.d.ts +24 -0
- package/dist/types/cache/background-task.d.ts +21 -0
- package/dist/types/cache/cache-error.d.ts +71 -0
- package/dist/types/cache/cache-exec-scope.d.ts +31 -0
- package/dist/types/cache/cache-key-utils.d.ts +43 -0
- package/dist/types/cache/cache-policy.d.ts +59 -0
- package/dist/types/cache/cache-runtime.d.ts +51 -0
- package/dist/types/cache/cache-scope.d.ts +215 -0
- package/dist/types/cache/cache-tag.d.ts +79 -0
- package/dist/types/cache/cf/cf-base64.d.ts +4 -0
- package/dist/types/cache/cf/cf-cache-constants.d.ts +112 -0
- package/dist/types/cache/cf/cf-cache-store.d.ts +616 -0
- package/dist/types/cache/cf/cf-cache-types.d.ts +365 -0
- package/dist/types/cache/cf/cf-kv-utils.d.ts +43 -0
- package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
- package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
- package/dist/types/cache/cf/index.d.ts +4 -0
- package/dist/types/cache/document-cache.d.ts +71 -0
- package/dist/types/cache/handle-capture.d.ts +23 -0
- package/dist/types/cache/handle-snapshot.d.ts +39 -0
- package/dist/types/cache/index.d.ts +9 -0
- package/dist/types/cache/memory-segment-store.d.ts +163 -0
- package/dist/types/cache/profile-registry.d.ts +40 -0
- package/dist/types/cache/read-through-swr.d.ts +61 -0
- package/dist/types/cache/search-params-filter.d.ts +64 -0
- package/dist/types/cache/segment-codec.d.ts +78 -0
- package/dist/types/cache/shell-snapshot.d.ts +186 -0
- package/dist/types/cache/tag-invalidation.d.ts +74 -0
- package/dist/types/cache/taint.d.ts +77 -0
- package/dist/types/cache/types.d.ts +503 -0
- package/dist/types/cache/vercel/index.d.ts +1 -0
- package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
- 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 +191 -0
- package/dist/types/client.rsc.d.ts +41 -0
- package/dist/types/cloudflare/index.d.ts +7 -0
- package/dist/types/cloudflare/tracing.d.ts +57 -0
- package/dist/types/component-utils.d.ts +46 -0
- package/dist/types/components/DefaultDocument.d.ts +13 -0
- package/dist/types/context-var.d.ts +84 -0
- package/dist/types/debug.d.ts +57 -0
- package/dist/types/decode-loader-results.d.ts +42 -0
- package/dist/types/default-error-boundary.d.ts +10 -0
- package/dist/types/defer.d.ts +89 -0
- package/dist/types/deps/browser.d.ts +1 -0
- package/dist/types/deps/html-stream-client.d.ts +1 -0
- package/dist/types/deps/html-stream-server.d.ts +1 -0
- package/dist/types/deps/rsc.d.ts +1 -0
- package/dist/types/deps/ssr.d.ts +1 -0
- package/dist/types/dev-discovery-protocol.d.ts +5 -0
- package/dist/types/encode-kv.d.ts +35 -0
- package/dist/types/errors.d.ts +227 -0
- package/dist/types/escape-script.d.ts +44 -0
- package/dist/types/handle.d.ts +93 -0
- package/dist/types/handles/MetaTags.d.ts +17 -0
- package/dist/types/handles/Scripts.d.ts +38 -0
- package/dist/types/handles/breadcrumbs.d.ts +43 -0
- package/dist/types/handles/deferred-resolution.d.ts +53 -0
- package/dist/types/handles/is-thenable.d.ts +10 -0
- package/dist/types/handles/meta.d.ts +43 -0
- package/dist/types/handles/script.d.ts +139 -0
- package/dist/types/host/cookie-handler.d.ts +8 -0
- package/dist/types/host/errors.d.ts +40 -0
- package/dist/types/host/index.d.ts +33 -0
- package/dist/types/host/pattern-matcher.d.ts +30 -0
- package/dist/types/host/router.d.ts +12 -0
- package/dist/types/host/testing.d.ts +41 -0
- package/dist/types/host/types.d.ts +148 -0
- package/dist/types/host/utils.d.ts +20 -0
- package/dist/types/href-client.d.ts +214 -0
- package/dist/types/index.d.ts +113 -0
- package/dist/types/index.rsc.d.ts +52 -0
- package/dist/types/internal-debug.d.ts +1 -0
- package/dist/types/loader-redirect.d.ts +18 -0
- package/dist/types/loader-store.d.ts +193 -0
- package/dist/types/loader.d.ts +18 -0
- package/dist/types/loader.rsc.d.ts +18 -0
- package/dist/types/missing-id-error.d.ts +1 -0
- package/dist/types/outlet-context.d.ts +24 -0
- package/dist/types/outlet-provider.d.ts +14 -0
- package/dist/types/prerender/build-shell-capture.d.ts +104 -0
- package/dist/types/prerender/param-hash.d.ts +6 -0
- package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
- package/dist/types/prerender/store.d.ts +63 -0
- package/dist/types/prerender.d.ts +292 -0
- package/dist/types/redirect-origin.d.ts +67 -0
- package/dist/types/regex-escape.d.ts +6 -0
- package/dist/types/render-error-thrower.d.ts +13 -0
- package/dist/types/response-utils.d.ts +35 -0
- package/dist/types/reverse.d.ts +206 -0
- package/dist/types/root-error-boundary.d.ts +32 -0
- package/dist/types/route-content-wrapper.d.ts +81 -0
- package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
- package/dist/types/route-definition/helper-factories.d.ts +22 -0
- package/dist/types/route-definition/helpers-types.d.ts +404 -0
- package/dist/types/route-definition/index.d.ts +7 -0
- package/dist/types/route-definition/redirect.d.ts +48 -0
- package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
- package/dist/types/route-definition/use-item-types.d.ts +1 -0
- package/dist/types/route-definition.d.ts +1 -0
- package/dist/types/route-map-builder.d.ts +102 -0
- package/dist/types/route-name.d.ts +27 -0
- package/dist/types/route-types.d.ts +172 -0
- package/dist/types/router/basename.d.ts +10 -0
- package/dist/types/router/content-negotiation.d.ts +91 -0
- package/dist/types/router/debug-manifest.d.ts +7 -0
- package/dist/types/router/error-handling.d.ts +110 -0
- package/dist/types/router/find-match.d.ts +19 -0
- package/dist/types/router/handler-context.d.ts +41 -0
- package/dist/types/router/instrument.d.ts +191 -0
- package/dist/types/router/intercept-resolution.d.ts +91 -0
- package/dist/types/router/lazy-includes.d.ts +26 -0
- package/dist/types/router/loader-resolution.d.ts +85 -0
- package/dist/types/router/logging.d.ts +41 -0
- package/dist/types/router/manifest.d.ts +8 -0
- package/dist/types/router/match-api.d.ts +19 -0
- package/dist/types/router/match-context.d.ts +184 -0
- package/dist/types/router/match-handlers.d.ts +48 -0
- package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
- package/dist/types/router/match-middleware/cache-lookup.d.ts +126 -0
- package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
- package/dist/types/router/match-middleware/index.d.ts +80 -0
- package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
- package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
- package/dist/types/router/match-pipelines.d.ts +103 -0
- package/dist/types/router/match-result.d.ts +114 -0
- package/dist/types/router/metrics.d.ts +6 -0
- package/dist/types/router/middleware-types.d.ts +74 -0
- package/dist/types/router/middleware.d.ts +116 -0
- package/dist/types/router/navigation-snapshot.d.ts +51 -0
- package/dist/types/router/params-util.d.ts +8 -0
- package/dist/types/router/parse-pattern.d.ts +38 -0
- package/dist/types/router/pattern-matching.d.ts +169 -0
- package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
- package/dist/types/router/prefetch-default.d.ts +28 -0
- package/dist/types/router/prefetch-limits.d.ts +20 -0
- package/dist/types/router/prerender-match.d.ts +53 -0
- package/dist/types/router/preview-match.d.ts +22 -0
- package/dist/types/router/request-classification.d.ts +104 -0
- package/dist/types/router/revalidation.d.ts +64 -0
- package/dist/types/router/route-snapshot.d.ts +112 -0
- package/dist/types/router/route-trie-builder.d.ts +77 -0
- package/dist/types/router/router-context.d.ts +137 -0
- package/dist/types/router/router-interfaces.d.ts +461 -0
- package/dist/types/router/router-options.d.ts +792 -0
- package/dist/types/router/router-registry.d.ts +15 -0
- package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
- package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
- package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
- package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
- package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
- package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
- package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
- package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
- package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
- package/dist/types/router/segment-resolution/view-transition-default.d.ts +27 -0
- package/dist/types/router/segment-resolution.d.ts +3 -0
- package/dist/types/router/segment-wrappers.d.ts +53 -0
- package/dist/types/router/state-cookie-name.d.ts +1 -0
- package/dist/types/router/substitute-pattern-params.d.ts +23 -0
- package/dist/types/router/telemetry-otel.d.ts +113 -0
- package/dist/types/router/telemetry.d.ts +216 -0
- package/dist/types/router/timeout.d.ts +107 -0
- package/dist/types/router/tracing.d.ts +139 -0
- package/dist/types/router/transition-when.d.ts +13 -0
- package/dist/types/router/trie-matching.d.ts +32 -0
- package/dist/types/router/types.d.ts +98 -0
- package/dist/types/router/url-params.d.ts +26 -0
- package/dist/types/router.d.ts +7 -0
- package/dist/types/rsc/capture-queue.d.ts +49 -0
- package/dist/types/rsc/full-payload.d.ts +22 -0
- package/dist/types/rsc/handler-context.d.ts +32 -0
- package/dist/types/rsc/handler.d.ts +9 -0
- package/dist/types/rsc/helpers.d.ts +127 -0
- package/dist/types/rsc/index.d.ts +17 -0
- package/dist/types/rsc/json-route-result.d.ts +20 -0
- package/dist/types/rsc/loader-fetch.d.ts +14 -0
- package/dist/types/rsc/manifest-init.d.ts +18 -0
- package/dist/types/rsc/nonce.d.ts +28 -0
- package/dist/types/rsc/origin-guard.d.ts +50 -0
- package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
- package/dist/types/rsc/redirect-guard.d.ts +37 -0
- package/dist/types/rsc/render-pipeline.d.ts +148 -0
- package/dist/types/rsc/response-cache-serve.d.ts +46 -0
- package/dist/types/rsc/response-error.d.ts +19 -0
- package/dist/types/rsc/response-route-handler.d.ts +29 -0
- package/dist/types/rsc/routine-plan.d.ts +124 -0
- package/dist/types/rsc/rsc-rendering.d.ts +18 -0
- package/dist/types/rsc/runtime-warnings.d.ts +22 -0
- package/dist/types/rsc/server-action.d.ts +68 -0
- package/dist/types/rsc/shell-build-manifest.d.ts +90 -0
- package/dist/types/rsc/shell-capture-constants.d.ts +44 -0
- package/dist/types/rsc/shell-capture.d.ts +406 -0
- package/dist/types/rsc/shell-serve.d.ts +189 -0
- package/dist/types/rsc/ssr-setup.d.ts +73 -0
- package/dist/types/rsc/stream-idle.d.ts +60 -0
- package/dist/types/rsc/transition-gate.d.ts +23 -0
- package/dist/types/rsc/types.d.ts +328 -0
- package/dist/types/runtime-env.d.ts +1 -0
- package/dist/types/search-params.d.ts +125 -0
- package/dist/types/segment-content-promise.d.ts +13 -0
- package/dist/types/segment-fragments.d.ts +79 -0
- package/dist/types/segment-loader-promise.d.ts +22 -0
- package/dist/types/segment-system.d.ts +86 -0
- package/dist/types/serialize.d.ts +164 -0
- package/dist/types/server/context.d.ts +520 -0
- package/dist/types/server/cookie-parse.d.ts +10 -0
- package/dist/types/server/cookie-store.d.ts +107 -0
- package/dist/types/server/fetchable-loader-store.d.ts +20 -0
- package/dist/types/server/handle-store.d.ts +131 -0
- package/dist/types/server/loader-registry.d.ts +32 -0
- package/dist/types/server/request-context.d.ts +717 -0
- package/dist/types/server/root-layout.d.ts +3 -0
- package/dist/types/server.d.ts +16 -0
- package/dist/types/ssr/index.d.ts +233 -0
- package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
- package/dist/types/ssr/preinit-client-references.d.ts +71 -0
- package/dist/types/ssr/ssr-root.d.ts +69 -0
- package/dist/types/static-handler.d.ts +71 -0
- package/dist/types/testing/cache-status.d.ts +63 -0
- package/dist/types/testing/collect-handle.d.ts +20 -0
- package/dist/types/testing/dispatch.d.ts +127 -0
- package/dist/types/testing/dom.entry.d.ts +15 -0
- package/dist/types/testing/e2e/fixture.d.ts +37 -0
- package/dist/types/testing/e2e/index.d.ts +31 -0
- package/dist/types/testing/e2e/matchers.d.ts +17 -0
- package/dist/types/testing/e2e/page-helpers.d.ts +86 -0
- package/dist/types/testing/e2e/parity.d.ts +111 -0
- package/dist/types/testing/e2e/server.d.ts +35 -0
- package/dist/types/testing/flight-matchers.d.ts +55 -0
- package/dist/types/testing/flight-normalize.d.ts +1 -0
- package/dist/types/testing/flight-tree.d.ts +192 -0
- package/dist/types/testing/flight.d.ts +115 -0
- package/dist/types/testing/flight.entry.d.ts +27 -0
- package/dist/types/testing/generated-routes.d.ts +66 -0
- package/dist/types/testing/index.d.ts +54 -0
- package/dist/types/testing/internal/context.d.ts +225 -0
- package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
- package/dist/types/testing/internal/seed-vars.d.ts +30 -0
- package/dist/types/testing/render-handler.d.ts +160 -0
- package/dist/types/testing/render-route.d.ts +265 -0
- package/dist/types/testing/run-loader.d.ts +195 -0
- package/dist/types/testing/run-middleware.d.ts +132 -0
- package/dist/types/testing/run-transition-when.d.ts +78 -0
- package/dist/types/testing/shell-status.d.ts +81 -0
- package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
- package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
- package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
- package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
- package/dist/types/testing/vitest.d.ts +205 -0
- package/dist/types/theme/ThemeProvider.d.ts +13 -0
- package/dist/types/theme/ThemeScript.d.ts +45 -0
- package/dist/types/theme/constants.d.ts +39 -0
- package/dist/types/theme/index.d.ts +29 -0
- package/dist/types/theme/theme-context.d.ts +21 -0
- package/dist/types/theme/theme-script.d.ts +26 -0
- package/dist/types/theme/types.d.ts +162 -0
- package/dist/types/theme/use-theme.d.ts +8 -0
- package/dist/types/types/boundaries.d.ts +110 -0
- package/dist/types/types/cache-types.d.ts +191 -0
- package/dist/types/types/error-types.d.ts +114 -0
- package/dist/types/types/global-namespace.d.ts +90 -0
- package/dist/types/types/handler-context.d.ts +658 -0
- package/dist/types/types/index.d.ts +11 -0
- package/dist/types/types/loader-types.d.ts +234 -0
- package/dist/types/types/request-scope.d.ts +93 -0
- package/dist/types/types/route-config.d.ts +105 -0
- package/dist/types/types/route-entry.d.ts +98 -0
- package/dist/types/types/segments.d.ts +246 -0
- package/dist/types/types.d.ts +1 -0
- package/dist/types/urls/include-helper.d.ts +17 -0
- package/dist/types/urls/include-provider.d.ts +27 -0
- package/dist/types/urls/index.d.ts +6 -0
- package/dist/types/urls/path-helper-types.d.ts +203 -0
- package/dist/types/urls/path-helper.d.ts +12 -0
- package/dist/types/urls/pattern-types.d.ts +166 -0
- package/dist/types/urls/response-types.d.ts +67 -0
- package/dist/types/urls/type-extraction.d.ts +157 -0
- package/dist/types/urls/urls-function.d.ts +24 -0
- package/dist/types/urls.d.ts +1 -0
- package/dist/types/use-loader.d.ts +150 -0
- package/dist/types/vercel/index.d.ts +10 -0
- package/dist/types/vercel/tracing.d.ts +71 -0
- package/dist/types/vite/debug.d.ts +80 -0
- package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
- package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
- package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
- package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
- package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
- package/dist/types/vite/discovery/gate-state.d.ts +79 -0
- package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
- package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
- package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
- package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
- package/dist/types/vite/discovery/state.d.ts +170 -0
- package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
- package/dist/types/vite/encryption-key.d.ts +2 -0
- package/dist/types/vite/index.d.ts +11 -0
- package/dist/types/vite/inject-client-debug.d.ts +56 -0
- package/dist/types/vite/plugin-types.d.ts +298 -0
- package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
- package/dist/types/vite/plugins/client-ref-dedup.d.ts +40 -0
- package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
- package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
- package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
- package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
- package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
- package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
- package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
- package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
- package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
- package/dist/types/vite/plugins/expose-internal-ids.d.ts +16 -0
- package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
- package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -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/plugins/use-cache-transform.d.ts +20 -0
- package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
- package/dist/types/vite/plugins/version-injector.d.ts +21 -0
- package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
- package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
- package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
- package/dist/types/vite/rango.d.ts +29 -0
- package/dist/types/vite/router-discovery.d.ts +23 -0
- package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
- package/dist/types/vite/utils/banner.d.ts +2 -0
- package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
- package/dist/types/vite/utils/client-chunks.d.ts +55 -0
- package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
- package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
- package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
- package/dist/types/vite/utils/package-resolution.d.ts +6 -0
- package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
- package/dist/types/vite/utils/shared-utils.d.ts +67 -0
- 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 +10725 -3898
- package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/package.json +129 -46
- package/skills/api-client/SKILL.md +211 -0
- package/skills/breadcrumbs/SKILL.md +117 -8
- package/skills/bundle-analysis/SKILL.md +159 -0
- package/skills/cache-guide/SKILL.md +255 -25
- package/skills/caching/SKILL.md +414 -17
- package/skills/catalog.json +289 -0
- package/skills/client-urls/SKILL.md +307 -0
- package/skills/cloudflare/SKILL.md +151 -0
- package/skills/cloudflare/agents/openai.yaml +4 -0
- package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
- package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
- package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
- package/skills/comparison/SKILL.md +50 -0
- package/skills/comparison/agents/openai.yaml +4 -0
- package/skills/comparison/references/framework-comparison.md +858 -0
- package/skills/composability/SKILL.md +124 -4
- package/skills/css/SKILL.md +76 -0
- package/skills/debug-manifest/SKILL.md +5 -11
- package/skills/defer-hydration/SKILL.md +235 -0
- package/skills/deployment-caching/SKILL.md +176 -0
- package/skills/document-cache/SKILL.md +116 -58
- package/skills/fonts/SKILL.md +1 -1
- package/skills/handler-use/SKILL.md +364 -0
- package/skills/hooks/SKILL.md +73 -691
- package/skills/hooks/data.md +282 -0
- package/skills/hooks/handle-and-actions.md +110 -0
- package/skills/hooks/navigation.md +110 -0
- package/skills/hooks/outlets.md +62 -0
- package/skills/hooks/state.md +228 -0
- package/skills/hooks/urls.md +135 -0
- package/skills/host-router/SKILL.md +129 -27
- package/skills/i18n/SKILL.md +276 -0
- package/skills/intercept/SKILL.md +94 -18
- package/skills/layout/SKILL.md +62 -19
- package/skills/links/SKILL.md +285 -17
- package/skills/loader/SKILL.md +415 -55
- package/skills/middleware/SKILL.md +92 -16
- package/skills/migrate-nextjs/SKILL.md +852 -0
- package/skills/migrate-nextjs/backend-host-swap.md +120 -0
- package/skills/migrate-react-router/SKILL.md +189 -0
- package/skills/migrate-react-router/component-migration.md +201 -0
- package/skills/migrate-react-router/data-and-actions.md +236 -0
- package/skills/migrate-react-router/route-mapping.md +284 -0
- package/skills/mime-routes/SKILL.md +55 -18
- package/skills/observability/SKILL.md +231 -0
- package/skills/parallel/SKILL.md +245 -10
- package/skills/ppr/SKILL.md +914 -0
- package/skills/prerender/SKILL.md +243 -135
- package/skills/rango/SKILL.md +325 -24
- package/skills/react-compiler/SKILL.md +168 -0
- package/skills/response-routes/SKILL.md +180 -52
- package/skills/route/SKILL.md +181 -9
- package/skills/router-setup/SKILL.md +154 -11
- package/skills/scripts/SKILL.md +189 -0
- package/skills/server-actions/SKILL.md +776 -0
- package/skills/shell-manifest/SKILL.md +194 -0
- package/skills/streams-and-websockets/SKILL.md +283 -0
- package/skills/tailwind/SKILL.md +28 -4
- package/skills/testing/SKILL.md +131 -0
- package/skills/testing/bindings.md +103 -0
- package/skills/testing/cache-prerender.md +172 -0
- package/skills/testing/client-components.md +131 -0
- package/skills/testing/e2e-parity.md +125 -0
- package/skills/testing/flight.md +91 -0
- package/skills/testing/handles.md +153 -0
- package/skills/testing/loader.md +130 -0
- package/skills/testing/middleware.md +99 -0
- package/skills/testing/render-handler.md +122 -0
- package/skills/testing/response-routes.md +95 -0
- package/skills/testing/reverse-and-types.md +85 -0
- package/skills/testing/server-actions.md +107 -0
- package/skills/testing/server-tree.md +128 -0
- package/skills/testing/setup.md +123 -0
- package/skills/theme/SKILL.md +9 -6
- package/skills/typesafety/SKILL.md +45 -616
- package/skills/typesafety/env-and-bindings.md +254 -0
- package/skills/typesafety/generated-files-and-cli.md +342 -0
- package/skills/typesafety/params-and-search.md +153 -0
- package/skills/typesafety/route-types.md +213 -0
- package/skills/use-cache/SKILL.md +121 -15
- package/skills/vercel/SKILL.md +149 -0
- package/skills/view-transitions/SKILL.md +341 -0
- package/src/__augment-tests__/augment.ts +81 -0
- package/src/__augment-tests__/augmented.check.ts +116 -0
- package/src/__internal.ts +1 -66
- package/src/browser/action-coordinator.ts +53 -36
- package/src/browser/action-fence.ts +47 -0
- package/src/browser/app-shell.ts +39 -0
- package/src/browser/app-version.ts +14 -0
- package/src/browser/connection-warmup.ts +134 -0
- package/src/browser/cookie-name.ts +140 -0
- package/src/browser/dev-discovery.ts +66 -0
- package/src/browser/event-controller.ts +405 -168
- package/src/browser/history-state.ts +21 -0
- package/src/browser/index.ts +3 -3
- package/src/browser/invalidate-client-cache.ts +52 -0
- package/src/browser/link-interceptor.ts +469 -20
- package/src/browser/logging.ts +28 -0
- package/src/browser/merge-segment-loaders.ts +6 -4
- package/src/browser/navigation-bridge.ts +209 -40
- package/src/browser/navigation-client.ts +284 -73
- package/src/browser/navigation-store-handle.ts +38 -0
- package/src/browser/navigation-store.ts +208 -329
- package/src/browser/navigation-transaction.ts +18 -66
- package/src/browser/network-error-handler.ts +34 -7
- package/src/browser/notify-listeners.ts +22 -0
- package/src/browser/partial-update.ts +278 -126
- package/src/browser/prefetch/cache.ts +362 -51
- package/src/browser/prefetch/default-strategy.ts +74 -0
- package/src/browser/prefetch/fetch.ts +453 -40
- package/src/browser/prefetch/invalidation.ts +30 -0
- package/src/browser/prefetch/loader.ts +111 -0
- package/src/browser/prefetch/observer.ts +50 -22
- package/src/browser/prefetch/policy.ts +6 -0
- package/src/browser/prefetch/queue.ts +144 -23
- package/src/browser/prefetch/resource-ready.ts +77 -0
- package/src/browser/prefetch/runtime.ts +6 -0
- package/src/browser/rango-state.ts +178 -75
- package/src/browser/react/Link.tsx +187 -75
- package/src/browser/react/NavigationProvider.tsx +249 -123
- package/src/browser/react/ScrollRestoration.tsx +10 -6
- package/src/browser/react/context.ts +11 -2
- package/src/browser/react/filter-segment-order.ts +66 -7
- package/src/browser/react/index.ts +0 -48
- package/src/browser/react/location-state-shared.ts +178 -8
- package/src/browser/react/location-state.ts +39 -14
- package/src/browser/react/use-action.ts +6 -15
- package/src/browser/react/use-handle.ts +23 -69
- package/src/browser/react/use-href.tsx +8 -1
- package/src/browser/react/use-link-status.ts +33 -8
- package/src/browser/react/use-navigation.ts +32 -7
- package/src/browser/react/use-params.ts +20 -10
- package/src/browser/react/use-reverse.ts +106 -0
- package/src/browser/react/use-router.ts +47 -12
- package/src/browser/react/use-search-params.ts +0 -5
- package/src/browser/react/use-segments.ts +11 -21
- package/src/browser/response-adapter.ts +99 -8
- package/src/browser/rsc-router.tsx +375 -84
- package/src/browser/scroll-restoration.ts +61 -47
- package/src/browser/segment-reconciler.ts +44 -7
- package/src/browser/segment-structure-assert.ts +2 -2
- package/src/browser/server-action-bridge.ts +270 -71
- package/src/browser/types.ts +166 -37
- package/src/browser/validate-redirect-origin.ts +43 -16
- package/src/build/collect-fallback-refs.ts +107 -0
- package/src/build/generate-manifest.ts +217 -188
- package/src/build/generate-route-types.ts +6 -1
- package/src/build/index.ts +11 -3
- package/src/build/merge-full-manifests.ts +161 -0
- package/src/build/prefix-tree-utils.ts +123 -0
- package/src/build/route-trie.ts +43 -254
- package/src/build/route-types/ast-route-extraction.ts +15 -8
- package/src/build/route-types/codegen.ts +16 -5
- package/src/build/route-types/include-resolution.ts +521 -65
- package/src/build/route-types/param-extraction.ts +6 -3
- package/src/build/route-types/per-module-writer.ts +33 -12
- package/src/build/route-types/router-processing.ts +411 -154
- package/src/build/route-types/scan-filter.ts +9 -2
- package/src/build/route-types/source-scan.ts +216 -0
- package/src/build/runtime-discovery.ts +32 -29
- package/src/cache/cache-error.ts +104 -0
- package/src/cache/cache-exec-scope.ts +47 -0
- package/src/cache/cache-key-utils.ts +73 -15
- package/src/cache/cache-policy.ts +108 -34
- package/src/cache/cache-runtime.ts +566 -117
- package/src/cache/cache-scope.ts +431 -112
- package/src/cache/cache-tag.ts +149 -0
- package/src/cache/cf/cf-base64.ts +33 -0
- package/src/cache/cf/cf-cache-constants.ts +134 -0
- package/src/cache/cf/cf-cache-store.ts +3250 -173
- package/src/cache/cf/cf-cache-types.ts +417 -0
- package/src/cache/cf/cf-kv-utils.ts +84 -0
- package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
- package/src/cache/cf/cf-zone-purge.ts +101 -0
- package/src/cache/cf/index.ts +16 -17
- package/src/cache/document-cache.ts +202 -61
- package/src/cache/handle-snapshot.ts +92 -1
- package/src/cache/index.ts +33 -20
- package/src/cache/memory-segment-store.ts +286 -37
- package/src/cache/profile-registry.ts +46 -31
- package/src/cache/read-through-swr.ts +66 -16
- package/src/cache/search-params-filter.ts +118 -0
- package/src/cache/segment-codec.ts +80 -25
- package/src/cache/shell-snapshot.ts +516 -0
- package/src/cache/tag-invalidation.ts +230 -0
- package/src/cache/taint.ts +83 -9
- package/src/cache/types.ts +323 -100
- package/src/cache/vercel/index.ts +11 -0
- package/src/cache/vercel/vercel-cache-store.ts +1264 -0
- package/src/client-urls/client-root.tsx +161 -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 +48 -21
- package/src/client.tsx +158 -294
- package/src/cloudflare/index.ts +11 -0
- package/src/cloudflare/tracing.ts +112 -0
- package/src/component-utils.ts +19 -0
- package/src/components/DefaultDocument.tsx +8 -2
- package/src/context-var.ts +84 -2
- package/src/debug.ts +2 -2
- package/src/decode-loader-results.ts +160 -0
- package/src/defer.ts +185 -0
- package/src/deps/ssr.ts +4 -2
- package/src/dev-discovery-protocol.ts +11 -0
- package/src/encode-kv.ts +49 -0
- package/src/errors.ts +44 -4
- package/src/escape-script.ts +52 -0
- package/src/handle.ts +104 -34
- package/src/handles/MetaTags.tsx +24 -53
- package/src/handles/Scripts.tsx +183 -0
- package/src/handles/breadcrumbs.ts +35 -8
- package/src/handles/deferred-resolution.ts +134 -0
- package/src/handles/is-thenable.ts +16 -0
- package/src/handles/meta.ts +14 -40
- package/src/handles/script.ts +244 -0
- package/src/host/cookie-handler.ts +9 -60
- package/src/host/errors.ts +13 -22
- package/src/host/index.ts +9 -2
- package/src/host/pattern-matcher.ts +23 -52
- package/src/host/router.ts +107 -99
- package/src/host/testing.ts +40 -27
- package/src/host/types.ts +37 -4
- package/src/host/utils.ts +1 -1
- package/src/href-client.ts +137 -22
- package/src/index.rsc.ts +111 -13
- package/src/index.ts +151 -19
- package/src/internal-debug.ts +11 -10
- package/src/loader-redirect.tsx +47 -0
- package/src/loader-store.ts +500 -0
- package/src/loader.rsc.ts +20 -13
- package/src/loader.ts +12 -11
- package/src/missing-id-error.ts +68 -0
- package/src/outlet-context.ts +13 -1
- package/src/outlet-provider.tsx +16 -6
- package/src/prerender/build-shell-capture.ts +453 -0
- package/src/prerender/param-hash.ts +16 -16
- package/src/prerender/shell-manifest-key.ts +20 -0
- package/src/prerender/store.ts +52 -42
- package/src/prerender.ts +215 -86
- package/src/redirect-origin.ts +143 -0
- package/src/regex-escape.ts +8 -0
- package/src/render-error-thrower.tsx +20 -0
- package/src/response-utils.ts +62 -0
- package/src/reverse.ts +65 -15
- package/src/root-error-boundary.tsx +1 -19
- package/src/route-content-wrapper.tsx +112 -78
- package/src/route-definition/dsl-helpers.ts +519 -307
- package/src/route-definition/helper-factories.ts +28 -140
- package/src/route-definition/helpers-types.ts +169 -78
- package/src/route-definition/index.ts +4 -2
- package/src/route-definition/redirect.ts +53 -12
- package/src/route-definition/resolve-handler-use.ts +160 -0
- package/src/route-definition/use-item-types.ts +29 -0
- package/src/route-map-builder.ts +102 -68
- package/src/route-types.ts +37 -46
- package/src/router/basename.ts +14 -0
- package/src/router/content-negotiation.ts +211 -22
- package/src/router/error-handling.ts +110 -29
- package/src/router/find-match.ts +130 -29
- package/src/router/handler-context.ts +105 -45
- package/src/router/instrument.ts +401 -0
- package/src/router/intercept-resolution.ts +108 -24
- package/src/router/lazy-includes.ts +90 -63
- package/src/router/loader-resolution.ts +529 -57
- package/src/router/logging.ts +5 -8
- package/src/router/manifest.ts +105 -56
- package/src/router/match-api.ts +190 -219
- package/src/router/match-context.ts +0 -22
- package/src/router/match-handlers.ts +268 -171
- package/src/router/match-middleware/background-revalidation.ts +66 -22
- package/src/router/match-middleware/cache-lookup.ts +368 -277
- package/src/router/match-middleware/cache-store.ts +175 -50
- package/src/router/match-middleware/intercept-resolution.ts +8 -28
- package/src/router/match-middleware/segment-resolution.ts +52 -18
- package/src/router/match-pipelines.ts +1 -42
- package/src/router/match-result.ts +135 -44
- package/src/router/metrics.ts +22 -36
- package/src/router/middleware-types.ts +26 -138
- package/src/router/middleware.ts +305 -177
- package/src/router/navigation-snapshot.ts +173 -0
- package/src/router/params-util.ts +23 -0
- package/src/router/parse-pattern.ts +115 -0
- package/src/router/pattern-matching.ts +181 -150
- package/src/router/prefetch-cache-ttl.ts +51 -0
- package/src/router/prefetch-default.ts +59 -0
- package/src/router/prefetch-limits.ts +37 -0
- package/src/router/prerender-match.ts +250 -60
- package/src/router/preview-match.ts +35 -103
- package/src/router/request-classification.ts +291 -0
- package/src/router/revalidation.ts +146 -83
- package/src/router/route-snapshot.ts +256 -0
- package/src/router/route-trie-builder.ts +334 -0
- package/src/router/router-context.ts +11 -29
- package/src/router/router-interfaces.ts +199 -37
- package/src/router/router-options.ts +271 -21
- package/src/router/router-registry.ts +2 -5
- package/src/router/segment-resolution/fresh.ts +367 -78
- package/src/router/segment-resolution/helpers.ts +116 -33
- package/src/router/segment-resolution/loader-cache.ts +188 -39
- package/src/router/segment-resolution/loader-mask.ts +60 -0
- package/src/router/segment-resolution/loader-snapshot.ts +259 -0
- package/src/router/segment-resolution/mask-nested.ts +99 -0
- package/src/router/segment-resolution/revalidation.ts +520 -385
- package/src/router/segment-resolution/static-store.ts +55 -15
- package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
- package/src/router/segment-resolution/view-transition-default.ts +60 -0
- package/src/router/segment-resolution.ts +5 -1
- package/src/router/segment-wrappers.ts +8 -5
- package/src/router/state-cookie-name.ts +33 -0
- package/src/router/substitute-pattern-params.ts +75 -0
- package/src/router/telemetry-otel.ts +171 -200
- package/src/router/telemetry.ts +106 -20
- package/src/router/timeout.ts +53 -22
- package/src/router/tracing.ts +235 -0
- package/src/router/transition-when.ts +76 -0
- package/src/router/trie-matching.ts +171 -59
- package/src/router/types.ts +10 -63
- package/src/router/url-params.ts +57 -0
- package/src/router.ts +301 -78
- package/src/rsc/capture-queue.ts +218 -0
- package/src/rsc/full-payload.ts +77 -0
- package/src/rsc/handler-context.ts +4 -2
- package/src/rsc/handler.ts +901 -519
- package/src/rsc/helpers.ts +245 -47
- package/src/rsc/index.ts +2 -5
- package/src/rsc/json-route-result.ts +38 -0
- package/src/rsc/loader-fetch.ts +129 -33
- package/src/rsc/manifest-init.ts +55 -52
- package/src/rsc/nonce.ts +10 -1
- package/src/rsc/origin-guard.ts +39 -25
- package/src/rsc/progressive-enhancement.ts +381 -74
- package/src/rsc/redirect-guard.ts +102 -0
- package/src/rsc/render-pipeline.ts +611 -0
- package/src/rsc/response-cache-serve.ts +259 -0
- package/src/rsc/response-error.ts +79 -12
- package/src/rsc/response-route-handler.ts +80 -206
- package/src/rsc/routine-plan.ts +359 -0
- package/src/rsc/rsc-rendering.ts +1625 -156
- package/src/rsc/runtime-warnings.ts +23 -10
- package/src/rsc/server-action.ts +424 -133
- package/src/rsc/shell-build-manifest.ts +336 -0
- package/src/rsc/shell-capture-constants.ts +45 -0
- package/src/rsc/shell-capture.ts +2063 -0
- package/src/rsc/shell-serve.ts +337 -0
- package/src/rsc/ssr-setup.ts +113 -18
- package/src/rsc/stream-idle.ts +137 -0
- package/src/rsc/transition-gate.ts +86 -0
- package/src/rsc/types.ts +100 -6
- package/src/runtime-env.ts +18 -0
- package/src/search-params.ts +35 -30
- package/src/segment-content-promise.ts +67 -0
- package/src/segment-fragments.ts +165 -0
- package/src/segment-loader-promise.ts +167 -0
- package/src/segment-system.tsx +507 -133
- package/src/serialize.ts +243 -0
- package/src/server/context.ts +581 -61
- package/src/server/cookie-parse.ts +32 -0
- package/src/server/cookie-store.ts +162 -15
- package/src/server/handle-store.ts +209 -70
- package/src/server/loader-registry.ts +38 -46
- package/src/server/request-context.ts +961 -186
- package/src/server.ts +7 -2
- package/src/ssr/index.tsx +631 -179
- package/src/ssr/inject-rsc-eager.ts +167 -0
- package/src/ssr/preinit-client-references.ts +106 -0
- package/src/ssr/ssr-root.tsx +262 -0
- package/src/static-handler.ts +45 -20
- package/src/testing/cache-status.ts +162 -0
- package/src/testing/collect-handle.ts +46 -0
- package/src/testing/dispatch.ts +951 -0
- package/src/testing/dom.entry.ts +22 -0
- package/src/testing/e2e/fixture.ts +188 -0
- package/src/testing/e2e/index.ts +147 -0
- package/src/testing/e2e/matchers.ts +35 -0
- package/src/testing/e2e/page-helpers.ts +319 -0
- package/src/testing/e2e/parity.ts +400 -0
- package/src/testing/e2e/server.ts +195 -0
- package/src/testing/flight-matchers.ts +97 -0
- package/src/testing/flight-normalize.ts +11 -0
- package/src/testing/flight-runtime.d.ts +57 -0
- package/src/testing/flight-tree.ts +682 -0
- package/src/testing/flight.entry.ts +52 -0
- package/src/testing/flight.ts +257 -0
- package/src/testing/generated-routes.ts +199 -0
- package/src/testing/index.ts +121 -0
- package/src/testing/internal/context.ts +380 -0
- package/src/testing/internal/flight-client-globals.ts +30 -0
- package/src/testing/internal/seed-vars.ts +54 -0
- package/src/testing/render-handler.ts +371 -0
- package/src/testing/render-route.tsx +667 -0
- package/src/testing/run-loader.ts +423 -0
- package/src/testing/run-middleware.ts +219 -0
- package/src/testing/run-transition-when.ts +197 -0
- package/src/testing/shell-status.ts +206 -0
- package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
- package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
- package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
- package/src/testing/vitest-stubs/version.ts +5 -0
- package/src/testing/vitest.ts +305 -0
- package/src/theme/ThemeProvider.tsx +56 -84
- package/src/theme/ThemeScript.tsx +7 -9
- package/src/theme/constants.ts +52 -13
- package/src/theme/index.ts +0 -7
- package/src/theme/theme-context.ts +1 -5
- package/src/theme/theme-script.ts +22 -21
- package/src/theme/use-theme.ts +0 -3
- package/src/types/boundaries.ts +15 -35
- package/src/types/cache-types.ts +17 -8
- package/src/types/error-types.ts +30 -90
- package/src/types/global-namespace.ts +54 -41
- package/src/types/handler-context.ts +244 -81
- package/src/types/index.ts +4 -10
- package/src/types/loader-types.ts +99 -15
- package/src/types/request-scope.ts +112 -0
- package/src/types/route-config.ts +20 -52
- package/src/types/route-entry.ts +22 -7
- package/src/types/segments.ts +149 -14
- package/src/urls/include-helper.ts +59 -75
- package/src/urls/include-provider.ts +71 -0
- package/src/urls/index.ts +2 -11
- package/src/urls/path-helper-types.ts +118 -26
- package/src/urls/path-helper.ts +70 -115
- package/src/urls/pattern-types.ts +113 -19
- package/src/urls/response-types.ts +25 -22
- package/src/urls/type-extraction.ts +98 -154
- package/src/urls/urls-function.ts +1 -19
- package/src/use-loader.tsx +404 -86
- package/src/vercel/index.ts +11 -0
- package/src/vercel/tracing.ts +89 -0
- package/src/vite/debug.ts +185 -0
- package/src/vite/discovery/bundle-postprocess.ts +46 -45
- package/src/vite/discovery/client-urls-projection.ts +322 -0
- package/src/vite/discovery/dev-prerender-cache.ts +117 -0
- package/src/vite/discovery/discover-routers.ts +178 -147
- package/src/vite/discovery/discovery-errors.ts +255 -0
- package/src/vite/discovery/gate-state.ts +171 -0
- package/src/vite/discovery/prerender-collection.ts +243 -134
- package/src/vite/discovery/route-types-writer.ts +40 -84
- package/src/vite/discovery/self-gen-tracking.ts +27 -1
- package/src/vite/discovery/shell-prerender-phase.ts +397 -0
- package/src/vite/discovery/state.ts +116 -11
- package/src/vite/discovery/virtual-module-codegen.ts +226 -87
- package/src/vite/encryption-key.ts +29 -0
- package/src/vite/index.ts +16 -0
- package/src/vite/inject-client-debug.ts +88 -0
- package/src/vite/plugin-types.ts +267 -62
- package/src/vite/plugins/cjs-to-esm.ts +16 -19
- package/src/vite/plugins/client-ref-dedup.ts +16 -11
- package/src/vite/plugins/client-ref-hashing.ts +28 -15
- package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
- package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
- package/src/vite/plugins/expose-action-id.ts +51 -100
- package/src/vite/plugins/expose-id-utils.ts +96 -51
- package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
- package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
- package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
- package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
- package/src/vite/plugins/expose-internal-ids.ts +599 -317
- package/src/vite/plugins/performance-tracks.ts +89 -0
- package/src/vite/plugins/refresh-cmd.ts +89 -27
- package/src/vite/plugins/server-ref-hashing.ts +74 -0
- package/src/vite/plugins/server-reference-pattern.ts +10 -0
- package/src/vite/plugins/use-cache-transform.ts +73 -83
- package/src/vite/plugins/vercel-output.ts +384 -0
- package/src/vite/plugins/version-injector.ts +39 -29
- package/src/vite/plugins/version-plugin.ts +54 -37
- package/src/vite/plugins/virtual-entries.ts +193 -30
- package/src/vite/rango.ts +403 -304
- package/src/vite/router-discovery.ts +1802 -187
- package/src/vite/utils/ast-handler-extract.ts +26 -35
- package/src/vite/utils/banner.ts +4 -4
- package/src/vite/utils/bundle-analysis.ts +10 -15
- package/src/vite/utils/client-chunks.ts +184 -0
- package/src/vite/utils/directive-prologue.ts +40 -0
- package/src/vite/utils/forward-user-plugins.ts +171 -0
- package/src/vite/utils/manifest-utils.ts +1 -59
- package/src/vite/utils/package-resolution.ts +21 -52
- package/src/vite/utils/prerender-utils.ts +123 -44
- package/src/vite/utils/shared-utils.ts +158 -44
- package/src/browser/action-response-classifier.ts +0 -99
- package/src/browser/react/use-client-cache.ts +0 -58
- package/src/browser/shallow.ts +0 -40
- package/src/handles/index.ts +0 -7
- package/src/network-error-thrower.tsx +0 -23
- package/src/router/middleware-cookies.ts +0 -55
package/src/router.ts
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
2
|
import { createCacheScope } from "./cache/cache-scope.js";
|
|
3
|
-
import {
|
|
4
|
-
setCacheProfiles,
|
|
5
|
-
resolveCacheProfiles,
|
|
6
|
-
} from "./cache/profile-registry.js";
|
|
3
|
+
import { resolveCacheProfiles } from "./cache/profile-registry.js";
|
|
7
4
|
import { isCachedFunction } from "./cache/taint.js";
|
|
8
5
|
import { assertClientComponent } from "./component-utils.js";
|
|
6
|
+
import {
|
|
7
|
+
isClientUrlPatterns,
|
|
8
|
+
isClientUrlReference,
|
|
9
|
+
} from "./client-urls/server-projection.js";
|
|
10
|
+
import type { ClientUrlPatterns } from "./client-urls/types.js";
|
|
9
11
|
import { DefaultDocument } from "./components/DefaultDocument.js";
|
|
10
12
|
import type { SerializedManifest } from "./debug.js";
|
|
13
|
+
import {
|
|
14
|
+
DEV_DISCOVERY_EPOCH_HEADER,
|
|
15
|
+
DEV_DISCOVERY_PROBE_HEADER,
|
|
16
|
+
isValidDevDiscoveryEpoch,
|
|
17
|
+
} from "./dev-discovery-protocol.js";
|
|
11
18
|
import { createReverse, type ReverseFunction } from "./reverse.js";
|
|
12
19
|
import {
|
|
13
20
|
registerRouteMap,
|
|
14
|
-
getPrecomputedEntries,
|
|
15
21
|
getRouterManifest,
|
|
16
22
|
getRouterPrecomputedEntries,
|
|
17
23
|
ensureRouterManifest,
|
|
@@ -19,11 +25,13 @@ import {
|
|
|
19
25
|
import MapRootLayout from "./server/root-layout.js";
|
|
20
26
|
import type { AllUseItems } from "./route-types.js";
|
|
21
27
|
import type { UrlPatterns } from "./urls.js";
|
|
28
|
+
import type { UrlBuilder } from "./urls/pattern-types.js";
|
|
29
|
+
import { urls } from "./urls.js";
|
|
30
|
+
import { buildPrecomputedByPrefix } from "./build/prefix-tree-utils.js";
|
|
22
31
|
import {
|
|
23
|
-
EntryData,
|
|
24
|
-
InterceptSelectorContext,
|
|
32
|
+
type EntryData,
|
|
25
33
|
getContext,
|
|
26
|
-
|
|
34
|
+
RangoContext,
|
|
27
35
|
type MetricsStore,
|
|
28
36
|
} from "./server/context";
|
|
29
37
|
import { createHandleStore, type HandleStore } from "./server/handle-store.js";
|
|
@@ -55,6 +63,7 @@ import { buildDebugManifest } from "./router/debug-manifest.js";
|
|
|
55
63
|
|
|
56
64
|
import type { SegmentResolutionDeps, MatchApiDeps } from "./router/types.js";
|
|
57
65
|
import { createHandlerContext } from "./router/handler-context.js";
|
|
66
|
+
import { normalizeBasename } from "./router/basename.js";
|
|
58
67
|
import {
|
|
59
68
|
setupLoaderAccess,
|
|
60
69
|
setupLoaderAccessSilent,
|
|
@@ -63,15 +72,17 @@ import {
|
|
|
63
72
|
import { loadManifest } from "./router/manifest.js";
|
|
64
73
|
import { createMetricsStore } from "./router/metrics.js";
|
|
65
74
|
import {
|
|
66
|
-
|
|
75
|
+
compileMiddlewarePattern,
|
|
67
76
|
type MiddlewareEntry,
|
|
68
77
|
type MiddlewareFn,
|
|
69
78
|
} from "./router/middleware.js";
|
|
70
79
|
import {
|
|
71
80
|
extractStaticPrefix,
|
|
81
|
+
joinPrefix,
|
|
72
82
|
traverseBack,
|
|
73
83
|
} from "./router/pattern-matching.js";
|
|
74
84
|
import { resolveSink, safeEmit, getRequestId } from "./router/telemetry.js";
|
|
85
|
+
import { resolveTracing } from "./router/tracing.js";
|
|
75
86
|
import { evaluateRevalidation } from "./router/revalidation.js";
|
|
76
87
|
import {
|
|
77
88
|
type RouterContext,
|
|
@@ -89,14 +100,12 @@ import {
|
|
|
89
100
|
RouterRegistry,
|
|
90
101
|
nextRouterAutoId,
|
|
91
102
|
} from "./router/router-registry.js";
|
|
103
|
+
import type { RangoOptions, RootLayoutProps } from "./router/router-options.js";
|
|
92
104
|
import type {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
} from "./router/router-options.js";
|
|
96
|
-
import type {
|
|
97
|
-
RSCRouter,
|
|
98
|
-
RSCRouterInternal,
|
|
105
|
+
Rango,
|
|
106
|
+
RangoInternal,
|
|
99
107
|
RouterRequestInput,
|
|
108
|
+
UrlPatternMount,
|
|
100
109
|
} from "./router/router-interfaces.js";
|
|
101
110
|
|
|
102
111
|
// Extracted closure functions
|
|
@@ -110,29 +119,37 @@ import {
|
|
|
110
119
|
matchForPrerender as _matchForPrerender,
|
|
111
120
|
renderStaticSegment as _renderStaticSegment,
|
|
112
121
|
} from "./router/prerender-match.js";
|
|
122
|
+
import { resolveStateCookieName } from "./router/state-cookie-name.js";
|
|
123
|
+
import { resolvePrefetchCacheTTL } from "./router/prefetch-cache-ttl.js";
|
|
124
|
+
import { resolveDefaultPrefetch } from "./router/prefetch-default.js";
|
|
125
|
+
import {
|
|
126
|
+
resolvePrefetchCacheSize,
|
|
127
|
+
resolvePrefetchConcurrency,
|
|
128
|
+
} from "./router/prefetch-limits.js";
|
|
113
129
|
|
|
114
130
|
// Re-export public types and values from extracted modules
|
|
115
131
|
export { RSC_ROUTER_BRAND, RouterRegistry } from "./router/router-registry.js";
|
|
116
132
|
export type {
|
|
117
|
-
|
|
133
|
+
RangoOptions,
|
|
118
134
|
RootLayoutProps,
|
|
119
135
|
SSRStreamMode,
|
|
120
136
|
SSROptions,
|
|
121
137
|
ResolveStreamingContext,
|
|
122
138
|
} from "./router/router-options.js";
|
|
123
139
|
export type {
|
|
124
|
-
|
|
125
|
-
|
|
140
|
+
Rango,
|
|
141
|
+
RangoInternal,
|
|
126
142
|
RouterRequestInput,
|
|
127
143
|
} from "./router/router-interfaces.js";
|
|
128
144
|
export { toInternal } from "./router/router-interfaces.js";
|
|
129
145
|
|
|
130
146
|
export function createRouter<TEnv = any>(
|
|
131
|
-
options:
|
|
132
|
-
):
|
|
147
|
+
options: RangoOptions<TEnv> = {},
|
|
148
|
+
): Rango<TEnv, {}> {
|
|
133
149
|
const {
|
|
134
150
|
id: userProvidedId,
|
|
135
151
|
$$id: injectedId,
|
|
152
|
+
basename: basenameOption,
|
|
136
153
|
debugPerformance = false,
|
|
137
154
|
document: documentOption,
|
|
138
155
|
defaultErrorBoundary,
|
|
@@ -148,24 +165,49 @@ export function createRouter<TEnv = any>(
|
|
|
148
165
|
nonce,
|
|
149
166
|
version,
|
|
150
167
|
prefetchCacheTTL: prefetchCacheTTLOption,
|
|
168
|
+
prefetchCacheSize: prefetchCacheSizeOption,
|
|
169
|
+
prefetchConcurrency: prefetchConcurrencyOption,
|
|
170
|
+
defaultPrefetch: defaultPrefetchOption,
|
|
171
|
+
stateCookiePrefix: stateCookiePrefixOption,
|
|
151
172
|
warmup: warmupOption,
|
|
152
|
-
allowDebugManifest: allowDebugManifestOption = false,
|
|
153
173
|
telemetry: telemetrySink,
|
|
174
|
+
tracing: tracingOption,
|
|
154
175
|
ssr: ssrOption,
|
|
155
176
|
timeout: timeoutShorthand,
|
|
156
177
|
timeouts: timeoutsOption,
|
|
157
178
|
onTimeout,
|
|
158
179
|
originCheck: originCheckOption,
|
|
180
|
+
viewTransition: viewTransitionOption = "auto",
|
|
181
|
+
debugCacheSignal: debugCacheSignalOption = false,
|
|
182
|
+
debugShellCapture: debugShellCaptureOption,
|
|
183
|
+
strictMode: strictModeOption = true,
|
|
159
184
|
} = options;
|
|
160
185
|
|
|
186
|
+
// Debug cache signal gate (DEVELOPMENT/TEST ONLY). Enabled by the
|
|
187
|
+
// debugCacheSignal option OR the RANGO_TEST_SIGNALS=1 env flag. When off,
|
|
188
|
+
// no X-Rango-Cache header is emitted and output is byte-identical.
|
|
189
|
+
const cacheSignalEnabled =
|
|
190
|
+
debugCacheSignalOption ||
|
|
191
|
+
(typeof process !== "undefined" &&
|
|
192
|
+
(process as { env?: Record<string, string | undefined> }).env
|
|
193
|
+
?.RANGO_TEST_SIGNALS === "1");
|
|
194
|
+
|
|
195
|
+
// Normalize basename: ensure leading slash, strip trailing slash.
|
|
196
|
+
// A bare "/" is equivalent to no basename. Shared with the testing
|
|
197
|
+
// primitives via normalizeBasename so they can never drift.
|
|
198
|
+
const basename = normalizeBasename(basenameOption);
|
|
199
|
+
|
|
161
200
|
// Resolve telemetry sink (no-op when not configured)
|
|
162
201
|
const telemetry = resolveSink(telemetrySink);
|
|
163
202
|
|
|
164
|
-
// Resolve
|
|
165
|
-
//
|
|
166
|
-
|
|
203
|
+
// Resolve span tracing (undefined when not configured; every traceSpan() call
|
|
204
|
+
// is then a direct pass-through with zero behavior change).
|
|
205
|
+
const resolvedTracing = resolveTracing(tracingOption);
|
|
206
|
+
|
|
207
|
+
// Resolve cache profiles: merge user config with the guaranteed default
|
|
208
|
+
// profile. This resolved map is threaded onto each request context; the
|
|
209
|
+
// "use cache: <profile>" runtime path reads it request-scoped.
|
|
167
210
|
const resolvedCacheProfiles = resolveCacheProfiles(cacheProfilesOption);
|
|
168
|
-
setCacheProfiles(resolvedCacheProfiles);
|
|
169
211
|
|
|
170
212
|
// Source file: prefer Vite-injected path (zero cost), fall back to
|
|
171
213
|
// stack trace parsing for non-Vite environments (e.g. tests).
|
|
@@ -199,22 +241,53 @@ export function createRouter<TEnv = any>(
|
|
|
199
241
|
// order (unlike the counter which depends on import order).
|
|
200
242
|
const routerId =
|
|
201
243
|
userProvidedId ?? injectedId ?? `router_${nextRouterAutoId()}`;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
244
|
+
const rawDevDiscoveryEpoch = (
|
|
245
|
+
globalThis as typeof globalThis & {
|
|
246
|
+
__RANGO_DEV_DISCOVERY_EPOCH?: unknown;
|
|
247
|
+
}
|
|
248
|
+
).__RANGO_DEV_DISCOVERY_EPOCH;
|
|
249
|
+
const devDiscoveryEpoch = isValidDevDiscoveryEpoch(rawDevDiscoveryEpoch)
|
|
250
|
+
? rawDevDiscoveryEpoch
|
|
251
|
+
: undefined;
|
|
252
|
+
|
|
253
|
+
// Resolve the rango state cookie name once, here, so the two cookie writers
|
|
254
|
+
// (the client document.cookie writer and the server Set-Cookie writer)
|
|
255
|
+
// consume one pre-composed name and cannot drift.
|
|
256
|
+
const resolvedStateCookieName = resolveStateCookieName(
|
|
257
|
+
stateCookiePrefixOption,
|
|
258
|
+
routerId,
|
|
259
|
+
);
|
|
260
|
+
|
|
261
|
+
// Resolve prefetch cache TTL (default: 300 seconds / 5 minutes). Clamps to a
|
|
262
|
+
// non-negative integer and guards non-finite (NaN/Infinity) inputs so a
|
|
263
|
+
// malformed `Cache-Control: max-age=NaN` can never reach the wire.
|
|
264
|
+
const resolvedPrefetchCacheTTL = resolvePrefetchCacheTTL(
|
|
265
|
+
prefetchCacheTTLOption,
|
|
266
|
+
);
|
|
267
|
+
const prefetchCacheTTL = resolvedPrefetchCacheTTL.ms;
|
|
210
268
|
const prefetchCacheControl: string | false =
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
269
|
+
resolvedPrefetchCacheTTL.cacheControl;
|
|
270
|
+
|
|
271
|
+
// Resolve client-side prefetch limits (in-memory cache size and queue
|
|
272
|
+
// concurrency). Both are positive-integer counts; sub-1/non-finite inputs
|
|
273
|
+
// fall back to the defaults. Shipped to the client in payload metadata.
|
|
274
|
+
const prefetchCacheSize = resolvePrefetchCacheSize(prefetchCacheSizeOption);
|
|
275
|
+
const prefetchConcurrency = resolvePrefetchConcurrency(
|
|
276
|
+
prefetchConcurrencyOption,
|
|
277
|
+
);
|
|
278
|
+
|
|
279
|
+
// Resolve the router-wide default Link prefetch strategy ("none" in dev,
|
|
280
|
+
// "viewport" in production). Links without an explicit prop fall back to it.
|
|
281
|
+
const defaultPrefetch = resolveDefaultPrefetch(defaultPrefetchOption);
|
|
214
282
|
|
|
215
283
|
// Resolve warmup enabled flag (default: true)
|
|
216
284
|
const warmupEnabled = warmupOption !== false;
|
|
217
285
|
|
|
286
|
+
// Resolve StrictMode flag (default: true). Shipped to the client in payload
|
|
287
|
+
// metadata; the browser entry reads it once to decide whether to wrap the
|
|
288
|
+
// hydrated tree in React.StrictMode.
|
|
289
|
+
const strictMode = strictModeOption !== false;
|
|
290
|
+
|
|
218
291
|
// Resolve theme config (null if theme not enabled)
|
|
219
292
|
const resolvedThemeConfig = themeOption
|
|
220
293
|
? resolveThemeConfig(themeOption)
|
|
@@ -246,9 +319,14 @@ export function createRouter<TEnv = any>(
|
|
|
246
319
|
invokeOnError(onError, error, phase, context, "Router");
|
|
247
320
|
}
|
|
248
321
|
|
|
249
|
-
// Validate document is a client component
|
|
322
|
+
// Validate document is a client component. Under a test runner the "use
|
|
323
|
+
// client" transform has not run, so a real exported document has no marker;
|
|
324
|
+
// allowServerInTest lets the router construct in a bare unit test (for
|
|
325
|
+
// dispatch / assertGeneratedRoutesMatch) while a real build still throws.
|
|
250
326
|
if (documentOption !== undefined) {
|
|
251
|
-
assertClientComponent(documentOption, "document"
|
|
327
|
+
assertClientComponent(documentOption, "document", {
|
|
328
|
+
allowServerInTest: true,
|
|
329
|
+
});
|
|
252
330
|
}
|
|
253
331
|
|
|
254
332
|
// Use default document if none provided (keeps internal name as rootLayout)
|
|
@@ -258,6 +336,7 @@ export function createRouter<TEnv = any>(
|
|
|
258
336
|
|
|
259
337
|
// Store reference to urlpatterns for runtime manifest generation
|
|
260
338
|
let storedUrlPatterns: UrlPatterns<TEnv, any> | null = null;
|
|
339
|
+
const urlpatternMounts: UrlPatternMount<TEnv>[] = [];
|
|
261
340
|
|
|
262
341
|
// Global middleware storage
|
|
263
342
|
const globalMiddleware: MiddlewareEntry<TEnv>[] = [];
|
|
@@ -312,7 +391,7 @@ export function createRouter<TEnv = any>(
|
|
|
312
391
|
let regex: RegExp | null = null;
|
|
313
392
|
let paramNames: string[] = [];
|
|
314
393
|
if (fullPattern) {
|
|
315
|
-
const parsed =
|
|
394
|
+
const parsed = compileMiddlewarePattern(fullPattern);
|
|
316
395
|
regex = parsed.regex;
|
|
317
396
|
paramNames = parsed.paramNames;
|
|
318
397
|
}
|
|
@@ -322,7 +401,6 @@ export function createRouter<TEnv = any>(
|
|
|
322
401
|
regex,
|
|
323
402
|
paramNames,
|
|
324
403
|
handler,
|
|
325
|
-
mountPrefix,
|
|
326
404
|
});
|
|
327
405
|
}
|
|
328
406
|
|
|
@@ -352,27 +430,31 @@ export function createRouter<TEnv = any>(
|
|
|
352
430
|
string,
|
|
353
431
|
Record<string, string>
|
|
354
432
|
> | null {
|
|
355
|
-
const current =
|
|
356
|
-
getRouterPrecomputedEntries(routerId) ?? getPrecomputedEntries();
|
|
433
|
+
const current = getRouterPrecomputedEntries(routerId);
|
|
357
434
|
if (current !== precomputedSource) {
|
|
358
435
|
precomputedSource = current;
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
436
|
+
// buildPrecomputedByPrefix drops any staticPrefix owned by more than one
|
|
437
|
+
// leaf include instead of collapsing it last-wins (which would mis-assign
|
|
438
|
+
// one include's routes to another's entry and 500 a valid sibling route).
|
|
439
|
+
// Such shared-prefix includes resolve via the handler path instead.
|
|
440
|
+
precomputedByPrefix = current ? buildPrecomputedByPrefix(current) : null;
|
|
362
441
|
}
|
|
363
442
|
return precomputedByPrefix;
|
|
364
443
|
}
|
|
365
444
|
|
|
366
445
|
// Wrapper to pass debugPerformance to external createMetricsStore.
|
|
367
446
|
// Also checks per-request flag set by ctx.debugPerformance() in middleware.
|
|
447
|
+
// With no active request context there is nowhere to hang the store, so return
|
|
448
|
+
// undefined: an orphan store would collect metrics no reader can reach (nothing
|
|
449
|
+
// holds it, and appendMetric(undefined, ...) is already a no-op).
|
|
368
450
|
const getMetricsStore = () => {
|
|
369
451
|
const reqCtx = _getRequestContext();
|
|
370
452
|
const enabled = debugPerformance || !!reqCtx?._debugPerformance;
|
|
371
|
-
if (!enabled) return undefined;
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
reqCtx._metricsStore ??= createMetricsStore(true);
|
|
453
|
+
if (!enabled || !reqCtx) return undefined;
|
|
454
|
+
// Anchor a mid-request store to the true request entry (reqCtx._handlerStart),
|
|
455
|
+
// not this call's performance.now(); undefined falls back to now() inside
|
|
456
|
+
// createMetricsStore (metrics.ts).
|
|
457
|
+
reqCtx._metricsStore ??= createMetricsStore(true, reqCtx._handlerStart);
|
|
376
458
|
return reqCtx._metricsStore;
|
|
377
459
|
};
|
|
378
460
|
|
|
@@ -383,11 +465,6 @@ export function createRouter<TEnv = any>(
|
|
|
383
465
|
const findNearestNotFoundBoundary = (entry: EntryData | null) =>
|
|
384
466
|
findNotFoundBoundary(entry, defaultNotFoundBoundary);
|
|
385
467
|
|
|
386
|
-
// Helper to get handleStore from request context
|
|
387
|
-
const getHandleStore = (): HandleStore | undefined => {
|
|
388
|
-
return _getRequestContext()?._handleStore;
|
|
389
|
-
};
|
|
390
|
-
|
|
391
468
|
// Track a pending handler promise (non-blocking).
|
|
392
469
|
// Attaches a side-effect .catch() to report streaming handler errors to onError
|
|
393
470
|
// without altering the rejection chain (React's streaming error boundary still handles it).
|
|
@@ -398,13 +475,14 @@ export function createRouter<TEnv = any>(
|
|
|
398
475
|
segmentType?: string;
|
|
399
476
|
},
|
|
400
477
|
): Promise<T> => {
|
|
401
|
-
|
|
478
|
+
// One ALS read serves both the store lookup and the onError closure.
|
|
479
|
+
const reqCtx = _getRequestContext();
|
|
480
|
+
const store = reqCtx?._handleStore;
|
|
402
481
|
const tracked = store ? store.track(promise) : promise;
|
|
403
482
|
|
|
404
483
|
// Report streaming handler errors to onError as a side-effect.
|
|
405
484
|
// The rejection still propagates to the RSC stream for client error boundaries.
|
|
406
485
|
// Captures request context eagerly (closure) so the catch handler has full context.
|
|
407
|
-
const reqCtx = _getRequestContext();
|
|
408
486
|
if (reqCtx && onError) {
|
|
409
487
|
tracked.catch((error) => {
|
|
410
488
|
callOnError(error, "handler", {
|
|
@@ -446,8 +524,12 @@ export function createRouter<TEnv = any>(
|
|
|
446
524
|
? getRequestId(errorContext.request)
|
|
447
525
|
: undefined
|
|
448
526
|
: undefined;
|
|
527
|
+
// Derived once here for both the loader.start and loader.end emits (the
|
|
528
|
+
// loader.error emit uses ctx.loaderName from wrapLoaderWithErrorHandling).
|
|
529
|
+
const loaderName = telemetrySink
|
|
530
|
+
? segmentId.split(".").pop() || "unknown"
|
|
531
|
+
: "";
|
|
449
532
|
if (telemetrySink) {
|
|
450
|
-
const loaderName = segmentId.split(".").pop() || "unknown";
|
|
451
533
|
safeEmit(telemetry, {
|
|
452
534
|
type: "loader.start",
|
|
453
535
|
timestamp: loaderStart,
|
|
@@ -497,11 +579,17 @@ export function createRouter<TEnv = any>(
|
|
|
497
579
|
}
|
|
498
580
|
}
|
|
499
581
|
: undefined,
|
|
582
|
+
// notFound() resolution deps: the streamed envelope carries the
|
|
583
|
+
// server-rendered not-found UI, mirroring the consumption lane's
|
|
584
|
+
// boundary resolution (segment-resolution/helpers.ts).
|
|
585
|
+
{
|
|
586
|
+
findNearestNotFoundBoundary,
|
|
587
|
+
notFoundComponent: notFound,
|
|
588
|
+
},
|
|
500
589
|
);
|
|
501
590
|
|
|
502
591
|
// Emit loader.end after the promise settles (fire-and-forget)
|
|
503
592
|
if (telemetrySink) {
|
|
504
|
-
const loaderName = segmentId.split(".").pop() || "unknown";
|
|
505
593
|
result.then((r) => {
|
|
506
594
|
safeEmit(telemetry, {
|
|
507
595
|
type: "loader.end",
|
|
@@ -526,7 +614,9 @@ export function createRouter<TEnv = any>(
|
|
|
526
614
|
trackHandler,
|
|
527
615
|
findNearestErrorBoundary,
|
|
528
616
|
findNearestNotFoundBoundary,
|
|
617
|
+
notFoundComponent: notFound,
|
|
529
618
|
callOnError,
|
|
619
|
+
viewTransitionDefault: viewTransitionOption,
|
|
530
620
|
};
|
|
531
621
|
|
|
532
622
|
// Match API dependencies
|
|
@@ -560,10 +650,18 @@ export function createRouter<TEnv = any>(
|
|
|
560
650
|
mergedRouteMap,
|
|
561
651
|
nextMountIndex: () => mountIndex++,
|
|
562
652
|
getPrecomputedByPrefix,
|
|
653
|
+
routerId,
|
|
563
654
|
};
|
|
564
655
|
|
|
565
|
-
|
|
566
|
-
|
|
656
|
+
// Must return the Promise from _evaluateLazyEntry: an async include provider
|
|
657
|
+
// (`() => import("./routes")`) resolves off the startup path, and createFindMatch
|
|
658
|
+
// awaits this to know when the import + expansion have completed. Dropping it
|
|
659
|
+
// (typing this `void`) makes the import fire-and-forget, so findMatch spins the
|
|
660
|
+
// lazy-eval retry loop to its cap and returns null on the first request to any
|
|
661
|
+
// async include whose prefix isn't already covered by a unique precomputed entry
|
|
662
|
+
// (nested includes, shared prefixes, regex fallback).
|
|
663
|
+
function evaluateLazyEntry(entry: RouteEntry<TEnv>): void | Promise<void> {
|
|
664
|
+
return _evaluateLazyEntry(entry, lazyEvalDeps);
|
|
567
665
|
}
|
|
568
666
|
|
|
569
667
|
// Create findMatch with single-entry cache, bound to router state
|
|
@@ -602,6 +700,7 @@ export function createRouter<TEnv = any>(
|
|
|
602
700
|
|
|
603
701
|
// Prerender/static match deps (bind closure state for extracted functions)
|
|
604
702
|
const prerenderDeps = {
|
|
703
|
+
routerId,
|
|
605
704
|
findMatch,
|
|
606
705
|
buildRouterContext,
|
|
607
706
|
mergedRouteMap,
|
|
@@ -613,6 +712,8 @@ export function createRouter<TEnv = any>(
|
|
|
613
712
|
params: Record<string, string>,
|
|
614
713
|
buildVars?: Record<string, any>,
|
|
615
714
|
isPassthroughRoute?: boolean,
|
|
715
|
+
buildEnv?: TEnv,
|
|
716
|
+
devMode?: boolean,
|
|
616
717
|
) {
|
|
617
718
|
return _matchForPrerender(
|
|
618
719
|
pathname,
|
|
@@ -620,6 +721,8 @@ export function createRouter<TEnv = any>(
|
|
|
620
721
|
prerenderDeps,
|
|
621
722
|
buildVars,
|
|
622
723
|
isPassthroughRoute,
|
|
724
|
+
buildEnv,
|
|
725
|
+
devMode,
|
|
623
726
|
);
|
|
624
727
|
}
|
|
625
728
|
|
|
@@ -627,12 +730,19 @@ export function createRouter<TEnv = any>(
|
|
|
627
730
|
handler: Function,
|
|
628
731
|
handlerId: string,
|
|
629
732
|
routeName?: string,
|
|
733
|
+
buildEnv?: TEnv,
|
|
734
|
+
devMode?: boolean,
|
|
735
|
+
rootScoped?: boolean,
|
|
630
736
|
) {
|
|
631
737
|
return _renderStaticSegment<TEnv>(
|
|
632
738
|
handler,
|
|
633
739
|
handlerId,
|
|
634
740
|
mergedRouteMap,
|
|
635
741
|
routeName,
|
|
742
|
+
buildEnv,
|
|
743
|
+
devMode,
|
|
744
|
+
routerId,
|
|
745
|
+
rootScoped,
|
|
636
746
|
);
|
|
637
747
|
}
|
|
638
748
|
|
|
@@ -645,6 +755,7 @@ export function createRouter<TEnv = any>(
|
|
|
645
755
|
findMatch,
|
|
646
756
|
findInterceptForRoute,
|
|
647
757
|
telemetry: telemetrySink,
|
|
758
|
+
cacheSignalEnabled,
|
|
648
759
|
});
|
|
649
760
|
|
|
650
761
|
const { match, matchPartial, matchError, previewMatch } = matchHandlers;
|
|
@@ -654,14 +765,48 @@ export function createRouter<TEnv = any>(
|
|
|
654
765
|
* The type system tracks accumulated routes through the builder chain
|
|
655
766
|
* Initial TRoutes is {} (empty) to avoid poisoning accumulated types with Record<string, string>
|
|
656
767
|
*/
|
|
657
|
-
const router:
|
|
768
|
+
const router: RangoInternal<TEnv, {}> = {
|
|
658
769
|
__brand: RSC_ROUTER_BRAND,
|
|
659
770
|
id: routerId,
|
|
771
|
+
basename,
|
|
772
|
+
|
|
773
|
+
routes(
|
|
774
|
+
patternsOrBuilder:
|
|
775
|
+
| UrlPatterns<TEnv>
|
|
776
|
+
| UrlBuilder<TEnv>
|
|
777
|
+
| ClientUrlPatterns,
|
|
778
|
+
): any {
|
|
779
|
+
// Pure-client mounting shorthand: a clientUrls() definition passed
|
|
780
|
+
// directly NORMALIZES to a root include in the canonical urls() tree —
|
|
781
|
+
// exactly `include("/", definition, { name: "" })`, keeping local route
|
|
782
|
+
// names bare and local patterns app-absolute. This is sugar over the
|
|
783
|
+
// ONE composition model, not a second registration path: it rides the
|
|
784
|
+
// same lazy include materialization, so no ordering, one-definition, or
|
|
785
|
+
// deferral rules exist. Prefixing, wrapping RSC layouts, and middleware
|
|
786
|
+
// scope still come from mounting through include() in urls() yourself.
|
|
787
|
+
if (
|
|
788
|
+
isClientUrlPatterns(patternsOrBuilder) ||
|
|
789
|
+
isClientUrlReference(patternsOrBuilder)
|
|
790
|
+
) {
|
|
791
|
+
const clientSource = patternsOrBuilder as ClientUrlPatterns;
|
|
792
|
+
patternsOrBuilder = urls(({ include }) => [
|
|
793
|
+
include("/", clientSource, { name: "" }),
|
|
794
|
+
]) as UrlPatterns<TEnv>;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
// Wrap builder functions in urls() automatically
|
|
798
|
+
const urlPatterns: UrlPatterns<TEnv> =
|
|
799
|
+
typeof patternsOrBuilder === "function"
|
|
800
|
+
? (urls(patternsOrBuilder) as UrlPatterns<TEnv>)
|
|
801
|
+
: patternsOrBuilder;
|
|
660
802
|
|
|
661
|
-
routes(urlPatterns: UrlPatterns<TEnv>): any {
|
|
662
803
|
// Store reference for runtime manifest generation
|
|
663
804
|
storedUrlPatterns = urlPatterns;
|
|
664
805
|
const currentMountIndex = mountIndex++;
|
|
806
|
+
urlpatternMounts.push({
|
|
807
|
+
patterns: urlPatterns,
|
|
808
|
+
mountIndex: currentMountIndex,
|
|
809
|
+
});
|
|
665
810
|
|
|
666
811
|
// Create manifest and patterns maps for route registration
|
|
667
812
|
const manifest = new Map<string, EntryData>();
|
|
@@ -689,13 +834,13 @@ export function createRouter<TEnv = any>(
|
|
|
689
834
|
errorBoundary: [],
|
|
690
835
|
notFoundBoundary: [],
|
|
691
836
|
layout: [],
|
|
692
|
-
parallel:
|
|
837
|
+
parallel: {},
|
|
693
838
|
intercept: [],
|
|
694
839
|
loader: [],
|
|
695
840
|
};
|
|
696
841
|
|
|
697
842
|
let handlerResult: AllUseItems[] = [];
|
|
698
|
-
|
|
843
|
+
RangoContext.run(
|
|
699
844
|
{
|
|
700
845
|
manifest,
|
|
701
846
|
patterns: routePatterns,
|
|
@@ -705,7 +850,12 @@ export function createRouter<TEnv = any>(
|
|
|
705
850
|
parent: syntheticMapRoot,
|
|
706
851
|
counters: {},
|
|
707
852
|
mountIndex: currentMountIndex,
|
|
853
|
+
routerId,
|
|
708
854
|
cacheProfiles: resolvedCacheProfiles,
|
|
855
|
+
// basename sets the initial URL prefix so all path() patterns
|
|
856
|
+
// are registered with the prefix (e.g. "/admin" + "/users" = "/admin/users").
|
|
857
|
+
// No namePrefix — route names stay unprefixed.
|
|
858
|
+
...(basename ? { urlPrefix: basename } : {}),
|
|
709
859
|
},
|
|
710
860
|
() => {
|
|
711
861
|
handlerResult = urlPatterns.handler() as AllUseItems[];
|
|
@@ -725,7 +875,7 @@ export function createRouter<TEnv = any>(
|
|
|
725
875
|
if (entry.type === "route" && entry.isPrerender) {
|
|
726
876
|
if (!prerenderRouteKeys) prerenderRouteKeys = new Set();
|
|
727
877
|
prerenderRouteKeys.add(name);
|
|
728
|
-
if (entry.
|
|
878
|
+
if (entry.isPassthrough === true) {
|
|
729
879
|
if (!passthroughRouteKeys) passthroughRouteKeys = new Set();
|
|
730
880
|
passthroughRouteKeys.add(name);
|
|
731
881
|
}
|
|
@@ -751,6 +901,7 @@ export function createRouter<TEnv = any>(
|
|
|
751
901
|
trailingSlash: trailingSlashConfig,
|
|
752
902
|
handler: urlPatterns.handler,
|
|
753
903
|
mountIndex: currentMountIndex,
|
|
904
|
+
routerId,
|
|
754
905
|
cacheProfiles: resolvedCacheProfiles,
|
|
755
906
|
...(prerenderRouteKeys ? { prerenderRouteKeys } : {}),
|
|
756
907
|
...(passthroughRouteKeys ? { passthroughRouteKeys } : {}),
|
|
@@ -770,6 +921,7 @@ export function createRouter<TEnv = any>(
|
|
|
770
921
|
trailingSlash: trailingSlashConfig,
|
|
771
922
|
handler: urlPatterns.handler,
|
|
772
923
|
mountIndex: currentMountIndex,
|
|
924
|
+
routerId,
|
|
773
925
|
cacheProfiles: resolvedCacheProfiles,
|
|
774
926
|
...(prerenderRouteKeys ? { prerenderRouteKeys } : {}),
|
|
775
927
|
...(passthroughRouteKeys ? { passthroughRouteKeys } : {}),
|
|
@@ -801,10 +953,13 @@ export function createRouter<TEnv = any>(
|
|
|
801
953
|
|
|
802
954
|
// Create placeholder RouteEntry for each lazy include
|
|
803
955
|
for (const lazyInclude of lazyIncludes) {
|
|
804
|
-
// Compute the full URL prefix (combining parent prefix if any)
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
956
|
+
// Compute the full URL prefix (combining parent prefix if any). Use the
|
|
957
|
+
// slash-collapsing join so a trailing-slash parent prefix does not
|
|
958
|
+
// produce a double-slash staticPrefix the trie's sp can never match.
|
|
959
|
+
const fullPrefix = joinPrefix(
|
|
960
|
+
lazyInclude.context.urlPrefix,
|
|
961
|
+
lazyInclude.prefix,
|
|
962
|
+
);
|
|
808
963
|
|
|
809
964
|
const lazyEntry: RouteEntry<TEnv> & { _lazyPrefix?: string } = {
|
|
810
965
|
prefix: "",
|
|
@@ -813,6 +968,7 @@ export function createRouter<TEnv = any>(
|
|
|
813
968
|
trailingSlash: trailingSlashConfig,
|
|
814
969
|
handler: urlPatterns.handler,
|
|
815
970
|
mountIndex: mountIndex++,
|
|
971
|
+
routerId,
|
|
816
972
|
// Lazy evaluation fields
|
|
817
973
|
lazy: true,
|
|
818
974
|
lazyPatterns: lazyInclude.patterns,
|
|
@@ -851,8 +1007,18 @@ export function createRouter<TEnv = any>(
|
|
|
851
1007
|
patternOrMiddleware: string | MiddlewareFn<TEnv>,
|
|
852
1008
|
middleware?: MiddlewareFn<TEnv>,
|
|
853
1009
|
): any {
|
|
854
|
-
//
|
|
855
|
-
|
|
1010
|
+
// Auto-prefix pattern with basename so router-level middleware
|
|
1011
|
+
// patterns are router-relative (e.g. "/users/*" matches "/app/users/*").
|
|
1012
|
+
if (basename && typeof patternOrMiddleware === "string") {
|
|
1013
|
+
const pattern = patternOrMiddleware;
|
|
1014
|
+
const prefixed =
|
|
1015
|
+
pattern === "/*" || pattern === "*"
|
|
1016
|
+
? `${basename}/*`
|
|
1017
|
+
: `${basename}${pattern}`;
|
|
1018
|
+
addMiddleware(prefixed, middleware, null);
|
|
1019
|
+
} else {
|
|
1020
|
+
addMiddleware(patternOrMiddleware, middleware, null);
|
|
1021
|
+
}
|
|
856
1022
|
return router;
|
|
857
1023
|
},
|
|
858
1024
|
|
|
@@ -888,15 +1054,35 @@ export function createRouter<TEnv = any>(
|
|
|
888
1054
|
// Expose prefetch cache settings
|
|
889
1055
|
prefetchCacheControl,
|
|
890
1056
|
prefetchCacheTTL,
|
|
1057
|
+
prefetchCacheSize,
|
|
1058
|
+
prefetchConcurrency,
|
|
1059
|
+
defaultPrefetch,
|
|
1060
|
+
|
|
1061
|
+
// Expose the resolved rango state cookie name for the server-side writer
|
|
1062
|
+
// (invalidateClientCache) and for shipping to the client in metadata.
|
|
1063
|
+
resolvedStateCookieName,
|
|
891
1064
|
|
|
892
1065
|
// Expose warmup enabled flag for handler and client
|
|
893
1066
|
warmupEnabled,
|
|
894
1067
|
|
|
1068
|
+
// Expose StrictMode flag for the initial-render payload metadata
|
|
1069
|
+
strictMode,
|
|
1070
|
+
|
|
895
1071
|
// Expose router-wide performance debugging for request-level metrics setup
|
|
896
1072
|
debugPerformance,
|
|
897
1073
|
|
|
898
|
-
// Expose debug
|
|
899
|
-
|
|
1074
|
+
// Expose the PPR shell-capture debug sink for the render layer
|
|
1075
|
+
// (rsc-rendering resolves it into the capture descriptor)
|
|
1076
|
+
debugShellCapture: debugShellCaptureOption,
|
|
1077
|
+
|
|
1078
|
+
// Expose resolved span tracing for the handler (Cloudflare custom spans)
|
|
1079
|
+
tracing: resolvedTracing,
|
|
1080
|
+
|
|
1081
|
+
// Expose the raw telemetry sink so handler-level emitters (timeout, origin
|
|
1082
|
+
// rejection, late-handle handler.error) can emit outside the match ALS.
|
|
1083
|
+
// Raw (not the resolveSink no-op wrapper) so router.telemetry stays
|
|
1084
|
+
// undefined when unconfigured and call sites gate on truthiness.
|
|
1085
|
+
telemetry: telemetrySink,
|
|
900
1086
|
|
|
901
1087
|
// Expose origin check configuration for handler (default: enabled)
|
|
902
1088
|
originCheck: originCheckOption ?? true,
|
|
@@ -950,9 +1136,26 @@ export function createRouter<TEnv = any>(
|
|
|
950
1136
|
return storedUrlPatterns ?? undefined;
|
|
951
1137
|
},
|
|
952
1138
|
|
|
1139
|
+
get __urlpatternMounts() {
|
|
1140
|
+
return urlpatternMounts;
|
|
1141
|
+
},
|
|
1142
|
+
|
|
953
1143
|
// Expose source file for per-router type generation
|
|
954
1144
|
__sourceFile,
|
|
955
1145
|
|
|
1146
|
+
// Expose basename for runtime manifest generation
|
|
1147
|
+
__basename: basename,
|
|
1148
|
+
|
|
1149
|
+
// Pin payload metadata to the worker generation that created this router.
|
|
1150
|
+
__devDiscoveryEpoch: devDiscoveryEpoch,
|
|
1151
|
+
|
|
1152
|
+
// Expose router-level boundary defaults for build-time clientChunks
|
|
1153
|
+
// discovery (so a "use client" default boundary lands in app-fallback).
|
|
1154
|
+
// These are createRouter options, never pushed onto EntryData.
|
|
1155
|
+
__defaultErrorBoundary: defaultErrorBoundary,
|
|
1156
|
+
__defaultNotFoundBoundary: defaultNotFoundBoundary,
|
|
1157
|
+
__notFound: notFound,
|
|
1158
|
+
|
|
956
1159
|
// RSC request handler (lazily created on first call)
|
|
957
1160
|
fetch: (() => {
|
|
958
1161
|
// Handler is created on first call and reused
|
|
@@ -964,14 +1167,28 @@ export function createRouter<TEnv = any>(
|
|
|
964
1167
|
| null = null;
|
|
965
1168
|
|
|
966
1169
|
return async (request: Request, input: RouterRequestInput<TEnv> = {}) => {
|
|
1170
|
+
if (
|
|
1171
|
+
devDiscoveryEpoch !== undefined &&
|
|
1172
|
+
request.headers.get(DEV_DISCOVERY_PROBE_HEADER) ===
|
|
1173
|
+
String(devDiscoveryEpoch)
|
|
1174
|
+
) {
|
|
1175
|
+
return new Response(null, {
|
|
1176
|
+
headers: {
|
|
1177
|
+
[DEV_DISCOVERY_EPOCH_HEADER]: String(devDiscoveryEpoch),
|
|
1178
|
+
},
|
|
1179
|
+
});
|
|
1180
|
+
}
|
|
1181
|
+
|
|
967
1182
|
// Trigger lazy import of per-router manifest data before route matching.
|
|
968
1183
|
// No-op if data is already loaded or no loader is registered.
|
|
969
1184
|
await ensureRouterManifest(routerId);
|
|
970
1185
|
if (!handler) {
|
|
971
1186
|
// Lazy import deferred to first request to avoid dev mode issues
|
|
972
1187
|
const { createRSCHandler } = await import("./rsc/handler.js");
|
|
973
|
-
// Cast:
|
|
974
|
-
//
|
|
1188
|
+
// Cast: createRSCHandler receives `router as any`, which erases TEnv
|
|
1189
|
+
// and infers its handler as RouterRequestInput<unknown>. Re-narrow the
|
|
1190
|
+
// returned handler to RouterRequestInput<TEnv> so the call below stays
|
|
1191
|
+
// typed. (The handler already accepts (request, RouterRequestInput).)
|
|
975
1192
|
handler = createRSCHandler({
|
|
976
1193
|
router: router as any,
|
|
977
1194
|
cache,
|
|
@@ -986,6 +1203,10 @@ export function createRouter<TEnv = any>(
|
|
|
986
1203
|
};
|
|
987
1204
|
})(),
|
|
988
1205
|
|
|
1206
|
+
// Low-level route matching for request classification
|
|
1207
|
+
findMatch: (pathname: string, metricsStore?: any) =>
|
|
1208
|
+
findMatch(pathname, metricsStore),
|
|
1209
|
+
|
|
989
1210
|
// Debug utility for manifest inspection
|
|
990
1211
|
debugManifest: () => buildDebugManifest<TEnv>(routesEntries),
|
|
991
1212
|
};
|
|
@@ -994,8 +1215,10 @@ export function createRouter<TEnv = any>(
|
|
|
994
1215
|
RouterRegistry.set(routerId, router);
|
|
995
1216
|
|
|
996
1217
|
// If urls option was provided, auto-register them
|
|
997
|
-
if (urlsOption) {
|
|
998
|
-
return router.routes(urlsOption) as
|
|
1218
|
+
if (typeof urlsOption === "function") {
|
|
1219
|
+
return router.routes(urlsOption) as Rango<TEnv, {}>;
|
|
1220
|
+
} else if (urlsOption) {
|
|
1221
|
+
return router.routes(urlsOption) as Rango<TEnv, {}>;
|
|
999
1222
|
}
|
|
1000
1223
|
|
|
1001
1224
|
return router;
|