@depup/tanstack__react-router 1.166.4-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -0
  3. package/dist/cjs/Asset.cjs +177 -0
  4. package/dist/cjs/Asset.cjs.map +1 -0
  5. package/dist/cjs/Asset.d.cts +5 -0
  6. package/dist/cjs/CatchBoundary.cjs +114 -0
  7. package/dist/cjs/CatchBoundary.cjs.map +1 -0
  8. package/dist/cjs/CatchBoundary.d.cts +12 -0
  9. package/dist/cjs/ClientOnly.cjs +21 -0
  10. package/dist/cjs/ClientOnly.cjs.map +1 -0
  11. package/dist/cjs/ClientOnly.d.cts +49 -0
  12. package/dist/cjs/HeadContent.cjs +15 -0
  13. package/dist/cjs/HeadContent.cjs.map +1 -0
  14. package/dist/cjs/HeadContent.d.cts +6 -0
  15. package/dist/cjs/HeadContent.dev.cjs +41 -0
  16. package/dist/cjs/HeadContent.dev.cjs.map +1 -0
  17. package/dist/cjs/HeadContent.dev.d.cts +10 -0
  18. package/dist/cjs/Match.cjs +255 -0
  19. package/dist/cjs/Match.cjs.map +1 -0
  20. package/dist/cjs/Match.d.cts +14 -0
  21. package/dist/cjs/Matches.cjs +138 -0
  22. package/dist/cjs/Matches.cjs.map +1 -0
  23. package/dist/cjs/Matches.d.cts +68 -0
  24. package/dist/cjs/RouterProvider.cjs +32 -0
  25. package/dist/cjs/RouterProvider.cjs.map +1 -0
  26. package/dist/cjs/RouterProvider.d.cts +23 -0
  27. package/dist/cjs/SafeFragment.cjs +8 -0
  28. package/dist/cjs/SafeFragment.cjs.map +1 -0
  29. package/dist/cjs/SafeFragment.d.cts +1 -0
  30. package/dist/cjs/ScriptOnce.cjs +22 -0
  31. package/dist/cjs/ScriptOnce.cjs.map +1 -0
  32. package/dist/cjs/ScriptOnce.d.cts +6 -0
  33. package/dist/cjs/Scripts.cjs +56 -0
  34. package/dist/cjs/Scripts.cjs.map +1 -0
  35. package/dist/cjs/Scripts.d.cts +5 -0
  36. package/dist/cjs/ScrollRestoration.cjs +38 -0
  37. package/dist/cjs/ScrollRestoration.cjs.map +1 -0
  38. package/dist/cjs/ScrollRestoration.d.cts +14 -0
  39. package/dist/cjs/Transitioner.cjs +119 -0
  40. package/dist/cjs/Transitioner.cjs.map +1 -0
  41. package/dist/cjs/Transitioner.d.cts +1 -0
  42. package/dist/cjs/awaited.cjs +51 -0
  43. package/dist/cjs/awaited.cjs.map +1 -0
  44. package/dist/cjs/awaited.d.cts +14 -0
  45. package/dist/cjs/fileRoute.cjs +109 -0
  46. package/dist/cjs/fileRoute.cjs.map +1 -0
  47. package/dist/cjs/fileRoute.d.cts +87 -0
  48. package/dist/cjs/headContentUtils.cjs +185 -0
  49. package/dist/cjs/headContentUtils.cjs.map +1 -0
  50. package/dist/cjs/headContentUtils.d.cts +7 -0
  51. package/dist/cjs/history.d.cts +8 -0
  52. package/dist/cjs/index.cjs +241 -0
  53. package/dist/cjs/index.cjs.map +1 -0
  54. package/dist/cjs/index.d.cts +51 -0
  55. package/dist/cjs/index.dev.cjs +241 -0
  56. package/dist/cjs/index.dev.cjs.map +1 -0
  57. package/dist/cjs/index.dev.d.cts +2 -0
  58. package/dist/cjs/lazyRouteComponent.cjs +70 -0
  59. package/dist/cjs/lazyRouteComponent.cjs.map +1 -0
  60. package/dist/cjs/lazyRouteComponent.d.cts +11 -0
  61. package/dist/cjs/link.cjs +573 -0
  62. package/dist/cjs/link.cjs.map +1 -0
  63. package/dist/cjs/link.d.cts +98 -0
  64. package/dist/cjs/matchContext.cjs +27 -0
  65. package/dist/cjs/matchContext.cjs.map +1 -0
  66. package/dist/cjs/matchContext.d.cts +3 -0
  67. package/dist/cjs/not-found.cjs +38 -0
  68. package/dist/cjs/not-found.cjs.map +1 -0
  69. package/dist/cjs/not-found.d.cts +9 -0
  70. package/dist/cjs/renderRouteNotFound.cjs +22 -0
  71. package/dist/cjs/renderRouteNotFound.cjs.map +1 -0
  72. package/dist/cjs/renderRouteNotFound.d.cts +10 -0
  73. package/dist/cjs/route.cjs +198 -0
  74. package/dist/cjs/route.cjs.map +1 -0
  75. package/dist/cjs/route.d.cts +142 -0
  76. package/dist/cjs/router.cjs +22 -0
  77. package/dist/cjs/router.cjs.map +1 -0
  78. package/dist/cjs/router.d.cts +83 -0
  79. package/dist/cjs/routerContext.cjs +23 -0
  80. package/dist/cjs/routerContext.cjs.map +1 -0
  81. package/dist/cjs/routerContext.d.cts +3 -0
  82. package/dist/cjs/scroll-restoration.cjs +39 -0
  83. package/dist/cjs/scroll-restoration.cjs.map +1 -0
  84. package/dist/cjs/scroll-restoration.d.cts +1 -0
  85. package/dist/cjs/ssr/RouterClient.cjs +25 -0
  86. package/dist/cjs/ssr/RouterClient.cjs.map +1 -0
  87. package/dist/cjs/ssr/RouterClient.d.cts +4 -0
  88. package/dist/cjs/ssr/RouterServer.cjs +9 -0
  89. package/dist/cjs/ssr/RouterServer.cjs.map +1 -0
  90. package/dist/cjs/ssr/RouterServer.d.cts +4 -0
  91. package/dist/cjs/ssr/client.cjs +12 -0
  92. package/dist/cjs/ssr/client.cjs.map +1 -0
  93. package/dist/cjs/ssr/client.d.cts +2 -0
  94. package/dist/cjs/ssr/defaultRenderHandler.cjs +15 -0
  95. package/dist/cjs/ssr/defaultRenderHandler.cjs.map +1 -0
  96. package/dist/cjs/ssr/defaultRenderHandler.d.cts +1 -0
  97. package/dist/cjs/ssr/defaultStreamHandler.cjs +16 -0
  98. package/dist/cjs/ssr/defaultStreamHandler.cjs.map +1 -0
  99. package/dist/cjs/ssr/defaultStreamHandler.d.cts +1 -0
  100. package/dist/cjs/ssr/renderRouterToStream.cjs +73 -0
  101. package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -0
  102. package/dist/cjs/ssr/renderRouterToStream.d.cts +8 -0
  103. package/dist/cjs/ssr/renderRouterToString.cjs +31 -0
  104. package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -0
  105. package/dist/cjs/ssr/renderRouterToString.d.cts +7 -0
  106. package/dist/cjs/ssr/serializer.d.cts +6 -0
  107. package/dist/cjs/ssr/server.cjs +20 -0
  108. package/dist/cjs/ssr/server.cjs.map +1 -0
  109. package/dist/cjs/ssr/server.d.cts +6 -0
  110. package/dist/cjs/structuralSharing.d.cts +8 -0
  111. package/dist/cjs/typePrimitives.d.cts +16 -0
  112. package/dist/cjs/useBlocker.cjs +171 -0
  113. package/dist/cjs/useBlocker.cjs.map +1 -0
  114. package/dist/cjs/useBlocker.d.cts +66 -0
  115. package/dist/cjs/useCanGoBack.cjs +8 -0
  116. package/dist/cjs/useCanGoBack.cjs.map +1 -0
  117. package/dist/cjs/useCanGoBack.d.cts +1 -0
  118. package/dist/cjs/useLoaderData.cjs +15 -0
  119. package/dist/cjs/useLoaderData.cjs.map +1 -0
  120. package/dist/cjs/useLoaderData.d.cts +19 -0
  121. package/dist/cjs/useLoaderDeps.cjs +14 -0
  122. package/dist/cjs/useLoaderDeps.cjs.map +1 -0
  123. package/dist/cjs/useLoaderDeps.d.cts +19 -0
  124. package/dist/cjs/useLocation.cjs +10 -0
  125. package/dist/cjs/useLocation.cjs.map +1 -0
  126. package/dist/cjs/useLocation.d.cts +18 -0
  127. package/dist/cjs/useMatch.cjs +47 -0
  128. package/dist/cjs/useMatch.cjs.map +1 -0
  129. package/dist/cjs/useMatch.d.cts +14 -0
  130. package/dist/cjs/useNavigate.cjs +49 -0
  131. package/dist/cjs/useNavigate.cjs.map +1 -0
  132. package/dist/cjs/useNavigate.d.cts +28 -0
  133. package/dist/cjs/useParams.cjs +17 -0
  134. package/dist/cjs/useParams.cjs.map +1 -0
  135. package/dist/cjs/useParams.d.cts +21 -0
  136. package/dist/cjs/useRouteContext.cjs +11 -0
  137. package/dist/cjs/useRouteContext.cjs.map +1 -0
  138. package/dist/cjs/useRouteContext.d.cts +3 -0
  139. package/dist/cjs/useRouter.cjs +32 -0
  140. package/dist/cjs/useRouter.cjs.map +1 -0
  141. package/dist/cjs/useRouter.d.cts +14 -0
  142. package/dist/cjs/useRouterState.cjs +38 -0
  143. package/dist/cjs/useRouterState.cjs.map +1 -0
  144. package/dist/cjs/useRouterState.d.cts +20 -0
  145. package/dist/cjs/useSearch.cjs +16 -0
  146. package/dist/cjs/useSearch.cjs.map +1 -0
  147. package/dist/cjs/useSearch.d.cts +21 -0
  148. package/dist/cjs/utils.cjs +62 -0
  149. package/dist/cjs/utils.cjs.map +1 -0
  150. package/dist/cjs/utils.d.cts +54 -0
  151. package/dist/esm/Asset.d.ts +5 -0
  152. package/dist/esm/Asset.js +160 -0
  153. package/dist/esm/Asset.js.map +1 -0
  154. package/dist/esm/CatchBoundary.d.ts +12 -0
  155. package/dist/esm/CatchBoundary.js +97 -0
  156. package/dist/esm/CatchBoundary.js.map +1 -0
  157. package/dist/esm/ClientOnly.d.ts +49 -0
  158. package/dist/esm/ClientOnly.js +21 -0
  159. package/dist/esm/ClientOnly.js.map +1 -0
  160. package/dist/esm/HeadContent.d.ts +6 -0
  161. package/dist/esm/HeadContent.dev.d.ts +10 -0
  162. package/dist/esm/HeadContent.dev.js +25 -0
  163. package/dist/esm/HeadContent.dev.js.map +1 -0
  164. package/dist/esm/HeadContent.js +15 -0
  165. package/dist/esm/HeadContent.js.map +1 -0
  166. package/dist/esm/Match.d.ts +14 -0
  167. package/dist/esm/Match.js +238 -0
  168. package/dist/esm/Match.js.map +1 -0
  169. package/dist/esm/Matches.d.ts +68 -0
  170. package/dist/esm/Matches.js +121 -0
  171. package/dist/esm/Matches.js.map +1 -0
  172. package/dist/esm/RouterProvider.d.ts +23 -0
  173. package/dist/esm/RouterProvider.js +32 -0
  174. package/dist/esm/RouterProvider.js.map +1 -0
  175. package/dist/esm/SafeFragment.d.ts +1 -0
  176. package/dist/esm/SafeFragment.js +8 -0
  177. package/dist/esm/SafeFragment.js.map +1 -0
  178. package/dist/esm/ScriptOnce.d.ts +6 -0
  179. package/dist/esm/ScriptOnce.js +22 -0
  180. package/dist/esm/ScriptOnce.js.map +1 -0
  181. package/dist/esm/Scripts.d.ts +5 -0
  182. package/dist/esm/Scripts.js +56 -0
  183. package/dist/esm/Scripts.js.map +1 -0
  184. package/dist/esm/ScrollRestoration.d.ts +14 -0
  185. package/dist/esm/ScrollRestoration.js +38 -0
  186. package/dist/esm/ScrollRestoration.js.map +1 -0
  187. package/dist/esm/Transitioner.d.ts +1 -0
  188. package/dist/esm/Transitioner.js +102 -0
  189. package/dist/esm/Transitioner.js.map +1 -0
  190. package/dist/esm/awaited.d.ts +14 -0
  191. package/dist/esm/awaited.js +34 -0
  192. package/dist/esm/awaited.js.map +1 -0
  193. package/dist/esm/fileRoute.d.ts +87 -0
  194. package/dist/esm/fileRoute.js +109 -0
  195. package/dist/esm/fileRoute.js.map +1 -0
  196. package/dist/esm/headContentUtils.d.ts +7 -0
  197. package/dist/esm/headContentUtils.js +168 -0
  198. package/dist/esm/headContentUtils.js.map +1 -0
  199. package/dist/esm/history.d.ts +8 -0
  200. package/dist/esm/index.d.ts +51 -0
  201. package/dist/esm/index.dev.d.ts +2 -0
  202. package/dist/esm/index.dev.js +133 -0
  203. package/dist/esm/index.dev.js.map +1 -0
  204. package/dist/esm/index.js +133 -0
  205. package/dist/esm/index.js.map +1 -0
  206. package/dist/esm/lazyRouteComponent.d.ts +11 -0
  207. package/dist/esm/lazyRouteComponent.js +53 -0
  208. package/dist/esm/lazyRouteComponent.js.map +1 -0
  209. package/dist/esm/link.d.ts +98 -0
  210. package/dist/esm/link.js +556 -0
  211. package/dist/esm/link.js.map +1 -0
  212. package/dist/esm/matchContext.d.ts +3 -0
  213. package/dist/esm/matchContext.js +10 -0
  214. package/dist/esm/matchContext.js.map +1 -0
  215. package/dist/esm/not-found.d.ts +9 -0
  216. package/dist/esm/not-found.js +38 -0
  217. package/dist/esm/not-found.js.map +1 -0
  218. package/dist/esm/renderRouteNotFound.d.ts +10 -0
  219. package/dist/esm/renderRouteNotFound.js +22 -0
  220. package/dist/esm/renderRouteNotFound.js.map +1 -0
  221. package/dist/esm/route.d.ts +142 -0
  222. package/dist/esm/route.js +198 -0
  223. package/dist/esm/route.js.map +1 -0
  224. package/dist/esm/router.d.ts +83 -0
  225. package/dist/esm/router.js +22 -0
  226. package/dist/esm/router.js.map +1 -0
  227. package/dist/esm/routerContext.d.ts +3 -0
  228. package/dist/esm/routerContext.js +6 -0
  229. package/dist/esm/routerContext.js.map +1 -0
  230. package/dist/esm/scroll-restoration.d.ts +1 -0
  231. package/dist/esm/scroll-restoration.js +39 -0
  232. package/dist/esm/scroll-restoration.js.map +1 -0
  233. package/dist/esm/ssr/RouterClient.d.ts +4 -0
  234. package/dist/esm/ssr/RouterClient.js +25 -0
  235. package/dist/esm/ssr/RouterClient.js.map +1 -0
  236. package/dist/esm/ssr/RouterServer.d.ts +4 -0
  237. package/dist/esm/ssr/RouterServer.js +9 -0
  238. package/dist/esm/ssr/RouterServer.js.map +1 -0
  239. package/dist/esm/ssr/client.d.ts +2 -0
  240. package/dist/esm/ssr/client.js +6 -0
  241. package/dist/esm/ssr/client.js.map +1 -0
  242. package/dist/esm/ssr/defaultRenderHandler.d.ts +1 -0
  243. package/dist/esm/ssr/defaultRenderHandler.js +15 -0
  244. package/dist/esm/ssr/defaultRenderHandler.js.map +1 -0
  245. package/dist/esm/ssr/defaultStreamHandler.d.ts +1 -0
  246. package/dist/esm/ssr/defaultStreamHandler.js +16 -0
  247. package/dist/esm/ssr/defaultStreamHandler.js.map +1 -0
  248. package/dist/esm/ssr/renderRouterToStream.d.ts +8 -0
  249. package/dist/esm/ssr/renderRouterToStream.js +73 -0
  250. package/dist/esm/ssr/renderRouterToStream.js.map +1 -0
  251. package/dist/esm/ssr/renderRouterToString.d.ts +7 -0
  252. package/dist/esm/ssr/renderRouterToString.js +31 -0
  253. package/dist/esm/ssr/renderRouterToString.js.map +1 -0
  254. package/dist/esm/ssr/serializer.d.ts +6 -0
  255. package/dist/esm/ssr/server.d.ts +6 -0
  256. package/dist/esm/ssr/server.js +14 -0
  257. package/dist/esm/ssr/server.js.map +1 -0
  258. package/dist/esm/structuralSharing.d.ts +8 -0
  259. package/dist/esm/typePrimitives.d.ts +16 -0
  260. package/dist/esm/useBlocker.d.ts +66 -0
  261. package/dist/esm/useBlocker.js +154 -0
  262. package/dist/esm/useBlocker.js.map +1 -0
  263. package/dist/esm/useCanGoBack.d.ts +1 -0
  264. package/dist/esm/useCanGoBack.js +8 -0
  265. package/dist/esm/useCanGoBack.js.map +1 -0
  266. package/dist/esm/useLoaderData.d.ts +19 -0
  267. package/dist/esm/useLoaderData.js +15 -0
  268. package/dist/esm/useLoaderData.js.map +1 -0
  269. package/dist/esm/useLoaderDeps.d.ts +19 -0
  270. package/dist/esm/useLoaderDeps.js +14 -0
  271. package/dist/esm/useLoaderDeps.js.map +1 -0
  272. package/dist/esm/useLocation.d.ts +18 -0
  273. package/dist/esm/useLocation.js +10 -0
  274. package/dist/esm/useLocation.js.map +1 -0
  275. package/dist/esm/useMatch.d.ts +14 -0
  276. package/dist/esm/useMatch.js +30 -0
  277. package/dist/esm/useMatch.js.map +1 -0
  278. package/dist/esm/useNavigate.d.ts +28 -0
  279. package/dist/esm/useNavigate.js +32 -0
  280. package/dist/esm/useNavigate.js.map +1 -0
  281. package/dist/esm/useParams.d.ts +21 -0
  282. package/dist/esm/useParams.js +17 -0
  283. package/dist/esm/useParams.js.map +1 -0
  284. package/dist/esm/useRouteContext.d.ts +3 -0
  285. package/dist/esm/useRouteContext.js +11 -0
  286. package/dist/esm/useRouteContext.js.map +1 -0
  287. package/dist/esm/useRouter.d.ts +14 -0
  288. package/dist/esm/useRouter.js +15 -0
  289. package/dist/esm/useRouter.js.map +1 -0
  290. package/dist/esm/useRouterState.d.ts +20 -0
  291. package/dist/esm/useRouterState.js +38 -0
  292. package/dist/esm/useRouterState.js.map +1 -0
  293. package/dist/esm/useSearch.d.ts +21 -0
  294. package/dist/esm/useSearch.js +16 -0
  295. package/dist/esm/useSearch.js.map +1 -0
  296. package/dist/esm/utils.d.ts +54 -0
  297. package/dist/esm/utils.js +45 -0
  298. package/dist/esm/utils.js.map +1 -0
  299. package/dist/llms/index.d.ts +3 -0
  300. package/dist/llms/index.js +43 -0
  301. package/dist/llms/rules/api.d.ts +2 -0
  302. package/dist/llms/rules/api.js +4612 -0
  303. package/dist/llms/rules/guide.d.ts +2 -0
  304. package/dist/llms/rules/guide.js +10690 -0
  305. package/dist/llms/rules/installation.d.ts +2 -0
  306. package/dist/llms/rules/installation.js +1285 -0
  307. package/dist/llms/rules/routing.d.ts +2 -0
  308. package/dist/llms/rules/routing.js +1984 -0
  309. package/dist/llms/rules/setup-and-architecture.d.ts +2 -0
  310. package/dist/llms/rules/setup-and-architecture.js +920 -0
  311. package/package.json +142 -0
  312. package/src/Asset.tsx +219 -0
  313. package/src/CatchBoundary.tsx +120 -0
  314. package/src/ClientOnly.tsx +68 -0
  315. package/src/HeadContent.dev.tsx +46 -0
  316. package/src/HeadContent.tsx +22 -0
  317. package/src/Match.tsx +360 -0
  318. package/src/Matches.tsx +313 -0
  319. package/src/RouterProvider.tsx +92 -0
  320. package/src/SafeFragment.tsx +5 -0
  321. package/src/ScriptOnce.tsx +21 -0
  322. package/src/Scripts.tsx +80 -0
  323. package/src/ScrollRestoration.tsx +69 -0
  324. package/src/Transitioner.tsx +134 -0
  325. package/src/awaited.tsx +55 -0
  326. package/src/fileRoute.ts +313 -0
  327. package/src/headContentUtils.tsx +217 -0
  328. package/src/history.ts +9 -0
  329. package/src/index.dev.tsx +6 -0
  330. package/src/index.tsx +341 -0
  331. package/src/lazyRouteComponent.tsx +96 -0
  332. package/src/link.tsx +984 -0
  333. package/src/matchContext.tsx +8 -0
  334. package/src/not-found.tsx +43 -0
  335. package/src/renderRouteNotFound.tsx +35 -0
  336. package/src/route.tsx +740 -0
  337. package/src/router.ts +127 -0
  338. package/src/routerContext.tsx +4 -0
  339. package/src/scroll-restoration.tsx +45 -0
  340. package/src/ssr/RouterClient.tsx +22 -0
  341. package/src/ssr/RouterServer.tsx +9 -0
  342. package/src/ssr/client.ts +2 -0
  343. package/src/ssr/defaultRenderHandler.tsx +12 -0
  344. package/src/ssr/defaultStreamHandler.tsx +13 -0
  345. package/src/ssr/renderRouterToStream.tsx +90 -0
  346. package/src/ssr/renderRouterToString.tsx +36 -0
  347. package/src/ssr/serializer.ts +7 -0
  348. package/src/ssr/server.ts +6 -0
  349. package/src/structuralSharing.ts +47 -0
  350. package/src/typePrimitives.ts +84 -0
  351. package/src/useBlocker.tsx +320 -0
  352. package/src/useCanGoBack.ts +5 -0
  353. package/src/useLoaderData.tsx +91 -0
  354. package/src/useLoaderDeps.tsx +69 -0
  355. package/src/useLocation.tsx +52 -0
  356. package/src/useMatch.tsx +123 -0
  357. package/src/useNavigate.tsx +78 -0
  358. package/src/useParams.tsx +107 -0
  359. package/src/useRouteContext.ts +30 -0
  360. package/src/useRouter.tsx +25 -0
  361. package/src/useRouterState.tsx +86 -0
  362. package/src/useSearch.tsx +105 -0
  363. package/src/utils.ts +125 -0
package/package.json ADDED
@@ -0,0 +1,142 @@
1
+ {
2
+ "name": "@depup/tanstack__react-router",
3
+ "version": "1.166.4-depup.0",
4
+ "description": "[DepUp] Modern and scalable routing for React applications",
5
+ "author": "Tanner Linsley",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/TanStack/router.git",
10
+ "directory": "packages/react-router"
11
+ },
12
+ "homepage": "https://tanstack.com/router",
13
+ "funding": {
14
+ "type": "github",
15
+ "url": "https://github.com/sponsors/tannerlinsley"
16
+ },
17
+ "keywords": [
18
+ "depup",
19
+ "dependency-bumped",
20
+ "updated-deps",
21
+ "@tanstack/react-router",
22
+ "react",
23
+ "location",
24
+ "router",
25
+ "routing",
26
+ "async",
27
+ "async router",
28
+ "typescript"
29
+ ],
30
+ "type": "module",
31
+ "types": "dist/esm/index.d.ts",
32
+ "main": "dist/cjs/index.cjs",
33
+ "module": "dist/esm/index.js",
34
+ "exports": {
35
+ ".": {
36
+ "import": {
37
+ "types": "./dist/esm/index.d.ts",
38
+ "development": "./dist/esm/index.dev.js",
39
+ "default": "./dist/esm/index.js"
40
+ },
41
+ "require": {
42
+ "types": "./dist/cjs/index.d.cts",
43
+ "development": "./dist/cjs/index.dev.cjs",
44
+ "default": "./dist/cjs/index.cjs"
45
+ }
46
+ },
47
+ "./ssr/server": {
48
+ "import": {
49
+ "types": "./dist/esm/ssr/server.d.ts",
50
+ "default": "./dist/esm/ssr/server.js"
51
+ },
52
+ "require": {
53
+ "types": "./dist/cjs/ssr/server.d.cts",
54
+ "default": "./dist/cjs/ssr/server.cjs"
55
+ }
56
+ },
57
+ "./ssr/client": {
58
+ "import": {
59
+ "types": "./dist/esm/ssr/client.d.ts",
60
+ "default": "./dist/esm/ssr/client.js"
61
+ },
62
+ "require": {
63
+ "types": "./dist/cjs/ssr/client.d.cts",
64
+ "default": "./dist/cjs/ssr/client.cjs"
65
+ }
66
+ },
67
+ "./package.json": "./package.json",
68
+ "./llms": {
69
+ "import": {
70
+ "types": "./dist/llms/index.d.ts",
71
+ "default": "./dist/llms/index.js"
72
+ }
73
+ }
74
+ },
75
+ "sideEffects": false,
76
+ "files": [
77
+ "dist",
78
+ "src"
79
+ ],
80
+ "engines": {
81
+ "node": ">=20.19"
82
+ },
83
+ "dependencies": {
84
+ "@tanstack/react-store": "^0.9.2",
85
+ "isbot": "^5.1.35",
86
+ "tiny-invariant": "^1.3.3",
87
+ "tiny-warning": "^1.0.3",
88
+ "@tanstack/history": "1.161.4",
89
+ "@tanstack/router-core": "1.166.4"
90
+ },
91
+ "devDependencies": {
92
+ "@testing-library/jest-dom": "^6.6.3",
93
+ "@testing-library/react": "^16.2.0",
94
+ "@vitejs/plugin-react": "^4.3.4",
95
+ "combinate": "^1.1.11",
96
+ "react": "^19.0.0",
97
+ "react-dom": "^19.0.0",
98
+ "vibe-rules": "^0.2.57",
99
+ "vite": "*",
100
+ "zod": "^3.24.2"
101
+ },
102
+ "peerDependencies": {
103
+ "react": ">=18.0.0 || >=19.0.0",
104
+ "react-dom": ">=18.0.0 || >=19.0.0"
105
+ },
106
+ "scripts": {
107
+ "clean": "rimraf ./dist && rimraf ./coverage",
108
+ "test:eslint": "eslint",
109
+ "test:types": "pnpm run \"/^test:types:ts[0-9]{2}$/\"",
110
+ "test:types:ts54": "node ../../node_modules/typescript54/lib/tsc.js -p tsconfig.legacy.json",
111
+ "test:types:ts55": "node ../../node_modules/typescript55/lib/tsc.js -p tsconfig.legacy.json",
112
+ "test:types:ts56": "node ../../node_modules/typescript56/lib/tsc.js -p tsconfig.legacy.json",
113
+ "test:types:ts57": "node ../../node_modules/typescript57/lib/tsc.js -p tsconfig.legacy.json",
114
+ "test:types:ts58": "node ../../node_modules/typescript58/lib/tsc.js -p tsconfig.legacy.json",
115
+ "test:types:ts59": "tsc -p tsconfig.legacy.json",
116
+ "test:unit": "vitest",
117
+ "test:unit:dev": "pnpm run test:unit --watch --hideSkippedTests",
118
+ "test:perf": "vitest bench",
119
+ "test:perf:dev": "pnpm run test:perf --watch --hideSkippedTests",
120
+ "test:build": "publint --strict && attw --ignore-rules no-resolution --pack .",
121
+ "build": "pnpm run build:lib && pnpm run build:llm",
122
+ "build:lib": "vite build",
123
+ "build:llm": "node ../../scripts/llms-generate.mjs react-router && tsc -p ./llms/tsconfig.json"
124
+ },
125
+ "depup": {
126
+ "changes": {
127
+ "@tanstack/react-store": {
128
+ "from": "^0.9.1",
129
+ "to": "^0.9.2"
130
+ },
131
+ "isbot": {
132
+ "from": "^5.1.22",
133
+ "to": "^5.1.35"
134
+ }
135
+ },
136
+ "depsUpdated": 2,
137
+ "originalPackage": "@tanstack/react-router",
138
+ "originalVersion": "1.166.4",
139
+ "processedAt": "2026-03-09T20:26:17.368Z",
140
+ "smokeTest": "passed"
141
+ }
142
+ }
package/src/Asset.tsx ADDED
@@ -0,0 +1,219 @@
1
+ import * as React from 'react'
2
+ import { isServer } from '@tanstack/router-core/isServer'
3
+ import { useRouter } from './useRouter'
4
+ import { useHydrated } from './ClientOnly'
5
+ import type { RouterManagedTag } from '@tanstack/router-core'
6
+
7
+ interface ScriptAttrs {
8
+ [key: string]: string | boolean | undefined
9
+ src?: string
10
+ suppressHydrationWarning?: boolean
11
+ }
12
+
13
+ export function Asset({
14
+ tag,
15
+ attrs,
16
+ children,
17
+ nonce,
18
+ }: RouterManagedTag & { nonce?: string }): React.ReactElement | null {
19
+ switch (tag) {
20
+ case 'title':
21
+ return (
22
+ <title {...attrs} suppressHydrationWarning>
23
+ {children}
24
+ </title>
25
+ )
26
+ case 'meta':
27
+ return <meta {...attrs} suppressHydrationWarning />
28
+ case 'link':
29
+ return <link {...attrs} nonce={nonce} suppressHydrationWarning />
30
+ case 'style':
31
+ return (
32
+ <style
33
+ {...attrs}
34
+ dangerouslySetInnerHTML={{ __html: children as string }}
35
+ nonce={nonce}
36
+ />
37
+ )
38
+ case 'script':
39
+ return <Script attrs={attrs}>{children}</Script>
40
+ default:
41
+ return null
42
+ }
43
+ }
44
+
45
+ function Script({
46
+ attrs,
47
+ children,
48
+ }: {
49
+ attrs?: ScriptAttrs
50
+ children?: string
51
+ }) {
52
+ const router = useRouter()
53
+ const hydrated = useHydrated()
54
+ const dataScript =
55
+ typeof attrs?.type === 'string' &&
56
+ attrs.type !== '' &&
57
+ attrs.type !== 'text/javascript' &&
58
+ attrs.type !== 'module'
59
+
60
+ if (
61
+ process.env.NODE_ENV !== 'production' &&
62
+ attrs?.src &&
63
+ typeof children === 'string' &&
64
+ children.trim().length
65
+ ) {
66
+ console.warn(
67
+ '[TanStack Router] <Script> received both `src` and `children`. The `children` content will be ignored. Remove `children` or remove `src`.',
68
+ )
69
+ }
70
+
71
+ React.useEffect(() => {
72
+ if (dataScript) return
73
+
74
+ if (attrs?.src) {
75
+ const normSrc = (() => {
76
+ try {
77
+ const base = document.baseURI || window.location.href
78
+ return new URL(attrs.src, base).href
79
+ } catch {
80
+ return attrs.src
81
+ }
82
+ })()
83
+ const existingScript = Array.from(
84
+ document.querySelectorAll('script[src]'),
85
+ ).find((el) => (el as HTMLScriptElement).src === normSrc)
86
+
87
+ if (existingScript) {
88
+ return
89
+ }
90
+
91
+ const script = document.createElement('script')
92
+
93
+ for (const [key, value] of Object.entries(attrs)) {
94
+ if (
95
+ key !== 'suppressHydrationWarning' &&
96
+ value !== undefined &&
97
+ value !== false
98
+ ) {
99
+ script.setAttribute(
100
+ key,
101
+ typeof value === 'boolean' ? '' : String(value),
102
+ )
103
+ }
104
+ }
105
+
106
+ document.head.appendChild(script)
107
+
108
+ return () => {
109
+ if (script.parentNode) {
110
+ script.parentNode.removeChild(script)
111
+ }
112
+ }
113
+ }
114
+
115
+ if (typeof children === 'string') {
116
+ const typeAttr =
117
+ typeof attrs?.type === 'string' ? attrs.type : 'text/javascript'
118
+ const nonceAttr =
119
+ typeof attrs?.nonce === 'string' ? attrs.nonce : undefined
120
+ const existingScript = Array.from(
121
+ document.querySelectorAll('script:not([src])'),
122
+ ).find((el) => {
123
+ if (!(el instanceof HTMLScriptElement)) return false
124
+ const sType = el.getAttribute('type') ?? 'text/javascript'
125
+ const sNonce = el.getAttribute('nonce') ?? undefined
126
+ return (
127
+ el.textContent === children &&
128
+ sType === typeAttr &&
129
+ sNonce === nonceAttr
130
+ )
131
+ })
132
+
133
+ if (existingScript) {
134
+ return
135
+ }
136
+
137
+ const script = document.createElement('script')
138
+ script.textContent = children
139
+
140
+ if (attrs) {
141
+ for (const [key, value] of Object.entries(attrs)) {
142
+ if (
143
+ key !== 'suppressHydrationWarning' &&
144
+ value !== undefined &&
145
+ value !== false
146
+ ) {
147
+ script.setAttribute(
148
+ key,
149
+ typeof value === 'boolean' ? '' : String(value),
150
+ )
151
+ }
152
+ }
153
+ }
154
+
155
+ document.head.appendChild(script)
156
+
157
+ return () => {
158
+ if (script.parentNode) {
159
+ script.parentNode.removeChild(script)
160
+ }
161
+ }
162
+ }
163
+
164
+ return undefined
165
+ }, [attrs, children, dataScript])
166
+
167
+ // --- Server rendering ---
168
+ if (isServer ?? router.isServer) {
169
+ if (attrs?.src) {
170
+ return <script {...attrs} suppressHydrationWarning />
171
+ }
172
+
173
+ if (typeof children === 'string') {
174
+ return (
175
+ <script
176
+ {...attrs}
177
+ dangerouslySetInnerHTML={{ __html: children }}
178
+ suppressHydrationWarning
179
+ />
180
+ )
181
+ }
182
+
183
+ return null
184
+ }
185
+
186
+ // --- Client rendering ---
187
+
188
+ // Data scripts (e.g. application/ld+json) are rendered in the tree;
189
+ // the useEffect intentionally skips them.
190
+ if (dataScript && typeof children === 'string') {
191
+ return (
192
+ <script
193
+ {...attrs}
194
+ suppressHydrationWarning
195
+ dangerouslySetInnerHTML={{ __html: children }}
196
+ />
197
+ )
198
+ }
199
+
200
+ // During hydration (before useEffect has fired), render the script element
201
+ // to match the server-rendered HTML and avoid structural hydration mismatches.
202
+ // After hydration, return null — the useEffect handles imperative injection.
203
+ if (!hydrated) {
204
+ if (attrs?.src) {
205
+ return <script {...attrs} suppressHydrationWarning />
206
+ }
207
+ if (typeof children === 'string') {
208
+ return (
209
+ <script
210
+ {...attrs}
211
+ dangerouslySetInnerHTML={{ __html: children }}
212
+ suppressHydrationWarning
213
+ />
214
+ )
215
+ }
216
+ }
217
+
218
+ return null
219
+ }
@@ -0,0 +1,120 @@
1
+ import * as React from 'react'
2
+ import type { ErrorRouteComponent } from './route'
3
+ import type { ErrorInfo } from 'react'
4
+
5
+ export function CatchBoundary(props: {
6
+ getResetKey: () => number | string
7
+ children: React.ReactNode
8
+ errorComponent?: ErrorRouteComponent
9
+ onCatch?: (error: Error, errorInfo: ErrorInfo) => void
10
+ }) {
11
+ const errorComponent = props.errorComponent ?? ErrorComponent
12
+
13
+ return (
14
+ <CatchBoundaryImpl
15
+ getResetKey={props.getResetKey}
16
+ onCatch={props.onCatch}
17
+ children={({ error, reset }) => {
18
+ if (error) {
19
+ return React.createElement(errorComponent, {
20
+ error,
21
+ reset,
22
+ })
23
+ }
24
+
25
+ return props.children
26
+ }}
27
+ />
28
+ )
29
+ }
30
+
31
+ class CatchBoundaryImpl extends React.Component<{
32
+ getResetKey: () => number | string
33
+ children: (props: {
34
+ error: Error | null
35
+ reset: () => void
36
+ }) => React.ReactNode
37
+ onCatch?: (error: Error, errorInfo: ErrorInfo) => void
38
+ }> {
39
+ state = { error: null } as { error: Error | null; resetKey: string }
40
+ static getDerivedStateFromProps(props: any) {
41
+ return { resetKey: props.getResetKey() }
42
+ }
43
+ static getDerivedStateFromError(error: Error) {
44
+ return { error }
45
+ }
46
+ reset() {
47
+ this.setState({ error: null })
48
+ }
49
+ componentDidUpdate(
50
+ prevProps: Readonly<{
51
+ getResetKey: () => string
52
+ children: (props: { error: any; reset: () => void }) => any
53
+ onCatch?: ((error: any, info: any) => void) | undefined
54
+ }>,
55
+ prevState: any,
56
+ ): void {
57
+ if (prevState.error && prevState.resetKey !== this.state.resetKey) {
58
+ this.reset()
59
+ }
60
+ }
61
+ componentDidCatch(error: Error, errorInfo: ErrorInfo) {
62
+ if (this.props.onCatch) {
63
+ this.props.onCatch(error, errorInfo)
64
+ }
65
+ }
66
+ render() {
67
+ // If the resetKey has changed, don't render the error
68
+ return this.props.children({
69
+ error:
70
+ this.state.resetKey !== this.props.getResetKey()
71
+ ? null
72
+ : this.state.error,
73
+ reset: () => {
74
+ this.reset()
75
+ },
76
+ })
77
+ }
78
+ }
79
+
80
+ export function ErrorComponent({ error }: { error: any }) {
81
+ const [show, setShow] = React.useState(process.env.NODE_ENV !== 'production')
82
+
83
+ return (
84
+ <div style={{ padding: '.5rem', maxWidth: '100%' }}>
85
+ <div style={{ display: 'flex', alignItems: 'center', gap: '.5rem' }}>
86
+ <strong style={{ fontSize: '1rem' }}>Something went wrong!</strong>
87
+ <button
88
+ style={{
89
+ appearance: 'none',
90
+ fontSize: '.6em',
91
+ border: '1px solid currentColor',
92
+ padding: '.1rem .2rem',
93
+ fontWeight: 'bold',
94
+ borderRadius: '.25rem',
95
+ }}
96
+ onClick={() => setShow((d) => !d)}
97
+ >
98
+ {show ? 'Hide Error' : 'Show Error'}
99
+ </button>
100
+ </div>
101
+ <div style={{ height: '.25rem' }} />
102
+ {show ? (
103
+ <div>
104
+ <pre
105
+ style={{
106
+ fontSize: '.7em',
107
+ border: '1px solid red',
108
+ borderRadius: '.25rem',
109
+ padding: '.3rem',
110
+ color: 'red',
111
+ overflow: 'auto',
112
+ }}
113
+ >
114
+ {error.message ? <code>{error.message}</code> : null}
115
+ </pre>
116
+ </div>
117
+ ) : null}
118
+ </div>
119
+ )
120
+ }
@@ -0,0 +1,68 @@
1
+ import React from 'react'
2
+
3
+ export interface ClientOnlyProps {
4
+ /**
5
+ * The children to render when the JS is loaded.
6
+ */
7
+ children: React.ReactNode
8
+ /**
9
+ * The fallback component to render if the JS is not yet loaded.
10
+ */
11
+ fallback?: React.ReactNode
12
+ }
13
+
14
+ /**
15
+ * Render the children only after the JS has loaded client-side. Use an optional
16
+ * fallback component if the JS is not yet loaded.
17
+ *
18
+ * @example
19
+ * Render a Chart component if JS loads, renders a simple FakeChart
20
+ * component server-side or if there is no JS. The FakeChart can have only the
21
+ * UI without the behavior or be a loading spinner or skeleton.
22
+ *
23
+ * ```tsx
24
+ * return (
25
+ * <ClientOnly fallback={<FakeChart />}>
26
+ * <Chart />
27
+ * </ClientOnly>
28
+ * )
29
+ * ```
30
+ */
31
+ export function ClientOnly({ children, fallback = null }: ClientOnlyProps) {
32
+ return useHydrated() ? (
33
+ <React.Fragment>{children}</React.Fragment>
34
+ ) : (
35
+ <React.Fragment>{fallback}</React.Fragment>
36
+ )
37
+ }
38
+
39
+ /**
40
+ * Return a boolean indicating if the JS has been hydrated already.
41
+ * When doing Server-Side Rendering, the result will always be false.
42
+ * When doing Client-Side Rendering, the result will always be false on the
43
+ * first render and true from then on. Even if a new component renders it will
44
+ * always start with true.
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * // Disable a button that needs JS to work.
49
+ * let hydrated = useHydrated()
50
+ * return (
51
+ * <button type="button" disabled={!hydrated} onClick={doSomethingCustom}>
52
+ * Click me
53
+ * </button>
54
+ * )
55
+ * ```
56
+ * @returns True if the JS has been hydrated already, false otherwise.
57
+ */
58
+ export function useHydrated(): boolean {
59
+ return React.useSyncExternalStore(
60
+ subscribe,
61
+ () => true,
62
+ () => false,
63
+ )
64
+ }
65
+
66
+ function subscribe() {
67
+ return () => {}
68
+ }
@@ -0,0 +1,46 @@
1
+ import * as React from 'react'
2
+ import { Asset } from './Asset'
3
+ import { useRouter } from './useRouter'
4
+ import { useHydrated } from './ClientOnly'
5
+ import { useTags } from './headContentUtils'
6
+
7
+ const DEV_STYLES_ATTR = 'data-tanstack-router-dev-styles'
8
+
9
+ /**
10
+ * Render route-managed head tags (title, meta, links, styles, head scripts).
11
+ * Place inside the document head of your app shell.
12
+ *
13
+ * Development version: filters out dev styles link after hydration and
14
+ * includes a fallback cleanup effect for hydration mismatch cases.
15
+ *
16
+ * @link https://tanstack.com/router/latest/docs/framework/react/guide/document-head-management
17
+ */
18
+ export function HeadContent() {
19
+ const tags = useTags()
20
+ const router = useRouter()
21
+ const nonce = router.options.ssr?.nonce
22
+ const hydrated = useHydrated()
23
+
24
+ // Fallback cleanup for hydration mismatch cases
25
+ // Runs when hydration completes to remove any orphaned dev styles links from DOM
26
+ React.useEffect(() => {
27
+ if (hydrated) {
28
+ document
29
+ .querySelectorAll(`link[${DEV_STYLES_ATTR}]`)
30
+ .forEach((el) => el.remove())
31
+ }
32
+ }, [hydrated])
33
+
34
+ // Filter out dev styles after hydration
35
+ const filteredTags = hydrated
36
+ ? tags.filter((tag) => !tag.attrs?.[DEV_STYLES_ATTR])
37
+ : tags
38
+
39
+ return (
40
+ <>
41
+ {filteredTags.map((tag) => (
42
+ <Asset {...tag} key={`tsr-meta-${JSON.stringify(tag)}`} nonce={nonce} />
43
+ ))}
44
+ </>
45
+ )
46
+ }
@@ -0,0 +1,22 @@
1
+ import * as React from 'react'
2
+ import { Asset } from './Asset'
3
+ import { useRouter } from './useRouter'
4
+ import { useTags } from './headContentUtils'
5
+
6
+ /**
7
+ * Render route-managed head tags (title, meta, links, styles, head scripts).
8
+ * Place inside the document head of your app shell.
9
+ * @link https://tanstack.com/router/latest/docs/framework/react/guide/document-head-management
10
+ */
11
+ export function HeadContent() {
12
+ const tags = useTags()
13
+ const router = useRouter()
14
+ const nonce = router.options.ssr?.nonce
15
+ return (
16
+ <>
17
+ {tags.map((tag) => (
18
+ <Asset {...tag} key={`tsr-meta-${JSON.stringify(tag)}`} nonce={nonce} />
19
+ ))}
20
+ </>
21
+ )
22
+ }