diff --git a/README.md b/README.md index 11df398e..1a482970 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Ledger Wallet Desktop +[![CircleCI](https://circleci.com/gh/LedgerHQ/ledger-wallet-desktop.svg?style=svg)](https://circleci.com/gh/LedgerHQ/ledger-wallet-desktop) +[![Crowdin](https://d322cqt584bo4o.cloudfront.net/ledger-wallet/localized.svg)](https://crowdin.com/project/ledger-wallet) + ## Requirements * nodejs v8.x (https://nodejs.org/en/) diff --git a/package.json b/package.json index 4c2f0c23..2cb56d5d 100644 --- a/package.json +++ b/package.json @@ -121,6 +121,7 @@ "electron": "1.8.2", "electron-builder": "^20.2.0", "electron-devtools-installer": "^2.2.3", + "electron-rebuild": "^1.7.3", "electron-webpack": "1.13.0", "eslint": "^4.18.1", "eslint-config-airbnb": "^16.1.0", diff --git a/src/components/AccountPage/AccountHeader.js b/src/components/AccountPage/AccountHeader.js new file mode 100644 index 00000000..9f01e89a --- /dev/null +++ b/src/components/AccountPage/AccountHeader.js @@ -0,0 +1,46 @@ +// @flow + +import React, { PureComponent } from 'react' +import { getIconByCoinType } from '@ledgerhq/currencies/react' +import styled from 'styled-components' + +import type { Account } from 'types/common' + +import Box from 'components/base/Box' +import Text from 'components/base/Text' + +const CurName = styled(Text).attrs({ + ff: 'Open Sans|SemiBold', + fontSize: 2, +})` + text-transform: uppercase; + letter-spacing: 1px; +` + +type Props = { + account: Account, +} + +class AccountHeader extends PureComponent { + render() { + const { account } = this.props + const Icon = getIconByCoinType(account.currency.coinType) + return ( + + {Icon && ( + + + + )} + + {account.currency.name} + + {account.name} + + + + ) + } +} + +export default AccountHeader diff --git a/src/components/AccountPage.js b/src/components/AccountPage/index.js similarity index 73% rename from src/components/AccountPage.js rename to src/components/AccountPage/index.js index 2f94a9e3..7ebef896 100644 --- a/src/components/AccountPage.js +++ b/src/components/AccountPage/index.js @@ -20,9 +20,9 @@ import Box, { Card } from 'components/base/Box' import Button from 'components/base/Button' import Icon from 'components/base/Icon' import IconControls from 'icons/Controls' -import ReceiveBox from 'components/ReceiveBox' import Text from 'components/base/Text' import TransactionsList from 'components/TransactionsList' +import AccountHeader from './AccountHeader' type Props = { t: T, @@ -48,11 +48,9 @@ class AccountPage extends PureComponent { } return ( - + - - {account.name} - + - - - - {formatBTC(account.balance)} - - - - - - - - - - - + + {formatBTC(account.balance)} + ) } diff --git a/src/components/DashboardPage/index.js b/src/components/DashboardPage/index.js index 0a17cbd7..2b2af8ee 100644 --- a/src/components/DashboardPage/index.js +++ b/src/components/DashboardPage/index.js @@ -289,13 +289,12 @@ class DashboardPage extends PureComponent { ))} - - push(`/account/${account.id}`)} - /> - + push(`/account/${account.id}`)} + /> )} diff --git a/src/components/TransactionsList/index.js b/src/components/TransactionsList/index.js index b3e98b59..1cdf589d 100644 --- a/src/components/TransactionsList/index.js +++ b/src/components/TransactionsList/index.js @@ -11,7 +11,7 @@ import { getIconByCoinType } from '@ledgerhq/currencies/react' import type { Transaction as TransactionType, T } from 'types/common' -import Box from 'components/base/Box' +import Box, { Card } from 'components/base/Box' import Defer from 'components/base/Defer' import FormattedVal from 'components/base/FormattedVal' import Text from 'components/base/Text' @@ -20,7 +20,7 @@ import ConfirmationCheck from './ConfirmationCheck' const DATE_COL_SIZE = 80 const ACCOUNT_COL_SIZE = 150 const AMOUNT_COL_SIZE = 150 -const CONFIRMATION_COL_SIZE = 30 +const CONFIRMATION_COL_SIZE = 44 const Cap = styled(Text).attrs({ fontSize: 2, @@ -58,12 +58,17 @@ const TransactionRaw = styled(Box).attrs({ horizontal: true, alignItems: 'center', })` + cursor: pointer; border-bottom: 1px solid ${p => p.theme.colors.fog}; height: 68px; &:last-child { border-bottom: 0; } + + &:hover { + background: ${p => p.theme.colors.lightGrey}; + } ` const Cell = styled(Box).attrs({ @@ -151,7 +156,7 @@ const Transaction = ({ alwaysShowSign /> - + @@ -169,6 +174,7 @@ type Props = { transactions: Array, withAccounts?: boolean, minConfirmations: number, + title?: string, } class TransactionsList extends Component { @@ -179,6 +185,10 @@ class TransactionsList extends Component { } shouldComponentUpdate(nextProps: Props) { + if (this.props.minConfirmations !== nextProps.minConfirmations) { + return true + } + if (this._hashCache === null) { return true } @@ -191,12 +201,12 @@ class TransactionsList extends Component { _hashCache = null render() { - const { transactions, withAccounts, onAccountClick, minConfirmations, t } = this.props + const { transactions, title, withAccounts, onAccountClick, minConfirmations, t } = this.props this._hashCache = this.getHashCache(transactions) return ( - + {t('transactionsList:date')} {withAccounts && ( @@ -222,7 +232,7 @@ class TransactionsList extends Component { ))} - + ) } } diff --git a/src/components/base/Button/index.js b/src/components/base/Button/index.js index dab8cbc6..4b6da3dc 100644 --- a/src/components/base/Button/index.js +++ b/src/components/base/Button/index.js @@ -7,19 +7,26 @@ import noop from 'lodash/noop' import { darken, lighten } from 'styles/helpers' +import fontFamily from 'styles/styled/fontFamily' + import Box from 'components/base/Box' import Icon from 'components/base/Icon' -const Base = styled.button` +const Base = styled.button.attrs({ + ff: 'Museo Sans|Regular', + fontSize: 3, + px: 2, +})` ${space}; ${color}; ${fontSize}; ${fontWeight}; - border-radius: 5px; + ${fontFamily}; + border-radius: 4px; border: ${p => p.primary ? 'none' : `2px solid ${p.disabled ? 'transparent' : p.theme.colors.grey}`}; cursor: ${p => (p.disabled ? 'default' : 'pointer')}; - height: 40px; + height: 30px; outline: none; &:hover { diff --git a/src/components/modals/SettingsAccount.js b/src/components/modals/SettingsAccount.js index 2823ad28..701e61de 100644 --- a/src/components/modals/SettingsAccount.js +++ b/src/components/modals/SettingsAccount.js @@ -91,7 +91,7 @@ class SettingsAccount extends PureComponent { ...account, settings: { ...account.settings, - minConfirmations, + minConfirmations: Number(minConfirmations), }, }) }) diff --git a/src/reducers/accounts.js b/src/reducers/accounts.js index f36b6a20..22da5f68 100644 --- a/src/reducers/accounts.js +++ b/src/reducers/accounts.js @@ -120,6 +120,7 @@ export function serializeAccounts(accounts: Array) { name: account.name || `${key}`, path: account.path, unit: account.unit || getDefaultUnitByCoinType(account.coinType), + settings: account.settings, } return { @@ -144,6 +145,7 @@ export function deserializeAccounts(accounts: Accounts) { path: account.path, transactions: account.transactions.map(({ account, ...t }) => t), unit: account.unit, + settings: account.settings, })) } diff --git a/src/renderer/i18n.js b/src/renderer/i18n.js index a8a47baa..ecbcd1e5 100644 --- a/src/renderer/i18n.js +++ b/src/renderer/i18n.js @@ -8,7 +8,7 @@ import staticPath from 'helpers/staticPath' i18n.use(Backend).init({ ns: [ - 'accountPage', + 'account', 'accountsOrder', 'addAccount', 'common', diff --git a/src/styles/theme.js b/src/styles/theme.js index f8fb69fd..cca93258 100644 --- a/src/styles/theme.js +++ b/src/styles/theme.js @@ -1,7 +1,7 @@ // @flow export const space = [0, 5, 10, 15, 20, 30, 40, 50, 70] -export const fontSizes = [8, 9, 10, 11, 13, 16, 18, 22, 32] +export const fontSizes = [8, 9, 10, 12, 13, 16, 18, 22, 32] export const radii = [0, 4] export const shadows = ['0 4px 8px 0 rgba(0, 0, 0, 0.03)'] diff --git a/static/i18n/en/accountPage.yml b/static/i18n/en/account.yml similarity index 100% rename from static/i18n/en/accountPage.yml rename to static/i18n/en/account.yml diff --git a/static/i18n/fr/accountPage.yml b/static/i18n/fr/account.yml similarity index 100% rename from static/i18n/fr/accountPage.yml rename to static/i18n/fr/account.yml diff --git a/yarn.lock b/yarn.lock index 454486bc..4a8c3407 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2491,6 +2491,10 @@ cli-spinners@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" +cli-spinners@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06" + cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" @@ -3128,7 +3132,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.5.1, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -3573,6 +3577,21 @@ electron-publish@20.2.0: lazy-val "^1.0.3" mime "^2.2.0" +electron-rebuild@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/electron-rebuild/-/electron-rebuild-1.7.3.tgz#24ae06ad9dd61cb7e4d688961f49118c40a110eb" + dependencies: + colors "^1.1.2" + debug "^2.6.3" + detect-libc "^1.0.3" + fs-extra "^3.0.1" + node-abi "^2.0.0" + node-gyp "^3.6.0" + ora "^1.2.0" + rimraf "^2.6.1" + spawn-rx "^2.0.10" + yargs "^7.0.2" + electron-store@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-1.3.0.tgz#ee488a28a61fb982fd35b658fb9cb6331eb201f8" @@ -4508,6 +4527,14 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" +fs-extra@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + fs-extra@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -6100,6 +6127,12 @@ jsonfile@^2.1.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + optionalDependencies: + graceful-fs "^4.1.6" + jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -6342,7 +6375,7 @@ lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" -lodash.assign@^4.0.3, lodash.assign@^4.0.6: +lodash.assign@^4.0.3, lodash.assign@^4.0.6, lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" @@ -6416,7 +6449,7 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" -log-symbols@^2.2.0: +log-symbols@^2.1.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" dependencies: @@ -6721,7 +6754,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@0.5, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -6812,7 +6845,7 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-abi@^2.2.0: +node-abi@^2.0.0, node-abi@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.3.0.tgz#f3d554d6ac72a9ee16f0f4dc9548db7c08de4986" dependencies: @@ -6835,6 +6868,24 @@ node-forge@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" +node-gyp@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + node-hid@^0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-0.7.2.tgz#15025cdea2e9756aca2de7266529996d40e52c56" @@ -6912,6 +6963,12 @@ noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -6975,7 +7032,7 @@ npm-which@^3.0.1: npm-path "^2.0.2" which "^1.2.10" -npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -7153,6 +7210,15 @@ ora@^0.2.3: cli-spinners "^0.1.2" object-assign "^4.0.1" +ora@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-1.4.0.tgz#884458215b3a5d4097592285f93321bb7a79e2e5" + dependencies: + chalk "^2.1.0" + cli-cursor "^2.1.0" + cli-spinners "^1.0.1" + log-symbols "^2.1.0" + original@>=0.0.5: version "1.0.0" resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" @@ -7185,7 +7251,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@^0.1.4: +osenv@0, osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" dependencies: @@ -8569,6 +8635,33 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" +request@2, request@^2.45.0, request@^2.83.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -8596,33 +8689,6 @@ request@2.81.0: tunnel-agent "^0.6.0" uuid "^3.0.0" -request@^2.45.0, request@^2.83.0: - version "2.83.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -8755,7 +8821,7 @@ rx@2.3.24: version "2.3.24" resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7" -rxjs@^5.4.2: +rxjs@^5.1.1, rxjs@^5.4.2: version "5.5.6" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02" dependencies: @@ -8832,6 +8898,10 @@ semver-diff@^2.0.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + send@0.16.1: version "0.16.1" resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" @@ -9145,6 +9215,14 @@ spawn-command@^0.0.2-1: version "0.0.2-1" resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" +spawn-rx@^2.0.10: + version "2.0.12" + resolved "https://registry.yarnpkg.com/spawn-rx/-/spawn-rx-2.0.12.tgz#b6285294499426089beea0c3c1ec32d7fc57a376" + dependencies: + debug "^2.5.1" + lodash.assign "^4.2.0" + rxjs "^5.1.1" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -9558,7 +9636,7 @@ tar-stream@^1.1.2: readable-stream "^2.0.0" xtend "^4.0.0" -tar@^2.2.1: +tar@^2.0.0, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -10299,7 +10377,7 @@ which-pm-runs@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" -which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0: +which@1, which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: @@ -10456,6 +10534,12 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + yargs-parser@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -10545,6 +10629,24 @@ yargs@^4.2.0: y18n "^3.2.1" yargs-parser "^2.4.1" +yargs@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + yargs@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360"