@rangojs/router 0.24.4 → 0.25.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.
Files changed (267) hide show
  1. package/README.md +1 -0
  2. package/dist/bin/rango.js +363 -39
  3. package/dist/testing/vitest.js +37 -4
  4. package/dist/types/browser/event-controller.d.ts +24 -5
  5. package/dist/types/browser/intercept-utils.d.ts +5 -2
  6. package/dist/types/browser/merge-segment-loaders.d.ts +0 -23
  7. package/dist/types/browser/navigation-transaction.d.ts +5 -5
  8. package/dist/types/browser/partial-update.d.ts +21 -13
  9. package/dist/types/browser/prefetch/cache.d.ts +8 -0
  10. package/dist/types/browser/rango-marker.d.ts +7 -0
  11. package/dist/types/browser/react/filter-segment-order.d.ts +10 -0
  12. package/dist/types/browser/react/use-handle.d.ts +20 -0
  13. package/dist/types/browser/react/use-href.d.ts +6 -0
  14. package/dist/types/browser/react/use-router.d.ts +6 -1
  15. package/dist/types/browser/response-adapter.d.ts +5 -3
  16. package/dist/types/browser/scroll-restoration.d.ts +9 -3
  17. package/dist/types/browser/segment-reconciler.d.ts +10 -13
  18. package/dist/types/browser/types.d.ts +38 -8
  19. package/dist/types/build/route-types/per-module-writer.d.ts +12 -0
  20. package/dist/types/cache/cf/cf-shell-frame.d.ts +2 -0
  21. package/dist/types/cache/types.d.ts +8 -0
  22. package/dist/types/client-urls/client-urls.d.ts +6 -2
  23. package/dist/types/client-urls/revalidate-registry.d.ts +1 -1
  24. package/dist/types/client-urls/server-projection.d.ts +9 -5
  25. package/dist/types/client-urls/types.d.ts +29 -16
  26. package/dist/types/client.d.ts +2 -2
  27. package/dist/types/client.rsc.d.ts +2 -2
  28. package/dist/types/decode-loader-results.d.ts +28 -7
  29. package/dist/types/href-client.d.ts +3 -1
  30. package/dist/types/index.rsc.d.ts +1 -1
  31. package/dist/types/loader-redirect.d.ts +2 -3
  32. package/dist/types/outlet-context.d.ts +7 -6
  33. package/dist/types/prefetch-markers.d.ts +14 -5
  34. package/dist/types/route-content-wrapper.d.ts +17 -14
  35. package/dist/types/route-definition/helpers-types.d.ts +7 -2
  36. package/dist/types/route-definition/resolve-handler-use.d.ts +6 -1
  37. package/dist/types/route-definition/rewrite.d.ts +48 -5
  38. package/dist/types/route-types.d.ts +2 -2
  39. package/dist/types/router/handler-context.d.ts +14 -2
  40. package/dist/types/router/intercept-resolution.d.ts +19 -46
  41. package/dist/types/router/lazy-includes.d.ts +7 -0
  42. package/dist/types/router/match-middleware/intercept-resolution.d.ts +2 -2
  43. package/dist/types/router/middleware.d.ts +0 -16
  44. package/dist/types/router/navigation-snapshot.d.ts +2 -0
  45. package/dist/types/router/prefetch-cache-ttl.d.ts +8 -11
  46. package/dist/types/router/revalidation.d.ts +8 -1
  47. package/dist/types/router/router-context.d.ts +4 -16
  48. package/dist/types/router/router-interfaces.d.ts +0 -6
  49. package/dist/types/router/router-options.d.ts +4 -7
  50. package/dist/types/router/segment-resolution/prefetch-deferral.d.ts +31 -8
  51. package/dist/types/router/segment-resolution/revalidation.d.ts +38 -4
  52. package/dist/types/router/segment-resolution.d.ts +1 -1
  53. package/dist/types/router/segment-wrappers.d.ts +3 -5
  54. package/dist/types/router/substitute-pattern-params.d.ts +3 -2
  55. package/dist/types/router/tracing.d.ts +2 -2
  56. package/dist/types/rsc/full-payload.d.ts +14 -2
  57. package/dist/types/rsc/helpers.d.ts +8 -0
  58. package/dist/types/rsc/manifest-init.d.ts +20 -0
  59. package/dist/types/rsc/prefetch-render-error.d.ts +22 -0
  60. package/dist/types/rsc/progressive-enhancement.d.ts +20 -0
  61. package/dist/types/rsc/rewrite-passes.d.ts +12 -2
  62. package/dist/types/rsc/server-action.d.ts +6 -0
  63. package/dist/types/rsc/shell-capture-constants.d.ts +10 -1
  64. package/dist/types/rsc/shell-capture.d.ts +7 -0
  65. package/dist/types/rsc/types.d.ts +5 -0
  66. package/dist/types/segment-system.d.ts +15 -0
  67. package/dist/types/server/context.d.ts +64 -4
  68. package/dist/types/server/request-context.d.ts +41 -4
  69. package/dist/types/server/request-headers.d.ts +12 -0
  70. package/dist/types/server/rewrite-trail.d.ts +8 -1
  71. package/dist/types/testing/e2e/index.d.ts +1 -1
  72. package/dist/types/testing/flight.entry.d.ts +1 -1
  73. package/dist/types/testing/index.d.ts +1 -1
  74. package/dist/types/testing/internal/client-urls-projection.d.ts +4 -3
  75. package/dist/types/testing/render-route.d.ts +21 -11
  76. package/dist/types/testing/run-loader.d.ts +7 -0
  77. package/dist/types/testing/run-middleware.d.ts +7 -0
  78. package/dist/types/testing/run-revalidate.d.ts +5 -4
  79. package/dist/types/testing/serve-shell-request.d.ts +41 -4
  80. package/dist/types/testing/shell-status.d.ts +17 -0
  81. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  82. package/dist/types/testing/vitest.d.ts +10 -1
  83. package/dist/types/thenable-status.d.ts +0 -6
  84. package/dist/types/types/handler-context.d.ts +12 -1
  85. package/dist/types/types/loader-types.d.ts +4 -3
  86. package/dist/types/types/route-entry.d.ts +2 -1
  87. package/dist/types/urls/path-helper-types.d.ts +4 -2
  88. package/dist/types/vite/discovery/client-urls-projection.d.ts +55 -5
  89. package/dist/types/vite/discovery/state.d.ts +20 -0
  90. package/dist/types/vite/plugins/client-urls-revalidate-hoist.d.ts +28 -16
  91. package/dist/types/vite/plugins/hoist/source.d.ts +8 -7
  92. package/dist/types/vite/plugins/virtual-entries.d.ts +6 -0
  93. package/dist/types/vite/utils/prerender-utils.d.ts +7 -0
  94. package/dist/vite/index.js +6816 -6547
  95. package/package.json +1 -1
  96. package/skills/app-structure/SKILL.md +255 -0
  97. package/skills/app-structure/content-site.md +333 -0
  98. package/skills/app-structure/e-commerce.md +435 -0
  99. package/skills/app-structure/large-app.md +885 -0
  100. package/skills/app-structure/multi-app.md +280 -0
  101. package/skills/breadcrumbs/SKILL.md +6 -1
  102. package/skills/caching/SKILL.md +3 -1
  103. package/skills/catalog.json +12 -0
  104. package/skills/client-urls/SKILL.md +185 -32
  105. package/skills/composability/SKILL.md +10 -8
  106. package/skills/handler-use/SKILL.md +48 -9
  107. package/skills/hooks/handle-and-actions.md +104 -0
  108. package/skills/hooks/navigation.md +24 -10
  109. package/skills/hooks/urls.md +1 -1
  110. package/skills/i18n/SKILL.md +2 -1
  111. package/skills/intercept/SKILL.md +60 -29
  112. package/skills/layout/SKILL.md +6 -3
  113. package/skills/links/SKILL.md +151 -17
  114. package/skills/loader/SKILL.md +32 -10
  115. package/skills/middleware/SKILL.md +111 -15
  116. package/skills/observability/SKILL.md +11 -0
  117. package/skills/parallel/SKILL.md +5 -5
  118. package/skills/ppr/SKILL.md +43 -8
  119. package/skills/prerender/SKILL.md +1 -2
  120. package/skills/rango/SKILL.md +3 -0
  121. package/skills/response-routes/SKILL.md +4 -1
  122. package/skills/scripts/SKILL.md +12 -1
  123. package/skills/server-actions/SKILL.md +60 -20
  124. package/skills/testing/SKILL.md +1 -0
  125. package/skills/testing/client-components.md +13 -10
  126. package/skills/testing/loader.md +25 -24
  127. package/skills/testing/middleware.md +11 -11
  128. package/skills/testing/response-routes.md +4 -1
  129. package/skills/testing/serve-shell-request.md +85 -21
  130. package/skills/ux-architecture/SKILL.md +980 -0
  131. package/skills/view-transitions/SKILL.md +43 -10
  132. package/src/__augment-tests__/augmented.check.ts +28 -0
  133. package/src/browser/event-controller.ts +44 -18
  134. package/src/browser/intercept-utils.ts +3 -2
  135. package/src/browser/merge-segment-loaders.ts +0 -85
  136. package/src/browser/navigation-bridge.ts +112 -84
  137. package/src/browser/navigation-client.ts +20 -15
  138. package/src/browser/navigation-store.ts +4 -2
  139. package/src/browser/navigation-transaction.ts +9 -8
  140. package/src/browser/partial-update.ts +90 -32
  141. package/src/browser/prefetch/cache.ts +8 -0
  142. package/src/browser/prefetch/fetch.ts +13 -3
  143. package/src/browser/rango-marker.ts +13 -0
  144. package/src/browser/react/NavigationProvider.tsx +25 -7
  145. package/src/browser/react/filter-segment-order.ts +13 -0
  146. package/src/browser/react/use-action.ts +9 -15
  147. package/src/browser/react/use-handle.ts +63 -71
  148. package/src/browser/react/use-href.tsx +24 -5
  149. package/src/browser/react/use-link-status.ts +1 -1
  150. package/src/browser/react/use-navigation.ts +30 -40
  151. package/src/browser/react/use-router.ts +37 -6
  152. package/src/browser/react/use-segments.ts +8 -12
  153. package/src/browser/response-adapter.ts +11 -5
  154. package/src/browser/rsc-router.tsx +3 -1
  155. package/src/browser/scroll-restoration.ts +34 -20
  156. package/src/browser/segment-reconciler.ts +11 -29
  157. package/src/browser/server-action-bridge.ts +52 -16
  158. package/src/browser/types.ts +40 -8
  159. package/src/build/generate-manifest.ts +12 -1
  160. package/src/build/route-types/codegen.ts +6 -2
  161. package/src/build/route-types/per-module-writer.ts +94 -61
  162. package/src/cache/cache-runtime.ts +9 -0
  163. package/src/cache/cache-scope.ts +2 -1
  164. package/src/cache/cf/cf-cache-store.ts +2 -0
  165. package/src/cache/cf/cf-shell-frame.ts +3 -0
  166. package/src/cache/types.ts +8 -0
  167. package/src/cache/vercel/vercel-cache-store.ts +6 -1
  168. package/src/client-urls/client-urls.ts +202 -153
  169. package/src/client-urls/revalidate-registry.ts +12 -3
  170. package/src/client-urls/server-projection.ts +137 -66
  171. package/src/client-urls/types.ts +30 -15
  172. package/src/client.rsc.tsx +11 -1
  173. package/src/client.tsx +9 -1
  174. package/src/decode-loader-results.ts +64 -31
  175. package/src/href-client.ts +3 -1
  176. package/src/index.rsc.ts +1 -0
  177. package/src/index.ts +12 -4
  178. package/src/loader-redirect.tsx +2 -3
  179. package/src/outlet-context.ts +7 -6
  180. package/src/prefetch-markers.ts +15 -5
  181. package/src/reverse.ts +3 -3
  182. package/src/route-content-wrapper.tsx +19 -17
  183. package/src/route-definition/dsl-helpers.ts +27 -7
  184. package/src/route-definition/helpers-types.ts +7 -2
  185. package/src/route-definition/resolve-handler-use.ts +23 -10
  186. package/src/route-definition/rewrite.ts +86 -19
  187. package/src/route-types.ts +1 -2
  188. package/src/router/find-match.ts +37 -1
  189. package/src/router/handler-context.ts +85 -40
  190. package/src/router/intercept-resolution.ts +161 -307
  191. package/src/router/lazy-includes.ts +43 -27
  192. package/src/router/loader-resolution.ts +21 -1
  193. package/src/router/manifest.ts +6 -8
  194. package/src/router/match-api.ts +11 -1
  195. package/src/router/match-middleware/background-revalidation.ts +2 -4
  196. package/src/router/match-middleware/cache-lookup.ts +16 -20
  197. package/src/router/match-middleware/intercept-resolution.ts +41 -60
  198. package/src/router/match-result.ts +31 -2
  199. package/src/router/middleware.ts +6 -147
  200. package/src/router/navigation-snapshot.ts +38 -2
  201. package/src/router/prefetch-cache-ttl.ts +10 -18
  202. package/src/router/prerender-match.ts +2 -1
  203. package/src/router/revalidation.ts +24 -3
  204. package/src/router/router-context.ts +5 -18
  205. package/src/router/router-interfaces.ts +0 -7
  206. package/src/router/router-options.ts +4 -7
  207. package/src/router/segment-resolution/fresh.ts +6 -2
  208. package/src/router/segment-resolution/helpers.ts +7 -1
  209. package/src/router/segment-resolution/prefetch-deferral.ts +62 -12
  210. package/src/router/segment-resolution/revalidation.ts +75 -35
  211. package/src/router/segment-resolution.ts +0 -1
  212. package/src/router/segment-wrappers.ts +8 -13
  213. package/src/router/substitute-pattern-params.ts +3 -2
  214. package/src/router/tracing.ts +2 -2
  215. package/src/router.ts +2 -9
  216. package/src/rsc/full-payload.ts +26 -4
  217. package/src/rsc/handler.ts +83 -41
  218. package/src/rsc/helpers.ts +13 -0
  219. package/src/rsc/manifest-init.ts +56 -3
  220. package/src/rsc/prefetch-render-error.ts +38 -0
  221. package/src/rsc/progressive-enhancement.ts +161 -211
  222. package/src/rsc/rewrite-passes.ts +56 -9
  223. package/src/rsc/rsc-rendering.ts +79 -23
  224. package/src/rsc/server-action.ts +25 -2
  225. package/src/rsc/shell-capture-constants.ts +22 -0
  226. package/src/rsc/shell-capture.ts +11 -0
  227. package/src/rsc/types.ts +5 -0
  228. package/src/segment-system.tsx +125 -119
  229. package/src/server/context.ts +96 -5
  230. package/src/server/handle-store.ts +3 -2
  231. package/src/server/request-context.ts +42 -3
  232. package/src/server/request-headers.ts +32 -0
  233. package/src/server/rewrite-trail.ts +55 -9
  234. package/src/ssr/ssr-root.tsx +6 -10
  235. package/src/testing/dispatch.ts +4 -5
  236. package/src/testing/e2e/index.ts +1 -0
  237. package/src/testing/flight.entry.ts +1 -0
  238. package/src/testing/index.ts +1 -0
  239. package/src/testing/internal/client-urls-projection.ts +31 -11
  240. package/src/testing/render-route.tsx +83 -40
  241. package/src/testing/run-loader.ts +26 -2
  242. package/src/testing/run-middleware.ts +10 -0
  243. package/src/testing/run-revalidate.ts +13 -6
  244. package/src/testing/serve-shell-request.ts +77 -4
  245. package/src/testing/shell-status.ts +40 -0
  246. package/src/testing/vitest-stubs/version.ts +1 -0
  247. package/src/testing/vitest.ts +74 -7
  248. package/src/thenable-status.ts +0 -11
  249. package/src/types/handler-context.ts +12 -1
  250. package/src/types/loader-types.ts +4 -3
  251. package/src/types/route-entry.ts +2 -1
  252. package/src/urls/include-helper.ts +38 -11
  253. package/src/urls/path-helper-types.ts +4 -2
  254. package/src/vite/discovery/client-urls-projection.ts +205 -16
  255. package/src/vite/discovery/discover-routers.ts +2 -2
  256. package/src/vite/discovery/prerender-collection.ts +2 -6
  257. package/src/vite/discovery/state.ts +26 -0
  258. package/src/vite/plugins/client-urls-revalidate-hoist.ts +190 -77
  259. package/src/vite/plugins/expose-internal-ids.ts +46 -40
  260. package/src/vite/plugins/hoist/source.ts +8 -7
  261. package/src/vite/plugins/transition-when-hoist.ts +1 -0
  262. package/src/vite/plugins/version-plugin.ts +7 -0
  263. package/src/vite/plugins/version.d.ts +7 -0
  264. package/src/vite/plugins/virtual-entries.ts +20 -0
  265. package/src/vite/rango.ts +4 -1
  266. package/src/vite/router-discovery.ts +39 -7
  267. package/src/vite/utils/prerender-utils.ts +17 -0
@@ -52,7 +52,26 @@ export interface PluginOptions {
52
52
  * budget into its capture/render handlers.
53
53
  */
54
54
  progressiveChunkSize?: number;
55
+ /**
56
+ * The index rango()'s clientUrls() revalidate() hoist plugin shares, so
57
+ * discovery's temp server records keys into it and assigns the files the
58
+ * dev server's or build's group modules import.
59
+ */
60
+ clientUrlRevalidate?: ClientUrlRevalidateIndex;
61
+ }
62
+ /**
63
+ * What the clientUrls() revalidate() hoist
64
+ * (plugins/client-urls-revalidate-hoist.ts) shares with discovery across the
65
+ * plugin instances of one rango(), the dev server or build and discovery's
66
+ * temp server: the file of every key the hoist transform saw, in any
67
+ * environment, and each group's files, which discovery assigns from the
68
+ * group's projection and the group's `?rango-revalidate` module imports.
69
+ */
70
+ export interface ClientUrlRevalidateIndex {
71
+ readonly fileByKey: Map<string, string>;
72
+ readonly filesByGroup: Map<string, readonly string[]>;
55
73
  }
74
+ export declare function createClientUrlRevalidateIndex(): ClientUrlRevalidateIndex;
56
75
  export interface PrecomputedEntry {
57
76
  staticPrefix: string;
58
77
  routes: Record<string, string>;
@@ -122,6 +141,7 @@ export interface DiscoveryState {
122
141
  perRouterManifestDataMap: Map<string, Record<string, string>>;
123
142
  clientUrlSourceByReferenceId?: Map<string, string>;
124
143
  clientUrlProjectionMap?: Map<string, ClientUrlProjection>;
144
+ clientUrlRevalidate: ClientUrlRevalidateIndex;
125
145
  prerenderManifestEntries: Record<string, string> | null;
126
146
  staticManifestEntries: Record<string, string> | null;
127
147
  /**
@@ -1,5 +1,6 @@
1
1
  import type { Plugin } from "vite";
2
2
  import MagicString from "magic-string";
3
+ import type { ClientUrlRevalidateIndex } from "../discovery/state.js";
3
4
  /**
4
5
  * The key of the predicate `source` declared in `relativeFile` (relative to
5
6
  * the project root): a hash of the file and the predicate's syntax, so the
@@ -26,29 +27,40 @@ interface HoistClientUrlsRevalidateResult {
26
27
  readonly keys: readonly string[];
27
28
  }
28
29
  /**
29
- * Hoist every clientUrls() `revalidate()` predicate of a "use client"
30
- * module. Returns null when there is none. Throws, naming file:line, for a
31
- * predicate that is not pure.
30
+ * Hoist every clientUrls() `revalidate()` predicate of a module. Returns null
31
+ * when there is none (boolean literals stay in place). Throws, naming
32
+ * file:line, for a predicate that is not pure.
32
33
  */
33
34
  export declare function hoistClientUrlsRevalidates(code: string, id: string, deps: HoistClientUrlsRevalidateDeps): Promise<HoistClientUrlsRevalidateResult | null>;
34
35
  /** The file a `?rango-revalidate` id names, or null. */
35
36
  export declare function parseHoistedRevalidateId(id: string): string | null;
36
37
  /**
37
38
  * The plugins: a pre transform that hoists in every environment (markers in
38
- * the client and SSR copies, the server module recorded from the RSC
39
- * transform) and serves `?rango-revalidate`, and a post transform that
40
- * appends its import to the RSC client-reference proxy.
39
+ * the client and SSR copies, each key's file in `index`, the server module
40
+ * recorded from the RSC transform, the groups noted) and serves
41
+ * `?rango-revalidate`, a post transform that appends its import to the RSC
42
+ * client-reference proxy of each group, and in dev the client's `.use`
43
+ * update propagation. Pass one `index` to every instance of one rango():
44
+ * discovery's temp server records keys the dev server or build reads.
41
45
  *
42
- * `load` serves the module the RSC transform emitted, which hoisted the
43
- * pipeline code; the disk source is re-hoisted only when the transform has
44
- * not seen the current file (loadEmittedOrDisk). A file whose edit removed
45
- * every predicate serves an empty module to a proxy that still imports it.
46
+ * `load` serves the registrations the RSC transform emitted, which hoisted
47
+ * the pipeline code; the disk source is re-hoisted when the transform has not
48
+ * seen the current file (loadEmittedOrDisk), which is always the case for a
49
+ * component module: the RSC environment never transforms a module only a
50
+ * group imports. A group's module also imports the registrations of the
51
+ * files discovery assigned it. A file with neither serves an empty module.
46
52
  *
47
- * The transform's code filter skips a module that never mentions clientUrls,
48
- * so a file that stops doing so would keep its `emitted` entry: watchChange
49
- * drops it, together with the cached "use client" answer for an edited
50
- * dependency (isClientModule memoizes per resolved file; buildStart resets
51
- * it).
53
+ * A component module that exports only components is a Fast Refresh
54
+ * boundary, so a `.use` edit would leave the browser's group records stale
55
+ * (the group never re-evaluates). In dev, an update that changes a module's
56
+ * componentUseSignature also updates its importers, as a group edit does;
57
+ * any other edit keeps Fast Refresh.
58
+ *
59
+ * The transform's code filter skips a module that names neither clientUrls
60
+ * nor revalidate, so a file that stops doing so would keep its `emitted`
61
+ * entry: watchChange drops it, its group mark, and the cached "use client"
62
+ * answer for an edited dependency (isClientModule memoizes per resolved
63
+ * file; buildStart resets it).
52
64
  */
53
- export declare function clientUrlsRevalidateHoistPlugin(): Plugin[];
65
+ export declare function clientUrlsRevalidateHoistPlugin(index: ClientUrlRevalidateIndex): Plugin[];
54
66
  export {};
@@ -31,11 +31,12 @@ export interface EmittedEntry<T> {
31
31
  }
32
32
  export declare function recordEmitted<T>(emitted: Map<string, EmittedEntry<T>>, file: string, value: T): Promise<void>;
33
33
  /**
34
- * What a `?rango-*` load serves for `hoistedFile`: the transform's emission
35
- * when it saw the current disk source (or the file is gone), else
36
- * `rehoist(disk)`. The transform hoists the pipeline code, which an earlier
37
- * plugin may have changed, so re-hoisting the disk source is the fallback only
38
- * for an environment loading before the RSC transform ran or for an edit the
39
- * RSC environment has not re-transformed yet. Undefined when neither exists.
34
+ * What a `?rango-*` load serves for `hoistedFile`, whose source on disk is
35
+ * `disk` (readSource): the transform's emission when it saw that source (or
36
+ * the file is gone), else `rehoist(disk)`. The transform hoists the pipeline
37
+ * code, which an earlier plugin may have changed, so re-hoisting the disk
38
+ * source is the fallback only for an environment loading before the RSC
39
+ * transform ran or for an edit the RSC environment has not re-transformed
40
+ * yet. Undefined when neither exists.
40
41
  */
41
- export declare function loadEmittedOrDisk<T>(emitted: ReadonlyMap<string, EmittedEntry<T>>, hoistedFile: string, rehoist: (disk: string) => Promise<T | undefined>): Promise<T | undefined>;
42
+ export declare function loadEmittedOrDisk<T>(emitted: ReadonlyMap<string, EmittedEntry<T>>, hoistedFile: string, disk: string | null, rehoist: (disk: string) => Promise<T | undefined>): Promise<T | undefined>;
@@ -36,6 +36,12 @@ export declare const VIRTUAL_IDS: {
36
36
  readonly rsc: "virtual:rsc-router/entry.rsc.js";
37
37
  readonly version: "@rangojs/router:version";
38
38
  };
39
+ /**
40
+ * Non-RSC environments (client, ssr) get only PACKAGE_VERSION: the build
41
+ * module's ROUTER_VERSIONS token is replaced in server chunks only, so a
42
+ * client import of the full module would throw a ReferenceError.
43
+ */
44
+ export declare function getVirtualPackageVersionContent(): string;
39
45
  /** Dev: one stamp for both versions of every router, bumped on RSC edits. */
40
46
  export declare function getVirtualVersionContent(version: string): string;
41
47
  /**
@@ -1,4 +1,11 @@
1
1
  export declare function encodePathParam(value: unknown): string;
2
+ /**
3
+ * `ctx.reverse` of a build-time `getParams()`. Substitutes like the dev-mode
4
+ * one (`createReverseFunction`, router/prerender-match.ts): a missing required
5
+ * param throws `Missing param`, with or without a params object, instead of
6
+ * leaving a literal `:param` in the URL.
7
+ */
8
+ export declare function createGetParamsReverse(routes: Record<string, string>): (name: string, params?: Record<string, string>) => string;
2
9
  export declare function substituteRouteParams(pattern: string, params: Record<string, string>, encode?: (value: string) => string): string;
3
10
  export declare function runWithConcurrency<T>(items: T[], concurrency: number, fn: (item: T) => Promise<void>): Promise<void>;
4
11
  export declare function groupByConcurrency<T extends {