[Snyk] Upgrade: core-js, redux, react-redux, typescript #4
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 multiple dependencies.
👯 The following dependencies are linked and will therefore be updated together.ℹ️ 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.
core-js
from 3.12.1 to 3.38.1 | 81 versions ahead of your current version | a month ago
on 2024-08-20
redux
from 4.1.0 to 4.2.1 | 5 versions ahead of your current version | 2 years ago
on 2023-01-28
react-redux
from 7.2.4 to 7.2.9 | 5 versions ahead of your current version | 2 years ago
on 2022-09-23
typescript
from 4.2.4 to 4.9.5 | 634 versions ahead of your current version | 2 years ago
on 2023-01-30
Release notes
Package name: core-js
URLSearchParams
percent decoding, #1357, #1361, thanks @ slowcheetahIterator
helpers proposal methods marked as shipped from FF131Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from Bun 1.1.23RegExp.escape
marked as shipped from Bun 1.1.22Promise.try
marked as shipped from Bun 1.1.22Uint8Array
to / from base64 and hex proposal methods marked as shipped from Bun 1.1.22RegExp.escape
proposal:RegExp.escape
/actual/
namespace entries, unconditional forced replacement changed to feature detectionPromise.try
proposal:Promise.try
/actual/
namespace entries, unconditional forced replacement changed to feature detectionUint8Array
to / from base64 and hex stage 3 proposal:Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.setFromBase64
Uint8Array.prototype.setFromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
Uint8Array.prototype.{ setFromBase64, setFromHex }
methodsUint8Array.fromBase64
andUint8Array.prototype.setFromBase64
lastChunkHandling
option, proposal-arraybuffer-base64/33Uint8Array.prototype.toBase64
omitPadding
option, proposal-arraybuffer-base64/60TypeError
on arrays backed by detached buffersRegExp
named capture groups polyfill in combination with non-capturing groups, #1352, thanks @ Ulopprocess.getBuiltinModule
for getting built-in NodeJS modules where it's availablehttps
instead ofhttp
inURL
constructor feature detection to avoid extra notifications from some overly vigilant security scanners, #1345browserslist
incore-js-compat
dependencies that fixes an upstream issue with incorrect interpretation of somebrowserslist
queries, #1344, browserslist/829, browserslist/836Object.groupBy
andMap.groupBy
to work for non-objectsRangeError
ifSet
methods are called on an object with negative size propertySet.prototype.symmetricDifference
to callthis.has
in each iterationArray.fromAsync
to not call theArray
constructor twiceURL.parse
Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from FF129Symbol.asyncDispose
added and marked as supported from V8 ~ Chromium 127Promise.try
added and marked as supported from V8 ~ Chromium 128self
descriptor is broken in Deno 1.45.3 (again)URL.parse
feature detection for some specific casesSet
methods proposal added and marked as supported from FF 127Symbol.dispose
added and marked as supported from V8 ~ Chromium 125Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
added and marked as supported from Deno 1.43URL.parse
added and marked as supported from Chromium 126URL.parse
added and marked as supported from NodeJS 22.0URL.parse
added and marked as supported from Deno 1.43Set
methods proposal:Set.prototype.intersection
Set.prototype.union
Set.prototype.difference
Set.prototype.symmetricDifference
Set.prototype.isSubsetOf
Set.prototype.isSupersetOf
Set.prototype.isDisjointFrom
es.
namespace modules,/es/
and/stable/
namespaces entriesMath.sumPrecise
stage 2.7 proposal:Math.sumPrecise
Promise.try
proposal:Promise.try
RegExp.escape
stage 2 proposal:Symbol.customMatcher
Symbol.customMatcher
Symbol.customMatcher
well-known symbol from the pattern matching proposal is also used in the exactors proposal, added an entry also for this proposalURL.parse
, url/825{ Object, Map }.groupBy
bug that does not support iterable primitivesArray.fromAsync
URL.parse
added and marked as supported from FF 126URL.parse
added and marked as supported from Bun 1.1.4URL.canParse
fixed and marked as supported from Bun 1.1.0Set
methods fixed in JavaScriptCore and marked as supported from Bun 1.1.1Object.setPrototypeOf
, #1329, thanks @ minseok-choeArray.from
, #1331, thanks @ minseok-choequeueMicrotask
arityURL.canParse
aritySuppressedError
extra arguments support and arityvalue
argument ofURLSearchParams.prototype.{ has, delete }
marked as supported from Bun 1.0.31Array.prototype.{ toSpliced, toReversed, with }
andatob
marked as supportedArrayBuffer.prototype.transfer
and friends proposal:ArrayBuffer.prototype.detached
ArrayBuffer.prototype.transfer
ArrayBuffer.prototype.transferToFixedLength
es.
namespace modules,/es/
and/stable/
namespaces entriesUint8Array
to / from base64 and hex proposal:Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
/actual/
namespace entriesPromise.try
proposal has been resurrected and moved to stage 2, Febrary 2024 TC39 meetingcore-js/stage/2.7
- still emptySet.prototype.intersection
feature detectionArray.prototype.{ indexOf, lastIndexOf, includes }
, #1325, thanks @ minseok-choeArray.prototype.{ reduce, reduceRight }
, #1327, thanks @ minseok-choeArray.from
and some other methods with proxy targets, #1322, thanks @ minseok-choeArrayBuffer.prototype.transfer
and friends proposal in some specific cases in IE10-Date.prototype.toJSON
toJSON.stringify
entries dependencies{ Map, Object }.groupBy
,Promise.withResolvers
,ArrayBuffer.prototype.transfer
and friends marked as supported from Safari 17.4Set
methods fixed and marked as supported from V8 ~ Chrome 123Symbol.metadata
marked as supported from Deno 1.40.4ToLength
operation with bigints, #1318String#split
polyfillIterator
helpers proposal methods marked as supported from V8 ~ Chrome 122Set
methods, but they have a bug similar to Safariself
marked as fixed from Bun 1.0.22SuppressedError
andSymbol.{ dispose, asyncDispose }
marked as supported from Bun 1.0.23{ Map, Set, WeakMap, WeakSet }.{ from, of }
became non-generic, following this and some other notes. Now they can be invoked withoutthis
, but no longer return subclass instancesSymbol
polyfillqueueMicrotask
polyfillArrayBuffer
Array.fromAsync
marked as supported from V8 ~ Chrome 121Array.prototype.push
bug is fixed in V8 ~ Chrome 122 (Hallelujah!)ArrayBuffer.prototype.transfer
and friends proposal features marked as supported from FF 122 and Bun 1.0.19Object.groupBy
andMap.groupBy
marked as supported from Bun 1.0.19Iterator
helpers proposal methods are still not disabled in Deno, the web compatibility issue why it was disabled in Chromium makes no sense for Deno and fixed in the spec, they marked as supported from Deno 1.37Array
grouping proposal:Object.groupBy
Map.groupBy
es.
namespace modules,/es/
and/stable/
namespaces entriesPromise.withResolvers
proposal:Promise.withResolvers
es.
namespace module,/es/
and/stable/
namespaces entriesIterator
helpers proposal, proposal-iterator-helpers/287 and some following changes, November 2023 TC39 meetingUint8Array
to / from base64 and hex stage 2 proposal:Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
Number.fromString
validation before clarification of proposal-number-fromstring/24@@ toStringTag
property descriptors on DOM collections, #1312Array
iteration methods, #1313atob
/btoa
improvementsPromise.withResolvers
marked as shipped from FF121Package name: redux
This bugfix release removes the
isMinified
internal check to fix a compat issue with Expo. That check has added in early 2016, soon after Redux 3.0 was released, at a time when it was still less common to use bundlers with proper production build settings. Today that check is irrelevant, so we've removed it.What's Changed
Full Changelog: v4.2.0...v4.2.1
This release marks the original
createStore
API as@ deprecated
to encourage users to migrate to Redux Toolkit, and adds a newlegacy_createStore
API as an alias without the deprecation warning.Goal
Redux Toolkit (the
@ reduxjs/toolkit
package) is the right way for Redux users to write Redux code today:https://redux.js.org/introduction/why-rtk-is-redux-today
Unfortunately, many tutorials are still showing legacy "hand-written" Redux patterns, which result in a much worse experience for users. New learners going through a bootcamp or an outdated Udemy course just follow the examples they're being shown, don't know that RTK is the better and recommended approach, and don't even think to look at our docs.
Given that, the goal is to provide them with a visual indicator in their editor, like
createStore. When users hover over thecreateStore
import or function call, the doc tooltip recommends usingconfigureStore
from RTK instead, and points them to that docs page. We hope that new learners will see the strikethrough, read the tooltip, read the docs page, learn about RTK, and begin using it.To be extremely clear:
WE ARE NOT GOING TO ACTUALLY REMOVE THE
createStore
API, AND ALL YOUR EXISTING CODE WILL STILL CONTINUE TO WORK AS-IS!We are just marking
createStore
as "deprecated":For additional details, see the extensive discussion in #4325 .
Rationale
redux
core package, or fully deprecate the entireredux
package and rename it to@ reduxjs/core
. Unfortunately, those bring up too many complexities:redux-starter-kit
to@ reduxjs/toolkit
, and all of our docs and tutorials have pointed to it for the last three years. I don't want to put users through another whiplash package transition for no real benefitSo, this is the minimum possible approach we can take to reach out to users who otherwise would never know that they are following outdated patterns, while avoiding breaking running user code or having to completely rewrite our package and repo structure.
Results
When a user imports
createStore
in their editor, they will see a visual strikethrough. Hovering over it will show a doc tooltip that encourages them to useconfigureStore
from RTK, and points to an explanatory docs page:Again, no broken code, and no runtime warnings.
If users do not want to see that strikethrough, they have three options:
configureStore
legacy_createStore
API that is now exported, which is the exact same function but with no@ deprecation
tag. The simplest option is to do an aliased import rename:What's Changed
createStore
as deprecated, and addlegacy_createStore
alias by @ markerikson in #4336Full Changelog: v4.1.2...v4.2.0
4.2.0-alpha.0
This release fixes a small specific TS types issue where state types that had a nested
unknown
field inside would cause compilation failures when used as thepreloadedState
argument.What's Changed
Full Changelog: v4.1.1...v4.1.2
Just a small fix for Safari users in development mode.
Changes
This release shrinks our bundle size via error message extraction, updates several error messages for clarity, and optimizes our list of runtime dependencies.
Overall, version 4.1 shrinks from 2.6K min+gz to 1.6K min+gz thanks to these changes.
Be sure to check out the Redux Toolkit 1.6 alpha containing our new "RTK Query" data fetching APIs! It also includes Redux 4.1 as a dependency.
Changelog
Error Message Extraction and Improvements
We now extract all of our error messages from production builds in order to save on bundle size, using a technique inspired from React's error code extraction. The error messages will still show as normal in development, but in production they will reference a specific numeric error code and provide a link to a Redux docs page that has the full error message.
An example of this is: https://redux.js.org/errors?code=5 , which shows the "can't subscribe while reducers are executing" error.
The error code extraction saves about 800 bytes out of a production build.
Thanks to @ andrewmcgivery for doing all the hard work on implementing the error extraction!
We've also updated many of our error messages to provide additional details at runtime about what happened, especially runtime type checks such as "actions must be plain objects". They now provide a more specific type for the unexpected value, such as indicating
promise
orfunction
:Package name: react-redux
This patch release updates the rarely-used
areStatesEqual
option forconnect
to now pass throughownProps
for additional use in determining which pieces of state to compare if desired.The new signature is:
What's Changed
Full Changelog: v7.2.8...v7.2.9
This release fixes a bug in the 7.x branch that caused
<Provider>
to unsubscribe and stop updating completely when used inside of React 18's<StrictMode>
. The new "strict effects" behavior double-mounts components, and the subscription needed to be set up inside of auseLayoutEffect
instead of auseMemo
. This was previously fixed as part of v8 development, and we've backported it.Note: If you are now using React 18, we strongly recommend using the React-Redux v8 beta instead of v7.x!. v8 has been rewritten internally to work correctly with React 18's Concurrent Rendering capabilities. React-Redux v7 will run and generally work okay with existing code, but may have rendering issues if you start using Concurrent Rendering capabilities in your code.
Now that React 18 is out, we plan to finalize React-Redux v8 and release it live within the next couple weeks. Per an update yesterday in the "v8 roadmap" thread, React-Redux v8 will be updated in the next couple days to ensure support for React 16.8+ as part of the next beta release. We would really appreciate final feedback on using React-Redux v8 beta with React 18 before we publish the final version.
Full Changelog: v7.2.7...v7.2.8
This release updates React-Redux v7's peer dependencies to accept React 18 as a valid version, only to avoid installation errors caused by NPM's "install all the peer deps and error if they don't match" behavior.
Note: If you are now using React 18, we strongly recommend using the React-Redux v8 beta instead of v7.x!. v8 has been rewritten internally to work correctly with React 18's Concurrent Rendering capabilities. React-Redux v7 will run and generally work okay with existing code, but may have rendering issues if you start using Concurrent Rendering capabilities in your code.
Now that React 18 is out, we plan to finalize React-Redux v8 and release it live within the next couple weeks. We would really appreciate final feedback on using React-Redux v8 beta with React 18 before we publish the final version.
Package name: typescript