@rangojs/router 0.4.0 → 0.4.2

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 (1295) hide show
  1. package/README.md +19 -1
  2. package/dist/__internal.d.ts +83 -0
  3. package/dist/__internal.d.ts.map +1 -0
  4. package/dist/__internal.js +19 -0
  5. package/dist/__internal.js.map +1 -0
  6. package/dist/__mocks__/version.d.ts +7 -0
  7. package/dist/__mocks__/version.d.ts.map +1 -0
  8. package/dist/__mocks__/version.js +7 -0
  9. package/dist/__mocks__/version.js.map +1 -0
  10. package/dist/__tests__/client-href.test.d.ts +2 -0
  11. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  12. package/dist/__tests__/client-href.test.js +74 -0
  13. package/dist/__tests__/client-href.test.js.map +1 -0
  14. package/dist/__tests__/component-utils.test.d.ts +2 -0
  15. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  16. package/dist/__tests__/component-utils.test.js +51 -0
  17. package/dist/__tests__/component-utils.test.js.map +1 -0
  18. package/dist/__tests__/event-controller.test.d.ts +2 -0
  19. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  20. package/dist/__tests__/event-controller.test.js +538 -0
  21. package/dist/__tests__/event-controller.test.js.map +1 -0
  22. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  24. package/dist/__tests__/helpers/route-tree.js +374 -0
  25. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  26. package/dist/__tests__/match-result.test.d.ts +2 -0
  27. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  28. package/dist/__tests__/match-result.test.js +154 -0
  29. package/dist/__tests__/match-result.test.js.map +1 -0
  30. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  31. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  32. package/dist/__tests__/navigation-store.test.js +440 -0
  33. package/dist/__tests__/navigation-store.test.js.map +1 -0
  34. package/dist/__tests__/partial-update.test.d.ts +2 -0
  35. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  36. package/dist/__tests__/partial-update.test.js +1009 -0
  37. package/dist/__tests__/partial-update.test.js.map +1 -0
  38. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  39. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  40. package/dist/__tests__/reverse-types.test.js +656 -0
  41. package/dist/__tests__/reverse-types.test.js.map +1 -0
  42. package/dist/__tests__/route-definition.test.d.ts +2 -0
  43. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  44. package/dist/__tests__/route-definition.test.js +55 -0
  45. package/dist/__tests__/route-definition.test.js.map +1 -0
  46. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  47. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  48. package/dist/__tests__/router-helpers.test.js +377 -0
  49. package/dist/__tests__/router-helpers.test.js.map +1 -0
  50. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  52. package/dist/__tests__/router-integration-2.test.js +426 -0
  53. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  54. package/dist/__tests__/router-integration.test.d.ts +2 -0
  55. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  56. package/dist/__tests__/router-integration.test.js +1051 -0
  57. package/dist/__tests__/router-integration.test.js.map +1 -0
  58. package/dist/__tests__/search-params.test.d.ts +5 -0
  59. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  60. package/dist/__tests__/search-params.test.js +306 -0
  61. package/dist/__tests__/search-params.test.js.map +1 -0
  62. package/dist/__tests__/segment-system.test.d.ts +2 -0
  63. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  64. package/dist/__tests__/segment-system.test.js +627 -0
  65. package/dist/__tests__/segment-system.test.js.map +1 -0
  66. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  68. package/dist/__tests__/static-handler-types.test.js +63 -0
  69. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  70. package/dist/__tests__/urls.test.d.ts +2 -0
  71. package/dist/__tests__/urls.test.d.ts.map +1 -0
  72. package/dist/__tests__/urls.test.js +421 -0
  73. package/dist/__tests__/urls.test.js.map +1 -0
  74. package/dist/__tests__/use-mount.test.d.ts +2 -0
  75. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  76. package/dist/__tests__/use-mount.test.js +35 -0
  77. package/dist/__tests__/use-mount.test.js.map +1 -0
  78. package/dist/bin/rango.d.ts +2 -0
  79. package/dist/bin/rango.d.ts.map +1 -0
  80. package/dist/bin/rango.js.map +1 -0
  81. package/dist/browser/event-controller.d.ts +191 -0
  82. package/dist/browser/event-controller.d.ts.map +1 -0
  83. package/dist/browser/event-controller.js +559 -0
  84. package/dist/browser/event-controller.js.map +1 -0
  85. package/dist/browser/index.d.ts +2 -0
  86. package/dist/browser/index.d.ts.map +1 -0
  87. package/dist/browser/index.js +14 -0
  88. package/dist/browser/index.js.map +1 -0
  89. package/dist/browser/link-interceptor.d.ts +38 -0
  90. package/dist/browser/link-interceptor.d.ts.map +1 -0
  91. package/dist/browser/link-interceptor.js +99 -0
  92. package/dist/browser/link-interceptor.js.map +1 -0
  93. package/dist/browser/logging.d.ts +10 -0
  94. package/dist/browser/logging.d.ts.map +1 -0
  95. package/dist/browser/logging.js +29 -0
  96. package/dist/browser/logging.js.map +1 -0
  97. package/dist/browser/lru-cache.d.ts +17 -0
  98. package/dist/browser/lru-cache.d.ts.map +1 -0
  99. package/dist/browser/lru-cache.js +50 -0
  100. package/dist/browser/lru-cache.js.map +1 -0
  101. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  102. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  103. package/dist/browser/merge-segment-loaders.js +102 -0
  104. package/dist/browser/merge-segment-loaders.js.map +1 -0
  105. package/dist/browser/navigation-bridge.d.ts +102 -0
  106. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  107. package/dist/browser/navigation-bridge.js +708 -0
  108. package/dist/browser/navigation-bridge.js.map +1 -0
  109. package/dist/browser/navigation-client.d.ts +25 -0
  110. package/dist/browser/navigation-client.d.ts.map +1 -0
  111. package/dist/browser/navigation-client.js +157 -0
  112. package/dist/browser/navigation-client.js.map +1 -0
  113. package/dist/browser/navigation-store.d.ts +101 -0
  114. package/dist/browser/navigation-store.d.ts.map +1 -0
  115. package/dist/browser/navigation-store.js +625 -0
  116. package/dist/browser/navigation-store.js.map +1 -0
  117. package/dist/browser/partial-update.d.ts +75 -0
  118. package/dist/browser/partial-update.d.ts.map +1 -0
  119. package/dist/browser/partial-update.js +426 -0
  120. package/dist/browser/partial-update.js.map +1 -0
  121. package/dist/browser/react/Link.d.ts +86 -0
  122. package/dist/browser/react/Link.d.ts.map +1 -0
  123. package/dist/browser/react/Link.js +128 -0
  124. package/dist/browser/react/Link.js.map +1 -0
  125. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  126. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  127. package/dist/browser/react/NavigationProvider.js +216 -0
  128. package/dist/browser/react/NavigationProvider.js.map +1 -0
  129. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  130. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  131. package/dist/browser/react/ScrollRestoration.js +57 -0
  132. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  133. package/dist/browser/react/context.d.ts +46 -0
  134. package/dist/browser/react/context.d.ts.map +1 -0
  135. package/dist/browser/react/context.js +10 -0
  136. package/dist/browser/react/context.js.map +1 -0
  137. package/dist/browser/react/index.d.ts +11 -0
  138. package/dist/browser/react/index.d.ts.map +1 -0
  139. package/dist/browser/react/index.js +22 -0
  140. package/dist/browser/react/index.js.map +1 -0
  141. package/dist/browser/react/location-state-shared.d.ts +63 -0
  142. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  143. package/dist/browser/react/location-state-shared.js +81 -0
  144. package/dist/browser/react/location-state-shared.js.map +1 -0
  145. package/dist/browser/react/location-state.d.ts +23 -0
  146. package/dist/browser/react/location-state.d.ts.map +1 -0
  147. package/dist/browser/react/location-state.js +29 -0
  148. package/dist/browser/react/location-state.js.map +1 -0
  149. package/dist/browser/react/mount-context.d.ts +24 -0
  150. package/dist/browser/react/mount-context.d.ts.map +1 -0
  151. package/dist/browser/react/mount-context.js +24 -0
  152. package/dist/browser/react/mount-context.js.map +1 -0
  153. package/dist/browser/react/use-action.d.ts +64 -0
  154. package/dist/browser/react/use-action.d.ts.map +1 -0
  155. package/dist/browser/react/use-action.js +134 -0
  156. package/dist/browser/react/use-action.js.map +1 -0
  157. package/dist/browser/react/use-client-cache.d.ts +41 -0
  158. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  159. package/dist/browser/react/use-client-cache.js +39 -0
  160. package/dist/browser/react/use-client-cache.js.map +1 -0
  161. package/dist/browser/react/use-handle.d.ts +31 -0
  162. package/dist/browser/react/use-handle.d.ts.map +1 -0
  163. package/dist/browser/react/use-handle.js +144 -0
  164. package/dist/browser/react/use-handle.js.map +1 -0
  165. package/dist/browser/react/use-href.d.ts +33 -0
  166. package/dist/browser/react/use-href.d.ts.map +1 -0
  167. package/dist/browser/react/use-href.js +39 -0
  168. package/dist/browser/react/use-href.js.map +1 -0
  169. package/dist/browser/react/use-link-status.d.ts +37 -0
  170. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  171. package/dist/browser/react/use-link-status.js +99 -0
  172. package/dist/browser/react/use-link-status.js.map +1 -0
  173. package/dist/browser/react/use-mount.d.ts +25 -0
  174. package/dist/browser/react/use-mount.d.ts.map +1 -0
  175. package/dist/browser/react/use-mount.js +30 -0
  176. package/dist/browser/react/use-mount.js.map +1 -0
  177. package/dist/browser/react/use-navigation.d.ts +27 -0
  178. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  179. package/dist/browser/react/use-navigation.js +87 -0
  180. package/dist/browser/react/use-navigation.js.map +1 -0
  181. package/dist/browser/react/use-segments.d.ts +38 -0
  182. package/dist/browser/react/use-segments.d.ts.map +1 -0
  183. package/dist/browser/react/use-segments.js +130 -0
  184. package/dist/browser/react/use-segments.js.map +1 -0
  185. package/dist/browser/request-controller.d.ts +26 -0
  186. package/dist/browser/request-controller.d.ts.map +1 -0
  187. package/dist/browser/request-controller.js +147 -0
  188. package/dist/browser/request-controller.js.map +1 -0
  189. package/dist/browser/rsc-router.d.ts +129 -0
  190. package/dist/browser/rsc-router.d.ts.map +1 -0
  191. package/dist/browser/rsc-router.js +195 -0
  192. package/dist/browser/rsc-router.js.map +1 -0
  193. package/dist/browser/scroll-restoration.d.ts +93 -0
  194. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  195. package/dist/browser/scroll-restoration.js +321 -0
  196. package/dist/browser/scroll-restoration.js.map +1 -0
  197. package/dist/browser/segment-structure-assert.d.ts +17 -0
  198. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  199. package/dist/browser/segment-structure-assert.js +59 -0
  200. package/dist/browser/segment-structure-assert.js.map +1 -0
  201. package/dist/browser/server-action-bridge.d.ts +26 -0
  202. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  203. package/dist/browser/server-action-bridge.js +668 -0
  204. package/dist/browser/server-action-bridge.js.map +1 -0
  205. package/dist/browser/shallow.d.ts +12 -0
  206. package/dist/browser/shallow.d.ts.map +1 -0
  207. package/dist/browser/shallow.js +34 -0
  208. package/dist/browser/shallow.js.map +1 -0
  209. package/dist/browser/types.d.ts +369 -0
  210. package/dist/browser/types.d.ts.map +1 -0
  211. package/dist/browser/types.js +2 -0
  212. package/dist/browser/types.js.map +1 -0
  213. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  214. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  215. package/dist/build/__tests__/generate-cli.test.js +237 -0
  216. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  217. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  218. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  219. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  220. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  221. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  222. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  223. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  224. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  225. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  226. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  227. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  228. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  229. package/dist/build/generate-manifest.d.ts +81 -0
  230. package/dist/build/generate-manifest.d.ts.map +1 -0
  231. package/dist/build/generate-manifest.js +276 -0
  232. package/dist/build/generate-manifest.js.map +1 -0
  233. package/dist/build/generate-route-types.d.ts +115 -0
  234. package/dist/build/generate-route-types.d.ts.map +1 -0
  235. package/dist/build/generate-route-types.js +740 -0
  236. package/dist/build/generate-route-types.js.map +1 -0
  237. package/dist/build/index.d.ts +21 -0
  238. package/dist/build/index.d.ts.map +1 -0
  239. package/dist/build/index.js +21 -0
  240. package/dist/build/index.js.map +1 -0
  241. package/dist/build/route-trie.d.ts +71 -0
  242. package/dist/build/route-trie.d.ts.map +1 -0
  243. package/dist/build/route-trie.js +175 -0
  244. package/dist/build/route-trie.js.map +1 -0
  245. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  246. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  247. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  248. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  249. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  250. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  251. package/dist/cache/__tests__/document-cache.test.js +345 -0
  252. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  253. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  254. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  257. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  258. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  259. package/dist/cache/__tests__/memory-store.test.js +367 -0
  260. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  261. package/dist/cache/cache-scope.d.ts +102 -0
  262. package/dist/cache/cache-scope.d.ts.map +1 -0
  263. package/dist/cache/cache-scope.js +440 -0
  264. package/dist/cache/cache-scope.js.map +1 -0
  265. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  266. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  269. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  270. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  271. package/dist/cache/cf/cf-cache-store.js +242 -0
  272. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  273. package/dist/cache/cf/index.d.ts +14 -0
  274. package/dist/cache/cf/index.d.ts.map +1 -0
  275. package/dist/cache/cf/index.js +17 -0
  276. package/dist/cache/cf/index.js.map +1 -0
  277. package/dist/cache/document-cache.d.ts +64 -0
  278. package/dist/cache/document-cache.d.ts.map +1 -0
  279. package/dist/cache/document-cache.js +228 -0
  280. package/dist/cache/document-cache.js.map +1 -0
  281. package/dist/cache/index.d.ts +19 -0
  282. package/dist/cache/index.d.ts.map +1 -0
  283. package/dist/cache/index.js +21 -0
  284. package/dist/cache/index.js.map +1 -0
  285. package/dist/cache/memory-segment-store.d.ts +110 -0
  286. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  287. package/dist/cache/memory-segment-store.js +117 -0
  288. package/dist/cache/memory-segment-store.js.map +1 -0
  289. package/dist/cache/memory-store.d.ts +41 -0
  290. package/dist/cache/memory-store.d.ts.map +1 -0
  291. package/dist/cache/memory-store.js +191 -0
  292. package/dist/cache/memory-store.js.map +1 -0
  293. package/dist/cache/types.d.ts +317 -0
  294. package/dist/cache/types.d.ts.map +1 -0
  295. package/dist/cache/types.js +12 -0
  296. package/dist/cache/types.js.map +1 -0
  297. package/dist/client.d.ts +248 -0
  298. package/dist/client.d.ts.map +1 -0
  299. package/dist/client.js +367 -0
  300. package/dist/client.js.map +1 -0
  301. package/dist/client.rsc.d.ts +26 -0
  302. package/dist/client.rsc.d.ts.map +1 -0
  303. package/dist/client.rsc.js +46 -0
  304. package/dist/client.rsc.js.map +1 -0
  305. package/dist/component-utils.d.ts +36 -0
  306. package/dist/component-utils.d.ts.map +1 -0
  307. package/dist/component-utils.js +61 -0
  308. package/dist/component-utils.js.map +1 -0
  309. package/dist/components/DefaultDocument.d.ts +13 -0
  310. package/dist/components/DefaultDocument.d.ts.map +1 -0
  311. package/dist/components/DefaultDocument.js +15 -0
  312. package/dist/components/DefaultDocument.js.map +1 -0
  313. package/dist/debug.d.ts +58 -0
  314. package/dist/debug.d.ts.map +1 -0
  315. package/dist/debug.js +157 -0
  316. package/dist/debug.js.map +1 -0
  317. package/dist/default-error-boundary.d.ts +11 -0
  318. package/dist/default-error-boundary.d.ts.map +1 -0
  319. package/dist/default-error-boundary.js +45 -0
  320. package/dist/default-error-boundary.js.map +1 -0
  321. package/dist/deps/browser.d.ts +2 -0
  322. package/dist/deps/browser.d.ts.map +1 -0
  323. package/dist/deps/browser.js +3 -0
  324. package/dist/deps/browser.js.map +1 -0
  325. package/dist/deps/html-stream-client.d.ts +2 -0
  326. package/dist/deps/html-stream-client.d.ts.map +1 -0
  327. package/dist/deps/html-stream-client.js +3 -0
  328. package/dist/deps/html-stream-client.js.map +1 -0
  329. package/dist/deps/html-stream-server.d.ts +2 -0
  330. package/dist/deps/html-stream-server.d.ts.map +1 -0
  331. package/dist/deps/html-stream-server.js +3 -0
  332. package/dist/deps/html-stream-server.js.map +1 -0
  333. package/dist/deps/rsc.d.ts +2 -0
  334. package/dist/deps/rsc.d.ts.map +1 -0
  335. package/dist/deps/rsc.js +4 -0
  336. package/dist/deps/rsc.js.map +1 -0
  337. package/dist/deps/ssr.d.ts +2 -0
  338. package/dist/deps/ssr.d.ts.map +1 -0
  339. package/dist/deps/ssr.js +3 -0
  340. package/dist/deps/ssr.js.map +1 -0
  341. package/dist/errors.d.ts +174 -0
  342. package/dist/errors.d.ts.map +1 -0
  343. package/dist/errors.js +241 -0
  344. package/dist/errors.js.map +1 -0
  345. package/dist/handle.d.ts +78 -0
  346. package/dist/handle.d.ts.map +1 -0
  347. package/dist/handle.js +82 -0
  348. package/dist/handle.js.map +1 -0
  349. package/dist/handles/MetaTags.d.ts +14 -0
  350. package/dist/handles/MetaTags.d.ts.map +1 -0
  351. package/dist/handles/MetaTags.js +136 -0
  352. package/dist/handles/MetaTags.js.map +1 -0
  353. package/dist/handles/index.d.ts +6 -0
  354. package/dist/handles/index.d.ts.map +1 -0
  355. package/dist/handles/index.js +6 -0
  356. package/dist/handles/index.js.map +1 -0
  357. package/dist/handles/meta.d.ts +39 -0
  358. package/dist/handles/meta.d.ts.map +1 -0
  359. package/dist/handles/meta.js +202 -0
  360. package/dist/handles/meta.js.map +1 -0
  361. package/dist/host/__tests__/errors.test.d.ts +2 -0
  362. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  363. package/dist/host/__tests__/errors.test.js +76 -0
  364. package/dist/host/__tests__/errors.test.js.map +1 -0
  365. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  366. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  369. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  370. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  372. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  373. package/dist/host/__tests__/router.test.d.ts +2 -0
  374. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  375. package/dist/host/__tests__/router.test.js +241 -0
  376. package/dist/host/__tests__/router.test.js.map +1 -0
  377. package/dist/host/__tests__/testing.test.d.ts +2 -0
  378. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  379. package/dist/host/__tests__/testing.test.js +64 -0
  380. package/dist/host/__tests__/testing.test.js.map +1 -0
  381. package/dist/host/__tests__/utils.test.d.ts +2 -0
  382. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  383. package/dist/host/__tests__/utils.test.js +29 -0
  384. package/dist/host/__tests__/utils.test.js.map +1 -0
  385. package/dist/host/cookie-handler.d.ts +34 -0
  386. package/dist/host/cookie-handler.d.ts.map +1 -0
  387. package/dist/host/cookie-handler.js +124 -0
  388. package/dist/host/cookie-handler.js.map +1 -0
  389. package/dist/host/errors.d.ts +56 -0
  390. package/dist/host/errors.d.ts.map +1 -0
  391. package/dist/host/errors.js +79 -0
  392. package/dist/host/errors.js.map +1 -0
  393. package/dist/host/index.d.ts +29 -0
  394. package/dist/host/index.d.ts.map +1 -0
  395. package/dist/host/index.js +32 -0
  396. package/dist/host/index.js.map +1 -0
  397. package/dist/host/pattern-matcher.d.ts +36 -0
  398. package/dist/host/pattern-matcher.d.ts.map +1 -0
  399. package/dist/host/pattern-matcher.js +172 -0
  400. package/dist/host/pattern-matcher.js.map +1 -0
  401. package/dist/host/router.d.ts +26 -0
  402. package/dist/host/router.d.ts.map +1 -0
  403. package/dist/host/router.js +218 -0
  404. package/dist/host/router.js.map +1 -0
  405. package/dist/host/testing.d.ts +36 -0
  406. package/dist/host/testing.d.ts.map +1 -0
  407. package/dist/host/testing.js +55 -0
  408. package/dist/host/testing.js.map +1 -0
  409. package/dist/host/types.d.ts +115 -0
  410. package/dist/host/types.d.ts.map +1 -0
  411. package/dist/host/types.js +7 -0
  412. package/dist/host/types.js.map +1 -0
  413. package/dist/host/utils.d.ts +21 -0
  414. package/dist/host/utils.d.ts.map +1 -0
  415. package/dist/host/utils.js +23 -0
  416. package/dist/host/utils.js.map +1 -0
  417. package/dist/href-client.d.ts +131 -0
  418. package/dist/href-client.d.ts.map +1 -0
  419. package/dist/href-client.js +64 -0
  420. package/dist/href-client.js.map +1 -0
  421. package/dist/href-context.d.ts +29 -0
  422. package/dist/href-context.d.ts.map +1 -0
  423. package/dist/href-context.js +21 -0
  424. package/dist/href-context.js.map +1 -0
  425. package/dist/index.d.ts +73 -0
  426. package/dist/index.d.ts.map +1 -0
  427. package/dist/index.js +91 -0
  428. package/dist/index.js.map +1 -0
  429. package/dist/index.rsc.d.ts +32 -0
  430. package/dist/index.rsc.d.ts.map +1 -0
  431. package/dist/index.rsc.js +40 -0
  432. package/dist/index.rsc.js.map +1 -0
  433. package/dist/internal-debug.d.ts +2 -0
  434. package/dist/internal-debug.d.ts.map +1 -0
  435. package/dist/internal-debug.js +5 -0
  436. package/dist/internal-debug.js.map +1 -0
  437. package/dist/loader.d.ts +14 -0
  438. package/dist/loader.d.ts.map +1 -0
  439. package/dist/loader.js +20 -0
  440. package/dist/loader.js.map +1 -0
  441. package/dist/loader.rsc.d.ts +19 -0
  442. package/dist/loader.rsc.d.ts.map +1 -0
  443. package/dist/loader.rsc.js +99 -0
  444. package/dist/loader.rsc.js.map +1 -0
  445. package/dist/network-error-thrower.d.ts +17 -0
  446. package/dist/network-error-thrower.d.ts.map +1 -0
  447. package/dist/network-error-thrower.js +14 -0
  448. package/dist/network-error-thrower.js.map +1 -0
  449. package/dist/outlet-context.d.ts +13 -0
  450. package/dist/outlet-context.d.ts.map +1 -0
  451. package/dist/outlet-context.js +3 -0
  452. package/dist/outlet-context.js.map +1 -0
  453. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  454. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  455. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  456. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  457. package/dist/prerender/param-hash.d.ts +16 -0
  458. package/dist/prerender/param-hash.d.ts.map +1 -0
  459. package/dist/prerender/param-hash.js +36 -0
  460. package/dist/prerender/param-hash.js.map +1 -0
  461. package/dist/prerender/store.d.ts +38 -0
  462. package/dist/prerender/store.d.ts.map +1 -0
  463. package/dist/prerender/store.js +61 -0
  464. package/dist/prerender/store.js.map +1 -0
  465. package/dist/prerender.d.ts +66 -0
  466. package/dist/prerender.d.ts.map +1 -0
  467. package/dist/prerender.js +57 -0
  468. package/dist/prerender.js.map +1 -0
  469. package/dist/reverse.d.ts +196 -0
  470. package/dist/reverse.d.ts.map +1 -0
  471. package/dist/reverse.js +78 -0
  472. package/dist/reverse.js.map +1 -0
  473. package/dist/root-error-boundary.d.ts +33 -0
  474. package/dist/root-error-boundary.d.ts.map +1 -0
  475. package/dist/root-error-boundary.js +165 -0
  476. package/dist/root-error-boundary.js.map +1 -0
  477. package/dist/route-content-wrapper.d.ts +46 -0
  478. package/dist/route-content-wrapper.d.ts.map +1 -0
  479. package/dist/route-content-wrapper.js +77 -0
  480. package/dist/route-content-wrapper.js.map +1 -0
  481. package/dist/route-definition.d.ts +421 -0
  482. package/dist/route-definition.d.ts.map +1 -0
  483. package/dist/route-definition.js +868 -0
  484. package/dist/route-definition.js.map +1 -0
  485. package/dist/route-map-builder.d.ts +155 -0
  486. package/dist/route-map-builder.d.ts.map +1 -0
  487. package/dist/route-map-builder.js +237 -0
  488. package/dist/route-map-builder.js.map +1 -0
  489. package/dist/route-types.d.ts +165 -0
  490. package/dist/route-types.d.ts.map +1 -0
  491. package/dist/route-types.js +7 -0
  492. package/dist/route-types.js.map +1 -0
  493. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  494. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  495. package/dist/router/__tests__/handler-context.test.js +65 -0
  496. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  497. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  498. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  501. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  502. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  503. package/dist/router/__tests__/match-context.test.js +92 -0
  504. package/dist/router/__tests__/match-context.test.js.map +1 -0
  505. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  506. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  507. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  508. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  509. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  510. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  511. package/dist/router/__tests__/match-result.test.js +457 -0
  512. package/dist/router/__tests__/match-result.test.js.map +1 -0
  513. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  514. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  515. package/dist/router/__tests__/on-error.test.js +678 -0
  516. package/dist/router/__tests__/on-error.test.js.map +1 -0
  517. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  518. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  519. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  520. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  521. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  522. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  525. package/dist/router/error-handling.d.ts +77 -0
  526. package/dist/router/error-handling.d.ts.map +1 -0
  527. package/dist/router/error-handling.js +202 -0
  528. package/dist/router/error-handling.js.map +1 -0
  529. package/dist/router/handler-context.d.ts +20 -0
  530. package/dist/router/handler-context.d.ts.map +1 -0
  531. package/dist/router/handler-context.js +198 -0
  532. package/dist/router/handler-context.js.map +1 -0
  533. package/dist/router/intercept-resolution.d.ts +66 -0
  534. package/dist/router/intercept-resolution.d.ts.map +1 -0
  535. package/dist/router/intercept-resolution.js +246 -0
  536. package/dist/router/intercept-resolution.js.map +1 -0
  537. package/dist/router/loader-resolution.d.ts +64 -0
  538. package/dist/router/loader-resolution.d.ts.map +1 -0
  539. package/dist/router/loader-resolution.js +284 -0
  540. package/dist/router/loader-resolution.js.map +1 -0
  541. package/dist/router/logging.d.ts +15 -0
  542. package/dist/router/logging.d.ts.map +1 -0
  543. package/dist/router/logging.js +99 -0
  544. package/dist/router/logging.js.map +1 -0
  545. package/dist/router/manifest.d.ts +22 -0
  546. package/dist/router/manifest.d.ts.map +1 -0
  547. package/dist/router/manifest.js +181 -0
  548. package/dist/router/manifest.js.map +1 -0
  549. package/dist/router/match-api.d.ts +35 -0
  550. package/dist/router/match-api.d.ts.map +1 -0
  551. package/dist/router/match-api.js +406 -0
  552. package/dist/router/match-api.js.map +1 -0
  553. package/dist/router/match-context.d.ts +206 -0
  554. package/dist/router/match-context.d.ts.map +1 -0
  555. package/dist/router/match-context.js +17 -0
  556. package/dist/router/match-context.js.map +1 -0
  557. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  558. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  559. package/dist/router/match-middleware/background-revalidation.js +75 -0
  560. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  561. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  562. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  563. package/dist/router/match-middleware/cache-lookup.js +257 -0
  564. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  565. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  566. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  567. package/dist/router/match-middleware/cache-store.js +108 -0
  568. package/dist/router/match-middleware/cache-store.js.map +1 -0
  569. package/dist/router/match-middleware/index.d.ts +81 -0
  570. package/dist/router/match-middleware/index.d.ts.map +1 -0
  571. package/dist/router/match-middleware/index.js +80 -0
  572. package/dist/router/match-middleware/index.js.map +1 -0
  573. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  574. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  575. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  576. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  577. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  578. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  579. package/dist/router/match-middleware/segment-resolution.js +53 -0
  580. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  581. package/dist/router/match-pipelines.d.ts +147 -0
  582. package/dist/router/match-pipelines.d.ts.map +1 -0
  583. package/dist/router/match-pipelines.js +82 -0
  584. package/dist/router/match-pipelines.js.map +1 -0
  585. package/dist/router/match-result.d.ts +126 -0
  586. package/dist/router/match-result.d.ts.map +1 -0
  587. package/dist/router/match-result.js +93 -0
  588. package/dist/router/match-result.js.map +1 -0
  589. package/dist/router/metrics.d.ts +20 -0
  590. package/dist/router/metrics.d.ts.map +1 -0
  591. package/dist/router/metrics.js +47 -0
  592. package/dist/router/metrics.js.map +1 -0
  593. package/dist/router/middleware.d.ts +249 -0
  594. package/dist/router/middleware.d.ts.map +1 -0
  595. package/dist/router/middleware.js +434 -0
  596. package/dist/router/middleware.js.map +1 -0
  597. package/dist/router/middleware.test.d.ts +2 -0
  598. package/dist/router/middleware.test.d.ts.map +1 -0
  599. package/dist/router/middleware.test.js +816 -0
  600. package/dist/router/middleware.test.js.map +1 -0
  601. package/dist/router/pattern-matching.d.ts +149 -0
  602. package/dist/router/pattern-matching.d.ts.map +1 -0
  603. package/dist/router/pattern-matching.js +349 -0
  604. package/dist/router/pattern-matching.js.map +1 -0
  605. package/dist/router/revalidation.d.ts +44 -0
  606. package/dist/router/revalidation.d.ts.map +1 -0
  607. package/dist/router/revalidation.js +147 -0
  608. package/dist/router/revalidation.js.map +1 -0
  609. package/dist/router/router-context.d.ts +135 -0
  610. package/dist/router/router-context.d.ts.map +1 -0
  611. package/dist/router/router-context.js +36 -0
  612. package/dist/router/router-context.js.map +1 -0
  613. package/dist/router/segment-resolution.d.ts +127 -0
  614. package/dist/router/segment-resolution.d.ts.map +1 -0
  615. package/dist/router/segment-resolution.js +919 -0
  616. package/dist/router/segment-resolution.js.map +1 -0
  617. package/dist/router/trie-matching.d.ts +40 -0
  618. package/dist/router/trie-matching.d.ts.map +1 -0
  619. package/dist/router/trie-matching.js +127 -0
  620. package/dist/router/trie-matching.js.map +1 -0
  621. package/dist/router/types.d.ts +136 -0
  622. package/dist/router/types.d.ts.map +1 -0
  623. package/dist/router/types.js +7 -0
  624. package/dist/router/types.js.map +1 -0
  625. package/dist/router.d.ts +753 -0
  626. package/dist/router.d.ts.map +1 -0
  627. package/dist/router.gen.d.ts +6 -0
  628. package/dist/router.gen.d.ts.map +1 -0
  629. package/dist/router.gen.js +6 -0
  630. package/dist/router.gen.js.map +1 -0
  631. package/dist/router.js +1304 -0
  632. package/dist/router.js.map +1 -0
  633. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  634. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  635. package/dist/rsc/__tests__/helpers.test.js +140 -0
  636. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  637. package/dist/rsc/handler.d.ts +45 -0
  638. package/dist/rsc/handler.d.ts.map +1 -0
  639. package/dist/rsc/handler.js +1172 -0
  640. package/dist/rsc/handler.js.map +1 -0
  641. package/dist/rsc/helpers.d.ts +16 -0
  642. package/dist/rsc/helpers.d.ts.map +1 -0
  643. package/dist/rsc/helpers.js +55 -0
  644. package/dist/rsc/helpers.js.map +1 -0
  645. package/dist/rsc/index.d.ts +22 -0
  646. package/dist/rsc/index.d.ts.map +1 -0
  647. package/dist/rsc/index.js +23 -0
  648. package/dist/rsc/index.js.map +1 -0
  649. package/dist/rsc/nonce.d.ts +9 -0
  650. package/dist/rsc/nonce.d.ts.map +1 -0
  651. package/dist/rsc/nonce.js +18 -0
  652. package/dist/rsc/nonce.js.map +1 -0
  653. package/dist/rsc/types.d.ts +206 -0
  654. package/dist/rsc/types.d.ts.map +1 -0
  655. package/dist/rsc/types.js +8 -0
  656. package/dist/rsc/types.js.map +1 -0
  657. package/dist/search-params.d.ts +103 -0
  658. package/dist/search-params.d.ts.map +1 -0
  659. package/dist/search-params.js +74 -0
  660. package/dist/search-params.js.map +1 -0
  661. package/dist/segment-system.d.ts +75 -0
  662. package/dist/segment-system.d.ts.map +1 -0
  663. package/dist/segment-system.js +336 -0
  664. package/dist/segment-system.js.map +1 -0
  665. package/dist/server/context.d.ts +245 -0
  666. package/dist/server/context.d.ts.map +1 -0
  667. package/dist/server/context.js +197 -0
  668. package/dist/server/context.js.map +1 -0
  669. package/dist/server/fetchable-loader-store.d.ts +18 -0
  670. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  671. package/dist/server/fetchable-loader-store.js +18 -0
  672. package/dist/server/fetchable-loader-store.js.map +1 -0
  673. package/dist/server/handle-store.d.ts +85 -0
  674. package/dist/server/handle-store.d.ts.map +1 -0
  675. package/dist/server/handle-store.js +142 -0
  676. package/dist/server/handle-store.js.map +1 -0
  677. package/dist/server/loader-registry.d.ts +55 -0
  678. package/dist/server/loader-registry.d.ts.map +1 -0
  679. package/dist/server/loader-registry.js +132 -0
  680. package/dist/server/loader-registry.js.map +1 -0
  681. package/dist/server/request-context.d.ts +226 -0
  682. package/dist/server/request-context.d.ts.map +1 -0
  683. package/dist/server/request-context.js +290 -0
  684. package/dist/server/request-context.js.map +1 -0
  685. package/dist/server/root-layout.d.ts +4 -0
  686. package/dist/server/root-layout.d.ts.map +1 -0
  687. package/dist/server/root-layout.js +5 -0
  688. package/dist/server/root-layout.js.map +1 -0
  689. package/dist/server.d.ts +15 -0
  690. package/dist/server.d.ts.map +1 -0
  691. package/dist/server.js +20 -0
  692. package/dist/server.js.map +1 -0
  693. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  694. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  697. package/dist/ssr/index.d.ts +98 -0
  698. package/dist/ssr/index.d.ts.map +1 -0
  699. package/dist/ssr/index.js +158 -0
  700. package/dist/ssr/index.js.map +1 -0
  701. package/dist/static-handler.d.ts +50 -0
  702. package/dist/static-handler.d.ts.map +1 -0
  703. package/dist/static-handler.gen.d.ts +5 -0
  704. package/dist/static-handler.gen.d.ts.map +1 -0
  705. package/dist/static-handler.gen.js +5 -0
  706. package/dist/static-handler.gen.js.map +1 -0
  707. package/dist/static-handler.js +29 -0
  708. package/dist/static-handler.js.map +1 -0
  709. package/dist/theme/ThemeProvider.d.ts +20 -0
  710. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  711. package/dist/theme/ThemeProvider.js +240 -0
  712. package/dist/theme/ThemeProvider.js.map +1 -0
  713. package/dist/theme/ThemeScript.d.ts +48 -0
  714. package/dist/theme/ThemeScript.d.ts.map +1 -0
  715. package/dist/theme/ThemeScript.js +13 -0
  716. package/dist/theme/ThemeScript.js.map +1 -0
  717. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  718. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  719. package/dist/theme/__tests__/theme.test.js +103 -0
  720. package/dist/theme/__tests__/theme.test.js.map +1 -0
  721. package/dist/theme/constants.d.ts +29 -0
  722. package/dist/theme/constants.d.ts.map +1 -0
  723. package/dist/theme/constants.js +48 -0
  724. package/dist/theme/constants.js.map +1 -0
  725. package/dist/theme/index.d.ts +31 -0
  726. package/dist/theme/index.d.ts.map +1 -0
  727. package/dist/theme/index.js +36 -0
  728. package/dist/theme/index.js.map +1 -0
  729. package/dist/theme/theme-context.d.ts +40 -0
  730. package/dist/theme/theme-context.d.ts.map +1 -0
  731. package/dist/theme/theme-context.js +60 -0
  732. package/dist/theme/theme-context.js.map +1 -0
  733. package/dist/theme/theme-script.d.ts +27 -0
  734. package/dist/theme/theme-script.d.ts.map +1 -0
  735. package/dist/theme/theme-script.js +147 -0
  736. package/dist/theme/theme-script.js.map +1 -0
  737. package/dist/theme/types.d.ts +163 -0
  738. package/dist/theme/types.d.ts.map +1 -0
  739. package/dist/theme/types.js +11 -0
  740. package/dist/theme/types.js.map +1 -0
  741. package/dist/theme/use-theme.d.ts +12 -0
  742. package/dist/theme/use-theme.d.ts.map +1 -0
  743. package/dist/theme/use-theme.js +40 -0
  744. package/dist/theme/use-theme.js.map +1 -0
  745. package/dist/types/browser/event-controller.d.ts +4 -0
  746. package/dist/types/browser/link-interceptor.d.ts +17 -7
  747. package/dist/types/browser/navigation-bridge.d.ts +13 -1
  748. package/dist/types/browser/navigation-client.d.ts +1 -1
  749. package/dist/types/browser/notify-listeners.d.ts +2 -0
  750. package/dist/types/browser/prefetch/cache.d.ts +10 -1
  751. package/dist/types/browser/prefetch/default-strategy.d.ts +12 -3
  752. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  753. package/dist/types/browser/prefetch/loader.d.ts +3 -1
  754. package/dist/types/browser/prefetch/observer.d.ts +3 -6
  755. package/dist/types/browser/rango-state.d.ts +4 -0
  756. package/dist/types/browser/react/Link.d.ts +4 -9
  757. package/dist/types/browser/react/context.d.ts +3 -0
  758. package/dist/types/browser/rsc-router.d.ts +7 -2
  759. package/dist/types/browser/types.d.ts +1 -0
  760. package/dist/types/cache/cache-key-utils.d.ts +11 -3
  761. package/dist/types/cache/cache-scope.d.ts +82 -3
  762. package/dist/types/cache/cf/cf-cache-store.d.ts +21 -10
  763. package/dist/types/cache/cf/cf-cache-types.d.ts +4 -2
  764. package/dist/types/cache/index.d.ts +3 -1
  765. package/dist/types/cache/search-params-filter.d.ts +64 -0
  766. package/dist/types/cache/shell-snapshot.d.ts +4 -4
  767. package/dist/types/cache/types.d.ts +30 -2
  768. package/dist/types/cache/vercel/vercel-cache-store.d.ts +2 -2
  769. package/dist/types/index.d.ts +1 -0
  770. package/dist/types/index.rsc.d.ts +1 -0
  771. package/dist/types/router/match-middleware/cache-lookup.d.ts +13 -0
  772. package/dist/types/router/navigation-snapshot.d.ts +29 -0
  773. package/dist/types/router/router-options.d.ts +27 -3
  774. package/dist/types/rsc/shell-build-manifest.d.ts +7 -1
  775. package/dist/types/rsc/shell-capture.d.ts +10 -8
  776. package/dist/types/rsc/shell-serve.d.ts +7 -1
  777. package/dist/types/rsc/types.d.ts +17 -0
  778. package/dist/types/segment-fragments.d.ts +27 -4
  779. package/dist/types/server/request-context.d.ts +78 -12
  780. package/dist/types/testing/render-route.d.ts +10 -1
  781. package/dist/types/testing/shell-status.d.ts +6 -3
  782. package/dist/types/vite/plugin-types.d.ts +1 -1
  783. package/dist/types.d.ts +1479 -0
  784. package/dist/types.d.ts.map +1 -0
  785. package/dist/types.js +10 -0
  786. package/dist/types.js.map +1 -0
  787. package/dist/urls.d.ts +441 -0
  788. package/dist/urls.d.ts.map +1 -0
  789. package/dist/urls.gen.d.ts +8 -0
  790. package/dist/urls.gen.d.ts.map +1 -0
  791. package/dist/urls.gen.js +8 -0
  792. package/dist/urls.gen.js.map +1 -0
  793. package/dist/urls.js +443 -0
  794. package/dist/urls.js.map +1 -0
  795. package/dist/use-loader.d.ts +127 -0
  796. package/dist/use-loader.d.ts.map +1 -0
  797. package/dist/use-loader.js +237 -0
  798. package/dist/use-loader.js.map +1 -0
  799. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  800. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  801. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  802. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  803. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  804. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  805. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  806. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  807. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  808. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  809. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  810. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  811. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  812. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  813. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  814. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  815. package/dist/vite/ast-handler-extract.d.ts +49 -0
  816. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  817. package/dist/vite/ast-handler-extract.js +249 -0
  818. package/dist/vite/ast-handler-extract.js.map +1 -0
  819. package/dist/vite/expose-action-id.d.ts +19 -0
  820. package/dist/vite/expose-action-id.d.ts.map +1 -0
  821. package/dist/vite/expose-action-id.js +250 -0
  822. package/dist/vite/expose-action-id.js.map +1 -0
  823. package/dist/vite/expose-id-utils.d.ts +69 -0
  824. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  825. package/dist/vite/expose-id-utils.js +289 -0
  826. package/dist/vite/expose-id-utils.js.map +1 -0
  827. package/dist/vite/expose-internal-ids.d.ts +22 -0
  828. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  829. package/dist/vite/expose-internal-ids.js +886 -0
  830. package/dist/vite/expose-internal-ids.js.map +1 -0
  831. package/dist/vite/index.d.ts +149 -0
  832. package/dist/vite/index.d.ts.map +1 -0
  833. package/dist/vite/index.js +5 -5
  834. package/dist/vite/index.js.bak +5448 -0
  835. package/dist/vite/index.js.map +1 -0
  836. package/dist/vite/index.named-routes.gen.ts +103 -0
  837. package/dist/vite/package-resolution.d.ts +43 -0
  838. package/dist/vite/package-resolution.d.ts.map +1 -0
  839. package/dist/vite/package-resolution.js +112 -0
  840. package/dist/vite/package-resolution.js.map +1 -0
  841. package/dist/vite/virtual-entries.d.ts +25 -0
  842. package/dist/vite/virtual-entries.d.ts.map +1 -0
  843. package/dist/vite/virtual-entries.js +110 -0
  844. package/dist/vite/virtual-entries.js.map +1 -0
  845. package/package.json +23 -22
  846. package/skills/caching/SKILL.md +39 -0
  847. package/skills/cloudflare/SKILL.md +4 -2
  848. package/skills/comparison/references/framework-comparison.md +7 -1
  849. package/skills/links/SKILL.md +24 -0
  850. package/skills/ppr/SKILL.md +77 -12
  851. package/skills/router-setup/SKILL.md +7 -2
  852. package/skills/testing/client-components.md +15 -14
  853. package/skills/vercel/SKILL.md +1 -1
  854. package/src/browser/event-controller.ts +110 -11
  855. package/src/browser/link-interceptor.ts +469 -20
  856. package/src/browser/navigation-bridge.ts +71 -2
  857. package/src/browser/navigation-client.ts +77 -27
  858. package/src/browser/navigation-store.ts +24 -1
  859. package/src/browser/notify-listeners.ts +22 -0
  860. package/src/browser/prefetch/cache.ts +22 -2
  861. package/src/browser/prefetch/default-strategy.ts +43 -3
  862. package/src/browser/prefetch/fetch.ts +5 -0
  863. package/src/browser/prefetch/invalidation.ts +30 -0
  864. package/src/browser/prefetch/loader.ts +19 -12
  865. package/src/browser/prefetch/observer.ts +50 -22
  866. package/src/browser/rango-state.ts +21 -0
  867. package/src/browser/react/Link.tsx +97 -88
  868. package/src/browser/react/NavigationProvider.tsx +1 -0
  869. package/src/browser/react/context.ts +4 -0
  870. package/src/browser/rsc-router.tsx +34 -15
  871. package/src/browser/types.ts +1 -0
  872. package/src/cache/cache-key-utils.ts +18 -4
  873. package/src/cache/cache-runtime.ts +7 -2
  874. package/src/cache/cache-scope.ts +157 -24
  875. package/src/cache/cf/cf-cache-store.ts +472 -104
  876. package/src/cache/cf/cf-cache-types.ts +4 -2
  877. package/src/cache/document-cache.ts +31 -3
  878. package/src/cache/index.ts +7 -0
  879. package/src/cache/search-params-filter.ts +118 -0
  880. package/src/cache/shell-snapshot.ts +8 -4
  881. package/src/cache/types.ts +33 -2
  882. package/src/cache/vercel/vercel-cache-store.ts +17 -3
  883. package/src/index.rsc.ts +4 -0
  884. package/src/index.ts +6 -0
  885. package/src/router/match-middleware/cache-lookup.ts +146 -33
  886. package/src/router/match-middleware/cache-store.ts +70 -0
  887. package/src/router/navigation-snapshot.ts +46 -6
  888. package/src/router/router-options.ts +31 -4
  889. package/src/rsc/handler.ts +9 -0
  890. package/src/rsc/response-cache-serve.ts +1 -1
  891. package/src/rsc/rsc-rendering.ts +311 -31
  892. package/src/rsc/shell-build-manifest.ts +8 -1
  893. package/src/rsc/shell-capture.ts +24 -19
  894. package/src/rsc/shell-serve.ts +8 -2
  895. package/src/rsc/types.ts +17 -0
  896. package/src/segment-fragments.ts +45 -4
  897. package/src/server/request-context.ts +83 -11
  898. package/src/testing/dispatch.ts +21 -3
  899. package/src/testing/render-route.tsx +86 -17
  900. package/src/testing/shell-status.ts +20 -3
  901. package/src/vite/plugin-types.ts +1 -1
  902. package/src/vite/plugins/vercel-output.ts +2 -2
  903. package/dist/types.backup/__internal.d.ts +0 -127
  904. package/dist/types.backup/bin/rango.d.ts +0 -1
  905. package/dist/types.backup/browser/action-coordinator.d.ts +0 -57
  906. package/dist/types.backup/browser/action-fence.d.ts +0 -33
  907. package/dist/types.backup/browser/app-shell.d.ts +0 -34
  908. package/dist/types.backup/browser/app-version.d.ts +0 -6
  909. package/dist/types.backup/browser/connection-warmup.d.ts +0 -31
  910. package/dist/types.backup/browser/cookie-name.d.ts +0 -66
  911. package/dist/types.backup/browser/event-controller.d.ts +0 -221
  912. package/dist/types.backup/browser/history-state.d.ts +0 -26
  913. package/dist/types.backup/browser/index.d.ts +0 -1
  914. package/dist/types.backup/browser/intercept-utils.d.ts +0 -30
  915. package/dist/types.backup/browser/invalidate-client-cache.d.ts +0 -17
  916. package/dist/types.backup/browser/link-interceptor.d.ts +0 -43
  917. package/dist/types.backup/browser/logging.d.ts +0 -33
  918. package/dist/types.backup/browser/merge-segment-loaders.d.ts +0 -38
  919. package/dist/types.backup/browser/navigation-bridge.d.ts +0 -27
  920. package/dist/types.backup/browser/navigation-client.d.ts +0 -17
  921. package/dist/types.backup/browser/navigation-store-handle.d.ts +0 -25
  922. package/dist/types.backup/browser/navigation-store.d.ts +0 -95
  923. package/dist/types.backup/browser/navigation-transaction.d.ts +0 -75
  924. package/dist/types.backup/browser/network-error-handler.d.ts +0 -35
  925. package/dist/types.backup/browser/partial-update.d.ts +0 -61
  926. package/dist/types.backup/browser/prefetch/cache.d.ts +0 -183
  927. package/dist/types.backup/browser/prefetch/fetch.d.ts +0 -52
  928. package/dist/types.backup/browser/prefetch/observer.d.ts +0 -27
  929. package/dist/types.backup/browser/prefetch/policy.d.ts +0 -13
  930. package/dist/types.backup/browser/prefetch/queue.d.ts +0 -48
  931. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +0 -28
  932. package/dist/types.backup/browser/rango-state.d.ts +0 -52
  933. package/dist/types.backup/browser/react/Link.d.ts +0 -140
  934. package/dist/types.backup/browser/react/NavigationProvider.d.ts +0 -88
  935. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +0 -78
  936. package/dist/types.backup/browser/react/context.d.ts +0 -54
  937. package/dist/types.backup/browser/react/filter-segment-order.d.ts +0 -35
  938. package/dist/types.backup/browser/react/index.d.ts +0 -1
  939. package/dist/types.backup/browser/react/location-state-shared.d.ts +0 -162
  940. package/dist/types.backup/browser/react/location-state.d.ts +0 -29
  941. package/dist/types.backup/browser/react/mount-context.d.ts +0 -23
  942. package/dist/types.backup/browser/react/nonce-context.d.ts +0 -14
  943. package/dist/types.backup/browser/react/shallow-equal.d.ts +0 -5
  944. package/dist/types.backup/browser/react/use-action.d.ts +0 -61
  945. package/dist/types.backup/browser/react/use-handle.d.ts +0 -21
  946. package/dist/types.backup/browser/react/use-href.d.ts +0 -32
  947. package/dist/types.backup/browser/react/use-link-status.d.ts +0 -36
  948. package/dist/types.backup/browser/react/use-mount.d.ts +0 -24
  949. package/dist/types.backup/browser/react/use-navigation.d.ts +0 -15
  950. package/dist/types.backup/browser/react/use-params.d.ts +0 -21
  951. package/dist/types.backup/browser/react/use-pathname.d.ts +0 -13
  952. package/dist/types.backup/browser/react/use-reverse.d.ts +0 -40
  953. package/dist/types.backup/browser/react/use-router.d.ts +0 -23
  954. package/dist/types.backup/browser/react/use-search-params.d.ts +0 -19
  955. package/dist/types.backup/browser/react/use-segments.d.ts +0 -29
  956. package/dist/types.backup/browser/response-adapter.d.ts +0 -58
  957. package/dist/types.backup/browser/rsc-router.d.ts +0 -141
  958. package/dist/types.backup/browser/scroll-restoration.d.ts +0 -103
  959. package/dist/types.backup/browser/segment-reconciler.d.ts +0 -74
  960. package/dist/types.backup/browser/segment-structure-assert.d.ts +0 -16
  961. package/dist/types.backup/browser/server-action-bridge.d.ts +0 -29
  962. package/dist/types.backup/browser/types.d.ts +0 -530
  963. package/dist/types.backup/browser/validate-redirect-origin.d.ts +0 -28
  964. package/dist/types.backup/build/collect-fallback-refs.d.ts +0 -5
  965. package/dist/types.backup/build/generate-manifest.d.ts +0 -100
  966. package/dist/types.backup/build/generate-route-types.d.ts +0 -8
  967. package/dist/types.backup/build/index.d.ts +0 -21
  968. package/dist/types.backup/build/prefix-tree-utils.d.ts +0 -56
  969. package/dist/types.backup/build/route-trie.d.ts +0 -89
  970. package/dist/types.backup/build/route-types/ast-helpers.d.ts +0 -3
  971. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +0 -13
  972. package/dist/types.backup/build/route-types/codegen.d.ts +0 -16
  973. package/dist/types.backup/build/route-types/include-resolution.d.ts +0 -74
  974. package/dist/types.backup/build/route-types/param-extraction.d.ts +0 -13
  975. package/dist/types.backup/build/route-types/per-module-writer.d.ts +0 -18
  976. package/dist/types.backup/build/route-types/router-processing.d.ts +0 -82
  977. package/dist/types.backup/build/route-types/scan-filter.d.ts +0 -17
  978. package/dist/types.backup/build/route-types/source-scan.d.ts +0 -13
  979. package/dist/types.backup/build/runtime-discovery.d.ts +0 -24
  980. package/dist/types.backup/cache/background-task.d.ts +0 -21
  981. package/dist/types.backup/cache/cache-error.d.ts +0 -71
  982. package/dist/types.backup/cache/cache-key-utils.d.ts +0 -35
  983. package/dist/types.backup/cache/cache-policy.d.ts +0 -59
  984. package/dist/types.backup/cache/cache-runtime.d.ts +0 -51
  985. package/dist/types.backup/cache/cache-scope.d.ts +0 -134
  986. package/dist/types.backup/cache/cache-tag.d.ts +0 -79
  987. package/dist/types.backup/cache/cf/cf-base64.d.ts +0 -4
  988. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +0 -105
  989. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +0 -481
  990. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +0 -300
  991. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +0 -22
  992. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +0 -15
  993. package/dist/types.backup/cache/cf/index.d.ts +0 -3
  994. package/dist/types.backup/cache/document-cache.d.ts +0 -69
  995. package/dist/types.backup/cache/handle-capture.d.ts +0 -23
  996. package/dist/types.backup/cache/handle-snapshot.d.ts +0 -39
  997. package/dist/types.backup/cache/index.d.ts +0 -7
  998. package/dist/types.backup/cache/memory-segment-store.d.ts +0 -163
  999. package/dist/types.backup/cache/profile-registry.d.ts +0 -40
  1000. package/dist/types.backup/cache/read-through-swr.d.ts +0 -60
  1001. package/dist/types.backup/cache/segment-codec.d.ts +0 -78
  1002. package/dist/types.backup/cache/shell-snapshot.d.ts +0 -162
  1003. package/dist/types.backup/cache/tag-invalidation.d.ts +0 -74
  1004. package/dist/types.backup/cache/taint.d.ts +0 -71
  1005. package/dist/types.backup/cache/types.d.ts +0 -407
  1006. package/dist/types.backup/cache/vercel/index.d.ts +0 -1
  1007. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +0 -267
  1008. package/dist/types.backup/client.d.ts +0 -184
  1009. package/dist/types.backup/client.rsc.d.ts +0 -39
  1010. package/dist/types.backup/cloudflare/index.d.ts +0 -7
  1011. package/dist/types.backup/cloudflare/tracing.d.ts +0 -53
  1012. package/dist/types.backup/component-utils.d.ts +0 -46
  1013. package/dist/types.backup/components/DefaultDocument.d.ts +0 -13
  1014. package/dist/types.backup/context-var.d.ts +0 -84
  1015. package/dist/types.backup/debug.d.ts +0 -57
  1016. package/dist/types.backup/decode-loader-results.d.ts +0 -5
  1017. package/dist/types.backup/default-error-boundary.d.ts +0 -10
  1018. package/dist/types.backup/defer.d.ts +0 -89
  1019. package/dist/types.backup/deps/browser.d.ts +0 -1
  1020. package/dist/types.backup/deps/html-stream-client.d.ts +0 -1
  1021. package/dist/types.backup/deps/html-stream-server.d.ts +0 -1
  1022. package/dist/types.backup/deps/rsc.d.ts +0 -1
  1023. package/dist/types.backup/deps/ssr.d.ts +0 -1
  1024. package/dist/types.backup/encode-kv.d.ts +0 -35
  1025. package/dist/types.backup/errors.d.ts +0 -226
  1026. package/dist/types.backup/escape-script.d.ts +0 -44
  1027. package/dist/types.backup/handle.d.ts +0 -93
  1028. package/dist/types.backup/handles/MetaTags.d.ts +0 -17
  1029. package/dist/types.backup/handles/Scripts.d.ts +0 -38
  1030. package/dist/types.backup/handles/breadcrumbs.d.ts +0 -43
  1031. package/dist/types.backup/handles/deferred-resolution.d.ts +0 -53
  1032. package/dist/types.backup/handles/is-thenable.d.ts +0 -12
  1033. package/dist/types.backup/handles/meta.d.ts +0 -43
  1034. package/dist/types.backup/handles/script.d.ts +0 -139
  1035. package/dist/types.backup/host/cookie-handler.d.ts +0 -8
  1036. package/dist/types.backup/host/errors.d.ts +0 -40
  1037. package/dist/types.backup/host/index.d.ts +0 -33
  1038. package/dist/types.backup/host/pattern-matcher.d.ts +0 -30
  1039. package/dist/types.backup/host/router.d.ts +0 -12
  1040. package/dist/types.backup/host/testing.d.ts +0 -41
  1041. package/dist/types.backup/host/types.d.ts +0 -148
  1042. package/dist/types.backup/host/utils.d.ts +0 -20
  1043. package/dist/types.backup/href-client.d.ts +0 -214
  1044. package/dist/types.backup/index.d.ts +0 -112
  1045. package/dist/types.backup/index.rsc.d.ts +0 -51
  1046. package/dist/types.backup/internal-debug.d.ts +0 -1
  1047. package/dist/types.backup/loader-store.d.ts +0 -193
  1048. package/dist/types.backup/loader.d.ts +0 -18
  1049. package/dist/types.backup/loader.rsc.d.ts +0 -18
  1050. package/dist/types.backup/missing-id-error.d.ts +0 -1
  1051. package/dist/types.backup/outlet-context.d.ts +0 -12
  1052. package/dist/types.backup/outlet-provider.d.ts +0 -12
  1053. package/dist/types.backup/prerender/build-shell-capture.d.ts +0 -104
  1054. package/dist/types.backup/prerender/param-hash.d.ts +0 -6
  1055. package/dist/types.backup/prerender/shell-manifest-key.d.ts +0 -18
  1056. package/dist/types.backup/prerender/store.d.ts +0 -62
  1057. package/dist/types.backup/prerender.d.ts +0 -292
  1058. package/dist/types.backup/redirect-origin.d.ts +0 -55
  1059. package/dist/types.backup/regex-escape.d.ts +0 -6
  1060. package/dist/types.backup/render-error-thrower.d.ts +0 -13
  1061. package/dist/types.backup/response-utils.d.ts +0 -35
  1062. package/dist/types.backup/reverse.d.ts +0 -206
  1063. package/dist/types.backup/root-error-boundary.d.ts +0 -32
  1064. package/dist/types.backup/route-content-wrapper.d.ts +0 -40
  1065. package/dist/types.backup/route-definition/dsl-helpers.d.ts +0 -130
  1066. package/dist/types.backup/route-definition/helper-factories.d.ts +0 -22
  1067. package/dist/types.backup/route-definition/helpers-types.d.ts +0 -392
  1068. package/dist/types.backup/route-definition/index.d.ts +0 -7
  1069. package/dist/types.backup/route-definition/redirect.d.ts +0 -48
  1070. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +0 -19
  1071. package/dist/types.backup/route-definition/use-item-types.d.ts +0 -1
  1072. package/dist/types.backup/route-definition.d.ts +0 -1
  1073. package/dist/types.backup/route-map-builder.d.ts +0 -127
  1074. package/dist/types.backup/route-name.d.ts +0 -27
  1075. package/dist/types.backup/route-types.d.ts +0 -172
  1076. package/dist/types.backup/router/basename.d.ts +0 -10
  1077. package/dist/types.backup/router/content-negotiation.d.ts +0 -91
  1078. package/dist/types.backup/router/debug-manifest.d.ts +0 -7
  1079. package/dist/types.backup/router/error-handling.d.ts +0 -76
  1080. package/dist/types.backup/router/find-match.d.ts +0 -19
  1081. package/dist/types.backup/router/handler-context.d.ts +0 -41
  1082. package/dist/types.backup/router/instrument.d.ts +0 -161
  1083. package/dist/types.backup/router/intercept-resolution.d.ts +0 -79
  1084. package/dist/types.backup/router/lazy-includes.d.ts +0 -26
  1085. package/dist/types.backup/router/loader-resolution.d.ts +0 -63
  1086. package/dist/types.backup/router/logging.d.ts +0 -41
  1087. package/dist/types.backup/router/manifest.d.ts +0 -8
  1088. package/dist/types.backup/router/match-api.d.ts +0 -19
  1089. package/dist/types.backup/router/match-context.d.ts +0 -184
  1090. package/dist/types.backup/router/match-handlers.d.ts +0 -49
  1091. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +0 -113
  1092. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +0 -113
  1093. package/dist/types.backup/router/match-middleware/cache-store.d.ts +0 -112
  1094. package/dist/types.backup/router/match-middleware/index.d.ts +0 -80
  1095. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +0 -116
  1096. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +0 -94
  1097. package/dist/types.backup/router/match-pipelines.d.ts +0 -103
  1098. package/dist/types.backup/router/match-result.d.ts +0 -114
  1099. package/dist/types.backup/router/metrics.d.ts +0 -6
  1100. package/dist/types.backup/router/middleware-types.d.ts +0 -74
  1101. package/dist/types.backup/router/middleware.d.ts +0 -116
  1102. package/dist/types.backup/router/navigation-snapshot.d.ts +0 -22
  1103. package/dist/types.backup/router/params-util.d.ts +0 -8
  1104. package/dist/types.backup/router/parse-pattern.d.ts +0 -38
  1105. package/dist/types.backup/router/pattern-matching.d.ts +0 -169
  1106. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +0 -27
  1107. package/dist/types.backup/router/prefetch-limits.d.ts +0 -20
  1108. package/dist/types.backup/router/prerender-match.d.ts +0 -50
  1109. package/dist/types.backup/router/preview-match.d.ts +0 -22
  1110. package/dist/types.backup/router/request-classification.d.ts +0 -104
  1111. package/dist/types.backup/router/revalidation.d.ts +0 -57
  1112. package/dist/types.backup/router/route-snapshot.d.ts +0 -112
  1113. package/dist/types.backup/router/router-context.d.ts +0 -137
  1114. package/dist/types.backup/router/router-interfaces.d.ts +0 -432
  1115. package/dist/types.backup/router/router-options.d.ts +0 -738
  1116. package/dist/types.backup/router/router-registry.d.ts +0 -15
  1117. package/dist/types.backup/router/segment-resolution/fresh.d.ts +0 -55
  1118. package/dist/types.backup/router/segment-resolution/helpers.d.ts +0 -93
  1119. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +0 -33
  1120. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +0 -44
  1121. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +0 -90
  1122. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +0 -53
  1123. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +0 -85
  1124. package/dist/types.backup/router/segment-resolution/static-store.d.ts +0 -17
  1125. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +0 -16
  1126. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +0 -28
  1127. package/dist/types.backup/router/segment-resolution.d.ts +0 -3
  1128. package/dist/types.backup/router/segment-wrappers.d.ts +0 -53
  1129. package/dist/types.backup/router/state-cookie-name.d.ts +0 -1
  1130. package/dist/types.backup/router/substitute-pattern-params.d.ts +0 -23
  1131. package/dist/types.backup/router/telemetry-otel.d.ts +0 -113
  1132. package/dist/types.backup/router/telemetry.d.ts +0 -215
  1133. package/dist/types.backup/router/timeout.d.ts +0 -68
  1134. package/dist/types.backup/router/tracing.d.ts +0 -125
  1135. package/dist/types.backup/router/trie-matching.d.ts +0 -32
  1136. package/dist/types.backup/router/types.d.ts +0 -98
  1137. package/dist/types.backup/router/url-params.d.ts +0 -26
  1138. package/dist/types.backup/router.d.ts +0 -7
  1139. package/dist/types.backup/rsc/capture-queue.d.ts +0 -6
  1140. package/dist/types.backup/rsc/full-payload.d.ts +0 -22
  1141. package/dist/types.backup/rsc/handler-context.d.ts +0 -31
  1142. package/dist/types.backup/rsc/handler.d.ts +0 -9
  1143. package/dist/types.backup/rsc/helpers.d.ts +0 -213
  1144. package/dist/types.backup/rsc/index.d.ts +0 -17
  1145. package/dist/types.backup/rsc/json-route-result.d.ts +0 -20
  1146. package/dist/types.backup/rsc/loader-fetch.d.ts +0 -14
  1147. package/dist/types.backup/rsc/manifest-init.d.ts +0 -18
  1148. package/dist/types.backup/rsc/nonce.d.ts +0 -28
  1149. package/dist/types.backup/rsc/origin-guard.d.ts +0 -50
  1150. package/dist/types.backup/rsc/progressive-enhancement.d.ts +0 -19
  1151. package/dist/types.backup/rsc/redirect-guard.d.ts +0 -35
  1152. package/dist/types.backup/rsc/response-cache-serve.d.ts +0 -46
  1153. package/dist/types.backup/rsc/response-error.d.ts +0 -19
  1154. package/dist/types.backup/rsc/response-route-handler.d.ts +0 -29
  1155. package/dist/types.backup/rsc/rsc-rendering.d.ts +0 -23
  1156. package/dist/types.backup/rsc/runtime-warnings.d.ts +0 -22
  1157. package/dist/types.backup/rsc/server-action.d.ts +0 -68
  1158. package/dist/types.backup/rsc/shell-build-manifest.d.ts +0 -84
  1159. package/dist/types.backup/rsc/shell-capture-constants.d.ts +0 -27
  1160. package/dist/types.backup/rsc/shell-capture.d.ts +0 -374
  1161. package/dist/types.backup/rsc/shell-serve.d.ts +0 -136
  1162. package/dist/types.backup/rsc/ssr-setup.d.ts +0 -48
  1163. package/dist/types.backup/rsc/transition-gate.d.ts +0 -27
  1164. package/dist/types.backup/rsc/types.d.ts +0 -290
  1165. package/dist/types.backup/runtime-env.d.ts +0 -1
  1166. package/dist/types.backup/search-params.d.ts +0 -125
  1167. package/dist/types.backup/segment-content-promise.d.ts +0 -13
  1168. package/dist/types.backup/segment-fragments.d.ts +0 -56
  1169. package/dist/types.backup/segment-loader-promise.d.ts +0 -22
  1170. package/dist/types.backup/segment-system.d.ts +0 -84
  1171. package/dist/types.backup/serialize.d.ts +0 -164
  1172. package/dist/types.backup/server/context.d.ts +0 -494
  1173. package/dist/types.backup/server/cookie-parse.d.ts +0 -10
  1174. package/dist/types.backup/server/cookie-store.d.ts +0 -107
  1175. package/dist/types.backup/server/fetchable-loader-store.d.ts +0 -20
  1176. package/dist/types.backup/server/handle-store.d.ts +0 -100
  1177. package/dist/types.backup/server/loader-registry.d.ts +0 -32
  1178. package/dist/types.backup/server/request-context.d.ts +0 -596
  1179. package/dist/types.backup/server/root-layout.d.ts +0 -3
  1180. package/dist/types.backup/server.d.ts +0 -15
  1181. package/dist/types.backup/ssr/index.d.ts +0 -233
  1182. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +0 -3
  1183. package/dist/types.backup/ssr/preinit-client-references.d.ts +0 -71
  1184. package/dist/types.backup/ssr/ssr-root.d.ts +0 -69
  1185. package/dist/types.backup/static-handler.d.ts +0 -57
  1186. package/dist/types.backup/testing/cache-status.d.ts +0 -63
  1187. package/dist/types.backup/testing/collect-handle.d.ts +0 -20
  1188. package/dist/types.backup/testing/dispatch.d.ts +0 -123
  1189. package/dist/types.backup/testing/dom.entry.d.ts +0 -15
  1190. package/dist/types.backup/testing/e2e/fixture.d.ts +0 -37
  1191. package/dist/types.backup/testing/e2e/index.d.ts +0 -30
  1192. package/dist/types.backup/testing/e2e/matchers.d.ts +0 -17
  1193. package/dist/types.backup/testing/e2e/page-helpers.d.ts +0 -62
  1194. package/dist/types.backup/testing/e2e/parity.d.ts +0 -111
  1195. package/dist/types.backup/testing/e2e/server.d.ts +0 -35
  1196. package/dist/types.backup/testing/flight-matchers.d.ts +0 -55
  1197. package/dist/types.backup/testing/flight-normalize.d.ts +0 -1
  1198. package/dist/types.backup/testing/flight-tree.d.ts +0 -192
  1199. package/dist/types.backup/testing/flight.d.ts +0 -115
  1200. package/dist/types.backup/testing/flight.entry.d.ts +0 -27
  1201. package/dist/types.backup/testing/generated-routes.d.ts +0 -66
  1202. package/dist/types.backup/testing/index.d.ts +0 -52
  1203. package/dist/types.backup/testing/internal/context.d.ts +0 -225
  1204. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +0 -1
  1205. package/dist/types.backup/testing/internal/seed-vars.d.ts +0 -30
  1206. package/dist/types.backup/testing/render-handler.d.ts +0 -160
  1207. package/dist/types.backup/testing/render-route.d.ts +0 -246
  1208. package/dist/types.backup/testing/run-loader.d.ts +0 -186
  1209. package/dist/types.backup/testing/run-middleware.d.ts +0 -132
  1210. package/dist/types.backup/testing/run-transition-when.d.ts +0 -77
  1211. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +0 -6
  1212. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +0 -13
  1213. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +0 -7
  1214. package/dist/types.backup/testing/vitest-stubs/version.d.ts +0 -1
  1215. package/dist/types.backup/testing/vitest.d.ts +0 -205
  1216. package/dist/types.backup/theme/ThemeProvider.d.ts +0 -13
  1217. package/dist/types.backup/theme/ThemeScript.d.ts +0 -45
  1218. package/dist/types.backup/theme/constants.d.ts +0 -39
  1219. package/dist/types.backup/theme/index.d.ts +0 -29
  1220. package/dist/types.backup/theme/theme-context.d.ts +0 -21
  1221. package/dist/types.backup/theme/theme-script.d.ts +0 -26
  1222. package/dist/types.backup/theme/types.d.ts +0 -162
  1223. package/dist/types.backup/theme/use-theme.d.ts +0 -8
  1224. package/dist/types.backup/types/boundaries.d.ts +0 -93
  1225. package/dist/types.backup/types/cache-types.d.ts +0 -191
  1226. package/dist/types.backup/types/error-types.d.ts +0 -114
  1227. package/dist/types.backup/types/global-namespace.d.ts +0 -90
  1228. package/dist/types.backup/types/handler-context.d.ts +0 -658
  1229. package/dist/types.backup/types/index.d.ts +0 -11
  1230. package/dist/types.backup/types/loader-types.d.ts +0 -182
  1231. package/dist/types.backup/types/request-scope.d.ts +0 -93
  1232. package/dist/types.backup/types/route-config.d.ts +0 -105
  1233. package/dist/types.backup/types/route-entry.d.ts +0 -95
  1234. package/dist/types.backup/types/segments.d.ts +0 -234
  1235. package/dist/types.backup/types.d.ts +0 -1
  1236. package/dist/types.backup/urls/include-helper.d.ts +0 -17
  1237. package/dist/types.backup/urls/include-provider.d.ts +0 -27
  1238. package/dist/types.backup/urls/index.d.ts +0 -6
  1239. package/dist/types.backup/urls/path-helper-types.d.ts +0 -197
  1240. package/dist/types.backup/urls/path-helper.d.ts +0 -12
  1241. package/dist/types.backup/urls/pattern-types.d.ts +0 -166
  1242. package/dist/types.backup/urls/response-types.d.ts +0 -67
  1243. package/dist/types.backup/urls/type-extraction.d.ts +0 -157
  1244. package/dist/types.backup/urls/urls-function.d.ts +0 -24
  1245. package/dist/types.backup/urls.d.ts +0 -1
  1246. package/dist/types.backup/use-loader.d.ts +0 -150
  1247. package/dist/types.backup/vercel/index.d.ts +0 -10
  1248. package/dist/types.backup/vercel/tracing.d.ts +0 -70
  1249. package/dist/types.backup/vite/debug.d.ts +0 -80
  1250. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +0 -12
  1251. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +0 -65
  1252. package/dist/types.backup/vite/discovery/discover-routers.d.ts +0 -17
  1253. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +0 -113
  1254. package/dist/types.backup/vite/discovery/gate-state.d.ts +0 -79
  1255. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +0 -24
  1256. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +0 -32
  1257. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +0 -22
  1258. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +0 -40
  1259. package/dist/types.backup/vite/discovery/state.d.ts +0 -162
  1260. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +0 -15
  1261. package/dist/types.backup/vite/index.d.ts +0 -11
  1262. package/dist/types.backup/vite/inject-client-debug.d.ts +0 -56
  1263. package/dist/types.backup/vite/plugin-types.d.ts +0 -298
  1264. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +0 -6
  1265. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +0 -40
  1266. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +0 -35
  1267. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +0 -64
  1268. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +0 -18
  1269. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +0 -37
  1270. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +0 -19
  1271. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +0 -10
  1272. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +0 -8
  1273. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +0 -13
  1274. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +0 -29
  1275. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +0 -6
  1276. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +0 -25
  1277. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +0 -20
  1278. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +0 -20
  1279. package/dist/types.backup/vite/plugins/vercel-output.d.ts +0 -85
  1280. package/dist/types.backup/vite/plugins/version-injector.d.ts +0 -21
  1281. package/dist/types.backup/vite/plugins/version-plugin.d.ts +0 -19
  1282. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +0 -36
  1283. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +0 -7
  1284. package/dist/types.backup/vite/rango.d.ts +0 -29
  1285. package/dist/types.backup/vite/router-discovery.d.ts +0 -23
  1286. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +0 -64
  1287. package/dist/types.backup/vite/utils/banner.d.ts +0 -2
  1288. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +0 -28
  1289. package/dist/types.backup/vite/utils/client-chunks.d.ts +0 -55
  1290. package/dist/types.backup/vite/utils/directive-prologue.d.ts +0 -16
  1291. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +0 -37
  1292. package/dist/types.backup/vite/utils/manifest-utils.d.ts +0 -7
  1293. package/dist/types.backup/vite/utils/package-resolution.d.ts +0 -6
  1294. package/dist/types.backup/vite/utils/prerender-utils.d.ts +0 -32
  1295. package/dist/types.backup/vite/utils/shared-utils.d.ts +0 -55
@@ -0,0 +1,886 @@
1
+ import { parseAst } from "vite";
2
+ import MagicString from "magic-string";
3
+ import path from "node:path";
4
+ import { createHash } from "node:crypto";
5
+ import { normalizePath, hashId, detectImports, findMatchingParen, countArgs, findStatementEnd, buildExportMap, } from "./expose-id-utils.ts";
6
+ import { transformInlineHandlers, } from "./ast-handler-extract.ts";
7
+ // ---------------------------------------------------------------------------
8
+ // Virtual module for loader manifest
9
+ // ---------------------------------------------------------------------------
10
+ const VIRTUAL_LOADER_MANIFEST = "virtual:rsc-router/loader-manifest";
11
+ const RESOLVED_VIRTUAL_LOADER_MANIFEST = "\0" + VIRTUAL_LOADER_MANIFEST;
12
+ // ---------------------------------------------------------------------------
13
+ // Virtual module prefix for extracted inline handlers
14
+ // ---------------------------------------------------------------------------
15
+ const VIRTUAL_HANDLER_PREFIX = "virtual:handler-extract:";
16
+ const PRERENDER_CONFIG = {
17
+ fnName: "Prerender",
18
+ brand: "prerenderHandler",
19
+ };
20
+ const STATIC_CONFIG = {
21
+ fnName: "Static",
22
+ brand: "staticHandler",
23
+ };
24
+ const STRICT_CREATE_CONFIGS = [
25
+ { fnName: "createLoader" },
26
+ { fnName: "createHandle" },
27
+ { fnName: "createLocationState" },
28
+ ];
29
+ function escapeRegExp(input) {
30
+ return input.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
31
+ }
32
+ /**
33
+ * Check whether every non-type export in `code` is accounted for by the given
34
+ * bindings. Returns false if any export exists that is not one of the known
35
+ * create* call locals/exports, allowing callers to bail out for mixed-export
36
+ * files.
37
+ */
38
+ function isExportOnlyFile(code, bindings) {
39
+ if (bindings.length === 0)
40
+ return false;
41
+ const knownLocals = new Set();
42
+ const knownExports = new Set();
43
+ for (const b of bindings) {
44
+ knownLocals.add(b.localName);
45
+ for (const e of b.exportNames)
46
+ knownExports.add(e);
47
+ }
48
+ // Bail on star re-exports (unknown exports)
49
+ if (/export\s*\*/.test(code))
50
+ return false;
51
+ // Check `export const/let/var/function/class/default X` declarations
52
+ const declExportPattern = /export\s+(const|let|var|function|class|default)\s+(\w+)/g;
53
+ let match;
54
+ while ((match = declExportPattern.exec(code)) !== null) {
55
+ if (!knownExports.has(match[2]))
56
+ return false;
57
+ }
58
+ // Check `export { X }` and `export { X as Y }` specifiers: the local name
59
+ // must reference a known create* binding.
60
+ const specExportPattern = /export\s*\{([^}]+)\}/g;
61
+ while ((match = specExportPattern.exec(code)) !== null) {
62
+ const specifiers = match[1]
63
+ .split(",")
64
+ .map((s) => s.trim())
65
+ .filter(Boolean);
66
+ for (const spec of specifiers) {
67
+ const m = spec.match(/^([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/);
68
+ if (!m)
69
+ continue;
70
+ const local = m[1];
71
+ if (!knownLocals.has(local))
72
+ return false;
73
+ }
74
+ }
75
+ return true;
76
+ }
77
+ // NOTE: This regex may over-count when the fn name appears inside strings or
78
+ // comments, but it's only used for the warning heuristic (totalCalls >
79
+ // supportedBindings) and the inline-extraction pre-check, so over-counting
80
+ // triggers a harmless extra AST parse rather than affecting correctness.
81
+ function countCreateCallsForNames(code, fnNames) {
82
+ const pattern = new RegExp(`\\b(?:${fnNames.map(escapeRegExp).join("|")})\\s*(?:<[^>]*>\\s*)?\\(`, "g");
83
+ return (code.match(pattern) || []).length;
84
+ }
85
+ function getImportedFnNames(code, importedName) {
86
+ const importPattern = /import\s*\{([^}]*)\}\s*from\s*["']@rangojs\/router(?:\/[^"']*)?["']/g;
87
+ const localNames = new Set();
88
+ let match;
89
+ while ((match = importPattern.exec(code)) !== null) {
90
+ const specList = match[1]
91
+ .split(",")
92
+ .map((s) => s.trim())
93
+ .filter(Boolean);
94
+ for (const spec of specList) {
95
+ const m = spec.match(/^([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/);
96
+ if (!m)
97
+ continue;
98
+ const imported = m[1];
99
+ const local = m[2] || imported;
100
+ if (imported === importedName) {
101
+ localNames.add(local);
102
+ }
103
+ }
104
+ }
105
+ const names = Array.from(localNames);
106
+ return names.length > 0 ? names : [importedName];
107
+ }
108
+ function getCalledIdentifierFromCall(callExpr) {
109
+ const callee = callExpr?.callee;
110
+ if (callee?.type === "Identifier")
111
+ return callee.name;
112
+ if (callee?.type === "TSInstantiationExpression" &&
113
+ callee.expression?.type === "Identifier") {
114
+ return callee.expression.name;
115
+ }
116
+ return null;
117
+ }
118
+ function collectCreateExportBindingsFallback(code, fnNames) {
119
+ const alternation = fnNames.map(escapeRegExp).join("|");
120
+ const exportConstPattern = new RegExp(`export\\s+const\\s+(\\w+)\\s*=\\s*(?:${alternation})\\s*(?:<[^>]*>)?\\s*\\(`, "g");
121
+ const localDeclPattern = new RegExp(`\\bconst\\s+(\\w+)\\s*=\\s*((?:${alternation})\\s*(?:<[^>]*>)?\\s*\\()`, "g");
122
+ const exportSpecPattern = /export\s*\{([^}]+)\}/g;
123
+ const exportMap = new Map();
124
+ const pushExport = (local, exported) => {
125
+ const list = exportMap.get(local);
126
+ if (list) {
127
+ if (!list.includes(exported))
128
+ list.push(exported);
129
+ return;
130
+ }
131
+ exportMap.set(local, [exported]);
132
+ };
133
+ let match;
134
+ while ((match = exportConstPattern.exec(code)) !== null) {
135
+ pushExport(match[1], match[1]);
136
+ }
137
+ while ((match = exportSpecPattern.exec(code)) !== null) {
138
+ const specifiers = match[1]
139
+ .split(",")
140
+ .map((s) => s.trim())
141
+ .filter(Boolean);
142
+ for (const specifier of specifiers) {
143
+ const specMatch = specifier.match(/^([A-Za-z_$][\w$]*)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/);
144
+ if (!specMatch)
145
+ continue;
146
+ const local = specMatch[1];
147
+ const exported = specMatch[2] || local;
148
+ pushExport(local, exported);
149
+ }
150
+ }
151
+ const bindings = [];
152
+ while ((match = localDeclPattern.exec(code)) !== null) {
153
+ const localName = match[1];
154
+ const exportNames = exportMap.get(localName) ?? [];
155
+ if (exportNames.length === 0)
156
+ continue;
157
+ const openParenPos = match.index + match[0].length - 1;
158
+ const closeParenPos = findMatchingParen(code, openParenPos + 1) - 1;
159
+ if (closeParenPos <= openParenPos)
160
+ continue;
161
+ bindings.push({
162
+ localName,
163
+ exportNames,
164
+ callExprStart: match.index + match[0].length - match[2].length,
165
+ callOpenParenPos: openParenPos,
166
+ callCloseParenPos: closeParenPos,
167
+ argCount: countArgs(code, openParenPos + 1, closeParenPos),
168
+ statementEnd: findStatementEnd(code, closeParenPos + 1),
169
+ });
170
+ }
171
+ return bindings;
172
+ }
173
+ function collectCreateExportBindings(code, fnNames, program) {
174
+ if (!program) {
175
+ try {
176
+ program = parseAst(code, { jsx: true });
177
+ }
178
+ catch {
179
+ return collectCreateExportBindingsFallback(code, fnNames);
180
+ }
181
+ }
182
+ const exportMap = buildExportMap(program);
183
+ const fnNameSet = new Set(fnNames);
184
+ const bindings = [];
185
+ const collectFromVarDecl = (varDecl, statementEnd) => {
186
+ if (varDecl?.type !== "VariableDeclaration" || varDecl.kind !== "const") {
187
+ return;
188
+ }
189
+ for (const decl of varDecl.declarations ?? []) {
190
+ const calledIdentifier = getCalledIdentifierFromCall(decl?.init);
191
+ if (decl?.id?.type !== "Identifier" ||
192
+ decl?.init?.type !== "CallExpression" ||
193
+ !calledIdentifier ||
194
+ !fnNameSet.has(calledIdentifier)) {
195
+ continue;
196
+ }
197
+ const localName = decl.id.name;
198
+ const exportNames = exportMap.get(localName) ?? [];
199
+ if (exportNames.length === 0)
200
+ continue;
201
+ const callStart = decl.init.start;
202
+ const callEnd = decl.init.end;
203
+ const calleeEnd = decl.init.callee.end;
204
+ let openParenPos = -1;
205
+ for (let i = calleeEnd; i < callEnd; i++) {
206
+ if (code[i] === "(") {
207
+ openParenPos = i;
208
+ break;
209
+ }
210
+ }
211
+ if (openParenPos === -1)
212
+ continue;
213
+ const closeParenPos = findMatchingParen(code, openParenPos + 1) - 1;
214
+ if (closeParenPos <= openParenPos)
215
+ continue;
216
+ bindings.push({
217
+ localName,
218
+ exportNames,
219
+ callExprStart: decl.init.start,
220
+ callOpenParenPos: openParenPos,
221
+ callCloseParenPos: closeParenPos,
222
+ argCount: decl.init.arguments?.length ?? 0,
223
+ statementEnd,
224
+ });
225
+ }
226
+ };
227
+ for (const node of program.body ?? []) {
228
+ if (node?.type === "VariableDeclaration") {
229
+ collectFromVarDecl(node, node.end);
230
+ continue;
231
+ }
232
+ if (node?.type === "ExportNamedDeclaration" &&
233
+ node.declaration?.type === "VariableDeclaration") {
234
+ collectFromVarDecl(node.declaration, node.end);
235
+ }
236
+ }
237
+ return bindings;
238
+ }
239
+ function buildUnsupportedShapeWarning(filePath, fnName) {
240
+ return [
241
+ `[rsc-router] Unsupported ${fnName} shape in "${filePath}".`,
242
+ `Supported shapes are:`,
243
+ ` - export const X = ${fnName}(...)`,
244
+ ` - const X = ${fnName}(...); export { X }`,
245
+ ` - const X = ${fnName}(...); export { X as Y }`,
246
+ `Potentially unsupported forms include:`,
247
+ ` - export let/var X = ${fnName}(...)`,
248
+ ` - inline ${fnName}(...) calls`,
249
+ ].join("\n");
250
+ }
251
+ // ---------------------------------------------------------------------------
252
+ // Loader helpers
253
+ // ---------------------------------------------------------------------------
254
+ function hasCreateLoaderImport(code) {
255
+ return /import\s*\{[^}]*\bcreateLoader\b[^}]*\}\s*from\s*["']@rangojs\/router(?:\/server)?["']/.test(code);
256
+ }
257
+ /**
258
+ * Generate lightweight client stubs for loader files.
259
+ *
260
+ * When a loader file is imported from a client component (e.g., for useLoader()),
261
+ * the client only needs { __brand: "loader", $$id: "..." } objects.
262
+ * This function replaces the entire file contents with just those stub exports,
263
+ * preventing server-only data (constants, DB queries, etc.) from leaking into
264
+ * the client bundle.
265
+ *
266
+ * Only applies when ALL named exports are createLoader() calls (plus type exports
267
+ * which are erased at compile time). Files with mixed exports are left untouched.
268
+ */
269
+ function generateClientLoaderStubs(bindings, code, filePath, isBuild) {
270
+ if (!isExportOnlyFile(code, bindings))
271
+ return null;
272
+ const exportNames = bindings.flatMap((b) => b.exportNames);
273
+ const stubs = exportNames.map((name) => {
274
+ const loaderId = isBuild
275
+ ? hashId(filePath, name)
276
+ : `${filePath}#${name}`;
277
+ return `export const ${name} = { __brand: "loader", $$id: "${loaderId}" };`;
278
+ });
279
+ return { code: stubs.join("\n") + "\n" };
280
+ }
281
+ function transformLoaders(bindings, s, filePath, isBuild) {
282
+ let hasChanges = false;
283
+ for (const binding of bindings) {
284
+ const exportName = binding.exportNames[0];
285
+ const loaderId = isBuild
286
+ ? hashId(filePath, exportName)
287
+ : `${filePath}#${exportName}`;
288
+ // Inject $$id as hidden third parameter.
289
+ // createLoader(fn) -> createLoader(fn, undefined, "id")
290
+ // createLoader(fn, true) -> createLoader(fn, true, "id")
291
+ const paramInjection = binding.argCount === 1
292
+ ? `, undefined, "${loaderId}"`
293
+ : `, "${loaderId}"`;
294
+ s.appendLeft(binding.callCloseParenPos, paramInjection);
295
+ const propInjection = `\n${binding.localName}.$$id = "${loaderId}";`;
296
+ s.appendRight(binding.statementEnd, propInjection);
297
+ hasChanges = true;
298
+ }
299
+ return hasChanges;
300
+ }
301
+ // ---------------------------------------------------------------------------
302
+ // Handle helpers
303
+ // ---------------------------------------------------------------------------
304
+ function analyzeCreateHandleArgs(code, startPos, endPos) {
305
+ const content = code.slice(startPos, endPos).trim();
306
+ return { hasArgs: content.length > 0 };
307
+ }
308
+ function transformHandles(bindings, s, code, filePath, isBuild) {
309
+ let hasChanges = false;
310
+ for (const binding of bindings) {
311
+ const exportName = binding.exportNames[0];
312
+ const args = analyzeCreateHandleArgs(code, binding.callOpenParenPos + 1, binding.callCloseParenPos);
313
+ const handleId = isBuild
314
+ ? hashId(filePath, exportName)
315
+ : `${filePath}#${exportName}`;
316
+ let paramInjection;
317
+ if (!args.hasArgs) {
318
+ paramInjection = `undefined, "${handleId}"`;
319
+ }
320
+ else {
321
+ paramInjection = `, "${handleId}"`;
322
+ }
323
+ s.appendLeft(binding.callCloseParenPos, paramInjection);
324
+ const propInjection = `\n${binding.localName}.$$id = "${handleId}";`;
325
+ s.appendRight(binding.statementEnd, propInjection);
326
+ hasChanges = true;
327
+ }
328
+ return hasChanges;
329
+ }
330
+ // ---------------------------------------------------------------------------
331
+ // LocationState helpers
332
+ // ---------------------------------------------------------------------------
333
+ function transformLocationState(bindings, s, filePath, isBuild) {
334
+ let hasChanges = false;
335
+ for (const binding of bindings) {
336
+ if (binding.argCount > 0)
337
+ continue; // Already has a key, skip
338
+ const exportName = binding.exportNames[0];
339
+ const stateKey = isBuild
340
+ ? hashId(filePath, exportName)
341
+ : `${filePath}#${exportName}`;
342
+ s.appendLeft(binding.callCloseParenPos, `"${stateKey}"`);
343
+ const propInjection = `\n${binding.localName}.__rsc_ls_key = "__rsc_ls_${stateKey}";`;
344
+ s.appendRight(binding.statementEnd, propInjection);
345
+ hasChanges = true;
346
+ }
347
+ return hasChanges;
348
+ }
349
+ // ---------------------------------------------------------------------------
350
+ // Parameterized handler helpers (prerender + static)
351
+ // ---------------------------------------------------------------------------
352
+ /**
353
+ * Replace the entire file with lightweight stubs when ALL non-type exports are
354
+ * handler calls of the given type. Returns null for files with mixed exports.
355
+ */
356
+ function generateWholeFileStubs(cfg, bindings, code, filePath, isBuild) {
357
+ if (!isExportOnlyFile(code, bindings))
358
+ return null;
359
+ const exportNames = bindings.flatMap((b) => b.exportNames);
360
+ const stubs = exportNames.map((name) => {
361
+ const handlerId = isBuild
362
+ ? hashId(filePath, name)
363
+ : `${filePath}#${name}`;
364
+ return `export const ${name} = { __brand: "${cfg.brand}", $$id: "${handlerId}" };`;
365
+ });
366
+ return { code: stubs.join("\n") + "\n", map: null };
367
+ }
368
+ /**
369
+ * Replace handler call expressions with lightweight stub objects in non-RSC
370
+ * environments. Other exports, imports, and module-level code remain untouched.
371
+ */
372
+ function generateExprStubs(cfg, bindings, code, filePath, sourceId, isBuild) {
373
+ if (bindings.length === 0)
374
+ return null;
375
+ const s = new MagicString(code);
376
+ let hasChanges = false;
377
+ for (const binding of bindings) {
378
+ const exportName = binding.exportNames[0];
379
+ const handlerId = isBuild
380
+ ? hashId(filePath, exportName)
381
+ : `${filePath}#${exportName}`;
382
+ s.overwrite(binding.callExprStart, binding.callCloseParenPos + 1, `{ __brand: "${cfg.brand}", $$id: "${handlerId}" }`);
383
+ hasChanges = true;
384
+ }
385
+ if (!hasChanges)
386
+ return null;
387
+ return {
388
+ code: s.toString(),
389
+ map: s.generateMap({
390
+ source: sourceId,
391
+ includeContent: true,
392
+ hires: "boundary",
393
+ }),
394
+ };
395
+ }
396
+ /**
397
+ * Inject $$id into export const handler calls in RSC environments.
398
+ */
399
+ function transformHandlerIds(cfg, bindings, s, filePath, isBuild) {
400
+ let hasChanges = false;
401
+ for (const binding of bindings) {
402
+ const exportName = binding.exportNames[0];
403
+ const handlerId = isBuild
404
+ ? hashId(filePath, exportName)
405
+ : `${filePath}#${exportName}`;
406
+ // Injection strategy matches the runtime overload signatures:
407
+ // 0 args -> inject undefined, "id"
408
+ // 1 arg (handler) -> inject , undefined, "id"
409
+ // 2+ args -> inject , "id"
410
+ let paramInjection;
411
+ if (binding.argCount === 0) {
412
+ paramInjection = `undefined, "${handlerId}"`;
413
+ }
414
+ else if (binding.argCount === 1) {
415
+ paramInjection = `, undefined, "${handlerId}"`;
416
+ }
417
+ else {
418
+ paramInjection = `, "${handlerId}"`;
419
+ }
420
+ s.appendLeft(binding.callCloseParenPos, paramInjection);
421
+ const propInjection = `\n${binding.localName}.$$id = "${handlerId}";`;
422
+ s.appendRight(binding.statementEnd, propInjection);
423
+ hasChanges = true;
424
+ }
425
+ return hasChanges;
426
+ }
427
+ // ---------------------------------------------------------------------------
428
+ // Router helpers
429
+ // ---------------------------------------------------------------------------
430
+ function transformRouter(code, filePath, routerFnNames) {
431
+ const pat = new RegExp(`\\b(?:${routerFnNames.map(escapeRegExp).join("|")})\\s*(?:<[^>]*>)?\\s*\\(`, "g");
432
+ let match;
433
+ const s = new MagicString(code);
434
+ let changed = false;
435
+ // Compute the import path for the generated route names file.
436
+ // filePath is relative to project root (e.g., "src/router.tsx")
437
+ const basename = path.basename(filePath).replace(/\.(tsx?|jsx?)$/, "");
438
+ const routeNamesImport = `./${basename}.named-routes.gen.js`;
439
+ const routeNamesVar = `__rsc_rn`;
440
+ while ((match = pat.exec(code)) !== null) {
441
+ const callStart = match.index;
442
+ const parenPos = match.index + match[0].length - 1;
443
+ const afterParen = code.slice(parenPos + 1).trimStart();
444
+ // Skip if $$id is already present
445
+ if (afterParen.includes("$$id"))
446
+ continue;
447
+ // Compute line number for this call
448
+ const lineNumber = code.slice(0, callStart).split("\n").length;
449
+ const hash = createHash("sha256")
450
+ .update(`${filePath}:${lineNumber}`)
451
+ .digest("hex")
452
+ .slice(0, 8);
453
+ changed = true;
454
+ const injected = ` $$id: "${hash}", $$routeNames: ${routeNamesVar},`;
455
+ if (afterParen.startsWith("{")) {
456
+ const bracePos = code.indexOf("{", parenPos + 1);
457
+ s.appendRight(bracePos + 1, injected);
458
+ }
459
+ else if (afterParen.startsWith(")")) {
460
+ s.appendRight(parenPos + 1, `{${injected} }`);
461
+ }
462
+ }
463
+ if (!changed)
464
+ return null;
465
+ // Prepend the static import as the first line. MagicString tracks the
466
+ // offset so all downstream source maps remain correct.
467
+ s.prepend(`import { NamedRoutes as ${routeNamesVar} } from "${routeNamesImport}";\n`);
468
+ return {
469
+ code: s.toString(),
470
+ map: s.generateMap({ hires: true }),
471
+ };
472
+ }
473
+ // ---------------------------------------------------------------------------
474
+ // Router ID plugin (separate: must run at normal priority, NOT "post")
475
+ // ---------------------------------------------------------------------------
476
+ /**
477
+ * Inject stable $$id into createRouter() calls at compile time.
478
+ * This must be a separate plugin without enforce:"post" because running
479
+ * at "post" priority changes Vite's dep optimization timing and can cause
480
+ * ERR_OUTDATED_OPTIMIZED_DEP / React dual-instance issues.
481
+ */
482
+ export function exposeRouterId() {
483
+ let projectRoot = "";
484
+ return {
485
+ name: "@rangojs/router:expose-router-id",
486
+ configResolved(config) {
487
+ projectRoot = config.root;
488
+ },
489
+ transform(code, id) {
490
+ if (!code.includes("createRouter"))
491
+ return null;
492
+ if (!/import\s*\{[^}]*\bcreateRouter\b[^}]*\}\s*from\s*["']@rangojs\/router(?:\/server)?["']/.test(code)) {
493
+ return null;
494
+ }
495
+ if (id.includes("node_modules"))
496
+ return null;
497
+ const filePath = normalizePath(path.relative(projectRoot, id));
498
+ const routerFnNames = getImportedFnNames(code, "createRouter");
499
+ return transformRouter(code, filePath, routerFnNames);
500
+ },
501
+ };
502
+ }
503
+ // ---------------------------------------------------------------------------
504
+ // Consolidated plugin
505
+ // ---------------------------------------------------------------------------
506
+ export function exposeInternalIds(options) {
507
+ let config;
508
+ let isBuild = false;
509
+ let projectRoot = "";
510
+ // Loader registry: hashedId -> { filePath, exportName }
511
+ const loaderRegistry = new Map();
512
+ // Prerender handler module tracking (consumed via plugin API)
513
+ const prerenderHandlerModules = new Map();
514
+ // Static handler module tracking (consumed via plugin API)
515
+ const staticHandlerModules = new Map();
516
+ // Virtual module registry for inline handler extraction (both types)
517
+ const virtualHandlers = new Map();
518
+ // De-duplicate unsupported shape warnings across repeated transforms.
519
+ const unsupportedShapeWarnings = new Set();
520
+ return {
521
+ name: "@rangojs/router:expose-internal-ids",
522
+ enforce: "post",
523
+ api: {
524
+ prerenderHandlerModules,
525
+ staticHandlerModules,
526
+ },
527
+ configResolved(resolved) {
528
+ config = resolved;
529
+ isBuild = options?.forceBuild || config.command === "build";
530
+ projectRoot = config.root;
531
+ },
532
+ // --------------- Virtual module support ---------------
533
+ resolveId(id, importer) {
534
+ if (id === VIRTUAL_LOADER_MANIFEST) {
535
+ return RESOLVED_VIRTUAL_LOADER_MANIFEST;
536
+ }
537
+ if (id.startsWith(VIRTUAL_HANDLER_PREFIX)) {
538
+ return "\0" + id;
539
+ }
540
+ // Resolve imports FROM virtual modules against the original file
541
+ if (importer?.startsWith("\0" + VIRTUAL_HANDLER_PREFIX)) {
542
+ const entry = virtualHandlers.get(importer);
543
+ if (entry) {
544
+ return this.resolve(id, entry.originalModuleId, { skipSelf: true });
545
+ }
546
+ }
547
+ },
548
+ load(id) {
549
+ // Virtual handler modules (both prerender and static)
550
+ if (id.startsWith("\0" + VIRTUAL_HANDLER_PREFIX)) {
551
+ const entry = virtualHandlers.get(id);
552
+ if (!entry)
553
+ return null;
554
+ return [
555
+ ...entry.imports,
556
+ `export const ${entry.exportName} = ${entry.handlerCode};`,
557
+ ].join("\n") + "\n";
558
+ }
559
+ if (id !== RESOLVED_VIRTUAL_LOADER_MANIFEST)
560
+ return;
561
+ if (!isBuild) {
562
+ return `import { setLoaderImports } from "@rangojs/router/server";
563
+
564
+ // Dev mode: empty map, loaders are resolved dynamically via path parsing
565
+ setLoaderImports({});
566
+ `;
567
+ }
568
+ // Build mode: generate lazy import map
569
+ const lazyImports = [];
570
+ for (const [hashedId, { filePath, exportName }] of loaderRegistry) {
571
+ lazyImports.push(` "${hashedId}": () => import("/${filePath}").then(m => m.${exportName})`);
572
+ }
573
+ if (lazyImports.length === 0) {
574
+ return `import { setLoaderImports } from "@rangojs/router/server";
575
+
576
+ // No fetchable loaders discovered during build
577
+ setLoaderImports({});
578
+ `;
579
+ }
580
+ return `import { setLoaderImports } from "@rangojs/router/server";
581
+
582
+ // Lazy import map - loaders are loaded on-demand when first requested
583
+ setLoaderImports({
584
+ ${lazyImports.join(",\n")}
585
+ });
586
+ `;
587
+ },
588
+ // --------------- Loader pre-scan (build mode) ---------------
589
+ async buildStart() {
590
+ if (!isBuild)
591
+ return;
592
+ const fs = await import("node:fs/promises");
593
+ async function scanDir(dir) {
594
+ const results = [];
595
+ try {
596
+ const entries = await fs.readdir(dir, { withFileTypes: true });
597
+ for (const entry of entries) {
598
+ const fullPath = path.join(dir, entry.name);
599
+ if (entry.isDirectory()) {
600
+ if (entry.name !== "node_modules") {
601
+ results.push(...(await scanDir(fullPath)));
602
+ }
603
+ }
604
+ else if (/\.(ts|tsx|js|jsx)$/.test(entry.name)) {
605
+ results.push(fullPath);
606
+ }
607
+ }
608
+ }
609
+ catch {
610
+ // Directory doesn't exist or not readable
611
+ }
612
+ return results;
613
+ }
614
+ try {
615
+ const srcDir = path.join(projectRoot, "src");
616
+ const files = await scanDir(srcDir);
617
+ for (const filePath of files) {
618
+ const content = await fs.readFile(filePath, "utf-8");
619
+ if (!content.includes("createLoader"))
620
+ continue;
621
+ if (!hasCreateLoaderImport(content))
622
+ continue;
623
+ const fnNames = getImportedFnNames(content, "createLoader");
624
+ const relativePath = normalizePath(path.relative(projectRoot, filePath));
625
+ const bindings = collectCreateExportBindings(content, fnNames);
626
+ for (const binding of bindings) {
627
+ const exportName = binding.exportNames[0];
628
+ const hashedId = hashId(relativePath, exportName);
629
+ loaderRegistry.set(hashedId, {
630
+ filePath: relativePath,
631
+ exportName,
632
+ });
633
+ }
634
+ }
635
+ }
636
+ catch (error) {
637
+ console.warn("[exposeInternalIds] Loader pre-scan failed:", error);
638
+ }
639
+ },
640
+ // --------------- Unified transform ---------------
641
+ transform(code, id) {
642
+ if (id.includes("/node_modules/"))
643
+ return;
644
+ const filePath = normalizePath(path.relative(projectRoot, id));
645
+ const isRscEnv = this.environment?.name === "rsc";
646
+ // Warn if named-routes.gen is imported in a client component.
647
+ // NamedRoutes is server-only data and would bloat the client bundle.
648
+ if (id.includes(".named-routes.gen.") && !isRscEnv && this.environment?.name === "client") {
649
+ this.warn(`\n` +
650
+ `!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n` +
651
+ `!! !!\n` +
652
+ `!! WARNING: NamedRoutes imported in a CLIENT component! !!\n` +
653
+ `!! !!\n` +
654
+ `!! File: ${filePath.padEnd(53)}!!\n` +
655
+ `!! !!\n` +
656
+ `!! NamedRoutes contains your entire route structure — every !!\n` +
657
+ `!! route name and URL pattern in your application. Shipping !!\n` +
658
+ `!! this to the browser exposes your full routing topology to !!\n` +
659
+ `!! the client, which is a security concern (internal/admin !!\n` +
660
+ `!! routes, API endpoints, hidden paths become visible). !!\n` +
661
+ `!! !!\n` +
662
+ `!! It also bloats the client bundle — this map contains all !!\n` +
663
+ `!! named routes in your application. !!\n` +
664
+ `!! !!\n` +
665
+ `!! Fix: remove the import or move it to a server component. !!\n` +
666
+ `!! !!\n` +
667
+ `!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n`);
668
+ }
669
+ // Fast exit: if the file doesn't import from @rangojs/router at all,
670
+ // skip all create* analysis and transforms.
671
+ if (!code.includes("@rangojs/router"))
672
+ return;
673
+ // Detect all relevant imports in one pass
674
+ const has = detectImports(code);
675
+ // Quick bail-out: also check for raw create* identifiers.
676
+ // This is safe even with aliases (e.g., `import { createLoader as cl }`)
677
+ // because the import statement itself always contains the canonical name
678
+ // "createLoader", so code.includes("createLoader") will still match.
679
+ const hasLoaderCode = has.loader && code.includes("createLoader");
680
+ const hasHandleCode = has.handle && code.includes("createHandle");
681
+ const hasLocationStateCode = has.locationState && code.includes("createLocationState");
682
+ const hasPrerenderHandlerCode = has.prerenderHandler && code.includes("Prerender");
683
+ const hasStaticHandlerCode = has.staticHandler && code.includes("Static");
684
+ if (!hasLoaderCode &&
685
+ !hasHandleCode &&
686
+ !hasLocationStateCode &&
687
+ !hasPrerenderHandlerCode &&
688
+ !hasStaticHandlerCode) {
689
+ return;
690
+ }
691
+ // Per-invocation caches to avoid redundant AST parsing.
692
+ // getImportedFnNames is cached by canonical name (imports never change).
693
+ // collectCreateExportBindings is cached by fnNames key; the cache is
694
+ // cleared when `code` changes (e.g., after inline handler extraction).
695
+ const _fnNamesCache = new Map();
696
+ const _bindingsCache = new Map();
697
+ let _cachedAst;
698
+ let _astParseFailed = false;
699
+ let _astCodeRef = code;
700
+ const getFnNames = (canonicalName) => {
701
+ let result = _fnNamesCache.get(canonicalName);
702
+ if (!result) {
703
+ result = getImportedFnNames(code, canonicalName);
704
+ _fnNamesCache.set(canonicalName, result);
705
+ }
706
+ return result;
707
+ };
708
+ // Lazy AST parse: parsed once and shared across all
709
+ // collectCreateExportBindings calls for the same code string.
710
+ const lazyAst = () => {
711
+ if (code !== _astCodeRef) {
712
+ _cachedAst = undefined;
713
+ _astParseFailed = false;
714
+ _astCodeRef = code;
715
+ }
716
+ if (_cachedAst !== undefined || _astParseFailed)
717
+ return _cachedAst;
718
+ try {
719
+ _cachedAst = parseAst(code, { jsx: true });
720
+ }
721
+ catch {
722
+ _astParseFailed = true;
723
+ }
724
+ return _cachedAst;
725
+ };
726
+ const getBindings = (currentCode, fnNames) => {
727
+ const key = fnNames.join("\0");
728
+ let result = _bindingsCache.get(key);
729
+ if (!result) {
730
+ result = collectCreateExportBindings(currentCode, fnNames, lazyAst());
731
+ _bindingsCache.set(key, result);
732
+ }
733
+ return result;
734
+ };
735
+ // Warn on create* declaration shapes that are currently unsupported by
736
+ // non-AST transforms (loader/handle/locationState only).
737
+ for (const cfg of STRICT_CREATE_CONFIGS) {
738
+ const hasCode = cfg.fnName === "createLoader"
739
+ ? hasLoaderCode
740
+ : cfg.fnName === "createHandle"
741
+ ? hasHandleCode
742
+ : hasLocationStateCode;
743
+ if (!hasCode)
744
+ continue;
745
+ const fnNames = getFnNames(cfg.fnName);
746
+ const totalCalls = countCreateCallsForNames(code, fnNames);
747
+ const supportedBindings = getBindings(code, fnNames).length;
748
+ if (totalCalls <= supportedBindings)
749
+ continue;
750
+ const warnKey = `${id}::${cfg.fnName}`;
751
+ if (unsupportedShapeWarnings.has(warnKey))
752
+ continue;
753
+ unsupportedShapeWarnings.add(warnKey);
754
+ this.warn(buildUnsupportedShapeWarning(filePath, cfg.fnName));
755
+ }
756
+ // --- Loader: track for manifest (RSC env only) ---
757
+ if (hasLoaderCode && isRscEnv) {
758
+ const fnNames = getFnNames("createLoader");
759
+ const bindings = getBindings(code, fnNames);
760
+ for (const binding of bindings) {
761
+ const exportName = binding.exportNames[0];
762
+ const hashedId = hashId(filePath, exportName);
763
+ loaderRegistry.set(hashedId, {
764
+ filePath,
765
+ exportName,
766
+ });
767
+ }
768
+ }
769
+ // --- Loader: client stubs for non-RSC environments ---
770
+ if (hasLoaderCode && !isRscEnv) {
771
+ const fnNames = getFnNames("createLoader");
772
+ const bindings = getBindings(code, fnNames);
773
+ const stubResult = generateClientLoaderStubs(bindings, code, filePath, isBuild);
774
+ if (stubResult)
775
+ return stubResult;
776
+ }
777
+ // --- PrerenderHandler: non-RSC stub replacement ---
778
+ if (hasPrerenderHandlerCode && !isRscEnv) {
779
+ const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
780
+ const bindings = getBindings(code, fnNames);
781
+ const wholeFile = generateWholeFileStubs(PRERENDER_CONFIG, bindings, code, filePath, isBuild);
782
+ if (wholeFile)
783
+ return wholeFile;
784
+ const exprStubs = generateExprStubs(PRERENDER_CONFIG, bindings, code, filePath, id, isBuild);
785
+ if (exprStubs)
786
+ return exprStubs;
787
+ }
788
+ // --- PrerenderHandler: RSC build module tracking ---
789
+ if (hasPrerenderHandlerCode && isRscEnv && isBuild) {
790
+ const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
791
+ const exportNames = getBindings(code, fnNames)
792
+ .map((b) => b.exportNames[0]);
793
+ if (exportNames.length > 0) {
794
+ prerenderHandlerModules.set(id, exportNames);
795
+ }
796
+ }
797
+ // --- Inline handler extraction to virtual modules ---
798
+ // Runs before stubs/tracking so inline calls become imports, then
799
+ // the existing regex fast path handles both the original file's
800
+ // export const patterns and the virtual modules independently.
801
+ //
802
+ // Cheap pre-check: count total fnName( occurrences vs export const
803
+ // patterns. If they match, every call is a named export and the
804
+ // regex fast path handles them -- skip the AST parse entirely.
805
+ //
806
+ // Each iteration creates a fresh MagicString so that AST positions
807
+ // from findHandlerCalls always match the string they were parsed from.
808
+ let changed = false;
809
+ const handlerConfigs = [
810
+ hasStaticHandlerCode && STATIC_CONFIG,
811
+ hasPrerenderHandlerCode && PRERENDER_CONFIG,
812
+ ].filter((c) => !!c).map((cfg) => {
813
+ const fnNames = getFnNames(cfg.fnName);
814
+ return { cfg, fnNames };
815
+ });
816
+ for (const { cfg, fnNames } of handlerConfigs) {
817
+ const totalCalls = countCreateCallsForNames(code, fnNames);
818
+ const supportedBindings = getBindings(code, fnNames).length;
819
+ if (totalCalls > supportedBindings) {
820
+ const iterS = new MagicString(code);
821
+ const result = transformInlineHandlers(cfg.fnName, VIRTUAL_HANDLER_PREFIX, iterS, code, filePath, virtualHandlers, id, parseAst);
822
+ if (result) {
823
+ changed = true;
824
+ code = iterS.toString();
825
+ _bindingsCache.clear();
826
+ }
827
+ }
828
+ }
829
+ // --- StaticHandler: non-RSC stub replacement ---
830
+ if (hasStaticHandlerCode && !isRscEnv) {
831
+ const fnNames = getFnNames(STATIC_CONFIG.fnName);
832
+ const bindings = getBindings(code, fnNames);
833
+ const wholeFile = generateWholeFileStubs(STATIC_CONFIG, bindings, code, filePath, isBuild);
834
+ if (wholeFile)
835
+ return wholeFile;
836
+ const exprStubs = generateExprStubs(STATIC_CONFIG, bindings, code, filePath, id, isBuild);
837
+ if (exprStubs)
838
+ return exprStubs;
839
+ }
840
+ // --- StaticHandler: RSC build module tracking ---
841
+ if (hasStaticHandlerCode && isRscEnv && isBuild) {
842
+ const fnNames = getFnNames(STATIC_CONFIG.fnName);
843
+ const exportNames = getBindings(code, fnNames)
844
+ .map((b) => b.exportNames[0]);
845
+ if (exportNames.length > 0) {
846
+ staticHandlerModules.set(id, exportNames);
847
+ }
848
+ }
849
+ // --- Unified MagicString transforms ---
850
+ // Single pipeline for all downstream transforms (loaders, handles,
851
+ // locationState, handler IDs). Uses the post-extraction code so
852
+ // positions are always consistent.
853
+ const s = new MagicString(code);
854
+ if (hasLoaderCode) {
855
+ const fnNames = getFnNames("createLoader");
856
+ changed = transformLoaders(getBindings(code, fnNames), s, filePath, isBuild) || changed;
857
+ }
858
+ if (hasHandleCode) {
859
+ const fnNames = getFnNames("createHandle");
860
+ changed = transformHandles(getBindings(code, fnNames), s, code, filePath, isBuild) || changed;
861
+ }
862
+ if (hasLocationStateCode) {
863
+ const fnNames = getFnNames("createLocationState");
864
+ changed =
865
+ transformLocationState(getBindings(code, fnNames), s, filePath, isBuild) || changed;
866
+ }
867
+ if (hasPrerenderHandlerCode && isRscEnv) {
868
+ const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
869
+ changed =
870
+ transformHandlerIds(PRERENDER_CONFIG, getBindings(code, fnNames), s, filePath, isBuild) || changed;
871
+ }
872
+ if (hasStaticHandlerCode && isRscEnv) {
873
+ const fnNames = getFnNames(STATIC_CONFIG.fnName);
874
+ changed =
875
+ transformHandlerIds(STATIC_CONFIG, getBindings(code, fnNames), s, filePath, isBuild) || changed;
876
+ }
877
+ if (!changed)
878
+ return;
879
+ return {
880
+ code: s.toString(),
881
+ map: s.generateMap({ source: id, includeContent: true }),
882
+ };
883
+ },
884
+ };
885
+ }
886
+ //# sourceMappingURL=expose-internal-ids.js.map