From d33688e030d3ba975fe6abdeddfcb904f316e205 Mon Sep 17 00:00:00 2001 From: gagarin55 Date: Thu, 24 Sep 2020 17:04:03 +0300 Subject: [PATCH] minor refactoring --- package.json | 5 +- src/common/ErgoBoxSet.spec.ts | 70 +++++ src/common/ErgoBoxSet.ts | 29 +++ src/common/backend-types.ts | 8 +- src/main/application/Application.ts | 8 +- src/renderer/modules/wallet/Boxes/Outputs.tsx | 8 +- src/renderer/modules/wallet/Boxes/Send.tsx | 15 +- src/renderer/modules/wallet/TokensValues.tsx | 3 +- .../wallet/Transactions/TxDetailsDialog.tsx | 39 +-- .../modules/wallet/transfer/InitialStep.tsx | 12 +- .../wallet/transfer/TransferDialog.tsx | 4 +- yarn.lock | 242 +++++++++++------- 12 files changed, 301 insertions(+), 142 deletions(-) create mode 100644 src/common/ErgoBoxSet.spec.ts create mode 100644 src/common/ErgoBoxSet.ts diff --git a/package.json b/package.json index 96326b3..e7b1541 100755 --- a/package.json +++ b/package.json @@ -42,8 +42,8 @@ "copy-webpack-plugin": "5.1.1", "cross-env": "7.0.2", "css-loader": "^3.5.3", - "electron": "10.1.1", - "electron-builder": "^22.7.0", + "electron": "10.1.2", + "electron-builder": "22.8.1", "eslint": "^7.0.0", "eslint-plugin-react": "^7.20.0", "file-loader": "^6.0.0", @@ -69,7 +69,6 @@ "bignumber.js": "^9.0.0", "bip32": "^2.0.5", "bip39": "^3.0.2", - "bn.js": "^5.1.2", "clipboard-copy": "3.1.0", "lodash": "4.17.15", "node-fetch": "2.6.1", diff --git a/src/common/ErgoBoxSet.spec.ts b/src/common/ErgoBoxSet.spec.ts new file mode 100644 index 0000000..ae65050 --- /dev/null +++ b/src/common/ErgoBoxSet.spec.ts @@ -0,0 +1,70 @@ +import {ErgoBoxSet} from "./ErgoBoxSet"; + +describe("ErgoBoxSet", () => { + it("calc ERG balance", () => { + const boxes = [ + { + "boxId": "5ddeb5b1e7c62ff522e7a776c15d066cbaa2e03379509c87b443f38ade7c5808", + "transactionId": "33b588717c538f9f85a7fbea8eb3df112f013bd6e15343aaac5ad42088a4c8d0", + "value": "15126500000", + "index": 0, + "creationHeight": BigInt(324574), + "ergoTree": "100604000580df9825043c0e20d595c4a6575a58b394644979225cbf1564a73eded8cb10386f41d02d4f6b9e910428040ad806d601b2a5730000d602c67201060ed603e4c6a70504d604c1a7d6059272047301d6069aa3730295e67202d801d607ed93e47202cbc2a793cbc272017303eb02d1ededededededed8fa3720391a39972037304720593e4c672010405e4c6a7040593e4c672010504720393db63087201db6308a792c1720172047207d1ededededededed92a37203720593e4c672010405e4c6a7040592e4c672010504720690e4c6720105049a7206730593db63087201db6308a792c1720172047207d1edededed93e4c672010405e4c6a7040593e4c672010504720393c27201c2a793db63087201db6308a791c172017204", + "address": "Gxd4hMRT6Lbs5atqVxppyRNa4pKntcdMiAzAnmobNoncQKGBzo7pXBnx2u2D9R9nSfFvtoePzrjxZReT3mx5S4Mg1yjZysXrZHXT2Fb8DJ171ipa5FUbN6skZduVHnjgcpHKymxp9PBMb7j7bXirPRdVdx27qBzUcHyyaHunXRDC7qXRHxESSY3rdzLAX61XLci3SF1PdgBYhSwDgwtuDCDtKBFVvEWXg5eWdJ7xEv8rYYK6Nrrhu8mnRUoiMN1PGxo1e4fzz44qHnVFYnLFp64TNLH6nffmYxEWBWkjLBvkhYR3xBpA8FaF7TosmjsoMu3nEzpNUMrL8iQgFhp6FmHxUWswajtpyNwrCQDKa4oKqWyk88SjxVXX94Eussf9BJvuneiKXx2rgZ", + "assets": [{"tokenId": "08b59b14e4fdd60e5952314adbaa8b4e00bc0f0b676872a5224d3bf8591074cd", "amount": "1"}], + "additionalRegisters": {"R4": "05fc8ba1ea0c", "R5": "04f8cf27"}, + "spentTransactionId": null + }, + { + "boxId": "257be6fe5b5e09746da9d121a1a6a081c7c2b03c33bdc9982926a8e4ebab6818", + "transactionId": "33b588717c538f9f85a7fbea8eb3df112f013bd6e15343aaac5ad42088a4c8d0", + "value": "2500000", + "index": 1, + "creationHeight": BigInt(324574), + "ergoTree": "0008cd0327e65711a59378c59359c3e1d0f7abe906479eccb76094e50fe79d743ccc15e6", + "address": "9gmNsqrqdSppLUBqg2UzREmmivgqh1r3jmNcLAc53hk3YCvAGWE", + "assets": [], + "additionalRegisters": {}, + "spentTransactionId": null + }, + { + "boxId": "5e6584933860f5dcabe535dc555185f9336ae762d79f28d493bac28a596dc5f3", + "transactionId": "33b588717c538f9f85a7fbea8eb3df112f013bd6e15343aaac5ad42088a4c8d0", + "value": "2500000", + "index": 2, + "creationHeight": BigInt(324574), + "ergoTree": "0008cd0327e65711a59378c59359c3e1d0f7abe906479eccb76094e50fe79d743ccc15e6", + "address": "9gmNsqrqdSppLUBqg2UzREmmivgqh1r3jmNcLAc53hk3YCvAGWE", + "assets": [], "additionalRegisters": {}, + "spentTransactionId": null + }, + { + "boxId": "7e61ea89c721b91a8cf3f2337fb1002c58e859a825243fa5012444ce2d591f99", + "transactionId": "33b588717c538f9f85a7fbea8eb3df112f013bd6e15343aaac5ad42088a4c8d0", + "value": "2000000", + "index": 3, + "creationHeight": BigInt(324574), + "ergoTree": "1005040004000e36100204a00b08cd0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ea02d192a39a8cc7a701730073011001020402d19683030193a38cc7b2a57300000193c2b2a57301007473027303830108cdeeac93b1a57304", + "address": "2iHkR7CWvD1R4j1yZg5bkeDRQavjAaVPeTDFGGLZduHyfWMuYpmhHocX8GJoaieTx78FntzJbCBVL6rf96ocJoZdmWBL2fci7NqWgAirppPQmZ7fN9V6z13Ay6brPriBKYqLp1bT2Fk4FkFLCfdPpe", + "assets": [], + "additionalRegisters": {}, + "spentTransactionId": "9d879d915986cfe4233b4dcef98fca5ae6b19d9498818d9d25256dce8a4ba2ad" + }, + { + "boxId": "c983c53075a703455aa53c3d93836d50cb4ecc7ab47390895b019ce53d9bdb49", + "transactionId": "33b588717c538f9f85a7fbea8eb3df112f013bd6e15343aaac5ad42088a4c8d0", + "value": "42362500000", + "index": 4, + "creationHeight": BigInt(324574), + "ergoTree": "0008cd0327e65711a59378c59359c3e1d0f7abe906479eccb76094e50fe79d743ccc15e6", + "address": "9gmNsqrqdSppLUBqg2UzREmmivgqh1r3jmNcLAc53hk3YCvAGWE", + "assets": [], + "additionalRegisters": {}, + "spentTransactionId": null + }]; + const set = new ErgoBoxSet(boxes); + console.log(set.assetsIds()); + expect(set.balance('ERG').toString()).toEqual("57496000000"); + expect(set.balance('08b59b14e4fdd60e5952314adbaa8b4e00bc0f0b676872a5224d3bf8591074cd').toString()).toEqual("1"); + }); +}); diff --git a/src/common/ErgoBoxSet.ts b/src/common/ErgoBoxSet.ts new file mode 100644 index 0000000..d2d21f3 --- /dev/null +++ b/src/common/ErgoBoxSet.ts @@ -0,0 +1,29 @@ +import {ErgoBox, ErgoTokenAmount} from "./backend-types"; + +export class ErgoBoxSet { + private boxes: Array; + private balances: Map = new Map(); + + constructor(boxes: Array) { + this.boxes = Array.from(boxes); + // Calculate balances balances + let ergValue = BigInt(0); + this.boxes.forEach((box: ErgoBox) => { + ergValue += BigInt(box.value); + box.assets.forEach((a: ErgoTokenAmount) => { + let amount = this.balances.get(a.tokenId); + amount = (amount||BigInt(0)) + BigInt(a.amount); + this.balances.set(a.tokenId, amount); + }); + }); + this.balances.set('ERG', ergValue); + } + + public assetsIds(): Array { + return Array.from(this.balances.keys()); + } + + public balance(tokenId: string): bigint { + return this.balances.get(tokenId); + } +} \ No newline at end of file diff --git a/src/common/backend-types.ts b/src/common/backend-types.ts index 43203f9..a54ae7b 100644 --- a/src/common/backend-types.ts +++ b/src/common/backend-types.ts @@ -1,9 +1,15 @@ import {WalletBox} from "../main/application/services/wallet/Wallet"; +import {TokenValue} from "../main/ergoplatform/connector/types"; export interface AddressInfo { address: string; } -export type ErgoBox = WalletBox; +export type ErgoTokenAmount = Omit & { amount: string }; +export type ErgoBox = Omit & { + value: string; + assets: Array; +}; + export interface Event { type: string; diff --git a/src/main/application/Application.ts b/src/main/application/Application.ts index a9ea9f5..3632ce2 100755 --- a/src/main/application/Application.ts +++ b/src/main/application/Application.ts @@ -90,7 +90,13 @@ export default class Application extends EventEmitter { if (this.currentWallet == null) { return []; } - return this.currentWallet.getUnspentBoxes(); + // map result to response format because of BigInt + return this.currentWallet.getUnspentBoxes() + .map((item) => ({ + ...item, + value: item.value.toString(), + assets: item.assets.map((a) => ({...a, amount: a.amount.toString()})) + })); } public getTransactions(): Array { diff --git a/src/renderer/modules/wallet/Boxes/Outputs.tsx b/src/renderer/modules/wallet/Boxes/Outputs.tsx index 91e088b..48fe36a 100755 --- a/src/renderer/modules/wallet/Boxes/Outputs.tsx +++ b/src/renderer/modules/wallet/Boxes/Outputs.tsx @@ -16,7 +16,7 @@ import TokensValues from "../TokensValues"; import KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown'; import KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp'; import {makeStyles} from "@material-ui/core/styles"; -import {WalletBox} from "../../../../main/application/services/wallet/Wallet"; +import {ErgoBox} from "../../../../common/backend-types"; const useRowStyles = makeStyles({ root: { @@ -26,7 +26,7 @@ const useRowStyles = makeStyles({ }, }); -function Row(props: {box: WalletBox; selected: boolean; onSelect: any}): React.ReactElement { +function Row(props: {box: ErgoBox; selected: boolean; onSelect: any}): React.ReactElement { const { box, selected, onSelect } = props; const [open, setOpen] = React.useState(false); const classes = useRowStyles(); @@ -84,11 +84,11 @@ function Outputs(): React.ReactElement { dispatch(fetchUnspentBoxes()); }, []); - function isItemSelected(box: WalletBox): boolean { + function isItemSelected(box: ErgoBox): boolean { return selected.indexOf(box.boxId) !== -1; } - const handleClick = (event: React.MouseEvent, box: WalletBox) => { + const handleClick = (event: React.MouseEvent, box: ErgoBox) => { const selectedIndex = selected.indexOf(box.boxId); let newSelected: string[] = []; diff --git a/src/renderer/modules/wallet/Boxes/Send.tsx b/src/renderer/modules/wallet/Boxes/Send.tsx index 59e5bac..0d6da3a 100755 --- a/src/renderer/modules/wallet/Boxes/Send.tsx +++ b/src/renderer/modules/wallet/Boxes/Send.tsx @@ -13,7 +13,8 @@ import {makeStyles} from "@material-ui/core/styles"; import {MoneyUnits} from "../../../../common/MoneyUnits"; import SendOutlinedIcon from '@material-ui/icons/SendOutlined'; import TransferDialog from "../transfer/TransferDialog"; -import {WalletBox} from "../../../../main/application/services/wallet/Wallet"; +import {ErgoBox} from "../../../../common/backend-types"; +import {ErgoBoxSet} from "../../../../common/ErgoBoxSet"; const useStyles = makeStyles(() => ({ container: { @@ -25,16 +26,14 @@ const useStyles = makeStyles(() => ({ })); -function Send (props: {fromBoxes: Array}): React.ReactElement { +function Send (props: {fromBoxes: Array}): React.ReactElement { + const { fromBoxes } = props; const classes = useStyles(); const [asset, setAsset] = React.useState('ERG'); const [transferDlgOpen, setTransferDlgOpen ] = React.useState(false); - const { fromBoxes } = props; - - const total: MoneyUnits = fromBoxes.reduce((total: MoneyUnits, box: any) => { - return total.plus(new MoneyUnits(box.value, 9)); - }, new MoneyUnits(0, 9)); + const boxSet = new ErgoBoxSet(fromBoxes); + const total = new MoneyUnits(boxSet.balance('ERG'), 9); function handleChange(event: React.ChangeEvent<{ value: string }>): void { setAsset(event.target.value); @@ -79,7 +78,7 @@ function Send (props: {fromBoxes: Array}): React.ReactElement { disabled={!canSend} onClick={handleSendClick} variant="contained" - color={'secondary'} + color="secondary" endIcon={} > Send diff --git a/src/renderer/modules/wallet/TokensValues.tsx b/src/renderer/modules/wallet/TokensValues.tsx index aca4946..3bebb6d 100644 --- a/src/renderer/modules/wallet/TokensValues.tsx +++ b/src/renderer/modules/wallet/TokensValues.tsx @@ -1,5 +1,4 @@ -import {Box} from "@material-ui/core"; -import Chip from "@material-ui/core/Chip"; +import {Box, Chip} from "@material-ui/core"; import AssetValue from "../../components/AssetValue"; import * as React from "react"; diff --git a/src/renderer/modules/wallet/Transactions/TxDetailsDialog.tsx b/src/renderer/modules/wallet/Transactions/TxDetailsDialog.tsx index a2ba0e8..63c5c48 100755 --- a/src/renderer/modules/wallet/Transactions/TxDetailsDialog.tsx +++ b/src/renderer/modules/wallet/Transactions/TxDetailsDialog.tsx @@ -76,27 +76,32 @@ function TxDetailsDialog(props: TxDetailsProps): React.ReactElement { {/* Tx Schema - Inputs -> Outputs */} - + {/* inputs list */} { tx.inputs.map((i: any) => ( - - - - {(i.address.length > 60) ? ( -
- ) : ( -
- )} - - - - - - + + + {(i.address.length > 60) ? ( +
+ ) : ( +
+ )} + + + + + + )) } @@ -111,10 +116,10 @@ function TxDetailsDialog(props: TxDetailsProps): React.ReactElement { {/* outputs list */} - + { tx.outputs.map((i: any) => ( - + {(i.address.length > 60) ? (
diff --git a/src/renderer/modules/wallet/transfer/InitialStep.tsx b/src/renderer/modules/wallet/transfer/InitialStep.tsx index 4cd552b..d9744f1 100755 --- a/src/renderer/modules/wallet/transfer/InitialStep.tsx +++ b/src/renderer/modules/wallet/transfer/InitialStep.tsx @@ -8,10 +8,11 @@ import {MoneyUnits} from "../../../../common/MoneyUnits"; import {fromErg} from "../../../../common/utils"; import TokensValues from "../TokensValues"; import {minBoxValue} from "../../../../common/constants"; -import {WalletBox} from "../../../../main/application/services/wallet/Wallet"; +import {ErgoBox} from "../../../../common/backend-types"; +import {ErgoBoxSet} from "../../../../common/ErgoBoxSet"; interface InitialStepProps { - fromBoxes: Array; + fromBoxes: Array; onContinue?: any; backendApi?: any; } @@ -23,9 +24,8 @@ function InitialStep(props: InitialStepProps): React.ReactElement { const amountRef = React.createRef(); // Total nanoERG available - const totalMoney: MoneyUnits = fromBoxes.reduce((total: MoneyUnits, box: any) => { - return total.plus(new MoneyUnits(box.value, 9)); - }, new MoneyUnits(0, 9)); + const boxes = new ErgoBoxSet(fromBoxes); + const totalMoney = new MoneyUnits(boxes.balance('ERG'), 9); const [recipient, setRecipient] = React.useState(''); const [recipientError, setRecipientError] = React.useState(''); @@ -114,7 +114,7 @@ function InitialStep(props: InitialStepProps): React.ReactElement { return ( <> -
Spend boxes
+ Spend boxes {fromBoxes.map((box) => { return ( diff --git a/src/renderer/modules/wallet/transfer/TransferDialog.tsx b/src/renderer/modules/wallet/transfer/TransferDialog.tsx index 87f30d8..96473a2 100755 --- a/src/renderer/modules/wallet/transfer/TransferDialog.tsx +++ b/src/renderer/modules/wallet/transfer/TransferDialog.tsx @@ -7,7 +7,7 @@ import InitialStep from "./InitialStep"; import ConfirmationStep from "./ConfirmationStep"; import {UnsignedTransaction} from "../../../../main/application/services/wallet/TransactionBuilder"; import FinalStep from "./FinalStep"; -import {WalletBox} from "../../../../main/application/services/wallet/Wallet"; +import {ErgoBox} from "../../../../common/backend-types"; enum Page { INITIAL, @@ -18,7 +18,7 @@ enum Page { interface TransferProps { open: boolean; onClose: () => void; - fromBoxes: Array; + fromBoxes: Array; } const useStyles = makeStyles((theme) => ({ diff --git a/yarn.lock b/yarn.lock index baba6be..ef05622 100755 --- a/yarn.lock +++ b/yarn.lock @@ -893,9 +893,9 @@ integrity sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A== "@types/node@^12.0.12": - version "12.12.57" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.57.tgz#fa7bab1f5e5adc99df92d824ef75c3bbca929a22" - integrity sha512-Dg4fab0IP6ZtdJOkwTaMaOJA3PWw7bR6cUYh+nxkYe4+ZogiLBKhaEr9sHqVkCtREVLw92g3Fl1bt8++dHKavw== + version "12.12.62" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.62.tgz#733923d73669188d35950253dd18a21570085d2b" + integrity sha512-qAfo81CsD7yQIM9mVyh6B/U47li5g7cfpVQEDMfQeF8pSZVwzbhwU3crc0qG4DmpsebpJPR49AKOExQyJ05Cpg== "@types/normalize-package-data@^2.4.0": version "2.4.0" @@ -1018,13 +1018,20 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== -"@types/yargs@^15.0.0", "@types/yargs@^15.0.5": +"@types/yargs@^15.0.0": version "15.0.5" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== dependencies: "@types/yargs-parser" "*" +"@types/yargs@^15.0.5": + version "15.0.7" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.7.tgz#dad50a7a234a35ef9460737a56024287a3de1d2b" + integrity sha512-Gf4u3EjaPNcC9cTu4/j2oN14nSVhr8PQ+BvBcBQHAhDZfl0bVIiLgvnRXv/dn58XhTm9UXvBpvJpDlwV65QxOA== + dependencies: + "@types/yargs-parser" "*" + "@typescript-eslint/eslint-plugin@^2.33.0": version "2.34.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" @@ -1267,7 +1274,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.0.tgz#5c894537098785926d71e696114a53ce768ed773" integrity sha512-eyoaac3btgU8eJlvh01En8OCKzRqlLe2G5jDsCr3RiE2uLGMEEB1aaGwVVpwR8M95956tGH6R+9edC++OvzaVw== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.5.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== @@ -1277,6 +1284,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.0: + version "6.12.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" + integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ansi-align@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" @@ -1347,28 +1364,28 @@ anymatch@^3.0.3, anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -app-builder-bin@3.5.9: - version "3.5.9" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.9.tgz#a3ac0c25286bac68357321cb2eaf7128b0bc0a4f" - integrity sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg== +app-builder-bin@3.5.10: + version "3.5.10" + resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" + integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ== -app-builder-lib@22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.7.0.tgz#ccd3e7ece2d46bc209423a77aa142f74aaf65db0" - integrity sha512-blRKwV8h0ztualXS50ciCTo39tbuDGNS+ldcy8+KLvKXuT6OpYnSJ7M6MSfPT+xWatshMHJV1rJx3Tl+k/Sn/g== +app-builder-lib@22.8.1: + version "22.8.1" + resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.8.1.tgz#02cd14c0a83d3a758675d28c327731832b2c0bc1" + integrity sha512-D/ac1+vuGIAAwEeTtXl8b+qWl7Gz/IQatFyzYl2ocag/7N8LqUjKzZFJJISQPWt6PFDPDH0oCj8/GMh63aV0yw== dependencies: "7zip-bin" "~5.0.3" "@develar/schema-utils" "~2.6.5" async-exit-hook "^2.0.1" bluebird-lst "^1.0.9" - builder-util "22.7.0" - builder-util-runtime "8.7.1" + builder-util "22.8.1" + builder-util-runtime "8.7.2" chromium-pickle-js "^0.2.0" debug "^4.2.0" ejs "^3.1.3" - electron-publish "22.7.0" - fs-extra "^9.0.0" - hosted-git-info "^3.0.4" + electron-publish "22.8.1" + fs-extra "^9.0.1" + hosted-git-info "^3.0.5" is-ci "^2.0.0" isbinaryfile "^4.0.6" js-yaml "^3.14.0" @@ -1713,7 +1730,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== -bn.js@^5.1.1, bn.js@^5.1.2: +bn.js@^5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" integrity sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA== @@ -1723,7 +1740,7 @@ boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= -boolean@^3.0.0, boolean@^3.0.1: +boolean@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.1.tgz#35ecf2b4a2ee191b0b44986f14eb5f052a5cbb4f" integrity sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA== @@ -1898,28 +1915,28 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builder-util-runtime@8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz#23c808cddd650d4376a7a1518ec1e80e85c10f00" - integrity sha512-uEBH1nAnTvzjcsrh2XI3qOzJ39h0+9kuIuwj+kCc3a07TZNGShfJcai8fFzL3mNgGjEFxoq+XMssR11r+FOFSg== +builder-util-runtime@8.7.2: + version "8.7.2" + resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72" + integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA== dependencies: - debug "^4.2.0" + debug "^4.1.1" sax "^1.2.4" -builder-util@22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.7.0.tgz#0776a66e6d6e408a78bed7f17a7ad22516d9e7f0" - integrity sha512-UV3MKL0mwjMq2y9JlBf28Cegpj0CrIXcjGkO0TXn+QZ6Yy9rY6lHOuUvpQ19ct2Qh1o+QSwH3Q1nKUf5viJBBg== +builder-util@22.8.1: + version "22.8.1" + resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.8.1.tgz#efdfb327dbc22c59aa1e2f55adbe0e771086e839" + integrity sha512-LZG+E1xszMdut5hL5h7RkJQ7yOsQqdhJYgn1wvOP7MmF3MoUPRNDiRodLpYiWlaqZmgYhcfaipR/Mb8F/RqK8w== dependencies: "7zip-bin" "~5.0.3" "@types/debug" "^4.1.5" "@types/fs-extra" "^9.0.1" - app-builder-bin "3.5.9" + app-builder-bin "3.5.10" bluebird-lst "^1.0.9" - builder-util-runtime "8.7.1" - chalk "^4.0.0" + builder-util-runtime "8.7.2" + chalk "^4.1.0" debug "^4.2.0" - fs-extra "^9.0.0" + fs-extra "^9.0.1" is-ci "^2.0.0" js-yaml "^3.14.0" source-map-support "^0.5.19" @@ -2037,7 +2054,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== @@ -2137,9 +2154,9 @@ clean-css@^4.2.3: source-map "~0.6.0" cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== clipboard-copy@3.1.0: version "3.1.0" @@ -2765,15 +2782,15 @@ dir-glob@^2.0.0: dependencies: path-type "^3.0.0" -dmg-builder@22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.7.0.tgz#ead7e7c046cbdc52d29d302a4455f6668cdf7d45" - integrity sha512-5Ea2YEz6zSNbyGzZD+O9/MzmaXb6oa15cSKWo4JQ1xP4rorOpte7IOj2jcwYjtc+Los2gu1lvT314OC1OZIWgg== +dmg-builder@22.8.1: + version "22.8.1" + resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.8.1.tgz#9b3bcbbc43e5fed232525d61a5567ea4b66085c3" + integrity sha512-WeGom1moM00gBII6swljl4DQGrlJuEivoUhOmh8U9p1ALgeJL+EiTHbZFERlj8Ejy62xUUjURV+liOxUKmJFWg== dependencies: - app-builder-lib "22.7.0" - builder-util "22.7.0" - fs-extra "^9.0.0" - iconv-lite "^0.5.1" + app-builder-lib "22.8.1" + builder-util "22.8.1" + fs-extra "^9.0.1" + iconv-lite "^0.6.2" js-yaml "^3.14.0" sanitize-filename "^1.6.3" @@ -2880,9 +2897,9 @@ dot-case@^3.0.3: tslib "^1.10.0" dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" @@ -2920,50 +2937,50 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" ejs@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.3.tgz#514d967a8894084d18d3d47bd169a1c0560f093d" - integrity sha512-wmtrUGyfSC23GC/B1SMv2ogAUgbQEtDmTIhfqielrG5ExIM9TP4UoYdi90jLF1aTcsWCJNEO0UrgKzP0y3nTSg== + version "3.1.5" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" + integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== dependencies: jake "^10.6.1" -electron-builder@^22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.7.0.tgz#a42d08a1654ffc2f7d9e2860829d3cc55d4a0c81" - integrity sha512-t6E3oMutpST64YWbZCg7HodEwJOsnjUF1vnDIHm2MW6CFZPX8tlCK6efqaV66LU0E0Nkp/JH6TE5bCqQ1+VdPQ== +electron-builder@22.8.1: + version "22.8.1" + resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.8.1.tgz#84295190dae17b3892df7aa39ac334983aeaea06" + integrity sha512-Hs7KTMq1rGSvT0fwGKXrjbLiJkK6sAKDQooUSwklOkktUgWi4ATjlP0fVE3l8SmS7zcLoww2yDZonSDqxEFhaQ== dependencies: "@types/yargs" "^15.0.5" - app-builder-lib "22.7.0" + app-builder-lib "22.8.1" bluebird-lst "^1.0.9" - builder-util "22.7.0" - builder-util-runtime "8.7.1" - chalk "^4.0.0" - dmg-builder "22.7.0" - fs-extra "^9.0.0" + builder-util "22.8.1" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + dmg-builder "22.8.1" + fs-extra "^9.0.1" is-ci "^2.0.0" lazy-val "^1.0.4" read-config-file "6.0.0" sanitize-filename "^1.6.3" update-notifier "^4.1.0" - yargs "^15.3.1" + yargs "^15.4.1" -electron-publish@22.7.0: - version "22.7.0" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.7.0.tgz#d92ba7c4007c9ac1dd070593e48028184fb2dc19" - integrity sha512-hmU69xlb6vvAV3QfpHYDlkdZMFdBAgDbptoxbLFrnTq5bOkcL8AaDbvxeoZ4+lvqgs29NwqGpkHo2oN+p/hCfg== +electron-publish@22.8.1: + version "22.8.1" + resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.8.1.tgz#747e0d7f921cd1808f999713d29f599dbb390c4f" + integrity sha512-zqI66vl7j1CJZJ60J+1ez1tQNQeuqVspW44JvYDa5kZbM5wSFDAJFMK9RWHOqRF1Ezd4LDeiBa4aeTOwOt9syA== dependencies: "@types/fs-extra" "^9.0.1" bluebird-lst "^1.0.9" - builder-util "22.7.0" - builder-util-runtime "8.7.1" - chalk "^4.0.0" - fs-extra "^9.0.0" + builder-util "22.8.1" + builder-util-runtime "8.7.2" + chalk "^4.1.0" + fs-extra "^9.0.1" lazy-val "^1.0.4" - mime "^2.4.5" + mime "^2.4.6" -electron@10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/electron/-/electron-10.1.1.tgz#44ff9207afc9df253d3b5ea40c7e6513c5dc08d8" - integrity sha512-ZJtZHMr17AvvBosuA6XUmpehwAlGM4/n46Mw9BcyD8tpgdI6IQd0X5OU9meE3X3M8Y6Ja2Kr2udTMgtjvot2hA== +electron@10.1.2: + version "10.1.2" + resolved "https://registry.yarnpkg.com/electron/-/electron-10.1.2.tgz#30b6fd7669f8daf08c56219a61dfa053fa2b0c70" + integrity sha512-SvN8DcKCmPZ0UcQSNAJBfaUu+LGACqtRhUn1rW0UBLHgdbbDM76L0GU5/XGQEllH5pu5bwlCZwax3srzIl+Aeg== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" @@ -3561,7 +3578,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0: +fs-extra@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== @@ -3927,12 +3944,12 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== -hosted-git-info@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz#be4973eb1fd2737b11c9c7c19380739bb249f60d" - integrity sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ== +hosted-git-info@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" + integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== dependencies: - lru-cache "^5.1.1" + lru-cache "^6.0.0" html-encoding-sniffer@^2.0.1: version "2.0.1" @@ -4022,12 +4039,12 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.2.tgz#af6d628dccfb463b7364d97f715e4b74b8c8c2b8" - integrity sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag== +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== dependencies: - safer-buffer ">= 2.1.2 < 3" + safer-buffer ">= 2.1.2 < 3.0.0" icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" @@ -5244,6 +5261,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -5377,7 +5401,7 @@ mime-types@^2.1.12, mime-types@^2.1.26, mime-types@~2.1.19: dependencies: mime-db "1.44.0" -mime@^2.4.5: +mime@^2.4.6: version "2.4.6" resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== @@ -6491,9 +6515,9 @@ regexpp@^3.0.0, regexpp@^3.1.0: integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== + version "4.2.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" + integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== dependencies: rc "^1.2.8" @@ -6688,11 +6712,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: inherits "^2.0.1" roarr@^2.15.3: - version "2.15.3" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.3.tgz#65248a291a15af3ebfd767cbf7e44cb402d1d836" - integrity sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA== + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== dependencies: - boolean "^3.0.0" + boolean "^3.0.1" detect-node "^2.0.4" globalthis "^1.0.1" json-stringify-safe "^5.0.1" @@ -6728,7 +6752,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -7703,9 +7727,9 @@ upath@^1.1.1: integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== update-notifier@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3" - integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew== + version "4.1.1" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.1.tgz#895fc8562bbe666179500f9f2cebac4f26323746" + integrity sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg== dependencies: boxen "^4.2.0" chalk "^3.0.0" @@ -8111,6 +8135,11 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yargs-parser@18.x, yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -8160,6 +8189,23 @@ yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"