@rangojs/router 0.0.0-experimental.20 → 0.0.0-experimental.204030a9
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 +4 -0
- package/README.md +242 -55
- package/dist/bin/rango.js +277 -99
- package/dist/vite/index.js +2929 -1132
- package/dist/vite/index.js.bak +5448 -0
- package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
- package/package.json +68 -21
- package/skills/breadcrumbs/SKILL.md +252 -0
- package/skills/bundle-analysis/SKILL.md +159 -0
- package/skills/cache-guide/SKILL.md +243 -21
- package/skills/caching/SKILL.md +159 -10
- package/skills/composability/SKILL.md +27 -2
- package/skills/document-cache/SKILL.md +78 -55
- package/skills/handler-use/SKILL.md +364 -0
- package/skills/hooks/SKILL.md +262 -51
- package/skills/host-router/SKILL.md +243 -0
- package/skills/i18n/SKILL.md +276 -0
- package/skills/intercept/SKILL.md +46 -4
- package/skills/layout/SKILL.md +28 -7
- package/skills/links/SKILL.md +249 -17
- package/skills/loader/SKILL.md +291 -31
- package/skills/middleware/SKILL.md +49 -12
- package/skills/migrate-nextjs/SKILL.md +562 -0
- package/skills/migrate-react-router/SKILL.md +769 -0
- package/skills/mime-routes/SKILL.md +27 -0
- package/skills/observability/SKILL.md +137 -0
- package/skills/parallel/SKILL.md +197 -6
- package/skills/prerender/SKILL.md +125 -102
- package/skills/rango/SKILL.md +242 -23
- package/skills/react-compiler/SKILL.md +168 -0
- package/skills/response-routes/SKILL.md +66 -9
- package/skills/route/SKILL.md +91 -8
- package/skills/router-setup/SKILL.md +98 -8
- package/skills/server-actions/SKILL.md +751 -0
- package/skills/streams-and-websockets/SKILL.md +283 -0
- package/skills/testing/SKILL.md +511 -188
- package/skills/typesafety/SKILL.md +354 -50
- package/skills/use-cache/SKILL.md +34 -5
- package/skills/view-transitions/SKILL.md +294 -0
- package/src/__augment-tests__/augment.ts +81 -0
- package/src/__augment-tests__/augmented.check.ts +117 -0
- package/src/__internal.ts +92 -0
- package/src/browser/action-coordinator.ts +53 -36
- package/src/browser/app-shell.ts +52 -0
- package/src/browser/app-version.ts +14 -0
- package/src/browser/event-controller.ts +91 -70
- package/src/browser/history-state.ts +21 -0
- package/src/browser/index.ts +3 -3
- package/src/browser/link-interceptor.ts +4 -0
- package/src/browser/navigation-bridge.ts +183 -18
- package/src/browser/navigation-client.ts +187 -57
- package/src/browser/navigation-store.ts +75 -17
- package/src/browser/navigation-transaction.ts +21 -37
- package/src/browser/partial-update.ts +143 -40
- package/src/browser/prefetch/cache.ts +275 -28
- package/src/browser/prefetch/fetch.ts +191 -46
- package/src/browser/prefetch/policy.ts +6 -0
- package/src/browser/prefetch/queue.ts +123 -20
- package/src/browser/prefetch/resource-ready.ts +77 -0
- package/src/browser/rango-state.ts +53 -13
- package/src/browser/react/Link.tsx +98 -14
- package/src/browser/react/NavigationProvider.tsx +110 -33
- package/src/browser/react/context.ts +7 -2
- package/src/browser/react/filter-segment-order.ts +51 -7
- package/src/browser/react/index.ts +3 -0
- package/src/browser/react/location-state-shared.ts +175 -4
- package/src/browser/react/location-state.ts +39 -13
- package/src/browser/react/use-handle.ts +23 -64
- package/src/browser/react/use-navigation.ts +22 -2
- package/src/browser/react/use-params.ts +20 -8
- package/src/browser/react/use-reverse.ts +106 -0
- package/src/browser/react/use-router.ts +43 -10
- package/src/browser/react/use-segments.ts +11 -8
- package/src/browser/response-adapter.ts +25 -0
- package/src/browser/rsc-router.tsx +200 -75
- package/src/browser/scroll-restoration.ts +46 -39
- package/src/browser/segment-reconciler.ts +36 -9
- package/src/browser/segment-structure-assert.ts +2 -2
- package/src/browser/server-action-bridge.ts +31 -36
- package/src/browser/types.ts +81 -5
- 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 -0
- package/src/build/index.ts +2 -0
- package/src/build/route-trie.ts +69 -26
- package/src/build/route-types/codegen.ts +4 -4
- package/src/build/route-types/include-resolution.ts +9 -2
- package/src/build/route-types/per-module-writer.ts +7 -4
- package/src/build/route-types/router-processing.ts +278 -88
- package/src/build/route-types/scan-filter.ts +9 -2
- package/src/build/route-types/source-scan.ts +118 -0
- package/src/build/runtime-discovery.ts +9 -20
- package/src/cache/cache-runtime.ts +15 -11
- package/src/cache/cache-scope.ts +76 -49
- package/src/cache/cf/cf-cache-store.ts +501 -18
- package/src/cache/cf/index.ts +5 -1
- package/src/cache/document-cache.ts +17 -7
- package/src/cache/index.ts +1 -0
- package/src/cache/taint.ts +55 -0
- package/src/client.rsc.tsx +5 -1
- package/src/client.tsx +95 -284
- package/src/context-var.ts +72 -2
- package/src/debug.ts +2 -2
- package/src/decode-loader-results.ts +36 -0
- package/src/errors.ts +30 -1
- package/src/handle.ts +65 -12
- package/src/handles/breadcrumbs.ts +66 -0
- package/src/handles/index.ts +1 -0
- package/src/host/index.ts +2 -5
- package/src/host/router.ts +129 -57
- package/src/host/types.ts +31 -2
- package/src/host/utils.ts +1 -1
- package/src/href-client.ts +140 -20
- package/src/index.rsc.ts +15 -40
- package/src/index.ts +92 -76
- package/src/loader-store.ts +500 -0
- package/src/loader.rsc.ts +2 -5
- package/src/loader.ts +3 -10
- package/src/missing-id-error.ts +68 -0
- package/src/outlet-context.ts +1 -1
- package/src/prerender/store.ts +57 -15
- package/src/prerender.ts +141 -80
- package/src/response-utils.ts +37 -0
- package/src/reverse.ts +65 -15
- package/src/route-content-wrapper.tsx +6 -28
- package/src/route-definition/dsl-helpers.ts +435 -260
- package/src/route-definition/helper-factories.ts +29 -139
- package/src/route-definition/helpers-types.ts +110 -34
- package/src/route-definition/index.ts +3 -3
- package/src/route-definition/redirect.ts +11 -3
- package/src/route-definition/resolve-handler-use.ts +155 -0
- package/src/route-definition/use-item-types.ts +32 -0
- package/src/route-map-builder.ts +7 -1
- package/src/route-types.ts +37 -41
- package/src/router/basename.ts +14 -0
- package/src/router/content-negotiation.ts +113 -1
- package/src/router/error-handling.ts +1 -1
- package/src/router/find-match.ts +4 -2
- package/src/router/handler-context.ts +105 -39
- package/src/router/intercept-resolution.ts +15 -22
- package/src/router/lazy-includes.ts +12 -9
- package/src/router/loader-resolution.ts +175 -23
- package/src/router/logging.ts +5 -2
- package/src/router/manifest.ts +31 -16
- package/src/router/match-api.ts +129 -193
- package/src/router/match-handlers.ts +63 -20
- package/src/router/match-middleware/background-revalidation.ts +30 -2
- package/src/router/match-middleware/cache-lookup.ts +136 -106
- package/src/router/match-middleware/cache-store.ts +54 -10
- package/src/router/match-middleware/intercept-resolution.ts +9 -7
- package/src/router/match-middleware/segment-resolution.ts +61 -5
- package/src/router/match-result.ts +124 -18
- package/src/router/metrics.ts +239 -14
- package/src/router/middleware-types.ts +61 -31
- package/src/router/middleware.ts +226 -124
- package/src/router/navigation-snapshot.ts +182 -0
- package/src/router/pattern-matching.ts +118 -19
- package/src/router/prerender-match.ts +114 -10
- package/src/router/preview-match.ts +32 -102
- package/src/router/request-classification.ts +286 -0
- package/src/router/revalidation.ts +85 -9
- package/src/router/route-snapshot.ts +245 -0
- package/src/router/router-context.ts +6 -1
- package/src/router/router-interfaces.ts +91 -29
- package/src/router/router-options.ts +89 -19
- package/src/router/router-registry.ts +2 -5
- package/src/router/segment-resolution/fresh.ts +240 -23
- package/src/router/segment-resolution/helpers.ts +30 -25
- package/src/router/segment-resolution/loader-cache.ts +1 -0
- package/src/router/segment-resolution/revalidation.ts +483 -289
- package/src/router/segment-resolution/view-transition-default.ts +36 -0
- package/src/router/segment-wrappers.ts +2 -0
- package/src/router/substitute-pattern-params.ts +56 -0
- package/src/router/telemetry.ts +99 -0
- package/src/router/trie-matching.ts +38 -15
- package/src/router/types.ts +9 -0
- package/src/router/url-params.ts +49 -0
- package/src/router.ts +120 -32
- package/src/rsc/handler-context.ts +2 -2
- package/src/rsc/handler.ts +524 -370
- package/src/rsc/helpers.ts +91 -43
- package/src/rsc/index.ts +1 -21
- package/src/rsc/loader-fetch.ts +23 -3
- package/src/rsc/manifest-init.ts +5 -1
- package/src/rsc/origin-guard.ts +28 -10
- package/src/rsc/progressive-enhancement.ts +39 -10
- package/src/rsc/response-route-handler.ts +46 -53
- package/src/rsc/rsc-rendering.ts +69 -89
- package/src/rsc/runtime-warnings.ts +9 -10
- package/src/rsc/server-action.ts +39 -47
- package/src/rsc/ssr-setup.ts +144 -0
- package/src/rsc/types.ts +19 -3
- package/src/search-params.ts +20 -17
- package/src/segment-content-promise.ts +67 -0
- package/src/segment-loader-promise.ts +122 -0
- package/src/segment-system.tsx +219 -67
- package/src/serialize.ts +243 -0
- package/src/server/context.ts +285 -63
- package/src/server/cookie-store.ts +28 -4
- package/src/server/handle-store.ts +19 -0
- package/src/server/loader-registry.ts +9 -8
- package/src/server/request-context.ts +228 -65
- package/src/server.ts +6 -0
- package/src/ssr/index.tsx +9 -1
- package/src/static-handler.ts +19 -7
- package/src/testing/cache-status.ts +166 -0
- package/src/testing/collect-handle.ts +63 -0
- package/src/testing/dispatch.ts +440 -0
- package/src/testing/dom.entry.ts +22 -0
- package/src/testing/e2e/fixture.ts +154 -0
- package/src/testing/e2e/index.ts +149 -0
- package/src/testing/e2e/matchers.ts +51 -0
- package/src/testing/e2e/page-helpers.ts +272 -0
- package/src/testing/e2e/parity.ts +306 -0
- package/src/testing/e2e/server.ts +183 -0
- package/src/testing/flight-matchers.ts +104 -0
- package/src/testing/flight-runtime.d.ts +21 -0
- package/src/testing/flight.entry.ts +22 -0
- package/src/testing/flight.ts +182 -0
- package/src/testing/generated-routes.ts +223 -0
- package/src/testing/index.ts +98 -0
- package/src/testing/internal/context.ts +151 -0
- package/src/testing/render-route.tsx +536 -0
- package/src/testing/run-loader.ts +296 -0
- package/src/testing/run-middleware.ts +170 -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 +112 -0
- package/src/theme/index.ts +4 -13
- package/src/types/cache-types.ts +4 -4
- package/src/types/global-namespace.ts +39 -26
- package/src/types/handler-context.ts +197 -79
- package/src/types/index.ts +1 -0
- package/src/types/loader-types.ts +41 -15
- package/src/types/request-scope.ts +126 -0
- package/src/types/route-config.ts +17 -8
- package/src/types/route-entry.ts +19 -1
- package/src/types/segments.ts +37 -6
- package/src/urls/include-helper.ts +34 -67
- package/src/urls/index.ts +0 -3
- package/src/urls/path-helper-types.ts +50 -9
- package/src/urls/path-helper.ts +63 -63
- package/src/urls/pattern-types.ts +48 -19
- package/src/urls/response-types.ts +25 -22
- package/src/urls/type-extraction.ts +26 -116
- package/src/urls/urls-function.ts +1 -5
- package/src/use-loader.tsx +487 -44
- package/src/vite/debug.ts +185 -0
- package/src/vite/discovery/bundle-postprocess.ts +63 -91
- package/src/vite/discovery/discover-routers.ts +106 -53
- 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 +222 -107
- 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 +50 -13
- package/src/vite/discovery/virtual-module-codegen.ts +13 -23
- package/src/vite/index.ts +10 -3
- package/src/vite/plugin-types.ts +111 -72
- package/src/vite/plugins/cjs-to-esm.ts +8 -7
- package/src/vite/plugins/client-ref-dedup.ts +16 -0
- package/src/vite/plugins/client-ref-hashing.ts +28 -5
- 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 +214 -0
- package/src/vite/plugins/expose-action-id.ts +55 -33
- package/src/vite/plugins/expose-id-utils.ts +24 -8
- package/src/vite/plugins/expose-ids/export-analysis.ts +100 -20
- package/src/vite/plugins/expose-ids/handler-transform.ts +12 -35
- package/src/vite/plugins/expose-ids/loader-transform.ts +3 -5
- package/src/vite/plugins/expose-ids/router-transform.ts +20 -3
- package/src/vite/plugins/expose-internal-ids.ts +544 -317
- package/src/vite/plugins/performance-tracks.ts +92 -0
- package/src/vite/plugins/refresh-cmd.ts +127 -0
- package/src/vite/plugins/use-cache-transform.ts +65 -50
- package/src/vite/plugins/version-injector.ts +39 -23
- package/src/vite/plugins/version-plugin.ts +72 -3
- package/src/vite/plugins/virtual-entries.ts +2 -2
- package/src/vite/rango.ts +265 -226
- package/src/vite/router-discovery.ts +924 -137
- package/src/vite/utils/ast-handler-extract.ts +15 -15
- package/src/vite/utils/banner.ts +4 -4
- package/src/vite/utils/bundle-analysis.ts +4 -2
- package/src/vite/utils/client-chunks.ts +190 -0
- package/src/vite/utils/forward-user-plugins.ts +193 -0
- package/src/vite/utils/manifest-utils.ts +21 -5
- package/src/vite/utils/package-resolution.ts +41 -1
- package/src/vite/utils/prerender-utils.ts +98 -5
- package/src/vite/utils/shared-utils.ts +109 -27
- package/src/browser/action-response-classifier.ts +0 -99
- package/src/route-definition/route-function.ts +0 -119
package/src/index.ts
CHANGED
|
@@ -10,9 +10,6 @@
|
|
|
10
10
|
* import from "@rangojs/router/client"
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
// Universal rendering utilities (work on both server and client)
|
|
14
|
-
export { renderSegments } from "./segment-system.js";
|
|
15
|
-
|
|
16
13
|
// Error classes (can be used on both server and client)
|
|
17
14
|
export {
|
|
18
15
|
RouteNotFoundError,
|
|
@@ -21,10 +18,8 @@ export {
|
|
|
21
18
|
MiddlewareError,
|
|
22
19
|
HandlerError,
|
|
23
20
|
BuildError,
|
|
21
|
+
DslContextError,
|
|
24
22
|
InvalidHandlerError,
|
|
25
|
-
NetworkError,
|
|
26
|
-
isNetworkError,
|
|
27
|
-
sanitizeError,
|
|
28
23
|
RouterError,
|
|
29
24
|
Skip,
|
|
30
25
|
isSkip,
|
|
@@ -41,7 +36,6 @@ export type {
|
|
|
41
36
|
TrailingSlashMode,
|
|
42
37
|
// Handler types
|
|
43
38
|
Handler, // Supports params object, path pattern, or route name
|
|
44
|
-
ScopedRouteMap, // Scoped view of GeneratedRouteMap for Handler<"localName", ScopedRouteMap<"prefix">>
|
|
45
39
|
HandlerContext,
|
|
46
40
|
ExtractParams,
|
|
47
41
|
GenericParams,
|
|
@@ -50,6 +44,7 @@ export type {
|
|
|
50
44
|
// Revalidation types
|
|
51
45
|
RevalidateParams,
|
|
52
46
|
Revalidate,
|
|
47
|
+
ActionRef,
|
|
53
48
|
RouteKeys,
|
|
54
49
|
// Loader types
|
|
55
50
|
LoaderDefinition,
|
|
@@ -95,6 +90,7 @@ export type {
|
|
|
95
90
|
LayoutUseItem,
|
|
96
91
|
AllUseItems,
|
|
97
92
|
UseItems,
|
|
93
|
+
HandlerUseItem,
|
|
98
94
|
} from "./route-types.js";
|
|
99
95
|
|
|
100
96
|
// Response route types (usable in both server and client contexts)
|
|
@@ -115,25 +111,32 @@ export type {
|
|
|
115
111
|
// Middleware context types
|
|
116
112
|
export type { MiddlewareContext, CookieOptions } from "./router/middleware.js";
|
|
117
113
|
|
|
114
|
+
function serverOnlyStubError(name: string): Error {
|
|
115
|
+
return new Error(
|
|
116
|
+
`${name}() is only available from "@rangojs/router" in a react-server/RSC environment. ` +
|
|
117
|
+
`For client hooks and components, import from "@rangojs/router/client".`,
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
118
121
|
/**
|
|
119
122
|
* Error-throwing stub for server-only `urls` function.
|
|
120
123
|
*/
|
|
121
124
|
export function urls(): never {
|
|
122
|
-
throw
|
|
125
|
+
throw serverOnlyStubError("urls");
|
|
123
126
|
}
|
|
124
127
|
|
|
125
128
|
/**
|
|
126
129
|
* Error-throwing stub for server-only `createRouter` function.
|
|
127
130
|
*/
|
|
128
131
|
export function createRouter(): never {
|
|
129
|
-
throw
|
|
132
|
+
throw serverOnlyStubError("createRouter");
|
|
130
133
|
}
|
|
131
134
|
|
|
132
135
|
/**
|
|
133
136
|
* Error-throwing stub for server-only `redirect` function.
|
|
134
137
|
*/
|
|
135
138
|
export function redirect(): never {
|
|
136
|
-
throw
|
|
139
|
+
throw serverOnlyStubError("redirect");
|
|
137
140
|
}
|
|
138
141
|
|
|
139
142
|
// Handle API (universal - works on both server and client)
|
|
@@ -146,110 +149,126 @@ export { createVar, type ContextVar } from "./context-var.js";
|
|
|
146
149
|
export { nonce } from "./rsc/nonce.js";
|
|
147
150
|
|
|
148
151
|
/**
|
|
149
|
-
*
|
|
152
|
+
* SSR/client stub for server-only `Prerender` function.
|
|
153
|
+
*
|
|
154
|
+
* Returns a lightweight stub object instead of throwing so that the
|
|
155
|
+
* production SSR build can safely bundle the RSC entry chunk — the SSR
|
|
156
|
+
* bundler resolves `@rangojs/router` to this (SSR) entry, so Prerender
|
|
157
|
+
* calls in RSC code must not crash at module-evaluation time.
|
|
158
|
+
*/
|
|
159
|
+
export function Prerender(
|
|
160
|
+
_handler?: any,
|
|
161
|
+
_optionsOrId?: any,
|
|
162
|
+
__injectedId?: string,
|
|
163
|
+
): any {
|
|
164
|
+
const id =
|
|
165
|
+
typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
|
|
166
|
+
return { __brand: "prerenderHandler" as const, $$id: id };
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* SSR/client stub for server-only `Passthrough` function.
|
|
150
171
|
*/
|
|
151
|
-
export function
|
|
152
|
-
|
|
172
|
+
export function Passthrough(
|
|
173
|
+
_handler?: any,
|
|
174
|
+
_optionsOrId?: any,
|
|
175
|
+
__injectedId?: string,
|
|
176
|
+
): any {
|
|
177
|
+
const id =
|
|
178
|
+
typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
|
|
179
|
+
return { __brand: "passthroughHandler" as const, $$id: id };
|
|
153
180
|
}
|
|
154
181
|
|
|
155
182
|
/**
|
|
156
|
-
*
|
|
183
|
+
* SSR/client stub for server-only `Static` function.
|
|
184
|
+
*
|
|
185
|
+
* Returns a lightweight stub object instead of throwing so that the
|
|
186
|
+
* production SSR build can safely bundle the RSC entry chunk — the SSR
|
|
187
|
+
* bundler resolves `@rangojs/router` to this (SSR) entry, so Static
|
|
188
|
+
* calls in RSC code must not crash at module-evaluation time.
|
|
157
189
|
*/
|
|
158
|
-
export function Static(
|
|
159
|
-
|
|
190
|
+
export function Static(
|
|
191
|
+
_handler?: any,
|
|
192
|
+
_optionsOrId?: any,
|
|
193
|
+
__injectedId?: string,
|
|
194
|
+
): any {
|
|
195
|
+
const id =
|
|
196
|
+
typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
|
|
197
|
+
return { __brand: "staticHandler" as const, $$id: id };
|
|
160
198
|
}
|
|
161
199
|
|
|
162
200
|
/**
|
|
163
201
|
* Error-throwing stub for server-only `getRequestContext` function.
|
|
164
202
|
*/
|
|
165
203
|
export function getRequestContext(): never {
|
|
166
|
-
throw
|
|
167
|
-
"getRequestContext() is server-only and requires RSC context.",
|
|
168
|
-
);
|
|
204
|
+
throw serverOnlyStubError("getRequestContext");
|
|
169
205
|
}
|
|
170
206
|
|
|
171
207
|
/**
|
|
172
208
|
* Error-throwing stub for server-only `cookies` function.
|
|
173
209
|
*/
|
|
174
210
|
export function cookies(): never {
|
|
175
|
-
throw
|
|
211
|
+
throw serverOnlyStubError("cookies");
|
|
176
212
|
}
|
|
177
213
|
|
|
178
214
|
/**
|
|
179
215
|
* Error-throwing stub for server-only `headers` function.
|
|
180
216
|
*/
|
|
181
217
|
export function headers(): never {
|
|
182
|
-
throw
|
|
218
|
+
throw serverOnlyStubError("headers");
|
|
183
219
|
}
|
|
184
220
|
|
|
185
221
|
/**
|
|
186
222
|
* Error-throwing stub for server-only `createReverse` function.
|
|
187
223
|
*/
|
|
188
224
|
export function createReverse(): never {
|
|
189
|
-
throw
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Error-throwing stub for server-only `enableMatchDebug` function.
|
|
194
|
-
*/
|
|
195
|
-
export function enableMatchDebug(): never {
|
|
196
|
-
throw new Error(
|
|
197
|
-
"enableMatchDebug() is server-only and requires RSC context.",
|
|
198
|
-
);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Error-throwing stub for server-only `getMatchDebugStats` function.
|
|
203
|
-
*/
|
|
204
|
-
export function getMatchDebugStats(): never {
|
|
205
|
-
throw new Error(
|
|
206
|
-
"getMatchDebugStats() is server-only and requires RSC context.",
|
|
207
|
-
);
|
|
225
|
+
throw serverOnlyStubError("createReverse");
|
|
208
226
|
}
|
|
209
227
|
|
|
210
228
|
// Error-throwing stubs for server-only route helpers
|
|
211
229
|
export function layout(): never {
|
|
212
|
-
throw
|
|
230
|
+
throw serverOnlyStubError("layout");
|
|
213
231
|
}
|
|
214
232
|
export function cache(): never {
|
|
215
|
-
throw
|
|
233
|
+
throw serverOnlyStubError("cache");
|
|
216
234
|
}
|
|
217
235
|
export function middleware(): never {
|
|
218
|
-
throw
|
|
236
|
+
throw serverOnlyStubError("middleware");
|
|
219
237
|
}
|
|
220
238
|
export function revalidate(): never {
|
|
221
|
-
throw
|
|
239
|
+
throw serverOnlyStubError("revalidate");
|
|
222
240
|
}
|
|
223
241
|
export function loader(): never {
|
|
224
|
-
throw
|
|
242
|
+
throw serverOnlyStubError("loader");
|
|
225
243
|
}
|
|
226
244
|
export function loading(): never {
|
|
227
|
-
throw
|
|
245
|
+
throw serverOnlyStubError("loading");
|
|
228
246
|
}
|
|
229
247
|
export function parallel(): never {
|
|
230
|
-
throw
|
|
248
|
+
throw serverOnlyStubError("parallel");
|
|
231
249
|
}
|
|
232
250
|
export function intercept(): never {
|
|
233
|
-
throw
|
|
251
|
+
throw serverOnlyStubError("intercept");
|
|
234
252
|
}
|
|
235
253
|
export function when(): never {
|
|
236
|
-
throw
|
|
254
|
+
throw serverOnlyStubError("when");
|
|
237
255
|
}
|
|
238
256
|
export function errorBoundary(): never {
|
|
239
|
-
throw
|
|
257
|
+
throw serverOnlyStubError("errorBoundary");
|
|
240
258
|
}
|
|
241
259
|
export function notFoundBoundary(): never {
|
|
242
|
-
throw
|
|
243
|
-
"notFoundBoundary() is server-only and requires RSC context.",
|
|
244
|
-
);
|
|
260
|
+
throw serverOnlyStubError("notFoundBoundary");
|
|
245
261
|
}
|
|
246
262
|
export function transition(): never {
|
|
247
|
-
throw
|
|
263
|
+
throw serverOnlyStubError("transition");
|
|
248
264
|
}
|
|
249
265
|
|
|
250
266
|
// Request context type (safe for client)
|
|
251
267
|
export type { PublicRequestContext as RequestContext } from "./server/request-context.js";
|
|
252
268
|
|
|
269
|
+
// Shared base for every user-facing request context.
|
|
270
|
+
export type { RequestScope, ExecutionContext } from "./types/request-scope.js";
|
|
271
|
+
|
|
253
272
|
// Cookie store types (safe for client)
|
|
254
273
|
export type {
|
|
255
274
|
CookieStore,
|
|
@@ -257,17 +276,22 @@ export type {
|
|
|
257
276
|
ReadonlyHeaders,
|
|
258
277
|
} from "./server/cookie-store.js";
|
|
259
278
|
|
|
279
|
+
// Built-in handles (universal — work on both server and client)
|
|
280
|
+
export { Meta } from "./handles/meta.js";
|
|
281
|
+
export { Breadcrumbs } from "./handles/breadcrumbs.js";
|
|
282
|
+
|
|
260
283
|
// Meta types
|
|
261
284
|
export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
|
|
262
285
|
|
|
286
|
+
// Breadcrumb types
|
|
287
|
+
export type { BreadcrumbItem } from "./handles/breadcrumbs.js";
|
|
288
|
+
|
|
263
289
|
// Reverse type utilities for type-safe URL generation (Django-style URL reversal)
|
|
264
290
|
export type {
|
|
265
291
|
ScopedReverseFunction,
|
|
266
292
|
ReverseFunction,
|
|
267
293
|
ExtractLocalRoutes,
|
|
268
294
|
ParamsFor,
|
|
269
|
-
SanitizePrefix,
|
|
270
|
-
MergeRoutes,
|
|
271
295
|
} from "./reverse.js";
|
|
272
296
|
// scopedReverse() helper for handlers to get locally-typed reverse
|
|
273
297
|
export { scopedReverse } from "./reverse.js";
|
|
@@ -280,27 +304,19 @@ export {
|
|
|
280
304
|
type LocationStateOptions,
|
|
281
305
|
} from "./browser/react/location-state-shared.js";
|
|
282
306
|
|
|
283
|
-
// Path
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
// Telemetry
|
|
287
|
-
|
|
288
|
-
|
|
307
|
+
// Path and response types are ambient on the `Rango` namespace (`Rango.Path`,
|
|
308
|
+
// `Rango.PathResponse`, declared in href-client.ts) — no import needed.
|
|
309
|
+
|
|
310
|
+
// Telemetry types only — the createConsoleSink/createOTelSink values are
|
|
311
|
+
// server-only and live in index.rsc.ts (the `react-server` condition of the
|
|
312
|
+
// bare `@rangojs/router` import). Re-exporting them as values from this
|
|
313
|
+
// (default/client) entry would pull telemetry.ts and telemetry-otel.ts into
|
|
314
|
+
// the client module graph; both tree-shake to zero bytes but still appear in
|
|
315
|
+
// bundle analysis output and slow build-time module resolution. Consumers
|
|
316
|
+
// who need the values in non-RSC contexts can import from
|
|
317
|
+
// `@rangojs/router/server`.
|
|
289
318
|
export type { OTelTracer, OTelSpan } from "./router/telemetry-otel.js";
|
|
290
|
-
export type {
|
|
291
|
-
TelemetrySink,
|
|
292
|
-
TelemetryEvent,
|
|
293
|
-
RequestStartEvent,
|
|
294
|
-
RequestEndEvent,
|
|
295
|
-
RequestErrorEvent,
|
|
296
|
-
RequestTimeoutEvent,
|
|
297
|
-
LoaderStartEvent,
|
|
298
|
-
LoaderEndEvent,
|
|
299
|
-
LoaderErrorEvent,
|
|
300
|
-
HandlerErrorEvent,
|
|
301
|
-
CacheDecisionEvent,
|
|
302
|
-
RevalidationDecisionEvent,
|
|
303
|
-
} from "./router/telemetry.js";
|
|
319
|
+
export type { TelemetrySink, TelemetryEvent } from "./router/telemetry.js";
|
|
304
320
|
|
|
305
321
|
// Timeout types and error class
|
|
306
322
|
export { RouterTimeoutError } from "./router/timeout.js";
|