[Snyk] Upgrade @reduxjs/toolkit from 2.11.0 to 2.11.1 #511
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.
Snyk has created this PR to upgrade @reduxjs/toolkit from 2.11.0 to 2.11.1.
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
The recommended version is 1 version ahead of your current version.
The recommended version was released 25 days ago.
Release notes
Package name: @reduxjs/toolkit
-
2.11.1 - 2025-12-08
- https://redux-toolkit.js.org/introduction/getting-started#typescript
- https://redux-toolkit.js.org/usage/usage-with-typescript#introduction
- Use trusted publishing and harden workflows by @ markerikson in #5152
- Update TS typecheck matrix and add TS native job by @ markerikson in #5155
- Officially document TS support by @ markerikson in #5158
- Tweaks to AbortSignal logic by @ EskiMojo14 in #5150
-
2.11.0 - 2025-11-23
- Update Immer to v11 for better update performance by @ markerikson in #5141
- fix: compare paths against Regex instances in ignoredPaths by @ johnste in #5124
- Add refetchCachedPages option for infinite query by @ rossmartin in #5016
from @reduxjs/toolkit GitHub release notesThis bugfix release fixes an issue with our internal
AbortSignalhandling that was reported as causing an error in a rare reset situation. We've also restructured our publishing process to use NPM Trusted Publishing, and updated our TS support matrix to only support TS 5.4+.Changelog
Publishing Changes
We've previously done most of our releases semi-manually locally, with various release process CLI tools. With the changes to NPM publishing security and the recent wave of NPM attacks, we've updated our publishing process to solely use NPM Trusted Publishing via workflows. We've also done a hardening pass on our own CI setup.
We had done a couple releases via CI workflows previously, and later semi-manual releases caused PNPM to warn that RTK was no longer trusted. This release should be trusted and will resolve that issue.
Thanks to the e18e folks and their excellent guide at https://e18e.dev/docs/publishing for making this process easier!
TS Support Matrix Updates
We've previously mentioned rolling changes to our TS support matrix in release notes, but didn't officially document our support policy. We've added a description of the support policy (last 2 years of TS releases, matching DefinitelyTyped) and the current oldest TS version we support in the docs:
As of today, we've updated the support matrix to be TS 5.4+ . As always, it's possible RTK will work if you're using an earlier version of TS, but we don't test against earlier versions and don't support any issues with those versions.
We have run an initial test with the upcoming TS 7.0 native
tsgorelease. We found a couple minor issues with our own TS build and test setup, but no obvious issues with using RTK with TS 7.0.Bug Fixes
A user reported a rare edge case where the combination of
resetApiStateandretry()could lead to an error calling anAbortController. We've restructured ourAbortControllerhandling logic to avoid that (and simplified a bit of our internals in the process).What's Changed
Full Changelog: v2.11.0...v2.11.1
This feature release upgrades our Immer dependency to v11 to pick up the additional recent performance optimizations, adds a new
refetchCachedPagesoption to allow only fetching the first cached page, and fixes an issue with regex ignore paths in the immutability middleware.Changelog
Immer v11 Performance Improvements
As described in the release notes for v2.10.0, we recently put significant effort into profiling Immer, and contributed several PRs that aimed to optimize its update performance.
v2.10.0 updated to use Immer 10.2.0, which added the first smaller set of perf updates. That included a new Immer option to disable "strict iteration" to speed up iterating copied objects, and we specifically applied that change in RTK under the assumption that standard plain JS objects as Redux state shouldn't have unusual keys anyway. Overall, this appears to boost Immer update perf by ~+20% over v10.1 depending on update scenario.
Immer v11.0.0 was just released and contains the second perf PR, a major internal architectural rewrite to change the update finalization implementation from a recursive tree traversal to a set of targeted updates based on accessed and updated fields. Based on the benchmarks in the PR, this adds another ~+5% perf boost over the improvements in v10.2, again with variations depending on update scenario. In practice, the actual improvement may be better than that - the benchmarks list includes some array update cases which actually got a bit slower (and thus drag down the overall average), and a majority of update scenarios show anywhere from +25% to +60% faster than Immer v10.1!
As a practical example, we have an RTK Query stress test benchmark where we mount 1000 components with query hooks at once, unmount, then remount them. We ran the same benchmark steps for RTK 2.9 and Immer 10.1, and then RTK 2.10+ and Immer 11. The overall scripting time dropped by about 30% (3330ms -> 2350ms), and the amount of time spent in Immer methods and the RTK reducers dropped significantly:
Based on this, it appears to be a major improvement overall.
As with the instructions in v2.10.0: if by some chance your Redux app state relies on non-string keys, you can still manually call
setUseStrictIteration(true)in your app code to retain compatibility there, but we don't expect that standard Redux apps will have to worry about that.There are still two outstanding Immer perf PRs that may offer further improvements: one that adds an optional plugin to override array methods to avoid proxy creation overhead, and another experimental tweak to shallow copying that may be better with larger object sizes.
New
refetchCachedPagesOptionRTK Query's infinite query API was directly based on React Query's approach, including the pages cache structure and refetching behavior. By default, that means that when you trigger a refetch, both R-Q and RTKQ will try to sequentially refetch all pages currently in that cache entry. So, if there were 5 pages cached for an entry, they will try to fetch pages 0...4, in turn.
Some users have asked for the ability to only refetch the first page. This can be accomplished somewhat manually by directly updating the cache entry to eliminate the old pages and then triggering a refetch, but that's admittedly not very ergonomic.
We've merged a contributed PR that adds a new
refetchCachedPagesflag. This can be defined as part of infinite query endpoints, passed as an option to infinite query hooks, or passed as an option ininitiate()calls or hookrefetch()methods. If set torefetchCachedPages: false, it will only refetch the first page in the cache and not the remaining pages, thus shrinking the cache from N pages to 1 page.Other Fixes
We merged a fix to the immutability dev middleware where it was treating
ignoredPathregexes as strings and not actually testing them correctly.What's Changed
Full Changelog: v2.10.1...v2.11.0
Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information: