From 3631d6d61dd7891b568ae291e81e870a621d839e Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 9 Sep 2020 14:35:04 -0500 Subject: [PATCH 1/7] Don't hijack scrollbar when status is unmounted, fixes #404 --- app/soapbox/components/status.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/soapbox/components/status.js b/app/soapbox/components/status.js index f8d46b043..8acb4e7f5 100644 --- a/app/soapbox/components/status.js +++ b/app/soapbox/components/status.js @@ -151,14 +151,16 @@ class Status extends ImmutablePureComponent { } componentWillUnmount() { - if (this.node && this.props.getScrollPosition) { - const position = this.props.getScrollPosition(); - if (position !== null && this.node.offsetTop < position.top) { - requestAnimationFrame(() => { - this.props.updateScrollBottom(position.height - position.top); - }); - } - } + // FIXME: Run this code only when a status is being deleted. + // + // if (this.node && this.props.getScrollPosition) { + // const position = this.props.getScrollPosition(); + // if (position !== null && this.node.offsetTop < position.top) { + // requestAnimationFrame(() => { + // this.props.updateScrollBottom(position.height - position.top); + // }); + // } + // } } handleToggleMediaVisibility = () => { From 28e8ab9067d32f24dfd10f19a4d6bbd9a9edfe9e Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 9 Sep 2020 14:52:27 -0500 Subject: [PATCH 2/7] Highlight home tab for public timelines, fixes #406 --- app/soapbox/features/ui/components/tabs_bar.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/soapbox/features/ui/components/tabs_bar.js b/app/soapbox/features/ui/components/tabs_bar.js index e85efa40a..1440e2ae6 100644 --- a/app/soapbox/features/ui/components/tabs_bar.js +++ b/app/soapbox/features/ui/components/tabs_bar.js @@ -46,6 +46,11 @@ class TabsBar extends React.PureComponent { this.node = ref; } + isHomeActive = (match, location) => { + const { pathname } = location; + return pathname === '/' || pathname.startsWith('/timeline/'); + } + getNavLinks() { const { intl: { formatMessage }, logo, account } = this.props; let links = []; @@ -57,7 +62,7 @@ class TabsBar extends React.PureComponent { ); } links.push( - + ); From fd971f053feaaa5aee4f04587140a4520ff0a9b4 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 9 Sep 2020 15:03:26 -0500 Subject: [PATCH 3/7] Scroll detailed status into view, fixes #257 --- app/soapbox/features/status/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/soapbox/features/status/index.js b/app/soapbox/features/status/index.js index d82f8c7a1..4f1fe6084 100644 --- a/app/soapbox/features/status/index.js +++ b/app/soapbox/features/status/index.js @@ -418,7 +418,7 @@ class Status extends ImmutablePureComponent { } if (prevProps.status && ancestorsIds && ancestorsIds.size > 0) { - const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1]; + const element = this.node.querySelector('.detailed-status'); window.requestAnimationFrame(() => { element.scrollIntoView(true); From adc98b7ad2265069ce918368e63816bfb2f0e07d Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 9 Sep 2020 18:02:26 -0500 Subject: [PATCH 4/7] UserLists: use OrderedSets instead of Lists, fixes #230 --- app/soapbox/features/blocks/index.js | 2 +- app/soapbox/features/favourites/index.js | 2 +- app/soapbox/features/follow_requests/index.js | 2 +- app/soapbox/features/followers/index.js | 2 +- app/soapbox/features/following/index.js | 2 +- app/soapbox/features/groups/members/index.js | 2 +- .../features/groups/removed_accounts/index.js | 2 +- app/soapbox/features/mutes/index.js | 2 +- app/soapbox/features/reblogs/index.js | 2 +- app/soapbox/reducers/user_lists.js | 14 +++++++------- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/soapbox/features/blocks/index.js b/app/soapbox/features/blocks/index.js index ef406e3be..5b34287dd 100644 --- a/app/soapbox/features/blocks/index.js +++ b/app/soapbox/features/blocks/index.js @@ -27,7 +27,7 @@ class Blocks extends ImmutablePureComponent { static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, hasMore: PropTypes.bool, intl: PropTypes.object.isRequired, }; diff --git a/app/soapbox/features/favourites/index.js b/app/soapbox/features/favourites/index.js index 6715d3121..851a4059a 100644 --- a/app/soapbox/features/favourites/index.js +++ b/app/soapbox/features/favourites/index.js @@ -20,7 +20,7 @@ class Favourites extends ImmutablePureComponent { static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, }; componentDidMount() { diff --git a/app/soapbox/features/follow_requests/index.js b/app/soapbox/features/follow_requests/index.js index e956e5c34..b0b5d54b8 100644 --- a/app/soapbox/features/follow_requests/index.js +++ b/app/soapbox/features/follow_requests/index.js @@ -28,7 +28,7 @@ class FollowRequests extends ImmutablePureComponent { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, hasMore: PropTypes.bool, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, intl: PropTypes.object.isRequired, }; diff --git a/app/soapbox/features/followers/index.js b/app/soapbox/features/followers/index.js index 9c70187bc..5b7be99a5 100644 --- a/app/soapbox/features/followers/index.js +++ b/app/soapbox/features/followers/index.js @@ -51,7 +51,7 @@ class Followers extends ImmutablePureComponent { static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, hasMore: PropTypes.bool, diffCount: PropTypes.number, isAccount: PropTypes.bool, diff --git a/app/soapbox/features/following/index.js b/app/soapbox/features/following/index.js index 302bcfc63..df2f55fb4 100644 --- a/app/soapbox/features/following/index.js +++ b/app/soapbox/features/following/index.js @@ -51,7 +51,7 @@ class Following extends ImmutablePureComponent { static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, hasMore: PropTypes.bool, isAccount: PropTypes.bool, unavailable: PropTypes.bool, diff --git a/app/soapbox/features/groups/members/index.js b/app/soapbox/features/groups/members/index.js index 72151e146..5629dcfcd 100644 --- a/app/soapbox/features/groups/members/index.js +++ b/app/soapbox/features/groups/members/index.js @@ -26,7 +26,7 @@ class GroupMembers extends ImmutablePureComponent { static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, hasMore: PropTypes.bool, }; diff --git a/app/soapbox/features/groups/removed_accounts/index.js b/app/soapbox/features/groups/removed_accounts/index.js index e32637e7c..02f87630d 100644 --- a/app/soapbox/features/groups/removed_accounts/index.js +++ b/app/soapbox/features/groups/removed_accounts/index.js @@ -33,7 +33,7 @@ class GroupRemovedAccounts extends ImmutablePureComponent { static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, hasMore: PropTypes.bool, }; diff --git a/app/soapbox/features/mutes/index.js b/app/soapbox/features/mutes/index.js index 8b7368845..abcfe2ea7 100644 --- a/app/soapbox/features/mutes/index.js +++ b/app/soapbox/features/mutes/index.js @@ -28,7 +28,7 @@ class Mutes extends ImmutablePureComponent { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, hasMore: PropTypes.bool, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, intl: PropTypes.object.isRequired, }; diff --git a/app/soapbox/features/reblogs/index.js b/app/soapbox/features/reblogs/index.js index 16876419d..67d36ad24 100644 --- a/app/soapbox/features/reblogs/index.js +++ b/app/soapbox/features/reblogs/index.js @@ -32,7 +32,7 @@ class Reblogs extends ImmutablePureComponent { static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, - accountIds: ImmutablePropTypes.list, + accountIds: ImmutablePropTypes.orderedSet, status: ImmutablePropTypes.map, }; diff --git a/app/soapbox/reducers/user_lists.js b/app/soapbox/reducers/user_lists.js index bb8ce8f1a..9dd079203 100644 --- a/app/soapbox/reducers/user_lists.js +++ b/app/soapbox/reducers/user_lists.js @@ -20,7 +20,7 @@ import { MUTES_FETCH_SUCCESS, MUTES_EXPAND_SUCCESS, } from '../actions/mutes'; -import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; +import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable'; import { GROUP_MEMBERS_FETCH_SUCCESS, GROUP_MEMBERS_EXPAND_SUCCESS, @@ -44,7 +44,7 @@ const initialState = ImmutableMap({ const normalizeList = (state, type, id, accounts, next) => { return state.setIn([type, id], ImmutableMap({ next, - items: ImmutableList(accounts.map(item => item.id)), + items: ImmutableOrderedSet(accounts.map(item => item.id)), })); }; @@ -65,22 +65,22 @@ export default function userLists(state = initialState, action) { case FOLLOWING_EXPAND_SUCCESS: return appendToList(state, 'following', action.id, action.accounts, action.next); case REBLOGS_FETCH_SUCCESS: - return state.setIn(['reblogged_by', action.id], ImmutableList(action.accounts.map(item => item.id))); + return state.setIn(['reblogged_by', action.id], ImmutableOrderedSet(action.accounts.map(item => item.id))); case FAVOURITES_FETCH_SUCCESS: - return state.setIn(['favourited_by', action.id], ImmutableList(action.accounts.map(item => item.id))); + return state.setIn(['favourited_by', action.id], ImmutableOrderedSet(action.accounts.map(item => item.id))); case FOLLOW_REQUESTS_FETCH_SUCCESS: - return state.setIn(['follow_requests', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next); + return state.setIn(['follow_requests', 'items'], ImmutableOrderedSet(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next); case FOLLOW_REQUESTS_EXPAND_SUCCESS: return state.updateIn(['follow_requests', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next); case FOLLOW_REQUEST_AUTHORIZE_SUCCESS: case FOLLOW_REQUEST_REJECT_SUCCESS: return state.updateIn(['follow_requests', 'items'], list => list.filterNot(item => item === action.id)); case BLOCKS_FETCH_SUCCESS: - return state.setIn(['blocks', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['blocks', 'next'], action.next); + return state.setIn(['blocks', 'items'], ImmutableOrderedSet(action.accounts.map(item => item.id))).setIn(['blocks', 'next'], action.next); case BLOCKS_EXPAND_SUCCESS: return state.updateIn(['blocks', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['blocks', 'next'], action.next); case MUTES_FETCH_SUCCESS: - return state.setIn(['mutes', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['mutes', 'next'], action.next); + return state.setIn(['mutes', 'items'], ImmutableOrderedSet(action.accounts.map(item => item.id))).setIn(['mutes', 'next'], action.next); case MUTES_EXPAND_SUCCESS: return state.updateIn(['mutes', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['mutes', 'next'], action.next); case GROUP_MEMBERS_FETCH_SUCCESS: From 8c9206be3ee610dc77fd6e2e67ddecaba0b0ddc2 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 9 Sep 2020 22:00:11 -0500 Subject: [PATCH 5/7] Use a better poll icon --- app/soapbox/features/compose/components/poll_button.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/soapbox/features/compose/components/poll_button.js b/app/soapbox/features/compose/components/poll_button.js index 02495e9ca..d774118cc 100644 --- a/app/soapbox/features/compose/components/poll_button.js +++ b/app/soapbox/features/compose/components/poll_button.js @@ -39,7 +39,7 @@ class PollButton extends React.PureComponent { return (
Date: Thu, 10 Sep 2020 18:27:09 -0500 Subject: [PATCH 6/7] Upgrade redux and react-redux to the latest versions --- package.json | 4 ++-- yarn.lock | 39 +++++++++++++++++++++++++-------------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index e79c4356c..952300a2b 100644 --- a/package.json +++ b/package.json @@ -114,7 +114,7 @@ "react-motion": "^0.5.2", "react-notification": "^6.8.4", "react-overlays": "^0.8.3", - "react-redux": "^6.0.1", + "react-redux": "^7.2.1", "react-redux-loading-bar": "^4.5.0", "react-router-dom": "^4.1.1", "react-router-scroll-4": "^1.0.0-beta.1", @@ -124,7 +124,7 @@ "react-textarea-autosize": "^7.1.0", "react-toggle": "^4.0.1", "redis": "^2.7.1", - "redux": "^4.0.1", + "redux": "^4.0.5", "redux-immutable": "^4.0.0", "redux-thunk": "^2.2.0", "rellax": "^1.7.1", diff --git a/yarn.lock b/yarn.lock index 561257434..86d6c1cd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -978,7 +978,7 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.2": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.2": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12" integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ== @@ -992,6 +992,13 @@ dependencies: regenerator-runtime "^0.13.2" +"@babel/runtime@^7.5.5": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.7.2": version "7.7.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" @@ -9563,12 +9570,12 @@ react-intl@^4.6.6: intl-messageformat-parser "^5.1.1" shallow-equal "^1.2.1" -react-is@^16.12.0, react-is@^16.8.6: +react-is@^16.12.0, react-is@^16.8.6, react-is@^16.9.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^16.3.2, react-is@^16.6.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.2: +react-is@^16.3.2, react-is@^16.6.1, react-is@^16.7.0, react-is@^16.8.1: version "16.8.6" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" integrity sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA== @@ -9623,17 +9630,16 @@ react-redux-loading-bar@^4.5.0: prop-types "^15.6.2" react-lifecycles-compat "^3.0.2" -react-redux@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-6.0.1.tgz#0d423e2c1cb10ada87293d47e7de7c329623ba4d" - integrity sha512-T52I52Kxhbqy/6TEfBv85rQSDz6+Y28V/pf52vDWs1YRXG19mcFOGfHnY2HsNFHyhP+ST34Aih98fvt6tqwVcQ== +react-redux@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.1.tgz#8dedf784901014db2feca1ab633864dee68ad985" + integrity sha512-T+VfD/bvgGTUA74iW9d2i5THrDQWbweXP0AVNI8tNd1Rk5ch1rnMiJkDD67ejw7YBKM4+REvcvqRuWJb7BLuEg== dependencies: - "@babel/runtime" "^7.3.1" + "@babel/runtime" "^7.5.5" hoist-non-react-statics "^3.3.0" - invariant "^2.2.4" loose-envify "^1.4.0" prop-types "^15.7.2" - react-is "^16.8.2" + react-is "^16.9.0" react-router-dom@^4.1.1: version "4.3.1" @@ -9931,10 +9937,10 @@ redux-thunk@^2.2.0: resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== -redux@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" - integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg== +redux@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== dependencies: loose-envify "^1.4.0" symbol-observable "^1.2.0" @@ -9966,6 +9972,11 @@ regenerator-runtime@^0.13.2: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== +regenerator-runtime@^0.13.4: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + regenerator-transform@^0.13.4: version "0.13.4" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.4.tgz#18f6763cf1382c69c36df76c6ce122cc694284fb" From 3cff9538e22cc599ec7704ff8341dd33031b1dcd Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Thu, 10 Sep 2020 18:43:57 -0500 Subject: [PATCH 7/7] Upgrade uglifyjs-webpack-plugin to latest version --- package.json | 2 +- webpack/production.js | 4 +--- yarn.lock | 44 +++++++++++++++---------------------------- 3 files changed, 17 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index 952300a2b..af64d3037 100644 --- a/package.json +++ b/package.json @@ -138,7 +138,7 @@ "substring-trie": "^1.0.2", "throng": "^4.0.0", "tiny-queue": "^0.2.1", - "uglifyjs-webpack-plugin": "^2.1.2", + "uglifyjs-webpack-plugin": "^2.2.0", "uuid": "^3.1.0", "webpack": "^4.41.2", "webpack-assets-manifest": "^3.1.1", diff --git a/webpack/production.js b/webpack/production.js index a788e7884..9ed66b400 100644 --- a/webpack/production.js +++ b/webpack/production.js @@ -40,9 +40,7 @@ module.exports = merge(sharedConfig, { sourceMap: true, uglifyOptions: { - compress: { - warnings: false, - }, + warnings: false, output: { comments: false, diff --git a/yarn.lock b/yarn.lock index 86d6c1cd4..112457eee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3264,11 +3264,6 @@ commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@~2.17.1: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -11583,27 +11578,25 @@ ua-parser-js@^0.7.18: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" integrity sha512-T3PVJ6uz8i0HzPxOF9SWzWAlfN/DavlpQqepn22xgve/5QecC+XMCAtmUNnY7C9StehaV6exjUCI801lOI7QlQ== -uglify-js@^3.0.0: - version "3.4.9" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" - integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q== - dependencies: - commander "~2.17.1" - source-map "~0.6.1" +uglify-js@^3.6.0: + version "3.10.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.4.tgz#dd680f5687bc0d7a93b14a3482d16db6eba2bfbb" + integrity sha512-kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw== -uglifyjs-webpack-plugin@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.1.2.tgz#70e5c38fb2d35ee887949c2a0adb2656c23296d5" - integrity sha512-G1fJx2uOAAfvdZ77SVCzmFo6mv8uKaHoZBL9Qq/ciC8r6p0ANOL1uY85fIUiyWXKw5RzAaJYZfNSL58Or2hQ0A== +uglifyjs-webpack-plugin@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.2.0.tgz#e75bc80e7f1937f725954c9b4c5a1e967ea9d0d7" + integrity sha512-mHSkufBmBuJ+KHQhv5H0MXijtsoA1lynJt1lXOaotja8/I0pR4L9oGaPIZw+bQBOFittXZg9OC1sXSGO9D9ZYg== dependencies: - cacache "^11.2.0" - find-cache-dir "^2.0.0" + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^1.4.0" + serialize-javascript "^1.7.0" source-map "^0.6.1" - uglify-js "^3.0.0" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" + uglify-js "^3.6.0" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" unicode-astral-regex@^1.0.1: version "1.0.1" @@ -12150,13 +12143,6 @@ wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -worker-farm@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" - integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== - dependencies: - errno "~0.1.7" - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"