@rangojs/router 0.0.0-experimental.tapabs3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/rango.js +8 -40
- 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/event-controller.d.ts +221 -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 +43 -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 +27 -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 +95 -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/partial-update.d.ts +61 -0
- package/dist/types/browser/prefetch/cache.d.ts +183 -0
- package/dist/types/browser/prefetch/fetch.d.ts +52 -0
- package/dist/types/browser/prefetch/observer.d.ts +27 -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/rango-state.d.ts +52 -0
- package/dist/types/browser/react/Link.d.ts +140 -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 +54 -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 +141 -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 +530 -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 +100 -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/prefix-tree-utils.d.ts +56 -0
- package/dist/types/build/route-trie.d.ts +89 -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 +18 -0
- package/dist/types/build/route-types/router-processing.d.ts +82 -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-key-utils.d.ts +35 -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 +134 -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 +105 -0
- package/dist/types/cache/cf/cf-cache-store.d.ts +588 -0
- package/dist/types/cache/cf/cf-cache-types.d.ts +363 -0
- package/dist/types/cache/cf/cf-kv-utils.d.ts +22 -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 +69 -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 +7 -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 +60 -0
- package/dist/types/cache/segment-codec.d.ts +78 -0
- package/dist/types/cache/shell-snapshot.d.ts +173 -0
- package/dist/types/cache/tag-invalidation.d.ts +74 -0
- package/dist/types/cache/taint.d.ts +71 -0
- package/dist/types/cache/types.d.ts +418 -0
- package/dist/types/cache/vercel/index.d.ts +1 -0
- package/dist/types/cache/vercel/vercel-cache-store.d.ts +267 -0
- package/dist/types/client.d.ts +184 -0
- package/dist/types/client.rsc.d.ts +39 -0
- package/dist/types/cloudflare/index.d.ts +7 -0
- package/dist/types/cloudflare/tracing.d.ts +53 -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 +5 -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/encode-kv.d.ts +35 -0
- package/dist/types/errors.d.ts +226 -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 +12 -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 +112 -0
- package/dist/types/index.rsc.d.ts +51 -0
- package/dist/types/internal-debug.d.ts +1 -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 +12 -0
- package/dist/types/outlet-provider.d.ts +12 -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 +62 -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 +40 -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 +392 -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 +127 -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 +76 -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 +161 -0
- package/dist/types/router/intercept-resolution.d.ts +79 -0
- package/dist/types/router/lazy-includes.d.ts +26 -0
- package/dist/types/router/loader-resolution.d.ts +63 -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 +49 -0
- package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
- package/dist/types/router/match-middleware/cache-lookup.d.ts +113 -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 +22 -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-limits.d.ts +20 -0
- package/dist/types/router/prerender-match.d.ts +50 -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 +57 -0
- package/dist/types/router/route-snapshot.d.ts +112 -0
- package/dist/types/router/router-context.d.ts +137 -0
- package/dist/types/router/router-interfaces.d.ts +432 -0
- package/dist/types/router/router-options.d.ts +738 -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 +28 -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 +96 -0
- package/dist/types/router/tracing.d.ts +125 -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 +6 -0
- package/dist/types/rsc/full-payload.d.ts +22 -0
- package/dist/types/rsc/handler-context.d.ts +31 -0
- package/dist/types/rsc/handler.d.ts +9 -0
- package/dist/types/rsc/helpers.d.ts +124 -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 +138 -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/rsc-rendering.d.ts +23 -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 +84 -0
- package/dist/types/rsc/shell-capture-constants.d.ts +27 -0
- package/dist/types/rsc/shell-capture.d.ts +374 -0
- package/dist/types/rsc/shell-serve.d.ts +174 -0
- package/dist/types/rsc/ssr-setup.d.ts +73 -0
- package/dist/types/rsc/transition-gate.d.ts +27 -0
- package/dist/types/rsc/types.d.ts +290 -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 +56 -0
- package/dist/types/segment-loader-promise.d.ts +22 -0
- package/dist/types/segment-system.d.ts +84 -0
- package/dist/types/serialize.d.ts +164 -0
- package/dist/types/server/context.d.ts +494 -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 +100 -0
- package/dist/types/server/loader-registry.d.ts +32 -0
- package/dist/types/server/request-context.d.ts +618 -0
- package/dist/types/server/root-layout.d.ts +3 -0
- package/dist/types/server.d.ts +15 -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 +57 -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 +62 -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 +246 -0
- package/dist/types/testing/run-loader.d.ts +186 -0
- package/dist/types/testing/run-middleware.d.ts +132 -0
- package/dist/types/testing/run-transition-when.d.ts +77 -0
- package/dist/types/testing/shell-status.d.ts +58 -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 +93 -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 +182 -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 +95 -0
- package/dist/types/types/segments.d.ts +234 -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 +197 -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 +70 -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/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 +162 -0
- package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -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 +6 -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/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 +55 -0
- package/dist/vite/index.js +1051 -361
- package/package.json +39 -33
- package/skills/catalog.json +6 -0
- package/skills/cloudflare/SKILL.md +149 -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/composability/SKILL.md +14 -0
- package/skills/debug-manifest/SKILL.md +2 -10
- package/skills/links/SKILL.md +12 -0
- package/skills/middleware/SKILL.md +33 -0
- package/skills/migrate-nextjs/SKILL.md +65 -16
- package/skills/migrate-nextjs/backend-host-swap.md +120 -0
- package/skills/migrate-react-router/SKILL.md +6 -6
- package/skills/mime-routes/SKILL.md +25 -17
- package/skills/ppr/SKILL.md +100 -15
- package/skills/prerender/SKILL.md +44 -1
- package/skills/rango/SKILL.md +10 -10
- package/skills/response-routes/SKILL.md +41 -4
- package/skills/route/SKILL.md +6 -0
- package/skills/testing/SKILL.md +1 -0
- package/skills/testing/cache-prerender.md +43 -2
- package/skills/testing/response-routes.md +2 -2
- package/src/browser/event-controller.ts +16 -2
- package/src/browser/rsc-router.tsx +11 -0
- package/src/build/generate-manifest.ts +5 -36
- package/src/build/route-trie.ts +5 -50
- package/src/cache/cache-key-utils.ts +0 -1
- package/src/cache/cache-scope.ts +41 -3
- package/src/cache/cf/cf-cache-store.ts +465 -56
- package/src/cache/cf/cf-cache-types.ts +66 -0
- package/src/cache/cf/cf-tag-marker-memo.ts +5 -2
- package/src/cache/cf/cf-zone-purge.ts +101 -0
- package/src/cache/cf/index.ts +5 -0
- package/src/cache/handle-snapshot.ts +22 -1
- package/src/cache/index.ts +2 -0
- package/src/cache/memory-segment-store.ts +32 -0
- package/src/cache/segment-codec.ts +47 -0
- package/src/cache/shell-snapshot.ts +79 -14
- package/src/cache/types.ts +38 -0
- package/src/cache/vercel/vercel-cache-store.ts +71 -2
- package/src/deps/ssr.ts +4 -1
- package/src/index.rsc.ts +7 -0
- package/src/index.ts +1 -0
- package/src/prerender/build-shell-capture.ts +447 -0
- package/src/prerender/shell-manifest-key.ts +20 -0
- package/src/prerender/store.ts +10 -1
- package/src/prerender.ts +3 -3
- package/src/redirect-origin.ts +37 -8
- package/src/route-map-builder.ts +8 -8
- package/src/router/content-negotiation.ts +47 -5
- package/src/router/handler-context.ts +18 -10
- package/src/router/intercept-resolution.ts +30 -1
- package/src/router/loader-resolution.ts +16 -0
- package/src/router/match-api.ts +9 -2
- package/src/router/match-middleware/cache-lookup.ts +12 -1
- package/src/router/metrics.ts +17 -2
- package/src/router/middleware-types.ts +17 -0
- package/src/router/middleware.ts +4 -0
- package/src/router/prerender-match.ts +28 -0
- package/src/router/router-interfaces.ts +7 -6
- package/src/router/router-options.ts +13 -8
- package/src/router/segment-resolution/fresh.ts +21 -2
- package/src/router/segment-resolution/helpers.ts +1 -1
- package/src/router/segment-resolution/loader-cache.ts +38 -7
- package/src/router/segment-resolution/mask-nested.ts +19 -3
- package/src/router/segment-resolution/revalidation.ts +9 -0
- package/src/router/telemetry-otel.ts +11 -0
- package/src/router/telemetry.ts +1 -0
- package/src/router/timeout.ts +41 -1
- package/src/router.ts +5 -4
- package/src/rsc/capture-queue.ts +67 -0
- package/src/rsc/handler.ts +151 -77
- package/src/rsc/helpers.ts +67 -4
- package/src/rsc/progressive-enhancement.ts +66 -54
- package/src/rsc/redirect-guard.ts +3 -1
- package/src/rsc/render-pipeline.ts +559 -0
- package/src/rsc/response-cache-serve.ts +39 -18
- package/src/rsc/response-route-handler.ts +9 -45
- package/src/rsc/rsc-rendering.ts +303 -103
- package/src/rsc/server-action.ts +50 -42
- package/src/rsc/shell-build-manifest.ts +316 -0
- package/src/rsc/shell-capture-constants.ts +27 -0
- package/src/rsc/shell-capture.ts +595 -69
- package/src/rsc/shell-serve.ts +133 -3
- package/src/rsc/ssr-setup.ts +102 -23
- package/src/segment-fragments.ts +124 -0
- package/src/server/context.ts +184 -8
- package/src/server/request-context.ts +297 -45
- package/src/ssr/index.tsx +167 -32
- package/src/ssr/preinit-client-references.ts +106 -0
- package/src/ssr/ssr-root.tsx +35 -2
- package/src/testing/dispatch.ts +132 -67
- package/src/testing/e2e/index.ts +8 -0
- package/src/testing/index.ts +9 -1
- package/src/testing/internal/context.ts +9 -0
- package/src/testing/render-handler.ts +15 -1
- package/src/testing/run-middleware.ts +14 -0
- package/src/testing/shell-status.ts +100 -0
- package/src/types/handler-context.ts +13 -2
- package/src/urls/path-helper-types.ts +1 -1
- package/src/urls/pattern-types.ts +29 -0
- package/src/vite/discovery/discover-routers.ts +71 -52
- package/src/vite/discovery/prerender-collection.ts +16 -0
- package/src/vite/discovery/shell-prerender-phase.ts +397 -0
- package/src/vite/discovery/state.ts +44 -0
- package/src/vite/discovery/virtual-module-codegen.ts +126 -20
- package/src/vite/index.ts +1 -0
- package/src/vite/plugin-types.ts +33 -0
- package/src/vite/plugins/version-plugin.ts +8 -0
- package/src/vite/plugins/virtual-entries.ts +37 -4
- package/src/vite/rango.ts +42 -2
- package/src/vite/router-discovery.ts +432 -21
- package/src/vite/utils/package-resolution.ts +1 -0
- package/src/vite/utils/prerender-utils.ts +25 -6
- package/src/vite/utils/shared-utils.ts +4 -2
- package/dist/__internal.d.ts +0 -83
- package/dist/__internal.d.ts.map +0 -1
- package/dist/__internal.js +0 -19
- package/dist/__internal.js.map +0 -1
- package/dist/__mocks__/version.d.ts +0 -7
- package/dist/__mocks__/version.d.ts.map +0 -1
- package/dist/__mocks__/version.js +0 -7
- package/dist/__mocks__/version.js.map +0 -1
- package/dist/__tests__/client-href.test.d.ts +0 -2
- package/dist/__tests__/client-href.test.d.ts.map +0 -1
- package/dist/__tests__/client-href.test.js +0 -74
- package/dist/__tests__/client-href.test.js.map +0 -1
- package/dist/__tests__/component-utils.test.d.ts +0 -2
- package/dist/__tests__/component-utils.test.d.ts.map +0 -1
- package/dist/__tests__/component-utils.test.js +0 -51
- package/dist/__tests__/component-utils.test.js.map +0 -1
- package/dist/__tests__/event-controller.test.d.ts +0 -2
- package/dist/__tests__/event-controller.test.d.ts.map +0 -1
- package/dist/__tests__/event-controller.test.js +0 -538
- package/dist/__tests__/event-controller.test.js.map +0 -1
- package/dist/__tests__/helpers/route-tree.d.ts +0 -118
- package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
- package/dist/__tests__/helpers/route-tree.js +0 -374
- package/dist/__tests__/helpers/route-tree.js.map +0 -1
- package/dist/__tests__/match-result.test.d.ts +0 -2
- package/dist/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/__tests__/match-result.test.js +0 -154
- package/dist/__tests__/match-result.test.js.map +0 -1
- package/dist/__tests__/navigation-store.test.d.ts +0 -2
- package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
- package/dist/__tests__/navigation-store.test.js +0 -440
- package/dist/__tests__/navigation-store.test.js.map +0 -1
- package/dist/__tests__/partial-update.test.d.ts +0 -2
- package/dist/__tests__/partial-update.test.d.ts.map +0 -1
- package/dist/__tests__/partial-update.test.js +0 -1009
- package/dist/__tests__/partial-update.test.js.map +0 -1
- package/dist/__tests__/reverse-types.test.d.ts +0 -8
- package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
- package/dist/__tests__/reverse-types.test.js +0 -656
- package/dist/__tests__/reverse-types.test.js.map +0 -1
- package/dist/__tests__/route-definition.test.d.ts +0 -2
- package/dist/__tests__/route-definition.test.d.ts.map +0 -1
- package/dist/__tests__/route-definition.test.js +0 -55
- package/dist/__tests__/route-definition.test.js.map +0 -1
- package/dist/__tests__/router-helpers.test.d.ts +0 -2
- package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
- package/dist/__tests__/router-helpers.test.js +0 -377
- package/dist/__tests__/router-helpers.test.js.map +0 -1
- package/dist/__tests__/router-integration-2.test.d.ts +0 -2
- package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration-2.test.js +0 -426
- package/dist/__tests__/router-integration-2.test.js.map +0 -1
- package/dist/__tests__/router-integration.test.d.ts +0 -2
- package/dist/__tests__/router-integration.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration.test.js +0 -1051
- package/dist/__tests__/router-integration.test.js.map +0 -1
- package/dist/__tests__/search-params.test.d.ts +0 -5
- package/dist/__tests__/search-params.test.d.ts.map +0 -1
- package/dist/__tests__/search-params.test.js +0 -306
- package/dist/__tests__/search-params.test.js.map +0 -1
- package/dist/__tests__/segment-system.test.d.ts +0 -2
- package/dist/__tests__/segment-system.test.d.ts.map +0 -1
- package/dist/__tests__/segment-system.test.js +0 -627
- package/dist/__tests__/segment-system.test.js.map +0 -1
- package/dist/__tests__/static-handler-types.test.d.ts +0 -8
- package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
- package/dist/__tests__/static-handler-types.test.js +0 -63
- package/dist/__tests__/static-handler-types.test.js.map +0 -1
- package/dist/__tests__/urls.test.d.ts +0 -2
- package/dist/__tests__/urls.test.d.ts.map +0 -1
- package/dist/__tests__/urls.test.js +0 -421
- package/dist/__tests__/urls.test.js.map +0 -1
- package/dist/__tests__/use-mount.test.d.ts +0 -2
- package/dist/__tests__/use-mount.test.d.ts.map +0 -1
- package/dist/__tests__/use-mount.test.js +0 -35
- package/dist/__tests__/use-mount.test.js.map +0 -1
- package/dist/bin/rango.d.ts +0 -2
- package/dist/bin/rango.d.ts.map +0 -1
- package/dist/bin/rango.js.map +0 -1
- package/dist/browser/event-controller.d.ts +0 -191
- package/dist/browser/event-controller.d.ts.map +0 -1
- package/dist/browser/event-controller.js +0 -559
- package/dist/browser/event-controller.js.map +0 -1
- package/dist/browser/index.d.ts +0 -2
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -14
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/link-interceptor.d.ts +0 -38
- package/dist/browser/link-interceptor.d.ts.map +0 -1
- package/dist/browser/link-interceptor.js +0 -99
- package/dist/browser/link-interceptor.js.map +0 -1
- package/dist/browser/logging.d.ts +0 -10
- package/dist/browser/logging.d.ts.map +0 -1
- package/dist/browser/logging.js +0 -29
- package/dist/browser/logging.js.map +0 -1
- package/dist/browser/lru-cache.d.ts +0 -17
- package/dist/browser/lru-cache.d.ts.map +0 -1
- package/dist/browser/lru-cache.js +0 -50
- package/dist/browser/lru-cache.js.map +0 -1
- package/dist/browser/merge-segment-loaders.d.ts +0 -39
- package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
- package/dist/browser/merge-segment-loaders.js +0 -102
- package/dist/browser/merge-segment-loaders.js.map +0 -1
- package/dist/browser/navigation-bridge.d.ts +0 -102
- package/dist/browser/navigation-bridge.d.ts.map +0 -1
- package/dist/browser/navigation-bridge.js +0 -708
- package/dist/browser/navigation-bridge.js.map +0 -1
- package/dist/browser/navigation-client.d.ts +0 -25
- package/dist/browser/navigation-client.d.ts.map +0 -1
- package/dist/browser/navigation-client.js +0 -157
- package/dist/browser/navigation-client.js.map +0 -1
- package/dist/browser/navigation-store.d.ts +0 -101
- package/dist/browser/navigation-store.d.ts.map +0 -1
- package/dist/browser/navigation-store.js +0 -625
- package/dist/browser/navigation-store.js.map +0 -1
- package/dist/browser/partial-update.d.ts +0 -75
- package/dist/browser/partial-update.d.ts.map +0 -1
- package/dist/browser/partial-update.js +0 -426
- package/dist/browser/partial-update.js.map +0 -1
- package/dist/browser/react/Link.d.ts +0 -86
- package/dist/browser/react/Link.d.ts.map +0 -1
- package/dist/browser/react/Link.js +0 -128
- package/dist/browser/react/Link.js.map +0 -1
- package/dist/browser/react/NavigationProvider.d.ts +0 -63
- package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
- package/dist/browser/react/NavigationProvider.js +0 -216
- package/dist/browser/react/NavigationProvider.js.map +0 -1
- package/dist/browser/react/ScrollRestoration.d.ts +0 -75
- package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
- package/dist/browser/react/ScrollRestoration.js +0 -57
- package/dist/browser/react/ScrollRestoration.js.map +0 -1
- package/dist/browser/react/context.d.ts +0 -46
- package/dist/browser/react/context.d.ts.map +0 -1
- package/dist/browser/react/context.js +0 -10
- package/dist/browser/react/context.js.map +0 -1
- package/dist/browser/react/index.d.ts +0 -11
- package/dist/browser/react/index.d.ts.map +0 -1
- package/dist/browser/react/index.js +0 -22
- package/dist/browser/react/index.js.map +0 -1
- package/dist/browser/react/location-state-shared.d.ts +0 -63
- package/dist/browser/react/location-state-shared.d.ts.map +0 -1
- package/dist/browser/react/location-state-shared.js +0 -81
- package/dist/browser/react/location-state-shared.js.map +0 -1
- package/dist/browser/react/location-state.d.ts +0 -23
- package/dist/browser/react/location-state.d.ts.map +0 -1
- package/dist/browser/react/location-state.js +0 -29
- package/dist/browser/react/location-state.js.map +0 -1
- package/dist/browser/react/mount-context.d.ts +0 -24
- package/dist/browser/react/mount-context.d.ts.map +0 -1
- package/dist/browser/react/mount-context.js +0 -24
- package/dist/browser/react/mount-context.js.map +0 -1
- package/dist/browser/react/use-action.d.ts +0 -64
- package/dist/browser/react/use-action.d.ts.map +0 -1
- package/dist/browser/react/use-action.js +0 -134
- package/dist/browser/react/use-action.js.map +0 -1
- package/dist/browser/react/use-client-cache.d.ts +0 -41
- package/dist/browser/react/use-client-cache.d.ts.map +0 -1
- package/dist/browser/react/use-client-cache.js +0 -39
- package/dist/browser/react/use-client-cache.js.map +0 -1
- package/dist/browser/react/use-handle.d.ts +0 -31
- package/dist/browser/react/use-handle.d.ts.map +0 -1
- package/dist/browser/react/use-handle.js +0 -144
- package/dist/browser/react/use-handle.js.map +0 -1
- package/dist/browser/react/use-href.d.ts +0 -33
- package/dist/browser/react/use-href.d.ts.map +0 -1
- package/dist/browser/react/use-href.js +0 -39
- package/dist/browser/react/use-href.js.map +0 -1
- package/dist/browser/react/use-link-status.d.ts +0 -37
- package/dist/browser/react/use-link-status.d.ts.map +0 -1
- package/dist/browser/react/use-link-status.js +0 -99
- package/dist/browser/react/use-link-status.js.map +0 -1
- package/dist/browser/react/use-mount.d.ts +0 -25
- package/dist/browser/react/use-mount.d.ts.map +0 -1
- package/dist/browser/react/use-mount.js +0 -30
- package/dist/browser/react/use-mount.js.map +0 -1
- package/dist/browser/react/use-navigation.d.ts +0 -27
- package/dist/browser/react/use-navigation.d.ts.map +0 -1
- package/dist/browser/react/use-navigation.js +0 -87
- package/dist/browser/react/use-navigation.js.map +0 -1
- package/dist/browser/react/use-segments.d.ts +0 -38
- package/dist/browser/react/use-segments.d.ts.map +0 -1
- package/dist/browser/react/use-segments.js +0 -130
- package/dist/browser/react/use-segments.js.map +0 -1
- package/dist/browser/request-controller.d.ts +0 -26
- package/dist/browser/request-controller.d.ts.map +0 -1
- package/dist/browser/request-controller.js +0 -147
- package/dist/browser/request-controller.js.map +0 -1
- package/dist/browser/rsc-router.d.ts +0 -129
- package/dist/browser/rsc-router.d.ts.map +0 -1
- package/dist/browser/rsc-router.js +0 -195
- package/dist/browser/rsc-router.js.map +0 -1
- package/dist/browser/scroll-restoration.d.ts +0 -93
- package/dist/browser/scroll-restoration.d.ts.map +0 -1
- package/dist/browser/scroll-restoration.js +0 -321
- package/dist/browser/scroll-restoration.js.map +0 -1
- package/dist/browser/segment-structure-assert.d.ts +0 -17
- package/dist/browser/segment-structure-assert.d.ts.map +0 -1
- package/dist/browser/segment-structure-assert.js +0 -59
- package/dist/browser/segment-structure-assert.js.map +0 -1
- package/dist/browser/server-action-bridge.d.ts +0 -26
- package/dist/browser/server-action-bridge.d.ts.map +0 -1
- package/dist/browser/server-action-bridge.js +0 -668
- package/dist/browser/server-action-bridge.js.map +0 -1
- package/dist/browser/shallow.d.ts +0 -12
- package/dist/browser/shallow.d.ts.map +0 -1
- package/dist/browser/shallow.js +0 -34
- package/dist/browser/shallow.js.map +0 -1
- package/dist/browser/types.d.ts +0 -369
- package/dist/browser/types.d.ts.map +0 -1
- package/dist/browser/types.js +0 -2
- package/dist/browser/types.js.map +0 -1
- package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
- package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-cli.test.js +0 -237
- package/dist/build/__tests__/generate-cli.test.js.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.js +0 -119
- package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
- package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.js +0 -620
- package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.js +0 -308
- package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
- package/dist/build/generate-manifest.d.ts +0 -81
- package/dist/build/generate-manifest.d.ts.map +0 -1
- package/dist/build/generate-manifest.js +0 -276
- package/dist/build/generate-manifest.js.map +0 -1
- package/dist/build/generate-route-types.d.ts +0 -115
- package/dist/build/generate-route-types.d.ts.map +0 -1
- package/dist/build/generate-route-types.js +0 -740
- package/dist/build/generate-route-types.js.map +0 -1
- package/dist/build/index.d.ts +0 -21
- package/dist/build/index.d.ts.map +0 -1
- package/dist/build/index.js +0 -21
- package/dist/build/index.js.map +0 -1
- package/dist/build/route-trie.d.ts +0 -71
- package/dist/build/route-trie.d.ts.map +0 -1
- package/dist/build/route-trie.js +0 -175
- package/dist/build/route-trie.js.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
- package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.js +0 -208
- package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
- package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
- package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
- package/dist/cache/__tests__/document-cache.test.js +0 -345
- package/dist/cache/__tests__/document-cache.test.js.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
- package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
- package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-store.test.js +0 -367
- package/dist/cache/__tests__/memory-store.test.js.map +0 -1
- package/dist/cache/cache-scope.d.ts +0 -102
- package/dist/cache/cache-scope.d.ts.map +0 -1
- package/dist/cache/cache-scope.js +0 -440
- package/dist/cache/cache-scope.js.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
- package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
- package/dist/cache/cf/cf-cache-store.d.ts +0 -165
- package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
- package/dist/cache/cf/cf-cache-store.js +0 -242
- package/dist/cache/cf/cf-cache-store.js.map +0 -1
- package/dist/cache/cf/index.d.ts +0 -14
- package/dist/cache/cf/index.d.ts.map +0 -1
- package/dist/cache/cf/index.js +0 -17
- package/dist/cache/cf/index.js.map +0 -1
- package/dist/cache/document-cache.d.ts +0 -64
- package/dist/cache/document-cache.d.ts.map +0 -1
- package/dist/cache/document-cache.js +0 -228
- package/dist/cache/document-cache.js.map +0 -1
- package/dist/cache/index.d.ts +0 -19
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -21
- package/dist/cache/index.js.map +0 -1
- package/dist/cache/memory-segment-store.d.ts +0 -110
- package/dist/cache/memory-segment-store.d.ts.map +0 -1
- package/dist/cache/memory-segment-store.js +0 -117
- package/dist/cache/memory-segment-store.js.map +0 -1
- package/dist/cache/memory-store.d.ts +0 -41
- package/dist/cache/memory-store.d.ts.map +0 -1
- package/dist/cache/memory-store.js +0 -191
- package/dist/cache/memory-store.js.map +0 -1
- package/dist/cache/types.d.ts +0 -317
- package/dist/cache/types.d.ts.map +0 -1
- package/dist/cache/types.js +0 -12
- package/dist/cache/types.js.map +0 -1
- package/dist/client.d.ts +0 -248
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -367
- package/dist/client.js.map +0 -1
- package/dist/client.rsc.d.ts +0 -26
- package/dist/client.rsc.d.ts.map +0 -1
- package/dist/client.rsc.js +0 -46
- package/dist/client.rsc.js.map +0 -1
- package/dist/component-utils.d.ts +0 -36
- package/dist/component-utils.d.ts.map +0 -1
- package/dist/component-utils.js +0 -61
- package/dist/component-utils.js.map +0 -1
- package/dist/components/DefaultDocument.d.ts +0 -13
- package/dist/components/DefaultDocument.d.ts.map +0 -1
- package/dist/components/DefaultDocument.js +0 -15
- package/dist/components/DefaultDocument.js.map +0 -1
- package/dist/debug.d.ts +0 -58
- package/dist/debug.d.ts.map +0 -1
- package/dist/debug.js +0 -157
- package/dist/debug.js.map +0 -1
- package/dist/default-error-boundary.d.ts +0 -11
- package/dist/default-error-boundary.d.ts.map +0 -1
- package/dist/default-error-boundary.js +0 -45
- package/dist/default-error-boundary.js.map +0 -1
- package/dist/deps/browser.d.ts +0 -2
- package/dist/deps/browser.d.ts.map +0 -1
- package/dist/deps/browser.js +0 -3
- package/dist/deps/browser.js.map +0 -1
- package/dist/deps/html-stream-client.d.ts +0 -2
- package/dist/deps/html-stream-client.d.ts.map +0 -1
- package/dist/deps/html-stream-client.js +0 -3
- package/dist/deps/html-stream-client.js.map +0 -1
- package/dist/deps/html-stream-server.d.ts +0 -2
- package/dist/deps/html-stream-server.d.ts.map +0 -1
- package/dist/deps/html-stream-server.js +0 -3
- package/dist/deps/html-stream-server.js.map +0 -1
- package/dist/deps/rsc.d.ts +0 -2
- package/dist/deps/rsc.d.ts.map +0 -1
- package/dist/deps/rsc.js +0 -4
- package/dist/deps/rsc.js.map +0 -1
- package/dist/deps/ssr.d.ts +0 -2
- package/dist/deps/ssr.d.ts.map +0 -1
- package/dist/deps/ssr.js +0 -3
- package/dist/deps/ssr.js.map +0 -1
- package/dist/errors.d.ts +0 -174
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -241
- package/dist/errors.js.map +0 -1
- package/dist/handle.d.ts +0 -78
- package/dist/handle.d.ts.map +0 -1
- package/dist/handle.js +0 -82
- package/dist/handle.js.map +0 -1
- package/dist/handles/MetaTags.d.ts +0 -14
- package/dist/handles/MetaTags.d.ts.map +0 -1
- package/dist/handles/MetaTags.js +0 -136
- package/dist/handles/MetaTags.js.map +0 -1
- package/dist/handles/index.d.ts +0 -6
- package/dist/handles/index.d.ts.map +0 -1
- package/dist/handles/index.js +0 -6
- package/dist/handles/index.js.map +0 -1
- package/dist/handles/meta.d.ts +0 -39
- package/dist/handles/meta.d.ts.map +0 -1
- package/dist/handles/meta.js +0 -202
- package/dist/handles/meta.js.map +0 -1
- package/dist/host/__tests__/errors.test.d.ts +0 -2
- package/dist/host/__tests__/errors.test.d.ts.map +0 -1
- package/dist/host/__tests__/errors.test.js +0 -76
- package/dist/host/__tests__/errors.test.js.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.js +0 -251
- package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
- package/dist/host/__tests__/router.test.d.ts +0 -2
- package/dist/host/__tests__/router.test.d.ts.map +0 -1
- package/dist/host/__tests__/router.test.js +0 -241
- package/dist/host/__tests__/router.test.js.map +0 -1
- package/dist/host/__tests__/testing.test.d.ts +0 -2
- package/dist/host/__tests__/testing.test.d.ts.map +0 -1
- package/dist/host/__tests__/testing.test.js +0 -64
- package/dist/host/__tests__/testing.test.js.map +0 -1
- package/dist/host/__tests__/utils.test.d.ts +0 -2
- package/dist/host/__tests__/utils.test.d.ts.map +0 -1
- package/dist/host/__tests__/utils.test.js +0 -29
- package/dist/host/__tests__/utils.test.js.map +0 -1
- package/dist/host/cookie-handler.d.ts +0 -34
- package/dist/host/cookie-handler.d.ts.map +0 -1
- package/dist/host/cookie-handler.js +0 -124
- package/dist/host/cookie-handler.js.map +0 -1
- package/dist/host/errors.d.ts +0 -56
- package/dist/host/errors.d.ts.map +0 -1
- package/dist/host/errors.js +0 -79
- package/dist/host/errors.js.map +0 -1
- package/dist/host/index.d.ts +0 -29
- package/dist/host/index.d.ts.map +0 -1
- package/dist/host/index.js +0 -32
- package/dist/host/index.js.map +0 -1
- package/dist/host/pattern-matcher.d.ts +0 -36
- package/dist/host/pattern-matcher.d.ts.map +0 -1
- package/dist/host/pattern-matcher.js +0 -172
- package/dist/host/pattern-matcher.js.map +0 -1
- package/dist/host/router.d.ts +0 -26
- package/dist/host/router.d.ts.map +0 -1
- package/dist/host/router.js +0 -218
- package/dist/host/router.js.map +0 -1
- package/dist/host/testing.d.ts +0 -36
- package/dist/host/testing.d.ts.map +0 -1
- package/dist/host/testing.js +0 -55
- package/dist/host/testing.js.map +0 -1
- package/dist/host/types.d.ts +0 -115
- package/dist/host/types.d.ts.map +0 -1
- package/dist/host/types.js +0 -7
- package/dist/host/types.js.map +0 -1
- package/dist/host/utils.d.ts +0 -21
- package/dist/host/utils.d.ts.map +0 -1
- package/dist/host/utils.js +0 -23
- package/dist/host/utils.js.map +0 -1
- package/dist/href-client.d.ts +0 -131
- package/dist/href-client.d.ts.map +0 -1
- package/dist/href-client.js +0 -64
- package/dist/href-client.js.map +0 -1
- package/dist/href-context.d.ts +0 -29
- package/dist/href-context.d.ts.map +0 -1
- package/dist/href-context.js +0 -21
- package/dist/href-context.js.map +0 -1
- package/dist/index.d.ts +0 -73
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -91
- package/dist/index.js.map +0 -1
- package/dist/index.rsc.d.ts +0 -32
- package/dist/index.rsc.d.ts.map +0 -1
- package/dist/index.rsc.js +0 -40
- package/dist/index.rsc.js.map +0 -1
- package/dist/internal-debug.d.ts +0 -2
- package/dist/internal-debug.d.ts.map +0 -1
- package/dist/internal-debug.js +0 -5
- package/dist/internal-debug.js.map +0 -1
- package/dist/loader.d.ts +0 -14
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -20
- package/dist/loader.js.map +0 -1
- package/dist/loader.rsc.d.ts +0 -19
- package/dist/loader.rsc.d.ts.map +0 -1
- package/dist/loader.rsc.js +0 -99
- package/dist/loader.rsc.js.map +0 -1
- package/dist/network-error-thrower.d.ts +0 -17
- package/dist/network-error-thrower.d.ts.map +0 -1
- package/dist/network-error-thrower.js +0 -14
- package/dist/network-error-thrower.js.map +0 -1
- package/dist/outlet-context.d.ts +0 -13
- package/dist/outlet-context.d.ts.map +0 -1
- package/dist/outlet-context.js +0 -3
- package/dist/outlet-context.js.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
- package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.js +0 -148
- package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
- package/dist/prerender/param-hash.d.ts +0 -16
- package/dist/prerender/param-hash.d.ts.map +0 -1
- package/dist/prerender/param-hash.js +0 -36
- package/dist/prerender/param-hash.js.map +0 -1
- package/dist/prerender/store.d.ts +0 -38
- package/dist/prerender/store.d.ts.map +0 -1
- package/dist/prerender/store.js +0 -61
- package/dist/prerender/store.js.map +0 -1
- package/dist/prerender.d.ts +0 -66
- package/dist/prerender.d.ts.map +0 -1
- package/dist/prerender.js +0 -57
- package/dist/prerender.js.map +0 -1
- package/dist/reverse.d.ts +0 -196
- package/dist/reverse.d.ts.map +0 -1
- package/dist/reverse.js +0 -78
- package/dist/reverse.js.map +0 -1
- package/dist/root-error-boundary.d.ts +0 -33
- package/dist/root-error-boundary.d.ts.map +0 -1
- package/dist/root-error-boundary.js +0 -165
- package/dist/root-error-boundary.js.map +0 -1
- package/dist/route-content-wrapper.d.ts +0 -46
- package/dist/route-content-wrapper.d.ts.map +0 -1
- package/dist/route-content-wrapper.js +0 -77
- package/dist/route-content-wrapper.js.map +0 -1
- package/dist/route-definition.d.ts +0 -421
- package/dist/route-definition.d.ts.map +0 -1
- package/dist/route-definition.js +0 -868
- package/dist/route-definition.js.map +0 -1
- package/dist/route-map-builder.d.ts +0 -155
- package/dist/route-map-builder.d.ts.map +0 -1
- package/dist/route-map-builder.js +0 -237
- package/dist/route-map-builder.js.map +0 -1
- package/dist/route-types.d.ts +0 -165
- package/dist/route-types.d.ts.map +0 -1
- package/dist/route-types.js +0 -7
- package/dist/route-types.js.map +0 -1
- package/dist/router/__tests__/handler-context.test.d.ts +0 -2
- package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/handler-context.test.js +0 -65
- package/dist/router/__tests__/handler-context.test.js.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
- package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
- package/dist/router/__tests__/match-context.test.d.ts +0 -2
- package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-context.test.js +0 -92
- package/dist/router/__tests__/match-context.test.js.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
- package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.js +0 -417
- package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
- package/dist/router/__tests__/match-result.test.d.ts +0 -2
- package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-result.test.js +0 -457
- package/dist/router/__tests__/match-result.test.js.map +0 -1
- package/dist/router/__tests__/on-error.test.d.ts +0 -2
- package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
- package/dist/router/__tests__/on-error.test.js +0 -678
- package/dist/router/__tests__/on-error.test.js.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
- package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.js +0 -629
- package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
- package/dist/router/error-handling.d.ts +0 -77
- package/dist/router/error-handling.d.ts.map +0 -1
- package/dist/router/error-handling.js +0 -202
- package/dist/router/error-handling.js.map +0 -1
- package/dist/router/handler-context.d.ts +0 -20
- package/dist/router/handler-context.d.ts.map +0 -1
- package/dist/router/handler-context.js +0 -198
- package/dist/router/handler-context.js.map +0 -1
- package/dist/router/intercept-resolution.d.ts +0 -66
- package/dist/router/intercept-resolution.d.ts.map +0 -1
- package/dist/router/intercept-resolution.js +0 -246
- package/dist/router/intercept-resolution.js.map +0 -1
- package/dist/router/loader-resolution.d.ts +0 -64
- package/dist/router/loader-resolution.d.ts.map +0 -1
- package/dist/router/loader-resolution.js +0 -284
- package/dist/router/loader-resolution.js.map +0 -1
- package/dist/router/logging.d.ts +0 -15
- package/dist/router/logging.d.ts.map +0 -1
- package/dist/router/logging.js +0 -99
- package/dist/router/logging.js.map +0 -1
- package/dist/router/manifest.d.ts +0 -22
- package/dist/router/manifest.d.ts.map +0 -1
- package/dist/router/manifest.js +0 -181
- package/dist/router/manifest.js.map +0 -1
- package/dist/router/match-api.d.ts +0 -35
- package/dist/router/match-api.d.ts.map +0 -1
- package/dist/router/match-api.js +0 -406
- package/dist/router/match-api.js.map +0 -1
- package/dist/router/match-context.d.ts +0 -206
- package/dist/router/match-context.d.ts.map +0 -1
- package/dist/router/match-context.js +0 -17
- package/dist/router/match-context.js.map +0 -1
- package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
- package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
- package/dist/router/match-middleware/background-revalidation.js +0 -75
- package/dist/router/match-middleware/background-revalidation.js.map +0 -1
- package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
- package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-lookup.js +0 -257
- package/dist/router/match-middleware/cache-lookup.js.map +0 -1
- package/dist/router/match-middleware/cache-store.d.ts +0 -113
- package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-store.js +0 -108
- package/dist/router/match-middleware/cache-store.js.map +0 -1
- package/dist/router/match-middleware/index.d.ts +0 -81
- package/dist/router/match-middleware/index.d.ts.map +0 -1
- package/dist/router/match-middleware/index.js +0 -80
- package/dist/router/match-middleware/index.js.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
- package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.js +0 -134
- package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
- package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
- package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/segment-resolution.js +0 -53
- package/dist/router/match-middleware/segment-resolution.js.map +0 -1
- package/dist/router/match-pipelines.d.ts +0 -147
- package/dist/router/match-pipelines.d.ts.map +0 -1
- package/dist/router/match-pipelines.js +0 -82
- package/dist/router/match-pipelines.js.map +0 -1
- package/dist/router/match-result.d.ts +0 -126
- package/dist/router/match-result.d.ts.map +0 -1
- package/dist/router/match-result.js +0 -93
- package/dist/router/match-result.js.map +0 -1
- package/dist/router/metrics.d.ts +0 -20
- package/dist/router/metrics.d.ts.map +0 -1
- package/dist/router/metrics.js +0 -47
- package/dist/router/metrics.js.map +0 -1
- package/dist/router/middleware.d.ts +0 -249
- package/dist/router/middleware.d.ts.map +0 -1
- package/dist/router/middleware.js +0 -434
- package/dist/router/middleware.js.map +0 -1
- package/dist/router/middleware.test.d.ts +0 -2
- package/dist/router/middleware.test.d.ts.map +0 -1
- package/dist/router/middleware.test.js +0 -816
- package/dist/router/middleware.test.js.map +0 -1
- package/dist/router/pattern-matching.d.ts +0 -149
- package/dist/router/pattern-matching.d.ts.map +0 -1
- package/dist/router/pattern-matching.js +0 -349
- package/dist/router/pattern-matching.js.map +0 -1
- package/dist/router/revalidation.d.ts +0 -44
- package/dist/router/revalidation.d.ts.map +0 -1
- package/dist/router/revalidation.js +0 -147
- package/dist/router/revalidation.js.map +0 -1
- package/dist/router/router-context.d.ts +0 -135
- package/dist/router/router-context.d.ts.map +0 -1
- package/dist/router/router-context.js +0 -36
- package/dist/router/router-context.js.map +0 -1
- package/dist/router/segment-resolution.d.ts +0 -127
- package/dist/router/segment-resolution.d.ts.map +0 -1
- package/dist/router/segment-resolution.js +0 -919
- package/dist/router/segment-resolution.js.map +0 -1
- package/dist/router/trie-matching.d.ts +0 -40
- package/dist/router/trie-matching.d.ts.map +0 -1
- package/dist/router/trie-matching.js +0 -127
- package/dist/router/trie-matching.js.map +0 -1
- package/dist/router/types.d.ts +0 -136
- package/dist/router/types.d.ts.map +0 -1
- package/dist/router/types.js +0 -7
- package/dist/router/types.js.map +0 -1
- package/dist/router.d.ts +0 -753
- package/dist/router.d.ts.map +0 -1
- package/dist/router.gen.d.ts +0 -6
- package/dist/router.gen.d.ts.map +0 -1
- package/dist/router.gen.js +0 -6
- package/dist/router.gen.js.map +0 -1
- package/dist/router.js +0 -1304
- package/dist/router.js.map +0 -1
- package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
- package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
- package/dist/rsc/__tests__/helpers.test.js +0 -140
- package/dist/rsc/__tests__/helpers.test.js.map +0 -1
- package/dist/rsc/handler.d.ts +0 -45
- package/dist/rsc/handler.d.ts.map +0 -1
- package/dist/rsc/handler.js +0 -1172
- package/dist/rsc/handler.js.map +0 -1
- package/dist/rsc/helpers.d.ts +0 -16
- package/dist/rsc/helpers.d.ts.map +0 -1
- package/dist/rsc/helpers.js +0 -55
- package/dist/rsc/helpers.js.map +0 -1
- package/dist/rsc/index.d.ts +0 -22
- package/dist/rsc/index.d.ts.map +0 -1
- package/dist/rsc/index.js +0 -23
- package/dist/rsc/index.js.map +0 -1
- package/dist/rsc/nonce.d.ts +0 -9
- package/dist/rsc/nonce.d.ts.map +0 -1
- package/dist/rsc/nonce.js +0 -18
- package/dist/rsc/nonce.js.map +0 -1
- package/dist/rsc/types.d.ts +0 -206
- package/dist/rsc/types.d.ts.map +0 -1
- package/dist/rsc/types.js +0 -8
- package/dist/rsc/types.js.map +0 -1
- package/dist/search-params.d.ts +0 -103
- package/dist/search-params.d.ts.map +0 -1
- package/dist/search-params.js +0 -74
- package/dist/search-params.js.map +0 -1
- package/dist/segment-system.d.ts +0 -75
- package/dist/segment-system.d.ts.map +0 -1
- package/dist/segment-system.js +0 -336
- package/dist/segment-system.js.map +0 -1
- package/dist/server/context.d.ts +0 -245
- package/dist/server/context.d.ts.map +0 -1
- package/dist/server/context.js +0 -197
- package/dist/server/context.js.map +0 -1
- package/dist/server/fetchable-loader-store.d.ts +0 -18
- package/dist/server/fetchable-loader-store.d.ts.map +0 -1
- package/dist/server/fetchable-loader-store.js +0 -18
- package/dist/server/fetchable-loader-store.js.map +0 -1
- package/dist/server/handle-store.d.ts +0 -85
- package/dist/server/handle-store.d.ts.map +0 -1
- package/dist/server/handle-store.js +0 -142
- package/dist/server/handle-store.js.map +0 -1
- package/dist/server/loader-registry.d.ts +0 -55
- package/dist/server/loader-registry.d.ts.map +0 -1
- package/dist/server/loader-registry.js +0 -132
- package/dist/server/loader-registry.js.map +0 -1
- package/dist/server/request-context.d.ts +0 -226
- package/dist/server/request-context.d.ts.map +0 -1
- package/dist/server/request-context.js +0 -290
- package/dist/server/request-context.js.map +0 -1
- package/dist/server/root-layout.d.ts +0 -4
- package/dist/server/root-layout.d.ts.map +0 -1
- package/dist/server/root-layout.js +0 -5
- package/dist/server/root-layout.js.map +0 -1
- package/dist/server.d.ts +0 -15
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -20
- package/dist/server.js.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
- package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
- package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
- package/dist/ssr/index.d.ts +0 -98
- package/dist/ssr/index.d.ts.map +0 -1
- package/dist/ssr/index.js +0 -158
- package/dist/ssr/index.js.map +0 -1
- package/dist/static-handler.d.ts +0 -50
- package/dist/static-handler.d.ts.map +0 -1
- package/dist/static-handler.gen.d.ts +0 -5
- package/dist/static-handler.gen.d.ts.map +0 -1
- package/dist/static-handler.gen.js +0 -5
- package/dist/static-handler.gen.js.map +0 -1
- package/dist/static-handler.js +0 -29
- package/dist/static-handler.js.map +0 -1
- package/dist/theme/ThemeProvider.d.ts +0 -20
- package/dist/theme/ThemeProvider.d.ts.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -240
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/ThemeScript.d.ts +0 -48
- package/dist/theme/ThemeScript.d.ts.map +0 -1
- package/dist/theme/ThemeScript.js +0 -13
- package/dist/theme/ThemeScript.js.map +0 -1
- package/dist/theme/__tests__/theme.test.d.ts +0 -2
- package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
- package/dist/theme/__tests__/theme.test.js +0 -103
- package/dist/theme/__tests__/theme.test.js.map +0 -1
- package/dist/theme/constants.d.ts +0 -29
- package/dist/theme/constants.d.ts.map +0 -1
- package/dist/theme/constants.js +0 -48
- package/dist/theme/constants.js.map +0 -1
- package/dist/theme/index.d.ts +0 -31
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js +0 -36
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/theme-context.d.ts +0 -40
- package/dist/theme/theme-context.d.ts.map +0 -1
- package/dist/theme/theme-context.js +0 -60
- package/dist/theme/theme-context.js.map +0 -1
- package/dist/theme/theme-script.d.ts +0 -27
- package/dist/theme/theme-script.d.ts.map +0 -1
- package/dist/theme/theme-script.js +0 -147
- package/dist/theme/theme-script.js.map +0 -1
- package/dist/theme/types.d.ts +0 -163
- package/dist/theme/types.d.ts.map +0 -1
- package/dist/theme/types.js +0 -11
- package/dist/theme/types.js.map +0 -1
- package/dist/theme/use-theme.d.ts +0 -12
- package/dist/theme/use-theme.d.ts.map +0 -1
- package/dist/theme/use-theme.js +0 -40
- package/dist/theme/use-theme.js.map +0 -1
- package/dist/types.d.ts +0 -1479
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -10
- package/dist/types.js.map +0 -1
- package/dist/urls.d.ts +0 -441
- package/dist/urls.d.ts.map +0 -1
- package/dist/urls.gen.d.ts +0 -8
- package/dist/urls.gen.d.ts.map +0 -1
- package/dist/urls.gen.js +0 -8
- package/dist/urls.gen.js.map +0 -1
- package/dist/urls.js +0 -443
- package/dist/urls.js.map +0 -1
- package/dist/use-loader.d.ts +0 -127
- package/dist/use-loader.d.ts.map +0 -1
- package/dist/use-loader.js +0 -237
- package/dist/use-loader.js.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
- package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
- package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
- package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.js +0 -39
- package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
- package/dist/vite/ast-handler-extract.d.ts +0 -49
- package/dist/vite/ast-handler-extract.d.ts.map +0 -1
- package/dist/vite/ast-handler-extract.js +0 -249
- package/dist/vite/ast-handler-extract.js.map +0 -1
- package/dist/vite/expose-action-id.d.ts +0 -19
- package/dist/vite/expose-action-id.d.ts.map +0 -1
- package/dist/vite/expose-action-id.js +0 -250
- package/dist/vite/expose-action-id.js.map +0 -1
- package/dist/vite/expose-id-utils.d.ts +0 -69
- package/dist/vite/expose-id-utils.d.ts.map +0 -1
- package/dist/vite/expose-id-utils.js +0 -289
- package/dist/vite/expose-id-utils.js.map +0 -1
- package/dist/vite/expose-internal-ids.d.ts +0 -22
- package/dist/vite/expose-internal-ids.d.ts.map +0 -1
- package/dist/vite/expose-internal-ids.js +0 -886
- package/dist/vite/expose-internal-ids.js.map +0 -1
- package/dist/vite/index.d.ts +0 -149
- package/dist/vite/index.d.ts.map +0 -1
- package/dist/vite/index.js.bak +0 -5448
- package/dist/vite/index.js.map +0 -1
- package/dist/vite/index.named-routes.gen.ts +0 -103
- package/dist/vite/package-resolution.d.ts +0 -43
- package/dist/vite/package-resolution.d.ts.map +0 -1
- package/dist/vite/package-resolution.js +0 -112
- package/dist/vite/package-resolution.js.map +0 -1
- package/dist/vite/virtual-entries.d.ts +0 -25
- package/dist/vite/virtual-entries.d.ts.map +0 -1
- package/dist/vite/virtual-entries.js +0 -110
- package/dist/vite/virtual-entries.js.map +0 -1
- package/skills/migrate-react-router/cloudflare-workers.md +0 -129
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* renderHandler — run a REAL route handler and assert what it renders.
|
|
3
|
+
*
|
|
4
|
+
* A Rango route handler is a pure function `(ctx) => RSC` (what you pass to
|
|
5
|
+
* `path("/p/:slug", ProductPage)`), NOT a component. To test one faithfully you
|
|
6
|
+
* must give it the HandlerContext the router builds at runtime, so `ctx.params`,
|
|
7
|
+
* `ctx.use(Loader)`, `ctx.use(Meta)` / `ctx.use(Breadcrumbs)` (handles),
|
|
8
|
+
* `ctx.reverse`, `ctx.get`/`ctx.header`/`cookies()` all work. renderHandler does
|
|
9
|
+
* exactly that, then serializes the handler's returned RSC and deserializes it
|
|
10
|
+
* to an inspectable tree (same serialize/deserialize core as renderServerTree).
|
|
11
|
+
*
|
|
12
|
+
* Loaders are SEEDED (no real loader execution) the same way `runLoader` seeds
|
|
13
|
+
* them — pass `loaders: [[ProductLoader, data]]`. Handle pushes
|
|
14
|
+
* (`ctx.use(Meta)({...})`) are captured on `result.handles`. The handler's
|
|
15
|
+
* cookie/header/flash effects and a thrown/returned redirect are surfaced too
|
|
16
|
+
* (like `runInRequestContext`). If the handler returns/throws a `Response`
|
|
17
|
+
* (a response route / `throw redirect()`), there is no RSC `tree`.
|
|
18
|
+
*
|
|
19
|
+
* Must run under the `react-server` export condition (the rsc Vitest project).
|
|
20
|
+
* Wire `rangoUseClientTransform()` so `"use client"` islands in the handler's RSC
|
|
21
|
+
* auto-register (or pass `clientComponents`).
|
|
22
|
+
*/
|
|
23
|
+
import type { ReactNode } from "react";
|
|
24
|
+
import { type Handle } from "../handle.js";
|
|
25
|
+
import type { HandlerContext } from "../types/handler-context.js";
|
|
26
|
+
import type { LoaderDefinition } from "../types.js";
|
|
27
|
+
import { type VarsInit, type StateCookieSeed } from "./internal/seed-vars.js";
|
|
28
|
+
export type { StateCookieSeed } from "./internal/seed-vars.js";
|
|
29
|
+
import type { SegmentCacheStore } from "../cache/types.js";
|
|
30
|
+
import type { CacheProfile } from "../cache/profile-registry.js";
|
|
31
|
+
import type { ThemeConfig } from "../theme/types.js";
|
|
32
|
+
/** A route handler under test: the `(ctx) => RSC | Response` function you pass to `path(...)`. */
|
|
33
|
+
export type TestableHandler<TEnv = any> = (ctx: HandlerContext<any, TEnv>) => ReactNode | Response | Promise<ReactNode | Response>;
|
|
34
|
+
/** Options for {@link renderHandler}. */
|
|
35
|
+
export interface RenderHandlerOptions<TEnv = any> {
|
|
36
|
+
/** Route params surfaced as `ctx.params`. */
|
|
37
|
+
params?: Record<string, string>;
|
|
38
|
+
/** Environment bindings surfaced as `ctx.env`. */
|
|
39
|
+
env?: TEnv;
|
|
40
|
+
/** Backing Request (string or Request); defaults to a localhost GET. */
|
|
41
|
+
request?: Request | string;
|
|
42
|
+
/** Request headers (e.g. Cookie) the handler reads via `cookies()`. */
|
|
43
|
+
headers?: HeadersInit;
|
|
44
|
+
/** Variables a prior middleware set, read via `ctx.get(...)`. Object or tuples. */
|
|
45
|
+
vars?: VarsInit;
|
|
46
|
+
/** Matched route name (drives `ctx.routeName` and scoped reverse). */
|
|
47
|
+
routeName?: string;
|
|
48
|
+
/** Route name -> pattern map enabling `ctx.reverse()`. */
|
|
49
|
+
routeMap?: Record<string, string>;
|
|
50
|
+
/**
|
|
51
|
+
* Seed `ctx.build` (default false) so a handler that branches on the
|
|
52
|
+
* build-time pass — including calling `ctx.dynamic()` on a MISS — is
|
|
53
|
+
* unit-testable. Assert a `ctx.dynamic()` call via `result.dynamic`.
|
|
54
|
+
*/
|
|
55
|
+
build?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Seed the data `ctx.use(SomeLoader)` returns — NO real loader runs (same model
|
|
58
|
+
* as `runLoader`'s `loaders`). Matched by loader reference, so a real
|
|
59
|
+
* `createLoader()` handle resolves regardless of its build-injected `$$id`.
|
|
60
|
+
*/
|
|
61
|
+
loaders?: ReadonlyArray<readonly [LoaderDefinition<any, any>, unknown]>;
|
|
62
|
+
/**
|
|
63
|
+
* `"use client"` components in the handler's RSC, so they serialize as real
|
|
64
|
+
* boundaries when `rangoUseClientTransform()` is not wired. Keyed by name; see
|
|
65
|
+
* renderServerTree's `clientComponents`.
|
|
66
|
+
*/
|
|
67
|
+
clientComponents?: Record<string, unknown>;
|
|
68
|
+
/**
|
|
69
|
+
* Customize the rango state cookie a handler that calls
|
|
70
|
+
* `invalidateClientCache()` rotates. The name is ALWAYS seeded (default
|
|
71
|
+
* `rango-state_router_0`) so the rotation `Set-Cookie` is emitted like
|
|
72
|
+
* production rather than no-opping; override `prefix`/`routerId` to match your
|
|
73
|
+
* `createRouter({ stateCookiePrefix, id })`, or `version` (the build
|
|
74
|
+
* identifier prefixed to the rotated `{version}:{timestamp}` value, default
|
|
75
|
+
* `"0"`). Assert via `result.response.headers.getSetCookie()` against
|
|
76
|
+
* `result.stateCookieName`.
|
|
77
|
+
*/
|
|
78
|
+
stateCookie?: StateCookieSeed;
|
|
79
|
+
/**
|
|
80
|
+
* Segment cache store backing a `"use cache"` function the handler invokes
|
|
81
|
+
* (e.g. `new MemorySegmentCacheStore()`). Without it, `registerCachedFunction`
|
|
82
|
+
* takes the uncached bypass and the cached path is NOT exercised (the runtime
|
|
83
|
+
* emits a one-time warning under the test runner). Pair with `cacheProfiles`
|
|
84
|
+
* so the profile the directive names resolves.
|
|
85
|
+
*/
|
|
86
|
+
cacheStore?: SegmentCacheStore;
|
|
87
|
+
/**
|
|
88
|
+
* Cache profiles in the `createRouter({ cacheProfiles })` shape, required for
|
|
89
|
+
* `"use cache: profileName"` resolution once a `cacheStore` is wired.
|
|
90
|
+
*/
|
|
91
|
+
cacheProfiles?: Record<string, CacheProfile>;
|
|
92
|
+
/**
|
|
93
|
+
* Render as if inside a server action's revalidation render (production sets
|
|
94
|
+
* this in revalidateAfterAction). A stale `"use cache"` entry whose profile
|
|
95
|
+
* opts into `foregroundOnAction` then re-executes in the FOREGROUND (fresh
|
|
96
|
+
* result in this render) instead of being served stale + revalidated in the
|
|
97
|
+
* background. Without it, a stale entry keeps SWR. Pair with `cacheStore` +
|
|
98
|
+
* `cacheProfiles` to exercise the `foregroundOnAction` opt-in.
|
|
99
|
+
*/
|
|
100
|
+
inActionRevalidation?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Theme config in the same shape `createRouter({ theme })` takes (e.g. `true`
|
|
103
|
+
* or `{ themes: [...] }`). Without it `ctx.theme`/`ctx.setTheme` are inert,
|
|
104
|
+
* mirroring an app with no theme configured. Pass one to exercise a handler
|
|
105
|
+
* that reads `ctx.theme` or writes the theme cookie via `ctx.setTheme(...)`.
|
|
106
|
+
*/
|
|
107
|
+
theme?: ThemeConfig | true;
|
|
108
|
+
}
|
|
109
|
+
/** Result of {@link renderHandler}. */
|
|
110
|
+
export interface RenderHandlerResult {
|
|
111
|
+
/**
|
|
112
|
+
* The deserialized RSC the handler returned, as an inspectable React element
|
|
113
|
+
* tree — `undefined` when the handler returned or threw a `Response`. Use
|
|
114
|
+
* `findClientBoundaries` (from testing/flight) to locate client islands.
|
|
115
|
+
*/
|
|
116
|
+
tree: unknown;
|
|
117
|
+
/** The raw Flight wire string; `undefined` when the handler produced a `Response`. */
|
|
118
|
+
flight: string | undefined;
|
|
119
|
+
/** The value the handler THREW (a `redirect()`/`notFound()` Response), captured not re-thrown. */
|
|
120
|
+
thrown: unknown;
|
|
121
|
+
/** The merged Response (status + headers + Set-Cookie); a thrown/returned redirect merged with accumulated effects. */
|
|
122
|
+
response: Response;
|
|
123
|
+
/** Effective cookie view after the handler ran, as `{ name: value }`. */
|
|
124
|
+
cookies: Record<string, string>;
|
|
125
|
+
/** Response headers as `{ name: value }` (excludes set-cookie; includes a redirect Location). */
|
|
126
|
+
headers: Record<string, string>;
|
|
127
|
+
/**
|
|
128
|
+
* The resolved rango state cookie name this run seeded (default
|
|
129
|
+
* `rango-state_router_0`, or composed from `opts.stateCookie`). Assert the
|
|
130
|
+
* `invalidateClientCache()` rotation against it without recomputing:
|
|
131
|
+
* `response.headers.getSetCookie().some((c) => c.startsWith(stateCookieName + "="))`.
|
|
132
|
+
*/
|
|
133
|
+
stateCookieName: string;
|
|
134
|
+
/** Location state the handler set (`ctx.setLocationState`/`redirect({ state })`), as `{ key: value }`. */
|
|
135
|
+
locationState: Record<string, unknown>;
|
|
136
|
+
/** What the handler pushed via `ctx.use(Handle)(...)` (e.g. Meta, Breadcrumbs), keyed by handle. */
|
|
137
|
+
handles: Map<Handle<any, any>, unknown[]>;
|
|
138
|
+
/**
|
|
139
|
+
* Whether the handler called `ctx.dynamic()` (the PPR shell opt-out). The
|
|
140
|
+
* public way to assert the opt-out without reading the `@internal`
|
|
141
|
+
* `ctx._dynamic`.
|
|
142
|
+
*/
|
|
143
|
+
dynamic: boolean;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Run a route handler with a seeded HandlerContext and return its rendered RSC
|
|
147
|
+
* (deserialized tree) plus the effects it produced. See the module header.
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```ts
|
|
151
|
+
* // ProductPage is the real handler: (ctx) => <main>{ctx.params.slug}...</main>
|
|
152
|
+
* const { tree, handles } = await renderHandler(ProductPage, {
|
|
153
|
+
* params: { slug: "wine" },
|
|
154
|
+
* loaders: [[ProductLoader, { name: "Wine", price: 9 }]],
|
|
155
|
+
* vars: [[Tenant, tenant]],
|
|
156
|
+
* routeMap: { product: "/p/:slug" },
|
|
157
|
+
* });
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
export declare function renderHandler<TEnv = any>(handler: TestableHandler<TEnv>, opts?: RenderHandlerOptions<TEnv>): Promise<RenderHandlerResult>;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* renderRoute — a React-Testing-Library-style helper for unit-testing CLIENT
|
|
3
|
+
* components that read @rangojs/router client context (useParams, useReverse,
|
|
4
|
+
* Outlet, useNavigation, useLoader).
|
|
5
|
+
*
|
|
6
|
+
* Peer of React Router's createRoutesStub and Expo Router's renderRouter. It
|
|
7
|
+
* mounts the router's NavigationProvider plus a synthetic segment tree so that
|
|
8
|
+
* a component under test sees real router context, without spinning up a
|
|
9
|
+
* server, a Vite build, or a real Flight round-trip.
|
|
10
|
+
*
|
|
11
|
+
* FIDELITY CONTRACT — read before relying on this helper:
|
|
12
|
+
* This renders the CLIENT tree ONLY. The segment tree is built synthetically
|
|
13
|
+
* from the `routes` you pass; there is no server render and no Flight
|
|
14
|
+
* (de)serialization. Consequences:
|
|
15
|
+
* - It will NOT catch server/client boundary reference-identity remount bugs
|
|
16
|
+
* (a server-serialized component reference differing from the client
|
|
17
|
+
* reference). Use renderServerTree / e2e for those.
|
|
18
|
+
* - It will NOT catch real Flight serialization errors (non-serializable
|
|
19
|
+
* props crossing the RSC boundary), loader execution on the server,
|
|
20
|
+
* middleware, or handler ordering. Those are renderServerTree / renderHandler
|
|
21
|
+
* / e2e territory.
|
|
22
|
+
* - Loader data, location state, and handle output are SEEDED directly into
|
|
23
|
+
* client context (see the `loaders` / `locationState` / `handles` options) —
|
|
24
|
+
* nothing is executed on the server. This exercises the read path
|
|
25
|
+
* (useLoader / useLocationState / useHandle from context), not the run path.
|
|
26
|
+
* - navigate() commits synchronously, so it does NOT drive the navigation
|
|
27
|
+
* lifecycle: useNavigation().state, useLinkStatus().pending, and
|
|
28
|
+
* useAction().state stay "idle". Assert pending/loading/submitting transition
|
|
29
|
+
* states with renderServerTree / e2e instead (navigate() warns once if used).
|
|
30
|
+
* What it DOES cover: client hooks that read NavigationProvider /
|
|
31
|
+
* OutletContext — useParams, useReverse, useHref, useMount, useNavigation,
|
|
32
|
+
* useRouter, usePathname, useSearchParams, Outlet nesting, useLoader /
|
|
33
|
+
* useFetchLoader (seeded data), useLocationState (seeded), and useHandle (seeded).
|
|
34
|
+
* Basename-mounted apps: pass the `basename` option so useRouter().basename,
|
|
35
|
+
* <Link> prefixing, and useMount/useHref resolve against the mount prefix
|
|
36
|
+
* (without it they resolve at the root "/"). For an include("/shop", ...)
|
|
37
|
+
* subtree, pass the `mount` option so useMount() returns the mounted prefix
|
|
38
|
+
* (the segment chain is wrapped in a MountContext exactly as in production).
|
|
39
|
+
*/
|
|
40
|
+
import type { ComponentType } from "react";
|
|
41
|
+
import type { RenderResult } from "@testing-library/react";
|
|
42
|
+
import type { NavigationStore } from "../browser/types.js";
|
|
43
|
+
import type { EventController } from "../browser/event-controller.js";
|
|
44
|
+
import type { LoaderDefinition } from "../types.js";
|
|
45
|
+
import type { LocationStateDefinition } from "../browser/react/location-state-shared.js";
|
|
46
|
+
import type { Handle } from "../handle.js";
|
|
47
|
+
import type { ThemeConfig } from "../theme/types.js";
|
|
48
|
+
/**
|
|
49
|
+
* Seed shape for `options.handle`, matching the handle wire format:
|
|
50
|
+
* `{ [handleName]: { [segmentId]: pushedValues[] } }` (each segment accumulates
|
|
51
|
+
* an array of values pushed for that handle).
|
|
52
|
+
*/
|
|
53
|
+
export type HandleDataSeed = Record<string, Record<string, unknown[]>>;
|
|
54
|
+
export interface RenderRouteSpec {
|
|
55
|
+
/**
|
|
56
|
+
* The route pattern this node matches, e.g. "/products/:productId". The LAST
|
|
57
|
+
* spec in the array is treated as the leaf route; earlier specs are layouts
|
|
58
|
+
* wrapping it. Only the leaf pattern is matched against the `request` URL to
|
|
59
|
+
* extract params; layout patterns are informational.
|
|
60
|
+
*/
|
|
61
|
+
path: string;
|
|
62
|
+
/** The component rendered for this node (the leaf route or a layout body). */
|
|
63
|
+
Component: ComponentType;
|
|
64
|
+
/**
|
|
65
|
+
* Optional layout component. When set on the LEAF spec it wraps the route in
|
|
66
|
+
* its own layout segment (useful for a route that owns a layout). Prefer
|
|
67
|
+
* expressing layouts as their own array entries instead.
|
|
68
|
+
*/
|
|
69
|
+
layout?: ComponentType;
|
|
70
|
+
/**
|
|
71
|
+
* Loader ids ($$id) whose seeded data (from `options.loaderData`) should be
|
|
72
|
+
* attached to THIS node's segment so useLoader/useFetchLoader resolve it from
|
|
73
|
+
* context. When omitted, every key in `options.loaderData` is attached to the
|
|
74
|
+
* leaf route segment.
|
|
75
|
+
*/
|
|
76
|
+
loaderIds?: string[];
|
|
77
|
+
/** Optional route name (informational; not used for matching). */
|
|
78
|
+
name?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Options for renderRoute.
|
|
82
|
+
*/
|
|
83
|
+
export interface RenderRouteOptions {
|
|
84
|
+
/**
|
|
85
|
+
* The initial location to render at: a `Request`, or a URL string (absolute or
|
|
86
|
+
* path). Only the URL is read (this is a client render — headers/method are
|
|
87
|
+
* ignored); named `request` for parity with the other primitives. Defaults to
|
|
88
|
+
* the leaf spec's static prefix or "/".
|
|
89
|
+
*/
|
|
90
|
+
request?: Request | string;
|
|
91
|
+
/**
|
|
92
|
+
* Loader data to seed into client context, keyed by loader id ($$id). A
|
|
93
|
+
* component calling useLoader(SomeLoader) reads `loaderData[SomeLoader.$$id]`.
|
|
94
|
+
* Seeded values are placed in the route segment's OutletProvider context, so
|
|
95
|
+
* the read path is exercised without executing any loader.
|
|
96
|
+
*/
|
|
97
|
+
loaderData?: Record<string, unknown>;
|
|
98
|
+
/**
|
|
99
|
+
* Loaders to seed by REFERENCE — the robust way to test a component that calls
|
|
100
|
+
* `useLoader(loader)`. A real `createLoader()` handle has an empty `$$id` in a
|
|
101
|
+
* bare test (the id is injected by the Vite plugin at build time), so keying
|
|
102
|
+
* `loaderData` by `$$id` collides under `""` and `useLoader` resolves nothing.
|
|
103
|
+
* Passing `[loader, data]` pairs lets renderRoute assign a synthetic stable id
|
|
104
|
+
* and wire `useLoader` to it. Prefer this over `loaderData` for real handles.
|
|
105
|
+
*
|
|
106
|
+
* NOTE: when a real handle has no `$$id`, renderRoute MUTATES it to assign a
|
|
107
|
+
* synthetic stable id (so repeat renders key consistently). This is a side
|
|
108
|
+
* effect on your input object; a handle reused across tests keeps that id.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* // useLoader returns an ENVELOPE — destructure `data`, it is not the bare value.
|
|
112
|
+
* function CartBadge() {
|
|
113
|
+
* const { data } = useLoader(CartLoader); // NOT `useLoader(CartLoader).itemCount`
|
|
114
|
+
* return <span>{data.itemCount}</span>;
|
|
115
|
+
* }
|
|
116
|
+
* renderRoute([{ path: "/cart", Component: CartBadge }], {
|
|
117
|
+
* loaders: [[CartLoader, { itemCount: 3, total: 89.97 }]],
|
|
118
|
+
* });
|
|
119
|
+
*/
|
|
120
|
+
loaders?: ReadonlyArray<readonly [LoaderDefinition<any>, unknown]>;
|
|
121
|
+
/**
|
|
122
|
+
* Explicit params. Merged over (and overriding) params extracted from the
|
|
123
|
+
* `request` URL. Use this when the URL alone cannot express the params, or to
|
|
124
|
+
* avoid relying on URL parsing. Supplying params also OPTS OUT of the
|
|
125
|
+
* request/leaf match check: a `request` whose pathname does not resolve the
|
|
126
|
+
* leaf is normally rejected under the test runner, but passing params here
|
|
127
|
+
* tells renderRoute the request is intentionally not the param source.
|
|
128
|
+
*/
|
|
129
|
+
params?: Record<string, string>;
|
|
130
|
+
/**
|
|
131
|
+
* Location-state values to seed by REFERENCE, for components that call
|
|
132
|
+
* `useLocationState(StateDef)`. Like loaders, a real `createLocationState()`
|
|
133
|
+
* handle has an empty injected key in a bare test, so pass `[def, value]`
|
|
134
|
+
* pairs; renderRoute assigns a synthetic key and writes it to `history.state`.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* renderRoute([{ path: "/", Component: FlashBanner }], {
|
|
138
|
+
* locationState: [[FlashMessage, { text: "Saved" }]],
|
|
139
|
+
* });
|
|
140
|
+
*/
|
|
141
|
+
locationState?: ReadonlyArray<readonly [LocationStateDefinition<any, any>, unknown]>;
|
|
142
|
+
/**
|
|
143
|
+
* Handles to seed by REFERENCE, for components that read handle output via
|
|
144
|
+
* `useHandle(SomeHandle)` (e.g. a client `Breadcrumbs` trail). Each entry is
|
|
145
|
+
* `[handle, pushedValues[]]` — the values a route's handlers would have pushed;
|
|
146
|
+
* renderRoute attaches them to the leaf route segment under the handle's id.
|
|
147
|
+
* Built-in handles (Breadcrumbs/Meta) have stable ids and work directly.
|
|
148
|
+
*
|
|
149
|
+
* Handle data is accumulated GLOBALLY on the event controller, not scoped per
|
|
150
|
+
* segment like loaders — so ANY component in the chain reads the seeded values,
|
|
151
|
+
* a LAYOUT (e.g. a DetailLayout/ActionToolbar reading a handle) just as much as
|
|
152
|
+
* the leaf route. Most handle usage is server-side (`ctx.use(...)`) and is
|
|
153
|
+
* better covered by `renderToFlightString`/e2e; this seeds the client read path
|
|
154
|
+
* only.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* renderRoute([{ path: "/p", Component: BreadcrumbTrail }], {
|
|
158
|
+
* handles: [[Breadcrumbs, [{ label: "Home", href: "/" }, { label: "P", href: "/p" }]]],
|
|
159
|
+
* });
|
|
160
|
+
*/
|
|
161
|
+
handles?: ReadonlyArray<readonly [Handle<any, any>, unknown[]]>;
|
|
162
|
+
/**
|
|
163
|
+
* Advanced: raw handle data in wire format
|
|
164
|
+
* `{ [handleId]: { [segmentId]: pushedValues[] } }`. Prefer `handles` (which
|
|
165
|
+
* computes the segment id for you). Merged with `handles`.
|
|
166
|
+
*/
|
|
167
|
+
handle?: HandleDataSeed;
|
|
168
|
+
/**
|
|
169
|
+
* Route name -> pattern map. Informational for parity with the server test
|
|
170
|
+
* context; client useReverse takes its map directly as an argument, so this
|
|
171
|
+
* is not consumed by the client hooks.
|
|
172
|
+
*/
|
|
173
|
+
routeMap?: Record<string, string>;
|
|
174
|
+
/**
|
|
175
|
+
* Router basename (the `createRouter({ basename })` value). Wired into
|
|
176
|
+
* NavigationProvider so `useRouter().basename`, `<Link>` href prefixing, and
|
|
177
|
+
* `useMount`/`useHref` resolve against the mounted prefix instead of the root.
|
|
178
|
+
* Normalized exactly like createRouter (leading slash forced, trailing
|
|
179
|
+
* stripped, bare "/" -> undefined). Defaults to undefined (root mount).
|
|
180
|
+
*/
|
|
181
|
+
basename?: string;
|
|
182
|
+
/**
|
|
183
|
+
* include() mount prefix, to model an `include("/shop", ...)` subtree so a
|
|
184
|
+
* component (route OR layout in the chain) calling `useMount()` returns the
|
|
185
|
+
* mounted prefix instead of "/". Wraps the segment chain in a MountContext
|
|
186
|
+
* exactly as `renderSegments` does in production (a segment whose `mountPath`
|
|
187
|
+
* is set is wrapped in a MountContextProvider). Normalized like a path prefix
|
|
188
|
+
* (leading slash forced, trailing stripped, bare "/" -> root). Defaults to "/".
|
|
189
|
+
* An explicitly-passed `request` must match the leaf `path` directly (paths are
|
|
190
|
+
* include-RELATIVE; the mount does NOT rewrite the request) — pass the relative
|
|
191
|
+
* path, not the mount-prefixed one, or renderRoute throws rather than silently
|
|
192
|
+
* rendering empty params.
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* renderRoute([{ path: "/c/wine", Component: ProductPage }], { mount: "/shop" });
|
|
196
|
+
* // useMount() inside ProductPage returns "/shop"
|
|
197
|
+
*/
|
|
198
|
+
mount?: string;
|
|
199
|
+
/**
|
|
200
|
+
* Theme config in the `createRouter({ theme })` shape (resolved internally) to
|
|
201
|
+
* wrap the tree in a ThemeProvider. Defaults to no provider. Note: a component
|
|
202
|
+
* that calls `useTheme()` REQUIRES a provider — it throws "used outside
|
|
203
|
+
* ThemeProvider" without one — so pass a config (e.g. `true`) to test such a
|
|
204
|
+
* component.
|
|
205
|
+
*/
|
|
206
|
+
theme?: ThemeConfig | true;
|
|
207
|
+
/**
|
|
208
|
+
* CSP nonce to seed via NonceContext, so a component calling `useNonce()`
|
|
209
|
+
* (e.g. an analytics/GTM head-script component) sees this value — mirroring
|
|
210
|
+
* what the SSR renderer provides per request. Defaults to undefined (the
|
|
211
|
+
* browser default), matching production client behavior.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* const { getByTestId } = await renderRoute(
|
|
215
|
+
* [{ path: "/", Component: NonceProbe }],
|
|
216
|
+
* { nonce: "test-nonce" },
|
|
217
|
+
* );
|
|
218
|
+
* expect(getByTestId("nonce").textContent).toBe("test-nonce");
|
|
219
|
+
*/
|
|
220
|
+
nonce?: string;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Imperative handle returned alongside the RTL result.
|
|
224
|
+
*/
|
|
225
|
+
export interface TestRouterHandle {
|
|
226
|
+
/**
|
|
227
|
+
* Navigate to a new URL. Re-resolves the URL against the supplied `routes`,
|
|
228
|
+
* updates params + location, and re-renders the segment tree. This is a
|
|
229
|
+
* client-only navigation: no server fetch occurs, so only the components in
|
|
230
|
+
* `routes` can be reached.
|
|
231
|
+
*/
|
|
232
|
+
navigate(url: string): Promise<void>;
|
|
233
|
+
/** The current committed pathname. */
|
|
234
|
+
pathname(): string;
|
|
235
|
+
/** The current committed params. */
|
|
236
|
+
params(): Record<string, string>;
|
|
237
|
+
/** The underlying navigation store (advanced use). */
|
|
238
|
+
store: NavigationStore;
|
|
239
|
+
/** The underlying event controller (advanced use). */
|
|
240
|
+
eventController: EventController;
|
|
241
|
+
}
|
|
242
|
+
/** Result of renderRoute: RTL's render result plus the router handle. */
|
|
243
|
+
export type RenderRouteResult = RenderResult & {
|
|
244
|
+
router: TestRouterHandle;
|
|
245
|
+
};
|
|
246
|
+
export declare function renderRoute(routes: RenderRouteSpec[], options?: RenderRouteOptions): Promise<RenderRouteResult>;
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* runLoader — unit-test a loader function in isolation.
|
|
3
|
+
*
|
|
4
|
+
* Pass the RAW async loader body `(ctx) => ...`, or a registered `createLoader()`
|
|
5
|
+
* handle (its fn is recovered from the fetchable registry by `$$id`). The raw
|
|
6
|
+
* body needs no build step; the handle works because `createLoader` assigns a
|
|
7
|
+
* runtime-fallback `$$id` and registers its fn even without the Vite plugin (when
|
|
8
|
+
* imported through the server build — the consumer's `@rangojs/router` under the
|
|
9
|
+
* `rangoTestConfig()` preset). Either way the function is invoked directly with a
|
|
10
|
+
* constructed LoaderContext.
|
|
11
|
+
*
|
|
12
|
+
* The LoaderContext mirrors the canonical shape the router builds at runtime
|
|
13
|
+
* (see createUseFunction in server/request-context.ts). The loader runs inside
|
|
14
|
+
* runWithRequestContext so getRequestContext(), cookie reads, and header
|
|
15
|
+
* mutations resolve exactly as in production.
|
|
16
|
+
*
|
|
17
|
+
* Limitations (v1):
|
|
18
|
+
* - `ctx.rendered()` is not available — it requires the DSL render barrier,
|
|
19
|
+
* which only exists inside a full match. Calling it throws.
|
|
20
|
+
* - `ctx.reverse()` throws unless `routeMap` is provided (it does NOT fall back
|
|
21
|
+
* to the global route map — that would leak whichever routes another test
|
|
22
|
+
* registered).
|
|
23
|
+
* - `ctx.use(handle)` follows the production rule: reading a handle before
|
|
24
|
+
* `await ctx.rendered()` throws (pass `rendered` to mock the barrier).
|
|
25
|
+
* - `use cache` functions only cache (and only fire their taint/profile guards)
|
|
26
|
+
* when a `cacheStore` is provided — without one, registerCachedFunction
|
|
27
|
+
* bypasses (it checks for a store first). Pass `cacheStore`/`cacheProfiles`
|
|
28
|
+
* to exercise cached loaders; otherwise such a call runs uncached, like an
|
|
29
|
+
* app with no cache configured.
|
|
30
|
+
* - `formData` is exposed verbatim; no multipart parsing is performed.
|
|
31
|
+
* - Scoped dot-local reverse (`.sibling`) uses only the supplied `routeMap`;
|
|
32
|
+
* the production root-scoping signal (derived from the global registry) is
|
|
33
|
+
* not modeled, so a dotted name resolves against `routeMap` as given.
|
|
34
|
+
*/
|
|
35
|
+
import type { LoaderContext, LoaderDefinition } from "../types.js";
|
|
36
|
+
import type { ContextVar } from "../context-var.js";
|
|
37
|
+
import { type Handle } from "../handle.js";
|
|
38
|
+
import type { ThemeConfig } from "../theme/types.js";
|
|
39
|
+
import type { SegmentCacheStore } from "../cache/types.js";
|
|
40
|
+
import type { CacheProfile } from "../cache/profile-registry.js";
|
|
41
|
+
import { type VarsInit, type StateCookieSeed } from "./internal/context.js";
|
|
42
|
+
/**
|
|
43
|
+
* The loader context surfaced to a `runLoader` body. It mirrors the runtime
|
|
44
|
+
* LoaderContext but RELAXES the two members that are otherwise bound to the
|
|
45
|
+
* app's global route/var augmentation, because in a unit test they are driven by
|
|
46
|
+
* the `routeMap` / `vars` options instead:
|
|
47
|
+
* - `reverse` accepts any route name (the names come from `routeMap`, not the
|
|
48
|
+
* registered route map), and
|
|
49
|
+
* - `get` accepts any string key or ContextVar (keys come from `vars`).
|
|
50
|
+
*/
|
|
51
|
+
export type TestLoaderContext<TEnv = any> = Omit<LoaderContext<any, TEnv>, "reverse" | "get"> & {
|
|
52
|
+
reverse: (name: string, params?: Record<string, string>, search?: Record<string, unknown>) => string;
|
|
53
|
+
get: {
|
|
54
|
+
<T>(contextVar: ContextVar<T>): T | undefined;
|
|
55
|
+
<T = unknown>(key: string): T | undefined;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* A resolver for `ctx.use(OtherLoader)` composition. Receives the dependency
|
|
60
|
+
* loader definition and returns its data (or a promise of it). When omitted,
|
|
61
|
+
* `ctx.use` delegates to the real request-context use(), which executes the
|
|
62
|
+
* dependency's own `fn` if present.
|
|
63
|
+
*/
|
|
64
|
+
export type UseResolver = <T>(loader: LoaderDefinition<T, any>) => Promise<T> | T;
|
|
65
|
+
/**
|
|
66
|
+
* Options for runLoader.
|
|
67
|
+
*/
|
|
68
|
+
export interface RunLoaderOptions<TEnv = any> {
|
|
69
|
+
/** Route params surfaced as `ctx.params` and `ctx.routeParams`. */
|
|
70
|
+
params?: Record<string, string>;
|
|
71
|
+
/** Search params; merged into the request URL so `ctx.searchParams` reflects them. */
|
|
72
|
+
search?: Record<string, string>;
|
|
73
|
+
/**
|
|
74
|
+
* The TYPED `ctx.search` object a route's search schema would produce. Distinct
|
|
75
|
+
* from `search` (which sets the raw `ctx.searchParams`): a loader on a typed
|
|
76
|
+
* search route reads `ctx.search`, which is otherwise `{}` in a test.
|
|
77
|
+
*/
|
|
78
|
+
searchData?: Record<string, unknown>;
|
|
79
|
+
/** Router basename surfaced on the context (drives redirect() prefixing). */
|
|
80
|
+
basename?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Theme config in the same shape `createRouter({ theme })` takes (e.g. `true`
|
|
83
|
+
* or `{ themes: [...] }`). Seeds the request's theme config so nested handler
|
|
84
|
+
* or cache contexts created from this loader observe it. Loaders themselves do
|
|
85
|
+
* not expose `ctx.theme`/`ctx.setTheme` (those are handler/middleware-only).
|
|
86
|
+
*/
|
|
87
|
+
theme?: ThemeConfig | true;
|
|
88
|
+
/** Environment bindings surfaced as `ctx.env`. */
|
|
89
|
+
env?: TEnv;
|
|
90
|
+
/** Override the backing Request (string or Request). Defaults to a localhost GET. */
|
|
91
|
+
request?: Request | string;
|
|
92
|
+
/** Variables a prior middleware would have set (object or [key, value] list). */
|
|
93
|
+
vars?: VarsInit;
|
|
94
|
+
/** Route name -> pattern map enabling `ctx.reverse()`. */
|
|
95
|
+
routeMap?: Record<string, string>;
|
|
96
|
+
/** Matched route name for scoped `.name` reverse resolution. */
|
|
97
|
+
routeName?: string;
|
|
98
|
+
/** HTTP method surfaced as `ctx.method`. Defaults to "GET". */
|
|
99
|
+
method?: string;
|
|
100
|
+
/** Request body surfaced as `ctx.body`. */
|
|
101
|
+
body?: unknown;
|
|
102
|
+
/** Form data surfaced as `ctx.formData`. */
|
|
103
|
+
formData?: FormData;
|
|
104
|
+
/**
|
|
105
|
+
* Seed the data `ctx.use(OtherLoader)` returns, by loader REFERENCE — the same
|
|
106
|
+
* tuple form `renderHandler` / `renderRoute` use (`[[OtherLoader, data]]`).
|
|
107
|
+
* Matched by reference, so a real `createLoader()` handle resolves regardless
|
|
108
|
+
* of its build-injected `$$id`. For dynamic resolution (compute per dependency)
|
|
109
|
+
* use `use` instead; `loaders` is checked first.
|
|
110
|
+
*/
|
|
111
|
+
loaders?: ReadonlyArray<readonly [LoaderDefinition<any, any>, unknown]>;
|
|
112
|
+
/** Resolver for `ctx.use(OtherLoader)` composition (dynamic; `loaders` wins if both match). */
|
|
113
|
+
use?: UseResolver;
|
|
114
|
+
/**
|
|
115
|
+
* Cache store backing `use cache` functions the loader invokes. Without it,
|
|
116
|
+
* a cached function bypasses (registerCachedFunction checks for a store
|
|
117
|
+
* first) and runs uncached — its taint/profile guards never fire. Pass one
|
|
118
|
+
* (e.g. `new MemorySegmentCacheStore()`) to test a cached loader.
|
|
119
|
+
*/
|
|
120
|
+
cacheStore?: SegmentCacheStore;
|
|
121
|
+
/** Cache profiles (the `createRouter({ cacheProfiles })` shape). */
|
|
122
|
+
cacheProfiles?: Record<string, CacheProfile>;
|
|
123
|
+
/**
|
|
124
|
+
* Customize the rango state cookie a loader that calls
|
|
125
|
+
* `invalidateClientCache()` rotates (the name is always seeded — default
|
|
126
|
+
* `rango-state_router_0` — so it rotates like production). Assert via the
|
|
127
|
+
* `Set-Cookie` on the request context's response.
|
|
128
|
+
*/
|
|
129
|
+
stateCookie?: StateCookieSeed;
|
|
130
|
+
/**
|
|
131
|
+
* Mock the `ctx.rendered()` render barrier so a loader that does
|
|
132
|
+
* `await ctx.rendered()` (to read handle data pushed during render) can be
|
|
133
|
+
* unit-tested. By default `ctx.rendered()` throws, because the real barrier
|
|
134
|
+
* only exists during a full route match. Pass `true` to resolve it
|
|
135
|
+
* immediately, or a function to control its timing/side effects.
|
|
136
|
+
*
|
|
137
|
+
* This tests the loader's POST-barrier compute logic against the seeded
|
|
138
|
+
* `handles` below — it does NOT exercise the real push -> accumulate -> barrier
|
|
139
|
+
* wiring (that stays e2e). Pair with `handles` to feed `ctx.use(SomeHandle)`.
|
|
140
|
+
*/
|
|
141
|
+
rendered?: boolean | (() => void | Promise<void>);
|
|
142
|
+
/**
|
|
143
|
+
* Seed the values `ctx.use(SomeHandle)` returns — the ACCUMULATED handle data a
|
|
144
|
+
* loader reads after `await ctx.rendered()`. Matched by handle reference, so a
|
|
145
|
+
* real handle works regardless of its (build-injected) `$$id`.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* await runLoader(livePricesBody, {
|
|
149
|
+
* rendered: true,
|
|
150
|
+
* handles: [[RenderedProducts, ["widget-a", "widget-b"]]],
|
|
151
|
+
* });
|
|
152
|
+
*/
|
|
153
|
+
handles?: ReadonlyArray<readonly [Handle<any, any>, unknown]>;
|
|
154
|
+
}
|
|
155
|
+
/** A raw loader body, or a registered `createLoader()` handle (its fn is recovered). */
|
|
156
|
+
export type RunnableLoader<T> = ((ctx: TestLoaderContext) => Promise<T> | T) | LoaderDefinition<T, any>;
|
|
157
|
+
export declare function runLoader<T>(loader: RunnableLoader<T>, opts?: RunLoaderOptions): Promise<T>;
|
|
158
|
+
export interface RunLoaderResult<T> {
|
|
159
|
+
/**
|
|
160
|
+
* The loader's resolved data (the value bare `runLoader` returns), or
|
|
161
|
+
* `undefined` if it threw (see {@link thrown}). Named `result` for parity with
|
|
162
|
+
* `runInRequestContext`'s envelope.
|
|
163
|
+
*/
|
|
164
|
+
result: T | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* What the loader threw (commonly a `Response` from `throw redirect(...)` on a
|
|
167
|
+
* success path) — captured, NOT re-thrown; assert on it. `undefined` if the
|
|
168
|
+
* loader returned normally.
|
|
169
|
+
*/
|
|
170
|
+
thrown: unknown;
|
|
171
|
+
/**
|
|
172
|
+
* The merged `Response` (status + headers + Set-Cookie). On a thrown redirect,
|
|
173
|
+
* that redirect's `Location` merged with the accumulated cookies/headers — so a
|
|
174
|
+
* loader that sets a session cookie then `throw redirect("/")` exposes BOTH.
|
|
175
|
+
*/
|
|
176
|
+
response: Response;
|
|
177
|
+
/** Effective cookie view: request cookies + the loader's mutations, last-write-wins. */
|
|
178
|
+
cookies: Record<string, string>;
|
|
179
|
+
/** Response headers as `{ name: value }`, EXCLUDING set-cookie (use `cookies`). Lowercased. */
|
|
180
|
+
headers: Record<string, string>;
|
|
181
|
+
/** Location state the loader set (`ctx.setLocationState()` / `redirect({ state })`). */
|
|
182
|
+
locationState: Record<string, unknown>;
|
|
183
|
+
/** The resolved rango state cookie name seeded for the run (default `rango-state_router_0`). */
|
|
184
|
+
stateCookieName: string;
|
|
185
|
+
}
|
|
186
|
+
export declare function runLoaderResult<T>(loader: RunnableLoader<T>, opts?: RunLoaderOptions): Promise<RunLoaderResult<T>>;
|