fix(deps): update dependency react-router to v6.30.2 [security] #473
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
6.15.0→6.30.2GitHub Vulnerability Alerts
CVE-2025-68470
An attacker-supplied path can be crafted so that when a React Router application navigates to it via
navigate(),<Link>, orredirect(), the app performs a navigation/redirect to an external URL. This is only an issue if developers pass untrusted content into navigation paths in their application code.Release Notes
remix-run/react-router (react-router)
v6.30.2: v6.30.2Compare Source
See the changelog for release notes: https://github.com/remix-run/react-router/blob/v6/CHANGELOG.md#v6302
v6.30.1: v6.30.1Compare Source
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6301
v6.30.0: v6.30.0Compare Source
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6300
v6.29.0: v6.29.0Compare Source
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6290
v6.28.2: v6.28.2Compare Source
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6282
v6.28.1: v6.28.1Compare Source
See the changelog for release notes: https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v6281
v6.28.0Compare Source
Minor Changes
json/deferin favor of returning raw objectsPatch Changes
@remix-run/router@1.21.0v6.27.0Compare Source
Minor Changes
unstable_patchRoutesOnNavigation(#11973)PatchRoutesOnNavigationFunctionArgstype for convenience (#11967)unstable_dataStrategy(#11974)unstable_flushSyncoption for navigations and fetchers (#11989)unstable_viewTransitionoption for navigations and the correspondingunstable_useViewTransitionStatehook (#11989)Patch Changes
Fix bug when submitting to the current contextual route (parent route with an index child) when an
?indexparam already exists from a prior submission (#12003)Fix
useFormActionbug - when removing?indexparam it would not keep other non-Remixindexparams (#12003)Fix types for
RouteObjectwithinPatchRoutesOnNavigationFunction'spatchmethod so it doesn't expect agnostic route objects passed topatch(#11967)Updated dependencies:
@remix-run/router@1.20.0v6.26.2Compare Source
Patch Changes
@remix-run/router@1.19.2v6.26.1Compare Source
Patch Changes
unstable_patchRoutesOnMisstounstable_patchRoutesOnNavigationto match new behavior (#11888)@remix-run/router@1.19.1v6.26.0Compare Source
Minor Changes
replace(url, init?)alternative toredirect(url, init?)that performs ahistory.replaceStateinstead of ahistory.pushStateon client-side navigation redirects (#11811)Patch Changes
future.v7_partialHydrationalong withunstable_patchRoutesOnMiss(#11838)router.state.matcheswill now include any partial matches so that we can render ancestorHydrateFallbackcomponents@remix-run/router@1.19.0v6.25.1Compare Source
No significant changes to this package were made in this release. See the repo
CHANGELOG.mdfor an overview of all changes in v6.25.1.v6.25.0Compare Source
Minor Changes
future.unstable_skipActionErrorRevalidationasfuture.v7_skipActionErrorRevalidation(#11769)Responsewith a4xx/5xxstatus codeshouldRevalidateshouldRevalidate'sunstable_actionStatusparameter toactionStatusPatch Changes
useMatchso matches/params reflect decoded params (#11789)@remix-run/router@1.18.0v6.24.1Compare Source
Patch Changes
future.v7_relativeSplatPath, properly resolve relative paths in splat routes that are children of pathless routes (#11633)@remix-run/router@1.17.1v6.24.0Compare Source
Minor Changes
unstable_patchRoutesOnMissdocs: https://reactrouter.com/v6/routers/create-browser-routerPatch Changes
@remix-run/router@1.17.0v6.23.1Compare Source
Patch Changes
<Await>(#11513)@remix-run/router@1.16.1v6.23.0Compare Source
Minor Changes
unstable_dataStrategyconfiguration option (#11098)Patch Changes
@remix-run/router@1.16.0v6.22.3Compare Source
Patch Changes
@remix-run/router@1.15.3v6.22.2Compare Source
Patch Changes
@remix-run/router@1.15.2v6.22.1Compare Source
Patch Changes
@remix-run/router@1.15.1v6.22.0Compare Source
Patch Changes
@remix-run/router@1.15.0v6.21.3Compare Source
Patch Changes
unstable_prefix fromBlocker/BlockerFunctiontypes (#11187)v6.21.2Compare Source
Patch Changes
@remix-run/router@1.14.2v6.21.1Compare Source
Patch Changes
route.lazynot working correctly on initial SPA load whenv7_partialHydrationis specified (#11121)@remix-run/router@1.14.1v6.21.0Compare Source
Minor Changes
Add a new
future.v7_relativeSplatPathflag to implement a breaking bug fix to relative routing when inside a splat route. (#11087)This fix was originally added in #10983 and was later reverted in #11078 because it was determined that a large number of existing applications were relying on the buggy behavior (see #11052)
The Bug
The buggy behavior is that without this flag, the default behavior when resolving relative paths is to ignore any splat (
*) portion of the current route path.The Background
This decision was originally made thinking that it would make the concept of nested different sections of your apps in
<Routes>easier if relative routing would replace the current splat:Any paths like
/dashboard,/dashboard/team,/dashboard/projectswill match theDashboardroute. The dashboard component itself can then render nested<Routes>:Now, all links and route paths are relative to the router above them. This makes code splitting and compartmentalizing your app really easy. You could render the
Dashboardas its own independent app, or embed it into your large app without making any changes to it.The Problem
The problem is that this concept of ignoring part of a path breaks a lot of other assumptions in React Router - namely that
"."always means the current location pathname for that route. When we ignore the splat portion, we start getting invalid paths when using".":We've also introduced an issue that we can no longer move our
DashboardTeamcomponent around our route hierarchy easily - since it behaves differently if we're underneath a non-splat route, such as/dashboard/:widget. Now, our"."links will, properly point to ourself inclusive of the dynamic param value so behavior will break from it's corresponding usage in a/dashboard/*route.Even worse, consider a nested splat route configuration:
Now, a
<Link to=".">and a<Link to="..">inside theDashboardcomponent go to the same place! That is definitely not correct!Another common issue arose in Data Routers (and Remix) where any
<Form>should post to it's own routeactionif you the user doesn't specify a form action:This is just a compounded issue from the above because the default location for a
Formto submit to is itself (".") - and if we ignore the splat portion, that now resolves to the parent route.The Solution
If you are leveraging this behavior, it's recommended to enable the future flag, move your splat to it's own route, and leverage
../for any links to "sibling" pages:This way,
.means "the full current pathname for my route" in all cases (including static, dynamic, and splat routes) and..always means "my parents pathname".Patch Changes
@remix-run/router@1.14.0v6.20.1Compare Source
Patch Changes
useResolvedPathfix for splat routes due to a large number of applications that were relying on the buggy behavior (see #11052 (comment)). We plan to re-introduce this fix behind a future flag in the next minor version. (#11078)@remix-run/router@1.13.1v6.20.0Compare Source
Minor Changes
PathParamtype from the public API (#10719)Patch Changes
resolveToin splat routes (#11045)getPathContributingMatchesUNSAFE_getPathContributingMatchesexport from@remix-run/routersince we no longer need this in thereact-router/react-router-domlayers@remix-run/router@1.13.0v6.19.0Compare Source
Minor Changes
unstable_flushSyncoption touseNavigate/useSumbit/fetcher.load/fetcher.submitto opt-out ofReact.startTransitionand intoReactDOM.flushSyncfor state updates (#11005)unstable_prefix from theuseBlockerhook as it's been in use for enough time that we are confident in the API. We do not plan to remove the prefix fromunstable_usePromptdue to differences in how browsers handlewindow.confirmthat prevent React Router from guaranteeing consistent/correct behavior. (#10991)Patch Changes
Fix
useActionDataso it returns proper contextual action data and not any action data in the tree (#11023)Fix bug in
useResolvedPaththat would causeuseResolvedPath(".")in a splat route to lose the splat portion of the URL path. (#10983)"."paths inside a splat route which incorrectly dropped the splat portion of the URL. If you are relative routing via"."inside a splat route in your application you should double check that your logic is not relying on this buggy behavior and update accordingly.Updated dependencies:
@remix-run/router@1.12.0v6.18.0Compare Source
Patch Changes
futureprop onBrowserRouter,HashRouterandMemoryRouterso that it accepts aPartial<FutureConfig>instead of requiring all flags to be included. (#10962)@remix-run/router@1.11.0v6.17.0Compare Source
Patch Changes
RouterProviderfutureprop type to be aPartial<FutureConfig>so that not all flags must be specified (#10900)@remix-run/router@1.10.0v6.16.0Compare Source
Minor Changes
anywithunknownon exposed typings for user-provided data. To do this in Remix v2 without introducing breaking changes in React Router v6, we have added generics to a number of shared types. These continue to default toanyin React Router and are overridden withunknownin Remix. In React Router v7 we plan to move these tounknownas a breaking change. (#10843)Locationnow accepts a generic for thelocation.statevalueActionFunctionArgs/ActionFunction/LoaderFunctionArgs/LoaderFunctionnow accept a generic for thecontextparameter (only used in SSR usages viacreateStaticHandler)useMatches(now exported asUIMatch) accepts generics formatch.dataandmatch.handle- both of which were already set tounknown@privateclass exportErrorResponseto anUNSAFE_ErrorResponseImplexport since it is an implementation detail and there should be no construction ofErrorResponseinstances in userland. This frees us up to export atype ErrorResponsewhich correlates to an instance of the class viaInstanceType. Userland code should only ever be usingErrorResponseas a type and should be type-narrowing viaisRouteErrorResponse. (#10811)ShouldRevalidateFunctionArgsinterface (#10797)_isFetchActionRedirect,_hasFetcherDoneAnything) (#10715)Patch Changes
@remix-run/router@1.9.0Configuration
📅 Schedule: Branch creation - "" in timezone America/New_York, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.