@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
package/dist/vite/index.js
CHANGED
|
@@ -1,6 +1,201 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
3
|
+
var __esm = (fn, res, err) => function __init() {
|
|
4
|
+
if (err) throw err[0];
|
|
5
|
+
try {
|
|
6
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
7
|
+
} catch (e) {
|
|
8
|
+
throw err = [e], e;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
var __export = (target, all) => {
|
|
12
|
+
for (var name in all)
|
|
13
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
// src/vite/debug.ts
|
|
17
|
+
import debugFactory from "debug";
|
|
18
|
+
function createRangoDebugger(namespace) {
|
|
19
|
+
const primary = debugFactory(namespace);
|
|
20
|
+
const shadow = debugFactory(`vite:${namespace}`);
|
|
21
|
+
if (primary.enabled) return primary;
|
|
22
|
+
if (shadow.enabled) return shadow;
|
|
23
|
+
return void 0;
|
|
24
|
+
}
|
|
25
|
+
async function timed(debug12, label, fn) {
|
|
26
|
+
if (!debug12) return await fn();
|
|
27
|
+
const start = performance.now();
|
|
28
|
+
try {
|
|
29
|
+
return await fn();
|
|
30
|
+
} finally {
|
|
31
|
+
debug12("%s (%sms)", label, (performance.now() - start).toFixed(1));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function timedSync(debug12, label, fn) {
|
|
35
|
+
if (!debug12) return fn();
|
|
36
|
+
const start = performance.now();
|
|
37
|
+
try {
|
|
38
|
+
return fn();
|
|
39
|
+
} finally {
|
|
40
|
+
debug12("%s (%sms)", label, (performance.now() - start).toFixed(1));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function createCounter(debug12, label) {
|
|
44
|
+
if (!debug12) return void 0;
|
|
45
|
+
let n = 0;
|
|
46
|
+
let totalMs = 0;
|
|
47
|
+
let slowestMs = 0;
|
|
48
|
+
let slowestFile = "";
|
|
49
|
+
const record = (file, ms) => {
|
|
50
|
+
n++;
|
|
51
|
+
totalMs += ms;
|
|
52
|
+
if (ms > slowestMs) {
|
|
53
|
+
slowestMs = ms;
|
|
54
|
+
slowestFile = file;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
record,
|
|
59
|
+
time(file, fn) {
|
|
60
|
+
const start = performance.now();
|
|
61
|
+
let out;
|
|
62
|
+
try {
|
|
63
|
+
out = fn();
|
|
64
|
+
} catch (err) {
|
|
65
|
+
record(file, performance.now() - start);
|
|
66
|
+
throw err;
|
|
67
|
+
}
|
|
68
|
+
if (out && typeof out.then === "function") {
|
|
69
|
+
return out.finally(
|
|
70
|
+
() => record(file, performance.now() - start)
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
record(file, performance.now() - start);
|
|
74
|
+
return out;
|
|
75
|
+
},
|
|
76
|
+
flush() {
|
|
77
|
+
if (n === 0) return;
|
|
78
|
+
debug12(
|
|
79
|
+
"%s: %d files, %sms total, slowest %sms %s",
|
|
80
|
+
label,
|
|
81
|
+
n,
|
|
82
|
+
totalMs.toFixed(1),
|
|
83
|
+
slowestMs.toFixed(1),
|
|
84
|
+
slowestFile
|
|
85
|
+
);
|
|
86
|
+
n = 0;
|
|
87
|
+
totalMs = 0;
|
|
88
|
+
slowestMs = 0;
|
|
89
|
+
slowestFile = "";
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
var NS;
|
|
94
|
+
var init_debug = __esm({
|
|
95
|
+
"src/vite/debug.ts"() {
|
|
96
|
+
"use strict";
|
|
97
|
+
NS = {
|
|
98
|
+
config: "rango:config",
|
|
99
|
+
discovery: "rango:discovery",
|
|
100
|
+
routes: "rango:routes",
|
|
101
|
+
prerender: "rango:prerender",
|
|
102
|
+
build: "rango:build",
|
|
103
|
+
dev: "rango:dev",
|
|
104
|
+
transform: "rango:transform",
|
|
105
|
+
chunks: "rango:chunks"
|
|
106
|
+
};
|
|
107
|
+
if (process.env.INTERNAL_RANGO_DEBUG) {
|
|
108
|
+
const existing = debugFactory.disable();
|
|
109
|
+
debugFactory.enable(existing ? `${existing},rango:*` : "rango:*");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// src/vite/plugins/client-ref-hashing.ts
|
|
115
|
+
var client_ref_hashing_exports = {};
|
|
116
|
+
__export(client_ref_hashing_exports, {
|
|
117
|
+
computeProductionHash: () => computeProductionHash,
|
|
118
|
+
hashClientRefs: () => hashClientRefs,
|
|
119
|
+
hashRefKey: () => hashRefKey,
|
|
120
|
+
transformClientRefs: () => transformClientRefs
|
|
121
|
+
});
|
|
122
|
+
import { relative as relative2 } from "node:path";
|
|
123
|
+
import { createHash as createHash2 } from "node:crypto";
|
|
124
|
+
function hashRefKey(relativeId) {
|
|
125
|
+
return createHash2("sha256").update(relativeId).digest("hex").slice(0, 12);
|
|
126
|
+
}
|
|
127
|
+
function computeProductionHash(projectRoot, refKey) {
|
|
128
|
+
let toHash;
|
|
129
|
+
if (refKey.startsWith(CLIENT_PKG_PROXY_PREFIX)) {
|
|
130
|
+
toHash = refKey.slice(CLIENT_PKG_PROXY_PREFIX.length);
|
|
131
|
+
} else if (refKey.startsWith(CLIENT_IN_SERVER_PKG_PROXY_PREFIX)) {
|
|
132
|
+
const absPath = decodeURIComponent(
|
|
133
|
+
refKey.slice(CLIENT_IN_SERVER_PKG_PROXY_PREFIX.length)
|
|
134
|
+
);
|
|
135
|
+
toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
|
|
136
|
+
} else if (refKey.startsWith(FS_PREFIX)) {
|
|
137
|
+
const absPath = refKey.slice(FS_PREFIX.length - 1);
|
|
138
|
+
toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
|
|
139
|
+
} else if (refKey.startsWith("/")) {
|
|
140
|
+
toHash = refKey.slice(1);
|
|
141
|
+
} else {
|
|
142
|
+
return refKey;
|
|
143
|
+
}
|
|
144
|
+
return hashRefKey(toHash);
|
|
145
|
+
}
|
|
146
|
+
function transformClientRefs(code, projectRoot) {
|
|
147
|
+
if (!code.includes("registerClientReference")) return null;
|
|
148
|
+
let hasReplacement = false;
|
|
149
|
+
const result = code.replace(
|
|
150
|
+
REGISTER_CLIENT_REF_RE,
|
|
151
|
+
(match, refKey) => {
|
|
152
|
+
const hash = computeProductionHash(projectRoot, refKey);
|
|
153
|
+
if (hash === refKey) return match;
|
|
154
|
+
hasReplacement = true;
|
|
155
|
+
return match.replace(`"${refKey}"`, `"${hash}"`);
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
return hasReplacement ? result : null;
|
|
159
|
+
}
|
|
160
|
+
function hashClientRefs(projectRoot) {
|
|
161
|
+
const counter = createCounter(debug7, "hash-client-refs");
|
|
162
|
+
return {
|
|
163
|
+
name: "@rangojs/router:hash-client-refs",
|
|
164
|
+
enforce: "post",
|
|
165
|
+
applyToEnvironment(env) {
|
|
166
|
+
return env.name === "rsc";
|
|
167
|
+
},
|
|
168
|
+
buildEnd() {
|
|
169
|
+
counter?.flush();
|
|
170
|
+
},
|
|
171
|
+
transform(code, id) {
|
|
172
|
+
const start = counter ? performance.now() : 0;
|
|
173
|
+
try {
|
|
174
|
+
const result = transformClientRefs(code, projectRoot);
|
|
175
|
+
if (result === null) return;
|
|
176
|
+
return { code: result, map: null };
|
|
177
|
+
} finally {
|
|
178
|
+
counter?.record(id, performance.now() - start);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
var debug7, CLIENT_PKG_PROXY_PREFIX, CLIENT_IN_SERVER_PKG_PROXY_PREFIX, FS_PREFIX, REGISTER_CLIENT_REF_RE;
|
|
184
|
+
var init_client_ref_hashing = __esm({
|
|
185
|
+
"src/vite/plugins/client-ref-hashing.ts"() {
|
|
186
|
+
"use strict";
|
|
187
|
+
init_debug();
|
|
188
|
+
debug7 = createRangoDebugger(NS.transform);
|
|
189
|
+
CLIENT_PKG_PROXY_PREFIX = "/@id/__x00__virtual:vite-rsc/client-package-proxy/";
|
|
190
|
+
CLIENT_IN_SERVER_PKG_PROXY_PREFIX = "/@id/__x00__virtual:vite-rsc/client-in-server-package-proxy/";
|
|
191
|
+
FS_PREFIX = "/@fs/";
|
|
192
|
+
REGISTER_CLIENT_REF_RE = /registerClientReference\(\s*(?:(?:\([^)]*\))|(?:\(\)[\s\S]*?\}))\s*,\s*"([^"]+)"\s*,\s*"[^"]+"\s*\)/g;
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
|
|
1
196
|
// src/vite/rango.ts
|
|
2
|
-
import { readFileSync as
|
|
3
|
-
import { resolve as
|
|
197
|
+
import { readFileSync as readFileSync8, existsSync as existsSync9 } from "node:fs";
|
|
198
|
+
import { resolve as resolve12 } from "node:path";
|
|
4
199
|
|
|
5
200
|
// src/vite/plugins/expose-action-id.ts
|
|
6
201
|
import MagicString from "magic-string";
|
|
@@ -251,99 +446,8 @@ function findCallParenAfterGenerics(code, afterCalleeIndex) {
|
|
|
251
446
|
return -1;
|
|
252
447
|
}
|
|
253
448
|
|
|
254
|
-
// src/vite/debug.ts
|
|
255
|
-
import debugFactory from "debug";
|
|
256
|
-
var NS = {
|
|
257
|
-
config: "rango:config",
|
|
258
|
-
discovery: "rango:discovery",
|
|
259
|
-
routes: "rango:routes",
|
|
260
|
-
prerender: "rango:prerender",
|
|
261
|
-
build: "rango:build",
|
|
262
|
-
dev: "rango:dev",
|
|
263
|
-
transform: "rango:transform",
|
|
264
|
-
chunks: "rango:chunks"
|
|
265
|
-
};
|
|
266
|
-
if (process.env.INTERNAL_RANGO_DEBUG) {
|
|
267
|
-
const existing = debugFactory.disable();
|
|
268
|
-
debugFactory.enable(existing ? `${existing},rango:*` : "rango:*");
|
|
269
|
-
}
|
|
270
|
-
function createRangoDebugger(namespace) {
|
|
271
|
-
const primary = debugFactory(namespace);
|
|
272
|
-
const shadow = debugFactory(`vite:${namespace}`);
|
|
273
|
-
if (primary.enabled) return primary;
|
|
274
|
-
if (shadow.enabled) return shadow;
|
|
275
|
-
return void 0;
|
|
276
|
-
}
|
|
277
|
-
async function timed(debug11, label, fn) {
|
|
278
|
-
if (!debug11) return await fn();
|
|
279
|
-
const start = performance.now();
|
|
280
|
-
try {
|
|
281
|
-
return await fn();
|
|
282
|
-
} finally {
|
|
283
|
-
debug11("%s (%sms)", label, (performance.now() - start).toFixed(1));
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
function timedSync(debug11, label, fn) {
|
|
287
|
-
if (!debug11) return fn();
|
|
288
|
-
const start = performance.now();
|
|
289
|
-
try {
|
|
290
|
-
return fn();
|
|
291
|
-
} finally {
|
|
292
|
-
debug11("%s (%sms)", label, (performance.now() - start).toFixed(1));
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
function createCounter(debug11, label) {
|
|
296
|
-
if (!debug11) return void 0;
|
|
297
|
-
let n = 0;
|
|
298
|
-
let totalMs = 0;
|
|
299
|
-
let slowestMs = 0;
|
|
300
|
-
let slowestFile = "";
|
|
301
|
-
const record = (file, ms) => {
|
|
302
|
-
n++;
|
|
303
|
-
totalMs += ms;
|
|
304
|
-
if (ms > slowestMs) {
|
|
305
|
-
slowestMs = ms;
|
|
306
|
-
slowestFile = file;
|
|
307
|
-
}
|
|
308
|
-
};
|
|
309
|
-
return {
|
|
310
|
-
record,
|
|
311
|
-
time(file, fn) {
|
|
312
|
-
const start = performance.now();
|
|
313
|
-
let out;
|
|
314
|
-
try {
|
|
315
|
-
out = fn();
|
|
316
|
-
} catch (err) {
|
|
317
|
-
record(file, performance.now() - start);
|
|
318
|
-
throw err;
|
|
319
|
-
}
|
|
320
|
-
if (out && typeof out.then === "function") {
|
|
321
|
-
return out.finally(
|
|
322
|
-
() => record(file, performance.now() - start)
|
|
323
|
-
);
|
|
324
|
-
}
|
|
325
|
-
record(file, performance.now() - start);
|
|
326
|
-
return out;
|
|
327
|
-
},
|
|
328
|
-
flush() {
|
|
329
|
-
if (n === 0) return;
|
|
330
|
-
debug11(
|
|
331
|
-
"%s: %d files, %sms total, slowest %sms %s",
|
|
332
|
-
label,
|
|
333
|
-
n,
|
|
334
|
-
totalMs.toFixed(1),
|
|
335
|
-
slowestMs.toFixed(1),
|
|
336
|
-
slowestFile
|
|
337
|
-
);
|
|
338
|
-
n = 0;
|
|
339
|
-
totalMs = 0;
|
|
340
|
-
slowestMs = 0;
|
|
341
|
-
slowestFile = "";
|
|
342
|
-
}
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
|
|
346
449
|
// src/vite/plugins/expose-action-id.ts
|
|
450
|
+
init_debug();
|
|
347
451
|
var debug = createRangoDebugger(NS.transform);
|
|
348
452
|
function getRscPluginApi(config) {
|
|
349
453
|
let plugin = config.plugins.find((p) => p.name === "rsc:minimal");
|
|
@@ -1299,10 +1403,14 @@ ${binding.localName}.$$id = "${handlerId}";`;
|
|
|
1299
1403
|
return hasChanges;
|
|
1300
1404
|
}
|
|
1301
1405
|
|
|
1406
|
+
// src/vite/plugins/expose-internal-ids.ts
|
|
1407
|
+
init_debug();
|
|
1408
|
+
|
|
1302
1409
|
// src/vite/plugins/expose-ids/router-transform.ts
|
|
1303
1410
|
import MagicString2 from "magic-string";
|
|
1304
1411
|
import path3 from "node:path";
|
|
1305
1412
|
import { createHash } from "node:crypto";
|
|
1413
|
+
init_debug();
|
|
1306
1414
|
var debug2 = createRangoDebugger(NS.transform);
|
|
1307
1415
|
function skipLeadingTrivia(code, start, end) {
|
|
1308
1416
|
let i = start;
|
|
@@ -1922,6 +2030,7 @@ ${lazyImports.join(",\n")}
|
|
|
1922
2030
|
// src/vite/plugins/use-cache-transform.ts
|
|
1923
2031
|
import path5 from "node:path";
|
|
1924
2032
|
import MagicString4 from "magic-string";
|
|
2033
|
+
init_debug();
|
|
1925
2034
|
var debug4 = createRangoDebugger(NS.transform);
|
|
1926
2035
|
var CACHE_RUNTIME_IMPORT = "@rangojs/router/cache-runtime";
|
|
1927
2036
|
var LAYOUT_TEMPLATE_PATTERN = /\/(layout|template)\.(tsx?|jsx?)$/;
|
|
@@ -2115,6 +2224,7 @@ function warnOnNearMissDirectives(ast, fileId, warn) {
|
|
|
2115
2224
|
}
|
|
2116
2225
|
|
|
2117
2226
|
// src/vite/plugins/client-ref-dedup.ts
|
|
2227
|
+
init_debug();
|
|
2118
2228
|
var debug5 = createRangoDebugger(NS.transform);
|
|
2119
2229
|
var CLIENT_IN_SERVER_PROXY_PREFIX = "virtual:vite-rsc/client-in-server-package-proxy/";
|
|
2120
2230
|
function extractPackageName(absolutePath) {
|
|
@@ -2199,7 +2309,17 @@ async function initializeApp() {
|
|
|
2199
2309
|
// context, including strictMode (default true) from createRouter. StrictMode
|
|
2200
2310
|
// is the default; createRouter({ strictMode: false }) ships the opt-out in the
|
|
2201
2311
|
// payload metadata. StrictMode emits no DOM, so toggling never changes markup.
|
|
2202
|
-
const { strictMode } = await initBrowserApp({ rscStream, deps });
|
|
2312
|
+
const { strictMode, initialPayload } = await initBrowserApp({ rscStream, deps });
|
|
2313
|
+
|
|
2314
|
+
if (import.meta.hot) {
|
|
2315
|
+
const { startDevDiscoveryHandshake } = await import(
|
|
2316
|
+
"@rangojs/router/internal/browser/dev-discovery"
|
|
2317
|
+
);
|
|
2318
|
+
startDevDiscoveryHandshake(
|
|
2319
|
+
initialPayload.metadata?.devDiscoveryEpoch,
|
|
2320
|
+
import.meta.hot
|
|
2321
|
+
);
|
|
2322
|
+
}
|
|
2203
2323
|
|
|
2204
2324
|
const app = createElement(Rango);
|
|
2205
2325
|
hydrateRoot(
|
|
@@ -2210,21 +2330,35 @@ async function initializeApp() {
|
|
|
2210
2330
|
|
|
2211
2331
|
initializeApp().catch(console.error);
|
|
2212
2332
|
`.trim();
|
|
2213
|
-
|
|
2214
|
-
|
|
2333
|
+
function getVirtualEntrySSR(headScripts = "preinit") {
|
|
2334
|
+
const preinit = headScripts !== "preload";
|
|
2335
|
+
const depsImportNames = preinit ? "createFromReadableStream,\n setOnClientReference," : "createFromReadableStream,";
|
|
2336
|
+
const ssrImportNames = preinit ? "\n installClientReferencePreinit," : "";
|
|
2337
|
+
const install = preinit ? `
|
|
2338
|
+
// Upgrade client-reference modulepreload hints to executing module scripts in
|
|
2339
|
+
// the document head, for every render pass (live SSR, shell capture, resume).
|
|
2340
|
+
// See src/ssr/preinit-client-references.ts for the full rationale.
|
|
2341
|
+
installClientReferencePreinit(setOnClientReference);
|
|
2342
|
+
` : "";
|
|
2343
|
+
const hs = JSON.stringify(headScripts);
|
|
2344
|
+
return `
|
|
2345
|
+
import {
|
|
2346
|
+
${depsImportNames}
|
|
2347
|
+
} from "@rangojs/router/internal/deps/ssr";
|
|
2215
2348
|
import { renderToReadableStream, resume } from "react-dom/server.edge";
|
|
2216
2349
|
import { prerender } from "react-dom/static.edge";
|
|
2217
2350
|
import { injectRSCPayload } from "@rangojs/router/internal/deps/html-stream-server";
|
|
2218
2351
|
import {
|
|
2219
2352
|
createSSRHandler,
|
|
2220
2353
|
createShellCaptureHandler,
|
|
2221
|
-
createShellResumeHandler
|
|
2354
|
+
createShellResumeHandler,${ssrImportNames}
|
|
2222
2355
|
} from "@rangojs/router/ssr";
|
|
2223
|
-
|
|
2356
|
+
${install}
|
|
2224
2357
|
export const renderHTML = createSSRHandler({
|
|
2225
2358
|
createFromReadableStream,
|
|
2226
2359
|
renderToReadableStream,
|
|
2227
2360
|
injectRSCPayload,
|
|
2361
|
+
headScripts: ${hs},
|
|
2228
2362
|
loadBootstrapScriptContent: () =>
|
|
2229
2363
|
import.meta.viteRsc.loadBootstrapScriptContent("index"),
|
|
2230
2364
|
});
|
|
@@ -2235,6 +2369,7 @@ export const captureShellHTML = createShellCaptureHandler({
|
|
|
2235
2369
|
injectRSCPayload,
|
|
2236
2370
|
prerender,
|
|
2237
2371
|
resume,
|
|
2372
|
+
headScripts: ${hs},
|
|
2238
2373
|
loadBootstrapScriptContent: () =>
|
|
2239
2374
|
import.meta.viteRsc.loadBootstrapScriptContent("index"),
|
|
2240
2375
|
});
|
|
@@ -2245,10 +2380,12 @@ export const resumeShellHTML = createShellResumeHandler({
|
|
|
2245
2380
|
injectRSCPayload,
|
|
2246
2381
|
prerender,
|
|
2247
2382
|
resume,
|
|
2383
|
+
headScripts: ${hs},
|
|
2248
2384
|
loadBootstrapScriptContent: () =>
|
|
2249
2385
|
import.meta.viteRsc.loadBootstrapScriptContent("index"),
|
|
2250
2386
|
});
|
|
2251
2387
|
`.trim();
|
|
2388
|
+
}
|
|
2252
2389
|
var RSC_ENTRY_BOOTSTRAP_IMPORTS = [
|
|
2253
2390
|
"virtual:rsc-router/routes-manifest",
|
|
2254
2391
|
"virtual:rsc-router/loader-manifest"
|
|
@@ -2393,7 +2530,7 @@ import { resolve } from "node:path";
|
|
|
2393
2530
|
// package.json
|
|
2394
2531
|
var package_default = {
|
|
2395
2532
|
name: "@rangojs/router",
|
|
2396
|
-
version: "0.
|
|
2533
|
+
version: "0.1.1",
|
|
2397
2534
|
description: "Django-inspired RSC router with composable URL patterns",
|
|
2398
2535
|
keywords: [
|
|
2399
2536
|
"react",
|
|
@@ -2430,144 +2567,155 @@ var package_default = {
|
|
|
2430
2567
|
type: "module",
|
|
2431
2568
|
exports: {
|
|
2432
2569
|
".": {
|
|
2433
|
-
types: "./
|
|
2570
|
+
types: "./dist/types/index.rsc.d.ts",
|
|
2434
2571
|
"react-server": "./src/index.rsc.ts",
|
|
2435
2572
|
default: "./src/index.ts"
|
|
2436
2573
|
},
|
|
2437
2574
|
"./server": {
|
|
2438
|
-
types: "./
|
|
2575
|
+
types: "./dist/types/server.d.ts",
|
|
2439
2576
|
import: "./src/server.ts"
|
|
2440
2577
|
},
|
|
2441
2578
|
"./client": {
|
|
2442
|
-
types: "./
|
|
2579
|
+
types: "./dist/types/client.d.ts",
|
|
2443
2580
|
"react-server": "./src/client.rsc.tsx",
|
|
2444
2581
|
default: "./src/client.tsx"
|
|
2445
2582
|
},
|
|
2446
2583
|
"./browser": {
|
|
2447
|
-
types: "./
|
|
2584
|
+
types: "./dist/types/browser/index.d.ts",
|
|
2448
2585
|
default: "./src/browser/index.ts"
|
|
2449
2586
|
},
|
|
2450
2587
|
"./ssr": {
|
|
2451
|
-
types: "./
|
|
2588
|
+
types: "./dist/types/ssr/index.d.ts",
|
|
2452
2589
|
default: "./src/ssr/index.tsx"
|
|
2453
2590
|
},
|
|
2454
2591
|
"./rsc": {
|
|
2455
|
-
types: "./
|
|
2592
|
+
types: "./dist/types/rsc/index.d.ts",
|
|
2456
2593
|
"react-server": "./src/rsc/index.ts",
|
|
2457
2594
|
default: "./src/rsc/index.ts"
|
|
2458
2595
|
},
|
|
2459
2596
|
"./vite": {
|
|
2460
|
-
types: "./
|
|
2597
|
+
types: "./dist/types/vite/index.d.ts",
|
|
2461
2598
|
import: "./dist/vite/index.js"
|
|
2462
2599
|
},
|
|
2463
2600
|
"./types": {
|
|
2464
2601
|
types: "./src/vite/plugins/version.d.ts"
|
|
2465
2602
|
},
|
|
2466
2603
|
"./__internal": {
|
|
2467
|
-
types: "./
|
|
2604
|
+
types: "./dist/types/__internal.d.ts",
|
|
2468
2605
|
default: "./src/__internal.ts"
|
|
2469
2606
|
},
|
|
2470
2607
|
"./internal/deps/browser": {
|
|
2471
|
-
types: "./
|
|
2608
|
+
types: "./dist/types/deps/browser.d.ts",
|
|
2472
2609
|
default: "./src/deps/browser.ts"
|
|
2473
2610
|
},
|
|
2474
2611
|
"./internal/deps/ssr": {
|
|
2475
|
-
types: "./
|
|
2612
|
+
types: "./dist/types/deps/ssr.d.ts",
|
|
2476
2613
|
default: "./src/deps/ssr.ts"
|
|
2477
2614
|
},
|
|
2478
2615
|
"./internal/deps/rsc": {
|
|
2479
|
-
types: "./
|
|
2616
|
+
types: "./dist/types/deps/rsc.d.ts",
|
|
2480
2617
|
"react-server": "./src/deps/rsc.ts",
|
|
2481
2618
|
default: "./src/deps/rsc.ts"
|
|
2482
2619
|
},
|
|
2483
2620
|
"./internal/deps/html-stream-client": {
|
|
2484
|
-
types: "./
|
|
2621
|
+
types: "./dist/types/deps/html-stream-client.d.ts",
|
|
2485
2622
|
default: "./src/deps/html-stream-client.ts"
|
|
2486
2623
|
},
|
|
2487
2624
|
"./internal/deps/html-stream-server": {
|
|
2488
|
-
types: "./
|
|
2625
|
+
types: "./dist/types/deps/html-stream-server.d.ts",
|
|
2489
2626
|
default: "./src/deps/html-stream-server.ts"
|
|
2490
2627
|
},
|
|
2491
2628
|
"./internal/rsc-handler": {
|
|
2492
|
-
types: "./
|
|
2629
|
+
types: "./dist/types/rsc/handler.d.ts",
|
|
2493
2630
|
"react-server": "./src/rsc/handler.ts",
|
|
2494
2631
|
default: "./src/rsc/handler.ts"
|
|
2495
2632
|
},
|
|
2633
|
+
"./internal/browser/dev-discovery": {
|
|
2634
|
+
types: "./dist/types/browser/dev-discovery.d.ts",
|
|
2635
|
+
default: "./src/browser/dev-discovery.ts"
|
|
2636
|
+
},
|
|
2496
2637
|
"./cache": {
|
|
2497
|
-
types: "./
|
|
2638
|
+
types: "./dist/types/cache/index.d.ts",
|
|
2498
2639
|
"react-server": "./src/cache/index.ts",
|
|
2499
2640
|
default: "./src/cache/index.ts"
|
|
2500
2641
|
},
|
|
2501
2642
|
"./cache-runtime": {
|
|
2502
|
-
types: "./
|
|
2643
|
+
types: "./dist/types/cache/cache-runtime.d.ts",
|
|
2503
2644
|
"react-server": "./src/cache/cache-runtime.ts",
|
|
2504
2645
|
default: "./src/cache/cache-runtime.ts"
|
|
2505
2646
|
},
|
|
2506
2647
|
"./cloudflare": {
|
|
2507
|
-
types: "./
|
|
2648
|
+
types: "./dist/types/cloudflare/index.d.ts",
|
|
2508
2649
|
"react-server": "./src/cloudflare/index.ts",
|
|
2509
2650
|
default: "./src/cloudflare/index.ts"
|
|
2510
2651
|
},
|
|
2511
2652
|
"./vercel": {
|
|
2512
|
-
types: "./
|
|
2653
|
+
types: "./dist/types/vercel/index.d.ts",
|
|
2513
2654
|
"react-server": "./src/vercel/index.ts",
|
|
2514
2655
|
default: "./src/vercel/index.ts"
|
|
2515
2656
|
},
|
|
2516
2657
|
"./theme": {
|
|
2517
|
-
types: "./
|
|
2658
|
+
types: "./dist/types/theme/index.d.ts",
|
|
2518
2659
|
default: "./src/theme/index.ts"
|
|
2519
2660
|
},
|
|
2520
2661
|
"./build": {
|
|
2521
|
-
types: "./
|
|
2662
|
+
types: "./dist/types/build/index.d.ts",
|
|
2522
2663
|
import: "./src/build/index.ts"
|
|
2523
2664
|
},
|
|
2665
|
+
"./build/shell-capture": {
|
|
2666
|
+
types: "./dist/types/prerender/build-shell-capture.d.ts",
|
|
2667
|
+
"react-server": "./src/prerender/build-shell-capture.ts",
|
|
2668
|
+
import: "./src/prerender/build-shell-capture.ts"
|
|
2669
|
+
},
|
|
2524
2670
|
"./host": {
|
|
2525
|
-
types: "./
|
|
2671
|
+
types: "./dist/types/host/index.d.ts",
|
|
2526
2672
|
"react-server": "./src/host/index.ts",
|
|
2527
2673
|
default: "./src/host/index.ts"
|
|
2528
2674
|
},
|
|
2529
2675
|
"./host/testing": {
|
|
2530
|
-
types: "./
|
|
2676
|
+
types: "./dist/types/host/testing.d.ts",
|
|
2531
2677
|
default: "./src/host/testing.ts"
|
|
2532
2678
|
},
|
|
2533
2679
|
"./testing": {
|
|
2534
|
-
types: "./
|
|
2680
|
+
types: "./dist/types/testing/index.d.ts",
|
|
2535
2681
|
default: "./src/testing/index.ts"
|
|
2536
2682
|
},
|
|
2537
2683
|
"./testing/vitest": {
|
|
2538
|
-
types: "./
|
|
2684
|
+
types: "./dist/types/testing/vitest.d.ts",
|
|
2539
2685
|
default: "./dist/testing/vitest.js"
|
|
2540
2686
|
},
|
|
2541
2687
|
"./testing/dom": {
|
|
2542
|
-
types: "./
|
|
2688
|
+
types: "./dist/types/testing/dom.entry.d.ts",
|
|
2543
2689
|
default: "./src/testing/dom.entry.ts"
|
|
2544
2690
|
},
|
|
2545
2691
|
"./testing/e2e": {
|
|
2546
|
-
types: "./
|
|
2692
|
+
types: "./dist/types/testing/e2e/index.d.ts",
|
|
2547
2693
|
default: "./src/testing/e2e/index.ts"
|
|
2548
2694
|
},
|
|
2549
2695
|
"./testing/flight": {
|
|
2550
|
-
types: "./
|
|
2696
|
+
types: "./dist/types/testing/flight.entry.d.ts",
|
|
2551
2697
|
"react-server": "./src/testing/flight.entry.ts",
|
|
2552
2698
|
default: "./src/testing/flight.entry.ts"
|
|
2553
2699
|
},
|
|
2554
2700
|
"./testing/flight-matchers": {
|
|
2555
|
-
types: "./
|
|
2701
|
+
types: "./dist/types/testing/flight-matchers.d.ts",
|
|
2556
2702
|
default: "./src/testing/flight-matchers.ts"
|
|
2557
2703
|
}
|
|
2558
2704
|
},
|
|
2559
2705
|
publishConfig: {
|
|
2560
2706
|
access: "public",
|
|
2561
|
-
tag: "
|
|
2707
|
+
tag: "latest"
|
|
2562
2708
|
},
|
|
2563
2709
|
scripts: {
|
|
2564
|
-
build: "pnpm exec esbuild src/vite/index.ts --bundle --format=esm --outfile=dist/vite/index.js --platform=node --packages=external && mkdir -p dist/vite/plugins && cp src/vite/plugins/cloudflare-protocol-loader-hook.mjs dist/vite/plugins/cloudflare-protocol-loader-hook.mjs && pnpm exec esbuild src/testing/vitest.ts --bundle --format=esm --outfile=dist/testing/vitest.js --platform=node --packages=external && pnpm exec esbuild src/bin/rango.ts --bundle --format=esm --outfile=dist/bin/rango.js --platform=node --packages=external --banner:js='#!/usr/bin/env node' && chmod +x dist/bin/rango.js",
|
|
2710
|
+
build: "pnpm run build:types && pnpm exec esbuild src/vite/index.ts --bundle --format=esm --outfile=dist/vite/index.js --platform=node --packages=external && mkdir -p dist/vite/plugins && cp src/vite/plugins/cloudflare-protocol-loader-hook.mjs dist/vite/plugins/cloudflare-protocol-loader-hook.mjs && pnpm exec esbuild src/testing/vitest.ts --bundle --format=esm --outfile=dist/testing/vitest.js --platform=node --packages=external && pnpm exec esbuild src/bin/rango.ts --bundle --format=esm --outfile=dist/bin/rango.js --platform=node --packages=external --banner:js='#!/usr/bin/env node' && chmod +x dist/bin/rango.js",
|
|
2711
|
+
"build:types": "rm -rf dist/types && pnpm exec tsc -p tsconfig.types.json",
|
|
2565
2712
|
prepublishOnly: "pnpm build",
|
|
2566
2713
|
typecheck: "tsc --noEmit && tsc -p tsconfig.strict-check.json --noEmit && tsc -p tsconfig.augment-check.json --noEmit",
|
|
2567
2714
|
test: "playwright test",
|
|
2568
2715
|
"test:ui": "playwright test --ui",
|
|
2569
|
-
"test:hmr-local": "playwright test --project=dev-warmup --project=hmr-
|
|
2570
|
-
"test:
|
|
2716
|
+
"test:hmr-local": "playwright test --project=dev-warmup --project=hmr-basename --project=hmr-prerender --no-deps --workers=1 && RANGO_E2E_ROUTE_HMR_ONLY=1 playwright test --project=hmr-routes --no-deps --workers=1",
|
|
2717
|
+
"test:hmr-routes-local": "RANGO_E2E_ROUTE_HMR_ONLY=1 playwright test --project=hmr-routes --no-deps --workers=1",
|
|
2718
|
+
"test:unit": "pnpm run build:types && vitest run",
|
|
2571
2719
|
"test:unit:watch": "vitest",
|
|
2572
2720
|
"test:unit:rsc": "vitest run --config vitest.rsc.config.ts"
|
|
2573
2721
|
},
|
|
@@ -2636,7 +2784,7 @@ var package_default = {
|
|
|
2636
2784
|
}
|
|
2637
2785
|
},
|
|
2638
2786
|
engines: {
|
|
2639
|
-
node: "
|
|
2787
|
+
node: ">=24.0.0"
|
|
2640
2788
|
}
|
|
2641
2789
|
};
|
|
2642
2790
|
|
|
@@ -2684,6 +2832,7 @@ function getPackageAliases() {
|
|
|
2684
2832
|
}
|
|
2685
2833
|
function getVendorAliases() {
|
|
2686
2834
|
const specs = [
|
|
2835
|
+
"@vitejs/plugin-rsc/vendor/react-server-dom/client.browser",
|
|
2687
2836
|
"@vitejs/plugin-rsc/vendor/react-server-dom/client.edge",
|
|
2688
2837
|
"@vitejs/plugin-rsc/vendor/react-server-dom/server.edge"
|
|
2689
2838
|
];
|
|
@@ -3832,6 +3981,13 @@ function createVersionPlugin() {
|
|
|
3832
3981
|
return {
|
|
3833
3982
|
name: "@rangojs/router:version",
|
|
3834
3983
|
enforce: "pre",
|
|
3984
|
+
// The build-time shell capture phase (producer B, #699) stamps entries
|
|
3985
|
+
// with THIS instance's version — the value folded into the shipped worker
|
|
3986
|
+
// — never the discovery temp server's own version-plugin value (a
|
|
3987
|
+
// different Date.now() stamp that would fail the serve-side gate).
|
|
3988
|
+
api: {
|
|
3989
|
+
getBuildVersion: () => currentVersion
|
|
3990
|
+
},
|
|
3835
3991
|
configResolved(config) {
|
|
3836
3992
|
isDev = config.command === "serve";
|
|
3837
3993
|
resolvedCacheDir = config.cacheDir ? String(config.cacheDir).replace(/\\/g, "/") : void 0;
|
|
@@ -3922,6 +4078,7 @@ import * as Vite from "vite";
|
|
|
3922
4078
|
import { isAbsolute, resolve as resolve4 } from "node:path";
|
|
3923
4079
|
|
|
3924
4080
|
// src/vite/plugins/performance-tracks.ts
|
|
4081
|
+
init_debug();
|
|
3925
4082
|
import { readFile } from "node:fs/promises";
|
|
3926
4083
|
var debug6 = createRangoDebugger(NS.transform);
|
|
3927
4084
|
var RSDW_PATCH_RE = /((?:var|let|const)\s+\w+\s*=\s*root\._children\s*,\s*(\w+)\s*=\s*root\._debugInfo\s*[;,])/;
|
|
@@ -4017,13 +4174,13 @@ function normalizeHostRouterEntry(rawInput, root, exists) {
|
|
|
4017
4174
|
}
|
|
4018
4175
|
return exists(resolve4(root, raw)) ? "./" + raw : raw;
|
|
4019
4176
|
}
|
|
4020
|
-
function createVirtualEntriesPlugin(entries, routerPathRef) {
|
|
4177
|
+
function createVirtualEntriesPlugin(entries, routerPathRef, options) {
|
|
4021
4178
|
const virtualModules = {};
|
|
4022
4179
|
if (entries.client === VIRTUAL_IDS.browser) {
|
|
4023
4180
|
virtualModules[VIRTUAL_IDS.browser] = VIRTUAL_ENTRY_BROWSER;
|
|
4024
4181
|
}
|
|
4025
4182
|
if (entries.ssr === VIRTUAL_IDS.ssr) {
|
|
4026
|
-
virtualModules[VIRTUAL_IDS.ssr] =
|
|
4183
|
+
virtualModules[VIRTUAL_IDS.ssr] = getVirtualEntrySSR(options?.headScripts);
|
|
4027
4184
|
}
|
|
4028
4185
|
const knownIds = new Set(Object.keys(virtualModules));
|
|
4029
4186
|
if (entries.rsc === VIRTUAL_IDS.rsc) {
|
|
@@ -4094,6 +4251,11 @@ function onwarn(warning, defaultHandler) {
|
|
|
4094
4251
|
}
|
|
4095
4252
|
function getManualChunks(id) {
|
|
4096
4253
|
const normalized = Vite.normalizePath(id);
|
|
4254
|
+
if (/\/browser\/prefetch\/(?:runtime|fetch|queue|observer|policy|resource-ready)\.[cm]?[jt]sx?(?:[?#].*)?$/.test(
|
|
4255
|
+
normalized
|
|
4256
|
+
)) {
|
|
4257
|
+
return void 0;
|
|
4258
|
+
}
|
|
4097
4259
|
if (normalized.includes("node_modules/react/") || normalized.includes("node_modules/react-dom/") || normalized.includes("node_modules/react-server-dom-webpack/") || normalized.includes("node_modules/@vitejs/plugin-rsc/")) {
|
|
4098
4260
|
return "react";
|
|
4099
4261
|
}
|
|
@@ -4104,80 +4266,14 @@ function getManualChunks(id) {
|
|
|
4104
4266
|
return void 0;
|
|
4105
4267
|
}
|
|
4106
4268
|
|
|
4107
|
-
// src/vite/
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
var
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
return createHash2("sha256").update(relativeId).digest("hex").slice(0, 12);
|
|
4116
|
-
}
|
|
4117
|
-
function computeProductionHash(projectRoot, refKey) {
|
|
4118
|
-
let toHash;
|
|
4119
|
-
if (refKey.startsWith(CLIENT_PKG_PROXY_PREFIX)) {
|
|
4120
|
-
toHash = refKey.slice(CLIENT_PKG_PROXY_PREFIX.length);
|
|
4121
|
-
} else if (refKey.startsWith(CLIENT_IN_SERVER_PKG_PROXY_PREFIX)) {
|
|
4122
|
-
const absPath = decodeURIComponent(
|
|
4123
|
-
refKey.slice(CLIENT_IN_SERVER_PKG_PROXY_PREFIX.length)
|
|
4124
|
-
);
|
|
4125
|
-
toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
|
|
4126
|
-
} else if (refKey.startsWith(FS_PREFIX)) {
|
|
4127
|
-
const absPath = refKey.slice(FS_PREFIX.length - 1);
|
|
4128
|
-
toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
|
|
4129
|
-
} else if (refKey.startsWith("/")) {
|
|
4130
|
-
toHash = refKey.slice(1);
|
|
4131
|
-
} else {
|
|
4132
|
-
return refKey;
|
|
4133
|
-
}
|
|
4134
|
-
return hashRefKey(toHash);
|
|
4135
|
-
}
|
|
4136
|
-
var REGISTER_CLIENT_REF_RE = /registerClientReference\(\s*(?:(?:\([^)]*\))|(?:\(\)[\s\S]*?\}))\s*,\s*"([^"]+)"\s*,\s*"[^"]+"\s*\)/g;
|
|
4137
|
-
function transformClientRefs(code, projectRoot) {
|
|
4138
|
-
if (!code.includes("registerClientReference")) return null;
|
|
4139
|
-
let hasReplacement = false;
|
|
4140
|
-
const result = code.replace(
|
|
4141
|
-
REGISTER_CLIENT_REF_RE,
|
|
4142
|
-
(match, refKey) => {
|
|
4143
|
-
const hash = computeProductionHash(projectRoot, refKey);
|
|
4144
|
-
if (hash === refKey) return match;
|
|
4145
|
-
hasReplacement = true;
|
|
4146
|
-
return match.replace(`"${refKey}"`, `"${hash}"`);
|
|
4147
|
-
}
|
|
4148
|
-
);
|
|
4149
|
-
return hasReplacement ? result : null;
|
|
4150
|
-
}
|
|
4151
|
-
function hashClientRefs(projectRoot) {
|
|
4152
|
-
const counter = createCounter(debug7, "hash-client-refs");
|
|
4153
|
-
return {
|
|
4154
|
-
name: "@rangojs/router:hash-client-refs",
|
|
4155
|
-
enforce: "post",
|
|
4156
|
-
applyToEnvironment(env) {
|
|
4157
|
-
return env.name === "rsc";
|
|
4158
|
-
},
|
|
4159
|
-
buildEnd() {
|
|
4160
|
-
counter?.flush();
|
|
4161
|
-
},
|
|
4162
|
-
transform(code, id) {
|
|
4163
|
-
const start = counter ? performance.now() : 0;
|
|
4164
|
-
try {
|
|
4165
|
-
const result = transformClientRefs(code, projectRoot);
|
|
4166
|
-
if (result === null) return;
|
|
4167
|
-
return { code: result, map: null };
|
|
4168
|
-
} finally {
|
|
4169
|
-
counter?.record(id, performance.now() - start);
|
|
4170
|
-
}
|
|
4171
|
-
}
|
|
4172
|
-
};
|
|
4173
|
-
}
|
|
4174
|
-
|
|
4175
|
-
// src/vite/utils/client-chunks.ts
|
|
4176
|
-
var debugChunks = createRangoDebugger(NS.chunks);
|
|
4177
|
-
function isSharedRuntime(meta) {
|
|
4178
|
-
return [meta.id, meta.normalizedId].some(
|
|
4179
|
-
(path6) => path6.includes("/node_modules/") || /\/@rangojs\/router\//.test(path6) || /\/packages\/(rangojs-router|rsc-router)\/(src|dist)\//.test(path6)
|
|
4180
|
-
);
|
|
4269
|
+
// src/vite/utils/client-chunks.ts
|
|
4270
|
+
init_debug();
|
|
4271
|
+
init_client_ref_hashing();
|
|
4272
|
+
var debugChunks = createRangoDebugger(NS.chunks);
|
|
4273
|
+
function isSharedRuntime(meta) {
|
|
4274
|
+
return [meta.id, meta.normalizedId].some(
|
|
4275
|
+
(path6) => path6.includes("/node_modules/") || /\/@rangojs\/router\//.test(path6) || /\/packages\/(rangojs-router|rsc-router)\/(src|dist)\//.test(path6)
|
|
4276
|
+
);
|
|
4181
4277
|
}
|
|
4182
4278
|
function sanitizeGroup(name) {
|
|
4183
4279
|
return name.replace(/[^a-zA-Z0-9_-]+/g, "_").replace(/^_+|_+$/g, "") || "app";
|
|
@@ -4528,6 +4624,7 @@ function createVersionInjectorPlugin(rscEntryPath) {
|
|
|
4528
4624
|
}
|
|
4529
4625
|
|
|
4530
4626
|
// src/vite/plugins/cjs-to-esm.ts
|
|
4627
|
+
init_debug();
|
|
4531
4628
|
var debug8 = createRangoDebugger(NS.transform);
|
|
4532
4629
|
function createCjsToEsmPlugin() {
|
|
4533
4630
|
let isProduction = false;
|
|
@@ -4591,11 +4688,39 @@ function createCjsToEsmPlugin() {
|
|
|
4591
4688
|
|
|
4592
4689
|
// src/vite/router-discovery.ts
|
|
4593
4690
|
import { createServer as createViteServer } from "vite";
|
|
4594
|
-
import { resolve as
|
|
4595
|
-
import { readFileSync as
|
|
4691
|
+
import { resolve as resolve11 } from "node:path";
|
|
4692
|
+
import { readFileSync as readFileSync7 } from "node:fs";
|
|
4596
4693
|
import { createRequire as createRequire3, register } from "node:module";
|
|
4597
4694
|
import { pathToFileURL as pathToFileURL2 } from "node:url";
|
|
4598
4695
|
|
|
4696
|
+
// src/dev-discovery-protocol.ts
|
|
4697
|
+
var DEV_DISCOVERY_READY_EVENT = "rango:dev-discovery-ready";
|
|
4698
|
+
var DEV_DISCOVERY_QUERY_EVENT = "rango:dev-discovery-query";
|
|
4699
|
+
var DEV_DISCOVERY_PROBE_HEADER = "x-rango-dev-discovery-probe";
|
|
4700
|
+
var DEV_DISCOVERY_EPOCH_HEADER = "x-rango-dev-discovery-epoch";
|
|
4701
|
+
|
|
4702
|
+
// src/rsc/shell-serve.ts
|
|
4703
|
+
import React from "react";
|
|
4704
|
+
|
|
4705
|
+
// src/server/context.ts
|
|
4706
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
4707
|
+
var RSC_CONTEXT_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:rsc-context");
|
|
4708
|
+
var RangoContext = globalThis[RSC_CONTEXT_KEY] ??= new AsyncLocalStorage();
|
|
4709
|
+
var LOADER_SCOPE_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:loader-scope");
|
|
4710
|
+
var loaderScopeALS = globalThis[LOADER_SCOPE_KEY] ??= new AsyncLocalStorage();
|
|
4711
|
+
var LOADER_BODY_SCOPE_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:loader-body-scope");
|
|
4712
|
+
var loaderBodyScopeALS = globalThis[LOADER_BODY_SCOPE_KEY] ??= new AsyncLocalStorage();
|
|
4713
|
+
var PUSH_CALLBACK_SCOPE_KEY = /* @__PURE__ */ Symbol.for(
|
|
4714
|
+
"rangojs-router:push-callback-scope"
|
|
4715
|
+
);
|
|
4716
|
+
var pushCallbackScopeALS = globalThis[PUSH_CALLBACK_SCOPE_KEY] ??= new AsyncLocalStorage();
|
|
4717
|
+
|
|
4718
|
+
// src/rsc/shell-serve.ts
|
|
4719
|
+
var DEV_SHELL_PROBE_TIMEOUT_MS = 1e4;
|
|
4720
|
+
function normalizeCaptureTimeout(value) {
|
|
4721
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 1 ? value : void 0;
|
|
4722
|
+
}
|
|
4723
|
+
|
|
4599
4724
|
// src/vite/inject-client-debug.ts
|
|
4600
4725
|
function isRouterInternalDebugId(id) {
|
|
4601
4726
|
if (!id.includes("internal-debug")) return false;
|
|
@@ -4756,6 +4881,9 @@ function walk(node, visit) {
|
|
|
4756
4881
|
}
|
|
4757
4882
|
}
|
|
4758
4883
|
|
|
4884
|
+
// src/vite/router-discovery.ts
|
|
4885
|
+
init_client_ref_hashing();
|
|
4886
|
+
|
|
4759
4887
|
// src/vite/utils/bundle-analysis.ts
|
|
4760
4888
|
function findMatchingParenInBundle(code, openParenPos) {
|
|
4761
4889
|
let depth = 1;
|
|
@@ -4853,19 +4981,21 @@ function createDiscoveryState(entryPath, opts) {
|
|
|
4853
4981
|
opts,
|
|
4854
4982
|
mergedRouteManifest: null,
|
|
4855
4983
|
perRouterManifests: [],
|
|
4856
|
-
mergedPrecomputedEntries: null,
|
|
4857
|
-
mergedRouteTrie: null,
|
|
4858
4984
|
perRouterTrieMap: /* @__PURE__ */ new Map(),
|
|
4859
4985
|
perRouterPrecomputedMap: /* @__PURE__ */ new Map(),
|
|
4860
4986
|
perRouterManifestDataMap: /* @__PURE__ */ new Map(),
|
|
4861
4987
|
prerenderManifestEntries: null,
|
|
4862
4988
|
staticManifestEntries: null,
|
|
4989
|
+
shellCandidates: null,
|
|
4990
|
+
prerenderPayloadValues: null,
|
|
4991
|
+
shellPhaseTempServer: null,
|
|
4863
4992
|
handlerChunkInfoMap: /* @__PURE__ */ new Map(),
|
|
4864
4993
|
staticHandlerChunkInfoMap: /* @__PURE__ */ new Map(),
|
|
4865
4994
|
rscEntryFileName: null,
|
|
4866
4995
|
resolvedPrerenderModules: void 0,
|
|
4867
4996
|
resolvedStaticModules: void 0,
|
|
4868
4997
|
discoveryDone: null,
|
|
4998
|
+
devDiscoveryEpoch: opts?.preset === "cloudflare" ? Date.now() : void 0,
|
|
4869
4999
|
devServerOrigin: null,
|
|
4870
5000
|
devServer: null,
|
|
4871
5001
|
selfWrittenGenFiles: /* @__PURE__ */ new Map(),
|
|
@@ -4909,13 +5039,13 @@ function checkSelfGenWrite(state, filePath, consume) {
|
|
|
4909
5039
|
}
|
|
4910
5040
|
|
|
4911
5041
|
// src/router/logging.ts
|
|
4912
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5042
|
+
import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
|
|
4913
5043
|
|
|
4914
5044
|
// src/internal-debug.ts
|
|
4915
5045
|
var INTERNAL_RANGO_DEBUG = typeof process !== "undefined" && Boolean(process.env?.INTERNAL_RANGO_DEBUG);
|
|
4916
5046
|
|
|
4917
5047
|
// src/router/logging.ts
|
|
4918
|
-
var routerLogContext = new
|
|
5048
|
+
var routerLogContext = new AsyncLocalStorage2();
|
|
4919
5049
|
|
|
4920
5050
|
// src/router/url-params.ts
|
|
4921
5051
|
var PATH_SAFE_ESCAPES = {
|
|
@@ -5037,10 +5167,9 @@ function buildRouteToStaticPrefix(prefixTree, result) {
|
|
|
5037
5167
|
}
|
|
5038
5168
|
|
|
5039
5169
|
// src/build/route-trie.ts
|
|
5040
|
-
function buildRouteTrie(routeManifest,
|
|
5170
|
+
function buildRouteTrie(routeManifest, routeToStaticPrefix, routeTrailingSlash, prerenderRouteNames, passthroughRouteNames, responseTypeRoutes) {
|
|
5041
5171
|
const root = {};
|
|
5042
5172
|
for (const [routeName, pattern] of Object.entries(routeManifest)) {
|
|
5043
|
-
const ancestry = routeAncestry[routeName] || [];
|
|
5044
5173
|
const staticPrefix = routeToStaticPrefix[routeName] || "";
|
|
5045
5174
|
const trailingSlash = routeTrailingSlash?.[routeName];
|
|
5046
5175
|
const responseType = responseTypeRoutes?.[routeName];
|
|
@@ -5050,7 +5179,6 @@ function buildRouteTrie(routeManifest, routeAncestry, routeToStaticPrefix, route
|
|
|
5050
5179
|
insertRoute(root, segments, 0, {
|
|
5051
5180
|
n: routeName,
|
|
5052
5181
|
sp: staticPrefix,
|
|
5053
|
-
a: ancestry,
|
|
5054
5182
|
...trailingSlash ? { ts: trailingSlash } : {},
|
|
5055
5183
|
...prerenderRouteNames?.has(routeName) ? { pr: true } : {},
|
|
5056
5184
|
...passthroughRouteNames?.has(routeName) ? { pt: true } : {},
|
|
@@ -5083,8 +5211,7 @@ function sortSuffixParams(node) {
|
|
|
5083
5211
|
}
|
|
5084
5212
|
}
|
|
5085
5213
|
function buildPerRouterTrie(manifest) {
|
|
5086
|
-
|
|
5087
|
-
if (!ancestry || Object.keys(ancestry).length === 0) {
|
|
5214
|
+
if (Object.keys(manifest.routeManifest).length === 0) {
|
|
5088
5215
|
return null;
|
|
5089
5216
|
}
|
|
5090
5217
|
const routeToStaticPrefix = {};
|
|
@@ -5096,7 +5223,6 @@ function buildPerRouterTrie(manifest) {
|
|
|
5096
5223
|
}
|
|
5097
5224
|
return buildRouteTrie(
|
|
5098
5225
|
manifest.routeManifest,
|
|
5099
|
-
ancestry,
|
|
5100
5226
|
routeToStaticPrefix,
|
|
5101
5227
|
manifest.routeTrailingSlash,
|
|
5102
5228
|
manifest.prerenderRoutes ? new Set(manifest.prerenderRoutes) : void 0,
|
|
@@ -5442,18 +5568,24 @@ function getStagedAssetDir(projectRoot) {
|
|
|
5442
5568
|
function resetStagedBuildAssets(projectRoot) {
|
|
5443
5569
|
rmSync(getStagedAssetDir(projectRoot), { recursive: true, force: true });
|
|
5444
5570
|
}
|
|
5445
|
-
function
|
|
5446
|
-
|
|
5447
|
-
mkdirSync(stagedDir, { recursive: true });
|
|
5571
|
+
function writeBuildAssetModule(dir, prefix, exportValue) {
|
|
5572
|
+
mkdirSync(dir, { recursive: true });
|
|
5448
5573
|
const contentHash = createHash4("sha256").update(exportValue).digest("hex").slice(0, 8);
|
|
5449
5574
|
const fileName = `${prefix}-${contentHash}.js`;
|
|
5450
|
-
const filePath = resolve7(
|
|
5575
|
+
const filePath = resolve7(dir, fileName);
|
|
5451
5576
|
if (!existsSync5(filePath)) {
|
|
5452
5577
|
writeFileSync2(filePath, `export default ${exportValue};
|
|
5453
5578
|
`);
|
|
5454
5579
|
}
|
|
5455
5580
|
return fileName;
|
|
5456
5581
|
}
|
|
5582
|
+
function stageBuildAssetModule(projectRoot, prefix, exportValue) {
|
|
5583
|
+
return writeBuildAssetModule(
|
|
5584
|
+
getStagedAssetDir(projectRoot),
|
|
5585
|
+
prefix,
|
|
5586
|
+
exportValue
|
|
5587
|
+
);
|
|
5588
|
+
}
|
|
5457
5589
|
function copyStagedBuildAssets(projectRoot, fileNames) {
|
|
5458
5590
|
const stagedDir = getStagedAssetDir(projectRoot);
|
|
5459
5591
|
const distAssetsDir = resolve7(projectRoot, "dist/rsc/assets");
|
|
@@ -5469,6 +5601,7 @@ function copyStagedBuildAssets(projectRoot, fileNames) {
|
|
|
5469
5601
|
}
|
|
5470
5602
|
|
|
5471
5603
|
// src/vite/discovery/prerender-collection.ts
|
|
5604
|
+
init_debug();
|
|
5472
5605
|
var debug9 = createRangoDebugger(NS.prerender);
|
|
5473
5606
|
async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
5474
5607
|
if (!state.opts?.enableBuildPrerender || !state.isBuildMode) return;
|
|
@@ -5676,6 +5809,18 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
|
5676
5809
|
"__pr",
|
|
5677
5810
|
mainValue
|
|
5678
5811
|
);
|
|
5812
|
+
if (result.ppr !== void 0 && result.ppr !== false) {
|
|
5813
|
+
(state.shellCandidates ??= []).push({
|
|
5814
|
+
urlPath: entry.urlPath,
|
|
5815
|
+
routeName: result.routeName,
|
|
5816
|
+
paramHash,
|
|
5817
|
+
ppr: result.ppr === true ? true : result.ppr
|
|
5818
|
+
});
|
|
5819
|
+
(state.prerenderPayloadValues ??= /* @__PURE__ */ new Map()).set(
|
|
5820
|
+
mainKey,
|
|
5821
|
+
mainValue
|
|
5822
|
+
);
|
|
5823
|
+
}
|
|
5679
5824
|
if (result.interceptSegments?.length) {
|
|
5680
5825
|
const interceptKey = `${result.routeName}/${paramHash}/i`;
|
|
5681
5826
|
const interceptValue = JSON.stringify({
|
|
@@ -5767,15 +5912,21 @@ async function renderStaticHandlers(state, rscEnv, registry) {
|
|
|
5767
5912
|
if (def.options?.passthrough) continue;
|
|
5768
5913
|
const startHandler = performance.now();
|
|
5769
5914
|
let handled = false;
|
|
5770
|
-
|
|
5915
|
+
const owner = def.$$routerId;
|
|
5916
|
+
const owned = owner !== void 0 ? registry.get(owner) : void 0;
|
|
5917
|
+
const candidates = owned ? [owned] : [...registry.values()];
|
|
5918
|
+
for (const routerInstance of candidates) {
|
|
5771
5919
|
if (!routerInstance.renderStaticSegment) continue;
|
|
5772
5920
|
try {
|
|
5773
5921
|
const result = await routerInstance.renderStaticSegment(
|
|
5774
5922
|
def.handler,
|
|
5775
5923
|
def.$$id,
|
|
5776
|
-
|
|
5924
|
+
// Full route name when stamped; the historical $$routePrefix is a
|
|
5925
|
+
// name PREFIX (never in the root-scope registry) kept as fallback.
|
|
5926
|
+
def.$$routeName ?? def.$$routePrefix,
|
|
5777
5927
|
state.resolvedBuildEnv,
|
|
5778
|
-
!state.isBuildMode
|
|
5928
|
+
!state.isBuildMode,
|
|
5929
|
+
def.$$rootScoped
|
|
5779
5930
|
);
|
|
5780
5931
|
if (result) {
|
|
5781
5932
|
const hasHandles = result.handles !== "";
|
|
@@ -5926,6 +6077,8 @@ function describeDiscoveryFailure(err, opts = {}) {
|
|
|
5926
6077
|
}
|
|
5927
6078
|
|
|
5928
6079
|
// src/vite/discovery/discover-routers.ts
|
|
6080
|
+
init_debug();
|
|
6081
|
+
init_client_ref_hashing();
|
|
5929
6082
|
var debug10 = createRangoDebugger(NS.discovery);
|
|
5930
6083
|
async function discoverRouters(state, rscEnv) {
|
|
5931
6084
|
if (!state.resolvedEntryPath) return;
|
|
@@ -5985,13 +6138,10 @@ async function discoverRouters(state, rscEnv) {
|
|
|
5985
6138
|
throw new Error(formatNestedRouterConflictError(nestedRouterConflict));
|
|
5986
6139
|
}
|
|
5987
6140
|
const newMergedRouteManifest = {};
|
|
5988
|
-
const newMergedPrecomputedEntries = [];
|
|
5989
6141
|
const newPerRouterManifests = [];
|
|
5990
6142
|
const newPerRouterManifestDataMap = /* @__PURE__ */ new Map();
|
|
5991
6143
|
const newPerRouterPrecomputedMap = /* @__PURE__ */ new Map();
|
|
5992
6144
|
const newPerRouterTrieMap = /* @__PURE__ */ new Map();
|
|
5993
|
-
let mergedRouteAncestry = {};
|
|
5994
|
-
let mergedRouteTrailingSlash = {};
|
|
5995
6145
|
let routerMountIndex = 0;
|
|
5996
6146
|
const allManifests = [];
|
|
5997
6147
|
const clientChunkCtx = state.opts?.clientChunkCtx;
|
|
@@ -6012,6 +6162,7 @@ async function discoverRouters(state, rscEnv) {
|
|
|
6012
6162
|
router.urlpatterns,
|
|
6013
6163
|
routerMountIndex,
|
|
6014
6164
|
{
|
|
6165
|
+
routerId: id,
|
|
6015
6166
|
...router.__basename ? { urlPrefix: router.__basename } : {},
|
|
6016
6167
|
...collectClientFallbackRef ? { collectClientFallbackRef } : {}
|
|
6017
6168
|
}
|
|
@@ -6049,23 +6200,17 @@ async function discoverRouters(state, rscEnv) {
|
|
|
6049
6200
|
newPerRouterManifests.push({
|
|
6050
6201
|
id,
|
|
6051
6202
|
routeManifest: manifest.routeManifest,
|
|
6203
|
+
routeTrailingSlash: manifest.routeTrailingSlash,
|
|
6052
6204
|
routeSearchSchemas: manifest.routeSearchSchemas,
|
|
6053
6205
|
sourceFile: router.__sourceFile,
|
|
6054
6206
|
factoryOnlyPrefixes
|
|
6055
6207
|
});
|
|
6056
|
-
if (manifest._routeAncestry) {
|
|
6057
|
-
Object.assign(mergedRouteAncestry, manifest._routeAncestry);
|
|
6058
|
-
}
|
|
6059
|
-
if (manifest.routeTrailingSlash) {
|
|
6060
|
-
Object.assign(mergedRouteTrailingSlash, manifest.routeTrailingSlash);
|
|
6061
|
-
}
|
|
6062
6208
|
const routerPrecomputed = [];
|
|
6063
6209
|
flattenLeafEntries(
|
|
6064
6210
|
manifest.prefixTree,
|
|
6065
6211
|
manifest.routeManifest,
|
|
6066
6212
|
routerPrecomputed
|
|
6067
6213
|
);
|
|
6068
|
-
newMergedPrecomputedEntries.push(...routerPrecomputed);
|
|
6069
6214
|
newPerRouterManifestDataMap.set(id, manifest.routeManifest);
|
|
6070
6215
|
newPerRouterPrecomputedMap.set(id, routerPrecomputed);
|
|
6071
6216
|
console.log(
|
|
@@ -6087,51 +6232,12 @@ async function discoverRouters(state, rscEnv) {
|
|
|
6087
6232
|
allManifests.length,
|
|
6088
6233
|
(performance.now() - manifestGenStart).toFixed(1)
|
|
6089
6234
|
);
|
|
6090
|
-
let newMergedRouteTrie = null;
|
|
6091
6235
|
const trieStart = debug10 ? performance.now() : 0;
|
|
6092
6236
|
if (Object.keys(newMergedRouteManifest).length > 0) {
|
|
6093
|
-
|
|
6094
|
-
const
|
|
6095
|
-
|
|
6096
|
-
|
|
6097
|
-
if (!(name in routeToStaticPrefix)) {
|
|
6098
|
-
routeToStaticPrefix[name] = "";
|
|
6099
|
-
}
|
|
6100
|
-
}
|
|
6101
|
-
buildRouteToStaticPrefix(manifest.prefixTree, routeToStaticPrefix);
|
|
6102
|
-
}
|
|
6103
|
-
const prerenderRouteNames = /* @__PURE__ */ new Set();
|
|
6104
|
-
const passthroughRouteNames = /* @__PURE__ */ new Set();
|
|
6105
|
-
const mergedResponseTypeRoutes = {};
|
|
6106
|
-
for (const { manifest } of allManifests) {
|
|
6107
|
-
if (manifest.prerenderRoutes) {
|
|
6108
|
-
for (const name of manifest.prerenderRoutes) {
|
|
6109
|
-
prerenderRouteNames.add(name);
|
|
6110
|
-
}
|
|
6111
|
-
}
|
|
6112
|
-
if (manifest.passthroughRoutes) {
|
|
6113
|
-
for (const name of manifest.passthroughRoutes) {
|
|
6114
|
-
passthroughRouteNames.add(name);
|
|
6115
|
-
}
|
|
6116
|
-
}
|
|
6117
|
-
if (manifest.responseTypeRoutes) {
|
|
6118
|
-
Object.assign(mergedResponseTypeRoutes, manifest.responseTypeRoutes);
|
|
6119
|
-
}
|
|
6120
|
-
}
|
|
6121
|
-
newMergedRouteTrie = buildRouteTrie(
|
|
6122
|
-
newMergedRouteManifest,
|
|
6123
|
-
mergedRouteAncestry,
|
|
6124
|
-
routeToStaticPrefix,
|
|
6125
|
-
mergedRouteTrailingSlash,
|
|
6126
|
-
prerenderRouteNames,
|
|
6127
|
-
passthroughRouteNames,
|
|
6128
|
-
mergedResponseTypeRoutes
|
|
6129
|
-
);
|
|
6130
|
-
for (const { id, manifest } of allManifests) {
|
|
6131
|
-
const perRouterTrie = buildPerRouterTrie(manifest);
|
|
6132
|
-
if (perRouterTrie) {
|
|
6133
|
-
newPerRouterTrieMap.set(id, perRouterTrie);
|
|
6134
|
-
}
|
|
6237
|
+
for (const { id, manifest } of allManifests) {
|
|
6238
|
+
const perRouterTrie = buildPerRouterTrie(manifest);
|
|
6239
|
+
if (perRouterTrie) {
|
|
6240
|
+
newPerRouterTrieMap.set(id, perRouterTrie);
|
|
6135
6241
|
}
|
|
6136
6242
|
}
|
|
6137
6243
|
}
|
|
@@ -6140,17 +6246,287 @@ async function discoverRouters(state, rscEnv) {
|
|
|
6140
6246
|
(performance.now() - trieStart).toFixed(1)
|
|
6141
6247
|
);
|
|
6142
6248
|
state.mergedRouteManifest = newMergedRouteManifest;
|
|
6143
|
-
state.mergedPrecomputedEntries = newMergedPrecomputedEntries;
|
|
6144
6249
|
state.perRouterManifests = newPerRouterManifests;
|
|
6145
6250
|
state.perRouterManifestDataMap = newPerRouterManifestDataMap;
|
|
6146
6251
|
state.perRouterPrecomputedMap = newPerRouterPrecomputedMap;
|
|
6147
6252
|
state.perRouterTrieMap = newPerRouterTrieMap;
|
|
6148
|
-
|
|
6253
|
+
const perRouterSetters = [
|
|
6254
|
+
[newPerRouterManifestDataMap, "setRouterManifest"],
|
|
6255
|
+
[newPerRouterTrieMap, "setRouterTrie"],
|
|
6256
|
+
[newPerRouterPrecomputedMap, "setRouterPrecomputedEntries"]
|
|
6257
|
+
];
|
|
6258
|
+
for (const [map, fn] of perRouterSetters) {
|
|
6259
|
+
const setter = serverMod[fn];
|
|
6260
|
+
if (typeof setter !== "function") continue;
|
|
6261
|
+
for (const [routerId, value] of map) setter(routerId, value);
|
|
6262
|
+
}
|
|
6149
6263
|
await expandPrerenderRoutes(state, rscEnv, registry, allManifests);
|
|
6150
6264
|
await renderStaticHandlers(state, rscEnv, registry);
|
|
6151
6265
|
return serverMod;
|
|
6152
6266
|
}
|
|
6153
6267
|
|
|
6268
|
+
// src/vite/discovery/shell-prerender-phase.ts
|
|
6269
|
+
import { existsSync as existsSync6, readdirSync as readdirSync2, readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "node:fs";
|
|
6270
|
+
import { join as join4, resolve as resolve8 } from "node:path";
|
|
6271
|
+
|
|
6272
|
+
// src/prerender/shell-manifest-key.ts
|
|
6273
|
+
function buildShellManifestKey(pathname) {
|
|
6274
|
+
return pathname;
|
|
6275
|
+
}
|
|
6276
|
+
|
|
6277
|
+
// src/vite/discovery/shell-prerender-phase.ts
|
|
6278
|
+
init_debug();
|
|
6279
|
+
var debug11 = createRangoDebugger(NS.prerender);
|
|
6280
|
+
async function runShellPrerenderPhase(s, builder) {
|
|
6281
|
+
const tempServer = s.shellPhaseTempServer;
|
|
6282
|
+
if (!s.isBuildMode || !s.shellCandidates?.length || !tempServer) return;
|
|
6283
|
+
const candidates = s.shellCandidates;
|
|
6284
|
+
const startTotal = performance.now();
|
|
6285
|
+
console.log(`[rango] Shell-prerendering ${candidates.length} URL(s)...`);
|
|
6286
|
+
let restoreClientRequire;
|
|
6287
|
+
try {
|
|
6288
|
+
const rscEnv = tempServer.environments?.rsc;
|
|
6289
|
+
const ssrEnv = tempServer.environments?.ssr;
|
|
6290
|
+
if (!rscEnv?.runner || !ssrEnv?.runner) {
|
|
6291
|
+
console.warn(
|
|
6292
|
+
`[rango] shell prerender: temp server runners unavailable (rsc=${String(!!rscEnv?.runner)}, ssr=${String(!!ssrEnv?.runner)}); skipping \u2014 routes keep runtime shell capture.`
|
|
6293
|
+
);
|
|
6294
|
+
return;
|
|
6295
|
+
}
|
|
6296
|
+
const versionPlugin = (builder?.config?.plugins ?? []).find(
|
|
6297
|
+
(p) => p?.name === "@rangojs/router:version"
|
|
6298
|
+
);
|
|
6299
|
+
const buildVersion = versionPlugin?.api?.getBuildVersion?.();
|
|
6300
|
+
if (!buildVersion) {
|
|
6301
|
+
console.warn(
|
|
6302
|
+
"[rango] shell prerender: main build version unavailable; skipping \u2014 routes keep runtime shell capture."
|
|
6303
|
+
);
|
|
6304
|
+
return;
|
|
6305
|
+
}
|
|
6306
|
+
const payloads = s.prerenderPayloadValues ?? /* @__PURE__ */ new Map();
|
|
6307
|
+
const fetchedKeys = /* @__PURE__ */ new Set();
|
|
6308
|
+
globalThis.__loadPrerenderManifestModule = async () => ({
|
|
6309
|
+
default: Object.fromEntries([...payloads.keys()].map((k) => [k, k])),
|
|
6310
|
+
loadPrerenderAsset: async (spec) => {
|
|
6311
|
+
fetchedKeys.add(spec);
|
|
6312
|
+
return { default: JSON.parse(payloads.get(spec)) };
|
|
6313
|
+
}
|
|
6314
|
+
});
|
|
6315
|
+
const ssrRunner = ssrEnv.runner;
|
|
6316
|
+
const ssrPkg = await ssrRunner.import("@rangojs/router/ssr");
|
|
6317
|
+
const ssrDeps = await ssrRunner.import("@rangojs/router/internal/deps/ssr");
|
|
6318
|
+
const reactDomServer = await ssrRunner.import("react-dom/server.edge");
|
|
6319
|
+
const reactDomStatic = await ssrRunner.import("react-dom/static.edge");
|
|
6320
|
+
const htmlStream = await ssrRunner.import(
|
|
6321
|
+
"@rangojs/router/internal/deps/html-stream-server"
|
|
6322
|
+
);
|
|
6323
|
+
const clientOutDir = builder?.environments?.client?.config?.build?.outDir ?? resolve8(s.projectRoot, "dist/client");
|
|
6324
|
+
const clientAssetsDir = join4(clientOutDir, "assets");
|
|
6325
|
+
const entryFile = existsSync6(clientAssetsDir) ? readdirSync2(clientAssetsDir).find((f) => /^index-.*\.js$/.test(f)) : void 0;
|
|
6326
|
+
if (!entryFile) {
|
|
6327
|
+
console.warn(
|
|
6328
|
+
`[rango] shell prerender: built client entry not found under ${clientAssetsDir}; skipping \u2014 routes keep runtime shell capture.`
|
|
6329
|
+
);
|
|
6330
|
+
return;
|
|
6331
|
+
}
|
|
6332
|
+
const base = builder?.config?.base ?? "/";
|
|
6333
|
+
const normalizedBase = base.endsWith("/") ? base : `${base}/`;
|
|
6334
|
+
const bootstrapContent = `import("${normalizedBase}assets/${entryFile}")`;
|
|
6335
|
+
debug11?.("shell prerender bootstrap: %s", bootstrapContent);
|
|
6336
|
+
const minimalPlugin = (tempServer.config?.plugins ?? []).find(
|
|
6337
|
+
(p) => p?.name === "rsc:minimal"
|
|
6338
|
+
);
|
|
6339
|
+
const rscManager = minimalPlugin?.api?.manager;
|
|
6340
|
+
const { computeProductionHash: computeProductionHash2 } = await Promise.resolve().then(() => (init_client_ref_hashing(), client_ref_hashing_exports));
|
|
6341
|
+
let hashToDevKey = /* @__PURE__ */ new Map();
|
|
6342
|
+
const rebuildHashMap = () => {
|
|
6343
|
+
hashToDevKey = /* @__PURE__ */ new Map();
|
|
6344
|
+
const metaMap = rscManager?.clientReferenceMetaMap ?? {};
|
|
6345
|
+
for (const meta of Object.values(metaMap)) {
|
|
6346
|
+
hashToDevKey.set(
|
|
6347
|
+
computeProductionHash2(s.projectRoot, meta.referenceKey),
|
|
6348
|
+
meta.referenceKey
|
|
6349
|
+
);
|
|
6350
|
+
}
|
|
6351
|
+
};
|
|
6352
|
+
const origClientRequire = globalThis.__vite_rsc_client_require__;
|
|
6353
|
+
if (typeof origClientRequire === "function") {
|
|
6354
|
+
restoreClientRequire = () => {
|
|
6355
|
+
globalThis.__vite_rsc_client_require__ = origClientRequire;
|
|
6356
|
+
};
|
|
6357
|
+
globalThis.__vite_rsc_client_require__ = (id) => {
|
|
6358
|
+
const base2 = id.split("$$cache=")[0];
|
|
6359
|
+
let mapped = hashToDevKey.get(base2);
|
|
6360
|
+
if (mapped === void 0) {
|
|
6361
|
+
rebuildHashMap();
|
|
6362
|
+
mapped = hashToDevKey.get(base2);
|
|
6363
|
+
}
|
|
6364
|
+
return origClientRequire(mapped ?? id);
|
|
6365
|
+
};
|
|
6366
|
+
}
|
|
6367
|
+
const captureShellHTML = ssrPkg.createShellCaptureHandler({
|
|
6368
|
+
createFromReadableStream: ssrDeps.createFromReadableStream,
|
|
6369
|
+
renderToReadableStream: reactDomServer.renderToReadableStream ?? reactDomServer.default?.renderToReadableStream,
|
|
6370
|
+
resume: reactDomServer.resume ?? reactDomServer.default?.resume,
|
|
6371
|
+
prerender: reactDomStatic.prerender ?? reactDomStatic.default?.prerender,
|
|
6372
|
+
injectRSCPayload: htmlStream.injectRSCPayload,
|
|
6373
|
+
headScripts: "preinit",
|
|
6374
|
+
loadBootstrapScriptContent: async () => bootstrapContent
|
|
6375
|
+
});
|
|
6376
|
+
const rscRunner = rscEnv.runner;
|
|
6377
|
+
const captureMod = await rscRunner.import(
|
|
6378
|
+
"@rangojs/router/build/shell-capture"
|
|
6379
|
+
);
|
|
6380
|
+
const serverMod = await rscRunner.import("@rangojs/router/server");
|
|
6381
|
+
const registry = serverMod.RouterRegistry;
|
|
6382
|
+
const staged = [];
|
|
6383
|
+
let skipCount = 0;
|
|
6384
|
+
const pathCounts = /* @__PURE__ */ new Map();
|
|
6385
|
+
for (const cand of candidates) {
|
|
6386
|
+
pathCounts.set(cand.urlPath, (pathCounts.get(cand.urlPath) ?? 0) + 1);
|
|
6387
|
+
}
|
|
6388
|
+
for (const cand of candidates) {
|
|
6389
|
+
if ((pathCounts.get(cand.urlPath) ?? 0) > 1) {
|
|
6390
|
+
console.warn(
|
|
6391
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} - pathname claimed by multiple prerender routes; routes keep runtime capture`
|
|
6392
|
+
);
|
|
6393
|
+
skipCount++;
|
|
6394
|
+
continue;
|
|
6395
|
+
}
|
|
6396
|
+
const startUrl = performance.now();
|
|
6397
|
+
const policy = captureMod.resolveBuildPprConfig(cand.ppr);
|
|
6398
|
+
const mainKey = `${cand.routeName}/${cand.paramHash}`;
|
|
6399
|
+
let handled = false;
|
|
6400
|
+
const mismatches = [];
|
|
6401
|
+
for (const [, routerInstance] of registry) {
|
|
6402
|
+
if (typeof routerInstance.match !== "function") continue;
|
|
6403
|
+
try {
|
|
6404
|
+
const res = await captureMod.captureShellForBuild({
|
|
6405
|
+
router: routerInstance,
|
|
6406
|
+
urlPath: cand.urlPath,
|
|
6407
|
+
routeName: cand.routeName,
|
|
6408
|
+
key: `${cand.urlPath}:shell`,
|
|
6409
|
+
ttl: policy.ttl,
|
|
6410
|
+
swr: policy.swr,
|
|
6411
|
+
tags: policy.tags,
|
|
6412
|
+
maxSnapshotBytes: policy.maxSnapshotBytes,
|
|
6413
|
+
captureTimeout: policy.captureTimeout,
|
|
6414
|
+
buildEnv: s.resolvedBuildEnv,
|
|
6415
|
+
buildVersion,
|
|
6416
|
+
captureShellHTML,
|
|
6417
|
+
debug: !!debug11
|
|
6418
|
+
});
|
|
6419
|
+
if (res.outcome === "route-mismatch") {
|
|
6420
|
+
mismatches.push(res.matchedRouteName ?? "(no match)");
|
|
6421
|
+
continue;
|
|
6422
|
+
}
|
|
6423
|
+
handled = true;
|
|
6424
|
+
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
6425
|
+
if (res.outcome !== "stored" || !res.entry) {
|
|
6426
|
+
console.warn(
|
|
6427
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - capture ${res.outcome}; route keeps runtime capture`
|
|
6428
|
+
);
|
|
6429
|
+
skipCount++;
|
|
6430
|
+
break;
|
|
6431
|
+
}
|
|
6432
|
+
if (!fetchedKeys.has(mainKey)) {
|
|
6433
|
+
console.warn(
|
|
6434
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - capture did not replay the prerender store; route keeps runtime capture`
|
|
6435
|
+
);
|
|
6436
|
+
skipCount++;
|
|
6437
|
+
break;
|
|
6438
|
+
}
|
|
6439
|
+
const value = {
|
|
6440
|
+
entry: res.entry,
|
|
6441
|
+
ttl: policy.ttl,
|
|
6442
|
+
swr: policy.swr,
|
|
6443
|
+
tags: res.tags,
|
|
6444
|
+
routeName: cand.routeName
|
|
6445
|
+
};
|
|
6446
|
+
staged.push({
|
|
6447
|
+
key: buildShellManifestKey(cand.urlPath),
|
|
6448
|
+
value: JSON.stringify(value)
|
|
6449
|
+
});
|
|
6450
|
+
console.log(
|
|
6451
|
+
`[rango] SHELL OK ${cand.urlPath.padEnd(34)} (${elapsed}ms)`
|
|
6452
|
+
);
|
|
6453
|
+
break;
|
|
6454
|
+
} catch (err) {
|
|
6455
|
+
handled = true;
|
|
6456
|
+
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
6457
|
+
console.warn(
|
|
6458
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - ${err?.message ?? err}; route keeps runtime capture`
|
|
6459
|
+
);
|
|
6460
|
+
skipCount++;
|
|
6461
|
+
break;
|
|
6462
|
+
}
|
|
6463
|
+
}
|
|
6464
|
+
if (!handled) {
|
|
6465
|
+
console.warn(
|
|
6466
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} - no router matched "${cand.routeName}"` + (mismatches.length > 0 ? ` (matched: ${mismatches.join(", ")})` : "") + "; route keeps runtime capture"
|
|
6467
|
+
);
|
|
6468
|
+
skipCount++;
|
|
6469
|
+
}
|
|
6470
|
+
}
|
|
6471
|
+
if (staged.length > 0) {
|
|
6472
|
+
const rscOutDir = builder?.environments?.rsc?.config?.build?.outDir ?? resolve8(s.projectRoot, "dist/rsc");
|
|
6473
|
+
writeShellManifest(s, rscOutDir, staged);
|
|
6474
|
+
}
|
|
6475
|
+
const totalElapsed = (performance.now() - startTotal).toFixed(0);
|
|
6476
|
+
const parts = [`${staged.length} done`];
|
|
6477
|
+
if (skipCount > 0) parts.push(`${skipCount} skipped`);
|
|
6478
|
+
console.log(
|
|
6479
|
+
`[rango] Shell prerender complete: ${parts.join(", ")} (${totalElapsed}ms total)`
|
|
6480
|
+
);
|
|
6481
|
+
} catch (err) {
|
|
6482
|
+
console.warn(
|
|
6483
|
+
`[rango] shell prerender phase failed: ${err?.message ?? err}; routes keep runtime shell capture.`
|
|
6484
|
+
);
|
|
6485
|
+
} finally {
|
|
6486
|
+
delete globalThis.__loadPrerenderManifestModule;
|
|
6487
|
+
restoreClientRequire?.();
|
|
6488
|
+
}
|
|
6489
|
+
}
|
|
6490
|
+
function writeShellManifest(s, rscOutDir, staged) {
|
|
6491
|
+
const rscEntryPath = resolve8(rscOutDir, s.rscEntryFileName ?? "index.js");
|
|
6492
|
+
if (!existsSync6(rscEntryPath)) {
|
|
6493
|
+
console.warn(
|
|
6494
|
+
`[rango] shell prerender: RSC entry not found at ${rscEntryPath}; entries not persisted \u2014 routes keep runtime capture.`
|
|
6495
|
+
);
|
|
6496
|
+
return;
|
|
6497
|
+
}
|
|
6498
|
+
const assetsDir = resolve8(rscOutDir, "assets");
|
|
6499
|
+
let totalBytes = 0;
|
|
6500
|
+
const manifestMap = {};
|
|
6501
|
+
const countedFiles = /* @__PURE__ */ new Set();
|
|
6502
|
+
for (const { key, value } of staged) {
|
|
6503
|
+
const fileName = writeBuildAssetModule(assetsDir, "__ps", value);
|
|
6504
|
+
if (!countedFiles.has(fileName)) {
|
|
6505
|
+
countedFiles.add(fileName);
|
|
6506
|
+
totalBytes += Buffer.byteLength(value) + "export default ;\n".length;
|
|
6507
|
+
}
|
|
6508
|
+
manifestMap[key] = `./assets/${fileName}`;
|
|
6509
|
+
}
|
|
6510
|
+
const manifestCode = [
|
|
6511
|
+
`const m=${jsonParseExpression(manifestMap)};`,
|
|
6512
|
+
`export function loadShellAsset(s){return import(s)}`,
|
|
6513
|
+
`export default m;`,
|
|
6514
|
+
""
|
|
6515
|
+
].join("\n");
|
|
6516
|
+
writeFileSync3(resolve8(rscOutDir, "__shell-manifest.js"), manifestCode);
|
|
6517
|
+
totalBytes += Buffer.byteLength(manifestCode);
|
|
6518
|
+
const rscCode = readFileSync4(rscEntryPath, "utf-8");
|
|
6519
|
+
if (!rscCode.includes("__shell-manifest.js")) {
|
|
6520
|
+
const injection = `globalThis.__loadShellManifestModule = () => import("./__shell-manifest.js");
|
|
6521
|
+
`;
|
|
6522
|
+
writeFileSync3(rscEntryPath, injection + rscCode);
|
|
6523
|
+
}
|
|
6524
|
+
const totalKB = (totalBytes / 1024).toFixed(1);
|
|
6525
|
+
console.log(
|
|
6526
|
+
`[rango] Wrote shell assets (${totalKB} KB total, ${staged.length} entries)`
|
|
6527
|
+
);
|
|
6528
|
+
}
|
|
6529
|
+
|
|
6154
6530
|
// src/vite/discovery/dev-prerender-cache.ts
|
|
6155
6531
|
function payloadBodiesFromResult(result) {
|
|
6156
6532
|
const main = JSON.stringify({
|
|
@@ -6189,8 +6565,8 @@ function createDevPrerenderCache(maxEntriesPerRouter = MAX_ENTRIES_PER_ROUTER) {
|
|
|
6189
6565
|
}
|
|
6190
6566
|
|
|
6191
6567
|
// src/vite/discovery/route-types-writer.ts
|
|
6192
|
-
import { dirname as dirname3, join as
|
|
6193
|
-
import { readFileSync as
|
|
6568
|
+
import { dirname as dirname3, join as join5, resolve as resolve9 } from "node:path";
|
|
6569
|
+
import { readFileSync as readFileSync5, writeFileSync as writeFileSync4, existsSync as existsSync7, unlinkSync as unlinkSync2 } from "node:fs";
|
|
6194
6570
|
function filterUserNamedRoutes(manifest) {
|
|
6195
6571
|
const filtered = {};
|
|
6196
6572
|
for (const [name, pattern] of Object.entries(manifest)) {
|
|
@@ -6201,10 +6577,10 @@ function filterUserNamedRoutes(manifest) {
|
|
|
6201
6577
|
return filtered;
|
|
6202
6578
|
}
|
|
6203
6579
|
function writeGenFileIfChanged(state, outPath, source, opts) {
|
|
6204
|
-
const existing =
|
|
6580
|
+
const existing = existsSync7(outPath) ? readFileSync5(outPath, "utf-8") : null;
|
|
6205
6581
|
if (existing === source) return;
|
|
6206
6582
|
markSelfGenWrite(state, outPath, source);
|
|
6207
|
-
|
|
6583
|
+
writeFileSync4(outPath, source);
|
|
6208
6584
|
if (opts?.log) console.log(`[rango] Generated route types -> ${outPath}`);
|
|
6209
6585
|
}
|
|
6210
6586
|
function writeCombinedRouteTypesWithTracking(state, opts) {
|
|
@@ -6219,10 +6595,10 @@ function writeRouteTypesFiles(state) {
|
|
|
6219
6595
|
if (state.perRouterManifests.length === 0) return;
|
|
6220
6596
|
try {
|
|
6221
6597
|
const entryDir = dirname3(
|
|
6222
|
-
|
|
6598
|
+
resolve9(state.projectRoot, state.resolvedEntryPath)
|
|
6223
6599
|
);
|
|
6224
|
-
const oldCombinedPath =
|
|
6225
|
-
if (
|
|
6600
|
+
const oldCombinedPath = join5(entryDir, "named-routes.gen.ts");
|
|
6601
|
+
if (existsSync7(oldCombinedPath)) {
|
|
6226
6602
|
unlinkSync2(oldCombinedPath);
|
|
6227
6603
|
console.log(
|
|
6228
6604
|
`[rango] Removed stale combined route types: ${oldCombinedPath}`
|
|
@@ -6303,13 +6679,21 @@ function supplementGenFilesWithRuntimeRoutes(state) {
|
|
|
6303
6679
|
}
|
|
6304
6680
|
|
|
6305
6681
|
// src/vite/discovery/virtual-module-codegen.ts
|
|
6306
|
-
import {
|
|
6682
|
+
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync5 } from "node:fs";
|
|
6683
|
+
import { dirname as dirname4, basename, join as join6 } from "node:path";
|
|
6684
|
+
var MANIFEST_EXTERNALIZE_THRESHOLD = 512 * 1024;
|
|
6685
|
+
function devDiscoveryBootstrap(state) {
|
|
6686
|
+
if (state.isBuildMode || state.opts?.preset !== "cloudflare" || state.devDiscoveryEpoch === void 0) {
|
|
6687
|
+
return [];
|
|
6688
|
+
}
|
|
6689
|
+
const epoch = state.devDiscoveryEpoch;
|
|
6690
|
+
return [`globalThis.__RANGO_DEV_DISCOVERY_EPOCH = ${epoch};`];
|
|
6691
|
+
}
|
|
6307
6692
|
function generateRoutesManifestModule(state) {
|
|
6308
6693
|
const hasManifest = state.mergedRouteManifest && Object.keys(state.mergedRouteManifest).length > 0;
|
|
6309
6694
|
if (hasManifest) {
|
|
6310
6695
|
const genFileImports = [];
|
|
6311
|
-
const
|
|
6312
|
-
const routersWithoutGenFile = [];
|
|
6696
|
+
const genFileVarByEntry = [];
|
|
6313
6697
|
let varIdx = 0;
|
|
6314
6698
|
for (const entry of state.perRouterManifests) {
|
|
6315
6699
|
if (entry.sourceFile) {
|
|
@@ -6318,7 +6702,7 @@ function generateRoutesManifestModule(state) {
|
|
|
6318
6702
|
/\.(tsx?|jsx?)$/,
|
|
6319
6703
|
""
|
|
6320
6704
|
);
|
|
6321
|
-
const genPath =
|
|
6705
|
+
const genPath = join6(
|
|
6322
6706
|
routerDir,
|
|
6323
6707
|
`${routerBasename}.named-routes.gen.js`
|
|
6324
6708
|
).replaceAll("\\", "/");
|
|
@@ -6326,16 +6710,19 @@ function generateRoutesManifestModule(state) {
|
|
|
6326
6710
|
genFileImports.push(
|
|
6327
6711
|
`import { NamedRoutes as ${varName} } from ${JSON.stringify(genPath)};`
|
|
6328
6712
|
);
|
|
6329
|
-
|
|
6713
|
+
genFileVarByEntry.push(varName);
|
|
6330
6714
|
} else {
|
|
6331
|
-
|
|
6332
|
-
id: entry.id,
|
|
6333
|
-
manifest: entry.routeManifest
|
|
6334
|
-
});
|
|
6715
|
+
genFileVarByEntry.push(null);
|
|
6335
6716
|
}
|
|
6336
6717
|
}
|
|
6337
|
-
const
|
|
6338
|
-
|
|
6718
|
+
const serverImports = [
|
|
6719
|
+
"setCachedManifest",
|
|
6720
|
+
"setRouterManifest",
|
|
6721
|
+
...state.isBuildMode ? ["registerRouterManifestLoader"] : [],
|
|
6722
|
+
"clearAllRouterData"
|
|
6723
|
+
];
|
|
6724
|
+
const lines2 = [
|
|
6725
|
+
`import { ${serverImports.join(", ")} } from "@rangojs/router/server";`,
|
|
6339
6726
|
...genFileImports,
|
|
6340
6727
|
// Clear stale per-router cached data (manifest, trie, precomputed entries)
|
|
6341
6728
|
// before re-populating. In Cloudflare dev mode, program reloads re-evaluate
|
|
@@ -6344,99 +6731,129 @@ function generateRoutesManifestModule(state) {
|
|
|
6344
6731
|
// handler finds stale trie data and never rebuilds from updated urlpatterns.
|
|
6345
6732
|
`clearAllRouterData();`
|
|
6346
6733
|
];
|
|
6347
|
-
if (
|
|
6348
|
-
|
|
6734
|
+
if (varIdx > 0) {
|
|
6735
|
+
lines2.push(
|
|
6349
6736
|
`function __flat(r) { const o = {}; for (const [k, v] of Object.entries(r)) o[k] = typeof v === "string" ? v : v.path; return o; }`
|
|
6350
6737
|
);
|
|
6351
6738
|
}
|
|
6352
|
-
|
|
6353
|
-
|
|
6739
|
+
const routerMapVars = [];
|
|
6740
|
+
for (const [i, entry] of state.perRouterManifests.entries()) {
|
|
6741
|
+
const mapVar = `__m${i}`;
|
|
6742
|
+
const genVar = genFileVarByEntry[i];
|
|
6743
|
+
const init = genVar ? `__flat(${genVar})` : jsonParseExpression(entry.routeManifest);
|
|
6744
|
+
lines2.push(`const ${mapVar} = ${init};`);
|
|
6745
|
+
routerMapVars.push(mapVar);
|
|
6746
|
+
}
|
|
6747
|
+
if (routerMapVars.length === 1) {
|
|
6748
|
+
lines2.push(`setCachedManifest(${routerMapVars[0]});`);
|
|
6354
6749
|
} else {
|
|
6355
|
-
|
|
6356
|
-
|
|
6357
|
-
|
|
6358
|
-
parts.push(`...${jsonParseExpression(manifest)}`);
|
|
6359
|
-
lines.push(`setCachedManifest({ ${parts.join(", ")} });`);
|
|
6750
|
+
lines2.push(
|
|
6751
|
+
`setCachedManifest({ ${routerMapVars.map((v) => `...${v}`).join(", ")} });`
|
|
6752
|
+
);
|
|
6360
6753
|
}
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
`setRouterManifest(${JSON.stringify(entry.id)}, ${jsonParseExpression(entry.routeManifest)});`
|
|
6754
|
+
for (const [i, entry] of state.perRouterManifests.entries()) {
|
|
6755
|
+
lines2.push(
|
|
6756
|
+
`setRouterManifest(${JSON.stringify(entry.id)}, ${routerMapVars[i]});`
|
|
6757
|
+
);
|
|
6758
|
+
}
|
|
6759
|
+
if (state.isBuildMode) {
|
|
6760
|
+
for (const routerId of state.perRouterManifestDataMap.keys()) {
|
|
6761
|
+
lines2.push(
|
|
6762
|
+
`registerRouterManifestLoader(${JSON.stringify(routerId)}, () => import(${JSON.stringify(VIRTUAL_ROUTES_MANIFEST_ID + "/" + routerId)}));`
|
|
6371
6763
|
);
|
|
6372
6764
|
}
|
|
6373
6765
|
}
|
|
6374
|
-
for (const routerId of state.perRouterManifestDataMap.keys()) {
|
|
6375
|
-
lines.push(
|
|
6376
|
-
`registerRouterManifestLoader(${JSON.stringify(routerId)}, () => import(${JSON.stringify(VIRTUAL_ROUTES_MANIFEST_ID + "/" + routerId)}));`
|
|
6377
|
-
);
|
|
6378
|
-
}
|
|
6379
6766
|
if (!state.isBuildMode && state.devServerOrigin) {
|
|
6380
|
-
|
|
6767
|
+
lines2.push(
|
|
6381
6768
|
`globalThis.__PRERENDER_DEV_URL = ${JSON.stringify(state.devServerOrigin)};`
|
|
6382
6769
|
);
|
|
6383
6770
|
}
|
|
6384
|
-
|
|
6771
|
+
lines2.push(...devDiscoveryBootstrap(state));
|
|
6772
|
+
return lines2.join("\n");
|
|
6385
6773
|
}
|
|
6774
|
+
const lines = [];
|
|
6386
6775
|
if (!state.isBuildMode) {
|
|
6387
6776
|
const origin = state.devServerOrigin || state.devServer?.resolvedUrls?.local?.[0]?.replace(/\/$/, "") || state.devServer && `http://localhost:${state.devServer.config.server.port || 5173}`;
|
|
6388
6777
|
if (origin) {
|
|
6389
6778
|
state.devServerOrigin = origin;
|
|
6390
|
-
|
|
6779
|
+
lines.push(`globalThis.__PRERENDER_DEV_URL = ${JSON.stringify(origin)};`);
|
|
6391
6780
|
}
|
|
6392
6781
|
}
|
|
6393
|
-
|
|
6782
|
+
lines.push(...devDiscoveryBootstrap(state));
|
|
6783
|
+
return lines.join("\n") || `// Route manifest will be populated at runtime`;
|
|
6784
|
+
}
|
|
6785
|
+
function shortHash(input) {
|
|
6786
|
+
let h = 2166136261;
|
|
6787
|
+
for (let i = 0; i < input.length; i++) {
|
|
6788
|
+
h ^= input.charCodeAt(i);
|
|
6789
|
+
h = Math.imul(h, 16777619);
|
|
6790
|
+
}
|
|
6791
|
+
return (h >>> 0).toString(36);
|
|
6394
6792
|
}
|
|
6395
6793
|
function generatePerRouterModule(state, routerId) {
|
|
6396
|
-
const
|
|
6794
|
+
const sourceFile = state.perRouterManifests.find(
|
|
6795
|
+
(e) => e.id === routerId
|
|
6796
|
+
)?.sourceFile;
|
|
6397
6797
|
const trie = state.perRouterTrieMap.get(routerId);
|
|
6398
6798
|
const entries = state.perRouterPrecomputedMap.get(routerId);
|
|
6399
6799
|
const lines = [];
|
|
6400
|
-
if (
|
|
6401
|
-
const routerDir = dirname4(
|
|
6402
|
-
const routerBasename = basename(
|
|
6403
|
-
|
|
6404
|
-
""
|
|
6405
|
-
);
|
|
6406
|
-
const genPath = join5(
|
|
6800
|
+
if (sourceFile) {
|
|
6801
|
+
const routerDir = dirname4(sourceFile);
|
|
6802
|
+
const routerBasename = basename(sourceFile).replace(/\.(tsx?|jsx?)$/, "");
|
|
6803
|
+
const genPath = join6(
|
|
6407
6804
|
routerDir,
|
|
6408
6805
|
`${routerBasename}.named-routes.gen.js`
|
|
6409
6806
|
).replaceAll("\\", "/");
|
|
6410
|
-
lines.push(`import
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6807
|
+
lines.push(`import ${JSON.stringify(genPath)};`);
|
|
6808
|
+
}
|
|
6809
|
+
const hasTrie = !!trie;
|
|
6810
|
+
const hasEntries = !!entries && entries.length > 0;
|
|
6811
|
+
const preset = state.opts?.preset ?? "node";
|
|
6812
|
+
const override = process.env.RANGO_MANIFEST_TEXT;
|
|
6813
|
+
const payload = manifestPayload(trie, hasTrie, entries, hasEntries);
|
|
6814
|
+
const payloadJson = hasTrie || hasEntries ? JSON.stringify(payload) : "";
|
|
6815
|
+
const useTextModule = state.isBuildMode && preset === "cloudflare" && override !== "0" && (hasTrie || hasEntries) && (override === "1" || payloadJson.length >= MANIFEST_EXTERNALIZE_THRESHOLD);
|
|
6816
|
+
if (useTextModule) {
|
|
6817
|
+
const dir = join6(state.projectRoot, "node_modules", ".rango");
|
|
6818
|
+
mkdirSync2(dir, { recursive: true });
|
|
6819
|
+
const safeId = `${routerId.replace(/[^a-zA-Z0-9_-]/g, "_")}-${shortHash(routerId)}`;
|
|
6820
|
+
const filePath = join6(dir, `manifest-${safeId}.txt`).replaceAll("\\", "/");
|
|
6821
|
+
writeFileSync5(filePath, payloadJson);
|
|
6822
|
+
lines.push(`import __manifestJson from ${JSON.stringify(filePath)};`);
|
|
6823
|
+
lines.push(`const __manifestData = JSON.parse(__manifestJson);`);
|
|
6824
|
+
emitManifestExports(lines, hasTrie, hasEntries);
|
|
6825
|
+
return lines.join("\n");
|
|
6420
6826
|
}
|
|
6421
|
-
if (
|
|
6827
|
+
if (hasTrie) {
|
|
6422
6828
|
lines.push(`export const trie = ${jsonParseExpression(trie)};`);
|
|
6423
6829
|
}
|
|
6424
|
-
if (
|
|
6830
|
+
if (hasEntries) {
|
|
6425
6831
|
lines.push(
|
|
6426
6832
|
`export const precomputedEntries = ${jsonParseExpression(entries)};`
|
|
6427
6833
|
);
|
|
6428
6834
|
}
|
|
6429
6835
|
return lines.join("\n") || "";
|
|
6430
6836
|
}
|
|
6837
|
+
function manifestPayload(trie, hasTrie, entries, hasEntries) {
|
|
6838
|
+
const payload = {};
|
|
6839
|
+
if (hasTrie) payload.t = trie;
|
|
6840
|
+
if (hasEntries) payload.p = entries;
|
|
6841
|
+
return payload;
|
|
6842
|
+
}
|
|
6843
|
+
function emitManifestExports(lines, hasTrie, hasEntries) {
|
|
6844
|
+
if (hasTrie) lines.push(`export const trie = __manifestData.t;`);
|
|
6845
|
+
if (hasEntries)
|
|
6846
|
+
lines.push(`export const precomputedEntries = __manifestData.p;`);
|
|
6847
|
+
}
|
|
6431
6848
|
|
|
6432
6849
|
// src/vite/discovery/bundle-postprocess.ts
|
|
6433
|
-
import { resolve as
|
|
6434
|
-
import { readFileSync as
|
|
6850
|
+
import { resolve as resolve10 } from "node:path";
|
|
6851
|
+
import { readFileSync as readFileSync6, writeFileSync as writeFileSync6, existsSync as existsSync8 } from "node:fs";
|
|
6435
6852
|
function postprocessBundle(state) {
|
|
6436
6853
|
const hasPrerenderData = state.prerenderManifestEntries && Object.keys(state.prerenderManifestEntries).length > 0;
|
|
6437
6854
|
const hasStaticData = state.staticManifestEntries && Object.keys(state.staticManifestEntries).length > 0;
|
|
6438
6855
|
if (!hasPrerenderData && !hasStaticData) return;
|
|
6439
|
-
const rscEntryPath =
|
|
6856
|
+
const rscEntryPath = resolve10(
|
|
6440
6857
|
state.projectRoot,
|
|
6441
6858
|
"dist/rsc",
|
|
6442
6859
|
state.rscEntryFileName ?? "index.js"
|
|
@@ -6457,9 +6874,9 @@ function postprocessBundle(state) {
|
|
|
6457
6874
|
];
|
|
6458
6875
|
for (const target of evictionTargets) {
|
|
6459
6876
|
for (const info of target.infos) {
|
|
6460
|
-
const chunkPath =
|
|
6877
|
+
const chunkPath = resolve10(state.projectRoot, "dist/rsc", info.fileName);
|
|
6461
6878
|
try {
|
|
6462
|
-
const code =
|
|
6879
|
+
const code = readFileSync6(chunkPath, "utf-8");
|
|
6463
6880
|
const result = evictHandlerCode(
|
|
6464
6881
|
code,
|
|
6465
6882
|
info.exports,
|
|
@@ -6467,7 +6884,7 @@ function postprocessBundle(state) {
|
|
|
6467
6884
|
target.brand
|
|
6468
6885
|
);
|
|
6469
6886
|
if (result) {
|
|
6470
|
-
|
|
6887
|
+
writeFileSync6(chunkPath, result.code);
|
|
6471
6888
|
const savedKB = (result.savedBytes / 1024).toFixed(1);
|
|
6472
6889
|
console.log(
|
|
6473
6890
|
`[rango] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`
|
|
@@ -6482,8 +6899,8 @@ function postprocessBundle(state) {
|
|
|
6482
6899
|
}
|
|
6483
6900
|
state.handlerChunkInfoMap.clear();
|
|
6484
6901
|
state.staticHandlerChunkInfoMap.clear();
|
|
6485
|
-
if (hasPrerenderData &&
|
|
6486
|
-
const rscCode =
|
|
6902
|
+
if (hasPrerenderData && existsSync8(rscEntryPath)) {
|
|
6903
|
+
const rscCode = readFileSync6(rscEntryPath, "utf-8");
|
|
6487
6904
|
if (!rscCode.includes("__prerender-manifest.js")) {
|
|
6488
6905
|
try {
|
|
6489
6906
|
let totalBytes = copyStagedBuildAssets(
|
|
@@ -6502,15 +6919,15 @@ function postprocessBundle(state) {
|
|
|
6502
6919
|
`export default m;`,
|
|
6503
6920
|
""
|
|
6504
6921
|
].join("\n");
|
|
6505
|
-
const manifestPath =
|
|
6922
|
+
const manifestPath = resolve10(
|
|
6506
6923
|
state.projectRoot,
|
|
6507
6924
|
"dist/rsc/__prerender-manifest.js"
|
|
6508
6925
|
);
|
|
6509
|
-
|
|
6926
|
+
writeFileSync6(manifestPath, manifestCode);
|
|
6510
6927
|
totalBytes += Buffer.byteLength(manifestCode);
|
|
6511
6928
|
const injection = `globalThis.__loadPrerenderManifestModule = () => import("./__prerender-manifest.js");
|
|
6512
6929
|
`;
|
|
6513
|
-
|
|
6930
|
+
writeFileSync6(rscEntryPath, injection + rscCode);
|
|
6514
6931
|
const totalKB = (totalBytes / 1024).toFixed(1);
|
|
6515
6932
|
console.log(
|
|
6516
6933
|
`[rango] Wrote prerender assets (${totalKB} KB total, ${Object.keys(state.prerenderManifestEntries).length} entries)`
|
|
@@ -6522,8 +6939,8 @@ function postprocessBundle(state) {
|
|
|
6522
6939
|
}
|
|
6523
6940
|
}
|
|
6524
6941
|
}
|
|
6525
|
-
if (hasStaticData &&
|
|
6526
|
-
const rscCode =
|
|
6942
|
+
if (hasStaticData && existsSync8(rscEntryPath)) {
|
|
6943
|
+
const rscCode = readFileSync6(rscEntryPath, "utf-8");
|
|
6527
6944
|
if (!rscCode.includes("__static-manifest.js")) {
|
|
6528
6945
|
try {
|
|
6529
6946
|
const manifestEntries = [];
|
|
@@ -6540,15 +6957,15 @@ function postprocessBundle(state) {
|
|
|
6540
6957
|
}
|
|
6541
6958
|
const manifestCode = `const m={${manifestEntries.join(",")}};globalThis.__STATIC_MANIFEST=m;export default m;
|
|
6542
6959
|
`;
|
|
6543
|
-
const manifestPath =
|
|
6960
|
+
const manifestPath = resolve10(
|
|
6544
6961
|
state.projectRoot,
|
|
6545
6962
|
"dist/rsc/__static-manifest.js"
|
|
6546
6963
|
);
|
|
6547
|
-
|
|
6964
|
+
writeFileSync6(manifestPath, manifestCode);
|
|
6548
6965
|
totalBytes += Buffer.byteLength(manifestCode);
|
|
6549
|
-
const injection = `import
|
|
6966
|
+
const injection = `globalThis.__loadStaticManifestModule = () => import("./__static-manifest.js");
|
|
6550
6967
|
`;
|
|
6551
|
-
|
|
6968
|
+
writeFileSync6(rscEntryPath, injection + rscCode);
|
|
6552
6969
|
const totalKB = (totalBytes / 1024).toFixed(1);
|
|
6553
6970
|
console.log(
|
|
6554
6971
|
`[rango] Wrote static assets (${totalKB} KB total, ${Object.keys(state.staticManifestEntries).length} entries)`
|
|
@@ -6563,7 +6980,7 @@ function postprocessBundle(state) {
|
|
|
6563
6980
|
}
|
|
6564
6981
|
|
|
6565
6982
|
// src/vite/discovery/gate-state.ts
|
|
6566
|
-
function createDiscoveryGate(s,
|
|
6983
|
+
function createDiscoveryGate(s, debug12) {
|
|
6567
6984
|
let gatePending = false;
|
|
6568
6985
|
let gateResolver = () => {
|
|
6569
6986
|
};
|
|
@@ -6572,15 +6989,15 @@ function createDiscoveryGate(s, debug11) {
|
|
|
6572
6989
|
let pendingEvents = false;
|
|
6573
6990
|
const beginGate = () => {
|
|
6574
6991
|
if (gatePending) return;
|
|
6575
|
-
s.discoveryDone = new Promise((
|
|
6576
|
-
gateResolver =
|
|
6992
|
+
s.discoveryDone = new Promise((resolve13) => {
|
|
6993
|
+
gateResolver = resolve13;
|
|
6577
6994
|
});
|
|
6578
6995
|
gatePending = true;
|
|
6579
6996
|
};
|
|
6580
6997
|
const resolveGate = () => {
|
|
6581
6998
|
if (!gatePending) return;
|
|
6582
6999
|
if (inProgress || queued || pendingEvents) {
|
|
6583
|
-
|
|
7000
|
+
debug12?.(
|
|
6584
7001
|
"hmr: resolveGate deferred \u2014 work in flight (inProgress=%s queued=%s pendingEvents=%s)",
|
|
6585
7002
|
inProgress,
|
|
6586
7003
|
queued,
|
|
@@ -6589,7 +7006,7 @@ function createDiscoveryGate(s, debug11) {
|
|
|
6589
7006
|
return;
|
|
6590
7007
|
}
|
|
6591
7008
|
gatePending = false;
|
|
6592
|
-
|
|
7009
|
+
debug12?.("hmr: discoveryDone resolved");
|
|
6593
7010
|
gateResolver();
|
|
6594
7011
|
};
|
|
6595
7012
|
const noteRouteEvent = () => {
|
|
@@ -6599,7 +7016,7 @@ function createDiscoveryGate(s, debug11) {
|
|
|
6599
7016
|
const runRefreshCycle = async (work) => {
|
|
6600
7017
|
if (inProgress) {
|
|
6601
7018
|
queued = true;
|
|
6602
|
-
|
|
7019
|
+
debug12?.("hmr: rediscovery in flight \u2014 queued for a follow-up cycle");
|
|
6603
7020
|
return;
|
|
6604
7021
|
}
|
|
6605
7022
|
pendingEvents = false;
|
|
@@ -6610,16 +7027,16 @@ function createDiscoveryGate(s, debug11) {
|
|
|
6610
7027
|
inProgress = false;
|
|
6611
7028
|
if (queued) {
|
|
6612
7029
|
queued = false;
|
|
6613
|
-
|
|
7030
|
+
debug12?.("hmr: consuming queued rediscovery");
|
|
6614
7031
|
runRefreshCycle(work).catch((err) => {
|
|
6615
|
-
|
|
7032
|
+
debug12?.(
|
|
6616
7033
|
"hmr: queued cycle rejected \u2014 releasing gate (%s)",
|
|
6617
7034
|
err instanceof Error ? err.message : String(err)
|
|
6618
7035
|
);
|
|
6619
7036
|
resolveGate();
|
|
6620
7037
|
});
|
|
6621
7038
|
} else if (pendingEvents) {
|
|
6622
|
-
|
|
7039
|
+
debug12?.(
|
|
6623
7040
|
"hmr: holding gate for pending events (debounce not yet fired)"
|
|
6624
7041
|
);
|
|
6625
7042
|
} else {
|
|
@@ -6665,15 +7082,15 @@ function selectForwardableResolvePlugins(plugins) {
|
|
|
6665
7082
|
}
|
|
6666
7083
|
function pickForwardedRunnerConfig(config) {
|
|
6667
7084
|
const r = config.resolve ?? {};
|
|
6668
|
-
const
|
|
6669
|
-
if (r.alias !== void 0)
|
|
6670
|
-
if (r.dedupe !== void 0)
|
|
6671
|
-
if (r.conditions !== void 0)
|
|
6672
|
-
if (r.mainFields !== void 0)
|
|
6673
|
-
if (r.extensions !== void 0)
|
|
7085
|
+
const resolve13 = {};
|
|
7086
|
+
if (r.alias !== void 0) resolve13.alias = r.alias;
|
|
7087
|
+
if (r.dedupe !== void 0) resolve13.dedupe = r.dedupe;
|
|
7088
|
+
if (r.conditions !== void 0) resolve13.conditions = r.conditions;
|
|
7089
|
+
if (r.mainFields !== void 0) resolve13.mainFields = r.mainFields;
|
|
7090
|
+
if (r.extensions !== void 0) resolve13.extensions = r.extensions;
|
|
6674
7091
|
if (r.preserveSymlinks !== void 0)
|
|
6675
|
-
|
|
6676
|
-
if (r.tsconfigPaths !== void 0)
|
|
7092
|
+
resolve13.preserveSymlinks = r.preserveSymlinks;
|
|
7093
|
+
if (r.tsconfigPaths !== void 0) resolve13.tsconfigPaths = r.tsconfigPaths;
|
|
6677
7094
|
const userOxc = config.oxc;
|
|
6678
7095
|
const userJsx = userOxc && typeof userOxc === "object" && typeof userOxc.jsx === "object" && userOxc.jsx !== null ? userOxc.jsx : {};
|
|
6679
7096
|
const oxc = userOxc && typeof userOxc === "object" ? {
|
|
@@ -6681,13 +7098,14 @@ function pickForwardedRunnerConfig(config) {
|
|
|
6681
7098
|
jsx: { ...userJsx, runtime: "automatic", importSource: "react" }
|
|
6682
7099
|
} : { jsx: { runtime: "automatic", importSource: "react" } };
|
|
6683
7100
|
return {
|
|
6684
|
-
resolve:
|
|
7101
|
+
resolve: resolve13,
|
|
6685
7102
|
define: config.define,
|
|
6686
7103
|
oxc
|
|
6687
7104
|
};
|
|
6688
7105
|
}
|
|
6689
7106
|
|
|
6690
7107
|
// src/vite/router-discovery.ts
|
|
7108
|
+
init_debug();
|
|
6691
7109
|
var debugDiscovery = createRangoDebugger(NS.discovery);
|
|
6692
7110
|
var debugRoutes = createRangoDebugger(NS.routes);
|
|
6693
7111
|
var debugBuild = createRangoDebugger(NS.build);
|
|
@@ -6706,6 +7124,7 @@ function ensureCloudflareProtocolLoaderRegistered() {
|
|
|
6706
7124
|
);
|
|
6707
7125
|
}
|
|
6708
7126
|
}
|
|
7127
|
+
var injectedShellNotReadyPaths = /* @__PURE__ */ new Set();
|
|
6709
7128
|
async function createTempRscServer(state, options = {}) {
|
|
6710
7129
|
ensureCloudflareProtocolLoaderRegistered();
|
|
6711
7130
|
const { default: rsc } = await import("@vitejs/plugin-rsc");
|
|
@@ -6737,6 +7156,20 @@ async function createTempRscServer(state, options = {}) {
|
|
|
6737
7156
|
// hashClientRefs only in build mode — production bundles need hashed refs
|
|
6738
7157
|
...options.forceBuild ? [hashClientRefs(state.projectRoot)] : [],
|
|
6739
7158
|
createVersionPlugin(),
|
|
7159
|
+
// Before the stub plugin, so "virtual:entry-ssr" resolves to the real
|
|
7160
|
+
// SSR entry when the shell endpoint needs it (see the option doc).
|
|
7161
|
+
...options.realSsrEntry ? [
|
|
7162
|
+
{
|
|
7163
|
+
name: "@rangojs/router:temp-real-ssr-entry",
|
|
7164
|
+
enforce: "pre",
|
|
7165
|
+
resolveId(id) {
|
|
7166
|
+
return id === "virtual:entry-ssr" ? "\0rango-temp-real-ssr-entry" : null;
|
|
7167
|
+
},
|
|
7168
|
+
load(id) {
|
|
7169
|
+
return id === "\0rango-temp-real-ssr-entry" ? getVirtualEntrySSR(state.opts?.headScripts) : null;
|
|
7170
|
+
}
|
|
7171
|
+
}
|
|
7172
|
+
] : [],
|
|
6740
7173
|
createVirtualStubPlugin(),
|
|
6741
7174
|
createCloudflareProtocolStubPlugin(),
|
|
6742
7175
|
// Dev prerender must use dev-mode IDs (path-based) to match the workerd
|
|
@@ -6760,7 +7193,7 @@ async function resolveBuildEnv(option, factoryCtx) {
|
|
|
6760
7193
|
}
|
|
6761
7194
|
try {
|
|
6762
7195
|
const userRequire = createRequire3(
|
|
6763
|
-
|
|
7196
|
+
resolve11(factoryCtx.root, "package.json")
|
|
6764
7197
|
);
|
|
6765
7198
|
const wranglerPath = userRequire.resolve("wrangler");
|
|
6766
7199
|
const { getPlatformProxy } = await import(pathToFileURL2(wranglerPath).href);
|
|
@@ -6797,6 +7230,12 @@ async function acquireBuildEnv(s, command, mode) {
|
|
|
6797
7230
|
globalThis[BUILD_ENV_GLOBAL_KEY] = result.env;
|
|
6798
7231
|
return true;
|
|
6799
7232
|
}
|
|
7233
|
+
function resetPrerenderCollection(s) {
|
|
7234
|
+
s.prerenderManifestEntries = null;
|
|
7235
|
+
s.staticManifestEntries = null;
|
|
7236
|
+
s.shellCandidates = null;
|
|
7237
|
+
s.prerenderPayloadValues = null;
|
|
7238
|
+
}
|
|
6800
7239
|
async function releaseBuildEnv(s) {
|
|
6801
7240
|
if (s.buildEnvDispose) {
|
|
6802
7241
|
try {
|
|
@@ -6859,18 +7298,57 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6859
7298
|
if (s.isBuildMode) return;
|
|
6860
7299
|
if (globalThis.__rscRouterDiscoveryActive) return;
|
|
6861
7300
|
s.devServer = server;
|
|
7301
|
+
let workerReadyEpoch;
|
|
7302
|
+
const publishDevDiscoveryReady = (epoch) => {
|
|
7303
|
+
if (epoch <= (workerReadyEpoch ?? -1)) return;
|
|
7304
|
+
workerReadyEpoch = epoch;
|
|
7305
|
+
server.environments?.client?.hot?.send({
|
|
7306
|
+
type: "custom",
|
|
7307
|
+
event: DEV_DISCOVERY_READY_EVENT,
|
|
7308
|
+
data: { epoch }
|
|
7309
|
+
});
|
|
7310
|
+
debugDiscovery?.("hmr: workerd ready at epoch %d", epoch);
|
|
7311
|
+
};
|
|
7312
|
+
if (opts?.preset === "cloudflare") {
|
|
7313
|
+
const registeredClientHotChannels = /* @__PURE__ */ new Set();
|
|
7314
|
+
const registerDevDiscoveryHotChannels = () => {
|
|
7315
|
+
const clientHot = server.environments?.client?.hot;
|
|
7316
|
+
if (clientHot && !registeredClientHotChannels.has(clientHot)) {
|
|
7317
|
+
registeredClientHotChannels.add(clientHot);
|
|
7318
|
+
clientHot.on(
|
|
7319
|
+
DEV_DISCOVERY_QUERY_EVENT,
|
|
7320
|
+
(_payload, client) => {
|
|
7321
|
+
if (workerReadyEpoch === void 0) return;
|
|
7322
|
+
client.send(DEV_DISCOVERY_READY_EVENT, {
|
|
7323
|
+
epoch: workerReadyEpoch
|
|
7324
|
+
});
|
|
7325
|
+
}
|
|
7326
|
+
);
|
|
7327
|
+
}
|
|
7328
|
+
debugDiscovery?.(
|
|
7329
|
+
"hmr: dev discovery browser channel registered (client=%s)",
|
|
7330
|
+
!!clientHot
|
|
7331
|
+
);
|
|
7332
|
+
};
|
|
7333
|
+
registerDevDiscoveryHotChannels();
|
|
7334
|
+
if (server.httpServer && !server.httpServer.listening) {
|
|
7335
|
+
server.httpServer.once("listening", registerDevDiscoveryHotChannels);
|
|
7336
|
+
}
|
|
7337
|
+
}
|
|
6862
7338
|
server.middlewares.use(internalDebugNoCacheMiddleware());
|
|
6863
7339
|
let resolveDiscovery;
|
|
6864
|
-
const discoveryPromise = new Promise((
|
|
6865
|
-
resolveDiscovery =
|
|
7340
|
+
const discoveryPromise = new Promise((resolve13) => {
|
|
7341
|
+
resolveDiscovery = resolve13;
|
|
6866
7342
|
});
|
|
6867
7343
|
const gate = createDiscoveryGate(s, debugDiscovery);
|
|
6868
7344
|
const beginDiscoveryGate = gate.beginGate;
|
|
6869
7345
|
const resolveDiscoveryGate = gate.resolveGate;
|
|
6870
7346
|
const getDevServerOrigin = () => server.resolvedUrls?.local?.[0]?.replace(/\/$/, "") || `http://localhost:${server.config.server.port || 5173}`;
|
|
7347
|
+
let devServerClosed = false;
|
|
6871
7348
|
let prerenderTempServer = null;
|
|
6872
7349
|
let prerenderNodeRegistry = null;
|
|
6873
7350
|
server.httpServer?.on("close", () => {
|
|
7351
|
+
devServerClosed = true;
|
|
6874
7352
|
if (prerenderTempServer) {
|
|
6875
7353
|
prerenderTempServer.close().catch(() => {
|
|
6876
7354
|
});
|
|
@@ -6918,14 +7396,14 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6918
7396
|
debugDiscovery?.(
|
|
6919
7397
|
"getOrCreateTempServer: cached temp runner reused"
|
|
6920
7398
|
);
|
|
6921
|
-
return existingEnv;
|
|
7399
|
+
return { env: existingEnv, error: null };
|
|
6922
7400
|
}
|
|
6923
7401
|
debugDiscovery?.(
|
|
6924
7402
|
"getOrCreateTempServer: server alive but registry missing \u2014 re-importing"
|
|
6925
7403
|
);
|
|
6926
7404
|
try {
|
|
6927
7405
|
await importEntryAndRegistry(existingEnv);
|
|
6928
|
-
return existingEnv;
|
|
7406
|
+
return { env: existingEnv, error: null };
|
|
6929
7407
|
} catch (err) {
|
|
6930
7408
|
debugDiscovery?.(
|
|
6931
7409
|
"getOrCreateTempServer: reuse import failed (%s) \u2014 closing orphan and creating fresh",
|
|
@@ -6950,19 +7428,25 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6950
7428
|
"getOrCreateTempServer: creating new temp server, entry=%s",
|
|
6951
7429
|
s.resolvedEntryPath ?? "(unset)"
|
|
6952
7430
|
);
|
|
7431
|
+
let createError = null;
|
|
6953
7432
|
try {
|
|
6954
7433
|
prerenderTempServer = await createTempRscServer(s, {
|
|
6955
|
-
cacheDir: "node_modules/.vite_prerender"
|
|
7434
|
+
cacheDir: "node_modules/.vite_prerender",
|
|
7435
|
+
// The dev /__rsc_shell endpoint drives captureShellHTML in this
|
|
7436
|
+
// server's SSR realm; the entry is only imported when a shell
|
|
7437
|
+
// capture runs, so discovery cost is unchanged.
|
|
7438
|
+
realSsrEntry: true
|
|
6956
7439
|
});
|
|
6957
7440
|
const tempRscEnv = prerenderTempServer.environments?.rsc;
|
|
6958
7441
|
if (tempRscEnv?.runner) {
|
|
6959
7442
|
await importEntryAndRegistry(tempRscEnv);
|
|
6960
|
-
return tempRscEnv;
|
|
7443
|
+
return { env: tempRscEnv, error: null };
|
|
6961
7444
|
}
|
|
6962
7445
|
debugDiscovery?.(
|
|
6963
7446
|
"getOrCreateTempServer: tempRscEnv.runner unavailable"
|
|
6964
7447
|
);
|
|
6965
7448
|
} catch (err) {
|
|
7449
|
+
createError = err;
|
|
6966
7450
|
debugDiscovery?.(
|
|
6967
7451
|
"getOrCreateTempServer: FAILED message=%s",
|
|
6968
7452
|
err.message
|
|
@@ -6973,7 +7457,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6973
7457
|
});
|
|
6974
7458
|
prerenderTempServer = null;
|
|
6975
7459
|
prerenderNodeRegistry = null;
|
|
6976
|
-
return null;
|
|
7460
|
+
return { env: null, error: createError };
|
|
6977
7461
|
}
|
|
6978
7462
|
async function clearTempRegistries(tempRscEnv) {
|
|
6979
7463
|
try {
|
|
@@ -6997,7 +7481,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6997
7481
|
}
|
|
6998
7482
|
}
|
|
6999
7483
|
async function refreshTempRscEnv() {
|
|
7000
|
-
|
|
7484
|
+
const tempRscEnv = (await getOrCreateTempServer()).env;
|
|
7001
7485
|
if (!tempRscEnv) return null;
|
|
7002
7486
|
const envGraph = tempRscEnv.moduleGraph;
|
|
7003
7487
|
const serverGraph = prerenderTempServer?.moduleGraph;
|
|
@@ -7012,7 +7496,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7012
7496
|
prerenderTempServer = null;
|
|
7013
7497
|
prerenderNodeRegistry = null;
|
|
7014
7498
|
}
|
|
7015
|
-
return await getOrCreateTempServer();
|
|
7499
|
+
return (await getOrCreateTempServer()).env;
|
|
7016
7500
|
}
|
|
7017
7501
|
debugDiscovery?.(
|
|
7018
7502
|
"refreshTempRscEnv: invalidating module graph (%s)",
|
|
@@ -7050,11 +7534,11 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7050
7534
|
"acquireBuildEnv",
|
|
7051
7535
|
() => acquireBuildEnv(s, viteCommand, viteMode)
|
|
7052
7536
|
);
|
|
7053
|
-
tempRscEnv = await timed(
|
|
7537
|
+
tempRscEnv = (await timed(
|
|
7054
7538
|
debugDiscovery,
|
|
7055
7539
|
"getOrCreateTempServer",
|
|
7056
7540
|
() => getOrCreateTempServer()
|
|
7057
|
-
);
|
|
7541
|
+
)).env;
|
|
7058
7542
|
if (tempRscEnv) {
|
|
7059
7543
|
optimizerHashBefore2 = tempRscEnv.depsOptimizer?.metadata?.browserHash;
|
|
7060
7544
|
await timed(
|
|
@@ -7140,12 +7624,6 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7140
7624
|
if (s.mergedRouteManifest && serverMod.setCachedManifest) {
|
|
7141
7625
|
serverMod.setCachedManifest(s.mergedRouteManifest);
|
|
7142
7626
|
}
|
|
7143
|
-
if (s.mergedPrecomputedEntries && s.mergedPrecomputedEntries.length > 0 && serverMod.setPrecomputedEntries) {
|
|
7144
|
-
serverMod.setPrecomputedEntries(s.mergedPrecomputedEntries);
|
|
7145
|
-
}
|
|
7146
|
-
if (s.mergedRouteTrie && serverMod.setRouteTrie) {
|
|
7147
|
-
serverMod.setRouteTrie(s.mergedRouteTrie);
|
|
7148
|
-
}
|
|
7149
7627
|
const perRouterSetters = [
|
|
7150
7628
|
[s.perRouterManifestDataMap, "setRouterManifest"],
|
|
7151
7629
|
[s.perRouterTrieMap, "setRouterTrie"],
|
|
@@ -7199,7 +7677,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7199
7677
|
registry = mainRegistry;
|
|
7200
7678
|
}
|
|
7201
7679
|
if (!registry) {
|
|
7202
|
-
const tempRscEnv = await getOrCreateTempServer();
|
|
7680
|
+
const tempRscEnv = (await getOrCreateTempServer()).env;
|
|
7203
7681
|
if (tempRscEnv) {
|
|
7204
7682
|
try {
|
|
7205
7683
|
await importEntryAndRegistry(tempRscEnv);
|
|
@@ -7284,6 +7762,194 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7284
7762
|
res.end("No prerender match");
|
|
7285
7763
|
logResult(404, "no match");
|
|
7286
7764
|
});
|
|
7765
|
+
server.middlewares.use("/__rsc_shell", async (req, res) => {
|
|
7766
|
+
await s.discoveryDone;
|
|
7767
|
+
const url = new URL(req.url ?? "", "http://localhost");
|
|
7768
|
+
const pathname = url.searchParams.get("pathname");
|
|
7769
|
+
const routeName = url.searchParams.get("routeName");
|
|
7770
|
+
const version = url.searchParams.get("version");
|
|
7771
|
+
const ttlRaw = url.searchParams.get("ttl");
|
|
7772
|
+
if (!pathname || !routeName || !version || !ttlRaw) {
|
|
7773
|
+
res.statusCode = 400;
|
|
7774
|
+
res.end("Missing pathname/routeName/version/ttl");
|
|
7775
|
+
return;
|
|
7776
|
+
}
|
|
7777
|
+
const sendNotReady = (detail) => {
|
|
7778
|
+
res.statusCode = 503;
|
|
7779
|
+
res.setHeader("x-rango-shell-dev", "NOT-READY");
|
|
7780
|
+
res.end(detail);
|
|
7781
|
+
};
|
|
7782
|
+
const isReoptimizing = (err) => err?.code === "ERR_OUTDATED_OPTIMIZED_DEP" || /Outdated Optimize Dep|optimized dependency|new dependencies optimized/i.test(
|
|
7783
|
+
String(err?.message ?? "")
|
|
7784
|
+
);
|
|
7785
|
+
const handledAsReoptimizing = (err) => {
|
|
7786
|
+
if (!isReoptimizing(err)) return false;
|
|
7787
|
+
sendNotReady(`Shell capture re-optimizing: ${err.message}`);
|
|
7788
|
+
return true;
|
|
7789
|
+
};
|
|
7790
|
+
const handleShellImportError = (err) => {
|
|
7791
|
+
if (handledAsReoptimizing(err)) return;
|
|
7792
|
+
res.statusCode = 500;
|
|
7793
|
+
res.end(`Shell capture module refresh failed: ${err.message}`);
|
|
7794
|
+
};
|
|
7795
|
+
if (process.env.RANGO_E2E_INJECT_SHELL_NOTREADY === "1" && !injectedShellNotReadyPaths.has(pathname)) {
|
|
7796
|
+
injectedShellNotReadyPaths.add(pathname);
|
|
7797
|
+
const injected = Object.assign(
|
|
7798
|
+
new Error("Outdated Optimize Dep (injected boot-race)"),
|
|
7799
|
+
{ code: "ERR_OUTDATED_OPTIMIZED_DEP" }
|
|
7800
|
+
);
|
|
7801
|
+
if (handledAsReoptimizing(injected)) return;
|
|
7802
|
+
}
|
|
7803
|
+
const ttl = Number(ttlRaw);
|
|
7804
|
+
const swrRaw = url.searchParams.get("swr");
|
|
7805
|
+
const swr = swrRaw === null ? void 0 : Number(swrRaw);
|
|
7806
|
+
const tagsRaw = url.searchParams.get("tags");
|
|
7807
|
+
const tags = tagsRaw ? tagsRaw.split(",") : void 0;
|
|
7808
|
+
const maxSnapshotBytesRaw = url.searchParams.get("maxSnapshotBytes");
|
|
7809
|
+
const maxSnapshotBytes = maxSnapshotBytesRaw === null ? void 0 : Number(maxSnapshotBytesRaw);
|
|
7810
|
+
const captureTimeout = normalizeCaptureTimeout(
|
|
7811
|
+
Number(url.searchParams.get("captureTimeout"))
|
|
7812
|
+
);
|
|
7813
|
+
const rscEnvMain = server.environments?.rsc;
|
|
7814
|
+
let rscRealm = null;
|
|
7815
|
+
let ssrRealm = null;
|
|
7816
|
+
let ssrEntryId;
|
|
7817
|
+
let tempServerError = null;
|
|
7818
|
+
if (rscEnvMain?.runner && s.resolvedEntryPath) {
|
|
7819
|
+
try {
|
|
7820
|
+
await rscEnvMain.runner.import(s.resolvedEntryPath);
|
|
7821
|
+
} catch (err) {
|
|
7822
|
+
handleShellImportError(err);
|
|
7823
|
+
return;
|
|
7824
|
+
}
|
|
7825
|
+
rscRealm = rscEnvMain;
|
|
7826
|
+
ssrRealm = server.environments?.ssr;
|
|
7827
|
+
ssrEntryId = server.environments?.ssr?.config?.build?.rollupOptions?.input?.index ?? VIRTUAL_IDS.ssr;
|
|
7828
|
+
} else {
|
|
7829
|
+
const tempResult = await getOrCreateTempServer();
|
|
7830
|
+
if (tempResult.env) {
|
|
7831
|
+
try {
|
|
7832
|
+
await importEntryAndRegistry(tempResult.env);
|
|
7833
|
+
} catch (err) {
|
|
7834
|
+
handleShellImportError(err);
|
|
7835
|
+
return;
|
|
7836
|
+
}
|
|
7837
|
+
} else {
|
|
7838
|
+
tempServerError = tempResult.error;
|
|
7839
|
+
}
|
|
7840
|
+
rscRealm = tempResult.env;
|
|
7841
|
+
ssrRealm = prerenderTempServer?.environments?.ssr;
|
|
7842
|
+
ssrEntryId = "virtual:entry-ssr";
|
|
7843
|
+
}
|
|
7844
|
+
if (!rscRealm?.runner || !ssrRealm?.runner) {
|
|
7845
|
+
if (tempServerError && handledAsReoptimizing(tempServerError)) return;
|
|
7846
|
+
res.statusCode = 503;
|
|
7847
|
+
res.end("Shell capture runners not available");
|
|
7848
|
+
return;
|
|
7849
|
+
}
|
|
7850
|
+
let registry = null;
|
|
7851
|
+
let registryError = null;
|
|
7852
|
+
try {
|
|
7853
|
+
const serverMod = await rscRealm.runner.import(
|
|
7854
|
+
"@rangojs/router/server"
|
|
7855
|
+
);
|
|
7856
|
+
registry = serverMod.RouterRegistry ?? null;
|
|
7857
|
+
} catch (err) {
|
|
7858
|
+
registryError = err;
|
|
7859
|
+
registry = null;
|
|
7860
|
+
}
|
|
7861
|
+
if (!registry || registry.size === 0) {
|
|
7862
|
+
if (registryError && handledAsReoptimizing(registryError)) return;
|
|
7863
|
+
res.statusCode = 503;
|
|
7864
|
+
res.end("Shell capture registry not available");
|
|
7865
|
+
return;
|
|
7866
|
+
}
|
|
7867
|
+
const cacheKey = `shell|${pathname}|r=${routeName}|t=${ttl}|s=${swr ?? ""}|g=${(tags ?? []).join("+")}|c=${captureTimeout ?? ""}|v=${version}`;
|
|
7868
|
+
for (const [, routerInstance] of registry) {
|
|
7869
|
+
if (typeof routerInstance.match !== "function") continue;
|
|
7870
|
+
const cached = devPrerenderCache.get(routerInstance, cacheKey);
|
|
7871
|
+
if (cached !== void 0) {
|
|
7872
|
+
res.setHeader("content-type", "application/json");
|
|
7873
|
+
res.setHeader("x-rango-shell-dev", "HIT");
|
|
7874
|
+
res.end(cached);
|
|
7875
|
+
return;
|
|
7876
|
+
}
|
|
7877
|
+
}
|
|
7878
|
+
if (s.devServerOrigin) {
|
|
7879
|
+
try {
|
|
7880
|
+
const probe = await fetch(
|
|
7881
|
+
`${s.devServerOrigin}/__rsc_prerender?pathname=${encodeURIComponent(pathname)}&routeName=${encodeURIComponent(routeName)}`,
|
|
7882
|
+
{ signal: AbortSignal.timeout(DEV_SHELL_PROBE_TIMEOUT_MS) }
|
|
7883
|
+
);
|
|
7884
|
+
if (!probe.ok) {
|
|
7885
|
+
res.statusCode = 404;
|
|
7886
|
+
res.end("Route is not prerenderable");
|
|
7887
|
+
return;
|
|
7888
|
+
}
|
|
7889
|
+
} catch {
|
|
7890
|
+
res.statusCode = 404;
|
|
7891
|
+
res.end("Prerender pre-flight failed");
|
|
7892
|
+
return;
|
|
7893
|
+
}
|
|
7894
|
+
}
|
|
7895
|
+
for (const [, routerInstance] of registry) {
|
|
7896
|
+
if (typeof routerInstance.match !== "function") continue;
|
|
7897
|
+
try {
|
|
7898
|
+
const ssrModule = await ssrRealm.runner.import(ssrEntryId);
|
|
7899
|
+
if (typeof ssrModule?.captureShellHTML !== "function") {
|
|
7900
|
+
res.statusCode = 404;
|
|
7901
|
+
res.end("SSR entry has no captureShellHTML");
|
|
7902
|
+
return;
|
|
7903
|
+
}
|
|
7904
|
+
const captureMod = await rscRealm.runner.import(
|
|
7905
|
+
"@rangojs/router/build/shell-capture"
|
|
7906
|
+
);
|
|
7907
|
+
const result = await captureMod.captureShellForBuild({
|
|
7908
|
+
router: routerInstance,
|
|
7909
|
+
urlPath: pathname,
|
|
7910
|
+
routeName,
|
|
7911
|
+
key: `${pathname}:shell`,
|
|
7912
|
+
ttl,
|
|
7913
|
+
swr,
|
|
7914
|
+
tags,
|
|
7915
|
+
maxSnapshotBytes,
|
|
7916
|
+
captureTimeout,
|
|
7917
|
+
buildEnv: s.resolvedBuildEnv,
|
|
7918
|
+
buildVersion: version,
|
|
7919
|
+
captureShellHTML: ssrModule.captureShellHTML,
|
|
7920
|
+
debug: !!debugDiscovery
|
|
7921
|
+
});
|
|
7922
|
+
if (result.outcome === "route-mismatch") continue;
|
|
7923
|
+
if (result.outcome !== "stored" || !result.entry) {
|
|
7924
|
+
res.statusCode = 404;
|
|
7925
|
+
res.end(`Shell capture ${result.outcome}`);
|
|
7926
|
+
return;
|
|
7927
|
+
}
|
|
7928
|
+
const body = JSON.stringify({
|
|
7929
|
+
entry: result.entry,
|
|
7930
|
+
ttl,
|
|
7931
|
+
swr,
|
|
7932
|
+
tags: result.tags,
|
|
7933
|
+
routeName
|
|
7934
|
+
});
|
|
7935
|
+
devPrerenderCache.set(routerInstance, cacheKey, body);
|
|
7936
|
+
res.setHeader("content-type", "application/json");
|
|
7937
|
+
res.setHeader("x-rango-shell-dev", "MISS");
|
|
7938
|
+
res.end(body);
|
|
7939
|
+
return;
|
|
7940
|
+
} catch (err) {
|
|
7941
|
+
if (handledAsReoptimizing(err)) return;
|
|
7942
|
+
console.warn(
|
|
7943
|
+
`[rango] Dev shell capture error for ${pathname} (route keeps runtime capture): ${err.message}`
|
|
7944
|
+
);
|
|
7945
|
+
res.statusCode = 404;
|
|
7946
|
+
res.end(`Shell capture error: ${err.message}`);
|
|
7947
|
+
return;
|
|
7948
|
+
}
|
|
7949
|
+
}
|
|
7950
|
+
res.statusCode = 404;
|
|
7951
|
+
res.end("No router matched");
|
|
7952
|
+
});
|
|
7287
7953
|
if (opts?.staticRouteTypesGeneration !== false) {
|
|
7288
7954
|
const isGeneratedRouteFile = (filePath) => filePath.endsWith(".gen.ts") && (filePath.includes("named-routes.gen.ts") || filePath.includes("urls.gen.ts"));
|
|
7289
7955
|
const regenerateGeneratedRouteFiles = () => {
|
|
@@ -7293,6 +7959,21 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7293
7959
|
writeCombinedRouteTypesWithTracking(s);
|
|
7294
7960
|
}
|
|
7295
7961
|
};
|
|
7962
|
+
const routeShapeSignature = () => JSON.stringify(
|
|
7963
|
+
s.perRouterManifests.map(
|
|
7964
|
+
({
|
|
7965
|
+
id,
|
|
7966
|
+
routeManifest,
|
|
7967
|
+
routeTrailingSlash,
|
|
7968
|
+
routeSearchSchemas
|
|
7969
|
+
}) => ({
|
|
7970
|
+
id,
|
|
7971
|
+
routeManifest,
|
|
7972
|
+
routeTrailingSlash,
|
|
7973
|
+
routeSearchSchemas
|
|
7974
|
+
})
|
|
7975
|
+
)
|
|
7976
|
+
);
|
|
7296
7977
|
const maybeHandleGeneratedRouteFileMutation = (filePath) => {
|
|
7297
7978
|
if (!isGeneratedRouteFile(filePath)) return false;
|
|
7298
7979
|
if (consumeSelfGenWrite(s, filePath)) return true;
|
|
@@ -7306,6 +7987,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7306
7987
|
const rscEnv = server.environments?.rsc;
|
|
7307
7988
|
const hasMainRunner = !!rscEnv?.runner;
|
|
7308
7989
|
if (!hasMainRunner && s.perRouterManifests.length === 0) return;
|
|
7990
|
+
let previousRouteShape = routeShapeSignature();
|
|
7309
7991
|
await gate.runRefreshCycle(async () => {
|
|
7310
7992
|
const hmrStart = performance.now();
|
|
7311
7993
|
try {
|
|
@@ -7354,7 +8036,19 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7354
8036
|
);
|
|
7355
8037
|
s.lastDiscoveryError = null;
|
|
7356
8038
|
}
|
|
7357
|
-
if (rscEnv && !rscEnv.runner)
|
|
8039
|
+
if (rscEnv && !rscEnv.runner) {
|
|
8040
|
+
const nextRouteShape = routeShapeSignature();
|
|
8041
|
+
let expectedEpoch;
|
|
8042
|
+
if (nextRouteShape !== previousRouteShape) {
|
|
8043
|
+
expectedEpoch = Math.max(
|
|
8044
|
+
Date.now(),
|
|
8045
|
+
(s.devDiscoveryEpoch ?? 0) + 1
|
|
8046
|
+
);
|
|
8047
|
+
s.devDiscoveryEpoch = expectedEpoch;
|
|
8048
|
+
}
|
|
8049
|
+
previousRouteShape = nextRouteShape;
|
|
8050
|
+
forceCloudflareWorkerReload(rscEnv, expectedEpoch);
|
|
8051
|
+
}
|
|
7358
8052
|
} catch (err) {
|
|
7359
8053
|
s.lastDiscoveryError = {
|
|
7360
8054
|
message: err?.message ?? String(err),
|
|
@@ -7375,10 +8069,10 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7375
8069
|
}
|
|
7376
8070
|
});
|
|
7377
8071
|
};
|
|
7378
|
-
const forceCloudflareWorkerReload = (rscEnv) => {
|
|
8072
|
+
const forceCloudflareWorkerReload = (rscEnv, expectedEpoch) => {
|
|
7379
8073
|
if (!rscEnv?.hot) return;
|
|
7380
|
-
|
|
7381
|
-
|
|
8074
|
+
const graph = rscEnv.moduleGraph;
|
|
8075
|
+
const reloadWorkerd = () => {
|
|
7382
8076
|
if (graph?.invalidateAll) {
|
|
7383
8077
|
graph.invalidateAll();
|
|
7384
8078
|
debugDiscovery?.("hmr: invalidated workerd rsc module graph");
|
|
@@ -7387,12 +8081,40 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7387
8081
|
debugDiscovery?.(
|
|
7388
8082
|
"hmr: forced workerd rsc env reload (full-reload)"
|
|
7389
8083
|
);
|
|
7390
|
-
}
|
|
8084
|
+
};
|
|
8085
|
+
reloadWorkerd();
|
|
8086
|
+
if (expectedEpoch === void 0) return;
|
|
8087
|
+
void (async () => {
|
|
8088
|
+
const deadline = Date.now() + 15e3;
|
|
8089
|
+
do {
|
|
8090
|
+
if (devServerClosed || expectedEpoch !== s.devDiscoveryEpoch) {
|
|
8091
|
+
return;
|
|
8092
|
+
}
|
|
8093
|
+
await new Promise((resolve13) => setTimeout(resolve13, 25));
|
|
8094
|
+
if (devServerClosed || expectedEpoch !== s.devDiscoveryEpoch) {
|
|
8095
|
+
return;
|
|
8096
|
+
}
|
|
8097
|
+
try {
|
|
8098
|
+
const response = await fetch(getDevServerOrigin() + "/", {
|
|
8099
|
+
cache: "no-store",
|
|
8100
|
+
headers: {
|
|
8101
|
+
[DEV_DISCOVERY_PROBE_HEADER]: String(expectedEpoch)
|
|
8102
|
+
},
|
|
8103
|
+
signal: AbortSignal.timeout(1e3)
|
|
8104
|
+
});
|
|
8105
|
+
if (!devServerClosed && expectedEpoch === s.devDiscoveryEpoch && response.headers.get(DEV_DISCOVERY_EPOCH_HEADER) === String(expectedEpoch)) {
|
|
8106
|
+
publishDevDiscoveryReady(expectedEpoch);
|
|
8107
|
+
return;
|
|
8108
|
+
}
|
|
8109
|
+
reloadWorkerd();
|
|
8110
|
+
} catch {
|
|
8111
|
+
}
|
|
8112
|
+
} while (Date.now() < deadline);
|
|
7391
8113
|
debugDiscovery?.(
|
|
7392
|
-
"hmr: workerd
|
|
7393
|
-
|
|
8114
|
+
"hmr: workerd readiness probe timed out at epoch %d",
|
|
8115
|
+
expectedEpoch
|
|
7394
8116
|
);
|
|
7395
|
-
}
|
|
8117
|
+
})();
|
|
7396
8118
|
};
|
|
7397
8119
|
const scheduleRouteRegeneration = () => {
|
|
7398
8120
|
clearTimeout(routeChangeTimer);
|
|
@@ -7453,7 +8175,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7453
8175
|
}
|
|
7454
8176
|
const inRecoveryMode = !!s.lastDiscoveryError;
|
|
7455
8177
|
try {
|
|
7456
|
-
const source =
|
|
8178
|
+
const source = readFileSync7(filePath, "utf-8");
|
|
7457
8179
|
const trimmed = source.trimStart();
|
|
7458
8180
|
const isUseClient = trimmed.startsWith('"use client"') || trimmed.startsWith("'use client'");
|
|
7459
8181
|
if (!inRecoveryMode && isUseClient) return;
|
|
@@ -7484,7 +8206,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7484
8206
|
if (hasCreateRouter) {
|
|
7485
8207
|
const nestedRouterConflict = findNestedRouterConflict([
|
|
7486
8208
|
...s.cachedRouterFiles ?? [],
|
|
7487
|
-
|
|
8209
|
+
resolve11(filePath)
|
|
7488
8210
|
]);
|
|
7489
8211
|
if (nestedRouterConflict) {
|
|
7490
8212
|
server.config.logger.error(
|
|
@@ -7534,8 +8256,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7534
8256
|
const buildStartTime = performance.now();
|
|
7535
8257
|
debugDiscovery?.("build: start (env=%s)", this.environment?.name ?? "?");
|
|
7536
8258
|
resetStagedBuildAssets(s.projectRoot);
|
|
7537
|
-
s
|
|
7538
|
-
s.staticManifestEntries = null;
|
|
8259
|
+
resetPrerenderCollection(s);
|
|
7539
8260
|
await timed(
|
|
7540
8261
|
debugDiscovery,
|
|
7541
8262
|
"build acquireBuildEnv",
|
|
@@ -7590,20 +8311,59 @@ ${details}`,
|
|
|
7590
8311
|
);
|
|
7591
8312
|
} finally {
|
|
7592
8313
|
delete globalThis.__rscRouterDiscoveryActive;
|
|
7593
|
-
if (tempServer) {
|
|
7594
|
-
|
|
7595
|
-
|
|
7596
|
-
|
|
7597
|
-
|
|
7598
|
-
|
|
8314
|
+
if (tempServer && s.shellCandidates?.length) {
|
|
8315
|
+
s.shellPhaseTempServer = tempServer;
|
|
8316
|
+
} else {
|
|
8317
|
+
if (tempServer) {
|
|
8318
|
+
await timed(
|
|
8319
|
+
debugDiscovery,
|
|
8320
|
+
"build tempServer.close",
|
|
8321
|
+
() => tempServer.close()
|
|
8322
|
+
);
|
|
8323
|
+
}
|
|
8324
|
+
await releaseBuildEnv(s);
|
|
7599
8325
|
}
|
|
7600
|
-
await releaseBuildEnv(s);
|
|
7601
8326
|
debugDiscovery?.(
|
|
7602
8327
|
"build discovery done (%sms)",
|
|
7603
8328
|
(performance.now() - buildStartTime).toFixed(1)
|
|
7604
8329
|
);
|
|
7605
8330
|
}
|
|
7606
8331
|
},
|
|
8332
|
+
// Post-build PPR shell capture (producer B, #699): runs after EVERY
|
|
8333
|
+
// environment bundle is written — the shell prelude embeds built client
|
|
8334
|
+
// asset URLs (bootstrap entry), which do not exist at buildStart. The
|
|
8335
|
+
// kept temp server and the buildEnv were deferred AS A PAIR in
|
|
8336
|
+
// buildStart's finally; this finally is the pair's success-path owner
|
|
8337
|
+
// (buildEnd below owns the aborted-build path) — the phase itself is a
|
|
8338
|
+
// pure producer and tears down only the globals it installs.
|
|
8339
|
+
buildApp: {
|
|
8340
|
+
order: "post",
|
|
8341
|
+
async handler(builder) {
|
|
8342
|
+
try {
|
|
8343
|
+
await runShellPrerenderPhase(s, builder);
|
|
8344
|
+
} finally {
|
|
8345
|
+
if (s.isBuildMode) {
|
|
8346
|
+
const tempServer = s.shellPhaseTempServer;
|
|
8347
|
+
s.shellPhaseTempServer = null;
|
|
8348
|
+
if (tempServer) await tempServer.close();
|
|
8349
|
+
await releaseBuildEnv(s);
|
|
8350
|
+
}
|
|
8351
|
+
}
|
|
8352
|
+
}
|
|
8353
|
+
},
|
|
8354
|
+
// An environment build failure aborts the builder before the buildApp
|
|
8355
|
+
// post hook — never leak the kept temp server (open handles hang the CLI)
|
|
8356
|
+
// or the deferred buildEnv (a live miniflare proxy).
|
|
8357
|
+
async buildEnd(error) {
|
|
8358
|
+
if (!error || !s.shellPhaseTempServer) return;
|
|
8359
|
+
const tempServer = s.shellPhaseTempServer;
|
|
8360
|
+
s.shellPhaseTempServer = null;
|
|
8361
|
+
try {
|
|
8362
|
+
await tempServer.close();
|
|
8363
|
+
} finally {
|
|
8364
|
+
await releaseBuildEnv(s);
|
|
8365
|
+
}
|
|
8366
|
+
},
|
|
7607
8367
|
// Suppress vite's HMR cascade for our own gen-file writes.
|
|
7608
8368
|
//
|
|
7609
8369
|
// After every cf HMR cycle, refreshTempRscEnv → writeRouteTypesFiles
|
|
@@ -7768,7 +8528,9 @@ ${details}`,
|
|
|
7768
8528
|
}
|
|
7769
8529
|
|
|
7770
8530
|
// src/vite/rango.ts
|
|
8531
|
+
init_debug();
|
|
7771
8532
|
var debugConfig = createRangoDebugger(NS.config);
|
|
8533
|
+
var SERVER_BUILD_TARGET = "esnext";
|
|
7772
8534
|
async function rango(options) {
|
|
7773
8535
|
const rangoStart = performance.now();
|
|
7774
8536
|
const resolvedOptions = options ?? { preset: "node" };
|
|
@@ -7893,7 +8655,11 @@ async function rango(options) {
|
|
|
7893
8655
|
}
|
|
7894
8656
|
}
|
|
7895
8657
|
});
|
|
7896
|
-
plugins.push(
|
|
8658
|
+
plugins.push(
|
|
8659
|
+
createVirtualEntriesPlugin(finalEntries, void 0, {
|
|
8660
|
+
headScripts: resolvedOptions.headScripts
|
|
8661
|
+
})
|
|
8662
|
+
);
|
|
7897
8663
|
plugins.push(performanceTracksPlugin());
|
|
7898
8664
|
plugins.push(
|
|
7899
8665
|
rsc({
|
|
@@ -7908,14 +8674,14 @@ async function rango(options) {
|
|
|
7908
8674
|
name: "@rangojs/router:auto-discover",
|
|
7909
8675
|
config(userConfig) {
|
|
7910
8676
|
if (routerRef.path) return;
|
|
7911
|
-
const root = userConfig.root ?
|
|
8677
|
+
const root = userConfig.root ? resolve12(process.cwd(), userConfig.root) : process.cwd();
|
|
7912
8678
|
const toRootRelative = (abs) => (abs.startsWith(root) ? "./" + abs.slice(root.length + 1) : abs).replaceAll("\\", "/");
|
|
7913
8679
|
const bulletList = (files) => files.map((f) => " - " + toRootRelative(f)).join("\n");
|
|
7914
8680
|
if (explicitHostRouter) {
|
|
7915
8681
|
routerRef.path = normalizeHostRouterEntry(
|
|
7916
8682
|
explicitHostRouter,
|
|
7917
8683
|
root,
|
|
7918
|
-
|
|
8684
|
+
existsSync9
|
|
7919
8685
|
);
|
|
7920
8686
|
routerRef.kind = "host";
|
|
7921
8687
|
return;
|
|
@@ -8012,6 +8778,9 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8012
8778
|
},
|
|
8013
8779
|
ssr: {
|
|
8014
8780
|
...vercelServerEnv ?? {},
|
|
8781
|
+
build: {
|
|
8782
|
+
target: SERVER_BUILD_TARGET
|
|
8783
|
+
},
|
|
8015
8784
|
optimizeDeps: {
|
|
8016
8785
|
entries: [VIRTUAL_IDS.ssr],
|
|
8017
8786
|
include: [
|
|
@@ -8031,6 +8800,9 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8031
8800
|
},
|
|
8032
8801
|
rsc: {
|
|
8033
8802
|
...vercelServerEnv ?? {},
|
|
8803
|
+
build: {
|
|
8804
|
+
target: SERVER_BUILD_TARGET
|
|
8805
|
+
},
|
|
8034
8806
|
optimizeDeps: {
|
|
8035
8807
|
entries: [VIRTUAL_IDS.rsc],
|
|
8036
8808
|
include: [
|
|
@@ -8073,7 +8845,11 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8073
8845
|
}
|
|
8074
8846
|
}
|
|
8075
8847
|
});
|
|
8076
|
-
plugins.push(
|
|
8848
|
+
plugins.push(
|
|
8849
|
+
createVirtualEntriesPlugin(finalEntries, routerRef, {
|
|
8850
|
+
headScripts: resolvedOptions.headScripts
|
|
8851
|
+
})
|
|
8852
|
+
);
|
|
8077
8853
|
plugins.push(performanceTracksPlugin());
|
|
8078
8854
|
plugins.push(
|
|
8079
8855
|
rsc({
|
|
@@ -8092,7 +8868,7 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8092
8868
|
if (!file.endsWith(".tsx") && !file.endsWith(".ts") && !file.endsWith(".jsx") && !file.endsWith(".js"))
|
|
8093
8869
|
return;
|
|
8094
8870
|
try {
|
|
8095
|
-
const source =
|
|
8871
|
+
const source = readFileSync8(file, "utf-8");
|
|
8096
8872
|
if (hasUseClientDirective(source)) {
|
|
8097
8873
|
return [];
|
|
8098
8874
|
}
|
|
@@ -8119,7 +8895,8 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8119
8895
|
preset,
|
|
8120
8896
|
prerenderOnError: options?.prerender?.onError,
|
|
8121
8897
|
discovery: options?.discovery,
|
|
8122
|
-
clientChunkCtx
|
|
8898
|
+
clientChunkCtx,
|
|
8899
|
+
headScripts: resolvedOptions.headScripts
|
|
8123
8900
|
})
|
|
8124
8901
|
);
|
|
8125
8902
|
if (preset === "vercel") {
|
|
@@ -8143,7 +8920,7 @@ function poke() {
|
|
|
8143
8920
|
apply: "serve",
|
|
8144
8921
|
configureServer(server) {
|
|
8145
8922
|
const stdin = process.stdin;
|
|
8146
|
-
const
|
|
8923
|
+
const debug12 = process.env.RANGO_POKE_DEBUG === "1";
|
|
8147
8924
|
const triggerReload = (source) => {
|
|
8148
8925
|
server.hot.send({ type: "full-reload", path: "*" });
|
|
8149
8926
|
server.config.logger.info(` browser reload (${source})`, {
|
|
@@ -8176,7 +8953,7 @@ function poke() {
|
|
|
8176
8953
|
lines.pop();
|
|
8177
8954
|
return lines;
|
|
8178
8955
|
};
|
|
8179
|
-
if (
|
|
8956
|
+
if (debug12) {
|
|
8180
8957
|
server.config.logger.info(
|
|
8181
8958
|
` poke debug enabled (isTTY=${stdin.isTTY ? "yes" : "no"}, isRaw=${stdin.isTTY ? stdin.isRaw ? "yes" : "no" : "n/a"})`,
|
|
8182
8959
|
{ timestamp: true }
|
|
@@ -8189,7 +8966,7 @@ function poke() {
|
|
|
8189
8966
|
);
|
|
8190
8967
|
}
|
|
8191
8968
|
const onData = (data) => {
|
|
8192
|
-
if (
|
|
8969
|
+
if (debug12) {
|
|
8193
8970
|
server.config.logger.info(` poke stdin ${formatChunk(data)}`, {
|
|
8194
8971
|
timestamp: true
|
|
8195
8972
|
});
|