dependabot[bot] opened a new pull request, #35814:
URL: https://github.com/apache/superset/pull/35814

   Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 
1.9.7 to 2.9.2.
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/reduxjs/redux-toolkit/releases";><code>@​reduxjs/toolkit</code>'s
 releases</a>.</em></p>
   <blockquote>
   <h2>v2.9.1</h2>
   <p>This <strong>bugfix release</strong> fixes how sorted entity adapters 
handle duplicate IDs, tweaks the TS types for RTKQ query state cache entries to 
improve how the <code>data</code> field is handled, and adds better cleanup for 
long-running listener middleware effects.</p>
   <h2>What's Changed</h2>
   <ul>
   <li>fix(entityAdapter): ensure sorted addMany keeps first occurrence of 
duplicate ids by <a 
href="https://github.com/demyanm";><code>@​demyanm</code></a> in <a 
href="https://redirect.github.com/reduxjs/redux-toolkit/pull/5097";>reduxjs/redux-toolkit#5097</a></li>
   <li>fix(entityAdapter): ensure sorted setMany keeps just unique IDs in 
state.ids by <a href="https://github.com/demyanm";><code>@​demyanm</code></a> in 
<a 
href="https://redirect.github.com/reduxjs/redux-toolkit/pull/5107";>reduxjs/redux-toolkit#5107</a></li>
   <li>fix(types): ensure non-undefined <code>data</code> on isSuccess with 
<code>exactOptionalPropertyTypes</code> by <a 
href="https://github.com/CO0Ki3";><code>@​CO0Ki3</code></a> in <a 
href="https://redirect.github.com/reduxjs/redux-toolkit/pull/5088";>reduxjs/redux-toolkit#5088</a></li>
   <li>Allow executing effects that have become unsubscribed to be canceled by 
<code>listenerMiddleware.clearListeners</code> by <a 
href="https://github.com/chris-chambers";><code>@​chris-chambers</code></a> in 
<a 
href="https://redirect.github.com/reduxjs/redux-toolkit/pull/5102";>reduxjs/redux-toolkit#5102</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/reduxjs/redux-toolkit/compare/v2.9.0...v2.9.1";>https://github.com/reduxjs/redux-toolkit/compare/v2.9.0...v2.9.1</a></p>
   <h2>v2.9.0</h2>
   <p>This <strong>feature release</strong> rewrites RTK Query's internal 
subscription and polling systems and the <code>useStableQueryArgs</code> hook 
for better perf, adds automatic <code>AbortSignal</code> handling to requests 
still in progress when a cache entry is removed, fixes a bug with the 
<code>transformResponse</code> option for queries, adds a new 
<code>builder.addAsyncThunk</code> method, and fixes assorted other issues.</p>
   <h2>Changelog</h2>
   <h3>RTK Query Performance Improvements</h3>
   <p>We had reports that <a 
href="https://redirect.github.com/reduxjs/redux-toolkit/issues/5052";>RTK Query 
could get very slow when there were thousands of subscriptions to the same 
cache entry</a>.  After investigation, we found that the internal polling logic 
was attempting to recalculate the minimum polling time after every new 
subscription was added.  This was highly inefficient, as most subscriptions 
don't change polling settings, and it required repeated O(n) iteration over the 
growing list of subscriptions.  We've rewritten that logic to debounce the 
update check and ensure a max of one polling value update per tick for the 
entire API instance.</p>
   <p>Related, while working on the request abort changes, testing showed that 
use of plain <code>Record</code>s to hold subscription data was inefficient 
because we have to iterate keys to check size.  We've rewritten the 
subscription handling internals to use <code>Map</code>s instead, as well as 
restructuring some additional checks around in-flight requests.</p>
   <p>These two improvements drastically improved runtime perf for the 
thousands-of-subscriptions-one-cache-entry repro, eliminating RTK methods as 
visible hotspots in the perf profiles.    It likely also improves perf for 
general usage as well.</p>
   <p>We've also changed the implementation of our internal 
<code>useStableQueryArgs</code> hook to avoid calling 
<code>serializeQueryArgs</code> on its value, which can avoid potential perf 
issues when a query takes a very large object as its cache key.</p>
   <blockquote>
   <p>[!NOTE]
   The internal logic switched from serializing the query arg to doing 
reference checks on nested values.  This means that if you are passing a 
non-POJO value in a query arg, such as <code>useSomeQuery({a: new 
Set()})</code>, <em>and</em> you have <code>refetchOnMountOrArgChange</code> 
enabled, this will now trigger refeteches each time as the <code>Set</code> 
references are now considered different based on equality instead of 
serialization.</p>
   </blockquote>
   <h3>Abort Signal Handling on Cleanup</h3>
   <p>We've had numerous requests over time for various forms of &quot;abort 
in-progress requests when the data is no longer needed / params change / 
component unmounts / some expensive request is taking too long&quot;.  This is 
a complex topic with multiple potential use cases, and our standard answer has 
been that we <em>don't</em> want to abort those requests - after all, cache 
entries default to staying in memory for 1 minute after the last subscription 
is removed, so RTKQ's cache can still be updated when the request completes.  
That also means that it doesn't make sense to abort a request &quot;on 
unmount&quot;.</p>
   <p>However, it does then make sense to abort an in-progress request if the 
cache entry itself is removed.  Given that, we've updated our cache handling to 
automatically call the existing <code>resPromise.abort()</code> method in that 
case, triggering the <code>AbortSignal</code> attached to the 
<code>baseQuery</code>.  The handling at that point depends on your app - 
<code>fetchBaseQuery</code> should handle that, a custom <code>baseQuery</code> 
or <code>queryFn</code> would need to listen to the 
<code>AbortSignal</code>.</p>
   <p>We do have <a 
href="https://redirect.github.com/reduxjs/redux-toolkit/issues/2444";>an open 
issue asking for further discussions of potential abort / cancelation use 
cases</a> and would appreciate further feedback.</p>
   <h3>New Options</h3>
   <p>The builder callback used in <code>createReducer</code> and 
<code>createSlice.extraReducers</code> now has 
<code>builder.addAsyncThunk</code> available, which allows handling specific 
actions from a thunk in the same way that you could define a thunk inside 
<code>createSlice.reducers</code>:</p>
   <pre lang="ts"><code>        const slice = createSlice({
             name: 'counter',
             initialState: {
               loading: false,
               errored: false,
               value: 0,
             },
   &lt;/tr&gt;&lt;/table&gt; 
   </code></pre>
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/32887d7501cc0e2634b48d25a0c524b6eb103761";><code>32887d7</code></a>
 Release 2.9.2</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/4432629dbaaefb47e29135fbffe75d13589313fc";><code>4432629</code></a>
 Don't create subscriptions for prefetch calls (<a 
href="https://redirect.github.com/reduxjs/redux-toolkit/issues/5116";>#5116</a>)</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/c86d948bd8d6a000b5cf192278213abab85682ce";><code>c86d948</code></a>
 Add <code>retry</code> abort handling and abort on <code>resetApiState</code> 
(<a 
href="https://redirect.github.com/reduxjs/redux-toolkit/issues/5114";>#5114</a>)</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/02630d2b486d5a4bd74da4b08393401046af0735";><code>02630d2</code></a>
 fix: update graphql-request dependency to include version ^7.0.0 (<a 
href="https://redirect.github.com/reduxjs/redux-toolkit/issues/4987";>#4987</a>)</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/1b950370ed777febbdf17e5cb6b8075ce6802af9";><code>1b95037</code></a>
 Respect maxRetries for unexpected errors (<a 
href="https://redirect.github.com/reduxjs/redux-toolkit/issues/5113";>#5113</a>)</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/c490b190c698c4e10c1352abb0f8c76ea23d06d4";><code>c490b19</code></a>
 Improve <code>fetchBaseQuery</code> default headers handling (<a 
href="https://redirect.github.com/reduxjs/redux-toolkit/issues/5112";>#5112</a>)</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/7b7faea80f84c6165c449d78b62112ddb6449baa";><code>7b7faea</code></a>
 Fix potential subscription leakage in SSR environments (<a 
href="https://redirect.github.com/reduxjs/redux-toolkit/issues/5111";>#5111</a>)</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/fde0be7ffcb2e4fd5776ed5fb732a6a979321c1e";><code>fde0be7</code></a>
 Release 2.9.1</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/47e7d81854179bc89479c7c3576bf9ff086c5574";><code>47e7d81</code></a>
 Release <code>@​rtk-query/codegen-openapi</code> 2.1.0</li>
   <li><a 
href="https://github.com/reduxjs/redux-toolkit/commit/b4b7d174533742fca202d97a8d1af8853079ef88";><code>b4b7d17</code></a>
 Allow executing effects that have become unsubscribed to be canceled by 
`list...</li>
   <li>Additional commits viewable in <a 
href="https://github.com/reduxjs/redux-toolkit/compare/v1.9.7...v2.9.2";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   
   [![Dependabot compatibility 
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@reduxjs/toolkit&package-manager=npm_and_yarn&previous-version=1.9.7&new-version=2.9.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
   
   Dependabot will resolve any conflicts with this PR as long as you don't 
alter it yourself. You can also trigger a rebase manually by commenting 
`@dependabot rebase`.
   
   [//]: # (dependabot-automerge-start)
   [//]: # (dependabot-automerge-end)
   
   ---
   
   <details>
   <summary>Dependabot commands and options</summary>
   <br />
   
   You can trigger Dependabot actions by commenting on this PR:
   - `@dependabot rebase` will rebase this PR
   - `@dependabot recreate` will recreate this PR, overwriting any edits that 
have been made to it
   - `@dependabot merge` will merge this PR after your CI passes on it
   - `@dependabot squash and merge` will squash and merge this PR after your CI 
passes on it
   - `@dependabot cancel merge` will cancel a previously requested merge and 
block automerging
   - `@dependabot reopen` will reopen this PR if it is closed
   - `@dependabot close` will close this PR and stop Dependabot recreating it. 
You can achieve the same result by closing it manually
   - `@dependabot show <dependency name> ignore conditions` will show all of 
the ignore conditions of the specified dependency
   - `@dependabot ignore this major version` will close this PR and stop 
Dependabot creating any more for this major version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this minor version` will close this PR and stop 
Dependabot creating any more for this minor version (unless you reopen the PR 
or upgrade to it yourself)
   - `@dependabot ignore this dependency` will close this PR and stop 
Dependabot creating any more for this dependency (unless you reopen the PR or 
upgrade to it yourself)
   
   
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to