@rangojs/router 0.0.0-experimental.9c9afef3 → 0.0.0-experimental.a014d2b7
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/AGENTS.md +8 -0
- package/README.md +245 -49
- package/dist/bin/rango.js +440 -133
- package/dist/testing/vitest.js +82 -0
- package/dist/vite/index.js +3373 -1176
- package/dist/vite/index.js.bak +5448 -0
- package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/package.json +68 -14
- package/skills/api-client/SKILL.md +211 -0
- package/skills/breadcrumbs/SKILL.md +64 -2
- package/skills/bundle-analysis/SKILL.md +159 -0
- package/skills/cache-guide/SKILL.md +224 -32
- package/skills/caching/SKILL.md +279 -17
- package/skills/composability/SKILL.md +27 -3
- package/skills/css/SKILL.md +76 -0
- package/skills/debug-manifest/SKILL.md +4 -2
- package/skills/document-cache/SKILL.md +78 -55
- package/skills/handler-use/SKILL.md +364 -0
- package/skills/hooks/SKILL.md +250 -30
- package/skills/host-router/SKILL.md +83 -23
- package/skills/i18n/SKILL.md +276 -0
- package/skills/intercept/SKILL.md +87 -18
- package/skills/layout/SKILL.md +35 -9
- package/skills/links/SKILL.md +249 -17
- package/skills/loader/SKILL.md +235 -9
- package/skills/middleware/SKILL.md +52 -13
- package/skills/migrate-nextjs/SKILL.md +584 -0
- package/skills/migrate-react-router/SKILL.md +771 -0
- package/skills/mime-routes/SKILL.md +28 -1
- package/skills/observability/SKILL.md +172 -0
- package/skills/parallel/SKILL.md +77 -7
- package/skills/prerender/SKILL.md +172 -125
- package/skills/rango/SKILL.md +251 -22
- package/skills/react-compiler/SKILL.md +168 -0
- package/skills/response-routes/SKILL.md +123 -48
- package/skills/route/SKILL.md +70 -5
- package/skills/router-setup/SKILL.md +65 -8
- package/skills/scripts/SKILL.md +179 -0
- package/skills/server-actions/SKILL.md +775 -0
- package/skills/streams-and-websockets/SKILL.md +283 -0
- package/skills/tailwind/SKILL.md +27 -3
- package/skills/testing/SKILL.md +130 -0
- package/skills/testing/bindings.md +103 -0
- package/skills/testing/cache-prerender.md +127 -0
- package/skills/testing/client-components.md +124 -0
- package/skills/testing/e2e-parity.md +125 -0
- package/skills/testing/flight.md +91 -0
- package/skills/testing/handles.md +129 -0
- package/skills/testing/loader.md +128 -0
- package/skills/testing/middleware.md +99 -0
- package/skills/testing/render-handler.md +122 -0
- package/skills/testing/response-routes.md +95 -0
- package/skills/testing/reverse-and-types.md +84 -0
- package/skills/testing/server-actions.md +107 -0
- package/skills/testing/server-tree.md +128 -0
- package/skills/testing/setup.md +123 -0
- package/skills/typesafety/SKILL.md +322 -29
- package/skills/use-cache/SKILL.md +57 -14
- package/skills/view-transitions/SKILL.md +337 -0
- package/src/__augment-tests__/augment.ts +81 -0
- package/src/__augment-tests__/augmented.check.ts +116 -0
- package/src/__internal.ts +1 -66
- package/src/browser/action-coordinator.ts +53 -36
- package/src/browser/action-fence.ts +47 -0
- package/src/browser/app-shell.ts +39 -0
- package/src/browser/app-version.ts +14 -0
- package/src/browser/connection-warmup.ts +134 -0
- package/src/browser/cookie-name.ts +140 -0
- package/src/browser/event-controller.ts +192 -150
- package/src/browser/history-state.ts +21 -0
- package/src/browser/index.ts +3 -3
- package/src/browser/invalidate-client-cache.ts +52 -0
- package/src/browser/navigation-bridge.ts +131 -30
- package/src/browser/navigation-client.ts +186 -100
- package/src/browser/navigation-store-handle.ts +38 -0
- package/src/browser/navigation-store.ts +157 -74
- package/src/browser/navigation-transaction.ts +9 -59
- package/src/browser/network-error-handler.ts +34 -7
- package/src/browser/partial-update.ts +165 -112
- package/src/browser/prefetch/cache.ts +205 -62
- package/src/browser/prefetch/fetch.ts +347 -39
- package/src/browser/prefetch/queue.ts +42 -8
- package/src/browser/rango-state.ts +158 -76
- package/src/browser/react/Link.tsx +102 -15
- package/src/browser/react/NavigationProvider.tsx +295 -119
- package/src/browser/react/ScrollRestoration.tsx +10 -6
- package/src/browser/react/context.ts +7 -2
- package/src/browser/react/deferred-handle-resolution.ts +75 -0
- package/src/browser/react/filter-segment-order.ts +66 -7
- package/src/browser/react/index.ts +0 -48
- package/src/browser/react/location-state-shared.ts +178 -8
- package/src/browser/react/location-state.ts +39 -14
- package/src/browser/react/use-action.ts +6 -15
- package/src/browser/react/use-handle.ts +23 -69
- package/src/browser/react/use-href.tsx +8 -1
- package/src/browser/react/use-link-status.ts +33 -8
- package/src/browser/react/use-navigation.ts +32 -7
- package/src/browser/react/use-params.ts +20 -10
- package/src/browser/react/use-reverse.ts +106 -0
- package/src/browser/react/use-router.ts +46 -11
- package/src/browser/react/use-search-params.ts +0 -5
- package/src/browser/react/use-segments.ts +11 -21
- package/src/browser/response-adapter.ts +99 -8
- package/src/browser/rsc-router.tsx +114 -24
- package/src/browser/scroll-restoration.ts +37 -22
- package/src/browser/segment-reconciler.ts +36 -14
- package/src/browser/segment-structure-assert.ts +2 -2
- package/src/browser/server-action-bridge.ts +222 -72
- package/src/browser/types.ts +102 -12
- package/src/browser/validate-redirect-origin.ts +43 -16
- package/src/build/collect-fallback-refs.ts +107 -0
- package/src/build/generate-manifest.ts +65 -40
- package/src/build/generate-route-types.ts +5 -1
- package/src/build/index.ts +8 -2
- package/src/build/prefix-tree-utils.ts +123 -0
- package/src/build/route-trie.ts +165 -36
- package/src/build/route-types/ast-route-extraction.ts +15 -8
- package/src/build/route-types/codegen.ts +16 -5
- package/src/build/route-types/include-resolution.ts +125 -24
- package/src/build/route-types/param-extraction.ts +6 -3
- package/src/build/route-types/per-module-writer.ts +22 -6
- package/src/build/route-types/router-processing.ts +260 -94
- package/src/build/route-types/scan-filter.ts +9 -2
- package/src/build/route-types/source-scan.ts +216 -0
- package/src/build/runtime-discovery.ts +9 -20
- package/src/cache/cache-error.ts +104 -0
- package/src/cache/cache-key-utils.ts +29 -13
- package/src/cache/cache-policy.ts +108 -34
- package/src/cache/cache-runtime.ts +224 -41
- package/src/cache/cache-scope.ts +188 -82
- package/src/cache/cache-tag.ts +103 -0
- package/src/cache/cf/cf-base64.ts +33 -0
- package/src/cache/cf/cf-cache-constants.ts +127 -0
- package/src/cache/cf/cf-cache-store.ts +1989 -378
- package/src/cache/cf/cf-cache-types.ts +349 -0
- package/src/cache/cf/cf-kv-utils.ts +46 -0
- package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
- package/src/cache/cf/index.ts +6 -16
- package/src/cache/document-cache.ts +89 -21
- package/src/cache/handle-snapshot.ts +70 -0
- package/src/cache/index.ts +10 -20
- package/src/cache/memory-segment-store.ts +136 -37
- package/src/cache/profile-registry.ts +46 -31
- package/src/cache/read-through-swr.ts +56 -12
- package/src/cache/segment-codec.ts +9 -17
- package/src/cache/tag-invalidation.ts +230 -0
- package/src/cache/types.ts +37 -100
- package/src/client.rsc.tsx +44 -21
- package/src/client.tsx +119 -290
- package/src/cloudflare/index.ts +11 -0
- package/src/cloudflare/tracing.ts +109 -0
- package/src/component-utils.ts +19 -0
- package/src/components/DefaultDocument.tsx +8 -2
- package/src/context-var.ts +18 -6
- package/src/decode-loader-results.ts +52 -0
- package/src/defer.ts +196 -0
- package/src/deps/ssr.ts +0 -1
- package/src/encode-kv.ts +49 -0
- package/src/errors.ts +30 -4
- package/src/escape-script.ts +52 -0
- package/src/handle.ts +70 -22
- package/src/handles/MetaTags.tsx +62 -19
- package/src/handles/Scripts.tsx +183 -0
- package/src/handles/breadcrumbs.ts +37 -8
- package/src/handles/is-thenable.ts +19 -0
- package/src/handles/meta.ts +51 -40
- package/src/handles/script.ts +244 -0
- package/src/host/cookie-handler.ts +9 -60
- package/src/host/errors.ts +0 -24
- package/src/host/index.ts +8 -2
- package/src/host/pattern-matcher.ts +23 -52
- package/src/host/router.ts +107 -99
- package/src/host/testing.ts +40 -27
- package/src/host/types.ts +37 -4
- package/src/host/utils.ts +1 -1
- package/src/href-client.ts +137 -22
- package/src/index.rsc.ts +99 -13
- package/src/index.ts +139 -19
- package/src/internal-debug.ts +11 -10
- package/src/loader-store.ts +500 -0
- package/src/loader.rsc.ts +20 -13
- package/src/loader.ts +12 -11
- package/src/missing-id-error.ts +68 -0
- package/src/outlet-context.ts +1 -1
- package/src/outlet-provider.tsx +1 -5
- package/src/prerender/param-hash.ts +16 -16
- package/src/prerender/store.ts +37 -41
- package/src/prerender.ts +198 -82
- package/src/redirect-origin.ts +100 -0
- package/src/regex-escape.ts +8 -0
- package/src/render-error-thrower.tsx +20 -0
- package/src/response-utils.ts +62 -0
- package/src/reverse.ts +65 -15
- package/src/root-error-boundary.tsx +1 -19
- package/src/route-content-wrapper.tsx +19 -77
- package/src/route-definition/dsl-helpers.ts +461 -304
- package/src/route-definition/helper-factories.ts +28 -140
- package/src/route-definition/helpers-types.ts +143 -69
- package/src/route-definition/index.ts +4 -2
- package/src/route-definition/redirect.ts +51 -10
- package/src/route-definition/resolve-handler-use.ts +160 -0
- package/src/route-definition/use-item-types.ts +29 -0
- package/src/route-map-builder.ts +0 -16
- package/src/route-types.ts +37 -46
- package/src/router/basename.ts +14 -0
- package/src/router/content-negotiation.ts +164 -17
- package/src/router/error-handling.ts +45 -18
- package/src/router/find-match.ts +44 -23
- package/src/router/handler-context.ts +52 -31
- package/src/router/instrument.ts +350 -0
- package/src/router/intercept-resolution.ts +48 -24
- package/src/router/lazy-includes.ts +15 -52
- package/src/router/loader-resolution.ts +268 -56
- package/src/router/logging.ts +0 -6
- package/src/router/manifest.ts +40 -42
- package/src/router/match-api.ts +124 -204
- package/src/router/match-context.ts +0 -22
- package/src/router/match-handlers.ts +58 -58
- package/src/router/match-middleware/background-revalidation.ts +40 -24
- package/src/router/match-middleware/cache-lookup.ts +170 -276
- package/src/router/match-middleware/cache-store.ts +64 -52
- package/src/router/match-middleware/intercept-resolution.ts +0 -22
- package/src/router/match-middleware/segment-resolution.ts +45 -14
- package/src/router/match-pipelines.ts +1 -42
- package/src/router/match-result.ts +87 -39
- package/src/router/metrics.ts +0 -34
- package/src/router/middleware-types.ts +7 -140
- package/src/router/middleware.ts +266 -169
- package/src/router/navigation-snapshot.ts +131 -0
- package/src/router/params-util.ts +23 -0
- package/src/router/pattern-matching.ts +132 -90
- package/src/router/prefetch-cache-ttl.ts +51 -0
- package/src/router/prerender-match.ts +195 -56
- package/src/router/preview-match.ts +32 -102
- package/src/router/request-classification.ts +276 -0
- package/src/router/revalidation.ts +123 -73
- package/src/router/route-snapshot.ts +244 -0
- package/src/router/router-context.ts +3 -28
- package/src/router/router-interfaces.ts +115 -35
- package/src/router/router-options.ts +172 -15
- package/src/router/router-registry.ts +2 -5
- package/src/router/segment-resolution/fresh.ts +162 -84
- package/src/router/segment-resolution/helpers.ts +86 -6
- package/src/router/segment-resolution/loader-cache.ts +76 -39
- package/src/router/segment-resolution/revalidation.ts +351 -321
- package/src/router/segment-resolution/static-store.ts +19 -5
- package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
- package/src/router/segment-resolution/view-transition-default.ts +56 -0
- package/src/router/segment-resolution.ts +5 -1
- package/src/router/segment-wrappers.ts +6 -5
- package/src/router/state-cookie-name.ts +33 -0
- package/src/router/substitute-pattern-params.ts +56 -0
- package/src/router/telemetry-otel.ts +161 -199
- package/src/router/telemetry.ts +96 -19
- package/src/router/timeout.ts +0 -20
- package/src/router/tracing.ts +206 -0
- package/src/router/trie-matching.ts +163 -59
- package/src/router/types.ts +9 -63
- package/src/router/url-params.ts +44 -0
- package/src/router.ts +157 -54
- package/src/rsc/handler-context.ts +3 -2
- package/src/rsc/handler.ts +655 -529
- package/src/rsc/helpers.ts +168 -46
- package/src/rsc/index.ts +2 -5
- package/src/rsc/json-route-result.ts +38 -0
- package/src/rsc/loader-fetch.ts +122 -31
- package/src/rsc/manifest-init.ts +33 -42
- package/src/rsc/origin-guard.ts +39 -25
- package/src/rsc/progressive-enhancement.ts +131 -14
- package/src/rsc/redirect-guard.ts +99 -0
- package/src/rsc/response-cache-serve.ts +238 -0
- package/src/rsc/response-error.ts +79 -12
- package/src/rsc/response-route-handler.ts +99 -189
- package/src/rsc/rsc-rendering.ts +109 -74
- package/src/rsc/runtime-warnings.ts +23 -10
- package/src/rsc/server-action.ts +287 -115
- package/src/rsc/ssr-setup.ts +18 -2
- package/src/rsc/transition-gate.ts +89 -0
- package/src/rsc/types.ts +29 -9
- package/src/runtime-env.ts +18 -0
- package/src/search-params.ts +35 -30
- package/src/segment-content-promise.ts +67 -0
- package/src/segment-loader-promise.ts +149 -0
- package/src/segment-system.tsx +236 -202
- package/src/serialize.ts +243 -0
- package/src/server/context.ts +224 -52
- package/src/server/cookie-parse.ts +32 -0
- package/src/server/cookie-store.ts +80 -5
- package/src/server/handle-store.ts +40 -38
- package/src/server/loader-registry.ts +38 -46
- package/src/server/request-context.ts +401 -173
- package/src/ssr/index.tsx +24 -16
- package/src/static-handler.ts +27 -18
- package/src/testing/cache-status.ts +162 -0
- package/src/testing/collect-handle.ts +40 -0
- package/src/testing/dispatch.ts +701 -0
- package/src/testing/dom.entry.ts +22 -0
- package/src/testing/e2e/fixture.ts +188 -0
- package/src/testing/e2e/index.ts +128 -0
- package/src/testing/e2e/matchers.ts +35 -0
- package/src/testing/e2e/page-helpers.ts +272 -0
- package/src/testing/e2e/parity.ts +387 -0
- package/src/testing/e2e/server.ts +195 -0
- package/src/testing/flight-matchers.ts +97 -0
- package/src/testing/flight-normalize.ts +11 -0
- package/src/testing/flight-runtime.d.ts +57 -0
- package/src/testing/flight-tree.ts +682 -0
- package/src/testing/flight.entry.ts +52 -0
- package/src/testing/flight.ts +257 -0
- package/src/testing/generated-routes.ts +183 -0
- package/src/testing/index.ts +105 -0
- package/src/testing/internal/context.ts +371 -0
- package/src/testing/internal/flight-client-globals.ts +30 -0
- package/src/testing/internal/seed-vars.ts +54 -0
- package/src/testing/render-handler.ts +357 -0
- package/src/testing/render-route.tsx +581 -0
- package/src/testing/run-loader.ts +385 -0
- package/src/testing/run-middleware.ts +205 -0
- package/src/testing/run-transition-when.ts +164 -0
- package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
- package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
- package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
- package/src/testing/vitest-stubs/version.ts +5 -0
- package/src/testing/vitest.ts +305 -0
- package/src/theme/ThemeProvider.tsx +20 -58
- package/src/theme/ThemeScript.tsx +7 -9
- package/src/theme/constants.ts +52 -13
- package/src/theme/index.ts +0 -7
- package/src/theme/theme-context.ts +1 -5
- package/src/theme/theme-script.ts +22 -21
- package/src/theme/use-theme.ts +0 -3
- package/src/types/boundaries.ts +0 -35
- package/src/types/cache-types.ts +17 -8
- package/src/types/error-types.ts +30 -90
- package/src/types/global-namespace.ts +54 -41
- package/src/types/handler-context.ts +125 -71
- package/src/types/index.ts +3 -10
- package/src/types/loader-types.ts +40 -11
- package/src/types/request-scope.ts +112 -0
- package/src/types/route-config.ts +6 -50
- package/src/types/route-entry.ts +12 -7
- package/src/types/segments.ts +136 -15
- package/src/urls/include-helper.ts +33 -70
- package/src/urls/index.ts +1 -11
- package/src/urls/path-helper-types.ts +68 -18
- package/src/urls/path-helper.ts +57 -111
- package/src/urls/pattern-types.ts +48 -19
- package/src/urls/response-types.ts +25 -22
- package/src/urls/type-extraction.ts +58 -139
- package/src/urls/urls-function.ts +1 -19
- package/src/use-loader.tsx +346 -89
- package/src/vite/debug.ts +185 -0
- package/src/vite/discovery/bundle-postprocess.ts +36 -38
- package/src/vite/discovery/discover-routers.ts +130 -85
- package/src/vite/discovery/discovery-errors.ts +194 -0
- package/src/vite/discovery/gate-state.ts +171 -0
- package/src/vite/discovery/prerender-collection.ts +214 -132
- package/src/vite/discovery/route-types-writer.ts +40 -84
- package/src/vite/discovery/self-gen-tracking.ts +27 -1
- package/src/vite/discovery/state.ts +57 -4
- package/src/vite/discovery/virtual-module-codegen.ts +14 -34
- package/src/vite/index.ts +6 -0
- package/src/vite/inject-client-debug.ts +36 -0
- package/src/vite/plugin-types.ts +178 -5
- package/src/vite/plugins/cjs-to-esm.ts +16 -19
- package/src/vite/plugins/client-ref-dedup.ts +16 -11
- package/src/vite/plugins/client-ref-hashing.ts +28 -15
- package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
- package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
- package/src/vite/plugins/expose-action-id.ts +48 -95
- package/src/vite/plugins/expose-id-utils.ts +96 -51
- package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
- package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
- package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
- package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
- package/src/vite/plugins/expose-internal-ids.ts +553 -317
- package/src/vite/plugins/performance-tracks.ts +64 -170
- package/src/vite/plugins/refresh-cmd.ts +89 -27
- package/src/vite/plugins/use-cache-transform.ts +73 -83
- package/src/vite/plugins/version-injector.ts +40 -29
- package/src/vite/plugins/version-plugin.ts +37 -40
- package/src/vite/plugins/virtual-entries.ts +39 -25
- package/src/vite/rango.ts +118 -114
- package/src/vite/router-discovery.ts +941 -142
- package/src/vite/utils/ast-handler-extract.ts +26 -35
- package/src/vite/utils/banner.ts +1 -1
- package/src/vite/utils/bundle-analysis.ts +10 -15
- package/src/vite/utils/client-chunks.ts +184 -0
- package/src/vite/utils/directive-prologue.ts +40 -0
- package/src/vite/utils/forward-user-plugins.ts +171 -0
- package/src/vite/utils/manifest-utils.ts +4 -59
- package/src/vite/utils/package-resolution.ts +20 -52
- package/src/vite/utils/prerender-utils.ts +81 -34
- package/src/vite/utils/shared-utils.ts +92 -42
- package/src/browser/action-response-classifier.ts +0 -99
- package/src/browser/debug-channel.ts +0 -93
- package/src/browser/react/use-client-cache.ts +0 -58
- package/src/browser/shallow.ts +0 -40
- package/src/handles/index.ts +0 -7
- package/src/network-error-thrower.tsx +0 -23
- package/src/router/middleware-cookies.ts +0 -55
package/src/index.ts
CHANGED
|
@@ -18,6 +18,7 @@ export {
|
|
|
18
18
|
MiddlewareError,
|
|
19
19
|
HandlerError,
|
|
20
20
|
BuildError,
|
|
21
|
+
DslContextError,
|
|
21
22
|
InvalidHandlerError,
|
|
22
23
|
RouterError,
|
|
23
24
|
Skip,
|
|
@@ -43,6 +44,7 @@ export type {
|
|
|
43
44
|
// Revalidation types
|
|
44
45
|
RevalidateParams,
|
|
45
46
|
Revalidate,
|
|
47
|
+
ActionRef,
|
|
46
48
|
RouteKeys,
|
|
47
49
|
// Loader types
|
|
48
50
|
LoaderDefinition,
|
|
@@ -80,7 +82,12 @@ export { createLoader } from "./loader.js";
|
|
|
80
82
|
|
|
81
83
|
// Route definition types (safe to import anywhere)
|
|
82
84
|
export type { RouteHelpers, RouteHandlers } from "./route-definition.js";
|
|
83
|
-
export type {
|
|
85
|
+
export type {
|
|
86
|
+
TransitionConfig,
|
|
87
|
+
TransitionWhenFn,
|
|
88
|
+
TransitionWhenContext,
|
|
89
|
+
ViewTransitionClass,
|
|
90
|
+
} from "./types.js";
|
|
84
91
|
|
|
85
92
|
// Composition types for reusable callback factories
|
|
86
93
|
export type {
|
|
@@ -88,6 +95,7 @@ export type {
|
|
|
88
95
|
LayoutUseItem,
|
|
89
96
|
AllUseItems,
|
|
90
97
|
UseItems,
|
|
98
|
+
HandlerUseItem,
|
|
91
99
|
} from "./route-types.js";
|
|
92
100
|
|
|
93
101
|
// Response route types (usable in both server and client contexts)
|
|
@@ -101,8 +109,7 @@ export type {
|
|
|
101
109
|
JsonResponsePathFn,
|
|
102
110
|
TextResponsePathFn,
|
|
103
111
|
RouteResponse,
|
|
104
|
-
|
|
105
|
-
ResponseEnvelope,
|
|
112
|
+
ProblemDetails,
|
|
106
113
|
} from "./urls.js";
|
|
107
114
|
|
|
108
115
|
// Middleware context types
|
|
@@ -138,6 +145,13 @@ export function redirect(): never {
|
|
|
138
145
|
|
|
139
146
|
// Handle API (universal - works on both server and client)
|
|
140
147
|
export { createHandle, isHandle, type Handle } from "./handle.js";
|
|
148
|
+
export {
|
|
149
|
+
DEFAULT_DEFER_TIMEOUT_MS,
|
|
150
|
+
type DeferOptions,
|
|
151
|
+
type DeferredHandleEntry,
|
|
152
|
+
type HandlePush,
|
|
153
|
+
type HandlePushFn,
|
|
154
|
+
} from "./defer.js";
|
|
141
155
|
|
|
142
156
|
// Context variable API (typed ctx.set/ctx.get tokens)
|
|
143
157
|
export { createVar, type ContextVar } from "./context-var.js";
|
|
@@ -146,17 +160,52 @@ export { createVar, type ContextVar } from "./context-var.js";
|
|
|
146
160
|
export { nonce } from "./rsc/nonce.js";
|
|
147
161
|
|
|
148
162
|
/**
|
|
149
|
-
*
|
|
163
|
+
* SSR/client stub for server-only `Prerender` function.
|
|
164
|
+
*
|
|
165
|
+
* Returns a lightweight stub object instead of throwing so that the
|
|
166
|
+
* production SSR build can safely bundle the RSC entry chunk — the SSR
|
|
167
|
+
* bundler resolves `@rangojs/router` to this (SSR) entry, so Prerender
|
|
168
|
+
* calls in RSC code must not crash at module-evaluation time.
|
|
169
|
+
*/
|
|
170
|
+
export function Prerender(
|
|
171
|
+
_handler?: any,
|
|
172
|
+
_optionsOrId?: any,
|
|
173
|
+
__injectedId?: string,
|
|
174
|
+
): any {
|
|
175
|
+
const id =
|
|
176
|
+
typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
|
|
177
|
+
return { __brand: "prerenderHandler" as const, $$id: id };
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* SSR/client stub for server-only `Passthrough` function.
|
|
150
182
|
*/
|
|
151
|
-
export function
|
|
152
|
-
|
|
183
|
+
export function Passthrough(
|
|
184
|
+
_handler?: any,
|
|
185
|
+
_optionsOrId?: any,
|
|
186
|
+
__injectedId?: string,
|
|
187
|
+
): any {
|
|
188
|
+
const id =
|
|
189
|
+
typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
|
|
190
|
+
return { __brand: "passthroughHandler" as const, $$id: id };
|
|
153
191
|
}
|
|
154
192
|
|
|
155
193
|
/**
|
|
156
|
-
*
|
|
194
|
+
* SSR/client stub for server-only `Static` function.
|
|
195
|
+
*
|
|
196
|
+
* Returns a lightweight stub object instead of throwing so that the
|
|
197
|
+
* production SSR build can safely bundle the RSC entry chunk — the SSR
|
|
198
|
+
* bundler resolves `@rangojs/router` to this (SSR) entry, so Static
|
|
199
|
+
* calls in RSC code must not crash at module-evaluation time.
|
|
157
200
|
*/
|
|
158
|
-
export function Static(
|
|
159
|
-
|
|
201
|
+
export function Static(
|
|
202
|
+
_handler?: any,
|
|
203
|
+
_optionsOrId?: any,
|
|
204
|
+
__injectedId?: string,
|
|
205
|
+
): any {
|
|
206
|
+
const id =
|
|
207
|
+
typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
|
|
208
|
+
return { __brand: "staticHandler" as const, $$id: id };
|
|
160
209
|
}
|
|
161
210
|
|
|
162
211
|
/**
|
|
@@ -180,6 +229,17 @@ export function headers(): never {
|
|
|
180
229
|
throw serverOnlyStubError("headers");
|
|
181
230
|
}
|
|
182
231
|
|
|
232
|
+
/**
|
|
233
|
+
* Client implementation of `invalidateClientCache()`. Unlike the server-only
|
|
234
|
+
* stubs above this is a REAL function under the `default` condition (it marks
|
|
235
|
+
* the client's caches stale); the `react-server` condition (index.rsc.ts)
|
|
236
|
+
* selects the server implementation that writes a rotated `Set-Cookie`.
|
|
237
|
+
*/
|
|
238
|
+
export {
|
|
239
|
+
invalidateClientCache,
|
|
240
|
+
keepClientCache,
|
|
241
|
+
} from "./browser/invalidate-client-cache.js";
|
|
242
|
+
|
|
183
243
|
/**
|
|
184
244
|
* Error-throwing stub for server-only `createReverse` function.
|
|
185
245
|
*/
|
|
@@ -200,6 +260,18 @@ export function middleware(): never {
|
|
|
200
260
|
export function revalidate(): never {
|
|
201
261
|
throw serverOnlyStubError("revalidate");
|
|
202
262
|
}
|
|
263
|
+
// Cache tag APIs are server-only (real implementations in index.rsc.ts). These
|
|
264
|
+
// stubs keep the named-export shape identical under the default/non-react-server
|
|
265
|
+
// condition so SSR/client/default bundles that encounter the import link cleanly.
|
|
266
|
+
export function cacheTag(): never {
|
|
267
|
+
throw serverOnlyStubError("cacheTag");
|
|
268
|
+
}
|
|
269
|
+
export function updateTag(): never {
|
|
270
|
+
throw serverOnlyStubError("updateTag");
|
|
271
|
+
}
|
|
272
|
+
export function revalidateTag(): never {
|
|
273
|
+
throw serverOnlyStubError("revalidateTag");
|
|
274
|
+
}
|
|
203
275
|
export function loader(): never {
|
|
204
276
|
throw serverOnlyStubError("loader");
|
|
205
277
|
}
|
|
@@ -212,9 +284,6 @@ export function parallel(): never {
|
|
|
212
284
|
export function intercept(): never {
|
|
213
285
|
throw serverOnlyStubError("intercept");
|
|
214
286
|
}
|
|
215
|
-
export function when(): never {
|
|
216
|
-
throw serverOnlyStubError("when");
|
|
217
|
-
}
|
|
218
287
|
export function errorBoundary(): never {
|
|
219
288
|
throw serverOnlyStubError("errorBoundary");
|
|
220
289
|
}
|
|
@@ -228,6 +297,9 @@ export function transition(): never {
|
|
|
228
297
|
// Request context type (safe for client)
|
|
229
298
|
export type { PublicRequestContext as RequestContext } from "./server/request-context.js";
|
|
230
299
|
|
|
300
|
+
// Shared base for every user-facing request context.
|
|
301
|
+
export type { RequestScope, ExecutionContext } from "./types/request-scope.js";
|
|
302
|
+
|
|
231
303
|
// Cookie store types (safe for client)
|
|
232
304
|
export type {
|
|
233
305
|
CookieStore,
|
|
@@ -235,6 +307,15 @@ export type {
|
|
|
235
307
|
ReadonlyHeaders,
|
|
236
308
|
} from "./server/cookie-store.js";
|
|
237
309
|
|
|
310
|
+
// Built-in handles (universal — work on both server and client)
|
|
311
|
+
export { Meta } from "./handles/meta.js";
|
|
312
|
+
export {
|
|
313
|
+
Script,
|
|
314
|
+
type ScriptConfig,
|
|
315
|
+
type ScriptAttributes,
|
|
316
|
+
} from "./handles/script.js";
|
|
317
|
+
export { Breadcrumbs } from "./handles/breadcrumbs.js";
|
|
318
|
+
|
|
238
319
|
// Meta types
|
|
239
320
|
export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
|
|
240
321
|
|
|
@@ -259,14 +340,53 @@ export {
|
|
|
259
340
|
type LocationStateOptions,
|
|
260
341
|
} from "./browser/react/location-state-shared.js";
|
|
261
342
|
|
|
262
|
-
// Path
|
|
263
|
-
|
|
343
|
+
// Path and response types are ambient on the `Rango` namespace (`Rango.Path`,
|
|
344
|
+
// `Rango.PathResponse`, declared in href-client.ts) — no import needed.
|
|
345
|
+
|
|
346
|
+
// Telemetry types only — the createConsoleSink/createOTelSink values are
|
|
347
|
+
// server-only and live in index.rsc.ts (the `react-server` condition of the
|
|
348
|
+
// bare `@rangojs/router` import). Re-exporting them as values from this
|
|
349
|
+
// (default/client) entry would pull telemetry.ts and telemetry-otel.ts into
|
|
350
|
+
// the client module graph; both tree-shake to zero bytes but still appear in
|
|
351
|
+
// bundle analysis output and slow build-time module resolution. Consumers
|
|
352
|
+
// who need the values in non-RSC contexts can import from
|
|
353
|
+
// `@rangojs/router/server`.
|
|
354
|
+
export type {
|
|
355
|
+
OTelTracer,
|
|
356
|
+
OTelActiveSpanTracer,
|
|
357
|
+
OTelSpan,
|
|
358
|
+
OTelTracingOptions,
|
|
359
|
+
} from "./router/telemetry-otel.js";
|
|
360
|
+
// The full TelemetryEvent union PLUS its member types, so a consumer writing a
|
|
361
|
+
// TelemetrySink can annotate a per-`type` handler (or construct an event literal
|
|
362
|
+
// in a test) instead of only narrowing the opaque union.
|
|
363
|
+
export type {
|
|
364
|
+
TelemetrySink,
|
|
365
|
+
TelemetryEvent,
|
|
366
|
+
RequestStartEvent,
|
|
367
|
+
RequestEndEvent,
|
|
368
|
+
RequestErrorEvent,
|
|
369
|
+
LoaderStartEvent,
|
|
370
|
+
LoaderEndEvent,
|
|
371
|
+
LoaderErrorEvent,
|
|
372
|
+
HandlerErrorEvent,
|
|
373
|
+
CacheSegmentStatus,
|
|
374
|
+
CacheSegmentSignal,
|
|
375
|
+
CacheDecisionEvent,
|
|
376
|
+
RevalidationDecisionEvent,
|
|
377
|
+
RequestTimeoutEvent,
|
|
378
|
+
OriginCheckRejectedEvent,
|
|
379
|
+
} from "./router/telemetry.js";
|
|
264
380
|
|
|
265
|
-
//
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
export type {
|
|
381
|
+
// Span tracing config types a consumer annotates. SpanRunner/TraceSpan are the
|
|
382
|
+
// internal runner contract (consumers go through createOTelTracing /
|
|
383
|
+
// createCloudflareTracing, which return a ready RouterTracingConfig) and are not
|
|
384
|
+
// exported.
|
|
385
|
+
export type {
|
|
386
|
+
RouterTracingConfig,
|
|
387
|
+
TracePhase,
|
|
388
|
+
TracePhaseToggles,
|
|
389
|
+
} from "./router/tracing.js";
|
|
270
390
|
|
|
271
391
|
// Timeout types and error class
|
|
272
392
|
export { RouterTimeoutError } from "./router/timeout.js";
|
package/src/internal-debug.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
1
|
+
// Runtime fallback for non-Vite contexts (Node, tests, raw imports). In the Vite
|
|
2
|
+
// pipeline -- dev and build, every environment -- the router discovery plugin's
|
|
3
|
+
// transform replaces this module with the build-time-resolved flag (see
|
|
4
|
+
// vite/inject-client-debug.ts), so the CLIENT debug flag no longer depends on a
|
|
5
|
+
// `__RANGO_DEBUG__` define being delivered to the browser (which dev did only as
|
|
6
|
+
// an injected global whose presence varied across consumer setups).
|
|
7
|
+
//
|
|
8
|
+
// Keep this module to the single INTERNAL_RANGO_DEBUG export: the transform
|
|
9
|
+
// replaces the whole file, so a second export would be dropped from the bundle.
|
|
5
10
|
export const INTERNAL_RANGO_DEBUG: boolean =
|
|
6
|
-
typeof
|
|
7
|
-
|
|
8
|
-
: typeof process !== "undefined" &&
|
|
9
|
-
Boolean((process as any).env?.INTERNAL_RANGO_DEBUG);
|
|
10
|
-
|
|
11
|
-
declare const __RANGO_DEBUG__: boolean;
|
|
11
|
+
typeof process !== "undefined" &&
|
|
12
|
+
Boolean((process as any).env?.INTERNAL_RANGO_DEBUG);
|