diff --git a/package.json b/package.json index 3db9941e2c39cf..d8dd3d8548f10e 100644 --- a/package.json +++ b/package.json @@ -903,7 +903,7 @@ "@opentelemetry/sdk-metrics-base": "^0.31.0", "@opentelemetry/semantic-conventions": "^1.4.0", "@paralleldrive/cuid2": "^2.2.2", - "@reduxjs/toolkit": "1.9.7", + "@reduxjs/toolkit": "2.2.2", "@slack/webhook": "^7.0.1", "@smithy/eventstream-codec": "^2.0.12", "@smithy/eventstream-serde-node": "^2.1.1", @@ -999,7 +999,7 @@ "https-proxy-agent": "^5.0.1", "i18n-iso-countries": "^4.3.1", "icalendar": "0.7.1", - "immer": "^9.0.21", + "immer": "^10.0.3", "inquirer": "^7.3.3", "intl": "^1.2.5", "intl-format-cache": "^2.1.0", @@ -1086,7 +1086,7 @@ "react-monaco-editor": "^0.54.0", "react-popper-tooltip": "^3.1.1", "react-recompose": "^0.33.0", - "react-redux": "^7.2.8", + "react-redux": "^8.1.3", "react-resizable": "^3.0.4", "react-reverse-portal": "^2.1.0", "react-router": "^5.3.4", @@ -1099,18 +1099,18 @@ "react-virtualized": "^9.22.5", "react-window": "^1.8.9", "reduce-reducers": "^1.0.4", - "redux": "^4.2.1", + "redux": "^5.0.1", "redux-actions": "^2.6.5", - "redux-devtools-extension": "^2.13.8", - "redux-saga": "^1.1.3", - "redux-thunk": "^2.4.2", + "redux-devtools-extension": "^2.13.9", + "redux-saga": "^1.3.0", + "redux-thunk": "^3.1.0", "redux-thunks": "^1.0.0", "reflect-metadata": "^0.2.1", "remark-gfm": "1.0.0", "remark-parse-no-trim": "^8.0.4", "remark-stringify": "^8.0.3", "require-in-the-middle": "^7.2.1", - "reselect": "^4.1.8", + "reselect": "^5.0.1", "resize-observer-polyfill": "1.5.1", "rison-node": "1.0.2", "rxjs": "^7.5.5", diff --git a/packages/kbn-expandable-flyout/src/redux.ts b/packages/kbn-expandable-flyout/src/redux.ts index 879e812ebcbeac..4d690cb6b889e5 100644 --- a/packages/kbn-expandable-flyout/src/redux.ts +++ b/packages/kbn-expandable-flyout/src/redux.ts @@ -16,7 +16,6 @@ import { initialState, State } from './state'; export const store = configureStore({ reducer, devTools: process.env.NODE_ENV !== 'production', - enhancers: [], }); export const Context = createContext>({ diff --git a/packages/kbn-expandable-flyout/src/test/provider.tsx b/packages/kbn-expandable-flyout/src/test/provider.tsx index 896b563056206b..28a0c811bc0a8b 100644 --- a/packages/kbn-expandable-flyout/src/test/provider.tsx +++ b/packages/kbn-expandable-flyout/src/test/provider.tsx @@ -28,7 +28,6 @@ export const TestProvider: FC> = ({ reducer, devTools: false, preloadedState: state, - enhancers: [], }); return ( diff --git a/src/plugins/embeddable/public/store/create_store.ts b/src/plugins/embeddable/public/store/create_store.ts index 135f793c079ddd..53411875900dac 100644 --- a/src/plugins/embeddable/public/store/create_store.ts +++ b/src/plugins/embeddable/public/store/create_store.ts @@ -40,7 +40,7 @@ function createReducer( reducer?: CreateStoreOptions['reducer'] ): Reducer | ReducersMapObject { if (reducer instanceof Function) { - const generic = combineReducers>({ + const generic = combineReducers({ input: input.reducer, output: output.reducer, }) as Reducer; diff --git a/x-pack/plugins/canvas/public/components/element_wrapper/index.js b/x-pack/plugins/canvas/public/components/element_wrapper/index.js index 1dfa5b9b546ce9..6c7d5b1791c772 100644 --- a/x-pack/plugins/canvas/public/components/element_wrapper/index.js +++ b/x-pack/plugins/canvas/public/components/element_wrapper/index.js @@ -6,7 +6,7 @@ */ import PropTypes from 'prop-types'; -import { connectAdvanced } from 'react-redux'; +import { connect } from 'react-redux'; import { compose, withPropsOnChange, mapProps } from 'react-recompose'; import isEqual from 'react-fast-compare'; import { getResolvedArgs, getSelectedPage } from '../../state/selectors/workpad'; @@ -57,7 +57,7 @@ function selectorFactory(dispatch) { } export const ElementWrapper = compose( - connectAdvanced(selectorFactory), + connect(selectorFactory), withPropsOnChange( (props, nextProps) => !isEqual(props.element, nextProps.element), (props) => { diff --git a/x-pack/plugins/canvas/public/state/middleware/index.js b/x-pack/plugins/canvas/public/state/middleware/index.js index fbed2fbb3741b3..1f7494d8d5420e 100644 --- a/x-pack/plugins/canvas/public/state/middleware/index.js +++ b/x-pack/plugins/canvas/public/state/middleware/index.js @@ -6,16 +6,14 @@ */ import { applyMiddleware, compose as reduxCompose } from 'redux'; -import thunkMiddleware from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import { getWindow } from '../../lib/get_window'; import { inFlight } from './in_flight'; import { workpadUpdate } from './workpad_update'; import { elementStats } from './element_stats'; import { resolvedArgs } from './resolved_args'; -const middlewares = [ - applyMiddleware(thunkMiddleware, elementStats, resolvedArgs, inFlight, workpadUpdate), -]; +const middlewares = [applyMiddleware(thunk, elementStats, resolvedArgs, inFlight, workpadUpdate)]; // compose with redux devtools, if extension is installed const compose = getWindow().__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || reduxCompose; diff --git a/x-pack/plugins/canvas/storybook/addon/state.ts b/x-pack/plugins/canvas/storybook/addon/state.ts index dea83118e64336..4a87902997aa32 100644 --- a/x-pack/plugins/canvas/storybook/addon/state.ts +++ b/x-pack/plugins/canvas/storybook/addon/state.ts @@ -6,7 +6,7 @@ */ import { applyMiddleware, Dispatch, Store } from 'redux'; -import thunkMiddleware from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import addons from '@storybook/addons'; import { diff } from 'jsondiffpatch'; import { isFunction } from 'lodash'; @@ -21,7 +21,7 @@ import { getInitialState as getState } from '../../public/state/initial_state'; import { State } from '../../types'; export const getInitialState: () => State = () => getState(); -export const getMiddleware = () => applyMiddleware(thunkMiddleware); +export const getMiddleware = () => applyMiddleware(thunk); export const getReducer = () => getRootReducer(getInitialState()); export const patchDispatch: (store: Store, dispatch: Dispatch) => Dispatch = diff --git a/x-pack/plugins/cross_cluster_replication/public/app/store/store.js b/x-pack/plugins/cross_cluster_replication/public/app/store/store.js index 17f4e7bcdc26cc..de6fb04102aaea 100644 --- a/x-pack/plugins/cross_cluster_replication/public/app/store/store.js +++ b/x-pack/plugins/cross_cluster_replication/public/app/store/store.js @@ -6,7 +6,7 @@ */ import { applyMiddleware, compose, createStore } from 'redux'; -import thunk from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import { ccr } from './reducers'; diff --git a/x-pack/plugins/index_management/public/application/store/store.js b/x-pack/plugins/index_management/public/application/store/store.js index 08109cde04e1f7..58aa83895e562e 100644 --- a/x-pack/plugins/index_management/public/application/store/store.js +++ b/x-pack/plugins/index_management/public/application/store/store.js @@ -6,7 +6,7 @@ */ import { createStore, applyMiddleware, compose } from 'redux'; -import thunk from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import { defaultTableState } from './reducers/table_state'; import { getReducer } from './reducers'; diff --git a/x-pack/plugins/license_management/public/application/store/store.js b/x-pack/plugins/license_management/public/application/store/store.js index dfc68783118ee6..024e5eff9416f5 100644 --- a/x-pack/plugins/license_management/public/application/store/store.js +++ b/x-pack/plugins/license_management/public/application/store/store.js @@ -6,7 +6,7 @@ */ import { createStore, applyMiddleware, compose } from 'redux'; -import thunk from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import { licenseManagement } from './reducers'; diff --git a/x-pack/plugins/maps/public/reducers/store.js b/x-pack/plugins/maps/public/reducers/store.js index f1020b2d6cdb69..365701e5943379 100644 --- a/x-pack/plugins/maps/public/reducers/store.js +++ b/x-pack/plugins/maps/public/reducers/store.js @@ -6,7 +6,7 @@ */ import { combineReducers, applyMiddleware, createStore, compose } from 'redux'; -import thunk from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import { ui, DEFAULT_MAP_UI_STATE } from './ui'; import { map, DEFAULT_MAP_STATE } from './map'; // eslint-disable-line import/named import { nonSerializableInstances } from './non_serializable_instances'; diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/state/store.ts b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/state/store.ts index 19320f0102a99e..f975fbfcb527de 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/state/store.ts +++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/state/store.ts @@ -18,7 +18,6 @@ export const store = configureStore({ middleware: (getDefaultMiddleware) => getDefaultMiddleware({ thunk: false }).concat(sagaMW), devTools: process.env.NODE_ENV !== 'production', preloadedState: {}, - enhancers: [], }); sagaMW.run(rootEffect); diff --git a/x-pack/plugins/remote_clusters/public/application/store/store.js b/x-pack/plugins/remote_clusters/public/application/store/store.js index cfa36b49a29c1e..2dc4b04d7dfcb4 100644 --- a/x-pack/plugins/remote_clusters/public/application/store/store.js +++ b/x-pack/plugins/remote_clusters/public/application/store/store.js @@ -6,7 +6,7 @@ */ import { createStore, applyMiddleware, compose } from 'redux'; -import thunk from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import { remoteClusters } from './reducers'; import { detailPanel } from './middleware'; diff --git a/x-pack/plugins/rollup/public/crud_app/store/store.js b/x-pack/plugins/rollup/public/crud_app/store/store.js index 383c6e842afdaa..1d1b3b7eb7b686 100644 --- a/x-pack/plugins/rollup/public/crud_app/store/store.js +++ b/x-pack/plugins/rollup/public/crud_app/store/store.js @@ -6,7 +6,7 @@ */ import { createStore, applyMiddleware, compose } from 'redux'; -import thunk from 'redux-thunk'; +import { thunk } from 'redux-thunk'; import { rollupJobs } from './reducers'; diff --git a/x-pack/plugins/security_solution/public/common/store/sourcerer/selectors.ts b/x-pack/plugins/security_solution/public/common/store/sourcerer/selectors.ts index 71cbef670cb6e5..58995597cf51d3 100644 --- a/x-pack/plugins/security_solution/public/common/store/sourcerer/selectors.ts +++ b/x-pack/plugins/security_solution/public/common/store/sourcerer/selectors.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { createSelector } from 'reselect'; +import { createSelector, lruMemoize } from 'reselect'; import type { State } from '../types'; import type { SourcererModel } from './model'; import { SourcererScopeName } from './model'; @@ -23,6 +23,7 @@ export const sourcererScope = createSelector( (state: State, scopeId: SourcererScopeName) => scopeId, (scopes, scopeId) => scopes[scopeId], { + memoize: lruMemoize, memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, @@ -30,6 +31,7 @@ export const sourcererScope = createSelector( ); export const sourcererScopeIsLoading = createSelector(sourcererScope, (scope) => scope.loading, { + memoize: lruMemoize, memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, @@ -39,6 +41,8 @@ export const sourcererScopeSelectedDataViewId = createSelector( sourcererScope, (scope) => scope.selectedDataViewId, { + memoize: lruMemoize, + memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, @@ -49,6 +53,7 @@ export const sourcererScopeSelectedPatterns = createSelector( sourcererScope, (scope) => scope.selectedPatterns, { + memoize: lruMemoize, memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, @@ -59,6 +64,7 @@ export const sourcererScopeMissingPatterns = createSelector( sourcererScope, (scope) => scope.missingPatterns, { + memoize: lruMemoize, memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, @@ -69,6 +75,7 @@ export const kibanaDataViews = createSelector( selectSourcerer, (sourcerer) => sourcerer.kibanaDataViews, { + memoize: lruMemoize, memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, @@ -79,6 +86,7 @@ export const defaultDataView = createSelector( selectSourcerer, (sourcerer) => sourcerer.defaultDataView, { + memoize: lruMemoize, memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, @@ -89,6 +97,7 @@ export const signalIndexName = createSelector( selectSourcerer, (sourcerer) => sourcerer.signalIndexName, { + memoize: lruMemoize, memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, @@ -99,6 +108,7 @@ export const signalIndexMappingOutdated = createSelector( selectSourcerer, (sourcerer) => sourcerer.signalIndexMappingOutdated, { + memoize: lruMemoize, memoizeOptions: { maxSize: SOURCERER_SCOPE_MAX_SIZE, }, diff --git a/yarn.lock b/yarn.lock index 144cbc1969a8c7..42b892dc46a33c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7700,59 +7700,58 @@ pluralize "^8.0.0" yaml-ast-parser "0.0.43" -"@redux-saga/core@^1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@redux-saga/core/-/core-1.1.3.tgz#3085097b57a4ea8db5528d58673f20ce0950f6a4" - integrity sha512-8tInBftak8TPzE6X13ABmEtRJGjtK17w7VUs7qV17S8hCO5S3+aUTWZ/DBsBJPdE8Z5jOPwYALyvofgq1Ws+kg== +"@redux-saga/core@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@redux-saga/core/-/core-1.3.0.tgz#2ce08b73d407fc6ea9e7f7d83d2e97d981a3a8b8" + integrity sha512-L+i+qIGuyWn7CIg7k1MteHGfttKPmxwZR5E7OsGikCL2LzYA0RERlaUY00Y3P3ZV2EYgrsYlBrGs6cJP5OKKqA== dependencies: "@babel/runtime" "^7.6.3" - "@redux-saga/deferred" "^1.1.2" - "@redux-saga/delay-p" "^1.1.2" - "@redux-saga/is" "^1.1.2" - "@redux-saga/symbols" "^1.1.2" - "@redux-saga/types" "^1.1.0" - redux "^4.0.4" + "@redux-saga/deferred" "^1.2.1" + "@redux-saga/delay-p" "^1.2.1" + "@redux-saga/is" "^1.1.3" + "@redux-saga/symbols" "^1.1.3" + "@redux-saga/types" "^1.2.1" typescript-tuple "^2.2.1" -"@redux-saga/deferred@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@redux-saga/deferred/-/deferred-1.1.2.tgz#59937a0eba71fff289f1310233bc518117a71888" - integrity sha512-908rDLHFN2UUzt2jb4uOzj6afpjgJe3MjICaUNO3bvkV/kN/cNeI9PMr8BsFXB/MR8WTAZQq/PlTq8Kww3TBSQ== +"@redux-saga/deferred@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@redux-saga/deferred/-/deferred-1.2.1.tgz#aca373a08ccafd6f3481037f2f7ee97f2c87c3ec" + integrity sha512-cmin3IuuzMdfQjA0lG4B+jX+9HdTgHZZ+6u3jRAOwGUxy77GSlTi4Qp2d6PM1PUoTmQUR5aijlA39scWWPF31g== -"@redux-saga/delay-p@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@redux-saga/delay-p/-/delay-p-1.1.2.tgz#8f515f4b009b05b02a37a7c3d0ca9ddc157bb355" - integrity sha512-ojc+1IoC6OP65Ts5+ZHbEYdrohmIw1j9P7HS9MOJezqMYtCDgpkoqB5enAAZrNtnbSL6gVCWPHaoaTY5KeO0/g== +"@redux-saga/delay-p@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@redux-saga/delay-p/-/delay-p-1.2.1.tgz#e72ac4731c5080a21f75b61bedc31cb639d9e446" + integrity sha512-MdiDxZdvb1m+Y0s4/hgdcAXntpUytr9g0hpcOO1XFVyyzkrDu3SKPgBFOtHn7lhu7n24ZKIAT1qtKyQjHqRd+w== dependencies: - "@redux-saga/symbols" "^1.1.2" + "@redux-saga/symbols" "^1.1.3" -"@redux-saga/is@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@redux-saga/is/-/is-1.1.2.tgz#ae6c8421f58fcba80faf7cadb7d65b303b97e58e" - integrity sha512-OLbunKVsCVNTKEf2cH4TYyNbbPgvmZ52iaxBD4I1fTif4+MTXMa4/Z07L83zW/hTCXwpSZvXogqMqLfex2Tg6w== +"@redux-saga/is@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@redux-saga/is/-/is-1.1.3.tgz#b333f31967e87e32b4e6b02c75b78d609dd4ad73" + integrity sha512-naXrkETG1jLRfVfhOx/ZdLj0EyAzHYbgJWkXbB3qFliPcHKiWbv/ULQryOAEKyjrhiclmr6AMdgsXFyx7/yE6Q== dependencies: - "@redux-saga/symbols" "^1.1.2" - "@redux-saga/types" "^1.1.0" + "@redux-saga/symbols" "^1.1.3" + "@redux-saga/types" "^1.2.1" -"@redux-saga/symbols@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@redux-saga/symbols/-/symbols-1.1.2.tgz#216a672a487fc256872b8034835afc22a2d0595d" - integrity sha512-EfdGnF423glv3uMwLsGAtE6bg+R9MdqlHEzExnfagXPrIiuxwr3bdiAwz3gi+PsrQ3yBlaBpfGLtDG8rf3LgQQ== +"@redux-saga/symbols@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@redux-saga/symbols/-/symbols-1.1.3.tgz#b731d56201719e96dc887dc3ae9016e761654367" + integrity sha512-hCx6ZvU4QAEUojETnX8EVg4ubNLBFl1Lps4j2tX7o45x/2qg37m3c6v+kSp8xjDJY+2tJw4QB3j8o8dsl1FDXg== -"@redux-saga/types@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@redux-saga/types/-/types-1.1.0.tgz#0e81ce56b4883b4b2a3001ebe1ab298b84237204" - integrity sha512-afmTuJrylUU/0OtqzaRkbyYFFNgCF73Bvel/sw90pvGrWIZ+vyoIJqA6eMSoA6+nb443kTmulmBtC9NerXboNg== +"@redux-saga/types@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@redux-saga/types/-/types-1.2.1.tgz#9403f51c17cae37edf870c6bc0c81c1ece5ccef8" + integrity sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA== -"@reduxjs/toolkit@1.9.7": - version "1.9.7" - resolved "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz" - integrity sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ== +"@reduxjs/toolkit@2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-2.2.2.tgz#952fc8f8315d7274e28f6e4608b7ec66fce7e94e" + integrity sha512-454GZrEx3G6QSYwIx9ROaso1HR6sTH8qyZBe3KEsdWVGU3ayV8jYCwdaEJV3vl9V6+pi3GRl+7Xl7AeDna6qwQ== dependencies: - immer "^9.0.21" - redux "^4.2.1" - redux-thunk "^2.4.2" - reselect "^4.1.8" + immer "^10.0.3" + redux "^5.0.1" + redux-thunk "^3.1.0" + reselect "^5.0.1" "@remix-run/router@1.6.3": version "1.6.3" @@ -18997,10 +18996,10 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= -immer@^9.0.21: - version "9.0.21" - resolved "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz" - integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== +immer@^10.0.3: + version "10.0.4" + resolved "https://registry.yarnpkg.com/immer/-/immer-10.0.4.tgz#09af41477236b99449f9d705369a4daaf780362b" + integrity sha512-cuBuGK40P/sk5IzWa9QPUaAdvPHjkk1c+xYsd9oZw+YQQEV+10G0P5uMpGctZZKnyQ+ibRO08bD25nWLmYi2pw== immutable@^4.0.0: version "4.1.0" @@ -25895,7 +25894,7 @@ react-recompose@^0.33.0: react-lifecycles-compat "^3.0.4" symbol-observable "^4.0.0" -react-redux@^7.1.0, react-redux@^7.2.8: +react-redux@^7.1.0: version "7.2.8" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.8.tgz#a894068315e65de5b1b68899f9c6ee0923dd28de" integrity sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw== @@ -25907,10 +25906,10 @@ react-redux@^7.1.0, react-redux@^7.2.8: prop-types "^15.7.2" react-is "^17.0.2" -react-redux@^8.0.4: - version "8.1.2" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.2.tgz#9076bbc6b60f746659ad6d51cb05de9c5e1e9188" - integrity sha512-xJKYI189VwfsFc4CJvHqHlDrzyFTY/3vZACbE+rr/zQ34Xx1wQfB4OTOSeOSNrF6BDVe8OOdxIrAnMGXA3ggfw== +react-redux@^8.0.4, react-redux@^8.1.3: + version "8.1.3" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.3.tgz#4fdc0462d0acb59af29a13c27ffef6f49ab4df46" + integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw== dependencies: "@babel/runtime" "^7.12.1" "@types/hoist-non-react-statics" "^3.3.1" @@ -26399,35 +26398,40 @@ redux-actions@^2.6.5: reduce-reducers "^0.4.3" to-camel-case "^1.0.0" -redux-devtools-extension@^2.13.8: - version "2.13.8" - resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.8.tgz#37b982688626e5e4993ff87220c9bbb7cd2d96e1" - integrity sha512-8qlpooP2QqPtZHQZRhx3x3OP5skEV1py/zUdMY28WNAocbafxdG2tRD1MWE7sp8obGMNYuLWanhhQ7EQvT1FBg== +redux-devtools-extension@^2.13.9: + version "2.13.9" + resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.9.tgz#6b764e8028b507adcb75a1cae790f71e6be08ae7" + integrity sha512-cNJ8Q/EtjhQaZ71c8I9+BPySIBVEKssbPpskBfsXqb8HJ002A3KRVHfeRzwRo6mGPqsm7XuHTqNSNeS1Khig0A== -redux-saga@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.1.3.tgz#9f3e6aebd3c994bbc0f6901a625f9a42b51d1112" - integrity sha512-RkSn/z0mwaSa5/xH/hQLo8gNf4tlvT18qXDNvedihLcfzh+jMchDgaariQoehCpgRltEm4zHKJyINEz6aqswTw== +redux-saga@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-1.3.0.tgz#a59ada7c28010189355356b99738c9fcb7ade30e" + integrity sha512-J9RvCeAZXSTAibFY0kGw6Iy4EdyDNW7k6Q+liwX+bsck7QVsU78zz8vpBRweEfANxnnlG/xGGeOvf6r8UXzNJQ== dependencies: - "@redux-saga/core" "^1.1.3" + "@redux-saga/core" "^1.3.0" -redux-thunk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz" - integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== +redux-thunk@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-3.1.0.tgz#94aa6e04977c30e14e892eae84978c1af6058ff3" + integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw== redux-thunks@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redux-thunks/-/redux-thunks-1.0.0.tgz#56e03b86d281a2664c884ab05c543d9ab1673658" integrity sha1-VuA7htKBomZMiEqwXFQ9mrFnNlg= -redux@^4.0.0, redux@^4.0.4, redux@^4.2.0, redux@^4.2.1: +redux@^4.0.0, redux@^4.0.4, redux@^4.2.0: version "4.2.1" resolved "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== dependencies: "@babel/runtime" "^7.9.2" +redux@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-5.0.1.tgz#97fa26881ce5746500125585d5642c77b6e9447b" + integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w== + reflect-metadata@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.1.tgz#8d5513c0f5ef2b4b9c3865287f3c0940c1f67f74" @@ -26853,11 +26857,16 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -reselect@^4.0.0, reselect@^4.1.8: +reselect@^4.0.0: version "4.1.8" resolved "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz" integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== +reselect@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-5.1.0.tgz#c479139ab9dd91be4d9c764a7f3868210ef8cd21" + integrity sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg== + resize-observer-polyfill@1.5.1, resize-observer-polyfill@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464"