@rangojs/router 0.0.0-experimental.101 → 0.0.0-experimental.102

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 (813) hide show
  1. package/dist/vite/index.js +1 -1
  2. package/package.json +1 -1
  3. package/skills/hooks/SKILL.md +37 -0
  4. package/src/browser/history-state.ts +21 -0
  5. package/src/browser/navigation-bridge.ts +2 -6
  6. package/src/browser/navigation-transaction.ts +3 -7
  7. package/src/browser/react/location-state-shared.ts +82 -1
  8. package/src/browser/react/location-state.ts +39 -13
  9. package/src/browser/react/use-router.ts +14 -1
  10. package/dist/__internal.d.ts +0 -83
  11. package/dist/__internal.d.ts.map +0 -1
  12. package/dist/__internal.js +0 -19
  13. package/dist/__internal.js.map +0 -1
  14. package/dist/__mocks__/version.d.ts +0 -7
  15. package/dist/__mocks__/version.d.ts.map +0 -1
  16. package/dist/__mocks__/version.js +0 -7
  17. package/dist/__mocks__/version.js.map +0 -1
  18. package/dist/__tests__/client-href.test.d.ts +0 -2
  19. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  20. package/dist/__tests__/client-href.test.js +0 -74
  21. package/dist/__tests__/client-href.test.js.map +0 -1
  22. package/dist/__tests__/component-utils.test.d.ts +0 -2
  23. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  24. package/dist/__tests__/component-utils.test.js +0 -51
  25. package/dist/__tests__/component-utils.test.js.map +0 -1
  26. package/dist/__tests__/event-controller.test.d.ts +0 -2
  27. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  28. package/dist/__tests__/event-controller.test.js +0 -538
  29. package/dist/__tests__/event-controller.test.js.map +0 -1
  30. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  31. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  32. package/dist/__tests__/helpers/route-tree.js +0 -374
  33. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  34. package/dist/__tests__/match-result.test.d.ts +0 -2
  35. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  36. package/dist/__tests__/match-result.test.js +0 -154
  37. package/dist/__tests__/match-result.test.js.map +0 -1
  38. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  39. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  40. package/dist/__tests__/navigation-store.test.js +0 -440
  41. package/dist/__tests__/navigation-store.test.js.map +0 -1
  42. package/dist/__tests__/partial-update.test.d.ts +0 -2
  43. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  44. package/dist/__tests__/partial-update.test.js +0 -1009
  45. package/dist/__tests__/partial-update.test.js.map +0 -1
  46. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  47. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  48. package/dist/__tests__/reverse-types.test.js +0 -656
  49. package/dist/__tests__/reverse-types.test.js.map +0 -1
  50. package/dist/__tests__/route-definition.test.d.ts +0 -2
  51. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  52. package/dist/__tests__/route-definition.test.js +0 -55
  53. package/dist/__tests__/route-definition.test.js.map +0 -1
  54. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  55. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  56. package/dist/__tests__/router-helpers.test.js +0 -377
  57. package/dist/__tests__/router-helpers.test.js.map +0 -1
  58. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  59. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  60. package/dist/__tests__/router-integration-2.test.js +0 -426
  61. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  62. package/dist/__tests__/router-integration.test.d.ts +0 -2
  63. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  64. package/dist/__tests__/router-integration.test.js +0 -1051
  65. package/dist/__tests__/router-integration.test.js.map +0 -1
  66. package/dist/__tests__/search-params.test.d.ts +0 -5
  67. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  68. package/dist/__tests__/search-params.test.js +0 -306
  69. package/dist/__tests__/search-params.test.js.map +0 -1
  70. package/dist/__tests__/segment-system.test.d.ts +0 -2
  71. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  72. package/dist/__tests__/segment-system.test.js +0 -627
  73. package/dist/__tests__/segment-system.test.js.map +0 -1
  74. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  75. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  76. package/dist/__tests__/static-handler-types.test.js +0 -63
  77. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  78. package/dist/__tests__/urls.test.d.ts +0 -2
  79. package/dist/__tests__/urls.test.d.ts.map +0 -1
  80. package/dist/__tests__/urls.test.js +0 -421
  81. package/dist/__tests__/urls.test.js.map +0 -1
  82. package/dist/__tests__/use-mount.test.d.ts +0 -2
  83. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  84. package/dist/__tests__/use-mount.test.js +0 -35
  85. package/dist/__tests__/use-mount.test.js.map +0 -1
  86. package/dist/bin/rango.d.ts +0 -2
  87. package/dist/bin/rango.d.ts.map +0 -1
  88. package/dist/bin/rango.js.map +0 -1
  89. package/dist/browser/event-controller.d.ts +0 -191
  90. package/dist/browser/event-controller.d.ts.map +0 -1
  91. package/dist/browser/event-controller.js +0 -559
  92. package/dist/browser/event-controller.js.map +0 -1
  93. package/dist/browser/index.d.ts +0 -2
  94. package/dist/browser/index.d.ts.map +0 -1
  95. package/dist/browser/index.js +0 -14
  96. package/dist/browser/index.js.map +0 -1
  97. package/dist/browser/link-interceptor.d.ts +0 -38
  98. package/dist/browser/link-interceptor.d.ts.map +0 -1
  99. package/dist/browser/link-interceptor.js +0 -99
  100. package/dist/browser/link-interceptor.js.map +0 -1
  101. package/dist/browser/logging.d.ts +0 -10
  102. package/dist/browser/logging.d.ts.map +0 -1
  103. package/dist/browser/logging.js +0 -29
  104. package/dist/browser/logging.js.map +0 -1
  105. package/dist/browser/lru-cache.d.ts +0 -17
  106. package/dist/browser/lru-cache.d.ts.map +0 -1
  107. package/dist/browser/lru-cache.js +0 -50
  108. package/dist/browser/lru-cache.js.map +0 -1
  109. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  110. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  111. package/dist/browser/merge-segment-loaders.js +0 -102
  112. package/dist/browser/merge-segment-loaders.js.map +0 -1
  113. package/dist/browser/navigation-bridge.d.ts +0 -102
  114. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  115. package/dist/browser/navigation-bridge.js +0 -708
  116. package/dist/browser/navigation-bridge.js.map +0 -1
  117. package/dist/browser/navigation-client.d.ts +0 -25
  118. package/dist/browser/navigation-client.d.ts.map +0 -1
  119. package/dist/browser/navigation-client.js +0 -157
  120. package/dist/browser/navigation-client.js.map +0 -1
  121. package/dist/browser/navigation-store.d.ts +0 -101
  122. package/dist/browser/navigation-store.d.ts.map +0 -1
  123. package/dist/browser/navigation-store.js +0 -625
  124. package/dist/browser/navigation-store.js.map +0 -1
  125. package/dist/browser/partial-update.d.ts +0 -75
  126. package/dist/browser/partial-update.d.ts.map +0 -1
  127. package/dist/browser/partial-update.js +0 -426
  128. package/dist/browser/partial-update.js.map +0 -1
  129. package/dist/browser/react/Link.d.ts +0 -86
  130. package/dist/browser/react/Link.d.ts.map +0 -1
  131. package/dist/browser/react/Link.js +0 -128
  132. package/dist/browser/react/Link.js.map +0 -1
  133. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  134. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  135. package/dist/browser/react/NavigationProvider.js +0 -216
  136. package/dist/browser/react/NavigationProvider.js.map +0 -1
  137. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  138. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  139. package/dist/browser/react/ScrollRestoration.js +0 -57
  140. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  141. package/dist/browser/react/context.d.ts +0 -46
  142. package/dist/browser/react/context.d.ts.map +0 -1
  143. package/dist/browser/react/context.js +0 -10
  144. package/dist/browser/react/context.js.map +0 -1
  145. package/dist/browser/react/index.d.ts +0 -11
  146. package/dist/browser/react/index.d.ts.map +0 -1
  147. package/dist/browser/react/index.js +0 -22
  148. package/dist/browser/react/index.js.map +0 -1
  149. package/dist/browser/react/location-state-shared.d.ts +0 -63
  150. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  151. package/dist/browser/react/location-state-shared.js +0 -81
  152. package/dist/browser/react/location-state-shared.js.map +0 -1
  153. package/dist/browser/react/location-state.d.ts +0 -23
  154. package/dist/browser/react/location-state.d.ts.map +0 -1
  155. package/dist/browser/react/location-state.js +0 -29
  156. package/dist/browser/react/location-state.js.map +0 -1
  157. package/dist/browser/react/mount-context.d.ts +0 -24
  158. package/dist/browser/react/mount-context.d.ts.map +0 -1
  159. package/dist/browser/react/mount-context.js +0 -24
  160. package/dist/browser/react/mount-context.js.map +0 -1
  161. package/dist/browser/react/use-action.d.ts +0 -64
  162. package/dist/browser/react/use-action.d.ts.map +0 -1
  163. package/dist/browser/react/use-action.js +0 -134
  164. package/dist/browser/react/use-action.js.map +0 -1
  165. package/dist/browser/react/use-client-cache.d.ts +0 -41
  166. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  167. package/dist/browser/react/use-client-cache.js +0 -39
  168. package/dist/browser/react/use-client-cache.js.map +0 -1
  169. package/dist/browser/react/use-handle.d.ts +0 -31
  170. package/dist/browser/react/use-handle.d.ts.map +0 -1
  171. package/dist/browser/react/use-handle.js +0 -144
  172. package/dist/browser/react/use-handle.js.map +0 -1
  173. package/dist/browser/react/use-href.d.ts +0 -33
  174. package/dist/browser/react/use-href.d.ts.map +0 -1
  175. package/dist/browser/react/use-href.js +0 -39
  176. package/dist/browser/react/use-href.js.map +0 -1
  177. package/dist/browser/react/use-link-status.d.ts +0 -37
  178. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  179. package/dist/browser/react/use-link-status.js +0 -99
  180. package/dist/browser/react/use-link-status.js.map +0 -1
  181. package/dist/browser/react/use-mount.d.ts +0 -25
  182. package/dist/browser/react/use-mount.d.ts.map +0 -1
  183. package/dist/browser/react/use-mount.js +0 -30
  184. package/dist/browser/react/use-mount.js.map +0 -1
  185. package/dist/browser/react/use-navigation.d.ts +0 -27
  186. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  187. package/dist/browser/react/use-navigation.js +0 -87
  188. package/dist/browser/react/use-navigation.js.map +0 -1
  189. package/dist/browser/react/use-segments.d.ts +0 -38
  190. package/dist/browser/react/use-segments.d.ts.map +0 -1
  191. package/dist/browser/react/use-segments.js +0 -130
  192. package/dist/browser/react/use-segments.js.map +0 -1
  193. package/dist/browser/request-controller.d.ts +0 -26
  194. package/dist/browser/request-controller.d.ts.map +0 -1
  195. package/dist/browser/request-controller.js +0 -147
  196. package/dist/browser/request-controller.js.map +0 -1
  197. package/dist/browser/rsc-router.d.ts +0 -129
  198. package/dist/browser/rsc-router.d.ts.map +0 -1
  199. package/dist/browser/rsc-router.js +0 -195
  200. package/dist/browser/rsc-router.js.map +0 -1
  201. package/dist/browser/scroll-restoration.d.ts +0 -93
  202. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  203. package/dist/browser/scroll-restoration.js +0 -321
  204. package/dist/browser/scroll-restoration.js.map +0 -1
  205. package/dist/browser/segment-structure-assert.d.ts +0 -17
  206. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  207. package/dist/browser/segment-structure-assert.js +0 -59
  208. package/dist/browser/segment-structure-assert.js.map +0 -1
  209. package/dist/browser/server-action-bridge.d.ts +0 -26
  210. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  211. package/dist/browser/server-action-bridge.js +0 -668
  212. package/dist/browser/server-action-bridge.js.map +0 -1
  213. package/dist/browser/shallow.d.ts +0 -12
  214. package/dist/browser/shallow.d.ts.map +0 -1
  215. package/dist/browser/shallow.js +0 -34
  216. package/dist/browser/shallow.js.map +0 -1
  217. package/dist/browser/types.d.ts +0 -369
  218. package/dist/browser/types.d.ts.map +0 -1
  219. package/dist/browser/types.js +0 -2
  220. package/dist/browser/types.js.map +0 -1
  221. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  222. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  223. package/dist/build/__tests__/generate-cli.test.js +0 -237
  224. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  225. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  226. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  227. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  228. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  229. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  230. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  231. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  232. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  233. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  234. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  235. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  236. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  237. package/dist/build/generate-manifest.d.ts +0 -81
  238. package/dist/build/generate-manifest.d.ts.map +0 -1
  239. package/dist/build/generate-manifest.js +0 -276
  240. package/dist/build/generate-manifest.js.map +0 -1
  241. package/dist/build/generate-route-types.d.ts +0 -115
  242. package/dist/build/generate-route-types.d.ts.map +0 -1
  243. package/dist/build/generate-route-types.js +0 -740
  244. package/dist/build/generate-route-types.js.map +0 -1
  245. package/dist/build/index.d.ts +0 -21
  246. package/dist/build/index.d.ts.map +0 -1
  247. package/dist/build/index.js +0 -21
  248. package/dist/build/index.js.map +0 -1
  249. package/dist/build/route-trie.d.ts +0 -71
  250. package/dist/build/route-trie.d.ts.map +0 -1
  251. package/dist/build/route-trie.js +0 -175
  252. package/dist/build/route-trie.js.map +0 -1
  253. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  254. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  255. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  256. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  257. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  258. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  259. package/dist/cache/__tests__/document-cache.test.js +0 -345
  260. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  261. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  262. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  263. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  264. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  265. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  266. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  267. package/dist/cache/__tests__/memory-store.test.js +0 -367
  268. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  269. package/dist/cache/cache-scope.d.ts +0 -102
  270. package/dist/cache/cache-scope.d.ts.map +0 -1
  271. package/dist/cache/cache-scope.js +0 -440
  272. package/dist/cache/cache-scope.js.map +0 -1
  273. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  274. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  275. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  276. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  277. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  278. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  279. package/dist/cache/cf/cf-cache-store.js +0 -242
  280. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  281. package/dist/cache/cf/index.d.ts +0 -14
  282. package/dist/cache/cf/index.d.ts.map +0 -1
  283. package/dist/cache/cf/index.js +0 -17
  284. package/dist/cache/cf/index.js.map +0 -1
  285. package/dist/cache/document-cache.d.ts +0 -64
  286. package/dist/cache/document-cache.d.ts.map +0 -1
  287. package/dist/cache/document-cache.js +0 -228
  288. package/dist/cache/document-cache.js.map +0 -1
  289. package/dist/cache/index.d.ts +0 -19
  290. package/dist/cache/index.d.ts.map +0 -1
  291. package/dist/cache/index.js +0 -21
  292. package/dist/cache/index.js.map +0 -1
  293. package/dist/cache/memory-segment-store.d.ts +0 -110
  294. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  295. package/dist/cache/memory-segment-store.js +0 -117
  296. package/dist/cache/memory-segment-store.js.map +0 -1
  297. package/dist/cache/memory-store.d.ts +0 -41
  298. package/dist/cache/memory-store.d.ts.map +0 -1
  299. package/dist/cache/memory-store.js +0 -191
  300. package/dist/cache/memory-store.js.map +0 -1
  301. package/dist/cache/types.d.ts +0 -317
  302. package/dist/cache/types.d.ts.map +0 -1
  303. package/dist/cache/types.js +0 -12
  304. package/dist/cache/types.js.map +0 -1
  305. package/dist/client.d.ts +0 -248
  306. package/dist/client.d.ts.map +0 -1
  307. package/dist/client.js +0 -367
  308. package/dist/client.js.map +0 -1
  309. package/dist/client.rsc.d.ts +0 -26
  310. package/dist/client.rsc.d.ts.map +0 -1
  311. package/dist/client.rsc.js +0 -46
  312. package/dist/client.rsc.js.map +0 -1
  313. package/dist/component-utils.d.ts +0 -36
  314. package/dist/component-utils.d.ts.map +0 -1
  315. package/dist/component-utils.js +0 -61
  316. package/dist/component-utils.js.map +0 -1
  317. package/dist/components/DefaultDocument.d.ts +0 -13
  318. package/dist/components/DefaultDocument.d.ts.map +0 -1
  319. package/dist/components/DefaultDocument.js +0 -15
  320. package/dist/components/DefaultDocument.js.map +0 -1
  321. package/dist/debug.d.ts +0 -58
  322. package/dist/debug.d.ts.map +0 -1
  323. package/dist/debug.js +0 -157
  324. package/dist/debug.js.map +0 -1
  325. package/dist/default-error-boundary.d.ts +0 -11
  326. package/dist/default-error-boundary.d.ts.map +0 -1
  327. package/dist/default-error-boundary.js +0 -45
  328. package/dist/default-error-boundary.js.map +0 -1
  329. package/dist/deps/browser.d.ts +0 -2
  330. package/dist/deps/browser.d.ts.map +0 -1
  331. package/dist/deps/browser.js +0 -3
  332. package/dist/deps/browser.js.map +0 -1
  333. package/dist/deps/html-stream-client.d.ts +0 -2
  334. package/dist/deps/html-stream-client.d.ts.map +0 -1
  335. package/dist/deps/html-stream-client.js +0 -3
  336. package/dist/deps/html-stream-client.js.map +0 -1
  337. package/dist/deps/html-stream-server.d.ts +0 -2
  338. package/dist/deps/html-stream-server.d.ts.map +0 -1
  339. package/dist/deps/html-stream-server.js +0 -3
  340. package/dist/deps/html-stream-server.js.map +0 -1
  341. package/dist/deps/rsc.d.ts +0 -2
  342. package/dist/deps/rsc.d.ts.map +0 -1
  343. package/dist/deps/rsc.js +0 -4
  344. package/dist/deps/rsc.js.map +0 -1
  345. package/dist/deps/ssr.d.ts +0 -2
  346. package/dist/deps/ssr.d.ts.map +0 -1
  347. package/dist/deps/ssr.js +0 -3
  348. package/dist/deps/ssr.js.map +0 -1
  349. package/dist/errors.d.ts +0 -174
  350. package/dist/errors.d.ts.map +0 -1
  351. package/dist/errors.js +0 -241
  352. package/dist/errors.js.map +0 -1
  353. package/dist/handle.d.ts +0 -78
  354. package/dist/handle.d.ts.map +0 -1
  355. package/dist/handle.js +0 -82
  356. package/dist/handle.js.map +0 -1
  357. package/dist/handles/MetaTags.d.ts +0 -14
  358. package/dist/handles/MetaTags.d.ts.map +0 -1
  359. package/dist/handles/MetaTags.js +0 -136
  360. package/dist/handles/MetaTags.js.map +0 -1
  361. package/dist/handles/index.d.ts +0 -6
  362. package/dist/handles/index.d.ts.map +0 -1
  363. package/dist/handles/index.js +0 -6
  364. package/dist/handles/index.js.map +0 -1
  365. package/dist/handles/meta.d.ts +0 -39
  366. package/dist/handles/meta.d.ts.map +0 -1
  367. package/dist/handles/meta.js +0 -202
  368. package/dist/handles/meta.js.map +0 -1
  369. package/dist/host/__tests__/errors.test.d.ts +0 -2
  370. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  371. package/dist/host/__tests__/errors.test.js +0 -76
  372. package/dist/host/__tests__/errors.test.js.map +0 -1
  373. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  374. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  375. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  376. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  377. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  378. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  379. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  380. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  381. package/dist/host/__tests__/router.test.d.ts +0 -2
  382. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  383. package/dist/host/__tests__/router.test.js +0 -241
  384. package/dist/host/__tests__/router.test.js.map +0 -1
  385. package/dist/host/__tests__/testing.test.d.ts +0 -2
  386. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  387. package/dist/host/__tests__/testing.test.js +0 -64
  388. package/dist/host/__tests__/testing.test.js.map +0 -1
  389. package/dist/host/__tests__/utils.test.d.ts +0 -2
  390. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  391. package/dist/host/__tests__/utils.test.js +0 -29
  392. package/dist/host/__tests__/utils.test.js.map +0 -1
  393. package/dist/host/cookie-handler.d.ts +0 -34
  394. package/dist/host/cookie-handler.d.ts.map +0 -1
  395. package/dist/host/cookie-handler.js +0 -124
  396. package/dist/host/cookie-handler.js.map +0 -1
  397. package/dist/host/errors.d.ts +0 -56
  398. package/dist/host/errors.d.ts.map +0 -1
  399. package/dist/host/errors.js +0 -79
  400. package/dist/host/errors.js.map +0 -1
  401. package/dist/host/index.d.ts +0 -29
  402. package/dist/host/index.d.ts.map +0 -1
  403. package/dist/host/index.js +0 -32
  404. package/dist/host/index.js.map +0 -1
  405. package/dist/host/pattern-matcher.d.ts +0 -36
  406. package/dist/host/pattern-matcher.d.ts.map +0 -1
  407. package/dist/host/pattern-matcher.js +0 -172
  408. package/dist/host/pattern-matcher.js.map +0 -1
  409. package/dist/host/router.d.ts +0 -26
  410. package/dist/host/router.d.ts.map +0 -1
  411. package/dist/host/router.js +0 -218
  412. package/dist/host/router.js.map +0 -1
  413. package/dist/host/testing.d.ts +0 -36
  414. package/dist/host/testing.d.ts.map +0 -1
  415. package/dist/host/testing.js +0 -55
  416. package/dist/host/testing.js.map +0 -1
  417. package/dist/host/types.d.ts +0 -115
  418. package/dist/host/types.d.ts.map +0 -1
  419. package/dist/host/types.js +0 -7
  420. package/dist/host/types.js.map +0 -1
  421. package/dist/host/utils.d.ts +0 -21
  422. package/dist/host/utils.d.ts.map +0 -1
  423. package/dist/host/utils.js +0 -23
  424. package/dist/host/utils.js.map +0 -1
  425. package/dist/href-client.d.ts +0 -131
  426. package/dist/href-client.d.ts.map +0 -1
  427. package/dist/href-client.js +0 -64
  428. package/dist/href-client.js.map +0 -1
  429. package/dist/href-context.d.ts +0 -29
  430. package/dist/href-context.d.ts.map +0 -1
  431. package/dist/href-context.js +0 -21
  432. package/dist/href-context.js.map +0 -1
  433. package/dist/index.d.ts +0 -73
  434. package/dist/index.d.ts.map +0 -1
  435. package/dist/index.js +0 -91
  436. package/dist/index.js.map +0 -1
  437. package/dist/index.rsc.d.ts +0 -32
  438. package/dist/index.rsc.d.ts.map +0 -1
  439. package/dist/index.rsc.js +0 -40
  440. package/dist/index.rsc.js.map +0 -1
  441. package/dist/internal-debug.d.ts +0 -2
  442. package/dist/internal-debug.d.ts.map +0 -1
  443. package/dist/internal-debug.js +0 -5
  444. package/dist/internal-debug.js.map +0 -1
  445. package/dist/loader.d.ts +0 -14
  446. package/dist/loader.d.ts.map +0 -1
  447. package/dist/loader.js +0 -20
  448. package/dist/loader.js.map +0 -1
  449. package/dist/loader.rsc.d.ts +0 -19
  450. package/dist/loader.rsc.d.ts.map +0 -1
  451. package/dist/loader.rsc.js +0 -99
  452. package/dist/loader.rsc.js.map +0 -1
  453. package/dist/network-error-thrower.d.ts +0 -17
  454. package/dist/network-error-thrower.d.ts.map +0 -1
  455. package/dist/network-error-thrower.js +0 -14
  456. package/dist/network-error-thrower.js.map +0 -1
  457. package/dist/outlet-context.d.ts +0 -13
  458. package/dist/outlet-context.d.ts.map +0 -1
  459. package/dist/outlet-context.js +0 -3
  460. package/dist/outlet-context.js.map +0 -1
  461. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  462. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  463. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  464. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  465. package/dist/prerender/param-hash.d.ts +0 -16
  466. package/dist/prerender/param-hash.d.ts.map +0 -1
  467. package/dist/prerender/param-hash.js +0 -36
  468. package/dist/prerender/param-hash.js.map +0 -1
  469. package/dist/prerender/store.d.ts +0 -38
  470. package/dist/prerender/store.d.ts.map +0 -1
  471. package/dist/prerender/store.js +0 -61
  472. package/dist/prerender/store.js.map +0 -1
  473. package/dist/prerender.d.ts +0 -66
  474. package/dist/prerender.d.ts.map +0 -1
  475. package/dist/prerender.js +0 -57
  476. package/dist/prerender.js.map +0 -1
  477. package/dist/reverse.d.ts +0 -196
  478. package/dist/reverse.d.ts.map +0 -1
  479. package/dist/reverse.js +0 -78
  480. package/dist/reverse.js.map +0 -1
  481. package/dist/root-error-boundary.d.ts +0 -33
  482. package/dist/root-error-boundary.d.ts.map +0 -1
  483. package/dist/root-error-boundary.js +0 -165
  484. package/dist/root-error-boundary.js.map +0 -1
  485. package/dist/route-content-wrapper.d.ts +0 -46
  486. package/dist/route-content-wrapper.d.ts.map +0 -1
  487. package/dist/route-content-wrapper.js +0 -77
  488. package/dist/route-content-wrapper.js.map +0 -1
  489. package/dist/route-definition.d.ts +0 -421
  490. package/dist/route-definition.d.ts.map +0 -1
  491. package/dist/route-definition.js +0 -868
  492. package/dist/route-definition.js.map +0 -1
  493. package/dist/route-map-builder.d.ts +0 -155
  494. package/dist/route-map-builder.d.ts.map +0 -1
  495. package/dist/route-map-builder.js +0 -237
  496. package/dist/route-map-builder.js.map +0 -1
  497. package/dist/route-types.d.ts +0 -165
  498. package/dist/route-types.d.ts.map +0 -1
  499. package/dist/route-types.js +0 -7
  500. package/dist/route-types.js.map +0 -1
  501. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  502. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  503. package/dist/router/__tests__/handler-context.test.js +0 -65
  504. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  505. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  506. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  507. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  508. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  509. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  510. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  511. package/dist/router/__tests__/match-context.test.js +0 -92
  512. package/dist/router/__tests__/match-context.test.js.map +0 -1
  513. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  514. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  515. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  516. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  517. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  518. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  519. package/dist/router/__tests__/match-result.test.js +0 -457
  520. package/dist/router/__tests__/match-result.test.js.map +0 -1
  521. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  522. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  523. package/dist/router/__tests__/on-error.test.js +0 -678
  524. package/dist/router/__tests__/on-error.test.js.map +0 -1
  525. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  526. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  527. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  528. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  529. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  530. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  531. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  532. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  533. package/dist/router/error-handling.d.ts +0 -77
  534. package/dist/router/error-handling.d.ts.map +0 -1
  535. package/dist/router/error-handling.js +0 -202
  536. package/dist/router/error-handling.js.map +0 -1
  537. package/dist/router/handler-context.d.ts +0 -20
  538. package/dist/router/handler-context.d.ts.map +0 -1
  539. package/dist/router/handler-context.js +0 -198
  540. package/dist/router/handler-context.js.map +0 -1
  541. package/dist/router/intercept-resolution.d.ts +0 -66
  542. package/dist/router/intercept-resolution.d.ts.map +0 -1
  543. package/dist/router/intercept-resolution.js +0 -246
  544. package/dist/router/intercept-resolution.js.map +0 -1
  545. package/dist/router/loader-resolution.d.ts +0 -64
  546. package/dist/router/loader-resolution.d.ts.map +0 -1
  547. package/dist/router/loader-resolution.js +0 -284
  548. package/dist/router/loader-resolution.js.map +0 -1
  549. package/dist/router/logging.d.ts +0 -15
  550. package/dist/router/logging.d.ts.map +0 -1
  551. package/dist/router/logging.js +0 -99
  552. package/dist/router/logging.js.map +0 -1
  553. package/dist/router/manifest.d.ts +0 -22
  554. package/dist/router/manifest.d.ts.map +0 -1
  555. package/dist/router/manifest.js +0 -181
  556. package/dist/router/manifest.js.map +0 -1
  557. package/dist/router/match-api.d.ts +0 -35
  558. package/dist/router/match-api.d.ts.map +0 -1
  559. package/dist/router/match-api.js +0 -406
  560. package/dist/router/match-api.js.map +0 -1
  561. package/dist/router/match-context.d.ts +0 -206
  562. package/dist/router/match-context.d.ts.map +0 -1
  563. package/dist/router/match-context.js +0 -17
  564. package/dist/router/match-context.js.map +0 -1
  565. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  566. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  567. package/dist/router/match-middleware/background-revalidation.js +0 -75
  568. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  569. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  570. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  571. package/dist/router/match-middleware/cache-lookup.js +0 -257
  572. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  573. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  574. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  575. package/dist/router/match-middleware/cache-store.js +0 -108
  576. package/dist/router/match-middleware/cache-store.js.map +0 -1
  577. package/dist/router/match-middleware/index.d.ts +0 -81
  578. package/dist/router/match-middleware/index.d.ts.map +0 -1
  579. package/dist/router/match-middleware/index.js +0 -80
  580. package/dist/router/match-middleware/index.js.map +0 -1
  581. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  582. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  583. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  584. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  585. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  586. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  587. package/dist/router/match-middleware/segment-resolution.js +0 -53
  588. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  589. package/dist/router/match-pipelines.d.ts +0 -147
  590. package/dist/router/match-pipelines.d.ts.map +0 -1
  591. package/dist/router/match-pipelines.js +0 -82
  592. package/dist/router/match-pipelines.js.map +0 -1
  593. package/dist/router/match-result.d.ts +0 -126
  594. package/dist/router/match-result.d.ts.map +0 -1
  595. package/dist/router/match-result.js +0 -93
  596. package/dist/router/match-result.js.map +0 -1
  597. package/dist/router/metrics.d.ts +0 -20
  598. package/dist/router/metrics.d.ts.map +0 -1
  599. package/dist/router/metrics.js +0 -47
  600. package/dist/router/metrics.js.map +0 -1
  601. package/dist/router/middleware.d.ts +0 -249
  602. package/dist/router/middleware.d.ts.map +0 -1
  603. package/dist/router/middleware.js +0 -434
  604. package/dist/router/middleware.js.map +0 -1
  605. package/dist/router/middleware.test.d.ts +0 -2
  606. package/dist/router/middleware.test.d.ts.map +0 -1
  607. package/dist/router/middleware.test.js +0 -816
  608. package/dist/router/middleware.test.js.map +0 -1
  609. package/dist/router/pattern-matching.d.ts +0 -149
  610. package/dist/router/pattern-matching.d.ts.map +0 -1
  611. package/dist/router/pattern-matching.js +0 -349
  612. package/dist/router/pattern-matching.js.map +0 -1
  613. package/dist/router/revalidation.d.ts +0 -44
  614. package/dist/router/revalidation.d.ts.map +0 -1
  615. package/dist/router/revalidation.js +0 -147
  616. package/dist/router/revalidation.js.map +0 -1
  617. package/dist/router/router-context.d.ts +0 -135
  618. package/dist/router/router-context.d.ts.map +0 -1
  619. package/dist/router/router-context.js +0 -36
  620. package/dist/router/router-context.js.map +0 -1
  621. package/dist/router/segment-resolution.d.ts +0 -127
  622. package/dist/router/segment-resolution.d.ts.map +0 -1
  623. package/dist/router/segment-resolution.js +0 -919
  624. package/dist/router/segment-resolution.js.map +0 -1
  625. package/dist/router/trie-matching.d.ts +0 -40
  626. package/dist/router/trie-matching.d.ts.map +0 -1
  627. package/dist/router/trie-matching.js +0 -127
  628. package/dist/router/trie-matching.js.map +0 -1
  629. package/dist/router/types.d.ts +0 -136
  630. package/dist/router/types.d.ts.map +0 -1
  631. package/dist/router/types.js +0 -7
  632. package/dist/router/types.js.map +0 -1
  633. package/dist/router.d.ts +0 -753
  634. package/dist/router.d.ts.map +0 -1
  635. package/dist/router.gen.d.ts +0 -6
  636. package/dist/router.gen.d.ts.map +0 -1
  637. package/dist/router.gen.js +0 -6
  638. package/dist/router.gen.js.map +0 -1
  639. package/dist/router.js +0 -1304
  640. package/dist/router.js.map +0 -1
  641. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  642. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  643. package/dist/rsc/__tests__/helpers.test.js +0 -140
  644. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  645. package/dist/rsc/handler.d.ts +0 -45
  646. package/dist/rsc/handler.d.ts.map +0 -1
  647. package/dist/rsc/handler.js +0 -1172
  648. package/dist/rsc/handler.js.map +0 -1
  649. package/dist/rsc/helpers.d.ts +0 -16
  650. package/dist/rsc/helpers.d.ts.map +0 -1
  651. package/dist/rsc/helpers.js +0 -55
  652. package/dist/rsc/helpers.js.map +0 -1
  653. package/dist/rsc/index.d.ts +0 -22
  654. package/dist/rsc/index.d.ts.map +0 -1
  655. package/dist/rsc/index.js +0 -23
  656. package/dist/rsc/index.js.map +0 -1
  657. package/dist/rsc/nonce.d.ts +0 -9
  658. package/dist/rsc/nonce.d.ts.map +0 -1
  659. package/dist/rsc/nonce.js +0 -18
  660. package/dist/rsc/nonce.js.map +0 -1
  661. package/dist/rsc/types.d.ts +0 -206
  662. package/dist/rsc/types.d.ts.map +0 -1
  663. package/dist/rsc/types.js +0 -8
  664. package/dist/rsc/types.js.map +0 -1
  665. package/dist/search-params.d.ts +0 -103
  666. package/dist/search-params.d.ts.map +0 -1
  667. package/dist/search-params.js +0 -74
  668. package/dist/search-params.js.map +0 -1
  669. package/dist/segment-system.d.ts +0 -75
  670. package/dist/segment-system.d.ts.map +0 -1
  671. package/dist/segment-system.js +0 -336
  672. package/dist/segment-system.js.map +0 -1
  673. package/dist/server/context.d.ts +0 -245
  674. package/dist/server/context.d.ts.map +0 -1
  675. package/dist/server/context.js +0 -197
  676. package/dist/server/context.js.map +0 -1
  677. package/dist/server/fetchable-loader-store.d.ts +0 -18
  678. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  679. package/dist/server/fetchable-loader-store.js +0 -18
  680. package/dist/server/fetchable-loader-store.js.map +0 -1
  681. package/dist/server/handle-store.d.ts +0 -85
  682. package/dist/server/handle-store.d.ts.map +0 -1
  683. package/dist/server/handle-store.js +0 -142
  684. package/dist/server/handle-store.js.map +0 -1
  685. package/dist/server/loader-registry.d.ts +0 -55
  686. package/dist/server/loader-registry.d.ts.map +0 -1
  687. package/dist/server/loader-registry.js +0 -132
  688. package/dist/server/loader-registry.js.map +0 -1
  689. package/dist/server/request-context.d.ts +0 -226
  690. package/dist/server/request-context.d.ts.map +0 -1
  691. package/dist/server/request-context.js +0 -290
  692. package/dist/server/request-context.js.map +0 -1
  693. package/dist/server/root-layout.d.ts +0 -4
  694. package/dist/server/root-layout.d.ts.map +0 -1
  695. package/dist/server/root-layout.js +0 -5
  696. package/dist/server/root-layout.js.map +0 -1
  697. package/dist/server.d.ts +0 -15
  698. package/dist/server.d.ts.map +0 -1
  699. package/dist/server.js +0 -20
  700. package/dist/server.js.map +0 -1
  701. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  702. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  703. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  704. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  705. package/dist/ssr/index.d.ts +0 -98
  706. package/dist/ssr/index.d.ts.map +0 -1
  707. package/dist/ssr/index.js +0 -158
  708. package/dist/ssr/index.js.map +0 -1
  709. package/dist/static-handler.d.ts +0 -50
  710. package/dist/static-handler.d.ts.map +0 -1
  711. package/dist/static-handler.gen.d.ts +0 -5
  712. package/dist/static-handler.gen.d.ts.map +0 -1
  713. package/dist/static-handler.gen.js +0 -5
  714. package/dist/static-handler.gen.js.map +0 -1
  715. package/dist/static-handler.js +0 -29
  716. package/dist/static-handler.js.map +0 -1
  717. package/dist/theme/ThemeProvider.d.ts +0 -20
  718. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  719. package/dist/theme/ThemeProvider.js +0 -240
  720. package/dist/theme/ThemeProvider.js.map +0 -1
  721. package/dist/theme/ThemeScript.d.ts +0 -48
  722. package/dist/theme/ThemeScript.d.ts.map +0 -1
  723. package/dist/theme/ThemeScript.js +0 -13
  724. package/dist/theme/ThemeScript.js.map +0 -1
  725. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  726. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  727. package/dist/theme/__tests__/theme.test.js +0 -103
  728. package/dist/theme/__tests__/theme.test.js.map +0 -1
  729. package/dist/theme/constants.d.ts +0 -29
  730. package/dist/theme/constants.d.ts.map +0 -1
  731. package/dist/theme/constants.js +0 -48
  732. package/dist/theme/constants.js.map +0 -1
  733. package/dist/theme/index.d.ts +0 -31
  734. package/dist/theme/index.d.ts.map +0 -1
  735. package/dist/theme/index.js +0 -36
  736. package/dist/theme/index.js.map +0 -1
  737. package/dist/theme/theme-context.d.ts +0 -40
  738. package/dist/theme/theme-context.d.ts.map +0 -1
  739. package/dist/theme/theme-context.js +0 -60
  740. package/dist/theme/theme-context.js.map +0 -1
  741. package/dist/theme/theme-script.d.ts +0 -27
  742. package/dist/theme/theme-script.d.ts.map +0 -1
  743. package/dist/theme/theme-script.js +0 -147
  744. package/dist/theme/theme-script.js.map +0 -1
  745. package/dist/theme/types.d.ts +0 -163
  746. package/dist/theme/types.d.ts.map +0 -1
  747. package/dist/theme/types.js +0 -11
  748. package/dist/theme/types.js.map +0 -1
  749. package/dist/theme/use-theme.d.ts +0 -12
  750. package/dist/theme/use-theme.d.ts.map +0 -1
  751. package/dist/theme/use-theme.js +0 -40
  752. package/dist/theme/use-theme.js.map +0 -1
  753. package/dist/types.d.ts +0 -1479
  754. package/dist/types.d.ts.map +0 -1
  755. package/dist/types.js +0 -10
  756. package/dist/types.js.map +0 -1
  757. package/dist/urls.d.ts +0 -441
  758. package/dist/urls.d.ts.map +0 -1
  759. package/dist/urls.gen.d.ts +0 -8
  760. package/dist/urls.gen.d.ts.map +0 -1
  761. package/dist/urls.gen.js +0 -8
  762. package/dist/urls.gen.js.map +0 -1
  763. package/dist/urls.js +0 -443
  764. package/dist/urls.js.map +0 -1
  765. package/dist/use-loader.d.ts +0 -127
  766. package/dist/use-loader.d.ts.map +0 -1
  767. package/dist/use-loader.js +0 -237
  768. package/dist/use-loader.js.map +0 -1
  769. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  770. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  771. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  772. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  773. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  774. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  775. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  776. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  777. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  778. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  779. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  780. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  781. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  782. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  783. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  784. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  785. package/dist/vite/ast-handler-extract.d.ts +0 -49
  786. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  787. package/dist/vite/ast-handler-extract.js +0 -249
  788. package/dist/vite/ast-handler-extract.js.map +0 -1
  789. package/dist/vite/expose-action-id.d.ts +0 -19
  790. package/dist/vite/expose-action-id.d.ts.map +0 -1
  791. package/dist/vite/expose-action-id.js +0 -250
  792. package/dist/vite/expose-action-id.js.map +0 -1
  793. package/dist/vite/expose-id-utils.d.ts +0 -69
  794. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  795. package/dist/vite/expose-id-utils.js +0 -289
  796. package/dist/vite/expose-id-utils.js.map +0 -1
  797. package/dist/vite/expose-internal-ids.d.ts +0 -22
  798. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  799. package/dist/vite/expose-internal-ids.js +0 -886
  800. package/dist/vite/expose-internal-ids.js.map +0 -1
  801. package/dist/vite/index.d.ts +0 -149
  802. package/dist/vite/index.d.ts.map +0 -1
  803. package/dist/vite/index.js.bak +0 -5448
  804. package/dist/vite/index.js.map +0 -1
  805. package/dist/vite/index.named-routes.gen.ts +0 -103
  806. package/dist/vite/package-resolution.d.ts +0 -43
  807. package/dist/vite/package-resolution.d.ts.map +0 -1
  808. package/dist/vite/package-resolution.js +0 -112
  809. package/dist/vite/package-resolution.js.map +0 -1
  810. package/dist/vite/virtual-entries.d.ts +0 -25
  811. package/dist/vite/virtual-entries.d.ts.map +0 -1
  812. package/dist/vite/virtual-entries.js +0 -110
  813. package/dist/vite/virtual-entries.js.map +0 -1
@@ -1,740 +0,0 @@
1
- import { readFileSync, writeFileSync, existsSync, readdirSync, unlinkSync } from "node:fs";
2
- import { join, dirname, resolve, relative, basename as pathBasename } from "node:path";
3
- // @ts-ignore -- picomatch ships no .d.ts; types are trivial
4
- import picomatch from "picomatch";
5
- import ts from "typescript";
6
- // ---------------------------------------------------------------------------
7
- // AST helpers
8
- // ---------------------------------------------------------------------------
9
- function getStringValue(node) {
10
- if (ts.isStringLiteral(node))
11
- return node.text;
12
- if (ts.isNoSubstitutionTemplateLiteral(node))
13
- return node.text;
14
- return null;
15
- }
16
- function extractObjectStringProperties(node) {
17
- const result = {};
18
- for (const prop of node.properties) {
19
- if (!ts.isPropertyAssignment(prop))
20
- continue;
21
- const key = ts.isIdentifier(prop.name) ? prop.name.text
22
- : ts.isStringLiteral(prop.name) ? prop.name.text
23
- : null;
24
- if (!key)
25
- continue;
26
- const val = getStringValue(prop.initializer);
27
- if (val !== null)
28
- result[key] = val;
29
- }
30
- return result;
31
- }
32
- // ---------------------------------------------------------------------------
33
- // Param extraction from route patterns
34
- // ---------------------------------------------------------------------------
35
- /**
36
- * Extract typed params from a route pattern string.
37
- * Matches `:paramName` and `:paramName?` (optional).
38
- * Custom regex constraints like `:id(\d+)` are ignored for type purposes.
39
- */
40
- export function extractParamsFromPattern(pattern) {
41
- const params = {};
42
- const regex = /:([a-zA-Z_$][\w$]*)(?:\([^)]+\))?(\?)?/g;
43
- let match;
44
- while ((match = regex.exec(pattern)) !== null) {
45
- params[match[1]] = match[2] ? "string?" : "string";
46
- }
47
- return Object.keys(params).length > 0 ? params : undefined;
48
- }
49
- // ---------------------------------------------------------------------------
50
- // Shared route entry formatter
51
- // ---------------------------------------------------------------------------
52
- /**
53
- * Format a single route entry for codegen output.
54
- * Routes without search remain plain strings (params are extracted from
55
- * the pattern at the type level by ExtractParams).
56
- * Routes with search become objects with path and search fields.
57
- */
58
- export function formatRouteEntry(key, pattern, _params, search) {
59
- const hasSearch = search && Object.keys(search).length > 0;
60
- if (!hasSearch) {
61
- return ` ${key}: "${pattern}",`;
62
- }
63
- const searchBody = Object.entries(search)
64
- .map(([k, v]) => `${k}: "${v}"`)
65
- .join(", ");
66
- return ` ${key}: { path: "${pattern}", search: { ${searchBody} } },`;
67
- }
68
- // ---------------------------------------------------------------------------
69
- // AST-based route extraction
70
- // ---------------------------------------------------------------------------
71
- /**
72
- * Extract route definitions from source code by walking the TypeScript AST.
73
- * Finds path() and path.json(), path.md(), etc. call expressions and extracts
74
- * the pattern, name, params, and optional search schema from each.
75
- * Skips unnamed paths (no { name: "..." }).
76
- */
77
- export function extractRoutesFromSource(code) {
78
- const sourceFile = ts.createSourceFile("input.tsx", code, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
79
- const routes = [];
80
- function visit(node) {
81
- if (ts.isCallExpression(node)) {
82
- const callee = node.expression;
83
- const isPath = (ts.isIdentifier(callee) && callee.text === "path") ||
84
- (ts.isPropertyAccessExpression(callee) &&
85
- ts.isIdentifier(callee.expression) && callee.expression.text === "path");
86
- if (isPath && node.arguments.length >= 1) {
87
- const route = extractRouteFromCallExpression(node);
88
- if (route)
89
- routes.push(route);
90
- }
91
- }
92
- ts.forEachChild(node, visit);
93
- }
94
- visit(sourceFile);
95
- return routes;
96
- }
97
- function extractRouteFromCallExpression(node) {
98
- const patternNode = node.arguments[0];
99
- const pattern = getStringValue(patternNode);
100
- if (pattern === null)
101
- return null;
102
- let name = null;
103
- let search;
104
- for (let i = 1; i < node.arguments.length; i++) {
105
- const arg = node.arguments[i];
106
- if (ts.isObjectLiteralExpression(arg)) {
107
- for (const prop of arg.properties) {
108
- if (!ts.isPropertyAssignment(prop))
109
- continue;
110
- const propName = ts.isIdentifier(prop.name) ? prop.name.text : null;
111
- if (propName === "name") {
112
- name = getStringValue(prop.initializer);
113
- }
114
- else if (propName === "search" && ts.isObjectLiteralExpression(prop.initializer)) {
115
- search = extractObjectStringProperties(prop.initializer);
116
- }
117
- }
118
- }
119
- }
120
- if (!name)
121
- return null;
122
- const params = extractParamsFromPattern(pattern);
123
- return {
124
- name,
125
- pattern,
126
- ...(params ? { params } : {}),
127
- ...(search && Object.keys(search).length > 0 ? { search } : {}),
128
- };
129
- }
130
- // ---------------------------------------------------------------------------
131
- // Code generation
132
- // ---------------------------------------------------------------------------
133
- /**
134
- * Generate a per-module types file from extracted routes.
135
- * Output has zero imports, preventing circular references.
136
- */
137
- export function generatePerModuleTypesSource(routes) {
138
- const valid = routes.filter(({ name }) => {
139
- if (!name || /["'\\`\n\r]/.test(name)) {
140
- console.warn(`[rsc-router] Skipping route with invalid name: ${JSON.stringify(name)}`);
141
- return false;
142
- }
143
- return true;
144
- });
145
- // Deduplicate by name (first definition wins — primary route before variants)
146
- const deduped = new Map();
147
- for (const { name, pattern, params, search } of valid) {
148
- if (deduped.has(name)) {
149
- console.warn(`[rsc-router] Duplicate route name "${name}" — keeping first definition`);
150
- continue;
151
- }
152
- deduped.set(name, { pattern, params, search });
153
- }
154
- const sorted = [...deduped.entries()]
155
- .sort(([a], [b]) => a.localeCompare(b));
156
- const body = sorted
157
- .map(([name, { pattern, params, search }]) => {
158
- const key = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(name) ? name : `"${name}"`;
159
- return formatRouteEntry(key, pattern, params, search);
160
- })
161
- .join("\n");
162
- return `// Auto-generated by @rangojs/router - do not edit\nexport const routes = {\n${body}\n} as const;\nexport type routes = typeof routes;\n`;
163
- }
164
- /**
165
- * Generates a .ts file that augments RSCRouter.GeneratedRouteMap
166
- * with route name -> pattern mappings. This enables Handler<"routeName">
167
- * without circular references since the file has no imports from the app.
168
- */
169
- export function generateRouteTypesSource(routeManifest, searchSchemas) {
170
- const entries = Object.entries(routeManifest).sort(([a], [b]) => a.localeCompare(b));
171
- const objectBody = entries
172
- .map(([name, pattern]) => {
173
- const key = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(name) ? name : `"${name}"`;
174
- const params = extractParamsFromPattern(pattern);
175
- const search = searchSchemas?.[name];
176
- return formatRouteEntry(key, pattern, params, search);
177
- })
178
- .join("\n");
179
- return `// Auto-generated by @rangojs/router - do not edit
180
- export const NamedRoutes = {
181
- ${objectBody}
182
- } as const;
183
-
184
- declare global {
185
- namespace RSCRouter {
186
- interface GeneratedRouteMap extends Readonly<typeof NamedRoutes> {}
187
- }
188
- }
189
- `;
190
- }
191
- /** Default exclude patterns for route type scanning. */
192
- export const DEFAULT_EXCLUDE_PATTERNS = [
193
- "**/__tests__/**",
194
- "**/__mocks__/**",
195
- "**/dist/**",
196
- "**/coverage/**",
197
- "**/*.test.{ts,tsx}",
198
- "**/*.spec.{ts,tsx}",
199
- ];
200
- /**
201
- * Compile include/exclude glob patterns into a single predicate.
202
- * Paths are made root-relative before matching.
203
- * Returns undefined when no filtering is needed (no include, default exclude).
204
- */
205
- export function createScanFilter(root, opts) {
206
- const { include, exclude } = opts;
207
- const hasInclude = include && include.length > 0;
208
- const hasCustomExclude = exclude !== undefined;
209
- if (!hasInclude && !hasCustomExclude)
210
- return undefined;
211
- const effectiveExclude = exclude ?? DEFAULT_EXCLUDE_PATTERNS;
212
- const includeMatcher = hasInclude ? picomatch(include) : null;
213
- const excludeMatcher = effectiveExclude.length > 0 ? picomatch(effectiveExclude) : null;
214
- return (absolutePath) => {
215
- const rel = relative(root, absolutePath);
216
- if (excludeMatcher && excludeMatcher(rel))
217
- return false;
218
- if (includeMatcher)
219
- return includeMatcher(rel);
220
- return true;
221
- };
222
- }
223
- /**
224
- * Recursively find .ts/.tsx files under a directory, skipping node_modules
225
- * and .gen. files.
226
- */
227
- export function findTsFiles(dir, filter) {
228
- const results = [];
229
- let entries;
230
- try {
231
- entries = readdirSync(dir, { withFileTypes: true });
232
- }
233
- catch (err) {
234
- console.warn(`[rsc-router] Failed to scan directory ${dir}: ${err.message}`);
235
- return results;
236
- }
237
- for (const entry of entries) {
238
- const fullPath = join(dir, entry.name);
239
- if (entry.isDirectory()) {
240
- if (entry.name === "node_modules" || entry.name.startsWith("."))
241
- continue;
242
- results.push(...findTsFiles(fullPath, filter));
243
- }
244
- else if ((entry.name.endsWith(".ts") || entry.name.endsWith(".tsx")) &&
245
- !entry.name.includes(".gen.")) {
246
- if (filter && !filter(fullPath))
247
- continue;
248
- results.push(fullPath);
249
- }
250
- }
251
- return results;
252
- }
253
- /**
254
- * Generate per-module route type files by statically parsing url module source.
255
- * Scans for files containing `urls(` and writes a sibling `.gen.ts` with the
256
- * extracted route name/pattern pairs. Only writes when content has changed.
257
- */
258
- export function writePerModuleRouteTypes(root, filter) {
259
- const files = findTsFiles(root, filter);
260
- for (const filePath of files) {
261
- writePerModuleRouteTypesForFile(filePath);
262
- }
263
- }
264
- /**
265
- * Find all variable names assigned to urls() calls in source code.
266
- * e.g. `export const patterns = urls(...)` → ["patterns"]
267
- */
268
- function findUrlsVariableNames(code) {
269
- const sourceFile = ts.createSourceFile("input.tsx", code, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
270
- const names = [];
271
- function visit(node) {
272
- if (ts.isVariableDeclaration(node) &&
273
- ts.isIdentifier(node.name) &&
274
- node.initializer &&
275
- ts.isCallExpression(node.initializer)) {
276
- const callee = node.initializer.expression;
277
- if (ts.isIdentifier(callee) && callee.text === "urls") {
278
- names.push(node.name.text);
279
- }
280
- }
281
- ts.forEachChild(node, visit);
282
- }
283
- visit(sourceFile);
284
- return names;
285
- }
286
- /**
287
- * Generate per-module route types for a single url module file.
288
- * Follows include() calls recursively to produce the full route tree.
289
- * No-ops if the file doesn't contain `urls(` or has no named routes.
290
- */
291
- export function writePerModuleRouteTypesForFile(filePath) {
292
- try {
293
- const source = readFileSync(filePath, "utf-8");
294
- if (!source.includes("urls("))
295
- return;
296
- const varNames = findUrlsVariableNames(source);
297
- let routes;
298
- if (varNames.length > 0) {
299
- // Follow includes recursively via the combined route map builder.
300
- // The visited set in buildCombinedRouteMapWithSearch prevents infinite loops.
301
- routes = [];
302
- for (const varName of varNames) {
303
- const { routes: routeMap, searchSchemas } = buildCombinedRouteMapWithSearch(filePath, varName);
304
- for (const [name, pattern] of Object.entries(routeMap)) {
305
- const params = extractParamsFromPattern(pattern);
306
- routes.push({
307
- name,
308
- pattern,
309
- ...(params ? { params } : {}),
310
- ...(searchSchemas[name] ? { search: searchSchemas[name] } : {}),
311
- });
312
- }
313
- }
314
- }
315
- else {
316
- // Fallback: no urls() variable found, extract path() calls directly
317
- routes = extractRoutesFromSource(source);
318
- }
319
- if (routes.length === 0)
320
- return;
321
- const genPath = filePath.replace(/\.(tsx?)$/, ".gen.ts");
322
- const genSource = generatePerModuleTypesSource(routes);
323
- const existing = existsSync(genPath) ? readFileSync(genPath, "utf-8") : null;
324
- if (existing !== genSource) {
325
- writeFileSync(genPath, genSource);
326
- console.log(`[rsc-router] Generated route types -> ${genPath}`);
327
- }
328
- }
329
- catch (err) {
330
- console.warn(`[rsc-router] Failed to generate route types for ${filePath}: ${err.message}`);
331
- }
332
- }
333
- // ---------------------------------------------------------------------------
334
- // AST-based include() parsing
335
- // ---------------------------------------------------------------------------
336
- /**
337
- * Extract include() calls from source code by walking the TypeScript AST.
338
- * Returns the path prefix, variable name, and optional name prefix for each.
339
- */
340
- export function extractIncludesFromSource(code) {
341
- const sourceFile = ts.createSourceFile("input.tsx", code, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
342
- const results = [];
343
- function visit(node) {
344
- if (ts.isCallExpression(node)) {
345
- const callee = node.expression;
346
- if (ts.isIdentifier(callee) && callee.text === "include") {
347
- const result = extractIncludeFromCallExpression(node);
348
- if (result)
349
- results.push(result);
350
- }
351
- }
352
- ts.forEachChild(node, visit);
353
- }
354
- visit(sourceFile);
355
- return results;
356
- }
357
- function extractIncludeFromCallExpression(node) {
358
- if (node.arguments.length < 2)
359
- return null;
360
- const pathPrefix = getStringValue(node.arguments[0]);
361
- if (pathPrefix === null)
362
- return null;
363
- const secondArg = node.arguments[1];
364
- if (!ts.isIdentifier(secondArg))
365
- return null;
366
- const variableName = secondArg.text;
367
- let namePrefix = null;
368
- if (node.arguments.length >= 3) {
369
- const thirdArg = node.arguments[2];
370
- if (ts.isObjectLiteralExpression(thirdArg)) {
371
- for (const prop of thirdArg.properties) {
372
- if (!ts.isPropertyAssignment(prop))
373
- continue;
374
- const propName = ts.isIdentifier(prop.name) ? prop.name.text : null;
375
- if (propName === "name") {
376
- namePrefix = getStringValue(prop.initializer);
377
- }
378
- }
379
- }
380
- }
381
- return { pathPrefix, variableName, namePrefix };
382
- }
383
- // ---------------------------------------------------------------------------
384
- // Import resolution
385
- // ---------------------------------------------------------------------------
386
- /**
387
- * Find the import statement for a local variable name.
388
- * Returns the import specifier and the exported name from the source module.
389
- */
390
- function resolveImportedVariable(code, localName) {
391
- const importRegex = /import\s*\{([^}]+)\}\s*from\s*["']([^"']+)["']/g;
392
- let match;
393
- while ((match = importRegex.exec(code)) !== null) {
394
- const imports = match[1];
395
- const specifier = match[2];
396
- const parts = imports
397
- .split(",")
398
- .map((s) => s.trim())
399
- .filter(Boolean);
400
- for (const part of parts) {
401
- const asMatch = part.match(/^(\w+)\s+as\s+(\w+)$/);
402
- if (asMatch && asMatch[2] === localName)
403
- return { specifier, exportedName: asMatch[1] };
404
- if (part === localName)
405
- return { specifier, exportedName: localName };
406
- }
407
- }
408
- return null;
409
- }
410
- /**
411
- * Resolve an import specifier relative to the importing file.
412
- * Strips .js/.mjs extensions and tries .ts/.tsx candidates.
413
- */
414
- function resolveImportPath(importSpec, fromFile) {
415
- if (!importSpec.startsWith("."))
416
- return null;
417
- const dir = dirname(fromFile);
418
- let base = importSpec;
419
- if (base.endsWith(".js"))
420
- base = base.slice(0, -3);
421
- else if (base.endsWith(".mjs"))
422
- base = base.slice(0, -4);
423
- const candidates = [
424
- resolve(dir, base + ".ts"),
425
- resolve(dir, base + ".tsx"),
426
- resolve(dir, base + "/index.ts"),
427
- resolve(dir, base + "/index.tsx"),
428
- ];
429
- for (const candidate of candidates) {
430
- if (existsSync(candidate))
431
- return candidate;
432
- }
433
- return null;
434
- }
435
- // ---------------------------------------------------------------------------
436
- // urls() block extraction for same-file variables
437
- // ---------------------------------------------------------------------------
438
- /**
439
- * Extract the source of a specific `const varName = urls(...)` call using
440
- * the TypeScript AST. Returns the full text of the urls() call expression.
441
- */
442
- function extractUrlsBlockForVariable(code, varName) {
443
- const sourceFile = ts.createSourceFile("input.tsx", code, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
444
- let result = null;
445
- function visit(node) {
446
- if (result)
447
- return;
448
- if (ts.isVariableDeclaration(node) &&
449
- ts.isIdentifier(node.name) &&
450
- node.name.text === varName &&
451
- node.initializer &&
452
- ts.isCallExpression(node.initializer)) {
453
- const callee = node.initializer.expression;
454
- if (ts.isIdentifier(callee) && callee.text === "urls") {
455
- result = node.initializer.getText(sourceFile);
456
- return;
457
- }
458
- }
459
- ts.forEachChild(node, visit);
460
- }
461
- visit(sourceFile);
462
- return result;
463
- }
464
- // ---------------------------------------------------------------------------
465
- // Combined route map building
466
- // ---------------------------------------------------------------------------
467
- /**
468
- * Recursively build a route map from a urls module file.
469
- * Extracts local path() routes and follows include() calls to sub-modules.
470
- * Handles both imported and same-file variables.
471
- */
472
- export function buildCombinedRouteMap(filePath, variableName, visited) {
473
- visited = visited ?? new Set();
474
- const realPath = resolve(filePath);
475
- const key = variableName ? `${realPath}:${variableName}` : realPath;
476
- if (visited.has(key)) {
477
- console.warn(`[rsc-router] Circular include detected, skipping: ${key}`);
478
- return {};
479
- }
480
- visited.add(key);
481
- let source;
482
- try {
483
- source = readFileSync(realPath, "utf-8");
484
- }
485
- catch {
486
- return {};
487
- }
488
- // If a specific variable is requested, extract just its urls() block
489
- let block;
490
- if (variableName) {
491
- const extracted = extractUrlsBlockForVariable(source, variableName);
492
- if (!extracted)
493
- return {};
494
- block = extracted;
495
- }
496
- else {
497
- block = source;
498
- }
499
- return buildRouteMapFromBlock(block, source, realPath, visited);
500
- }
501
- function buildRouteMapFromBlock(block, fullSource, filePath, visited, searchSchemasOut) {
502
- const routeMap = {};
503
- // Extract local path() routes
504
- const localRoutes = extractRoutesFromSource(block);
505
- for (const { name, pattern, search } of localRoutes) {
506
- routeMap[name] = pattern;
507
- if (search && searchSchemasOut) {
508
- searchSchemasOut[name] = search;
509
- }
510
- }
511
- // Extract include() calls
512
- const includes = extractIncludesFromSource(block);
513
- for (const { pathPrefix, variableName, namePrefix } of includes) {
514
- let childResult;
515
- // Try import resolution first
516
- const imported = resolveImportedVariable(fullSource, variableName);
517
- if (imported) {
518
- const targetFile = resolveImportPath(imported.specifier, filePath);
519
- if (!targetFile)
520
- continue;
521
- childResult = buildCombinedRouteMapWithSearch(targetFile, imported.exportedName, visited);
522
- }
523
- else {
524
- // Same-file variable
525
- childResult = buildCombinedRouteMapWithSearch(filePath, variableName, visited);
526
- }
527
- // Apply prefixes
528
- for (const [name, pattern] of Object.entries(childResult.routes)) {
529
- const prefixedName = namePrefix ? `${namePrefix}.${name}` : name;
530
- let prefixedPattern;
531
- if (pattern === "/") {
532
- prefixedPattern = pathPrefix || "/";
533
- }
534
- else if (pathPrefix.endsWith("/") && pattern.startsWith("/")) {
535
- prefixedPattern = pathPrefix + pattern.slice(1);
536
- }
537
- else {
538
- prefixedPattern = pathPrefix + pattern;
539
- }
540
- routeMap[prefixedName] = prefixedPattern;
541
- // Propagate search schemas with prefix
542
- if (childResult.searchSchemas[name] && searchSchemasOut) {
543
- searchSchemasOut[prefixedName] = childResult.searchSchemas[name];
544
- }
545
- }
546
- }
547
- return routeMap;
548
- }
549
- /**
550
- * Build route map and search schemas together.
551
- * Internal helper used by the include resolution path.
552
- */
553
- function buildCombinedRouteMapWithSearch(filePath, variableName, visited) {
554
- visited = visited ?? new Set();
555
- const realPath = resolve(filePath);
556
- const key = variableName ? `${realPath}:${variableName}` : realPath;
557
- if (visited.has(key)) {
558
- console.warn(`[rsc-router] Circular include detected, skipping: ${key}`);
559
- return { routes: {}, searchSchemas: {} };
560
- }
561
- visited.add(key);
562
- let source;
563
- try {
564
- source = readFileSync(realPath, "utf-8");
565
- }
566
- catch {
567
- return { routes: {}, searchSchemas: {} };
568
- }
569
- let block;
570
- if (variableName) {
571
- const extracted = extractUrlsBlockForVariable(source, variableName);
572
- if (!extracted)
573
- return { routes: {}, searchSchemas: {} };
574
- block = extracted;
575
- }
576
- else {
577
- block = source;
578
- }
579
- const searchSchemas = {};
580
- const routes = buildRouteMapFromBlock(block, source, realPath, visited, searchSchemas);
581
- return { routes, searchSchemas };
582
- }
583
- // ---------------------------------------------------------------------------
584
- // Router file URL extraction
585
- // ---------------------------------------------------------------------------
586
- /**
587
- * Extract the url patterns variable from a router file.
588
- * Looks for patterns like:
589
- * .routes(variableName)
590
- * urls: variableName
591
- * Returns the local variable name and optional import info.
592
- */
593
- function extractUrlsVariableFromRouter(code) {
594
- // Pattern 1: .routes(variableName) where variableName is an identifier (not a string)
595
- const routesCallMatch = code.match(/\.routes\s*\(\s*([a-zA-Z_$][\w$]*)\s*\)/);
596
- if (routesCallMatch)
597
- return routesCallMatch[1];
598
- // Pattern 2: urls: variableName in createRouter options
599
- const urlsOptionMatch = code.match(/urls\s*:\s*([a-zA-Z_$][\w$]*)/);
600
- if (urlsOptionMatch)
601
- return urlsOptionMatch[1];
602
- return null;
603
- }
604
- /**
605
- * Resolve routes and search schemas from a router source file by following the
606
- * variable passed to `.routes(...)` or `urls: ...` in createRouter options.
607
- */
608
- export function buildCombinedRouteMapForRouterFile(routerFilePath) {
609
- let routerSource;
610
- try {
611
- routerSource = readFileSync(routerFilePath, "utf-8");
612
- }
613
- catch {
614
- return { routes: {}, searchSchemas: {} };
615
- }
616
- const urlsVarName = extractUrlsVariableFromRouter(routerSource);
617
- if (!urlsVarName) {
618
- return { routes: {}, searchSchemas: {} };
619
- }
620
- const imported = resolveImportedVariable(routerSource, urlsVarName);
621
- if (imported) {
622
- const targetFile = resolveImportPath(imported.specifier, routerFilePath);
623
- if (!targetFile) {
624
- return { routes: {}, searchSchemas: {} };
625
- }
626
- return buildCombinedRouteMapWithSearch(targetFile, imported.exportedName);
627
- }
628
- return buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
629
- }
630
- // ---------------------------------------------------------------------------
631
- // Per-router named-routes.gen.ts writer
632
- // ---------------------------------------------------------------------------
633
- /**
634
- * Scan for files containing createRouter() and return their paths.
635
- * Call once at startup; the result can be reused on subsequent watcher triggers.
636
- */
637
- export function findRouterFiles(root, filter) {
638
- const files = findTsFiles(root, filter);
639
- const result = [];
640
- for (const filePath of files) {
641
- if (filePath.includes(".gen."))
642
- continue;
643
- try {
644
- const source = readFileSync(filePath, "utf-8");
645
- if (/\bcreateRouter\s*[<(]/.test(source)) {
646
- result.push(filePath);
647
- }
648
- }
649
- catch {
650
- continue;
651
- }
652
- }
653
- return result;
654
- }
655
- /**
656
- * Generate per-router named-routes.gen.ts files from known router file paths.
657
- * Re-reads each router file and resolves url patterns via static source parsing.
658
- *
659
- * Pass `knownRouterFiles` from a previous `findRouterFiles()` call to skip the
660
- * full directory scan. If omitted, falls back to scanning (startup path).
661
- */
662
- /**
663
- * Write named-routes.gen.ts files from static source parsing.
664
- * Dev-only: provides initial .gen.ts files for IDE types before runtime
665
- * discovery runs. Must NOT be called during production builds — runtime
666
- * discovery in buildStart produces the definitive file.
667
- */
668
- export function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
669
- // Delete old combined named-routes.gen.ts if it exists (stale from older versions)
670
- try {
671
- const oldCombinedPath = join(root, "src", "named-routes.gen.ts");
672
- if (existsSync(oldCombinedPath)) {
673
- unlinkSync(oldCombinedPath);
674
- console.log(`[rsc-router] Removed stale combined route types: ${oldCombinedPath}`);
675
- }
676
- }
677
- catch { }
678
- const routerFilePaths = knownRouterFiles ?? findRouterFiles(root);
679
- if (routerFilePaths.length === 0)
680
- return;
681
- for (const routerFilePath of routerFilePaths) {
682
- let routerSource;
683
- try {
684
- routerSource = readFileSync(routerFilePath, "utf-8");
685
- }
686
- catch {
687
- continue;
688
- }
689
- // Extract the urls variable name from .routes(varName) or urls: varName
690
- const urlsVarName = extractUrlsVariableFromRouter(routerSource);
691
- if (!urlsVarName)
692
- continue;
693
- // Resolve the variable to its source module
694
- let result;
695
- const imported = resolveImportedVariable(routerSource, urlsVarName);
696
- if (imported) {
697
- // Variable is imported from another module
698
- const targetFile = resolveImportPath(imported.specifier, routerFilePath);
699
- if (!targetFile)
700
- continue;
701
- result = buildCombinedRouteMapWithSearch(targetFile, imported.exportedName);
702
- }
703
- else {
704
- // Variable is defined in the same file
705
- result = buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
706
- }
707
- const routerBasename = pathBasename(routerFilePath).replace(/\.(tsx?|jsx?)$/, "");
708
- const outPath = join(dirname(routerFilePath), `${routerBasename}.named-routes.gen.ts`);
709
- const existing = existsSync(outPath) ? readFileSync(outPath, "utf-8") : null;
710
- // When the static parser can't extract routes (e.g. callback-style urls()),
711
- // write an empty placeholder so the build-time transform's injected import
712
- // resolves. Runtime discovery will overwrite this with the real routes.
713
- if (Object.keys(result.routes).length === 0) {
714
- if (!existing) {
715
- const emptySource = generateRouteTypesSource({});
716
- writeFileSync(outPath, emptySource);
717
- }
718
- continue;
719
- }
720
- const hasSearchSchemas = Object.keys(result.searchSchemas).length > 0;
721
- const source = generateRouteTypesSource(result.routes, hasSearchSchemas ? result.searchSchemas : undefined);
722
- if (existing !== source) {
723
- // On initial dev startup, don't overwrite a file from runtime discovery
724
- // (which has all dynamic routes) with a smaller set from the static
725
- // parser. The static parser can't see routes generated by Array.from()
726
- // or other dynamic code. During HMR (file watcher), always write so
727
- // newly added routes appear immediately.
728
- if (opts?.preserveIfLarger && existing) {
729
- const existingCount = (existing.match(/^\s+["a-zA-Z_$][^:]*:\s*["{]/gm) || []).length;
730
- const newCount = Object.keys(result.routes).length;
731
- if (existingCount > newCount) {
732
- continue;
733
- }
734
- }
735
- writeFileSync(outPath, source);
736
- console.log(`[rsc-router] Generated route types (${Object.keys(result.routes).length} routes) -> ${outPath}`);
737
- }
738
- }
739
- }
740
- //# sourceMappingURL=generate-route-types.js.map