[Snyk] Upgrade: redux, react-redux, react-scripts, redux-thunk, styled-components, web3-eth-contract, web3 #6
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.
redux
from 4.1.1 to 4.2.1 | 4 versions ahead of your current version | 2 years ago
on 2023-01-28
react-redux
from 7.2.5 to 7.2.9 | 4 versions ahead of your current version | 2 years ago
on 2022-09-23
react-scripts
from 2.1.3 to 2.1.8 | 5 versions ahead of your current version | 6 years ago
on 2019-03-07
redux-thunk
from 2.3.0 to 2.4.2 | 3 versions ahead of your current version | 2 years ago
on 2022-11-04
styled-components
from 5.3.1 to 5.3.11 | 10 versions ahead of your current version | a year ago
on 2023-05-26
web3-eth-contract
from 1.8.2 to 1.10.4 | 11 versions ahead of your current version | 7 months ago
on 2024-02-05
web3
from 1.8.2 to 1.10.4 | 11 versions ahead of your current version | 7 months ago
on 2024-02-05
Issues fixed by the recommended upgrade:
SNYK-JS-SEMVER-3247795
SNYK-JS-SEMVER-3247795
SNYK-JS-SEMVER-3247795
SNYK-JS-ES5EXT-6095076
SNYK-JS-FOLLOWREDIRECTS-6141137
SNYK-JS-TAR-1536528
SNYK-JS-INI-1048974
SNYK-JS-IP-6240864
SNYK-JS-TAR-1536531
SNYK-JS-TAR-1579147
SNYK-JS-TAR-1579152
SNYK-JS-TAR-1579155
SNYK-JS-TAR-174125
SNYK-JS-SSRI-1246392
SNYK-JS-BROWSERIFYSIGN-6037026
SNYK-JS-EXPRESS-6474509
SNYK-JS-FOLLOWREDIRECTS-6444610
npm:chownr:20180731
SNYK-JS-TAR-1536758
SNYK-JS-BABELTRAVERSE-5962462
SNYK-JS-MINIMIST-559764
SNYK-JS-MINIMIST-559764
SNYK-JS-MINIMIST-2429795
SNYK-JS-MINIMIST-2429795
SNYK-JS-WORDWRAP-3149973
Release notes
Package 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
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: react-scripts
Package name: redux-thunk
This release removes an unused TS type that caused errors when users were type-checking libraries in
node_modules
.What's Changed
Full Changelog: v2.4.1...v2.4.2
This release adds an explicit plain
action
overload to theThunkDispatch
TS type to better handle inference of the return value in some cases.What's Changed
Full Changelog: v2.4.0...v2.4.1
This very overdue release makes several major improvements to the TypeScript types, and converts the actual source to TypeScript. Sorry for the delay!
Changelog
TypeScript Improvements
This release fixes several outstanding issues that had been reported with the types. An extra overload has been added to let TS correctly understand some generically-typed values being passed to
dispatch
, and the overloads have been reworked for additional compatibility.There's also a new
ThunkActionDispatch
type that can be used to represent howbindActionCreators
turns bound thunks into(arg) => thunkReturnValue
.Additionally, all of the generic args have been giving meaningful names instead of one-letter abbreviations (
S
->State
,E
->ExtraArgument
, etc), and we've added descriptive comments in the type definitions for clarity.Optional Global
Dispatch
Type ExtensionMost Redux apps have the thunk middleware enabled, but the default
Dispatch
andbindActionCreator
types only know about the standard behavior of a basic Redux store without any middleware. The thunk middleware types add to that type behavior, so thatDispatch
knows dispatching a thunk can actually return a value such as a Promise.We generally recommend inferring the type of
dispatch
and using that to create reusable types, including creating pre-typed hooks. However, some users may prefer to globally augment theDispatch
type to always use the additional thunk behavior.You can now
import 'redux-thunk/extend-redux'
to globally augment theDispatch
type as an opt-in change in behavior.Codebase Converted to TypeScript
We've gone ahead and converted the actual source to TS. Since the source was only 15-ish lines to begin with, most of the "conversion" time was just trying to convince TS that assigning
thunk.extraArgument = createThunkMiddleware
was a legal operation :)We also updated the build tooling:
Finally, the README has been updated with newer instructions and usage information.
What's Changed
applyMiddleware
by @ iamandrewluca in #279|
by @ Philipp91 in #317New Contributors
Full Changelog: v2.3.0...v2.4.0
Hello! There's a new sheriff in town...
This is only an update to the TypeScript typings for Redux 4.0 compatibility. After some discussion on the issues/PRs, we're going to be removing the typings completely in a 3.0 release soon. They will instead live in DefinitelyTyped, where they can be updated to match newer version of TypeScript and Redux at whatever pace they want to take. Farewell, typings! 🖖
Package name: styled-components
Package name: web3-eth-contract
Package name: web3