@rangojs/router 0.0.0-experimental.tapabs3 → 0.1.1
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 +19 -41
- package/dist/types/__internal.d.ts +127 -0
- package/dist/types/bin/rango.d.ts +1 -0
- package/dist/types/browser/action-coordinator.d.ts +57 -0
- package/dist/types/browser/action-fence.d.ts +33 -0
- package/dist/types/browser/app-shell.d.ts +34 -0
- package/dist/types/browser/app-version.d.ts +6 -0
- package/dist/types/browser/connection-warmup.d.ts +31 -0
- package/dist/types/browser/cookie-name.d.ts +66 -0
- package/dist/types/browser/dev-discovery.d.ts +11 -0
- package/dist/types/browser/event-controller.d.ts +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 +85 -0
- package/dist/types/browser/navigation-transaction.d.ts +75 -0
- package/dist/types/browser/network-error-handler.d.ts +35 -0
- package/dist/types/browser/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/loader.d.ts +10 -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/prefetch/runtime.d.ts +3 -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 +518 -0
- package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
- package/dist/types/build/collect-fallback-refs.d.ts +5 -0
- package/dist/types/build/generate-manifest.d.ts +106 -0
- package/dist/types/build/generate-route-types.d.ts +8 -0
- package/dist/types/build/index.d.ts +21 -0
- package/dist/types/build/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 +136 -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 +589 -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 +186 -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 +435 -0
- package/dist/types/cache/vercel/index.d.ts +1 -0
- package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
- package/dist/types/client.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/dev-discovery-protocol.d.ts +5 -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 +63 -0
- package/dist/types/prerender.d.ts +292 -0
- package/dist/types/redirect-origin.d.ts +67 -0
- package/dist/types/regex-escape.d.ts +6 -0
- package/dist/types/render-error-thrower.d.ts +13 -0
- package/dist/types/response-utils.d.ts +35 -0
- package/dist/types/reverse.d.ts +206 -0
- package/dist/types/root-error-boundary.d.ts +32 -0
- package/dist/types/route-content-wrapper.d.ts +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 +102 -0
- package/dist/types/route-name.d.ts +27 -0
- package/dist/types/route-types.d.ts +172 -0
- package/dist/types/router/basename.d.ts +10 -0
- package/dist/types/router/content-negotiation.d.ts +91 -0
- package/dist/types/router/debug-manifest.d.ts +7 -0
- package/dist/types/router/error-handling.d.ts +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 +53 -0
- package/dist/types/router/preview-match.d.ts +22 -0
- package/dist/types/router/request-classification.d.ts +104 -0
- package/dist/types/router/revalidation.d.ts +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 +434 -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 +32 -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 +139 -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 +18 -0
- package/dist/types/rsc/runtime-warnings.d.ts +22 -0
- package/dist/types/rsc/server-action.d.ts +68 -0
- package/dist/types/rsc/shell-build-manifest.d.ts +84 -0
- package/dist/types/rsc/shell-capture-constants.d.ts +27 -0
- package/dist/types/rsc/shell-capture.d.ts +370 -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 +292 -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 +510 -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 +628 -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 +98 -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 +163 -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 +1208 -431
- package/package.json +45 -34
- package/skills/caching/SKILL.md +1 -1
- 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 +148 -19
- 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/dev-discovery.ts +66 -0
- package/src/browser/event-controller.ts +16 -2
- package/src/browser/navigation-client.ts +6 -0
- package/src/browser/navigation-store.ts +4 -271
- package/src/browser/partial-update.ts +7 -14
- package/src/browser/prefetch/cache.ts +1 -1
- package/src/browser/prefetch/loader.ts +110 -0
- package/src/browser/prefetch/runtime.ts +7 -0
- package/src/browser/react/Link.tsx +7 -10
- package/src/browser/react/NavigationProvider.tsx +1 -1
- package/src/browser/react/use-router.ts +1 -1
- package/src/browser/rsc-router.tsx +15 -2
- package/src/browser/types.ts +4 -27
- package/src/build/generate-manifest.ts +16 -36
- package/src/build/route-trie.ts +5 -50
- package/src/cache/cache-key-utils.ts +0 -1
- package/src/cache/cache-scope.ts +54 -5
- package/src/cache/cf/cf-cache-store.ts +522 -89
- 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 +44 -1
- package/src/cache/segment-codec.ts +47 -0
- package/src/cache/shell-snapshot.ts +124 -29
- package/src/cache/types.ts +57 -2
- package/src/cache/vercel/vercel-cache-store.ts +113 -14
- package/src/deps/ssr.ts +4 -1
- package/src/dev-discovery-protocol.ts +11 -0
- package/src/index.rsc.ts +7 -0
- package/src/index.ts +1 -0
- package/src/prerender/build-shell-capture.ts +453 -0
- package/src/prerender/shell-manifest-key.ts +20 -0
- package/src/prerender/store.ts +15 -1
- package/src/prerender.ts +3 -3
- package/src/redirect-origin.ts +37 -8
- package/src/route-definition/dsl-helpers.ts +7 -2
- package/src/route-map-builder.ts +61 -54
- package/src/router/content-negotiation.ts +47 -5
- package/src/router/handler-context.ts +31 -15
- package/src/router/intercept-resolution.ts +30 -1
- package/src/router/lazy-includes.ts +1 -0
- package/src/router/loader-resolution.ts +16 -0
- package/src/router/match-api.ts +14 -3
- 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 +47 -2
- package/src/router/router-interfaces.ts +11 -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/segment-resolution/static-store.ts +36 -10
- 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 +39 -7
- package/src/rsc/capture-queue.ts +67 -0
- package/src/rsc/handler-context.ts +1 -0
- package/src/rsc/handler.ts +153 -77
- package/src/rsc/helpers.ts +67 -4
- package/src/rsc/loader-fetch.ts +2 -2
- package/src/rsc/manifest-init.ts +4 -11
- package/src/rsc/progressive-enhancement.ts +66 -54
- package/src/rsc/redirect-guard.ts +3 -1
- package/src/rsc/render-pipeline.ts +567 -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 +455 -194
- 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 +622 -73
- package/src/rsc/shell-serve.ts +133 -3
- package/src/rsc/ssr-setup.ts +102 -23
- package/src/rsc/types.ts +2 -0
- package/src/segment-fragments.ts +124 -0
- package/src/server/context.ts +212 -8
- package/src/server/request-context.ts +322 -48
- package/src/server.ts +0 -2
- 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 +133 -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/types/route-entry.ts +3 -0
- package/src/urls/include-helper.ts +1 -0
- package/src/urls/path-helper-types.ts +1 -1
- package/src/urls/path-helper.ts +8 -4
- package/src/urls/pattern-types.ts +29 -0
- package/src/vite/discovery/bundle-postprocess.ts +10 -7
- package/src/vite/discovery/discover-routers.ts +39 -79
- package/src/vite/discovery/prerender-collection.ts +29 -2
- package/src/vite/discovery/shell-prerender-phase.ts +397 -0
- package/src/vite/discovery/state.ts +48 -4
- package/src/vite/discovery/virtual-module-codegen.ts +201 -62
- package/src/vite/index.ts +1 -0
- package/src/vite/plugin-types.ts +33 -0
- package/src/vite/plugins/version-injector.ts +0 -1
- package/src/vite/plugins/version-plugin.ts +8 -0
- package/src/vite/plugins/virtual-entries.ts +48 -5
- package/src/vite/rango.ts +42 -2
- package/src/vite/router-discovery.ts +564 -43
- package/src/vite/utils/manifest-utils.ts +1 -4
- 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 +11 -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
|
@@ -19,11 +19,22 @@ import {
|
|
|
19
19
|
createScanFilter,
|
|
20
20
|
} from "../build/generate-route-types.js";
|
|
21
21
|
import { firstCodeMatchIndex } from "../build/route-types/source-scan.js";
|
|
22
|
+
import {
|
|
23
|
+
DEV_DISCOVERY_EPOCH_HEADER,
|
|
24
|
+
DEV_DISCOVERY_PROBE_HEADER,
|
|
25
|
+
DEV_DISCOVERY_QUERY_EVENT,
|
|
26
|
+
DEV_DISCOVERY_READY_EVENT,
|
|
27
|
+
} from "../dev-discovery-protocol.js";
|
|
28
|
+
import {
|
|
29
|
+
DEV_SHELL_PROBE_TIMEOUT_MS,
|
|
30
|
+
normalizeCaptureTimeout,
|
|
31
|
+
} from "../rsc/shell-serve.js";
|
|
22
32
|
import {
|
|
23
33
|
injectClientDebugFlag,
|
|
24
34
|
internalDebugNoCacheMiddleware,
|
|
25
35
|
} from "./inject-client-debug.js";
|
|
26
36
|
import { createVersionPlugin } from "./plugins/version-plugin.js";
|
|
37
|
+
import { getVirtualEntrySSR, VIRTUAL_IDS } from "./plugins/virtual-entries.js";
|
|
27
38
|
import { createVirtualStubPlugin } from "./plugins/virtual-stub-plugin.js";
|
|
28
39
|
import {
|
|
29
40
|
BUILD_ENV_GLOBAL_KEY,
|
|
@@ -46,6 +57,7 @@ import {
|
|
|
46
57
|
peekSelfGenWrite,
|
|
47
58
|
} from "./discovery/self-gen-tracking.js";
|
|
48
59
|
import { discoverRouters } from "./discovery/discover-routers.js";
|
|
60
|
+
import { runShellPrerenderPhase } from "./discovery/shell-prerender-phase.js";
|
|
49
61
|
import { describeDiscoveryFailure } from "./discovery/discovery-errors.js";
|
|
50
62
|
import {
|
|
51
63
|
createDevPrerenderCache,
|
|
@@ -125,6 +137,30 @@ function ensureCloudflareProtocolLoaderRegistered(): void {
|
|
|
125
137
|
// Temp Server Factory
|
|
126
138
|
// ============================================================================
|
|
127
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Outcome of getOrCreateTempServer. `env` is the temp RSC environment on
|
|
142
|
+
* success, else null with `error` carrying WHY the create/import failed — or
|
|
143
|
+
* null when createServer resolved cleanly but attached no runner (terminal, but
|
|
144
|
+
* not an exception). The dev /__rsc_shell endpoint runs `error` through the
|
|
145
|
+
* SAME reoptimization classifier the import sites use: only a transient Vite
|
|
146
|
+
* re-optimization is signalled NOT-READY (client re-polls); every terminal
|
|
147
|
+
* failure fails fast so the read-through MISSes immediately instead of
|
|
148
|
+
* re-polling a permanently-broken realm for the full readiness deadline
|
|
149
|
+
* (issue #719 P2).
|
|
150
|
+
*/
|
|
151
|
+
type TempServerResult = { env: any; error: unknown };
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Test-only one-shot boot-race injection (issue #719 P3). When
|
|
155
|
+
* RANGO_E2E_INJECT_SHELL_NOTREADY=1, the dev /__rsc_shell endpoint emits a
|
|
156
|
+
* single reoptimization-class NOT-READY per pathname before serving, so an e2e
|
|
157
|
+
* can drive the REAL endpoint + real client re-poll deterministically — a
|
|
158
|
+
* natural cold race settles too fast on quick machines to guard the regression.
|
|
159
|
+
* Keyed per pathname so the read-through's re-poll finds it already fired and
|
|
160
|
+
* gets the HIT. Never engaged without the env flag.
|
|
161
|
+
*/
|
|
162
|
+
const injectedShellNotReadyPaths = new Set<string>();
|
|
163
|
+
|
|
128
164
|
/**
|
|
129
165
|
* Create a minimal Vite server for router discovery.
|
|
130
166
|
*
|
|
@@ -138,7 +174,21 @@ function ensureCloudflareProtocolLoaderRegistered(): void {
|
|
|
138
174
|
*/
|
|
139
175
|
async function createTempRscServer(
|
|
140
176
|
state: DiscoveryState,
|
|
141
|
-
options: {
|
|
177
|
+
options: {
|
|
178
|
+
forceBuild?: boolean;
|
|
179
|
+
cacheDir?: string;
|
|
180
|
+
/**
|
|
181
|
+
* Serve the REAL rango SSR entry (getVirtualEntrySSR) for
|
|
182
|
+
* "virtual:entry-ssr" instead of the discovery stub, so the dev
|
|
183
|
+
* /__rsc_shell endpoint can drive captureShellHTML in this server's SSR
|
|
184
|
+
* realm. Dev-correct by construction: the entry's bootstrap resolves to
|
|
185
|
+
* plugin-rsc's stable virtual browser-entry URL, which the MAIN dev
|
|
186
|
+
* server serves to the browser. Loaded lazily — discovery never imports
|
|
187
|
+
* the SSR entry, so the temp server stays as light as before until a
|
|
188
|
+
* shell capture actually runs.
|
|
189
|
+
*/
|
|
190
|
+
realSsrEntry?: boolean;
|
|
191
|
+
} = {},
|
|
142
192
|
) {
|
|
143
193
|
// Install the Node ESM loader hook before any module evaluation so
|
|
144
194
|
// `cloudflare:*` specifiers in externalized/loader-delegated modules
|
|
@@ -178,6 +228,26 @@ async function createTempRscServer(
|
|
|
178
228
|
// hashClientRefs only in build mode — production bundles need hashed refs
|
|
179
229
|
...(options.forceBuild ? [hashClientRefs(state.projectRoot)] : []),
|
|
180
230
|
createVersionPlugin(),
|
|
231
|
+
// Before the stub plugin, so "virtual:entry-ssr" resolves to the real
|
|
232
|
+
// SSR entry when the shell endpoint needs it (see the option doc).
|
|
233
|
+
...(options.realSsrEntry
|
|
234
|
+
? [
|
|
235
|
+
{
|
|
236
|
+
name: "@rangojs/router:temp-real-ssr-entry",
|
|
237
|
+
enforce: "pre" as const,
|
|
238
|
+
resolveId(id: string) {
|
|
239
|
+
return id === "virtual:entry-ssr"
|
|
240
|
+
? "\0rango-temp-real-ssr-entry"
|
|
241
|
+
: null;
|
|
242
|
+
},
|
|
243
|
+
load(id: string) {
|
|
244
|
+
return id === "\0rango-temp-real-ssr-entry"
|
|
245
|
+
? getVirtualEntrySSR(state.opts?.headScripts)
|
|
246
|
+
: null;
|
|
247
|
+
},
|
|
248
|
+
} satisfies import("vite").Plugin,
|
|
249
|
+
]
|
|
250
|
+
: []),
|
|
181
251
|
createVirtualStubPlugin(),
|
|
182
252
|
createCloudflareProtocolStubPlugin(),
|
|
183
253
|
// Dev prerender must use dev-mode IDs (path-based) to match the workerd
|
|
@@ -281,6 +351,19 @@ async function acquireBuildEnv(
|
|
|
281
351
|
return true;
|
|
282
352
|
}
|
|
283
353
|
|
|
354
|
+
/**
|
|
355
|
+
* Reset the per-build prerender collection state. A helper (not inline
|
|
356
|
+
* assignments in buildStart) so TS's property narrowing does not pin
|
|
357
|
+
* `s.shellCandidates` to `null` across the discovery call that repopulates
|
|
358
|
+
* it — the finally block re-reads it to decide the temp-server keep-alive.
|
|
359
|
+
*/
|
|
360
|
+
function resetPrerenderCollection(s: DiscoveryState): void {
|
|
361
|
+
s.prerenderManifestEntries = null;
|
|
362
|
+
s.staticManifestEntries = null;
|
|
363
|
+
s.shellCandidates = null;
|
|
364
|
+
s.prerenderPayloadValues = null;
|
|
365
|
+
}
|
|
366
|
+
|
|
284
367
|
/**
|
|
285
368
|
* Release build-time env resources and clear state.
|
|
286
369
|
*/
|
|
@@ -395,6 +478,45 @@ export function createRouterDiscoveryPlugin(
|
|
|
395
478
|
if ((globalThis as any).__rscRouterDiscoveryActive) return;
|
|
396
479
|
s.devServer = server;
|
|
397
480
|
|
|
481
|
+
let workerReadyEpoch: number | undefined;
|
|
482
|
+
const publishDevDiscoveryReady = (epoch: number) => {
|
|
483
|
+
if (epoch <= (workerReadyEpoch ?? -1)) return;
|
|
484
|
+
workerReadyEpoch = epoch;
|
|
485
|
+
(server.environments as any)?.client?.hot?.send({
|
|
486
|
+
type: "custom",
|
|
487
|
+
event: DEV_DISCOVERY_READY_EVENT,
|
|
488
|
+
data: { epoch },
|
|
489
|
+
});
|
|
490
|
+
debugDiscovery?.("hmr: workerd ready at epoch %d", epoch);
|
|
491
|
+
};
|
|
492
|
+
if (opts?.preset === "cloudflare") {
|
|
493
|
+
const registeredClientHotChannels = new Set<any>();
|
|
494
|
+
const registerDevDiscoveryHotChannels = () => {
|
|
495
|
+
const clientHot = (server.environments as any)?.client?.hot;
|
|
496
|
+
if (clientHot && !registeredClientHotChannels.has(clientHot)) {
|
|
497
|
+
registeredClientHotChannels.add(clientHot);
|
|
498
|
+
clientHot.on(
|
|
499
|
+
DEV_DISCOVERY_QUERY_EVENT,
|
|
500
|
+
(_payload: unknown, client: any) => {
|
|
501
|
+
if (workerReadyEpoch === undefined) return;
|
|
502
|
+
client.send(DEV_DISCOVERY_READY_EVENT, {
|
|
503
|
+
epoch: workerReadyEpoch,
|
|
504
|
+
});
|
|
505
|
+
},
|
|
506
|
+
);
|
|
507
|
+
}
|
|
508
|
+
debugDiscovery?.(
|
|
509
|
+
"hmr: dev discovery browser channel registered (client=%s)",
|
|
510
|
+
!!clientHot,
|
|
511
|
+
);
|
|
512
|
+
};
|
|
513
|
+
|
|
514
|
+
registerDevDiscoveryHotChannels();
|
|
515
|
+
if (server.httpServer && !server.httpServer.listening) {
|
|
516
|
+
server.httpServer.once("listening", registerDevDiscoveryHotChannels);
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
|
|
398
520
|
// Serve the internal-debug module no-cache: consumers resolve it into
|
|
399
521
|
// node_modules, where dev's immutable `?v=` caching pinned browsers to a
|
|
400
522
|
// stale baked INTERNAL_RANGO_DEBUG. See internalDebugNoCacheMiddleware.
|
|
@@ -423,6 +545,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
423
545
|
const getDevServerOrigin = () =>
|
|
424
546
|
server.resolvedUrls?.local?.[0]?.replace(/\/$/, "") ||
|
|
425
547
|
`http://localhost:${server.config.server.port || 5173}`;
|
|
548
|
+
let devServerClosed = false;
|
|
426
549
|
|
|
427
550
|
// Shared temp server for Cloudflare dev (no module runner in workerd).
|
|
428
551
|
// Used by both discover() (route type generation) and the prerender
|
|
@@ -433,6 +556,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
433
556
|
|
|
434
557
|
// Clean up the temporary server and build env when the dev server shuts down
|
|
435
558
|
server.httpServer?.on("close", () => {
|
|
559
|
+
devServerClosed = true;
|
|
436
560
|
if (prerenderTempServer) {
|
|
437
561
|
prerenderTempServer.close().catch(() => {});
|
|
438
562
|
prerenderTempServer = null;
|
|
@@ -480,7 +604,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
480
604
|
}
|
|
481
605
|
}
|
|
482
606
|
|
|
483
|
-
async function getOrCreateTempServer(): Promise<
|
|
607
|
+
async function getOrCreateTempServer(): Promise<TempServerResult> {
|
|
484
608
|
// Reuse path: if a temp server is already alive, prefer reusing
|
|
485
609
|
// it over orphaning the existing instance and spinning up a new
|
|
486
610
|
// one. This handles two cases:
|
|
@@ -501,7 +625,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
501
625
|
debugDiscovery?.(
|
|
502
626
|
"getOrCreateTempServer: cached temp runner reused",
|
|
503
627
|
);
|
|
504
|
-
return existingEnv;
|
|
628
|
+
return { env: existingEnv, error: null };
|
|
505
629
|
}
|
|
506
630
|
// Server alive but registry missing — likely after a prior
|
|
507
631
|
// refresh's invalidate + import threw. Try to re-import.
|
|
@@ -510,7 +634,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
510
634
|
);
|
|
511
635
|
try {
|
|
512
636
|
await importEntryAndRegistry(existingEnv);
|
|
513
|
-
return existingEnv;
|
|
637
|
+
return { env: existingEnv, error: null };
|
|
514
638
|
} catch (err: any) {
|
|
515
639
|
debugDiscovery?.(
|
|
516
640
|
"getOrCreateTempServer: reuse import failed (%s) — closing orphan and creating fresh",
|
|
@@ -538,20 +662,30 @@ export function createRouterDiscoveryPlugin(
|
|
|
538
662
|
"getOrCreateTempServer: creating new temp server, entry=%s",
|
|
539
663
|
s.resolvedEntryPath ?? "(unset)",
|
|
540
664
|
);
|
|
665
|
+
// Surface the create/import cause to the caller (issue #719 P2): a
|
|
666
|
+
// transient re-optimization is re-pollable, a terminal fault is not. A
|
|
667
|
+
// clean createServer that yields no runner leaves this null — terminal,
|
|
668
|
+
// but not an exception.
|
|
669
|
+
let createError: unknown = null;
|
|
541
670
|
try {
|
|
542
671
|
prerenderTempServer = await createTempRscServer(s, {
|
|
543
672
|
cacheDir: "node_modules/.vite_prerender",
|
|
673
|
+
// The dev /__rsc_shell endpoint drives captureShellHTML in this
|
|
674
|
+
// server's SSR realm; the entry is only imported when a shell
|
|
675
|
+
// capture runs, so discovery cost is unchanged.
|
|
676
|
+
realSsrEntry: true,
|
|
544
677
|
});
|
|
545
678
|
|
|
546
679
|
const tempRscEnv = (prerenderTempServer.environments as any)?.rsc;
|
|
547
680
|
if (tempRscEnv?.runner) {
|
|
548
681
|
await importEntryAndRegistry(tempRscEnv);
|
|
549
|
-
return tempRscEnv;
|
|
682
|
+
return { env: tempRscEnv, error: null };
|
|
550
683
|
}
|
|
551
684
|
debugDiscovery?.(
|
|
552
685
|
"getOrCreateTempServer: tempRscEnv.runner unavailable",
|
|
553
686
|
);
|
|
554
687
|
} catch (err: any) {
|
|
688
|
+
createError = err;
|
|
555
689
|
debugDiscovery?.(
|
|
556
690
|
"getOrCreateTempServer: FAILED message=%s",
|
|
557
691
|
err.message,
|
|
@@ -566,7 +700,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
566
700
|
await prerenderTempServer?.close().catch(() => {});
|
|
567
701
|
prerenderTempServer = null;
|
|
568
702
|
prerenderNodeRegistry = null;
|
|
569
|
-
return null;
|
|
703
|
+
return { env: null, error: createError };
|
|
570
704
|
}
|
|
571
705
|
|
|
572
706
|
// Clear the package-level singleton registries that survive a Vite
|
|
@@ -619,7 +753,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
619
753
|
// versions / preset configurations may differ in which graph carries
|
|
620
754
|
// the module-runner cache).
|
|
621
755
|
async function refreshTempRscEnv(): Promise<any | null> {
|
|
622
|
-
|
|
756
|
+
const tempRscEnv = (await getOrCreateTempServer()).env;
|
|
623
757
|
if (!tempRscEnv) return null;
|
|
624
758
|
|
|
625
759
|
// Module-runner cache is on the per-environment graph in Vite 6+;
|
|
@@ -645,7 +779,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
645
779
|
prerenderTempServer = null;
|
|
646
780
|
prerenderNodeRegistry = null;
|
|
647
781
|
}
|
|
648
|
-
return await getOrCreateTempServer();
|
|
782
|
+
return (await getOrCreateTempServer()).env;
|
|
649
783
|
}
|
|
650
784
|
|
|
651
785
|
debugDiscovery?.(
|
|
@@ -718,11 +852,11 @@ export function createRouterDiscoveryPlugin(
|
|
|
718
852
|
acquireBuildEnv(s, viteCommand, viteMode),
|
|
719
853
|
);
|
|
720
854
|
|
|
721
|
-
tempRscEnv =
|
|
722
|
-
debugDiscovery,
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
);
|
|
855
|
+
tempRscEnv = (
|
|
856
|
+
await timed(debugDiscovery, "getOrCreateTempServer", () =>
|
|
857
|
+
getOrCreateTempServer(),
|
|
858
|
+
)
|
|
859
|
+
).env;
|
|
726
860
|
if (tempRscEnv) {
|
|
727
861
|
optimizerHashBefore =
|
|
728
862
|
tempRscEnv.depsOptimizer?.metadata?.browserHash;
|
|
@@ -866,16 +1000,6 @@ export function createRouterDiscoveryPlugin(
|
|
|
866
1000
|
if (s.mergedRouteManifest && serverMod.setCachedManifest) {
|
|
867
1001
|
serverMod.setCachedManifest(s.mergedRouteManifest);
|
|
868
1002
|
}
|
|
869
|
-
if (
|
|
870
|
-
s.mergedPrecomputedEntries &&
|
|
871
|
-
s.mergedPrecomputedEntries.length > 0 &&
|
|
872
|
-
serverMod.setPrecomputedEntries
|
|
873
|
-
) {
|
|
874
|
-
serverMod.setPrecomputedEntries(s.mergedPrecomputedEntries);
|
|
875
|
-
}
|
|
876
|
-
if (s.mergedRouteTrie && serverMod.setRouteTrie) {
|
|
877
|
-
serverMod.setRouteTrie(s.mergedRouteTrie);
|
|
878
|
-
}
|
|
879
1003
|
const perRouterSetters: Array<[Map<string, any>, string]> = [
|
|
880
1004
|
[s.perRouterManifestDataMap, "setRouterManifest"],
|
|
881
1005
|
[s.perRouterTrieMap, "setRouterTrie"],
|
|
@@ -949,7 +1073,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
949
1073
|
// instances. Before #654 the cached registry was only refreshed on
|
|
950
1074
|
// route-file edits, so handler-only edits served stale prerender
|
|
951
1075
|
// content on this path. Warm-cache re-imports are module-cache hits.
|
|
952
|
-
const tempRscEnv = await getOrCreateTempServer();
|
|
1076
|
+
const tempRscEnv = (await getOrCreateTempServer()).env;
|
|
953
1077
|
if (tempRscEnv) {
|
|
954
1078
|
try {
|
|
955
1079
|
await importEntryAndRegistry(tempRscEnv);
|
|
@@ -1057,6 +1181,283 @@ export function createRouterDiscoveryPlugin(
|
|
|
1057
1181
|
logResult(404, "no match");
|
|
1058
1182
|
});
|
|
1059
1183
|
|
|
1184
|
+
// Dev on-demand PPR shell production (producer B, #699). There is no
|
|
1185
|
+
// build manifest in dev, so the serve path's read-through
|
|
1186
|
+
// (rsc/shell-build-manifest.ts) fetches the shell entry from here on a
|
|
1187
|
+
// Prerender+ppr route's first request — dev serves x-rango-shell: HIT
|
|
1188
|
+
// from request one, mirroring production. Memoized per router HMR
|
|
1189
|
+
// generation AND per caller version (a client-module edit bumps the
|
|
1190
|
+
// version without rotating the router instance; the stale entry would
|
|
1191
|
+
// fail the serve gate forever). The endpoint is policy-free: the caller
|
|
1192
|
+
// (the serve gate, which resolved the route's ppr option) sends
|
|
1193
|
+
// ttl/swr/tags/version. Only prerender-backed routes produce entries —
|
|
1194
|
+
// the /__rsc_prerender pre-flight below both warms the payload memo the
|
|
1195
|
+
// capture's dev store fetch will hit AND refuses non-prerenderable
|
|
1196
|
+
// routes (a live-handler render must never be served as a baked shell).
|
|
1197
|
+
server.middlewares.use("/__rsc_shell", async (req: any, res: any) => {
|
|
1198
|
+
await s.discoveryDone;
|
|
1199
|
+
const url = new URL(req.url ?? "", "http://localhost");
|
|
1200
|
+
const pathname = url.searchParams.get("pathname");
|
|
1201
|
+
const routeName = url.searchParams.get("routeName");
|
|
1202
|
+
const version = url.searchParams.get("version");
|
|
1203
|
+
// ttl is required like the identifiers: the endpoint is policy-free
|
|
1204
|
+
// (the serve gate resolved the route's ppr option and always sends
|
|
1205
|
+
// it), so there is deliberately no default to drift from
|
|
1206
|
+
// resolvePprConfig's.
|
|
1207
|
+
const ttlRaw = url.searchParams.get("ttl");
|
|
1208
|
+
if (!pathname || !routeName || !version || !ttlRaw) {
|
|
1209
|
+
res.statusCode = 400;
|
|
1210
|
+
res.end("Missing pathname/routeName/version/ttl");
|
|
1211
|
+
return;
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
// Boot-race readiness signal (issue #719): the capture realm is stood
|
|
1215
|
+
// up lazily on the first hit (temp server, registry import, and a Vite
|
|
1216
|
+
// dep re-optimization the first shell-capture import can trigger). All
|
|
1217
|
+
// are TRANSIENT — a retry seconds later succeeds. Tagging them 503 +
|
|
1218
|
+
// x-rango-shell-dev: NOT-READY lets the read-through re-poll ONLY these
|
|
1219
|
+
// (a bounded await of readiness) instead of mapping the boot window to
|
|
1220
|
+
// a hard first-request MISS. Genuine negatives (404) stay untagged so a
|
|
1221
|
+
// non-baked route never stalls the foreground.
|
|
1222
|
+
const sendNotReady = (detail: string): void => {
|
|
1223
|
+
res.statusCode = 503;
|
|
1224
|
+
res.setHeader("x-rango-shell-dev", "NOT-READY");
|
|
1225
|
+
res.end(detail);
|
|
1226
|
+
};
|
|
1227
|
+
// A Vite dependency re-optimization surfaces as ERR_OUTDATED_OPTIMIZED_DEP
|
|
1228
|
+
// (import throws once, then re-imports clean) — retryable, unlike a real
|
|
1229
|
+
// module fault (syntax error, missing export), which stays a hard 500.
|
|
1230
|
+
// The message-regex fallback is NOT gratuitous: err.code is stripped when
|
|
1231
|
+
// the error serializes across the module-runner/workerd RPC boundary (the
|
|
1232
|
+
// message survives), so under the Cloudflare preset .code alone misses it.
|
|
1233
|
+
const isReoptimizing = (err: any): boolean =>
|
|
1234
|
+
err?.code === "ERR_OUTDATED_OPTIMIZED_DEP" ||
|
|
1235
|
+
/Outdated Optimize Dep|optimized dependency|new dependencies optimized/i.test(
|
|
1236
|
+
String(err?.message ?? ""),
|
|
1237
|
+
);
|
|
1238
|
+
// Fold the reoptimize-guard pasted at all three import/capture catch
|
|
1239
|
+
// sites: emit NOT-READY + report handled for a transient re-optimization,
|
|
1240
|
+
// else leave the caller to send its own terminal (500 for an entry
|
|
1241
|
+
// import, 404 for a mid-capture failure that keeps runtime capture).
|
|
1242
|
+
const handledAsReoptimizing = (err: any): boolean => {
|
|
1243
|
+
if (!isReoptimizing(err)) return false;
|
|
1244
|
+
sendNotReady(`Shell capture re-optimizing: ${err.message}`);
|
|
1245
|
+
return true;
|
|
1246
|
+
};
|
|
1247
|
+
// Both entry-import sites (main-server rsc env, temp Node server) fail
|
|
1248
|
+
// identically: reoptimize → NOT-READY, else → hard 500.
|
|
1249
|
+
const handleShellImportError = (err: any): void => {
|
|
1250
|
+
if (handledAsReoptimizing(err)) return;
|
|
1251
|
+
res.statusCode = 500;
|
|
1252
|
+
res.end(`Shell capture module refresh failed: ${err.message}`);
|
|
1253
|
+
};
|
|
1254
|
+
// Deterministic boot-race injection for e2e (issue #719 P3): fire ONE
|
|
1255
|
+
// reopt-class NOT-READY per pathname through the REAL classifier so the
|
|
1256
|
+
// read-through's re-poll path is exercised end-to-end (not just the
|
|
1257
|
+
// unit-mocked fetch), then serve normally on the re-poll. Env-gated —
|
|
1258
|
+
// inert in every non-test run.
|
|
1259
|
+
if (
|
|
1260
|
+
process.env.RANGO_E2E_INJECT_SHELL_NOTREADY === "1" &&
|
|
1261
|
+
!injectedShellNotReadyPaths.has(pathname)
|
|
1262
|
+
) {
|
|
1263
|
+
injectedShellNotReadyPaths.add(pathname);
|
|
1264
|
+
const injected = Object.assign(
|
|
1265
|
+
new Error("Outdated Optimize Dep (injected boot-race)"),
|
|
1266
|
+
{ code: "ERR_OUTDATED_OPTIMIZED_DEP" },
|
|
1267
|
+
);
|
|
1268
|
+
if (handledAsReoptimizing(injected)) return;
|
|
1269
|
+
}
|
|
1270
|
+
const ttl = Number(ttlRaw);
|
|
1271
|
+
const swrRaw = url.searchParams.get("swr");
|
|
1272
|
+
const swr = swrRaw === null ? undefined : Number(swrRaw);
|
|
1273
|
+
const tagsRaw = url.searchParams.get("tags");
|
|
1274
|
+
const tags = tagsRaw ? tagsRaw.split(",") : undefined;
|
|
1275
|
+
const maxSnapshotBytesRaw = url.searchParams.get("maxSnapshotBytes");
|
|
1276
|
+
const maxSnapshotBytes =
|
|
1277
|
+
maxSnapshotBytesRaw === null
|
|
1278
|
+
? undefined
|
|
1279
|
+
: Number(maxSnapshotBytesRaw);
|
|
1280
|
+
// Boundary revalidation via the SHARED normalizer (shell-serve.ts):
|
|
1281
|
+
// the param crossed an HTTP query string, and a garbage value must
|
|
1282
|
+
// fall back to the capture default, never reach setTimeout as NaN
|
|
1283
|
+
// (which Node clamps to ~1ms — an instant abort).
|
|
1284
|
+
const captureTimeout = normalizeCaptureTimeout(
|
|
1285
|
+
Number(url.searchParams.get("captureTimeout")),
|
|
1286
|
+
);
|
|
1287
|
+
|
|
1288
|
+
// Resolve the capture realms: main-server envs (Node preset) or the
|
|
1289
|
+
// shared temp Node server (Cloudflare preset — no main RSC runner).
|
|
1290
|
+
// Entry re-import per request picks up HMR edits, exactly like the
|
|
1291
|
+
// prerender endpoint above.
|
|
1292
|
+
const rscEnvMain = (server.environments as any)?.rsc;
|
|
1293
|
+
let rscRealm: any = null;
|
|
1294
|
+
let ssrRealm: any = null;
|
|
1295
|
+
let ssrEntryId: string;
|
|
1296
|
+
// Why the temp-server path returned no runner, if it did: a transient
|
|
1297
|
+
// re-optimization is re-pollable (NOT-READY), a terminal create/import
|
|
1298
|
+
// fault is not. Carried from getOrCreateTempServer to the readiness
|
|
1299
|
+
// check below so only reopt re-polls (issue #719 P2).
|
|
1300
|
+
let tempServerError: unknown = null;
|
|
1301
|
+
if (rscEnvMain?.runner && s.resolvedEntryPath) {
|
|
1302
|
+
try {
|
|
1303
|
+
await rscEnvMain.runner.import(s.resolvedEntryPath);
|
|
1304
|
+
} catch (err: any) {
|
|
1305
|
+
handleShellImportError(err);
|
|
1306
|
+
return;
|
|
1307
|
+
}
|
|
1308
|
+
rscRealm = rscEnvMain;
|
|
1309
|
+
ssrRealm = (server.environments as any)?.ssr;
|
|
1310
|
+
ssrEntryId =
|
|
1311
|
+
(server.environments as any)?.ssr?.config?.build?.rollupOptions
|
|
1312
|
+
?.input?.index ?? VIRTUAL_IDS.ssr;
|
|
1313
|
+
} else {
|
|
1314
|
+
const tempResult = await getOrCreateTempServer();
|
|
1315
|
+
if (tempResult.env) {
|
|
1316
|
+
try {
|
|
1317
|
+
await importEntryAndRegistry(tempResult.env);
|
|
1318
|
+
} catch (err: any) {
|
|
1319
|
+
handleShellImportError(err);
|
|
1320
|
+
return;
|
|
1321
|
+
}
|
|
1322
|
+
} else {
|
|
1323
|
+
tempServerError = tempResult.error;
|
|
1324
|
+
}
|
|
1325
|
+
rscRealm = tempResult.env;
|
|
1326
|
+
ssrRealm = (prerenderTempServer?.environments as any)?.ssr;
|
|
1327
|
+
ssrEntryId = "virtual:entry-ssr";
|
|
1328
|
+
}
|
|
1329
|
+
if (!rscRealm?.runner || !ssrRealm?.runner) {
|
|
1330
|
+
// Reoptimization is the ONLY transient class: re-poll it (NOT-READY).
|
|
1331
|
+
// A terminal temp-server create/import fault, or an SSR runner absent
|
|
1332
|
+
// after a clean createServer, fails fast with a plain 503 (no
|
|
1333
|
+
// NOT-READY header) so the read-through MISSes on its first attempt
|
|
1334
|
+
// instead of re-polling a permanently-broken realm for the full
|
|
1335
|
+
// readiness deadline (issue #719 P2).
|
|
1336
|
+
if (tempServerError && handledAsReoptimizing(tempServerError)) return;
|
|
1337
|
+
res.statusCode = 503;
|
|
1338
|
+
res.end("Shell capture runners not available");
|
|
1339
|
+
return;
|
|
1340
|
+
}
|
|
1341
|
+
let registry: Map<string, any> | null = null;
|
|
1342
|
+
let registryError: unknown = null;
|
|
1343
|
+
try {
|
|
1344
|
+
const serverMod = await rscRealm.runner.import(
|
|
1345
|
+
"@rangojs/router/server",
|
|
1346
|
+
);
|
|
1347
|
+
registry = serverMod.RouterRegistry ?? null;
|
|
1348
|
+
} catch (err: any) {
|
|
1349
|
+
registryError = err;
|
|
1350
|
+
registry = null;
|
|
1351
|
+
}
|
|
1352
|
+
if (!registry || registry.size === 0) {
|
|
1353
|
+
// Same rule as the runner check: a re-optimization mid-import is
|
|
1354
|
+
// re-pollable (NOT-READY); a terminal import fault or a genuinely
|
|
1355
|
+
// empty registry (no routers registered) fails fast (issue #719 P2).
|
|
1356
|
+
if (registryError && handledAsReoptimizing(registryError)) return;
|
|
1357
|
+
res.statusCode = 503;
|
|
1358
|
+
res.end("Shell capture registry not available");
|
|
1359
|
+
return;
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1362
|
+
// Memo sweep FIRST: after request one the common case is a memo HIT
|
|
1363
|
+
// (this fetch blocks a foreground document request), and the memoized
|
|
1364
|
+
// body needs neither the pre-flight round-trip nor a capture. Keyed
|
|
1365
|
+
// per router instance (= HMR generation) like the prerender memo.
|
|
1366
|
+
const cacheKey = `shell|${pathname}|r=${routeName}|t=${ttl}|s=${swr ?? ""}|g=${(tags ?? []).join("+")}|c=${captureTimeout ?? ""}|v=${version}`;
|
|
1367
|
+
for (const [, routerInstance] of registry) {
|
|
1368
|
+
if (typeof routerInstance.match !== "function") continue;
|
|
1369
|
+
const cached = devPrerenderCache.get(routerInstance, cacheKey);
|
|
1370
|
+
if (cached !== undefined) {
|
|
1371
|
+
res.setHeader("content-type", "application/json");
|
|
1372
|
+
res.setHeader("x-rango-shell-dev", "HIT");
|
|
1373
|
+
res.end(cached);
|
|
1374
|
+
return;
|
|
1375
|
+
}
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1378
|
+
// Pre-flight: the route must be prerender-backed. Warms the payload
|
|
1379
|
+
// memo the capture's dev prerender store will fetch, and closes the
|
|
1380
|
+
// live-handler-bake hole (a non-pr route 404s here).
|
|
1381
|
+
if (s.devServerOrigin) {
|
|
1382
|
+
try {
|
|
1383
|
+
const probe = await fetch(
|
|
1384
|
+
`${s.devServerOrigin}/__rsc_prerender?pathname=${encodeURIComponent(pathname)}&routeName=${encodeURIComponent(routeName)}`,
|
|
1385
|
+
{ signal: AbortSignal.timeout(DEV_SHELL_PROBE_TIMEOUT_MS) },
|
|
1386
|
+
);
|
|
1387
|
+
if (!probe.ok) {
|
|
1388
|
+
res.statusCode = 404;
|
|
1389
|
+
res.end("Route is not prerenderable");
|
|
1390
|
+
return;
|
|
1391
|
+
}
|
|
1392
|
+
} catch {
|
|
1393
|
+
res.statusCode = 404;
|
|
1394
|
+
res.end("Prerender pre-flight failed");
|
|
1395
|
+
return;
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
for (const [, routerInstance] of registry) {
|
|
1400
|
+
if (typeof routerInstance.match !== "function") continue;
|
|
1401
|
+
try {
|
|
1402
|
+
const ssrModule = await ssrRealm.runner.import(ssrEntryId);
|
|
1403
|
+
if (typeof ssrModule?.captureShellHTML !== "function") {
|
|
1404
|
+
res.statusCode = 404;
|
|
1405
|
+
res.end("SSR entry has no captureShellHTML");
|
|
1406
|
+
return;
|
|
1407
|
+
}
|
|
1408
|
+
const captureMod = await rscRealm.runner.import(
|
|
1409
|
+
"@rangojs/router/build/shell-capture",
|
|
1410
|
+
);
|
|
1411
|
+
const result = await captureMod.captureShellForBuild({
|
|
1412
|
+
router: routerInstance,
|
|
1413
|
+
urlPath: pathname,
|
|
1414
|
+
routeName,
|
|
1415
|
+
key: `${pathname}:shell`,
|
|
1416
|
+
ttl,
|
|
1417
|
+
swr,
|
|
1418
|
+
tags,
|
|
1419
|
+
maxSnapshotBytes,
|
|
1420
|
+
captureTimeout,
|
|
1421
|
+
buildEnv: s.resolvedBuildEnv,
|
|
1422
|
+
buildVersion: version,
|
|
1423
|
+
captureShellHTML: ssrModule.captureShellHTML,
|
|
1424
|
+
debug: !!debugDiscovery,
|
|
1425
|
+
});
|
|
1426
|
+
if (result.outcome === "route-mismatch") continue;
|
|
1427
|
+
if (result.outcome !== "stored" || !result.entry) {
|
|
1428
|
+
res.statusCode = 404;
|
|
1429
|
+
res.end(`Shell capture ${result.outcome}`);
|
|
1430
|
+
return;
|
|
1431
|
+
}
|
|
1432
|
+
const body = JSON.stringify({
|
|
1433
|
+
entry: result.entry,
|
|
1434
|
+
ttl,
|
|
1435
|
+
swr,
|
|
1436
|
+
tags: result.tags,
|
|
1437
|
+
routeName,
|
|
1438
|
+
});
|
|
1439
|
+
devPrerenderCache.set(routerInstance, cacheKey, body);
|
|
1440
|
+
res.setHeader("content-type", "application/json");
|
|
1441
|
+
res.setHeader("x-rango-shell-dev", "MISS");
|
|
1442
|
+
res.end(body);
|
|
1443
|
+
return;
|
|
1444
|
+
} catch (err: any) {
|
|
1445
|
+
// A dep re-optimization mid-capture is a boot-race, not a capture
|
|
1446
|
+
// failure: signal NOT-READY so the read-through re-polls instead of
|
|
1447
|
+
// conceding a first-request MISS (issue #719).
|
|
1448
|
+
if (handledAsReoptimizing(err)) return;
|
|
1449
|
+
console.warn(
|
|
1450
|
+
`[rango] Dev shell capture error for ${pathname} (route keeps runtime capture): ${err.message}`,
|
|
1451
|
+
);
|
|
1452
|
+
res.statusCode = 404;
|
|
1453
|
+
res.end(`Shell capture error: ${err.message}`);
|
|
1454
|
+
return;
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1457
|
+
res.statusCode = 404;
|
|
1458
|
+
res.end("No router matched");
|
|
1459
|
+
});
|
|
1460
|
+
|
|
1060
1461
|
// Watch url module and router files for changes and regenerate named-routes.gen.ts.
|
|
1061
1462
|
// Process files containing urls( or createRouter( to update the combined route map.
|
|
1062
1463
|
if (opts?.staticRouteTypesGeneration !== false) {
|
|
@@ -1072,6 +1473,22 @@ export function createRouterDiscoveryPlugin(
|
|
|
1072
1473
|
writeCombinedRouteTypesWithTracking(s);
|
|
1073
1474
|
}
|
|
1074
1475
|
};
|
|
1476
|
+
const routeShapeSignature = () =>
|
|
1477
|
+
JSON.stringify(
|
|
1478
|
+
s.perRouterManifests.map(
|
|
1479
|
+
({
|
|
1480
|
+
id,
|
|
1481
|
+
routeManifest,
|
|
1482
|
+
routeTrailingSlash,
|
|
1483
|
+
routeSearchSchemas,
|
|
1484
|
+
}) => ({
|
|
1485
|
+
id,
|
|
1486
|
+
routeManifest,
|
|
1487
|
+
routeTrailingSlash,
|
|
1488
|
+
routeSearchSchemas,
|
|
1489
|
+
}),
|
|
1490
|
+
),
|
|
1491
|
+
);
|
|
1075
1492
|
|
|
1076
1493
|
const maybeHandleGeneratedRouteFileMutation = (
|
|
1077
1494
|
filePath: string,
|
|
@@ -1110,6 +1527,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
1110
1527
|
// populated manifest there's nothing useful to do, so bail
|
|
1111
1528
|
// before involving the gate machine at all.
|
|
1112
1529
|
if (!hasMainRunner && s.perRouterManifests.length === 0) return;
|
|
1530
|
+
let previousRouteShape = routeShapeSignature();
|
|
1113
1531
|
await gate.runRefreshCycle(async () => {
|
|
1114
1532
|
const hmrStart = performance.now();
|
|
1115
1533
|
try {
|
|
@@ -1164,7 +1582,19 @@ export function createRouterDiscoveryPlugin(
|
|
|
1164
1582
|
// original call already resolved on the failed cycle. A failed
|
|
1165
1583
|
// cycle throws above and never reaches here, so a broken edit
|
|
1166
1584
|
// never reloads the worker onto bad source.
|
|
1167
|
-
if (rscEnv && !rscEnv.runner)
|
|
1585
|
+
if (rscEnv && !rscEnv.runner) {
|
|
1586
|
+
const nextRouteShape = routeShapeSignature();
|
|
1587
|
+
let expectedEpoch: number | undefined;
|
|
1588
|
+
if (nextRouteShape !== previousRouteShape) {
|
|
1589
|
+
expectedEpoch = Math.max(
|
|
1590
|
+
Date.now(),
|
|
1591
|
+
(s.devDiscoveryEpoch ?? 0) + 1,
|
|
1592
|
+
);
|
|
1593
|
+
s.devDiscoveryEpoch = expectedEpoch;
|
|
1594
|
+
}
|
|
1595
|
+
previousRouteShape = nextRouteShape;
|
|
1596
|
+
forceCloudflareWorkerReload(rscEnv, expectedEpoch);
|
|
1597
|
+
}
|
|
1168
1598
|
} catch (err: any) {
|
|
1169
1599
|
s.lastDiscoveryError = {
|
|
1170
1600
|
message: err?.message ?? String(err),
|
|
@@ -1198,7 +1628,8 @@ export function createRouterDiscoveryPlugin(
|
|
|
1198
1628
|
// HMR update for them and the entry chain is never evicted.
|
|
1199
1629
|
//
|
|
1200
1630
|
// Fix: after discovery completes, (1) invalidate the worker env's
|
|
1201
|
-
// Node-side module graph,
|
|
1631
|
+
// Node-side module graph, (2) send a full-reload to the worker, then
|
|
1632
|
+
// (3) probe until the active router reports the new discovery epoch.
|
|
1202
1633
|
// Step (2) alone is insufficient: the full-reload handler clears the
|
|
1203
1634
|
// runner's evaluatedModules and re-imports entrypoints, but each
|
|
1204
1635
|
// re-import fetches the module back through this Node-side graph, which
|
|
@@ -1206,13 +1637,19 @@ export function createRouterDiscoveryPlugin(
|
|
|
1206
1637
|
// rebuilds the stale route table and the new route 404s/hits the
|
|
1207
1638
|
// catch-all. Invalidating the graph forces a fresh transform on
|
|
1208
1639
|
// re-fetch (the same mechanism refreshTempRscEnv uses for discovery),
|
|
1209
|
-
// so the re-import re-runs createRouter() with the new routes.
|
|
1210
|
-
//
|
|
1211
|
-
//
|
|
1212
|
-
|
|
1640
|
+
// so the re-import re-runs createRouter() with the new routes. The probe
|
|
1641
|
+
// is detached because the refresh callback still holds the discovery
|
|
1642
|
+
// gate; awaiting it here would deadlock the request that proves the new
|
|
1643
|
+
// router is active. Once it succeeds, the client hot channel broadcasts
|
|
1644
|
+
// readiness to open and newly-booted stale documents.
|
|
1645
|
+
const forceCloudflareWorkerReload = (
|
|
1646
|
+
rscEnv: any,
|
|
1647
|
+
expectedEpoch: number | undefined,
|
|
1648
|
+
) => {
|
|
1213
1649
|
if (!rscEnv?.hot) return;
|
|
1214
|
-
|
|
1215
|
-
|
|
1650
|
+
|
|
1651
|
+
const graph = rscEnv.moduleGraph;
|
|
1652
|
+
const reloadWorkerd = () => {
|
|
1216
1653
|
if (graph?.invalidateAll) {
|
|
1217
1654
|
graph.invalidateAll();
|
|
1218
1655
|
debugDiscovery?.("hmr: invalidated workerd rsc module graph");
|
|
@@ -1221,12 +1658,49 @@ export function createRouterDiscoveryPlugin(
|
|
|
1221
1658
|
debugDiscovery?.(
|
|
1222
1659
|
"hmr: forced workerd rsc env reload (full-reload)",
|
|
1223
1660
|
);
|
|
1224
|
-
}
|
|
1661
|
+
};
|
|
1662
|
+
reloadWorkerd();
|
|
1663
|
+
|
|
1664
|
+
if (expectedEpoch === undefined) return;
|
|
1665
|
+
void (async () => {
|
|
1666
|
+
const deadline = Date.now() + 15_000;
|
|
1667
|
+
do {
|
|
1668
|
+
if (devServerClosed || expectedEpoch !== s.devDiscoveryEpoch) {
|
|
1669
|
+
return;
|
|
1670
|
+
}
|
|
1671
|
+
await new Promise<void>((resolve) => setTimeout(resolve, 25));
|
|
1672
|
+
if (devServerClosed || expectedEpoch !== s.devDiscoveryEpoch) {
|
|
1673
|
+
return;
|
|
1674
|
+
}
|
|
1675
|
+
try {
|
|
1676
|
+
const response = await fetch(getDevServerOrigin() + "/", {
|
|
1677
|
+
cache: "no-store",
|
|
1678
|
+
headers: {
|
|
1679
|
+
[DEV_DISCOVERY_PROBE_HEADER]: String(expectedEpoch),
|
|
1680
|
+
},
|
|
1681
|
+
signal: AbortSignal.timeout(1_000),
|
|
1682
|
+
});
|
|
1683
|
+
if (
|
|
1684
|
+
!devServerClosed &&
|
|
1685
|
+
expectedEpoch === s.devDiscoveryEpoch &&
|
|
1686
|
+
response.headers.get(DEV_DISCOVERY_EPOCH_HEADER) ===
|
|
1687
|
+
String(expectedEpoch)
|
|
1688
|
+
) {
|
|
1689
|
+
publishDevDiscoveryReady(expectedEpoch);
|
|
1690
|
+
return;
|
|
1691
|
+
}
|
|
1692
|
+
// A response without the expected epoch proves an older worker
|
|
1693
|
+
// evaluation won the race after the initial invalidation. Clear
|
|
1694
|
+
// that completed evaluation and retry the reload.
|
|
1695
|
+
reloadWorkerd();
|
|
1696
|
+
} catch {}
|
|
1697
|
+
} while (Date.now() < deadline);
|
|
1698
|
+
|
|
1225
1699
|
debugDiscovery?.(
|
|
1226
|
-
"hmr: workerd
|
|
1227
|
-
|
|
1700
|
+
"hmr: workerd readiness probe timed out at epoch %d",
|
|
1701
|
+
expectedEpoch,
|
|
1228
1702
|
);
|
|
1229
|
-
}
|
|
1703
|
+
})();
|
|
1230
1704
|
};
|
|
1231
1705
|
|
|
1232
1706
|
const scheduleRouteRegeneration = () => {
|
|
@@ -1430,8 +1904,7 @@ export function createRouterDiscoveryPlugin(
|
|
|
1430
1904
|
const buildStartTime = performance.now();
|
|
1431
1905
|
debugDiscovery?.("build: start (env=%s)", this.environment?.name ?? "?");
|
|
1432
1906
|
resetStagedBuildAssets(s.projectRoot);
|
|
1433
|
-
s
|
|
1434
|
-
s.staticManifestEntries = null;
|
|
1907
|
+
resetPrerenderCollection(s);
|
|
1435
1908
|
|
|
1436
1909
|
// Acquire build-time env bindings if configured
|
|
1437
1910
|
await timed(debugDiscovery, "build acquireBuildEnv", () =>
|
|
@@ -1502,12 +1975,23 @@ export function createRouterDiscoveryPlugin(
|
|
|
1502
1975
|
);
|
|
1503
1976
|
} finally {
|
|
1504
1977
|
delete (globalThis as any).__rscRouterDiscoveryActive;
|
|
1505
|
-
if (tempServer) {
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
)
|
|
1978
|
+
if (tempServer && s.shellCandidates?.length) {
|
|
1979
|
+
// Prerender+ppr candidates exist: keep the temp server (and its
|
|
1980
|
+
// realm — tries installed, registry populated) alive for the
|
|
1981
|
+
// post-build shell capture phase (buildApp post, producer B #699).
|
|
1982
|
+
// The prelude embeds built client asset URLs, so the capture can
|
|
1983
|
+
// only run after the client build; that phase closes the server.
|
|
1984
|
+
// buildEnv release is deferred with it — a bake-lane loader
|
|
1985
|
+
// executing during the capture may read ctx.env.
|
|
1986
|
+
s.shellPhaseTempServer = tempServer;
|
|
1987
|
+
} else {
|
|
1988
|
+
if (tempServer) {
|
|
1989
|
+
await timed(debugDiscovery, "build tempServer.close", () =>
|
|
1990
|
+
tempServer.close(),
|
|
1991
|
+
);
|
|
1992
|
+
}
|
|
1993
|
+
await releaseBuildEnv(s);
|
|
1509
1994
|
}
|
|
1510
|
-
await releaseBuildEnv(s);
|
|
1511
1995
|
debugDiscovery?.(
|
|
1512
1996
|
"build discovery done (%sms)",
|
|
1513
1997
|
(performance.now() - buildStartTime).toFixed(1),
|
|
@@ -1515,6 +1999,43 @@ export function createRouterDiscoveryPlugin(
|
|
|
1515
1999
|
}
|
|
1516
2000
|
},
|
|
1517
2001
|
|
|
2002
|
+
// Post-build PPR shell capture (producer B, #699): runs after EVERY
|
|
2003
|
+
// environment bundle is written — the shell prelude embeds built client
|
|
2004
|
+
// asset URLs (bootstrap entry), which do not exist at buildStart. The
|
|
2005
|
+
// kept temp server and the buildEnv were deferred AS A PAIR in
|
|
2006
|
+
// buildStart's finally; this finally is the pair's success-path owner
|
|
2007
|
+
// (buildEnd below owns the aborted-build path) — the phase itself is a
|
|
2008
|
+
// pure producer and tears down only the globals it installs.
|
|
2009
|
+
buildApp: {
|
|
2010
|
+
order: "post",
|
|
2011
|
+
async handler(builder) {
|
|
2012
|
+
try {
|
|
2013
|
+
await runShellPrerenderPhase(s, builder as any);
|
|
2014
|
+
} finally {
|
|
2015
|
+
if (s.isBuildMode) {
|
|
2016
|
+
const tempServer = s.shellPhaseTempServer;
|
|
2017
|
+
s.shellPhaseTempServer = null;
|
|
2018
|
+
if (tempServer) await tempServer.close();
|
|
2019
|
+
await releaseBuildEnv(s);
|
|
2020
|
+
}
|
|
2021
|
+
}
|
|
2022
|
+
},
|
|
2023
|
+
},
|
|
2024
|
+
|
|
2025
|
+
// An environment build failure aborts the builder before the buildApp
|
|
2026
|
+
// post hook — never leak the kept temp server (open handles hang the CLI)
|
|
2027
|
+
// or the deferred buildEnv (a live miniflare proxy).
|
|
2028
|
+
async buildEnd(error) {
|
|
2029
|
+
if (!error || !s.shellPhaseTempServer) return;
|
|
2030
|
+
const tempServer = s.shellPhaseTempServer;
|
|
2031
|
+
s.shellPhaseTempServer = null;
|
|
2032
|
+
try {
|
|
2033
|
+
await tempServer.close();
|
|
2034
|
+
} finally {
|
|
2035
|
+
await releaseBuildEnv(s);
|
|
2036
|
+
}
|
|
2037
|
+
},
|
|
2038
|
+
|
|
1518
2039
|
// Suppress vite's HMR cascade for our own gen-file writes.
|
|
1519
2040
|
//
|
|
1520
2041
|
// After every cf HMR cycle, refreshTempRscEnv → writeRouteTypesFiles
|