@rangojs/router 0.0.0-experimental.tapabs2 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/rango.js +8 -40
- package/dist/types/__internal.d.ts +127 -0
- package/dist/types/bin/rango.d.ts +1 -0
- package/dist/types/browser/action-coordinator.d.ts +57 -0
- package/dist/types/browser/action-fence.d.ts +33 -0
- package/dist/types/browser/app-shell.d.ts +34 -0
- package/dist/types/browser/app-version.d.ts +6 -0
- package/dist/types/browser/connection-warmup.d.ts +31 -0
- package/dist/types/browser/cookie-name.d.ts +66 -0
- package/dist/types/browser/event-controller.d.ts +221 -0
- package/dist/types/browser/history-state.d.ts +26 -0
- package/dist/types/browser/index.d.ts +1 -0
- package/dist/types/browser/intercept-utils.d.ts +30 -0
- package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
- package/dist/types/browser/link-interceptor.d.ts +43 -0
- package/dist/types/browser/logging.d.ts +33 -0
- package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
- package/dist/types/browser/navigation-bridge.d.ts +27 -0
- package/dist/types/browser/navigation-client.d.ts +17 -0
- package/dist/types/browser/navigation-store-handle.d.ts +25 -0
- package/dist/types/browser/navigation-store.d.ts +95 -0
- package/dist/types/browser/navigation-transaction.d.ts +75 -0
- package/dist/types/browser/network-error-handler.d.ts +35 -0
- package/dist/types/browser/partial-update.d.ts +61 -0
- package/dist/types/browser/prefetch/cache.d.ts +183 -0
- package/dist/types/browser/prefetch/fetch.d.ts +52 -0
- package/dist/types/browser/prefetch/observer.d.ts +27 -0
- package/dist/types/browser/prefetch/policy.d.ts +13 -0
- package/dist/types/browser/prefetch/queue.d.ts +48 -0
- package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
- package/dist/types/browser/rango-state.d.ts +52 -0
- package/dist/types/browser/react/Link.d.ts +140 -0
- package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
- package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
- package/dist/types/browser/react/context.d.ts +54 -0
- package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
- package/dist/types/browser/react/index.d.ts +1 -0
- package/dist/types/browser/react/location-state-shared.d.ts +162 -0
- package/dist/types/browser/react/location-state.d.ts +29 -0
- package/dist/types/browser/react/mount-context.d.ts +23 -0
- package/dist/types/browser/react/nonce-context.d.ts +14 -0
- package/dist/types/browser/react/shallow-equal.d.ts +5 -0
- package/dist/types/browser/react/use-action.d.ts +61 -0
- package/dist/types/browser/react/use-handle.d.ts +21 -0
- package/dist/types/browser/react/use-href.d.ts +32 -0
- package/dist/types/browser/react/use-link-status.d.ts +36 -0
- package/dist/types/browser/react/use-mount.d.ts +24 -0
- package/dist/types/browser/react/use-navigation.d.ts +15 -0
- package/dist/types/browser/react/use-params.d.ts +21 -0
- package/dist/types/browser/react/use-pathname.d.ts +13 -0
- package/dist/types/browser/react/use-reverse.d.ts +40 -0
- package/dist/types/browser/react/use-router.d.ts +23 -0
- package/dist/types/browser/react/use-search-params.d.ts +19 -0
- package/dist/types/browser/react/use-segments.d.ts +29 -0
- package/dist/types/browser/response-adapter.d.ts +58 -0
- package/dist/types/browser/rsc-router.d.ts +141 -0
- package/dist/types/browser/scroll-restoration.d.ts +103 -0
- package/dist/types/browser/segment-reconciler.d.ts +74 -0
- package/dist/types/browser/segment-structure-assert.d.ts +16 -0
- package/dist/types/browser/server-action-bridge.d.ts +29 -0
- package/dist/types/browser/types.d.ts +530 -0
- package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
- package/dist/types/build/collect-fallback-refs.d.ts +5 -0
- package/dist/types/build/generate-manifest.d.ts +100 -0
- package/dist/types/build/generate-route-types.d.ts +8 -0
- package/dist/types/build/index.d.ts +21 -0
- package/dist/types/build/prefix-tree-utils.d.ts +56 -0
- package/dist/types/build/route-trie.d.ts +89 -0
- package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
- package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
- package/dist/types/build/route-types/codegen.d.ts +16 -0
- package/dist/types/build/route-types/include-resolution.d.ts +74 -0
- package/dist/types/build/route-types/param-extraction.d.ts +13 -0
- package/dist/types/build/route-types/per-module-writer.d.ts +18 -0
- package/dist/types/build/route-types/router-processing.d.ts +82 -0
- package/dist/types/build/route-types/scan-filter.d.ts +17 -0
- package/dist/types/build/route-types/source-scan.d.ts +13 -0
- package/dist/types/build/runtime-discovery.d.ts +24 -0
- package/dist/types/cache/background-task.d.ts +21 -0
- package/dist/types/cache/cache-error.d.ts +71 -0
- package/dist/types/cache/cache-key-utils.d.ts +35 -0
- package/dist/types/cache/cache-policy.d.ts +59 -0
- package/dist/types/cache/cache-runtime.d.ts +51 -0
- package/dist/types/cache/cache-scope.d.ts +134 -0
- package/dist/types/cache/cache-tag.d.ts +79 -0
- package/dist/types/cache/cf/cf-base64.d.ts +4 -0
- package/dist/types/cache/cf/cf-cache-constants.d.ts +105 -0
- package/dist/types/cache/cf/cf-cache-store.d.ts +588 -0
- package/dist/types/cache/cf/cf-cache-types.d.ts +363 -0
- package/dist/types/cache/cf/cf-kv-utils.d.ts +22 -0
- package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
- package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
- package/dist/types/cache/cf/index.d.ts +4 -0
- package/dist/types/cache/document-cache.d.ts +69 -0
- package/dist/types/cache/handle-capture.d.ts +23 -0
- package/dist/types/cache/handle-snapshot.d.ts +39 -0
- package/dist/types/cache/index.d.ts +7 -0
- package/dist/types/cache/memory-segment-store.d.ts +163 -0
- package/dist/types/cache/profile-registry.d.ts +40 -0
- package/dist/types/cache/read-through-swr.d.ts +60 -0
- package/dist/types/cache/segment-codec.d.ts +78 -0
- package/dist/types/cache/shell-snapshot.d.ts +173 -0
- package/dist/types/cache/tag-invalidation.d.ts +74 -0
- package/dist/types/cache/taint.d.ts +71 -0
- package/dist/types/cache/types.d.ts +418 -0
- package/dist/types/cache/vercel/index.d.ts +1 -0
- package/dist/types/cache/vercel/vercel-cache-store.d.ts +267 -0
- package/dist/types/client.d.ts +184 -0
- package/dist/types/client.rsc.d.ts +39 -0
- package/dist/types/cloudflare/index.d.ts +7 -0
- package/dist/types/cloudflare/tracing.d.ts +53 -0
- package/dist/types/component-utils.d.ts +46 -0
- package/dist/types/components/DefaultDocument.d.ts +13 -0
- package/dist/types/context-var.d.ts +84 -0
- package/dist/types/debug.d.ts +57 -0
- package/dist/types/decode-loader-results.d.ts +5 -0
- package/dist/types/default-error-boundary.d.ts +10 -0
- package/dist/types/defer.d.ts +89 -0
- package/dist/types/deps/browser.d.ts +1 -0
- package/dist/types/deps/html-stream-client.d.ts +1 -0
- package/dist/types/deps/html-stream-server.d.ts +1 -0
- package/dist/types/deps/rsc.d.ts +1 -0
- package/dist/types/deps/ssr.d.ts +1 -0
- package/dist/types/encode-kv.d.ts +35 -0
- package/dist/types/errors.d.ts +226 -0
- package/dist/types/escape-script.d.ts +44 -0
- package/dist/types/handle.d.ts +93 -0
- package/dist/types/handles/MetaTags.d.ts +17 -0
- package/dist/types/handles/Scripts.d.ts +38 -0
- package/dist/types/handles/breadcrumbs.d.ts +43 -0
- package/dist/types/handles/deferred-resolution.d.ts +53 -0
- package/dist/types/handles/is-thenable.d.ts +12 -0
- package/dist/types/handles/meta.d.ts +43 -0
- package/dist/types/handles/script.d.ts +139 -0
- package/dist/types/host/cookie-handler.d.ts +8 -0
- package/dist/types/host/errors.d.ts +40 -0
- package/dist/types/host/index.d.ts +33 -0
- package/dist/types/host/pattern-matcher.d.ts +30 -0
- package/dist/types/host/router.d.ts +12 -0
- package/dist/types/host/testing.d.ts +41 -0
- package/dist/types/host/types.d.ts +148 -0
- package/dist/types/host/utils.d.ts +20 -0
- package/dist/types/href-client.d.ts +214 -0
- package/dist/types/index.d.ts +112 -0
- package/dist/types/index.rsc.d.ts +51 -0
- package/dist/types/internal-debug.d.ts +1 -0
- package/dist/types/loader-store.d.ts +193 -0
- package/dist/types/loader.d.ts +18 -0
- package/dist/types/loader.rsc.d.ts +18 -0
- package/dist/types/missing-id-error.d.ts +1 -0
- package/dist/types/outlet-context.d.ts +12 -0
- package/dist/types/outlet-provider.d.ts +12 -0
- package/dist/types/prerender/build-shell-capture.d.ts +104 -0
- package/dist/types/prerender/param-hash.d.ts +6 -0
- package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
- package/dist/types/prerender/store.d.ts +62 -0
- package/dist/types/prerender.d.ts +292 -0
- package/dist/types/redirect-origin.d.ts +67 -0
- package/dist/types/regex-escape.d.ts +6 -0
- package/dist/types/render-error-thrower.d.ts +13 -0
- package/dist/types/response-utils.d.ts +35 -0
- package/dist/types/reverse.d.ts +206 -0
- package/dist/types/root-error-boundary.d.ts +32 -0
- package/dist/types/route-content-wrapper.d.ts +40 -0
- package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
- package/dist/types/route-definition/helper-factories.d.ts +22 -0
- package/dist/types/route-definition/helpers-types.d.ts +392 -0
- package/dist/types/route-definition/index.d.ts +7 -0
- package/dist/types/route-definition/redirect.d.ts +48 -0
- package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
- package/dist/types/route-definition/use-item-types.d.ts +1 -0
- package/dist/types/route-definition.d.ts +1 -0
- package/dist/types/route-map-builder.d.ts +127 -0
- package/dist/types/route-name.d.ts +27 -0
- package/dist/types/route-types.d.ts +172 -0
- package/dist/types/router/basename.d.ts +10 -0
- package/dist/types/router/content-negotiation.d.ts +91 -0
- package/dist/types/router/debug-manifest.d.ts +7 -0
- package/dist/types/router/error-handling.d.ts +76 -0
- package/dist/types/router/find-match.d.ts +19 -0
- package/dist/types/router/handler-context.d.ts +41 -0
- package/dist/types/router/instrument.d.ts +161 -0
- package/dist/types/router/intercept-resolution.d.ts +79 -0
- package/dist/types/router/lazy-includes.d.ts +26 -0
- package/dist/types/router/loader-resolution.d.ts +63 -0
- package/dist/types/router/logging.d.ts +41 -0
- package/dist/types/router/manifest.d.ts +8 -0
- package/dist/types/router/match-api.d.ts +19 -0
- package/dist/types/router/match-context.d.ts +184 -0
- package/dist/types/router/match-handlers.d.ts +49 -0
- package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
- package/dist/types/router/match-middleware/cache-lookup.d.ts +113 -0
- package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
- package/dist/types/router/match-middleware/index.d.ts +80 -0
- package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
- package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
- package/dist/types/router/match-pipelines.d.ts +103 -0
- package/dist/types/router/match-result.d.ts +114 -0
- package/dist/types/router/metrics.d.ts +6 -0
- package/dist/types/router/middleware-types.d.ts +74 -0
- package/dist/types/router/middleware.d.ts +116 -0
- package/dist/types/router/navigation-snapshot.d.ts +22 -0
- package/dist/types/router/params-util.d.ts +8 -0
- package/dist/types/router/parse-pattern.d.ts +38 -0
- package/dist/types/router/pattern-matching.d.ts +169 -0
- package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
- package/dist/types/router/prefetch-limits.d.ts +20 -0
- package/dist/types/router/prerender-match.d.ts +50 -0
- package/dist/types/router/preview-match.d.ts +22 -0
- package/dist/types/router/request-classification.d.ts +104 -0
- package/dist/types/router/revalidation.d.ts +57 -0
- package/dist/types/router/route-snapshot.d.ts +112 -0
- package/dist/types/router/router-context.d.ts +137 -0
- package/dist/types/router/router-interfaces.d.ts +432 -0
- package/dist/types/router/router-options.d.ts +738 -0
- package/dist/types/router/router-registry.d.ts +15 -0
- package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
- package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
- package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
- package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
- package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
- package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
- package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
- package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
- package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
- package/dist/types/router/segment-resolution/view-transition-default.d.ts +28 -0
- package/dist/types/router/segment-resolution.d.ts +3 -0
- package/dist/types/router/segment-wrappers.d.ts +53 -0
- package/dist/types/router/state-cookie-name.d.ts +1 -0
- package/dist/types/router/substitute-pattern-params.d.ts +23 -0
- package/dist/types/router/telemetry-otel.d.ts +113 -0
- package/dist/types/router/telemetry.d.ts +216 -0
- package/dist/types/router/timeout.d.ts +96 -0
- package/dist/types/router/tracing.d.ts +125 -0
- package/dist/types/router/trie-matching.d.ts +32 -0
- package/dist/types/router/types.d.ts +98 -0
- package/dist/types/router/url-params.d.ts +26 -0
- package/dist/types/router.d.ts +7 -0
- package/dist/types/rsc/capture-queue.d.ts +6 -0
- package/dist/types/rsc/full-payload.d.ts +22 -0
- package/dist/types/rsc/handler-context.d.ts +31 -0
- package/dist/types/rsc/handler.d.ts +9 -0
- package/dist/types/rsc/helpers.d.ts +124 -0
- package/dist/types/rsc/index.d.ts +17 -0
- package/dist/types/rsc/json-route-result.d.ts +20 -0
- package/dist/types/rsc/loader-fetch.d.ts +14 -0
- package/dist/types/rsc/manifest-init.d.ts +18 -0
- package/dist/types/rsc/nonce.d.ts +28 -0
- package/dist/types/rsc/origin-guard.d.ts +50 -0
- package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
- package/dist/types/rsc/redirect-guard.d.ts +37 -0
- package/dist/types/rsc/render-pipeline.d.ts +138 -0
- package/dist/types/rsc/response-cache-serve.d.ts +46 -0
- package/dist/types/rsc/response-error.d.ts +19 -0
- package/dist/types/rsc/response-route-handler.d.ts +29 -0
- package/dist/types/rsc/rsc-rendering.d.ts +23 -0
- package/dist/types/rsc/runtime-warnings.d.ts +22 -0
- package/dist/types/rsc/server-action.d.ts +68 -0
- package/dist/types/rsc/shell-build-manifest.d.ts +84 -0
- package/dist/types/rsc/shell-capture-constants.d.ts +27 -0
- package/dist/types/rsc/shell-capture.d.ts +374 -0
- package/dist/types/rsc/shell-serve.d.ts +174 -0
- package/dist/types/rsc/ssr-setup.d.ts +73 -0
- package/dist/types/rsc/transition-gate.d.ts +27 -0
- package/dist/types/rsc/types.d.ts +290 -0
- package/dist/types/runtime-env.d.ts +1 -0
- package/dist/types/search-params.d.ts +125 -0
- package/dist/types/segment-content-promise.d.ts +13 -0
- package/dist/types/segment-fragments.d.ts +56 -0
- package/dist/types/segment-loader-promise.d.ts +22 -0
- package/dist/types/segment-system.d.ts +84 -0
- package/dist/types/serialize.d.ts +164 -0
- package/dist/types/server/context.d.ts +494 -0
- package/dist/types/server/cookie-parse.d.ts +10 -0
- package/dist/types/server/cookie-store.d.ts +107 -0
- package/dist/types/server/fetchable-loader-store.d.ts +20 -0
- package/dist/types/server/handle-store.d.ts +100 -0
- package/dist/types/server/loader-registry.d.ts +32 -0
- package/dist/types/server/request-context.d.ts +618 -0
- package/dist/types/server/root-layout.d.ts +3 -0
- package/dist/types/server.d.ts +15 -0
- package/dist/types/ssr/index.d.ts +233 -0
- package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
- package/dist/types/ssr/preinit-client-references.d.ts +71 -0
- package/dist/types/ssr/ssr-root.d.ts +69 -0
- package/dist/types/static-handler.d.ts +57 -0
- package/dist/types/testing/cache-status.d.ts +63 -0
- package/dist/types/testing/collect-handle.d.ts +20 -0
- package/dist/types/testing/dispatch.d.ts +127 -0
- package/dist/types/testing/dom.entry.d.ts +15 -0
- package/dist/types/testing/e2e/fixture.d.ts +37 -0
- package/dist/types/testing/e2e/index.d.ts +31 -0
- package/dist/types/testing/e2e/matchers.d.ts +17 -0
- package/dist/types/testing/e2e/page-helpers.d.ts +62 -0
- package/dist/types/testing/e2e/parity.d.ts +111 -0
- package/dist/types/testing/e2e/server.d.ts +35 -0
- package/dist/types/testing/flight-matchers.d.ts +55 -0
- package/dist/types/testing/flight-normalize.d.ts +1 -0
- package/dist/types/testing/flight-tree.d.ts +192 -0
- package/dist/types/testing/flight.d.ts +115 -0
- package/dist/types/testing/flight.entry.d.ts +27 -0
- package/dist/types/testing/generated-routes.d.ts +66 -0
- package/dist/types/testing/index.d.ts +54 -0
- package/dist/types/testing/internal/context.d.ts +225 -0
- package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
- package/dist/types/testing/internal/seed-vars.d.ts +30 -0
- package/dist/types/testing/render-handler.d.ts +160 -0
- package/dist/types/testing/render-route.d.ts +246 -0
- package/dist/types/testing/run-loader.d.ts +186 -0
- package/dist/types/testing/run-middleware.d.ts +132 -0
- package/dist/types/testing/run-transition-when.d.ts +77 -0
- package/dist/types/testing/shell-status.d.ts +58 -0
- package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
- package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
- package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
- package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
- package/dist/types/testing/vitest.d.ts +205 -0
- package/dist/types/theme/ThemeProvider.d.ts +13 -0
- package/dist/types/theme/ThemeScript.d.ts +45 -0
- package/dist/types/theme/constants.d.ts +39 -0
- package/dist/types/theme/index.d.ts +29 -0
- package/dist/types/theme/theme-context.d.ts +21 -0
- package/dist/types/theme/theme-script.d.ts +26 -0
- package/dist/types/theme/types.d.ts +162 -0
- package/dist/types/theme/use-theme.d.ts +8 -0
- package/dist/types/types/boundaries.d.ts +93 -0
- package/dist/types/types/cache-types.d.ts +191 -0
- package/dist/types/types/error-types.d.ts +114 -0
- package/dist/types/types/global-namespace.d.ts +90 -0
- package/dist/types/types/handler-context.d.ts +658 -0
- package/dist/types/types/index.d.ts +11 -0
- package/dist/types/types/loader-types.d.ts +182 -0
- package/dist/types/types/request-scope.d.ts +93 -0
- package/dist/types/types/route-config.d.ts +105 -0
- package/dist/types/types/route-entry.d.ts +95 -0
- package/dist/types/types/segments.d.ts +234 -0
- package/dist/types/types.d.ts +1 -0
- package/dist/types/urls/include-helper.d.ts +17 -0
- package/dist/types/urls/include-provider.d.ts +27 -0
- package/dist/types/urls/index.d.ts +6 -0
- package/dist/types/urls/path-helper-types.d.ts +197 -0
- package/dist/types/urls/path-helper.d.ts +12 -0
- package/dist/types/urls/pattern-types.d.ts +166 -0
- package/dist/types/urls/response-types.d.ts +67 -0
- package/dist/types/urls/type-extraction.d.ts +157 -0
- package/dist/types/urls/urls-function.d.ts +24 -0
- package/dist/types/urls.d.ts +1 -0
- package/dist/types/use-loader.d.ts +150 -0
- package/dist/types/vercel/index.d.ts +10 -0
- package/dist/types/vercel/tracing.d.ts +70 -0
- package/dist/types/vite/debug.d.ts +80 -0
- package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
- package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
- package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
- package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
- package/dist/types/vite/discovery/gate-state.d.ts +79 -0
- package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
- package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
- package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
- package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
- package/dist/types/vite/discovery/state.d.ts +162 -0
- package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
- package/dist/types/vite/index.d.ts +11 -0
- package/dist/types/vite/inject-client-debug.d.ts +56 -0
- package/dist/types/vite/plugin-types.d.ts +298 -0
- package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
- package/dist/types/vite/plugins/client-ref-dedup.d.ts +40 -0
- package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
- package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
- package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
- package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
- package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
- package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
- package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
- package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
- package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
- package/dist/types/vite/plugins/expose-internal-ids.d.ts +6 -0
- package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
- package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
- package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
- package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
- package/dist/types/vite/plugins/version-injector.d.ts +21 -0
- package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
- package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
- package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
- package/dist/types/vite/rango.d.ts +29 -0
- package/dist/types/vite/router-discovery.d.ts +23 -0
- package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
- package/dist/types/vite/utils/banner.d.ts +2 -0
- package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
- package/dist/types/vite/utils/client-chunks.d.ts +55 -0
- package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
- package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
- package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
- package/dist/types/vite/utils/package-resolution.d.ts +6 -0
- package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
- package/dist/types/vite/utils/shared-utils.d.ts +55 -0
- package/dist/vite/index.js +1051 -361
- package/package.json +39 -33
- package/skills/catalog.json +6 -0
- package/skills/cloudflare/SKILL.md +149 -0
- package/skills/cloudflare/agents/openai.yaml +4 -0
- package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
- package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
- package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
- package/skills/composability/SKILL.md +14 -0
- package/skills/debug-manifest/SKILL.md +2 -10
- package/skills/links/SKILL.md +12 -0
- package/skills/middleware/SKILL.md +33 -0
- package/skills/migrate-nextjs/SKILL.md +65 -16
- package/skills/migrate-nextjs/backend-host-swap.md +120 -0
- package/skills/migrate-react-router/SKILL.md +6 -6
- package/skills/mime-routes/SKILL.md +25 -17
- package/skills/ppr/SKILL.md +100 -15
- package/skills/prerender/SKILL.md +44 -1
- package/skills/rango/SKILL.md +10 -10
- package/skills/response-routes/SKILL.md +41 -4
- package/skills/route/SKILL.md +6 -0
- package/skills/testing/SKILL.md +1 -0
- package/skills/testing/cache-prerender.md +43 -2
- package/skills/testing/response-routes.md +2 -2
- package/src/browser/event-controller.ts +16 -2
- package/src/browser/rsc-router.tsx +11 -0
- package/src/build/generate-manifest.ts +5 -36
- package/src/build/route-trie.ts +5 -50
- package/src/cache/cache-key-utils.ts +0 -1
- package/src/cache/cache-scope.ts +41 -3
- package/src/cache/cf/cf-cache-store.ts +465 -56
- package/src/cache/cf/cf-cache-types.ts +66 -0
- package/src/cache/cf/cf-tag-marker-memo.ts +5 -2
- package/src/cache/cf/cf-zone-purge.ts +101 -0
- package/src/cache/cf/index.ts +5 -0
- package/src/cache/handle-snapshot.ts +22 -1
- package/src/cache/index.ts +2 -0
- package/src/cache/memory-segment-store.ts +32 -0
- package/src/cache/segment-codec.ts +47 -0
- package/src/cache/shell-snapshot.ts +79 -14
- package/src/cache/types.ts +38 -0
- package/src/cache/vercel/vercel-cache-store.ts +71 -2
- package/src/deps/ssr.ts +4 -1
- package/src/index.rsc.ts +7 -0
- package/src/index.ts +1 -0
- package/src/prerender/build-shell-capture.ts +447 -0
- package/src/prerender/shell-manifest-key.ts +20 -0
- package/src/prerender/store.ts +10 -1
- package/src/prerender.ts +3 -3
- package/src/redirect-origin.ts +37 -8
- package/src/route-map-builder.ts +8 -8
- package/src/router/content-negotiation.ts +47 -5
- package/src/router/handler-context.ts +18 -10
- package/src/router/intercept-resolution.ts +30 -1
- package/src/router/loader-resolution.ts +16 -0
- package/src/router/match-api.ts +9 -2
- package/src/router/match-handlers.ts +13 -0
- package/src/router/match-middleware/cache-lookup.ts +12 -1
- package/src/router/metrics.ts +17 -2
- package/src/router/middleware-types.ts +17 -0
- package/src/router/middleware.ts +4 -0
- package/src/router/prerender-match.ts +28 -0
- package/src/router/router-interfaces.ts +7 -6
- package/src/router/router-options.ts +13 -8
- package/src/router/segment-resolution/fresh.ts +21 -2
- package/src/router/segment-resolution/helpers.ts +1 -1
- package/src/router/segment-resolution/loader-cache.ts +38 -7
- package/src/router/segment-resolution/mask-nested.ts +19 -3
- package/src/router/segment-resolution/revalidation.ts +9 -0
- package/src/router/telemetry-otel.ts +11 -0
- package/src/router/telemetry.ts +1 -0
- package/src/router/timeout.ts +41 -1
- package/src/router.ts +5 -4
- package/src/rsc/capture-queue.ts +67 -0
- package/src/rsc/handler.ts +151 -77
- package/src/rsc/helpers.ts +67 -4
- package/src/rsc/progressive-enhancement.ts +66 -54
- package/src/rsc/redirect-guard.ts +3 -1
- package/src/rsc/render-pipeline.ts +559 -0
- package/src/rsc/response-cache-serve.ts +39 -18
- package/src/rsc/response-route-handler.ts +9 -45
- package/src/rsc/rsc-rendering.ts +303 -103
- package/src/rsc/server-action.ts +50 -42
- package/src/rsc/shell-build-manifest.ts +316 -0
- package/src/rsc/shell-capture-constants.ts +27 -0
- package/src/rsc/shell-capture.ts +595 -69
- package/src/rsc/shell-serve.ts +133 -3
- package/src/rsc/ssr-setup.ts +102 -23
- package/src/segment-fragments.ts +124 -0
- package/src/server/context.ts +184 -8
- package/src/server/request-context.ts +297 -45
- package/src/ssr/index.tsx +167 -32
- package/src/ssr/preinit-client-references.ts +106 -0
- package/src/ssr/ssr-root.tsx +35 -2
- package/src/testing/dispatch.ts +132 -67
- package/src/testing/e2e/index.ts +8 -0
- package/src/testing/index.ts +9 -1
- package/src/testing/internal/context.ts +9 -0
- package/src/testing/render-handler.ts +15 -1
- package/src/testing/run-middleware.ts +14 -0
- package/src/testing/shell-status.ts +100 -0
- package/src/types/handler-context.ts +13 -2
- package/src/urls/path-helper-types.ts +1 -1
- package/src/urls/pattern-types.ts +29 -0
- package/src/vite/discovery/discover-routers.ts +71 -52
- package/src/vite/discovery/prerender-collection.ts +16 -0
- package/src/vite/discovery/shell-prerender-phase.ts +397 -0
- package/src/vite/discovery/state.ts +44 -0
- package/src/vite/discovery/virtual-module-codegen.ts +126 -20
- package/src/vite/index.ts +1 -0
- package/src/vite/plugin-types.ts +33 -0
- package/src/vite/plugins/version-plugin.ts +8 -0
- package/src/vite/plugins/virtual-entries.ts +37 -4
- package/src/vite/rango.ts +42 -2
- package/src/vite/router-discovery.ts +432 -21
- package/src/vite/utils/package-resolution.ts +1 -0
- package/src/vite/utils/prerender-utils.ts +25 -6
- package/src/vite/utils/shared-utils.ts +4 -2
- package/dist/__internal.d.ts +0 -83
- package/dist/__internal.d.ts.map +0 -1
- package/dist/__internal.js +0 -19
- package/dist/__internal.js.map +0 -1
- package/dist/__mocks__/version.d.ts +0 -7
- package/dist/__mocks__/version.d.ts.map +0 -1
- package/dist/__mocks__/version.js +0 -7
- package/dist/__mocks__/version.js.map +0 -1
- package/dist/__tests__/client-href.test.d.ts +0 -2
- package/dist/__tests__/client-href.test.d.ts.map +0 -1
- package/dist/__tests__/client-href.test.js +0 -74
- package/dist/__tests__/client-href.test.js.map +0 -1
- package/dist/__tests__/component-utils.test.d.ts +0 -2
- package/dist/__tests__/component-utils.test.d.ts.map +0 -1
- package/dist/__tests__/component-utils.test.js +0 -51
- package/dist/__tests__/component-utils.test.js.map +0 -1
- package/dist/__tests__/event-controller.test.d.ts +0 -2
- package/dist/__tests__/event-controller.test.d.ts.map +0 -1
- package/dist/__tests__/event-controller.test.js +0 -538
- package/dist/__tests__/event-controller.test.js.map +0 -1
- package/dist/__tests__/helpers/route-tree.d.ts +0 -118
- package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
- package/dist/__tests__/helpers/route-tree.js +0 -374
- package/dist/__tests__/helpers/route-tree.js.map +0 -1
- package/dist/__tests__/match-result.test.d.ts +0 -2
- package/dist/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/__tests__/match-result.test.js +0 -154
- package/dist/__tests__/match-result.test.js.map +0 -1
- package/dist/__tests__/navigation-store.test.d.ts +0 -2
- package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
- package/dist/__tests__/navigation-store.test.js +0 -440
- package/dist/__tests__/navigation-store.test.js.map +0 -1
- package/dist/__tests__/partial-update.test.d.ts +0 -2
- package/dist/__tests__/partial-update.test.d.ts.map +0 -1
- package/dist/__tests__/partial-update.test.js +0 -1009
- package/dist/__tests__/partial-update.test.js.map +0 -1
- package/dist/__tests__/reverse-types.test.d.ts +0 -8
- package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
- package/dist/__tests__/reverse-types.test.js +0 -656
- package/dist/__tests__/reverse-types.test.js.map +0 -1
- package/dist/__tests__/route-definition.test.d.ts +0 -2
- package/dist/__tests__/route-definition.test.d.ts.map +0 -1
- package/dist/__tests__/route-definition.test.js +0 -55
- package/dist/__tests__/route-definition.test.js.map +0 -1
- package/dist/__tests__/router-helpers.test.d.ts +0 -2
- package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
- package/dist/__tests__/router-helpers.test.js +0 -377
- package/dist/__tests__/router-helpers.test.js.map +0 -1
- package/dist/__tests__/router-integration-2.test.d.ts +0 -2
- package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration-2.test.js +0 -426
- package/dist/__tests__/router-integration-2.test.js.map +0 -1
- package/dist/__tests__/router-integration.test.d.ts +0 -2
- package/dist/__tests__/router-integration.test.d.ts.map +0 -1
- package/dist/__tests__/router-integration.test.js +0 -1051
- package/dist/__tests__/router-integration.test.js.map +0 -1
- package/dist/__tests__/search-params.test.d.ts +0 -5
- package/dist/__tests__/search-params.test.d.ts.map +0 -1
- package/dist/__tests__/search-params.test.js +0 -306
- package/dist/__tests__/search-params.test.js.map +0 -1
- package/dist/__tests__/segment-system.test.d.ts +0 -2
- package/dist/__tests__/segment-system.test.d.ts.map +0 -1
- package/dist/__tests__/segment-system.test.js +0 -627
- package/dist/__tests__/segment-system.test.js.map +0 -1
- package/dist/__tests__/static-handler-types.test.d.ts +0 -8
- package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
- package/dist/__tests__/static-handler-types.test.js +0 -63
- package/dist/__tests__/static-handler-types.test.js.map +0 -1
- package/dist/__tests__/urls.test.d.ts +0 -2
- package/dist/__tests__/urls.test.d.ts.map +0 -1
- package/dist/__tests__/urls.test.js +0 -421
- package/dist/__tests__/urls.test.js.map +0 -1
- package/dist/__tests__/use-mount.test.d.ts +0 -2
- package/dist/__tests__/use-mount.test.d.ts.map +0 -1
- package/dist/__tests__/use-mount.test.js +0 -35
- package/dist/__tests__/use-mount.test.js.map +0 -1
- package/dist/bin/rango.d.ts +0 -2
- package/dist/bin/rango.d.ts.map +0 -1
- package/dist/bin/rango.js.map +0 -1
- package/dist/browser/event-controller.d.ts +0 -191
- package/dist/browser/event-controller.d.ts.map +0 -1
- package/dist/browser/event-controller.js +0 -559
- package/dist/browser/event-controller.js.map +0 -1
- package/dist/browser/index.d.ts +0 -2
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js +0 -14
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/link-interceptor.d.ts +0 -38
- package/dist/browser/link-interceptor.d.ts.map +0 -1
- package/dist/browser/link-interceptor.js +0 -99
- package/dist/browser/link-interceptor.js.map +0 -1
- package/dist/browser/logging.d.ts +0 -10
- package/dist/browser/logging.d.ts.map +0 -1
- package/dist/browser/logging.js +0 -29
- package/dist/browser/logging.js.map +0 -1
- package/dist/browser/lru-cache.d.ts +0 -17
- package/dist/browser/lru-cache.d.ts.map +0 -1
- package/dist/browser/lru-cache.js +0 -50
- package/dist/browser/lru-cache.js.map +0 -1
- package/dist/browser/merge-segment-loaders.d.ts +0 -39
- package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
- package/dist/browser/merge-segment-loaders.js +0 -102
- package/dist/browser/merge-segment-loaders.js.map +0 -1
- package/dist/browser/navigation-bridge.d.ts +0 -102
- package/dist/browser/navigation-bridge.d.ts.map +0 -1
- package/dist/browser/navigation-bridge.js +0 -708
- package/dist/browser/navigation-bridge.js.map +0 -1
- package/dist/browser/navigation-client.d.ts +0 -25
- package/dist/browser/navigation-client.d.ts.map +0 -1
- package/dist/browser/navigation-client.js +0 -157
- package/dist/browser/navigation-client.js.map +0 -1
- package/dist/browser/navigation-store.d.ts +0 -101
- package/dist/browser/navigation-store.d.ts.map +0 -1
- package/dist/browser/navigation-store.js +0 -625
- package/dist/browser/navigation-store.js.map +0 -1
- package/dist/browser/partial-update.d.ts +0 -75
- package/dist/browser/partial-update.d.ts.map +0 -1
- package/dist/browser/partial-update.js +0 -426
- package/dist/browser/partial-update.js.map +0 -1
- package/dist/browser/react/Link.d.ts +0 -86
- package/dist/browser/react/Link.d.ts.map +0 -1
- package/dist/browser/react/Link.js +0 -128
- package/dist/browser/react/Link.js.map +0 -1
- package/dist/browser/react/NavigationProvider.d.ts +0 -63
- package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
- package/dist/browser/react/NavigationProvider.js +0 -216
- package/dist/browser/react/NavigationProvider.js.map +0 -1
- package/dist/browser/react/ScrollRestoration.d.ts +0 -75
- package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
- package/dist/browser/react/ScrollRestoration.js +0 -57
- package/dist/browser/react/ScrollRestoration.js.map +0 -1
- package/dist/browser/react/context.d.ts +0 -46
- package/dist/browser/react/context.d.ts.map +0 -1
- package/dist/browser/react/context.js +0 -10
- package/dist/browser/react/context.js.map +0 -1
- package/dist/browser/react/index.d.ts +0 -11
- package/dist/browser/react/index.d.ts.map +0 -1
- package/dist/browser/react/index.js +0 -22
- package/dist/browser/react/index.js.map +0 -1
- package/dist/browser/react/location-state-shared.d.ts +0 -63
- package/dist/browser/react/location-state-shared.d.ts.map +0 -1
- package/dist/browser/react/location-state-shared.js +0 -81
- package/dist/browser/react/location-state-shared.js.map +0 -1
- package/dist/browser/react/location-state.d.ts +0 -23
- package/dist/browser/react/location-state.d.ts.map +0 -1
- package/dist/browser/react/location-state.js +0 -29
- package/dist/browser/react/location-state.js.map +0 -1
- package/dist/browser/react/mount-context.d.ts +0 -24
- package/dist/browser/react/mount-context.d.ts.map +0 -1
- package/dist/browser/react/mount-context.js +0 -24
- package/dist/browser/react/mount-context.js.map +0 -1
- package/dist/browser/react/use-action.d.ts +0 -64
- package/dist/browser/react/use-action.d.ts.map +0 -1
- package/dist/browser/react/use-action.js +0 -134
- package/dist/browser/react/use-action.js.map +0 -1
- package/dist/browser/react/use-client-cache.d.ts +0 -41
- package/dist/browser/react/use-client-cache.d.ts.map +0 -1
- package/dist/browser/react/use-client-cache.js +0 -39
- package/dist/browser/react/use-client-cache.js.map +0 -1
- package/dist/browser/react/use-handle.d.ts +0 -31
- package/dist/browser/react/use-handle.d.ts.map +0 -1
- package/dist/browser/react/use-handle.js +0 -144
- package/dist/browser/react/use-handle.js.map +0 -1
- package/dist/browser/react/use-href.d.ts +0 -33
- package/dist/browser/react/use-href.d.ts.map +0 -1
- package/dist/browser/react/use-href.js +0 -39
- package/dist/browser/react/use-href.js.map +0 -1
- package/dist/browser/react/use-link-status.d.ts +0 -37
- package/dist/browser/react/use-link-status.d.ts.map +0 -1
- package/dist/browser/react/use-link-status.js +0 -99
- package/dist/browser/react/use-link-status.js.map +0 -1
- package/dist/browser/react/use-mount.d.ts +0 -25
- package/dist/browser/react/use-mount.d.ts.map +0 -1
- package/dist/browser/react/use-mount.js +0 -30
- package/dist/browser/react/use-mount.js.map +0 -1
- package/dist/browser/react/use-navigation.d.ts +0 -27
- package/dist/browser/react/use-navigation.d.ts.map +0 -1
- package/dist/browser/react/use-navigation.js +0 -87
- package/dist/browser/react/use-navigation.js.map +0 -1
- package/dist/browser/react/use-segments.d.ts +0 -38
- package/dist/browser/react/use-segments.d.ts.map +0 -1
- package/dist/browser/react/use-segments.js +0 -130
- package/dist/browser/react/use-segments.js.map +0 -1
- package/dist/browser/request-controller.d.ts +0 -26
- package/dist/browser/request-controller.d.ts.map +0 -1
- package/dist/browser/request-controller.js +0 -147
- package/dist/browser/request-controller.js.map +0 -1
- package/dist/browser/rsc-router.d.ts +0 -129
- package/dist/browser/rsc-router.d.ts.map +0 -1
- package/dist/browser/rsc-router.js +0 -195
- package/dist/browser/rsc-router.js.map +0 -1
- package/dist/browser/scroll-restoration.d.ts +0 -93
- package/dist/browser/scroll-restoration.d.ts.map +0 -1
- package/dist/browser/scroll-restoration.js +0 -321
- package/dist/browser/scroll-restoration.js.map +0 -1
- package/dist/browser/segment-structure-assert.d.ts +0 -17
- package/dist/browser/segment-structure-assert.d.ts.map +0 -1
- package/dist/browser/segment-structure-assert.js +0 -59
- package/dist/browser/segment-structure-assert.js.map +0 -1
- package/dist/browser/server-action-bridge.d.ts +0 -26
- package/dist/browser/server-action-bridge.d.ts.map +0 -1
- package/dist/browser/server-action-bridge.js +0 -668
- package/dist/browser/server-action-bridge.js.map +0 -1
- package/dist/browser/shallow.d.ts +0 -12
- package/dist/browser/shallow.d.ts.map +0 -1
- package/dist/browser/shallow.js +0 -34
- package/dist/browser/shallow.js.map +0 -1
- package/dist/browser/types.d.ts +0 -369
- package/dist/browser/types.d.ts.map +0 -1
- package/dist/browser/types.js +0 -2
- package/dist/browser/types.js.map +0 -1
- package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
- package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-cli.test.js +0 -237
- package/dist/build/__tests__/generate-cli.test.js.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-manifest.test.js +0 -119
- package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
- package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
- package/dist/build/__tests__/generate-route-types.test.js +0 -620
- package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
- package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
- package/dist/build/__tests__/per-router-manifest.test.js +0 -308
- package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
- package/dist/build/generate-manifest.d.ts +0 -81
- package/dist/build/generate-manifest.d.ts.map +0 -1
- package/dist/build/generate-manifest.js +0 -276
- package/dist/build/generate-manifest.js.map +0 -1
- package/dist/build/generate-route-types.d.ts +0 -115
- package/dist/build/generate-route-types.d.ts.map +0 -1
- package/dist/build/generate-route-types.js +0 -740
- package/dist/build/generate-route-types.js.map +0 -1
- package/dist/build/index.d.ts +0 -21
- package/dist/build/index.d.ts.map +0 -1
- package/dist/build/index.js +0 -21
- package/dist/build/index.js.map +0 -1
- package/dist/build/route-trie.d.ts +0 -71
- package/dist/build/route-trie.d.ts.map +0 -1
- package/dist/build/route-trie.js +0 -175
- package/dist/build/route-trie.js.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
- package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
- package/dist/cache/__tests__/cache-scope.test.js +0 -208
- package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
- package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
- package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
- package/dist/cache/__tests__/document-cache.test.js +0 -345
- package/dist/cache/__tests__/document-cache.test.js.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
- package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
- package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
- package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
- package/dist/cache/__tests__/memory-store.test.js +0 -367
- package/dist/cache/__tests__/memory-store.test.js.map +0 -1
- package/dist/cache/cache-scope.d.ts +0 -102
- package/dist/cache/cache-scope.d.ts.map +0 -1
- package/dist/cache/cache-scope.js +0 -440
- package/dist/cache/cache-scope.js.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
- package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
- package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
- package/dist/cache/cf/cf-cache-store.d.ts +0 -165
- package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
- package/dist/cache/cf/cf-cache-store.js +0 -242
- package/dist/cache/cf/cf-cache-store.js.map +0 -1
- package/dist/cache/cf/index.d.ts +0 -14
- package/dist/cache/cf/index.d.ts.map +0 -1
- package/dist/cache/cf/index.js +0 -17
- package/dist/cache/cf/index.js.map +0 -1
- package/dist/cache/document-cache.d.ts +0 -64
- package/dist/cache/document-cache.d.ts.map +0 -1
- package/dist/cache/document-cache.js +0 -228
- package/dist/cache/document-cache.js.map +0 -1
- package/dist/cache/index.d.ts +0 -19
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -21
- package/dist/cache/index.js.map +0 -1
- package/dist/cache/memory-segment-store.d.ts +0 -110
- package/dist/cache/memory-segment-store.d.ts.map +0 -1
- package/dist/cache/memory-segment-store.js +0 -117
- package/dist/cache/memory-segment-store.js.map +0 -1
- package/dist/cache/memory-store.d.ts +0 -41
- package/dist/cache/memory-store.d.ts.map +0 -1
- package/dist/cache/memory-store.js +0 -191
- package/dist/cache/memory-store.js.map +0 -1
- package/dist/cache/types.d.ts +0 -317
- package/dist/cache/types.d.ts.map +0 -1
- package/dist/cache/types.js +0 -12
- package/dist/cache/types.js.map +0 -1
- package/dist/client.d.ts +0 -248
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -367
- package/dist/client.js.map +0 -1
- package/dist/client.rsc.d.ts +0 -26
- package/dist/client.rsc.d.ts.map +0 -1
- package/dist/client.rsc.js +0 -46
- package/dist/client.rsc.js.map +0 -1
- package/dist/component-utils.d.ts +0 -36
- package/dist/component-utils.d.ts.map +0 -1
- package/dist/component-utils.js +0 -61
- package/dist/component-utils.js.map +0 -1
- package/dist/components/DefaultDocument.d.ts +0 -13
- package/dist/components/DefaultDocument.d.ts.map +0 -1
- package/dist/components/DefaultDocument.js +0 -15
- package/dist/components/DefaultDocument.js.map +0 -1
- package/dist/debug.d.ts +0 -58
- package/dist/debug.d.ts.map +0 -1
- package/dist/debug.js +0 -157
- package/dist/debug.js.map +0 -1
- package/dist/default-error-boundary.d.ts +0 -11
- package/dist/default-error-boundary.d.ts.map +0 -1
- package/dist/default-error-boundary.js +0 -45
- package/dist/default-error-boundary.js.map +0 -1
- package/dist/deps/browser.d.ts +0 -2
- package/dist/deps/browser.d.ts.map +0 -1
- package/dist/deps/browser.js +0 -3
- package/dist/deps/browser.js.map +0 -1
- package/dist/deps/html-stream-client.d.ts +0 -2
- package/dist/deps/html-stream-client.d.ts.map +0 -1
- package/dist/deps/html-stream-client.js +0 -3
- package/dist/deps/html-stream-client.js.map +0 -1
- package/dist/deps/html-stream-server.d.ts +0 -2
- package/dist/deps/html-stream-server.d.ts.map +0 -1
- package/dist/deps/html-stream-server.js +0 -3
- package/dist/deps/html-stream-server.js.map +0 -1
- package/dist/deps/rsc.d.ts +0 -2
- package/dist/deps/rsc.d.ts.map +0 -1
- package/dist/deps/rsc.js +0 -4
- package/dist/deps/rsc.js.map +0 -1
- package/dist/deps/ssr.d.ts +0 -2
- package/dist/deps/ssr.d.ts.map +0 -1
- package/dist/deps/ssr.js +0 -3
- package/dist/deps/ssr.js.map +0 -1
- package/dist/errors.d.ts +0 -174
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -241
- package/dist/errors.js.map +0 -1
- package/dist/handle.d.ts +0 -78
- package/dist/handle.d.ts.map +0 -1
- package/dist/handle.js +0 -82
- package/dist/handle.js.map +0 -1
- package/dist/handles/MetaTags.d.ts +0 -14
- package/dist/handles/MetaTags.d.ts.map +0 -1
- package/dist/handles/MetaTags.js +0 -136
- package/dist/handles/MetaTags.js.map +0 -1
- package/dist/handles/index.d.ts +0 -6
- package/dist/handles/index.d.ts.map +0 -1
- package/dist/handles/index.js +0 -6
- package/dist/handles/index.js.map +0 -1
- package/dist/handles/meta.d.ts +0 -39
- package/dist/handles/meta.d.ts.map +0 -1
- package/dist/handles/meta.js +0 -202
- package/dist/handles/meta.js.map +0 -1
- package/dist/host/__tests__/errors.test.d.ts +0 -2
- package/dist/host/__tests__/errors.test.d.ts.map +0 -1
- package/dist/host/__tests__/errors.test.js +0 -76
- package/dist/host/__tests__/errors.test.js.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
- package/dist/host/__tests__/pattern-matcher.test.js +0 -251
- package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
- package/dist/host/__tests__/router.test.d.ts +0 -2
- package/dist/host/__tests__/router.test.d.ts.map +0 -1
- package/dist/host/__tests__/router.test.js +0 -241
- package/dist/host/__tests__/router.test.js.map +0 -1
- package/dist/host/__tests__/testing.test.d.ts +0 -2
- package/dist/host/__tests__/testing.test.d.ts.map +0 -1
- package/dist/host/__tests__/testing.test.js +0 -64
- package/dist/host/__tests__/testing.test.js.map +0 -1
- package/dist/host/__tests__/utils.test.d.ts +0 -2
- package/dist/host/__tests__/utils.test.d.ts.map +0 -1
- package/dist/host/__tests__/utils.test.js +0 -29
- package/dist/host/__tests__/utils.test.js.map +0 -1
- package/dist/host/cookie-handler.d.ts +0 -34
- package/dist/host/cookie-handler.d.ts.map +0 -1
- package/dist/host/cookie-handler.js +0 -124
- package/dist/host/cookie-handler.js.map +0 -1
- package/dist/host/errors.d.ts +0 -56
- package/dist/host/errors.d.ts.map +0 -1
- package/dist/host/errors.js +0 -79
- package/dist/host/errors.js.map +0 -1
- package/dist/host/index.d.ts +0 -29
- package/dist/host/index.d.ts.map +0 -1
- package/dist/host/index.js +0 -32
- package/dist/host/index.js.map +0 -1
- package/dist/host/pattern-matcher.d.ts +0 -36
- package/dist/host/pattern-matcher.d.ts.map +0 -1
- package/dist/host/pattern-matcher.js +0 -172
- package/dist/host/pattern-matcher.js.map +0 -1
- package/dist/host/router.d.ts +0 -26
- package/dist/host/router.d.ts.map +0 -1
- package/dist/host/router.js +0 -218
- package/dist/host/router.js.map +0 -1
- package/dist/host/testing.d.ts +0 -36
- package/dist/host/testing.d.ts.map +0 -1
- package/dist/host/testing.js +0 -55
- package/dist/host/testing.js.map +0 -1
- package/dist/host/types.d.ts +0 -115
- package/dist/host/types.d.ts.map +0 -1
- package/dist/host/types.js +0 -7
- package/dist/host/types.js.map +0 -1
- package/dist/host/utils.d.ts +0 -21
- package/dist/host/utils.d.ts.map +0 -1
- package/dist/host/utils.js +0 -23
- package/dist/host/utils.js.map +0 -1
- package/dist/href-client.d.ts +0 -131
- package/dist/href-client.d.ts.map +0 -1
- package/dist/href-client.js +0 -64
- package/dist/href-client.js.map +0 -1
- package/dist/href-context.d.ts +0 -29
- package/dist/href-context.d.ts.map +0 -1
- package/dist/href-context.js +0 -21
- package/dist/href-context.js.map +0 -1
- package/dist/index.d.ts +0 -73
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -91
- package/dist/index.js.map +0 -1
- package/dist/index.rsc.d.ts +0 -32
- package/dist/index.rsc.d.ts.map +0 -1
- package/dist/index.rsc.js +0 -40
- package/dist/index.rsc.js.map +0 -1
- package/dist/internal-debug.d.ts +0 -2
- package/dist/internal-debug.d.ts.map +0 -1
- package/dist/internal-debug.js +0 -5
- package/dist/internal-debug.js.map +0 -1
- package/dist/loader.d.ts +0 -14
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -20
- package/dist/loader.js.map +0 -1
- package/dist/loader.rsc.d.ts +0 -19
- package/dist/loader.rsc.d.ts.map +0 -1
- package/dist/loader.rsc.js +0 -99
- package/dist/loader.rsc.js.map +0 -1
- package/dist/network-error-thrower.d.ts +0 -17
- package/dist/network-error-thrower.d.ts.map +0 -1
- package/dist/network-error-thrower.js +0 -14
- package/dist/network-error-thrower.js.map +0 -1
- package/dist/outlet-context.d.ts +0 -13
- package/dist/outlet-context.d.ts.map +0 -1
- package/dist/outlet-context.js +0 -3
- package/dist/outlet-context.js.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
- package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
- package/dist/prerender/__tests__/param-hash.test.js +0 -148
- package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
- package/dist/prerender/param-hash.d.ts +0 -16
- package/dist/prerender/param-hash.d.ts.map +0 -1
- package/dist/prerender/param-hash.js +0 -36
- package/dist/prerender/param-hash.js.map +0 -1
- package/dist/prerender/store.d.ts +0 -38
- package/dist/prerender/store.d.ts.map +0 -1
- package/dist/prerender/store.js +0 -61
- package/dist/prerender/store.js.map +0 -1
- package/dist/prerender.d.ts +0 -66
- package/dist/prerender.d.ts.map +0 -1
- package/dist/prerender.js +0 -57
- package/dist/prerender.js.map +0 -1
- package/dist/reverse.d.ts +0 -196
- package/dist/reverse.d.ts.map +0 -1
- package/dist/reverse.js +0 -78
- package/dist/reverse.js.map +0 -1
- package/dist/root-error-boundary.d.ts +0 -33
- package/dist/root-error-boundary.d.ts.map +0 -1
- package/dist/root-error-boundary.js +0 -165
- package/dist/root-error-boundary.js.map +0 -1
- package/dist/route-content-wrapper.d.ts +0 -46
- package/dist/route-content-wrapper.d.ts.map +0 -1
- package/dist/route-content-wrapper.js +0 -77
- package/dist/route-content-wrapper.js.map +0 -1
- package/dist/route-definition.d.ts +0 -421
- package/dist/route-definition.d.ts.map +0 -1
- package/dist/route-definition.js +0 -868
- package/dist/route-definition.js.map +0 -1
- package/dist/route-map-builder.d.ts +0 -155
- package/dist/route-map-builder.d.ts.map +0 -1
- package/dist/route-map-builder.js +0 -237
- package/dist/route-map-builder.js.map +0 -1
- package/dist/route-types.d.ts +0 -165
- package/dist/route-types.d.ts.map +0 -1
- package/dist/route-types.js +0 -7
- package/dist/route-types.js.map +0 -1
- package/dist/router/__tests__/handler-context.test.d.ts +0 -2
- package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/handler-context.test.js +0 -65
- package/dist/router/__tests__/handler-context.test.js.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
- package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
- package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
- package/dist/router/__tests__/match-context.test.d.ts +0 -2
- package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-context.test.js +0 -92
- package/dist/router/__tests__/match-context.test.js.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
- package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-pipelines.test.js +0 -417
- package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
- package/dist/router/__tests__/match-result.test.d.ts +0 -2
- package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
- package/dist/router/__tests__/match-result.test.js +0 -457
- package/dist/router/__tests__/match-result.test.js.map +0 -1
- package/dist/router/__tests__/on-error.test.d.ts +0 -2
- package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
- package/dist/router/__tests__/on-error.test.js +0 -678
- package/dist/router/__tests__/on-error.test.js.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
- package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
- package/dist/router/__tests__/pattern-matching.test.js +0 -629
- package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
- package/dist/router/error-handling.d.ts +0 -77
- package/dist/router/error-handling.d.ts.map +0 -1
- package/dist/router/error-handling.js +0 -202
- package/dist/router/error-handling.js.map +0 -1
- package/dist/router/handler-context.d.ts +0 -20
- package/dist/router/handler-context.d.ts.map +0 -1
- package/dist/router/handler-context.js +0 -198
- package/dist/router/handler-context.js.map +0 -1
- package/dist/router/intercept-resolution.d.ts +0 -66
- package/dist/router/intercept-resolution.d.ts.map +0 -1
- package/dist/router/intercept-resolution.js +0 -246
- package/dist/router/intercept-resolution.js.map +0 -1
- package/dist/router/loader-resolution.d.ts +0 -64
- package/dist/router/loader-resolution.d.ts.map +0 -1
- package/dist/router/loader-resolution.js +0 -284
- package/dist/router/loader-resolution.js.map +0 -1
- package/dist/router/logging.d.ts +0 -15
- package/dist/router/logging.d.ts.map +0 -1
- package/dist/router/logging.js +0 -99
- package/dist/router/logging.js.map +0 -1
- package/dist/router/manifest.d.ts +0 -22
- package/dist/router/manifest.d.ts.map +0 -1
- package/dist/router/manifest.js +0 -181
- package/dist/router/manifest.js.map +0 -1
- package/dist/router/match-api.d.ts +0 -35
- package/dist/router/match-api.d.ts.map +0 -1
- package/dist/router/match-api.js +0 -406
- package/dist/router/match-api.js.map +0 -1
- package/dist/router/match-context.d.ts +0 -206
- package/dist/router/match-context.d.ts.map +0 -1
- package/dist/router/match-context.js +0 -17
- package/dist/router/match-context.js.map +0 -1
- package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
- package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
- package/dist/router/match-middleware/background-revalidation.js +0 -75
- package/dist/router/match-middleware/background-revalidation.js.map +0 -1
- package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
- package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-lookup.js +0 -257
- package/dist/router/match-middleware/cache-lookup.js.map +0 -1
- package/dist/router/match-middleware/cache-store.d.ts +0 -113
- package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
- package/dist/router/match-middleware/cache-store.js +0 -108
- package/dist/router/match-middleware/cache-store.js.map +0 -1
- package/dist/router/match-middleware/index.d.ts +0 -81
- package/dist/router/match-middleware/index.d.ts.map +0 -1
- package/dist/router/match-middleware/index.js +0 -80
- package/dist/router/match-middleware/index.js.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
- package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/intercept-resolution.js +0 -134
- package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
- package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
- package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
- package/dist/router/match-middleware/segment-resolution.js +0 -53
- package/dist/router/match-middleware/segment-resolution.js.map +0 -1
- package/dist/router/match-pipelines.d.ts +0 -147
- package/dist/router/match-pipelines.d.ts.map +0 -1
- package/dist/router/match-pipelines.js +0 -82
- package/dist/router/match-pipelines.js.map +0 -1
- package/dist/router/match-result.d.ts +0 -126
- package/dist/router/match-result.d.ts.map +0 -1
- package/dist/router/match-result.js +0 -93
- package/dist/router/match-result.js.map +0 -1
- package/dist/router/metrics.d.ts +0 -20
- package/dist/router/metrics.d.ts.map +0 -1
- package/dist/router/metrics.js +0 -47
- package/dist/router/metrics.js.map +0 -1
- package/dist/router/middleware.d.ts +0 -249
- package/dist/router/middleware.d.ts.map +0 -1
- package/dist/router/middleware.js +0 -434
- package/dist/router/middleware.js.map +0 -1
- package/dist/router/middleware.test.d.ts +0 -2
- package/dist/router/middleware.test.d.ts.map +0 -1
- package/dist/router/middleware.test.js +0 -816
- package/dist/router/middleware.test.js.map +0 -1
- package/dist/router/pattern-matching.d.ts +0 -149
- package/dist/router/pattern-matching.d.ts.map +0 -1
- package/dist/router/pattern-matching.js +0 -349
- package/dist/router/pattern-matching.js.map +0 -1
- package/dist/router/revalidation.d.ts +0 -44
- package/dist/router/revalidation.d.ts.map +0 -1
- package/dist/router/revalidation.js +0 -147
- package/dist/router/revalidation.js.map +0 -1
- package/dist/router/router-context.d.ts +0 -135
- package/dist/router/router-context.d.ts.map +0 -1
- package/dist/router/router-context.js +0 -36
- package/dist/router/router-context.js.map +0 -1
- package/dist/router/segment-resolution.d.ts +0 -127
- package/dist/router/segment-resolution.d.ts.map +0 -1
- package/dist/router/segment-resolution.js +0 -919
- package/dist/router/segment-resolution.js.map +0 -1
- package/dist/router/trie-matching.d.ts +0 -40
- package/dist/router/trie-matching.d.ts.map +0 -1
- package/dist/router/trie-matching.js +0 -127
- package/dist/router/trie-matching.js.map +0 -1
- package/dist/router/types.d.ts +0 -136
- package/dist/router/types.d.ts.map +0 -1
- package/dist/router/types.js +0 -7
- package/dist/router/types.js.map +0 -1
- package/dist/router.d.ts +0 -753
- package/dist/router.d.ts.map +0 -1
- package/dist/router.gen.d.ts +0 -6
- package/dist/router.gen.d.ts.map +0 -1
- package/dist/router.gen.js +0 -6
- package/dist/router.gen.js.map +0 -1
- package/dist/router.js +0 -1304
- package/dist/router.js.map +0 -1
- package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
- package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
- package/dist/rsc/__tests__/helpers.test.js +0 -140
- package/dist/rsc/__tests__/helpers.test.js.map +0 -1
- package/dist/rsc/handler.d.ts +0 -45
- package/dist/rsc/handler.d.ts.map +0 -1
- package/dist/rsc/handler.js +0 -1172
- package/dist/rsc/handler.js.map +0 -1
- package/dist/rsc/helpers.d.ts +0 -16
- package/dist/rsc/helpers.d.ts.map +0 -1
- package/dist/rsc/helpers.js +0 -55
- package/dist/rsc/helpers.js.map +0 -1
- package/dist/rsc/index.d.ts +0 -22
- package/dist/rsc/index.d.ts.map +0 -1
- package/dist/rsc/index.js +0 -23
- package/dist/rsc/index.js.map +0 -1
- package/dist/rsc/nonce.d.ts +0 -9
- package/dist/rsc/nonce.d.ts.map +0 -1
- package/dist/rsc/nonce.js +0 -18
- package/dist/rsc/nonce.js.map +0 -1
- package/dist/rsc/types.d.ts +0 -206
- package/dist/rsc/types.d.ts.map +0 -1
- package/dist/rsc/types.js +0 -8
- package/dist/rsc/types.js.map +0 -1
- package/dist/search-params.d.ts +0 -103
- package/dist/search-params.d.ts.map +0 -1
- package/dist/search-params.js +0 -74
- package/dist/search-params.js.map +0 -1
- package/dist/segment-system.d.ts +0 -75
- package/dist/segment-system.d.ts.map +0 -1
- package/dist/segment-system.js +0 -336
- package/dist/segment-system.js.map +0 -1
- package/dist/server/context.d.ts +0 -245
- package/dist/server/context.d.ts.map +0 -1
- package/dist/server/context.js +0 -197
- package/dist/server/context.js.map +0 -1
- package/dist/server/fetchable-loader-store.d.ts +0 -18
- package/dist/server/fetchable-loader-store.d.ts.map +0 -1
- package/dist/server/fetchable-loader-store.js +0 -18
- package/dist/server/fetchable-loader-store.js.map +0 -1
- package/dist/server/handle-store.d.ts +0 -85
- package/dist/server/handle-store.d.ts.map +0 -1
- package/dist/server/handle-store.js +0 -142
- package/dist/server/handle-store.js.map +0 -1
- package/dist/server/loader-registry.d.ts +0 -55
- package/dist/server/loader-registry.d.ts.map +0 -1
- package/dist/server/loader-registry.js +0 -132
- package/dist/server/loader-registry.js.map +0 -1
- package/dist/server/request-context.d.ts +0 -226
- package/dist/server/request-context.d.ts.map +0 -1
- package/dist/server/request-context.js +0 -290
- package/dist/server/request-context.js.map +0 -1
- package/dist/server/root-layout.d.ts +0 -4
- package/dist/server/root-layout.d.ts.map +0 -1
- package/dist/server/root-layout.js +0 -5
- package/dist/server/root-layout.js.map +0 -1
- package/dist/server.d.ts +0 -15
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -20
- package/dist/server.js.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
- package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
- package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
- package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
- package/dist/ssr/index.d.ts +0 -98
- package/dist/ssr/index.d.ts.map +0 -1
- package/dist/ssr/index.js +0 -158
- package/dist/ssr/index.js.map +0 -1
- package/dist/static-handler.d.ts +0 -50
- package/dist/static-handler.d.ts.map +0 -1
- package/dist/static-handler.gen.d.ts +0 -5
- package/dist/static-handler.gen.d.ts.map +0 -1
- package/dist/static-handler.gen.js +0 -5
- package/dist/static-handler.gen.js.map +0 -1
- package/dist/static-handler.js +0 -29
- package/dist/static-handler.js.map +0 -1
- package/dist/theme/ThemeProvider.d.ts +0 -20
- package/dist/theme/ThemeProvider.d.ts.map +0 -1
- package/dist/theme/ThemeProvider.js +0 -240
- package/dist/theme/ThemeProvider.js.map +0 -1
- package/dist/theme/ThemeScript.d.ts +0 -48
- package/dist/theme/ThemeScript.d.ts.map +0 -1
- package/dist/theme/ThemeScript.js +0 -13
- package/dist/theme/ThemeScript.js.map +0 -1
- package/dist/theme/__tests__/theme.test.d.ts +0 -2
- package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
- package/dist/theme/__tests__/theme.test.js +0 -103
- package/dist/theme/__tests__/theme.test.js.map +0 -1
- package/dist/theme/constants.d.ts +0 -29
- package/dist/theme/constants.d.ts.map +0 -1
- package/dist/theme/constants.js +0 -48
- package/dist/theme/constants.js.map +0 -1
- package/dist/theme/index.d.ts +0 -31
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js +0 -36
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/theme-context.d.ts +0 -40
- package/dist/theme/theme-context.d.ts.map +0 -1
- package/dist/theme/theme-context.js +0 -60
- package/dist/theme/theme-context.js.map +0 -1
- package/dist/theme/theme-script.d.ts +0 -27
- package/dist/theme/theme-script.d.ts.map +0 -1
- package/dist/theme/theme-script.js +0 -147
- package/dist/theme/theme-script.js.map +0 -1
- package/dist/theme/types.d.ts +0 -163
- package/dist/theme/types.d.ts.map +0 -1
- package/dist/theme/types.js +0 -11
- package/dist/theme/types.js.map +0 -1
- package/dist/theme/use-theme.d.ts +0 -12
- package/dist/theme/use-theme.d.ts.map +0 -1
- package/dist/theme/use-theme.js +0 -40
- package/dist/theme/use-theme.js.map +0 -1
- package/dist/types.d.ts +0 -1479
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -10
- package/dist/types.js.map +0 -1
- package/dist/urls.d.ts +0 -441
- package/dist/urls.d.ts.map +0 -1
- package/dist/urls.gen.d.ts +0 -8
- package/dist/urls.gen.d.ts.map +0 -1
- package/dist/urls.gen.js +0 -8
- package/dist/urls.gen.js.map +0 -1
- package/dist/urls.js +0 -443
- package/dist/urls.js.map +0 -1
- package/dist/use-loader.d.ts +0 -127
- package/dist/use-loader.d.ts.map +0 -1
- package/dist/use-loader.js +0 -237
- package/dist/use-loader.js.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
- package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
- package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
- package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
- package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
- package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
- package/dist/vite/__tests__/expose-router-id.test.js +0 -39
- package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
- package/dist/vite/ast-handler-extract.d.ts +0 -49
- package/dist/vite/ast-handler-extract.d.ts.map +0 -1
- package/dist/vite/ast-handler-extract.js +0 -249
- package/dist/vite/ast-handler-extract.js.map +0 -1
- package/dist/vite/expose-action-id.d.ts +0 -19
- package/dist/vite/expose-action-id.d.ts.map +0 -1
- package/dist/vite/expose-action-id.js +0 -250
- package/dist/vite/expose-action-id.js.map +0 -1
- package/dist/vite/expose-id-utils.d.ts +0 -69
- package/dist/vite/expose-id-utils.d.ts.map +0 -1
- package/dist/vite/expose-id-utils.js +0 -289
- package/dist/vite/expose-id-utils.js.map +0 -1
- package/dist/vite/expose-internal-ids.d.ts +0 -22
- package/dist/vite/expose-internal-ids.d.ts.map +0 -1
- package/dist/vite/expose-internal-ids.js +0 -886
- package/dist/vite/expose-internal-ids.js.map +0 -1
- package/dist/vite/index.d.ts +0 -149
- package/dist/vite/index.d.ts.map +0 -1
- package/dist/vite/index.js.bak +0 -5448
- package/dist/vite/index.js.map +0 -1
- package/dist/vite/index.named-routes.gen.ts +0 -103
- package/dist/vite/package-resolution.d.ts +0 -43
- package/dist/vite/package-resolution.d.ts.map +0 -1
- package/dist/vite/package-resolution.js +0 -112
- package/dist/vite/package-resolution.js.map +0 -1
- package/dist/vite/virtual-entries.d.ts +0 -25
- package/dist/vite/virtual-entries.d.ts.map +0 -1
- package/dist/vite/virtual-entries.js +0 -110
- package/dist/vite/virtual-entries.js.map +0 -1
- package/skills/migrate-react-router/cloudflare-workers.md +0 -129
package/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) {
|
|
@@ -2210,21 +2320,35 @@ async function initializeApp() {
|
|
|
2210
2320
|
|
|
2211
2321
|
initializeApp().catch(console.error);
|
|
2212
2322
|
`.trim();
|
|
2213
|
-
|
|
2214
|
-
|
|
2323
|
+
function getVirtualEntrySSR(headScripts = "preinit") {
|
|
2324
|
+
const preinit = headScripts !== "preload";
|
|
2325
|
+
const depsImportNames = preinit ? "createFromReadableStream,\n setOnClientReference," : "createFromReadableStream,";
|
|
2326
|
+
const ssrImportNames = preinit ? "\n installClientReferencePreinit," : "";
|
|
2327
|
+
const install = preinit ? `
|
|
2328
|
+
// Upgrade client-reference modulepreload hints to executing module scripts in
|
|
2329
|
+
// the document head, for every render pass (live SSR, shell capture, resume).
|
|
2330
|
+
// See src/ssr/preinit-client-references.ts for the full rationale.
|
|
2331
|
+
installClientReferencePreinit(setOnClientReference);
|
|
2332
|
+
` : "";
|
|
2333
|
+
const hs = JSON.stringify(headScripts);
|
|
2334
|
+
return `
|
|
2335
|
+
import {
|
|
2336
|
+
${depsImportNames}
|
|
2337
|
+
} from "@rangojs/router/internal/deps/ssr";
|
|
2215
2338
|
import { renderToReadableStream, resume } from "react-dom/server.edge";
|
|
2216
2339
|
import { prerender } from "react-dom/static.edge";
|
|
2217
2340
|
import { injectRSCPayload } from "@rangojs/router/internal/deps/html-stream-server";
|
|
2218
2341
|
import {
|
|
2219
2342
|
createSSRHandler,
|
|
2220
2343
|
createShellCaptureHandler,
|
|
2221
|
-
createShellResumeHandler
|
|
2344
|
+
createShellResumeHandler,${ssrImportNames}
|
|
2222
2345
|
} from "@rangojs/router/ssr";
|
|
2223
|
-
|
|
2346
|
+
${install}
|
|
2224
2347
|
export const renderHTML = createSSRHandler({
|
|
2225
2348
|
createFromReadableStream,
|
|
2226
2349
|
renderToReadableStream,
|
|
2227
2350
|
injectRSCPayload,
|
|
2351
|
+
headScripts: ${hs},
|
|
2228
2352
|
loadBootstrapScriptContent: () =>
|
|
2229
2353
|
import.meta.viteRsc.loadBootstrapScriptContent("index"),
|
|
2230
2354
|
});
|
|
@@ -2235,6 +2359,7 @@ export const captureShellHTML = createShellCaptureHandler({
|
|
|
2235
2359
|
injectRSCPayload,
|
|
2236
2360
|
prerender,
|
|
2237
2361
|
resume,
|
|
2362
|
+
headScripts: ${hs},
|
|
2238
2363
|
loadBootstrapScriptContent: () =>
|
|
2239
2364
|
import.meta.viteRsc.loadBootstrapScriptContent("index"),
|
|
2240
2365
|
});
|
|
@@ -2245,10 +2370,12 @@ export const resumeShellHTML = createShellResumeHandler({
|
|
|
2245
2370
|
injectRSCPayload,
|
|
2246
2371
|
prerender,
|
|
2247
2372
|
resume,
|
|
2373
|
+
headScripts: ${hs},
|
|
2248
2374
|
loadBootstrapScriptContent: () =>
|
|
2249
2375
|
import.meta.viteRsc.loadBootstrapScriptContent("index"),
|
|
2250
2376
|
});
|
|
2251
2377
|
`.trim();
|
|
2378
|
+
}
|
|
2252
2379
|
var RSC_ENTRY_BOOTSTRAP_IMPORTS = [
|
|
2253
2380
|
"virtual:rsc-router/routes-manifest",
|
|
2254
2381
|
"virtual:rsc-router/loader-manifest"
|
|
@@ -2393,7 +2520,7 @@ import { resolve } from "node:path";
|
|
|
2393
2520
|
// package.json
|
|
2394
2521
|
var package_default = {
|
|
2395
2522
|
name: "@rangojs/router",
|
|
2396
|
-
version: "0.
|
|
2523
|
+
version: "0.1.0",
|
|
2397
2524
|
description: "Django-inspired RSC router with composable URL patterns",
|
|
2398
2525
|
keywords: [
|
|
2399
2526
|
"react",
|
|
@@ -2430,144 +2557,150 @@ var package_default = {
|
|
|
2430
2557
|
type: "module",
|
|
2431
2558
|
exports: {
|
|
2432
2559
|
".": {
|
|
2433
|
-
types: "./
|
|
2560
|
+
types: "./dist/types/index.rsc.d.ts",
|
|
2434
2561
|
"react-server": "./src/index.rsc.ts",
|
|
2435
2562
|
default: "./src/index.ts"
|
|
2436
2563
|
},
|
|
2437
2564
|
"./server": {
|
|
2438
|
-
types: "./
|
|
2565
|
+
types: "./dist/types/server.d.ts",
|
|
2439
2566
|
import: "./src/server.ts"
|
|
2440
2567
|
},
|
|
2441
2568
|
"./client": {
|
|
2442
|
-
types: "./
|
|
2569
|
+
types: "./dist/types/client.d.ts",
|
|
2443
2570
|
"react-server": "./src/client.rsc.tsx",
|
|
2444
2571
|
default: "./src/client.tsx"
|
|
2445
2572
|
},
|
|
2446
2573
|
"./browser": {
|
|
2447
|
-
types: "./
|
|
2574
|
+
types: "./dist/types/browser/index.d.ts",
|
|
2448
2575
|
default: "./src/browser/index.ts"
|
|
2449
2576
|
},
|
|
2450
2577
|
"./ssr": {
|
|
2451
|
-
types: "./
|
|
2578
|
+
types: "./dist/types/ssr/index.d.ts",
|
|
2452
2579
|
default: "./src/ssr/index.tsx"
|
|
2453
2580
|
},
|
|
2454
2581
|
"./rsc": {
|
|
2455
|
-
types: "./
|
|
2582
|
+
types: "./dist/types/rsc/index.d.ts",
|
|
2456
2583
|
"react-server": "./src/rsc/index.ts",
|
|
2457
2584
|
default: "./src/rsc/index.ts"
|
|
2458
2585
|
},
|
|
2459
2586
|
"./vite": {
|
|
2460
|
-
types: "./
|
|
2587
|
+
types: "./dist/types/vite/index.d.ts",
|
|
2461
2588
|
import: "./dist/vite/index.js"
|
|
2462
2589
|
},
|
|
2463
2590
|
"./types": {
|
|
2464
2591
|
types: "./src/vite/plugins/version.d.ts"
|
|
2465
2592
|
},
|
|
2466
2593
|
"./__internal": {
|
|
2467
|
-
types: "./
|
|
2594
|
+
types: "./dist/types/__internal.d.ts",
|
|
2468
2595
|
default: "./src/__internal.ts"
|
|
2469
2596
|
},
|
|
2470
2597
|
"./internal/deps/browser": {
|
|
2471
|
-
types: "./
|
|
2598
|
+
types: "./dist/types/deps/browser.d.ts",
|
|
2472
2599
|
default: "./src/deps/browser.ts"
|
|
2473
2600
|
},
|
|
2474
2601
|
"./internal/deps/ssr": {
|
|
2475
|
-
types: "./
|
|
2602
|
+
types: "./dist/types/deps/ssr.d.ts",
|
|
2476
2603
|
default: "./src/deps/ssr.ts"
|
|
2477
2604
|
},
|
|
2478
2605
|
"./internal/deps/rsc": {
|
|
2479
|
-
types: "./
|
|
2606
|
+
types: "./dist/types/deps/rsc.d.ts",
|
|
2480
2607
|
"react-server": "./src/deps/rsc.ts",
|
|
2481
2608
|
default: "./src/deps/rsc.ts"
|
|
2482
2609
|
},
|
|
2483
2610
|
"./internal/deps/html-stream-client": {
|
|
2484
|
-
types: "./
|
|
2611
|
+
types: "./dist/types/deps/html-stream-client.d.ts",
|
|
2485
2612
|
default: "./src/deps/html-stream-client.ts"
|
|
2486
2613
|
},
|
|
2487
2614
|
"./internal/deps/html-stream-server": {
|
|
2488
|
-
types: "./
|
|
2615
|
+
types: "./dist/types/deps/html-stream-server.d.ts",
|
|
2489
2616
|
default: "./src/deps/html-stream-server.ts"
|
|
2490
2617
|
},
|
|
2491
2618
|
"./internal/rsc-handler": {
|
|
2492
|
-
types: "./
|
|
2619
|
+
types: "./dist/types/rsc/handler.d.ts",
|
|
2493
2620
|
"react-server": "./src/rsc/handler.ts",
|
|
2494
2621
|
default: "./src/rsc/handler.ts"
|
|
2495
2622
|
},
|
|
2496
2623
|
"./cache": {
|
|
2497
|
-
types: "./
|
|
2624
|
+
types: "./dist/types/cache/index.d.ts",
|
|
2498
2625
|
"react-server": "./src/cache/index.ts",
|
|
2499
2626
|
default: "./src/cache/index.ts"
|
|
2500
2627
|
},
|
|
2501
2628
|
"./cache-runtime": {
|
|
2502
|
-
types: "./
|
|
2629
|
+
types: "./dist/types/cache/cache-runtime.d.ts",
|
|
2503
2630
|
"react-server": "./src/cache/cache-runtime.ts",
|
|
2504
2631
|
default: "./src/cache/cache-runtime.ts"
|
|
2505
2632
|
},
|
|
2506
2633
|
"./cloudflare": {
|
|
2507
|
-
types: "./
|
|
2634
|
+
types: "./dist/types/cloudflare/index.d.ts",
|
|
2508
2635
|
"react-server": "./src/cloudflare/index.ts",
|
|
2509
2636
|
default: "./src/cloudflare/index.ts"
|
|
2510
2637
|
},
|
|
2511
2638
|
"./vercel": {
|
|
2512
|
-
types: "./
|
|
2639
|
+
types: "./dist/types/vercel/index.d.ts",
|
|
2513
2640
|
"react-server": "./src/vercel/index.ts",
|
|
2514
2641
|
default: "./src/vercel/index.ts"
|
|
2515
2642
|
},
|
|
2516
2643
|
"./theme": {
|
|
2517
|
-
types: "./
|
|
2644
|
+
types: "./dist/types/theme/index.d.ts",
|
|
2518
2645
|
default: "./src/theme/index.ts"
|
|
2519
2646
|
},
|
|
2520
2647
|
"./build": {
|
|
2521
|
-
types: "./
|
|
2648
|
+
types: "./dist/types/build/index.d.ts",
|
|
2522
2649
|
import: "./src/build/index.ts"
|
|
2523
2650
|
},
|
|
2651
|
+
"./build/shell-capture": {
|
|
2652
|
+
types: "./dist/types/prerender/build-shell-capture.d.ts",
|
|
2653
|
+
"react-server": "./src/prerender/build-shell-capture.ts",
|
|
2654
|
+
import: "./src/prerender/build-shell-capture.ts"
|
|
2655
|
+
},
|
|
2524
2656
|
"./host": {
|
|
2525
|
-
types: "./
|
|
2657
|
+
types: "./dist/types/host/index.d.ts",
|
|
2526
2658
|
"react-server": "./src/host/index.ts",
|
|
2527
2659
|
default: "./src/host/index.ts"
|
|
2528
2660
|
},
|
|
2529
2661
|
"./host/testing": {
|
|
2530
|
-
types: "./
|
|
2662
|
+
types: "./dist/types/host/testing.d.ts",
|
|
2531
2663
|
default: "./src/host/testing.ts"
|
|
2532
2664
|
},
|
|
2533
2665
|
"./testing": {
|
|
2534
|
-
types: "./
|
|
2666
|
+
types: "./dist/types/testing/index.d.ts",
|
|
2535
2667
|
default: "./src/testing/index.ts"
|
|
2536
2668
|
},
|
|
2537
2669
|
"./testing/vitest": {
|
|
2538
|
-
types: "./
|
|
2670
|
+
types: "./dist/types/testing/vitest.d.ts",
|
|
2539
2671
|
default: "./dist/testing/vitest.js"
|
|
2540
2672
|
},
|
|
2541
2673
|
"./testing/dom": {
|
|
2542
|
-
types: "./
|
|
2674
|
+
types: "./dist/types/testing/dom.entry.d.ts",
|
|
2543
2675
|
default: "./src/testing/dom.entry.ts"
|
|
2544
2676
|
},
|
|
2545
2677
|
"./testing/e2e": {
|
|
2546
|
-
types: "./
|
|
2678
|
+
types: "./dist/types/testing/e2e/index.d.ts",
|
|
2547
2679
|
default: "./src/testing/e2e/index.ts"
|
|
2548
2680
|
},
|
|
2549
2681
|
"./testing/flight": {
|
|
2550
|
-
types: "./
|
|
2682
|
+
types: "./dist/types/testing/flight.entry.d.ts",
|
|
2551
2683
|
"react-server": "./src/testing/flight.entry.ts",
|
|
2552
2684
|
default: "./src/testing/flight.entry.ts"
|
|
2553
2685
|
},
|
|
2554
2686
|
"./testing/flight-matchers": {
|
|
2555
|
-
types: "./
|
|
2687
|
+
types: "./dist/types/testing/flight-matchers.d.ts",
|
|
2556
2688
|
default: "./src/testing/flight-matchers.ts"
|
|
2557
2689
|
}
|
|
2558
2690
|
},
|
|
2559
2691
|
publishConfig: {
|
|
2560
2692
|
access: "public",
|
|
2561
|
-
tag: "
|
|
2693
|
+
tag: "latest"
|
|
2562
2694
|
},
|
|
2563
2695
|
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",
|
|
2696
|
+
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",
|
|
2697
|
+
"build:types": "rm -rf dist/types && pnpm exec tsc -p tsconfig.types.json",
|
|
2565
2698
|
prepublishOnly: "pnpm build",
|
|
2566
2699
|
typecheck: "tsc --noEmit && tsc -p tsconfig.strict-check.json --noEmit && tsc -p tsconfig.augment-check.json --noEmit",
|
|
2567
2700
|
test: "playwright test",
|
|
2568
2701
|
"test:ui": "playwright test --ui",
|
|
2569
2702
|
"test:hmr-local": "playwright test --project=dev-warmup --project=hmr-routes --project=hmr-basename --project=hmr-prerender --no-deps --workers=1",
|
|
2570
|
-
"test:unit": "vitest run",
|
|
2703
|
+
"test:unit": "pnpm run build:types && vitest run",
|
|
2571
2704
|
"test:unit:watch": "vitest",
|
|
2572
2705
|
"test:unit:rsc": "vitest run --config vitest.rsc.config.ts"
|
|
2573
2706
|
},
|
|
@@ -2636,7 +2769,7 @@ var package_default = {
|
|
|
2636
2769
|
}
|
|
2637
2770
|
},
|
|
2638
2771
|
engines: {
|
|
2639
|
-
node: "
|
|
2772
|
+
node: ">=24.0.0"
|
|
2640
2773
|
}
|
|
2641
2774
|
};
|
|
2642
2775
|
|
|
@@ -2684,6 +2817,7 @@ function getPackageAliases() {
|
|
|
2684
2817
|
}
|
|
2685
2818
|
function getVendorAliases() {
|
|
2686
2819
|
const specs = [
|
|
2820
|
+
"@vitejs/plugin-rsc/vendor/react-server-dom/client.browser",
|
|
2687
2821
|
"@vitejs/plugin-rsc/vendor/react-server-dom/client.edge",
|
|
2688
2822
|
"@vitejs/plugin-rsc/vendor/react-server-dom/server.edge"
|
|
2689
2823
|
];
|
|
@@ -3832,6 +3966,13 @@ function createVersionPlugin() {
|
|
|
3832
3966
|
return {
|
|
3833
3967
|
name: "@rangojs/router:version",
|
|
3834
3968
|
enforce: "pre",
|
|
3969
|
+
// The build-time shell capture phase (producer B, #699) stamps entries
|
|
3970
|
+
// with THIS instance's version — the value folded into the shipped worker
|
|
3971
|
+
// — never the discovery temp server's own version-plugin value (a
|
|
3972
|
+
// different Date.now() stamp that would fail the serve-side gate).
|
|
3973
|
+
api: {
|
|
3974
|
+
getBuildVersion: () => currentVersion
|
|
3975
|
+
},
|
|
3835
3976
|
configResolved(config) {
|
|
3836
3977
|
isDev = config.command === "serve";
|
|
3837
3978
|
resolvedCacheDir = config.cacheDir ? String(config.cacheDir).replace(/\\/g, "/") : void 0;
|
|
@@ -3922,6 +4063,7 @@ import * as Vite from "vite";
|
|
|
3922
4063
|
import { isAbsolute, resolve as resolve4 } from "node:path";
|
|
3923
4064
|
|
|
3924
4065
|
// src/vite/plugins/performance-tracks.ts
|
|
4066
|
+
init_debug();
|
|
3925
4067
|
import { readFile } from "node:fs/promises";
|
|
3926
4068
|
var debug6 = createRangoDebugger(NS.transform);
|
|
3927
4069
|
var RSDW_PATCH_RE = /((?:var|let|const)\s+\w+\s*=\s*root\._children\s*,\s*(\w+)\s*=\s*root\._debugInfo\s*[;,])/;
|
|
@@ -4017,13 +4159,13 @@ function normalizeHostRouterEntry(rawInput, root, exists) {
|
|
|
4017
4159
|
}
|
|
4018
4160
|
return exists(resolve4(root, raw)) ? "./" + raw : raw;
|
|
4019
4161
|
}
|
|
4020
|
-
function createVirtualEntriesPlugin(entries, routerPathRef) {
|
|
4162
|
+
function createVirtualEntriesPlugin(entries, routerPathRef, options) {
|
|
4021
4163
|
const virtualModules = {};
|
|
4022
4164
|
if (entries.client === VIRTUAL_IDS.browser) {
|
|
4023
4165
|
virtualModules[VIRTUAL_IDS.browser] = VIRTUAL_ENTRY_BROWSER;
|
|
4024
4166
|
}
|
|
4025
4167
|
if (entries.ssr === VIRTUAL_IDS.ssr) {
|
|
4026
|
-
virtualModules[VIRTUAL_IDS.ssr] =
|
|
4168
|
+
virtualModules[VIRTUAL_IDS.ssr] = getVirtualEntrySSR(options?.headScripts);
|
|
4027
4169
|
}
|
|
4028
4170
|
const knownIds = new Set(Object.keys(virtualModules));
|
|
4029
4171
|
if (entries.rsc === VIRTUAL_IDS.rsc) {
|
|
@@ -4104,83 +4246,17 @@ function getManualChunks(id) {
|
|
|
4104
4246
|
return void 0;
|
|
4105
4247
|
}
|
|
4106
4248
|
|
|
4107
|
-
// src/vite/
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
var
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
return createHash2("sha256").update(relativeId).digest("hex").slice(0, 12);
|
|
4249
|
+
// src/vite/utils/client-chunks.ts
|
|
4250
|
+
init_debug();
|
|
4251
|
+
init_client_ref_hashing();
|
|
4252
|
+
var debugChunks = createRangoDebugger(NS.chunks);
|
|
4253
|
+
function isSharedRuntime(meta) {
|
|
4254
|
+
return [meta.id, meta.normalizedId].some(
|
|
4255
|
+
(path6) => path6.includes("/node_modules/") || /\/@rangojs\/router\//.test(path6) || /\/packages\/(rangojs-router|rsc-router)\/(src|dist)\//.test(path6)
|
|
4256
|
+
);
|
|
4116
4257
|
}
|
|
4117
|
-
function
|
|
4118
|
-
|
|
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
|
-
);
|
|
4181
|
-
}
|
|
4182
|
-
function sanitizeGroup(name) {
|
|
4183
|
-
return name.replace(/[^a-zA-Z0-9_-]+/g, "_").replace(/^_+|_+$/g, "") || "app";
|
|
4258
|
+
function sanitizeGroup(name) {
|
|
4259
|
+
return name.replace(/[^a-zA-Z0-9_-]+/g, "_").replace(/^_+|_+$/g, "") || "app";
|
|
4184
4260
|
}
|
|
4185
4261
|
var ROUTE_ROOT_DIRS = /* @__PURE__ */ new Set([
|
|
4186
4262
|
"routes",
|
|
@@ -4528,6 +4604,7 @@ function createVersionInjectorPlugin(rscEntryPath) {
|
|
|
4528
4604
|
}
|
|
4529
4605
|
|
|
4530
4606
|
// src/vite/plugins/cjs-to-esm.ts
|
|
4607
|
+
init_debug();
|
|
4531
4608
|
var debug8 = createRangoDebugger(NS.transform);
|
|
4532
4609
|
function createCjsToEsmPlugin() {
|
|
4533
4610
|
let isProduction = false;
|
|
@@ -4591,11 +4668,33 @@ function createCjsToEsmPlugin() {
|
|
|
4591
4668
|
|
|
4592
4669
|
// src/vite/router-discovery.ts
|
|
4593
4670
|
import { createServer as createViteServer } from "vite";
|
|
4594
|
-
import { resolve as
|
|
4595
|
-
import { readFileSync as
|
|
4671
|
+
import { resolve as resolve11 } from "node:path";
|
|
4672
|
+
import { readFileSync as readFileSync7 } from "node:fs";
|
|
4596
4673
|
import { createRequire as createRequire3, register } from "node:module";
|
|
4597
4674
|
import { pathToFileURL as pathToFileURL2 } from "node:url";
|
|
4598
4675
|
|
|
4676
|
+
// src/rsc/shell-serve.ts
|
|
4677
|
+
import React from "react";
|
|
4678
|
+
|
|
4679
|
+
// src/server/context.ts
|
|
4680
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
4681
|
+
var RSC_CONTEXT_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:rsc-context");
|
|
4682
|
+
var RangoContext = globalThis[RSC_CONTEXT_KEY] ??= new AsyncLocalStorage();
|
|
4683
|
+
var LOADER_SCOPE_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:loader-scope");
|
|
4684
|
+
var loaderScopeALS = globalThis[LOADER_SCOPE_KEY] ??= new AsyncLocalStorage();
|
|
4685
|
+
var LOADER_BODY_SCOPE_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:loader-body-scope");
|
|
4686
|
+
var loaderBodyScopeALS = globalThis[LOADER_BODY_SCOPE_KEY] ??= new AsyncLocalStorage();
|
|
4687
|
+
var PUSH_CALLBACK_SCOPE_KEY = /* @__PURE__ */ Symbol.for(
|
|
4688
|
+
"rangojs-router:push-callback-scope"
|
|
4689
|
+
);
|
|
4690
|
+
var pushCallbackScopeALS = globalThis[PUSH_CALLBACK_SCOPE_KEY] ??= new AsyncLocalStorage();
|
|
4691
|
+
|
|
4692
|
+
// src/rsc/shell-serve.ts
|
|
4693
|
+
var DEV_SHELL_PROBE_TIMEOUT_MS = 1e4;
|
|
4694
|
+
function normalizeCaptureTimeout(value) {
|
|
4695
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 1 ? value : void 0;
|
|
4696
|
+
}
|
|
4697
|
+
|
|
4599
4698
|
// src/vite/inject-client-debug.ts
|
|
4600
4699
|
function isRouterInternalDebugId(id) {
|
|
4601
4700
|
if (!id.includes("internal-debug")) return false;
|
|
@@ -4756,6 +4855,9 @@ function walk(node, visit) {
|
|
|
4756
4855
|
}
|
|
4757
4856
|
}
|
|
4758
4857
|
|
|
4858
|
+
// src/vite/router-discovery.ts
|
|
4859
|
+
init_client_ref_hashing();
|
|
4860
|
+
|
|
4759
4861
|
// src/vite/utils/bundle-analysis.ts
|
|
4760
4862
|
function findMatchingParenInBundle(code, openParenPos) {
|
|
4761
4863
|
let depth = 1;
|
|
@@ -4860,6 +4962,9 @@ function createDiscoveryState(entryPath, opts) {
|
|
|
4860
4962
|
perRouterManifestDataMap: /* @__PURE__ */ new Map(),
|
|
4861
4963
|
prerenderManifestEntries: null,
|
|
4862
4964
|
staticManifestEntries: null,
|
|
4965
|
+
shellCandidates: null,
|
|
4966
|
+
prerenderPayloadValues: null,
|
|
4967
|
+
shellPhaseTempServer: null,
|
|
4863
4968
|
handlerChunkInfoMap: /* @__PURE__ */ new Map(),
|
|
4864
4969
|
staticHandlerChunkInfoMap: /* @__PURE__ */ new Map(),
|
|
4865
4970
|
rscEntryFileName: null,
|
|
@@ -4909,13 +5014,13 @@ function checkSelfGenWrite(state, filePath, consume) {
|
|
|
4909
5014
|
}
|
|
4910
5015
|
|
|
4911
5016
|
// src/router/logging.ts
|
|
4912
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5017
|
+
import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
|
|
4913
5018
|
|
|
4914
5019
|
// src/internal-debug.ts
|
|
4915
5020
|
var INTERNAL_RANGO_DEBUG = typeof process !== "undefined" && Boolean(process.env?.INTERNAL_RANGO_DEBUG);
|
|
4916
5021
|
|
|
4917
5022
|
// src/router/logging.ts
|
|
4918
|
-
var routerLogContext = new
|
|
5023
|
+
var routerLogContext = new AsyncLocalStorage2();
|
|
4919
5024
|
|
|
4920
5025
|
// src/router/url-params.ts
|
|
4921
5026
|
var PATH_SAFE_ESCAPES = {
|
|
@@ -5037,10 +5142,9 @@ function buildRouteToStaticPrefix(prefixTree, result) {
|
|
|
5037
5142
|
}
|
|
5038
5143
|
|
|
5039
5144
|
// src/build/route-trie.ts
|
|
5040
|
-
function buildRouteTrie(routeManifest,
|
|
5145
|
+
function buildRouteTrie(routeManifest, routeToStaticPrefix, routeTrailingSlash, prerenderRouteNames, passthroughRouteNames, responseTypeRoutes) {
|
|
5041
5146
|
const root = {};
|
|
5042
5147
|
for (const [routeName, pattern] of Object.entries(routeManifest)) {
|
|
5043
|
-
const ancestry = routeAncestry[routeName] || [];
|
|
5044
5148
|
const staticPrefix = routeToStaticPrefix[routeName] || "";
|
|
5045
5149
|
const trailingSlash = routeTrailingSlash?.[routeName];
|
|
5046
5150
|
const responseType = responseTypeRoutes?.[routeName];
|
|
@@ -5050,7 +5154,6 @@ function buildRouteTrie(routeManifest, routeAncestry, routeToStaticPrefix, route
|
|
|
5050
5154
|
insertRoute(root, segments, 0, {
|
|
5051
5155
|
n: routeName,
|
|
5052
5156
|
sp: staticPrefix,
|
|
5053
|
-
a: ancestry,
|
|
5054
5157
|
...trailingSlash ? { ts: trailingSlash } : {},
|
|
5055
5158
|
...prerenderRouteNames?.has(routeName) ? { pr: true } : {},
|
|
5056
5159
|
...passthroughRouteNames?.has(routeName) ? { pt: true } : {},
|
|
@@ -5083,8 +5186,7 @@ function sortSuffixParams(node) {
|
|
|
5083
5186
|
}
|
|
5084
5187
|
}
|
|
5085
5188
|
function buildPerRouterTrie(manifest) {
|
|
5086
|
-
|
|
5087
|
-
if (!ancestry || Object.keys(ancestry).length === 0) {
|
|
5189
|
+
if (Object.keys(manifest.routeManifest).length === 0) {
|
|
5088
5190
|
return null;
|
|
5089
5191
|
}
|
|
5090
5192
|
const routeToStaticPrefix = {};
|
|
@@ -5096,7 +5198,6 @@ function buildPerRouterTrie(manifest) {
|
|
|
5096
5198
|
}
|
|
5097
5199
|
return buildRouteTrie(
|
|
5098
5200
|
manifest.routeManifest,
|
|
5099
|
-
ancestry,
|
|
5100
5201
|
routeToStaticPrefix,
|
|
5101
5202
|
manifest.routeTrailingSlash,
|
|
5102
5203
|
manifest.prerenderRoutes ? new Set(manifest.prerenderRoutes) : void 0,
|
|
@@ -5442,18 +5543,24 @@ function getStagedAssetDir(projectRoot) {
|
|
|
5442
5543
|
function resetStagedBuildAssets(projectRoot) {
|
|
5443
5544
|
rmSync(getStagedAssetDir(projectRoot), { recursive: true, force: true });
|
|
5444
5545
|
}
|
|
5445
|
-
function
|
|
5446
|
-
|
|
5447
|
-
mkdirSync(stagedDir, { recursive: true });
|
|
5546
|
+
function writeBuildAssetModule(dir, prefix, exportValue) {
|
|
5547
|
+
mkdirSync(dir, { recursive: true });
|
|
5448
5548
|
const contentHash = createHash4("sha256").update(exportValue).digest("hex").slice(0, 8);
|
|
5449
5549
|
const fileName = `${prefix}-${contentHash}.js`;
|
|
5450
|
-
const filePath = resolve7(
|
|
5550
|
+
const filePath = resolve7(dir, fileName);
|
|
5451
5551
|
if (!existsSync5(filePath)) {
|
|
5452
5552
|
writeFileSync2(filePath, `export default ${exportValue};
|
|
5453
5553
|
`);
|
|
5454
5554
|
}
|
|
5455
5555
|
return fileName;
|
|
5456
5556
|
}
|
|
5557
|
+
function stageBuildAssetModule(projectRoot, prefix, exportValue) {
|
|
5558
|
+
return writeBuildAssetModule(
|
|
5559
|
+
getStagedAssetDir(projectRoot),
|
|
5560
|
+
prefix,
|
|
5561
|
+
exportValue
|
|
5562
|
+
);
|
|
5563
|
+
}
|
|
5457
5564
|
function copyStagedBuildAssets(projectRoot, fileNames) {
|
|
5458
5565
|
const stagedDir = getStagedAssetDir(projectRoot);
|
|
5459
5566
|
const distAssetsDir = resolve7(projectRoot, "dist/rsc/assets");
|
|
@@ -5469,6 +5576,7 @@ function copyStagedBuildAssets(projectRoot, fileNames) {
|
|
|
5469
5576
|
}
|
|
5470
5577
|
|
|
5471
5578
|
// src/vite/discovery/prerender-collection.ts
|
|
5579
|
+
init_debug();
|
|
5472
5580
|
var debug9 = createRangoDebugger(NS.prerender);
|
|
5473
5581
|
async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
5474
5582
|
if (!state.opts?.enableBuildPrerender || !state.isBuildMode) return;
|
|
@@ -5676,6 +5784,18 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
|
|
|
5676
5784
|
"__pr",
|
|
5677
5785
|
mainValue
|
|
5678
5786
|
);
|
|
5787
|
+
if (result.ppr !== void 0 && result.ppr !== false) {
|
|
5788
|
+
(state.shellCandidates ??= []).push({
|
|
5789
|
+
urlPath: entry.urlPath,
|
|
5790
|
+
routeName: result.routeName,
|
|
5791
|
+
paramHash,
|
|
5792
|
+
ppr: result.ppr === true ? true : result.ppr
|
|
5793
|
+
});
|
|
5794
|
+
(state.prerenderPayloadValues ??= /* @__PURE__ */ new Map()).set(
|
|
5795
|
+
mainKey,
|
|
5796
|
+
mainValue
|
|
5797
|
+
);
|
|
5798
|
+
}
|
|
5679
5799
|
if (result.interceptSegments?.length) {
|
|
5680
5800
|
const interceptKey = `${result.routeName}/${paramHash}/i`;
|
|
5681
5801
|
const interceptValue = JSON.stringify({
|
|
@@ -5926,6 +6046,8 @@ function describeDiscoveryFailure(err, opts = {}) {
|
|
|
5926
6046
|
}
|
|
5927
6047
|
|
|
5928
6048
|
// src/vite/discovery/discover-routers.ts
|
|
6049
|
+
init_debug();
|
|
6050
|
+
init_client_ref_hashing();
|
|
5929
6051
|
var debug10 = createRangoDebugger(NS.discovery);
|
|
5930
6052
|
async function discoverRouters(state, rscEnv) {
|
|
5931
6053
|
if (!state.resolvedEntryPath) return;
|
|
@@ -5990,7 +6112,6 @@ async function discoverRouters(state, rscEnv) {
|
|
|
5990
6112
|
const newPerRouterManifestDataMap = /* @__PURE__ */ new Map();
|
|
5991
6113
|
const newPerRouterPrecomputedMap = /* @__PURE__ */ new Map();
|
|
5992
6114
|
const newPerRouterTrieMap = /* @__PURE__ */ new Map();
|
|
5993
|
-
let mergedRouteAncestry = {};
|
|
5994
6115
|
let mergedRouteTrailingSlash = {};
|
|
5995
6116
|
let routerMountIndex = 0;
|
|
5996
6117
|
const allManifests = [];
|
|
@@ -6053,9 +6174,6 @@ async function discoverRouters(state, rscEnv) {
|
|
|
6053
6174
|
sourceFile: router.__sourceFile,
|
|
6054
6175
|
factoryOnlyPrefixes
|
|
6055
6176
|
});
|
|
6056
|
-
if (manifest._routeAncestry) {
|
|
6057
|
-
Object.assign(mergedRouteAncestry, manifest._routeAncestry);
|
|
6058
|
-
}
|
|
6059
6177
|
if (manifest.routeTrailingSlash) {
|
|
6060
6178
|
Object.assign(mergedRouteTrailingSlash, manifest.routeTrailingSlash);
|
|
6061
6179
|
}
|
|
@@ -6090,49 +6208,46 @@ async function discoverRouters(state, rscEnv) {
|
|
|
6090
6208
|
let newMergedRouteTrie = null;
|
|
6091
6209
|
const trieStart = debug10 ? performance.now() : 0;
|
|
6092
6210
|
if (Object.keys(newMergedRouteManifest).length > 0) {
|
|
6093
|
-
|
|
6094
|
-
|
|
6095
|
-
for (const
|
|
6096
|
-
|
|
6097
|
-
|
|
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
|
-
}
|
|
6211
|
+
const routeToStaticPrefix = {};
|
|
6212
|
+
for (const { manifest } of allManifests) {
|
|
6213
|
+
for (const name of Object.keys(manifest.routeManifest)) {
|
|
6214
|
+
if (!(name in routeToStaticPrefix)) {
|
|
6215
|
+
routeToStaticPrefix[name] = "";
|
|
6116
6216
|
}
|
|
6117
|
-
|
|
6118
|
-
|
|
6217
|
+
}
|
|
6218
|
+
buildRouteToStaticPrefix(manifest.prefixTree, routeToStaticPrefix);
|
|
6219
|
+
}
|
|
6220
|
+
const prerenderRouteNames = /* @__PURE__ */ new Set();
|
|
6221
|
+
const passthroughRouteNames = /* @__PURE__ */ new Set();
|
|
6222
|
+
const mergedResponseTypeRoutes = {};
|
|
6223
|
+
for (const { manifest } of allManifests) {
|
|
6224
|
+
if (manifest.prerenderRoutes) {
|
|
6225
|
+
for (const name of manifest.prerenderRoutes) {
|
|
6226
|
+
prerenderRouteNames.add(name);
|
|
6119
6227
|
}
|
|
6120
6228
|
}
|
|
6121
|
-
|
|
6122
|
-
|
|
6123
|
-
|
|
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);
|
|
6229
|
+
if (manifest.passthroughRoutes) {
|
|
6230
|
+
for (const name of manifest.passthroughRoutes) {
|
|
6231
|
+
passthroughRouteNames.add(name);
|
|
6134
6232
|
}
|
|
6135
6233
|
}
|
|
6234
|
+
if (manifest.responseTypeRoutes) {
|
|
6235
|
+
Object.assign(mergedResponseTypeRoutes, manifest.responseTypeRoutes);
|
|
6236
|
+
}
|
|
6237
|
+
}
|
|
6238
|
+
newMergedRouteTrie = buildRouteTrie(
|
|
6239
|
+
newMergedRouteManifest,
|
|
6240
|
+
routeToStaticPrefix,
|
|
6241
|
+
mergedRouteTrailingSlash,
|
|
6242
|
+
prerenderRouteNames,
|
|
6243
|
+
passthroughRouteNames,
|
|
6244
|
+
mergedResponseTypeRoutes
|
|
6245
|
+
);
|
|
6246
|
+
for (const { id, manifest } of allManifests) {
|
|
6247
|
+
const perRouterTrie = buildPerRouterTrie(manifest);
|
|
6248
|
+
if (perRouterTrie) {
|
|
6249
|
+
newPerRouterTrieMap.set(id, perRouterTrie);
|
|
6250
|
+
}
|
|
6136
6251
|
}
|
|
6137
6252
|
}
|
|
6138
6253
|
debug10?.(
|
|
@@ -6146,11 +6261,286 @@ async function discoverRouters(state, rscEnv) {
|
|
|
6146
6261
|
state.perRouterPrecomputedMap = newPerRouterPrecomputedMap;
|
|
6147
6262
|
state.perRouterTrieMap = newPerRouterTrieMap;
|
|
6148
6263
|
state.mergedRouteTrie = newMergedRouteTrie;
|
|
6264
|
+
if (serverMod.setRouteTrie && newMergedRouteTrie) {
|
|
6265
|
+
serverMod.setRouteTrie(newMergedRouteTrie);
|
|
6266
|
+
}
|
|
6267
|
+
const perRouterSetters = [
|
|
6268
|
+
[newPerRouterManifestDataMap, "setRouterManifest"],
|
|
6269
|
+
[newPerRouterTrieMap, "setRouterTrie"],
|
|
6270
|
+
[newPerRouterPrecomputedMap, "setRouterPrecomputedEntries"]
|
|
6271
|
+
];
|
|
6272
|
+
for (const [map, fn] of perRouterSetters) {
|
|
6273
|
+
const setter = serverMod[fn];
|
|
6274
|
+
if (typeof setter !== "function") continue;
|
|
6275
|
+
for (const [routerId, value] of map) setter(routerId, value);
|
|
6276
|
+
}
|
|
6149
6277
|
await expandPrerenderRoutes(state, rscEnv, registry, allManifests);
|
|
6150
6278
|
await renderStaticHandlers(state, rscEnv, registry);
|
|
6151
6279
|
return serverMod;
|
|
6152
6280
|
}
|
|
6153
6281
|
|
|
6282
|
+
// src/vite/discovery/shell-prerender-phase.ts
|
|
6283
|
+
import { existsSync as existsSync6, readdirSync as readdirSync2, readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "node:fs";
|
|
6284
|
+
import { join as join4, resolve as resolve8 } from "node:path";
|
|
6285
|
+
|
|
6286
|
+
// src/prerender/shell-manifest-key.ts
|
|
6287
|
+
function buildShellManifestKey(pathname) {
|
|
6288
|
+
return pathname;
|
|
6289
|
+
}
|
|
6290
|
+
|
|
6291
|
+
// src/vite/discovery/shell-prerender-phase.ts
|
|
6292
|
+
init_debug();
|
|
6293
|
+
var debug11 = createRangoDebugger(NS.prerender);
|
|
6294
|
+
async function runShellPrerenderPhase(s, builder) {
|
|
6295
|
+
const tempServer = s.shellPhaseTempServer;
|
|
6296
|
+
if (!s.isBuildMode || !s.shellCandidates?.length || !tempServer) return;
|
|
6297
|
+
const candidates = s.shellCandidates;
|
|
6298
|
+
const startTotal = performance.now();
|
|
6299
|
+
console.log(`[rango] Shell-prerendering ${candidates.length} URL(s)...`);
|
|
6300
|
+
let restoreClientRequire;
|
|
6301
|
+
try {
|
|
6302
|
+
const rscEnv = tempServer.environments?.rsc;
|
|
6303
|
+
const ssrEnv = tempServer.environments?.ssr;
|
|
6304
|
+
if (!rscEnv?.runner || !ssrEnv?.runner) {
|
|
6305
|
+
console.warn(
|
|
6306
|
+
`[rango] shell prerender: temp server runners unavailable (rsc=${String(!!rscEnv?.runner)}, ssr=${String(!!ssrEnv?.runner)}); skipping \u2014 routes keep runtime shell capture.`
|
|
6307
|
+
);
|
|
6308
|
+
return;
|
|
6309
|
+
}
|
|
6310
|
+
const versionPlugin = (builder?.config?.plugins ?? []).find(
|
|
6311
|
+
(p) => p?.name === "@rangojs/router:version"
|
|
6312
|
+
);
|
|
6313
|
+
const buildVersion = versionPlugin?.api?.getBuildVersion?.();
|
|
6314
|
+
if (!buildVersion) {
|
|
6315
|
+
console.warn(
|
|
6316
|
+
"[rango] shell prerender: main build version unavailable; skipping \u2014 routes keep runtime shell capture."
|
|
6317
|
+
);
|
|
6318
|
+
return;
|
|
6319
|
+
}
|
|
6320
|
+
const payloads = s.prerenderPayloadValues ?? /* @__PURE__ */ new Map();
|
|
6321
|
+
const fetchedKeys = /* @__PURE__ */ new Set();
|
|
6322
|
+
globalThis.__loadPrerenderManifestModule = async () => ({
|
|
6323
|
+
default: Object.fromEntries([...payloads.keys()].map((k) => [k, k])),
|
|
6324
|
+
loadPrerenderAsset: async (spec) => {
|
|
6325
|
+
fetchedKeys.add(spec);
|
|
6326
|
+
return { default: JSON.parse(payloads.get(spec)) };
|
|
6327
|
+
}
|
|
6328
|
+
});
|
|
6329
|
+
const ssrRunner = ssrEnv.runner;
|
|
6330
|
+
const ssrPkg = await ssrRunner.import("@rangojs/router/ssr");
|
|
6331
|
+
const ssrDeps = await ssrRunner.import("@rangojs/router/internal/deps/ssr");
|
|
6332
|
+
const reactDomServer = await ssrRunner.import("react-dom/server.edge");
|
|
6333
|
+
const reactDomStatic = await ssrRunner.import("react-dom/static.edge");
|
|
6334
|
+
const htmlStream = await ssrRunner.import(
|
|
6335
|
+
"@rangojs/router/internal/deps/html-stream-server"
|
|
6336
|
+
);
|
|
6337
|
+
const clientOutDir = builder?.environments?.client?.config?.build?.outDir ?? resolve8(s.projectRoot, "dist/client");
|
|
6338
|
+
const clientAssetsDir = join4(clientOutDir, "assets");
|
|
6339
|
+
const entryFile = existsSync6(clientAssetsDir) ? readdirSync2(clientAssetsDir).find((f) => /^index-.*\.js$/.test(f)) : void 0;
|
|
6340
|
+
if (!entryFile) {
|
|
6341
|
+
console.warn(
|
|
6342
|
+
`[rango] shell prerender: built client entry not found under ${clientAssetsDir}; skipping \u2014 routes keep runtime shell capture.`
|
|
6343
|
+
);
|
|
6344
|
+
return;
|
|
6345
|
+
}
|
|
6346
|
+
const base = builder?.config?.base ?? "/";
|
|
6347
|
+
const normalizedBase = base.endsWith("/") ? base : `${base}/`;
|
|
6348
|
+
const bootstrapContent = `import("${normalizedBase}assets/${entryFile}")`;
|
|
6349
|
+
debug11?.("shell prerender bootstrap: %s", bootstrapContent);
|
|
6350
|
+
const minimalPlugin = (tempServer.config?.plugins ?? []).find(
|
|
6351
|
+
(p) => p?.name === "rsc:minimal"
|
|
6352
|
+
);
|
|
6353
|
+
const rscManager = minimalPlugin?.api?.manager;
|
|
6354
|
+
const { computeProductionHash: computeProductionHash2 } = await Promise.resolve().then(() => (init_client_ref_hashing(), client_ref_hashing_exports));
|
|
6355
|
+
let hashToDevKey = /* @__PURE__ */ new Map();
|
|
6356
|
+
const rebuildHashMap = () => {
|
|
6357
|
+
hashToDevKey = /* @__PURE__ */ new Map();
|
|
6358
|
+
const metaMap = rscManager?.clientReferenceMetaMap ?? {};
|
|
6359
|
+
for (const meta of Object.values(metaMap)) {
|
|
6360
|
+
hashToDevKey.set(
|
|
6361
|
+
computeProductionHash2(s.projectRoot, meta.referenceKey),
|
|
6362
|
+
meta.referenceKey
|
|
6363
|
+
);
|
|
6364
|
+
}
|
|
6365
|
+
};
|
|
6366
|
+
const origClientRequire = globalThis.__vite_rsc_client_require__;
|
|
6367
|
+
if (typeof origClientRequire === "function") {
|
|
6368
|
+
restoreClientRequire = () => {
|
|
6369
|
+
globalThis.__vite_rsc_client_require__ = origClientRequire;
|
|
6370
|
+
};
|
|
6371
|
+
globalThis.__vite_rsc_client_require__ = (id) => {
|
|
6372
|
+
const base2 = id.split("$$cache=")[0];
|
|
6373
|
+
let mapped = hashToDevKey.get(base2);
|
|
6374
|
+
if (mapped === void 0) {
|
|
6375
|
+
rebuildHashMap();
|
|
6376
|
+
mapped = hashToDevKey.get(base2);
|
|
6377
|
+
}
|
|
6378
|
+
return origClientRequire(mapped ?? id);
|
|
6379
|
+
};
|
|
6380
|
+
}
|
|
6381
|
+
const captureShellHTML = ssrPkg.createShellCaptureHandler({
|
|
6382
|
+
createFromReadableStream: ssrDeps.createFromReadableStream,
|
|
6383
|
+
renderToReadableStream: reactDomServer.renderToReadableStream ?? reactDomServer.default?.renderToReadableStream,
|
|
6384
|
+
resume: reactDomServer.resume ?? reactDomServer.default?.resume,
|
|
6385
|
+
prerender: reactDomStatic.prerender ?? reactDomStatic.default?.prerender,
|
|
6386
|
+
injectRSCPayload: htmlStream.injectRSCPayload,
|
|
6387
|
+
headScripts: "preinit",
|
|
6388
|
+
loadBootstrapScriptContent: async () => bootstrapContent
|
|
6389
|
+
});
|
|
6390
|
+
const rscRunner = rscEnv.runner;
|
|
6391
|
+
const captureMod = await rscRunner.import(
|
|
6392
|
+
"@rangojs/router/build/shell-capture"
|
|
6393
|
+
);
|
|
6394
|
+
const serverMod = await rscRunner.import("@rangojs/router/server");
|
|
6395
|
+
const registry = serverMod.RouterRegistry;
|
|
6396
|
+
const staged = [];
|
|
6397
|
+
let skipCount = 0;
|
|
6398
|
+
const pathCounts = /* @__PURE__ */ new Map();
|
|
6399
|
+
for (const cand of candidates) {
|
|
6400
|
+
pathCounts.set(cand.urlPath, (pathCounts.get(cand.urlPath) ?? 0) + 1);
|
|
6401
|
+
}
|
|
6402
|
+
for (const cand of candidates) {
|
|
6403
|
+
if ((pathCounts.get(cand.urlPath) ?? 0) > 1) {
|
|
6404
|
+
console.warn(
|
|
6405
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} - pathname claimed by multiple prerender routes; routes keep runtime capture`
|
|
6406
|
+
);
|
|
6407
|
+
skipCount++;
|
|
6408
|
+
continue;
|
|
6409
|
+
}
|
|
6410
|
+
const startUrl = performance.now();
|
|
6411
|
+
const policy = captureMod.resolveBuildPprConfig(cand.ppr);
|
|
6412
|
+
const mainKey = `${cand.routeName}/${cand.paramHash}`;
|
|
6413
|
+
let handled = false;
|
|
6414
|
+
const mismatches = [];
|
|
6415
|
+
for (const [, routerInstance] of registry) {
|
|
6416
|
+
if (typeof routerInstance.match !== "function") continue;
|
|
6417
|
+
try {
|
|
6418
|
+
const res = await captureMod.captureShellForBuild({
|
|
6419
|
+
router: routerInstance,
|
|
6420
|
+
urlPath: cand.urlPath,
|
|
6421
|
+
routeName: cand.routeName,
|
|
6422
|
+
key: `${cand.urlPath}:shell`,
|
|
6423
|
+
ttl: policy.ttl,
|
|
6424
|
+
swr: policy.swr,
|
|
6425
|
+
tags: policy.tags,
|
|
6426
|
+
maxSnapshotBytes: policy.maxSnapshotBytes,
|
|
6427
|
+
captureTimeout: policy.captureTimeout,
|
|
6428
|
+
buildEnv: s.resolvedBuildEnv,
|
|
6429
|
+
buildVersion,
|
|
6430
|
+
captureShellHTML,
|
|
6431
|
+
debug: !!debug11
|
|
6432
|
+
});
|
|
6433
|
+
if (res.outcome === "route-mismatch") {
|
|
6434
|
+
mismatches.push(res.matchedRouteName ?? "(no match)");
|
|
6435
|
+
continue;
|
|
6436
|
+
}
|
|
6437
|
+
handled = true;
|
|
6438
|
+
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
6439
|
+
if (res.outcome !== "stored" || !res.entry) {
|
|
6440
|
+
console.warn(
|
|
6441
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - capture ${res.outcome}; route keeps runtime capture`
|
|
6442
|
+
);
|
|
6443
|
+
skipCount++;
|
|
6444
|
+
break;
|
|
6445
|
+
}
|
|
6446
|
+
if (!fetchedKeys.has(mainKey)) {
|
|
6447
|
+
console.warn(
|
|
6448
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - capture did not replay the prerender store; route keeps runtime capture`
|
|
6449
|
+
);
|
|
6450
|
+
skipCount++;
|
|
6451
|
+
break;
|
|
6452
|
+
}
|
|
6453
|
+
const value = {
|
|
6454
|
+
entry: res.entry,
|
|
6455
|
+
ttl: policy.ttl,
|
|
6456
|
+
swr: policy.swr,
|
|
6457
|
+
tags: res.tags,
|
|
6458
|
+
routeName: cand.routeName
|
|
6459
|
+
};
|
|
6460
|
+
staged.push({
|
|
6461
|
+
key: buildShellManifestKey(cand.urlPath),
|
|
6462
|
+
value: JSON.stringify(value)
|
|
6463
|
+
});
|
|
6464
|
+
console.log(
|
|
6465
|
+
`[rango] SHELL OK ${cand.urlPath.padEnd(34)} (${elapsed}ms)`
|
|
6466
|
+
);
|
|
6467
|
+
break;
|
|
6468
|
+
} catch (err) {
|
|
6469
|
+
handled = true;
|
|
6470
|
+
const elapsed = (performance.now() - startUrl).toFixed(0);
|
|
6471
|
+
console.warn(
|
|
6472
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - ${err?.message ?? err}; route keeps runtime capture`
|
|
6473
|
+
);
|
|
6474
|
+
skipCount++;
|
|
6475
|
+
break;
|
|
6476
|
+
}
|
|
6477
|
+
}
|
|
6478
|
+
if (!handled) {
|
|
6479
|
+
console.warn(
|
|
6480
|
+
`[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} - no router matched "${cand.routeName}"` + (mismatches.length > 0 ? ` (matched: ${mismatches.join(", ")})` : "") + "; route keeps runtime capture"
|
|
6481
|
+
);
|
|
6482
|
+
skipCount++;
|
|
6483
|
+
}
|
|
6484
|
+
}
|
|
6485
|
+
if (staged.length > 0) {
|
|
6486
|
+
const rscOutDir = builder?.environments?.rsc?.config?.build?.outDir ?? resolve8(s.projectRoot, "dist/rsc");
|
|
6487
|
+
writeShellManifest(s, rscOutDir, staged);
|
|
6488
|
+
}
|
|
6489
|
+
const totalElapsed = (performance.now() - startTotal).toFixed(0);
|
|
6490
|
+
const parts = [`${staged.length} done`];
|
|
6491
|
+
if (skipCount > 0) parts.push(`${skipCount} skipped`);
|
|
6492
|
+
console.log(
|
|
6493
|
+
`[rango] Shell prerender complete: ${parts.join(", ")} (${totalElapsed}ms total)`
|
|
6494
|
+
);
|
|
6495
|
+
} catch (err) {
|
|
6496
|
+
console.warn(
|
|
6497
|
+
`[rango] shell prerender phase failed: ${err?.message ?? err}; routes keep runtime shell capture.`
|
|
6498
|
+
);
|
|
6499
|
+
} finally {
|
|
6500
|
+
delete globalThis.__loadPrerenderManifestModule;
|
|
6501
|
+
restoreClientRequire?.();
|
|
6502
|
+
}
|
|
6503
|
+
}
|
|
6504
|
+
function writeShellManifest(s, rscOutDir, staged) {
|
|
6505
|
+
const rscEntryPath = resolve8(rscOutDir, s.rscEntryFileName ?? "index.js");
|
|
6506
|
+
if (!existsSync6(rscEntryPath)) {
|
|
6507
|
+
console.warn(
|
|
6508
|
+
`[rango] shell prerender: RSC entry not found at ${rscEntryPath}; entries not persisted \u2014 routes keep runtime capture.`
|
|
6509
|
+
);
|
|
6510
|
+
return;
|
|
6511
|
+
}
|
|
6512
|
+
const assetsDir = resolve8(rscOutDir, "assets");
|
|
6513
|
+
let totalBytes = 0;
|
|
6514
|
+
const manifestMap = {};
|
|
6515
|
+
const countedFiles = /* @__PURE__ */ new Set();
|
|
6516
|
+
for (const { key, value } of staged) {
|
|
6517
|
+
const fileName = writeBuildAssetModule(assetsDir, "__ps", value);
|
|
6518
|
+
if (!countedFiles.has(fileName)) {
|
|
6519
|
+
countedFiles.add(fileName);
|
|
6520
|
+
totalBytes += Buffer.byteLength(value) + "export default ;\n".length;
|
|
6521
|
+
}
|
|
6522
|
+
manifestMap[key] = `./assets/${fileName}`;
|
|
6523
|
+
}
|
|
6524
|
+
const manifestCode = [
|
|
6525
|
+
`const m=${jsonParseExpression(manifestMap)};`,
|
|
6526
|
+
`export function loadShellAsset(s){return import(s)}`,
|
|
6527
|
+
`export default m;`,
|
|
6528
|
+
""
|
|
6529
|
+
].join("\n");
|
|
6530
|
+
writeFileSync3(resolve8(rscOutDir, "__shell-manifest.js"), manifestCode);
|
|
6531
|
+
totalBytes += Buffer.byteLength(manifestCode);
|
|
6532
|
+
const rscCode = readFileSync4(rscEntryPath, "utf-8");
|
|
6533
|
+
if (!rscCode.includes("__shell-manifest.js")) {
|
|
6534
|
+
const injection = `globalThis.__loadShellManifestModule = () => import("./__shell-manifest.js");
|
|
6535
|
+
`;
|
|
6536
|
+
writeFileSync3(rscEntryPath, injection + rscCode);
|
|
6537
|
+
}
|
|
6538
|
+
const totalKB = (totalBytes / 1024).toFixed(1);
|
|
6539
|
+
console.log(
|
|
6540
|
+
`[rango] Wrote shell assets (${totalKB} KB total, ${staged.length} entries)`
|
|
6541
|
+
);
|
|
6542
|
+
}
|
|
6543
|
+
|
|
6154
6544
|
// src/vite/discovery/dev-prerender-cache.ts
|
|
6155
6545
|
function payloadBodiesFromResult(result) {
|
|
6156
6546
|
const main = JSON.stringify({
|
|
@@ -6189,8 +6579,8 @@ function createDevPrerenderCache(maxEntriesPerRouter = MAX_ENTRIES_PER_ROUTER) {
|
|
|
6189
6579
|
}
|
|
6190
6580
|
|
|
6191
6581
|
// src/vite/discovery/route-types-writer.ts
|
|
6192
|
-
import { dirname as dirname3, join as
|
|
6193
|
-
import { readFileSync as
|
|
6582
|
+
import { dirname as dirname3, join as join5, resolve as resolve9 } from "node:path";
|
|
6583
|
+
import { readFileSync as readFileSync5, writeFileSync as writeFileSync4, existsSync as existsSync7, unlinkSync as unlinkSync2 } from "node:fs";
|
|
6194
6584
|
function filterUserNamedRoutes(manifest) {
|
|
6195
6585
|
const filtered = {};
|
|
6196
6586
|
for (const [name, pattern] of Object.entries(manifest)) {
|
|
@@ -6201,10 +6591,10 @@ function filterUserNamedRoutes(manifest) {
|
|
|
6201
6591
|
return filtered;
|
|
6202
6592
|
}
|
|
6203
6593
|
function writeGenFileIfChanged(state, outPath, source, opts) {
|
|
6204
|
-
const existing =
|
|
6594
|
+
const existing = existsSync7(outPath) ? readFileSync5(outPath, "utf-8") : null;
|
|
6205
6595
|
if (existing === source) return;
|
|
6206
6596
|
markSelfGenWrite(state, outPath, source);
|
|
6207
|
-
|
|
6597
|
+
writeFileSync4(outPath, source);
|
|
6208
6598
|
if (opts?.log) console.log(`[rango] Generated route types -> ${outPath}`);
|
|
6209
6599
|
}
|
|
6210
6600
|
function writeCombinedRouteTypesWithTracking(state, opts) {
|
|
@@ -6219,10 +6609,10 @@ function writeRouteTypesFiles(state) {
|
|
|
6219
6609
|
if (state.perRouterManifests.length === 0) return;
|
|
6220
6610
|
try {
|
|
6221
6611
|
const entryDir = dirname3(
|
|
6222
|
-
|
|
6612
|
+
resolve9(state.projectRoot, state.resolvedEntryPath)
|
|
6223
6613
|
);
|
|
6224
|
-
const oldCombinedPath =
|
|
6225
|
-
if (
|
|
6614
|
+
const oldCombinedPath = join5(entryDir, "named-routes.gen.ts");
|
|
6615
|
+
if (existsSync7(oldCombinedPath)) {
|
|
6226
6616
|
unlinkSync2(oldCombinedPath);
|
|
6227
6617
|
console.log(
|
|
6228
6618
|
`[rango] Removed stale combined route types: ${oldCombinedPath}`
|
|
@@ -6303,7 +6693,9 @@ function supplementGenFilesWithRuntimeRoutes(state) {
|
|
|
6303
6693
|
}
|
|
6304
6694
|
|
|
6305
6695
|
// src/vite/discovery/virtual-module-codegen.ts
|
|
6306
|
-
import {
|
|
6696
|
+
import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync5 } from "node:fs";
|
|
6697
|
+
import { dirname as dirname4, basename, join as join6 } from "node:path";
|
|
6698
|
+
var MANIFEST_EXTERNALIZE_THRESHOLD = 512 * 1024;
|
|
6307
6699
|
function generateRoutesManifestModule(state) {
|
|
6308
6700
|
const hasManifest = state.mergedRouteManifest && Object.keys(state.mergedRouteManifest).length > 0;
|
|
6309
6701
|
if (hasManifest) {
|
|
@@ -6318,7 +6710,7 @@ function generateRoutesManifestModule(state) {
|
|
|
6318
6710
|
/\.(tsx?|jsx?)$/,
|
|
6319
6711
|
""
|
|
6320
6712
|
);
|
|
6321
|
-
const genPath =
|
|
6713
|
+
const genPath = join6(
|
|
6322
6714
|
routerDir,
|
|
6323
6715
|
`${routerBasename}.named-routes.gen.js`
|
|
6324
6716
|
).replaceAll("\\", "/");
|
|
@@ -6392,51 +6784,78 @@ function generateRoutesManifestModule(state) {
|
|
|
6392
6784
|
}
|
|
6393
6785
|
return `// Route manifest will be populated at runtime`;
|
|
6394
6786
|
}
|
|
6787
|
+
function shortHash(input) {
|
|
6788
|
+
let h = 2166136261;
|
|
6789
|
+
for (let i = 0; i < input.length; i++) {
|
|
6790
|
+
h ^= input.charCodeAt(i);
|
|
6791
|
+
h = Math.imul(h, 16777619);
|
|
6792
|
+
}
|
|
6793
|
+
return (h >>> 0).toString(36);
|
|
6794
|
+
}
|
|
6395
6795
|
function generatePerRouterModule(state, routerId) {
|
|
6396
|
-
const
|
|
6796
|
+
const sourceFile = state.perRouterManifests.find(
|
|
6797
|
+
(e) => e.id === routerId
|
|
6798
|
+
)?.sourceFile;
|
|
6397
6799
|
const trie = state.perRouterTrieMap.get(routerId);
|
|
6398
6800
|
const entries = state.perRouterPrecomputedMap.get(routerId);
|
|
6399
6801
|
const lines = [];
|
|
6400
|
-
if (
|
|
6401
|
-
const routerDir = dirname4(
|
|
6402
|
-
const routerBasename = basename(
|
|
6403
|
-
|
|
6404
|
-
""
|
|
6405
|
-
);
|
|
6406
|
-
const genPath = join5(
|
|
6802
|
+
if (sourceFile) {
|
|
6803
|
+
const routerDir = dirname4(sourceFile);
|
|
6804
|
+
const routerBasename = basename(sourceFile).replace(/\.(tsx?|jsx?)$/, "");
|
|
6805
|
+
const genPath = join6(
|
|
6407
6806
|
routerDir,
|
|
6408
6807
|
`${routerBasename}.named-routes.gen.js`
|
|
6409
6808
|
).replaceAll("\\", "/");
|
|
6410
|
-
lines.push(`import
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6809
|
+
lines.push(`import ${JSON.stringify(genPath)};`);
|
|
6810
|
+
}
|
|
6811
|
+
const hasTrie = !!trie;
|
|
6812
|
+
const hasEntries = !!entries && entries.length > 0;
|
|
6813
|
+
const preset = state.opts?.preset ?? "node";
|
|
6814
|
+
const override = process.env.RANGO_MANIFEST_TEXT;
|
|
6815
|
+
const payload = manifestPayload(trie, hasTrie, entries, hasEntries);
|
|
6816
|
+
const payloadJson = hasTrie || hasEntries ? JSON.stringify(payload) : "";
|
|
6817
|
+
const useTextModule = state.isBuildMode && preset === "cloudflare" && override !== "0" && (hasTrie || hasEntries) && (override === "1" || payloadJson.length >= MANIFEST_EXTERNALIZE_THRESHOLD);
|
|
6818
|
+
if (useTextModule) {
|
|
6819
|
+
const dir = join6(state.projectRoot, "node_modules", ".rango");
|
|
6820
|
+
mkdirSync2(dir, { recursive: true });
|
|
6821
|
+
const safeId = `${routerId.replace(/[^a-zA-Z0-9_-]/g, "_")}-${shortHash(routerId)}`;
|
|
6822
|
+
const filePath = join6(dir, `manifest-${safeId}.txt`).replaceAll("\\", "/");
|
|
6823
|
+
writeFileSync5(filePath, payloadJson);
|
|
6824
|
+
lines.push(`import __manifestJson from ${JSON.stringify(filePath)};`);
|
|
6825
|
+
lines.push(`const __manifestData = JSON.parse(__manifestJson);`);
|
|
6826
|
+
emitManifestExports(lines, hasTrie, hasEntries);
|
|
6827
|
+
return lines.join("\n");
|
|
6420
6828
|
}
|
|
6421
|
-
if (
|
|
6829
|
+
if (hasTrie) {
|
|
6422
6830
|
lines.push(`export const trie = ${jsonParseExpression(trie)};`);
|
|
6423
6831
|
}
|
|
6424
|
-
if (
|
|
6832
|
+
if (hasEntries) {
|
|
6425
6833
|
lines.push(
|
|
6426
6834
|
`export const precomputedEntries = ${jsonParseExpression(entries)};`
|
|
6427
6835
|
);
|
|
6428
6836
|
}
|
|
6429
6837
|
return lines.join("\n") || "";
|
|
6430
6838
|
}
|
|
6839
|
+
function manifestPayload(trie, hasTrie, entries, hasEntries) {
|
|
6840
|
+
const payload = {};
|
|
6841
|
+
if (hasTrie) payload.t = trie;
|
|
6842
|
+
if (hasEntries) payload.p = entries;
|
|
6843
|
+
return payload;
|
|
6844
|
+
}
|
|
6845
|
+
function emitManifestExports(lines, hasTrie, hasEntries) {
|
|
6846
|
+
if (hasTrie) lines.push(`export const trie = __manifestData.t;`);
|
|
6847
|
+
if (hasEntries)
|
|
6848
|
+
lines.push(`export const precomputedEntries = __manifestData.p;`);
|
|
6849
|
+
}
|
|
6431
6850
|
|
|
6432
6851
|
// src/vite/discovery/bundle-postprocess.ts
|
|
6433
|
-
import { resolve as
|
|
6434
|
-
import { readFileSync as
|
|
6852
|
+
import { resolve as resolve10 } from "node:path";
|
|
6853
|
+
import { readFileSync as readFileSync6, writeFileSync as writeFileSync6, existsSync as existsSync8 } from "node:fs";
|
|
6435
6854
|
function postprocessBundle(state) {
|
|
6436
6855
|
const hasPrerenderData = state.prerenderManifestEntries && Object.keys(state.prerenderManifestEntries).length > 0;
|
|
6437
6856
|
const hasStaticData = state.staticManifestEntries && Object.keys(state.staticManifestEntries).length > 0;
|
|
6438
6857
|
if (!hasPrerenderData && !hasStaticData) return;
|
|
6439
|
-
const rscEntryPath =
|
|
6858
|
+
const rscEntryPath = resolve10(
|
|
6440
6859
|
state.projectRoot,
|
|
6441
6860
|
"dist/rsc",
|
|
6442
6861
|
state.rscEntryFileName ?? "index.js"
|
|
@@ -6457,9 +6876,9 @@ function postprocessBundle(state) {
|
|
|
6457
6876
|
];
|
|
6458
6877
|
for (const target of evictionTargets) {
|
|
6459
6878
|
for (const info of target.infos) {
|
|
6460
|
-
const chunkPath =
|
|
6879
|
+
const chunkPath = resolve10(state.projectRoot, "dist/rsc", info.fileName);
|
|
6461
6880
|
try {
|
|
6462
|
-
const code =
|
|
6881
|
+
const code = readFileSync6(chunkPath, "utf-8");
|
|
6463
6882
|
const result = evictHandlerCode(
|
|
6464
6883
|
code,
|
|
6465
6884
|
info.exports,
|
|
@@ -6467,7 +6886,7 @@ function postprocessBundle(state) {
|
|
|
6467
6886
|
target.brand
|
|
6468
6887
|
);
|
|
6469
6888
|
if (result) {
|
|
6470
|
-
|
|
6889
|
+
writeFileSync6(chunkPath, result.code);
|
|
6471
6890
|
const savedKB = (result.savedBytes / 1024).toFixed(1);
|
|
6472
6891
|
console.log(
|
|
6473
6892
|
`[rango] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`
|
|
@@ -6482,8 +6901,8 @@ function postprocessBundle(state) {
|
|
|
6482
6901
|
}
|
|
6483
6902
|
state.handlerChunkInfoMap.clear();
|
|
6484
6903
|
state.staticHandlerChunkInfoMap.clear();
|
|
6485
|
-
if (hasPrerenderData &&
|
|
6486
|
-
const rscCode =
|
|
6904
|
+
if (hasPrerenderData && existsSync8(rscEntryPath)) {
|
|
6905
|
+
const rscCode = readFileSync6(rscEntryPath, "utf-8");
|
|
6487
6906
|
if (!rscCode.includes("__prerender-manifest.js")) {
|
|
6488
6907
|
try {
|
|
6489
6908
|
let totalBytes = copyStagedBuildAssets(
|
|
@@ -6502,15 +6921,15 @@ function postprocessBundle(state) {
|
|
|
6502
6921
|
`export default m;`,
|
|
6503
6922
|
""
|
|
6504
6923
|
].join("\n");
|
|
6505
|
-
const manifestPath =
|
|
6924
|
+
const manifestPath = resolve10(
|
|
6506
6925
|
state.projectRoot,
|
|
6507
6926
|
"dist/rsc/__prerender-manifest.js"
|
|
6508
6927
|
);
|
|
6509
|
-
|
|
6928
|
+
writeFileSync6(manifestPath, manifestCode);
|
|
6510
6929
|
totalBytes += Buffer.byteLength(manifestCode);
|
|
6511
6930
|
const injection = `globalThis.__loadPrerenderManifestModule = () => import("./__prerender-manifest.js");
|
|
6512
6931
|
`;
|
|
6513
|
-
|
|
6932
|
+
writeFileSync6(rscEntryPath, injection + rscCode);
|
|
6514
6933
|
const totalKB = (totalBytes / 1024).toFixed(1);
|
|
6515
6934
|
console.log(
|
|
6516
6935
|
`[rango] Wrote prerender assets (${totalKB} KB total, ${Object.keys(state.prerenderManifestEntries).length} entries)`
|
|
@@ -6522,8 +6941,8 @@ function postprocessBundle(state) {
|
|
|
6522
6941
|
}
|
|
6523
6942
|
}
|
|
6524
6943
|
}
|
|
6525
|
-
if (hasStaticData &&
|
|
6526
|
-
const rscCode =
|
|
6944
|
+
if (hasStaticData && existsSync8(rscEntryPath)) {
|
|
6945
|
+
const rscCode = readFileSync6(rscEntryPath, "utf-8");
|
|
6527
6946
|
if (!rscCode.includes("__static-manifest.js")) {
|
|
6528
6947
|
try {
|
|
6529
6948
|
const manifestEntries = [];
|
|
@@ -6540,15 +6959,15 @@ function postprocessBundle(state) {
|
|
|
6540
6959
|
}
|
|
6541
6960
|
const manifestCode = `const m={${manifestEntries.join(",")}};globalThis.__STATIC_MANIFEST=m;export default m;
|
|
6542
6961
|
`;
|
|
6543
|
-
const manifestPath =
|
|
6962
|
+
const manifestPath = resolve10(
|
|
6544
6963
|
state.projectRoot,
|
|
6545
6964
|
"dist/rsc/__static-manifest.js"
|
|
6546
6965
|
);
|
|
6547
|
-
|
|
6966
|
+
writeFileSync6(manifestPath, manifestCode);
|
|
6548
6967
|
totalBytes += Buffer.byteLength(manifestCode);
|
|
6549
6968
|
const injection = `import "./__static-manifest.js";
|
|
6550
6969
|
`;
|
|
6551
|
-
|
|
6970
|
+
writeFileSync6(rscEntryPath, injection + rscCode);
|
|
6552
6971
|
const totalKB = (totalBytes / 1024).toFixed(1);
|
|
6553
6972
|
console.log(
|
|
6554
6973
|
`[rango] Wrote static assets (${totalKB} KB total, ${Object.keys(state.staticManifestEntries).length} entries)`
|
|
@@ -6563,7 +6982,7 @@ function postprocessBundle(state) {
|
|
|
6563
6982
|
}
|
|
6564
6983
|
|
|
6565
6984
|
// src/vite/discovery/gate-state.ts
|
|
6566
|
-
function createDiscoveryGate(s,
|
|
6985
|
+
function createDiscoveryGate(s, debug12) {
|
|
6567
6986
|
let gatePending = false;
|
|
6568
6987
|
let gateResolver = () => {
|
|
6569
6988
|
};
|
|
@@ -6572,15 +6991,15 @@ function createDiscoveryGate(s, debug11) {
|
|
|
6572
6991
|
let pendingEvents = false;
|
|
6573
6992
|
const beginGate = () => {
|
|
6574
6993
|
if (gatePending) return;
|
|
6575
|
-
s.discoveryDone = new Promise((
|
|
6576
|
-
gateResolver =
|
|
6994
|
+
s.discoveryDone = new Promise((resolve13) => {
|
|
6995
|
+
gateResolver = resolve13;
|
|
6577
6996
|
});
|
|
6578
6997
|
gatePending = true;
|
|
6579
6998
|
};
|
|
6580
6999
|
const resolveGate = () => {
|
|
6581
7000
|
if (!gatePending) return;
|
|
6582
7001
|
if (inProgress || queued || pendingEvents) {
|
|
6583
|
-
|
|
7002
|
+
debug12?.(
|
|
6584
7003
|
"hmr: resolveGate deferred \u2014 work in flight (inProgress=%s queued=%s pendingEvents=%s)",
|
|
6585
7004
|
inProgress,
|
|
6586
7005
|
queued,
|
|
@@ -6589,7 +7008,7 @@ function createDiscoveryGate(s, debug11) {
|
|
|
6589
7008
|
return;
|
|
6590
7009
|
}
|
|
6591
7010
|
gatePending = false;
|
|
6592
|
-
|
|
7011
|
+
debug12?.("hmr: discoveryDone resolved");
|
|
6593
7012
|
gateResolver();
|
|
6594
7013
|
};
|
|
6595
7014
|
const noteRouteEvent = () => {
|
|
@@ -6599,7 +7018,7 @@ function createDiscoveryGate(s, debug11) {
|
|
|
6599
7018
|
const runRefreshCycle = async (work) => {
|
|
6600
7019
|
if (inProgress) {
|
|
6601
7020
|
queued = true;
|
|
6602
|
-
|
|
7021
|
+
debug12?.("hmr: rediscovery in flight \u2014 queued for a follow-up cycle");
|
|
6603
7022
|
return;
|
|
6604
7023
|
}
|
|
6605
7024
|
pendingEvents = false;
|
|
@@ -6610,16 +7029,16 @@ function createDiscoveryGate(s, debug11) {
|
|
|
6610
7029
|
inProgress = false;
|
|
6611
7030
|
if (queued) {
|
|
6612
7031
|
queued = false;
|
|
6613
|
-
|
|
7032
|
+
debug12?.("hmr: consuming queued rediscovery");
|
|
6614
7033
|
runRefreshCycle(work).catch((err) => {
|
|
6615
|
-
|
|
7034
|
+
debug12?.(
|
|
6616
7035
|
"hmr: queued cycle rejected \u2014 releasing gate (%s)",
|
|
6617
7036
|
err instanceof Error ? err.message : String(err)
|
|
6618
7037
|
);
|
|
6619
7038
|
resolveGate();
|
|
6620
7039
|
});
|
|
6621
7040
|
} else if (pendingEvents) {
|
|
6622
|
-
|
|
7041
|
+
debug12?.(
|
|
6623
7042
|
"hmr: holding gate for pending events (debounce not yet fired)"
|
|
6624
7043
|
);
|
|
6625
7044
|
} else {
|
|
@@ -6665,15 +7084,15 @@ function selectForwardableResolvePlugins(plugins) {
|
|
|
6665
7084
|
}
|
|
6666
7085
|
function pickForwardedRunnerConfig(config) {
|
|
6667
7086
|
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)
|
|
7087
|
+
const resolve13 = {};
|
|
7088
|
+
if (r.alias !== void 0) resolve13.alias = r.alias;
|
|
7089
|
+
if (r.dedupe !== void 0) resolve13.dedupe = r.dedupe;
|
|
7090
|
+
if (r.conditions !== void 0) resolve13.conditions = r.conditions;
|
|
7091
|
+
if (r.mainFields !== void 0) resolve13.mainFields = r.mainFields;
|
|
7092
|
+
if (r.extensions !== void 0) resolve13.extensions = r.extensions;
|
|
6674
7093
|
if (r.preserveSymlinks !== void 0)
|
|
6675
|
-
|
|
6676
|
-
if (r.tsconfigPaths !== void 0)
|
|
7094
|
+
resolve13.preserveSymlinks = r.preserveSymlinks;
|
|
7095
|
+
if (r.tsconfigPaths !== void 0) resolve13.tsconfigPaths = r.tsconfigPaths;
|
|
6677
7096
|
const userOxc = config.oxc;
|
|
6678
7097
|
const userJsx = userOxc && typeof userOxc === "object" && typeof userOxc.jsx === "object" && userOxc.jsx !== null ? userOxc.jsx : {};
|
|
6679
7098
|
const oxc = userOxc && typeof userOxc === "object" ? {
|
|
@@ -6681,13 +7100,14 @@ function pickForwardedRunnerConfig(config) {
|
|
|
6681
7100
|
jsx: { ...userJsx, runtime: "automatic", importSource: "react" }
|
|
6682
7101
|
} : { jsx: { runtime: "automatic", importSource: "react" } };
|
|
6683
7102
|
return {
|
|
6684
|
-
resolve:
|
|
7103
|
+
resolve: resolve13,
|
|
6685
7104
|
define: config.define,
|
|
6686
7105
|
oxc
|
|
6687
7106
|
};
|
|
6688
7107
|
}
|
|
6689
7108
|
|
|
6690
7109
|
// src/vite/router-discovery.ts
|
|
7110
|
+
init_debug();
|
|
6691
7111
|
var debugDiscovery = createRangoDebugger(NS.discovery);
|
|
6692
7112
|
var debugRoutes = createRangoDebugger(NS.routes);
|
|
6693
7113
|
var debugBuild = createRangoDebugger(NS.build);
|
|
@@ -6706,6 +7126,7 @@ function ensureCloudflareProtocolLoaderRegistered() {
|
|
|
6706
7126
|
);
|
|
6707
7127
|
}
|
|
6708
7128
|
}
|
|
7129
|
+
var injectedShellNotReadyPaths = /* @__PURE__ */ new Set();
|
|
6709
7130
|
async function createTempRscServer(state, options = {}) {
|
|
6710
7131
|
ensureCloudflareProtocolLoaderRegistered();
|
|
6711
7132
|
const { default: rsc } = await import("@vitejs/plugin-rsc");
|
|
@@ -6737,6 +7158,20 @@ async function createTempRscServer(state, options = {}) {
|
|
|
6737
7158
|
// hashClientRefs only in build mode — production bundles need hashed refs
|
|
6738
7159
|
...options.forceBuild ? [hashClientRefs(state.projectRoot)] : [],
|
|
6739
7160
|
createVersionPlugin(),
|
|
7161
|
+
// Before the stub plugin, so "virtual:entry-ssr" resolves to the real
|
|
7162
|
+
// SSR entry when the shell endpoint needs it (see the option doc).
|
|
7163
|
+
...options.realSsrEntry ? [
|
|
7164
|
+
{
|
|
7165
|
+
name: "@rangojs/router:temp-real-ssr-entry",
|
|
7166
|
+
enforce: "pre",
|
|
7167
|
+
resolveId(id) {
|
|
7168
|
+
return id === "virtual:entry-ssr" ? "\0rango-temp-real-ssr-entry" : null;
|
|
7169
|
+
},
|
|
7170
|
+
load(id) {
|
|
7171
|
+
return id === "\0rango-temp-real-ssr-entry" ? getVirtualEntrySSR(state.opts?.headScripts) : null;
|
|
7172
|
+
}
|
|
7173
|
+
}
|
|
7174
|
+
] : [],
|
|
6740
7175
|
createVirtualStubPlugin(),
|
|
6741
7176
|
createCloudflareProtocolStubPlugin(),
|
|
6742
7177
|
// Dev prerender must use dev-mode IDs (path-based) to match the workerd
|
|
@@ -6760,7 +7195,7 @@ async function resolveBuildEnv(option, factoryCtx) {
|
|
|
6760
7195
|
}
|
|
6761
7196
|
try {
|
|
6762
7197
|
const userRequire = createRequire3(
|
|
6763
|
-
|
|
7198
|
+
resolve11(factoryCtx.root, "package.json")
|
|
6764
7199
|
);
|
|
6765
7200
|
const wranglerPath = userRequire.resolve("wrangler");
|
|
6766
7201
|
const { getPlatformProxy } = await import(pathToFileURL2(wranglerPath).href);
|
|
@@ -6797,6 +7232,12 @@ async function acquireBuildEnv(s, command, mode) {
|
|
|
6797
7232
|
globalThis[BUILD_ENV_GLOBAL_KEY] = result.env;
|
|
6798
7233
|
return true;
|
|
6799
7234
|
}
|
|
7235
|
+
function resetPrerenderCollection(s) {
|
|
7236
|
+
s.prerenderManifestEntries = null;
|
|
7237
|
+
s.staticManifestEntries = null;
|
|
7238
|
+
s.shellCandidates = null;
|
|
7239
|
+
s.prerenderPayloadValues = null;
|
|
7240
|
+
}
|
|
6800
7241
|
async function releaseBuildEnv(s) {
|
|
6801
7242
|
if (s.buildEnvDispose) {
|
|
6802
7243
|
try {
|
|
@@ -6861,8 +7302,8 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6861
7302
|
s.devServer = server;
|
|
6862
7303
|
server.middlewares.use(internalDebugNoCacheMiddleware());
|
|
6863
7304
|
let resolveDiscovery;
|
|
6864
|
-
const discoveryPromise = new Promise((
|
|
6865
|
-
resolveDiscovery =
|
|
7305
|
+
const discoveryPromise = new Promise((resolve13) => {
|
|
7306
|
+
resolveDiscovery = resolve13;
|
|
6866
7307
|
});
|
|
6867
7308
|
const gate = createDiscoveryGate(s, debugDiscovery);
|
|
6868
7309
|
const beginDiscoveryGate = gate.beginGate;
|
|
@@ -6918,14 +7359,14 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6918
7359
|
debugDiscovery?.(
|
|
6919
7360
|
"getOrCreateTempServer: cached temp runner reused"
|
|
6920
7361
|
);
|
|
6921
|
-
return existingEnv;
|
|
7362
|
+
return { env: existingEnv, error: null };
|
|
6922
7363
|
}
|
|
6923
7364
|
debugDiscovery?.(
|
|
6924
7365
|
"getOrCreateTempServer: server alive but registry missing \u2014 re-importing"
|
|
6925
7366
|
);
|
|
6926
7367
|
try {
|
|
6927
7368
|
await importEntryAndRegistry(existingEnv);
|
|
6928
|
-
return existingEnv;
|
|
7369
|
+
return { env: existingEnv, error: null };
|
|
6929
7370
|
} catch (err) {
|
|
6930
7371
|
debugDiscovery?.(
|
|
6931
7372
|
"getOrCreateTempServer: reuse import failed (%s) \u2014 closing orphan and creating fresh",
|
|
@@ -6950,19 +7391,25 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6950
7391
|
"getOrCreateTempServer: creating new temp server, entry=%s",
|
|
6951
7392
|
s.resolvedEntryPath ?? "(unset)"
|
|
6952
7393
|
);
|
|
7394
|
+
let createError = null;
|
|
6953
7395
|
try {
|
|
6954
7396
|
prerenderTempServer = await createTempRscServer(s, {
|
|
6955
|
-
cacheDir: "node_modules/.vite_prerender"
|
|
7397
|
+
cacheDir: "node_modules/.vite_prerender",
|
|
7398
|
+
// The dev /__rsc_shell endpoint drives captureShellHTML in this
|
|
7399
|
+
// server's SSR realm; the entry is only imported when a shell
|
|
7400
|
+
// capture runs, so discovery cost is unchanged.
|
|
7401
|
+
realSsrEntry: true
|
|
6956
7402
|
});
|
|
6957
7403
|
const tempRscEnv = prerenderTempServer.environments?.rsc;
|
|
6958
7404
|
if (tempRscEnv?.runner) {
|
|
6959
7405
|
await importEntryAndRegistry(tempRscEnv);
|
|
6960
|
-
return tempRscEnv;
|
|
7406
|
+
return { env: tempRscEnv, error: null };
|
|
6961
7407
|
}
|
|
6962
7408
|
debugDiscovery?.(
|
|
6963
7409
|
"getOrCreateTempServer: tempRscEnv.runner unavailable"
|
|
6964
7410
|
);
|
|
6965
7411
|
} catch (err) {
|
|
7412
|
+
createError = err;
|
|
6966
7413
|
debugDiscovery?.(
|
|
6967
7414
|
"getOrCreateTempServer: FAILED message=%s",
|
|
6968
7415
|
err.message
|
|
@@ -6973,7 +7420,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6973
7420
|
});
|
|
6974
7421
|
prerenderTempServer = null;
|
|
6975
7422
|
prerenderNodeRegistry = null;
|
|
6976
|
-
return null;
|
|
7423
|
+
return { env: null, error: createError };
|
|
6977
7424
|
}
|
|
6978
7425
|
async function clearTempRegistries(tempRscEnv) {
|
|
6979
7426
|
try {
|
|
@@ -6997,7 +7444,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
6997
7444
|
}
|
|
6998
7445
|
}
|
|
6999
7446
|
async function refreshTempRscEnv() {
|
|
7000
|
-
|
|
7447
|
+
const tempRscEnv = (await getOrCreateTempServer()).env;
|
|
7001
7448
|
if (!tempRscEnv) return null;
|
|
7002
7449
|
const envGraph = tempRscEnv.moduleGraph;
|
|
7003
7450
|
const serverGraph = prerenderTempServer?.moduleGraph;
|
|
@@ -7012,7 +7459,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7012
7459
|
prerenderTempServer = null;
|
|
7013
7460
|
prerenderNodeRegistry = null;
|
|
7014
7461
|
}
|
|
7015
|
-
return await getOrCreateTempServer();
|
|
7462
|
+
return (await getOrCreateTempServer()).env;
|
|
7016
7463
|
}
|
|
7017
7464
|
debugDiscovery?.(
|
|
7018
7465
|
"refreshTempRscEnv: invalidating module graph (%s)",
|
|
@@ -7050,11 +7497,11 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7050
7497
|
"acquireBuildEnv",
|
|
7051
7498
|
() => acquireBuildEnv(s, viteCommand, viteMode)
|
|
7052
7499
|
);
|
|
7053
|
-
tempRscEnv = await timed(
|
|
7500
|
+
tempRscEnv = (await timed(
|
|
7054
7501
|
debugDiscovery,
|
|
7055
7502
|
"getOrCreateTempServer",
|
|
7056
7503
|
() => getOrCreateTempServer()
|
|
7057
|
-
);
|
|
7504
|
+
)).env;
|
|
7058
7505
|
if (tempRscEnv) {
|
|
7059
7506
|
optimizerHashBefore2 = tempRscEnv.depsOptimizer?.metadata?.browserHash;
|
|
7060
7507
|
await timed(
|
|
@@ -7199,7 +7646,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7199
7646
|
registry = mainRegistry;
|
|
7200
7647
|
}
|
|
7201
7648
|
if (!registry) {
|
|
7202
|
-
const tempRscEnv = await getOrCreateTempServer();
|
|
7649
|
+
const tempRscEnv = (await getOrCreateTempServer()).env;
|
|
7203
7650
|
if (tempRscEnv) {
|
|
7204
7651
|
try {
|
|
7205
7652
|
await importEntryAndRegistry(tempRscEnv);
|
|
@@ -7284,6 +7731,194 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7284
7731
|
res.end("No prerender match");
|
|
7285
7732
|
logResult(404, "no match");
|
|
7286
7733
|
});
|
|
7734
|
+
server.middlewares.use("/__rsc_shell", async (req, res) => {
|
|
7735
|
+
await s.discoveryDone;
|
|
7736
|
+
const url = new URL(req.url ?? "", "http://localhost");
|
|
7737
|
+
const pathname = url.searchParams.get("pathname");
|
|
7738
|
+
const routeName = url.searchParams.get("routeName");
|
|
7739
|
+
const version = url.searchParams.get("version");
|
|
7740
|
+
const ttlRaw = url.searchParams.get("ttl");
|
|
7741
|
+
if (!pathname || !routeName || !version || !ttlRaw) {
|
|
7742
|
+
res.statusCode = 400;
|
|
7743
|
+
res.end("Missing pathname/routeName/version/ttl");
|
|
7744
|
+
return;
|
|
7745
|
+
}
|
|
7746
|
+
const sendNotReady = (detail) => {
|
|
7747
|
+
res.statusCode = 503;
|
|
7748
|
+
res.setHeader("x-rango-shell-dev", "NOT-READY");
|
|
7749
|
+
res.end(detail);
|
|
7750
|
+
};
|
|
7751
|
+
const isReoptimizing = (err) => err?.code === "ERR_OUTDATED_OPTIMIZED_DEP" || /Outdated Optimize Dep|optimized dependency|new dependencies optimized/i.test(
|
|
7752
|
+
String(err?.message ?? "")
|
|
7753
|
+
);
|
|
7754
|
+
const handledAsReoptimizing = (err) => {
|
|
7755
|
+
if (!isReoptimizing(err)) return false;
|
|
7756
|
+
sendNotReady(`Shell capture re-optimizing: ${err.message}`);
|
|
7757
|
+
return true;
|
|
7758
|
+
};
|
|
7759
|
+
const handleShellImportError = (err) => {
|
|
7760
|
+
if (handledAsReoptimizing(err)) return;
|
|
7761
|
+
res.statusCode = 500;
|
|
7762
|
+
res.end(`Shell capture module refresh failed: ${err.message}`);
|
|
7763
|
+
};
|
|
7764
|
+
if (process.env.RANGO_E2E_INJECT_SHELL_NOTREADY === "1" && !injectedShellNotReadyPaths.has(pathname)) {
|
|
7765
|
+
injectedShellNotReadyPaths.add(pathname);
|
|
7766
|
+
const injected = Object.assign(
|
|
7767
|
+
new Error("Outdated Optimize Dep (injected boot-race)"),
|
|
7768
|
+
{ code: "ERR_OUTDATED_OPTIMIZED_DEP" }
|
|
7769
|
+
);
|
|
7770
|
+
if (handledAsReoptimizing(injected)) return;
|
|
7771
|
+
}
|
|
7772
|
+
const ttl = Number(ttlRaw);
|
|
7773
|
+
const swrRaw = url.searchParams.get("swr");
|
|
7774
|
+
const swr = swrRaw === null ? void 0 : Number(swrRaw);
|
|
7775
|
+
const tagsRaw = url.searchParams.get("tags");
|
|
7776
|
+
const tags = tagsRaw ? tagsRaw.split(",") : void 0;
|
|
7777
|
+
const maxSnapshotBytesRaw = url.searchParams.get("maxSnapshotBytes");
|
|
7778
|
+
const maxSnapshotBytes = maxSnapshotBytesRaw === null ? void 0 : Number(maxSnapshotBytesRaw);
|
|
7779
|
+
const captureTimeout = normalizeCaptureTimeout(
|
|
7780
|
+
Number(url.searchParams.get("captureTimeout"))
|
|
7781
|
+
);
|
|
7782
|
+
const rscEnvMain = server.environments?.rsc;
|
|
7783
|
+
let rscRealm = null;
|
|
7784
|
+
let ssrRealm = null;
|
|
7785
|
+
let ssrEntryId;
|
|
7786
|
+
let tempServerError = null;
|
|
7787
|
+
if (rscEnvMain?.runner && s.resolvedEntryPath) {
|
|
7788
|
+
try {
|
|
7789
|
+
await rscEnvMain.runner.import(s.resolvedEntryPath);
|
|
7790
|
+
} catch (err) {
|
|
7791
|
+
handleShellImportError(err);
|
|
7792
|
+
return;
|
|
7793
|
+
}
|
|
7794
|
+
rscRealm = rscEnvMain;
|
|
7795
|
+
ssrRealm = server.environments?.ssr;
|
|
7796
|
+
ssrEntryId = server.environments?.ssr?.config?.build?.rollupOptions?.input?.index ?? VIRTUAL_IDS.ssr;
|
|
7797
|
+
} else {
|
|
7798
|
+
const tempResult = await getOrCreateTempServer();
|
|
7799
|
+
if (tempResult.env) {
|
|
7800
|
+
try {
|
|
7801
|
+
await importEntryAndRegistry(tempResult.env);
|
|
7802
|
+
} catch (err) {
|
|
7803
|
+
handleShellImportError(err);
|
|
7804
|
+
return;
|
|
7805
|
+
}
|
|
7806
|
+
} else {
|
|
7807
|
+
tempServerError = tempResult.error;
|
|
7808
|
+
}
|
|
7809
|
+
rscRealm = tempResult.env;
|
|
7810
|
+
ssrRealm = prerenderTempServer?.environments?.ssr;
|
|
7811
|
+
ssrEntryId = "virtual:entry-ssr";
|
|
7812
|
+
}
|
|
7813
|
+
if (!rscRealm?.runner || !ssrRealm?.runner) {
|
|
7814
|
+
if (tempServerError && handledAsReoptimizing(tempServerError)) return;
|
|
7815
|
+
res.statusCode = 503;
|
|
7816
|
+
res.end("Shell capture runners not available");
|
|
7817
|
+
return;
|
|
7818
|
+
}
|
|
7819
|
+
let registry = null;
|
|
7820
|
+
let registryError = null;
|
|
7821
|
+
try {
|
|
7822
|
+
const serverMod = await rscRealm.runner.import(
|
|
7823
|
+
"@rangojs/router/server"
|
|
7824
|
+
);
|
|
7825
|
+
registry = serverMod.RouterRegistry ?? null;
|
|
7826
|
+
} catch (err) {
|
|
7827
|
+
registryError = err;
|
|
7828
|
+
registry = null;
|
|
7829
|
+
}
|
|
7830
|
+
if (!registry || registry.size === 0) {
|
|
7831
|
+
if (registryError && handledAsReoptimizing(registryError)) return;
|
|
7832
|
+
res.statusCode = 503;
|
|
7833
|
+
res.end("Shell capture registry not available");
|
|
7834
|
+
return;
|
|
7835
|
+
}
|
|
7836
|
+
const cacheKey = `shell|${pathname}|r=${routeName}|t=${ttl}|s=${swr ?? ""}|g=${(tags ?? []).join("+")}|c=${captureTimeout ?? ""}|v=${version}`;
|
|
7837
|
+
for (const [, routerInstance] of registry) {
|
|
7838
|
+
if (typeof routerInstance.match !== "function") continue;
|
|
7839
|
+
const cached = devPrerenderCache.get(routerInstance, cacheKey);
|
|
7840
|
+
if (cached !== void 0) {
|
|
7841
|
+
res.setHeader("content-type", "application/json");
|
|
7842
|
+
res.setHeader("x-rango-shell-dev", "HIT");
|
|
7843
|
+
res.end(cached);
|
|
7844
|
+
return;
|
|
7845
|
+
}
|
|
7846
|
+
}
|
|
7847
|
+
if (s.devServerOrigin) {
|
|
7848
|
+
try {
|
|
7849
|
+
const probe = await fetch(
|
|
7850
|
+
`${s.devServerOrigin}/__rsc_prerender?pathname=${encodeURIComponent(pathname)}&routeName=${encodeURIComponent(routeName)}`,
|
|
7851
|
+
{ signal: AbortSignal.timeout(DEV_SHELL_PROBE_TIMEOUT_MS) }
|
|
7852
|
+
);
|
|
7853
|
+
if (!probe.ok) {
|
|
7854
|
+
res.statusCode = 404;
|
|
7855
|
+
res.end("Route is not prerenderable");
|
|
7856
|
+
return;
|
|
7857
|
+
}
|
|
7858
|
+
} catch {
|
|
7859
|
+
res.statusCode = 404;
|
|
7860
|
+
res.end("Prerender pre-flight failed");
|
|
7861
|
+
return;
|
|
7862
|
+
}
|
|
7863
|
+
}
|
|
7864
|
+
for (const [, routerInstance] of registry) {
|
|
7865
|
+
if (typeof routerInstance.match !== "function") continue;
|
|
7866
|
+
try {
|
|
7867
|
+
const ssrModule = await ssrRealm.runner.import(ssrEntryId);
|
|
7868
|
+
if (typeof ssrModule?.captureShellHTML !== "function") {
|
|
7869
|
+
res.statusCode = 404;
|
|
7870
|
+
res.end("SSR entry has no captureShellHTML");
|
|
7871
|
+
return;
|
|
7872
|
+
}
|
|
7873
|
+
const captureMod = await rscRealm.runner.import(
|
|
7874
|
+
"@rangojs/router/build/shell-capture"
|
|
7875
|
+
);
|
|
7876
|
+
const result = await captureMod.captureShellForBuild({
|
|
7877
|
+
router: routerInstance,
|
|
7878
|
+
urlPath: pathname,
|
|
7879
|
+
routeName,
|
|
7880
|
+
key: `${pathname}:shell`,
|
|
7881
|
+
ttl,
|
|
7882
|
+
swr,
|
|
7883
|
+
tags,
|
|
7884
|
+
maxSnapshotBytes,
|
|
7885
|
+
captureTimeout,
|
|
7886
|
+
buildEnv: s.resolvedBuildEnv,
|
|
7887
|
+
buildVersion: version,
|
|
7888
|
+
captureShellHTML: ssrModule.captureShellHTML,
|
|
7889
|
+
debug: !!debugDiscovery
|
|
7890
|
+
});
|
|
7891
|
+
if (result.outcome === "route-mismatch") continue;
|
|
7892
|
+
if (result.outcome !== "stored" || !result.entry) {
|
|
7893
|
+
res.statusCode = 404;
|
|
7894
|
+
res.end(`Shell capture ${result.outcome}`);
|
|
7895
|
+
return;
|
|
7896
|
+
}
|
|
7897
|
+
const body = JSON.stringify({
|
|
7898
|
+
entry: result.entry,
|
|
7899
|
+
ttl,
|
|
7900
|
+
swr,
|
|
7901
|
+
tags: result.tags,
|
|
7902
|
+
routeName
|
|
7903
|
+
});
|
|
7904
|
+
devPrerenderCache.set(routerInstance, cacheKey, body);
|
|
7905
|
+
res.setHeader("content-type", "application/json");
|
|
7906
|
+
res.setHeader("x-rango-shell-dev", "MISS");
|
|
7907
|
+
res.end(body);
|
|
7908
|
+
return;
|
|
7909
|
+
} catch (err) {
|
|
7910
|
+
if (handledAsReoptimizing(err)) return;
|
|
7911
|
+
console.warn(
|
|
7912
|
+
`[rango] Dev shell capture error for ${pathname} (route keeps runtime capture): ${err.message}`
|
|
7913
|
+
);
|
|
7914
|
+
res.statusCode = 404;
|
|
7915
|
+
res.end(`Shell capture error: ${err.message}`);
|
|
7916
|
+
return;
|
|
7917
|
+
}
|
|
7918
|
+
}
|
|
7919
|
+
res.statusCode = 404;
|
|
7920
|
+
res.end("No router matched");
|
|
7921
|
+
});
|
|
7287
7922
|
if (opts?.staticRouteTypesGeneration !== false) {
|
|
7288
7923
|
const isGeneratedRouteFile = (filePath) => filePath.endsWith(".gen.ts") && (filePath.includes("named-routes.gen.ts") || filePath.includes("urls.gen.ts"));
|
|
7289
7924
|
const regenerateGeneratedRouteFiles = () => {
|
|
@@ -7453,7 +8088,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7453
8088
|
}
|
|
7454
8089
|
const inRecoveryMode = !!s.lastDiscoveryError;
|
|
7455
8090
|
try {
|
|
7456
|
-
const source =
|
|
8091
|
+
const source = readFileSync7(filePath, "utf-8");
|
|
7457
8092
|
const trimmed = source.trimStart();
|
|
7458
8093
|
const isUseClient = trimmed.startsWith('"use client"') || trimmed.startsWith("'use client'");
|
|
7459
8094
|
if (!inRecoveryMode && isUseClient) return;
|
|
@@ -7484,7 +8119,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7484
8119
|
if (hasCreateRouter) {
|
|
7485
8120
|
const nestedRouterConflict = findNestedRouterConflict([
|
|
7486
8121
|
...s.cachedRouterFiles ?? [],
|
|
7487
|
-
|
|
8122
|
+
resolve11(filePath)
|
|
7488
8123
|
]);
|
|
7489
8124
|
if (nestedRouterConflict) {
|
|
7490
8125
|
server.config.logger.error(
|
|
@@ -7534,8 +8169,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
|
|
|
7534
8169
|
const buildStartTime = performance.now();
|
|
7535
8170
|
debugDiscovery?.("build: start (env=%s)", this.environment?.name ?? "?");
|
|
7536
8171
|
resetStagedBuildAssets(s.projectRoot);
|
|
7537
|
-
s
|
|
7538
|
-
s.staticManifestEntries = null;
|
|
8172
|
+
resetPrerenderCollection(s);
|
|
7539
8173
|
await timed(
|
|
7540
8174
|
debugDiscovery,
|
|
7541
8175
|
"build acquireBuildEnv",
|
|
@@ -7590,20 +8224,59 @@ ${details}`,
|
|
|
7590
8224
|
);
|
|
7591
8225
|
} finally {
|
|
7592
8226
|
delete globalThis.__rscRouterDiscoveryActive;
|
|
7593
|
-
if (tempServer) {
|
|
7594
|
-
|
|
7595
|
-
|
|
7596
|
-
|
|
7597
|
-
|
|
7598
|
-
|
|
8227
|
+
if (tempServer && s.shellCandidates?.length) {
|
|
8228
|
+
s.shellPhaseTempServer = tempServer;
|
|
8229
|
+
} else {
|
|
8230
|
+
if (tempServer) {
|
|
8231
|
+
await timed(
|
|
8232
|
+
debugDiscovery,
|
|
8233
|
+
"build tempServer.close",
|
|
8234
|
+
() => tempServer.close()
|
|
8235
|
+
);
|
|
8236
|
+
}
|
|
8237
|
+
await releaseBuildEnv(s);
|
|
7599
8238
|
}
|
|
7600
|
-
await releaseBuildEnv(s);
|
|
7601
8239
|
debugDiscovery?.(
|
|
7602
8240
|
"build discovery done (%sms)",
|
|
7603
8241
|
(performance.now() - buildStartTime).toFixed(1)
|
|
7604
8242
|
);
|
|
7605
8243
|
}
|
|
7606
8244
|
},
|
|
8245
|
+
// Post-build PPR shell capture (producer B, #699): runs after EVERY
|
|
8246
|
+
// environment bundle is written — the shell prelude embeds built client
|
|
8247
|
+
// asset URLs (bootstrap entry), which do not exist at buildStart. The
|
|
8248
|
+
// kept temp server and the buildEnv were deferred AS A PAIR in
|
|
8249
|
+
// buildStart's finally; this finally is the pair's success-path owner
|
|
8250
|
+
// (buildEnd below owns the aborted-build path) — the phase itself is a
|
|
8251
|
+
// pure producer and tears down only the globals it installs.
|
|
8252
|
+
buildApp: {
|
|
8253
|
+
order: "post",
|
|
8254
|
+
async handler(builder) {
|
|
8255
|
+
try {
|
|
8256
|
+
await runShellPrerenderPhase(s, builder);
|
|
8257
|
+
} finally {
|
|
8258
|
+
if (s.isBuildMode) {
|
|
8259
|
+
const tempServer = s.shellPhaseTempServer;
|
|
8260
|
+
s.shellPhaseTempServer = null;
|
|
8261
|
+
if (tempServer) await tempServer.close();
|
|
8262
|
+
await releaseBuildEnv(s);
|
|
8263
|
+
}
|
|
8264
|
+
}
|
|
8265
|
+
}
|
|
8266
|
+
},
|
|
8267
|
+
// An environment build failure aborts the builder before the buildApp
|
|
8268
|
+
// post hook — never leak the kept temp server (open handles hang the CLI)
|
|
8269
|
+
// or the deferred buildEnv (a live miniflare proxy).
|
|
8270
|
+
async buildEnd(error) {
|
|
8271
|
+
if (!error || !s.shellPhaseTempServer) return;
|
|
8272
|
+
const tempServer = s.shellPhaseTempServer;
|
|
8273
|
+
s.shellPhaseTempServer = null;
|
|
8274
|
+
try {
|
|
8275
|
+
await tempServer.close();
|
|
8276
|
+
} finally {
|
|
8277
|
+
await releaseBuildEnv(s);
|
|
8278
|
+
}
|
|
8279
|
+
},
|
|
7607
8280
|
// Suppress vite's HMR cascade for our own gen-file writes.
|
|
7608
8281
|
//
|
|
7609
8282
|
// After every cf HMR cycle, refreshTempRscEnv → writeRouteTypesFiles
|
|
@@ -7768,7 +8441,9 @@ ${details}`,
|
|
|
7768
8441
|
}
|
|
7769
8442
|
|
|
7770
8443
|
// src/vite/rango.ts
|
|
8444
|
+
init_debug();
|
|
7771
8445
|
var debugConfig = createRangoDebugger(NS.config);
|
|
8446
|
+
var SERVER_BUILD_TARGET = "esnext";
|
|
7772
8447
|
async function rango(options) {
|
|
7773
8448
|
const rangoStart = performance.now();
|
|
7774
8449
|
const resolvedOptions = options ?? { preset: "node" };
|
|
@@ -7893,7 +8568,11 @@ async function rango(options) {
|
|
|
7893
8568
|
}
|
|
7894
8569
|
}
|
|
7895
8570
|
});
|
|
7896
|
-
plugins.push(
|
|
8571
|
+
plugins.push(
|
|
8572
|
+
createVirtualEntriesPlugin(finalEntries, void 0, {
|
|
8573
|
+
headScripts: resolvedOptions.headScripts
|
|
8574
|
+
})
|
|
8575
|
+
);
|
|
7897
8576
|
plugins.push(performanceTracksPlugin());
|
|
7898
8577
|
plugins.push(
|
|
7899
8578
|
rsc({
|
|
@@ -7908,14 +8587,14 @@ async function rango(options) {
|
|
|
7908
8587
|
name: "@rangojs/router:auto-discover",
|
|
7909
8588
|
config(userConfig) {
|
|
7910
8589
|
if (routerRef.path) return;
|
|
7911
|
-
const root = userConfig.root ?
|
|
8590
|
+
const root = userConfig.root ? resolve12(process.cwd(), userConfig.root) : process.cwd();
|
|
7912
8591
|
const toRootRelative = (abs) => (abs.startsWith(root) ? "./" + abs.slice(root.length + 1) : abs).replaceAll("\\", "/");
|
|
7913
8592
|
const bulletList = (files) => files.map((f) => " - " + toRootRelative(f)).join("\n");
|
|
7914
8593
|
if (explicitHostRouter) {
|
|
7915
8594
|
routerRef.path = normalizeHostRouterEntry(
|
|
7916
8595
|
explicitHostRouter,
|
|
7917
8596
|
root,
|
|
7918
|
-
|
|
8597
|
+
existsSync9
|
|
7919
8598
|
);
|
|
7920
8599
|
routerRef.kind = "host";
|
|
7921
8600
|
return;
|
|
@@ -8012,6 +8691,9 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8012
8691
|
},
|
|
8013
8692
|
ssr: {
|
|
8014
8693
|
...vercelServerEnv ?? {},
|
|
8694
|
+
build: {
|
|
8695
|
+
target: SERVER_BUILD_TARGET
|
|
8696
|
+
},
|
|
8015
8697
|
optimizeDeps: {
|
|
8016
8698
|
entries: [VIRTUAL_IDS.ssr],
|
|
8017
8699
|
include: [
|
|
@@ -8031,6 +8713,9 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8031
8713
|
},
|
|
8032
8714
|
rsc: {
|
|
8033
8715
|
...vercelServerEnv ?? {},
|
|
8716
|
+
build: {
|
|
8717
|
+
target: SERVER_BUILD_TARGET
|
|
8718
|
+
},
|
|
8034
8719
|
optimizeDeps: {
|
|
8035
8720
|
entries: [VIRTUAL_IDS.rsc],
|
|
8036
8721
|
include: [
|
|
@@ -8073,7 +8758,11 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8073
8758
|
}
|
|
8074
8759
|
}
|
|
8075
8760
|
});
|
|
8076
|
-
plugins.push(
|
|
8761
|
+
plugins.push(
|
|
8762
|
+
createVirtualEntriesPlugin(finalEntries, routerRef, {
|
|
8763
|
+
headScripts: resolvedOptions.headScripts
|
|
8764
|
+
})
|
|
8765
|
+
);
|
|
8077
8766
|
plugins.push(performanceTracksPlugin());
|
|
8078
8767
|
plugins.push(
|
|
8079
8768
|
rsc({
|
|
@@ -8092,7 +8781,7 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8092
8781
|
if (!file.endsWith(".tsx") && !file.endsWith(".ts") && !file.endsWith(".jsx") && !file.endsWith(".js"))
|
|
8093
8782
|
return;
|
|
8094
8783
|
try {
|
|
8095
|
-
const source =
|
|
8784
|
+
const source = readFileSync8(file, "utf-8");
|
|
8096
8785
|
if (hasUseClientDirective(source)) {
|
|
8097
8786
|
return [];
|
|
8098
8787
|
}
|
|
@@ -8119,7 +8808,8 @@ If this is a multi-app host router, export a createHostRouter() instance and set
|
|
|
8119
8808
|
preset,
|
|
8120
8809
|
prerenderOnError: options?.prerender?.onError,
|
|
8121
8810
|
discovery: options?.discovery,
|
|
8122
|
-
clientChunkCtx
|
|
8811
|
+
clientChunkCtx,
|
|
8812
|
+
headScripts: resolvedOptions.headScripts
|
|
8123
8813
|
})
|
|
8124
8814
|
);
|
|
8125
8815
|
if (preset === "vercel") {
|
|
@@ -8143,7 +8833,7 @@ function poke() {
|
|
|
8143
8833
|
apply: "serve",
|
|
8144
8834
|
configureServer(server) {
|
|
8145
8835
|
const stdin = process.stdin;
|
|
8146
|
-
const
|
|
8836
|
+
const debug12 = process.env.RANGO_POKE_DEBUG === "1";
|
|
8147
8837
|
const triggerReload = (source) => {
|
|
8148
8838
|
server.hot.send({ type: "full-reload", path: "*" });
|
|
8149
8839
|
server.config.logger.info(` browser reload (${source})`, {
|
|
@@ -8176,7 +8866,7 @@ function poke() {
|
|
|
8176
8866
|
lines.pop();
|
|
8177
8867
|
return lines;
|
|
8178
8868
|
};
|
|
8179
|
-
if (
|
|
8869
|
+
if (debug12) {
|
|
8180
8870
|
server.config.logger.info(
|
|
8181
8871
|
` poke debug enabled (isTTY=${stdin.isTTY ? "yes" : "no"}, isRaw=${stdin.isTTY ? stdin.isRaw ? "yes" : "no" : "n/a"})`,
|
|
8182
8872
|
{ timestamp: true }
|
|
@@ -8189,7 +8879,7 @@ function poke() {
|
|
|
8189
8879
|
);
|
|
8190
8880
|
}
|
|
8191
8881
|
const onData = (data) => {
|
|
8192
|
-
if (
|
|
8882
|
+
if (debug12) {
|
|
8193
8883
|
server.config.logger.info(` poke stdin ${formatChunk(data)}`, {
|
|
8194
8884
|
timestamp: true
|
|
8195
8885
|
});
|