react-router 7.16.0 → 8.0.0-pre.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 (369) hide show
  1. package/CHANGELOG.md +0 -1
  2. package/dist/development/dom-export.d.ts +6 -172
  3. package/dist/development/dom-export.js +12 -1007
  4. package/dist/development/index-react-server-client.d.ts +7 -4
  5. package/dist/development/index-react-server-client.js +8 -52
  6. package/dist/development/index-react-server.d.ts +1645 -1635
  7. package/dist/development/index-react-server.js +2880 -3642
  8. package/dist/development/index.d.ts +43 -1475
  9. package/dist/development/index.js +37 -2621
  10. package/dist/development/lib/actions.js +62 -0
  11. package/dist/development/lib/components.d.ts +1022 -0
  12. package/dist/development/lib/components.js +835 -0
  13. package/dist/development/lib/context.d.ts +83 -0
  14. package/dist/development/lib/context.js +41 -0
  15. package/dist/development/lib/dom/dom.d.ts +119 -0
  16. package/dist/development/lib/dom/dom.js +143 -0
  17. package/dist/development/lib/dom/lib.d.ts +2042 -0
  18. package/dist/development/lib/dom/lib.js +1259 -0
  19. package/dist/development/lib/dom/server.d.ts +138 -0
  20. package/dist/development/lib/dom/server.js +301 -0
  21. package/dist/development/lib/dom/ssr/components.d.ts +196 -0
  22. package/dist/development/lib/dom/ssr/components.js +579 -0
  23. package/dist/development/lib/dom/ssr/data.js +29 -0
  24. package/dist/development/lib/dom/ssr/entry.d.ts +59 -0
  25. package/dist/development/lib/dom/ssr/errorBoundaries.d.ts +27 -0
  26. package/dist/development/lib/dom/ssr/errorBoundaries.js +83 -0
  27. package/dist/development/lib/dom/ssr/errors.d.ts +7 -0
  28. package/dist/development/lib/dom/ssr/errors.js +36 -0
  29. package/dist/development/lib/dom/ssr/fallback.js +28 -0
  30. package/dist/development/lib/dom/ssr/fog-of-war.d.ts +12 -0
  31. package/dist/development/lib/dom/ssr/fog-of-war.js +170 -0
  32. package/dist/development/lib/dom/ssr/hydration.d.ts +32 -0
  33. package/dist/development/lib/dom/ssr/hydration.js +29 -0
  34. package/dist/development/lib/dom/ssr/invariant.js +16 -0
  35. package/dist/development/lib/dom/ssr/links.js +170 -0
  36. package/dist/development/lib/dom/ssr/markup.js +24 -0
  37. package/dist/development/lib/dom/ssr/routeModules.d.ts +206 -0
  38. package/dist/development/lib/dom/ssr/routeModules.js +31 -0
  39. package/dist/development/lib/dom/ssr/routes-test-stub.d.ts +62 -0
  40. package/dist/development/lib/dom/ssr/routes-test-stub.js +108 -0
  41. package/dist/development/lib/dom/ssr/routes.d.ts +33 -0
  42. package/dist/development/lib/dom/ssr/routes.js +303 -0
  43. package/dist/development/lib/dom/ssr/server.d.ts +45 -0
  44. package/dist/development/lib/dom/ssr/server.js +68 -0
  45. package/dist/development/lib/dom/ssr/single-fetch.d.ts +14 -0
  46. package/dist/development/lib/dom/ssr/single-fetch.js +346 -0
  47. package/dist/development/lib/dom-export/dom-router-provider.d.ts +9 -0
  48. package/dist/development/lib/dom-export/dom-router-provider.js +22 -0
  49. package/dist/development/lib/dom-export/hydrated-router.d.ts +125 -0
  50. package/dist/development/lib/dom-export/hydrated-router.js +153 -0
  51. package/dist/development/lib/errors.js +29 -0
  52. package/dist/development/lib/hooks.d.ts +947 -0
  53. package/dist/development/lib/hooks.js +1386 -0
  54. package/dist/development/lib/href.d.ts +20 -0
  55. package/dist/development/lib/href.js +50 -0
  56. package/dist/development/lib/router/history.d.ts +258 -0
  57. package/dist/development/lib/router/history.js +371 -0
  58. package/dist/development/lib/router/instrumentation.d.ts +86 -0
  59. package/dist/development/lib/router/instrumentation.js +213 -0
  60. package/dist/development/lib/router/links.d.ts +113 -0
  61. package/dist/development/lib/router/router.d.ts +663 -0
  62. package/dist/development/lib/router/router.js +2981 -0
  63. package/dist/development/lib/router/utils.d.ts +942 -0
  64. package/dist/development/lib/router/utils.js +791 -0
  65. package/dist/development/lib/rsc/browser.d.ts +137 -0
  66. package/dist/development/lib/rsc/browser.js +599 -0
  67. package/dist/development/lib/rsc/errorBoundaries.d.ts +11 -0
  68. package/dist/development/lib/rsc/errorBoundaries.js +90 -0
  69. package/dist/development/lib/rsc/html-stream/browser.d.ts +48 -0
  70. package/dist/development/lib/rsc/html-stream/browser.js +74 -0
  71. package/dist/development/lib/rsc/html-stream/server.js +78 -0
  72. package/dist/development/lib/rsc/route-modules.js +27 -0
  73. package/dist/development/lib/rsc/server.rsc.d.ts +219 -0
  74. package/dist/development/lib/rsc/server.ssr.d.ts +129 -0
  75. package/dist/development/lib/rsc/server.ssr.js +388 -0
  76. package/dist/development/lib/server-runtime/build.d.ts +66 -0
  77. package/dist/development/lib/server-runtime/cookies.d.ts +66 -0
  78. package/dist/development/lib/server-runtime/cookies.js +139 -0
  79. package/dist/development/lib/server-runtime/crypto.js +43 -0
  80. package/dist/development/lib/server-runtime/data.d.ts +13 -0
  81. package/dist/development/lib/server-runtime/data.js +25 -0
  82. package/dist/development/lib/server-runtime/dev.d.ts +9 -0
  83. package/dist/development/lib/server-runtime/dev.js +26 -0
  84. package/dist/development/lib/server-runtime/entry.js +20 -0
  85. package/dist/development/lib/server-runtime/errors.js +95 -0
  86. package/dist/development/lib/server-runtime/headers.js +73 -0
  87. package/dist/development/lib/server-runtime/invariant.js +19 -0
  88. package/dist/development/lib/server-runtime/mode.d.ts +12 -0
  89. package/dist/development/lib/server-runtime/mode.js +25 -0
  90. package/dist/development/lib/server-runtime/routeMatching.js +28 -0
  91. package/dist/development/lib/server-runtime/routes.d.ts +13 -0
  92. package/dist/development/lib/server-runtime/routes.js +74 -0
  93. package/dist/development/lib/server-runtime/server.d.ts +10 -0
  94. package/dist/development/lib/server-runtime/server.js +351 -0
  95. package/dist/development/lib/server-runtime/serverHandoff.js +17 -0
  96. package/dist/development/lib/server-runtime/sessions/cookieStorage.d.ts +25 -0
  97. package/dist/development/lib/server-runtime/sessions/cookieStorage.js +45 -0
  98. package/dist/development/lib/server-runtime/sessions/memoryStorage.d.ts +23 -0
  99. package/dist/development/lib/server-runtime/sessions/memoryStorage.js +52 -0
  100. package/dist/development/lib/server-runtime/sessions.d.ts +145 -0
  101. package/dist/development/lib/server-runtime/sessions.js +98 -0
  102. package/dist/development/lib/server-runtime/single-fetch.d.ts +7 -0
  103. package/dist/development/lib/server-runtime/single-fetch.js +215 -0
  104. package/dist/development/lib/server-runtime/urls.js +31 -0
  105. package/dist/development/lib/server-runtime/warnings.js +20 -0
  106. package/dist/development/lib/types/future.d.ts +9 -0
  107. package/dist/development/lib/types/internal.d.ts +26 -177
  108. package/dist/development/lib/types/internal.js +3 -2
  109. package/dist/{production/register-CNAx3TXj.d.ts → development/lib/types/register.d.ts} +9 -15
  110. package/dist/development/lib/types/route-data.d.ts +113 -0
  111. package/dist/development/lib/types/route-module-annotations.d.ts +149 -0
  112. package/dist/development/lib/types/route-module.d.ts +19 -0
  113. package/dist/development/lib/types/serializes-to.d.ts +13 -0
  114. package/dist/development/lib/types/utils.d.ts +11 -0
  115. package/dist/development/vendor/turbo-stream-v2/flatten.js +159 -0
  116. package/dist/development/vendor/turbo-stream-v2/turbo-stream.js +178 -0
  117. package/dist/development/vendor/turbo-stream-v2/unflatten.js +198 -0
  118. package/dist/development/vendor/turbo-stream-v2/utils.js +47 -0
  119. package/dist/production/dom-export.d.ts +6 -172
  120. package/dist/production/dom-export.js +12 -1007
  121. package/dist/production/index-react-server-client.d.ts +7 -4
  122. package/dist/production/index-react-server-client.js +8 -52
  123. package/dist/production/index-react-server.d.ts +1645 -1635
  124. package/dist/production/index-react-server.js +2871 -3642
  125. package/dist/production/index.d.ts +43 -1475
  126. package/dist/production/index.js +37 -2621
  127. package/dist/production/lib/actions.js +62 -0
  128. package/dist/production/lib/components.d.ts +1022 -0
  129. package/dist/production/lib/components.js +835 -0
  130. package/dist/production/lib/context.d.ts +83 -0
  131. package/dist/production/lib/context.js +41 -0
  132. package/dist/production/lib/dom/dom.d.ts +119 -0
  133. package/dist/production/lib/dom/dom.js +143 -0
  134. package/dist/production/lib/dom/lib.d.ts +2042 -0
  135. package/dist/production/lib/dom/lib.js +1259 -0
  136. package/dist/production/lib/dom/server.d.ts +138 -0
  137. package/dist/production/lib/dom/server.js +301 -0
  138. package/dist/production/lib/dom/ssr/components.d.ts +196 -0
  139. package/dist/production/lib/dom/ssr/components.js +579 -0
  140. package/dist/production/lib/dom/ssr/data.js +29 -0
  141. package/dist/production/lib/dom/ssr/entry.d.ts +59 -0
  142. package/dist/production/lib/dom/ssr/errorBoundaries.d.ts +27 -0
  143. package/dist/production/lib/dom/ssr/errorBoundaries.js +83 -0
  144. package/dist/production/lib/dom/ssr/errors.d.ts +7 -0
  145. package/dist/production/lib/dom/ssr/errors.js +36 -0
  146. package/dist/production/lib/dom/ssr/fallback.js +21 -0
  147. package/dist/production/lib/dom/ssr/fog-of-war.d.ts +12 -0
  148. package/dist/production/lib/dom/ssr/fog-of-war.js +170 -0
  149. package/dist/production/lib/dom/ssr/hydration.d.ts +32 -0
  150. package/dist/production/lib/dom/ssr/hydration.js +29 -0
  151. package/dist/production/lib/dom/ssr/invariant.js +16 -0
  152. package/dist/production/lib/dom/ssr/links.js +170 -0
  153. package/dist/production/lib/dom/ssr/markup.js +24 -0
  154. package/dist/production/lib/dom/ssr/routeModules.d.ts +206 -0
  155. package/dist/production/lib/dom/ssr/routeModules.js +31 -0
  156. package/dist/production/lib/dom/ssr/routes-test-stub.d.ts +62 -0
  157. package/dist/production/lib/dom/ssr/routes-test-stub.js +108 -0
  158. package/dist/production/lib/dom/ssr/routes.d.ts +33 -0
  159. package/dist/production/lib/dom/ssr/routes.js +303 -0
  160. package/dist/production/lib/dom/ssr/server.d.ts +45 -0
  161. package/dist/production/lib/dom/ssr/server.js +68 -0
  162. package/dist/production/lib/dom/ssr/single-fetch.d.ts +14 -0
  163. package/dist/production/lib/dom/ssr/single-fetch.js +346 -0
  164. package/dist/production/lib/dom-export/dom-router-provider.d.ts +9 -0
  165. package/dist/production/lib/dom-export/dom-router-provider.js +22 -0
  166. package/dist/production/lib/dom-export/hydrated-router.d.ts +125 -0
  167. package/dist/production/lib/dom-export/hydrated-router.js +153 -0
  168. package/dist/production/lib/errors.js +29 -0
  169. package/dist/production/lib/hooks.d.ts +947 -0
  170. package/dist/production/lib/hooks.js +1371 -0
  171. package/dist/production/lib/href.d.ts +20 -0
  172. package/dist/production/lib/href.js +50 -0
  173. package/dist/production/lib/router/history.d.ts +258 -0
  174. package/dist/production/lib/router/history.js +371 -0
  175. package/dist/production/lib/router/instrumentation.d.ts +86 -0
  176. package/dist/production/lib/router/instrumentation.js +213 -0
  177. package/dist/production/lib/router/links.d.ts +113 -0
  178. package/dist/production/lib/router/router.d.ts +663 -0
  179. package/dist/production/lib/router/router.js +2981 -0
  180. package/dist/production/lib/router/utils.d.ts +942 -0
  181. package/dist/production/lib/router/utils.js +782 -0
  182. package/dist/production/lib/rsc/browser.d.ts +137 -0
  183. package/dist/production/lib/rsc/browser.js +599 -0
  184. package/dist/production/lib/rsc/errorBoundaries.d.ts +11 -0
  185. package/dist/production/lib/rsc/errorBoundaries.js +90 -0
  186. package/dist/production/lib/rsc/html-stream/browser.d.ts +48 -0
  187. package/dist/production/lib/rsc/html-stream/browser.js +74 -0
  188. package/dist/production/lib/rsc/html-stream/server.js +78 -0
  189. package/dist/production/lib/rsc/route-modules.js +27 -0
  190. package/dist/production/lib/rsc/server.rsc.d.ts +219 -0
  191. package/dist/production/lib/rsc/server.ssr.d.ts +129 -0
  192. package/dist/production/lib/rsc/server.ssr.js +388 -0
  193. package/dist/production/lib/server-runtime/build.d.ts +66 -0
  194. package/dist/production/lib/server-runtime/cookies.d.ts +66 -0
  195. package/dist/production/lib/server-runtime/cookies.js +139 -0
  196. package/dist/production/lib/server-runtime/crypto.js +43 -0
  197. package/dist/production/lib/server-runtime/data.d.ts +13 -0
  198. package/dist/production/lib/server-runtime/data.js +25 -0
  199. package/dist/production/lib/server-runtime/dev.d.ts +9 -0
  200. package/dist/production/lib/server-runtime/dev.js +26 -0
  201. package/dist/production/lib/server-runtime/entry.js +20 -0
  202. package/dist/production/lib/server-runtime/errors.js +95 -0
  203. package/dist/production/lib/server-runtime/headers.js +73 -0
  204. package/dist/production/lib/server-runtime/invariant.js +19 -0
  205. package/dist/production/lib/server-runtime/mode.d.ts +12 -0
  206. package/dist/production/lib/server-runtime/mode.js +25 -0
  207. package/dist/production/lib/server-runtime/routeMatching.js +28 -0
  208. package/dist/production/lib/server-runtime/routes.d.ts +13 -0
  209. package/dist/production/lib/server-runtime/routes.js +74 -0
  210. package/dist/production/lib/server-runtime/server.d.ts +10 -0
  211. package/dist/production/lib/server-runtime/server.js +351 -0
  212. package/dist/production/lib/server-runtime/serverHandoff.js +17 -0
  213. package/dist/production/lib/server-runtime/sessions/cookieStorage.d.ts +25 -0
  214. package/dist/production/lib/server-runtime/sessions/cookieStorage.js +45 -0
  215. package/dist/production/lib/server-runtime/sessions/memoryStorage.d.ts +23 -0
  216. package/dist/production/lib/server-runtime/sessions/memoryStorage.js +52 -0
  217. package/dist/production/lib/server-runtime/sessions.d.ts +145 -0
  218. package/dist/production/lib/server-runtime/sessions.js +98 -0
  219. package/dist/production/lib/server-runtime/single-fetch.d.ts +7 -0
  220. package/dist/production/lib/server-runtime/single-fetch.js +215 -0
  221. package/dist/production/lib/server-runtime/urls.js +31 -0
  222. package/dist/production/lib/server-runtime/warnings.js +20 -0
  223. package/dist/production/lib/types/future.d.ts +9 -0
  224. package/dist/production/lib/types/internal.d.ts +26 -177
  225. package/dist/production/lib/types/internal.js +3 -2
  226. package/dist/{development/register-CNAx3TXj.d.ts → production/lib/types/register.d.ts} +9 -15
  227. package/dist/production/lib/types/route-data.d.ts +113 -0
  228. package/dist/production/lib/types/route-module-annotations.d.ts +149 -0
  229. package/dist/production/lib/types/route-module.d.ts +19 -0
  230. package/dist/production/lib/types/serializes-to.d.ts +13 -0
  231. package/dist/production/lib/types/utils.d.ts +11 -0
  232. package/dist/production/vendor/turbo-stream-v2/flatten.js +159 -0
  233. package/dist/production/vendor/turbo-stream-v2/turbo-stream.js +178 -0
  234. package/dist/production/vendor/turbo-stream-v2/unflatten.js +198 -0
  235. package/dist/production/vendor/turbo-stream-v2/utils.js +47 -0
  236. package/docs/explanation/backend-for-frontend.md +50 -0
  237. package/docs/explanation/code-splitting.md +77 -0
  238. package/docs/explanation/concurrency.md +135 -0
  239. package/docs/explanation/form-vs-fetcher.md +292 -0
  240. package/docs/explanation/hot-module-replacement.md +137 -0
  241. package/docs/explanation/hydration.md +14 -0
  242. package/docs/explanation/index-query-param.md +86 -0
  243. package/docs/explanation/index.md +4 -0
  244. package/docs/explanation/lazy-route-discovery.md +78 -0
  245. package/docs/explanation/location.md +6 -0
  246. package/docs/explanation/progressive-enhancement.md +150 -0
  247. package/docs/explanation/race-conditions.md +88 -0
  248. package/docs/explanation/react-transitions.md +160 -0
  249. package/docs/explanation/route-matching.md +7 -0
  250. package/docs/explanation/server-client-execution.md +4 -0
  251. package/docs/explanation/sessions-and-cookies.md +465 -0
  252. package/docs/explanation/special-files.md +16 -0
  253. package/docs/explanation/state-management.md +524 -0
  254. package/docs/explanation/styling.md +87 -0
  255. package/docs/explanation/type-safety.md +82 -0
  256. package/docs/how-to/accessibility.md +44 -0
  257. package/docs/how-to/client-data.md +199 -0
  258. package/docs/how-to/data-strategy.md +317 -0
  259. package/docs/how-to/error-boundary.md +231 -0
  260. package/docs/how-to/error-reporting.md +134 -0
  261. package/docs/how-to/fetchers.md +307 -0
  262. package/docs/how-to/file-route-conventions.md +410 -0
  263. package/docs/how-to/file-uploads.md +217 -0
  264. package/docs/how-to/form-validation.md +120 -0
  265. package/docs/how-to/headers.md +164 -0
  266. package/docs/how-to/index.md +4 -0
  267. package/docs/how-to/instrumentation.md +556 -0
  268. package/docs/how-to/meta.md +40 -0
  269. package/docs/how-to/middleware.md +728 -0
  270. package/docs/how-to/navigation-blocking.md +233 -0
  271. package/docs/how-to/optimize-revalidation.md +12 -0
  272. package/docs/how-to/pre-rendering.md +225 -0
  273. package/docs/how-to/presets.md +103 -0
  274. package/docs/how-to/react-server-components.md +899 -0
  275. package/docs/how-to/resource-routes.md +126 -0
  276. package/docs/how-to/route-module-type-safety.md +100 -0
  277. package/docs/how-to/search-params.md +4 -0
  278. package/docs/how-to/security.md +30 -0
  279. package/docs/how-to/server-bundles.md +66 -0
  280. package/docs/how-to/spa.md +120 -0
  281. package/docs/how-to/status.md +63 -0
  282. package/docs/how-to/suspense.md +132 -0
  283. package/docs/how-to/using-handle.md +117 -0
  284. package/docs/how-to/view-transitions.md +237 -0
  285. package/docs/how-to/webhook.md +50 -0
  286. package/docs/index.md +39 -0
  287. package/docs/start/data/actions.md +138 -0
  288. package/docs/start/data/custom.md +198 -0
  289. package/docs/start/data/data-loading.md +44 -0
  290. package/docs/start/data/index.md +4 -0
  291. package/docs/start/data/installation.md +52 -0
  292. package/docs/start/data/navigating.md +12 -0
  293. package/docs/start/data/pending-ui.md +12 -0
  294. package/docs/start/data/route-object.md +248 -0
  295. package/docs/start/data/routing.md +281 -0
  296. package/docs/start/data/testing.md +8 -0
  297. package/docs/start/declarative/index.md +4 -0
  298. package/docs/start/declarative/installation.md +43 -0
  299. package/docs/start/declarative/navigating.md +133 -0
  300. package/docs/start/declarative/routing.md +237 -0
  301. package/docs/start/declarative/url-values.md +65 -0
  302. package/docs/start/framework/actions.md +175 -0
  303. package/docs/start/framework/data-loading.md +201 -0
  304. package/docs/start/framework/deploying.md +96 -0
  305. package/docs/start/framework/index.md +4 -0
  306. package/docs/start/framework/installation.md +42 -0
  307. package/docs/start/framework/navigating.md +182 -0
  308. package/docs/start/framework/pending-ui.md +142 -0
  309. package/docs/start/framework/rendering.md +59 -0
  310. package/docs/start/framework/route-module.md +527 -0
  311. package/docs/start/framework/routing.md +362 -0
  312. package/docs/start/framework/testing.md +133 -0
  313. package/docs/start/index.md +4 -0
  314. package/docs/start/modes.md +201 -0
  315. package/docs/upgrading/component-routes.md +363 -0
  316. package/docs/upgrading/future.md +31 -0
  317. package/docs/upgrading/index.md +4 -0
  318. package/docs/upgrading/remix.md +403 -0
  319. package/docs/upgrading/router-provider.md +442 -0
  320. package/docs/upgrading/v6.md +379 -0
  321. package/package.json +44 -87
  322. package/dist/development/browser-D3uq9sI1.d.ts +0 -318
  323. package/dist/development/browser-nIQ4Nsyi.d.mts +0 -318
  324. package/dist/development/chunk-IBI7OMNB.js +0 -1363
  325. package/dist/development/chunk-QUQL4437.mjs +0 -11529
  326. package/dist/development/chunk-S54KXAEJ.mjs +0 -2585
  327. package/dist/development/chunk-SRID2YZ2.js +0 -10229
  328. package/dist/development/chunk-XEJDWL2B.js +0 -188
  329. package/dist/development/context-m8rizgnE.d.mts +0 -1771
  330. package/dist/development/data-D4xhSy90.d.ts +0 -1732
  331. package/dist/development/data-U8FS-wNn.d.mts +0 -1732
  332. package/dist/development/dom-export.d.mts +0 -172
  333. package/dist/development/dom-export.mjs +0 -1008
  334. package/dist/development/index-react-server-client-BLiUx67a.d.ts +0 -3655
  335. package/dist/development/index-react-server-client-CdKROblb.d.mts +0 -2600
  336. package/dist/development/index-react-server-client.d.mts +0 -4
  337. package/dist/development/index-react-server-client.mjs +0 -59
  338. package/dist/development/index-react-server.d.mts +0 -2703
  339. package/dist/development/index-react-server.mjs +0 -3780
  340. package/dist/development/index.d.mts +0 -1478
  341. package/dist/development/index.mjs +0 -277
  342. package/dist/development/instrumentation-1q4YhLGP.d.ts +0 -715
  343. package/dist/development/lib/types/internal.d.mts +0 -184
  344. package/dist/development/lib/types/internal.mjs +0 -10
  345. package/dist/development/register-CqK96Zfk.d.mts +0 -30
  346. package/dist/production/browser-D3uq9sI1.d.ts +0 -318
  347. package/dist/production/browser-nIQ4Nsyi.d.mts +0 -318
  348. package/dist/production/chunk-EAQNHM3N.js +0 -188
  349. package/dist/production/chunk-NALGHHKE.mjs +0 -2585
  350. package/dist/production/chunk-Q65P7S7Y.mjs +0 -11529
  351. package/dist/production/chunk-SKEDDLRM.js +0 -1363
  352. package/dist/production/chunk-Y7DNFQZP.js +0 -10229
  353. package/dist/production/context-m8rizgnE.d.mts +0 -1771
  354. package/dist/production/data-D4xhSy90.d.ts +0 -1732
  355. package/dist/production/data-U8FS-wNn.d.mts +0 -1732
  356. package/dist/production/dom-export.d.mts +0 -172
  357. package/dist/production/dom-export.mjs +0 -1008
  358. package/dist/production/index-react-server-client-BLiUx67a.d.ts +0 -3655
  359. package/dist/production/index-react-server-client-CdKROblb.d.mts +0 -2600
  360. package/dist/production/index-react-server-client.d.mts +0 -4
  361. package/dist/production/index-react-server-client.mjs +0 -59
  362. package/dist/production/index-react-server.d.mts +0 -2703
  363. package/dist/production/index-react-server.mjs +0 -3780
  364. package/dist/production/index.d.mts +0 -1478
  365. package/dist/production/index.mjs +0 -277
  366. package/dist/production/instrumentation-1q4YhLGP.d.ts +0 -715
  367. package/dist/production/lib/types/internal.d.mts +0 -184
  368. package/dist/production/lib/types/internal.mjs +0 -10
  369. package/dist/production/register-CqK96Zfk.d.mts +0 -30
@@ -0,0 +1,379 @@
1
+ ---
2
+ title: Upgrading from v6
3
+ order: 2
4
+ ---
5
+
6
+ # Upgrading from v6
7
+
8
+ <docs-info>
9
+
10
+ React Router v7 requires the following minimum versions:
11
+
12
+ - `node@20`
13
+ - `react@18`
14
+ - `react-dom@18`
15
+
16
+ </docs-info>
17
+
18
+ The v7 upgrade has no breaking changes if you have enabled all future flags. These flags allow you to update your app one change at a time. We highly recommend you make a commit after each step and ship it instead of doing everything all at once.
19
+
20
+ ## Update to latest v6.x
21
+
22
+ First update to the latest minor version of v6.x to have the latest future flags and console warnings.
23
+
24
+ 👉 **Update to latest v6**
25
+
26
+ ```shellscript nonumber
27
+ npm install react-router-dom@6
28
+ ```
29
+
30
+ ### v7_relativeSplatPath
31
+
32
+ **Background**
33
+
34
+ Changes the relative path matching and linking for multi-segment splats paths like `dashboard/*` (vs. just `*`). [View the CHANGELOG](https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#futurev7_relativesplatpath) for more information.
35
+
36
+ 👉 **Enable the flag**
37
+
38
+ Enabling the flag depends on the type of router:
39
+
40
+ ```tsx
41
+ <BrowserRouter
42
+ future={{
43
+ v7_relativeSplatPath: true,
44
+ }}
45
+ />
46
+ ```
47
+
48
+ ```tsx
49
+ createBrowserRouter(routes, {
50
+ future: {
51
+ v7_relativeSplatPath: true,
52
+ },
53
+ });
54
+ ```
55
+
56
+ **Update your Code**
57
+
58
+ If you have any routes with a path + a splat like `<Route path="dashboard/*">` that have relative links like `<Link to="relative">` or `<Link to="../relative">` beneath them, you will need to update your code.
59
+
60
+ 👉 **Split the `<Route>` into two**
61
+
62
+ Split any multi-segment splat `<Route>` into a parent route with the path and a child route with the splat:
63
+
64
+ ```diff
65
+ <Routes>
66
+ <Route path="/" element={<Home />} />
67
+ - <Route path="dashboard/*" element={<Dashboard />} />
68
+ + <Route path="dashboard">
69
+ + <Route path="*" element={<Dashboard />} />
70
+ + </Route>
71
+ </Routes>
72
+
73
+ // or
74
+ createBrowserRouter([
75
+ { path: "/", element: <Home /> },
76
+ {
77
+ - path: "dashboard/*",
78
+ - element: <Dashboard />,
79
+ + path: "dashboard",
80
+ + children: [{ path: "*", element: <Dashboard /> }],
81
+ },
82
+ ]);
83
+ ```
84
+
85
+ 👉 **Update relative links**
86
+
87
+ Update any `<Link>` elements within that route tree to include the extra `..` relative segment to continue linking to the same place:
88
+
89
+ ```diff
90
+ function Dashboard() {
91
+ return (
92
+ <div>
93
+ <h2>Dashboard</h2>
94
+ <nav>
95
+ <Link to="/">Dashboard Home</Link>
96
+ - <Link to="team">Team</Link>
97
+ - <Link to="projects">Projects</Link>
98
+ + <Link to="../team">Team</Link>
99
+ + <Link to="../projects">Projects</Link>
100
+ </nav>
101
+
102
+ <Routes>
103
+ <Route path="/" element={<DashboardHome />} />
104
+ <Route path="team" element={<DashboardTeam />} />
105
+ <Route
106
+ path="projects"
107
+ element={<DashboardProjects />}
108
+ />
109
+ </Routes>
110
+ </div>
111
+ );
112
+ }
113
+ ```
114
+
115
+ ### v7_startTransition
116
+
117
+ **Background**
118
+
119
+ This uses `React.useTransition` instead of `React.useState` for Router state updates. View the [CHANGELOG](https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#futurev7_starttransition) for more information.
120
+
121
+ 👉 **Enable the flag**
122
+
123
+ ```tsx
124
+ <BrowserRouter
125
+ future={{
126
+ v7_startTransition: true,
127
+ }}
128
+ />
129
+
130
+ // or
131
+ <RouterProvider
132
+ future={{
133
+ v7_startTransition: true,
134
+ }}
135
+ />
136
+ ```
137
+
138
+ 👉 **Update your Code**
139
+
140
+ You don't need to update anything unless you are using `React.lazy` _inside_ of a component.
141
+
142
+ Using `React.lazy` inside of a component is incompatible with `React.useTransition` (or other code that makes promises inside of components). Move `React.lazy` to the module scope and stop making promises inside of components. This is not a limitation of React Router but rather incorrect usage of React.
143
+
144
+ ### v7_fetcherPersist
145
+
146
+ <docs-warning>If you are not using a `<RouterProvider>` you can skip this</docs-warning>
147
+
148
+ **Background**
149
+
150
+ The fetcher lifecycle is now based on when it returns to an idle state rather than when its owner component unmounts: [View the CHANGELOG](https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#persistence-future-flag-futurev7_fetcherpersist) for more information.
151
+
152
+ **Enable the Flag**
153
+
154
+ ```tsx
155
+ createBrowserRouter(routes, {
156
+ future: {
157
+ v7_fetcherPersist: true,
158
+ },
159
+ });
160
+ ```
161
+
162
+ **Update your Code**
163
+
164
+ It's unlikely to affect your app. You may want to check any usage of `useFetchers` as they may persist longer than they did before. Depending on what you're doing, you may render something longer than before.
165
+
166
+ ### v7_normalizeFormMethod
167
+
168
+ <docs-warning>If you are not using a `<RouterProvider>` you can skip this</docs-warning>
169
+
170
+ This normalizes `formMethod` fields as uppercase HTTP methods to align with the `fetch()` behavior. [View the CHANGELOG](https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#futurev7_normalizeformmethod) for more information.
171
+
172
+ 👉 **Enable the Flag**
173
+
174
+ ```tsx
175
+ createBrowserRouter(routes, {
176
+ future: {
177
+ v7_normalizeFormMethod: true,
178
+ },
179
+ });
180
+ ```
181
+
182
+ **Update your Code**
183
+
184
+ If any of your code is checking for lowercase HTTP methods, you will need to update it to check for uppercase HTTP methods (or call `toLowerCase()` on it).
185
+
186
+ 👉 **Compare `formMethod` to UPPERCASE**
187
+
188
+ ```diff
189
+ -useNavigation().formMethod === "post"
190
+ -useFetcher().formMethod === "get";
191
+ +useNavigation().formMethod === "POST"
192
+ +useFetcher().formMethod === "GET";
193
+ ```
194
+
195
+ ### v7_partialHydration
196
+
197
+ <docs-warning>If you are not using a `<RouterProvider>` you can skip this</docs-warning>
198
+
199
+ This enables partial hydration of a data router which is primarily used for SSR frameworks, but it is also useful if you are using `lazy` to load your route modules. It's unlikely you need to worry about this, just turn the flag on. [View the CHANGELOG](https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#partial-hydration) for more information.
200
+
201
+ 👉 **Enable the Flag**
202
+
203
+ ```tsx
204
+ createBrowserRouter(routes, {
205
+ future: {
206
+ v7_partialHydration: true,
207
+ },
208
+ });
209
+ ```
210
+
211
+ **Update your Code**
212
+
213
+ With partial hydration, you need to provide a `HydrateFallback` component to render during initial hydration. Additionally, if you were using `fallbackElement` before, you need to remove it as it is now deprecated. In most cases, you will want to reuse the `fallbackElement` as the `HydrateFallback`.
214
+
215
+ 👉 **Replace `fallbackElement` with `HydrateFallback`**
216
+
217
+ ```diff
218
+ const router = createBrowserRouter(
219
+ [
220
+ {
221
+ path: "/",
222
+ Component: Layout,
223
+ + HydrateFallback: Fallback,
224
+ // or
225
+ + hydrateFallbackElement: <Fallback />,
226
+ children: [],
227
+ },
228
+ ],
229
+ );
230
+
231
+
232
+ <RouterProvider
233
+ router={router}
234
+ - fallbackElement={<Fallback />}
235
+ />
236
+ ```
237
+
238
+ ### v7_skipActionErrorRevalidation
239
+
240
+ <docs-warning>If you are not using a `createBrowserRouter` you can skip this</docs-warning>
241
+
242
+ When this flag is enabled, loaders will no longer revalidate by default after an action throws/returns a `Response` with a `4xx`/`5xx` status code. You may opt-into revalidation in these scenarios via `shouldRevalidate` and the `actionStatus` parameter.
243
+
244
+ 👉 **Enable the Flag**
245
+
246
+ ```tsx
247
+ createBrowserRouter(routes, {
248
+ future: {
249
+ v7_skipActionErrorRevalidation: true,
250
+ },
251
+ });
252
+ ```
253
+
254
+ **Update your Code**
255
+
256
+ In most cases, you probably won't have to make changes to your app code. Usually, if an action errors, it's unlikely data was mutated and needs revalidation. If any of your code _does_ mutate data in action error scenarios you have 2 options:
257
+
258
+ 👉 **Option 1: Change the `action` to avoid mutations in error scenarios**
259
+
260
+ ```js
261
+ // Before
262
+ async function action() {
263
+ await mutateSomeData();
264
+ if (detectError()) {
265
+ throw new Response(error, { status: 400 });
266
+ }
267
+ await mutateOtherData();
268
+ // ...
269
+ }
270
+
271
+ // After
272
+ async function action() {
273
+ if (detectError()) {
274
+ throw new Response(error, { status: 400 });
275
+ }
276
+ // All data is now mutated after validations
277
+ await mutateSomeData();
278
+ await mutateOtherData();
279
+ // ...
280
+ }
281
+ ```
282
+
283
+ 👉 **Option 2: Opt-into revalidation via `shouldRevalidate` and `actionStatus`**
284
+
285
+ ```js
286
+ async function action() {
287
+ await mutateSomeData();
288
+ if (detectError()) {
289
+ throw new Response(error, { status: 400 });
290
+ }
291
+ await mutateOtherData();
292
+ }
293
+
294
+ async function loader() { ... }
295
+
296
+ function shouldRevalidate({ actionStatus, defaultShouldRevalidate }) {
297
+ if (actionStatus != null && actionStatus >= 400) {
298
+ // Revalidate this loader when actions return a 4xx/5xx status
299
+ return true;
300
+ }
301
+ return defaultShouldRevalidate;
302
+ }
303
+ ```
304
+
305
+ ## Deprecations
306
+
307
+ The `json` and `defer` methods are deprecated in favor of returning raw objects.
308
+
309
+ ```diff
310
+ async function loader() {
311
+ - return json({ data });
312
+ + return { data };
313
+ ```
314
+
315
+ If you were using `json` to serialize your data to JSON, you can use the native [Response.json()][response-json] method instead.
316
+
317
+ ## Upgrade to v7
318
+
319
+ Now that your app is caught up, you can simply update to v7 (theoretically!) without issue.
320
+
321
+ 👉 **Install v7**
322
+
323
+ ```shellscript nonumber
324
+ npm install react-router-dom@latest
325
+ ```
326
+
327
+ 👉 **Replace react-router-dom with react-router**
328
+
329
+ In v7 we no longer need `"react-router-dom"` as the packages have been simplified. You can import everything from `"react-router"`:
330
+
331
+ ```shellscript nonumber
332
+ npm uninstall react-router-dom
333
+ npm install react-router@latest
334
+ ```
335
+
336
+ Note you only need `"react-router"` in your package.json.
337
+
338
+ 👉 **Update imports**
339
+
340
+ Now you should update your imports to use `react-router`:
341
+
342
+ ```diff
343
+ -import { useLocation } from "react-router-dom";
344
+ +import { useLocation } from "react-router";
345
+ ```
346
+
347
+ Instead of manually updating imports, you can use this command. Make sure your git working tree is clean though so you can revert if it doesn't work as expected.
348
+
349
+ ```shellscript nonumber
350
+ find ./path/to/src \( -name "*.tsx" -o -name "*.ts" -o -name "*.js" -o -name "*.jsx" \) -type f -exec sed -i '' 's|from "react-router-dom"|from "react-router"|g' {} +
351
+ ```
352
+
353
+ If you have GNU `sed` installed (most Linux distributions), use this command instead:
354
+
355
+ ```shellscript nonumber
356
+ find ./path/to/src \( -name "*.tsx" -o -name "*.ts" -o -name "*.js" -o -name "*.jsx" \) -type f -exec sed -i 's|from "react-router-dom"|from "react-router"|g' {} +
357
+ ```
358
+
359
+ 👉 **Update DOM-specific imports**
360
+
361
+ `RouterProvider` and `HydratedRouter` come from a deep import because they depend on `"react-dom"`:
362
+
363
+ ```diff
364
+ -import { RouterProvider } from "react-router-dom";
365
+ +import { RouterProvider } from "react-router/dom";
366
+ ```
367
+
368
+ Note you should use a top-level import for non-DOM contexts, such as Jest tests:
369
+
370
+ ```diff
371
+ -import { RouterProvider } from "react-router-dom";
372
+ +import { RouterProvider } from "react-router";
373
+ ```
374
+
375
+ Congratulations, you're now on v7!
376
+
377
+ [react-flushsync]: https://react.dev/reference/react-dom/flushSync
378
+ [response-json]: https://developer.mozilla.org/en-US/docs/Web/API/Response/json
379
+ [data-util]: https://api.reactrouter.com/v7/functions/react-router.data.html
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "react-router",
3
- "version": "7.16.0",
3
+ "type": "module",
4
+ "version": "8.0.0-pre.0",
4
5
  "description": "Declarative routing for React",
5
6
  "keywords": [
6
7
  "react",
@@ -18,94 +19,50 @@
18
19
  "license": "MIT",
19
20
  "author": "Remix Software <hello@remix.run>",
20
21
  "sideEffects": false,
21
- "types": "./dist/development/index.d.ts",
22
- "main": "./dist/development/index.js",
23
- "module": "./dist/development/index.mjs",
24
22
  "exports": {
25
23
  ".": {
24
+ "types": "./dist/production/index.d.ts",
26
25
  "react-server": {
27
- "module": "./dist/development/index-react-server.mjs",
28
- "default": "./dist/development/index-react-server.js"
26
+ "module-sync": {
27
+ "development": "./dist/development/index-react-server.js",
28
+ "default": "./dist/production/index-react-server.js"
29
+ },
30
+ "development": "./dist/development/index-react-server.js",
31
+ "default": "./dist/production/index-react-server.js"
29
32
  },
30
- "node": {
31
- "types": "./dist/development/index.d.ts",
32
- "module": "./dist/development/index.mjs",
33
- "module-sync": "./dist/development/index.mjs",
34
- "default": "./dist/development/index.js"
33
+ "module-sync": {
34
+ "development": "./dist/development/index.js",
35
+ "default": "./dist/production/index.js"
35
36
  },
36
- "module": {
37
- "types": "./dist/development/index.d.mts",
38
- "default": "./dist/development/index.mjs"
39
- },
40
- "import": {
41
- "types": "./dist/development/index.d.mts",
42
- "default": "./dist/development/index.mjs"
43
- },
44
- "default": {
45
- "types": "./dist/development/index.d.ts",
46
- "default": "./dist/development/index.js"
47
- }
37
+ "development": "./dist/development/index.js",
38
+ "default": "./dist/production/index.js"
48
39
  },
49
40
  "./dom": {
50
- "node": {
51
- "types": "./dist/development/dom-export.d.ts",
52
- "module": "./dist/development/dom-export.mjs",
53
- "module-sync": "./dist/development/dom-export.mjs",
54
- "default": "./dist/development/dom-export.js"
55
- },
56
- "module": {
57
- "types": "./dist/development/dom-export.d.mts",
58
- "default": "./dist/development/dom-export.mjs"
41
+ "types": "./dist/production/dom-export.d.ts",
42
+ "module-sync": {
43
+ "development": "./dist/development/dom-export.js",
44
+ "default": "./dist/production/dom-export.js"
59
45
  },
60
- "import": {
61
- "types": "./dist/development/dom-export.d.mts",
62
- "default": "./dist/development/dom-export.mjs"
63
- },
64
- "default": {
65
- "types": "./dist/development/dom-export.d.ts",
66
- "default": "./dist/development/dom-export.js"
67
- }
46
+ "development": "./dist/development/dom-export.js",
47
+ "default": "./dist/production/dom-export.js"
68
48
  },
69
49
  "./internal": {
70
- "node": {
71
- "types": "./dist/development/lib/types/internal.d.ts"
72
- },
73
- "import": {
74
- "types": "./dist/development/lib/types/internal.d.mts"
75
- },
76
- "default": {
77
- "types": "./dist/development/lib/types/index.d.ts"
78
- }
50
+ "types": "./dist/development/lib/types/internal.d.ts"
79
51
  },
80
52
  "./internal/react-server-client": {
81
- "react-server": {
82
- "module": "./dist/development/index-react-server-client.mjs",
83
- "default": "./dist/development/index-react-server-client.js"
84
- },
85
- "node": {
86
- "types": "./dist/development/index.d.ts",
87
- "module": "./dist/development/index.mjs",
88
- "module-sync": "./dist/development/index.mjs",
89
- "default": "./dist/development/index.js"
90
- },
91
- "module": {
92
- "types": "./dist/development/index.d.mts",
93
- "default": "./dist/development/index.mjs"
94
- },
95
- "import": {
96
- "types": "./dist/development/index.d.mts",
97
- "default": "./dist/development/index.mjs"
53
+ "types": "./dist/production/index-react-server-client.d.ts",
54
+ "module-sync": {
55
+ "development": "./dist/development/index-react-server-client.js",
56
+ "default": "./dist/production/index-react-server-client.js"
98
57
  },
99
- "default": {
100
- "types": "./dist/development/index.d.ts",
101
- "default": "./dist/development/index.js"
102
- }
58
+ "development": "./dist/development/index-react-server-client.js",
59
+ "default": "./dist/production/index-react-server-client.js"
103
60
  },
104
61
  "./package.json": "./package.json"
105
62
  },
106
63
  "wireit": {
107
64
  "build": {
108
- "command": "premove dist && tsup && tsup --config tsup.config.rsc.ts",
65
+ "command": "premove dist && tsdown && tsdown --config tsdown.config.rsc.ts",
109
66
  "files": [
110
67
  "../../pnpm-workspace.yaml",
111
68
  "lib/**",
@@ -119,27 +76,26 @@
119
76
  }
120
77
  },
121
78
  "dependencies": {
122
- "cookie": "^1.0.1",
123
- "set-cookie-parser": "^2.6.0"
79
+ "cookie-es": "^3.1.1"
124
80
  },
125
81
  "devDependencies": {
126
- "@testing-library/jest-dom": "^6.6.3",
127
- "@testing-library/react": "^16.3.0",
82
+ "@testing-library/jest-dom": "^6.9.1",
83
+ "@testing-library/react": "^16.3.2",
128
84
  "@testing-library/user-event": "^14.6.1",
129
- "@types/set-cookie-parser": "^2.4.1",
130
- "jest-environment-jsdom": "^29.6.2",
85
+ "@types/node": "^22.19.19",
86
+ "jest-environment-jsdom": "^30.4.1",
131
87
  "premove": "^4.0.0",
132
- "react": "^19.2.3",
133
- "react-dom": "^19.2.3",
134
- "react-test-renderer": "^19.1.0",
135
- "tsup": "^8.3.0",
136
- "typescript": "^5.4.5",
88
+ "react": "^19.2.6",
89
+ "react-dom": "^19.2.6",
90
+ "react-test-renderer": "^19.2.6",
91
+ "tsdown": "^0.22.0",
92
+ "typescript": "^6.0.3",
137
93
  "undici": "^6.19.2",
138
- "wireit": "0.14.9"
94
+ "wireit": "0.14.12"
139
95
  },
140
96
  "peerDependencies": {
141
- "react": ">=18",
142
- "react-dom": ">=18"
97
+ "react": ">=19.2.6",
98
+ "react-dom": ">=19.2.6"
143
99
  },
144
100
  "peerDependenciesMeta": {
145
101
  "react-dom": {
@@ -148,16 +104,17 @@
148
104
  },
149
105
  "files": [
150
106
  "dist/",
107
+ "docs/",
151
108
  "CHANGELOG.md",
152
109
  "LICENSE.md",
153
110
  "README.md"
154
111
  ],
155
112
  "engines": {
156
- "node": ">=20.0.0"
113
+ "node": ">=22.12.0"
157
114
  },
158
115
  "scripts": {
159
116
  "build": "wireit",
160
- "watch": "tsup --watch & tsup --config tsup.config.rsc.ts --watch",
117
+ "watch": "tsdown --watch & tsdown --config tsdown.config.rsc.ts --watch",
161
118
  "typecheck": "tsc"
162
119
  }
163
120
  }