├── topup ├── .gitignore ├── index.js ├── package.json ├── test │ └── topup.test.js ├── src │ ├── cli.js │ └── topup.js └── yarn.lock ├── leverage ├── .gitignore ├── lib │ ├── index.js │ └── leverage.js ├── test │ └── leverage.test.js ├── README.md └── package.json ├── react-example ├── .env.example ├── src │ ├── index.css │ ├── components │ │ ├── ShutCdp.js │ │ ├── DrawDai.js │ │ ├── WipeDebt.js │ │ ├── LockEth.js │ │ ├── OpenCdp.js │ │ ├── CreateMaker.js │ │ ├── App.css │ │ ├── StartButton.js │ │ └── App.js │ ├── index.js │ ├── reducers │ │ └── index.js │ ├── actions │ │ └── index.js │ ├── logo.svg │ └── registerServiceWorker.js ├── public │ ├── favicon.ico │ ├── manifest.json │ └── index.html ├── README.md ├── .gitignore └── package.json ├── accounts ├── src │ ├── index.css │ ├── index.js │ ├── App.test.js │ ├── setupMaker.js │ ├── App.css │ ├── registerServiceWorker.js │ └── App.js ├── public │ ├── favicon.png │ ├── manifest.json │ └── index.html ├── .gitignore ├── package.json └── README.md ├── package.json ├── .travis.yml ├── .eslintrc ├── LICENSE └── README.md /topup/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | yarn-error.log 3 | -------------------------------------------------------------------------------- /leverage/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | yarn-error.log 4 | -------------------------------------------------------------------------------- /react-example/.env.example: -------------------------------------------------------------------------------- 1 | REACT_APP_PRIVATE_KEY= 2 | REACT_APP_NETWORK="kovan" -------------------------------------------------------------------------------- /accounts/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: sans-serif; 5 | } 6 | -------------------------------------------------------------------------------- /react-example/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | font-family: sans-serif; 5 | } 6 | -------------------------------------------------------------------------------- /accounts/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ailisp/integration-examples/master/accounts/public/favicon.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "test": "cd topup && npm test && cd ../leverage && npm test" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /react-example/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ailisp/integration-examples/master/react-example/public/favicon.ico -------------------------------------------------------------------------------- /topup/index.js: -------------------------------------------------------------------------------- 1 | const topup = require('./src/topup') 2 | module.exports = topup 3 | 4 | if (require.main === module) { 5 | const cli = require('./src/cli') 6 | cli() 7 | } 8 | -------------------------------------------------------------------------------- /accounts/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import registerServiceWorker from './registerServiceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | registerServiceWorker(); 9 | -------------------------------------------------------------------------------- /leverage/lib/index.js: -------------------------------------------------------------------------------- 1 | const minimist = require('minimist'); 2 | const leverage = require('./leverage'); 3 | 4 | const argv = minimist(process.argv); 5 | let i = argv._[argv._.length - 3]; 6 | let pf = argv._[argv._.length - 2]; 7 | let p = argv._[argv._.length - 1]; 8 | 9 | leverage(i, pf, p); 10 | -------------------------------------------------------------------------------- /accounts/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './App'; 4 | 5 | it('renders without crashing', () => { 6 | const div = document.createElement('div'); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /leverage/test/leverage.test.js: -------------------------------------------------------------------------------- 1 | const leverage = require('../lib/leverage'); 2 | 3 | test( 4 | 'leveraged cdp should end up with more eth than it started with', 5 | async () => { 6 | const state = await leverage(1, 199, 0.01); 7 | expect(state.pethCollateral.gt(state.initialPethCollateral)).toBeTruthy(); 8 | }, 9 | 240000 10 | ); 11 | -------------------------------------------------------------------------------- /topup/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "dependencies": { 4 | "@makerdao/dai": "^0.5.6", 5 | "minimist": "^1.2.0", 6 | "round-to": "^3.0.0" 7 | }, 8 | "devDependencies": { 9 | "babel-cli": "^6.26.0", 10 | "jest": "^23.1.0" 11 | }, 12 | "scripts": { 13 | "test": "jest", 14 | "test:watch": "jest --watch --runInBand" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /react-example/README.md: -------------------------------------------------------------------------------- 1 | ### Exchange integration example 2 | 3 | This is a basic React app (created with `create-react-app`) that imports `@makerdao/dai`, initializes a new `Maker` object, and uses it for basic CDP functionality. 4 | 5 | The only relevant code is in `src/App.js`, unless you want to run it yourself, in which case you can simply clone this repo, `npm install`, and `npm start`. 6 | -------------------------------------------------------------------------------- /topup/test/topup.test.js: -------------------------------------------------------------------------------- 1 | const topup = require('../src/topup'); 2 | 3 | test( 4 | 'should use the library to define necessary values', 5 | async () => { 6 | const values = await topup(26, { targetRatio: 2.5 }); 7 | expect.assertions(values.length); 8 | for (let i = 0; i < values.length; i++) { 9 | expect(values[i]).toBeDefined(); 10 | } 11 | }, 12 | 15000 13 | ); 14 | -------------------------------------------------------------------------------- /accounts/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | .env 19 | 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | -------------------------------------------------------------------------------- /accounts/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /react-example/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | .env.local 15 | .env.development.local 16 | .env.test.local 17 | .env.production.local 18 | .env 19 | 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | -------------------------------------------------------------------------------- /react-example/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /react-example/src/components/ShutCdp.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { connect } from 'react-redux'; 3 | 4 | const mapStateToProps = state => { 5 | return { 6 | shut: state.cdp_shut 7 | } 8 | } 9 | 10 | const ShutCdp = ({shut}) => { 11 | 12 | return ( 13 |
14 | {shut? 'CDP Shut' : ''} 15 |
16 | ); 17 | } 18 | 19 | export default connect(mapStateToProps)(ShutCdp); -------------------------------------------------------------------------------- /react-example/src/components/DrawDai.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { connect } from 'react-redux'; 3 | 4 | const mapStateToProps = state => { 5 | return { 6 | drawn: state.dai_drawn 7 | } 8 | } 9 | 10 | const DrawDai = ({drawn}) => { 11 | 12 | return ( 13 |
14 | {drawn? 'Dai Drawn' : ''} 15 |
16 | ); 17 | } 18 | 19 | export default connect(mapStateToProps)(DrawDai); -------------------------------------------------------------------------------- /react-example/src/components/WipeDebt.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { connect } from 'react-redux'; 3 | 4 | const mapStateToProps = state => { 5 | return { 6 | wiped: state.dai_wiped 7 | } 8 | } 9 | 10 | const WipeDebt = ({wiped}) => { 11 | 12 | return ( 13 |
14 | {wiped? 'Debt Wiped' : ''} 15 |
16 | ); 17 | } 18 | 19 | export default connect(mapStateToProps)(WipeDebt); -------------------------------------------------------------------------------- /react-example/src/components/LockEth.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { connect } from 'react-redux'; 3 | 4 | const mapStateToProps = state => { 5 | return { 6 | locked: state.eth_locked 7 | } 8 | } 9 | 10 | const LockEth = ({locked}) => { 11 | 12 | return ( 13 |
14 | {locked? 'Eth Locked' : ''} 15 |
16 | ); 17 | } 18 | 19 | export default connect(mapStateToProps)(LockEth); -------------------------------------------------------------------------------- /react-example/src/components/OpenCdp.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { connect } from 'react-redux'; 3 | 4 | const mapStateToProps = state => { 5 | return { 6 | opened: state.cdp_opened 7 | } 8 | } 9 | 10 | const OpenCdp = ({opened}) => { 11 | 12 | return ( 13 |
14 | {opened? 'CDP Opened' : ''} 15 |
16 | ); 17 | } 18 | 19 | export default connect(mapStateToProps)(OpenCdp); -------------------------------------------------------------------------------- /react-example/src/components/CreateMaker.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { connect } from 'react-redux'; 3 | 4 | const mapStateToProps = state => { 5 | return { 6 | created: state.maker_created 7 | } 8 | } 9 | 10 | const CreateMaker = ({created}) => { 11 | 12 | return ( 13 |
14 | {created? 'Maker Created' : ''} 15 |
16 | ); 17 | } 18 | 19 | export default connect(mapStateToProps)(CreateMaker); -------------------------------------------------------------------------------- /leverage/README.md: -------------------------------------------------------------------------------- 1 |

2 | Maker.js CDP Leverage Example 3 |

4 | 5 | Lock ETH -> Draw DAI -> Exchange Dai for ETH -> repeat 6 | 7 | __Example usage__ 8 | ```shell 9 | export KOVAN_PRIVATE_KEY=0xabc... # your key goes here 10 | cd leverage 11 | export "DEBUG=leverage.*" # turn on console logging 12 | node . 1 400 0.1 13 | ``` 14 | * The first argument is the number of iterations 15 | * The second argument is the ETH price floor 16 | * The third argument is the initial amount of ETH 17 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "stable" 4 | cache: 5 | directories: 6 | - node_modules 7 | - react-example/node_modules 8 | - topup/node_modules 9 | - leverage/node_modules 10 | env: 11 | - NETWORK="kovan" 12 | before_install: 13 | - npm config set //registry.npmjs.org/:_authToken=$npm_token 14 | script: 15 | - cd react-example 16 | - yarn install 17 | - yarn build 18 | - cd ../topup 19 | - yarn install 20 | - yarn test 21 | - cd ../leverage 22 | - yarn install 23 | - yarn test 24 | -------------------------------------------------------------------------------- /react-example/src/components/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | animation: App-logo-spin infinite 20s linear; 7 | height: 80px; 8 | } 9 | 10 | .App-header { 11 | background-color: #222; 12 | height: 150px; 13 | padding: 20px; 14 | color: white; 15 | } 16 | 17 | .App-title { 18 | font-size: 1.5em; 19 | } 20 | 21 | .App-intro { 22 | font-size: large; 23 | } 24 | 25 | @keyframes App-logo-spin { 26 | from { transform: rotate(0deg); } 27 | to { transform: rotate(360deg); } 28 | } 29 | -------------------------------------------------------------------------------- /accounts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@makerdao/dai": "^0.7.0", 7 | "@makerdao/dai-plugin-ledger-web": "^0.9.2", 8 | "@makerdao/dai-plugin-trezor-web": "latest", 9 | "react": "^16.4.2", 10 | "react-dom": "^16.4.2", 11 | "react-scripts": "1.1.4" 12 | }, 13 | "scripts": { 14 | "start": "react-scripts start", 15 | "build": "react-scripts build", 16 | "test": "react-scripts test --env=jsdom", 17 | "eject": "react-scripts eject" 18 | }, 19 | "devDependencies": {} 20 | } 21 | -------------------------------------------------------------------------------- /react-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "module-test", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@makerdao/dai": "^0.5.7", 7 | "react": "^16.2.0", 8 | "react-dom": "^16.2.0", 9 | "react-redux": "^5.0.7", 10 | "react-scripts": "1.1.1", 11 | "redux": "^4.0.0", 12 | "redux-thunk": "^2.3.0" 13 | }, 14 | "scripts": { 15 | "start": "react-scripts start", 16 | "build": "react-scripts build", 17 | "test": "react-scripts test --env=jsdom", 18 | "eject": "react-scripts eject" 19 | }, 20 | "devDependencies": {} 21 | } 22 | -------------------------------------------------------------------------------- /leverage/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "makerjs-leveraging-bot", 3 | "description": "Makerjs Leveraging Bot Demo", 4 | "version": "0.1.0", 5 | "private": true, 6 | "main": "lib/index.js", 7 | "scripts": { 8 | "test": "jest" 9 | }, 10 | "author": "", 11 | "license": "", 12 | "devDependencies": { 13 | "babel-cli": "^6.11.4", 14 | "babel-preset-es2015": "^6.9.0", 15 | "babel-preset-stage-2": "^6.11.0", 16 | "babel-register": "^6.11.6", 17 | "jest": "^23.2.0" 18 | }, 19 | "dependencies": { 20 | "@makerdao/dai": "0.5.6", 21 | "debug": "^3.1.0", 22 | "invariant": "^2.2.4" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /react-example/src/components/StartButton.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { connect } from 'react-redux'; 3 | import { startAsync } from '../actions'; 4 | 5 | const mapStateToProps = state => { 6 | return { 7 | started: state.started 8 | } 9 | } 10 | 11 | function mapDispatchToProps(dispatch) { 12 | return({ 13 | start: () => { 14 | dispatch(startAsync()); 15 | } 16 | }) 17 | } 18 | 19 | const StartButton = ({ started, start}) => { 20 | 21 | return ( 22 | 25 | ); 26 | } 27 | 28 | export default connect(mapStateToProps, mapDispatchToProps)(StartButton); -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "commonjs": true, 5 | "es6": true, 6 | "jest": true, 7 | "node": true 8 | }, 9 | "extends": ["eslint:recommended", "plugin:react/recommended"], 10 | "parser": "babel-eslint", 11 | "parserOptions": { 12 | "ecmaVersion": 8, 13 | "sourceType": "module", 14 | "ecmaFeatures": { 15 | "experimentalObjectRestSpread": true, 16 | "jsx": true 17 | } 18 | }, 19 | "rules": { 20 | "no-console": "off", 21 | "linebreak-style": ["error", "unix"], 22 | "quotes": ["error", "single", { "avoidEscape": true }], 23 | "semi": ["error", "always"], 24 | "react/prop-types": 0, 25 | "react/display-name": 0 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /react-example/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import { Provider } from 'react-redux'; 5 | import App from './components/App'; 6 | import thunkMiddleware from 'redux-thunk'; 7 | import registerServiceWorker from './registerServiceWorker'; 8 | import { createStore, applyMiddleware } from 'redux'; 9 | import rootReducer from './reducers'; 10 | 11 | const store = createStore(rootReducer, applyMiddleware(thunkMiddleware)); 12 | 13 | store.subscribe(() => 14 | console.log(store.getState()) 15 | ); 16 | 17 | ReactDOM.render( 18 | 19 | 20 | , 21 | document.getElementById('root')); 22 | registerServiceWorker(); 23 | -------------------------------------------------------------------------------- /accounts/README.md: -------------------------------------------------------------------------------- 1 | # Multiple Accounts Demo App 2 | 3 | Demonstrates support for multiple accounts in [Dai.js][daijs]. 4 | 5 | Includes plugins that add support for Ledger and Trezor: 6 | - [dai-plugin-trezor-web][trezor-plugin] 7 | - [dai-plugin-ledger-web][ledger-plugin] 8 | 9 | It depends on a running Dai.js [test chain][testchain]. You can add accounts 10 | from Trezor, Ledger, MetaMask, and private keys; transfer ETH between accounts; 11 | and open CDPs with any of them. 12 | 13 | ```shell 14 | yarn install 15 | HTTPS=true yarn start # HTTPS is necessary for Ledger 16 | ``` 17 | 18 | [daijs]: https://github.com/makerdao/dai.js 19 | [testchain]: https://github.com/makerdao/dai.js/blob/dev/testchain/scripts/with-deployed-system 20 | [trezor-plugin]: https://github.com/makerdao/dai-plugin-trezor-web 21 | [ledger-plugin]: https://github.com/makerdao/dai-plugin-ledger-web 22 | -------------------------------------------------------------------------------- /react-example/src/reducers/index.js: -------------------------------------------------------------------------------- 1 | const initialState = { 2 | started: false 3 | } 4 | 5 | export default function App(state = initialState, action) { 6 | switch (action.type) { 7 | case 'STARTED': 8 | return { 9 | started: true 10 | } 11 | case 'MAKER_CREATED': 12 | return Object.assign({}, state, { 13 | maker_created: true 14 | }) 15 | case 'CDP_OPENED': 16 | return Object.assign({}, state, { 17 | cdp_opened: true 18 | }) 19 | case 'ETH_LOCKED': 20 | return Object.assign({}, state, { 21 | eth_locked: true 22 | }) 23 | case 'DAI_DRAWN': 24 | return Object.assign({}, state, { 25 | dai_drawn: true 26 | }) 27 | case 'DAI_WIPED': 28 | return Object.assign({}, state, { 29 | dai_wiped: true 30 | }) 31 | case 'CDP_SHUT': 32 | return Object.assign({}, state, { 33 | cdp_shut: true 34 | }) 35 | default: 36 | return state 37 | } 38 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 MakerDAO 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /react-example/src/components/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component } from 'react'; 2 | import logo from '../logo.svg'; 3 | import './App.css'; 4 | import StartButton from './StartButton.js'; 5 | import CreateMaker from './CreateMaker.js'; 6 | import OpenCdp from './OpenCdp.js'; 7 | import LockEth from './LockEth.js'; 8 | import DrawDai from './DrawDai.js'; 9 | import WipeDebt from './WipeDebt.js'; 10 | import ShutCdp from './ShutCdp.js'; 11 | 12 | class App extends Component { 13 | 14 | render() { 15 | return ( 16 |
17 |
18 | logo 19 |

MakerJS React Redux Example

20 |
21 |
22 | 23 |

This application pulls in maker.js to open a cdp, lock eth, draw dai, repay the dai, and then shut the cdp. Each transaction is sent after the other is mined. Progress is reported below. Click Start to begin.


24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | ); 32 | } 33 | } 34 | 35 | export default App; 36 | -------------------------------------------------------------------------------- /topup/src/cli.js: -------------------------------------------------------------------------------- 1 | const minimist = require('minimist') 2 | const topup = require('./topup') 3 | 4 | module.exports = async function() { 5 | const argv = minimist(process.argv) 6 | const verbose = argv.v || argv.verbose 7 | 8 | const cdpId = argv._[argv._.length - 1] 9 | if (isNaN(Number(cdpId))) { 10 | console.error("You must specify a CDP ID as the first argument.") 11 | process.exit(1) 12 | } 13 | 14 | const targetRatio = Number(argv.t || argv['target-ratio']) 15 | if (isNaN(targetRatio)) { 16 | console.error('You must specify a target ratio with -t or --target-ratio.') 17 | process.exit(1) 18 | } 19 | 20 | async function run() { 21 | try { 22 | await topup(cdpId, {targetRatio}) 23 | } catch (e) { 24 | console.error(verbose ? e.stack : e.message) 25 | } 26 | } 27 | 28 | const poll = argv.p || argv.poll 29 | if (poll) { 30 | const seconds = poll != true ? poll : 5 31 | if (isNaN(Number(seconds))) { 32 | console.error("The interval must be a number.") 33 | process.exit(1) 34 | } 35 | 36 | console.log(`Checking CDP ${cdpId} every ${seconds} seconds...`) 37 | setInterval(run, seconds * 1000) 38 | } else { 39 | console.log(`Checking CDP ${cdpId}...`) 40 | await run() 41 | process.exit() 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /accounts/src/setupMaker.js: -------------------------------------------------------------------------------- 1 | import trezorPlugin from '@makerdao/dai-plugin-trezor-web'; 2 | import ledgerPlugin from '@makerdao/dai-plugin-ledger-web'; 3 | const Maker = require('@makerdao/dai'); 4 | 5 | // These are keys that are set up in our test chain with some Ether. 6 | export const keys = [ 7 | 'b178ad06eb08e2cd34346b5c8ec06654d6ccb1cadf1c9dbd776afd25d44ab8d0', 8 | '819d5a9152a1aa37b514d13f861d5e53aae810eedd3876f3f9aaf9e6bcb7c2bb', 9 | 'c15a32c1dc58c5a893ff141e668b816074bdcdf460956c36d7c4f3e3c5e1a04a', 10 | 'dc21e321bc4ce4f5daacb7acbc4b7875a48335308ade8dca87c93c266c6cf318', 11 | 'c9e69677a85b5f66969e134b915320942f4a1a6529aa1e7bc4cb6e3d059a1e6b' 12 | ]; 13 | 14 | const TESTNET_URL = 'http://localhost:2000'; 15 | 16 | export default async function(useMetaMask) { 17 | window.Maker = Maker; 18 | const maker = Maker.create(useMetaMask ? 'browser' : 'http', { 19 | url: TESTNET_URL, 20 | plugins: [trezorPlugin, ledgerPlugin], 21 | accounts: { 22 | test1: { type: 'privateKey', key: keys[0] } 23 | } 24 | }); 25 | 26 | await maker.authenticate(); 27 | if (maker.service('web3').networkId() !== 999) { 28 | alert( 29 | 'To work with testchain accounts, configure MetaMask to use ' + 30 | `"Custom RPC" with address "${TESTNET_URL}".` 31 | ); 32 | } 33 | return maker; 34 | } 35 | -------------------------------------------------------------------------------- /accounts/src/App.css: -------------------------------------------------------------------------------- 1 | h1, h2, h3, h4, h5, p { 2 | margin-top: 0; 3 | } 4 | 5 | h4 { 6 | margin-bottom: 1em; 7 | } 8 | 9 | button { 10 | font-size: 0.8em; 11 | } 12 | 13 | .container { 14 | display: flex; 15 | flex-direction: row; 16 | flex-wrap: wrap; 17 | } 18 | 19 | .header { 20 | width: 100vw; 21 | font-size: 1.6em; 22 | padding: 20px; 23 | background-color: #0f1125; 24 | color: white; 25 | } 26 | 27 | .sidebar { 28 | background-color: #01dba6; 29 | padding: 0; 30 | flex-basis: 25vw; 31 | height: 100vh; 32 | } 33 | 34 | .sidebar > div { 35 | padding: 20px; 36 | border-bottom: 1px solid white; 37 | } 38 | 39 | .sidebar > div:last-child { 40 | border-bottom: none; 41 | } 42 | 43 | .main { 44 | padding: 20px; 45 | } 46 | 47 | table { 48 | border: 1px solid silver; 49 | margin-bottom: 1em; 50 | } 51 | 52 | table th { 53 | text-align: left; 54 | } 55 | 56 | table td, table th { 57 | padding: 2px 4px; 58 | } 59 | 60 | .buttonRow button { 61 | margin-right: 4px; 62 | } 63 | 64 | .account-picker { 65 | margin-top: 1em; 66 | background-color: cornsilk; 67 | padding: 10px; 68 | } 69 | 70 | .account-choice { 71 | display: flex; 72 | flex-direction: row; 73 | justify-content: space-between; 74 | text-overflow: ellipsis; 75 | margin-bottom: 4px; 76 | } 77 | 78 | .account-choice:last-child { 79 | margin-bottom: 0; 80 | } 81 | 82 | .account-choice button { 83 | margin-left: 8px; 84 | } 85 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Integration/Maker.js Examples 3 |

4 | 5 | ### accounts 6 | 7 | Demo of multiple account support. See [README](https://github.com/makerdao/integration-examples/blob/master/accounts/README.md). 8 | 9 | ### leverage 10 | 11 | Lock ETH -> Draw DAI -> Exchange Dai for ETH -> repeat 12 | 13 | __Example usage__ 14 | ```shell 15 | export PRIVATE_KEY=0xabc... # your key goes here 16 | export NETWORK='kovan' # choose your network here 17 | export DEBUG=leverage.* #turn on console logging 18 | cd leverage 19 | babel-node . 1 400 0.1 20 | ``` 21 | * The first argument is the number of iterations 22 | * The second argument is the ETH price floor 23 | * The third argument is the initial amount of ETH 24 | 25 | ### react-example 26 | 27 | Interact with Maker.js in the browser. 28 | 29 | To set your private key: 30 | * `cd react-example` 31 | * `cp .env.example .env` 32 | * Add your key (as a string) where prompted in `.env` 33 | 34 | 35 | ### topup 36 | 37 | Prevent your CDP from getting liquidated (automated risk management) -- "top it up" with collateral to stay above a target collateralization ratio. 38 | 39 | __Example usage__ 40 | ```shell 41 | export PRIVATE_KEY=0xabc... # your key goes here 42 | export NETWORK='kovan' # choose your network here 43 | cd topup 44 | babel-node . 1234 -t 2.5 -v 45 | ``` 46 | * The first argument is a CDP ID. 47 | * The value for the `-t` argument is the target ratio. 48 | * `-v` enables verbose mode (shows stack traces for errors). 49 | -------------------------------------------------------------------------------- /topup/src/topup.js: -------------------------------------------------------------------------------- 1 | const Maker = require('@makerdao/dai'); 2 | const roundTo = require('round-to'); 3 | 4 | const MIN_ADD_AMOUNT = 0.0001; 5 | const ROUND_TO_PLACES = 4; 6 | 7 | module.exports = async function(cdpId, options) { 8 | let targetRatio; 9 | try { 10 | targetRatio = Maker.USD_DAI(options.targetRatio); 11 | } catch (err) { 12 | throw new Error(`Invalid value for targetRatio: ${err}`); 13 | } 14 | 15 | const maker = Maker.create(process.env.NETWORK, { 16 | privateKey: process.env.PRIVATE_KEY, 17 | log: false 18 | }); 19 | const cdp = await maker.getCdp(cdpId); 20 | 21 | const collateral = await cdp.getCollateralValue(); 22 | console.log(`collateral: ${collateral}`); 23 | 24 | const debt = await cdp.getDebtValue(Maker.USD); 25 | console.log(`debt: ${debt}`); 26 | 27 | const collateralPrice = await maker.service('price').getEthPrice(); 28 | console.log(`price: ${collateralPrice}`); 29 | 30 | const ratio = await cdp.getCollateralizationRatio(); 31 | if (targetRatio.gt(ratio)) { 32 | let addAmount = debt 33 | .times(targetRatio) 34 | .minus(collateral.times(collateralPrice)) 35 | .div(collateralPrice) 36 | .toNumber(); 37 | 38 | if (addAmount < MIN_ADD_AMOUNT) { 39 | addAmount = MIN_ADD_AMOUNT; 40 | } else { 41 | addAmount = roundTo.up(addAmount, ROUND_TO_PLACES); 42 | } 43 | 44 | console.log(`ratio is ${ratio}; adding ${addAmount} ETH.`); 45 | await cdp.lockEth(addAmount); 46 | } else { 47 | console.log(`ratio is ${ratio}; doing nothing.`); 48 | } 49 | 50 | // optional: remove collateral if it's too high 51 | 52 | return [targetRatio, collateral, debt, collateralPrice, ratio]; 53 | }; 54 | -------------------------------------------------------------------------------- /accounts/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 | React App 23 | 24 | 25 | 28 |
29 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /react-example/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 22 | React App 23 | 24 | 25 | 28 |
29 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /react-example/src/actions/index.js: -------------------------------------------------------------------------------- 1 | import Maker from '@makerdao/dai'; 2 | 3 | export const started = () => ({ 4 | type: 'STARTED' 5 | }); 6 | 7 | export const makerCreated = () => ({ 8 | type: 'MAKER_CREATED' 9 | }); 10 | 11 | export const cdpOpened = () => ({ 12 | type: 'CDP_OPENED' 13 | }); 14 | 15 | export const ethLocked = () => ({ 16 | type: 'ETH_LOCKED' 17 | }); 18 | 19 | export const daiDrawn = () => ({ 20 | type: 'DAI_DRAWN' 21 | }); 22 | 23 | export const daiWiped = () => ({ 24 | type: 'DAI_WIPED' 25 | }); 26 | 27 | export const cdpShut = () => ({ 28 | type: 'CDP_SHUT' 29 | }); 30 | 31 | const drawDaiAsync = (maker, cdp) => async dispatch => { 32 | const defaultAccount = maker 33 | .service('token') 34 | .get('web3') 35 | .defaultAccount(); 36 | const dai = maker.service('token').getToken('DAI'); 37 | const txn = await cdp.drawDai(0.1); 38 | const balance = await dai.balanceOf(defaultAccount); 39 | console.log('Transaction from drawing Dai:', txn); 40 | console.log('Dai balance after drawing:', balance.toString()); 41 | dispatch(daiDrawn()); 42 | }; 43 | 44 | const wipeDebtAsync = (maker, cdp) => async dispatch => { 45 | const defaultAccount = maker 46 | .service('token') 47 | .get('web3') 48 | .defaultAccount(); 49 | const dai = maker.service('token').getToken('DAI'); 50 | const txn = await cdp.wipeDai(0.1); 51 | const balance = await dai.balanceOf(defaultAccount); 52 | 53 | console.log('Transaction from wiping Dai:', txn); 54 | console.log('Dai balance after wiping:', balance.toString()); 55 | dispatch(daiWiped()); 56 | }; 57 | 58 | const shutCdpAsync = cdp => async dispatch => { 59 | const txn = await cdp.shut(); 60 | console.log('Transaction from shutting the CDP:', txn); 61 | dispatch(cdpShut()); 62 | }; 63 | 64 | export const startAsync = () => async dispatch => { 65 | dispatch(started()); 66 | const maker = Maker.create(process.env.REACT_APP_NETWORK, { 67 | privateKey: process.env.REACT_APP_PRIVATE_KEY, 68 | overrideMetamask: true 69 | }); 70 | console.log('maker:', maker); 71 | dispatch(makerCreated()); 72 | const cdp = await maker.openCdp(); 73 | console.log('cdp:', cdp); 74 | dispatch(cdpOpened()); 75 | const lockEthTx = await cdp.lockEth(0.01); 76 | console.log('transaction to lock eth:', lockEthTx); 77 | dispatch(ethLocked()); 78 | await dispatch(drawDaiAsync(maker, cdp)); 79 | await dispatch(wipeDebtAsync(maker, cdp)); 80 | await dispatch(shutCdpAsync(cdp)); 81 | }; 82 | -------------------------------------------------------------------------------- /react-example/src/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /leverage/lib/leverage.js: -------------------------------------------------------------------------------- 1 | const invariant = require('invariant'); 2 | const Maker = require('@makerdao/dai'); 3 | 4 | // descriptive logging 5 | const debug = require('debug'); 6 | const log = { 7 | state: debug('leverage:state'), 8 | action: debug('leverage:action'), 9 | title: debug('leverage:header') 10 | }; 11 | 12 | // connect to blockchain using infura 13 | const maker = Maker.create(process.env.NETWORK, { 14 | privateKey: process.env.PRIVATE_KEY, 15 | log: false 16 | }); 17 | 18 | module.exports = async (iterations, priceFloor, principal) => { 19 | invariant( 20 | iterations !== undefined && 21 | priceFloor !== undefined && 22 | principal !== undefined, 23 | 'Not all parameters (iterations, priceFloor, principal) were received' 24 | ); 25 | 26 | log.title('Creating a leveraged cdp with the following parameters:'); 27 | log.title(`Iterations: ${iterations}`); 28 | log.title(`Price Floor: $${priceFloor}`); 29 | log.title(`Principal: ${principal} ETH`); 30 | 31 | await maker.authenticate(); 32 | const liquidationRatio = await maker.service('cdp').getLiquidationRatio(); 33 | const priceEth = (await maker.service('price').getEthPrice()).toNumber(); 34 | 35 | log.state(`Liquidation ratio: ${liquidationRatio}`); 36 | log.state(`Current price of ETH: ${priceEth}`); 37 | 38 | invariant( 39 | priceEth > priceFloor, 40 | 'Price floor must be below the current oracle price' 41 | ); 42 | 43 | log.action('opening CDP...'); 44 | const cdp = await maker.openCdp(); 45 | const id = await cdp.getId(); 46 | log.state(`CDP ID: ${id}`); 47 | 48 | // calculate a collateralization ratio that will achieve the given price floor 49 | const collatRatio = priceEth * liquidationRatio / priceFloor; 50 | log.state(`Target ratio: ${collatRatio}`); 51 | 52 | // lock up all of our principal 53 | await cdp.lockEth(principal); 54 | log.action(`locked ${principal} ETH`); 55 | 56 | //get initial peth collateral 57 | const initialPethCollateral = await cdp.getCollateralValue(Maker.PETH); 58 | log.state(`${principal} ETH is worth ${initialPethCollateral}`); 59 | 60 | // calculate how much Dai we need to draw in order 61 | // to achieve the desired collateralization ratio 62 | let drawAmt = Math.floor(principal * priceEth / collatRatio); 63 | await cdp.drawDai(drawAmt); 64 | log.action(`drew ${drawAmt} Dai`); 65 | 66 | // do `iterations` round trip(s) to the exchange 67 | for (let i = 0; i < iterations; i++) { 68 | // exchange the drawn Dai for W-ETH 69 | let tx = await maker.service('exchange').sellDai(drawAmt, Maker.WETH); 70 | 71 | // observe the amount of W-ETH received from the exchange 72 | // by calling `fillAmount` on the returned transaction object 73 | let returnedWeth = tx.fillAmount(); 74 | log.action(`exchanged ${drawAmt} Dai for ${returnedWeth}`); 75 | 76 | // lock all of the W-ETH we just received into our CDP 77 | await cdp.lockWeth(returnedWeth); 78 | log.action(`locked ${returnedWeth}`); 79 | 80 | // calculate how much Dai we need to draw in order to 81 | // re-attain our desired collateralization ratio 82 | drawAmt = Math.floor(returnedWeth.toNumber() * priceEth / collatRatio); 83 | await cdp.drawDai(drawAmt); 84 | log.action(`drew ${drawAmt} Dai`); 85 | } 86 | 87 | // get the final state of our CDP 88 | const [pethCollateral, debt] = await Promise.all([ 89 | cdp.getCollateralValue(Maker.PETH), 90 | cdp.getDebtValue() 91 | ]); 92 | 93 | const cdpState = { 94 | initialPethCollateral, 95 | pethCollateral, 96 | debt, 97 | id, 98 | principal, 99 | iterations, 100 | priceFloor, 101 | finalDai: drawAmt 102 | }; 103 | 104 | log.state(`Created CDP: ${JSON.stringify(cdpState)}`); 105 | return cdpState; 106 | }; 107 | -------------------------------------------------------------------------------- /accounts/src/registerServiceWorker.js: -------------------------------------------------------------------------------- 1 | // In production, we register a service worker to serve assets from local cache. 2 | 3 | // This lets the app load faster on subsequent visits in production, and gives 4 | // it offline capabilities. However, it also means that developers (and users) 5 | // will only see deployed updates on the "N+1" visit to a page, since previously 6 | // cached resources are updated in the background. 7 | 8 | // To learn more about the benefits of this model, read https://goo.gl/KwvDNy. 9 | // This link also includes instructions on opting out of this behavior. 10 | 11 | const isLocalhost = Boolean( 12 | window.location.hostname === 'localhost' || 13 | // [::1] is the IPv6 localhost address. 14 | window.location.hostname === '[::1]' || 15 | // 127.0.0.1/8 is considered localhost for IPv4. 16 | window.location.hostname.match( 17 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 18 | ) 19 | ); 20 | 21 | export default function register() { 22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 23 | // The URL constructor is available in all browsers that support SW. 24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location); 25 | if (publicUrl.origin !== window.location.origin) { 26 | // Our service worker won't work if PUBLIC_URL is on a different origin 27 | // from what our page is served on. This might happen if a CDN is used to 28 | // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 29 | return; 30 | } 31 | 32 | window.addEventListener('load', () => { 33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 34 | 35 | if (isLocalhost) { 36 | // This is running on localhost. Lets check if a service worker still exists or not. 37 | checkValidServiceWorker(swUrl); 38 | 39 | // Add some additional logging to localhost, pointing developers to the 40 | // service worker/PWA documentation. 41 | navigator.serviceWorker.ready.then(() => { 42 | console.log( 43 | 'This web app is being served cache-first by a service ' + 44 | 'worker. To learn more, visit https://goo.gl/SC7cgQ' 45 | ); 46 | }); 47 | } else { 48 | // Is not local host. Just register service worker 49 | registerValidSW(swUrl); 50 | } 51 | }); 52 | } 53 | } 54 | 55 | function registerValidSW(swUrl) { 56 | navigator.serviceWorker 57 | .register(swUrl) 58 | .then(registration => { 59 | registration.onupdatefound = () => { 60 | const installingWorker = registration.installing; 61 | installingWorker.onstatechange = () => { 62 | if (installingWorker.state === 'installed') { 63 | if (navigator.serviceWorker.controller) { 64 | // At this point, the old content will have been purged and 65 | // the fresh content will have been added to the cache. 66 | // It's the perfect time to display a "New content is 67 | // available; please refresh." message in your web app. 68 | console.log('New content is available; please refresh.'); 69 | } else { 70 | // At this point, everything has been precached. 71 | // It's the perfect time to display a 72 | // "Content is cached for offline use." message. 73 | console.log('Content is cached for offline use.'); 74 | } 75 | } 76 | }; 77 | }; 78 | }) 79 | .catch(error => { 80 | console.error('Error during service worker registration:', error); 81 | }); 82 | } 83 | 84 | function checkValidServiceWorker(swUrl) { 85 | // Check if the service worker can be found. If it can't reload the page. 86 | fetch(swUrl) 87 | .then(response => { 88 | // Ensure service worker exists, and that we really are getting a JS file. 89 | if ( 90 | response.status === 404 || 91 | response.headers.get('content-type').indexOf('javascript') === -1 92 | ) { 93 | // No service worker found. Probably a different app. Reload the page. 94 | navigator.serviceWorker.ready.then(registration => { 95 | registration.unregister().then(() => { 96 | window.location.reload(); 97 | }); 98 | }); 99 | } else { 100 | // Service worker found. Proceed as normal. 101 | registerValidSW(swUrl); 102 | } 103 | }) 104 | .catch(() => { 105 | console.log( 106 | 'No internet connection found. App is running in offline mode.' 107 | ); 108 | }); 109 | } 110 | 111 | export function unregister() { 112 | if ('serviceWorker' in navigator) { 113 | navigator.serviceWorker.ready.then(registration => { 114 | registration.unregister(); 115 | }); 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /react-example/src/registerServiceWorker.js: -------------------------------------------------------------------------------- 1 | // In production, we register a service worker to serve assets from local cache. 2 | 3 | // This lets the app load faster on subsequent visits in production, and gives 4 | // it offline capabilities. However, it also means that developers (and users) 5 | // will only see deployed updates on the "N+1" visit to a page, since previously 6 | // cached resources are updated in the background. 7 | 8 | // To learn more about the benefits of this model, read https://goo.gl/KwvDNy. 9 | // This link also includes instructions on opting out of this behavior. 10 | 11 | const isLocalhost = Boolean( 12 | window.location.hostname === 'localhost' || 13 | // [::1] is the IPv6 localhost address. 14 | window.location.hostname === '[::1]' || 15 | // 127.0.0.1/8 is considered localhost for IPv4. 16 | window.location.hostname.match( 17 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 18 | ) 19 | ); 20 | 21 | export default function register() { 22 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 23 | // The URL constructor is available in all browsers that support SW. 24 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location); 25 | if (publicUrl.origin !== window.location.origin) { 26 | // Our service worker won't work if PUBLIC_URL is on a different origin 27 | // from what our page is served on. This might happen if a CDN is used to 28 | // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 29 | return; 30 | } 31 | 32 | window.addEventListener('load', () => { 33 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 34 | 35 | if (isLocalhost) { 36 | // This is running on localhost. Lets check if a service worker still exists or not. 37 | checkValidServiceWorker(swUrl); 38 | 39 | // Add some additional logging to localhost, pointing developers to the 40 | // service worker/PWA documentation. 41 | navigator.serviceWorker.ready.then(() => { 42 | console.log( 43 | 'This web app is being served cache-first by a service ' + 44 | 'worker. To learn more, visit https://goo.gl/SC7cgQ' 45 | ); 46 | }); 47 | } else { 48 | // Is not local host. Just register service worker 49 | registerValidSW(swUrl); 50 | } 51 | }); 52 | } 53 | } 54 | 55 | function registerValidSW(swUrl) { 56 | navigator.serviceWorker 57 | .register(swUrl) 58 | .then(registration => { 59 | registration.onupdatefound = () => { 60 | const installingWorker = registration.installing; 61 | installingWorker.onstatechange = () => { 62 | if (installingWorker.state === 'installed') { 63 | if (navigator.serviceWorker.controller) { 64 | // At this point, the old content will have been purged and 65 | // the fresh content will have been added to the cache. 66 | // It's the perfect time to display a "New content is 67 | // available; please refresh." message in your web app. 68 | console.log('New content is available; please refresh.'); 69 | } else { 70 | // At this point, everything has been precached. 71 | // It's the perfect time to display a 72 | // "Content is cached for offline use." message. 73 | console.log('Content is cached for offline use.'); 74 | } 75 | } 76 | }; 77 | }; 78 | }) 79 | .catch(error => { 80 | console.error('Error during service worker registration:', error); 81 | }); 82 | } 83 | 84 | function checkValidServiceWorker(swUrl) { 85 | // Check if the service worker can be found. If it can't reload the page. 86 | fetch(swUrl) 87 | .then(response => { 88 | // Ensure service worker exists, and that we really are getting a JS file. 89 | if ( 90 | response.status === 404 || 91 | response.headers.get('content-type').indexOf('javascript') === -1 92 | ) { 93 | // No service worker found. Probably a different app. Reload the page. 94 | navigator.serviceWorker.ready.then(registration => { 95 | registration.unregister().then(() => { 96 | window.location.reload(); 97 | }); 98 | }); 99 | } else { 100 | // Service worker found. Proceed as normal. 101 | registerValidSW(swUrl); 102 | } 103 | }) 104 | .catch(() => { 105 | console.log( 106 | 'No internet connection found. App is running in offline mode.' 107 | ); 108 | }); 109 | } 110 | 111 | export function unregister() { 112 | if ('serviceWorker' in navigator) { 113 | navigator.serviceWorker.ready.then(registration => { 114 | registration.unregister(); 115 | }); 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /accounts/src/App.js: -------------------------------------------------------------------------------- 1 | import React, { Component, Fragment } from 'react'; 2 | import './App.css'; 3 | import setupMaker, { keys } from './setupMaker'; 4 | 5 | export default class App extends Component { 6 | constructor(props) { 7 | super(props); 8 | this.state = { 9 | accounts: [], 10 | cdps: [], 11 | useMetaMask: window.location.search.includes('metamask') 12 | }; 13 | } 14 | 15 | componentDidMount() { 16 | setupMaker(this.state.useMetaMask) 17 | .then(maker => { 18 | this.setState({ maker }); 19 | this.updateAccounts(maker); 20 | }) 21 | .catch(err => { 22 | console.log(err); 23 | alert("Couldn't set up Maker: " + err.message); 24 | }); 25 | } 26 | 27 | updateAccounts = async maker => { 28 | if (!maker) maker = this.state.maker; 29 | const accounts = await Promise.all( 30 | maker.listAccounts().map(async account => { 31 | return { 32 | ...account, 33 | balance: await maker.getToken('ETH').balanceOf(account.address) 34 | }; 35 | }) 36 | ); 37 | this.setState({ 38 | accounts, 39 | currentAccount: maker.currentAccount() 40 | }); 41 | }; 42 | 43 | useAccount = async name => { 44 | const { maker } = this.state; 45 | maker.useAccount(name); 46 | await this.updateAccounts(); 47 | }; 48 | 49 | openCdp = async () => { 50 | const { maker } = this.state; 51 | const cdp = await maker.openCdp(); 52 | const id = await cdp.getId(); 53 | const info = await cdp.getInfo(); 54 | this.setState(({ cdps }) => ({ 55 | cdps: [...cdps, { id, owner: info.lad.toLowerCase() }] 56 | })); 57 | await this.updateAccounts(); 58 | }; 59 | 60 | render() { 61 | const { accounts, currentAccount, cdps, maker, useMetaMask } = this.state; 62 | return ( 63 |
64 |
65 | Dai.js demo: Multiple accounts & hardware wallet integration 66 |
67 |
68 |
69 |

Add accounts

70 | this.setState({ path })} 75 | /> 76 |
77 |
78 |

79 | Using account:{' '} 80 | this.useAccount(name)} 84 | /> 85 |

86 | 90 | 91 |
92 |
93 | {useMetaMask ? ( 94 | 95 | Using MetaMask provider for all transactions. 96 |
97 | Switch to HTTP provider 98 |
99 | ) : ( 100 | 101 | Using HTTP provider for all transactions from non-Metamask 102 | accounts. 103 |
104 | Switch to MetaMask 105 |
106 | )} 107 |
108 |
109 | 110 |
111 | ); 112 | } 113 | } 114 | 115 | const DataTables = ({ accounts, currentAccount, cdps }) => ( 116 |
117 |

Available accounts

118 | 119 |

CDPs created

120 | 121 |
122 | ); 123 | 124 | class AddAccounts extends Component { 125 | constructor(props) { 126 | super(props); 127 | this.state = { 128 | path: "44'/60'/0'/0/0", 129 | keyIndex: 1, 130 | trezorIndex: 1, 131 | ledgerIndex: 1 132 | }; 133 | } 134 | 135 | add = async type => { 136 | const { maker } = this.props; 137 | const { keyIndex, path, trezorIndex, ledgerIndex } = this.state; 138 | try { 139 | switch (type) { 140 | case 'browser': 141 | await maker.addAccount('metamask', { type: 'browser' }); 142 | break; 143 | case 'provider': 144 | await maker.addAccount('fromProvider', { type: 'provider' }); 145 | break; 146 | case 'privateKey': { 147 | if (keyIndex >= keys.length) return alert('No more keys'); 148 | await maker.addAccount('test' + (keyIndex + 1), { 149 | type: 'privateKey', 150 | key: keys[keyIndex] 151 | }); 152 | this.setState({ keyIndex: keyIndex + 1 }); 153 | break; 154 | } 155 | case 'trezor': 156 | await maker.addAccount('myTrezor' + trezorIndex, { 157 | type: 'trezor', 158 | path 159 | }); 160 | this.setState({ trezorIndex: trezorIndex + 1 }); 161 | break; 162 | case 'ledgerLive': 163 | await maker.addAccount('myLedger' + ledgerIndex, { 164 | type: 'ledger', 165 | accountsLength: 5, 166 | choose: (addresses, callback) => { 167 | this.setState({ 168 | accountChoices: addresses, 169 | pickAccount: callback 170 | }); 171 | } 172 | }); 173 | this.setState({ ledgerIndex: ledgerIndex + 1 }); 174 | break; 175 | case 'ledgerLegacy': 176 | await maker.addAccount('myLedger' + ledgerIndex, { 177 | type: 'ledger', 178 | legacy: true, 179 | accountsLength: 5, 180 | choose: (addresses, callback) => { 181 | this.setState({ 182 | accountChoices: addresses, 183 | pickAccount: callback 184 | }); 185 | } 186 | }); 187 | this.setState({ ledgerIndex: ledgerIndex + 1 }); 188 | break; 189 | default: 190 | throw new Error('unknown type: ' + type); 191 | } 192 | await this.props.updateAccounts(); 193 | } catch (err) { 194 | alert("Couldn't add account: " + err.message); 195 | } 196 | }; 197 | 198 | pick(address) { 199 | this.state.pickAccount(null, address); 200 | this.setState({ accountChoices: null }); 201 | } 202 | 203 | render() { 204 | const { path, accountChoices } = this.state; 205 | return ( 206 |
207 | 208 | 209 | 210 |
211 | 212 | 213 | 214 |
215 | 223 | {accountChoices && ( 224 |
225 |
Pick an address
226 | {accountChoices.map(address => ( 227 |
228 | {address} 229 | 230 |
231 | ))} 232 |
233 | )} 234 |
235 | ); 236 | } 237 | } 238 | 239 | class Transfer extends Component { 240 | constructor(props) { 241 | super(props); 242 | this.state = {}; 243 | } 244 | 245 | componentDidUpdate() { 246 | if (!this.state.toName && this.props.accounts.length > 1) { 247 | this.setState({ toName: this.props.accounts[1].name }); 248 | } 249 | } 250 | 251 | transfer = async () => { 252 | const { toName } = this.state; 253 | const { 254 | currentAccount: { name: fromName }, 255 | accounts, 256 | maker 257 | } = this.props; 258 | if (!toName) return alert('Pick a recipient.'); 259 | if (fromName === toName) 260 | return alert('Sender and receiver must be different.'); 261 | const sender = accounts.find(a => a.name === fromName); 262 | const receiver = accounts.find(a => a.name === toName); 263 | 264 | maker.useAccount(sender.name); 265 | await maker.getToken('ETH').transfer(receiver.address, 1); 266 | await this.props.updateAccounts(); 267 | }; 268 | 269 | render() { 270 | return ( 271 |

272 | Send 1 ETH to{' '} 273 | this.setState({ toName })} 277 | />{' '} 278 | 279 |

280 | ); 281 | } 282 | } 283 | 284 | const AccountSelect = ({ value, onSelect, accounts }) => ( 285 | 292 | ); 293 | 294 | const CdpsTable = ({ cdps }) => ( 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | {cdps.map(({ id, owner }) => ( 304 | 305 | 306 | 307 | 308 | ))} 309 | 310 |
idowner
{id}{owner}
311 | ); 312 | 313 | const AccountTable = ({ accounts }) => ( 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | {accounts.map(({ name, address, balance, type }) => ( 325 | 326 | 327 | 328 | 329 | 330 | 331 | ))} 332 | 333 |
nametypeaddressETH balance
{name}{type}{address}{balance}
334 | ); 335 | -------------------------------------------------------------------------------- /topup/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0-beta.35": 6 | version "7.0.0-beta.51" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.51.tgz#bd71d9b192af978df915829d39d4094456439a0c" 8 | dependencies: 9 | "@babel/highlight" "7.0.0-beta.51" 10 | 11 | "@babel/highlight@7.0.0-beta.51": 12 | version "7.0.0-beta.51" 13 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.51.tgz#e8844ae25a1595ccfd42b89623b4376ca06d225d" 14 | dependencies: 15 | chalk "^2.0.0" 16 | esutils "^2.0.2" 17 | js-tokens "^3.0.0" 18 | 19 | "@makerdao/dai@^0.5.6": 20 | version "0.5.6" 21 | resolved "https://registry.yarnpkg.com/@makerdao/dai/-/dai-0.5.6.tgz#7dc1d4baef8bdf953622089dbc7d988326c64311" 22 | dependencies: 23 | babel-polyfill "^6.26.0" 24 | bignumber.js "^7.2.1" 25 | bunyan "^1.8.12" 26 | chalk "^2.4.1" 27 | debug "^3.1.0" 28 | ethers "^3.0.15" 29 | ethers-web3-bridge "0.0.1" 30 | eventemitter2 "^5.0.1" 31 | lodash.isequal "^4.5.0" 32 | lodash.merge "^4.6.1" 33 | lodash.times "^4.3.2" 34 | lodash.uniq "^4.5.0" 35 | lodash.values "^4.3.0" 36 | toposort "^2.0.2" 37 | web3 "^0.20.6" 38 | 39 | abab@^1.0.4: 40 | version "1.0.4" 41 | resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" 42 | 43 | abbrev@1: 44 | version "1.1.1" 45 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 46 | 47 | acorn-globals@^4.1.0: 48 | version "4.1.0" 49 | resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" 50 | dependencies: 51 | acorn "^5.0.0" 52 | 53 | acorn@^5.0.0, acorn@^5.3.0: 54 | version "5.7.1" 55 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8" 56 | 57 | aes-js@3.0.0: 58 | version "3.0.0" 59 | resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" 60 | 61 | ajv@^5.1.0: 62 | version "5.5.2" 63 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 64 | dependencies: 65 | co "^4.6.0" 66 | fast-deep-equal "^1.0.0" 67 | fast-json-stable-stringify "^2.0.0" 68 | json-schema-traverse "^0.3.0" 69 | 70 | align-text@^0.1.1, align-text@^0.1.3: 71 | version "0.1.4" 72 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 73 | dependencies: 74 | kind-of "^3.0.2" 75 | longest "^1.0.1" 76 | repeat-string "^1.5.2" 77 | 78 | amdefine@>=0.0.4: 79 | version "1.0.1" 80 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 81 | 82 | ansi-escapes@^3.0.0: 83 | version "3.1.0" 84 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" 85 | 86 | ansi-regex@^2.0.0: 87 | version "2.1.1" 88 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 89 | 90 | ansi-regex@^3.0.0: 91 | version "3.0.0" 92 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 93 | 94 | ansi-styles@^2.2.1: 95 | version "2.2.1" 96 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 97 | 98 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 99 | version "3.2.1" 100 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 101 | dependencies: 102 | color-convert "^1.9.0" 103 | 104 | anymatch@^1.3.0: 105 | version "1.3.2" 106 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 107 | dependencies: 108 | micromatch "^2.1.5" 109 | normalize-path "^2.0.0" 110 | 111 | anymatch@^2.0.0: 112 | version "2.0.0" 113 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 114 | dependencies: 115 | micromatch "^3.1.4" 116 | normalize-path "^2.1.1" 117 | 118 | append-transform@^1.0.0: 119 | version "1.0.0" 120 | resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-1.0.0.tgz#046a52ae582a228bd72f58acfbe2967c678759ab" 121 | dependencies: 122 | default-require-extensions "^2.0.0" 123 | 124 | aproba@^1.0.3: 125 | version "1.2.0" 126 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 127 | 128 | are-we-there-yet@~1.1.2: 129 | version "1.1.5" 130 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" 131 | dependencies: 132 | delegates "^1.0.0" 133 | readable-stream "^2.0.6" 134 | 135 | argparse@^1.0.7: 136 | version "1.0.10" 137 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 138 | dependencies: 139 | sprintf-js "~1.0.2" 140 | 141 | arr-diff@^2.0.0: 142 | version "2.0.0" 143 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 144 | dependencies: 145 | arr-flatten "^1.0.1" 146 | 147 | arr-diff@^4.0.0: 148 | version "4.0.0" 149 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 150 | 151 | arr-flatten@^1.0.1, arr-flatten@^1.1.0: 152 | version "1.1.0" 153 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 154 | 155 | arr-union@^3.1.0: 156 | version "3.1.0" 157 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 158 | 159 | array-equal@^1.0.0: 160 | version "1.0.0" 161 | resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" 162 | 163 | array-unique@^0.2.1: 164 | version "0.2.1" 165 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 166 | 167 | array-unique@^0.3.2: 168 | version "0.3.2" 169 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 170 | 171 | arrify@^1.0.1: 172 | version "1.0.1" 173 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 174 | 175 | asn1@~0.2.3: 176 | version "0.2.3" 177 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 178 | 179 | assert-plus@1.0.0, assert-plus@^1.0.0: 180 | version "1.0.0" 181 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 182 | 183 | assign-symbols@^1.0.0: 184 | version "1.0.0" 185 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 186 | 187 | astral-regex@^1.0.0: 188 | version "1.0.0" 189 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 190 | 191 | async-each@^1.0.0: 192 | version "1.0.1" 193 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 194 | 195 | async-limiter@~1.0.0: 196 | version "1.0.0" 197 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 198 | 199 | async@^1.4.0: 200 | version "1.5.2" 201 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 202 | 203 | async@^2.1.4: 204 | version "2.6.1" 205 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" 206 | dependencies: 207 | lodash "^4.17.10" 208 | 209 | asynckit@^0.4.0: 210 | version "0.4.0" 211 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 212 | 213 | atob@^2.1.1: 214 | version "2.1.1" 215 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" 216 | 217 | aws-sign2@~0.7.0: 218 | version "0.7.0" 219 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 220 | 221 | aws4@^1.6.0: 222 | version "1.7.0" 223 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" 224 | 225 | babel-cli@^6.26.0: 226 | version "6.26.0" 227 | resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" 228 | dependencies: 229 | babel-core "^6.26.0" 230 | babel-polyfill "^6.26.0" 231 | babel-register "^6.26.0" 232 | babel-runtime "^6.26.0" 233 | commander "^2.11.0" 234 | convert-source-map "^1.5.0" 235 | fs-readdir-recursive "^1.0.0" 236 | glob "^7.1.2" 237 | lodash "^4.17.4" 238 | output-file-sync "^1.1.2" 239 | path-is-absolute "^1.0.1" 240 | slash "^1.0.0" 241 | source-map "^0.5.6" 242 | v8flags "^2.1.1" 243 | optionalDependencies: 244 | chokidar "^1.6.1" 245 | 246 | babel-code-frame@^6.26.0: 247 | version "6.26.0" 248 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 249 | dependencies: 250 | chalk "^1.1.3" 251 | esutils "^2.0.2" 252 | js-tokens "^3.0.2" 253 | 254 | babel-core@^6.0.0, babel-core@^6.26.0: 255 | version "6.26.3" 256 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" 257 | dependencies: 258 | babel-code-frame "^6.26.0" 259 | babel-generator "^6.26.0" 260 | babel-helpers "^6.24.1" 261 | babel-messages "^6.23.0" 262 | babel-register "^6.26.0" 263 | babel-runtime "^6.26.0" 264 | babel-template "^6.26.0" 265 | babel-traverse "^6.26.0" 266 | babel-types "^6.26.0" 267 | babylon "^6.18.0" 268 | convert-source-map "^1.5.1" 269 | debug "^2.6.9" 270 | json5 "^0.5.1" 271 | lodash "^4.17.4" 272 | minimatch "^3.0.4" 273 | path-is-absolute "^1.0.1" 274 | private "^0.1.8" 275 | slash "^1.0.0" 276 | source-map "^0.5.7" 277 | 278 | babel-generator@^6.18.0, babel-generator@^6.26.0: 279 | version "6.26.1" 280 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" 281 | dependencies: 282 | babel-messages "^6.23.0" 283 | babel-runtime "^6.26.0" 284 | babel-types "^6.26.0" 285 | detect-indent "^4.0.0" 286 | jsesc "^1.3.0" 287 | lodash "^4.17.4" 288 | source-map "^0.5.7" 289 | trim-right "^1.0.1" 290 | 291 | babel-helpers@^6.24.1: 292 | version "6.24.1" 293 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 294 | dependencies: 295 | babel-runtime "^6.22.0" 296 | babel-template "^6.24.1" 297 | 298 | babel-jest@^23.0.1: 299 | version "23.0.1" 300 | resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.0.1.tgz#bbad3bf523fb202da05ed0a6540b48c84eed13a6" 301 | dependencies: 302 | babel-plugin-istanbul "^4.1.6" 303 | babel-preset-jest "^23.0.1" 304 | 305 | babel-messages@^6.23.0: 306 | version "6.23.0" 307 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 308 | dependencies: 309 | babel-runtime "^6.22.0" 310 | 311 | babel-plugin-istanbul@^4.1.6: 312 | version "4.1.6" 313 | resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" 314 | dependencies: 315 | babel-plugin-syntax-object-rest-spread "^6.13.0" 316 | find-up "^2.1.0" 317 | istanbul-lib-instrument "^1.10.1" 318 | test-exclude "^4.2.1" 319 | 320 | babel-plugin-jest-hoist@^23.0.1: 321 | version "23.0.1" 322 | resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.0.1.tgz#eaa11c964563aea9c21becef2bdf7853f7f3c148" 323 | 324 | babel-plugin-syntax-object-rest-spread@^6.13.0: 325 | version "6.13.0" 326 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" 327 | 328 | babel-polyfill@^6.26.0: 329 | version "6.26.0" 330 | resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" 331 | dependencies: 332 | babel-runtime "^6.26.0" 333 | core-js "^2.5.0" 334 | regenerator-runtime "^0.10.5" 335 | 336 | babel-preset-jest@^23.0.1: 337 | version "23.0.1" 338 | resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.0.1.tgz#631cc545c6cf021943013bcaf22f45d87fe62198" 339 | dependencies: 340 | babel-plugin-jest-hoist "^23.0.1" 341 | babel-plugin-syntax-object-rest-spread "^6.13.0" 342 | 343 | babel-register@^6.26.0: 344 | version "6.26.0" 345 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" 346 | dependencies: 347 | babel-core "^6.26.0" 348 | babel-runtime "^6.26.0" 349 | core-js "^2.5.0" 350 | home-or-tmp "^2.0.0" 351 | lodash "^4.17.4" 352 | mkdirp "^0.5.1" 353 | source-map-support "^0.4.15" 354 | 355 | babel-runtime@^6.22.0, babel-runtime@^6.26.0: 356 | version "6.26.0" 357 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" 358 | dependencies: 359 | core-js "^2.4.0" 360 | regenerator-runtime "^0.11.0" 361 | 362 | babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: 363 | version "6.26.0" 364 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" 365 | dependencies: 366 | babel-runtime "^6.26.0" 367 | babel-traverse "^6.26.0" 368 | babel-types "^6.26.0" 369 | babylon "^6.18.0" 370 | lodash "^4.17.4" 371 | 372 | babel-traverse@^6.18.0, babel-traverse@^6.26.0: 373 | version "6.26.0" 374 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" 375 | dependencies: 376 | babel-code-frame "^6.26.0" 377 | babel-messages "^6.23.0" 378 | babel-runtime "^6.26.0" 379 | babel-types "^6.26.0" 380 | babylon "^6.18.0" 381 | debug "^2.6.8" 382 | globals "^9.18.0" 383 | invariant "^2.2.2" 384 | lodash "^4.17.4" 385 | 386 | babel-types@^6.18.0, babel-types@^6.26.0: 387 | version "6.26.0" 388 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" 389 | dependencies: 390 | babel-runtime "^6.26.0" 391 | esutils "^2.0.2" 392 | lodash "^4.17.4" 393 | to-fast-properties "^1.0.3" 394 | 395 | babylon@^6.18.0: 396 | version "6.18.0" 397 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" 398 | 399 | balanced-match@^1.0.0: 400 | version "1.0.0" 401 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 402 | 403 | base@^0.11.1: 404 | version "0.11.2" 405 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 406 | dependencies: 407 | cache-base "^1.0.1" 408 | class-utils "^0.3.5" 409 | component-emitter "^1.2.1" 410 | define-property "^1.0.0" 411 | isobject "^3.0.1" 412 | mixin-deep "^1.2.0" 413 | pascalcase "^0.1.1" 414 | 415 | bcrypt-pbkdf@^1.0.0: 416 | version "1.0.1" 417 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 418 | dependencies: 419 | tweetnacl "^0.14.3" 420 | 421 | bignumber.js@^7.2.1: 422 | version "7.2.1" 423 | resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" 424 | 425 | "bignumber.js@git+https://github.com/frozeman/bignumber.js-nolookahead.git": 426 | version "2.0.7" 427 | resolved "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" 428 | 429 | binary-extensions@^1.0.0: 430 | version "1.11.0" 431 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 432 | 433 | bn.js@^4.4.0: 434 | version "4.11.8" 435 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" 436 | 437 | brace-expansion@^1.1.7: 438 | version "1.1.11" 439 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 440 | dependencies: 441 | balanced-match "^1.0.0" 442 | concat-map "0.0.1" 443 | 444 | braces@^1.8.2: 445 | version "1.8.5" 446 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 447 | dependencies: 448 | expand-range "^1.8.1" 449 | preserve "^0.2.0" 450 | repeat-element "^1.1.2" 451 | 452 | braces@^2.3.1: 453 | version "2.3.2" 454 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 455 | dependencies: 456 | arr-flatten "^1.1.0" 457 | array-unique "^0.3.2" 458 | extend-shallow "^2.0.1" 459 | fill-range "^4.0.0" 460 | isobject "^3.0.1" 461 | repeat-element "^1.1.2" 462 | snapdragon "^0.8.1" 463 | snapdragon-node "^2.0.1" 464 | split-string "^3.0.2" 465 | to-regex "^3.0.1" 466 | 467 | brorand@^1.0.1: 468 | version "1.1.0" 469 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 470 | 471 | browser-process-hrtime@^0.1.2: 472 | version "0.1.2" 473 | resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" 474 | 475 | browser-resolve@^1.11.2: 476 | version "1.11.3" 477 | resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" 478 | dependencies: 479 | resolve "1.1.7" 480 | 481 | bser@^2.0.0: 482 | version "2.0.0" 483 | resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" 484 | dependencies: 485 | node-int64 "^0.4.0" 486 | 487 | buffer-from@^1.0.0: 488 | version "1.1.0" 489 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 490 | 491 | builtin-modules@^1.0.0: 492 | version "1.1.1" 493 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 494 | 495 | bunyan@^1.8.12: 496 | version "1.8.12" 497 | resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.12.tgz#f150f0f6748abdd72aeae84f04403be2ef113797" 498 | optionalDependencies: 499 | dtrace-provider "~0.8" 500 | moment "^2.10.6" 501 | mv "~2" 502 | safe-json-stringify "~1" 503 | 504 | cache-base@^1.0.1: 505 | version "1.0.1" 506 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 507 | dependencies: 508 | collection-visit "^1.0.0" 509 | component-emitter "^1.2.1" 510 | get-value "^2.0.6" 511 | has-value "^1.0.0" 512 | isobject "^3.0.1" 513 | set-value "^2.0.0" 514 | to-object-path "^0.3.0" 515 | union-value "^1.0.0" 516 | unset-value "^1.0.0" 517 | 518 | callsites@^2.0.0: 519 | version "2.0.0" 520 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" 521 | 522 | camelcase@^1.0.2: 523 | version "1.2.1" 524 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 525 | 526 | camelcase@^4.1.0: 527 | version "4.1.0" 528 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 529 | 530 | capture-exit@^1.2.0: 531 | version "1.2.0" 532 | resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" 533 | dependencies: 534 | rsvp "^3.3.3" 535 | 536 | caseless@~0.12.0: 537 | version "0.12.0" 538 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 539 | 540 | center-align@^0.1.1: 541 | version "0.1.3" 542 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 543 | dependencies: 544 | align-text "^0.1.3" 545 | lazy-cache "^1.0.3" 546 | 547 | chalk@^1.1.3: 548 | version "1.1.3" 549 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 550 | dependencies: 551 | ansi-styles "^2.2.1" 552 | escape-string-regexp "^1.0.2" 553 | has-ansi "^2.0.0" 554 | strip-ansi "^3.0.0" 555 | supports-color "^2.0.0" 556 | 557 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.1: 558 | version "2.4.1" 559 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 560 | dependencies: 561 | ansi-styles "^3.2.1" 562 | escape-string-regexp "^1.0.5" 563 | supports-color "^5.3.0" 564 | 565 | chokidar@^1.6.1: 566 | version "1.7.0" 567 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 568 | dependencies: 569 | anymatch "^1.3.0" 570 | async-each "^1.0.0" 571 | glob-parent "^2.0.0" 572 | inherits "^2.0.1" 573 | is-binary-path "^1.0.0" 574 | is-glob "^2.0.0" 575 | path-is-absolute "^1.0.0" 576 | readdirp "^2.0.0" 577 | optionalDependencies: 578 | fsevents "^1.0.0" 579 | 580 | chownr@^1.0.1: 581 | version "1.0.1" 582 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" 583 | 584 | ci-info@^1.0.0: 585 | version "1.1.3" 586 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" 587 | 588 | class-utils@^0.3.5: 589 | version "0.3.6" 590 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 591 | dependencies: 592 | arr-union "^3.1.0" 593 | define-property "^0.2.5" 594 | isobject "^3.0.0" 595 | static-extend "^0.1.1" 596 | 597 | cliui@^2.1.0: 598 | version "2.1.0" 599 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 600 | dependencies: 601 | center-align "^0.1.1" 602 | right-align "^0.1.1" 603 | wordwrap "0.0.2" 604 | 605 | cliui@^4.0.0: 606 | version "4.1.0" 607 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 608 | dependencies: 609 | string-width "^2.1.1" 610 | strip-ansi "^4.0.0" 611 | wrap-ansi "^2.0.0" 612 | 613 | co@^4.6.0: 614 | version "4.6.0" 615 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 616 | 617 | code-point-at@^1.0.0: 618 | version "1.1.0" 619 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 620 | 621 | collection-visit@^1.0.0: 622 | version "1.0.0" 623 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 624 | dependencies: 625 | map-visit "^1.0.0" 626 | object-visit "^1.0.0" 627 | 628 | color-convert@^1.9.0: 629 | version "1.9.2" 630 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" 631 | dependencies: 632 | color-name "1.1.1" 633 | 634 | color-name@1.1.1: 635 | version "1.1.1" 636 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" 637 | 638 | combined-stream@1.0.6, combined-stream@~1.0.5: 639 | version "1.0.6" 640 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 641 | dependencies: 642 | delayed-stream "~1.0.0" 643 | 644 | commander@^2.11.0: 645 | version "2.16.0" 646 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50" 647 | 648 | compare-versions@^3.1.0: 649 | version "3.3.0" 650 | resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.3.0.tgz#af93ea705a96943f622ab309578b9b90586f39c3" 651 | 652 | component-emitter@^1.2.1: 653 | version "1.2.1" 654 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 655 | 656 | concat-map@0.0.1: 657 | version "0.0.1" 658 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 659 | 660 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 661 | version "1.1.0" 662 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 663 | 664 | convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: 665 | version "1.5.1" 666 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" 667 | 668 | cookiejar@^2.1.1: 669 | version "2.1.2" 670 | resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" 671 | 672 | copy-descriptor@^0.1.0: 673 | version "0.1.1" 674 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 675 | 676 | core-js@^2.4.0, core-js@^2.5.0: 677 | version "2.5.7" 678 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" 679 | 680 | core-util-is@1.0.2, core-util-is@~1.0.0: 681 | version "1.0.2" 682 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 683 | 684 | cross-spawn@^5.0.1: 685 | version "5.1.0" 686 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 687 | dependencies: 688 | lru-cache "^4.0.1" 689 | shebang-command "^1.2.0" 690 | which "^1.2.9" 691 | 692 | crypto-js@^3.1.4: 693 | version "3.1.8" 694 | resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5" 695 | 696 | cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": 697 | version "0.3.2" 698 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" 699 | 700 | "cssstyle@>= 0.3.1 < 0.4.0": 701 | version "0.3.1" 702 | resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.3.1.tgz#6da9b4cff1bc5d716e6e5fe8e04fcb1b50a49adf" 703 | dependencies: 704 | cssom "0.3.x" 705 | 706 | dashdash@^1.12.0: 707 | version "1.14.1" 708 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 709 | dependencies: 710 | assert-plus "^1.0.0" 711 | 712 | data-urls@^1.0.0: 713 | version "1.0.0" 714 | resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.0.tgz#24802de4e81c298ea8a9388bb0d8e461c774684f" 715 | dependencies: 716 | abab "^1.0.4" 717 | whatwg-mimetype "^2.0.0" 718 | whatwg-url "^6.4.0" 719 | 720 | debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: 721 | version "2.6.9" 722 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 723 | dependencies: 724 | ms "2.0.0" 725 | 726 | debug@^3.1.0: 727 | version "3.1.0" 728 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 729 | dependencies: 730 | ms "2.0.0" 731 | 732 | decamelize@^1.0.0, decamelize@^1.1.1: 733 | version "1.2.0" 734 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 735 | 736 | decode-uri-component@^0.2.0: 737 | version "0.2.0" 738 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 739 | 740 | deep-extend@^0.6.0: 741 | version "0.6.0" 742 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 743 | 744 | deep-is@~0.1.3: 745 | version "0.1.3" 746 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 747 | 748 | default-require-extensions@^2.0.0: 749 | version "2.0.0" 750 | resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" 751 | dependencies: 752 | strip-bom "^3.0.0" 753 | 754 | define-properties@^1.1.2: 755 | version "1.1.2" 756 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" 757 | dependencies: 758 | foreach "^2.0.5" 759 | object-keys "^1.0.8" 760 | 761 | define-property@^0.2.5: 762 | version "0.2.5" 763 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 764 | dependencies: 765 | is-descriptor "^0.1.0" 766 | 767 | define-property@^1.0.0: 768 | version "1.0.0" 769 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 770 | dependencies: 771 | is-descriptor "^1.0.0" 772 | 773 | define-property@^2.0.2: 774 | version "2.0.2" 775 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 776 | dependencies: 777 | is-descriptor "^1.0.2" 778 | isobject "^3.0.1" 779 | 780 | delayed-stream@~1.0.0: 781 | version "1.0.0" 782 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 783 | 784 | delegates@^1.0.0: 785 | version "1.0.0" 786 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 787 | 788 | detect-indent@^4.0.0: 789 | version "4.0.0" 790 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 791 | dependencies: 792 | repeating "^2.0.0" 793 | 794 | detect-libc@^1.0.2: 795 | version "1.0.3" 796 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 797 | 798 | detect-newline@^2.1.0: 799 | version "2.1.0" 800 | resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" 801 | 802 | diff@^3.2.0: 803 | version "3.5.0" 804 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 805 | 806 | domexception@^1.0.0: 807 | version "1.0.1" 808 | resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" 809 | dependencies: 810 | webidl-conversions "^4.0.2" 811 | 812 | dtrace-provider@~0.8: 813 | version "0.8.7" 814 | resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.7.tgz#dc939b4d3e0620cfe0c1cd803d0d2d7ed04ffd04" 815 | dependencies: 816 | nan "^2.10.0" 817 | 818 | ecc-jsbn@~0.1.1: 819 | version "0.1.1" 820 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 821 | dependencies: 822 | jsbn "~0.1.0" 823 | 824 | elliptic@6.3.3: 825 | version "6.3.3" 826 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.3.tgz#5482d9646d54bcb89fd7d994fc9e2e9568876e3f" 827 | dependencies: 828 | bn.js "^4.4.0" 829 | brorand "^1.0.1" 830 | hash.js "^1.0.0" 831 | inherits "^2.0.1" 832 | 833 | error-ex@^1.2.0: 834 | version "1.3.1" 835 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 836 | dependencies: 837 | is-arrayish "^0.2.1" 838 | 839 | es-abstract@^1.5.1: 840 | version "1.12.0" 841 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" 842 | dependencies: 843 | es-to-primitive "^1.1.1" 844 | function-bind "^1.1.1" 845 | has "^1.0.1" 846 | is-callable "^1.1.3" 847 | is-regex "^1.0.4" 848 | 849 | es-to-primitive@^1.1.1: 850 | version "1.1.1" 851 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" 852 | dependencies: 853 | is-callable "^1.1.1" 854 | is-date-object "^1.0.1" 855 | is-symbol "^1.0.1" 856 | 857 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 858 | version "1.0.5" 859 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 860 | 861 | escodegen@^1.9.0: 862 | version "1.10.0" 863 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.10.0.tgz#f647395de22519fbd0d928ffcf1d17e0dec2603e" 864 | dependencies: 865 | esprima "^3.1.3" 866 | estraverse "^4.2.0" 867 | esutils "^2.0.2" 868 | optionator "^0.8.1" 869 | optionalDependencies: 870 | source-map "~0.6.1" 871 | 872 | esprima@^3.1.3: 873 | version "3.1.3" 874 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 875 | 876 | esprima@^4.0.0: 877 | version "4.0.0" 878 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 879 | 880 | estraverse@^4.2.0: 881 | version "4.2.0" 882 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 883 | 884 | esutils@^2.0.2: 885 | version "2.0.2" 886 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 887 | 888 | ethers-providers@^2.1.19: 889 | version "2.1.19" 890 | resolved "https://registry.yarnpkg.com/ethers-providers/-/ethers-providers-2.1.19.tgz#d597e298f70cfbf8da207c303af0a5cbed5b4cd2" 891 | dependencies: 892 | ethers-utils "^2.1.0" 893 | inherits "2.0.1" 894 | xmlhttprequest "1.8.0" 895 | 896 | ethers-utils@^2.1.0, ethers-utils@^2.1.11: 897 | version "2.1.11" 898 | resolved "https://registry.yarnpkg.com/ethers-utils/-/ethers-utils-2.1.11.tgz#b27535ca3226118be300211c39c896b1e5e21641" 899 | dependencies: 900 | bn.js "^4.4.0" 901 | hash.js "^1.0.0" 902 | js-sha3 "0.5.7" 903 | xmlhttprequest "1.8.0" 904 | 905 | ethers-web3-bridge@0.0.1: 906 | version "0.0.1" 907 | resolved "https://registry.yarnpkg.com/ethers-web3-bridge/-/ethers-web3-bridge-0.0.1.tgz#bdd5792ecad08609abecd8055acc085cdf388588" 908 | dependencies: 909 | ethers-providers "^2.1.19" 910 | ethers-utils "^2.1.11" 911 | 912 | ethers@^3.0.15: 913 | version "3.0.26" 914 | resolved "https://registry.yarnpkg.com/ethers/-/ethers-3.0.26.tgz#8b6d9d45c30e4a107cd2467329f2280d650d49f0" 915 | dependencies: 916 | aes-js "3.0.0" 917 | bn.js "^4.4.0" 918 | elliptic "6.3.3" 919 | hash.js "^1.0.0" 920 | inherits "2.0.1" 921 | js-sha3 "0.5.7" 922 | scrypt-js "2.0.3" 923 | setimmediate "1.0.4" 924 | uuid "2.0.1" 925 | xmlhttprequest "1.8.0" 926 | 927 | eventemitter2@^5.0.1: 928 | version "5.0.1" 929 | resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452" 930 | 931 | exec-sh@^0.2.0: 932 | version "0.2.1" 933 | resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" 934 | dependencies: 935 | merge "^1.1.3" 936 | 937 | execa@^0.7.0: 938 | version "0.7.0" 939 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 940 | dependencies: 941 | cross-spawn "^5.0.1" 942 | get-stream "^3.0.0" 943 | is-stream "^1.1.0" 944 | npm-run-path "^2.0.0" 945 | p-finally "^1.0.0" 946 | signal-exit "^3.0.0" 947 | strip-eof "^1.0.0" 948 | 949 | exit@^0.1.2: 950 | version "0.1.2" 951 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" 952 | 953 | expand-brackets@^0.1.4: 954 | version "0.1.5" 955 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 956 | dependencies: 957 | is-posix-bracket "^0.1.0" 958 | 959 | expand-brackets@^2.1.4: 960 | version "2.1.4" 961 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 962 | dependencies: 963 | debug "^2.3.3" 964 | define-property "^0.2.5" 965 | extend-shallow "^2.0.1" 966 | posix-character-classes "^0.1.0" 967 | regex-not "^1.0.0" 968 | snapdragon "^0.8.1" 969 | to-regex "^3.0.1" 970 | 971 | expand-range@^1.8.1: 972 | version "1.8.2" 973 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 974 | dependencies: 975 | fill-range "^2.1.0" 976 | 977 | expect@^23.1.0: 978 | version "23.1.0" 979 | resolved "https://registry.yarnpkg.com/expect/-/expect-23.1.0.tgz#bfdfd57a2a20170d875999ee9787cc71f01c205f" 980 | dependencies: 981 | ansi-styles "^3.2.0" 982 | jest-diff "^23.0.1" 983 | jest-get-type "^22.1.0" 984 | jest-matcher-utils "^23.0.1" 985 | jest-message-util "^23.1.0" 986 | jest-regex-util "^23.0.0" 987 | 988 | extend-shallow@^2.0.1: 989 | version "2.0.1" 990 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 991 | dependencies: 992 | is-extendable "^0.1.0" 993 | 994 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 995 | version "3.0.2" 996 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 997 | dependencies: 998 | assign-symbols "^1.0.0" 999 | is-extendable "^1.0.1" 1000 | 1001 | extend@~3.0.1: 1002 | version "3.0.1" 1003 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 1004 | 1005 | extglob@^0.3.1: 1006 | version "0.3.2" 1007 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1008 | dependencies: 1009 | is-extglob "^1.0.0" 1010 | 1011 | extglob@^2.0.4: 1012 | version "2.0.4" 1013 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 1014 | dependencies: 1015 | array-unique "^0.3.2" 1016 | define-property "^1.0.0" 1017 | expand-brackets "^2.1.4" 1018 | extend-shallow "^2.0.1" 1019 | fragment-cache "^0.2.1" 1020 | regex-not "^1.0.0" 1021 | snapdragon "^0.8.1" 1022 | to-regex "^3.0.1" 1023 | 1024 | extsprintf@1.3.0: 1025 | version "1.3.0" 1026 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 1027 | 1028 | extsprintf@^1.2.0: 1029 | version "1.4.0" 1030 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 1031 | 1032 | fast-deep-equal@^1.0.0: 1033 | version "1.1.0" 1034 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 1035 | 1036 | fast-json-stable-stringify@^2.0.0: 1037 | version "2.0.0" 1038 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 1039 | 1040 | fast-levenshtein@~2.0.4: 1041 | version "2.0.6" 1042 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1043 | 1044 | fb-watchman@^2.0.0: 1045 | version "2.0.0" 1046 | resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" 1047 | dependencies: 1048 | bser "^2.0.0" 1049 | 1050 | filename-regex@^2.0.0: 1051 | version "2.0.1" 1052 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 1053 | 1054 | fileset@^2.0.2: 1055 | version "2.0.3" 1056 | resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" 1057 | dependencies: 1058 | glob "^7.0.3" 1059 | minimatch "^3.0.3" 1060 | 1061 | fill-range@^2.1.0: 1062 | version "2.2.4" 1063 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" 1064 | dependencies: 1065 | is-number "^2.1.0" 1066 | isobject "^2.0.0" 1067 | randomatic "^3.0.0" 1068 | repeat-element "^1.1.2" 1069 | repeat-string "^1.5.2" 1070 | 1071 | fill-range@^4.0.0: 1072 | version "4.0.0" 1073 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1074 | dependencies: 1075 | extend-shallow "^2.0.1" 1076 | is-number "^3.0.0" 1077 | repeat-string "^1.6.1" 1078 | to-regex-range "^2.1.0" 1079 | 1080 | find-up@^1.0.0: 1081 | version "1.1.2" 1082 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1083 | dependencies: 1084 | path-exists "^2.0.0" 1085 | pinkie-promise "^2.0.0" 1086 | 1087 | find-up@^2.1.0: 1088 | version "2.1.0" 1089 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1090 | dependencies: 1091 | locate-path "^2.0.0" 1092 | 1093 | for-in@^1.0.1, for-in@^1.0.2: 1094 | version "1.0.2" 1095 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1096 | 1097 | for-own@^0.1.4: 1098 | version "0.1.5" 1099 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1100 | dependencies: 1101 | for-in "^1.0.1" 1102 | 1103 | foreach@^2.0.5: 1104 | version "2.0.5" 1105 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 1106 | 1107 | forever-agent@~0.6.1: 1108 | version "0.6.1" 1109 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1110 | 1111 | form-data@~2.3.1: 1112 | version "2.3.2" 1113 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 1114 | dependencies: 1115 | asynckit "^0.4.0" 1116 | combined-stream "1.0.6" 1117 | mime-types "^2.1.12" 1118 | 1119 | fragment-cache@^0.2.1: 1120 | version "0.2.1" 1121 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1122 | dependencies: 1123 | map-cache "^0.2.2" 1124 | 1125 | fs-minipass@^1.2.5: 1126 | version "1.2.5" 1127 | resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" 1128 | dependencies: 1129 | minipass "^2.2.1" 1130 | 1131 | fs-readdir-recursive@^1.0.0: 1132 | version "1.1.0" 1133 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" 1134 | 1135 | fs.realpath@^1.0.0: 1136 | version "1.0.0" 1137 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1138 | 1139 | fsevents@^1.0.0, fsevents@^1.2.3: 1140 | version "1.2.4" 1141 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" 1142 | dependencies: 1143 | nan "^2.9.2" 1144 | node-pre-gyp "^0.10.0" 1145 | 1146 | function-bind@^1.1.1: 1147 | version "1.1.1" 1148 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1149 | 1150 | gauge@~2.7.3: 1151 | version "2.7.4" 1152 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1153 | dependencies: 1154 | aproba "^1.0.3" 1155 | console-control-strings "^1.0.0" 1156 | has-unicode "^2.0.0" 1157 | object-assign "^4.1.0" 1158 | signal-exit "^3.0.0" 1159 | string-width "^1.0.1" 1160 | strip-ansi "^3.0.1" 1161 | wide-align "^1.1.0" 1162 | 1163 | get-caller-file@^1.0.1: 1164 | version "1.0.2" 1165 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 1166 | 1167 | get-stream@^3.0.0: 1168 | version "3.0.0" 1169 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1170 | 1171 | get-value@^2.0.3, get-value@^2.0.6: 1172 | version "2.0.6" 1173 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1174 | 1175 | getpass@^0.1.1: 1176 | version "0.1.7" 1177 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 1178 | dependencies: 1179 | assert-plus "^1.0.0" 1180 | 1181 | glob-base@^0.3.0: 1182 | version "0.3.0" 1183 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1184 | dependencies: 1185 | glob-parent "^2.0.0" 1186 | is-glob "^2.0.0" 1187 | 1188 | glob-parent@^2.0.0: 1189 | version "2.0.0" 1190 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1191 | dependencies: 1192 | is-glob "^2.0.0" 1193 | 1194 | glob@^6.0.1: 1195 | version "6.0.4" 1196 | resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" 1197 | dependencies: 1198 | inflight "^1.0.4" 1199 | inherits "2" 1200 | minimatch "2 || 3" 1201 | once "^1.3.0" 1202 | path-is-absolute "^1.0.0" 1203 | 1204 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: 1205 | version "7.1.2" 1206 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 1207 | dependencies: 1208 | fs.realpath "^1.0.0" 1209 | inflight "^1.0.4" 1210 | inherits "2" 1211 | minimatch "^3.0.4" 1212 | once "^1.3.0" 1213 | path-is-absolute "^1.0.0" 1214 | 1215 | globals@^9.18.0: 1216 | version "9.18.0" 1217 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" 1218 | 1219 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: 1220 | version "4.1.11" 1221 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1222 | 1223 | growly@^1.3.0: 1224 | version "1.3.0" 1225 | resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" 1226 | 1227 | handlebars@^4.0.3: 1228 | version "4.0.11" 1229 | resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" 1230 | dependencies: 1231 | async "^1.4.0" 1232 | optimist "^0.6.1" 1233 | source-map "^0.4.4" 1234 | optionalDependencies: 1235 | uglify-js "^2.6" 1236 | 1237 | har-schema@^2.0.0: 1238 | version "2.0.0" 1239 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 1240 | 1241 | har-validator@~5.0.3: 1242 | version "5.0.3" 1243 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 1244 | dependencies: 1245 | ajv "^5.1.0" 1246 | har-schema "^2.0.0" 1247 | 1248 | has-ansi@^2.0.0: 1249 | version "2.0.0" 1250 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1251 | dependencies: 1252 | ansi-regex "^2.0.0" 1253 | 1254 | has-flag@^1.0.0: 1255 | version "1.0.0" 1256 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 1257 | 1258 | has-flag@^3.0.0: 1259 | version "3.0.0" 1260 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1261 | 1262 | has-unicode@^2.0.0: 1263 | version "2.0.1" 1264 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1265 | 1266 | has-value@^0.3.1: 1267 | version "0.3.1" 1268 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1269 | dependencies: 1270 | get-value "^2.0.3" 1271 | has-values "^0.1.4" 1272 | isobject "^2.0.0" 1273 | 1274 | has-value@^1.0.0: 1275 | version "1.0.0" 1276 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1277 | dependencies: 1278 | get-value "^2.0.6" 1279 | has-values "^1.0.0" 1280 | isobject "^3.0.0" 1281 | 1282 | has-values@^0.1.4: 1283 | version "0.1.4" 1284 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1285 | 1286 | has-values@^1.0.0: 1287 | version "1.0.0" 1288 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1289 | dependencies: 1290 | is-number "^3.0.0" 1291 | kind-of "^4.0.0" 1292 | 1293 | has@^1.0.1: 1294 | version "1.0.3" 1295 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1296 | dependencies: 1297 | function-bind "^1.1.1" 1298 | 1299 | hash.js@^1.0.0: 1300 | version "1.1.5" 1301 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" 1302 | dependencies: 1303 | inherits "^2.0.3" 1304 | minimalistic-assert "^1.0.1" 1305 | 1306 | home-or-tmp@^2.0.0: 1307 | version "2.0.0" 1308 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 1309 | dependencies: 1310 | os-homedir "^1.0.0" 1311 | os-tmpdir "^1.0.1" 1312 | 1313 | hosted-git-info@^2.1.4: 1314 | version "2.6.0" 1315 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" 1316 | 1317 | html-encoding-sniffer@^1.0.2: 1318 | version "1.0.2" 1319 | resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" 1320 | dependencies: 1321 | whatwg-encoding "^1.0.1" 1322 | 1323 | http-signature@~1.2.0: 1324 | version "1.2.0" 1325 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 1326 | dependencies: 1327 | assert-plus "^1.0.0" 1328 | jsprim "^1.2.2" 1329 | sshpk "^1.7.0" 1330 | 1331 | iconv-lite@0.4.19: 1332 | version "0.4.19" 1333 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 1334 | 1335 | iconv-lite@^0.4.4: 1336 | version "0.4.23" 1337 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 1338 | dependencies: 1339 | safer-buffer ">= 2.1.2 < 3" 1340 | 1341 | ignore-walk@^3.0.1: 1342 | version "3.0.1" 1343 | resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" 1344 | dependencies: 1345 | minimatch "^3.0.4" 1346 | 1347 | import-local@^1.0.0: 1348 | version "1.0.0" 1349 | resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" 1350 | dependencies: 1351 | pkg-dir "^2.0.0" 1352 | resolve-cwd "^2.0.0" 1353 | 1354 | imurmurhash@^0.1.4: 1355 | version "0.1.4" 1356 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1357 | 1358 | inflight@^1.0.4: 1359 | version "1.0.6" 1360 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1361 | dependencies: 1362 | once "^1.3.0" 1363 | wrappy "1" 1364 | 1365 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: 1366 | version "2.0.3" 1367 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1368 | 1369 | inherits@2.0.1: 1370 | version "2.0.1" 1371 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" 1372 | 1373 | ini@~1.3.0: 1374 | version "1.3.5" 1375 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1376 | 1377 | invariant@^2.2.2: 1378 | version "2.2.4" 1379 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 1380 | dependencies: 1381 | loose-envify "^1.0.0" 1382 | 1383 | invert-kv@^1.0.0: 1384 | version "1.0.0" 1385 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1386 | 1387 | is-accessor-descriptor@^0.1.6: 1388 | version "0.1.6" 1389 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1390 | dependencies: 1391 | kind-of "^3.0.2" 1392 | 1393 | is-accessor-descriptor@^1.0.0: 1394 | version "1.0.0" 1395 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1396 | dependencies: 1397 | kind-of "^6.0.0" 1398 | 1399 | is-arrayish@^0.2.1: 1400 | version "0.2.1" 1401 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1402 | 1403 | is-binary-path@^1.0.0: 1404 | version "1.0.1" 1405 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1406 | dependencies: 1407 | binary-extensions "^1.0.0" 1408 | 1409 | is-buffer@^1.1.5: 1410 | version "1.1.6" 1411 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1412 | 1413 | is-builtin-module@^1.0.0: 1414 | version "1.0.0" 1415 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 1416 | dependencies: 1417 | builtin-modules "^1.0.0" 1418 | 1419 | is-callable@^1.1.1, is-callable@^1.1.3: 1420 | version "1.1.3" 1421 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" 1422 | 1423 | is-ci@^1.0.10: 1424 | version "1.1.0" 1425 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" 1426 | dependencies: 1427 | ci-info "^1.0.0" 1428 | 1429 | is-data-descriptor@^0.1.4: 1430 | version "0.1.4" 1431 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1432 | dependencies: 1433 | kind-of "^3.0.2" 1434 | 1435 | is-data-descriptor@^1.0.0: 1436 | version "1.0.0" 1437 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1438 | dependencies: 1439 | kind-of "^6.0.0" 1440 | 1441 | is-date-object@^1.0.1: 1442 | version "1.0.1" 1443 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 1444 | 1445 | is-descriptor@^0.1.0: 1446 | version "0.1.6" 1447 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1448 | dependencies: 1449 | is-accessor-descriptor "^0.1.6" 1450 | is-data-descriptor "^0.1.4" 1451 | kind-of "^5.0.0" 1452 | 1453 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1454 | version "1.0.2" 1455 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1456 | dependencies: 1457 | is-accessor-descriptor "^1.0.0" 1458 | is-data-descriptor "^1.0.0" 1459 | kind-of "^6.0.2" 1460 | 1461 | is-dotfile@^1.0.0: 1462 | version "1.0.3" 1463 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 1464 | 1465 | is-equal-shallow@^0.1.3: 1466 | version "0.1.3" 1467 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1468 | dependencies: 1469 | is-primitive "^2.0.0" 1470 | 1471 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1472 | version "0.1.1" 1473 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1474 | 1475 | is-extendable@^1.0.1: 1476 | version "1.0.1" 1477 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1478 | dependencies: 1479 | is-plain-object "^2.0.4" 1480 | 1481 | is-extglob@^1.0.0: 1482 | version "1.0.0" 1483 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1484 | 1485 | is-finite@^1.0.0: 1486 | version "1.0.2" 1487 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1488 | dependencies: 1489 | number-is-nan "^1.0.0" 1490 | 1491 | is-fullwidth-code-point@^1.0.0: 1492 | version "1.0.0" 1493 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1494 | dependencies: 1495 | number-is-nan "^1.0.0" 1496 | 1497 | is-fullwidth-code-point@^2.0.0: 1498 | version "2.0.0" 1499 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1500 | 1501 | is-generator-fn@^1.0.0: 1502 | version "1.0.0" 1503 | resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" 1504 | 1505 | is-glob@^2.0.0, is-glob@^2.0.1: 1506 | version "2.0.1" 1507 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1508 | dependencies: 1509 | is-extglob "^1.0.0" 1510 | 1511 | is-number@^2.1.0: 1512 | version "2.1.0" 1513 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1514 | dependencies: 1515 | kind-of "^3.0.2" 1516 | 1517 | is-number@^3.0.0: 1518 | version "3.0.0" 1519 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1520 | dependencies: 1521 | kind-of "^3.0.2" 1522 | 1523 | is-number@^4.0.0: 1524 | version "4.0.0" 1525 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" 1526 | 1527 | is-odd@^2.0.0: 1528 | version "2.0.0" 1529 | resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" 1530 | dependencies: 1531 | is-number "^4.0.0" 1532 | 1533 | is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1534 | version "2.0.4" 1535 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1536 | dependencies: 1537 | isobject "^3.0.1" 1538 | 1539 | is-posix-bracket@^0.1.0: 1540 | version "0.1.1" 1541 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1542 | 1543 | is-primitive@^2.0.0: 1544 | version "2.0.0" 1545 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1546 | 1547 | is-regex@^1.0.4: 1548 | version "1.0.4" 1549 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1550 | dependencies: 1551 | has "^1.0.1" 1552 | 1553 | is-stream@^1.1.0: 1554 | version "1.1.0" 1555 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1556 | 1557 | is-symbol@^1.0.1: 1558 | version "1.0.1" 1559 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" 1560 | 1561 | is-typedarray@~1.0.0: 1562 | version "1.0.0" 1563 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1564 | 1565 | is-utf8@^0.2.0: 1566 | version "0.2.1" 1567 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 1568 | 1569 | is-windows@^1.0.2: 1570 | version "1.0.2" 1571 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1572 | 1573 | isarray@1.0.0, isarray@~1.0.0: 1574 | version "1.0.0" 1575 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1576 | 1577 | isexe@^2.0.0: 1578 | version "2.0.0" 1579 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1580 | 1581 | isobject@^2.0.0: 1582 | version "2.1.0" 1583 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1584 | dependencies: 1585 | isarray "1.0.0" 1586 | 1587 | isobject@^3.0.0, isobject@^3.0.1: 1588 | version "3.0.1" 1589 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1590 | 1591 | isstream@~0.1.2: 1592 | version "0.1.2" 1593 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1594 | 1595 | istanbul-api@^1.3.1: 1596 | version "1.3.1" 1597 | resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954" 1598 | dependencies: 1599 | async "^2.1.4" 1600 | compare-versions "^3.1.0" 1601 | fileset "^2.0.2" 1602 | istanbul-lib-coverage "^1.2.0" 1603 | istanbul-lib-hook "^1.2.0" 1604 | istanbul-lib-instrument "^1.10.1" 1605 | istanbul-lib-report "^1.1.4" 1606 | istanbul-lib-source-maps "^1.2.4" 1607 | istanbul-reports "^1.3.0" 1608 | js-yaml "^3.7.0" 1609 | mkdirp "^0.5.1" 1610 | once "^1.4.0" 1611 | 1612 | istanbul-lib-coverage@^1.2.0: 1613 | version "1.2.0" 1614 | resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" 1615 | 1616 | istanbul-lib-hook@^1.2.0: 1617 | version "1.2.1" 1618 | resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz#f614ec45287b2a8fc4f07f5660af787575601805" 1619 | dependencies: 1620 | append-transform "^1.0.0" 1621 | 1622 | istanbul-lib-instrument@^1.10.1: 1623 | version "1.10.1" 1624 | resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" 1625 | dependencies: 1626 | babel-generator "^6.18.0" 1627 | babel-template "^6.16.0" 1628 | babel-traverse "^6.18.0" 1629 | babel-types "^6.18.0" 1630 | babylon "^6.18.0" 1631 | istanbul-lib-coverage "^1.2.0" 1632 | semver "^5.3.0" 1633 | 1634 | istanbul-lib-report@^1.1.4: 1635 | version "1.1.4" 1636 | resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" 1637 | dependencies: 1638 | istanbul-lib-coverage "^1.2.0" 1639 | mkdirp "^0.5.1" 1640 | path-parse "^1.0.5" 1641 | supports-color "^3.1.2" 1642 | 1643 | istanbul-lib-source-maps@^1.2.4: 1644 | version "1.2.5" 1645 | resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz#ffe6be4e7ab86d3603e4290d54990b14506fc9b1" 1646 | dependencies: 1647 | debug "^3.1.0" 1648 | istanbul-lib-coverage "^1.2.0" 1649 | mkdirp "^0.5.1" 1650 | rimraf "^2.6.1" 1651 | source-map "^0.5.3" 1652 | 1653 | istanbul-reports@^1.3.0: 1654 | version "1.3.0" 1655 | resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" 1656 | dependencies: 1657 | handlebars "^4.0.3" 1658 | 1659 | jest-changed-files@^23.0.1: 1660 | version "23.0.1" 1661 | resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.0.1.tgz#f79572d0720844ea5df84c2a448e862c2254f60c" 1662 | dependencies: 1663 | throat "^4.0.0" 1664 | 1665 | jest-cli@^23.1.0: 1666 | version "23.1.0" 1667 | resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.1.0.tgz#eb8bdd4ce0d15250892e31ad9b69bc99d2a8f6bf" 1668 | dependencies: 1669 | ansi-escapes "^3.0.0" 1670 | chalk "^2.0.1" 1671 | exit "^0.1.2" 1672 | glob "^7.1.2" 1673 | graceful-fs "^4.1.11" 1674 | import-local "^1.0.0" 1675 | is-ci "^1.0.10" 1676 | istanbul-api "^1.3.1" 1677 | istanbul-lib-coverage "^1.2.0" 1678 | istanbul-lib-instrument "^1.10.1" 1679 | istanbul-lib-source-maps "^1.2.4" 1680 | jest-changed-files "^23.0.1" 1681 | jest-config "^23.1.0" 1682 | jest-environment-jsdom "^23.1.0" 1683 | jest-get-type "^22.1.0" 1684 | jest-haste-map "^23.1.0" 1685 | jest-message-util "^23.1.0" 1686 | jest-regex-util "^23.0.0" 1687 | jest-resolve-dependencies "^23.0.1" 1688 | jest-runner "^23.1.0" 1689 | jest-runtime "^23.1.0" 1690 | jest-snapshot "^23.0.1" 1691 | jest-util "^23.1.0" 1692 | jest-validate "^23.0.1" 1693 | jest-watcher "^23.1.0" 1694 | jest-worker "^23.0.1" 1695 | micromatch "^2.3.11" 1696 | node-notifier "^5.2.1" 1697 | realpath-native "^1.0.0" 1698 | rimraf "^2.5.4" 1699 | slash "^1.0.0" 1700 | string-length "^2.0.0" 1701 | strip-ansi "^4.0.0" 1702 | which "^1.2.12" 1703 | yargs "^11.0.0" 1704 | 1705 | jest-config@^23.1.0: 1706 | version "23.1.0" 1707 | resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.1.0.tgz#708ca0f431d356ee424fb4895d3308006bdd8241" 1708 | dependencies: 1709 | babel-core "^6.0.0" 1710 | babel-jest "^23.0.1" 1711 | chalk "^2.0.1" 1712 | glob "^7.1.1" 1713 | jest-environment-jsdom "^23.1.0" 1714 | jest-environment-node "^23.1.0" 1715 | jest-get-type "^22.1.0" 1716 | jest-jasmine2 "^23.1.0" 1717 | jest-regex-util "^23.0.0" 1718 | jest-resolve "^23.1.0" 1719 | jest-util "^23.1.0" 1720 | jest-validate "^23.0.1" 1721 | pretty-format "^23.0.1" 1722 | 1723 | jest-diff@^23.0.1: 1724 | version "23.0.1" 1725 | resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.0.1.tgz#3d49137cee12c320a4b4d2b4a6fa6e82d491a16a" 1726 | dependencies: 1727 | chalk "^2.0.1" 1728 | diff "^3.2.0" 1729 | jest-get-type "^22.1.0" 1730 | pretty-format "^23.0.1" 1731 | 1732 | jest-docblock@^23.0.1: 1733 | version "23.0.1" 1734 | resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.0.1.tgz#deddd18333be5dc2415260a04ef3fce9276b5725" 1735 | dependencies: 1736 | detect-newline "^2.1.0" 1737 | 1738 | jest-each@^23.1.0: 1739 | version "23.1.0" 1740 | resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.1.0.tgz#16146b592c354867a5ae5e13cdf15c6c65b696c6" 1741 | dependencies: 1742 | chalk "^2.0.1" 1743 | pretty-format "^23.0.1" 1744 | 1745 | jest-environment-jsdom@^23.1.0: 1746 | version "23.1.0" 1747 | resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.1.0.tgz#85929914e23bed3577dac9755f4106d0697c479c" 1748 | dependencies: 1749 | jest-mock "^23.1.0" 1750 | jest-util "^23.1.0" 1751 | jsdom "^11.5.1" 1752 | 1753 | jest-environment-node@^23.1.0: 1754 | version "23.1.0" 1755 | resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.1.0.tgz#452c0bf949cfcbbacda1e1762eeed70bc784c7d5" 1756 | dependencies: 1757 | jest-mock "^23.1.0" 1758 | jest-util "^23.1.0" 1759 | 1760 | jest-get-type@^22.1.0: 1761 | version "22.4.3" 1762 | resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" 1763 | 1764 | jest-haste-map@^23.1.0: 1765 | version "23.1.0" 1766 | resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.1.0.tgz#18e6c7d5a8d27136f91b7d9852f85de0c7074c49" 1767 | dependencies: 1768 | fb-watchman "^2.0.0" 1769 | graceful-fs "^4.1.11" 1770 | jest-docblock "^23.0.1" 1771 | jest-serializer "^23.0.1" 1772 | jest-worker "^23.0.1" 1773 | micromatch "^2.3.11" 1774 | sane "^2.0.0" 1775 | 1776 | jest-jasmine2@^23.1.0: 1777 | version "23.1.0" 1778 | resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.1.0.tgz#4afab31729b654ddcd2b074add849396f13b30b8" 1779 | dependencies: 1780 | chalk "^2.0.1" 1781 | co "^4.6.0" 1782 | expect "^23.1.0" 1783 | is-generator-fn "^1.0.0" 1784 | jest-diff "^23.0.1" 1785 | jest-each "^23.1.0" 1786 | jest-matcher-utils "^23.0.1" 1787 | jest-message-util "^23.1.0" 1788 | jest-snapshot "^23.0.1" 1789 | jest-util "^23.1.0" 1790 | pretty-format "^23.0.1" 1791 | 1792 | jest-leak-detector@^23.0.1: 1793 | version "23.0.1" 1794 | resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.0.1.tgz#9dba07505ac3495c39d3ec09ac1e564599e861a0" 1795 | dependencies: 1796 | pretty-format "^23.0.1" 1797 | 1798 | jest-matcher-utils@^23.0.1: 1799 | version "23.0.1" 1800 | resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.0.1.tgz#0c6c0daedf9833c2a7f36236069efecb4c3f6e5f" 1801 | dependencies: 1802 | chalk "^2.0.1" 1803 | jest-get-type "^22.1.0" 1804 | pretty-format "^23.0.1" 1805 | 1806 | jest-message-util@^23.1.0: 1807 | version "23.1.0" 1808 | resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.1.0.tgz#9a809ba487ecac5ce511d4e698ee3b5ee2461ea9" 1809 | dependencies: 1810 | "@babel/code-frame" "^7.0.0-beta.35" 1811 | chalk "^2.0.1" 1812 | micromatch "^2.3.11" 1813 | slash "^1.0.0" 1814 | stack-utils "^1.0.1" 1815 | 1816 | jest-mock@^23.1.0: 1817 | version "23.1.0" 1818 | resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.1.0.tgz#a381c31b121ab1f60c462a2dadb7b86dcccac487" 1819 | 1820 | jest-regex-util@^23.0.0: 1821 | version "23.0.0" 1822 | resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.0.0.tgz#dd5c1fde0c46f4371314cf10f7a751a23f4e8f76" 1823 | 1824 | jest-resolve-dependencies@^23.0.1: 1825 | version "23.0.1" 1826 | resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.0.1.tgz#d01a10ddad9152c4cecdf5eac2b88571c4b6a64d" 1827 | dependencies: 1828 | jest-regex-util "^23.0.0" 1829 | jest-snapshot "^23.0.1" 1830 | 1831 | jest-resolve@^23.1.0: 1832 | version "23.1.0" 1833 | resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.1.0.tgz#b9e316eecebd6f00bc50a3960d1527bae65792d2" 1834 | dependencies: 1835 | browser-resolve "^1.11.2" 1836 | chalk "^2.0.1" 1837 | realpath-native "^1.0.0" 1838 | 1839 | jest-runner@^23.1.0: 1840 | version "23.1.0" 1841 | resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.1.0.tgz#fa20a933fff731a5432b3561e7f6426594fa29b5" 1842 | dependencies: 1843 | exit "^0.1.2" 1844 | graceful-fs "^4.1.11" 1845 | jest-config "^23.1.0" 1846 | jest-docblock "^23.0.1" 1847 | jest-haste-map "^23.1.0" 1848 | jest-jasmine2 "^23.1.0" 1849 | jest-leak-detector "^23.0.1" 1850 | jest-message-util "^23.1.0" 1851 | jest-runtime "^23.1.0" 1852 | jest-util "^23.1.0" 1853 | jest-worker "^23.0.1" 1854 | source-map-support "^0.5.6" 1855 | throat "^4.0.0" 1856 | 1857 | jest-runtime@^23.1.0: 1858 | version "23.1.0" 1859 | resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.1.0.tgz#b4ae0e87259ecacfd4a884b639db07cf4dd620af" 1860 | dependencies: 1861 | babel-core "^6.0.0" 1862 | babel-plugin-istanbul "^4.1.6" 1863 | chalk "^2.0.1" 1864 | convert-source-map "^1.4.0" 1865 | exit "^0.1.2" 1866 | fast-json-stable-stringify "^2.0.0" 1867 | graceful-fs "^4.1.11" 1868 | jest-config "^23.1.0" 1869 | jest-haste-map "^23.1.0" 1870 | jest-message-util "^23.1.0" 1871 | jest-regex-util "^23.0.0" 1872 | jest-resolve "^23.1.0" 1873 | jest-snapshot "^23.0.1" 1874 | jest-util "^23.1.0" 1875 | jest-validate "^23.0.1" 1876 | micromatch "^2.3.11" 1877 | realpath-native "^1.0.0" 1878 | slash "^1.0.0" 1879 | strip-bom "3.0.0" 1880 | write-file-atomic "^2.1.0" 1881 | yargs "^11.0.0" 1882 | 1883 | jest-serializer@^23.0.1: 1884 | version "23.0.1" 1885 | resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" 1886 | 1887 | jest-snapshot@^23.0.1: 1888 | version "23.0.1" 1889 | resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.0.1.tgz#6674fa19b9eb69a99cabecd415bddc42d6af3e7e" 1890 | dependencies: 1891 | chalk "^2.0.1" 1892 | jest-diff "^23.0.1" 1893 | jest-matcher-utils "^23.0.1" 1894 | mkdirp "^0.5.1" 1895 | natural-compare "^1.4.0" 1896 | pretty-format "^23.0.1" 1897 | 1898 | jest-util@^23.1.0: 1899 | version "23.1.0" 1900 | resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.1.0.tgz#c0251baf34644c6dd2fea78a962f4263ac55772d" 1901 | dependencies: 1902 | callsites "^2.0.0" 1903 | chalk "^2.0.1" 1904 | graceful-fs "^4.1.11" 1905 | is-ci "^1.0.10" 1906 | jest-message-util "^23.1.0" 1907 | mkdirp "^0.5.1" 1908 | slash "^1.0.0" 1909 | source-map "^0.6.0" 1910 | 1911 | jest-validate@^23.0.1: 1912 | version "23.0.1" 1913 | resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.0.1.tgz#cd9f01a89d26bb885f12a8667715e9c865a5754f" 1914 | dependencies: 1915 | chalk "^2.0.1" 1916 | jest-get-type "^22.1.0" 1917 | leven "^2.1.0" 1918 | pretty-format "^23.0.1" 1919 | 1920 | jest-watcher@^23.1.0: 1921 | version "23.1.0" 1922 | resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.1.0.tgz#a8d5842e38d9fb4afff823df6abb42a58ae6cdbd" 1923 | dependencies: 1924 | ansi-escapes "^3.0.0" 1925 | chalk "^2.0.1" 1926 | string-length "^2.0.0" 1927 | 1928 | jest-worker@^23.0.1: 1929 | version "23.0.1" 1930 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.0.1.tgz#9e649dd963ff4046026f91c4017f039a6aa4a7bc" 1931 | dependencies: 1932 | merge-stream "^1.0.1" 1933 | 1934 | jest@^23.1.0: 1935 | version "23.1.0" 1936 | resolved "https://registry.yarnpkg.com/jest/-/jest-23.1.0.tgz#bbb7f893100a11a742dd8bd0d047a54b0968ad1a" 1937 | dependencies: 1938 | import-local "^1.0.0" 1939 | jest-cli "^23.1.0" 1940 | 1941 | js-sha3@0.5.7: 1942 | version "0.5.7" 1943 | resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" 1944 | 1945 | js-tokens@^3.0.0, js-tokens@^3.0.2: 1946 | version "3.0.2" 1947 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 1948 | 1949 | js-yaml@^3.7.0: 1950 | version "3.12.0" 1951 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 1952 | dependencies: 1953 | argparse "^1.0.7" 1954 | esprima "^4.0.0" 1955 | 1956 | jsbn@~0.1.0: 1957 | version "0.1.1" 1958 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1959 | 1960 | jsdom@^11.5.1: 1961 | version "11.11.0" 1962 | resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.11.0.tgz#df486efad41aee96c59ad7a190e2449c7eb1110e" 1963 | dependencies: 1964 | abab "^1.0.4" 1965 | acorn "^5.3.0" 1966 | acorn-globals "^4.1.0" 1967 | array-equal "^1.0.0" 1968 | cssom ">= 0.3.2 < 0.4.0" 1969 | cssstyle ">= 0.3.1 < 0.4.0" 1970 | data-urls "^1.0.0" 1971 | domexception "^1.0.0" 1972 | escodegen "^1.9.0" 1973 | html-encoding-sniffer "^1.0.2" 1974 | left-pad "^1.2.0" 1975 | nwsapi "^2.0.0" 1976 | parse5 "4.0.0" 1977 | pn "^1.1.0" 1978 | request "^2.83.0" 1979 | request-promise-native "^1.0.5" 1980 | sax "^1.2.4" 1981 | symbol-tree "^3.2.2" 1982 | tough-cookie "^2.3.3" 1983 | w3c-hr-time "^1.0.1" 1984 | webidl-conversions "^4.0.2" 1985 | whatwg-encoding "^1.0.3" 1986 | whatwg-mimetype "^2.1.0" 1987 | whatwg-url "^6.4.1" 1988 | ws "^4.0.0" 1989 | xml-name-validator "^3.0.0" 1990 | 1991 | jsesc@^1.3.0: 1992 | version "1.3.0" 1993 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 1994 | 1995 | json-schema-traverse@^0.3.0: 1996 | version "0.3.1" 1997 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 1998 | 1999 | json-schema@0.2.3: 2000 | version "0.2.3" 2001 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 2002 | 2003 | json-stringify-safe@~5.0.1: 2004 | version "5.0.1" 2005 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 2006 | 2007 | json5@^0.5.1: 2008 | version "0.5.1" 2009 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 2010 | 2011 | jsprim@^1.2.2: 2012 | version "1.4.1" 2013 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 2014 | dependencies: 2015 | assert-plus "1.0.0" 2016 | extsprintf "1.3.0" 2017 | json-schema "0.2.3" 2018 | verror "1.10.0" 2019 | 2020 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 2021 | version "3.2.2" 2022 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 2023 | dependencies: 2024 | is-buffer "^1.1.5" 2025 | 2026 | kind-of@^4.0.0: 2027 | version "4.0.0" 2028 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 2029 | dependencies: 2030 | is-buffer "^1.1.5" 2031 | 2032 | kind-of@^5.0.0: 2033 | version "5.1.0" 2034 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 2035 | 2036 | kind-of@^6.0.0, kind-of@^6.0.2: 2037 | version "6.0.2" 2038 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 2039 | 2040 | lazy-cache@^1.0.3: 2041 | version "1.0.4" 2042 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 2043 | 2044 | lcid@^1.0.0: 2045 | version "1.0.0" 2046 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 2047 | dependencies: 2048 | invert-kv "^1.0.0" 2049 | 2050 | left-pad@^1.2.0: 2051 | version "1.3.0" 2052 | resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" 2053 | 2054 | leven@^2.1.0: 2055 | version "2.1.0" 2056 | resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" 2057 | 2058 | levn@~0.3.0: 2059 | version "0.3.0" 2060 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 2061 | dependencies: 2062 | prelude-ls "~1.1.2" 2063 | type-check "~0.3.2" 2064 | 2065 | load-json-file@^1.0.0: 2066 | version "1.1.0" 2067 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 2068 | dependencies: 2069 | graceful-fs "^4.1.2" 2070 | parse-json "^2.2.0" 2071 | pify "^2.0.0" 2072 | pinkie-promise "^2.0.0" 2073 | strip-bom "^2.0.0" 2074 | 2075 | locate-path@^2.0.0: 2076 | version "2.0.0" 2077 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 2078 | dependencies: 2079 | p-locate "^2.0.0" 2080 | path-exists "^3.0.0" 2081 | 2082 | lodash.isequal@^4.5.0: 2083 | version "4.5.0" 2084 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 2085 | 2086 | lodash.merge@^4.6.1: 2087 | version "4.6.1" 2088 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" 2089 | 2090 | lodash.sortby@^4.7.0: 2091 | version "4.7.0" 2092 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 2093 | 2094 | lodash.times@^4.3.2: 2095 | version "4.3.2" 2096 | resolved "https://registry.yarnpkg.com/lodash.times/-/lodash.times-4.3.2.tgz#3e1f2565c431754d54ab57f2ed1741939285ca1d" 2097 | 2098 | lodash.uniq@^4.5.0: 2099 | version "4.5.0" 2100 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" 2101 | 2102 | lodash.values@^4.3.0: 2103 | version "4.3.0" 2104 | resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" 2105 | 2106 | lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.4: 2107 | version "4.17.10" 2108 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 2109 | 2110 | longest@^1.0.1: 2111 | version "1.0.1" 2112 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 2113 | 2114 | loose-envify@^1.0.0: 2115 | version "1.3.1" 2116 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 2117 | dependencies: 2118 | js-tokens "^3.0.0" 2119 | 2120 | lru-cache@^4.0.1: 2121 | version "4.1.3" 2122 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" 2123 | dependencies: 2124 | pseudomap "^1.0.2" 2125 | yallist "^2.1.2" 2126 | 2127 | makeerror@1.0.x: 2128 | version "1.0.11" 2129 | resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" 2130 | dependencies: 2131 | tmpl "1.0.x" 2132 | 2133 | map-cache@^0.2.2: 2134 | version "0.2.2" 2135 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 2136 | 2137 | map-visit@^1.0.0: 2138 | version "1.0.0" 2139 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 2140 | dependencies: 2141 | object-visit "^1.0.0" 2142 | 2143 | math-random@^1.0.1: 2144 | version "1.0.1" 2145 | resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" 2146 | 2147 | mem@^1.1.0: 2148 | version "1.1.0" 2149 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" 2150 | dependencies: 2151 | mimic-fn "^1.0.0" 2152 | 2153 | merge-stream@^1.0.1: 2154 | version "1.0.1" 2155 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" 2156 | dependencies: 2157 | readable-stream "^2.0.1" 2158 | 2159 | merge@^1.1.3: 2160 | version "1.2.0" 2161 | resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" 2162 | 2163 | micromatch@^2.1.5, micromatch@^2.3.11: 2164 | version "2.3.11" 2165 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 2166 | dependencies: 2167 | arr-diff "^2.0.0" 2168 | array-unique "^0.2.1" 2169 | braces "^1.8.2" 2170 | expand-brackets "^0.1.4" 2171 | extglob "^0.3.1" 2172 | filename-regex "^2.0.0" 2173 | is-extglob "^1.0.0" 2174 | is-glob "^2.0.1" 2175 | kind-of "^3.0.2" 2176 | normalize-path "^2.0.1" 2177 | object.omit "^2.0.0" 2178 | parse-glob "^3.0.4" 2179 | regex-cache "^0.4.2" 2180 | 2181 | micromatch@^3.1.4, micromatch@^3.1.8: 2182 | version "3.1.10" 2183 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 2184 | dependencies: 2185 | arr-diff "^4.0.0" 2186 | array-unique "^0.3.2" 2187 | braces "^2.3.1" 2188 | define-property "^2.0.2" 2189 | extend-shallow "^3.0.2" 2190 | extglob "^2.0.4" 2191 | fragment-cache "^0.2.1" 2192 | kind-of "^6.0.2" 2193 | nanomatch "^1.2.9" 2194 | object.pick "^1.3.0" 2195 | regex-not "^1.0.0" 2196 | snapdragon "^0.8.1" 2197 | to-regex "^3.0.2" 2198 | 2199 | mime-db@~1.33.0: 2200 | version "1.33.0" 2201 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 2202 | 2203 | mime-types@^2.1.12, mime-types@~2.1.17: 2204 | version "2.1.18" 2205 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 2206 | dependencies: 2207 | mime-db "~1.33.0" 2208 | 2209 | mimic-fn@^1.0.0: 2210 | version "1.2.0" 2211 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 2212 | 2213 | minimalistic-assert@^1.0.1: 2214 | version "1.0.1" 2215 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 2216 | 2217 | "minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: 2218 | version "3.0.4" 2219 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2220 | dependencies: 2221 | brace-expansion "^1.1.7" 2222 | 2223 | minimist@0.0.8: 2224 | version "0.0.8" 2225 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2226 | 2227 | minimist@^1.1.1, minimist@^1.2.0: 2228 | version "1.2.0" 2229 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2230 | 2231 | minimist@~0.0.1: 2232 | version "0.0.10" 2233 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" 2234 | 2235 | minipass@^2.2.1, minipass@^2.3.3: 2236 | version "2.3.3" 2237 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.3.tgz#a7dcc8b7b833f5d368759cce544dccb55f50f233" 2238 | dependencies: 2239 | safe-buffer "^5.1.2" 2240 | yallist "^3.0.0" 2241 | 2242 | minizlib@^1.1.0: 2243 | version "1.1.0" 2244 | resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" 2245 | dependencies: 2246 | minipass "^2.2.1" 2247 | 2248 | mixin-deep@^1.2.0: 2249 | version "1.3.1" 2250 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" 2251 | dependencies: 2252 | for-in "^1.0.2" 2253 | is-extendable "^1.0.1" 2254 | 2255 | mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: 2256 | version "0.5.1" 2257 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2258 | dependencies: 2259 | minimist "0.0.8" 2260 | 2261 | moment@^2.10.6: 2262 | version "2.22.2" 2263 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" 2264 | 2265 | ms@2.0.0: 2266 | version "2.0.0" 2267 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2268 | 2269 | mv@~2: 2270 | version "2.1.1" 2271 | resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" 2272 | dependencies: 2273 | mkdirp "~0.5.1" 2274 | ncp "~2.0.0" 2275 | rimraf "~2.4.0" 2276 | 2277 | nan@^2.10.0, nan@^2.9.2: 2278 | version "2.10.0" 2279 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" 2280 | 2281 | nanomatch@^1.2.9: 2282 | version "1.2.9" 2283 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" 2284 | dependencies: 2285 | arr-diff "^4.0.0" 2286 | array-unique "^0.3.2" 2287 | define-property "^2.0.2" 2288 | extend-shallow "^3.0.2" 2289 | fragment-cache "^0.2.1" 2290 | is-odd "^2.0.0" 2291 | is-windows "^1.0.2" 2292 | kind-of "^6.0.2" 2293 | object.pick "^1.3.0" 2294 | regex-not "^1.0.0" 2295 | snapdragon "^0.8.1" 2296 | to-regex "^3.0.1" 2297 | 2298 | natural-compare@^1.4.0: 2299 | version "1.4.0" 2300 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 2301 | 2302 | ncp@~2.0.0: 2303 | version "2.0.0" 2304 | resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" 2305 | 2306 | needle@^2.2.0: 2307 | version "2.2.1" 2308 | resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" 2309 | dependencies: 2310 | debug "^2.1.2" 2311 | iconv-lite "^0.4.4" 2312 | sax "^1.2.4" 2313 | 2314 | node-int64@^0.4.0: 2315 | version "0.4.0" 2316 | resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" 2317 | 2318 | node-notifier@^5.2.1: 2319 | version "5.2.1" 2320 | resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" 2321 | dependencies: 2322 | growly "^1.3.0" 2323 | semver "^5.4.1" 2324 | shellwords "^0.1.1" 2325 | which "^1.3.0" 2326 | 2327 | node-pre-gyp@^0.10.0: 2328 | version "0.10.0" 2329 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" 2330 | dependencies: 2331 | detect-libc "^1.0.2" 2332 | mkdirp "^0.5.1" 2333 | needle "^2.2.0" 2334 | nopt "^4.0.1" 2335 | npm-packlist "^1.1.6" 2336 | npmlog "^4.0.2" 2337 | rc "^1.1.7" 2338 | rimraf "^2.6.1" 2339 | semver "^5.3.0" 2340 | tar "^4" 2341 | 2342 | nopt@^4.0.1: 2343 | version "4.0.1" 2344 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2345 | dependencies: 2346 | abbrev "1" 2347 | osenv "^0.1.4" 2348 | 2349 | normalize-package-data@^2.3.2: 2350 | version "2.4.0" 2351 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 2352 | dependencies: 2353 | hosted-git-info "^2.1.4" 2354 | is-builtin-module "^1.0.0" 2355 | semver "2 || 3 || 4 || 5" 2356 | validate-npm-package-license "^3.0.1" 2357 | 2358 | normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: 2359 | version "2.1.1" 2360 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2361 | dependencies: 2362 | remove-trailing-separator "^1.0.1" 2363 | 2364 | npm-bundled@^1.0.1: 2365 | version "1.0.3" 2366 | resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" 2367 | 2368 | npm-packlist@^1.1.6: 2369 | version "1.1.10" 2370 | resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" 2371 | dependencies: 2372 | ignore-walk "^3.0.1" 2373 | npm-bundled "^1.0.1" 2374 | 2375 | npm-run-path@^2.0.0: 2376 | version "2.0.2" 2377 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 2378 | dependencies: 2379 | path-key "^2.0.0" 2380 | 2381 | npmlog@^4.0.2: 2382 | version "4.1.2" 2383 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 2384 | dependencies: 2385 | are-we-there-yet "~1.1.2" 2386 | console-control-strings "~1.1.0" 2387 | gauge "~2.7.3" 2388 | set-blocking "~2.0.0" 2389 | 2390 | number-is-nan@^1.0.0: 2391 | version "1.0.1" 2392 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2393 | 2394 | nwsapi@^2.0.0: 2395 | version "2.0.4" 2396 | resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.4.tgz#dc79040a5f77b97716dc79565fc7fc3ef7d50570" 2397 | 2398 | oauth-sign@~0.8.2: 2399 | version "0.8.2" 2400 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 2401 | 2402 | object-assign@^4.1.0: 2403 | version "4.1.1" 2404 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2405 | 2406 | object-copy@^0.1.0: 2407 | version "0.1.0" 2408 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 2409 | dependencies: 2410 | copy-descriptor "^0.1.0" 2411 | define-property "^0.2.5" 2412 | kind-of "^3.0.3" 2413 | 2414 | object-keys@^1.0.8: 2415 | version "1.0.12" 2416 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" 2417 | 2418 | object-visit@^1.0.0: 2419 | version "1.0.1" 2420 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 2421 | dependencies: 2422 | isobject "^3.0.0" 2423 | 2424 | object.getownpropertydescriptors@^2.0.3: 2425 | version "2.0.3" 2426 | resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" 2427 | dependencies: 2428 | define-properties "^1.1.2" 2429 | es-abstract "^1.5.1" 2430 | 2431 | object.omit@^2.0.0: 2432 | version "2.0.1" 2433 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2434 | dependencies: 2435 | for-own "^0.1.4" 2436 | is-extendable "^0.1.1" 2437 | 2438 | object.pick@^1.3.0: 2439 | version "1.3.0" 2440 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 2441 | dependencies: 2442 | isobject "^3.0.1" 2443 | 2444 | once@^1.3.0, once@^1.4.0: 2445 | version "1.4.0" 2446 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2447 | dependencies: 2448 | wrappy "1" 2449 | 2450 | optimist@^0.6.1: 2451 | version "0.6.1" 2452 | resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" 2453 | dependencies: 2454 | minimist "~0.0.1" 2455 | wordwrap "~0.0.2" 2456 | 2457 | optionator@^0.8.1: 2458 | version "0.8.2" 2459 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 2460 | dependencies: 2461 | deep-is "~0.1.3" 2462 | fast-levenshtein "~2.0.4" 2463 | levn "~0.3.0" 2464 | prelude-ls "~1.1.2" 2465 | type-check "~0.3.2" 2466 | wordwrap "~1.0.0" 2467 | 2468 | os-homedir@^1.0.0: 2469 | version "1.0.2" 2470 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2471 | 2472 | os-locale@^2.0.0: 2473 | version "2.1.0" 2474 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" 2475 | dependencies: 2476 | execa "^0.7.0" 2477 | lcid "^1.0.0" 2478 | mem "^1.1.0" 2479 | 2480 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: 2481 | version "1.0.2" 2482 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2483 | 2484 | osenv@^0.1.4: 2485 | version "0.1.5" 2486 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2487 | dependencies: 2488 | os-homedir "^1.0.0" 2489 | os-tmpdir "^1.0.0" 2490 | 2491 | output-file-sync@^1.1.2: 2492 | version "1.1.2" 2493 | resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" 2494 | dependencies: 2495 | graceful-fs "^4.1.4" 2496 | mkdirp "^0.5.1" 2497 | object-assign "^4.1.0" 2498 | 2499 | p-finally@^1.0.0: 2500 | version "1.0.0" 2501 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2502 | 2503 | p-limit@^1.1.0: 2504 | version "1.3.0" 2505 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 2506 | dependencies: 2507 | p-try "^1.0.0" 2508 | 2509 | p-locate@^2.0.0: 2510 | version "2.0.0" 2511 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 2512 | dependencies: 2513 | p-limit "^1.1.0" 2514 | 2515 | p-try@^1.0.0: 2516 | version "1.0.0" 2517 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 2518 | 2519 | parse-glob@^3.0.4: 2520 | version "3.0.4" 2521 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2522 | dependencies: 2523 | glob-base "^0.3.0" 2524 | is-dotfile "^1.0.0" 2525 | is-extglob "^1.0.0" 2526 | is-glob "^2.0.0" 2527 | 2528 | parse-json@^2.2.0: 2529 | version "2.2.0" 2530 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2531 | dependencies: 2532 | error-ex "^1.2.0" 2533 | 2534 | parse5@4.0.0: 2535 | version "4.0.0" 2536 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" 2537 | 2538 | pascalcase@^0.1.1: 2539 | version "0.1.1" 2540 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2541 | 2542 | path-exists@^2.0.0: 2543 | version "2.1.0" 2544 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2545 | dependencies: 2546 | pinkie-promise "^2.0.0" 2547 | 2548 | path-exists@^3.0.0: 2549 | version "3.0.0" 2550 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 2551 | 2552 | path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: 2553 | version "1.0.1" 2554 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2555 | 2556 | path-key@^2.0.0: 2557 | version "2.0.1" 2558 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2559 | 2560 | path-parse@^1.0.5: 2561 | version "1.0.5" 2562 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" 2563 | 2564 | path-type@^1.0.0: 2565 | version "1.1.0" 2566 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2567 | dependencies: 2568 | graceful-fs "^4.1.2" 2569 | pify "^2.0.0" 2570 | pinkie-promise "^2.0.0" 2571 | 2572 | performance-now@^2.1.0: 2573 | version "2.1.0" 2574 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 2575 | 2576 | pify@^2.0.0: 2577 | version "2.3.0" 2578 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2579 | 2580 | pinkie-promise@^2.0.0: 2581 | version "2.0.1" 2582 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2583 | dependencies: 2584 | pinkie "^2.0.0" 2585 | 2586 | pinkie@^2.0.0: 2587 | version "2.0.4" 2588 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2589 | 2590 | pkg-dir@^2.0.0: 2591 | version "2.0.0" 2592 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 2593 | dependencies: 2594 | find-up "^2.1.0" 2595 | 2596 | pn@^1.1.0: 2597 | version "1.1.0" 2598 | resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" 2599 | 2600 | posix-character-classes@^0.1.0: 2601 | version "0.1.1" 2602 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2603 | 2604 | prelude-ls@~1.1.2: 2605 | version "1.1.2" 2606 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2607 | 2608 | preserve@^0.2.0: 2609 | version "0.2.0" 2610 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 2611 | 2612 | pretty-format@^23.0.1: 2613 | version "23.0.1" 2614 | resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.0.1.tgz#d61d065268e4c759083bccbca27a01ad7c7601f4" 2615 | dependencies: 2616 | ansi-regex "^3.0.0" 2617 | ansi-styles "^3.2.0" 2618 | 2619 | private@^0.1.8: 2620 | version "0.1.8" 2621 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 2622 | 2623 | process-nextick-args@~2.0.0: 2624 | version "2.0.0" 2625 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 2626 | 2627 | pseudomap@^1.0.2: 2628 | version "1.0.2" 2629 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2630 | 2631 | psl@^1.1.24: 2632 | version "1.1.28" 2633 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.28.tgz#4fb6ceb08a1e2214d4fd4de0ca22dae13740bc7b" 2634 | 2635 | punycode@^1.4.1: 2636 | version "1.4.1" 2637 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2638 | 2639 | punycode@^2.1.0: 2640 | version "2.1.1" 2641 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2642 | 2643 | qs@~6.5.1: 2644 | version "6.5.2" 2645 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 2646 | 2647 | randomatic@^3.0.0: 2648 | version "3.0.0" 2649 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" 2650 | dependencies: 2651 | is-number "^4.0.0" 2652 | kind-of "^6.0.0" 2653 | math-random "^1.0.1" 2654 | 2655 | rc@^1.1.7: 2656 | version "1.2.8" 2657 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2658 | dependencies: 2659 | deep-extend "^0.6.0" 2660 | ini "~1.3.0" 2661 | minimist "^1.2.0" 2662 | strip-json-comments "~2.0.1" 2663 | 2664 | read-pkg-up@^1.0.1: 2665 | version "1.0.1" 2666 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 2667 | dependencies: 2668 | find-up "^1.0.0" 2669 | read-pkg "^1.0.0" 2670 | 2671 | read-pkg@^1.0.0: 2672 | version "1.1.0" 2673 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 2674 | dependencies: 2675 | load-json-file "^1.0.0" 2676 | normalize-package-data "^2.3.2" 2677 | path-type "^1.0.0" 2678 | 2679 | readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6: 2680 | version "2.3.6" 2681 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 2682 | dependencies: 2683 | core-util-is "~1.0.0" 2684 | inherits "~2.0.3" 2685 | isarray "~1.0.0" 2686 | process-nextick-args "~2.0.0" 2687 | safe-buffer "~5.1.1" 2688 | string_decoder "~1.1.1" 2689 | util-deprecate "~1.0.1" 2690 | 2691 | readdirp@^2.0.0: 2692 | version "2.1.0" 2693 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 2694 | dependencies: 2695 | graceful-fs "^4.1.2" 2696 | minimatch "^3.0.2" 2697 | readable-stream "^2.0.2" 2698 | set-immediate-shim "^1.0.1" 2699 | 2700 | realpath-native@^1.0.0: 2701 | version "1.0.0" 2702 | resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0" 2703 | dependencies: 2704 | util.promisify "^1.0.0" 2705 | 2706 | regenerator-runtime@^0.10.5: 2707 | version "0.10.5" 2708 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 2709 | 2710 | regenerator-runtime@^0.11.0: 2711 | version "0.11.1" 2712 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" 2713 | 2714 | regex-cache@^0.4.2: 2715 | version "0.4.4" 2716 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 2717 | dependencies: 2718 | is-equal-shallow "^0.1.3" 2719 | 2720 | regex-not@^1.0.0, regex-not@^1.0.2: 2721 | version "1.0.2" 2722 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2723 | dependencies: 2724 | extend-shallow "^3.0.2" 2725 | safe-regex "^1.1.0" 2726 | 2727 | remove-trailing-separator@^1.0.1: 2728 | version "1.1.0" 2729 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2730 | 2731 | repeat-element@^1.1.2: 2732 | version "1.1.2" 2733 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 2734 | 2735 | repeat-string@^1.5.2, repeat-string@^1.6.1: 2736 | version "1.6.1" 2737 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2738 | 2739 | repeating@^2.0.0: 2740 | version "2.0.1" 2741 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 2742 | dependencies: 2743 | is-finite "^1.0.0" 2744 | 2745 | request-promise-core@1.1.1: 2746 | version "1.1.1" 2747 | resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" 2748 | dependencies: 2749 | lodash "^4.13.1" 2750 | 2751 | request-promise-native@^1.0.5: 2752 | version "1.0.5" 2753 | resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" 2754 | dependencies: 2755 | request-promise-core "1.1.1" 2756 | stealthy-require "^1.1.0" 2757 | tough-cookie ">=2.3.3" 2758 | 2759 | request@^2.83.0: 2760 | version "2.87.0" 2761 | resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" 2762 | dependencies: 2763 | aws-sign2 "~0.7.0" 2764 | aws4 "^1.6.0" 2765 | caseless "~0.12.0" 2766 | combined-stream "~1.0.5" 2767 | extend "~3.0.1" 2768 | forever-agent "~0.6.1" 2769 | form-data "~2.3.1" 2770 | har-validator "~5.0.3" 2771 | http-signature "~1.2.0" 2772 | is-typedarray "~1.0.0" 2773 | isstream "~0.1.2" 2774 | json-stringify-safe "~5.0.1" 2775 | mime-types "~2.1.17" 2776 | oauth-sign "~0.8.2" 2777 | performance-now "^2.1.0" 2778 | qs "~6.5.1" 2779 | safe-buffer "^5.1.1" 2780 | tough-cookie "~2.3.3" 2781 | tunnel-agent "^0.6.0" 2782 | uuid "^3.1.0" 2783 | 2784 | require-directory@^2.1.1: 2785 | version "2.1.1" 2786 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2787 | 2788 | require-main-filename@^1.0.1: 2789 | version "1.0.1" 2790 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2791 | 2792 | resolve-cwd@^2.0.0: 2793 | version "2.0.0" 2794 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" 2795 | dependencies: 2796 | resolve-from "^3.0.0" 2797 | 2798 | resolve-from@^3.0.0: 2799 | version "3.0.0" 2800 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" 2801 | 2802 | resolve-url@^0.2.1: 2803 | version "0.2.1" 2804 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2805 | 2806 | resolve@1.1.7: 2807 | version "1.1.7" 2808 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" 2809 | 2810 | ret@~0.1.10: 2811 | version "0.1.15" 2812 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2813 | 2814 | right-align@^0.1.1: 2815 | version "0.1.3" 2816 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 2817 | dependencies: 2818 | align-text "^0.1.1" 2819 | 2820 | rimraf@^2.5.4, rimraf@^2.6.1: 2821 | version "2.6.2" 2822 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 2823 | dependencies: 2824 | glob "^7.0.5" 2825 | 2826 | rimraf@~2.4.0: 2827 | version "2.4.5" 2828 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" 2829 | dependencies: 2830 | glob "^6.0.1" 2831 | 2832 | round-to@^3.0.0: 2833 | version "3.0.0" 2834 | resolved "https://registry.yarnpkg.com/round-to/-/round-to-3.0.0.tgz#f457177d68e5a1d9d55796528cd03daea0bb4fb9" 2835 | 2836 | rsvp@^3.3.3: 2837 | version "3.6.2" 2838 | resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" 2839 | 2840 | safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2841 | version "5.1.2" 2842 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2843 | 2844 | safe-json-stringify@~1: 2845 | version "1.2.0" 2846 | resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" 2847 | 2848 | safe-regex@^1.1.0: 2849 | version "1.1.0" 2850 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2851 | dependencies: 2852 | ret "~0.1.10" 2853 | 2854 | "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2: 2855 | version "2.1.2" 2856 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2857 | 2858 | sane@^2.0.0: 2859 | version "2.5.2" 2860 | resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" 2861 | dependencies: 2862 | anymatch "^2.0.0" 2863 | capture-exit "^1.2.0" 2864 | exec-sh "^0.2.0" 2865 | fb-watchman "^2.0.0" 2866 | micromatch "^3.1.4" 2867 | minimist "^1.1.1" 2868 | walker "~1.0.5" 2869 | watch "~0.18.0" 2870 | optionalDependencies: 2871 | fsevents "^1.2.3" 2872 | 2873 | sax@^1.2.4: 2874 | version "1.2.4" 2875 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2876 | 2877 | scrypt-js@2.0.3: 2878 | version "2.0.3" 2879 | resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.3.tgz#bb0040be03043da9a012a2cea9fc9f852cfc87d4" 2880 | 2881 | "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1: 2882 | version "5.5.0" 2883 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 2884 | 2885 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2886 | version "2.0.0" 2887 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2888 | 2889 | set-immediate-shim@^1.0.1: 2890 | version "1.0.1" 2891 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 2892 | 2893 | set-value@^0.4.3: 2894 | version "0.4.3" 2895 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" 2896 | dependencies: 2897 | extend-shallow "^2.0.1" 2898 | is-extendable "^0.1.1" 2899 | is-plain-object "^2.0.1" 2900 | to-object-path "^0.3.0" 2901 | 2902 | set-value@^2.0.0: 2903 | version "2.0.0" 2904 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" 2905 | dependencies: 2906 | extend-shallow "^2.0.1" 2907 | is-extendable "^0.1.1" 2908 | is-plain-object "^2.0.3" 2909 | split-string "^3.0.1" 2910 | 2911 | setimmediate@1.0.4: 2912 | version "1.0.4" 2913 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" 2914 | 2915 | shebang-command@^1.2.0: 2916 | version "1.2.0" 2917 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2918 | dependencies: 2919 | shebang-regex "^1.0.0" 2920 | 2921 | shebang-regex@^1.0.0: 2922 | version "1.0.0" 2923 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2924 | 2925 | shellwords@^0.1.1: 2926 | version "0.1.1" 2927 | resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" 2928 | 2929 | signal-exit@^3.0.0, signal-exit@^3.0.2: 2930 | version "3.0.2" 2931 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2932 | 2933 | slash@^1.0.0: 2934 | version "1.0.0" 2935 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 2936 | 2937 | snapdragon-node@^2.0.1: 2938 | version "2.1.1" 2939 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2940 | dependencies: 2941 | define-property "^1.0.0" 2942 | isobject "^3.0.0" 2943 | snapdragon-util "^3.0.1" 2944 | 2945 | snapdragon-util@^3.0.1: 2946 | version "3.0.1" 2947 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2948 | dependencies: 2949 | kind-of "^3.2.0" 2950 | 2951 | snapdragon@^0.8.1: 2952 | version "0.8.2" 2953 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2954 | dependencies: 2955 | base "^0.11.1" 2956 | debug "^2.2.0" 2957 | define-property "^0.2.5" 2958 | extend-shallow "^2.0.1" 2959 | map-cache "^0.2.2" 2960 | source-map "^0.5.6" 2961 | source-map-resolve "^0.5.0" 2962 | use "^3.1.0" 2963 | 2964 | source-map-resolve@^0.5.0: 2965 | version "0.5.2" 2966 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" 2967 | dependencies: 2968 | atob "^2.1.1" 2969 | decode-uri-component "^0.2.0" 2970 | resolve-url "^0.2.1" 2971 | source-map-url "^0.4.0" 2972 | urix "^0.1.0" 2973 | 2974 | source-map-support@^0.4.15: 2975 | version "0.4.18" 2976 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 2977 | dependencies: 2978 | source-map "^0.5.6" 2979 | 2980 | source-map-support@^0.5.6: 2981 | version "0.5.6" 2982 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 2983 | dependencies: 2984 | buffer-from "^1.0.0" 2985 | source-map "^0.6.0" 2986 | 2987 | source-map-url@^0.4.0: 2988 | version "0.4.0" 2989 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 2990 | 2991 | source-map@^0.4.4: 2992 | version "0.4.4" 2993 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 2994 | dependencies: 2995 | amdefine ">=0.0.4" 2996 | 2997 | source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: 2998 | version "0.5.7" 2999 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 3000 | 3001 | source-map@^0.6.0, source-map@~0.6.1: 3002 | version "0.6.1" 3003 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 3004 | 3005 | spdx-correct@^3.0.0: 3006 | version "3.0.0" 3007 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 3008 | dependencies: 3009 | spdx-expression-parse "^3.0.0" 3010 | spdx-license-ids "^3.0.0" 3011 | 3012 | spdx-exceptions@^2.1.0: 3013 | version "2.1.0" 3014 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 3015 | 3016 | spdx-expression-parse@^3.0.0: 3017 | version "3.0.0" 3018 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 3019 | dependencies: 3020 | spdx-exceptions "^2.1.0" 3021 | spdx-license-ids "^3.0.0" 3022 | 3023 | spdx-license-ids@^3.0.0: 3024 | version "3.0.0" 3025 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" 3026 | 3027 | split-string@^3.0.1, split-string@^3.0.2: 3028 | version "3.1.0" 3029 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 3030 | dependencies: 3031 | extend-shallow "^3.0.0" 3032 | 3033 | sprintf-js@~1.0.2: 3034 | version "1.0.3" 3035 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 3036 | 3037 | sshpk@^1.7.0: 3038 | version "1.14.2" 3039 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" 3040 | dependencies: 3041 | asn1 "~0.2.3" 3042 | assert-plus "^1.0.0" 3043 | dashdash "^1.12.0" 3044 | getpass "^0.1.1" 3045 | safer-buffer "^2.0.2" 3046 | optionalDependencies: 3047 | bcrypt-pbkdf "^1.0.0" 3048 | ecc-jsbn "~0.1.1" 3049 | jsbn "~0.1.0" 3050 | tweetnacl "~0.14.0" 3051 | 3052 | stack-utils@^1.0.1: 3053 | version "1.0.1" 3054 | resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" 3055 | 3056 | static-extend@^0.1.1: 3057 | version "0.1.2" 3058 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 3059 | dependencies: 3060 | define-property "^0.2.5" 3061 | object-copy "^0.1.0" 3062 | 3063 | stealthy-require@^1.1.0: 3064 | version "1.1.1" 3065 | resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" 3066 | 3067 | string-length@^2.0.0: 3068 | version "2.0.0" 3069 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" 3070 | dependencies: 3071 | astral-regex "^1.0.0" 3072 | strip-ansi "^4.0.0" 3073 | 3074 | string-width@^1.0.1: 3075 | version "1.0.2" 3076 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 3077 | dependencies: 3078 | code-point-at "^1.0.0" 3079 | is-fullwidth-code-point "^1.0.0" 3080 | strip-ansi "^3.0.0" 3081 | 3082 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: 3083 | version "2.1.1" 3084 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 3085 | dependencies: 3086 | is-fullwidth-code-point "^2.0.0" 3087 | strip-ansi "^4.0.0" 3088 | 3089 | string_decoder@~1.1.1: 3090 | version "1.1.1" 3091 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 3092 | dependencies: 3093 | safe-buffer "~5.1.0" 3094 | 3095 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 3096 | version "3.0.1" 3097 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3098 | dependencies: 3099 | ansi-regex "^2.0.0" 3100 | 3101 | strip-ansi@^4.0.0: 3102 | version "4.0.0" 3103 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 3104 | dependencies: 3105 | ansi-regex "^3.0.0" 3106 | 3107 | strip-bom@3.0.0, strip-bom@^3.0.0: 3108 | version "3.0.0" 3109 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 3110 | 3111 | strip-bom@^2.0.0: 3112 | version "2.0.0" 3113 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 3114 | dependencies: 3115 | is-utf8 "^0.2.0" 3116 | 3117 | strip-eof@^1.0.0: 3118 | version "1.0.0" 3119 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 3120 | 3121 | strip-json-comments@~2.0.1: 3122 | version "2.0.1" 3123 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3124 | 3125 | supports-color@^2.0.0: 3126 | version "2.0.0" 3127 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3128 | 3129 | supports-color@^3.1.2: 3130 | version "3.2.3" 3131 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" 3132 | dependencies: 3133 | has-flag "^1.0.0" 3134 | 3135 | supports-color@^5.3.0: 3136 | version "5.4.0" 3137 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 3138 | dependencies: 3139 | has-flag "^3.0.0" 3140 | 3141 | symbol-tree@^3.2.2: 3142 | version "3.2.2" 3143 | resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" 3144 | 3145 | tar@^4: 3146 | version "4.4.4" 3147 | resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" 3148 | dependencies: 3149 | chownr "^1.0.1" 3150 | fs-minipass "^1.2.5" 3151 | minipass "^2.3.3" 3152 | minizlib "^1.1.0" 3153 | mkdirp "^0.5.0" 3154 | safe-buffer "^5.1.2" 3155 | yallist "^3.0.2" 3156 | 3157 | test-exclude@^4.2.1: 3158 | version "4.2.1" 3159 | resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" 3160 | dependencies: 3161 | arrify "^1.0.1" 3162 | micromatch "^3.1.8" 3163 | object-assign "^4.1.0" 3164 | read-pkg-up "^1.0.1" 3165 | require-main-filename "^1.0.1" 3166 | 3167 | throat@^4.0.0: 3168 | version "4.1.0" 3169 | resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" 3170 | 3171 | tmpl@1.0.x: 3172 | version "1.0.4" 3173 | resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" 3174 | 3175 | to-fast-properties@^1.0.3: 3176 | version "1.0.3" 3177 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 3178 | 3179 | to-object-path@^0.3.0: 3180 | version "0.3.0" 3181 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 3182 | dependencies: 3183 | kind-of "^3.0.2" 3184 | 3185 | to-regex-range@^2.1.0: 3186 | version "2.1.1" 3187 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 3188 | dependencies: 3189 | is-number "^3.0.0" 3190 | repeat-string "^1.6.1" 3191 | 3192 | to-regex@^3.0.1, to-regex@^3.0.2: 3193 | version "3.0.2" 3194 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 3195 | dependencies: 3196 | define-property "^2.0.2" 3197 | extend-shallow "^3.0.2" 3198 | regex-not "^1.0.2" 3199 | safe-regex "^1.1.0" 3200 | 3201 | toposort@^2.0.2: 3202 | version "2.0.2" 3203 | resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" 3204 | 3205 | tough-cookie@>=2.3.3, tough-cookie@^2.3.3: 3206 | version "2.4.2" 3207 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.2.tgz#aa9133154518b494efab98a58247bfc38818c00c" 3208 | dependencies: 3209 | psl "^1.1.24" 3210 | punycode "^1.4.1" 3211 | 3212 | tough-cookie@~2.3.3: 3213 | version "2.3.4" 3214 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" 3215 | dependencies: 3216 | punycode "^1.4.1" 3217 | 3218 | tr46@^1.0.1: 3219 | version "1.0.1" 3220 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" 3221 | dependencies: 3222 | punycode "^2.1.0" 3223 | 3224 | trim-right@^1.0.1: 3225 | version "1.0.1" 3226 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 3227 | 3228 | tunnel-agent@^0.6.0: 3229 | version "0.6.0" 3230 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 3231 | dependencies: 3232 | safe-buffer "^5.0.1" 3233 | 3234 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 3235 | version "0.14.5" 3236 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 3237 | 3238 | type-check@~0.3.2: 3239 | version "0.3.2" 3240 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 3241 | dependencies: 3242 | prelude-ls "~1.1.2" 3243 | 3244 | uglify-js@^2.6: 3245 | version "2.8.29" 3246 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" 3247 | dependencies: 3248 | source-map "~0.5.1" 3249 | yargs "~3.10.0" 3250 | optionalDependencies: 3251 | uglify-to-browserify "~1.0.0" 3252 | 3253 | uglify-to-browserify@~1.0.0: 3254 | version "1.0.2" 3255 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 3256 | 3257 | union-value@^1.0.0: 3258 | version "1.0.0" 3259 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" 3260 | dependencies: 3261 | arr-union "^3.1.0" 3262 | get-value "^2.0.6" 3263 | is-extendable "^0.1.1" 3264 | set-value "^0.4.3" 3265 | 3266 | unset-value@^1.0.0: 3267 | version "1.0.0" 3268 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 3269 | dependencies: 3270 | has-value "^0.3.1" 3271 | isobject "^3.0.0" 3272 | 3273 | urix@^0.1.0: 3274 | version "0.1.0" 3275 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 3276 | 3277 | use@^3.1.0: 3278 | version "3.1.0" 3279 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" 3280 | dependencies: 3281 | kind-of "^6.0.2" 3282 | 3283 | user-home@^1.1.1: 3284 | version "1.1.1" 3285 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 3286 | 3287 | utf8@^2.1.1: 3288 | version "2.1.2" 3289 | resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" 3290 | 3291 | util-deprecate@~1.0.1: 3292 | version "1.0.2" 3293 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3294 | 3295 | util.promisify@^1.0.0: 3296 | version "1.0.0" 3297 | resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" 3298 | dependencies: 3299 | define-properties "^1.1.2" 3300 | object.getownpropertydescriptors "^2.0.3" 3301 | 3302 | uuid@2.0.1: 3303 | version "2.0.1" 3304 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" 3305 | 3306 | uuid@^3.1.0: 3307 | version "3.2.1" 3308 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 3309 | 3310 | v8flags@^2.1.1: 3311 | version "2.1.1" 3312 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" 3313 | dependencies: 3314 | user-home "^1.1.1" 3315 | 3316 | validate-npm-package-license@^3.0.1: 3317 | version "3.0.3" 3318 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" 3319 | dependencies: 3320 | spdx-correct "^3.0.0" 3321 | spdx-expression-parse "^3.0.0" 3322 | 3323 | verror@1.10.0: 3324 | version "1.10.0" 3325 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 3326 | dependencies: 3327 | assert-plus "^1.0.0" 3328 | core-util-is "1.0.2" 3329 | extsprintf "^1.2.0" 3330 | 3331 | w3c-hr-time@^1.0.1: 3332 | version "1.0.1" 3333 | resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" 3334 | dependencies: 3335 | browser-process-hrtime "^0.1.2" 3336 | 3337 | walker@~1.0.5: 3338 | version "1.0.7" 3339 | resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" 3340 | dependencies: 3341 | makeerror "1.0.x" 3342 | 3343 | watch@~0.18.0: 3344 | version "0.18.0" 3345 | resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" 3346 | dependencies: 3347 | exec-sh "^0.2.0" 3348 | minimist "^1.2.0" 3349 | 3350 | web3@^0.20.6: 3351 | version "0.20.7" 3352 | resolved "https://registry.yarnpkg.com/web3/-/web3-0.20.7.tgz#1605e6d81399ed6f85a471a4f3da0c8be57df2f7" 3353 | dependencies: 3354 | bignumber.js "git+https://github.com/frozeman/bignumber.js-nolookahead.git" 3355 | crypto-js "^3.1.4" 3356 | utf8 "^2.1.1" 3357 | xhr2-cookies "^1.1.0" 3358 | xmlhttprequest "*" 3359 | 3360 | webidl-conversions@^4.0.2: 3361 | version "4.0.2" 3362 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 3363 | 3364 | whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: 3365 | version "1.0.3" 3366 | resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" 3367 | dependencies: 3368 | iconv-lite "0.4.19" 3369 | 3370 | whatwg-mimetype@^2.0.0, whatwg-mimetype@^2.1.0: 3371 | version "2.1.0" 3372 | resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4" 3373 | 3374 | whatwg-url@^6.4.0, whatwg-url@^6.4.1: 3375 | version "6.5.0" 3376 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" 3377 | dependencies: 3378 | lodash.sortby "^4.7.0" 3379 | tr46 "^1.0.1" 3380 | webidl-conversions "^4.0.2" 3381 | 3382 | which-module@^2.0.0: 3383 | version "2.0.0" 3384 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 3385 | 3386 | which@^1.2.12, which@^1.2.9, which@^1.3.0: 3387 | version "1.3.1" 3388 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 3389 | dependencies: 3390 | isexe "^2.0.0" 3391 | 3392 | wide-align@^1.1.0: 3393 | version "1.1.3" 3394 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 3395 | dependencies: 3396 | string-width "^1.0.2 || 2" 3397 | 3398 | window-size@0.1.0: 3399 | version "0.1.0" 3400 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 3401 | 3402 | wordwrap@0.0.2: 3403 | version "0.0.2" 3404 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 3405 | 3406 | wordwrap@~0.0.2: 3407 | version "0.0.3" 3408 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 3409 | 3410 | wordwrap@~1.0.0: 3411 | version "1.0.0" 3412 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 3413 | 3414 | wrap-ansi@^2.0.0: 3415 | version "2.1.0" 3416 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 3417 | dependencies: 3418 | string-width "^1.0.1" 3419 | strip-ansi "^3.0.1" 3420 | 3421 | wrappy@1: 3422 | version "1.0.2" 3423 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3424 | 3425 | write-file-atomic@^2.1.0: 3426 | version "2.3.0" 3427 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" 3428 | dependencies: 3429 | graceful-fs "^4.1.11" 3430 | imurmurhash "^0.1.4" 3431 | signal-exit "^3.0.2" 3432 | 3433 | ws@^4.0.0: 3434 | version "4.1.0" 3435 | resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" 3436 | dependencies: 3437 | async-limiter "~1.0.0" 3438 | safe-buffer "~5.1.0" 3439 | 3440 | xhr2-cookies@^1.1.0: 3441 | version "1.1.0" 3442 | resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" 3443 | dependencies: 3444 | cookiejar "^2.1.1" 3445 | 3446 | xml-name-validator@^3.0.0: 3447 | version "3.0.0" 3448 | resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" 3449 | 3450 | xmlhttprequest@*, xmlhttprequest@1.8.0: 3451 | version "1.8.0" 3452 | resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" 3453 | 3454 | y18n@^3.2.1: 3455 | version "3.2.1" 3456 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 3457 | 3458 | yallist@^2.1.2: 3459 | version "2.1.2" 3460 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3461 | 3462 | yallist@^3.0.0, yallist@^3.0.2: 3463 | version "3.0.2" 3464 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" 3465 | 3466 | yargs-parser@^9.0.2: 3467 | version "9.0.2" 3468 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" 3469 | dependencies: 3470 | camelcase "^4.1.0" 3471 | 3472 | yargs@^11.0.0: 3473 | version "11.0.0" 3474 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" 3475 | dependencies: 3476 | cliui "^4.0.0" 3477 | decamelize "^1.1.1" 3478 | find-up "^2.1.0" 3479 | get-caller-file "^1.0.1" 3480 | os-locale "^2.0.0" 3481 | require-directory "^2.1.1" 3482 | require-main-filename "^1.0.1" 3483 | set-blocking "^2.0.0" 3484 | string-width "^2.0.0" 3485 | which-module "^2.0.0" 3486 | y18n "^3.2.1" 3487 | yargs-parser "^9.0.2" 3488 | 3489 | yargs@~3.10.0: 3490 | version "3.10.0" 3491 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 3492 | dependencies: 3493 | camelcase "^1.0.2" 3494 | cliui "^2.1.0" 3495 | decamelize "^1.0.0" 3496 | window-size "0.1.0" 3497 | --------------------------------------------------------------------------------