From 43cdce1b9e8334286b14b5a7c91aa3a679942231 Mon Sep 17 00:00:00 2001 From: ryanml Date: Wed, 6 Oct 2021 05:02:50 -0700 Subject: [PATCH 1/6] Restoring mobile sync warning text (#12284) --- app/_locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/_locales/en/messages.json b/app/_locales/en/messages.json index 26a81c009..2d382d25c 100644 --- a/app/_locales/en/messages.json +++ b/app/_locales/en/messages.json @@ -1362,7 +1362,7 @@ "message": "Don't see your token?" }, "mobileSyncWarning": { - "message": "⚠️ Proceeding will display a secret QR code that allows access to your accounts. Do not share it with anyone. Support staff will never ask you for it." + "message": "The 'Sync with extension' feature is temporarily disabled. If you want to use your extension wallet on MetaMask mobile, then on your mobile app: go back to the wallet setup options and select the 'Import with Secret Recovery Phrase' option. Use your extension wallet's secret phrase to then import your wallet into mobile." }, "mustSelectOne": { "message": "Must select at least 1 token." From 3d630ca8d1a4477e59f510cfc01c0883be97bd9b Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Fri, 8 Oct 2021 18:57:45 -0230 Subject: [PATCH 2/6] Do case-insensitive comparisons of token addresses in view-quote and build-quote (#12315) --- ui/pages/swaps/build-quote/build-quote.js | 31 ++++++++++++++--------- ui/pages/swaps/view-quote/view-quote.js | 9 ++++--- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/ui/pages/swaps/build-quote/build-quote.js b/ui/pages/swaps/build-quote/build-quote.js index 1503da608..32e25816d 100644 --- a/ui/pages/swaps/build-quote/build-quote.js +++ b/ui/pages/swaps/build-quote/build-quote.js @@ -51,7 +51,10 @@ import { hexToDecimal, } from '../../../helpers/utils/conversions.util'; import { calcTokenAmount } from '../../../helpers/utils/token-util'; -import { getURLHostName } from '../../../helpers/utils/util'; +import { + getURLHostName, + isEqualCaseInsensitive, +} from '../../../helpers/utils/util'; import { usePrevious } from '../../../hooks/usePrevious'; import { useTokenTracker } from '../../../hooks/useTokenTracker'; import { useTokenFiatAmount } from '../../../hooks/useTokenFiatAmount'; @@ -169,8 +172,9 @@ export default function BuildQuote({ shuffledTokensList, }); const selectedToToken = - tokensToSearch.find(({ address }) => address === toToken?.address) || - toToken; + tokensToSearch.find(({ address }) => + isEqualCaseInsensitive(address, toToken?.address), + ) || toToken; const toTokenIsNotDefault = selectedToToken?.address && !isSwapsDefaultTokenAddress(selectedToToken?.address, chainId); @@ -226,8 +230,8 @@ export default function BuildQuote({ } if ( token?.address && - !memoizedUsersTokens.find( - (usersToken) => usersToken.address === token.address, + !memoizedUsersTokens.find((usersToken) => + isEqualCaseInsensitive(usersToken.address, token.address), ) ) { fetchTokenBalance(token.address, selectedAccountAddress).then( @@ -298,12 +302,12 @@ export default function BuildQuote({ ); const hideDropdownItemIf = useCallback( - (item) => item.address === fromTokenAddress, + (item) => isEqualCaseInsensitive(item.address, fromTokenAddress), [fromTokenAddress], ); - const tokensWithBalancesFromToken = tokensWithBalances.find( - (token) => token.address === fromToken?.address, + const tokensWithBalancesFromToken = tokensWithBalances.find((token) => + isEqualCaseInsensitive(token.address, fromToken?.address), ); const previousTokensWithBalancesFromToken = usePrevious( tokensWithBalancesFromToken, @@ -314,9 +318,10 @@ export default function BuildQuote({ tokensWithBalancesFromToken?.address, chainId, ); - const addressesAreTheSame = - tokensWithBalancesFromToken?.address === - previousTokensWithBalancesFromToken?.address; + const addressesAreTheSame = isEqualCaseInsensitive( + tokensWithBalancesFromToken?.address, + previousTokensWithBalancesFromToken?.address, + ); const balanceHasChanged = tokensWithBalancesFromToken?.balance !== previousTokensWithBalancesFromToken?.balance; @@ -490,7 +495,9 @@ export default function BuildQuote({ !Object.keys(topAssets).length) } selectPlaceHolderText={t('swapSelect')} - hideItemIf={(item) => item.address === selectedToToken?.address} + hideItemIf={(item) => + isEqualCaseInsensitive(item.address, selectedToToken?.address) + } listContainerClassName="build-quote__open-dropdown" autoFocus /> diff --git a/ui/pages/swaps/view-quote/view-quote.js b/ui/pages/swaps/view-quote/view-quote.js index 6b6f2e37e..e983310f7 100644 --- a/ui/pages/swaps/view-quote/view-quote.js +++ b/ui/pages/swaps/view-quote/view-quote.js @@ -50,7 +50,10 @@ import { } from '../../../selectors'; import { getNativeCurrency, getTokens } from '../../../ducks/metamask/metamask'; -import { toPrecisionWithoutTrailingZeros } from '../../../helpers/utils/util'; +import { + toPrecisionWithoutTrailingZeros, + isEqualCaseInsensitive, +} from '../../../helpers/utils/util'; import { safeRefetchQuotes, @@ -214,8 +217,8 @@ export default function ViewQuote() { const balanceToken = fetchParamsSourceToken === defaultSwapsToken.address ? defaultSwapsToken - : tokensWithBalances.find( - ({ address }) => address === fetchParamsSourceToken, + : tokensWithBalances.find(({ address }) => + isEqualCaseInsensitive(address, fetchParamsSourceToken), ); const selectedFromToken = balanceToken || usedQuote.sourceTokenInfo; From 56f800057b11025b6ef2437a8540a642d8c95809 Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 8 Oct 2021 11:50:07 -0230 Subject: [PATCH 3/6] Update `immer` from v8 to v9 (#12303) `immer` has been updated to v9. This didn't require any changes on our part; the only breaking changes are to the TypeScript types [1]. The `@reduxjs/toolkit` library has been updated as well, to ensure that it's using the updated version of Immer internally as well. This update makes our patch of that package obsolete, as the problematic pattern that were were patching out is no longer present. [1]: https://github.com/immerjs/immer/releases/tag/v9.0.0 --- package.json | 6 +- patches/@reduxjs+toolkit+1.5.0.patch | 82 ---------------------------- yarn.lock | 38 +++++-------- 3 files changed, 17 insertions(+), 109 deletions(-) delete mode 100644 patches/@reduxjs+toolkit+1.5.0.patch diff --git a/package.json b/package.json index 38ec8af59..a8debb551 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "3box/ipfs/prometheus-gc-stats/gc-stats/node-pre-gyp/tar": "^6.1.2", "3box/**/libp2p-crypto/node-forge": "^0.10.0", "3box/**/libp2p-keychain/node-forge": "^0.10.0", - "analytics-node/axios": "^0.21.1", + "analytics-node/axios": "^0.21.2", "ganache-core/lodash": "^4.17.21", "netmask": "^2.0.1", "pubnub/superagent-proxy": "^3.0.0", @@ -112,7 +112,7 @@ "@metamask/post-message-stream": "^4.0.0", "@metamask/providers": "^8.1.1", "@popperjs/core": "^2.4.0", - "@reduxjs/toolkit": "^1.5.0", + "@reduxjs/toolkit": "^1.6.2", "@sentry/browser": "^5.26.0", "@sentry/integrations": "^5.26.0", "@zxing/library": "^0.8.0", @@ -155,7 +155,7 @@ "fuse.js": "^3.2.0", "globalthis": "^1.0.1", "human-standard-token-abi": "^2.0.0", - "immer": "^8.0.1", + "immer": "^9.0.6", "json-rpc-engine": "^6.1.0", "json-rpc-middleware-stream": "^2.1.1", "jsonschema": "^1.2.4", diff --git a/patches/@reduxjs+toolkit+1.5.0.patch b/patches/@reduxjs+toolkit+1.5.0.patch deleted file mode 100644 index ae707ae5e..000000000 --- a/patches/@reduxjs+toolkit+1.5.0.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff --git a/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js b/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js -index 96ead94..ce7bd95 100644 ---- a/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js -+++ b/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.development.js -@@ -204,7 +204,7 @@ function (_Array) { - - var _proto = MiddlewareArray.prototype; - -- _proto.concat = function concat() { -+ Object.defineProperty(_proto, 'concat', { value: function concat() { - var _Array$prototype$conc; - - for (var _len = arguments.length, arr = new Array(_len), _key = 0; _key < _len; _key++) { -@@ -212,7 +212,7 @@ function (_Array) { - } - - return _construct(MiddlewareArray, (_Array$prototype$conc = _Array.prototype.concat).call.apply(_Array$prototype$conc, [this].concat(arr))); -- }; -+ } }) - - _proto.prepend = function prepend() { - for (var _len2 = arguments.length, arr = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { -diff --git a/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js b/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js -index eb2dd1c..d44d517 100644 ---- a/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js -+++ b/node_modules/@reduxjs/toolkit/dist/redux-toolkit.cjs.production.min.js -@@ -1,2 +1,2 @@ --"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=require("immer"),r=e(t),n=require("redux"),o=require("reselect"),i=e(require("redux-thunk")),u=function(){var e=o.createSelector.apply(void 0,arguments),r=function(r){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i-1}function O(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function j(e,n,o,i){void 0===o&&(o=[]);var u="function"==typeof n?O(n):[n,o,i],a=u[0],c=u[1],f=u[2];return function(n,o){void 0===n&&(n=e);var i=[a[o.type]].concat(c.filter((function(e){return(0,e.matcher)(o)})).map((function(e){return e.reducer})));return 0===i.filter((function(e){return!!e})).length&&(i=[f]),i.reduce((function(e,n){if(n){if(t.isDraft(e)){var i=n(e,o);return void 0===i?e:i}if(t.isDraftable(e))return r(e,(function(e){return n(e,o)}));var u=n(e,o);if(void 0===u){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return u}return e}),n)}}function A(e){return function(n,o){var i=function(t){!function(e){return y(t=e)&&"string"==typeof t.type&&Object.keys(t).every(g);var t}(o)?e(o,t):e(o.payload,t)};return t.isDraft(n)?(i(n),n):r(n,i)}}function x(e,t){return t(e)}function S(e){function t(t,r){var n=x(t,e);n in r.entities||(r.ids.push(n),r.entities[n]=t)}function r(e,r){Array.isArray(e)||(e=Object.values(e));var n=e,o=Array.isArray(n),i=0;for(n=o?n:n[Symbol.iterator]();;){var u;if(o){if(i>=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t(u,r)}}function n(e,t){var r=!1;e.forEach((function(e){e in t.entities&&(delete t.entities[e],r=!0)})),r&&(t.ids=t.ids.filter((function(e){return e in t.entities})))}function o(t,r){var n={},o={};t.forEach((function(e){e.id in r.entities&&(o[e.id]={id:e.id,changes:a({},o[e.id]?o[e.id].changes:null,{},e.changes)})})),(t=Object.values(o)).length>0&&t.filter((function(t){return function(t,r,n){var o=Object.assign({},n.entities[r.id],r.changes),i=x(o,e),u=i!==r.id;return u&&(t[r.id]=i,delete n.entities[r.id]),n.entities[i]=o,u}(n,t,r)})).length>0&&(r.ids=r.ids.map((function(e){return n[e]||e})))}function i(t,n){Array.isArray(t)||(t=Object.values(t));var i=[],u=[],a=t,c=Array.isArray(a),f=0;for(a=c?a:a[Symbol.iterator]();;){var s;if(c){if(f>=a.length)break;s=a[f++]}else{if((f=a.next()).done)break;s=f.value}var l=s,d=x(l,e);d in n.entities?u.push({id:d,changes:l}):i.push(l)}o(u,n),r(i,n)}return{removeAll:(u=function(e){Object.assign(e,{ids:[],entities:{}})},c=A((function(e,t){return u(t)})),function(e){return c(e,void 0)}),addOne:A(t),addMany:A(r),setAll:A((function(e,t){Array.isArray(e)||(e=Object.values(e)),t.ids=[],t.entities={},r(e,t)})),updateOne:A((function(e,t){return o([e],t)})),updateMany:A(o),upsertOne:A((function(e,t){return i([e],t)})),upsertMany:A(i),removeOne:A((function(e,t){return n([e],t)})),removeMany:A(n)};var u,c}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var w=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},E=["name","message","stack","code"],P=function(e){this.payload=e,this.name="RejectWithValue",this.message="Rejected"},_=function(e){if("object"==typeof e&&null!==e){var t={},r=E,n=Array.isArray(r),o=0;for(r=n?r:r[Symbol.iterator]();;){var i;if(n){if(o>=r.length)break;i=r[o++]}else{if((o=r.next()).done)break;i=o.value}"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}},k=function(e,t){return(r=e)&&"function"==typeof r.match?e.match(t):e(t);var r};function I(){for(var e=arguments.length,t=new Array(e),r=0;r-1;return r&&n}function q(e){return"function"==typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function D(){for(var e=arguments.length,t=new Array(e),r=0;r=a.length)break;s=a[f++]}else{if((f=a.next()).done)break;s=f.value}var l=s,d=x(l,e);d in r.entities?u.push({id:d,changes:l}):i.push(l)}o(u,r),n(i,r)}function u(r,n){r.sort(t),r.forEach((function(t){n.entities[e(t)]=t}));var o=Object.values(n.entities);o.sort(t);var i=o.map(e);(function(e,t){if(e.length!==t.length)return!1;for(var r=0;r",value:t};if("object"!=typeof t||null===t)return!1;var a=null!=o?o(t):Object.entries(t),c=i.length>0,f=a,s=Array.isArray(f),l=0;for(f=s?f:f[Symbol.iterator]();;){var d;if(s){if(l>=f.length)break;d=f[l++]}else{if((l=f.next()).done)break;d=l.value}var p=d[1],y=r.concat(d[0]);if(!(c&&i.indexOf(y.join("."))>=0)){if(!n(p))return{keyPath:y.join("."),value:p};if("object"==typeof p&&(u=e(p,y,n,o,i)))return u}}return!1},exports.getDefaultMiddleware=b,exports.getType=function(e){return""+e},exports.isAllOf=R,exports.isAnyOf=I,exports.isAsyncThunkAction=function e(){for(var t=arguments.length,r=new Array(t),n=0;n=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t.push(u.pending,u.rejected,u.fulfilled)}return I.apply(void 0,t)(e)}:e()(r[0])},exports.isFulfilled=function e(){for(var t=arguments.length,r=new Array(t),n=0;n1?n-1:0),i=1;i-1}function O(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function j(e,n,o,i){void 0===o&&(o=[]);var u="function"==typeof n?O(n):[n,o,i],a=u[0],c=u[1],f=u[2];return function(n,o){void 0===n&&(n=e);var i=[a[o.type]].concat(c.filter((function(e){return(0,e.matcher)(o)})).map((function(e){return e.reducer})));return 0===i.filter((function(e){return!!e})).length&&(i=[f]),i.reduce((function(e,n){if(n){if(t.isDraft(e)){var i=n(e,o);return void 0===i?e:i}if(t.isDraftable(e))return r(e,(function(e){return n(e,o)}));var u=n(e,o);if(void 0===u){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return u}return e}),n)}}function A(e){return function(n,o){var i=function(t){!function(e){return y(t=e)&&"string"==typeof t.type&&Object.keys(t).every(g);var t}(o)?e(o,t):e(o.payload,t)};return t.isDraft(n)?(i(n),n):r(n,i)}}function x(e,t){return t(e)}function S(e){function t(t,r){var n=x(t,e);n in r.entities||(r.ids.push(n),r.entities[n]=t)}function r(e,r){Array.isArray(e)||(e=Object.values(e));var n=e,o=Array.isArray(n),i=0;for(n=o?n:n[Symbol.iterator]();;){var u;if(o){if(i>=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t(u,r)}}function n(e,t){var r=!1;e.forEach((function(e){e in t.entities&&(delete t.entities[e],r=!0)})),r&&(t.ids=t.ids.filter((function(e){return e in t.entities})))}function o(t,r){var n={},o={};t.forEach((function(e){e.id in r.entities&&(o[e.id]={id:e.id,changes:a({},o[e.id]?o[e.id].changes:null,{},e.changes)})})),(t=Object.values(o)).length>0&&t.filter((function(t){return function(t,r,n){var o=Object.assign({},n.entities[r.id],r.changes),i=x(o,e),u=i!==r.id;return u&&(t[r.id]=i,delete n.entities[r.id]),n.entities[i]=o,u}(n,t,r)})).length>0&&(r.ids=r.ids.map((function(e){return n[e]||e})))}function i(t,n){Array.isArray(t)||(t=Object.values(t));var i=[],u=[],a=t,c=Array.isArray(a),f=0;for(a=c?a:a[Symbol.iterator]();;){var s;if(c){if(f>=a.length)break;s=a[f++]}else{if((f=a.next()).done)break;s=f.value}var l=s,d=x(l,e);d in n.entities?u.push({id:d,changes:l}):i.push(l)}o(u,n),r(i,n)}return{removeAll:(u=function(e){Object.assign(e,{ids:[],entities:{}})},c=A((function(e,t){return u(t)})),function(e){return c(e,void 0)}),addOne:A(t),addMany:A(r),setAll:A((function(e,t){Array.isArray(e)||(e=Object.values(e)),t.ids=[],t.entities={},r(e,t)})),updateOne:A((function(e,t){return o([e],t)})),updateMany:A(o),upsertOne:A((function(e,t){return i([e],t)})),upsertMany:A(i),removeOne:A((function(e,t){return n([e],t)})),removeMany:A(n)};var u,c}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var w=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},E=["name","message","stack","code"],P=function(e){this.payload=e,this.name="RejectWithValue",this.message="Rejected"},_=function(e){if("object"==typeof e&&null!==e){var t={},r=E,n=Array.isArray(r),o=0;for(r=n?r:r[Symbol.iterator]();;){var i;if(n){if(o>=r.length)break;i=r[o++]}else{if((o=r.next()).done)break;i=o.value}"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}},k=function(e,t){return(r=e)&&"function"==typeof r.match?e.match(t):e(t);var r};function I(){for(var e=arguments.length,t=new Array(e),r=0;r-1;return r&&n}function q(e){return"function"==typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function D(){for(var e=arguments.length,t=new Array(e),r=0;r=a.length)break;s=a[f++]}else{if((f=a.next()).done)break;s=f.value}var l=s,d=x(l,e);d in r.entities?u.push({id:d,changes:l}):i.push(l)}o(u,r),n(i,r)}function u(r,n){r.sort(t),r.forEach((function(t){n.entities[e(t)]=t}));var o=Object.values(n.entities);o.sort(t);var i=o.map(e);(function(e,t){if(e.length!==t.length)return!1;for(var r=0;r",value:t};if("object"!=typeof t||null===t)return!1;var a=null!=o?o(t):Object.entries(t),c=i.length>0,f=a,s=Array.isArray(f),l=0;for(f=s?f:f[Symbol.iterator]();;){var d;if(s){if(l>=f.length)break;d=f[l++]}else{if((l=f.next()).done)break;d=l.value}var p=d[1],y=r.concat(d[0]);if(!(c&&i.indexOf(y.join("."))>=0)){if(!n(p))return{keyPath:y.join("."),value:p};if("object"==typeof p&&(u=e(p,y,n,o,i)))return u}}return!1},exports.getDefaultMiddleware=b,exports.getType=function(e){return""+e},exports.isAllOf=R,exports.isAnyOf=I,exports.isAsyncThunkAction=function e(){for(var t=arguments.length,r=new Array(t),n=0;n=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t.push(u.pending,u.rejected,u.fulfilled)}return I.apply(void 0,t)(e)}:e()(r[0])},exports.isFulfilled=function e(){for(var t=arguments.length,r=new Array(t),n=0;n1?t-1:0),n=1;n3?t.i-4:t.i:Array.isArray(e)?1:f(e)?2:l(e)?3:0}function u(e,t){return 2===i(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function a(e,t,r){var n=i(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function c(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function f(e){return W&&e instanceof Map}function l(e){return F&&e instanceof Set}function s(e){return e.o||e.t}function d(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=L(e);delete t[U];for(var r=V(t),n=0;n1&&(e.set=e.add=e.clear=e.delete=y),Object.freeze(e),t&&o(e,(function(e,t){return p(t,!0)}),!0),e)}function y(){t(2)}function v(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function h(e){var r=B[e];return r||t(18,e),r}function b(){return M}function g(e,t){t&&(h("Patches"),e.u=[],e.s=[],e.v=t)}function m(e){O(e),e.p.forEach(j),e.p=null}function O(e){e===M&&(M=e.l)}function w(e){return M={p:[],l:M,h:e,m:!0,_:0}}function j(e){var t=e[U];0===t.i||1===t.i?t.j():t.g=!0}function A(e,r){r._=r.p.length;var o=r.p[0],i=void 0!==e&&e!==o;return r.h.O||h("ES5").S(r,e,i),i?(o[U].P&&(m(r),t(4)),n(e)&&(e=P(r,e),r.l||E(r,e)),r.u&&h("Patches").M(o[U],e,r.u,r.s)):e=P(r,o,[]),m(r),r.u&&r.v(r.u,r.s),e!==z?e:void 0}function P(e,t,r){if(v(t))return t;var n=t[U];if(!n)return o(t,(function(o,i){return S(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return E(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var i=4===n.i||5===n.i?n.o=d(n.k):n.o;o(3===n.i?new Set(i):i,(function(t,o){return S(e,n,i,t,o,r)})),E(e,i,!1),r&&e.u&&h("Patches").R(n,r,e.u,e.s)}return n.o}function S(e,t,o,i,c,f){if(r(c)){var l=P(e,c,f&&t&&3!==t.i&&!u(t.D,i)?f.concat(i):void 0);if(a(o,i,l),!r(l))return;e.m=!1}if(n(c)&&!v(c)){if(!e.h.N&&e._<1)return;P(e,c),t&&t.A.l||E(e,c)}}function E(e,t,r){void 0===r&&(r=!1),e.h.N&&e.m&&p(t,r)}function x(e,t){var r=e[U];return(r?s(r):e)[t]}function I(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function _(e){e.P||(e.P=!0,e.l&&_(e.l))}function k(e){e.o||(e.o=d(e.t))}function R(e,t,r){var n=f(t)?h("MapSet").T(t,r):l(t)?h("MapSet").F(t,r):e.O?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:b(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=X;r&&(o=[n],i=Y);var u=Proxy.revocable(o,i),a=u.revoke,c=u.proxy;return n.k=c,n.j=a,c}(t,r):h("ES5").J(t,r);return(r?r.A:b()).p.push(n),n}function D(e){return r(e)||t(22,e),function e(t){if(!n(t))return t;var r,u=t[U],c=i(t);if(u){if(!u.P&&(u.i<4||!h("ES5").K(u)))return u.t;u.I=!0,r=N(t,c),u.I=!1}else r=N(t,c);return o(r,(function(t,n){u&&function(e,t){return 2===i(e)?e.get(t):e[t]}(u.t,t)===n||a(r,t,e(n))})),3===c?new Set(r):r}(e)}function N(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return d(e)}var T,M,C="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),W="undefined"!=typeof Map,F="undefined"!=typeof Set,q="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,z=C?Symbol.for("immer-nothing"):((T={})["immer-nothing"]=!0,T),K=C?Symbol.for("immer-draftable"):"__$immer_draftable",U=C?Symbol.for("immer-state"):"__$immer_state",V="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,L=Object.getOwnPropertyDescriptors||function(e){var t={};return V(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},B={},X={get:function(e,t){if(t===U)return e;var r=s(e);if(!u(r,t))return function(e,t,r){var n,o=I(t,r);return o?"value"in o?o.value:null===(n=o.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var o=r[t];return e.I||!n(o)?o:o===x(e.t,t)?(k(e),e.o[t]=R(e.A.h,o,e)):o},has:function(e,t){return t in s(e)},ownKeys:function(e){return Reflect.ownKeys(s(e))},set:function(e,t,r){var n=I(s(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=x(s(e),t),i=null==o?void 0:o[U];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(c(r,o)&&(void 0!==r||u(e.t,t)))return!0;k(e),_(e)}return e.o[t]=r,e.D[t]=!0,!0},deleteProperty:function(e,t){return void 0!==x(e.t,t)||t in e.t?(e.D[t]=!1,k(e),_(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=s(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){t(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){t(12)}},Y={};o(X,(function(e,t){Y[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),Y.deleteProperty=function(e,t){return X.deleteProperty.call(this,e[0],t)},Y.set=function(e,t,r){return X.set.call(this,e[0],t,r,e[0])};var J=new(function(){function e(e){this.O=q,this.N=!0,"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),this.produce=this.produce.bind(this),this.produceWithPatches=this.produceWithPatches.bind(this)}var o=e.prototype;return o.produce=function(e,r,o){if("function"==typeof e&&"function"!=typeof r){var i=r;r=e;var u=this;return function(e){var t=this;void 0===e&&(e=i);for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a1?r-1:0),i=1;i=0;n--){var o=t[n];if(0===o.path.length&&"replace"===o.op){e=o.value;break}}var i=h("Patches").$;return r(e)?i(e,t):this.produce(e,(function(e){return i(e,t.slice(n+1))}))},e}()),$=J.produce;J.produceWithPatches.bind(J),J.setAutoFreeze.bind(J),J.setUseProxies.bind(J),J.applyPatches.bind(J),J.createDraft.bind(J),J.finishDraft.bind(J);var G=function(e){var t,r=("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()).Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}(),H=function(){return Math.random().toString(36).substring(7).split("").join(".")},Q={INIT:"@@redux/INIT"+H(),REPLACE:"@@redux/REPLACE"+H(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+H()}};function Z(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ee(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(ee)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var o=e,i=t,u=[],a=u,c=!1;function f(){a===u&&(a=u.slice())}function l(){if(c)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return i}function s(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(c)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return f(),a.push(e),function(){if(t){if(c)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,f();var r=a.indexOf(e);a.splice(r,1),u=null}}}function d(e){if(!Z(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(c)throw new Error("Reducers may not dispatch actions.");try{c=!0,i=o(i,e)}finally{c=!1}for(var t=u=a,r=0;r1?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:fe,r=null,n=null;return function(){return le(t,r,arguments)||(n=e.apply(null,arguments)),r=arguments,n}})),pe=function(){var e=de.apply(void 0,arguments),t=function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i-1}function _e(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function ke(e,t,o,i){void 0===o&&(o=[]);var u="function"==typeof t?_e(t):[t,o,i],a=u[0],c=u[1],f=u[2];return function(t,o){void 0===t&&(t=e);var i=[a[o.type]].concat(c.filter((function(e){return(0,e.matcher)(o)})).map((function(e){return e.reducer})));return 0===i.filter((function(e){return!!e})).length&&(i=[f]),i.reduce((function(e,t){if(t){if(r(e)){var i=t(e,o);return void 0===i?e:i}if(n(e))return $(e,(function(e){return t(e,o)}));var u=t(e,o);if(void 0===u){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return u}return e}),t)}}function Re(e){return function(t,n){var o=function(t){!function(e){return we(t=e)&&"string"==typeof t.type&&Object.keys(t).every(Ie);var t}(n)?e(n,t):e(n.payload,t)};return r(t)?(o(t),t):$(t,o)}}function De(e,t){return t(e)}function Ne(e){function t(t,r){var n=De(t,e);n in r.entities||(r.ids.push(n),r.entities[n]=t)}function r(e,r){Array.isArray(e)||(e=Object.values(e));var n=e,o=Array.isArray(n),i=0;for(n=o?n:n[Symbol.iterator]();;){var u;if(o){if(i>=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t(u,r)}}function n(e,t){var r=!1;e.forEach((function(e){e in t.entities&&(delete t.entities[e],r=!0)})),r&&(t.ids=t.ids.filter((function(e){return e in t.entities})))}function o(t,r){var n={},o={};t.forEach((function(e){e.id in r.entities&&(o[e.id]={id:e.id,changes:ye({},o[e.id]?o[e.id].changes:null,{},e.changes)})})),(t=Object.values(o)).length>0&&t.filter((function(t){return function(t,r,n){var o=Object.assign({},n.entities[r.id],r.changes),i=De(o,e),u=i!==r.id;return u&&(t[r.id]=i,delete n.entities[r.id]),n.entities[i]=o,u}(n,t,r)})).length>0&&(r.ids=r.ids.map((function(e){return n[e]||e})))}function i(t,n){Array.isArray(t)||(t=Object.values(t));var i=[],u=[],a=t,c=Array.isArray(a),f=0;for(a=c?a:a[Symbol.iterator]();;){var l;if(c){if(f>=a.length)break;l=a[f++]}else{if((f=a.next()).done)break;l=f.value}var s=l,d=De(s,e);d in n.entities?u.push({id:d,changes:s}):i.push(s)}o(u,n),r(i,n)}return{removeAll:(u=function(e){Object.assign(e,{ids:[],entities:{}})},a=Re((function(e,t){return u(t)})),function(e){return a(e,void 0)}),addOne:Re(t),addMany:Re(r),setAll:Re((function(e,t){Array.isArray(e)||(e=Object.values(e)),t.ids=[],t.entities={},r(e,t)})),updateOne:Re((function(e,t){return o([e],t)})),updateMany:Re(o),upsertOne:Re((function(e,t){return i([e],t)})),upsertMany:Re(i),removeOne:Re((function(e,t){return n([e],t)})),removeMany:Re(n)};var u,a}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var Te=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},Me=["name","message","stack","code"],Ce=function(e){this.payload=e,this.name="RejectWithValue",this.message="Rejected"},We=function(e){if("object"==typeof e&&null!==e){var t={},r=Me,n=Array.isArray(r),o=0;for(r=n?r:r[Symbol.iterator]();;){var i;if(n){if(o>=r.length)break;i=r[o++]}else{if((o=r.next()).done)break;i=o.value}"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}},Fe=function(e,t){return function(e){return e&&"function"==typeof e.match}(e)?e.match(t):e(t)};function qe(){for(var e=arguments.length,t=new Array(e),r=0;r-1;return r&&n}function Ue(e){return"function"==typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function Ve(){for(var e=arguments.length,t=new Array(e),r=0;r=0;t--){var r=e[t][U];if(!r.P)switch(r.i){case 5:i(r)&&_(r);break;case 4:n(r)&&_(r)}}}function n(e){for(var t=e.t,r=e.k,n=V(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==U){var a=t[i];if(void 0===a&&!u(t,i))return!0;var f=r[i],l=f&&f[U];if(l?l.t!==a:!c(f,a))return!0}}var s=!!t[U];return n.length!==V(t).length+(s?0:1)}function i(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}var a={};!function(e,t){B.ES5||(B.ES5=t)}(0,{J:function(t,r){var n=Array.isArray(t),o=function(t,r){if(t){for(var n=Array(r.length),o=0;o=a.length)break;l=a[f++]}else{if((f=a.next()).done)break;l=f.value}var s=l,d=De(s,e);d in r.entities?u.push({id:d,changes:s}):i.push(s)}o(u,r),n(i,r)}function u(r,n){r.sort(t),r.forEach((function(t){n.entities[e(t)]=t}));var o=Object.values(n.entities);o.sort(t);var i=o.map(e);(function(e,t){if(e.length!==t.length)return!1;for(var r=0;r",value:t};if("object"!=typeof t||null===t)return!1;var a=null!=o?o(t):Object.entries(t),c=i.length>0,f=a,l=Array.isArray(f),s=0;for(f=l?f:f[Symbol.iterator]();;){var d;if(l){if(s>=f.length)break;d=f[s++]}else{if((s=f.next()).done)break;d=s.value}var p=d[1],y=r.concat(d[0]);if(!(c&&i.indexOf(y.join("."))>=0)){if(!n(p))return{keyPath:y.join("."),value:p};if("object"==typeof p&&(u=e(p,y,n,o,i)))return u}}return!1},e.freeze=p,e.getDefaultMiddleware=Ee,e.getType=function(e){return""+e},e.isAllOf=ze,e.isAnyOf=qe,e.isAsyncThunkAction=function e(){for(var t=arguments.length,r=new Array(t),n=0;n=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t.push(u.pending,u.rejected,u.fulfilled)}return qe.apply(void 0,t)(e)}:e()(r[0])},e.isFulfilled=function e(){for(var t=arguments.length,r=new Array(t),n=0;n1?t-1:0),n=1;n3?t.i-4:t.i:Array.isArray(e)?1:f(e)?2:l(e)?3:0}function u(e,t){return 2===i(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function a(e,t,r){var n=i(e);2===n?e.set(t,r):3===n?(e.delete(t),e.add(r)):e[t]=r}function c(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function f(e){return W&&e instanceof Map}function l(e){return F&&e instanceof Set}function s(e){return e.o||e.t}function d(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=L(e);delete t[U];for(var r=V(t),n=0;n1&&(e.set=e.add=e.clear=e.delete=y),Object.freeze(e),t&&o(e,(function(e,t){return p(t,!0)}),!0),e)}function y(){t(2)}function v(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function h(e){var r=B[e];return r||t(18,e),r}function b(){return M}function g(e,t){t&&(h("Patches"),e.u=[],e.s=[],e.v=t)}function m(e){O(e),e.p.forEach(j),e.p=null}function O(e){e===M&&(M=e.l)}function w(e){return M={p:[],l:M,h:e,m:!0,_:0}}function j(e){var t=e[U];0===t.i||1===t.i?t.j():t.g=!0}function A(e,r){r._=r.p.length;var o=r.p[0],i=void 0!==e&&e!==o;return r.h.O||h("ES5").S(r,e,i),i?(o[U].P&&(m(r),t(4)),n(e)&&(e=P(r,e),r.l||E(r,e)),r.u&&h("Patches").M(o[U],e,r.u,r.s)):e=P(r,o,[]),m(r),r.u&&r.v(r.u,r.s),e!==z?e:void 0}function P(e,t,r){if(v(t))return t;var n=t[U];if(!n)return o(t,(function(o,i){return S(e,n,t,o,i,r)}),!0),t;if(n.A!==e)return t;if(!n.P)return E(e,n.t,!0),n.t;if(!n.I){n.I=!0,n.A._--;var i=4===n.i||5===n.i?n.o=d(n.k):n.o;o(3===n.i?new Set(i):i,(function(t,o){return S(e,n,i,t,o,r)})),E(e,i,!1),r&&e.u&&h("Patches").R(n,r,e.u,e.s)}return n.o}function S(e,t,o,i,c,f){if(r(c)){var l=P(e,c,f&&t&&3!==t.i&&!u(t.D,i)?f.concat(i):void 0);if(a(o,i,l),!r(l))return;e.m=!1}if(n(c)&&!v(c)){if(!e.h.N&&e._<1)return;P(e,c),t&&t.A.l||E(e,c)}}function E(e,t,r){void 0===r&&(r=!1),e.h.N&&e.m&&p(t,r)}function x(e,t){var r=e[U];return(r?s(r):e)[t]}function I(e,t){if(t in e)for(var r=Object.getPrototypeOf(e);r;){var n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Object.getPrototypeOf(r)}}function _(e){e.P||(e.P=!0,e.l&&_(e.l))}function k(e){e.o||(e.o=d(e.t))}function R(e,t,r){var n=f(t)?h("MapSet").T(t,r):l(t)?h("MapSet").F(t,r):e.O?function(e,t){var r=Array.isArray(e),n={i:r?1:0,A:t?t.A:b(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=n,i=X;r&&(o=[n],i=Y);var u=Proxy.revocable(o,i),a=u.revoke,c=u.proxy;return n.k=c,n.j=a,c}(t,r):h("ES5").J(t,r);return(r?r.A:b()).p.push(n),n}function D(e){return r(e)||t(22,e),function e(t){if(!n(t))return t;var r,u=t[U],c=i(t);if(u){if(!u.P&&(u.i<4||!h("ES5").K(u)))return u.t;u.I=!0,r=N(t,c),u.I=!1}else r=N(t,c);return o(r,(function(t,n){u&&function(e,t){return 2===i(e)?e.get(t):e[t]}(u.t,t)===n||a(r,t,e(n))})),3===c?new Set(r):r}(e)}function N(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return d(e)}var T,M,C="undefined"!=typeof Symbol&&"symbol"==typeof Symbol("x"),W="undefined"!=typeof Map,F="undefined"!=typeof Set,q="undefined"!=typeof Proxy&&void 0!==Proxy.revocable&&"undefined"!=typeof Reflect,z=C?Symbol.for("immer-nothing"):((T={})["immer-nothing"]=!0,T),K=C?Symbol.for("immer-draftable"):"__$immer_draftable",U=C?Symbol.for("immer-state"):"__$immer_state",V="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,L=Object.getOwnPropertyDescriptors||function(e){var t={};return V(e).forEach((function(r){t[r]=Object.getOwnPropertyDescriptor(e,r)})),t},B={},X={get:function(e,t){if(t===U)return e;var r=s(e);if(!u(r,t))return function(e,t,r){var n,o=I(t,r);return o?"value"in o?o.value:null===(n=o.get)||void 0===n?void 0:n.call(e.k):void 0}(e,r,t);var o=r[t];return e.I||!n(o)?o:o===x(e.t,t)?(k(e),e.o[t]=R(e.A.h,o,e)):o},has:function(e,t){return t in s(e)},ownKeys:function(e){return Reflect.ownKeys(s(e))},set:function(e,t,r){var n=I(s(e),t);if(null==n?void 0:n.set)return n.set.call(e.k,r),!0;if(!e.P){var o=x(s(e),t),i=null==o?void 0:o[U];if(i&&i.t===r)return e.o[t]=r,e.D[t]=!1,!0;if(c(r,o)&&(void 0!==r||u(e.t,t)))return!0;k(e),_(e)}return e.o[t]=r,e.D[t]=!0,!0},deleteProperty:function(e,t){return void 0!==x(e.t,t)||t in e.t?(e.D[t]=!1,k(e),_(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var r=s(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n?{writable:!0,configurable:1!==e.i||"length"!==t,enumerable:n.enumerable,value:r[t]}:n},defineProperty:function(){t(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){t(12)}},Y={};o(X,(function(e,t){Y[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}})),Y.deleteProperty=function(e,t){return X.deleteProperty.call(this,e[0],t)},Y.set=function(e,t,r){return X.set.call(this,e[0],t,r,e[0])};var J=new(function(){function e(e){this.O=q,this.N=!0,"boolean"==typeof(null==e?void 0:e.useProxies)&&this.setUseProxies(e.useProxies),"boolean"==typeof(null==e?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),this.produce=this.produce.bind(this),this.produceWithPatches=this.produceWithPatches.bind(this)}var o=e.prototype;return o.produce=function(e,r,o){if("function"==typeof e&&"function"!=typeof r){var i=r;r=e;var u=this;return function(e){var t=this;void 0===e&&(e=i);for(var n=arguments.length,o=Array(n>1?n-1:0),a=1;a1?r-1:0),i=1;i=0;n--){var o=t[n];if(0===o.path.length&&"replace"===o.op){e=o.value;break}}var i=h("Patches").$;return r(e)?i(e,t):this.produce(e,(function(e){return i(e,t.slice(n+1))}))},e}()),$=J.produce;J.produceWithPatches.bind(J),J.setAutoFreeze.bind(J),J.setUseProxies.bind(J),J.applyPatches.bind(J),J.createDraft.bind(J),J.finishDraft.bind(J);var G=function(e){var t,r=("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()).Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}(),H=function(){return Math.random().toString(36).substring(7).split("").join(".")},Q={INIT:"@@redux/INIT"+H(),REPLACE:"@@redux/REPLACE"+H(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+H()}};function Z(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function ee(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(ee)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var o=e,i=t,u=[],a=u,c=!1;function f(){a===u&&(a=u.slice())}function l(){if(c)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return i}function s(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(c)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return f(),a.push(e),function(){if(t){if(c)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,f();var r=a.indexOf(e);a.splice(r,1),u=null}}}function d(e){if(!Z(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(c)throw new Error("Reducers may not dispatch actions.");try{c=!0,i=o(i,e)}finally{c=!1}for(var t=u=a,r=0;r1?t-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:fe,r=null,n=null;return function(){return le(t,r,arguments)||(n=e.apply(null,arguments)),r=arguments,n}})),pe=function(){var e=de.apply(void 0,arguments),t=function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i-1}function _e(e){var t,r={},n=[],o={addCase:function(e,t){var n="string"==typeof e?e:e.type;if(n in r)throw new Error("addCase cannot be called with two reducers for the same action type");return r[n]=t,o},addMatcher:function(e,t){return n.push({matcher:e,reducer:t}),o},addDefaultCase:function(e){return t=e,o}};return e(o),[r,n,t]}function ke(e,t,o,i){void 0===o&&(o=[]);var u="function"==typeof t?_e(t):[t,o,i],a=u[0],c=u[1],f=u[2];return function(t,o){void 0===t&&(t=e);var i=[a[o.type]].concat(c.filter((function(e){return(0,e.matcher)(o)})).map((function(e){return e.reducer})));return 0===i.filter((function(e){return!!e})).length&&(i=[f]),i.reduce((function(e,t){if(t){if(r(e)){var i=t(e,o);return void 0===i?e:i}if(n(e))return $(e,(function(e){return t(e,o)}));var u=t(e,o);if(void 0===u){if(null===e)return e;throw Error("A case reducer on a non-draftable value must not return undefined")}return u}return e}),t)}}function Re(e){return function(t,n){var o=function(t){!function(e){return we(t=e)&&"string"==typeof t.type&&Object.keys(t).every(Ie);var t}(n)?e(n,t):e(n.payload,t)};return r(t)?(o(t),t):$(t,o)}}function De(e,t){return t(e)}function Ne(e){function t(t,r){var n=De(t,e);n in r.entities||(r.ids.push(n),r.entities[n]=t)}function r(e,r){Array.isArray(e)||(e=Object.values(e));var n=e,o=Array.isArray(n),i=0;for(n=o?n:n[Symbol.iterator]();;){var u;if(o){if(i>=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t(u,r)}}function n(e,t){var r=!1;e.forEach((function(e){e in t.entities&&(delete t.entities[e],r=!0)})),r&&(t.ids=t.ids.filter((function(e){return e in t.entities})))}function o(t,r){var n={},o={};t.forEach((function(e){e.id in r.entities&&(o[e.id]={id:e.id,changes:ye({},o[e.id]?o[e.id].changes:null,{},e.changes)})})),(t=Object.values(o)).length>0&&t.filter((function(t){return function(t,r,n){var o=Object.assign({},n.entities[r.id],r.changes),i=De(o,e),u=i!==r.id;return u&&(t[r.id]=i,delete n.entities[r.id]),n.entities[i]=o,u}(n,t,r)})).length>0&&(r.ids=r.ids.map((function(e){return n[e]||e})))}function i(t,n){Array.isArray(t)||(t=Object.values(t));var i=[],u=[],a=t,c=Array.isArray(a),f=0;for(a=c?a:a[Symbol.iterator]();;){var l;if(c){if(f>=a.length)break;l=a[f++]}else{if((f=a.next()).done)break;l=f.value}var s=l,d=De(s,e);d in n.entities?u.push({id:d,changes:s}):i.push(s)}o(u,n),r(i,n)}return{removeAll:(u=function(e){Object.assign(e,{ids:[],entities:{}})},a=Re((function(e,t){return u(t)})),function(e){return a(e,void 0)}),addOne:Re(t),addMany:Re(r),setAll:Re((function(e,t){Array.isArray(e)||(e=Object.values(e)),t.ids=[],t.entities={},r(e,t)})),updateOne:Re((function(e,t){return o([e],t)})),updateMany:Re(o),upsertOne:Re((function(e,t){return i([e],t)})),upsertMany:Re(i),removeOne:Re((function(e,t){return n([e],t)})),removeMany:Re(n)};var u,a}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var Te=function(e){void 0===e&&(e=21);for(var t="",r=e;r--;)t+="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW"[64*Math.random()|0];return t},Me=["name","message","stack","code"],Ce=function(e){this.payload=e,this.name="RejectWithValue",this.message="Rejected"},We=function(e){if("object"==typeof e&&null!==e){var t={},r=Me,n=Array.isArray(r),o=0;for(r=n?r:r[Symbol.iterator]();;){var i;if(n){if(o>=r.length)break;i=r[o++]}else{if((o=r.next()).done)break;i=o.value}"string"==typeof e[i]&&(t[i]=e[i])}return t}return{message:String(e)}},Fe=function(e,t){return function(e){return e&&"function"==typeof e.match}(e)?e.match(t):e(t)};function qe(){for(var e=arguments.length,t=new Array(e),r=0;r-1;return r&&n}function Ue(e){return"function"==typeof e[0]&&"pending"in e[0]&&"fulfilled"in e[0]&&"rejected"in e[0]}function Ve(){for(var e=arguments.length,t=new Array(e),r=0;r=0;t--){var r=e[t][U];if(!r.P)switch(r.i){case 5:i(r)&&_(r);break;case 4:n(r)&&_(r)}}}function n(e){for(var t=e.t,r=e.k,n=V(r),o=n.length-1;o>=0;o--){var i=n[o];if(i!==U){var a=t[i];if(void 0===a&&!u(t,i))return!0;var f=r[i],l=f&&f[U];if(l?l.t!==a:!c(f,a))return!0}}var s=!!t[U];return n.length!==V(t).length+(s?0:1)}function i(e){var t=e.k;if(t.length!==e.t.length)return!0;var r=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!r||r.get)}var a={};!function(e,t){B.ES5||(B.ES5=t)}(0,{J:function(t,r){var n=Array.isArray(t),o=function(t,r){if(t){for(var n=Array(r.length),o=0;o=a.length)break;l=a[f++]}else{if((f=a.next()).done)break;l=f.value}var s=l,d=De(s,e);d in r.entities?u.push({id:d,changes:s}):i.push(s)}o(u,r),n(i,r)}function u(r,n){r.sort(t),r.forEach((function(t){n.entities[e(t)]=t}));var o=Object.values(n.entities);o.sort(t);var i=o.map(e);(function(e,t){if(e.length!==t.length)return!1;for(var r=0;r",value:t};if("object"!=typeof t||null===t)return!1;var a=null!=o?o(t):Object.entries(t),c=i.length>0,f=a,l=Array.isArray(f),s=0;for(f=l?f:f[Symbol.iterator]();;){var d;if(l){if(s>=f.length)break;d=f[s++]}else{if((s=f.next()).done)break;d=s.value}var p=d[1],y=r.concat(d[0]);if(!(c&&i.indexOf(y.join("."))>=0)){if(!n(p))return{keyPath:y.join("."),value:p};if("object"==typeof p&&(u=e(p,y,n,o,i)))return u}}return!1},e.freeze=p,e.getDefaultMiddleware=Ee,e.getType=function(e){return""+e},e.isAllOf=ze,e.isAnyOf=qe,e.isAsyncThunkAction=function e(){for(var t=arguments.length,r=new Array(t),n=0;n=n.length)break;u=n[i++]}else{if((i=n.next()).done)break;u=i.value}t.push(u.pending,u.rejected,u.fulfilled)}return qe.apply(void 0,t)(e)}:e()(r[0])},e.isFulfilled=function e(){for(var t=arguments.length,r=new Array(t),n=0;n Date: Fri, 8 Oct 2021 12:18:38 -0500 Subject: [PATCH 4/6] use improved-yarn-audit and exclude 1002401 and 1002581 (#12310) * use improved-yarn-audit and exclude 1002401 --- .circleci/scripts/yarn-audit.sh | 4 +++- .depcheckrc.yml | 1 + package.json | 1 + yarn.lock | 5 +++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.circleci/scripts/yarn-audit.sh b/.circleci/scripts/yarn-audit.sh index ebe036815..717b5f456 100755 --- a/.circleci/scripts/yarn-audit.sh +++ b/.circleci/scripts/yarn-audit.sh @@ -3,7 +3,9 @@ set -u set -o pipefail -yarn audit --level moderate --groups dependencies +# use `improved-yarn-audit` since that allows for exclude +# exclude 1002401 until we remove use of 3Box, 1002581 until we can find a better solution +yarn run improved-yarn-audit --ignore-dev-deps --min-severity moderate --exclude 1002401,1002581 audit_status="$?" # Use a bitmask to ignore INFO and LOW severity audit results diff --git a/.depcheckrc.yml b/.depcheckrc.yml index 70214b911..c99ca2f85 100644 --- a/.depcheckrc.yml +++ b/.depcheckrc.yml @@ -29,6 +29,7 @@ ignores: - "source-map-explorer" # development tool - "yarn-deduplicate" + - "improved-yarn-audit" # storybook - "@storybook/core" - "@storybook/addon-backgrounds" diff --git a/package.json b/package.json index a8debb551..adc1f6cc9 100644 --- a/package.json +++ b/package.json @@ -283,6 +283,7 @@ "gulp-watch": "^5.0.1", "gulp-zip": "^4.0.0", "history": "^5.0.0", + "improved-yarn-audit": "^2.3.3", "jest": "^26.6.3", "jsdom": "^11.2.0", "koa": "^2.7.0", diff --git a/yarn.lock b/yarn.lock index 9ddad44b1..7b3c9b8b0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14621,6 +14621,11 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" +improved-yarn-audit@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/improved-yarn-audit/-/improved-yarn-audit-2.3.3.tgz#da0be78be4b678c73733066c9ccd21e1958fae8c" + integrity sha512-chZ7zPKGsA+CZeMExNPf9WZhETJLkC+u8cQlkQC9XyPZqQPctn3FavefTjXBXmX3Azin8WcoAbaok1FvjkLf6A== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" From ff20a999e04b7f28d9a6f05a5a60ed70296682bf Mon Sep 17 00:00:00 2001 From: MetaMask Bot Date: Fri, 8 Oct 2021 21:45:18 +0000 Subject: [PATCH 5/6] Version v10.2.1 --- CHANGELOG.md | 10 +++++++++- package.json | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 11482cc3e..7d9dd8194 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [10.2.1] +### Uncategorized +- use improved-yarn-audit and exclude 1002401 and 1002581 ([#12310](https://github.com/MetaMask/metamask-extension/pull/12310)) +- Update `immer` from v8 to v9 ([#12303](https://github.com/MetaMask/metamask-extension/pull/12303)) +- Do case-insensitive comparisons of token addresses in view-quote and build-quote ([#12315](https://github.com/MetaMask/metamask-extension/pull/12315)) +- Restoring mobile sync warning text ([#12284](https://github.com/MetaMask/metamask-extension/pull/12284)) + ## [10.2.0] ### Added - [#12066](https://github.com/MetaMask/metamask-extension/pull/12066): Enable token conversion rates for primary currencies on some non-Mainnet networks @@ -2489,7 +2496,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Uncategorized - Added the ability to restore accounts from seed words. -[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.2.0...HEAD +[Unreleased]: https://github.com/MetaMask/metamask-extension/compare/v10.2.1...HEAD +[10.2.1]: https://github.com/MetaMask/metamask-extension/compare/v10.2.0...v10.2.1 [10.2.0]: https://github.com/MetaMask/metamask-extension/compare/v10.1.1...v10.2.0 [10.1.1]: https://github.com/MetaMask/metamask-extension/compare/v10.1.0...v10.1.1 [10.1.0]: https://github.com/MetaMask/metamask-extension/compare/v10.0.3...v10.1.0 diff --git a/package.json b/package.json index adc1f6cc9..3cfdee9d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "metamask-crx", - "version": "10.2.0", + "version": "10.2.1", "private": true, "repository": { "type": "git", From f0111770bac8426d8aaccccbaaded820981b2827 Mon Sep 17 00:00:00 2001 From: ryanml Date: Fri, 8 Oct 2021 14:57:40 -0700 Subject: [PATCH 6/6] [skip e2e] Updating v10.2.1 changelog (#12318) --- CHANGELOG.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d9dd8194..3d593da66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,11 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ## [10.2.1] -### Uncategorized -- use improved-yarn-audit and exclude 1002401 and 1002581 ([#12310](https://github.com/MetaMask/metamask-extension/pull/12310)) -- Update `immer` from v8 to v9 ([#12303](https://github.com/MetaMask/metamask-extension/pull/12303)) -- Do case-insensitive comparisons of token addresses in view-quote and build-quote ([#12315](https://github.com/MetaMask/metamask-extension/pull/12315)) -- Restoring mobile sync warning text ([#12284](https://github.com/MetaMask/metamask-extension/pull/12284)) +### Fixed +- [#12315](https://github.com/MetaMask/metamask-extension/pull/12315): Fix ERC-20 token swaps +- [#12284](https://github.com/MetaMask/metamask-extension/pull/12284): Restoring notice regarding mobile sync status to sync page ## [10.2.0] ### Added