From 540a269b23d8b6e07b4ef62f6bd3e3f912eb46f3 Mon Sep 17 00:00:00 2001 From: thrilok209 Date: Mon, 2 Sep 2019 22:08:28 +0530 Subject: [PATCH] completed dashboard and exit page. --- README.md | 69 +- angular.json | 5 +- package-lock.json | 6136 +++++++++++++++-- package.json | 18 +- proxy.config.json | 23 + src/app/app-routing.module.ts | 11 - src/app/app.component.html | 20 +- src/app/app.module.ts | 86 +- src/app/app.routing.ts | 46 + .../connectbtn/connectDialogBox.html | 10 + .../connectbtn/connectbtn.component.html | 1 + .../connectbtn/connectbtn.component.sass | 0 .../connectbtn/connectbtn.component.spec.ts | 25 + .../connectbtn/connectbtn.component.ts | 87 + .../components/footer/footer.component.html | 28 + .../components/footer/footer.component.sass | 5 + .../footer/footer.component.spec.ts | 25 + src/app/components/footer/footer.component.ts | 15 + .../components/sidebar/sidebar.component.html | 28 + .../components/sidebar/sidebar.component.scss | 19 + .../sidebar/sidebar.component.spec.ts | 25 + .../components/sidebar/sidebar.component.ts | 16 + src/app/compound/borrowDialogBox.html | 23 + src/app/compound/compound.component.html | 166 + src/app/compound/compound.component.scss | 57 + src/app/compound/compound.component.spec.ts | 25 + src/app/compound/compound.component.ts | 536 ++ src/app/compound/payBackDialogBox.html | 32 + src/app/compound/supplyDialogBox.html | 28 + src/app/compound/withdrawDialogBox.html | 28 + src/app/exit/exit.component.html | 111 + src/app/exit/exit.component.scss | 24 + src/app/exit/exit.component.spec.ts | 25 + src/app/exit/exit.component.ts | 149 + src/app/layout/dashboard/alertDialogBox.html | 20 + .../layout/dashboard/dashboard.component.html | 52 + .../layout/dashboard/dashboard.component.scss | 32 + .../dashboard/dashboard.component.spec.ts | 25 + .../layout/dashboard/dashboard.component.ts | 85 + src/app/layout/dashboard/dashboard.module.ts | 13 + .../layout/protcols/protcols.component.html | 2 + .../layout/protcols/protcols.component.sass | 0 .../protcols/protcols.component.spec.ts | 25 + src/app/layout/protcols/protcols.component.ts | 15 + src/app/maker-dao/alertDialogBox.html | 6 + src/app/maker-dao/depositDialogBox.html | 19 + src/app/maker-dao/generateDialogBox.html | 19 + src/app/maker-dao/maker-dao.component.html | 100 + src/app/maker-dao/maker-dao.component.scss | 55 + src/app/maker-dao/maker-dao.component.spec.ts | 25 + src/app/maker-dao/maker-dao.component.ts | 540 ++ src/app/maker-dao/payBackDialogBox.html | 23 + src/app/maker-dao/withdrawDialogBox.html | 19 + src/app/material/material.module.ts | 140 + src/app/util/common/ABI/ERC20ABI.json | 423 ++ src/app/util/common/ABI/cTokensAbi.json | 90 + src/app/util/common/ABI/exitABI.json | 50 + src/app/util/common/ABI/instaRegistry.json | 250 + src/app/util/common/ABI/makerABI.json | 141 + src/app/util/common/ABI/userProxy.json | 176 + src/app/util/common/tokens.json | 110 + src/app/util/common/variable.json | 3 + src/app/util/util.module.ts | 15 + src/app/util/web3.service.spec.ts | 40 + src/app/util/web3.service.ts | 216 + src/assets/common/ABI/instaRegistry.json | 1 + src/assets/common/variable.json | 3 + src/assets/img/icons/tokens/bat.svg | 27 + src/assets/img/icons/tokens/bnb.svg | 19 + src/assets/img/icons/tokens/cdai.svg | 29 + src/assets/img/icons/tokens/dai.svg | 24 + src/assets/img/icons/tokens/dgx.svg | 23 + src/assets/img/icons/tokens/enj.svg | 73 + src/assets/img/icons/tokens/eth.svg | 21 + src/assets/img/icons/tokens/knc.svg | 38 + src/assets/img/icons/tokens/mana.svg | 33 + src/assets/img/icons/tokens/mkr.svg | 28 + src/assets/img/icons/tokens/omg.svg | 17 + src/assets/img/icons/tokens/poly.svg | 70 + src/assets/img/icons/tokens/rep.svg | 15 + src/assets/img/icons/tokens/salt.svg | 13 + src/assets/img/icons/tokens/snt.svg | 16 + src/assets/img/icons/tokens/tusd.svg | 18 + src/assets/img/icons/tokens/usdc.svg | 6 + src/assets/img/icons/tokens/wbtc.svg | 17 + src/assets/img/icons/tokens/weth.svg | 19 + src/assets/img/icons/tokens/zil.svg | 22 + src/assets/img/icons/tokens/zrx.svg | 17 + src/assets/img/instadapp/brand.png | Bin 0 -> 11142 bytes src/assets/img/instadapp/logo.png | Bin 0 -> 13873 bytes src/assets/img/instadapp/logoTextBeta.png | Bin 0 -> 16771 bytes src/assets/img/instadapp/logotext.png | Bin 0 -> 59125 bytes src/assets/img/logos/compound.png | Bin 0 -> 5684 bytes src/assets/img/logos/logo.png | Bin 0 -> 13873 bytes src/assets/img/logos/maker.png | Bin 0 -> 133771 bytes src/environments/environment.prod.ts | 6 +- src/environments/environment.ts | 6 +- src/favicon.ico | Bin 5430 -> 13873 bytes src/index.html | 13 +- src/main.ts | 9 +- src/polyfills.ts | 28 + src/styles.sass | 1 + tsconfig.json | 5 +- 103 files changed, 10591 insertions(+), 657 deletions(-) create mode 100644 proxy.config.json delete mode 100644 src/app/app-routing.module.ts create mode 100644 src/app/app.routing.ts create mode 100644 src/app/components/connectbtn/connectDialogBox.html create mode 100644 src/app/components/connectbtn/connectbtn.component.html create mode 100644 src/app/components/connectbtn/connectbtn.component.sass create mode 100644 src/app/components/connectbtn/connectbtn.component.spec.ts create mode 100644 src/app/components/connectbtn/connectbtn.component.ts create mode 100644 src/app/components/footer/footer.component.html create mode 100644 src/app/components/footer/footer.component.sass create mode 100644 src/app/components/footer/footer.component.spec.ts create mode 100644 src/app/components/footer/footer.component.ts create mode 100644 src/app/components/sidebar/sidebar.component.html create mode 100644 src/app/components/sidebar/sidebar.component.scss create mode 100644 src/app/components/sidebar/sidebar.component.spec.ts create mode 100644 src/app/components/sidebar/sidebar.component.ts create mode 100644 src/app/compound/borrowDialogBox.html create mode 100644 src/app/compound/compound.component.html create mode 100644 src/app/compound/compound.component.scss create mode 100644 src/app/compound/compound.component.spec.ts create mode 100644 src/app/compound/compound.component.ts create mode 100644 src/app/compound/payBackDialogBox.html create mode 100644 src/app/compound/supplyDialogBox.html create mode 100644 src/app/compound/withdrawDialogBox.html create mode 100644 src/app/exit/exit.component.html create mode 100644 src/app/exit/exit.component.scss create mode 100644 src/app/exit/exit.component.spec.ts create mode 100644 src/app/exit/exit.component.ts create mode 100644 src/app/layout/dashboard/alertDialogBox.html create mode 100644 src/app/layout/dashboard/dashboard.component.html create mode 100644 src/app/layout/dashboard/dashboard.component.scss create mode 100644 src/app/layout/dashboard/dashboard.component.spec.ts create mode 100644 src/app/layout/dashboard/dashboard.component.ts create mode 100644 src/app/layout/dashboard/dashboard.module.ts create mode 100644 src/app/layout/protcols/protcols.component.html create mode 100644 src/app/layout/protcols/protcols.component.sass create mode 100644 src/app/layout/protcols/protcols.component.spec.ts create mode 100644 src/app/layout/protcols/protcols.component.ts create mode 100644 src/app/maker-dao/alertDialogBox.html create mode 100644 src/app/maker-dao/depositDialogBox.html create mode 100644 src/app/maker-dao/generateDialogBox.html create mode 100644 src/app/maker-dao/maker-dao.component.html create mode 100644 src/app/maker-dao/maker-dao.component.scss create mode 100644 src/app/maker-dao/maker-dao.component.spec.ts create mode 100644 src/app/maker-dao/maker-dao.component.ts create mode 100644 src/app/maker-dao/payBackDialogBox.html create mode 100644 src/app/maker-dao/withdrawDialogBox.html create mode 100644 src/app/material/material.module.ts create mode 100644 src/app/util/common/ABI/ERC20ABI.json create mode 100644 src/app/util/common/ABI/cTokensAbi.json create mode 100644 src/app/util/common/ABI/exitABI.json create mode 100644 src/app/util/common/ABI/instaRegistry.json create mode 100644 src/app/util/common/ABI/makerABI.json create mode 100644 src/app/util/common/ABI/userProxy.json create mode 100644 src/app/util/common/tokens.json create mode 100644 src/app/util/common/variable.json create mode 100644 src/app/util/util.module.ts create mode 100644 src/app/util/web3.service.spec.ts create mode 100644 src/app/util/web3.service.ts create mode 100644 src/assets/common/ABI/instaRegistry.json create mode 100644 src/assets/common/variable.json create mode 100644 src/assets/img/icons/tokens/bat.svg create mode 100644 src/assets/img/icons/tokens/bnb.svg create mode 100644 src/assets/img/icons/tokens/cdai.svg create mode 100644 src/assets/img/icons/tokens/dai.svg create mode 100644 src/assets/img/icons/tokens/dgx.svg create mode 100644 src/assets/img/icons/tokens/enj.svg create mode 100644 src/assets/img/icons/tokens/eth.svg create mode 100644 src/assets/img/icons/tokens/knc.svg create mode 100644 src/assets/img/icons/tokens/mana.svg create mode 100644 src/assets/img/icons/tokens/mkr.svg create mode 100644 src/assets/img/icons/tokens/omg.svg create mode 100644 src/assets/img/icons/tokens/poly.svg create mode 100644 src/assets/img/icons/tokens/rep.svg create mode 100644 src/assets/img/icons/tokens/salt.svg create mode 100644 src/assets/img/icons/tokens/snt.svg create mode 100644 src/assets/img/icons/tokens/tusd.svg create mode 100644 src/assets/img/icons/tokens/usdc.svg create mode 100644 src/assets/img/icons/tokens/wbtc.svg create mode 100644 src/assets/img/icons/tokens/weth.svg create mode 100644 src/assets/img/icons/tokens/zil.svg create mode 100644 src/assets/img/icons/tokens/zrx.svg create mode 100644 src/assets/img/instadapp/brand.png create mode 100644 src/assets/img/instadapp/logo.png create mode 100644 src/assets/img/instadapp/logoTextBeta.png create mode 100644 src/assets/img/instadapp/logotext.png create mode 100644 src/assets/img/logos/compound.png create mode 100644 src/assets/img/logos/logo.png create mode 100644 src/assets/img/logos/maker.png diff --git a/README.md b/README.md index d9c887f..7269b6c 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,68 @@ -# InstaDashboard -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.1.2. +# **InstaDApp-Dashboard** -## Development server +> ### This codebase explains how to interact with InstaDApp Smart Contracts. -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. -## Code scaffolding +This codebase was created to demonstrate InstaDApp-Dashboard built with Angular that interacts with InstaDApp [Smart Contracts]([https://github.com/InstaDApp/contract-v2](https://github.com/InstaDApp/contract-v2)) -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. -## Build +# Getting started -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. +Make sure you have the [Angular CLI](https://github.com/angular/angular-cli#installation) installed globally. We use [Yarn](https://yarnpkg.com) to manage the dependencies, so we strongly recommend you to use it. you can install it from [Here](https://yarnpkg.com/en/docs/install), then run `yarn install` to resolve all dependencies (might take a minute). -## Running unit tests +### Clone the repo -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). +```shell +git clone https://github.com/InstaDApp/InstaDApp-Dashboard +cd InstaDApp-Dashboard +``` -## Running end-to-end tests +### Install npm packages -Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). +Install the `npm` packages described in the `package.json` and verify that it works: -## Further help +```shell +npm install +``` +### For dev server -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). +```shell +ng serve --proxy-config ./proxy.config.json +``` +After running `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +### Building the project +```shell +ng build +``` + +After running `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. These files are available in `gh-pages` branch. Use these files to run this application on your local system without any extra dependencies. + + +### Deploying into GitHub + +Install `angular-cli-ghpages` and follow the steps in documentation of this repo. + +[You can install and read steps from here]( [https://github.com/angular-schule/angular-cli-ghpages](https://github.com/angular-schule/angular-cli-ghpages)) + +## Functionality overview + + +**General functionality:** + +- Interact with InstaDApp Smart Contract of MakerDao and Compound Finance. +- Exit from InstaDApp Ecosystem + +**The general page breakdown looks like this:** + +- Dashboard page (URL: #/dashboard ) + - Supply, Borrow, Withdraw, Payback features of Compound Finance. + - Open / Close MakerDao CDP and use basic features of MakerDao +- Exit page (URL: #/exit ) + - Withdraw funds from InstaDapp account + - Move your CDP to your wallet account + +
+ +[![Brought to you by InstaDApp](https://instadapp.io/newsletter/img/logotext.png)](https://instadapp.io) diff --git a/angular.json b/angular.json index b6ac57d..91f8a87 100644 --- a/angular.json +++ b/angular.json @@ -52,7 +52,7 @@ "budgets": [ { "type": "initial", - "maximumWarning": "2mb", + "maximumWarning": "3mb", "maximumError": "5mb" } ] @@ -67,6 +67,7 @@ "configurations": { "production": { "browserTarget": "Insta-Dashboard:build:production" + } } }, @@ -121,4 +122,4 @@ } }}, "defaultProject": "Insta-Dashboard" -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index e26106d..a6d754e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,6 +68,14 @@ "webpack-sources": "1.3.0", "webpack-subresource-integrity": "1.1.0-rc.6", "worker-plugin": "3.1.0" + }, + "dependencies": { + "core-js": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz", + "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==", + "dev": true + } } }, "@angular-devkit/build-optimizer": { @@ -133,6 +141,23 @@ "tslib": "^1.9.0" } }, + "@angular/cdk": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-8.1.1.tgz", + "integrity": "sha512-5hBmhrHf9+WjGVIT8gbhT0Nh37BAjgI2TGRkt1o4qX8cG+1B6gU2MxM+CDJ7PhxSJi9lW93lq2AMuWwnRSllyg==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^1.7.1" + }, + "dependencies": { + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "optional": true + } + } + }, "@angular/cli": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.1.2.tgz", @@ -995,6 +1020,14 @@ "integrity": "sha512-9DR5TclsEpMIzCmagLHKYDTAqcZUkZKPjkngqIAUJg5R4IUjsuYn8NZX+agoOrS4ky6Dy9FXGYUC+QB0iEiycg==", "dev": true }, + "@angular/material": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-8.1.1.tgz", + "integrity": "sha512-45aaxKuLTrthzhAhG2+OY86wafuRBteZcRjDG7rKZ3Cc3KteUp5QwAi+QbhHzs4O3WXLWTAmuLYJelRqRqqw7g==", + "requires": { + "tslib": "^1.7.1" + } + }, "@angular/platform-browser": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.1.2.tgz", @@ -1109,6 +1142,21 @@ "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", "dev": true }, + "@babel/runtime": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz", + "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==", + "requires": { + "regenerator-runtime": "^0.13.2" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + } + } + }, "@babel/template": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", @@ -1179,6 +1227,393 @@ } } }, + "@makerdao/currency": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@makerdao/currency/-/currency-0.9.6.tgz", + "integrity": "sha512-V7jepuYI2W1+OgbwJACU2fE+1C2U01GzDWZVxeT9BTJPPSiDsu5jRepHLHaL+HEwIL9e/RmTcJDSgeST0zsOzA==", + "requires": { + "babel-runtime": "^6.26.0", + "bignumber.js": "^8.1.1" + }, + "dependencies": { + "bignumber.js": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-8.1.1.tgz", + "integrity": "sha512-QD46ppGintwPGuL1KqmwhR0O+N2cZUg8JG/VzwI2e28sM9TqHjQB10lI4QAaMHVbLzwVLLAwEglpKPViWX+5NQ==" + } + } + }, + "@makerdao/dai": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@makerdao/dai/-/dai-0.17.1.tgz", + "integrity": "sha512-osYUOLPjTjgtHwvK6jK0sluvEEOw2AzXOrIMQem1P8Fdz5/wmHRCW3XWgGsi+xsZgcR92SSjHWLRPJLxmbzQAw==", + "requires": { + "@babel/runtime": "^7.3.4", + "@makerdao/currency": "^0.9.5", + "@makerdao/services-core": "^0.9.8", + "assert": "^1.4.1", + "bignumber.js": "^7.2.1", + "chalk": "^2.4.1", + "debug": "^3.1.0", + "ethers": "^3.0.15", + "ethers-web3-bridge": "0.0.1", + "eventemitter2": "^5.0.1", + "invariant": "^2.2.2", + "isomorphic-fetch": "^2.2.1", + "lodash": "^4.17.11", + "promise-props": "^1.0.0", + "toposort": "^2.0.2", + "web3": "1.0.0-beta.34", + "web3-provider-engine": "github:makerdao/provider-engine#kovan-fix-dist" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "keccakjs": "^0.2.1", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "elliptic": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", + "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + } + } + }, + "ethers": { + "version": "3.0.29", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-3.0.29.tgz", + "integrity": "sha512-OGyA5pW5xFC5o/ZV5MfIoVp/EdA1QMg2bMJFf7Kznsz8m7IzzbgsPHTCjzSfKQDs/XDphGyRcA7A6bkIeJL4gw==", + "requires": { + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.3.3", + "hash.js": "^1.0.0", + "inherits": "2.0.1", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.3", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "eventemitter3": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", + "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" + }, + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "scrypt-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" + }, + "scrypt.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", + "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", + "requires": { + "scrypt": "^6.0.2", + "scryptsy": "^1.2.1" + } + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + }, + "web3": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.34.tgz", + "integrity": "sha1-NH5WG3hAmMtVYzFfSQR5odkfKrE=", + "requires": { + "web3-bzz": "1.0.0-beta.34", + "web3-core": "1.0.0-beta.34", + "web3-eth": "1.0.0-beta.34", + "web3-eth-personal": "1.0.0-beta.34", + "web3-net": "1.0.0-beta.34", + "web3-shh": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-core": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.34.tgz", + "integrity": "sha1-EhvoVV6fsA0sXQXd0zgdDJ5GmH4=", + "requires": { + "web3-core-helpers": "1.0.0-beta.34", + "web3-core-method": "1.0.0-beta.34", + "web3-core-requestmanager": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.34.tgz", + "integrity": "sha1-sWjaANPhnhVrwVriAyA91N/uLQM=", + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-core-method": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.34.tgz", + "integrity": "sha1-7BY8iixJD6AqfsFVWfpzB/x8xt0=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.34", + "web3-core-promievent": "1.0.0-beta.34", + "web3-core-subscriptions": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-core-subscriptions": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.34.tgz", + "integrity": "sha1-n+0UQDPyIcPPIQYDAv/a9e8t4t4=", + "requires": { + "eventemitter3": "1.1.1", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.34" + } + }, + "web3-eth": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.34.tgz", + "integrity": "sha1-dAhgAIUMb+b1Ne9Jg31tS7YRMmg=", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.34", + "web3-core-helpers": "1.0.0-beta.34", + "web3-core-method": "1.0.0-beta.34", + "web3-core-subscriptions": "1.0.0-beta.34", + "web3-eth-abi": "1.0.0-beta.34", + "web3-eth-accounts": "1.0.0-beta.34", + "web3-eth-contract": "1.0.0-beta.34", + "web3-eth-iban": "1.0.0-beta.34", + "web3-eth-personal": "1.0.0-beta.34", + "web3-net": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-eth-abi": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.34.tgz", + "integrity": "sha1-A0Uz46ovfln/MXk+rqaFwO1a9no=", + "requires": { + "bn.js": "4.11.6", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "web3-eth-accounts": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.34.tgz", + "integrity": "sha1-4JFC7uzHl6w0WbdemyOUbTaV8zM=", + "requires": { + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "scrypt.js": "0.2.0", + "underscore": "1.8.3", + "uuid": "2.0.1", + "web3-core": "1.0.0-beta.34", + "web3-core-helpers": "1.0.0-beta.34", + "web3-core-method": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + }, + "dependencies": { + "elliptic": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", + "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "web3-eth-contract": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.34.tgz", + "integrity": "sha1-nbs4+udkOoCEJ6IBgEcOx0FckeY=", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.34", + "web3-core-helpers": "1.0.0-beta.34", + "web3-core-method": "1.0.0-beta.34", + "web3-core-promievent": "1.0.0-beta.34", + "web3-core-subscriptions": "1.0.0-beta.34", + "web3-eth-abi": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.34.tgz", + "integrity": "sha1-mvRYYFhnzPdOqXmq8yazi6alugw=", + "requires": { + "bn.js": "4.11.6", + "web3-utils": "1.0.0-beta.34" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "web3-eth-personal": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.34.tgz", + "integrity": "sha1-mvuhZzQuveVCC81YlcP2w0OI8gU=", + "requires": { + "web3-core": "1.0.0-beta.34", + "web3-core-helpers": "1.0.0-beta.34", + "web3-core-method": "1.0.0-beta.34", + "web3-net": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-net": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.34.tgz", + "integrity": "sha1-QnzqL0MYgUScjjjVIykPFz+f9j0=", + "requires": { + "web3-core": "1.0.0-beta.34", + "web3-core-method": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-shh": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.34.tgz", + "integrity": "sha1-l1Bh1x6uxCzO5Xb3vY9w8DhEr+A=", + "requires": { + "web3-core": "1.0.0-beta.34", + "web3-core-method": "1.0.0-beta.34", + "web3-core-subscriptions": "1.0.0-beta.34", + "web3-net": "1.0.0-beta.34" + } + }, + "web3-utils": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.34.tgz", + "integrity": "sha1-lBH8OarvOcpOBhafdiKX2f8CCXA=", + "requires": { + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + } + } + }, + "@makerdao/services-core": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/@makerdao/services-core/-/services-core-0.9.8.tgz", + "integrity": "sha512-Qp/kkiKzqhJCuZ2YZT0cYo2oAyCM05PaJK69AkJ0FS21ETC6/n1oSQWwEpnkuKhutnM4ZO9/uuLWke47wC+ojA==", + "requires": { + "babel-runtime": "^6.26.0", + "lodash.values": "^4.3.0", + "toposort": "^2.0.2" + } + }, + "@ng-bootstrap/ng-bootstrap": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-5.1.0.tgz", + "integrity": "sha512-IYoKE1NMrIPbRV0077/uHOjdwPb3qyhHpbBXiMGjclkSm2GvKXNPIzgd3Vjon/lbKelHdAW4A/upUHN2VYUi3w==", + "requires": { + "tslib": "^1.9.0" + } + }, "@ngtools/webpack": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.1.2.tgz", @@ -1218,6 +1653,14 @@ "semver-intersect": "1.4.0" } }, + "@types/bn.js": { + "version": "4.11.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.5.tgz", + "integrity": "sha512-AEAZcIZga0JgVMHNtl1CprA/hXX7/wPt79AgR4XqaDt7jyj3QWYw6LPoOiznPtugDmlubUnAahMs2PFxGcQrng==", + "requires": { + "@types/node": "*" + } + }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -1259,8 +1702,7 @@ "@types/node": { "version": "8.9.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", - "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", - "dev": true + "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==" }, "@types/q": { "version": "0.0.32", @@ -1503,11 +1945,18 @@ "through": ">=2.2.7 <3" } }, + "abstract-leveldown": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", + "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", + "requires": { + "xtend": "~4.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, "requires": { "mime-types": "~2.1.24", "negotiator": "0.6.2" @@ -1531,6 +1980,11 @@ "integrity": "sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==", "dev": true }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, "after": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", @@ -1559,7 +2013,6 @@ "version": "6.10.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", @@ -1585,6 +2038,49 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, + "angular-cli-ghpages": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/angular-cli-ghpages/-/angular-cli-ghpages-0.5.3.tgz", + "integrity": "sha512-6ttpK5gghBXaWVnfXV9Ol0LRFwbmLwKPykjGn3HsHHyAENhJ5aGUSO89TlgOJWHaVW0x57SH3HHZr6wgSnw4/g==", + "dev": true, + "requires": { + "commander": "2.9.0", + "denodeify": "1.2.1", + "fs-extra": "3.0.1", + "gh-pages": "0.12.0" + }, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", @@ -1597,6 +2093,14 @@ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "requires": { + "ansi-wrap": "0.1.0" + } + }, "ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", @@ -1606,18 +2110,26 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, "anymatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.3.tgz", @@ -1634,6 +2146,14 @@ "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", "dev": true }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "requires": { + "buffer-equal": "^1.0.0" + } + }, "append-transform": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", @@ -1649,6 +2169,11 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1671,20 +2196,38 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "requires": { + "make-iterator": "^1.0.0" + } }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "requires": { + "make-iterator": "^1.0.0" + } }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" }, "array-flatten": { "version": "2.1.2", @@ -1692,6 +2235,59 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -1710,8 +2306,7 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "arraybuffer.slice": { "version": "0.0.7", @@ -1735,7 +2330,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -1744,7 +2338,6 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -1755,7 +2348,6 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, "requires": { "object-assign": "^4.1.1", "util": "0.10.3" @@ -1764,14 +2356,12 @@ "inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, "requires": { "inherits": "2.0.1" } @@ -1781,14 +2371,12 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "ast-types-flow": { "version": "0.0.7", @@ -1800,34 +2388,55 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, "requires": { "lodash": "^4.17.14" } }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-eventemitter": { + "version": "github:ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c", + "from": "github:ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c", + "requires": { + "async": "^2.4.0" + } }, "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "requires": { + "async-done": "^1.2.2" + } }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { "version": "9.6.0", @@ -1847,14 +2456,12 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "axobject-query": { "version": "2.0.2", @@ -1869,7 +2476,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, "requires": { "chalk": "^1.1.3", "esutils": "^2.0.2", @@ -1879,14 +2485,12 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -1898,8 +2502,45 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -1907,7 +2548,6 @@ "version": "6.26.1", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, "requires": { "babel-messages": "^6.23.0", "babel-runtime": "^6.26.0", @@ -1922,25 +2562,513 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, "requires": { "babel-runtime": "^6.22.0" } }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + } + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + }, + "dependencies": { + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + } + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + } + } + }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -1949,8 +3077,7 @@ "core-js": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", - "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", - "dev": true + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" } } }, @@ -1958,7 +3085,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", @@ -1971,7 +3097,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, "requires": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -1988,7 +3113,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, "requires": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", @@ -1996,11 +3120,35 @@ "to-fast-properties": "^1.0.3" } }, + "babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", + "requires": { + "babel-core": "^6.0.14", + "object-assign": "^4.0.0" + } + }, "babylon": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } }, "backo2": { "version": "1.0.2", @@ -2008,17 +3156,23 @@ "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", "dev": true }, + "backoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", + "integrity": "sha1-9hbtqdPktmuMp/ynn2lXIsX44m8=", + "requires": { + "precond": "0.2" + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -2033,7 +3187,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -2042,7 +3195,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -2051,7 +3203,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -2060,7 +3211,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -2078,8 +3228,7 @@ "base64-js": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, "base64id": { "version": "1.0.0", @@ -2097,7 +3246,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "requires": { "tweetnacl": "^0.14.3" } @@ -2117,18 +3265,56 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==" + }, "binary-extensions": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, "blob": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", "dev": true }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "~2.0.0" + } + }, "blocking-proxy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", @@ -2141,20 +3327,17 @@ "bluebird": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==" }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, "requires": { "bytes": "3.1.0", "content-type": "~1.0.4", @@ -2171,14 +3354,12 @@ "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" } } }, @@ -2200,7 +3381,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2218,14 +3398,12 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -2239,7 +3417,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -2250,7 +3427,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -2262,17 +3438,31 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, "requires": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" } }, + "browserify-sha3": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.4.tgz", + "integrity": "sha1-CGxHuMgjFsnUcCLCYYWVRXbdjiY=", + "requires": { + "js-sha3": "^0.6.1", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "js-sha3": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.6.1.tgz", + "integrity": "sha1-W4n3enR3Z5h39YxKB1JAk0sflcA=" + } + } + }, "browserify-sign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true, "requires": { "bn.js": "^4.1.1", "browserify-rsa": "^4.0.0", @@ -2313,21 +3503,18 @@ } }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.0.tgz", + "integrity": "sha512-Xpgy0IwHK2N01ncykXTy6FpCWuM+CJSHoPVBLyNqyrWxsedpLvwsYUhf0ME3WRFNUhos0dMamz9cOS/xRDtU5g==", "requires": { "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "ieee754": "^1.1.4" } }, "buffer-alloc": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -2336,20 +3523,27 @@ "buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-indexof": { "version": "1.1.1", @@ -2357,11 +3551,15 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "builtin-modules": { "version": "1.1.1", @@ -2413,7 +3611,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -2465,8 +3662,7 @@ "caniuse-lite": { "version": "1.0.30000979", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000979.tgz", - "integrity": "sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw==", - "dev": true + "integrity": "sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw==" }, "canonical-path": { "version": "1.0.0", @@ -2477,14 +3673,12 @@ "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2497,6 +3691,14 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, + "checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "requires": { + "functional-red-black-tree": "^1.0.1" + } + }, "chokidar": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz", @@ -2543,7 +3745,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -2559,7 +3760,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -2571,7 +3771,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -2641,8 +3840,12 @@ "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" }, "clone-deep": { "version": "2.0.2", @@ -2656,6 +3859,21 @@ "shallow-clone": "^1.0.0" } }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2665,8 +3883,7 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "codelyzer": { "version": "5.1.0", @@ -2699,21 +3916,38 @@ } } }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, + "collections": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz", + "integrity": "sha1-HyMCay7zb5J+7MkB6ZxfDUj6M04=", + "dev": true, + "requires": { + "weak-map": "1.0.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -2721,8 +3955,12 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" }, "colors": { "version": "1.1.2", @@ -2734,7 +3972,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -2742,8 +3979,7 @@ "commander": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", - "dev": true + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" }, "commondir": { "version": "1.0.1", @@ -2766,8 +4002,7 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "component-inherit": { "version": "0.0.3", @@ -2802,14 +4037,12 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -2854,7 +4087,6 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, "requires": { "safe-buffer": "5.1.2" } @@ -2862,14 +4094,12 @@ "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "dev": true, "requires": { "safe-buffer": "~5.1.1" } @@ -2877,14 +4107,17 @@ "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" }, "copy-concurrently": { "version": "1.0.5", @@ -2903,8 +4136,16 @@ "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "copy-props": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", + "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", + "requires": { + "each-props": "^1.3.0", + "is-plain-object": "^2.0.1" + } }, "copy-webpack-plugin": { "version": "5.0.3", @@ -2927,16 +4168,23 @@ } }, "core-js": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz", - "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==", - "dev": true + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } }, "cosmiconfig": { "version": "5.2.1", @@ -2954,7 +4202,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, "requires": { "bn.js": "^4.1.0", "elliptic": "^6.0.0" @@ -2964,7 +4211,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -2977,7 +4223,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -2987,6 +4232,27 @@ "sha.js": "^2.4.8" } }, + "cross-fetch": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.3.tgz", + "integrity": "sha512-PrWWNH3yL2NYIb/7WF/5vFG3DCQiXDOVf8k3ijatbrtnwNuhMWLC7YF7uqf53tbTFDzHIUD8oITw4Bxt8ST3Nw==", + "requires": { + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" + }, + "dependencies": { + "node-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" + }, + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + } + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -3012,7 +4278,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -3071,6 +4336,15 @@ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "dev": true }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "damerau-levenshtein": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz", @@ -3081,7 +4355,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -3102,7 +4375,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -3116,20 +4388,148 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", + "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } }, "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } }, "default-gateway": { "version": "4.2.0", @@ -3150,11 +4550,23 @@ "strip-bom": "^3.0.0" } }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" + }, + "deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "requires": { + "abstract-leveldown": "~2.6.0" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -3163,7 +4575,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -3173,7 +4584,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3182,7 +4592,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3191,7 +4600,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -3200,6 +4608,11 @@ } } }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, "del": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", @@ -3241,14 +4654,18 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", "dev": true }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "dependency-graph": { "version": "0.7.2", @@ -3260,7 +4677,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true, "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -3269,14 +4685,17 @@ "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" }, "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true, "requires": { "repeating": "^2.0.0" } @@ -3313,7 +4732,6 @@ "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", @@ -3366,17 +4784,36 @@ "void-elements": "^2.0.0" } }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true }, + "drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "requires": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -3384,11 +4821,19 @@ "stream-shift": "^1.0.0" } }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -3397,20 +4842,17 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { "version": "1.3.194", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.194.tgz", - "integrity": "sha512-w0LHR2YD9Ex1o+Sz4IN2hYzCB8vaFtMNW+yJcBf6SZlVqgFahkne/4rGVJdk4fPF98Gch9snY7PiabOh+vqHNg==", - "dev": true + "integrity": "sha512-w0LHR2YD9Ex1o+Sz4IN2hYzCB8vaFtMNW+yJcBf6SZlVqgFahkne/4rGVJdk4fPF98Gch9snY7PiabOh+vqHNg==" }, "elliptic": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", - "dev": true, "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -3436,14 +4878,12 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "dev": true, "requires": { "iconv-lite": "~0.4.13" } @@ -3452,7 +4892,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, "requires": { "once": "^1.4.0" } @@ -3564,7 +5003,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, "requires": { "prr": "~1.0.1" } @@ -3573,7 +5011,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -3582,7 +5019,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, "requires": { "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", @@ -3596,13 +5032,32 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "^1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", @@ -3618,17 +5073,35 @@ "es6-promise": "^4.0.3" } }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint-scope": { "version": "4.0.3", @@ -3664,26 +5137,471 @@ "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eth-block-tracker": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-2.3.1.tgz", + "integrity": "sha512-NamWuMBIl8kmkJFVj8WzGatySTzQPQag4Xr677yFxdVtIxACFbL/dQowk0MzEqIKk93U1TwY3MjVU6mOcwZnKA==", + "requires": { + "async-eventemitter": "github:ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c", + "eth-query": "^2.1.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.3", + "ethjs-util": "^0.1.3", + "json-rpc-engine": "^3.6.0", + "pify": "^2.3.0", + "tape": "^4.6.3" + }, + "dependencies": { + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + } + }, + "eth-json-rpc-infura": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.0.tgz", + "integrity": "sha512-FLcpdxPRVBCUc7yoE+wHGvyYg2lATedP+/q7PsKvaSzQpJbgTG4ZjLnyrLanxDr6M1k/dSNa6V5QnILwjUKJcw==", + "requires": { + "cross-fetch": "^2.1.1", + "eth-json-rpc-middleware": "^1.5.0", + "json-rpc-engine": "^3.4.0", + "json-rpc-error": "^2.0.0", + "tape": "^4.8.0" + } + }, + "eth-json-rpc-middleware": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz", + "integrity": "sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q==", + "requires": { + "async": "^2.5.0", + "eth-query": "^2.1.2", + "eth-tx-summary": "^3.1.2", + "ethereumjs-block": "^1.6.0", + "ethereumjs-tx": "^1.3.3", + "ethereumjs-util": "^5.1.2", + "ethereumjs-vm": "^2.1.0", + "fetch-ponyfill": "^4.0.0", + "json-rpc-engine": "^3.6.0", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "tape": "^4.6.3" + }, + "dependencies": { + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + } + } + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha1-1nQdkAAQa1FRDHLbktY2VFam2l4=", + "requires": { + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "eth-sig-util": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz", + "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", + "requires": { + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-util": "^5.1.1" + } + }, + "eth-tx-summary": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz", + "integrity": "sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg==", + "requires": { + "async": "^2.1.2", + "clone": "^2.0.0", + "concat-stream": "^1.5.1", + "end-of-stream": "^1.1.0", + "eth-query": "^2.0.2", + "ethereumjs-block": "^1.4.1", + "ethereumjs-tx": "^1.1.1", + "ethereumjs-util": "^5.0.1", + "ethereumjs-vm": "^2.6.0", + "through2": "^2.0.3" + }, + "dependencies": { + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + } + } + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "ethereumjs-abi": { + "version": "git+https://github.com/ethereumjs/ethereumjs-abi.git#8431eab7b3384e65e8126a4602520b78031666fb", + "from": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", + "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "0.1.6", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-account": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", + "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==", + "requires": { + "ethereumjs-util": "^5.0.0", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethereumjs-block": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz", + "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==", + "requires": { + "async": "^2.0.1", + "ethereum-common": "0.2.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereum-common": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", + "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + }, + "dependencies": { + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + } + } + } + } + }, + "ethereumjs-common": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.3.1.tgz", + "integrity": "sha512-kexqNgM2q29RKoZPPjehPREeqbr/vhYfT9Ho8FVeH3f7USjBuYp1iZ1qjqklk8FSMvEKPpMJFYSOunikw30Prw==" + }, + "ethereumjs-tx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.0.tgz", + "integrity": "sha512-q1PFhR5i93OjcoE0G3GGz7XvnpLiddcUSKr28hmMUzVHvvc/+PHmQTx4NrGQUUny7qBq9tEIcvMivdB7uphKtA==", + "requires": { + "ethereumjs-common": "^1.3.0", + "ethereumjs-util": "^6.0.0" + }, + "dependencies": { + "ethereumjs-util": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", + "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "0.1.6", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", + "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "^0.1.3", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + }, + "ethereumjs-vm": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz", + "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==", + "requires": { + "async": "^2.1.2", + "async-eventemitter": "^0.2.2", + "ethereumjs-account": "^2.0.3", + "ethereumjs-block": "~2.2.0", + "ethereumjs-common": "^1.1.0", + "ethereumjs-util": "^6.0.0", + "fake-merkle-patricia-tree": "^1.0.1", + "functional-red-black-tree": "^1.0.1", + "merkle-patricia-tree": "^2.3.2", + "rustbn.js": "~0.2.0", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "ethereumjs-block": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.0.tgz", + "integrity": "sha512-Ye+uG/L2wrp364Zihdlr/GfC3ft+zG8PdHcRtsBFNNH1CkOhxOwdB8friBU85n89uRZ9eIMAywCq0F4CwT1wAw==", + "requires": { + "async": "^2.0.1", + "ethereumjs-common": "^1.1.0", + "ethereumjs-tx": "^1.2.2", + "ethereumjs-util": "^5.0.0", + "merkle-patricia-tree": "^2.1.2" + }, + "dependencies": { + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz", + "integrity": "sha512-CJAKdI0wgMbQFLlLRtZKGcy/L6pzVRgelIZqRqNbuVFM3K9VEnyfbcvz0ncWMRNCe4kaHWjwRYQcYMucmwsnWA==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "^0.1.3", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethereumjs-util": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz", + "integrity": "sha512-URESKMFbDeJxnAxPppnk2fN6Y3BIatn9fwn76Lm8bQlt+s52TpG8dN9M66MLPuRAiAOIqL3dfwqWJf0sd0fL0Q==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "ethjs-util": "0.1.6", + "keccak": "^1.0.2", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1", + "secp256k1": "^3.0.1" + } + } + } + }, + "ethers": { + "version": "4.0.33", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.33.tgz", + "integrity": "sha512-lAHkSPzBe0Vj+JrhmkEHLtUEKEheVktIjGDyE9gbzF4zf1vibjYgB57LraDHu4/ItqWVkztgsm8GWqcDMN+6vQ==", + "requires": { + "@types/node": "^10.3.2", + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.3.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "@types/node": { + "version": "10.14.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==" + }, + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + } + } + }, + "ethers-providers": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/ethers-providers/-/ethers-providers-2.1.19.tgz", + "integrity": "sha512-usjJ5qyGO84kMmIYImwGhJo12nnG5uzqpZlViYQFEfwBzqoj7b9e55xnc7fP6XWcnPrrbMqIa0KrW8BKy9bYpg==", + "requires": { + "ethers-utils": "^2.1.0", + "inherits": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + } + } + }, + "ethers-utils": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/ethers-utils/-/ethers-utils-2.1.11.tgz", + "integrity": "sha512-BfkGStBmmLjhTldmp5lifiwUeDjx/yowoWfmUnnvPNsix5PFE8IXQdY5VT/Qo1SXMgxzCe8m0Z8ysUw6Q9OmAw==", + "requires": { + "bn.js": "^4.4.0", + "hash.js": "^1.0.0", + "js-sha3": "0.5.7", + "xmlhttprequest": "1.8.0" + } + }, + "ethers-web3-bridge": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/ethers-web3-bridge/-/ethers-web3-bridge-0.0.1.tgz", + "integrity": "sha512-dnLJxFtO1BmgkmPM2v7JqiUuvcYapiKLXJKq2QcAREyKDnIUAsFeh/Hb80cn9ABJNFK9EYToqee/Ry0c1s7w/Q==", + "requires": { + "ethers-providers": "^2.1.19", + "ethers-utils": "^2.1.11" + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" }, "eventemitter3": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" }, "events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", - "dev": true + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==" }, "eventsource": { "version": "1.0.7", @@ -3698,7 +5616,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -3729,7 +5646,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -3744,7 +5660,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -3753,18 +5668,24 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, "requires": { "accepts": "~1.3.7", "array-flatten": "1.1.1", @@ -3801,28 +5722,24 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" } } }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -3832,7 +5749,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -3854,7 +5770,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -3870,7 +5785,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -3879,7 +5793,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -3888,7 +5801,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3897,7 +5809,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3906,7 +5817,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -3918,20 +5828,36 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "requires": { + "checkpoint-store": "^1.1.0" + } + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fastparse": { "version": "1.1.2", @@ -3948,6 +5874,22 @@ "websocket-driver": ">=0.5.1" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "fetch-ponyfill": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz", + "integrity": "sha1-rjzl9zLGReq4fkroeTQUcJsjmJM=", + "requires": { + "node-fetch": "~1.7.1" + } + }, "figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", @@ -3973,6 +5915,16 @@ "schema-utils": "^1.0.0" } }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "fileset": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", @@ -3996,7 +5948,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -4027,6 +5978,34 @@ "locate-path": "^3.0.0" } }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" + }, "flatted": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", @@ -4037,7 +6016,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -4069,17 +6047,23 @@ } } }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, "requires": { "for-in": "^1.0.1" } @@ -4087,14 +6071,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", @@ -4104,14 +6086,12 @@ "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, "requires": { "map-cache": "^0.2.2" } @@ -4119,8 +6099,7 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "from2": { "version": "2.3.0", @@ -4141,6 +6120,11 @@ "null-check": "^1.0.0" } }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -4161,6 +6145,45 @@ "minipass": "^2.2.1" } }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs-promise": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz", + "integrity": "sha1-9k5PhUvPaJqovdy6JokW2z20aFQ=", + "requires": { + "any-promise": "^1.3.0", + "fs-extra": "^2.0.0", + "mz": "^2.6.0", + "thenify-all": "^1.6.0" + }, + "dependencies": { + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -4176,8 +6199,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.0.7", @@ -4186,11 +6208,26 @@ "dev": true, "optional": true }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" }, "genfun": { "version": "5.0.0", @@ -4201,8 +6238,7 @@ "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" }, "get-stream": { "version": "4.1.0", @@ -4216,23 +6252,80 @@ "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } }, + "gh-pages": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-0.12.0.tgz", + "integrity": "sha1-2VHj7Zi4VpnUsEGOsaFbGgSYjcE=", + "dev": true, + "requires": { + "async": "2.1.2", + "commander": "2.9.0", + "globby": "^6.1.0", + "graceful-fs": "4.1.10", + "q": "1.4.1", + "q-io": "1.13.2", + "rimraf": "^2.5.4" + }, + "dependencies": { + "async": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.2.tgz", + "integrity": "sha1-YSpKtF70KnDN6Aa62G7m2wR+g4U=", + "dev": true, + "requires": { + "lodash": "^4.14.0" + } + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.10.tgz", + "integrity": "sha1-8tcgwiCS90Mih3XHXjYSYyUB8TE=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, "glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4246,7 +6339,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -4256,18 +6348,694 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, "requires": { "is-extglob": "^2.1.0" } } } }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + } + }, + "glob-watcher": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", + "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "object.defaults": "^1.1.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + } + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + }, + "dependencies": { + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + } + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" }, "globby": { "version": "7.1.1", @@ -4291,11 +7059,197 @@ } } }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "requires": { + "sparkles": "^1.0.0" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + } + } + }, "graceful-fs": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", - "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==", - "dev": true + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "gulp-cli": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "requires": { + "glogg": "^1.0.0" + } }, "handle-thing": { "version": "2.0.0", @@ -4326,14 +7280,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, "requires": { "ajv": "^6.5.5", "har-schema": "^2.0.0" @@ -4343,7 +7295,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -4352,7 +7303,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4383,20 +7333,30 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -4407,7 +7367,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -4417,7 +7376,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -4426,7 +7384,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4437,7 +7394,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4448,7 +7404,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -4458,7 +7413,6 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -4468,18 +7422,33 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "requires": { + "parse-passwd": "^1.0.0" + } + }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, "hpack.js": { "version": "2.1.6", @@ -4515,7 +7484,6 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -4527,11 +7495,15 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, "http-parser-js": { "version": "0.4.10", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", @@ -4586,7 +7558,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -4639,16 +7610,29 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } + } + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "iferr": { "version": "0.1.5", @@ -4738,7 +7722,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -4747,14 +7730,12 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "inquirer": { "version": "6.4.1", @@ -4804,11 +7785,15 @@ "ipaddr.js": "^1.9.0" } }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -4834,14 +7819,21 @@ "ipaddr.js": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", - "dev": true + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -4850,7 +7842,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4860,8 +7851,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "2.1.0", @@ -4875,20 +7865,17 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -4897,7 +7884,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -4907,14 +7893,12 @@ "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -4924,8 +7908,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -4938,45 +7921,71 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, + "is-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz", + "integrity": "sha1-lUPV3nvPWwiiLsiiC65uKG1RDYw=" + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, "requires": { "is-extglob": "^2.1.1" } }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -5004,14 +8013,12 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "requires": { "isobject": "^3.0.1" } @@ -5026,22 +8033,32 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, "requires": { "has": "^1.0.1" } }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, "requires": { "has-symbols": "^1.0.0" } @@ -5049,14 +8066,30 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "is-wsl": { "version": "1.1.0", @@ -5067,8 +8100,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { "version": "3.0.3", @@ -5082,20 +8114,26 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-api": { "version": "2.1.6", @@ -5305,6 +8343,15 @@ "handlebars": "^4.1.2" } }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, "jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", @@ -5345,11 +8392,15 @@ "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", "dev": true }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { "version": "3.13.1", @@ -5364,14 +8415,12 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, "json-parse-better-errors": { "version": "1.0.2", @@ -5379,23 +8428,59 @@ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "json-rpc-engine": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz", + "integrity": "sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA==", + "requires": { + "async": "^2.0.1", + "babel-preset-env": "^1.7.0", + "babelify": "^7.3.0", + "json-rpc-error": "^2.0.0", + "promise-to-callback": "^1.0.0", + "safe-event-emitter": "^1.0.1" + } + }, + "json-rpc-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz", + "integrity": "sha1-p6+cICg4tekFxyUOVH8a/3cligI=", + "requires": { + "inherits": "^2.0.1" + } + }, + "json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha1-uknZat7RRE27jaPSA3SKy7zeyMg=" + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json3": { "version": "3.3.3", @@ -5421,6 +8506,11 @@ "graceful-fs": "^4.1.6" } }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -5431,7 +8521,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -5451,6 +8540,11 @@ "set-immediate-shim": "~1.0.1" } }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=" + }, "karma": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/karma/-/karma-4.1.0.tgz", @@ -6232,6 +9326,26 @@ "source-map-support": "^0.5.5" } }, + "keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "requires": { + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + } + }, + "keccakjs": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.3.tgz", + "integrity": "sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg==", + "requires": { + "browserify-sha3": "^0.0.4", + "sha3": "^1.2.2" + } + }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -6241,8 +9355,24 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "requires": { + "readable-stream": "^2.0.5" + } }, "lcid": { "version": "2.0.0", @@ -6253,6 +9383,14 @@ "invert-kv": "^2.0.0" } }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "requires": { + "flush-write-stream": "^1.0.2" + } + }, "less": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", @@ -6290,6 +9428,119 @@ "pify": "^4.0.1" } }, + "level-codec": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", + "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" + }, + "level-errors": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", + "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", + "requires": { + "errno": "~0.1.1" + } + }, + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "requires": { + "inherits": "^2.0.1", + "level-errors": "^1.0.3", + "readable-stream": "^1.0.33", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "requires": { + "readable-stream": "~1.0.15", + "xtend": "~2.1.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "requires": { + "deferred-leveldown": "~1.2.1", + "level-codec": "~7.0.0", + "level-errors": "~1.0.3", + "level-iterator-stream": "~1.3.0", + "prr": "~1.0.1", + "semver": "~5.4.1", + "xtend": "~4.0.0" + }, + "dependencies": { + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + } + } + }, "license-webpack-plugin": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.1.tgz", @@ -6309,6 +9560,56 @@ "immediate": "~3.0.5" } }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", @@ -6339,8 +9640,7 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash.clonedeep": { "version": "4.5.0", @@ -6354,6 +9654,11 @@ "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", "dev": true }, + "lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha1-o6bCsOvsxcLLocF+bmIP6BtT00c=" + }, "log4js": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", @@ -6394,11 +9699,15 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -6408,6 +9717,11 @@ "yallist": "^3.0.2" } }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + }, "magic-string": { "version": "0.25.3", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz", @@ -6460,6 +9774,14 @@ "ssri": "^6.0.0" } }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "requires": { + "kind-of": "^6.0.2" + } + }, "mamacro": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", @@ -6478,23 +9800,52 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, "requires": { "object-visit": "^1.0.0" } }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -6504,8 +9855,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "mem": { "version": "4.3.0", @@ -6518,6 +9868,34 @@ "p-is-promise": "^2.0.0" } }, + "memdown": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", + "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", + "requires": { + "abstract-leveldown": "~2.7.1", + "functional-red-black-tree": "^1.0.1", + "immediate": "^3.2.3", + "inherits": "~2.0.1", + "ltgt": "~2.2.0", + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "abstract-leveldown": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", + "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", + "requires": { + "xtend": "~4.0.0" + } + }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" + } + } + }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -6531,20 +9909,39 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merkle-patricia-tree": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz", + "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==", + "requires": { + "async": "^1.4.2", + "ethereumjs-util": "^5.0.0", + "level-ws": "0.0.0", + "levelup": "^1.2.1", + "memdown": "^1.0.0", + "readable-stream": "^2.0.0", + "rlp": "^2.0.0", + "semaphore": ">=1.0.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -6565,7 +9962,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -6583,7 +9979,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -6594,7 +9989,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -6606,7 +10000,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -6617,7 +10010,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -6626,7 +10018,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6637,7 +10028,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -6649,7 +10039,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" @@ -6658,30 +10047,46 @@ "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { "version": "1.40.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" }, "mime-types": { "version": "2.1.24", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", - "dev": true, "requires": { "mime-db": "1.40.0" } }, + "mimeparse": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz", + "integrity": "sha1-2vsCdSNw/SJgk64xUsJxrwGsJUo=", + "dev": true + }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, "mini-css-extract-plugin": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.7.0.tgz", @@ -6697,20 +10102,17 @@ "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -6718,8 +10120,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "minipass": { "version": "2.3.5", @@ -6762,7 +10163,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -6772,7 +10172,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -6801,7 +10200,6 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" }, @@ -6809,11 +10207,28 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "requires": { + "mkdirp": "*" + } + }, + "mock-fs": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.10.1.tgz", + "integrity": "sha512-w22rOL5ZYu6HbUehB5deurghGM0hS/xBVyHMGKOuQctkk93J9z9VEOhDsiWrXOprVNQpP9uzGKdl8v9mFspKuw==" + }, + "mout": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", + "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=" + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", @@ -6831,8 +10246,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multicast-dns": { "version": "6.2.3", @@ -6850,24 +10264,41 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "dev": true, - "optional": true + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -6885,8 +10316,7 @@ "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "neo-async": { "version": "2.6.1", @@ -6894,12 +10324,26 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, "node-fetch-npm": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", @@ -6948,6 +10392,17 @@ "vm-browserify": "^1.0.1" }, "dependencies": { + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -6977,7 +10432,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -6988,8 +10442,7 @@ "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" } } }, @@ -7017,6 +10470,14 @@ "sort-keys": "^1.0.0" } }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "requires": { + "once": "^1.3.2" + } + }, "npm-bundled": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", @@ -7110,20 +10571,33 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-component": { "version": "0.0.3", @@ -7135,7 +10609,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -7146,7 +10619,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -7155,28 +10627,52 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, "requires": { "isobject": "^3.0.0" } }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, "object.getownpropertydescriptors": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", @@ -7187,15 +10683,40 @@ "es-abstract": "^1.5.1" } }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, "requires": { "isobject": "^3.0.1" } }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "oboe": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", + "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", + "requires": { + "http-https": "^1.0.0" + } + }, "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", @@ -7206,7 +10727,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, "requires": { "ee-first": "1.1.1" } @@ -7221,7 +10741,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -7279,6 +10798,14 @@ } } }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "requires": { + "readable-stream": "^2.0.1" + } + }, "original": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", @@ -7297,8 +10824,7 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "3.1.0", @@ -7314,8 +10840,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", @@ -7327,6 +10852,11 @@ "os-tmpdir": "^1.0.0" } }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -7336,8 +10866,7 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-is-promise": { "version": "2.1.0", @@ -7378,6 +10907,14 @@ "retry": "^0.12.0" } }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -7448,7 +10985,6 @@ "version": "5.1.4", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", - "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", @@ -7458,6 +10994,25 @@ "safe-buffer": "^5.1.1" } }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-headers": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", + "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", + "requires": { + "for-each": "^0.3.3", + "string.prototype.trim": "^1.1.2" + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -7468,6 +11023,16 @@ "json-parse-better-errors": "^1.0.1" } }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, "parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", @@ -7495,14 +11060,12 @@ "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-browserify": { "version": "0.0.1", @@ -7513,8 +11076,7 @@ "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { "version": "3.0.0", @@ -7525,8 +11087,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -7543,14 +11104,25 @@ "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "path-type": { "version": "3.0.0", @@ -7573,7 +11145,6 @@ "version": "3.0.17", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -7582,11 +11153,15 @@ "sha.js": "^2.4.8" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picomatch": { "version": "2.0.7", @@ -7603,14 +11178,12 @@ "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -7646,8 +11219,7 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { "version": "7.0.17", @@ -7717,11 +11289,25 @@ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true }, + "precond": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", + "integrity": "sha1-qpWRvKokkj8eD0hJ0kD0fvwQdaw=" + }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" }, "process": { "version": "0.11.10", @@ -7732,8 +11318,7 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "promise": { "version": "7.3.1", @@ -7751,6 +11336,11 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "promise-props": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-props/-/promise-props-1.0.0.tgz", + "integrity": "sha1-5MZz5lqbAzne2FscWtR+NDScWhw=" + }, "promise-retry": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", @@ -7769,6 +11359,15 @@ } } }, + "promise-to-callback": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", + "integrity": "sha1-XSp0kBC/tn2WNZj805YHRqaP7vc=", + "requires": { + "is-fn": "^1.0.0", + "set-immediate-shim": "^1.0.1" + } + }, "protoduck": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", @@ -7931,7 +11530,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", - "dev": true, "requires": { "forwarded": "~0.1.2", "ipaddr.js": "1.9.0" @@ -7940,8 +11538,7 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "pseudomap": { "version": "1.0.2", @@ -7952,14 +11549,12 @@ "psl": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz", - "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==", - "dev": true + "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==" }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -7983,7 +11578,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -7994,7 +11588,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -8005,8 +11598,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "q": { "version": "1.4.1", @@ -8014,6 +11606,28 @@ "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", "dev": true }, + "q-io": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/q-io/-/q-io-1.13.2.tgz", + "integrity": "sha1-7qEw1IHdteGqG8WmaFX3OR0G8AM=", + "dev": true, + "requires": { + "collections": "^0.2.0", + "mime": "^1.2.11", + "mimeparse": "^0.1.4", + "q": "^1.0.1", + "qs": "^1.2.1", + "url2": "^0.0.0" + }, + "dependencies": { + "qs": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz", + "integrity": "sha1-GbV/8k3CqZzh+L32r82ln472H4g=", + "dev": true + } + } + }, "qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -8023,8 +11637,7 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "query-string": { "version": "4.3.4", @@ -8051,14 +11664,12 @@ "querystringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", - "dev": true + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -8067,23 +11678,25 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, + "randomhex": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", + "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=" + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, "requires": { "bytes": "3.1.0", "http-errors": "1.7.2", @@ -8094,8 +11707,7 @@ "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" } } }, @@ -8150,11 +11762,65 @@ "util-promisify": "^2.1.0" } }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8186,6 +11852,14 @@ "picomatch": "^2.0.4" } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, "reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", @@ -8195,20 +11869,27 @@ "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -8228,14 +11909,12 @@ "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" }, "regjsparser": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, "requires": { "jsesc": "~0.5.0" }, @@ -8243,43 +11922,71 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, "requires": { "is-finite": "^1.0.0" } }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -8306,26 +12013,22 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, "resolve": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", - "dev": true, "requires": { "path-parse": "^1.0.6" } @@ -8339,17 +12042,33 @@ "resolve-from": "^3.0.0" } }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "requires": { + "value-or-function": "^3.0.0" + } + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "restore-cursor": { "version": "2.0.0", @@ -8361,11 +12080,18 @@ "signal-exit": "^3.0.2" } }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" + } + }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "retry": { "version": "0.12.0", @@ -8383,7 +12109,6 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -8392,12 +12117,20 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, + "rlp": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.3.tgz", + "integrity": "sha512-l6YVrI7+d2vpW6D6rS05x2Xrmq8oW7v3pieZOJKBEdjuTF4Kz/iwk55Zyh1Zaz+KOB2kC8+2jZlp2u9L4tTzCQ==", + "requires": { + "bn.js": "^4.11.1", + "safe-buffer": "^5.1.1" + } + }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", @@ -8416,6 +12149,11 @@ "aproba": "^1.1.1" } }, + "rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==" + }, "rxjs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", @@ -8427,14 +12165,20 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-event-emitter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz", + "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==", + "requires": { + "events": "^3.0.0" + } }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, "requires": { "ret": "~0.1.10" } @@ -8442,8 +12186,7 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { "version": "1.22.2", @@ -8508,6 +12251,69 @@ "ajv-keywords": "^3.1.0" } }, + "scrypt": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "requires": { + "nan": "^2.0.8" + } + }, + "scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "scrypt.js": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.3.0.tgz", + "integrity": "sha512-42LTc1nyFsyv/o0gcHtDztrn+aqpkaCNt5Qh7ATBZfhEZU7IC/0oT/qbBH+uRNoAPvs2fwiOId68FDEoSRA8/A==", + "requires": { + "scrypt": "^6.0.2", + "scryptsy": "^1.2.1" + } + }, + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "requires": { + "pbkdf2": "^3.0.3" + } + }, + "secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "requires": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + } + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "requires": { + "commander": "~2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "requires": { + "graceful-readlink": ">= 1.0.0" + } + } + } + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -8546,6 +12352,11 @@ "node-forge": "0.7.5" } }, + "semaphore": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" + }, "semver": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", @@ -8569,6 +12380,14 @@ } } }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "requires": { + "sver-compat": "^1.5.0" + } + }, "semver-intersect": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", @@ -8590,7 +12409,6 @@ "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -8610,8 +12428,7 @@ "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" } } }, @@ -8666,7 +12483,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -8674,23 +12490,32 @@ "send": "0.17.1" } }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "^1.16.0", + "cors": "^2.8.1", + "express": "^4.14.0", + "request": "^2.79.0", + "xhr": "^2.3.3" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -8702,7 +12527,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -8712,25 +12536,37 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, + "sha3": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.3.tgz", + "integrity": "sha512-sOWDZi8cDBRkLfWOw18wvJyNblXDHzwMGnRWut8zNNeIeLnmMRO17bjpLc7OzMuj1ASUgx2IyohzUCAl+Kx5vA==", + "requires": { + "nan": "2.13.2" + }, + "dependencies": { + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==" + } + } + }, "shallow-clone": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", @@ -8771,11 +12607,25 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "smart-buffer": { "version": "4.0.2", @@ -8787,7 +12637,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -8803,7 +12652,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -8812,7 +12660,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -8820,8 +12667,7 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -8829,7 +12675,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -8840,7 +12685,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -8849,7 +12693,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -8858,7 +12701,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -8867,7 +12709,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -8880,7 +12721,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, "requires": { "kind-of": "^3.2.0" }, @@ -8889,7 +12729,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -9116,7 +12955,6 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "dev": true, "requires": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", @@ -9146,8 +12984,7 @@ "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "sourcemap-codec": { "version": "1.4.6", @@ -9155,11 +12992,15 @@ "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==", "dev": true }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" + }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -9168,14 +13009,12 @@ "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -9184,8 +13023,7 @@ "spdx-license-ids": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" }, "spdy": { "version": "4.0.0", @@ -9272,7 +13110,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -9287,7 +13124,6 @@ "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -9309,11 +13145,15 @@ "figgy-pudding": "^3.5.1" } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -9323,7 +13163,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -9333,8 +13172,7 @@ "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "stream-browserify": { "version": "2.0.2", @@ -9356,6 +13194,11 @@ "stream-shift": "^1.0.0" } }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" + }, "stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", @@ -9372,8 +13215,7 @@ "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "streamroller": { "version": "1.0.6", @@ -9408,8 +13250,7 @@ "strict-uri-encode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, "string-width": { "version": "2.1.1", @@ -9438,11 +13279,20 @@ } } }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -9451,7 +13301,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -9462,12 +13311,28 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "requires": { + "is-natural-number": "^4.0.1" + } + }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, "style-loader": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", @@ -9532,11 +13397,81 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "swarm-js": { + "version": "0.1.37", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.37.tgz", + "integrity": "sha512-G8gi5fcXP/2upwiuOShJ258sIufBVztekgobr3cVgYXObZwJ5AXLqZn52AI+/ffft29pJexF9WNdUxjlkVehoQ==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "decompress": "^4.0.0", + "eth-lib": "^0.1.26", + "fs-extra": "^2.1.2", + "fs-promise": "^2.0.0", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar.gz": "^1.0.5", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "keccakjs": "^0.2.1", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -9549,6 +13484,26 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, + "tape": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz", + "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==", + "requires": { + "deep-equal": "~1.0.1", + "defined": "~1.0.0", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.4", + "has": "~1.0.3", + "inherits": "~2.0.4", + "minimist": "~1.2.0", + "object-inspect": "~1.6.0", + "resolve": "~1.11.1", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.1.2", + "through": "~2.3.8" + } + }, "tar": { "version": "4.4.10", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", @@ -9564,6 +13519,49 @@ "yallist": "^3.0.3" } }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "tar.gz": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tar.gz/-/tar.gz-1.0.7.tgz", + "integrity": "sha512-uhGatJvds/3diZrETqMj4RxBR779LKlIE74SsMcn5JProZsfs9j0QBwWO1RW+IWNJxS2x8Zzra1+AW6OQHWphg==", + "requires": { + "bluebird": "^2.9.34", + "commander": "^2.8.1", + "fstream": "^1.0.8", + "mout": "^0.11.0", + "tar": "^2.1.1" + }, + "dependencies": { + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + } + } + }, "terser": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz", @@ -9609,28 +13607,61 @@ } } }, + "thenify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, "thunky": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", "dev": true }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, "timers-browserify": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", @@ -9649,6 +13680,15 @@ "os-tmpdir": "~1.0.2" } }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, "to-array": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", @@ -9661,17 +13701,20 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -9680,7 +13723,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -9691,7 +13733,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -9708,17 +13749,28 @@ "is-number": "^7.0.0" } }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "requires": { + "through2": "^2.0.3" + } + }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, "requires": { "psl": "^1.1.24", "punycode": "^1.4.1" @@ -9727,8 +13779,7 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, @@ -9741,8 +13792,7 @@ "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "ts-node": { "version": "7.0.1", @@ -9813,7 +13863,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -9821,14 +13870,17 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", + "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==" }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -9837,8 +13889,15 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } }, "typescript": { "version": "3.4.5", @@ -9869,14 +13928,63 @@ "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "unbzip2-stream": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", + "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + }, + "dependencies": { + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + } + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + }, + "undertaker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -9902,6 +14010,15 @@ "imurmurhash": "^0.1.4" } }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, "universal-analytics": { "version": "0.4.20", "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz", @@ -9939,14 +14056,12 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -9956,7 +14071,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -9967,7 +14081,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "requires": { "isarray": "1.0.0" } @@ -9977,22 +14090,19 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" } } }, "upath": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", - "dev": true + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -10000,8 +14110,7 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url": { "version": "0.11.0", @@ -10031,11 +14140,34 @@ "requires-port": "^1.0.0" } }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "url2": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz", + "integrity": "sha1-Tqq9HVw6yQ1iq0SFyZhCKGWgSxo=", + "dev": true + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "useragent": { "version": "2.3.0", @@ -10065,6 +14197,11 @@ } } }, + "utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" + }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -10085,8 +14222,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util-promisify": { "version": "2.1.0", @@ -10100,20 +14236,25 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "v8flags": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", + "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", + "requires": { + "homedir-polyfill": "^1.0.1" + } }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -10128,23 +14269,87 @@ "builtins": "^1.0.3" } }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, "vm-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", @@ -10861,6 +15066,658 @@ "minimalistic-assert": "^1.0.0" } }, + "weak-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz", + "integrity": "sha1-tm5Wqd8L0lp2u/G1FNsSkIBhSjc=", + "dev": true + }, + "web3": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.55.tgz", + "integrity": "sha512-yJpwy4IUA3T/F9hWzYQVn0GbJCrAaZ0KTIO3iuqkhaYH0Y09KV7k4GzFi4hN7hT4cFTj4yIKaeVCwQ5kzvi2Vg==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/node": "^10.12.18", + "web3-core": "1.0.0-beta.55", + "web3-eth": "1.0.0-beta.55", + "web3-eth-personal": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-shh": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + }, + "dependencies": { + "@types/node": { + "version": "10.14.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==" + } + } + }, + "web3-bzz": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.34.tgz", + "integrity": "sha1-Bo03d3q2Xlxg+OyLmlDP5FJ3kpw=", + "requires": { + "got": "7.1.0", + "swarm-js": "0.1.37", + "underscore": "1.8.3" + } + }, + "web3-core": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.55.tgz", + "integrity": "sha512-AMMp7TLEtE7u8IJAu/THrRhBTZyZzeo7Y6GiWYNwb5+KStC9hIGLr9cI1KX9R6ZioTOLRHrqT7awDhnJ1ku2mg==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "@types/node": "^10.12.18", + "lodash": "^4.17.11", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + }, + "dependencies": { + "@types/node": { + "version": "10.14.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==" + } + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.55.tgz", + "integrity": "sha512-suj9Xy/lIqajaYLJTEjr2rlFgu6hGYwChHmf8+qNrC2luZA6kirTamtB9VThWMxbywx7p0bqQFjW6zXogAgWhg==", + "requires": { + "@babel/runtime": "^7.3.1", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-eth-iban": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-core-method": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.55.tgz", + "integrity": "sha512-w1cW/s2ji9qGELHk2uMJCn1ooay0JJLVoPD1nvmsW6OTRWcVjxa62nJrFQhe6P5lEb83Xk9oHgmCxZoVUHibOw==", + "requires": { + "@babel/runtime": "^7.3.1", + "eventemitter3": "3.1.0", + "lodash": "^4.17.11", + "rxjs": "^6.4.0", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + }, + "dependencies": { + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" + } + } + }, + "web3-core-promievent": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.34.tgz", + "integrity": "sha1-pPT6Z4S7KT6CxglgrltWqUzQPtw=", + "requires": { + "any-promise": "1.3.0", + "eventemitter3": "1.1.1" + }, + "dependencies": { + "eventemitter3": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", + "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" + } + } + }, + "web3-core-requestmanager": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.34.tgz", + "integrity": "sha1-Afj2zyrmtvC3DDi64e90G1urIVw=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.34", + "web3-providers-http": "1.0.0-beta.34", + "web3-providers-ipc": "1.0.0-beta.34", + "web3-providers-ws": "1.0.0-beta.34" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "keccakjs": "^0.2.1", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.34.tgz", + "integrity": "sha1-sWjaANPhnhVrwVriAyA91N/uLQM=", + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.34.tgz", + "integrity": "sha1-mvRYYFhnzPdOqXmq8yazi6alugw=", + "requires": { + "bn.js": "4.11.6", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-utils": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.34.tgz", + "integrity": "sha1-lBH8OarvOcpOBhafdiKX2f8CCXA=", + "requires": { + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + } + } + } + }, + "web3-core-subscriptions": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.55.tgz", + "integrity": "sha512-pb3oQbUzK7IoyXwag8TYInQddg0rr7BHxKc+Pbs/92hVNQ5ps4iGMVJKezdrjlQ1IJEEUiDIglXl4LZ1hIuMkw==", + "requires": { + "@babel/runtime": "^7.3.1", + "eventemitter3": "^3.1.0", + "lodash": "^4.17.11" + } + }, + "web3-eth": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.55.tgz", + "integrity": "sha512-F3zJ9I1gOgQdNGfi2Dy2lmj6OqCMJoRN01XHhQZagq0HY1JYMfObtfMi5E3L+qsegsSddHbqp4YY57tKx6uxpA==", + "requires": { + "@babel/runtime": "^7.3.1", + "ethereumjs-tx": "^1.3.7", + "rxjs": "^6.4.0", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-eth-contract": "1.0.0-beta.55", + "web3-eth-ens": "1.0.0-beta.55", + "web3-eth-iban": "1.0.0-beta.55", + "web3-eth-personal": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + }, + "dependencies": { + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + } + } + }, + "web3-eth-abi": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.55.tgz", + "integrity": "sha512-3h1xnm/vYmKUXTOYAOP0OsB5uijQV76pNNRGKOB6Dq6GR1pbcbD3WrB/4I643YA8l91t5FRzFzUiA3S77R2iqw==", + "requires": { + "@babel/runtime": "^7.3.1", + "ethers": "^4.0.27", + "lodash": "^4.17.11", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-accounts": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.55.tgz", + "integrity": "sha512-VfzvwpSDHXqRVelIxsBVhgbV9BkFvhJ/q+bKhnVUUXV0JAhMK/7uC92TsqKk4EBYuqpHyZ1jjqrL4n03fMU7zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "browserify-cipher": "^1.0.1", + "eth-lib": "0.2.8", + "lodash": "^4.17.11", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "scrypt.js": "0.3.0", + "uuid": "3.3.2", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-contract": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.55.tgz", + "integrity": "sha512-v6oB1wfH039/A5sTb4ZTKX++fcBTHEkuQGpq50ATIDoxP/UTz2+6S+iL+3sCJTsByPw2/Bni/HM7NmLkXqzg/Q==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-ens": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.55.tgz", + "integrity": "sha512-jEL17coO0FJXb7KYq4+7DhVXj0Rh+wHfZ86jOvFUvJsRaUHfqK2TlMatuhD2mbrmxpBYb6oMPnXVnNK9bnD5Rg==", + "requires": { + "@babel/runtime": "^7.3.1", + "eth-ens-namehash": "2.0.8", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-eth-contract": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.55.tgz", + "integrity": "sha512-a2Fxsb5Mssa+jiXgjUdIzJipE0175IcQXJbZLpKft2+zeSJWNTbaa3PQD2vPPpIM4W789q06N+f9Zc0Fyls+1g==", + "requires": { + "@babel/runtime": "^7.3.1", + "bn.js": "4.11.8", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-personal": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.55.tgz", + "integrity": "sha512-H0mahLQx6Oj7lpgTamKAswr3rHChRUZijeWAar2Hj7BABQlLRKwx8n09nYhxggvvLYQNQS90JjvQue7rAo2LQQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-net": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.55.tgz", + "integrity": "sha512-do2WY8+/GArJSWX7k/zZ7nBnV9Y3n6LhPYkwT3LeFqDzD515bKwlomaNC8hOaTc6UQyXIoPprYTK2FevL7jrZw==", + "requires": { + "@babel/runtime": "^7.3.1", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-provider-engine": { + "version": "github:makerdao/provider-engine#7c4b187809f156409473246de15dc595e1fe3356", + "from": "github:makerdao/provider-engine#kovan-fix-dist", + "requires": { + "async": "^2.5.0", + "backoff": "^2.5.0", + "clone": "^2.0.0", + "cross-fetch": "^2.1.0", + "eth-block-tracker": "^2.3.0", + "eth-json-rpc-infura": "^3.1.0", + "eth-sig-util": "^1.4.2", + "ethereumjs-block": "^1.2.2", + "ethereumjs-tx": "^1.2.0", + "ethereumjs-util": "^5.1.5", + "ethereumjs-vm": "^2.3.4", + "json-rpc-error": "^2.0.0", + "json-stable-stringify": "^1.0.1", + "promise-to-callback": "^1.0.0", + "readable-stream": "^2.2.9", + "request": "^2.67.0", + "semaphore": "^1.0.3", + "tape": "^4.4.0", + "ws": "^5.1.1", + "xhr": "^2.2.0", + "xtend": "^4.0.1" + }, + "dependencies": { + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "web3-providers": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-providers/-/web3-providers-1.0.0-beta.55.tgz", + "integrity": "sha512-MNifc7W+iF6rykpbDR1MuX152jshWdZXHAU9Dk0Ja2/23elhIs4nCWs7wOX9FHrKgdrQbscPoq0uy+0aGzyWVQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/node": "^10.12.18", + "eventemitter3": "3.1.0", + "lodash": "^4.17.11", + "url-parse": "1.4.4", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55", + "websocket": "^1.0.28", + "xhr2-cookies": "1.1.0" + }, + "dependencies": { + "@types/node": { + "version": "10.14.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==" + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" + }, + "url-parse": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", + "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", + "requires": { + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } + } + } + }, + "web3-providers-http": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.34.tgz", + "integrity": "sha1-5WG1K7tDdmKCAH1AKFv+NVDCfno=", + "requires": { + "web3-core-helpers": "1.0.0-beta.34", + "xhr2": "0.1.4" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "keccakjs": "^0.2.1", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.34.tgz", + "integrity": "sha1-sWjaANPhnhVrwVriAyA91N/uLQM=", + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.34.tgz", + "integrity": "sha1-mvRYYFhnzPdOqXmq8yazi6alugw=", + "requires": { + "bn.js": "4.11.6", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-utils": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.34.tgz", + "integrity": "sha1-lBH8OarvOcpOBhafdiKX2f8CCXA=", + "requires": { + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + } + } + } + }, + "web3-providers-ipc": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.34.tgz", + "integrity": "sha1-obd/GjBtc2SanAOQUuQMtxMo0Ao=", + "requires": { + "oboe": "2.1.3", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.34" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "keccakjs": "^0.2.1", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.34.tgz", + "integrity": "sha1-sWjaANPhnhVrwVriAyA91N/uLQM=", + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.34.tgz", + "integrity": "sha1-mvRYYFhnzPdOqXmq8yazi6alugw=", + "requires": { + "bn.js": "4.11.6", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-utils": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.34.tgz", + "integrity": "sha1-lBH8OarvOcpOBhafdiKX2f8CCXA=", + "requires": { + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + } + } + } + }, + "web3-providers-ws": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.34.tgz", + "integrity": "sha1-fecPG4Py3jZHZ3IVa+z+9uNRbrM=", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.34", + "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "keccakjs": "^0.2.1", + "nano-json-stream-parser": "^0.1.2", + "servify": "^0.1.12", + "ws": "^3.0.0", + "xhr-request-promise": "^0.1.2" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.34.tgz", + "integrity": "sha1-sWjaANPhnhVrwVriAyA91N/uLQM=", + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.34", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.34.tgz", + "integrity": "sha1-mvRYYFhnzPdOqXmq8yazi6alugw=", + "requires": { + "bn.js": "4.11.6", + "web3-utils": "1.0.0-beta.34" + } + }, + "web3-utils": { + "version": "1.0.0-beta.34", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.34.tgz", + "integrity": "sha1-lBH8OarvOcpOBhafdiKX2f8CCXA=", + "requires": { + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + } + }, + "websocket": { + "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", + "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", + "requires": { + "debug": "^2.2.0", + "nan": "^2.3.3", + "typedarray-to-buffer": "^3.1.2", + "yaeti": "^0.0.6" + } + } + } + }, + "web3-shh": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.55.tgz", + "integrity": "sha512-lGP2HQ/1ThNnfoU8677aL48KsTx4Ht+2KQIn39dGpxVZqysQmovQIltbymVnAr4h8wofwcEz46iNHGa+PAyNzA==", + "requires": { + "@babel/runtime": "^7.3.1", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-utils": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.55.tgz", + "integrity": "sha512-ASWqUi8gtWK02Tp8ZtcoAbHenMpQXNvHrakgzvqTNNZn26wgpv+Q4mdPi0KOR6ZgHFL8R/9b5BBoUTglS1WPpg==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "@types/node": "^10.12.18", + "bn.js": "4.11.8", + "eth-lib": "0.2.8", + "ethjs-unit": "^0.1.6", + "lodash": "^4.17.11", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "2.1.1" + }, + "dependencies": { + "@types/node": { + "version": "10.14.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==" + } + } + }, "webdriver-js-extender": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", @@ -11743,6 +16600,18 @@ "webpack-core": "^0.6.8" } }, + "websocket": { + "version": "1.0.29", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.29.tgz", + "integrity": "sha512-WhU8jKXC8sTh6ocLSqpZRlOKMNYGwUvjA5+XcIgIk/G3JCaDfkZUr0zA19sVSxJ0TEvm0i5IBzr54RZC4vzW7g==", + "requires": { + "debug": "^2.2.0", + "gulp": "^4.0.2", + "nan": "^2.11.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" + } + }, "websocket-driver": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", @@ -11760,6 +16629,11 @@ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", "dev": true }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, "when": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", @@ -11770,7 +16644,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -11809,7 +16682,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -11819,7 +16691,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -11828,7 +16699,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -11840,20 +16710,76 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0", "ultron": "~1.1.0" } }, + "xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "requires": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + }, + "dependencies": { + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + } + } + }, + "xhr-request-promise": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", + "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", + "requires": { + "xhr-request": "^1.0.1" + } + }, + "xhr2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" + }, + "xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "requires": { + "cookiejar": "^2.1.1" + } + }, "xml2js": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", @@ -11878,6 +16804,11 @@ "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, "xmlhttprequest-ssl": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", @@ -11887,8 +16818,7 @@ "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { "version": "4.0.0", @@ -11896,6 +16826,11 @@ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, "yallist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", @@ -11932,6 +16867,15 @@ "decamelize": "^1.2.0" } }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", diff --git a/package.json b/package.json index 68bea86..b805c88 100644 --- a/package.json +++ b/package.json @@ -11,16 +11,25 @@ }, "private": true, "dependencies": { - "@angular/animations": "~8.1.2", + "@angular/animations": "^8.1.2", + "@angular/cdk": "^8.1.1", "@angular/common": "~8.1.2", "@angular/compiler": "~8.1.2", "@angular/core": "~8.1.2", "@angular/forms": "~8.1.2", + "@angular/material": "^8.1.1", "@angular/platform-browser": "~8.1.2", "@angular/platform-browser-dynamic": "~8.1.2", "@angular/router": "~8.1.2", + "@makerdao/dai": "^0.17.1", + "@ng-bootstrap/ng-bootstrap": "^5.1.0", + "buffer": "^5.4.0", + "core-js": "^2.5.7", + "ethereumjs-tx": "^2.1.0", + "ethers": "^4.0.20", "rxjs": "~6.4.0", "tslib": "^1.9.0", + "web3": "1.0.0-beta.55", "zone.js": "~0.9.1" }, "devDependencies": { @@ -28,9 +37,10 @@ "@angular/cli": "~8.1.2", "@angular/compiler-cli": "~8.1.2", "@angular/language-service": "~8.1.2", - "@types/node": "~8.9.4", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "~2.0.3", + "@types/node": "~8.9.4", + "angular-cli-ghpages": "^0.5.3", "codelyzer": "^5.0.0", "jasmine-core": "~3.4.0", "jasmine-spec-reporter": "~4.2.1", @@ -42,6 +52,8 @@ "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.15.0", - "typescript": "~3.4.3" + "typescript": "~3.4.3", + "webpack": "^4.26.1", + "webpack-dev-server": "^3.1.10" } } diff --git a/proxy.config.json b/proxy.config.json new file mode 100644 index 0000000..d6343c2 --- /dev/null +++ b/proxy.config.json @@ -0,0 +1,23 @@ +{ + "/compoundAPI/*": { + "target": "https://api.instadapp.io", + "secure": false, + "logLevel": "debug", + "changeOrigin": true, + "pathRewrite": {"^/compoundAPI" : ""} + }, + "/instadappAPI/*": { + "target": "https://instadapp.io", + "secure": false, + "logLevel": "debug", + "changeOrigin": true, + "pathRewrite": {"^/instadappAPI" : ""} + }, + "/mkr/*": { + "target": "https://mkr.tools/api/v1", + "secure": false, + "logLevel": "debug", + "changeOrigin": true, + "pathRewrite": {"^/mkr" : ""} + } +} diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts deleted file mode 100644 index 06c7342..0000000 --- a/src/app/app-routing.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; - - -const routes: Routes = []; - -@NgModule({ - imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] -}) -export class AppRoutingModule { } diff --git a/src/app/app.component.html b/src/app/app.component.html index 0f3d9d8..39477d6 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,21 +1,3 @@ - -
-

- Welcome to {{ title }}! -

- Angular Logo -
-

Here are some links to help you start:

- + diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 2c3ba29..baba0ca 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,16 +1,96 @@ import { BrowserModule } from '@angular/platform-browser'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { NgModule } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { HttpClientModule } from '@angular/common/http'; + + +import { RouterModule } from '@angular/router'; +import { AppRoutingModule } from './app.routing'; -import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; +import {UtilModule} from './util/util.module'; + +import { ProtcolsComponent } from './layout/protcols/protcols.component'; +import { DashboardComponent } from './layout/dashboard/dashboard.component'; +import { TXDialog } from './layout/dashboard/dashboard.component'; + +import { ConnectbtnComponent } from './components/connectbtn/connectbtn.component'; +import { ConnectDialog } from './components/connectbtn/connectbtn.component'; + +import { CompoundComponent } from './compound/compound.component'; +import { SupplyDialog } from './compound/compound.component'; +import { WithdrawDialog } from './compound/compound.component'; +import { BorrowDialog } from './compound/compound.component'; +import { PayBackDialog } from './compound/compound.component'; + +import { MakerDaoComponent } from './maker-dao/maker-dao.component'; +import { DepositDialog } from './maker-dao/maker-dao.component'; +import { DaiGenerateDialog } from './maker-dao/maker-dao.component'; +import { EthWithdrawDialog } from './maker-dao/maker-dao.component'; +import { DaiPaybackDialog } from './maker-dao/maker-dao.component'; +import { MakerAlertDialog } from './maker-dao/maker-dao.component'; + +import { ExitComponent } from './exit/exit.component'; + +import { FooterComponent } from './components/footer/footer.component'; +import { SidebarComponent } from './components/sidebar/sidebar.component'; + + +import {MaterialModule} from './material/material.module'; +import {NgbModule} from '@ng-bootstrap/ng-bootstrap'; + + + @NgModule({ declarations: [ - AppComponent + AppComponent, + DashboardComponent, + CompoundComponent, + SidebarComponent, + ConnectbtnComponent, + MakerDaoComponent, + SupplyDialog, + WithdrawDialog, + BorrowDialog, + PayBackDialog, + DepositDialog, + DaiGenerateDialog, + EthWithdrawDialog, + DaiPaybackDialog, + MakerAlertDialog, + TXDialog, + ConnectDialog, + FooterComponent, + ExitComponent, + ProtcolsComponent ], imports: [ + BrowserAnimationsModule, + FormsModule, + ReactiveFormsModule, + HttpClientModule, BrowserModule, - AppRoutingModule + AppRoutingModule, + UtilModule, + RouterModule, + AppRoutingModule, + NgbModule, + MaterialModule + ], + entryComponents: [ + SupplyDialog, + WithdrawDialog, + BorrowDialog, + PayBackDialog, + DepositDialog, + DaiGenerateDialog, + EthWithdrawDialog, + DaiPaybackDialog, + MakerAlertDialog, + TXDialog, + ConnectDialog ], providers: [], bootstrap: [AppComponent] diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts new file mode 100644 index 0000000..1129e20 --- /dev/null +++ b/src/app/app.routing.ts @@ -0,0 +1,46 @@ +import { NgModule } from '@angular/core'; +import { CommonModule, } from '@angular/common'; +import { BrowserModule } from '@angular/platform-browser'; +import { Routes, RouterModule } from '@angular/router'; + +import { DashboardComponent } from './layout/dashboard/dashboard.component'; + + +import { ExitComponent } from './exit/exit.component' + +import { ProtcolsComponent } from './layout/protcols/protcols.component' + + + + +const routes: Routes =[ + { + path: '', + redirectTo: 'dashboard', + pathMatch: 'full', + }, + { + path: '', + component: DashboardComponent, + children: [ + { path: 'dashboard', component: ProtcolsComponent }, + { + path: 'exit', + component: ExitComponent + } + ] + }, + +]; + +@NgModule({ + imports: [ + CommonModule, + BrowserModule, + RouterModule.forRoot(routes) + ], + exports: [ + RouterModule + ], +}) +export class AppRoutingModule { } diff --git a/src/app/components/connectbtn/connectDialogBox.html b/src/app/components/connectbtn/connectDialogBox.html new file mode 100644 index 0000000..6af28fd --- /dev/null +++ b/src/app/components/connectbtn/connectDialogBox.html @@ -0,0 +1,10 @@ +

{{data.title}}

+
+
+
+
{{data.msg}}
+ InstaDApp + + +
+
diff --git a/src/app/components/connectbtn/connectbtn.component.html b/src/app/components/connectbtn/connectbtn.component.html new file mode 100644 index 0000000..e04e2c1 --- /dev/null +++ b/src/app/components/connectbtn/connectbtn.component.html @@ -0,0 +1 @@ + diff --git a/src/app/components/connectbtn/connectbtn.component.sass b/src/app/components/connectbtn/connectbtn.component.sass new file mode 100644 index 0000000..e69de29 diff --git a/src/app/components/connectbtn/connectbtn.component.spec.ts b/src/app/components/connectbtn/connectbtn.component.spec.ts new file mode 100644 index 0000000..6a89965 --- /dev/null +++ b/src/app/components/connectbtn/connectbtn.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ConnectbtnComponent } from './connectbtn.component'; + +describe('ConnectbtnComponent', () => { + let component: ConnectbtnComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ConnectbtnComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ConnectbtnComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/connectbtn/connectbtn.component.ts b/src/app/components/connectbtn/connectbtn.component.ts new file mode 100644 index 0000000..38d6b0d --- /dev/null +++ b/src/app/components/connectbtn/connectbtn.component.ts @@ -0,0 +1,87 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { Web3Service } from '../../util/web3.service'; +import { Subscription } from 'rxjs'; + +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog'; + +@Component({ + selector: 'app-connectbtn', + templateUrl: './connectbtn.component.html', + styleUrls: ['./connectbtn.component.sass'] +}) +export class ConnectbtnComponent implements OnInit { + public btnStatus = "btn-primary" + public btntext = "Connect" + contractAddress: String[] + walletAddress: String + constructor(public dialog: MatDialog, public web3: Web3Service) { + this.walletAddress = this.web3.accounts + web3.accountsObservable.subscribe(value => { + this.dialog.closeAll() + web3.connectToWallet(value[0]).then(address => { + this.contractAddress = address + console.log(this.contractAddress) + this.connect(this.contractAddress) + }); + }); + } + ngOnInit() { + this.web3.bootstrapWeb3() + } + + btnConnect() { + // console.log(this.walletAddress , this.contractAddress) + if (this.walletAddress || this.contractAddress) { + this.connect(this.contractAddress) + } else { + let data = { + title: "No Ethereum Address Detected!", + msg: "You need to login or allow access to your current ethereum address in your web3 ethereum client like Metamask (& reload)." + } + this.btnStatus = "btn-warning" + this.btntext = "Connect" + this.openAlert(data) + } + } + + connect(address) { + let account = address + if (address == "0x0000000000000000000000000000000000000000") { + this.btnStatus = "btn-danger" + this.btntext = "Connect" + let data = { + title: "InstaDApp Account is not created yet!", + msg: "Visit Main Portal for Creating New Acount.", + link: "Go To" + } + this.openAlert(data) + } else { + this.btnStatus = "btn-success" + this.btntext = "Connected" + } + } + + openAlert(data) { + const dialogRef = this.dialog.open(ConnectDialog, { + width: '400px', + data: data + }, ); + } + +} + +//alert Modal +@Component({ + selector: 'connect-dialog', + templateUrl: 'connectDialogBox.html', +}) +export class ConnectDialog { + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any, public web3: Web3Service) { + // console.log(this.data); + } + + + +} diff --git a/src/app/components/footer/footer.component.html b/src/app/components/footer/footer.component.html new file mode 100644 index 0000000..bedb5ea --- /dev/null +++ b/src/app/components/footer/footer.component.html @@ -0,0 +1,28 @@ + +
+ + +
+ + +
    +
  • +
    Alternate Dashboard to InstaDApp Contract
    +
  • +
  • + +
  • +
+ + +
+ + + + + + +
+ diff --git a/src/app/components/footer/footer.component.sass b/src/app/components/footer/footer.component.sass new file mode 100644 index 0000000..a9ddd43 --- /dev/null +++ b/src/app/components/footer/footer.component.sass @@ -0,0 +1,5 @@ +.fa-github + transform: scale(2) + +.footer-copyright + // background-color: #BBC3CA diff --git a/src/app/components/footer/footer.component.spec.ts b/src/app/components/footer/footer.component.spec.ts new file mode 100644 index 0000000..2ca6c45 --- /dev/null +++ b/src/app/components/footer/footer.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FooterComponent } from './footer.component'; + +describe('FooterComponent', () => { + let component: FooterComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FooterComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FooterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/footer/footer.component.ts b/src/app/components/footer/footer.component.ts new file mode 100644 index 0000000..4faa482 --- /dev/null +++ b/src/app/components/footer/footer.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-footer', + templateUrl: './footer.component.html', + styleUrls: ['./footer.component.sass'] +}) +export class FooterComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/components/sidebar/sidebar.component.html b/src/app/components/sidebar/sidebar.component.html new file mode 100644 index 0000000..0abd23d --- /dev/null +++ b/src/app/components/sidebar/sidebar.component.html @@ -0,0 +1,28 @@ +
+
+
+ + + +
+
+
+ + +
diff --git a/src/app/components/sidebar/sidebar.component.scss b/src/app/components/sidebar/sidebar.component.scss new file mode 100644 index 0000000..790fa4a --- /dev/null +++ b/src/app/components/sidebar/sidebar.component.scss @@ -0,0 +1,19 @@ +.container { + margin-top: 1em; +} + +.title { + color: #11253F; + margin-top: 1em; + text-align: center; +} + +.logo { + width: 2px; + height: 2px; +} + +a { + color: grey; + font-size: 1em; +} diff --git a/src/app/components/sidebar/sidebar.component.spec.ts b/src/app/components/sidebar/sidebar.component.spec.ts new file mode 100644 index 0000000..f29709f --- /dev/null +++ b/src/app/components/sidebar/sidebar.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SidebarComponent } from './sidebar.component'; + +describe('SidebarComponent', () => { + let component: SidebarComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ SidebarComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SidebarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/sidebar/sidebar.component.ts b/src/app/components/sidebar/sidebar.component.ts new file mode 100644 index 0000000..0b34294 --- /dev/null +++ b/src/app/components/sidebar/sidebar.component.ts @@ -0,0 +1,16 @@ +import { Component, OnInit } from '@angular/core'; + + +@Component({ + selector: 'app-sidebar', + templateUrl: './sidebar.component.html', + styleUrls: ['./sidebar.component.scss'] +}) +export class SidebarComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/compound/borrowDialogBox.html b/src/app/compound/borrowDialogBox.html new file mode 100644 index 0000000..1a44ed4 --- /dev/null +++ b/src/app/compound/borrowDialogBox.html @@ -0,0 +1,23 @@ +

Borrow {{data.name}}

+ +
+ + MAX POWER TO BORROW + + + + BORROW APR % + + + + + + + BORROW VALUE $ + + + + +
diff --git a/src/app/compound/compound.component.html b/src/app/compound/compound.component.html new file mode 100644 index 0000000..9c510e4 --- /dev/null +++ b/src/app/compound/compound.component.html @@ -0,0 +1,166 @@ +
+
+
+
+
+

+ Compound Finance + +

+
+
+
+
+ + + +
+
+
+
Lend
+
+
${{(lendBal) | number:'1.0-2'}}
+
+
+
+ +
+
+
Borrow
+
+
${{(borrowBal) | number:'1.0-2'}}
+
+
+
+ +
+
+
Borrowing Power
+
+
${{(borrowingPowerBal) | number:'1.0-2'}}
+
+
+
+ +
+ + +
+
+ + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + +
ValueAmountSupply (APR)Borrow (APR)
+ ... + +

${{ token.balValue || 0 | number:'1.0-2'}}

+ +
{{token.bal | number:'1.0-3'}}

{{ (token.supplyRate || 0) | number:'1.0-3'}}%

{{( token.borrowRate || 0) | number:'1.0-3'}}%

+ + + + + + +
+
+ +
+
+
+
+ + + +
diff --git a/src/app/compound/compound.component.scss b/src/app/compound/compound.component.scss new file mode 100644 index 0000000..b4b47aa --- /dev/null +++ b/src/app/compound/compound.component.scss @@ -0,0 +1,57 @@ +.container{ + margin-top: 2em; + // margin-right: 1px; +} + +.title{ + font-size: 1.5em; +} +.img-thumbnail{ + transform: scale(2.8); +} +.tokens-card{ + margin-top: 3em; +} +.tokenCol + +.token-card{ + border: 1px solid #edf2f9; + border-radius: .5rem; +} +.token-body-value{ + font-size: 1em; + text-align: right; +} +h5{ + font-size: 0.9em; +} +.card { + margin-top: 2.5em +} + +.tokenTable{ + padding: 0 0.2em 0.5em 0.2em +} + +.tokenImg{ + margin: 1em 0 1em 0.5em; +} +.supTokenName{ + font-size: 1em; + line-height: 0.1em; +} +.table th { + padding-top:1em; +} +h4 .tokenValue .tokenSupply .tokenBorrow { + font-size: 2em; + margin: 0 +} +.assetValue{ + font-weight: bold; + font-size: 1.5em; +} + +.tokenBalAmount{ + font-size: 1.15em; +} diff --git a/src/app/compound/compound.component.spec.ts b/src/app/compound/compound.component.spec.ts new file mode 100644 index 0000000..3ea56a7 --- /dev/null +++ b/src/app/compound/compound.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CompoundComponent } from './compound.component'; + +describe('CompoundComponent', () => { + let component: CompoundComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CompoundComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CompoundComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/compound/compound.component.ts b/src/app/compound/compound.component.ts new file mode 100644 index 0000000..ab9064d --- /dev/null +++ b/src/app/compound/compound.component.ts @@ -0,0 +1,536 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { Subscription } from 'rxjs'; +import { HttpClient } from "@angular/common/http"; +import { Observable } from "rxjs"; +import { Web3Service } from '../util/web3.service'; + + +declare let require: any; +const tokens = require('../util/common/tokens.json') +const tokensABI = require('../util/common/ABI/cTokensAbi.json') + + +import { environment } from '../../environments/environment' + +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog'; + + + +export interface DialogData { + animal: string; + name: string; +} + +@Component({ + selector: 'app-compound', + templateUrl: './compound.component.html', + styleUrls: ['./compound.component.scss'] +}) +export class CompoundComponent implements OnInit { + userStats: any + userBalances = {} + tokenPriceConversation; + + public tokensList = [ + { name: "ETH", url: "eth" }, + { name: "DAI", url: "dai" }, + { name: "USDC", url: "usdc" }, + { name: "ZRX", url: "zrx" }, + { name: "REP", url: "rep" }, + { name: "BAT", url: "bat" }, + { name: "WBTC", url: "wbtc" } + ] + + tableStatus = false; + lendBal = 0 + borrowBal = 0 + borrowingPowerBal = 0 + tokensListObservable: Observable; + + constructor(public dialog: MatDialog, public web3: Web3Service, private httpClient: HttpClient) { + + web3.contractAccountObservable.subscribe(async (address) => { + if (address != "0x0000000000000000000000000000000000000000") { + let x = await this.httpClient.get(`${environment.instanode}/compound/${address}`).toPromise(); + let balancesData = await this.httpClient.get(`${environment.instanode}/balance/${web3.accounts[0]}`).toPromise(); + let priceConversationData = await this.httpClient.get(`${environment.instanode}/stats/price`).toPromise(); + + this.tokenPriceConversation = priceConversationData + + this.createTokensBalObj(balancesData) + this.setUserStats(this.tokenPriceConversation, x) + + this.userStats = x + this.userStats = this.userStats.data + + this.createTokenData(x) + } else { + this.tableStatus = false; + this.tokensList = [ + { name: "ETH", url: "eth" }, + { name: "DAI", url: "dai" }, + { name: "USDC", url: "usdc" }, + { name: "ZRX", url: "zrx" }, + { name: "REP", url: "rep" }, + { name: "BAT", url: "bat" }, + { name: "WBTC", url: "wbtc" } + ] + this.lendBal = 0 + this.borrowBal = 0 + this.borrowingPowerBal = 0 + } + + + + }) + } + + ngOnInit() { + } + + setUserStats(priceTable, userTokenStats) { + priceTable = priceTable.data + this.lendBal = userTokenStats.data.suppliedInETH * priceTable[0].price + this.borrowBal = userTokenStats.data.borrowedInETH * priceTable[0].price + this.borrowingPowerBal = userTokenStats.data.remainBorrowInETH * priceTable[0].price + + } + + createTokensBalObj(balData) { + balData = balData.data + balData.forEach((bal, index) => { + this.userBalances[tokens[index].address] = bal + }) + } + + private createTokenData(data) { + this.tokensList = [] + let tokensPrice = this.tokenPriceConversation.data + tokens.forEach((token, index) => { + + if (token.compound) { + + let address = token.address + let stats = data.data[address] + let type = "" + let bal = 0 + + if (stats.balSupply == 0 && stats.balBorrow == 0) { + type = "primary" + } else if (stats.balSupply > 0) { + type = "success" + bal = stats.balSupply + } else if (stats.balBorrow > 0) { + type = "warning" + bal = stats.balBorrow + } + + let obj = { + cAddress: token.compound.caddress, + address: token.address, + price: tokensPrice[index].price, + name: token.symbol, + url: (token.symbol).toLowerCase(), + decimals: token.decimals, + supplyRate: this.roundToTwo(stats.supplyRate), + borrowRate: this.roundToTwo(stats.borrowRate), + type: type, + bal: this.roundToTwo((bal)), + balValue: bal * tokensPrice[index].price, + exchangeRate: stats.exchangeRate + } + + this.tokensList.push(obj) + this.tableStatus = true; + } + }) + console.log(this.tokensList) + } + + roundToTwo(num) { + return num + } + + + supply(tokenStats) { + let token = tokens.filter((x) => { return (x.address == tokenStats.address) }) + let data = tokenStats + data.value = 0 + data.factor = token[0].compound.factor + data.userTokenBal = this.userBalances[data.address] / (10 ** data.decimals) + data.borrowingPowerBal = this.borrowingPowerBal + this.openDialog("supply", data) + } + + withdraw(tokenStats) { + // let token = tokens.filter((x) =>{ return (x.address == tokenStats.address)}) + let data = tokenStats + data.value = 0 + data.maxWithDraw = this.userStats[data.address].balSupply + this.openDialog("withdraw", data) + } + + borrow(tokenStats) { + let token = tokens.filter((x) => { return (x.address == tokenStats.address) }) + let data = tokenStats + data.value = 0 + let tokenOraclePrice = this.userStats[data.address].oraclePrice + data.maxBorrowValue = this.userStats.remainBorrowInETH / tokenOraclePrice + + this.openDialog("borrow", data) + } + + payBack(tokenStats) { + let token = tokens.filter((x) => { return (x.address == tokenStats.address) }) + let data = tokenStats + data.value = 0 + data.userTokenBal = this.userBalances[data.address] / (10 ** data.decimals) + data.maxPayback = this.userStats[data.address].balBorrow + data.paybackValue = 0 + console.log(data.userTokenBal) + this.openDialog("payback", data) + } + + openDialog(type, tokenData): void { + if (type == "supply") { + const dialogRef = this.dialog.open(SupplyDialog, { + width: '300px', + data: tokenData + }, ); + + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.supplyExecute(result) + } + }); + } else if (type == "withdraw") { + const dialogRef = this.dialog.open(WithdrawDialog, { + width: '300px', + data: tokenData + }, ); + + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.withdrawExecute(result) + } + }); + } else if (type == "borrow") { + const dialogRef = this.dialog.open(BorrowDialog, { + width: '300px', + data: tokenData + }, ); + + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.borrowExecute(result) + } + }); + } else if (type == "payback") { + const dialogRef = this.dialog.open(PayBackDialog, { + width: '300px', + data: tokenData + }, ); + + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.paybackExecute(result) + } + + }); + } + + } + + async paybackExecute(data) { + let amount = Number(data.value) * 1.01 + amount = (amount * (10 ** data.decimals)) + let amountValue = amount.toFixed(0); + + let arg = [ + data.address, + data.cAddress, + amountValue + ] + + let ethAmt = "0" + if (data.address != "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee") { + let allowedAmt = await this.web3.getAllowance(data.address); + if (allowedAmt < amount) { + console.error("NOT ALLOWED") + this.web3.setAllowance(data.address) + } + } else { + ethAmt = amountValue + } + + console.log(arg) + let callData = this.web3.getCallData(tokensABI.repayTokenLogic, arg) + let executeData = { + logicProxyName: "InstaCompound", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + + async withdrawExecute(data) { + let amount = Number(data.value) * 1.01 + amount = (amount * (10 ** data.decimals) / data.exchangeRate) + let amountValue = amount.toFixed(0); + + let arg = [ + data.address, + data.cAddress, + amountValue + ] + + console.log(arg) + let callData = this.web3.getCallData(tokensABI.redeemCTokenLogic, arg) + let executeData = { + logicProxyName: "InstaCompound", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + + + + async borrowExecute(data) { + let amount = Number(data.value) + amount = (amount * (10 ** data.decimals)) + let amountValue = amount.toFixed(0); + + let arg = [ + data.address, + data.cAddress, + amountValue + ] + + console.log(arg) + let callData = this.web3.getCallData(tokensABI.borrowLogic, arg) + let executeData = { + logicProxyName: "InstaCompound", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + + async supplyExecute(data) { + let amount = Number(data.value) + amount = (amount * (10 ** data.decimals)) + let amountValue = amount.toFixed(0); + + let arg = [ + data.address, + data.cAddress, + amountValue + ] + + console.log(arg) + let callData = this.web3.getCallData(tokensABI.mintCTokenLogic, arg) + let ethAmt = "0" + + if (data.address != "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee") { + let allowedAmt = await this.web3.getAllowance(data.address); + if (allowedAmt < amount) { + console.error("NOT ALLOWED") + this.web3.setAllowance(data.address) + } + } else { + ethAmt = amountValue + } + + let executeData = { + logicProxyName: "InstaCompound", + value: ethAmt, + } + + this.web3.executeFunction(callData, executeData) + } +} + + +//SUPPLY +@Component({ + selector: 'supply-dialog', + templateUrl: 'supplyDialogBox.html', +}) +export class SupplyDialog { + value: number + btnStatus = true + status = "" + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + console.log(this.data); + if (this.data.userTokenBal == 0) this.status = "NO BALANCE" + this.data.supplyValue = 0 + this.data.borrowingPower = 0 + } + + calculate(event) { + this.btnStatus = event > 0 && this.data.userTokenBal ? false : true + this.value = Number(event) + + if (this.data.userTokenBal == 0) { + this.value = 0 + this.data.supplyValue = this.data.price * 0 + return + } + + if (Number(event) > this.data.userTokenBal) { + this.value = 0 + this.value = this.data.userTokenBal + } + + this.data.supplyValue = this.data.price * event + let borrowingPower = this.data.factor * this.data.supplyValue + this.data.borrowingPower = borrowingPower + this.data.value = this.value + } + someValue: boolean = false; + onNoClick(): void { + this.dialogRef.close(this.data); + } + +} + +// WITHDRAW +@Component({ + selector: 'withdraw-dialog', + templateUrl: 'withdrawDialogBox.html', +}) +export class WithdrawDialog { + value: number + btnStatus = true; + status = ""; + color = 'accent'; + checked = false; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + console.log(this.data); + if (this.data.bal == 0) this.status = "MAX AMOUNT IS WITHDRAWN" + this.data.withdrawValue = 0 + } + + calculate(event) { + if (event != this.data.maxWithDraw) { + this.checked = false + } + this.btnStatus = event > 0 && this.data.bal ? false : true + this.value = Number(event) + + if (Number(event) > this.data.bal) { + this.value = 0 + this.value = this.data.bal + } + + this.data.withdrawValue = this.data.price * event + this.data.value = this.value + } + + changed() { + if (this.checked) { + this.calculate(this.data.maxWithDraw * 1.01) + } + } + + + onNoClick(): void { + this.dialogRef.close(this.data); + } + +} + + + +//BORROW +@Component({ + selector: 'borrow-dialog', + templateUrl: 'borrowDialogBox.html', +}) +export class BorrowDialog { + value: number + btnStatus = true + status = "" + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + console.log(this.data); + if (this.data.maxBorrowValue == 0) this.status = "MAX AMOUNT IS WITHDRAWN" + this.data.borrowValue = 0 + } + + calculate(event) { + this.btnStatus = event > 0 && this.data.maxBorrowValue ? false : true + this.value = Number(event) + if (Number(event) > this.data.maxBorrowValue) { + this.value = 0 + this.value = this.data.maxBorrowValue + } + this.data.borrowValue = this.data.price * event + this.data.value = this.value + } + onNoClick(): void { + this.dialogRef.close(this.data); + } + +} + + +//PayBack +@Component({ + selector: 'payback-dialog', + templateUrl: 'payBackDialogBox.html', +}) +export class PayBackDialog { + value: number + btnStatus = true + status = "" + color = 'accent'; + checked = false; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + console.log(this.data); + if (this.data.userTokenBal == 0) this.status = "NO BALANCE" + this.data.paybackValue = 0 + } + + calculate(event) { + if (event != this.data.maxPayback) { + this.checked = false + } + this.btnStatus = event > 0 && this.data.userTokenBal ? false : true + this.value = Number(event) + if (event > this.data.maxPayback) { + // this.value = this.data.maxPayback + this.status = "Not enough debt available to payback" + this.btnStatus = true + } else if (event > this.data.userTokenBal) { + // this.value = this.data.userTokenBal + this.status = "Not enough balance available to payback" + this.btnStatus = true + } else { + this.status = "" + this.btnStatus = false + this.data.paybackValue = this.value * this.data.price + this.data.value = this.value + } + } + + + + changed() { + if (this.checked) { + this.calculate(this.data.maxPayback) + } + console.log(this.checked) + } + + + onNoClick(): void { + this.dialogRef.close(this.data); + } + +} diff --git a/src/app/compound/payBackDialogBox.html b/src/app/compound/payBackDialogBox.html new file mode 100644 index 0000000..7531b2f --- /dev/null +++ b/src/app/compound/payBackDialogBox.html @@ -0,0 +1,32 @@ +

PayBack {{data.name}}

+ +
+ + Balance + + + + MAX PAYBACK + + + + + + + + Set Max + +
+ + PAYBACK VALUE $ + + + + +
diff --git a/src/app/compound/supplyDialogBox.html b/src/app/compound/supplyDialogBox.html new file mode 100644 index 0000000..26496a4 --- /dev/null +++ b/src/app/compound/supplyDialogBox.html @@ -0,0 +1,28 @@ +

Supply {{data.name}}

+ +
+ + BALANCE {{data.name}} + + + + SUPPLY APR% + + + + + + + SUPPLY VALUE $ + + + + (+) BORROWING POWER $ + + + + + +
diff --git a/src/app/compound/withdrawDialogBox.html b/src/app/compound/withdrawDialogBox.html new file mode 100644 index 0000000..5bbe951 --- /dev/null +++ b/src/app/compound/withdrawDialogBox.html @@ -0,0 +1,28 @@ +

Withdraw {{data.name}}

+ +
+ + MAX Amount to withdraw + + + + + + + Set Max + +
+ + WITHDRAW VALUE $ + + + + + +
diff --git a/src/app/exit/exit.component.html b/src/app/exit/exit.component.html new file mode 100644 index 0000000..8d754f3 --- /dev/null +++ b/src/app/exit/exit.component.html @@ -0,0 +1,111 @@ + diff --git a/src/app/exit/exit.component.scss b/src/app/exit/exit.component.scss new file mode 100644 index 0000000..95f7e90 --- /dev/null +++ b/src/app/exit/exit.component.scss @@ -0,0 +1,24 @@ +.navBar{ + margin-top: 2em; +} + +.protocalContainer{ + margin-bottom: 2em; +} +.title{ + font-size: 2em; +} +.supTitle{ + font-size: 0.7em; + line-height: 1px; + color: grey; + padding-left: 4px; +} + +.uniSwapShare{ + font-size: 1em; +} + +.uniSwapBal{ + font-size: 0.7em; +} diff --git a/src/app/exit/exit.component.spec.ts b/src/app/exit/exit.component.spec.ts new file mode 100644 index 0000000..02bd36c --- /dev/null +++ b/src/app/exit/exit.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ExitComponent } from './exit.component'; + +describe('ExitComponent', () => { + let component: ExitComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ExitComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ExitComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/exit/exit.component.ts b/src/app/exit/exit.component.ts new file mode 100644 index 0000000..c6e0e8b --- /dev/null +++ b/src/app/exit/exit.component.ts @@ -0,0 +1,149 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { Subscription } from 'rxjs'; +import { HttpClient } from "@angular/common/http"; +import { Observable } from "rxjs"; +import { Web3Service } from '../util/web3.service'; + + +declare let require: any; +const tokens = require('../util/common/tokens.json') +const exitABI = require('../util/common/ABI/exitABI.json') + + +import { environment } from '../../environments/environment' + +@Component({ + selector: 'app-exit', + templateUrl: './exit.component.html', + styleUrls: ['./exit.component.scss'] +}) +export class ExitComponent implements OnInit { + public tokensBal = [ + { name: "ETH", url: "eth" }, + { name: "DAI", url: "dai" }, + { name: "USDC", url: "usdc" }, + { name: "MKR", url: "mkr" }, + { name: "ZRX", url: "zrx" }, + { name: "REP", url: "rep" }, + { name: "TUSD", url: "tusd" }, + { name: "BAT", url: "bat" }, + { name: "KNC", url: "knc" }, + { name: "WBTC", url: "wbtc" } + ] + + public tokensUniSwap = [ + { name: "DAI", url: "dai" }, + { name: "USDC", url: "usdc" }, + { name: "MKR", url: "mkr" }, + { name: "ZRX", url: "zrx" }, + { name: "REP", url: "rep" }, + { name: "TUSD", url: "tusd" }, + { name: "BAT", url: "bat" }, + { name: "KNC", url: "knc" }, + { name: "WBTC", url: "wbtc" } + ] + + userBalStats; + CDPID = 0 + constructor(public web3: Web3Service, private httpClient: HttpClient) { + web3.contractAccountObservable.subscribe(async (address) => { + if (address != "0x0000000000000000000000000000000000000000") { + let stats = await this.httpClient.get(`${environment.mkr}/lad/${address}`).toPromise(); + let balancesData = await this.httpClient.get(`${environment.instanode}/balance/${address}`).toPromise(); + this.userBalStats = balancesData.data + if (stats.length > 0) { + console.log(stats) + this.createTokenBalStats(balancesData) + this.CDPID = stats[0].id + } else { + + } + + } else { + this.tokensBal = [ + { name: "ETH", url: "eth" }, + { name: "DAI", url: "dai" }, + { name: "USDC", url: "usdc" }, + { name: "MKR", url: "mkr" }, + { name: "ZRX", url: "zrx" }, + { name: "REP", url: "rep" }, + { name: "TUSD", url: "tusd" }, + { name: "BAT", url: "bat" }, + { name: "KNC", url: "knc" }, + { name: "WBTC", url: "wbtc" } + ] + this.CDPID = 0 + } + }) + } + + + ngOnInit() { + } + + createTokenBalStats(balStats) { + this.tokensBal = [] + balStats.data.forEach((bal, index) => { + let token = tokens[index] + + let obj = { + address: token.address, + name: token.symbol, + url: (token.symbol).toLowerCase(), + decimals: token.decimals, + bal: Number(bal) / (10 ** token.decimals), + } + + this.tokensBal.push(obj) + }) + } + + withdrawToken(token) { + let address = token.address + console.log("Address:", address) + if (address == "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee") { // Transfer ETH + let arg = []; + console.log(arg) + let callData = this.web3.getCallData(exitABI.withdrawETHLogic, arg) + let executeData = { + logicProxyName: "Exit", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } else { + let arg = [address]; + console.log(arg) + let callData = this.web3.getCallData(exitABI.withdrawTokenLogic, arg) + let executeData = { + logicProxyName: "Exit", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + } + + + withdrawUniSwap(token) { + let poolAddr = token.poolAddr + let arg = [poolAddr]; + console.log(arg) + let callData = this.web3.getCallData(exitABI.withdrawTokenLogic, arg) + let executeData = { + logicProxyName: "Exit", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + + + withdrawCDP(CDP) { + let arg = [CDP]; + console.log(arg) + let callData = this.web3.getCallData(exitABI.withdrawCDPLogic, arg) + let executeData = { + logicProxyName: "Exit", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } +} diff --git a/src/app/layout/dashboard/alertDialogBox.html b/src/app/layout/dashboard/alertDialogBox.html new file mode 100644 index 0000000..8dd5de9 --- /dev/null +++ b/src/app/layout/dashboard/alertDialogBox.html @@ -0,0 +1,20 @@ +
+

Transaction Status

+
+ +
+
+
+

{{data.msg}}

+ + + {{data.shortHash}} +

Transaction hash

+
+
diff --git a/src/app/layout/dashboard/dashboard.component.html b/src/app/layout/dashboard/dashboard.component.html new file mode 100644 index 0000000..a2fa464 --- /dev/null +++ b/src/app/layout/dashboard/dashboard.component.html @@ -0,0 +1,52 @@ + + +
+
+
+ + + + +
+
+ +
+ +
+ +
+ diff --git a/src/app/layout/dashboard/dashboard.component.scss b/src/app/layout/dashboard/dashboard.component.scss new file mode 100644 index 0000000..4ef4c3a --- /dev/null +++ b/src/app/layout/dashboard/dashboard.component.scss @@ -0,0 +1,32 @@ +.navBar{ + margin-top: 2em; +} + +.protocalContainer{ + margin-bottom: 2em; +} +.title{ + font-size: 2em; +} +.supTitle{ + font-size: 0.7em; + line-height: 1px; + color: grey; + padding-left: 4px; +} +.img-thumbnail{ + padding-right: 0 + // transform: scale(2.8); +} +.protcolRow{ + // margin-left: 4em; +} + + +.mat-spinner-color::ng-deep circle{ +stroke: #FBC130 !important; +} + +.hashLink{ + font-size: 2em; +} diff --git a/src/app/layout/dashboard/dashboard.component.spec.ts b/src/app/layout/dashboard/dashboard.component.spec.ts new file mode 100644 index 0000000..9c996c3 --- /dev/null +++ b/src/app/layout/dashboard/dashboard.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DashboardComponent } from './dashboard.component'; + +describe('DashboardComponent', () => { + let component: DashboardComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ DashboardComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DashboardComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/layout/dashboard/dashboard.component.ts b/src/app/layout/dashboard/dashboard.component.ts new file mode 100644 index 0000000..d9cd198 --- /dev/null +++ b/src/app/layout/dashboard/dashboard.component.ts @@ -0,0 +1,85 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { Subscription } from 'rxjs'; +import { HttpClient } from "@angular/common/http"; +import { Observable } from "rxjs"; +import { Web3Service } from '../../util/web3.service'; + +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog'; +@Component({ + selector: 'app-dashboard', + templateUrl: './dashboard.component.html', + styleUrls: ['./dashboard.component.scss'] +}) +export class DashboardComponent implements OnInit { + tnxInterval; + dialogRef + constructor(public dialog: MatDialog, public web3: Web3Service, private httpClient: HttpClient) { + + web3.tnxHashObservable.subscribe(async (hash) => { + this.openAlert({ + msg: `Txn Pending...`, + msgColor: "warning", + shortHash: this.shortHash(hash), + hash: hash, + status: false + }) + let isConfirmedShowed = false; + this.tnxInterval = setInterval(() => { + this.web3.getTX(hash).then((result) => { + if (!result) { return; } + if (!result.blockNumber) { return; } + isConfirmedShowed = true; + this.tnxComfirmed(hash) + }) + }, 2000) + }) + } + + ngOnInit() { + } + + openAlert(data) { + this.dialogRef = this.dialog.open(TXDialog, { + width: '350px', + data: data + }, ); + } + + shortHash(tx) { + let hash = `${tx.slice(0, 5)}....${tx.slice(tx.length - 5)}` + return hash + } + + tnxComfirmed(hash) { + clearInterval(this.tnxInterval) + this.dialog.closeAll(); + this.web3.reload() + this.openAlert({ + msg: `Txn Comfirmed.`, + msgColor: "success", + shortHash: this.shortHash(hash), + hash: hash, + status: true + }) + } + +} + + +//alert Modal +@Component({ + selector: 'alert-dialog', + templateUrl: 'alertDialogBox.html', + styleUrls: ['./dashboard.component.scss'] +}) +export class TXDialog { + color = 'fffff'; + mode = 'indeterminate'; + value = 50; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + } + + +} diff --git a/src/app/layout/dashboard/dashboard.module.ts b/src/app/layout/dashboard/dashboard.module.ts new file mode 100644 index 0000000..41f0868 --- /dev/null +++ b/src/app/layout/dashboard/dashboard.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + + +import {MatDividerModule} from '@angular/material/divider'; +@NgModule({ + declarations: [], + imports: [ + CommonModule, + MatDividerModule + ] +}) +export class DashboardModule { } diff --git a/src/app/layout/protcols/protcols.component.html b/src/app/layout/protcols/protcols.component.html new file mode 100644 index 0000000..123b71b --- /dev/null +++ b/src/app/layout/protcols/protcols.component.html @@ -0,0 +1,2 @@ + + diff --git a/src/app/layout/protcols/protcols.component.sass b/src/app/layout/protcols/protcols.component.sass new file mode 100644 index 0000000..e69de29 diff --git a/src/app/layout/protcols/protcols.component.spec.ts b/src/app/layout/protcols/protcols.component.spec.ts new file mode 100644 index 0000000..911d798 --- /dev/null +++ b/src/app/layout/protcols/protcols.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ProtcolsComponent } from './protcols.component'; + +describe('ProtcolsComponent', () => { + let component: ProtcolsComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ProtcolsComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ProtcolsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/layout/protcols/protcols.component.ts b/src/app/layout/protcols/protcols.component.ts new file mode 100644 index 0000000..aca1aa5 --- /dev/null +++ b/src/app/layout/protcols/protcols.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-protcols', + templateUrl: './protcols.component.html', + styleUrls: ['./protcols.component.sass'] +}) +export class ProtcolsComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/maker-dao/alertDialogBox.html b/src/app/maker-dao/alertDialogBox.html new file mode 100644 index 0000000..7257984 --- /dev/null +++ b/src/app/maker-dao/alertDialogBox.html @@ -0,0 +1,6 @@ +

{{data.title}}

+
+
+
{{data.msg}}
+ +
diff --git a/src/app/maker-dao/depositDialogBox.html b/src/app/maker-dao/depositDialogBox.html new file mode 100644 index 0000000..915313c --- /dev/null +++ b/src/app/maker-dao/depositDialogBox.html @@ -0,0 +1,19 @@ +

Deposit Collateral (ETH)

+ +
+ + Balance (ETH) + + + + + + + BREAKEVEN PRICE (ETH) + + + + +
diff --git a/src/app/maker-dao/generateDialogBox.html b/src/app/maker-dao/generateDialogBox.html new file mode 100644 index 0000000..0af608d --- /dev/null +++ b/src/app/maker-dao/generateDialogBox.html @@ -0,0 +1,19 @@ +

Generate Debt (DAI)

+ +
+ + MAX AVAILABLE TO DRAW + + + + + + + BREAKEVEN PRICE (ETH) + + + + +
diff --git a/src/app/maker-dao/maker-dao.component.html b/src/app/maker-dao/maker-dao.component.html new file mode 100644 index 0000000..8807a8e --- /dev/null +++ b/src/app/maker-dao/maker-dao.component.html @@ -0,0 +1,100 @@ +
+
+
+
+
+
+
+

+ MakerDAO CDP + +

+ +
+
+ Close CDP + + +
+
+
+
+
+
+
+
+
+
CDP NUMBER
+
+
#{{makerStats.cdp || 0}}
+
+
+
+ +
+
+
NET CDP VALUE
+
+
${{(makerStats.netValue || 0) | number:'1.0-2'}}
+
+
+
+ +
+
+
STABILITY FEES {{makerStats.feePercentage | number:'1.0-1'}}%
+
+
${{(makerStats.fee || 0) | number:'1.0-3'}}
+
+
+
+
+ +
+ +
+
+
+
+
Borrowed
+ +
+
+
+ ... + +

${{(makerStats.dai || 0)}}

+ GENERATE + PAYBACK + +
+
+
+ +
+
+
+
+
Collateral
+
+ + +
+ +
+ ... + +

Ξ{{(makerStats.eth || 0) | number:'1.0-3'}}

+ DEPOSIT + WITHDRAW + +
+
+
+ +
+ + +
diff --git a/src/app/maker-dao/maker-dao.component.scss b/src/app/maker-dao/maker-dao.component.scss new file mode 100644 index 0000000..5fd69a3 --- /dev/null +++ b/src/app/maker-dao/maker-dao.component.scss @@ -0,0 +1,55 @@ +.container{ + margin-top: 2em; + margin-right: 1px; +} + + +.title{ + font-size: 1.5em; +} + +.img-thumbnail{ + transform: scale(2.8); +} + +h5{ + font-size: 0.9em; +} + +.assetsRow{ + // margin-top: 2em; +} + +.stabilityPercentage{ + margin-top: 0.7em; +} + +.assetValue{ + font-weight: bold; + font-size: 1.5em; +} + +.tokenCards{ + // margin-top: 1.5em; +} + +.token-card{ + border: 1px solid #edf2f9; + border-radius: .5rem; +} + +.tokenCardTitle{ + font-size: 1.2em; +} +.tokenImg{ + margin-bottom: 1em; +} + +.tokenValue{ + font-size: 2em +} + +.tokenCardBtn{ + width: 7em; + margin-bottom: 0.3em; +} diff --git a/src/app/maker-dao/maker-dao.component.spec.ts b/src/app/maker-dao/maker-dao.component.spec.ts new file mode 100644 index 0000000..727d99a --- /dev/null +++ b/src/app/maker-dao/maker-dao.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MakerDaoComponent } from './maker-dao.component'; + +describe('MakerDaoComponent', () => { + let component: MakerDaoComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ MakerDaoComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MakerDaoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/maker-dao/maker-dao.component.ts b/src/app/maker-dao/maker-dao.component.ts new file mode 100644 index 0000000..d4e1645 --- /dev/null +++ b/src/app/maker-dao/maker-dao.component.ts @@ -0,0 +1,540 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { Subscription } from 'rxjs'; +import { HttpClient } from "@angular/common/http"; +import { Observable } from "rxjs"; +import { Web3Service } from '../util/web3.service'; + + +declare let require: any; +const tokens = require('../util/common/tokens.json') +const makerABI = require('../util/common/ABI/makerABI.json') + + +import { environment } from '../../environments/environment' + + +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogConfig } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; + +@Component({ + selector: 'app-maker-dao', + templateUrl: './maker-dao.component.html', + styleUrls: ['./maker-dao.component.scss'] +}) +export class MakerDaoComponent implements OnInit { + userStats; + makerStats = { + cdp: 0, + eth: 0, + dai: 0, + ratio: 0, + collateralValue: 0, + liqValue: 0, + debtValue: 0, + netValue: 0, + feePercentage: 0, + fee: 0, + ethPrice: 0 + }; + userBalStats = {} + userFeeStats; + tokenPriceConversation + ethPrice + CDPID = 0; + constructor(public dialog: MatDialog, public web3: Web3Service, private httpClient: HttpClient, private _snackBar: MatSnackBar) { + web3.contractAccountObservable.subscribe(async (address) => { + if (address != "0x0000000000000000000000000000000000000000") { + let stats = await this.httpClient.get(`${environment.mkr}/lad/${address}`).toPromise(); + let priceConversationData = await this.httpClient.get(`${environment.instanode}/stats/price`).toPromise(); + let balancesData = await this.httpClient.get(`${environment.instanode}/balance/${web3.accounts[0]}`).toPromise(); + this.tokenPriceConversation = priceConversationData + this.ethPrice = this.tokenPriceConversation.data[0].price + this.userBalStats = balancesData.data + this.userStats = stats[0] + if (stats.length > 0) { + // console.log(stats) + let feeData = await this.httpClient.get(`${environment.instanode}/maker/fee/${stats[0].id}`).toPromise(); + this.userFeeStats = feeData.data + this.createStats(1, stats[0]) + this.CDPID = stats[0].id + } else { + this.createStats(2, stats) + } + + } else { + this.makerStats = { + cdp: 0, + eth: 0, + dai: 0, + ratio: 0, + collateralValue: 0, + liqValue: 0, + debtValue: 0, + netValue: 0, + feePercentage: 0, + fee: 0, + ethPrice: 0 + }; + this.CDPID = 0 + } + + }) + } + + ngOnInit() { + } + + openSnackBar(message: string, action: string) { + const snackBarRef = this._snackBar.open(message, action, { + duration: 5000, + }); + snackBarRef.onAction().subscribe((result) => { + console.log(action); + if (action == "Open CDP") { + this.deposit() + } + }); + + } + + createStats(type, stats) { + let tokensPrice = this.tokenPriceConversation.data + if (type == 1) { + // console.log(stats) + this.makerStats = { + cdp: stats.id, + eth: stats.ink * Number(stats.per), + dai: stats.art, + ethPrice: stats.pip, + ratio: (100 / stats.ratio) * 100, + collateralValue: stats.tab, + liqValue: stats.liq_price, + debtValue: stats.art * 1, + netValue: stats.tab - (stats.art + this.userFeeStats.fees), + feePercentage: (this.userFeeStats.feePA) * 100, + fee: (this.userFeeStats.fees) + + } + } else if (type == 2) { + // console.log(stats) + } + console.log(this.makerStats) + } + + + async close() { + if (this.CDPID == 0) { + this.openAlert({ + title: `No CDP to close `, + msg: `You don't have any CDP to close..` + }) + return + } + + let daiPayback = this.makerStats.debtValue * (10 ** 18) + let daiBal = this.userBalStats[1] + + if (daiPayback < daiBal) { + this.openAlert({ + title: `Out of Balance`, + msg: `You have no enough balance to close CDP.` + }) + return + } + + let allowedAmt = await this.web3.getAllowance(tokens[1].address); + console.log(allowedAmt) + if (allowedAmt < daiPayback) { + console.error("NOT ALLOWED") + this.web3.setAllowance(tokens[1].address) + } + + let arg = [this.CDPID]; + let callData = this.web3.getCallData(makerABI.cdpShutLogic, arg) + let executeData = { + logicProxyName: "InstaMaker", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + + + openAlert(data) { + const dialogRef = this.dialog.open(MakerAlertDialog, { + width: '350px', + data: data + }, ); + } + + check() { + this.web3.tnxComfirmation("0xff27770bcc53af4b20e61a1f6a10dfba5058445b55d3f1f24188bca14c49ca7d") + } + deposit() { + let data = { + ethBal: (this.userBalStats[0] / (10 ** 18)), + eth: this.makerStats.eth, + ethPrice: this.ethPrice, + breakEvenPrice: this.makerStats.liqValue, + debtValue: this.makerStats.debtValue + } + this.openDialog("deposit", data) + } + + generate() { + if (this.CDPID == 0) { + console.log("NO CDP") + this.openSnackBar("NO CDP FOUND!!!", "Open CDP") + return + } + let data = { + maxDrawValue: ((this.makerStats.collateralValue * 2) / 3) - this.makerStats.dai, + ethPrice: this.ethPrice, + breakEvenPrice: this.makerStats.liqValue + + } + this.openDialog("generate", data) + } + + withdraw() { + if (this.CDPID == 0) { + console.log("NO CDP") + this.openSnackBar("NO CDP FOUND!!!", "Open CDP") + return + } + let data = { + maxWithDrawValue: (this.makerStats.eth) - (this.makerStats.debtValue * 3 / 2) / this.makerStats.ethPrice, + breakEvenPrice: this.makerStats.liqValue, + ethPrice: this.makerStats.ethPrice, + eth: this.makerStats.eth, + debtValue: this.makerStats.debtValue + } + this.openDialog("withdraw", data) + } + + payBack() { + if (this.CDPID == 0) { + console.log("NO CDP") + this.openSnackBar("NO CDP FOUND!!!", "Open CDP") + return + } + let data = { + daiBal: (this.userBalStats[1] / (10 ** 18)), + breakEvenPrice: this.makerStats.liqValue, + ethPrice: this.makerStats.ethPrice, + eth: this.makerStats.eth, + debtValue: this.makerStats.debtValue + } + this.openDialog("payback", data) + } + + depositExecute(data) { + let ethAmt = data.eth * (10 ** 18) + console.log("ETH Amt:", ethAmt) + console.log("CDPID", this.CDPID) + if (this.CDPID == 0) { + let arg = []; + console.log(arg) + let callData = this.web3.getCallData(makerABI.cdpLockOpenLogic, arg) + let executeData = { + logicProxyName: "InstaMaker", + value: ethAmt, + } + this.web3.executeFunction(callData, executeData) + } else { + let arg = [this.CDPID]; + let callData = this.web3.getCallData(makerABI.cdpLockLogic, arg) + let executeData = { + logicProxyName: "InstaMaker", + value: ethAmt, + } + this.web3.executeFunction(callData, executeData) + } + } + + withdrawExecute(data) { + console.log(data) + let ethAmt = data.ethFree * (10 ** 18) + console.log("ETH Amt:", ethAmt) + console.log("CDPID", this.CDPID) + let arg = [this.CDPID, String(ethAmt)]; + console.log(arg) + let callData = this.web3.getCallData(makerABI.cdpFreeLogic, arg) + let executeData = { + logicProxyName: "InstaMaker", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + + paybackExecute(data) { + console.log(data) + let daiAmt = data.daiPayback * (10 ** 18) + console.log("DAI Amt:", daiAmt) + console.log("CDPID", this.CDPID) + let arg = [this.CDPID, String(daiAmt)]; + console.log(arg) + let callData = this.web3.getCallData(makerABI.cdpWipeLogic, arg) + let executeData = { + logicProxyName: "InstaMaker", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + + generateExecute(data) { + console.log(data) + let daiAmt = data.dai * (10 ** 18) + console.log("DAI Amt:", daiAmt) + console.log("CDPID", this.CDPID) + let arg = [this.CDPID, String(daiAmt)]; + console.log(arg) + let callData = this.web3.getCallData(makerABI.cdpDrawLogic, arg) + let executeData = { + logicProxyName: "InstaMaker", + value: 0, + } + this.web3.executeFunction(callData, executeData) + } + + + openDialog(type, tokenData): void { + // console.log(tokenData) + if (type == "deposit") { + const dialogRef = this.dialog.open(DepositDialog, { + width: '300px', + data: tokenData + }, ); + + dialogRef.afterClosed().subscribe(result => { + // console.log(result) + if (result) { + this.depositExecute(result) + } + }); + } else if (type == "generate") { + const dialogRef = this.dialog.open(DaiGenerateDialog, { + width: '300px', + data: tokenData + }, ); + + dialogRef.afterClosed().subscribe(result => { + // console.log(result) + if (result) { + this.generateExecute(result) + } + }); + } else if (type == "withdraw") { + const dialogRef = this.dialog.open(EthWithdrawDialog, { + width: '300px', + data: tokenData + }, ); + + dialogRef.afterClosed().subscribe(result => { + // console.log(result) + if (result) { + this.withdrawExecute(result) + } + }); + } else if (type == "payback") { + const dialogRef = this.dialog.open(DaiPaybackDialog, { + width: '300px', + data: tokenData + }, ); + + dialogRef.afterClosed().subscribe(result => { + // console.log(result) + if (result) { + this.paybackExecute(result) + } + }); + } + + } + + +} + + +//ETH DEPOSIT +@Component({ + selector: 'deposit-dialog', + templateUrl: 'depositDialogBox.html', +}) +export class DepositDialog { + value: number + breakEvenPrice: number + executeData; + btnStatus = true + status; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.breakEvenPrice = this.data.breakEvenPrice + console.log(this.data); + if (this.data.ethBal == 0) this.status = "NO ETH TO DEPOSIT" + } + + calculate(event) { + this.btnStatus = event > 0 && this.data.ethBal ? false : true + this.value = Number(event) + if (event > this.data.ethBal) { + this.value = this.data.ethBal + } + let maxLiq_price = ((this.data.eth + this.data.value) * this.data.ethPrice) * 2 / 3 + this.breakEvenPrice = (this.data.debtValue) * this.data.ethPrice / maxLiq_price + this.breakEvenPrice = isNaN(this.breakEvenPrice) ? 0 : this.breakEvenPrice + this.data.value = this.value + this.executeData = { + eth: Number(this.value), + breakEvenPrice: this.breakEvenPrice, + } + } + onNoClick(): void { + console.log(this.executeData) + this.dialogRef.close(this.executeData); + } + +} + + +//DAI GENERATE +@Component({ + selector: 'daiGenerate-dialog', + templateUrl: 'generateDialogBox.html', +}) +export class DaiGenerateDialog { + value: number + breakEvenPrice: number + executeData; + btnStatus = true + status; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + console.log(this.data); + this.breakEvenPrice = this.data.breakEvenPrice + if (this.data.maxDrawValue == 0) this.status = "MAX DAI IS WITHDRAWN" + + } + + calculate(event) { + this.btnStatus = event > 0 && this.data.maxDrawValue ? false : true + + this.value = Number(event) + + if (event > this.data.maxDrawValue) { + this.value = this.data.maxDrawValue + } + this.breakEvenPrice = (this.value * this.data.ethPrice) / this.data.maxDrawValue + this.data.value = this.value + this.executeData = { + dai: Number(this.value), + breakEvenPrice: this.breakEvenPrice, + } + } + onNoClick(): void { + this.data.breakEvenPrice = this.breakEvenPrice + this.dialogRef.close(this.executeData); + } + +} + + +//ETH WITHDRAW +@Component({ + selector: 'ethWithdraw-dialog', + templateUrl: 'withdrawDialogBox.html', +}) +export class EthWithdrawDialog { + value: number + breakEvenPrice: number + executeData; + btnStatus = true + status; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + console.log(this.data); + this.breakEvenPrice = this.data.breakEvenPrice + if (this.data.maxWithDrawValue == 0) this.status = "NO FREE ETH TO DRAW" + } + + calculate(event) { + this.value = Number(event) + this.btnStatus = event > 0 && this.data.maxWithDrawValue ? false : true + if (event > this.data.maxWithDrawValue) { + this.value = this.data.maxWithDrawValue + } + let liq_price = ((this.data.eth - this.value) * this.data.ethPrice) * 2 / 3 + this.breakEvenPrice = this.data.debtValue * this.data.ethPrice / liq_price + console.log(isNaN(this.breakEvenPrice)) + this.breakEvenPrice = isNaN(this.breakEvenPrice) ? 0 : this.breakEvenPrice + this.data.value = this.value + this.executeData = { + ethFree: Number(this.value), + breakEvenPrice: this.breakEvenPrice, + } + } + onNoClick(): void { + this.data.breakEvenPrice = this.breakEvenPrice + this.dialogRef.close(this.executeData); + } + +} + +//DAI PAYBACK +@Component({ + selector: 'daiPayback-dialog', + templateUrl: 'payBackDialogBox.html', +}) +export class DaiPaybackDialog { + value: number + breakEvenPrice: number + executeData; + btnStatus = true + status; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + console.log(this.data); + this.breakEvenPrice = this.data.breakEvenPrice + if (this.data.debtValue == 0) this.status = "No Debt to payback" + } + + calculate(event) { + this.value = Number(event) + this.btnStatus = event > 0 && this.data.debtValue ? false : true + if (event > this.data.debtValue) { + this.value = this.data.debtValue + } + + let maxLiq_price = ((this.data.eth) * this.data.ethPrice) * 2 / 3 + this.breakEvenPrice = (this.data.debtValue - this.value) * this.data.ethPrice / maxLiq_price + this.data.value = this.value + this.executeData = { + daiPayback: Number(this.value), + breakEvenPrice: this.breakEvenPrice, + } + } + onNoClick(): void { + this.data.breakEvenPrice = this.breakEvenPrice + this.dialogRef.close(this.executeData); + } + +} + + +//alert Modal +@Component({ + selector: 'alert-dialog', + templateUrl: 'alertDialogBox.html', +}) +export class MakerAlertDialog { + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + console.log(this.data); + } + + +} diff --git a/src/app/maker-dao/payBackDialogBox.html b/src/app/maker-dao/payBackDialogBox.html new file mode 100644 index 0000000..e8cafe7 --- /dev/null +++ b/src/app/maker-dao/payBackDialogBox.html @@ -0,0 +1,23 @@ +

Payback Debt (DAI)

+ +
+ + BALANCE (DAI) + + + + + + + + BREAKEVEN PRICE (ETH) + + + + +
diff --git a/src/app/maker-dao/withdrawDialogBox.html b/src/app/maker-dao/withdrawDialogBox.html new file mode 100644 index 0000000..a12212c --- /dev/null +++ b/src/app/maker-dao/withdrawDialogBox.html @@ -0,0 +1,19 @@ +

Withdraw Collateral (ETH)

+ +
+ + MAX AVAILABLE TO WITHDRAW + + + + + + + BREAKEVEN PRICE (ETH) + + + + +
diff --git a/src/app/material/material.module.ts b/src/app/material/material.module.ts new file mode 100644 index 0000000..44b9987 --- /dev/null +++ b/src/app/material/material.module.ts @@ -0,0 +1,140 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import {A11yModule} from '@angular/cdk/a11y'; +import {DragDropModule} from '@angular/cdk/drag-drop'; +import {PortalModule} from '@angular/cdk/portal'; +import {ScrollingModule} from '@angular/cdk/scrolling'; +import {CdkStepperModule} from '@angular/cdk/stepper'; +import {CdkTableModule} from '@angular/cdk/table'; +import {CdkTreeModule} from '@angular/cdk/tree'; +import {MatAutocompleteModule} from '@angular/material/autocomplete'; +import {MatBadgeModule} from '@angular/material/badge'; +import {MatBottomSheetModule} from '@angular/material/bottom-sheet'; +import {MatButtonModule} from '@angular/material/button'; +import {MatButtonToggleModule} from '@angular/material/button-toggle'; +import {MatCardModule} from '@angular/material/card'; +import {MatCheckboxModule} from '@angular/material/checkbox'; +import {MatChipsModule} from '@angular/material/chips'; +import {MatStepperModule} from '@angular/material/stepper'; +import {MatDatepickerModule} from '@angular/material/datepicker'; +import {MatDialogModule} from '@angular/material/dialog'; +import {MatDividerModule} from '@angular/material/divider'; +import {MatExpansionModule} from '@angular/material/expansion'; +import {MatGridListModule} from '@angular/material/grid-list'; +import {MatIconModule} from '@angular/material/icon'; +import {MatInputModule} from '@angular/material/input'; +import {MatListModule} from '@angular/material/list'; +import {MatMenuModule} from '@angular/material/menu'; +import {MatNativeDateModule, MatRippleModule} from '@angular/material/core'; +import {MatPaginatorModule} from '@angular/material/paginator'; +import {MatProgressBarModule} from '@angular/material/progress-bar'; +import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; +import {MatRadioModule} from '@angular/material/radio'; +import {MatSelectModule} from '@angular/material/select'; +import {MatSidenavModule} from '@angular/material/sidenav'; +import {MatSliderModule} from '@angular/material/slider'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import {MatSnackBarModule} from '@angular/material/snack-bar'; +import {MatSortModule} from '@angular/material/sort'; +import {MatTableModule} from '@angular/material/table'; +import {MatTabsModule} from '@angular/material/tabs'; +import {MatToolbarModule} from '@angular/material/toolbar'; +import {MatTooltipModule} from '@angular/material/tooltip'; +import {MatTreeModule} from '@angular/material/tree'; + + + +@NgModule({ + declarations: [], + imports: [ + CommonModule, + A11yModule, + CdkStepperModule, + CdkTableModule, + CdkTreeModule, + DragDropModule, + MatAutocompleteModule, + MatBadgeModule, + MatBottomSheetModule, + MatButtonModule, + MatButtonToggleModule, + MatCardModule, + MatCheckboxModule, + MatChipsModule, + MatStepperModule, + MatDatepickerModule, + MatDialogModule, + MatDividerModule, + MatExpansionModule, + MatGridListModule, + MatIconModule, + MatInputModule, + MatListModule, + MatMenuModule, + MatNativeDateModule, + MatPaginatorModule, + MatProgressBarModule, + MatProgressSpinnerModule, + MatRadioModule, + MatRippleModule, + MatSelectModule, + MatSidenavModule, + MatSliderModule, + MatSlideToggleModule, + MatSnackBarModule, + MatSortModule, + MatTableModule, + MatTabsModule, + MatToolbarModule, + MatTooltipModule, + MatTreeModule, + PortalModule, + ScrollingModule, + ], + exports: [ + A11yModule, + CdkStepperModule, + CdkTableModule, + CdkTreeModule, + DragDropModule, + MatAutocompleteModule, + MatBadgeModule, + MatBottomSheetModule, + MatButtonModule, + MatButtonToggleModule, + MatCardModule, + MatCheckboxModule, + MatChipsModule, + MatStepperModule, + MatDatepickerModule, + MatDialogModule, + MatDividerModule, + MatExpansionModule, + MatGridListModule, + MatIconModule, + MatInputModule, + MatListModule, + MatMenuModule, + MatNativeDateModule, + MatPaginatorModule, + MatProgressBarModule, + MatProgressSpinnerModule, + MatRadioModule, + MatRippleModule, + MatSelectModule, + MatSidenavModule, + MatSliderModule, + MatSlideToggleModule, + MatSnackBarModule, + MatSortModule, + MatTableModule, + MatTabsModule, + MatToolbarModule, + MatTooltipModule, + MatTreeModule, + PortalModule, + ScrollingModule, +] +}) +export class MaterialModule { } diff --git a/src/app/util/common/ABI/ERC20ABI.json b/src/app/util/common/ABI/ERC20ABI.json new file mode 100644 index 0000000..54ff5e9 --- /dev/null +++ b/src/app/util/common/ABI/ERC20ABI.json @@ -0,0 +1,423 @@ +[ + { + "constant": true, + "inputs": [ + + ], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + + ], + "name": "initialized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + + ], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_holder", + "type": "address" + } + ], + "name": "migrateBalance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + + ], + "name": "targetSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + + ], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": false, + "inputs": [ + + ], + "name": "unpause", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_holders", + "type": "address[]" + } + ], + "name": "migrateBalances", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + + ], + "name": "paused", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": false, + "inputs": [ + + ], + "name": "pause", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + + ], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + + ], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + + ], + "name": "legacyRepContract", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [ + + ], + "payable": false, + "type": "function" + }, + { + "inputs": [ + { + "name": "_legacyRepContract", + "type": "address" + }, + { + "name": "_amountUsedToFreeze", + "type": "uint256" + }, + { + "name": "_accountToSendFrozenRepTo", + "type": "address" + } + ], + "payable": false, + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "holder", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Migrated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + + ], + "name": "Pause", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + + ], + "name": "Unpause", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + } +] diff --git a/src/app/util/common/ABI/cTokensAbi.json b/src/app/util/common/ABI/cTokensAbi.json new file mode 100644 index 0000000..f12dabc --- /dev/null +++ b/src/app/util/common/ABI/cTokensAbi.json @@ -0,0 +1,90 @@ +{ + "mintCTokenLogic": { + "constant": false, + "inputs": [ + { + "name": "erc20", + "type": "address" + }, + { + "name": "cErc20", + "type": "address" + }, + { + "name": "tokenAmt", + "type": "uint256" + } + ], + "name": "mintCToken", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + "redeemCTokenLogic": { + "constant": false, + "inputs": [ + { + "name": "erc20", + "type": "address" + }, + { + "name": "cErc20", + "type": "address" + }, + { + "name": "cTokenAmt", + "type": "uint256" + } + ], + "name": "redeemCToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + "borrowLogic" : { + "constant": false, + "inputs": [ + { + "name": "erc20", + "type": "address" + }, + { + "name": "cErc20", + "type": "address" + }, + { + "name": "tokenAmt", + "type": "uint256" + } + ], + "name": "borrow", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + "repayTokenLogic": { + "constant": false, + "inputs": [ + { + "name": "erc20", + "type": "address" + }, + { + "name": "cErc20", + "type": "address" + }, + { + "name": "tokenAmt", + "type": "uint256" + } + ], + "name": "repayToken", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" +} +} diff --git a/src/app/util/common/ABI/exitABI.json b/src/app/util/common/ABI/exitABI.json new file mode 100644 index 0000000..72ebde0 --- /dev/null +++ b/src/app/util/common/ABI/exitABI.json @@ -0,0 +1,50 @@ +{ + "withdrawETHLogic" : { + "constant": false, + "inputs": [ + + ], + "name": "transferETH", + "outputs": [ + + ], + "payable": true, + "stateMutability": "payable", + "type": "function" +}, + +"withdrawTokenLogic" : { + "constant": false, + "inputs": [ + { + "name": "tokenAddr", + "type": "address" + } + ], + "name": "transferERC20", + "outputs": [ + + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, + +"withdrawCDPLogic" : { + "constant": false, + "inputs": [ + { + "name": "num", + "type": "uint256" + } + ], + "name": "transferCDP", + "outputs": [ + + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +} + +} diff --git a/src/app/util/common/ABI/instaRegistry.json b/src/app/util/common/ABI/instaRegistry.json new file mode 100644 index 0000000..64fda78 --- /dev/null +++ b/src/app/util/common/ABI/instaRegistry.json @@ -0,0 +1,250 @@ +[{ + "constant": true, + "inputs": [{ + "name": "_logicAddress", + "type": "address" + }], + "name": "logic", + "outputs": [{ + "name": "", + "type": "bool" + }], + "payable": false, + "stateMutability": "view", + "type": "function" +}, { + "constant": false, + "inputs": [{ + "name": "_logicAddress", + "type": "address" + }], + "name": "enableStaticLogic", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, { + "constant": true, + "inputs": [{ + "name": "", + "type": "address" + }], + "name": "logicProxies", + "outputs": [{ + "name": "", + "type": "bool" + }], + "payable": false, + "stateMutability": "view", + "type": "function" +}, { + "constant": true, + "inputs": [{ + "name": "", + "type": "address" + }], + "name": "logicProxiesStatic", + "outputs": [{ + "name": "", + "type": "bool" + }], + "payable": false, + "stateMutability": "view", + "type": "function" +}, { + "constant": false, + "inputs": [{ + "name": "_currentOwner", + "type": "address" + }, { + "name": "_nextOwner", + "type": "address" + }], + "name": "record", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, { + "constant": false, + "inputs": [{ + "name": "_logicAddress", + "type": "address" + }], + "name": "enableLogic", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, { + "constant": false, + "inputs": [], + "name": "build", + "outputs": [{ + "name": "proxy", + "type": "address" + }], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, { + "constant": false, + "inputs": [{ + "name": "_name", + "type": "string" + }, { + "name": "_userAddress", + "type": "address" + }], + "name": "setAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, { + "constant": true, + "inputs": [{ + "name": "_logicAddress", + "type": "address" + }], + "name": "logicStatic", + "outputs": [{ + "name": "", + "type": "bool" + }], + "payable": false, + "stateMutability": "view", + "type": "function" +}, { + "constant": true, + "inputs": [{ + "name": "_name", + "type": "string" + }], + "name": "getAddress", + "outputs": [{ + "name": "", + "type": "address" + }], + "payable": false, + "stateMutability": "view", + "type": "function" +}, { + "constant": true, + "inputs": [{ + "name": "", + "type": "address" + }], + "name": "proxies", + "outputs": [{ + "name": "", + "type": "address" + }], + "payable": false, + "stateMutability": "view", + "type": "function" +}, { + "constant": false, + "inputs": [{ + "name": "_logicAddress", + "type": "address" + }], + "name": "disableLogic", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, { + "constant": false, + "inputs": [{ + "name": "_owner", + "type": "address" + }], + "name": "build", + "outputs": [{ + "name": "proxy", + "type": "address" + }], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "name": "sender", + "type": "address" + }, { + "indexed": true, + "name": "owner", + "type": "address" + }, { + "indexed": false, + "name": "proxy", + "type": "address" + }], + "name": "Created", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": true, + "name": "currentOwner", + "type": "address" + }, { + "indexed": true, + "name": "nextOwner", + "type": "address" + }, { + "indexed": false, + "name": "proxy", + "type": "address" + }], + "name": "LogRecord", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": false, + "name": "logicAddress", + "type": "address" + }], + "name": "LogEnableStaticLogic", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": false, + "name": "logicAddress", + "type": "address" + }], + "name": "LogEnableLogic", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": false, + "name": "logicAddress", + "type": "address" + }], + "name": "LogDisableLogic", + "type": "event" +}, { + "anonymous": false, + "inputs": [{ + "indexed": false, + "name": "name", + "type": "string" + }, { + "indexed": false, + "name": "addr", + "type": "address" + }], + "name": "LogSetAddress", + "type": "event" +}] diff --git a/src/app/util/common/ABI/makerABI.json b/src/app/util/common/ABI/makerABI.json new file mode 100644 index 0000000..8681e4c --- /dev/null +++ b/src/app/util/common/ABI/makerABI.json @@ -0,0 +1,141 @@ +{ + "cdpLockOpenLogic": { + "constant": false, + "inputs": [], + "name": "openAndLock", + "outputs": [{ + "name": "cdpNum", + "type": "uint256" + }], + "payable": true, + "stateMutability": "payable", + "type": "function" +}, + +"cdpLockLogic": { + "constant": false, + "inputs": [{ + "name": "cdpNum", + "type": "uint256" + }], + "name": "lock", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" +}, + + "cdpFreeLogic" : { + "constant": false, + "inputs": [ + { + "name": "cdpNum", + "type": "uint256" + }, + { + "name": "jam", + "type": "uint256" + } + ], + "name": "free", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, + +"cdpDrawLogic" : { + "constant": false, + "inputs": [ + { + "name": "cdpNum", + "type": "uint256" + }, + { + "name": "_wad", + "type": "uint256" + } + ], + "name": "draw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, + + "cdpDrawSendLogic" : { + "constant": false, + "inputs": [ + { + "name": "cdpNum", + "type": "uint256" + }, + { + "name": "_wad", + "type": "uint256" + }, + { + "name": "to", + "type": "address" + } + ], + "name": "drawSend", + "outputs": [ + + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, + +"cdpWipeLogic" : { + "constant": false, + "inputs": [ + { + "name": "cdpNum", + "type": "uint256" + }, + { + "name": "_wad", + "type": "uint256" + } + ], + "name": "wipe", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, + + "cdpShutLogic": { + "constant": false, + "inputs": [{ + "name": "cdpNum", + "type": "uint256" + }], + "name": "shut", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +}, + +"cdpGiveLogic": { + "constant": false, + "inputs": [ + { + "name": "cdpNum", + "type": "uint256" + }, + { + "name": "nextOwner", + "type": "address" + } + ], + "name": "give", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" +} +} diff --git a/src/app/util/common/ABI/userProxy.json b/src/app/util/common/ABI/userProxy.json new file mode 100644 index 0000000..f618ee6 --- /dev/null +++ b/src/app/util/common/ABI/userProxy.json @@ -0,0 +1,176 @@ + [ + { + "constant": false, + "inputs": [ + { + "name": "nextOwner", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "src", + "type": "address" + } + ], + "name": "isAuth", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "registry", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_target", + "type": "address" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_src", + "type": "uint256" + }, + { + "name": "_session", + "type": "uint256" + } + ], + "name": "execute", + "outputs": [ + { + "name": "response", + "type": "bytes" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "target", + "type": "address" + }, + { + "indexed": false, + "name": "srcNum", + "type": "uint256" + }, + { + "indexed": false, + "name": "sessionNum", + "type": "uint256" + } + ], + "name": "LogExecute", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "sig", + "type": "bytes4" + }, + { + "indexed": true, + "name": "guy", + "type": "address" + }, + { + "indexed": true, + "name": "foo", + "type": "bytes32" + }, + { + "indexed": false, + "name": "bar", + "type": "bytes32" + }, + { + "indexed": false, + "name": "wad", + "type": "uint256" + }, + { + "indexed": false, + "name": "fax", + "type": "bytes" + } + ], + "name": "LogNote", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + } + ], + "name": "LogSetOwner", + "type": "event" + } +] diff --git a/src/app/util/common/tokens.json b/src/app/util/common/tokens.json new file mode 100644 index 0000000..f804d63 --- /dev/null +++ b/src/app/util/common/tokens.json @@ -0,0 +1,110 @@ +[ + { + "symbol": "ETH", + "name": "Ethereum", + "address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", + "decimals": 18, + "price": 0, + "uniPool": false, + "compound": { + "caddress": "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5", + "factor": 0.75 + } + }, + { + "symbol": "DAI", + "name": "DAI Stable", + "address": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359", + "decimals": 18, + "price": 0, + "uniPool": true, + "compound": { + "caddress": "0xF5DCe57282A584D2746FaF1593d3121Fcac444dC", + "factor": 0.75 + } + }, + { + "symbol": "USDC", + "name": "USD Coin", + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "decimals": 6, + "price": 0, + "uniPool": true, + "compound": { + "caddress": "0x39AA39c021dfbaE8faC545936693aC917d5E7563", + "factor": 0.75 + } + }, + { + "symbol": "MKR", + "name": "MakerDAO", + "address": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2", + "decimals": 18, + "price": 0, + "uniPool": true + }, + { + "symbol": "ZRX", + "name": "0x Protocol", + "address": "0xe41d2489571d322189246dafa5ebde1f4699f498", + "decimals": 18, + "price": 0, + "uniPool": true, + "compound": { + "caddress": "0xB3319f5D18Bc0D84dD1b4825Dcde5d5f7266d407", + "factor": 0.6 + } + }, + { + "symbol": "REP", + "name": "Augur", + "address": "0x1985365e9f78359a9b6ad760e32412f4a445e862", + "decimals": 18, + "price": 0, + "uniPool": true, + "compound": { + "caddress": "0x158079Ee67Fce2f58472A96584A73C7Ab9AC95c1", + "factor": 0.5 + } + }, + { + "symbol": "TUSD", + "name": "TrueUSD", + "address": "0x8dd5fbCe2F6a956C3022bA3663759011Dd51e73E", + "decimals": 18, + "price": 0, + "uniPool": true + }, + { + "symbol": "BAT", + "name": "Basic Att.", + "address": "0x0d8775f648430679a709e98d2b0cb6250d2887ef", + "decimals": 18, + "price": 0, + "uniPool": true, + "compound": { + "caddress": "0x6C8c6b02E7b2BE14d4fA6022Dfd6d75921D90E4E", + "factor": 0.6 + } + }, + { + "symbol": "KNC", + "name": "Kyber Network", + "address": "0xdd974d5c2e2928dea5f71b9825b8b646686bd200", + "decimals": 18, + "price": 0, + "uniPool": true + }, + { + "symbol": "WBTC", + "name": "Wrapped BTC", + "address": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "decimals": 8, + "price": 0, + "uniPool": true, + "compound": { + "caddress": "0xC11b1268C1A384e55C48c2391d8d480264A3A7F4", + "factor": 0.5 + } + } +] diff --git a/src/app/util/common/variable.json b/src/app/util/common/variable.json new file mode 100644 index 0000000..b682e2e --- /dev/null +++ b/src/app/util/common/variable.json @@ -0,0 +1,3 @@ +{ + "instaRegistry":"0x498b3bfabe9f73db90d252bcd4fa9548cd0fd981" +} diff --git a/src/app/util/util.module.ts b/src/app/util/util.module.ts new file mode 100644 index 0000000..8481478 --- /dev/null +++ b/src/app/util/util.module.ts @@ -0,0 +1,15 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {Web3Service} from './web3.service'; + +@NgModule({ + imports: [ + CommonModule + ], + providers: [ + Web3Service + ], + declarations: [] +}) +export class UtilModule { +} diff --git a/src/app/util/web3.service.spec.ts b/src/app/util/web3.service.spec.ts new file mode 100644 index 0000000..898a750 --- /dev/null +++ b/src/app/util/web3.service.spec.ts @@ -0,0 +1,40 @@ +import {TestBed, inject} from '@angular/core/testing'; +const Web3 = require('web3'); + +import {Web3Service} from './web3.service'; + +import metacoin_artifacts from '../../../build/contracts/MetaCoin.json'; + +declare let window: any; + +describe('Web3Service', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [Web3Service] + }); + }); + + it('should be created', inject([Web3Service], (service: Web3Service) => { + expect(service).toBeTruthy(); + })); + + it('should inject a default web3 on a contract', inject([Web3Service], (service: Web3Service) => { + service.bootstrapWeb3(); + + return service.artifactsToContract(metacoin_artifacts).then((abstraction) => { + expect(abstraction.currentProvider.host).toBe('http://localhost:8545'); + }); + })); + + it('should inject a the window web3 on a contract', inject([Web3Service], (service: Web3Service) => { + window.web3 = { + currentProvider: new Web3.providers.HttpProvider('http://localhost:1337') + }; + + service.bootstrapWeb3(); + + return service.artifactsToContract(metacoin_artifacts).then((abstraction) => { + expect(abstraction.currentProvider.host).toBe('http://localhost:1337'); + }); + })); +}); diff --git a/src/app/util/web3.service.ts b/src/app/util/web3.service.ts new file mode 100644 index 0000000..badf209 --- /dev/null +++ b/src/app/util/web3.service.ts @@ -0,0 +1,216 @@ +import { Injectable } from '@angular/core'; +import { Subject } from 'rxjs'; + +declare let require: any; +const Web3 = require('web3'); + +const instaRegistryABI = require('./common/ABI/instaRegistry.json') +const userProxyABI = require('./common/ABI/userProxy.json') +const ERC20ABI = require('./common/ABI/ERC20ABI.json') + +const variable = require('./common/variable.json') + + +declare let window: any; + +@Injectable() +export class Web3Service { + private web3: any; + public accounts: string; + public contractAccount: string[]; + + public ready = false; + private contractInstance: any; + public accountsObservable = new Subject(); + public contractAccountObservable = new Subject(); + public tnxHashObservable = new Subject(); + public tnxStatusObservable = new Subject(); + private tnxInterval; + + + private contractAddress = { + registry: "0x498b3BfaBE9F73db90D252bCD4Fa9548Cd0Fd981", + bridge: "0x37aCfEf331e6063C8507C2A69c97B4f78c770A5A", + splitswap: "0xa4bca645f9cb9e6f9ad8c56d90a65b07c2f4e1dd", + logics: { + InstaMaker: "0x8e18152D3C1B1dD9F6573e2aDb07744390cE5035", + InstaTrade: "0x750F4cbdEb98049c3Dc3492b729b66f0fA56bcBf", + InstaUniswapPool: "0x84055ac6916A2eB49F8b492c55a77248cde50A07", + InstaCompound: "0x956eBA6cc01941b50C36cf6c5c0480a14f0D669C", + InstaSave: "0x94F5b439993bC7069C77a690681271cdc599FE1a", + InstaBridge: "0xd8e0090dfA23D48cF343016758bb06f8c1567058", + InstaCompSave: "0xCEfd72398C9BABBD38537e72F45EdAc3DF46CA25", + Exit: "0xEa877248310E167B90dBA9922026b613Ce2C5cA4" + } + } + + constructor() { + window.addEventListener('load', (event) => { + this.bootstrapWeb3(); + }); + + // refreshing Stats + // setInterval(() => { + // console.log("refreshing") + // this.reload() + // }, 5*60*1000); + } + + public async bootstrapWeb3() { + if (window.ethereum) { // Modern dapp browsers... + window.web3 = new Web3(window.ethereum); + try { + await window.ethereum.enable(); // Request account access if needed + this.web3 = new Web3(window.web3.currentProvider); + } catch (error) { + console.log('User denied permission / !userAccount / !userProxy'); + } + } + // Checking if Web3 has been injected by the browser (Mist/MetaMask) + else if (typeof window.web3 !== 'undefined') { + // Use Mist/MetaMask's provider + this.web3 = new Web3(window.web3.currentProvider); + } else { + console.log('No web3? You should consider trying MetaMask!'); + + // Hack to provide backwards compatibility for Truffle, which uses web3js 0.20.x + // fallback - use your fallback strategy (local node / hosted node + in-dapp id mgmt / fail) + } + + setInterval(() => this.refreshAccounts(), 100); + } + + + + + + private refreshAccounts() { + this.web3.eth.getAccounts(async (err, accs) => { + if (err) { + console.log(err) + console.warn('There was an error fetching your accounts.'); + return; + } + + // Get the initial account balance so it can be displayed. + if (accs.length === 0) { + console.warn('Couldn\'t get any accounts! Make sure your Ethereum client is configured correctly.'); + return; + } + if (!this.accounts || this.accounts.length !== accs.length || this.accounts[0] !== accs[0]) { + console.log('Observed new accounts'); + + this.accountsObservable.next(accs); + this.accounts = accs; + // await this.connectToWallet(accs[0]) + } + + this.ready = true; + }); + } + + public reload() { + if (this.accounts && this.accounts.length > 0) { + let address = [this.accounts[0]] + console.log(address) + this.accountsObservable.next(address); + } + + } + + public async connectToWallet(address) { + let web3 = this.web3; + + this.contractInstance = new web3.eth.Contract(instaRegistryABI, variable.instaRegistry) + + this.contractInstance.options.address = variable.instaRegistry + await this.contractInstance.methods.proxies(address).call().then(data => { + this.contractAccountObservable.next(data) + this.contractAccount = data + }) + return this.contractAccount + } + + + public getBlock() { + this.web3.eth.getBlockNumber((err, accs) => { console.log(accs) }) + } + + // create call data for function + getCallData(abi, args) { + let callData = this.web3.eth.abi.encodeFunctionCall(abi, args) + return callData + } + + async executeFunction(callData, data) { + let logicProxyAddr = this.contractAddress.logics[data.logicProxyName] + let userAccount = this.accounts[0] + let userProxy = this.contractAccount + let value = data.value + let sessionID = String(new Date().getTime()); + + console.log("User Proxy: ", userProxy); + console.log("User Account: ", userAccount); + console.log("Logic Proxy: ", logicProxyAddr); + console.log("ETH value: ", value); + + let UserProxyContract = new this.web3.eth.Contract(userProxyABI, userProxy); + UserProxyContract.methods.execute(logicProxyAddr, callData, "3", sessionID).send({ + from: userAccount, + value: value + }, + (err, result) => { + if (err) { + console.log(err); + return + } + this.tnxHashObservable.next(result) + // this.tnxComfirmation(result) + console.log("tnx Hash: ", result); + } + ) + } + + //Sets tx has an observable + async tnxComfirmation(txHash) { + this.tnxHashObservable.next(txHash) + } + + // get Transaction Receipt + async getTX(txHash) { + let data + await this.web3.eth.getTransactionReceipt(txHash).then((result) => { + data = result + }) + return data + } + + // get user allowance + async getAllowance(_tokenAddr) { + let userAccount = this.accounts[0] + let userProxy = this.contractAccount + let allowedAmt = 0 + var TokenContract = new this.web3.eth.Contract(ERC20ABI, _tokenAddr); + await TokenContract.methods.allowance(userAccount, userProxy).call().then(data => { + allowedAmt = Number(data._hex) + }) + console.log("Allowed Amount:",allowedAmt) + return allowedAmt + } + + // set allowance for userProxy + async setAllowance(_tokenAddr) { + let userAccount = this.accounts[0] + let userProxy = this.contractAccount + let allowanceAmt = 1000000000000; // 1 trillion + allowanceAmt = this.web3.utils.toWei(allowanceAmt.toString(), 'ether'); // 18 decimal'ed + let TokenContract = new this.web3.eth.Contract(ERC20ABI, _tokenAddr); + TokenContract.methods.approve(userProxy, allowanceAmt.toString()).send({ + from: userAccount, + value: 0 + }).then(data => { + console.log(data) + }) + } + +} diff --git a/src/assets/common/ABI/instaRegistry.json b/src/assets/common/ABI/instaRegistry.json new file mode 100644 index 0000000..98d338a --- /dev/null +++ b/src/assets/common/ABI/instaRegistry.json @@ -0,0 +1 @@ +[{"constant":true,"inputs":[{"name":"_logicAddress","type":"address"}],"name":"logic","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_logicAddress","type":"address"}],"name":"enableStaticLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"logicProxies","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"logicProxiesStatic","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_currentOwner","type":"address"},{"name":"_nextOwner","type":"address"}],"name":"record","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_logicAddress","type":"address"}],"name":"enableLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"build","outputs":[{"name":"proxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_userAddress","type":"address"}],"name":"setAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_logicAddress","type":"address"}],"name":"logicStatic","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"string"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"proxies","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_logicAddress","type":"address"}],"name":"disableLogic","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"build","outputs":[{"name":"proxy","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"proxy","type":"address"}],"name":"Created","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentOwner","type":"address"},{"indexed":true,"name":"nextOwner","type":"address"},{"indexed":false,"name":"proxy","type":"address"}],"name":"LogRecord","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"logicAddress","type":"address"}],"name":"LogEnableStaticLogic","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"logicAddress","type":"address"}],"name":"LogEnableLogic","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"logicAddress","type":"address"}],"name":"LogDisableLogic","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"addr","type":"address"}],"name":"LogSetAddress","type":"event"}] diff --git a/src/assets/common/variable.json b/src/assets/common/variable.json new file mode 100644 index 0000000..f065225 --- /dev/null +++ b/src/assets/common/variable.json @@ -0,0 +1,3 @@ +{ + "instaRegistryABI":"0x498b3bfabe9f73db90d252bcd4fa9548cd0fd981" +} diff --git a/src/assets/img/icons/tokens/bat.svg b/src/assets/img/icons/tokens/bat.svg new file mode 100644 index 0000000..b19f673 --- /dev/null +++ b/src/assets/img/icons/tokens/bat.svg @@ -0,0 +1,27 @@ + + + + bat + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/bnb.svg b/src/assets/img/icons/tokens/bnb.svg new file mode 100644 index 0000000..e06bfaf --- /dev/null +++ b/src/assets/img/icons/tokens/bnb.svg @@ -0,0 +1,19 @@ + + + + BNB + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/cdai.svg b/src/assets/img/icons/tokens/cdai.svg new file mode 100644 index 0000000..7a2880f --- /dev/null +++ b/src/assets/img/icons/tokens/cdai.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/icons/tokens/dai.svg b/src/assets/img/icons/tokens/dai.svg new file mode 100644 index 0000000..1dd3cd4 --- /dev/null +++ b/src/assets/img/icons/tokens/dai.svg @@ -0,0 +1,24 @@ + + + + dai + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/dgx.svg b/src/assets/img/icons/tokens/dgx.svg new file mode 100644 index 0000000..b1b73e7 --- /dev/null +++ b/src/assets/img/icons/tokens/dgx.svg @@ -0,0 +1,23 @@ + + + + DGX-S + Created with Sketch. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/enj.svg b/src/assets/img/icons/tokens/enj.svg new file mode 100644 index 0000000..51d38cf --- /dev/null +++ b/src/assets/img/icons/tokens/enj.svg @@ -0,0 +1,73 @@ + + + + enjin + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/eth.svg b/src/assets/img/icons/tokens/eth.svg new file mode 100644 index 0000000..c7675e4 --- /dev/null +++ b/src/assets/img/icons/tokens/eth.svg @@ -0,0 +1,21 @@ + + + + eth + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/knc.svg b/src/assets/img/icons/tokens/knc.svg new file mode 100644 index 0000000..e17603d --- /dev/null +++ b/src/assets/img/icons/tokens/knc.svg @@ -0,0 +1,38 @@ + + + + knc + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/mana.svg b/src/assets/img/icons/tokens/mana.svg new file mode 100644 index 0000000..52aa608 --- /dev/null +++ b/src/assets/img/icons/tokens/mana.svg @@ -0,0 +1,33 @@ + + + + mana + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/mkr.svg b/src/assets/img/icons/tokens/mkr.svg new file mode 100644 index 0000000..12c1f35 --- /dev/null +++ b/src/assets/img/icons/tokens/mkr.svg @@ -0,0 +1,28 @@ + + + + + mkr + Designed by Anudit Nagar + + + + + + + + + diff --git a/src/assets/img/icons/tokens/omg.svg b/src/assets/img/icons/tokens/omg.svg new file mode 100644 index 0000000..453f84d --- /dev/null +++ b/src/assets/img/icons/tokens/omg.svg @@ -0,0 +1,17 @@ + + + + omg + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/poly.svg b/src/assets/img/icons/tokens/poly.svg new file mode 100644 index 0000000..5a9c70d --- /dev/null +++ b/src/assets/img/icons/tokens/poly.svg @@ -0,0 +1,70 @@ + + + + poly + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/rep.svg b/src/assets/img/icons/tokens/rep.svg new file mode 100644 index 0000000..d8c8c36 --- /dev/null +++ b/src/assets/img/icons/tokens/rep.svg @@ -0,0 +1,15 @@ + + + + REP + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/salt.svg b/src/assets/img/icons/tokens/salt.svg new file mode 100644 index 0000000..4e7a4a3 --- /dev/null +++ b/src/assets/img/icons/tokens/salt.svg @@ -0,0 +1,13 @@ + + + + SALT + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/snt.svg b/src/assets/img/icons/tokens/snt.svg new file mode 100644 index 0000000..efdf528 --- /dev/null +++ b/src/assets/img/icons/tokens/snt.svg @@ -0,0 +1,16 @@ + + + + snt + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/tusd.svg b/src/assets/img/icons/tokens/tusd.svg new file mode 100644 index 0000000..1b7eed1 --- /dev/null +++ b/src/assets/img/icons/tokens/tusd.svg @@ -0,0 +1,18 @@ + + + + Tusd + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/usdc.svg b/src/assets/img/icons/tokens/usdc.svg new file mode 100644 index 0000000..aeb6271 --- /dev/null +++ b/src/assets/img/icons/tokens/usdc.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/img/icons/tokens/wbtc.svg b/src/assets/img/icons/tokens/wbtc.svg new file mode 100644 index 0000000..b273c9b --- /dev/null +++ b/src/assets/img/icons/tokens/wbtc.svg @@ -0,0 +1,17 @@ + + + + wbtc_colour + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/weth.svg b/src/assets/img/icons/tokens/weth.svg new file mode 100644 index 0000000..f617196 --- /dev/null +++ b/src/assets/img/icons/tokens/weth.svg @@ -0,0 +1,19 @@ + + + + Group 2 + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/zil.svg b/src/assets/img/icons/tokens/zil.svg new file mode 100644 index 0000000..dc028d9 --- /dev/null +++ b/src/assets/img/icons/tokens/zil.svg @@ -0,0 +1,22 @@ + + + + zil + Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/icons/tokens/zrx.svg b/src/assets/img/icons/tokens/zrx.svg new file mode 100644 index 0000000..0158852 --- /dev/null +++ b/src/assets/img/icons/tokens/zrx.svg @@ -0,0 +1,17 @@ + + + + ZRX + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/instadapp/brand.png b/src/assets/img/instadapp/brand.png new file mode 100644 index 0000000000000000000000000000000000000000..9df8ed8f5c4f5c3266b0c5f863c5f1bc707608c5 GIT binary patch literal 11142 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 literal 0 HcmV?d00001 diff --git a/src/assets/img/instadapp/logo.png b/src/assets/img/instadapp/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd6d68e99083d57f9889abad3aa63a54aaa91bf GIT binary patch literal 13873 zcmXwgbzIZm_dlCc86g`jATS!~1_7C)8xd&`Mwfs{*AS5IZV&+xDe06Lp|sLn0@B^$ z@5TG`{r#~A54QWdJNMk@J?Hs6=Ppb`O`Z^s3J(Vdhfq;LMiU1IguZ>@-UHt0H~i@Z z`~kUW%A;_~25J5P|3IA-^jvUoD2Q)gAgi38z#~HAiZai%JU}~HP#?pWQ~!n<1Qe$W zZ7d5dI123Izbe2#C)VnbK0^v~M9@cElWCBX%^q|Sl9Cpbo%_RKaJYsH5?LD)TR>fa zNn&705Vj9SeOLKe=)f;<*8D9aK30u2L2tLkC1v5S2EWUmUiP~8Yd^8G1}pfx`_Nb% zXe?3@+8aMU_(QP`0$!T#{s-60_{9g+$7Yh0%$cONWn&X(kUM=mVOekfXtN0;WYlu%=29YA~>OSAwaPa7y&> zXjn{@`kItdg%n2in?%ObAwN1{Z*ifd_xkg2RL&-uQ5fOyskH=)c-NYR!TazAHxG*aFSRT<$M+OS`_XDy#9xB%N67?ymkz4!Ne$Rki zxNK_8Qp%>u6~cxcueA97lx4q6GzW+8DFVm&f%+Gf(8lgDRLX$n#=zW6ZH;ECuTS8| zhSnn}#}3oCcuWRv&=!?r+g3xwoOuma0;2<8Z9aAYu25cwSN78O2{z1LQXG zpH#>IVgAAP{q9i7nd-Owr4ZiZhh}_OD9V;qrepd6LB`d66s5bnW0X{H_E!S~p{6;~ zscZD$Bs3&Q9OsIU);oM8@r|xPd9{$jZr5MCvx)~#75k>$^L-iIO!v8i-P+s zv9bflQsIe>?6rBWrQh1?7rgN*?@#j@8u)Y4nhnJ%WkcM%`S$m2b@x+ zUM+~5?k+l5b$Q{gerB}1<7&|Jqi<`F5s7d!&R8{n?yA~p3Su9UT^2aNZ&){BdF-UN zEs>(|qtls)h8C)B{23MHzF9n~D!G*+xgsVdxeW`Rl#LR%neI?9@!79JS?9>bY|vAr zsl9MO(3d#9GNi=4#}hd!B$*%N=liAQgjOr7y1+|YlNW^N+`h5hCu-wn=0MNJouHH% zk{ttQU3~^NgP&tar?ZwC3+dR6{&_YRU0J^8>PBfdZi!Fa;WYaDMGQYcLsgn&oU@+p zh50{mQI|-D%wTdJ3kHn!7=h|9Kk^5vo@6Vf{(`38x?TtrtTg;2&V{8U`xj1ISgUpR zM9C{(gC&E7@YOn`IMR^m4&E&&3?+uS!2EPX}#WI3Ioy9r~a=1yB?*?(b&JnaSRgKn5>qi0L$6s30 zeT%acqMny>2=4xS^Y9zn(VPArb0!U5kc7F7NBK}{CN)dUMW26mj+uB^PPYoe0h2EC!O0R#{2t1od>T|Z z?C2spohkMCc+=`2kjRIblME-$65r=~;N;^%z@cNPjZ1%T#^6dafo8&<)TfnjeSY5+ zkKuw0OFtEZu^CX5IhrhQdql0M=MOFzX8UyBe;xcFNC6ON%w zF&mwkU|d>^&^;ic&OhXh04C>**9~LUn%NIN(C>k&gmBQd1EJ`!9%I#>~p zI-`3~HJG%f5vpokyT9EX$VcPQz*6&yfxN#*m?ZTp?m7vwcPH{Ia$hR1QO-o`Ql$p=qyA@<-iXgyP$S%uG)! zX5FJkv1H;_tYo^dsyGYlI#RJ18LrNhss*J6HJ{{908qvsS;E zN(+QYDChpf9Wv$13*oThn(V7G)?cIy7A5-hvWk4Di*b^F)?Q~RjsRcxfF4Awz>3-3 zuOw>^uc6#@^SKoA8&bibGSm8ATfy;L>p3Ys9#k%Nx;OQbFd@NB#BEQ*DK}5)-@m!h z@6Qx_JrQx83_v|ojcKQ;QdZKd{fwU6=Z=hr&$NXfGl;ksg`*yw64YlYVfLjeo;hug z=Xq$=EI7e-i=y|?HlM;rDcQVP2Fw&2+_u=1n0xxRzHI3y=XW39FjQv41+!QCD?)`* zvV*d;w1j<5AWxP-=)1`#`;T?H%jnV5sHb{`0r{{Z5OgT}m4p3cnDM^)If|R`!MAv1 z9AvmsOk5(*NA@JLTThn!ckwpqGJL?s{u5hZlDb)3HHm!YnmjQ*hy*wvL?e%}>Ajhk zW~!XyW3taf7aX3N%`n(MufQ`K*)p8_Aeap?MB=Dtm=@R&1=~`W2Q>^^`qPo3ImZJv zutXm<{eM4!-`rT_o}Ci&3iFPAY^M6=e|F((qw0@;V0`pADg#FZ`)@I4@89E@E4$ul z1rt`#^=1}nG-NuG+5GPhY#qveTbnwY)V52t&71zg>71YTWyZ!e7UBoT6X6`lc=J^W6VnG6LKiJmVSB^=5o*6` zdRHRcMOxu#mGWkAlozA%_q%Ue5UJ4+h1|Cgn8*!_$;IWo1y_xxEXvsZ^QU&|qt zqX=^gBWMqfbU(M}6xp{zJa~MT?Y`%^>WX;q0qz*wl=5wzUn&jpXkUS82Yotn#TwrX(?^4PqF z#z8Io6+h?Bw_!4YgCYw*(QOAU-EEP5IjQ+&CRq2q z9hLumxG@@^OB)54Edj=rM<>F}nVN0)+RI|65#RJI!2Tm&Dug>?+HT+4`;H^okl zDi;>#41aw6By43#ye|j}Vlzkf&ajS+^EgH1m%*2BQxQ0zEfB}x4|#oc0)Q47$VVDF z(&;;60#sH>z3-Yoy9UETtcJ?R-?jU z02RTJ<+>#4r&nP@gx;d3@ZnU)0s<_~A) zrQ3RLXk?EFUgJrFg{%qsQocy#;Td&WV*~-7djVxT5b8Ix=B??c!RLsA?Fp4@-W%n@ zO%%6vQ;zOWjRedOghV17U>`Gr;QTcgY+*2YmS8_jES59F*TNO>9uqHlKm%NC>@+IO zfnr%vC?ck9&F>XW#JzIB_pwNJTocj>kq#H~mZ8B$2lC~>AA$TPK}_~#6KWs7L;%wd zK=!MRS!#0mMmmMFzLqlNn=-h@{cHc3e7~_F&RQHAiy^{QXrR}cd0T9hJy46$3qA9M%qbhEXE!E?~v3a;SbtcJn6CChH*l?O+8RH=H>6Lr8NeCuCfmeAl`y z_QuSql~&R!`uyR&)ght{vZA1D5C1PN7xQE9zJ z*K}1oNQU}`$H-OdJ*w{CKo+|Y*eSbZJ#v?Fw6pzT&ND|3x)lK;fPip90L+cg&0iWN z{X7eyT*zQ%=4l9QyUA-TOo$K~BS4JrzuWEWqUyM2T4V)Ro;Z}7OwO=3Y8IIUby52r z&e^pp<+W;lQJ2Mc{#f{j6sxpGYKME2fT4q8#r1c`?t4|nznE zAt9&&!xF-(Mo*ltP%P43^H3yaoH zz*OO4pG?!zDA?!R=M#2)bjQl`kE&gyt9-@1@7t&r4yDjaDl+fR;CQR2#J$Mea=ViZ zN^hS`&C7}VDMtOV?~5|!ah9eqh2Ru2TfKIagv}tzOfqZ*uQc@nhzD}ax#&lwQtdxH zy%0jJF&IbF&#l3(;WvMFV6oRmPd;L6CWam=cW#A&)WJ3Q{&v#pI)Ta0?C;-NObRk z?K2b&6`klEl%WPivy6u>7qmVFhn#qG*ZQf^1X-=?`jR;qm$<(yd(O$cRhXO!n@(UD z?)lQF13$H`r>YhzBs=vMsT*)w`V9aE(KO3$3$`2T}RLhD5SsTLk591uH(TohDc(NJs6>>Txno=|5d z-oNGqy7<3efPMj#MprtwscHw#tXY(2m03}EFIk@##7=|-#NC^LoD^6IMuKPJT^hh~ z+q}Tt)z)dm>-%@JPre+LJ?m@H$*h8@r;bz*(FR5j&QMwcim4(Ir<-b_w50u@Bze5E zdcz74)*58i8AKUA=N=SZd$F#`_6x`#lghcQ({CcmBKD>YIPCi5aJ=*$5x_E3N6qg~-(#I`#Jqpopi61ku8MyLM`*FJX(tQxQuqftjpex(NynbfR|;zH?hm zuDElUzx?FWom!%`#)Q>OD7tvW`j-_{2ix#id=SSQ) zM3`M=RyNYM`BsZRSuBp`&PN139em&|*sTV9NYC6kDS(_}R%I<462Y|$k zWW#8ond(LEHz_xz!isPlZS#mAs|g;O((6i@Q?q=FRZqYRXRuKBYD0WJzi~-&@8O@h zZXMRf79?m@1MuD{iZ~q(aa^ zE1`kA7EMy|>GNP+_KQ4~haR`E>bebZEUpKx6yA%rzxWy$S2R1)f<2tbLsu(=bVS6W zSOfYYjrjxq?Ga7m{W_lG`rt#xv>!uk*fBB-{JdE)F6+!jOql`qW0ORD12~gM z1oE+v6PeZQ)IwqUaQaWXIU|7bMi!X(h-Q&~OThHt9=nx=Ds?@Q+j!2Up3 zIFG=woSxg}iBaBm@a)QyCI>#9^tX1B5NIJ%e(ds=hH zjsYYOpPX*E<|@YCiRS;&*}WJukC5Jt+J@hEezQA#_vTh|(1DD?q|S%7G(9p%<)Z-nlLDkFbT?;Hsqx|W;#L!#9sSN)Q$#Y#SuX2^L4;czrW7(xXrgi;Z!%EIzX8HgtDC|T(bMsVKCEEpm}!e3vwMrM4_$*VFa)~Cj>|m z!Hzwxp7EAk)(C1b^-irKCw96Ykey;6Oz-#5HKb;@hM1A{6y`lp;v*smH_`2AaZv12 zY$FDHD7~)wXhPnIAMp7g>1u}*ZIsi{N9KpPRSX3@jF2s;wZ(7oV9J&7v&z;dxaXJtDhmd!=+a4 z+6X7G0#=yDhd!vK$Jjly01w>CLE1_kgH*pb3={&Zn>9i4aWde8RPQl)WA$(jh@t0M z81At?KP!`(f0RObfFbGpeXJk~lGsL{nXa{_j<>jc-q01Ay+hFTKYBXTYsw{G%+WqiH8`hI#n71UKbI-8<*2i>UrRSksuN??7G)U1Ah$;`D zG!kH5-n8T1dXoNA2(R*JCX75D`5l)@w&I(4($z;Gmcoz2%HQ6KeH<_-iH41yx@z?q z4#^YB^xi;%?0TN+oIl zZc5Tf=D>iTquV+9LPiJWS^nu6+40C5$d78I>`g-|BON$>lnr}4Q7qgx!>YdcE##RKmTksQi&$`CHf^qSr z=o0oSA7UpykbRP1*MGh~4n3jO(N$vnpY^{^IaIrDipe5wfTq!njiZ+m_<}^k*77Fp z*7yy$OX-LYhK~z+9^0lucWGbJH|-W@9y6)E`Xv%FD`V1HX?)T8`s-wH?d!2x$0=Hu zyd}ZgAbJn{vZ{L^nHV3jUlEDXd|Vg?N6UV3}v{6DT`oz7lX1tG2`7K3& zGiBCxO5H`?eGSZM%#{1!;De6Zp`v2fa8LqOP;D$G0aqon%3A$++*0g2i{tbMV=L>9 z3@+tzgFpPu zIKnT>jX!8z#*8e&x;a ztZ{h(@$>v{Q^b2x0SQw_>Iz|ECw`zaL0B3{;TkBpyd+N~@tz>NBJZ^}5E2$mz|%_FJPra z#IaPtlZBS5CntorfwbOWTi5Ev+?V&jTJs<%p{Nigc3T?T?7IGr&vyR_Y*8UjEJNdG zioVL0WiItUgg_-B8#4GqKr(?s0f%wyeP{a~^kA@qGMf$d_&OAay&;YX3ZhOm)YFdAtEE7g-Z|ehYx?0Sa?O7 zGHoDP1=~{cZyYVG^aDP)f@)2S4at?t&%COVveQBlV#U4qdqTZG^ohsi&g58c2tm(N zZq50#DG zM#5SPh>N#TnZp+ygJFd7847K9;5g^s6nV2PrED1%mMoYvr%EpBa^rAmlV%hyCN_`}>kEwaQA|fdRUE>n&y?2w`s1&qpuzn3w)n#l_VL=I(M+ z@b(%JvAX(L_i-lWd1wK5wvu}9Ep+A)yg)}1S3CWp(Ou$A3@dxy8XtKh@`15DBCS+F=ER!dqc} zM3e!g=ba6IobYGNk`&Dd2ZnqChBQCJQU1d9`@ukgjdGAL-H_JN28xs4s#gnl=(a2w zhy*&S#W2&?1o|J=G#h`YhptqPu2AkJv&FUicZSTtd1-q@cLjHJSSb3I->~jm+WYqH zQ(+maqNW+iGg2JdU#T%>w+8|c#E1MS@dt~DdgjYGgw5}p<-e3{gzfbo?EfDXmV|s> z7o=rRy8PnJd7527S#Y=ruw}AkEOI$-g#SGDUsB{1r=kHr3T zTmnP4h0_e=r?P`z9!yW?rnJ2lo*3!qxxQ6FXlu@|_^KSoLYn1G(5jsQ>9HaJ%XIe) z5_|ah6@mHK2w$-1_Ykkn>wRs%Dc&;@8X ztR(5qzX|gd`dT=GOaC~Jh+xD2;m+moMP`sFt%DGYTeDbV*e&)m73qPFIm`U;tKTYH zJ~l6BYEuk)2zCIO)mD_R)4w0Yv&Z;kha9{#b#j7&y#DQBdcP($-hCadT884RNIjr? z!yan`=%Z~`4WJ5Z2q%~gVW%cLofxDNfKw7Ee{@?N4H(c1^`0@v>7Gvg_gxEd3yj2Q zr1ctHpzmEfD=a?M@Ck>m%M;M`bDzz*nz>&*JExLX2;n!6nP1P8Lb3s^%Jwh-DnNA_ zXF;a!v}X7{-DEVpvUjL7-&mz7HU)NeR`gn=amL1Cp92U$(Ep5V zS}@LhaTof#jti|rath4R+jUBAG|Sm^g;N-yBe9t85SHya4_nXNFAqCM9|$&BlUv;b zG5=$0Y;;@I*D^*)=zh}rHdNzO2q+ic9HjO5hlgY<@3`1J{g0Hb!U|yun*xQC9D&N%QVsTe*j3M`Fck56Z0t-0GV0yJuPLTPkOKw6I%hV6yp6ON zh#T{5=u-Gtdr*%06N<&v+D~e8BJ4j|C;RHVo0we7>qeG3BlCYpbreIh$v zl$o8sHe~jS@KO|kU=wL8pHD7UTQU2IXz}_3G#0w;JdAZR`c)@W@#fBagntObcBwcD z>RbG<#WXP7QxZ+e;_4iQ_i3m?XSDZL;;#2bHUL!=vkbd=DdzoxI-oL9%kF z_OOjBwz;`~`qP>PO6BcI=Yhi9V?U>`ewB}&gGZ3a6sOc!XJy&o?fCTicN_(t_1|3& zNZ>|ecF7@yr=f)Tmvu#cqOT1XC7KDdO_Jj{Lm)KDCgq+nVR< z_0%S_zc+OVsWUTJE>trY05rbuPWPBFm7Rv6P51<75F}HcUe^eSzSy$_jk#a+Ek2<2 zX5p{>48^N4*ut7ZH8k)H;a-zj@fO2UTQCiy%~VUP``|X+s0@@{l%0cWKkgjW;o`6a*f6Cls4X893v!HPx`-|}pxee+)q9x<7S z2e3z!biADAB#RY5)ZWhx5hr>lP9$~KbLQ?(w;y&N8cC0d4N@vtwO~|ByBtwMkRMoY z{iPf{5~baV79O(&?DGj80u_+I{lh+w>-i< zoZ~6s8qLMO%m_4!xK}2({F{`kY$3j7mVhfto+ZE5Uib7>=6bSH+TuP95NTJS^pBlO z`8X$(q`4^2o#(ph*Y|a^c7!+{nN9(`g~>!16ja+-!JNsCe`Q`ZK#riLx&8vt&RGVC zEfUPl5KBx!ZP20TP$`Kb;JK|dJ)`*dyyOx3;=hOQfi}i+&{+fjc=Nwh{-{t5C6w0U zzYx2ge3Jb9HZLN<1x!F!P8?dmNnMt_n^6i}SXd1ZlHl^aO5LTutt-VMTOo4+qH{z6Ve83XV*KL{W@UH&6|{{hvF5D^W~Z|GF#_U#dKe zhAneZPuP#YION3IXm*KqHs6kkl*uvYmvi!o@@iFjeBbhL&kTO}rdWY2pO<%W27&XrFBd!U0<7?ewlL}+N7JnGBXzx4FU)mGvGLVPz zrF zkz5M+sE}p5{_bf*{kABubHdBQxF7wQDek8N5(Wc#!;*`o@D`ue{+&5r7!*y4?mY95 zKjMM&++?ZJ=mO#eGXeB^uYjIal-k>0l_>kR&0UXm27+4SB^jscFo1$eLUI|0Tv?4< zdyC1%^+SVoMR;Q;Z=kKsE}J{jO$u!nko{JhDkTD+j_8(kyn-bs1o?l$?|Y&yn6K97 z&Nmc-9{>PG8j2J#SIVN<)1UgSfq#GCO*4#I`?So_I7{y}ZJJdxyt7 z=d!q>U%j3nL)p{sh1Je8CS7k%o~OOLT@w-+=J+gV&+QKW1a2jWBtn=+Hs@UDHIDLs z^$2;K2)qTFh}!E76s!D*};Tj+DdALk+_IsV>1%UYT_n68HEAJ{Zc?EOZ`x8*U z%we;cdryOVqLb2Smc@X*`A6K=-{9|Fa`Ow>_ENxQjtz@yu0?x)mOA0P)9CLg<^`NA z-gum2puiU=ItcC4kFMrO8QLX9dyF3`8Q9a0_zR-DM+|8!sDR0cNZL@QUf<4pPfy9p z41wDrDEnDWUuta!&F|RfxG$R5mJA}xfJ0`Ez?j-PvJ&5sKWU!*icsd4fAyvYMs2=A zo%}6Rfd$dM$t9mq=nOcikfe>o*--KC2A2_sF@K8_HU8Tc81{O0SuHUX&bdLQqP*CHd+fC zd65lAuM~zkSQ~M~Zz?cau5M(6b_3>-sv(Pa*n>|PKRBq98HZNA@lpyUtgbxa`j`Cp z#I!py%Qb(5ikLS9GyP7_rRP+}K%%CuU_EHkdV6={tLx;|Zs+-Vp;*+A=B-((I4ePB zih0o;ES+2hwO!knlI+-fOxublXeISg>cHlK_uYrUxNT;WAnK%Hso9zN%jy=PnHL#W z!INzhBu4X73+3c4_p&8LNbC?GJKRrE-(^0G;O8^St*qD}gfr()-)vFa=GMW{+vh@x z@^(zXjiGPEZET;)5{Id0pQ?F$IXwdKhjZIKG&8v3eWWibK@Ky%y;gJ&q%!W&>hJx= zS>1ca%SzWgi>wv4{LBZ41QD*szBDDW3+P8`$tpnPz6X+MzhNX_n620uv!EVe8~S5$ zE+2Z|0Im9=spYp%K?%pOc=rn;fQA9rLE6gK9L;vPSi|ck99+{Kw5L`C5c6Rpx(#$Q z+`jSD@%pX?m4?Kfu z?$cNJl_0_Sny(zSu3HSV1pZ&aynR4fxK|EYDyQz@XYXrZP^)G9ZOt1&YrohIC*!h$ z8u{FfQD_ZU_56FU$bXR8WV?E{)X^TPe*SV@-zLTaxSW>>7cu_))>#lmW~k%>q3~k@ z2|y_iOtwKj2siy!q)h&Ke;_K;jR-5Akwf}@)MpT@e5bSg)_?YP$?;xh?%rFfmZa-R z{A}2V`ossHb$FvIq3CNyGa1$QOcJs{%muF9J(U#8J??C7bW+b2byHMB%-`+deiaW} z;dsj&{d>B*$!Up#xHkgFi(k>`&qDj&uMu6cxC~+QTzSMGj>Rgw8EEqcdn(NsiK#g`uPTVo0X6ifN^`LGzU$G~{{Y#k0L#>x*Ko?-#h#QsS1jEI^teMp`j*Yi<%; zw`Q^m^UN&2AnoBuLhRyH%?X4vsh*P*kZX zLtLSNm$OgOza=Pz%i`)Z>uSLJWx&}CxwR(k*~*nBLm`pR<+I-m+_M7i0wZ^UmRe)e zN|v;%kxxqH3ImeAqy(BvaSb!>d=zxo`!$A*hsrx}WmskKXXy>noF^zys;VQhQP zS0kQ7YN$st&aS(e^pL;^{?mY8i4k^|c+Sq(?_C_HDz?9Mo23n(;NN?tP4H^zKJh*+ zCUknm-!!i($jA@$1ZujAxK|q01_nNxTSjCxY%nJ;E@y>VGyVgAh+! zexDRA9K>4{90#N9L4QlL`WEFDTbLHamdjNGXGXNrQ*@ zUj`I;j*_V+u2;{u_7AA-V$$CDDK};euP&+d2zQtRbt>(i^#w@QL+5G1bvLau`yZ>~ zraBi{(iEOFL5HQfJ0$ON5>UpEgEG^Z@pWk{a$BG|%JET&3QK=bjABA&C& zMU0;Jt=f#+&_}HO6Vwv8AyCElfiFn$TFSBP3xPt*qbUf_@R|MJ{prn|`?KE^fZE=_ z=QY$U6y~8d8@*RY)Ey_}S*CT!iRh|6`?;U62XwoVi4TR1m>mV>*3Pp-lyNjdjecq{ z4hSyyp5LfmUunA<{f$d6%VHGr#B0@wR_PhKp*JD$mDxKxNYoTLk*S*-TC&=;bH}T^ znzsMgI&8y<^jNEeQ!%eFiIM3qimtg@JWw7Z3UZHX3T$;F4V7e|Kc%s z7_Jwv1^jBrXu@1@vKRuh(Txcs8+wMxc^2bt(ad@p**3_jR+Hi;76RPS7jt-~Y=|=1 zFGz>+;2E`k`lufw+aFPuY)poRJ;>Pog&zJtx7 z>7Y4GHv-kE&Nb3UbO@j-XlP)3V^`iN=x%-KcSg`QmfB_gX_nfBb&^tB zg6-dcn4mcOusm)`z5olX5pt8pE0&@wTTMdBJx%p`CYQ~ zB$dfBmy--q5!>%p!Jnvw+sgxor8^vfzrRx&P#|1G?V}j|a72RY>z!{gN(oLd26U8H=;$&x%u{xsze zcMWcl7Z!^0L}< zO}G0LG@q!sCOBQFG zuIN0$Y@q0_s8&7n`k_hg?&y4q<9S4O&}Ht9M6pjee!S6gCS?0na8-O&1oJ-Ny~O*k zNcKh2X2bo&igYGyj)RmyxIupQH>8AP6C9W4afUsKteZAxh0Y2z&1ac1Y(Uldp_=P* zMBf0-7xPQJIydWxrGWr675z^?EfdBV#;(4DI(Kr&aE*sLmumRDL9{x}TXwa6mO8@& zKE)1fW=LB%7H$Z|uD3S?KZ0I_+Ahx(`5UP(xS#*yb~dzgAXQJ=mfRLHIdUB|3$#hF zR4;oka4*&G^j2uQFj3+}bGf^Ka;E51kxYQL)SBQLfLH8{&=u)bk~D#7I1N=Ig5+8P zynuPebB2CKVa7y};}}mP(pt!sLOgDE7}*iJC80ghJJ>tzEtpqux^PMHjmiNP*aY2# z%Y>#d$uWKgfR%Hia9$cPM`{W0Lev$4IJ*_B*F5jjYFMmC+BX9QD^$yXKyTiXTN>@%ms7ubTczg=Ka(o`$d~&gB z+IFV1;$1s5g_A+1cQLaDS~?l4cbn*RHuY)by4t1ay{Fv0>;^>$Wz1f9{u9+{U0ec{yFsI>g*dL@6@pd+B3sgf= zR%(tF8|U$(Af{2yHO@u%LWlZmK9sfoVdKDInZ#)FVi`|y>?l~wVFC?)$IGGBqLR`? zi@;;+S-K(&nb+~LapLg;)6;R;)cbUnagi~nvBgvZrpsD=buf)Ex&?LI#-|{YA;bC` zb(M<53Vvy&QA+8MebZ6bQD7Rca^rI3@^#h6iqeJ71&sx(iq(o&Yg+3+t7EkmH7z#M zwfBu^%T@J!Hm?g48}#$G@jCVEN?s&hRX(*oLGL<{ts*sju%XW84SsG?4wtklaA=#;Tc-%8K%_wCr{x=or9|1{zk5fG zr`|Eq3})irF3*p$O}dny;&J#iJJ^!hR@ySGXRSS7uwAI}9pNM4-|}hl>bi4#!SHc- zZrmBVM?Y%r%^%zkuMTP*tRJoK8to=-E1f#^Ep~HkxRqXF2?XkuYuP*h<5rs;+WKQe7$LZG|HQ%S6S2w&^yd+1J?&w-J zJl9?tT6`?C3s_AN8j=`aO1qB77%bntH*;jMVtIYS{owv!5en0f&Jo9?)F$&zKuc|; zKDBVwe>geASEwmboTE7iD<5ER%yVSlZy%2yUH`?Cnv&kklbx9z?uTGV4Z;*FBjj8irEeK3LX-)<24Y}o70=#>&BvFdOE?<@m5BTMJtUo8!{-qG}2Bf%4()TKW&e;-lE5&FW!WwL{nW#|mf^=srMV zwxX!hRKdwiT2p$k#{qIx6I2u7jr(QsJd_q;9+#cB{SE3~;yAu1e?a^-RxQ|y|yY(ncfe!T8ahlvq9JwwqOzi}~9{!)h08xlZ5PKYKV?9N-+;8zXJ^ zJFeU30X*L>kS~%qXFJq9Ht&4byKp}n+h*HtuYzhIG4RRx+h+$ZJs%`Kj*Q%njb3&~ zDA46jvReiC=1``cj$cOx`SC zttJ<3-ml*uH}|@*+_gR?p4MX?J1^z@B;K!#^$)~n2Fv7PvNZ+7{W^J41vn}9huzC6 zfgo_wlfb)2&w-|9f%LTlUqdBNoPJ5o9jdc|d_tE`22x)`dX0($5+g~agz z1{$gKRD=@bOTk5O|iVS)%~NVM^4M2rWuHnUBstT z83ySWobR1--so5_(P!U{od~q=F_>VH>DS5v+FnA#2?z+C?C%d)Qjzou2nYnsLRsBe z9U#MPWM@NfU~Fe-Lho*4|CJjEh}WI_D`;clY(VI4V{Pli?aoL1PY&*{@ZV?#V#0s2 zI9u@%s{`Z-MeH0+2-)aa=^2UnVF(Ecc^!>SxfMml{=@$D#z$=K>}=1?z~JWQM(@T# zZ|7*nz{JJH#lXnSz|2hdm4nX7!`9irozB*Yg&77#bo8R0QyM z1?UJc=me(;uD8?GLtLl&dat%G@^aJhj>*c(IzFySE3K+}QBmn6kun^1?EZ%cskq_< zsJu*gOt|#_B~Ja21|LLP$iI}33aTnWaXntEQ;%EomxNdNL6iR>$+3Vy$u*8uwo%}} z)E9t;gD~{yvUE zix47LSHC?G!xng)Zxwks6@1-N`Yk|jADx;c&Um`bGdSY z6xxX7b6sJf`?VnvmVsZxSLG$};bA|0%VFO=rEi=mWB88O3oEqeYh|Wrj57e~nCUjF zZbJzsUKY)o9Pb37vz(LK@Z4yUoKQf(Uv3B3C#Ic>$G^ zg(@llHa6n^-G z?R0+;tKQ_GqJ`OOgBXi*OVwh!!9a!p2<$2Q7Cl`6Ta2^WdO;$cqm+T7!IlVsGoScV zaa#_S={(bB?62QbK$miu9QN1@$LN$IUsg&`$P1VN6^h$$^KJseZUP_VPKTd#RtvU> z!4DUFUc0_>s#UraZ$7Vm3^)4)$`+-G!iP#LBhWUQQfV_(c?U$&e;dW}7;t7V7kDF* zv?`P7pO2|RG|+TFSlmXdO=#4IbD%f>wwFe`b795iZ;d({6DSlA_H&P0j8Oyuxs*Sa z5G@6#STn~3?0=f@x{2EQzO*DH!WE31u%V2Rz#Lq9M$!CNcb+D zJX$oaMRM$<9lPG_*F~$_q?lZ-X%zf$oF)5{pN}Dl+j4LsW%6X+!KBk>&9OTabSvkU zy9cxyg~?VJyX}@GX!B?I<_Bqp3MYZ=jIkFa0=^>47&q4QG-n#CN7%HS~h}prt z*+9&uBjGkKp*)!)H{kk@iS%9y7tOe*_uo@#|A%{v4ymCvQ8jO*FT`Ny)Y7Q8xqe;TMLvY6DPuDXyd zPjS1pgX6J;9AISk-5rsIC^`=o_u~9fAb$1Iua^@7p|qZ{c$&z?*!OOLl&i~2@7d`> zcz0>c!l>rG5qBsYmvD|pb0k|@=BF=jSa=+NMb)s&DaS};HEhZ!tS3ML)hd7AMKN>G zQh%d&VCJ+5(xkV53L-WO6|X+426t!xSHe_zFz1(wv3nP`qvb8KLkFlY?@(Qwn3is< zcT)S+NE`FnI#ZpE_(gcFUZ-O;@7ta}*8MQpa-EBpwq49$8#@wua7|U1V*hB-P3ncd zG)~41)z40`?B9y4hEHM22B2ozw?x+{v2*%&qN*5VE^;fApg zO3#9t;C!!?Gz!wKx6OyeXBQSLFG|A!Z*WqB>h;*|h;=4@(d_ots{8sxhIDYDk|NK4 zw+x)O>p3cL`W8g)9D~VUz~T3P4+W)r6euJ zGlaxiK|SBnDQ5B9ro2X_&Uzx}ysWV;&_IOB)X7+PgFbGhvm@;6^R zc^$)G@j3^;6?up|-i{D8ZwT;It&IlU6v7O};gm~7uB2C~gR=(PSL!v^L>=j|1oc&$ z=X&34ue0rsz?;Z0`+~8;w+VZC(*gc`t^np?3#x^s0$@SX*^x$|c6Ywdh*B7=9hNd4 zwt+GVo!ZJ**0iq`mnk!(+#B0|DMWBw_c@M4P@ctpX%Iflb#v#ZmqIkjOWJ6qy5Fhs zkKIk-SxXiA@3vN#+xGgXR-?MxD|{@D3$W>h-Ma_S_79)Ej3+<(ZtNeW6kD9rk8oIA z+F=SsEJbA2^E3oCkVmh8k@yieJKuXA@oVs2YssX>}0pEVNZ|boZbkD3tf)Fm~t=_y0nY+HR zSQ)5Hqb0w>L2LW)-r?Hy_87?uJRU=K`hcSZxeE2LVF|C%`r-dmf)iSuwW<6Qe9vYc6UD%U-G>y22)bGKI^b z1^zrhQRFViRD=-hyew=fb4ZuGd>xU?AV06IzmJ)C+BG zg4Ss&%Uo&cBa)%!L{*}(gzoaQp5M;IxL`8)cC2A}@TA^XnAiiaqlEIbIeloE_I${z z(c#)bZofjV)i^TxtHUc~%u9wcoUnJxuI13dW7jX%Dr=x(GBy0DzT?NfpzU6FCuon7 z{F#yySg=ub7&jbVFDY__stpWWgrJr0?E-d!=5dJ=A|z?0H;)z_pzUHEJ8 zT)$ZuiVcBkH_n0CAC>CLsFJ#b;mYfJzgA-jm(M}hW*M+VA*$$_CI;z}`Rq&OpW!j) z_&b3?9tn7XY5OMTLR}0!jpqeF3KG)qqB@Sz>at|H%LwbLYx-)()9l^q|EtluT5?4| z2QO@DmyddsD%z;NcS8AHWa|Cumi5_Wg?70-Z6_g~Qq=3>7;mrfkRU#nfuFjg>ZHh| z4qJk0oxra5jOi*(Ex|AZ>9Tg^fetbu3AAy3ZmLXn>vf|@m#I{NA0WXnn+GzBK>!F{ zkqfCvQH(fDVS1cPc)Tdt)^b8zZ4wzQJI7k7oakHqQHdlj2s+CnG)_~SClkWTMbr6m zaab^&Cjysg{0?_I9}oO)_mkq&B~;tx*hBGqdFUWZxIiN2lLa!mcuRknIRzp& z_=jc5A7HlW!gYwNB6d}#jEmlo^>82DG^jIc0YEP{2i9rqPBEnuSxMi>ZnT4Mt_RuK z3Tv?!s!8lDB_1=oK4P>mT+6tQ-fMUF$7W?CmcrfT%YP|7YtQ@&$oH9JLZwseUz(1& zXwX_72fmp<+w>zOR?_5;=AzH>d!7$V(-YV&W#xQZu2(y+lpx1Iqf{3J7wZYu-gH^6 z;i$dl4rDk>{NRe4(J~)H&{kHsxJ*{1K*VVf*~;aD0HNp5W;4bxB8L*GU3JP#9 zX>$ZX7)ay1zXg=FmrpAPnAYjQ9=#FS`z0^DC z!=^#sc2!Zs&_nw4E;k#6KGBqMQ%;gV&9pyq5Mz9BQQOjt#Zfr+#&`&>lJk=qYjZB{ zqBFR@!+OBd!{|wTJLBW7a5Vd}#J@^CH?zTVT0Nbksv0~_8Y>rX!i9v(G~Be%`}qD5 zG}t*G!ex$jNuf-+3Q^Jtng?A8M84JB{Nbj9S!&z9Lym!>FanPak&qVB!u_FNAjb4i zyF7POCtI6dPDe*$$Tn1etQrJo=c&1KnHa3{H*`--(T1SNB-by&q(urFh3K}N%(ar> z>D1|Tk7%LvJ1?JT-qLd;KsCVQIqn&GX z^EUR35Y|rCvnn?iZI+B@h(xtoAb*=yVyhJXApV)^Z`b~yXp~1&qG?-kbRM5Q#G~om zC#_xYIX~iPT9}xim{FDgdk?@fgKM|Z3Hj=KU?k1*b~kLt6Lq}(yY)M`89p$%Z-dpP zL5qtyHez1#O1%;dx+=geyW(N^y62e_@3n;etS}&-{iq7=PXH7-cJ!(S+#1&R0wUfk zMR_8CZ3NdX#_(Aey2s>j{H6mb{L!XX`QX{l9|Mj|5qMGrSnvR(IbF+*h5$D;M{hZ$*1VH%h^mU;t_DTNNY|BV7B*Ke zJ<--w#%8$6etdF;A70fnbluw+-mkzht8E@8%5l;g)@RxUF>QqJ#$KIN%q-}H?qvw{ zF<7=~Co*2Apb;}Oq3<2O@wU=mX$PzX*PBjGvZ+WS1_N*w6WeTC=xtZ1M#tPOPJXQ# zbsd1fBermhha3#k)sniL*L$cgn* zr7RA|LJEc4MW|Sze!iMj?Pv(iYs*@%E52-c1GJO9I1y_#F4i%yNwdpSEg=(4;J3mu zKL&9HcBP|f~pPCif?K2l8i6U%>u?Bo1=HwJ+aWPw(XCLbFj`j4KHrGWPjih z+V^M*(j3&PR|zANX>akfce^kcbd_ZGin;pM!cm#I^`2&a_);BjA)c-|?$RLP$>l7Kh6DrXC`T37=o8aIZz5-|NNgr4c; zfDCpzSI3*Jcf#6Dja2dCD#Xi-k6MrQwwYNPuc;Qh&3V!xU4Gd9&DEjg#RhmYB}Oq? z?jqBawSLG95i^Q4X=|$7JM4z6MwlTi^IVzE7d!3ac0hR_c@>S=#42N|R&fHmOwFDQ z@XYN~$&jto&{-`bn2v}o*|M)wO4!)WyKTjEmL%Ttk6+_r9d4s9A)KTnCSgD_dYH}I z4ycYJrx@S`6#UeJ4jreWz_+8W_*y&}%7jXWaW8{-04MH)=P<+wP62i^^XxQ^3C?l3 z5=;e5aAwE>8S%|HEeolx17n|ZI6Q+?2zP$s-li^ZzH0P}1vLdLh` zYy@+jK;H%)UB1A(l*H?)+We813cfu#Hxy!VmV9=5eLw4&(rkDJCdHGr;|izf3YgkDok_+&YUDme+vb+4jHKcAj zp=PsXa%X5tu>TK}vb1YOfSGRX}!@(Gxc?UK^zX{y~ zk${CWnyphzXw+!3n?{Jv>ydtZj)Ch>ecNLoL~AIq&zd_?tcs$q6=}dY`yin-}FnxrY)H|vA6)5`XJ&O$n&L|LmIJIWaD!u$!#>jH%$eP5RJ)9)G75YL|R zm&b{u0fy=UzTEsAqOBJDSw$IA$KYJ4#Rbx!y#U71ZHw!>Sf#GBe0FrhM)#)SK*TYO z(01s2xm3Iid1yIzvO>EPzsL6N_;DP&nRd&5qBuNUx+E1UIFtou2Y_XyQn#Ld&V%cN zBUpTOH(fFj!X+94c@&sV!Tb3J&8k3Vc4{p4ARTH|ZR1U_^TXHj$L#bRxi9P7nGqGA z(l?Z`C!;FpNyIIu7q>h%rE$H(qm+6#wBXZB4-FBa%| zIuy}W7v4&9@~$RpJUZYspqyxiXm#Qqz-o6)`U@646ltcI`s3QenE%k%X4849pRhwG&( z)xrc=-xHzZ=|kP;`9UEB5KxNE+HoAoV;OQUFpBWbA&BFmnL;V4Y8nP+DbRZfyntaQ zQqsPL-j1DLCSpS&JfD|T`QE={&waPkZv5QtnQY$5O!g`19D|>~ zZ;>0JTfIM7VD1e!F{HI9w5+n4yIvv2=hXAL8kYKPak~JkL$At8_YISQgXmU>Ws`px+H0x{`;h2*Sd!-1LU=~-%u)GzJ2*t-gw(g-FLolYZnuu7gt zU6I?0z)Rb)Dl-pr$DVc3er573Rk2WNsH6El;ndDg0xdrZ$u@J8uirH@E$%})Uk8I$ z6CKf6RdbwHXOe%u;0~`UKEu|G=#hZ#W9cATMg9j-L8HLl^>Uq!*AIhpWiKA7o@UED zA&*o(JA)zY0a#7KRgsNeb;tsTIq_aHw=k zYkyLzY29GZrx~$Yvzih^Ln{MA!i~}6Zl5u73rZx42ktxQ<|MpqDZb-WCWNx9HmDHn zo%1v3RIDH@Oi)*v^V?6A-y}i&*s6dDg?j&dx|N&}4)TGrc(hb$r}QhIJ*_R)W5-;z zUvVb5ZG(6mn{TJ`qtm99eEFr`ZqS@yvjl7fllw zVhTc8o#d$7x-2}<;T21QcJu=yQT#@$6F+U-FLm9&Kvz(geqVOFw1IfSL`p}Dzn@XF(A|dJNTU`2<*0DK4Ymg{te8w)z)%66|&ji3*e0A z((se0I`-!zg*Qf%zw5=d*u1y6-%XN69`|de9C;=rL?>dBzw3%W#`j3em|#vcF-o;6 z=OPX4v@j7g({9p07MrUYB-8n=JHCzVCuI7rBiuxpQ7<|$e6F?Ha|jZ0OmZQapSHaR zUenLT87e|LaMc1W>khz0A!w~9FMz~ilMvq-Z_X>&SxHWi6(2fPph-9n@y08?wKkS@ zQ?!SnL=j^2Db{weeEQ89;uRyb?VV=N;k%t>dqIEl@xE3kwVX<(^v>L*@1DDPEwZW; zrTI#WtD7pQd&+W<@cw%mw zGfLPCa`V|U$)h=ZLytEnS_EYW?WFIh38b~w40;cg@D1U47>Kmgp<@L*Xv`DCoSkd^ z9fpoBvn@K@LnxDQqj9r1bjPju>jmf6Vj7E?yph^=^_F(ZbJtbuPk0&BoIB)j zrzbEp{6mm#n@p8+CAu0TWj5~7s#rHO?ckB))RU7CleGe;9nU&6s4detXVuEJ?UH-_ zuEWS=1s_a}^OEYC3w9DTVt{pmr=<-1`DJp*qVbi3x7|JR-FS8 zjYl?_Jx=#8X&hsg09W@>)0_|Nu1TdQMTK%E_lvrTej-b1&z=v7#N|rfpE=~_VMv{d zc&Y2E)B|Y-6Kp4$VV#iU-(l!s;a_!Qs8%+7j;l#O+M0!9V9iKng=ERu(g=KTEB$)k z%n<8qJ#0FSs$8rbj=_9sK%#A%w|M$Uy*5SL>SSLnNW;5cnZ%+Z#(eEyFIwW!V*4LHWh$_XM?Al!n>xzRI)98~?4jg97%C7NLqda34C)~DG zSG%?lBB^D%MLl{_ENLfHn!C#@qO{6qNeFn)@2VAd2;vk{k1Z)1OpoL1t~EA~Y#v42 z$G5JhaD1?u;ZDx@$(5D@T}IuBSUA;*MW&0r0L4s$_+e?} z-|^gh!DOb+t?zjLEW1r$;q9GBGsJ~nURr^PQl3L)@=C6UC&I+V#zZ63cfivsSr+sCn`q($XLl893U16kb^H^K>I)znz5#o3`P#hpuAOjZmWpe<&m!qT8mJ zrvez!mof?trx|k&JW+vBxUYwG`r_%}7+bc+$f%Ye_ie1Z4Ni>br@yP-w_=Bg1Lp^1 z;i$KT+&_nW6f~P@QDtiPdMB4_mFCHWlgLC{f^;3uZ?%9Z(~FJC{-2uV>B<%E4aniQ zuT#xpCKdx)x!M{oFq=eXR%PG<^{|hiLOxcP_~|jZL6`mFof(tL@}bf>X@a}F&X41t zsDndK#J6isu-FfPMV$jLz!$GiU(?rmzJb&Zv3mP7w#DPG122M4< zv`UUfII_9yCiAQ4a(8gO(0Qy3t8x+~dW*rXX?^x4^bI8j*jIm=)rFe~)%y!~3_-a> zKes`UNKTy5hHg$&5{%8GG~05(_pxi-VSIkUSEk$U>Nw>%fQHh6r zvCB!fgS&AKY;gc1QLY>5_XFrl8WvFu6T-U7Xd_WpPeUKr(&5Tzfn>gscLum`dX8{G2c_w){sc!Pi2~>*`fp!WDp(q35%N_$pp7EQgE)VxdiN6hQj{Pu0x8Js|*@-znSbfALK7R zu0LciU}R`{*szfsAObj`Ovh}O>aK+{3)GLkW}3|G*S$ih$Y5rH#tlLs1|;_+V^F>& zm^17$Zx_Y>;lYS^>{UZbZW*a1P#fuaVX$swxQ4_VIQJpYtk)~A>xZv4`CLW`)aUiY z*F2p*8Aki+Y(BI~LpiIYLzci%0a9 z3`9DZON(X(pu~_F1bthi$1Xo*CJTP86E&PDE4#n47l!w8i{eHSIm8gxD%`qUd#=WW zG}LMoM=5bg|DhWsj?nBEe*^ZL1Z99k4o<;c#~p=Um~UGBL4UV*Z7cL_%e_ky9up4> zmupfwM`^?7Qwbm9Qtp7~N<@GKo+hrE6{Oa765F9o&e>nrK-j490&PZoE@gM&3J_{^ zML@GULq#TIT&gB9%L}aY!bwW^wLD6wlc!~2n4;G~u3qfM3znvZ=20hRY*Kh!{(Qf; zsj8tj8}5M9eKray0%SdeBK7B5PeB1^PA2-L+uq3e*LR-(pmEJ;85DSH?7=5U6Wshq@1>f|_K(c2DglI;3cva^S{LP3N5bS!RxZLlXCDw)!a4B|n#hAT&G zKP;C&0I4WSF{6$W=(kwKC#?Ei0AvKiczfH;z4!6U?5q}2okrrY;CXWHaz@@lVBawH zk$d~oEf-3N=kNAM0Kw!5c^dO8&3vlUMB^sqo#q&s>lzDGj)w0CbT`{e3_jcXSN; z(0XbOSBLvo33T^J5l4_ch!my`ap~QUKwdhG~8h)iL--wsK}~|Az^N!7qQy}Nj2|*&Yo_aqCYu6JfKOwHMHQkCI0s?=?|=8 z!3TAeU+%Wt(k1PJgn~7%JD4)_qWqQ0j5m2m38!Sq8NOlPE*&NwK`jN~zk5AgFoCSR z-fTbd*V>H2VwdRg+>vRE=Wjl1EQf|4bXCJ6l#%9q4>EIu3?&rZ^tQ7WeBysM&vA7l zmg-Z1*PS_yozZ64=xz*&Org^CNGE2bhw^e4pd52}TNJ>am7$yhc7F*^&z;U%9B6@h zR*^WDhMTd6>gp}W4xSZu%2R?O#$*cjeqWy?pZvYaWb8La|GPxb@9hEHdr*d6IFF__YnqEogM#6aU5J3rk#};#K9vD?k9br4BXk~vm=Ruqf-r;83JMbQFoIXEU-QS$- zD4Lo)?;NaC$kx7^%H8dSFa;aEfxCEN^qI=H ziHkxjz|RD#|DKrU&324D5NRcusY&k5`4dAR4HCV=&Ky3`HCI*l@1hP z{Mthv@CoNLxp!e+xnlj>UW(9~MzvBh7O~$a)E;D(S2|=Muq&m!-Z7{;&hbx_f2ZcH zWM;X+yRP^1lVl>mx!9@VRTl%VqnsW+F?5 z*SI_4&SfkfgLEY)DG>X1}{d63!jqgLY-D2tN$M;4LqK~xS@A}Nd!3e zYm0*XGsf2>ni`UqI z4+A%2SHg7UrirG!wT@M`cjFZf0`rUbt2Y*g&X=mT@UZ5d>g?%f z(w2*eZvf+hHemPH6|MaBwwdPAps;Q@H|A~83oIA(0A*&ZR*QwqXKtbi)`L(9V#Kt# zA7zXm`e$Httn$NaYH=(T+DHYSTHfJid48K#-YBlmzqVE+H@n`q)zV&8X#qc#dkW0S zx+B`B!AdW0N~bbr2IM!I6CsXWdm;V1dHUz zn^+ZS20CbN@$|_w%aNhyEKhvPBf8+6TkGc%{E{Cg0y6-bapCF{P^%;iMNJ+qT-Ncj z{d3$w2rTkdvv%o^jB_&jkBHN&2!b9&Qq_}U-vLP)(qF%Ooi0bfTK5%9@HaNH+A%~eKXCrrsuckAX zmdYhYb;dK~DO`SONHp9Lg!+mw91Xnn?7PoxT?%s55~k(o0PF+o0FjW$Pm6E@-8FXw zI+xU1)JeGhf8P-`3!dZaLJ4GBRx$nuD}vQkzn^gNjJzFsCOF^ukrcry zw9Cn3{_Yh;(5EJaA8rx#i4|3ot_j4WqtAY?HH>FizQ&1rU5zdJgxUjL^6F^0@RL?qS1Om&{NMVT;ra5SK?qYC!O_y zk=ay%sizu7m>FSYwHXWMwMXnZ9$h>dR&(?eNZHE{)*X#AVkA>Cdue?@rCA5+BMT=za> z&rVs~6pL*TM=ZH1f1H}maAF`m0O}|p=|+jCDN&YNA!q&-sfU2}_#KKa-ICikaQ)K# zvhx>TYr2G@-NZ?u9Dt(P-SiOm z{XI+ppUOM{D@;+{Hv}ODKf7rFrdj6{-LY>T0|&sJ$;+|9UbpM@b?Rq!GGA$d9P*jV zPAvdO#lwv|%%*V@qvTCmL)L{XAK#F)T#I^3Iz=*LZ%=oGI%oT*;<7NO+|K9pwzNBf z?0P2=_p_(%1@pGo4ZD+9Jjkzz$`Rxol?W?JJ-ks36BiqOKMfY0ZK%iG*}RX}D4#z~ zKe?ja+cu8@j5`hiEElXAuLtb%vZEsA!yGh^i6(w%3vI`Ix?b)mixx(%BfuFH%mlyw}p-pyXkdHkaLG>rB|>SU&+m1NT5Q?K@vjNwp@F~mbE!7TP-Rt&;1~ef(w2Ader-qL zvtIr3Hv{Wbye9p+X<_3b;9-m3@rk}`e*5vGi|D7)q7Sc8MLy^AX?5$+P}DMZO`Rl4 zN@vZvjIDJ2IuA98dzfBGqO9Z%)~B*= zzF)>GUyd^nZrjzugrL>vR3zAlS^+S_^&fwOPUN57r$G`6_TELjfe}1hQuj%gClcJ) zmtezwij)i&5ZG~J0Olf@>d6L)edK}1Woc3uxM?FFoMv7jETt{w2Smsr@7_utH1>tY zNGLQ$a>ob;yVNwjRgLl+fvOesLbsBxR}WxL6-hp83O)Ja)Gfz z9bmctAlxmy*V@T5U@6j^FUN+&q;f^ljq3S!O_CnJ);}#@@Md2XAX(68nDb7#!oF_f z0ux_OGV_o&m1YhtV*ql9e+5afEs&VB2{XN(Ez#W4ymX%?=%DY&=Z&b|)la=tOYZJIv6q6!s1#lfsqvGJ&gn5!#hsI5q<1ODY5K zV%Pz$-Dcek#No}12YBiu_Oy4gjjr)W9+|G}Su7c89U*wIcu!zjb|Tuwcb1}t7Vfz_ zR6x1-WcZ*vBSj9MxFDVqH;EF_I9z`brve^GIcq$CIE$ty zRX7K1ikjN)txBU!wNjTsRO)<&nUgbVr;@Afb)e7PZ1Wcv$jI(R^Lo=?R3jGdkg@~| zY#@Z~?+3-SLVRDt*ZPdGz_#P60AR_!`h2}gwqeBYdUP6J0MaiAX%MJEAMjN~kmNXB z0CufDxk-es??bLStI6s=pl#f%eZeJR?2?&i7$6EOR0Ua&Ec?K_bC(t&hCLVErR#rS zsIj01-z-{zyiNTLO|7W3sTok;^#?_Qws@Hp1Af}mr>vBI zZkM;}QhX$XMxn5l^Zbyaz@*N64 z0um|SJ>2w!M?ne5{2|zxxSOg`Y=fyqjLrh8`ONEmU%2iPDZfj?Oy71rhm*lzbZ={% zrm)uWw4-4+A`_HcS2$<|S&~w?GM$6nFTCBhPKU;lXdIBw*j>qS$Jj$c;QMA01BDZN z01;PM-pmcnuozgrp$$LXU^ZF%j~Sp+Ko!1O&QgLdCM_?th*2U-4mpaELR91~*L45De`cdi zah)G5e`vz*3B&h`Cc55&Ta(NqNYwGUA3;6aj<6<%@hmr5N?{l@wLIKZMeH1zI!?C^ znl%3f^V34s1%WbQ%uEnUbidD$xTPnE+I4-_j{Rzr_!eO6<|~^n=YKtqRwzvTuB)k% zSE`C~O_Q9?ir4g|;aB5V!VSxa`w@=5c*x1T&TjLC2}WdtL?$jc#!K79#!a*Y zGcHbCO$7l#g)Jm@P?aJJ;kiMjqh1jMcftY8$X&~xz$hjnl7^D~a}OfGcwewLxSg!21*{7|2s58siX5d8)QxjC*<>$N@!NX!Z>_^PAd%?{ zvVe(1X@1feePsGfd*?x8%!9odkAh?gA(MV!FG#Zqx5^x&CaR*j=gg<)Z`be*{&gk~ zSDaj~LpU4Epnd~tp3ZOc(qu~pTERocLZEkPnswc&pLPrtfjEab|IsjWECBawsBm9d zOOR{a%^dSxb^BNKDcm7;C-Ea&laF#X9pecSui$Q80b|@w{r~^~ literal 0 HcmV?d00001 diff --git a/src/assets/img/instadapp/logotext.png b/src/assets/img/instadapp/logotext.png new file mode 100644 index 0000000000000000000000000000000000000000..d42131852bb6c316ebe1dd2945b588efb6f6f33e GIT binary patch literal 59125 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 Wj9>jORBp@$@Uk>Nbu7>HGU31P*#YqY literal 0 HcmV?d00001 diff --git a/src/assets/img/logos/compound.png b/src/assets/img/logos/compound.png new file mode 100644 index 0000000000000000000000000000000000000000..c8af867388de30b553a097cf0b97d50e28d94a8a GIT binary patch literal 5684 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 Uek0*r;17=p6mD2_)&B860T{MndH?_b literal 0 HcmV?d00001 diff --git a/src/assets/img/logos/logo.png b/src/assets/img/logos/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd6d68e99083d57f9889abad3aa63a54aaa91bf GIT binary patch literal 13873 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