Browse Source

Merge pull request #182 from meriadec/master

Various updates on account page, transactions, translations
master
Loëck Vézien 7 years ago
committed by GitHub
parent
commit
2c121672a1
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      README.md
  2. 1
      package.json
  3. 46
      src/components/AccountPage/AccountHeader.js
  4. 37
      src/components/AccountPage/index.js
  5. 13
      src/components/DashboardPage/index.js
  6. 22
      src/components/TransactionsList/index.js
  7. 13
      src/components/base/Button/index.js
  8. 2
      src/components/modals/SettingsAccount.js
  9. 2
      src/reducers/accounts.js
  10. 2
      src/renderer/i18n.js
  11. 2
      src/styles/theme.js
  12. 0
      static/i18n/en/account.yml
  13. 0
      static/i18n/fr/account.yml
  14. 176
      yarn.lock

3
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/)

1
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",

46
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<Props> {
render() {
const { account } = this.props
const Icon = getIconByCoinType(account.currency.coinType)
return (
<Box horizontal align="center" flow={2}>
{Icon && (
<Box color={account.currency.color}>
<Icon size={24} />
</Box>
)}
<Box>
<CurName>{account.currency.name}</CurName>
<Text ff="Museo Sans|Regular" fontSize={7}>
{account.name}
</Text>
</Box>
</Box>
)
}
}
export default AccountHeader

37
src/components/AccountPage.js → 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<Props> {
}
return (
<Box flow={3}>
<Box flow={7}>
<Box horizontal>
<Box>
<Text fontSize={8}>{account.name}</Text>
</Box>
<AccountHeader account={account} />
<Box horizontal alignItems="center" justifyContent="flex-end" grow flow={2}>
<Button primary onClick={() => openModal(MODAL_SEND, { account })}>
<Box horizontal flow={2} alignItems="center">
@ -71,7 +69,7 @@ class AccountPage extends PureComponent<Props> {
</Box>
</Button>
<Button
style={{ width: 40, padding: 0 }}
style={{ width: 30, padding: 0 }}
onClick={() => openModal(MODAL_SETTINGS_ACCOUNT, { account })}
>
<Box align="center">
@ -80,27 +78,14 @@ class AccountPage extends PureComponent<Props> {
</Button>
</Box>
</Box>
<Box horizontal flow={3}>
<Box grow>
<Card
title={t('account:balance')}
style={{ height: 435 }}
alignItems="center"
justifyContent="center"
>
<Text fontSize={5}>{formatBTC(account.balance)}</Text>
</Card>
</Box>
<Box style={{ width: 300 }}>
<Card title={t('account:receive')} flow={3}>
<ReceiveBox path={account.path} address={account.address} />
</Card>
</Box>
</Box>
<Card p={0} px={4} title={t('account:lastOperations')}>
<TransactionsList transactions={account.transactions} />
<Card style={{ height: 435 }} alignItems="center" justifyContent="center">
<Text fontSize={5}>{formatBTC(account.balance)}</Text>
</Card>
<TransactionsList
title={t('account:lastOperations')}
transactions={account.transactions}
minConfirmations={account.settings.minConfirmations}
/>
</Box>
)
}

13
src/components/DashboardPage/index.js

@ -289,13 +289,12 @@ class DashboardPage extends PureComponent<Props, State> {
))}
</Box>
</Box>
<Card p={0} px={4} title={t('dashboard:recentActivity')}>
<TransactionsList
withAccounts
transactions={allTransactions}
onAccountClick={account => push(`/account/${account.id}`)}
/>
</Card>
<TransactionsList
title={t('dashboard:recentActivity')}
withAccounts
transactions={allTransactions}
onAccountClick={account => push(`/account/${account.id}`)}
/>
</Fragment>
)}
</Box>

22
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
/>
</Cell>
<Cell size={CONFIRMATION_COL_SIZE} px={0} align="center" justify="center">
<Cell size={CONFIRMATION_COL_SIZE} px={0} align="center" justify="flex-start">
<ConfirmationCheck minConfirmations={minConfirmations} confirmations={tx.confirmations} />
</Cell>
</TransactionRaw>
@ -169,6 +174,7 @@ type Props = {
transactions: Array<TransactionType>,
withAccounts?: boolean,
minConfirmations: number,
title?: string,
}
class TransactionsList extends Component<Props> {
@ -179,6 +185,10 @@ class TransactionsList extends Component<Props> {
}
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<Props> {
_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 (
<Box flow={1}>
<Card flow={1} title={title} p={0}>
<Box horizontal pt={4}>
<HeaderCol size={DATE_COL_SIZE}>{t('transactionsList:date')}</HeaderCol>
{withAccounts && (
@ -222,7 +232,7 @@ class TransactionsList extends Component<Props> {
))}
</Box>
</Defer>
</Box>
</Card>
)
}
}

13
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 {

2
src/components/modals/SettingsAccount.js

@ -91,7 +91,7 @@ class SettingsAccount extends PureComponent<Props, State> {
...account,
settings: {
...account.settings,
minConfirmations,
minConfirmations: Number(minConfirmations),
},
})
})

2
src/reducers/accounts.js

@ -120,6 +120,7 @@ export function serializeAccounts(accounts: Array<Object>) {
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,
}))
}

2
src/renderer/i18n.js

@ -8,7 +8,7 @@ import staticPath from 'helpers/staticPath'
i18n.use(Backend).init({
ns: [
'accountPage',
'account',
'accountsOrder',
'addAccount',
'common',

2
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)']

0
static/i18n/en/accountPage.yml → static/i18n/en/account.yml

0
static/i18n/fr/accountPage.yml → static/i18n/fr/account.yml

176
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"

Loading…
Cancel
Save