@rangojs/router 0.0.0-experimental.tapabs2 → 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-handlers.ts +13 -0
- 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
package/src/testing/dispatch.ts
CHANGED
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
* - Response routes (non-RSC) -> serialized Response
|
|
21
21
|
* - json: JSON.stringify(result) (bare value) with application/json
|
|
22
22
|
* - text/html/xml/md: String(result) with the mapped MIME type
|
|
23
|
-
* - handler returning a Response:
|
|
23
|
+
* - handler returning or throwing a Response: re-wrapped like
|
|
24
24
|
* handleResponseRoute (stub headers/cookies merged, Set-Cookie preserved,
|
|
25
25
|
* WebSocket upgrade passed through without reconstruction)
|
|
26
|
-
* - handler throwing
|
|
26
|
+
* - handler throwing a non-Response error: typed 500 / RouterError
|
|
27
27
|
* status, matching handleResponseRoute (RFC 9457 problem+json body with
|
|
28
28
|
* application/problem+json for json routes, text/plain message otherwise)
|
|
29
29
|
* - content-negotiated route: Vary: Accept appended
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
* cache({ key })/cache({ tags }), or a custom store whose keyGenerator/
|
|
54
54
|
* getResponse/putResponse throws) fires onError with phase "cache" and
|
|
55
55
|
* metadata.category, while the request still degrades-to-miss exactly as before.
|
|
56
|
-
* (A thrown
|
|
56
|
+
* (A thrown non-Response route HANDLER error is the one onError path NOT covered —
|
|
57
57
|
* see "DOES NOT support" below.)
|
|
58
58
|
* - createRouter({ telemetry }) match-transaction lifecycle: request.start opens
|
|
59
59
|
* the transaction before the global middleware chain, request.end closes it
|
|
@@ -63,6 +63,10 @@
|
|
|
63
63
|
* (getRequestId). Emission is gated entirely on a configured sink; with none,
|
|
64
64
|
* dispatch does zero new work and stays byte-identical for existing callers.
|
|
65
65
|
* Lets a consumer unit-test their sink wiring in-process instead of only at e2e.
|
|
66
|
+
* - Response-route `renderStartMs` timeouts and `onTimeout`: dispatch races the
|
|
67
|
+
* same terminal response work, reports the timeout through onError/telemetry,
|
|
68
|
+
* and invokes the configured callback. `context.render` is absent because this
|
|
69
|
+
* primitive deliberately does not run the Flight/HTML render driver.
|
|
66
70
|
*
|
|
67
71
|
* What dispatch DOES NOT support (and why):
|
|
68
72
|
* - RSC component routes — rendering requires the Flight serializer + React
|
|
@@ -70,7 +74,7 @@
|
|
|
70
74
|
* This includes partial requests that resolve to a component route.
|
|
71
75
|
* - Server actions (?_rsc_action) — RSC protocol concerns handled by
|
|
72
76
|
* router.fetch().
|
|
73
|
-
* - createRouter({ onError }) on a thrown
|
|
77
|
+
* - createRouter({ onError }) on a thrown non-Response route HANDLER error: the
|
|
74
78
|
* error is serialized into the same typed 500 / RouterError Response as
|
|
75
79
|
* production, but onError is NOT invoked for that path here. Cover handler-error
|
|
76
80
|
* onError side effects with an e2e test. (This is the unchanged boundary; cache
|
|
@@ -129,21 +133,22 @@ import {
|
|
|
129
133
|
createSimpleRedirectResponse,
|
|
130
134
|
finalizeResponse,
|
|
131
135
|
interceptRedirectForPartial,
|
|
132
|
-
|
|
136
|
+
rewrapResponseRouteResponse,
|
|
133
137
|
} from "../rsc/helpers.js";
|
|
134
138
|
import { guardOutgoingRedirect } from "../rsc/redirect-guard.js";
|
|
135
139
|
import { stringifyJsonRouteResult } from "../rsc/json-route-result.js";
|
|
136
|
-
import {
|
|
137
|
-
EXTERNAL_REDIRECT_MARKER,
|
|
138
|
-
isExternalRedirect,
|
|
139
|
-
markExternalRedirect,
|
|
140
|
-
} from "../redirect-origin.js";
|
|
141
140
|
import { isWebSocketUpgradeResponse } from "../response-utils.js";
|
|
142
141
|
import { invokeOnError } from "../router/error-handling.js";
|
|
143
142
|
import type { OnErrorCallback } from "../types/error-types.js";
|
|
144
143
|
import type { Rango } from "../router/router-interfaces.js";
|
|
145
144
|
import { getRequestId, resolveSink, safeEmit } from "../router/telemetry.js";
|
|
146
145
|
import type { TelemetrySink } from "../router/telemetry.js";
|
|
146
|
+
import {
|
|
147
|
+
RouterTimeoutError,
|
|
148
|
+
createDefaultTimeoutResponse,
|
|
149
|
+
withTimeout,
|
|
150
|
+
} from "../router/timeout.js";
|
|
151
|
+
import type { OnTimeoutCallback, ResolvedTimeouts } from "../router/timeout.js";
|
|
147
152
|
|
|
148
153
|
/**
|
|
149
154
|
* The internal subset of the router surface dispatch depends on. The public
|
|
@@ -164,6 +169,8 @@ interface DispatchableRouter<TEnv> {
|
|
|
164
169
|
* byte-identical for every existing caller.
|
|
165
170
|
*/
|
|
166
171
|
telemetry?: TelemetrySink;
|
|
172
|
+
timeouts?: ResolvedTimeouts;
|
|
173
|
+
onTimeout?: OnTimeoutCallback<TEnv>;
|
|
167
174
|
findMatch(pathname: string): Promise<{
|
|
168
175
|
redirectTo?: string;
|
|
169
176
|
routeKey?: string;
|
|
@@ -296,51 +303,6 @@ function serializeResponseRouteError(
|
|
|
296
303
|
});
|
|
297
304
|
}
|
|
298
305
|
|
|
299
|
-
/**
|
|
300
|
-
* Re-wrap a handler-returned Response, byte-identical to handleResponseRoute's
|
|
301
|
-
* rewrapResponse:
|
|
302
|
-
* - A WebSocket upgrade (status 101 or a `webSocket` property) is returned via
|
|
303
|
-
* mergeStubHeadersAndFinalize WITHOUT reconstruction — the Response
|
|
304
|
-
* constructor rejects status 101, and an upgrade response's headers/socket
|
|
305
|
-
* must not be rebuilt.
|
|
306
|
-
* - Otherwise headers are copied into a fresh Headers (Set-Cookie appended to
|
|
307
|
-
* preserve duplicates, others set) and the Response is rebuilt through
|
|
308
|
-
* createResponseWithMergedHeaders so stub headers/cookies, the ctx.setStatus
|
|
309
|
-
* override, and onResponse callbacks merge exactly as in production. statusText
|
|
310
|
-
* is intentionally dropped (production does not carry it across the re-wrap).
|
|
311
|
-
*
|
|
312
|
-
* Must run inside runWithRequestContext (reads the ambient request context via
|
|
313
|
-
* the helpers), which callHandler guarantees.
|
|
314
|
-
*/
|
|
315
|
-
function rewrapHandlerResponse(result: Response): Response {
|
|
316
|
-
if (isWebSocketUpgradeResponse(result)) {
|
|
317
|
-
return mergeStubHeadersAndFinalize(result);
|
|
318
|
-
}
|
|
319
|
-
const headers = new Headers();
|
|
320
|
-
result.headers.forEach((value, key) => {
|
|
321
|
-
// Mirror production: never copy the reserved external-redirect marker off a
|
|
322
|
-
// handler result (it is not a trust signal; the opt-in is the out-of-band
|
|
323
|
-
// brand transferred below).
|
|
324
|
-
if (key.toLowerCase() === EXTERNAL_REDIRECT_MARKER) return;
|
|
325
|
-
if (key.toLowerCase() === "set-cookie") {
|
|
326
|
-
headers.append(key, value);
|
|
327
|
-
} else {
|
|
328
|
-
headers.set(key, value);
|
|
329
|
-
}
|
|
330
|
-
});
|
|
331
|
-
const rewrapped = createResponseWithMergedHeaders(result.body, {
|
|
332
|
-
status: result.status,
|
|
333
|
-
headers,
|
|
334
|
-
});
|
|
335
|
-
// Mirror production's rewrapResponse: transfer the out-of-band external brand
|
|
336
|
-
// only from a genuinely branded result (a real redirect(url, { external:
|
|
337
|
-
// true })), never from a proxied upstream's forged header.
|
|
338
|
-
if (isExternalRedirect(result)) {
|
|
339
|
-
markExternalRedirect(rewrapped);
|
|
340
|
-
}
|
|
341
|
-
return rewrapped;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
306
|
/**
|
|
345
307
|
* Run a request through the router in-process and return the Response.
|
|
346
308
|
*
|
|
@@ -539,13 +501,15 @@ export async function dispatch<TEnv = any>(
|
|
|
539
501
|
const callHandler = async (): Promise<Response> => {
|
|
540
502
|
let merged: Response;
|
|
541
503
|
try {
|
|
542
|
-
|
|
504
|
+
let result: unknown;
|
|
505
|
+
try {
|
|
506
|
+
result = await (handler as Function)(responseHandlerCtx);
|
|
507
|
+
} catch (error) {
|
|
508
|
+
if (!(error instanceof Response)) throw error;
|
|
509
|
+
result = error;
|
|
510
|
+
}
|
|
543
511
|
if (result instanceof Response) {
|
|
544
|
-
|
|
545
|
-
// rewrapResponse (WebSocket-upgrade bypass + Set-Cookie-preserving
|
|
546
|
-
// header rebuild, statusText dropped) rather than the generic
|
|
547
|
-
// createResponseWithMergedHeaders re-wrap below.
|
|
548
|
-
merged = rewrapHandlerResponse(result);
|
|
512
|
+
merged = rewrapResponseRouteResponse(result);
|
|
549
513
|
} else {
|
|
550
514
|
// Route the serialized (json/text/...) body through the SAME
|
|
551
515
|
// production finalizer the RSC handler uses, so ctx.onResponse()
|
|
@@ -671,6 +635,89 @@ export async function dispatch<TEnv = any>(
|
|
|
671
635
|
return executeHandler().then(finalizeResponse);
|
|
672
636
|
};
|
|
673
637
|
|
|
638
|
+
// The renderStartMs deadline wraps ONLY the response-route unit, mirroring
|
|
639
|
+
// handler.ts:845 where withTimeout(handleResponseRoute(...)) runs INSIDE
|
|
640
|
+
// coreRequestHandler — after the global middleware chain has already
|
|
641
|
+
// entered. Wrapping the outer chain (as an earlier version did) counted
|
|
642
|
+
// global middleware time toward the deadline, so a slow global auth
|
|
643
|
+
// middleware could 504 a request production serves. On timeout the 504/
|
|
644
|
+
// onTimeout Response is RETURNED from coreHandler so it flows back out
|
|
645
|
+
// through the global chain and finalizeResponse, identical to production
|
|
646
|
+
// (handler.ts:857 returns handleTimeoutResponse into the same next() path).
|
|
647
|
+
const runResponseRoute = async (): Promise<Response> => {
|
|
648
|
+
const responseWork = callResponseRoute();
|
|
649
|
+
const renderOutcome = await withTimeout(
|
|
650
|
+
responseWork,
|
|
651
|
+
router.timeouts?.renderStartMs,
|
|
652
|
+
"render-start",
|
|
653
|
+
);
|
|
654
|
+
if (!renderOutcome.timedOut) return renderOutcome.result;
|
|
655
|
+
|
|
656
|
+
// The race's losing side keeps executing after the timeout wins; its
|
|
657
|
+
// eventual Response is dropped. Swallow any rejection (no
|
|
658
|
+
// unhandled-rejection surfacing) and cancel the orphaned body stream so,
|
|
659
|
+
// under vitest, the abandoned handler cannot leak into the next test.
|
|
660
|
+
// Production abandons it too (handler.ts:845); this is a runner-scoped
|
|
661
|
+
// cleanup, not an observable-behavior change.
|
|
662
|
+
void responseWork
|
|
663
|
+
.then(
|
|
664
|
+
(orphan) => orphan.body?.cancel(),
|
|
665
|
+
() => {},
|
|
666
|
+
)
|
|
667
|
+
.catch(() => {});
|
|
668
|
+
|
|
669
|
+
const durationMs = renderOutcome.durationMs;
|
|
670
|
+
const timeoutError = new RouterTimeoutError("render-start", durationMs);
|
|
671
|
+
// Field-for-field parity with handleTimeoutResponse's callOnError
|
|
672
|
+
// (handler.ts:254): env is passed through (was previously dropped). render
|
|
673
|
+
// is always absent — dispatch runs no Flight/HTML driver, so there is no
|
|
674
|
+
// foreground cursor to snapshot.
|
|
675
|
+
invokeOnError(
|
|
676
|
+
router.onError,
|
|
677
|
+
timeoutError,
|
|
678
|
+
"handler",
|
|
679
|
+
{
|
|
680
|
+
request: req,
|
|
681
|
+
url,
|
|
682
|
+
env,
|
|
683
|
+
routeKey,
|
|
684
|
+
handledByBoundary: false,
|
|
685
|
+
metadata: { timeout: true, phase: "render-start", durationMs },
|
|
686
|
+
},
|
|
687
|
+
"RSC",
|
|
688
|
+
);
|
|
689
|
+
if (sink) {
|
|
690
|
+
safeEmit(resolveSink(sink), {
|
|
691
|
+
type: "request.timeout",
|
|
692
|
+
timestamp: performance.now(),
|
|
693
|
+
requestId: telemetryRequestId,
|
|
694
|
+
phase: "render-start",
|
|
695
|
+
pathname: url.pathname,
|
|
696
|
+
routeKey,
|
|
697
|
+
durationMs,
|
|
698
|
+
customHandler: router.onTimeout !== undefined,
|
|
699
|
+
});
|
|
700
|
+
}
|
|
701
|
+
if (router.onTimeout) {
|
|
702
|
+
try {
|
|
703
|
+
return await router.onTimeout({
|
|
704
|
+
phase: "render-start",
|
|
705
|
+
request: req,
|
|
706
|
+
url,
|
|
707
|
+
env,
|
|
708
|
+
routeKey,
|
|
709
|
+
durationMs,
|
|
710
|
+
});
|
|
711
|
+
} catch (error) {
|
|
712
|
+
if (process.env.NODE_ENV !== "production") {
|
|
713
|
+
console.error("[dispatch] onTimeout callback error:", error);
|
|
714
|
+
}
|
|
715
|
+
return createDefaultTimeoutResponse("render-start");
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
return createDefaultTimeoutResponse("render-start");
|
|
719
|
+
};
|
|
720
|
+
|
|
674
721
|
// coreHandler is the single terminal the global middleware chain wraps,
|
|
675
722
|
// mirroring production's coreHandler (handler.ts): a trailing-slash/redirect
|
|
676
723
|
// 308, an unmatched-path 404, or the response route. Both the 308 and the
|
|
@@ -678,7 +725,9 @@ export async function dispatch<TEnv = any>(
|
|
|
678
725
|
// cookies/headers merge onto them, identical to production's
|
|
679
726
|
// rsc-rendering.ts redirect path — and because they sit inside the chain, a
|
|
680
727
|
// global middleware that short-circuits (e.g. an auth 401) runs first and
|
|
681
|
-
// wins, never reaching the 308/404.
|
|
728
|
+
// wins, never reaching the 308/404. The renderStartMs deadline lives inside
|
|
729
|
+
// runResponseRoute (below the chain), never covering the 308/404 paths —
|
|
730
|
+
// production only wraps the response-route plan (handler.ts:834-856).
|
|
682
731
|
const coreHandler = async (): Promise<Response> => {
|
|
683
732
|
if (redirectTo) {
|
|
684
733
|
return createResponseWithMergedHeaders(null, {
|
|
@@ -692,7 +741,7 @@ export async function dispatch<TEnv = any>(
|
|
|
692
741
|
headers: { "content-type": "text/plain;charset=utf-8" },
|
|
693
742
|
});
|
|
694
743
|
}
|
|
695
|
-
return
|
|
744
|
+
return runResponseRoute();
|
|
696
745
|
};
|
|
697
746
|
|
|
698
747
|
// request.start opens the match transaction, mirroring match-handlers.ts.
|
|
@@ -712,7 +761,11 @@ export async function dispatch<TEnv = any>(
|
|
|
712
761
|
|
|
713
762
|
try {
|
|
714
763
|
// Global (pattern-matched) middleware wraps coreHandler, exactly as
|
|
715
|
-
// production wraps coreHandler with executeMiddleware (handler.ts).
|
|
764
|
+
// production wraps coreHandler with executeMiddleware (handler.ts:568).
|
|
765
|
+
// The renderStartMs deadline is deliberately NOT applied here — it wraps
|
|
766
|
+
// only the response-route unit inside coreHandler (see runResponseRoute),
|
|
767
|
+
// mirroring handler.ts:845 so global middleware time is never counted
|
|
768
|
+
// toward the deadline.
|
|
716
769
|
const globalMatches = matchMiddleware(url.pathname, router.middleware);
|
|
717
770
|
const mwResponse =
|
|
718
771
|
globalMatches.length === 0
|
|
@@ -734,9 +787,22 @@ export async function dispatch<TEnv = any>(
|
|
|
734
787
|
// 204 + X-RSC-Redirect (see the location-state divergence in the header).
|
|
735
788
|
let finalResponse: Response;
|
|
736
789
|
if (isPartial || isAction) {
|
|
790
|
+
const softOpts = {
|
|
791
|
+
requestOrigin: url.origin,
|
|
792
|
+
basename: router.basename,
|
|
793
|
+
};
|
|
794
|
+
// Pass `external` through: interceptRedirectForPartial forwards the
|
|
795
|
+
// out-of-band brand as the third callback arg (helpers.ts). Dropping it
|
|
796
|
+
// would neutralize redirect(url, { external: true }) to "/" in dispatch
|
|
797
|
+
// while production preserves it via createRedirectFlightResponse.
|
|
737
798
|
const intercepted = interceptRedirectForPartial(
|
|
738
799
|
mwResponse,
|
|
739
|
-
(redirectUrl) =>
|
|
800
|
+
(redirectUrl, _locationState, external) =>
|
|
801
|
+
createSimpleRedirectResponse(redirectUrl, {
|
|
802
|
+
...softOpts,
|
|
803
|
+
external,
|
|
804
|
+
}),
|
|
805
|
+
softOpts,
|
|
740
806
|
);
|
|
741
807
|
finalResponse = finalizeResponse(intercepted ?? mwResponse);
|
|
742
808
|
} else {
|
|
@@ -768,8 +834,7 @@ export async function dispatch<TEnv = any>(
|
|
|
768
834
|
// browser-followed (3xx + Location) redirect is same-origin guarded before
|
|
769
835
|
// it leaves -- a cross-origin Location is rewritten to the basename root
|
|
770
836
|
// unless redirect(url, { external: true }) opted out. Soft partial/action
|
|
771
|
-
// redirects are
|
|
772
|
-
// validates them), so this is a no-op for them.
|
|
837
|
+
// redirects are already resolved at createSimpleRedirectResponse time.
|
|
773
838
|
return guardOutgoingRedirect(finalResponse, url.origin, router.basename);
|
|
774
839
|
} catch (error) {
|
|
775
840
|
if (sink) {
|
package/src/testing/e2e/index.ts
CHANGED
|
@@ -40,6 +40,14 @@ export {
|
|
|
40
40
|
type ExpectedCacheStatus,
|
|
41
41
|
type CacheStatusTarget,
|
|
42
42
|
} from "../cache-status.js";
|
|
43
|
+
export {
|
|
44
|
+
assertShellStatus,
|
|
45
|
+
parseShellStatus,
|
|
46
|
+
shellCacheKey,
|
|
47
|
+
SHELL_STATUS_HEADER,
|
|
48
|
+
type ShellStatus,
|
|
49
|
+
type ShellStatusTarget,
|
|
50
|
+
} from "../shell-status.js";
|
|
43
51
|
export {
|
|
44
52
|
testId,
|
|
45
53
|
waitForHydration,
|
package/src/testing/index.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* Layers:
|
|
29
29
|
* - Unit: runMiddleware, runLoader
|
|
30
30
|
* - Integration: dispatch (request -> Response)
|
|
31
|
-
* - Cross-cut: assertCacheStatus, assertGeneratedRoutesMatch
|
|
31
|
+
* - Cross-cut: assertCacheStatus, assertShellStatus, assertGeneratedRoutesMatch
|
|
32
32
|
* - Component: see @rangojs/router/testing/dom (renderRoute)
|
|
33
33
|
* - E2E: see @rangojs/router/testing/e2e
|
|
34
34
|
* - RSC: see @rangojs/router/testing/flight
|
|
@@ -76,6 +76,14 @@ export type {
|
|
|
76
76
|
CacheSegmentStatus,
|
|
77
77
|
} from "../router/telemetry.js";
|
|
78
78
|
|
|
79
|
+
export {
|
|
80
|
+
assertShellStatus,
|
|
81
|
+
parseShellStatus,
|
|
82
|
+
shellCacheKey,
|
|
83
|
+
SHELL_STATUS_HEADER,
|
|
84
|
+
} from "./shell-status.js";
|
|
85
|
+
export type { ShellStatus, ShellStatusTarget } from "./shell-status.js";
|
|
86
|
+
|
|
79
87
|
export { collectHandle } from "./collect-handle.js";
|
|
80
88
|
|
|
81
89
|
export {
|
|
@@ -55,6 +55,14 @@ export interface CreateTestContextOptions<TEnv> {
|
|
|
55
55
|
routeMap?: Record<string, string>;
|
|
56
56
|
routeName?: string;
|
|
57
57
|
params?: Record<string, string>;
|
|
58
|
+
/**
|
|
59
|
+
* Seed `ctx.build` (default false). Set `true` to unit-test middleware or a
|
|
60
|
+
* handler that branches on the build-time PPR shell-capture pass — e.g.
|
|
61
|
+
* `if (ctx.build) ctx.dynamic()`. Mirrors the synthetic build request the
|
|
62
|
+
* shell-capture producer creates; also makes `ctx.waitUntil()` inert, as at
|
|
63
|
+
* build time.
|
|
64
|
+
*/
|
|
65
|
+
build?: boolean;
|
|
58
66
|
/**
|
|
59
67
|
* Router basename for this request (what the RSC handler stores on the
|
|
60
68
|
* context). Drives redirect() prefixing. Normalized exactly like
|
|
@@ -150,6 +158,7 @@ export function createTestRequestContext<TEnv>(
|
|
|
150
158
|
request,
|
|
151
159
|
url,
|
|
152
160
|
variables,
|
|
161
|
+
build: opts.build,
|
|
153
162
|
themeConfig:
|
|
154
163
|
opts.theme === undefined ? undefined : resolveThemeConfig(opts.theme),
|
|
155
164
|
cacheStore: opts.cacheStore,
|
|
@@ -62,7 +62,7 @@ const DEFAULT_URL = "http://localhost/";
|
|
|
62
62
|
/** A route handler under test: the `(ctx) => RSC | Response` function you pass to `path(...)`. */
|
|
63
63
|
export type TestableHandler<TEnv = any> = (
|
|
64
64
|
ctx: HandlerContext<any, TEnv>,
|
|
65
|
-
) => ReactNode | Promise<ReactNode
|
|
65
|
+
) => ReactNode | Response | Promise<ReactNode | Response>;
|
|
66
66
|
|
|
67
67
|
/** Options for {@link renderHandler}. */
|
|
68
68
|
export interface RenderHandlerOptions<TEnv = any> {
|
|
@@ -80,6 +80,12 @@ export interface RenderHandlerOptions<TEnv = any> {
|
|
|
80
80
|
routeName?: string;
|
|
81
81
|
/** Route name -> pattern map enabling `ctx.reverse()`. */
|
|
82
82
|
routeMap?: Record<string, string>;
|
|
83
|
+
/**
|
|
84
|
+
* Seed `ctx.build` (default false) so a handler that branches on the
|
|
85
|
+
* build-time pass — including calling `ctx.dynamic()` on a MISS — is
|
|
86
|
+
* unit-testable. Assert a `ctx.dynamic()` call via `result.dynamic`.
|
|
87
|
+
*/
|
|
88
|
+
build?: boolean;
|
|
83
89
|
/**
|
|
84
90
|
* Seed the data `ctx.use(SomeLoader)` returns — NO real loader runs (same model
|
|
85
91
|
* as `runLoader`'s `loaders`). Matched by loader reference, so a real
|
|
@@ -163,6 +169,12 @@ export interface RenderHandlerResult {
|
|
|
163
169
|
locationState: Record<string, unknown>;
|
|
164
170
|
/** What the handler pushed via `ctx.use(Handle)(...)` (e.g. Meta, Breadcrumbs), keyed by handle. */
|
|
165
171
|
handles: Map<Handle<any, any>, unknown[]>;
|
|
172
|
+
/**
|
|
173
|
+
* Whether the handler called `ctx.dynamic()` (the PPR shell opt-out). The
|
|
174
|
+
* public way to assert the opt-out without reading the `@internal`
|
|
175
|
+
* `ctx._dynamic`.
|
|
176
|
+
*/
|
|
177
|
+
dynamic: boolean;
|
|
166
178
|
}
|
|
167
179
|
|
|
168
180
|
/**
|
|
@@ -239,6 +251,7 @@ export async function renderHandler<TEnv = any>(
|
|
|
239
251
|
request,
|
|
240
252
|
url,
|
|
241
253
|
variables: seedVariables({}, opts.vars),
|
|
254
|
+
build: opts.build,
|
|
242
255
|
stateCookieName,
|
|
243
256
|
version: opts.stateCookie?.version,
|
|
244
257
|
cacheStore: opts.cacheStore,
|
|
@@ -353,5 +366,6 @@ export async function renderHandler<TEnv = any>(
|
|
|
353
366
|
stateCookieName,
|
|
354
367
|
locationState,
|
|
355
368
|
handles: handlePushes,
|
|
369
|
+
dynamic: (reqCtx as RequestContext<TEnv>)._dynamic === true,
|
|
356
370
|
};
|
|
357
371
|
}
|
|
@@ -49,6 +49,13 @@ export interface RunMiddlewareOptions<TEnv = any> {
|
|
|
49
49
|
env?: TEnv;
|
|
50
50
|
/** Route params surfaced as `ctx.params`. */
|
|
51
51
|
params?: Record<string, string>;
|
|
52
|
+
/**
|
|
53
|
+
* Seed `ctx.build` (default false) so a middleware that branches on the
|
|
54
|
+
* build-time PPR shell-capture pass (e.g. `if (ctx.build) ctx.dynamic()`) is
|
|
55
|
+
* unit-testable. With `build: true`, `ctx.waitUntil()` is inert, matching the
|
|
56
|
+
* build producer. Assert a `ctx.dynamic()` call via `result.dynamic`.
|
|
57
|
+
*/
|
|
58
|
+
build?: boolean;
|
|
52
59
|
/** Variables a prior middleware would have set (object or [key, value] list). */
|
|
53
60
|
vars?: VarsInit;
|
|
54
61
|
/** Route name -> pattern map enabling `ctx.reverse()`. */
|
|
@@ -102,6 +109,11 @@ export interface RunMiddlewareResult<TEnv = any> {
|
|
|
102
109
|
ctx: RequestContext<TEnv>;
|
|
103
110
|
/** Number of times the terminal handler ran (0 = short-circuited, 1 = passed through). */
|
|
104
111
|
nextCalled: number;
|
|
112
|
+
/**
|
|
113
|
+
* Whether the chain called `ctx.dynamic()` (the PPR shell opt-out). The public
|
|
114
|
+
* way to assert the opt-out without reading the `@internal` `ctx._dynamic`.
|
|
115
|
+
*/
|
|
116
|
+
dynamic: boolean;
|
|
105
117
|
/**
|
|
106
118
|
* The effective cookie view after the chain ran: request cookies merged with
|
|
107
119
|
* anything the chain set or deleted (last-write-wins), as `{ name: value }`.
|
|
@@ -146,6 +158,7 @@ export async function runMiddleware<TEnv = any>(
|
|
|
146
158
|
routeMap: opts.routeMap,
|
|
147
159
|
routeName: opts.routeName,
|
|
148
160
|
params: opts.params,
|
|
161
|
+
build: opts.build,
|
|
149
162
|
basename: opts.basename,
|
|
150
163
|
theme: opts.theme,
|
|
151
164
|
cacheStore: opts.cacheStore,
|
|
@@ -197,6 +210,7 @@ export async function runMiddleware<TEnv = any>(
|
|
|
197
210
|
response,
|
|
198
211
|
ctx,
|
|
199
212
|
nextCalled,
|
|
213
|
+
dynamic: ctx._dynamic === true,
|
|
200
214
|
cookies,
|
|
201
215
|
headers,
|
|
202
216
|
locationState,
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PPR shell-status testing primitives for @rangojs/router consumers.
|
|
3
|
+
*
|
|
4
|
+
* Companion to `cache-status.ts` (segment/document cache): this module covers
|
|
5
|
+
* the **shell axis** (`ppr` path option → `x-rango-shell: HIT | MISS`).
|
|
6
|
+
*
|
|
7
|
+
* ## Spike conclusions (plan 009)
|
|
8
|
+
*
|
|
9
|
+
* 1. **`dispatch` cannot exercise PPR.** It is deliberately RSC-free: no Flight,
|
|
10
|
+
* no SSR, no `handleRscRendering` commit point. Seeding `MemorySegmentCacheStore`
|
|
11
|
+
* + `ppr: true` on a response route is a no-op for shell serve/capture. The
|
|
12
|
+
* production path lives in `rsc/rsc-rendering.ts` + `rsc/shell-capture.ts`.
|
|
13
|
+
*
|
|
14
|
+
* 2. **Smallest HIT signal:** response header `x-rango-shell` (`HIT` | `MISS`),
|
|
15
|
+
* always on document GETs to a ppr route that the serve path considered.
|
|
16
|
+
* Secondary unit signal: `store.getShell(shellCacheKey(url))` after a real
|
|
17
|
+
* capture flush (background `putShell`). There is no Flight flag for shell HIT.
|
|
18
|
+
*
|
|
19
|
+
* 3. **Stays e2e-only:** live MISS → background capture → HIT (needs real
|
|
20
|
+
* `captureShellHTML` / React `prerender` + resume fizz), browser resume of
|
|
21
|
+
* holes, Cloudflare/Vercel live stores, nonce/eligibility fall-open, and
|
|
22
|
+
* build-time producer B bake. Unit layer dogfoods the **store family + key
|
|
23
|
+
* identity + header assert**; it must never stub a shell HIT response.
|
|
24
|
+
*
|
|
25
|
+
* Import from `@rangojs/router/testing` (Vitest) or `@rangojs/router/testing/e2e`
|
|
26
|
+
* (Playwright — same pure helpers, no Vite virtuals).
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
import { sortedSearchString } from "../cache/cache-key-utils.js";
|
|
30
|
+
|
|
31
|
+
/** Production header name (`rsc/shell-serve.ts` `SHELL_STATUS_HEADER`). */
|
|
32
|
+
export const SHELL_STATUS_HEADER: string = "x-rango-shell";
|
|
33
|
+
|
|
34
|
+
/** Values the serve path writes on `x-rango-shell`. */
|
|
35
|
+
export type ShellStatus = "HIT" | "MISS";
|
|
36
|
+
|
|
37
|
+
/** A target carrying response headers (a Response or a `{ headers }` object). */
|
|
38
|
+
export type ShellStatusTarget = Response | { headers: Headers };
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Shell store key for a document URL — same formula as production
|
|
42
|
+
* `buildShellKey` in `rsc/shell-serve.ts` (host + pathname + sorted search +
|
|
43
|
+
* `:shell`). Kept here so the testing barrel never imports the shell-serve
|
|
44
|
+
* module (it pulls React). A parity test pins the two implementations.
|
|
45
|
+
*
|
|
46
|
+
* Accepts a `URL` or an absolute/relative request URL string (relative strings
|
|
47
|
+
* resolve against `http://localhost`).
|
|
48
|
+
*/
|
|
49
|
+
export function shellCacheKey(url: URL | string): string {
|
|
50
|
+
const resolved =
|
|
51
|
+
typeof url === "string" ? new URL(url, "http://localhost") : url;
|
|
52
|
+
const sorted = sortedSearchString(resolved.searchParams);
|
|
53
|
+
const searchSuffix = sorted ? `?${sorted}` : "";
|
|
54
|
+
return `${resolved.host}${resolved.pathname}${searchSuffix}:shell`;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function getHeaders(target: ShellStatusTarget): Headers {
|
|
58
|
+
return target.headers;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Read `x-rango-shell` from a response. Returns `null` when the header is
|
|
63
|
+
* absent (axis-1 / non-ppr / ineligible request).
|
|
64
|
+
*/
|
|
65
|
+
export function parseShellStatus(
|
|
66
|
+
target: ShellStatusTarget,
|
|
67
|
+
): ShellStatus | null {
|
|
68
|
+
const raw = getHeaders(target).get(SHELL_STATUS_HEADER);
|
|
69
|
+
if (raw === null) return null;
|
|
70
|
+
const value = raw.trim();
|
|
71
|
+
if (value === "HIT" || value === "MISS") return value;
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Assert a document response's `x-rango-shell` header equals `expected`.
|
|
77
|
+
* Throws when the header is missing, unrecognized, or mismatched.
|
|
78
|
+
*
|
|
79
|
+
* Use on real document GETs (e2e `page.request.get` / `router.fetch`). Do not
|
|
80
|
+
* invent a HIT Response in unit tests — that fakes the serve path.
|
|
81
|
+
*/
|
|
82
|
+
export function assertShellStatus(
|
|
83
|
+
target: ShellStatusTarget,
|
|
84
|
+
expected: ShellStatus,
|
|
85
|
+
): void {
|
|
86
|
+
const headerValue = getHeaders(target).get(SHELL_STATUS_HEADER);
|
|
87
|
+
if (headerValue === null) {
|
|
88
|
+
throw new Error(
|
|
89
|
+
`assertShellStatus: response has no ${SHELL_STATUS_HEADER} header. ` +
|
|
90
|
+
`The header is only set on document GETs to a ppr-declared route that ` +
|
|
91
|
+
`the serve path considered (axis-1 fall-open and non-ppr routes omit it).`,
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
const actual = headerValue.trim();
|
|
95
|
+
if (actual !== expected) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
`assertShellStatus: expected "${expected}" but got "${actual}".`,
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -155,7 +155,7 @@ export type Handler<
|
|
|
155
155
|
: ExtractSearchFromEntry<DefaultHandlerRouteMap, T>,
|
|
156
156
|
TRouteMap extends DefaultHandlerRouteMap ? never : TRouteMap
|
|
157
157
|
>,
|
|
158
|
-
) => ReactNode | Promise<ReactNode
|
|
158
|
+
) => ReactNode | Response | Promise<ReactNode | Response>) & {
|
|
159
159
|
/** Composable default DSL items merged when the handler is mounted. */
|
|
160
160
|
use?: () => UseItems<HandlerUseItem>;
|
|
161
161
|
};
|
|
@@ -202,7 +202,18 @@ export type HandlerContext<
|
|
|
202
202
|
* Build-time collection and dev on-demand prerender use `true`.
|
|
203
203
|
* Live request rendering, including passthrough fallback, uses `false`.
|
|
204
204
|
*/
|
|
205
|
-
build: boolean;
|
|
205
|
+
readonly build: boolean;
|
|
206
|
+
/**
|
|
207
|
+
* Opt this request out of PPR shell serving/capture.
|
|
208
|
+
* Middleware can call this before a shell HIT commits. Handlers run after
|
|
209
|
+
* that commit point, so they only prevent scheduling a new capture on MISS.
|
|
210
|
+
*
|
|
211
|
+
* Scope: this gates the PPR SHELL axis only. It does NOT disable prerender
|
|
212
|
+
* B-segment (Prerender/Static) serving — a Prerender() route's build-baked
|
|
213
|
+
* segments still replay at runtime — and it is inert in the prerender-collect
|
|
214
|
+
* and static-render contexts, which have no live shell decision to influence.
|
|
215
|
+
*/
|
|
216
|
+
dynamic(): void;
|
|
206
217
|
/**
|
|
207
218
|
* True when running in Vite dev mode, false during production build or
|
|
208
219
|
* live request rendering. Use this to branch on runtime mode without
|
|
@@ -69,7 +69,7 @@ export type PathFn<TEnv> = <
|
|
|
69
69
|
| ReactNode
|
|
70
70
|
| ((
|
|
71
71
|
ctx: HandlerContext<TParams, TEnv, TSearch>,
|
|
72
|
-
) => ReactNode | Promise<ReactNode
|
|
72
|
+
) => ReactNode | Response | Promise<ReactNode | Response>)
|
|
73
73
|
| PrerenderHandlerDefinition<TParams>
|
|
74
74
|
| PassthroughHandlerDefinition<TParams, TEnv>
|
|
75
75
|
| StaticHandlerDefinition<TParams>,
|
|
@@ -62,6 +62,35 @@ export interface PartialPrerenderProps {
|
|
|
62
62
|
* capture render auto-collects (the shell's own non-loader request tags).
|
|
63
63
|
*/
|
|
64
64
|
tags?: string[];
|
|
65
|
+
/**
|
|
66
|
+
* Upper bound (serialized UTF-8 bytes) on the capture data snapshot riding
|
|
67
|
+
* inside the shell entry. The snapshot duplicates every cache-store value
|
|
68
|
+
* the capture pinned, so a page over a large cache() segment can push the
|
|
69
|
+
* entry toward store value limits (Cloudflare KV caps a value at 25 MiB).
|
|
70
|
+
* Over the cap the snapshot is skipped: the shell is still stored and
|
|
71
|
+
* served, but pinned reads fall back to the live store, so drifted cached
|
|
72
|
+
* content can hydration-mismatch and be repaired client-side (the
|
|
73
|
+
* pre-snapshot behavior). Reported once per key. Defaults to 8 MiB.
|
|
74
|
+
*/
|
|
75
|
+
maxSnapshotBytes?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Capture settle budget in MILLISECONDS (default 15000). Bounds the whole
|
|
78
|
+
* background capture: the wait for deferred shell material — top-level
|
|
79
|
+
* pushed handle promises (`ctx.use(Meta)(promise.then(...))` and friends)
|
|
80
|
+
* are AWAITED and their settled values baked into the stored shell — AND
|
|
81
|
+
* the fizz prerender deadline. Declare it to tighten the budget below the
|
|
82
|
+
* default or when a route's shell material takes longer than 15s to
|
|
83
|
+
* settle. A budget that expires with pushes still pending REFUSES the
|
|
84
|
+
* capture (the route stays MISS with the once-per-key warning) — a shell
|
|
85
|
+
* with missing head material is never stored. Capture is background work
|
|
86
|
+
* (waitUntil), so a longer budget costs latency-to-HIT only, never a served
|
|
87
|
+
* response; the platform waitUntil lifetime (workerd: ~30s past response
|
|
88
|
+
* completion) is the physical ceiling — the default's derivation lives in
|
|
89
|
+
* docs/design/ppr-shell-resume.md (Cost model). Build-time captures
|
|
90
|
+
* (Prerender+ppr, producer B) honor the same budget with no platform
|
|
91
|
+
* ceiling. Non-finite or sub-1ms values fall back to the default.
|
|
92
|
+
*/
|
|
93
|
+
captureTimeout?: number;
|
|
65
94
|
}
|
|
66
95
|
|
|
67
96
|
export interface PathOptions<
|