diff --git a/app/browser/api/ledger.js b/app/browser/api/ledger.js index 1192b545e79..784834a067e 100644 --- a/app/browser/api/ledger.js +++ b/app/browser/api/ledger.js @@ -15,7 +15,6 @@ const qr = require('qr-image') const underscore = require('underscore') const tldjs = require('tldjs') const urlFormat = require('url').format -const queryString = require('querystring') const levelUp = require('level') const random = require('random-lib') const uuid = require('uuid') @@ -91,7 +90,8 @@ const clientOptions = { rulesTestP: process.env.LEDGER_RULES_TESTING, verboseP: process.env.LEDGER_VERBOSE, server: process.env.LEDGER_SERVER_URL, - createWorker: electron.app.createWorker + createWorker: electron.app.createWorker, + version: 'v2' } const fileTypes = { bmp: new Buffer([0x42, 0x4d]), @@ -1319,7 +1319,7 @@ const enable = (state, paymentsEnabled) => { } if (!ledgerPublisher) { - ledgerPublisher = require('ledger-publisher') + ledgerPublisher = require('bat-publisher') } synopsis = new (ledgerPublisher.Synopsis)() const stateSynopsis = ledgerState.getSynopsis(state) @@ -1434,7 +1434,7 @@ const cacheRuleSet = (state, ruleset) => { } const clientprep = () => { - if (!ledgerClient) ledgerClient = require('ledger-client') + if (!ledgerClient) ledgerClient = require('bat-client') _internal.debugP = ledgerClient.prototype.boolion(process.env.LEDGER_PUBLISHER_DEBUG) _internal.verboseP = ledgerClient.prototype.boolion(process.env.LEDGER_PUBLISHER_VERBOSE) } @@ -1513,28 +1513,6 @@ const roundtrip = (params, options, callback) => { if (options.payload) console.log('<<< ' + JSON.stringify(params.payload, null, 2).split('\n').join('\n<<< ')) } -const updateLedgerInfo = (state) => { - const ledgerInfo = ledgerState.getInfoProps(state) - const now = new Date().getTime() - - if (ledgerInfo.get('buyURLExpires') > now) { - state = ledgerState.setInfoProp(state, 'buyMaximumUSD', 6) - } - if (typeof process.env.ADDFUNDS_URL !== 'undefined') { - state = ledgerState.setInfoProp(state, 'buyURLFrame', true) - const buyURL = process.env.ADDFUNDS_URL + '?' + - queryString.stringify({ - currency: ledgerInfo.get('currency'), - amount: getSetting(settings.PAYMENTS_CONTRIBUTION_AMOUNT), - address: ledgerInfo.get('address') - }) - state = ledgerState.setInfoProp(state, 'buyURL', buyURL) - state = ledgerState.setInfoProp(state, 'buyMaximumUSD', false) - } - - return state -} - const observeTransactions = (state, transactions) => { const current = ledgerState.getInfoProp(state, 'transactions') if (current && current.size === transactions.length) { @@ -1558,9 +1536,10 @@ const getStateInfo = (state, parsedData) => { return state } + if (!ledgerClient) ledgerClient = require('bat-client') const newInfo = { paymentId: parsedData.properties.wallet.paymentId, - passphrase: parsedData.properties.wallet.keychains.passphrase, + passphrase: ledgerClient.prototype.getWalletPassphrase(parsedData), created: !!parsedData.properties.wallet, creating: !parsedData.properties.wallet, reconcileFrequency: parsedData.properties.days, @@ -1576,7 +1555,7 @@ const getStateInfo = (state, parsedData) => { let transactions = [] if (!parsedData.transactions) { - return updateLedgerInfo(state) + return state } for (let i = parsedData.transactions.length - 1; i >= 0; i--) { @@ -1599,13 +1578,12 @@ const getStateInfo = (state, parsedData) => { } observeTransactions(state, transactions) - state = ledgerState.setInfoProp(state, 'transactions', Immutable.fromJS(transactions)) - return updateLedgerInfo(state) + return ledgerState.setInfoProp(state, 'transactions', Immutable.fromJS(transactions)) } const generatePaymentData = (state) => { const ledgerInfo = ledgerState.getInfoProps(state) - const paymentURL = `bitcoin:${ledgerInfo.get('address')}?amount=${ledgerInfo.get('btc')}&label=${encodeURI('Brave Software')}` + const paymentURL = `bitcoin:${ledgerInfo.get('address')}?amount=${ledgerInfo.get('bat')}&label=${encodeURI('Brave Software')}` if (ledgerInfo.get('paymentURL') !== paymentURL) { state = ledgerState.setInfoProp(state, 'paymentURL', paymentURL) try { @@ -1679,8 +1657,8 @@ const onWalletProperties = (state, body) => { if (amount && currency) { const bodyCurrency = body.getIn(['rates', 'currency']) if (bodyCurrency) { - const btc = (amount / bodyCurrency).toFixed(8) - state = ledgerState.setInfoProp(state, 'btc', btc) + const bat = (amount / bodyCurrency).toFixed(8) + state = ledgerState.setInfoProp(state, 'bat', bat) } } @@ -1744,7 +1722,7 @@ const getBalance = (state) => { return } - if (!ledgerBalance) ledgerBalance = require('ledger-balance') + if (!ledgerBalance) ledgerBalance = require('bat-balance') ledgerBalance.getBalance(address, underscore.extend({balancesP: true}, client.options), (err, provider, result) => { if (err) { @@ -1769,7 +1747,7 @@ const balanceReceived = (state, unconfirmed) => { if (clientOptions.verboseP) { console.log('\ngetBalance refreshes ledger info: ' + ledgerState.getInfoProp(state, 'unconfirmed')) } - return updateLedgerInfo(state) + return state } if (ledgerState.getInfoProp(state, 'unconfirmed') === '0.0000') { @@ -1896,7 +1874,7 @@ const initialize = (state, paymentsEnabled) => { return state } - if (!ledgerPublisher) ledgerPublisher = require('ledger-publisher') + if (!ledgerPublisher) ledgerPublisher = require('bat-publisher') let ruleset = [] ledgerPublisher.ruleset.forEach(rule => { if (rule.consequent) ruleset.push(rule) diff --git a/app/browser/reducers/ledgerReducer.js b/app/browser/reducers/ledgerReducer.js index 5191a0c1544..63dc63c6f15 100644 --- a/app/browser/reducers/ledgerReducer.js +++ b/app/browser/reducers/ledgerReducer.js @@ -188,6 +188,7 @@ const ledgerReducer = (state, action, immutableAction) => { } case appConstants.APP_NAVIGATOR_HANDLER_REGISTERED: { + // TODO will this be changed when switching to BAT const hasBitcoinHandler = (action.get('protocol') === 'bitcoin') state = ledgerState.setInfoProp(state, 'hasBitcoinHandler', hasBitcoinHandler) break diff --git a/app/common/lib/ledgerUtil.js b/app/common/lib/ledgerUtil.js index 7857321b487..a32716abf4e 100644 --- a/app/common/lib/ledgerUtil.js +++ b/app/common/lib/ledgerUtil.js @@ -62,17 +62,24 @@ const shouldTrackView = (view, responseList) => { return false } -const btcToCurrencyString = (btc, ledgerData) => { - const balance = Number(btc || 0) +const batToCurrencyString = (bat, ledgerData) => { + const balance = Number(bat || 0) const currency = (ledgerData && ledgerData.get('currency')) || 'USD' if (balance === 0) { return `0 ${currency}` } - if (ledgerData && ledgerData.get('btc') && typeof ledgerData.get('amount') === 'number') { - const btcValue = ledgerData.get('btc') / ledgerData.get('amount') - const fiatValue = (balance / btcValue).toFixed(2) + if (ledgerData == null) { + return `${balance} BAT` + } + + const ledgerBat = ledgerData.get('bat') + const amount = ledgerData.get('amount') + + if (ledgerBat && typeof amount === 'number') { + const batValue = ledgerBat / amount + const fiatValue = (balance / batValue).toFixed(2) let roundedValue = Math.floor(fiatValue) const diff = fiatValue - roundedValue @@ -87,7 +94,7 @@ const btcToCurrencyString = (btc, ledgerData) => { return `${roundedValue.toFixed(2)} ${currency}` } - return `${balance} BTC` + return `${balance} BAT` } const formattedTimeFromNow = (timestamp) => { @@ -110,11 +117,11 @@ const walletStatus = (ledgerData) => { const pendingFunds = Number(ledgerData.get('unconfirmed') || 0) if (pendingFunds + Number(ledgerData.get('balance') || 0) < - 0.9 * Number(ledgerData.get('btc') || 0)) { + 0.9 * Number(ledgerData.get('bat') || 0)) { status.id = 'insufficientFundsStatus' } else if (pendingFunds > 0) { status.id = 'pendingFundsStatus' - status.args = {funds: btcToCurrencyString(pendingFunds, ledgerData)} + status.args = {funds: batToCurrencyString(pendingFunds, ledgerData)} } else if (transactions && transactions.size > 0) { status.id = 'defaultWalletStatus' } else { @@ -206,7 +213,7 @@ const stickyP = (state, publisherKey) => { module.exports = { shouldTrackView, - btcToCurrencyString, + batToCurrencyString, formattedTimeFromNow, formattedDateFromTimestamp, walletStatus, diff --git a/app/extensions/brave/locales/en-US/preferences.properties b/app/extensions/brave/locales/en-US/preferences.properties index f6ebfd17794..7e37bebc25f 100644 --- a/app/extensions/brave/locales/en-US/preferences.properties +++ b/app/extensions/brave/locales/en-US/preferences.properties @@ -26,16 +26,7 @@ backupLedger=Backup your wallet balanceRecovered={{balance}} was recovered and transferred to your Brave wallet. beta=beta bitcoin=Bitcoin -bitcoinAdd=Use your existing Bitcoin wallet/account -bitcoinAddDescription=Use any BTC wallet that can transfer Bitcoin to your Brave wallet. bitcoinBalance=Please transfer: -bitcoinBuy=Buy Bitcoin -bitcoinCopyAddress=Copy Bitcoin address to clipboard -bitcoinPaymentURL=Your Brave wallet address -bitcoinQR=Your Brave wallet QR code -bitcoinQRImg.title=Brave wallet QR code -bitcoinVisitAccount=Transfer BTC -bitcoinWalletNotAvailable=Wallet information not available. :( bitwarden=bitwarden® blockAttackSites=Block reported attack sites (not available yet) blockedCountBadge=Display block count badge on shields button @@ -60,8 +51,6 @@ cancel=Cancel checkDefaultOnStartup=Always check on startup clearAll=Clear all clearBrowsingDataNow=Clear Browsing Data Now… -coinbaseMessage=debit/credit funding powered by coinbase -coinbaseNotAvailable=Sorry! Adding funds with a credit/debit card is available only for contributions of $5/month at the moment. comingSoon=Coming soon! compactBraveryPanel=Use compact panel contentSettings=Content Settings @@ -95,7 +84,6 @@ defaultWalletStatus=Thanks for helping support your favorite websites! defaultZoomLevel=Default zoom level disableTitleMode=Always show the URL bar disconnect=Disconnect -displayQRCode=Display QR code dollarsPaid=Amount done=Done doNotManageMyPasswords=Don't manage my passwords @@ -132,9 +120,6 @@ flashTroubleshooting=Flash not working? Try the troubleshooting tips on our fr-FR=French (France) fullscreenContent=Full Screen Content fullscreenPermission=Fullscreen access -fundingDisabled1=Card funding is temporarily unavailable. -fundingDisabled2=We apologize for the inconvenience. -fundingDisabled3=Learn more... general=General generalSettings=General Settings geolocationPermission=Location access @@ -185,8 +170,6 @@ minimumVisitsHigh=10 visits minimumVisitsLow=1 visit minimumVisitsMedium=5 visits minimumVisitsSetting=Minimum visits for publisher relevancy -moneyAdd=Use your debit/credit card -moneyAddSubTitle=No Bitcoin needed! monthlyBudget=monthly budget ms-MY=Malay (Malaysia) multipleHomePages.title=Multiple home pages @@ -213,7 +196,6 @@ ok=Ok on=on onePassword=1Password® (requires application) openExternalPermission=Open external applications -outsideUSAPayment=Buy Bitcoin at our recommended source pageNofMText=Page {{n}} of {{m}} paintTabs=Show tabs in page theme color passwordManager=Password Manager @@ -302,7 +284,6 @@ site=Site sitePermissions=Saved Site Permissions sitePermissionsExceptions=Saved Site Exceptions sl=Slovenian -smartphoneTitle=Use your smartphone app to transfer Bitcoin startsWith=Brave starts with startsWithOptionHomePage=Home page startsWithOptionLastTime=My windows / tabs from last time @@ -368,7 +349,6 @@ timeSpent=Time Spent toolbarUserInterfaceScale=Toolbar and UI elements scale totalAmount=Total Amount tr-TR=Turkish (Turkey) -transferTime=Transfer may take up to 40 minutes uk=Ukrainian update=Update updateToPreviewReleases=Update to preview releases * diff --git a/app/locale.js b/app/locale.js index 18c658f6c7e..ee4c1fb5e2a 100644 --- a/app/locale.js +++ b/app/locale.js @@ -213,7 +213,6 @@ var rendererIdentifiers = function () { 'turnOffNotifications', 'copyToClipboard', 'smartphoneTitle', - 'displayQRCode', 'updateLater', 'updateHello', // notifications diff --git a/app/renderer/components/preferences/payment/addFounds.js b/app/renderer/components/preferences/payment/addFounds.js new file mode 100644 index 00000000000..6ed099431bd --- /dev/null +++ b/app/renderer/components/preferences/payment/addFounds.js @@ -0,0 +1,18 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +const React = require('react') + +// Components +const ImmutableComponent = require('../../immutableComponent') + +class AddFounds extends ImmutableComponent { + render () { + return + Add founds + + } +} + +module.exports = AddFounds diff --git a/app/renderer/components/preferences/payment/addFoundsFooter.js b/app/renderer/components/preferences/payment/addFoundsFooter.js new file mode 100644 index 00000000000..0a1ae9dd625 --- /dev/null +++ b/app/renderer/components/preferences/payment/addFoundsFooter.js @@ -0,0 +1,18 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +const React = require('react') + +// Components +const ImmutableComponent = require('../../immutableComponent') + +class AddFoundsFooter extends ImmutableComponent { + render () { + return + Add founds footer + + } +} + +module.exports = AddFoundsFooter diff --git a/app/renderer/components/preferences/payment/bitcoinDashboard.js b/app/renderer/components/preferences/payment/bitcoinDashboard.js deleted file mode 100644 index 695f356c5cb..00000000000 --- a/app/renderer/components/preferences/payment/bitcoinDashboard.js +++ /dev/null @@ -1,686 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -const React = require('react') -const {StyleSheet, css} = require('aphrodite/no-important') - -// components -const BrowserButton = require('../../common/browserButton') -const cx = require('../../../../../js/lib/classSet') -const ModalOverlay = require('../../common/modalOverlay') -const ImmutableComponent = require('../../immutableComponent') - -// styles -const globalStyles = require('../../styles/global') -const commonStyles = require('../../styles/commonStyles') - -const CoinBase = require('../../../../extensions/brave/img/coinbase_logo.png') -const Andorid = require('../../../../extensions/brave/img/android_download.svg') -const IOS = require('../../../../extensions/brave/img/ios_download.svg') - -// other -const coinbaseCountries = require('../../../../../js/constants/coinbaseCountries') -const config = require('../../../../../js/constants/config') -const getSetting = require('../../../../../js/settings').getSetting -const settings = require('../../../../../js/constants/settings') -const aboutActions = require('../../../../../js/about/aboutActions') - -class BitcoinDashboard extends ImmutableComponent { - constructor () { - super() - this.buyCompleted = false - this.openBuyURLTab = this.openBuyURLTab.bind(this) - } - - get currency () { - return this.props.ledgerData.get('currency') || 'USD' - } - - get amount () { - return getSetting(settings.PAYMENTS_CONTRIBUTION_AMOUNT, this.props.settings) || 0 - } - - get canUseCoinbase () { - if (!this.props.ledgerData.get('buyMaximumUSD')) return true - - return this.currency === 'USD' && this.amount < this.props.ledgerData.get('buyMaximumUSD') - } - - get userInAmerica () { - const countryCode = this.props.ledgerData.get('countryCode') - return !(countryCode && countryCode !== 'US') - } - - openBuyURLTab () { - // close parent dialog - this.props.hideParentOverlay() - } - - faCreditCard () { - return - } - faBitcoin () { - return - - - - } - faSmartphone () { - return - } - - bitcoinPurchaseButton (options) { - const disabled = options && options.disabled - const buttonAttrs = { - l10nId: 'add', - testId: 'bitcoinPurchaseButton', - primaryColor: true, - panelItem: true, - disabled: disabled - } - const hrefAttrs = { - href: this.props.ledgerData.get('buyURL'), - target: '_blank', - rel: 'noopener' - } - - if (disabled) { - buttonAttrs.disabled = 'disabled' - hrefAttrs.disabled = 'disabled' - } else { - hrefAttrs.onClick = this.openBuyURLTab - } - - if (!this.props.ledgerData.get('buyURLFrame')) { - if (!disabled) { - buttonAttrs.onClick = this.props.showOverlay.bind(this) - } - return - } - - return - - - } - - coinbaseAvailability () { - const disabled = true - if (this.canUseCoinbase) { - return - {this.bitcoinPurchaseButton({disabled})} - { - disabled - ? - - - - - - - : - } - - } else { - return - - - } - } - - coinbasePanel () { - return - - - - {this.faCreditCard()} - - - - - - - - {this.coinbaseAvailability()} - - } - exchangePanel () { - const url = this.props.ledgerData.getIn(['exchangeInfo', 'exchangeURL']) - const name = this.props.ledgerData.getIn(['exchangeInfo', 'exchangeName']) - // Call worldWidePanel if we don't have the URL or Name - if (!url || !name) { - return this.worldWidePanel() - } else { - return - - - - {this.faCreditCard()} - - - - - - - - - - - - - } - } - worldWidePanel () { - return - - - - {this.faCreditCard()} - - - - - - - - - - - - - } - - bitcoinPanel () { - const ledgerData = this.props.ledgerData - - return - - - - {this.faBitcoin()} - - - - - - - - { - ledgerData.get('address') - ? - { - ledgerData.get('hasBitcoinHandler') && ledgerData.get('paymentURL') - ? - - - - - : null - } - - {ledgerData.get('address')} - - - : - - - } - - } - - smartphonePanel () { - return - - - - {this.faSmartphone()} - - - - - - - - - - - } - - qrcodeOverlayContent () { - return - - - - } - qrcodeOverlayFooter () { - if (coinbaseCountries.indexOf(this.props.ledgerData.get('countryCode')) > -1) { - return - - - - - } - return null - } - - bitcoinOverlayContent () { - return - } - - copyToClipboard (text) { - aboutActions.setClipboard(text) - } - - onMessage (e) { - if (!e.data || e.origin !== config.coinbaseOrigin) { - return - } - if (e.data.event === 'modal_closed') { - if (this.buyCompleted) { - this.props.hideParentOverlay() - this.buyCompleted = false - } else { - this.props.hideOverlay() - } - } else if (e.data.event === 'buy_completed') { - this.buyCompleted = true - } - } - - render () { - window.addEventListener('message', this.onMessage.bind(this), false) - const ledgerData = this.props.ledgerData - - return - { - this.props.bitcoinOverlayVisible - ? - : null - } - { - this.props.qrcodeOverlayVisible - ? - : null - } - { - (this.userInAmerica || ledgerData.get('buyURLFrame')) - ? this.coinbasePanel() - : this.exchangePanel() - } - {this.bitcoinPanel()} - {this.smartphonePanel()} - - } -} - -class BitcoinDashboardFooter extends ImmutableComponent { - get coinbaseCountries () { - return coinbaseCountries.indexOf(this.props.ledgerData.get('countryCode')) > -1 - } - - get coinbaseMessageWrapper () { - return - - - - } - - render () { - return - { - this.coinbaseCountries - ? this.coinbaseMessageWrapper - : null - } - - - } -} - -const qrcodeLogoWidth = '130.5px' -const qrcodeLogoHeight = '42.75px' -const panelPadding = '25px' -const panelPaddingBody = `calc(${panelPadding} - ${globalStyles.spacing.dialogInsideMargin})` -const iconWrapperWidth = '55px' - -const styles = StyleSheet.create({ - faBitcoin: { - color: 'white', - transform: 'rotate(12deg)' - }, - faCircle: { - color: globalStyles.color.bitcoinOrange - }, - faCreditCard: { - fontSize: '30px' - }, - faMobile: { - fontSize: '50px' - }, - - coinbaseLogo: { - width: '40px', - height: '40px', - display: 'inline-block', - marginTop: '1px', - marginRight: '10px', - background: `url(${CoinBase}) 0 0 / contain no-repeat` - }, - - // TODO: Refactor button to remove !important - panelButton: { - minWidth: '180px !important' - }, - - panel: { - display: 'flex' - }, - panel__divider: { - width: '50%', - boxSizing: 'border-box', - display: 'flex', - flexFlow: 'column' - }, - panel__divider_left: { - alignItems: 'flex-start' - }, - panel__divider_right: { - alignItems: 'flex-end' - }, - - panel__divider_right__bitcoinPanel__walletLabelText: { - fontSize: '1em', - color: globalStyles.color.braveOrange, - marginBottom: '5px' - }, - panel__divider_right__bitcoinPanel__walletAddressText: { - fontSize: '13px', - color: 'black', - marginBottom: globalStyles.spacing.dialogInsideMargin, - cursor: 'initial', - userSelect: 'initial' - }, - panel__divider_right__bitcoinPanel__paymentURL: { - marginBottom: globalStyles.spacing.dialogInsideMargin - }, - - panel__divider_left__titleWrapper: { - display: 'flex', - alignItems: 'flex-start' - }, - panel__divider_left__titleWrapper_noSubTitle: { - alignItems: 'center' - }, - panel__divider_left__titleWrapper__iconWrapper: { - display: 'flex', - justifyContent: 'center', - width: iconWrapperWidth - }, - panel__divider_left__listTitleWrapper: { - maxWidth: `calc(100% - ${iconWrapperWidth})` - }, - panel__divider_left__listTitleWrapper__title: { - color: '#444', - fontWeight: 'bold', - fontSize: '15px' - }, - panel__divider_left__listTitleWrapper__subTitle: { - fontWeight: 'normal', - fontSize: '14px', - fontStyle: 'italic', - lineHeight: '1.3em', - marginTop: globalStyles.spacing.dialogInsideMargin - }, - panel__divider_right__title: { - color: '#444', - fontWeight: 'bold', - fontSize: '15px' - }, - panel__divider_right__subTitle: { - fontWeight: 'normal', - fontSize: '14px', - fontStyle: 'italic', - lineHeight: '1.3em', - marginTop: globalStyles.spacing.dialogInsideMargin - }, - panel__divider_right__disabledSubTitle: { - textAlign: 'right', - fontSize: '12px' - }, - - panel__coinbase: { - background: 'initial', - padding: `${panelPaddingBody} 0 ${panelPadding}`, - borderBottom: `3px solid ${globalStyles.color.modalLightGray}` - }, - panel__bitcoinPanel: { - padding: `${panelPadding} 0`, - borderBottom: `3px solid ${globalStyles.color.modalLightGray}` - }, - panel__smartphonePanel: { - padding: `${panelPadding} 0 ${panelPaddingBody}`, - alignItems: 'center' - }, - - modalOverlay__qrcodeOverlay: { - display: 'flex', - flexFlow: 'column', - alignItems: 'center', - justifyContent: 'center', - border: 0, - width: '350px', - height: '350px', - margin: '100px auto 0 auto', - background: '#fff' - }, - modalOverlay__qrcodeOverlay__content: { - textAlign: 'center' - }, - modalOverlay__qrcodeOverlay__content__bitcoinQR: { - color: globalStyles.color.braveOrange - }, - modalOverlay__qrcodeOverlay__footerWrapper: { - width: '100%' - }, - modalOverlay__qrcodeOverlay__footerWrapper__footer: { - display: 'flex', - justifyContent: 'center', - background: globalStyles.color.gray, - padding: '15px 0', - width: '100%' - }, - modalOverlay__qrcodeOverlay__footerWrapper__footer__qrcodeLogo: { - width: qrcodeLogoWidth, - height: qrcodeLogoHeight, - display: 'inline-block' - }, - modalOverlay__qrcodeOverlay__footerWrapper__footer__appstoreLogo: { - background: `url(${IOS})`, - backgroundSize: `${qrcodeLogoWidth} ${qrcodeLogoHeight}`, - marginRight: '5px' - }, - modalOverlay__qrcodeOverlay__footerWrapper__footer__playstoreLogo: { - background: `url(${Andorid})`, - backgroundSize: `${qrcodeLogoWidth} ${qrcodeLogoHeight}` - }, - - modalOverlay__coinbaseOverlay: { - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - height: '100%', - width: '100%', - padding: 0, - margin: 0, - border: 0, - borderRadius: 0, - background: 'transparent', - boxShadow: 'none' - }, - modalOverlay__coinbaseOverlay__header: { - padding: 0 - }, - modalOverlay__coinbaseOverlay__bodyWrapper: { - height: '100%', - width: '100%' - }, - modalOverlay__coinbaseOverlay__bodyWrapper__body: { - padding: 0, - height: '100%', - width: '100%', - background: 'transparent' - }, - modalOverlay__coinbaseOverlay__bodyWrapper__body__iframe: { - display: 'block', - width: '100%', - height: '100%', - border: 'none', - boxSizing: 'border-box', - margin: 0, - padding: 0, - overflow: 'hidden' - }, - modalOverlay__coinbaseOverlay__footer: { - padding: 0 - }, - - dashboardFooter: { - fontSize: '13px', - fontStyle: 'italic' - }, - dashboardFooter_coinbaseFooter: { - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - width: '100%' - }, - dashboardFooter_coinbaseFooter__coinbaseMessageWrapper: { - display: 'flex', - alignItems: 'center' - }, - dashboardFooter_coinbaseFooter__coinbaseMessageWrapper__message: { - display: 'inline-block', - maxWidth: '450px' - }, - dashboardFooter_coinbaseFooter__doneButton: { - // TODO (Cezar): Remove !important once button components are refactored - marginRight: '30px !important' // 20px + 30px -> align the done button with other panelButtons - } -}) - -module.exports = { - BitcoinDashboard, - BitcoinDashboardFooter -} diff --git a/app/renderer/components/preferences/payment/enabledContent.js b/app/renderer/components/preferences/payment/enabledContent.js index 0b0c276b5aa..2f1205b3a3c 100644 --- a/app/renderer/components/preferences/payment/enabledContent.js +++ b/app/renderer/components/preferences/payment/enabledContent.js @@ -7,7 +7,7 @@ const {StyleSheet, css} = require('aphrodite/no-important') const moment = require('moment') // util -const {btcToCurrencyString, formattedDateFromTimestamp, walletStatus} = require('../../../../common/lib/ledgerUtil') +const {batToCurrencyString, formattedDateFromTimestamp, walletStatus} = require('../../../../common/lib/ledgerUtil') const {l10nErrorText} = require('../../../../common/lib/httpUtil') const {changeSetting} = require('../../../lib/settingsUtil') @@ -84,7 +84,7 @@ class EnabledContent extends ImmutableComponent { } return - + -1) { - return 'addFunds' - } else { - return 'addFundsAlternate' - } - } - get overlayContent () { - return + return } render () { @@ -103,12 +87,10 @@ class PaymentsTab extends ImmutableComponent { { this.enabled && this.props.addFundsOverlayVisible ? + } onHide={this.props.hideOverlay.bind(this, 'addFunds')} /> diff --git a/docs/state.md b/docs/state.md index d17b1a030ed..88f36ef7671 100644 --- a/docs/state.md +++ b/docs/state.md @@ -206,7 +206,7 @@ AppStore reconcileFrequency: number, // duration between each reconciliation in days reconcileStamp: number, // timestamp for the next reconcilation recoverySucceeded: boolean, // the status of an attempted recovery - satoshis: number, // confirmed balance as an integer number of satoshis + probi: number, // confirmed balance as an integer number of probi transactions: [{ ballots: { [publisher]: number // e.g., "wikipedia.org": 3 @@ -220,7 +220,7 @@ AppStore rates: { [currency]: number //e.g., { "USD": 575.45 } }, // exchange rate - satoshis: number, // actual number of satoshis transferred + probi: number, // actual number of probi transferred }, count: number, // total number of ballots allowed to be cast submissionStamp: number, // timestamp for this contribution diff --git a/js/constants/coinbaseCountries.js b/js/constants/coinbaseCountries.js deleted file mode 100644 index 233164a39db..00000000000 --- a/js/constants/coinbaseCountries.js +++ /dev/null @@ -1,43 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -const coinbaseCountries = [ -/* although coibnase operates in all these countries, the debit/credit payment service is, at present, only in the US - 'AT', - 'AU', - 'BE', - 'BG', - 'CA', - 'CH', - 'CY', - 'CZ', - 'DK', - 'ES', - 'FI', - 'FR', - 'GB', - 'GR', - 'HR', - 'HU', - 'IE', - 'IT', - 'LI', - 'LV', - 'MC', - 'MT', - 'NL', - 'NO', - 'PL', - 'PT', - 'RO', - 'SE', - 'SG', - 'SI', - 'SK', - 'SM', - */ - 'US' -] - -module.exports = coinbaseCountries diff --git a/js/constants/config.js b/js/constants/config.js index 55034eaaf74..11cfac53e5e 100644 --- a/js/constants/config.js +++ b/js/constants/config.js @@ -86,7 +86,6 @@ module.exports = { pinterestExtensionPublicKey: 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDB95q2hyt49ZDuVnYI91XaZhqQkbXu0X3fzoNxPxhFbfqGKwtts90LJ7lD5DCIfnBg8WGFhp3eW4GxOglAKrnksmJoyAD5PnSAufx8fD3trZvo/ZAqFx1x5Xm3Rm34EgvVXdralgHSYiqcEU/FX3kYnLLhr2TS4lcrsn1KZd/lcQIDAQAB', metamaskExtensionId: 'nkbihfbeogaeaoehlefnkodbefgpgknn', metamaskPublicKey: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlcgI4VVL4JUvo6hlSgeCZp9mGltZrzFvc2Asqzb1dDGO9baoYOe+QRoh27/YyVXugxni480Q/R147INhBOyQZVMhZOD5pFMVutia9MHMaZhgRXzrK3BHtNSkKLL1c5mhutQNwiLqLtFkMSGvka91LoMEC8WTI0wi4tACnJ5FyFZQYzvtqy5sXo3VS3gzfOBluLKi7BxYcaUJjNrhOIxl1xL2qgK5lDrDOLKcbaurDiwqofVtAFOL5sM3uJ6D8nOO9tG+T7hoobRFN+nxk43PHgCv4poicOv+NMZQEk3da1m/xfuzXV88NcE/YRbRLwAS82m3gsJZKc6mLqm4wZHzBwIDAQAB', - coinbaseOrigin: 'https://buy.coinbase.com', newtab: { fallbackImage: { name: 'Bay Bridge', diff --git a/js/state/contentSettings.js b/js/state/contentSettings.js index 0beffd8c56a..f8e8e3a5e16 100644 --- a/js/state/contentSettings.js +++ b/js/state/contentSettings.js @@ -6,7 +6,6 @@ const appDispatcher = require('../dispatcher/appDispatcher') const AppStore = require('../stores/appStore') const appConstants = require('../constants/appConstants') const appConfig = require('../constants/appConfig') -const config = require('../constants/config') const {registerContentSettings} = require('../../app/browser/contentSettings/hostContentSettings') const {makeImmutable} = require('../../app/common/state/immutableUtil') const Immutable = require('immutable') @@ -213,12 +212,6 @@ const getDefault3rdPartyStorageSettings = (braveryDefaults, appSettings, appConf setting: 'allow', primaryPattern: '*', secondaryPattern: '[firstParty]' - }, - { - // Needed for coinbase widget localStorage to work in about:preferences - setting: 'allow', - primaryPattern: `chrome-extension://${config.braveExtensionId}`, - secondaryPattern: config.coinbaseOrigin } ] contentSettings.push(...localStorageExceptions.map((exceptionPair) => ({ @@ -233,12 +226,6 @@ const getDefault3rdPartyStorageSettings = (braveryDefaults, appSettings, appConf setting: 'block', primaryPattern: '*', secondaryPattern: '*' - }, - { - // Needed for coinbase widget localStorage to work in about:preferences - setting: 'allow', - primaryPattern: `chrome-extension://${config.braveExtensionId}`, - secondaryPattern: config.coinbaseOrigin } ] } else { diff --git a/package-lock.json b/package-lock.json index 9fe69f4eb29..4f9faf49378 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,11 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@types/node": { - "version": "6.0.88", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz", - "integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k6cJb9cp6nw268XeSNIGGr+4+/8V5K6BGzLQ==" - }, "7zip-bin": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-2.2.4.tgz", @@ -25,6 +20,11 @@ "dev": true, "optional": true }, + "@types/node": { + "version": "6.0.88", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz", + "integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k6cJb9cp6nw268XeSNIGGr+4+/8V5K6BGzLQ==" + }, "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", @@ -94,7 +94,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "dev": true, "requires": { "acorn": "3.2.0" } @@ -145,8 +144,7 @@ "ajv-keywords": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", - "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", - "dev": true + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=" }, "align-text": { "version": "0.1.4", @@ -209,8 +207,7 @@ "ansi-escapes": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", - "dev": true + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" }, "ansi-html": { "version": "0.0.7", @@ -475,7 +472,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, "requires": { "array-uniq": "1.0.3" } @@ -483,8 +479,7 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.2.1", @@ -505,8 +500,7 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asap": { "version": "2.0.6", @@ -1424,6 +1418,228 @@ "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=" }, + "bat-balance": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/bat-balance/-/bat-balance-0.9.3.tgz", + "integrity": "sha1-oO74F1wt0j1XzpLehH/WS3b5S2U=", + "requires": { + "data-expression": "1.0.0", + "joi": "11.1.1", + "underscore": "1.8.3" + }, + "dependencies": { + "joi": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-11.1.1.tgz", + "integrity": "sha512-hffQzH42mYLvUCqhUPZZGegiiIjVvHcOV8mrxXPci8qZFOp2sHK4778GPyI3ZlvqTOHs8qZN6DovDnBR1slO4g==", + "requires": { + "hoek": "4.2.0", + "isemail": "3.0.0", + "topo": "2.0.2" + } + } + } + }, + "bat-client": { + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/bat-client/-/bat-client-0.9.12.tgz", + "integrity": "sha1-hUICQ0JhdwoENKKgPFV8snjfdAM=", + "requires": { + "bat-publisher": "0.9.4", + "bitgo": "4.6.0", + "http-request-signature": "github:uphold/http-request-signature#fcbc1b4ff5c8c9e38553c86051d9ce61e6b00aea", + "joi": "11.1.1", + "json-stable-stringify": "1.0.1", + "niceware": "1.0.4", + "node-anonize2-relic-emscripten": "0.3.3", + "random-lib": "2.1.0", + "tweetnacl": "1.0.0", + "underscore": "1.8.3", + "uuid": "3.1.0" + }, + "dependencies": { + "big.js": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=" + }, + "bitgo": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/bitgo/-/bitgo-4.6.0.tgz", + "integrity": "sha1-o9yXie9gsciecf8n5/oyeAQo2ck=", + "requires": { + "argparse": "0.1.16", + "assert": "0.4.9", + "bcashjs-lib": "git+https://github.com/BitGo/bcashjs-lib.git#a49702b12f06729ab80756d1c6dba880f0c64295", + "big.js": "3.1.3", + "bigi": "1.4.0", + "bignumber.js": "4.0.4", + "bitcoinjs-lib": "2.1.4", + "bluebird": "3.5.0", + "body-parser": "1.17.2", + "bs58": "2.0.1", + "bs58check": "1.0.4", + "create-hmac": "1.1.6", + "ecurve": "1.0.5", + "eol": "0.5.0", + "ethereumjs-abi": "0.6.4", + "ethereumjs-util": "4.4.1", + "express": "4.15.5", + "http-proxy": "1.11.1", + "lodash": "4.13.1", + "minimist": "0.2.0", + "moment": "2.18.1", + "morgan": "1.5.3", + "prova-lib": "0.2.8", + "ripple-lib": "0.17.7", + "sanitize-html": "1.13.0", + "secp256k1": "3.2.5", + "superagent": "3.5.2", + "superagent-proxy": "1.0.2", + "underscore.string": "2.4.0" + } + }, + "form-data": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", + "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.17" + } + }, + "formidable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", + "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "joi": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-11.1.1.tgz", + "integrity": "sha512-hffQzH42mYLvUCqhUPZZGegiiIjVvHcOV8mrxXPci8qZFOp2sHK4778GPyI3ZlvqTOHs8qZN6DovDnBR1slO4g==", + "requires": { + "hoek": "4.2.0", + "isemail": "3.0.0", + "topo": "2.0.2" + } + }, + "lodash": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz", + "integrity": "sha1-g+SxCRP0hJbU0W/sSlYK8u50S2g=" + }, + "minimist": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz", + "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "superagent": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.5.2.tgz", + "integrity": "sha1-M2GjlxVnUEw1EGOr6q4PqiPb8/g=", + "requires": { + "component-emitter": "1.2.1", + "cookiejar": "2.0.6", + "debug": "2.6.9", + "extend": "3.0.0", + "form-data": "2.3.1", + "formidable": "1.1.1", + "methods": "1.1.2", + "mime": "1.3.4", + "qs": "6.5.1", + "readable-stream": "2.3.3" + } + }, + "tweetnacl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.0.tgz", + "integrity": "sha1-cT2LgY2kIGh0C/aDhtBHnmb8ins=" + } + } + }, + "bat-publisher": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/bat-publisher/-/bat-publisher-0.9.4.tgz", + "integrity": "sha1-LKwJ2ewmKbGxAhz72SWo+NbpCbs=", + "requires": { + "async": "2.5.0", + "data-expression": "1.0.0", + "glob": "7.1.2", + "joi": "11.1.1", + "jsdom": "11.2.0", + "random-lib": "2.1.0", + "tldjs": "2.2.0", + "underscore": "1.8.3", + "underscore.string": "3.3.4" + }, + "dependencies": { + "joi": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-11.1.1.tgz", + "integrity": "sha512-hffQzH42mYLvUCqhUPZZGegiiIjVvHcOV8mrxXPci8qZFOp2sHK4778GPyI3ZlvqTOHs8qZN6DovDnBR1slO4g==", + "requires": { + "hoek": "4.2.0", + "isemail": "3.0.0", + "topo": "2.0.2" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "tldjs": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tldjs/-/tldjs-2.2.0.tgz", + "integrity": "sha512-5b5t+HKprfccAFRAsH/fzDR4O+UgO6vStvbaJo10jvMcUavlwxR3Jrn2WmXfjG3k22T7b4pqqfput38nr1RpJQ==", + "requires": { + "punycode": "1.4.1" + } + }, + "underscore.string": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "requires": { + "sprintf-js": "1.1.1", + "util-deprecate": "1.0.2" + } + } + } + }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -1606,128 +1822,6 @@ "resolved": "https://registry.npmjs.org/bitfield/-/bitfield-1.1.2.tgz", "integrity": "sha1-pUd/AOM/Knbtwgmq8mvwk5SjeM8=" }, - "bitgo": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bitgo/-/bitgo-3.5.1.tgz", - "integrity": "sha1-a3MvbJiNzi84TZx1ORyEIu7LfEg=", - "requires": { - "argparse": "0.1.16", - "assert": "0.4.9", - "bcashjs-lib": "git+https://github.com/BitGo/bcashjs-lib.git#a49702b12f06729ab80756d1c6dba880f0c64295", - "big.js": "3.1.3", - "bigi": "1.4.0", - "bignumber.js": "4.0.4", - "bitcoinjs-lib": "2.1.4", - "body-parser": "1.17.2", - "bs58": "2.0.1", - "bs58check": "1.0.4", - "create-hmac": "1.1.6", - "ecurve": "1.0.5", - "eol": "0.5.0", - "ethereumjs-abi": "0.6.4", - "ethereumjs-util": "4.4.1", - "express": "4.15.5", - "http-proxy": "1.11.1", - "lodash": "4.13.1", - "minimist": "0.2.0", - "moment": "2.18.1", - "morgan": "1.5.3", - "prova-lib": "0.2.8", - "q": "1.1.2", - "ripple-lib": "0.17.7", - "sanitize-html": "1.13.0", - "secp256k1": "3.2.5", - "superagent": "3.5.2", - "superagent-proxy": "1.0.2", - "underscore.string": "2.4.0" - }, - "dependencies": { - "big.js": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=" - }, - "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } - }, - "formidable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", - "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "lodash": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz", - "integrity": "sha1-g+SxCRP0hJbU0W/sSlYK8u50S2g=" - }, - "minimist": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz", - "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=" - }, - "q": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz", - "integrity": "sha1-Y1fikSBnAdmfGXq4TlforRlvKok=" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } - }, - "superagent": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.5.2.tgz", - "integrity": "sha1-M2GjlxVnUEw1EGOr6q4PqiPb8/g=", - "requires": { - "component-emitter": "1.2.1", - "cookiejar": "2.0.6", - "debug": "2.6.9", - "extend": "3.0.0", - "form-data": "2.3.1", - "formidable": "1.1.1", - "methods": "1.1.2", - "mime": "1.3.4", - "qs": "6.5.1", - "readable-stream": "2.3.3" - } - } - } - }, "bittorrent-dht": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-7.6.0.tgz", @@ -1967,8 +2061,7 @@ "bluebird": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", - "dev": true + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=" }, "bluebird-lst": { "version": "1.0.3", @@ -2431,6 +2524,17 @@ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, + "bunyan": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz", + "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=", + "requires": { + "dtrace-provider": "0.8.5", + "moment": "2.18.1", + "mv": "2.1.1", + "safe-json-stringify": "1.0.4" + } + }, "bytes": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", @@ -2473,7 +2577,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "dev": true, "requires": { "callsites": "0.2.0" } @@ -2481,8 +2584,7 @@ "callsites": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", - "dev": true + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" }, "camelcase": { "version": "3.0.0", @@ -2694,8 +2796,7 @@ "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", - "dev": true + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" }, "cli-boxes": { "version": "1.0.0", @@ -2707,7 +2808,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, "requires": { "restore-cursor": "2.0.0" } @@ -2742,8 +2842,7 @@ "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, "clipboard-copy": { "version": "1.2.0", @@ -2995,7 +3094,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", - "dev": true, "requires": { "inherits": "2.0.3", "readable-stream": "2.3.3", @@ -3005,14 +3103,12 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -3027,7 +3123,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -3133,23 +3228,6 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "country-data": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/country-data/-/country-data-0.0.29.tgz", - "integrity": "sha1-phfqG/bIh/81Ew/UMjAhuOgCxQo=", - "requires": { - "currency-symbol-map": "2.2.0", - "underscore": "1.8.3" - } - }, - "country-reverse-geocoding": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/country-reverse-geocoding/-/country-reverse-geocoding-0.2.1.tgz", - "integrity": "sha1-vf5Uh5iem9IOoOnt6LSzrgKivDI=", - "requires": { - "fwk": "1.0.11" - } - }, "cppunitlite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cppunitlite/-/cppunitlite-1.0.0.tgz", @@ -3330,7 +3408,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", @@ -3341,7 +3418,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", - "dev": true, "requires": { "pseudomap": "1.0.2", "yallist": "2.1.2" @@ -3799,11 +3875,6 @@ "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=" }, - "currency-symbol-map": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/currency-symbol-map/-/currency-symbol-map-2.2.0.tgz", - "integrity": "sha1-KzwYcv8aws5ZXYJz5Y4f/wJyrqI=" - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -3904,6 +3975,15 @@ "integrity": "sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=", "dev": true }, + "debugnyan": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/debugnyan/-/debugnyan-2.0.1.tgz", + "integrity": "sha1-06WmasMRt26IFAXHjO/lfHiFml8=", + "requires": { + "bunyan": "1.8.12", + "debug": "2.6.9" + } + }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", @@ -4454,7 +4534,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, "requires": { "globby": "5.0.0", "is-path-cwd": "1.0.0", @@ -4679,6 +4758,15 @@ "create-hmac": "1.1.6" } }, + "dtrace-provider": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.5.tgz", + "integrity": "sha1-mOu6Ihr6xG4cOf02hY2Pk2dSS5I=", + "optional": true, + "requires": { + "nan": "2.7.0" + } + }, "duplexer2": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", @@ -5045,10 +5133,65 @@ "sumchecker": "2.0.2" } }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "electron-download": { + "version": "github:brave/electron-download#409b65caff14edeef1daa36a7445ba6334658d7c", + "dev": true, + "requires": { + "debug": "2.6.9", + "home-path": "1.0.5", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "mv": "2.1.1", + "nugget": "1.6.2", + "path-exists": "1.0.0", + "rc": "1.2.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "nugget": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/nugget/-/nugget-1.6.2.tgz", + "integrity": "sha1-iMpuA7pXBqmRc/XaCQJZPWvK4Qc=", + "dev": true, + "requires": { + "debug": "2.6.9", + "minimist": "1.2.0", + "pretty-bytes": "1.0.4", + "progress-stream": "1.2.0", + "request": "2.82.0", + "single-line-log": "0.4.1", + "throttleit": "0.0.2" + } + }, + "path-exists": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", + "dev": true + }, + "single-line-log": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-0.4.1.tgz", + "integrity": "sha1-h6VWSfdJ14PsDc2AToFA2Yc8fO4=", + "dev": true + }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", "dev": true } } @@ -5238,20 +5381,6 @@ "integrity": "sha1-HUixB9ghJqLz4hHC6iX4A7pVGyE=", "dev": true }, - "electron-download": { - "version": "github:brave/electron-download#409b65caff14edeef1daa36a7445ba6334658d7c", - "dev": true, - "requires": { - "debug": "2.6.9", - "home-path": "1.0.5", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "nugget": "1.6.2", - "path-exists": "1.0.0", - "rc": "1.2.1" - } - }, "electron-osx-sign": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.3.2.tgz", @@ -5301,27 +5430,6 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, - "nugget": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-1.6.2.tgz", - "integrity": "sha1-iMpuA7pXBqmRc/XaCQJZPWvK4Qc=", - "dev": true, - "requires": { - "debug": "2.6.9", - "minimist": "1.2.0", - "pretty-bytes": "1.0.4", - "progress-stream": "1.2.0", - "request": "2.82.0", - "single-line-log": "0.4.1", - "throttleit": "0.0.2" - } - }, - "path-exists": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", - "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", - "dev": true - }, "plist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/plist/-/plist-1.2.0.tgz", @@ -5334,18 +5442,6 @@ "xmldom": "0.1.27" } }, - "single-line-log": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-0.4.1.tgz", - "integrity": "sha1-h6VWSfdJ14PsDc2AToFA2Yc8fO4=", - "dev": true - }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "dev": true - }, "xmlbuilder": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz", @@ -5363,61 +5459,6 @@ "requires": { "electron-download": "github:brave/electron-download#409b65caff14edeef1daa36a7445ba6334658d7c", "extract-zip": "1.6.5" - }, - "dependencies": { - "electron-download": { - "version": "github:brave/electron-download#409b65caff14edeef1daa36a7445ba6334658d7c", - "dev": true, - "requires": { - "debug": "2.6.9", - "home-path": "1.0.5", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "mv": "2.1.1", - "nugget": "1.6.2", - "path-exists": "1.0.0", - "rc": "1.2.1" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "nugget": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-1.6.2.tgz", - "integrity": "sha1-iMpuA7pXBqmRc/XaCQJZPWvK4Qc=", - "dev": true, - "requires": { - "debug": "2.6.9", - "minimist": "1.2.0", - "pretty-bytes": "1.0.4", - "progress-stream": "1.2.0", - "request": "2.82.0", - "single-line-log": "0.4.1", - "throttleit": "0.0.2" - } - }, - "path-exists": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", - "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", - "dev": true - }, - "single-line-log": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-0.4.1.tgz", - "integrity": "sha1-h6VWSfdJ14PsDc2AToFA2Yc8fO4=", - "dev": true - }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "dev": true - } } }, "electron-publish": { @@ -5875,11 +5916,19 @@ "integrity": "sha1-NYlpn/nJF/LCX3apFmh/ZBw2n/M=", "dev": true }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "requires": { + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, "espree": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz", "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=", - "dev": true, "requires": { "acorn": "5.1.2", "acorn-jsx": "3.0.1" @@ -5888,8 +5937,7 @@ "acorn": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", - "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", - "dev": true + "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==" } } }, @@ -5898,11 +5946,18 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "requires": { + "estraverse": "4.2.0" + } + }, "esrecurse": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", - "dev": true, "requires": { "estraverse": "4.2.0", "object-assign": "4.1.1" @@ -6098,7 +6153,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz", "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==", - "dev": true, "requires": { "iconv-lite": "0.4.19", "jschardet": "1.5.1", @@ -6108,14 +6162,12 @@ "iconv-lite": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", - "dev": true + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, "requires": { "os-tmpdir": "1.0.2" } @@ -6248,7 +6300,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, "requires": { "escape-string-regexp": "1.0.5" } @@ -6257,7 +6308,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, "requires": { "flat-cache": "1.3.0", "object-assign": "4.1.1" @@ -6447,7 +6497,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, "requires": { "circular-json": "0.3.3", "del": "2.2.2", @@ -7546,14 +7595,6 @@ } } }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, "string-width": { "version": "1.0.2", "bundled": true, @@ -7564,6 +7605,14 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, "stringstream": { "version": "0.0.5", "bundled": true, @@ -7726,21 +7775,10 @@ "is-callable": "1.1.3" } }, - "fwk": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fwk/-/fwk-1.0.11.tgz", - "integrity": "sha1-CYyPcXLsJRNOyGoUc6/6Nk1AQ0c=", - "requires": { - "async": "0.2.10", - "should": "0.6.3" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - } - } + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "gather-stream": { "version": "1.0.0", @@ -8042,7 +8080,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, "requires": { "array-union": "1.0.2", "arrify": "1.0.1", @@ -8427,8 +8464,7 @@ "has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, "has-gulplog": { "version": "0.1.0", @@ -8686,30 +8722,201 @@ "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", "dev": true, "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + } + } + }, + "http-request-signature": { + "version": "github:uphold/http-request-signature#fcbc1b4ff5c8c9e38553c86051d9ce61e6b00aea", + "requires": { + "debugnyan": "2.0.1", + "eslint": "4.8.0", + "lodash": "4.17.4", + "standard-http-error": "2.0.1", + "validator.js": "2.0.3", + "validator.js-asserts": "3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.4.0" + } + }, + "color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "requires": { + "color-name": "1.1.3" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + }, + "eslint": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.8.0.tgz", + "integrity": "sha1-Ip7w41Tg5h2DfHqA/fuoJeGZgV4=", + "requires": { + "ajv": "5.2.3", + "babel-code-frame": "6.26.0", + "chalk": "2.1.0", + "concat-stream": "1.6.0", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.0.0", + "eslint-scope": "3.7.1", + "espree": "3.5.1", + "esquery": "1.0.0", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "9.18.0", + "ignore": "3.3.5", + "imurmurhash": "0.1.4", + "inquirer": "3.0.6", + "is-resolvable": "1.0.0", + "js-yaml": "3.10.0", + "json-stable-stringify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.4.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "requires": { + "is-fullwidth-code-point": "2.0.0" } }, - "is-extglob": { + "string-width": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "is-extglob": "2.1.1" + "ansi-regex": "3.0.0" } }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "requires": { + "has-flag": "2.0.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "requires": { + "ajv": "5.2.3", + "ajv-keywords": "2.1.0", + "chalk": "2.1.0", + "lodash": "4.17.4", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + } } } }, @@ -8830,8 +9037,7 @@ "ignore": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz", - "integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==", - "dev": true + "integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==" }, "image-size": { "version": "0.5.5", @@ -8873,8 +9079,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "2.1.0", @@ -8928,7 +9133,6 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", - "dev": true, "requires": { "ansi-escapes": "1.4.0", "chalk": "1.1.3", @@ -8948,20 +9152,17 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, "requires": { "is-fullwidth-code-point": "2.0.0", "strip-ansi": "4.0.0" @@ -8971,7 +9172,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "3.0.0" } @@ -9220,14 +9420,12 @@ "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" }, "is-path-in-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true, "requires": { "is-path-inside": "1.0.0" } @@ -9236,7 +9434,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", - "dev": true, "requires": { "path-is-inside": "1.0.2" } @@ -9278,8 +9475,7 @@ "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, "is-property": { "version": "1.0.2", @@ -9315,7 +9511,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", - "dev": true, "requires": { "tryit": "1.0.3" } @@ -9408,8 +9603,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "2.1.0", @@ -9647,7 +9841,6 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "dev": true, "requires": { "argparse": "1.0.9", "esprima": "4.0.0" @@ -9657,7 +9850,6 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dev": true, "requires": { "sprintf-js": "1.0.3" } @@ -9665,14 +9857,12 @@ "esprima": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" } } }, @@ -9685,14 +9875,12 @@ "jschardet": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", - "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==", - "dev": true + "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==" }, "jsdom": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.2.0.tgz", "integrity": "sha512-+5wd6vJuh/Evw3wkmCuKXKibDd5RS7PYZjKaP4s2Hj5W7tvmbuFuaDN4erbH07VznTBFcK+lcsrGVnP6EugXow==", - "dev": true, "requires": { "abab": "1.0.4", "acorn": "4.0.13", @@ -9720,8 +9908,7 @@ "acorn": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" } } }, @@ -9948,161 +10135,6 @@ "invert-kv": "1.0.0" } }, - "ledger-balance": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/ledger-balance/-/ledger-balance-0.9.3.tgz", - "integrity": "sha1-1wq+XZvgSG3s4NxRa/VSrIessWg=", - "requires": { - "data-expression": "1.0.0", - "joi": "11.1.1", - "underscore": "1.8.3" - }, - "dependencies": { - "joi": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-11.1.1.tgz", - "integrity": "sha512-hffQzH42mYLvUCqhUPZZGegiiIjVvHcOV8mrxXPci8qZFOp2sHK4778GPyI3ZlvqTOHs8qZN6DovDnBR1slO4g==", - "requires": { - "hoek": "4.2.0", - "isemail": "3.0.0", - "topo": "2.0.2" - } - } - } - }, - "ledger-client": { - "version": "0.9.21", - "resolved": "https://registry.npmjs.org/ledger-client/-/ledger-client-0.9.21.tgz", - "integrity": "sha1-iD3koqkgPJGxtLuUpUh2KUI5Dy0=", - "requires": { - "bitgo": "3.5.1", - "joi": "11.1.1", - "ledger-publisher": "0.9.7", - "node-anonize2-relic-emscripten": "0.3.3", - "random-lib": "2.1.0", - "underscore": "1.8.3", - "uuid": "3.1.0" - }, - "dependencies": { - "joi": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-11.1.1.tgz", - "integrity": "sha512-hffQzH42mYLvUCqhUPZZGegiiIjVvHcOV8mrxXPci8qZFOp2sHK4778GPyI3ZlvqTOHs8qZN6DovDnBR1slO4g==", - "requires": { - "hoek": "4.2.0", - "isemail": "3.0.0", - "topo": "2.0.2" - } - } - } - }, - "ledger-geoip": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/ledger-geoip/-/ledger-geoip-0.9.2.tgz", - "integrity": "sha1-K669ThLtyWeqQOSodUz9lJyoQBU=", - "requires": { - "country-data": "0.0.29", - "country-reverse-geocoding": "0.2.1", - "data-expression": "1.0.0", - "joi": "11.1.1", - "underscore": "1.8.3" - }, - "dependencies": { - "joi": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-11.1.1.tgz", - "integrity": "sha512-hffQzH42mYLvUCqhUPZZGegiiIjVvHcOV8mrxXPci8qZFOp2sHK4778GPyI3ZlvqTOHs8qZN6DovDnBR1slO4g==", - "requires": { - "hoek": "4.2.0", - "isemail": "3.0.0", - "topo": "2.0.2" - } - } - } - }, - "ledger-publisher": { - "version": "0.9.7", - "resolved": "https://registry.npmjs.org/ledger-publisher/-/ledger-publisher-0.9.7.tgz", - "integrity": "sha1-hehim3PNz9/DP8kgmK+u6FWu3tE=", - "requires": { - "async": "2.5.0", - "data-expression": "1.0.0", - "glob": "7.1.2", - "joi": "11.1.1", - "jsdom": "11.1.0", - "random-lib": "2.1.0", - "tldjs": "1.7.0", - "underscore": "1.8.3", - "underscore.string": "3.3.4" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - }, - "joi": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-11.1.1.tgz", - "integrity": "sha512-hffQzH42mYLvUCqhUPZZGegiiIjVvHcOV8mrxXPci8qZFOp2sHK4778GPyI3ZlvqTOHs8qZN6DovDnBR1slO4g==", - "requires": { - "hoek": "4.2.0", - "isemail": "3.0.0", - "topo": "2.0.2" - } - }, - "jsdom": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.1.0.tgz", - "integrity": "sha512-vKKDU+Xh9O6VgzdOYf5Rmqbgp+Yz4YTBC19gaLtctXch33EmNucA395KJGGboldafPW1vv9XLuiprO4+wXfl0g==", - "requires": { - "abab": "1.0.4", - "acorn": "4.0.13", - "acorn-globals": "3.1.0", - "array-equal": "1.0.0", - "content-type-parser": "1.0.1", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "escodegen": "1.9.0", - "html-encoding-sniffer": "1.0.1", - "nwmatcher": "1.4.2", - "parse5": "3.0.2", - "pn": "1.0.0", - "request": "2.82.0", - "request-promise-native": "1.0.5", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.1", - "whatwg-url": "6.3.0", - "xml-name-validator": "2.0.1" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "tldjs": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/tldjs/-/tldjs-1.7.0.tgz", - "integrity": "sha1-M94I5Z0y4C8r6FAJZHbWcbFDGoE=", - "requires": { - "punycode": "1.4.1" - } - }, - "underscore.string": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", - "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", - "requires": { - "sprintf-js": "1.1.1", - "util-deprecate": "1.0.2" - } - } - } - }, "less": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/less/-/less-2.7.2.tgz", @@ -11019,8 +11051,7 @@ "mimic-fn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", - "dev": true + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" }, "mimic-response": { "version": "1.0.0", @@ -11504,14 +11535,12 @@ "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, "mv": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "dev": true, "requires": { "mkdirp": "0.5.1", "ncp": "2.0.0", @@ -11522,7 +11551,6 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true, "requires": { "inflight": "1.0.6", "inherits": "2.0.3", @@ -11535,7 +11563,6 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "dev": true, "requires": { "glob": "6.0.4" } @@ -11556,14 +11583,12 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "ncp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "dev": true + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=" }, "ndjson": { "version": "1.5.0", @@ -13989,14 +14014,6 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -14007,6 +14024,14 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -14479,7 +14504,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, "requires": { "mimic-fn": "1.1.0" } @@ -14916,8 +14940,7 @@ "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" }, "path-key": { "version": "2.0.1", @@ -15808,8 +15831,7 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "public-encrypt": { "version": "4.0.0", @@ -16584,7 +16606,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "dev": true, "requires": { "caller-path": "0.1.0", "resolve-from": "1.0.1" @@ -16617,8 +16638,7 @@ "resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", - "dev": true + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" }, "resolve-url": { "version": "0.2.1", @@ -16630,7 +16650,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, "requires": { "onetime": "2.0.1", "signal-exit": "3.0.2" @@ -16810,7 +16829,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, "requires": { "is-promise": "2.1.0" } @@ -16847,8 +16865,7 @@ "rx": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", - "dev": true + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" }, "rx-lite": { "version": "3.1.2", @@ -16861,6 +16878,12 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-json-stringify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz", + "integrity": "sha1-gaCY9Efku8P/MxKiQ1IbwGDvWRE=", + "optional": true + }, "samsam": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", @@ -17079,7 +17102,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "1.0.0" } @@ -17087,8 +17109,7 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shelljs": { "version": "0.7.7", @@ -17107,11 +17128,6 @@ "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, - "should": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/should/-/should-0.6.3.tgz", - "integrity": "sha1-1LVTNciQjzpsR5cLaH91A3Ks3HM=" - }, "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", @@ -17642,6 +17658,19 @@ } } }, + "standard-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/standard-error/-/standard-error-1.1.0.tgz", + "integrity": "sha1-I+UWj6HAggGJ5YEnAaeQWFENDTQ=" + }, + "standard-http-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/standard-http-error/-/standard-http-error-2.0.1.tgz", + "integrity": "sha1-+K6RcuPO+cs40ucIShkl9Xp8NL0=", + "requires": { + "standard-error": "1.1.0" + } + }, "stat-mode": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", @@ -17852,11 +17881,6 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -17886,6 +17910,11 @@ "ipaddr.js": "1.4.0" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -18240,8 +18269,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "thirty-two": { "version": "1.0.2", @@ -18516,8 +18544,7 @@ "tryit": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", - "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", - "dev": true + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=" }, "tty-browserify": { "version": "0.0.0", @@ -18565,8 +18592,7 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typedarray-to-buffer": { "version": "3.1.2", @@ -18956,6 +18982,20 @@ "integrity": "sha1-x03rgGNRL6w1VHk45vCxUEooL9I=", "dev": true }, + "validator.js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/validator.js/-/validator.js-2.0.3.tgz", + "integrity": "sha1-P02K5QZz9/vVU5q9ZqEzjYefXvQ=" + }, + "validator.js-asserts": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/validator.js-asserts/-/validator.js-asserts-3.1.0.tgz", + "integrity": "sha1-O8ouCt6htbMRP3+WXtTxrmOkqCM=", + "requires": { + "lodash": "4.17.4", + "validator.js": "2.0.3" + } + }, "varuint-bitcoin": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.0.4.tgz", @@ -19891,7 +19931,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", - "dev": true, "requires": { "isexe": "2.0.0" } @@ -19970,7 +20009,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "dev": true, "requires": { "mkdirp": "0.5.1" } @@ -20074,8 +20112,7 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "7.1.0", diff --git a/package.json b/package.json index cec9eab958e..66eaac11c0a 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,10 @@ "ad-block": "^3.0.2", "aphrodite": "1.1.0", "async": "^2.0.1", + "bat-balance": "^0.9.0", + "bat-client": "^0.9.0", + "bat-publisher": "^0.9.0", + "bignumber.js": "^4.0.4", "bloodhound-js": "brave/bloodhound", "clipboard-copy": "^1.0.0", "compare-versions": "^3.0.1", @@ -101,10 +105,6 @@ "immutablediff": "^0.4.2", "immutablepatch": "brave/immutable-js-patch", "l20n": "^3.5.1", - "ledger-balance": "^0.9.1", - "ledger-client": "^0.9.21", - "ledger-geoip": "^0.9.0", - "ledger-publisher": "^0.9.4", "lru-cache": "^1.0.0", "moment": "^2.15.1", "niceware": "^1.0.4", diff --git a/test/unit/app/common/lib/ledgerUtilTest.js b/test/unit/app/common/lib/ledgerUtilTest.js index 0920732c73f..1578d1911c6 100644 --- a/test/unit/app/common/lib/ledgerUtilTest.js +++ b/test/unit/app/common/lib/ledgerUtilTest.js @@ -97,7 +97,7 @@ describe('ledgerUtil test', function () { }) }) - describe('btcToCurrencyString', function () { + describe('batToCurrencyString', function () { let ledgerData before(function () { @@ -123,8 +123,8 @@ describe('ledgerUtil test', function () { buyMaximumUSD: 6, reconcileFrequency: 30, currency: 'USD', - btc: '0.00277334', - address: 'btc-address-goes-here', + bat: '0.00277334', + address: 'bat-address-goes-here', reconcileStamp: 1405324210587, transactions: [], amount: 10, @@ -135,43 +135,43 @@ describe('ledgerUtil test', function () { }) it('defaults to 0 as balance and "USD" as currency symbol', function () { - const result = ledgerUtil.btcToCurrencyString() + const result = ledgerUtil.batToCurrencyString() assert.equal(result, '0 USD') }) it('will mark currency with different symbol (if present)', function () { - const result = ledgerUtil.btcToCurrencyString(0, ledgerData.set('currency', 'Sealand dollars')) + const result = ledgerUtil.batToCurrencyString(0, ledgerData.set('currency', 'Sealand dollars')) assert.equal(result, '0 Sealand dollars') }) it('will convert value to USD', function () { - const result = ledgerUtil.btcToCurrencyString(1, ledgerData) + const result = ledgerUtil.batToCurrencyString(1, ledgerData) assert.equal(result, '3605.75 USD') }) describe('when rounding values', function () { it('will round 4.97 down to 4.75 (cent values greater than .74)', function () { - const ledgerDataCopy = ledgerData.set('btc', '0.00279000') - const result = ledgerUtil.btcToCurrencyString(0.00138667, ledgerDataCopy) + const ledgerDataCopy = ledgerData.set('bat', '0.00279000') + const result = ledgerUtil.batToCurrencyString(0.00138667, ledgerDataCopy) assert.equal(result, '4.75 USD') }) it('will round 4.64 down to 4.50 (cent values greater than .49)', function () { - const ledgerDataCopy = ledgerData.set('btc', '0.00299000') - const result = ledgerUtil.btcToCurrencyString(0.00138667, ledgerDataCopy) + const ledgerDataCopy = ledgerData.set('bat', '0.00299000') + const result = ledgerUtil.batToCurrencyString(0.00138667, ledgerDataCopy) assert.equal(result, '4.50 USD') }) it('will round 4.33 down to 4.25 (cent values greater than .24)', function () { - const ledgerDataCopy = ledgerData.set('btc', '0.00320000') - const result = ledgerUtil.btcToCurrencyString(0.00138667, ledgerDataCopy) + const ledgerDataCopy = ledgerData.set('bat', '0.00320000') + const result = ledgerUtil.batToCurrencyString(0.00138667, ledgerDataCopy) assert.equal(result, '4.25 USD') }) it('will round 4.08 down to 4.00 (cent values less than .24)', function () { - const ledgerDataCopy = ledgerData.set('btc', '0.00340000') - const result = ledgerUtil.btcToCurrencyString(0.00138667, ledgerDataCopy) + const ledgerDataCopy = ledgerData.set('bat', '0.00340000') + const result = ledgerUtil.batToCurrencyString(0.00138667, ledgerDataCopy) assert.equal(result, '4.00 USD') }) }) describe('when ledgerData does not contain exchange information', function () { - it('returns the raw balance formatted as BTC', function () { - const result = ledgerUtil.btcToCurrencyString(0.00138667, undefined) - assert.equal(result, '0.00138667 BTC') + it('returns the raw balance formatted as BAT', function () { + const result = ledgerUtil.batToCurrencyString(0.00138667, undefined) + assert.equal(result, '0.00138667 BAT') }) }) }) diff --git a/test/unit/app/renderer/components/preferences/paymentsTabTest.js b/test/unit/app/renderer/components/preferences/paymentsTabTest.js index 4c1cc44749d..a9c7dd33052 100644 --- a/test/unit/app/renderer/components/preferences/paymentsTabTest.js +++ b/test/unit/app/renderer/components/preferences/paymentsTabTest.js @@ -9,7 +9,7 @@ const assert = require('assert') const Immutable = require('immutable') const fakeElectron = require('../../../../lib/fakeElectron') const fakeSettings = require('../../../../lib/fakeSettings') -const {btcToCurrencyString} = require('../../../../../../app/common/lib/ledgerUtil') +const {batToCurrencyString} = require('../../../../../../app/common/lib/ledgerUtil') const {advancedSettingsDialog} = require('../../../../../lib/selectors') let PaymentsTab, EnabledContent @@ -197,20 +197,20 @@ describe('PaymentsTab component', function () { + ledgerData={Immutable.Map({created: false, bat: 10, amount: 10})} /> ) const inst = wrapper.instance() - assert.equal(btcToCurrencyString(10, inst.props.ledgerData), '10.00 USD') + assert.equal(batToCurrencyString(10, inst.props.ledgerData), '10.00 USD') }) it('renders partial balance correctly', function () { fakeSettings.mockReturnValue = true const wrapper = mount( + ledgerData={Immutable.Map({created: false, bat: 10, amount: 2})} /> ) const inst = wrapper.instance() - assert.equal(btcToCurrencyString(10, inst.props.ledgerData), '2.00 USD') + assert.equal(batToCurrencyString(10, inst.props.ledgerData), '2.00 USD') }) }) diff --git a/tools/lib/synopsisHelpers.js b/tools/lib/synopsisHelpers.js index 5267f4ad772..20f473eb257 100644 --- a/tools/lib/synopsisHelpers.js +++ b/tools/lib/synopsisHelpers.js @@ -2,7 +2,7 @@ const fs = require('fs') const randomHostname = require('./randomHostname') -const Synopsis = require('ledger-publisher').Synopsis +const Synopsis = require('bat-publisher').Synopsis const PROTOCOL_PREFIXES = ['http://', 'https://']