From be3340d00e0a91fc1de2d948c30bc95308c73a9f Mon Sep 17 00:00:00 2001
From: Fabian Vogelsteller
Date: Wed, 12 Jul 2017 12:34:53 +0200
Subject: [PATCH 001/150] fixes batch requests on isolated preloaders
---
modules/preloader/browser.js | 59 +++-
.../preloader/injected/EthereumProvider.js | 2 +-
package.json | 1 +
yarn.lock | 326 ++++++++++--------
4 files changed, 219 insertions(+), 169 deletions(-)
diff --git a/modules/preloader/browser.js b/modules/preloader/browser.js
index 9974e5ca9..39f02cb36 100644
--- a/modules/preloader/browser.js
+++ b/modules/preloader/browser.js
@@ -1,6 +1,7 @@
/**
@module preloader browser
*/
+const _ = require('underscore');
require('./include/common')('browser');
const { ipcRenderer, webFrame, remote } = require('electron');
const mist = require('./include/mistAPI.js');
@@ -19,9 +20,29 @@ Object.defineProperty(navigator, 'language', {
// notifiy the tab to store the webview id
ipcRenderer.sendToHost('setWebviewId');
+const isValidJsonRpc = function (message) {
+ return !!(Object.prototype.hasOwnProperty.call(message, 'method') ||
+ Object.prototype.hasOwnProperty.call(message, 'id') ||
+ Object.prototype.hasOwnProperty.call(message, 'params') ||
+ Object.prototype.hasOwnProperty.call(message, 'jsonrpc'));
+};
+
+const sanatizeJsonRpc = function (message) {
+ // sanitize
+ return {
+ jsonrpc: message.jsonrpc,
+ id: message.id,
+ method: message.method,
+ params: message.params
+ };
+};
+
// Wait for post messages
window.addEventListener('message', function message(event) {
- var data;
+
+
+
+ let data;
try {
data = JSON.parse(event.data);
} catch(e){
@@ -29,31 +50,39 @@ window.addEventListener('message', function message(event) {
}
+
if (typeof data !== 'object') {
return;
}
+
// EthereumProvider: connect
if (data.type === 'create') {
ipcRenderer.send('ipcProvider-create');
// EthereumProvider: write
} else if (data.type === 'write') {
+ let messageIsArray = _.isArray(data.message);
+
// only accept valid JSON rpc requests
- if(!Object.prototype.hasOwnProperty.call(data.message, 'method') ||
- !Object.prototype.hasOwnProperty.call(data.message, 'id') ||
- !Object.prototype.hasOwnProperty.call(data.message, 'params') ||
- !Object.prototype.hasOwnProperty.call(data.message, 'jsonrpc')) {
- return;
+ if (messageIsArray) {
+ for (let i = 0; i < data.message.length; i++) {
+ if (isValidJsonRpc(data.message[i])) {
+ data.message[i] = sanatizeJsonRpc(data.message[i]);
+ } else {
+ return;
+ }
+ }
+ } else {
+ if (isValidJsonRpc(data.message)) {
+ data.message = sanatizeJsonRpc(data.message);
+ } else {
+ return;
+ }
}
// make sure we only send allowed properties
- ipcRenderer.send('ipcProvider-write', JSON.stringify({
- jsonrpc: data.message.jsonrpc,
- id: data.message.id,
- method: data.message.method,
- params: data.message.params
- }));
+ ipcRenderer.send('ipcProvider-write', JSON.stringify(data.message));
// mistAPI
} else if (/^mistAPI_[a-z]/i.test(data.type)) {
@@ -64,12 +93,10 @@ window.addEventListener('message', function message(event) {
ipcRenderer.sendToHost(data.type, data.message);
}
}
-
-
});
-var postMessage = function(payload) {
- if(typeof payload === 'object') {
+const postMessage = function (payload) {
+ if (typeof payload === 'object') {
payload = JSON.stringify(payload);
}
diff --git a/modules/preloader/injected/EthereumProvider.js b/modules/preloader/injected/EthereumProvider.js
index 826ed66be..a1f87f101 100644
--- a/modules/preloader/injected/EthereumProvider.js
+++ b/modules/preloader/injected/EthereumProvider.js
@@ -36,7 +36,7 @@
}
- if(typeof data !== 'object' || (data.message && !Object.prototype.hasOwnProperty.call(data.message, 'jsonrpc'))) {
+ if(typeof data !== 'object' || (data.message && (!Object.prototype.hasOwnProperty.call(data.message, 'jsonrpc') && !Object.prototype.hasOwnProperty.call(data.message[0], 'jsonrpc')))) {
return;
}
diff --git a/package.json b/package.json
index ff2c72228..b04b6cda7 100644
--- a/package.json
+++ b/package.json
@@ -20,6 +20,7 @@
"ethereum-client-binaries": "^1.6.1",
"ethereum-keyfile-recognizer": "^1.0.2",
"ethereumjs-abi": "^0.6.3",
+ "global": "^4.3.2",
"got": "^6.7.1",
"i18next": "^7.1.3",
"lodash": "^4.17.4",
diff --git a/yarn.lock b/yarn.lock
index a08d3db0a..f0bbde03e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1,5 +1,7 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
+
+
"7zip-bin-linux@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/7zip-bin-linux/-/7zip-bin-linux-1.1.0.tgz#2ca309fd6a2102e18bd81e3a5d91b39db9adab71"
@@ -187,32 +189,32 @@ asn1@~0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
assert-plus@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
-assert-plus@^1.0.0, assert-plus@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-
assertion-error@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
-async@^0.9.0:
- version "0.9.2"
- resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
-
-async@^1.4.0, async@1.x:
+async@1.x, async@^1.4.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-async@^2.0.0, async@>=0.1.0:
+async@>=0.1.0, async@^2.0.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
dependencies:
lodash "^4.14.0"
+async@^0.9.0:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -565,7 +567,7 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
dependencies:
delayed-stream "~1.0.0"
-commander@^2.9.0, commander@2.9.0:
+commander@2.9.0, commander@^2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
dependencies:
@@ -588,7 +590,7 @@ concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-concat-stream@^1.5.2, concat-stream@1.6.0:
+concat-stream@1.6.0, concat-stream@^1.5.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
dependencies:
@@ -626,10 +628,6 @@ core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-crc@^3.4.4:
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
-
crc32-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4"
@@ -637,6 +635,10 @@ crc32-stream@^2.0.0:
crc "^3.4.4"
readable-stream "^2.0.0"
+crc@^3.4.4:
+ version "3.4.4"
+ resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
+
create-error-class@^3.0.0, create-error-class@^3.0.1:
version "3.0.2"
resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
@@ -729,16 +731,6 @@ dateformat@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
-debug@^0.7.2:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
-
-debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.6.0, debug@^2.6.8:
- version "2.6.8"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
- dependencies:
- ms "2.0.0"
-
debug@2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
@@ -751,6 +743,16 @@ debug@2.6.0:
dependencies:
ms "0.7.2"
+debug@^0.7.2:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
+
+debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.6.0, debug@^2.6.8:
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+ dependencies:
+ ms "2.0.0"
+
decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -821,20 +823,24 @@ diff@3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
-doctrine@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
+doctrine@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
dependencies:
esutils "^2.0.2"
isarray "^1.0.0"
-doctrine@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+doctrine@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
dependencies:
esutils "^2.0.2"
isarray "^1.0.0"
+dom-walk@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
+
dot-prop@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177"
@@ -849,18 +855,18 @@ drbg.js@^1.0.1:
create-hash "^1.1.2"
create-hmac "^1.1.4"
-duplexer2@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
- dependencies:
- readable-stream "^2.0.2"
-
duplexer2@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
dependencies:
readable-stream "~1.1.9"
+duplexer2@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
+ dependencies:
+ readable-stream "^2.0.2"
+
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@@ -888,7 +894,7 @@ electron-builder-core@11.2.1:
version "11.2.1"
resolved "https://registry.yarnpkg.com/electron-builder-core/-/electron-builder-core-11.2.1.tgz#1dca8c1a1cee8b51750b7708a04913aeffacf8a8"
-electron-builder-http@~12.3.0, electron-builder-http@12.3.0:
+electron-builder-http@12.3.0, electron-builder-http@~12.3.0:
version "12.3.0"
resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-12.3.0.tgz#5a75e3683e4c1a8ef093f353d3298342c875d2c0"
dependencies:
@@ -1040,7 +1046,7 @@ es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
es6-iterator "2"
es6-symbol "~3.1"
-es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@2:
+es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512"
dependencies:
@@ -1073,7 +1079,7 @@ es6-set@~0.1.5:
es6-symbol "3.1.1"
event-emitter "~0.3.5"
-es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1, es6-symbol@3.1.1:
+es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
dependencies:
@@ -1089,7 +1095,7 @@ es6-weak-map@^2.0.1:
es6-iterator "^2.0.1"
es6-symbol "^3.1.1"
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@1.0.5:
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@@ -1193,7 +1199,7 @@ espree@^3.4.0:
acorn "^5.0.1"
acorn-jsx "^3.0.0"
-esprima@^2.7.1, esprima@2.7.x:
+esprima@2.7.x, esprima@^2.7.1:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
@@ -1632,6 +1638,23 @@ glob-watcher@^0.0.6:
dependencies:
gaze "^0.5.1"
+glob2base@^0.0.12:
+ version "0.0.12"
+ resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56"
+ dependencies:
+ find-index "^0.1.1"
+
+glob@7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.2"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
glob@^4.3.1:
version "4.5.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f"
@@ -1670,23 +1693,6 @@ glob@~3.1.21:
inherits "1"
minimatch "~0.2.11"
-glob@7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob2base@^0.0.12:
- version "0.0.12"
- resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56"
- dependencies:
- find-index "^0.1.1"
-
global-modules@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
@@ -1703,6 +1709,13 @@ global-prefix@^0.1.4:
is-windows "^0.2.0"
which "^1.2.12"
+global@^4.3.2:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
+ dependencies:
+ min-document "^2.19.0"
+ process "~0.5.1"
+
globals@^9.14.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@@ -1993,14 +2006,14 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
inherits@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
+inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
ini@^1.3.4, ini@~1.3.0:
version "1.3.4"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
@@ -2229,14 +2242,14 @@ is-windows@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
-isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
isbinaryfile@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
@@ -2286,7 +2299,7 @@ js-tokens@^3.0.0:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-js-yaml@^3.5.1, js-yaml@^3.7.0, js-yaml@3.x:
+js-yaml@3.x, js-yaml@^3.5.1, js-yaml@^3.7.0:
version "3.8.4"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6"
dependencies:
@@ -2315,7 +2328,7 @@ json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-json-structure-diff@^0.0.2, json-structure-diff@0.0.2:
+json-structure-diff@0.0.2, json-structure-diff@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/json-structure-diff/-/json-structure-diff-0.0.2.tgz#838277f5c0a9562981b9a2af86fe5e90c131b0b3"
@@ -2617,6 +2630,10 @@ lowercase-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
+lru-cache@2:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
+
lru-cache@^4.0.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
@@ -2624,10 +2641,6 @@ lru-cache@^4.0.1:
pseudomap "^1.0.2"
yallist "^2.1.2"
-lru-cache@2:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
-
macaddress@^0.2.7:
version "0.2.8"
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
@@ -2708,6 +2721,12 @@ mimic-fn@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
+min-document@^2.19.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
+ dependencies:
+ dom-walk "^0.1.0"
+
minimalistic-assert@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
@@ -2716,18 +2735,18 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
minimatch@^2.0.1:
version "2.0.10"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
dependencies:
brace-expansion "^1.0.0"
-minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2, "minimatch@2 || 3":
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- dependencies:
- brace-expansion "^1.1.7"
-
minimatch@~0.2.11:
version "0.2.14"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
@@ -2735,6 +2754,10 @@ minimatch@~0.2.11:
lru-cache "2"
sigmund "~1.0.0"
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
@@ -2743,10 +2766,6 @@ minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
minimongo-standalone@^1.1.0-3:
version "1.1.0-3"
resolved "https://registry.yarnpkg.com/minimongo-standalone/-/minimongo-standalone-1.1.0-3.tgz#cfdb3d0136811bab7fb92f6c13e0c74bd64dd5bd"
@@ -2754,7 +2773,7 @@ minimongo-standalone@^1.1.0-3:
async ">=0.1.0"
underscore ">=1.0.0"
-mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@0.5, mkdirp@0.5.1, mkdirp@0.5.x:
+mkdirp@0.5, mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
@@ -2947,7 +2966,7 @@ oboe@^2.1.3:
dependencies:
http-https "^1.0.0"
-once@^1.3.0, once@^1.3.1, once@^1.4.0, once@1.x:
+once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
@@ -3212,6 +3231,10 @@ process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
+process@~0.5.1:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
+
progress-stream@^1.1.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77"
@@ -3250,14 +3273,14 @@ pump@^1.0.0, pump@^1.0.1:
end-of-stream "^1.1.0"
once "^1.3.1"
-punycode@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-
punycode@1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
q@~1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
@@ -3323,6 +3346,15 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
+"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.0, readable-stream@~1.0.31:
+ version "1.0.34"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.1"
+ isarray "0.0.1"
+ string_decoder "~0.10.x"
+
readable-stream@^1.1.7, readable-stream@~1.1.9:
version "1.1.14"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
@@ -3344,15 +3376,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
-"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.0, readable-stream@~1.0.31:
- version "1.0.34"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
readline2@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
@@ -3485,16 +3508,16 @@ resolve-url@~0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+resolve@1.1.x:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0:
version "1.3.3"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
dependencies:
path-parse "^1.0.5"
-resolve@1.1.x:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-
restore-cursor@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
@@ -3519,7 +3542,7 @@ right-align@^0.1.1:
dependencies:
align-text "^0.1.1"
-rimraf@^2.2.8, rimraf@2:
+rimraf@2, rimraf@^2.2.8:
version "2.6.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
dependencies:
@@ -3605,14 +3628,14 @@ semver-diff@^2.0.0:
dependencies:
semver "^5.0.3"
+"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+
semver@^4.1.0:
version "4.3.6"
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
-semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, "semver@2 || 3 || 4 || 5":
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
-
sequencify@~0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c"
@@ -3819,16 +3842,6 @@ streamroller@^0.4.0:
mkdirp "^0.5.1"
readable-stream "^1.1.7"
-string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-
-string_decoder@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
- dependencies:
- safe-buffer "~5.1.0"
-
string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
@@ -3848,6 +3861,16 @@ string.prototype.codepointat@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78"
+string_decoder@~0.10.x:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+
+string_decoder@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+ dependencies:
+ safe-buffer "~5.1.0"
+
stringstream@~0.0.4:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@@ -3904,6 +3927,12 @@ sumchecker@^2.0.1:
dependencies:
debug "^2.2.0"
+supports-color@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
+ dependencies:
+ has-flag "^1.0.0"
+
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
@@ -3914,12 +3943,6 @@ supports-color@^3.1.0, supports-color@~3.2.3:
dependencies:
has-flag "^1.0.0"
-supports-color@3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
- dependencies:
- has-flag "^1.0.0"
-
table@^3.7.8:
version "3.8.3"
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
@@ -3957,10 +3980,6 @@ throttleit@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf"
-through@^2.3.6, through@~2.3.4, through@2:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-
through2@^0.6.1:
version "0.6.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
@@ -3982,6 +4001,10 @@ through2@~0.2.3:
readable-stream "~1.1.9"
xtend "~2.1.1"
+through@2, through@^2.3.6, through@~2.3.4:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+
tildify@^1.0.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
@@ -4000,12 +4023,6 @@ timed-out@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
-tmp@^0.0.31:
- version "0.0.31"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
- dependencies:
- os-tmpdir "~1.0.1"
-
tmp@0.0.28:
version "0.0.28"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120"
@@ -4018,6 +4035,12 @@ tmp@0.0.29:
dependencies:
os-tmpdir "~1.0.1"
+tmp@^0.0.31:
+ version "0.0.31"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
+ dependencies:
+ os-tmpdir "~1.0.1"
+
tough-cookie@~2.3.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
@@ -4062,14 +4085,14 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
-type-detect@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
-
type-detect@0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
+type-detect@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -4099,7 +4122,7 @@ underscore-deep-extend@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/underscore-deep-extend/-/underscore-deep-extend-1.1.5.tgz#962ba1f8b3bb2e2afd182ed86f2e5275543c52bd"
-underscore@^1.8.3, underscore@>=1.0.0:
+underscore@>=1.0.0, underscore@^1.8.3:
version "1.8.3"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
@@ -4311,13 +4334,17 @@ widest-line@^1.0.0:
dependencies:
string-width "^1.0.1"
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
window-size@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
wordwrap@^1.0.0, wordwrap@~1.0.0:
version "1.0.0"
@@ -4327,10 +4354,6 @@ wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
@@ -4373,16 +4396,16 @@ xml2js@^0.4.17:
sax ">=0.6.0"
xmlbuilder "^4.1.0"
+xmlbuilder@8.2.2:
+ version "8.2.2"
+ resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
+
xmlbuilder@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5"
dependencies:
lodash "^4.0.0"
-xmlbuilder@8.2.2:
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
-
xmldom@0.1.x:
version "0.1.27"
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
@@ -4391,7 +4414,7 @@ xmlhttprequest@*:
version "1.8.0"
resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
-xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.1, xtend@4.0.1:
+xtend@4.0.1, "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
@@ -4506,4 +4529,3 @@ zip-stream@^1.1.0:
compress-commons "^1.2.0"
lodash "^4.8.0"
readable-stream "^2.0.0"
-
From 1ef44a7c312e11e604805c362238ac6feb5790df Mon Sep 17 00:00:00 2001
From: Fabian Vogelsteller
Date: Sun, 16 Jul 2017 12:20:08 +0200
Subject: [PATCH 002/150] trigger travis
---
modules/preloader/walletMain.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/preloader/walletMain.js b/modules/preloader/walletMain.js
index a1b571c27..51e2affe0 100644
--- a/modules/preloader/walletMain.js
+++ b/modules/preloader/walletMain.js
@@ -13,6 +13,7 @@ const web3Admin = require('../web3Admin.js');
webFrame.executeJavaScript("window.mistMode = 'wallet';");
+
// add admin later
setTimeout(() => {
web3Admin.extend(window.web3);
From 280cdd993289e498b859902f32a1b81e52d30757 Mon Sep 17 00:00:00 2001
From: Marc Garreau
Date: Fri, 15 Sep 2017 10:33:42 -0600
Subject: [PATCH 003/150] Introduces Redux store
---
main.js | 27 ++-
modules/core/rootReducer.js | 6 +
modules/core/store.js | 16 ++
modules/core/ui/actions.js | 7 +
modules/core/ui/reducer.js | 32 +++
package.json | 6 +-
yarn.lock | 374 ++++++++++++++++++++++++------------
7 files changed, 339 insertions(+), 129 deletions(-)
create mode 100644 modules/core/rootReducer.js
create mode 100644 modules/core/store.js
create mode 100644 modules/core/ui/actions.js
create mode 100644 modules/core/ui/reducer.js
diff --git a/main.js b/main.js
index 095c952c0..2ada9cc58 100644
--- a/main.js
+++ b/main.js
@@ -12,6 +12,11 @@ const Settings = require('./modules/settings');
const Q = require('bluebird');
const windowStateKeeper = require('electron-window-state');
+
+import configureReduxStore from './modules/core/store';
+import { createSplashWindow, quitApp } from './modules/core/ui/actions';
+
+
Q.config({
cancellation: true,
});
@@ -96,13 +101,13 @@ if (Settings.uiMode === 'wallet') {
// prevent crashed and close gracefully
process.on('uncaughtException', (error) => {
log.error('UNCAUGHT EXCEPTION', error);
- app.quit();
+ store.dispatch(quitApp());
});
// Quit when all windows are closed.
app.on('window-all-closed', () => {
- app.quit();
+ store.dispatch(quitApp());
});
// Listen to custom protocole incoming messages, needs registering of URL schemes
@@ -132,7 +137,7 @@ app.on('before-quit', (event) => {
killedSocketsAndNodes = true;
await db.close();
- app.quit();
+ store.dispatch(quitApp());
}, 500);
} else {
log.info('About to quit...');
@@ -147,7 +152,9 @@ let startMainWindow;
// This method will be called when Electron has done everything
// initialization and ready for creating browser windows.
-app.on('ready', () => {
+app.on('ready', async () => {
+ global.store = await configureReduxStore();
+
// if using HTTP RPC then inform user
if (Settings.rpcMode === 'http') {
dialog.showErrorBox('Insecure RPC connection', `
@@ -162,7 +169,7 @@ Only do this if you have secured your HTTP connection or you know what you are d
// initialise the db
global.db.init().then(onReady).catch((err) => {
log.error(err);
- app.quit();
+ store.dispatch(quitApp());
});
});
@@ -252,6 +259,10 @@ onReady = () => {
defaultWindow.manage(mainWindow.window);
if (!Settings.inAutoTestMode) {
+
+ // TODO: SPLASH_WINDOW::CREATE
+ store.dispatch(createSplashWindow(Settings.uiMode));
+
splashWindow = Windows.create('splash', {
primary: true,
url: `${global.interfacePopupsUrl}#splashScreen_${Settings.uiMode}`,
@@ -365,7 +376,7 @@ onReady = () => {
detail: global.i18n.t('mist.errors.legacyChain.description')
}, () => {
shell.openExternal('https://github.com/ethereum/mist/releases');
- app.quit();
+ store.dispatch(quitApp());
});
throw new Error('Cant start client due to legacy non-Fork setting.');
@@ -413,7 +424,7 @@ onReady = () => {
});
onboardingWindow.on('closed', () => {
- app.quit();
+ store.dispatch(quitApp());
});
// change network types (mainnet, testnet)
@@ -502,7 +513,7 @@ startMainWindow = () => {
// close app, when the main window is closed
mainWindow.on('closed', () => {
- app.quit();
+ store.dispatch(quitApp());
});
// observe Tabs for changes and refresh menu
diff --git a/modules/core/rootReducer.js b/modules/core/rootReducer.js
new file mode 100644
index 000000000..19d89e757
--- /dev/null
+++ b/modules/core/rootReducer.js
@@ -0,0 +1,6 @@
+import { combineReducers } from 'redux';
+import ui from './ui/reducer';
+
+export default combineReducers({
+ ui,
+});
diff --git a/modules/core/store.js b/modules/core/store.js
new file mode 100644
index 000000000..1ddc5e469
--- /dev/null
+++ b/modules/core/store.js
@@ -0,0 +1,16 @@
+import { createStore } from 'redux';
+import { app } from 'electron';
+import devToolsEnhancer from 'remote-redux-devtools';
+import rootReducer from './rootReducer';
+
+export default async function configureReduxStore() {
+ const store = createStore(rootReducer, devToolsEnhancer());
+
+ store.subscribe(() => {
+ const state = store.getState();
+
+ if (state.ui.appQuit) return app.quit();
+ });
+
+ return store;
+}
diff --git a/modules/core/ui/actions.js b/modules/core/ui/actions.js
new file mode 100644
index 000000000..b128d0c01
--- /dev/null
+++ b/modules/core/ui/actions.js
@@ -0,0 +1,7 @@
+export function createSplashWindow(uiMode) {
+ return { type: 'SPLASH_WINDOW::CREATE', payload: { uiMode } };
+}
+
+export function quitApp() {
+ return { type: 'APP::QUIT' };
+}
diff --git a/modules/core/ui/reducer.js b/modules/core/ui/reducer.js
new file mode 100644
index 000000000..821defd98
--- /dev/null
+++ b/modules/core/ui/reducer.js
@@ -0,0 +1,32 @@
+const initialState = {
+ appQuit: false,
+ splashWindowCreated: false,
+ splashWindowVisible: false,
+ uiMode: '',
+};
+
+const ui = (state = initialState, action) => {
+ switch (action.type) {
+ case 'SPLASH_WINDOW::CREATE':
+ return Object.assign({}, state, {
+ created: true,
+ uiMode: action.payload.uiMode
+ });
+ case 'SPLASH_WINDOW::SHOW':
+ return Object.assign({}, state, {
+ splashWindowVisible: true
+ });
+ case 'SPLASH_WINDOW::HIDE':
+ return Object.assign({}, state, {
+ splashWindowVisible: true
+ });
+ case 'APP::QUIT':
+ return Object.assign({}, state, {
+ appQuit: true
+ });
+ default:
+ return state;
+ }
+}
+
+export default ui;
diff --git a/package.json b/package.json
index 93406aa0c..987b75e3a 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,8 @@
"scripts": {
"postinstall": "cd interface && yarn",
"dev:electron": "electron -r babel-register main.js",
- "dev:meteor": "cd interface && meteor --no-release-check"
+ "dev:meteor": "cd interface && meteor --no-release-check",
+ "dev:tools": "open http://remotedev.io/local/"
},
"main": "main.js",
"dependencies": {
@@ -33,6 +34,7 @@
"numeral": "^2.0.6",
"oboe": "^2.1.3",
"os-timesync": "^1.0.7",
+ "redux": "^3.7.2",
"semver": "^5.1.0",
"solc": "^0.4.15",
"swarm-js": "^0.1.21",
@@ -65,6 +67,8 @@
"json-structure-diff": "^0.0.2",
"minimist": "^1.2.0",
"mocha": "^3.2.0",
+ "redux-devtools-extension": "^2.13.2",
+ "remote-redux-devtools": "^0.5.12",
"require-dir": "^0.3.2",
"run-sequence": "^1.2.1",
"semver-compare": "^1.0.0",
diff --git a/yarn.lock b/yarn.lock
index 8c49e7ce9..6523c2b40 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10,17 +10,17 @@
version "1.0.1"
resolved "https://registry.yarnpkg.com/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz#3e68778bbf0926adc68159427074505d47555c02"
-"7zip-bin-win@^2.1.0":
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.0.tgz#ce632da797ec282c5d2a8d07b60e8df7ca7f164d"
+"7zip-bin-win@^2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz#8acfc28bb34e53a9476b46ae85a97418e6035c20"
"7zip-bin@^2.0.4":
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.2.3.tgz#a249cad6c22f8289495741f5d9ea22368af1e078"
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.2.4.tgz#5d0a7da759258b7fa59121fddcec7cb65938a85c"
optionalDependencies:
"7zip-bin-linux" "^1.1.0"
"7zip-bin-mac" "^1.0.1"
- "7zip-bin-win" "^2.1.0"
+ "7zip-bin-win" "^2.1.1"
"@types/node@^7.0.18":
version "7.0.43"
@@ -59,8 +59,8 @@ ajv@^4.7.0, ajv@^4.9.1:
json-stable-stringify "^1.0.1"
ajv@^5.1.0:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39"
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2"
dependencies:
co "^4.6.0"
fast-deep-equal "^1.0.0"
@@ -104,8 +104,8 @@ any-promise@^1.0.0, any-promise@^1.3.0:
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
aproba@^1.0.3:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
archiver-utils@^1.3.0:
version "1.3.0"
@@ -223,6 +223,10 @@ assertion-error@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
+async-limiter@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
+
async@>=0.1.0, async@^2.0.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
@@ -514,6 +518,10 @@ balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+base-64@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
+
base64-js@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
@@ -537,8 +545,8 @@ beeper@^1.0.0:
resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
bignumber.js@^4.0.1:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.0.4.tgz#7c40f5abcd2d6623ab7b99682ee7db81b11889a4"
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz#db6f14067c140bd46624815a7916c92d9b6c24b1"
"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2":
version "2.0.7"
@@ -592,12 +600,12 @@ bn.js@^4.10.0, bn.js@^4.11.3, bn.js@^4.11.6, bn.js@^4.4.0, bn.js@^4.8.0:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
body-parser@^1.16.0:
- version "1.18.1"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.1.tgz#9c1629370bcfd42917f30641a2dcbe2ec50d4c26"
+ version "1.18.2"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
dependencies:
bytes "3.0.0"
content-type "~1.0.4"
- debug "2.6.8"
+ debug "2.6.9"
depd "~1.1.1"
http-errors "~1.6.2"
iconv-lite "0.4.19"
@@ -859,6 +867,10 @@ clone-stats@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
+clone@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
+
clone@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"
@@ -922,6 +934,10 @@ compare-version@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080"
+component-emitter@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe"
+
compress-commons@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.0.tgz#58587092ef20d37cb58baf000112c9278ff73b9f"
@@ -1008,8 +1024,8 @@ crc32-stream@^2.0.0:
readable-stream "^2.0.0"
crc@^3.4.4:
- version "3.4.4"
- resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/crc/-/crc-3.5.0.tgz#98b8ba7d489665ba3979f59b21381374101a1964"
create-error-class@^3.0.0, create-error-class@^3.0.1:
version "3.0.2"
@@ -1106,8 +1122,8 @@ date-format@^0.0.0:
resolved "https://registry.yarnpkg.com/date-format/-/date-format-0.0.0.tgz#09206863ab070eb459acea5542cbd856b11966b3"
dateformat@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17"
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
debug@2.2.0:
version "2.2.0"
@@ -1121,12 +1137,18 @@ debug@2.6.0:
dependencies:
ms "0.7.2"
-debug@2.6.8, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.6.0, debug@^2.6.8:
+debug@2.6.8:
version "2.6.8"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
dependencies:
ms "2.0.0"
+debug@2.6.9, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.6.0, debug@^2.6.8:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
debug@^0.7.2:
version "0.7.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
@@ -1673,8 +1695,8 @@ eslint@^3.14.1:
user-home "^2.0.0"
espree@^3.4.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.0.tgz#98358625bdd055861ea27e2867ea729faf463d8d"
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e"
dependencies:
acorn "^5.1.1"
acorn-jsx "^3.0.0"
@@ -1704,7 +1726,7 @@ esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-etag@~1.8.0:
+etag@~1.8.0, etag@~1.8.1:
version "1.8.1"
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
@@ -1804,8 +1826,8 @@ expand-tilde@^2.0.2:
homedir-polyfill "^1.0.1"
express@^4.14.0, express@^4.15.3:
- version "4.15.4"
- resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1"
+ version "4.15.5"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.15.5.tgz#670235ca9598890a5ae8170b83db722b842ed927"
dependencies:
accepts "~1.3.3"
array-flatten "1.1.1"
@@ -1813,13 +1835,13 @@ express@^4.14.0, express@^4.15.3:
content-type "~1.0.2"
cookie "0.3.1"
cookie-signature "1.0.6"
- debug "2.6.8"
+ debug "2.6.9"
depd "~1.1.1"
encodeurl "~1.0.1"
escape-html "~1.0.3"
etag "~1.8.0"
- finalhandler "~1.0.4"
- fresh "0.5.0"
+ finalhandler "~1.0.6"
+ fresh "0.5.2"
merge-descriptors "1.0.1"
methods "~1.1.2"
on-finished "~2.3.0"
@@ -1828,8 +1850,8 @@ express@^4.14.0, express@^4.15.3:
proxy-addr "~1.1.5"
qs "6.5.0"
range-parser "~1.2.0"
- send "0.15.4"
- serve-static "1.12.4"
+ send "0.15.6"
+ serve-static "1.12.6"
setprototypeof "1.0.3"
statuses "~1.3.1"
type-is "~1.6.15"
@@ -1841,12 +1863,12 @@ extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
external-editor@^2.0.1:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972"
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
dependencies:
iconv-lite "^0.4.17"
jschardet "^1.4.2"
- tmp "^0.0.31"
+ tmp "^0.0.33"
extglob@^0.3.1:
version "0.3.2"
@@ -1917,8 +1939,8 @@ file-type@^5.2.0:
resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
file-type@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.1.0.tgz#5a7dba98138fa0abec7afc43e5a9a0b2aac729f1"
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
filename-regex@^2.0.0:
version "2.0.1"
@@ -1938,15 +1960,15 @@ filled-array@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84"
-finalhandler@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7"
+finalhandler@~1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f"
dependencies:
- debug "2.6.8"
+ debug "2.6.9"
encodeurl "~1.0.1"
escape-html "~1.0.3"
on-finished "~2.3.0"
- parseurl "~1.3.1"
+ parseurl "~1.3.2"
statuses "~1.3.1"
unpipe "~1.0.0"
@@ -1995,8 +2017,8 @@ flagged-respawn@^0.3.2:
resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5"
flat-cache@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
dependencies:
circular-json "^0.3.1"
del "^2.0.2"
@@ -2046,12 +2068,12 @@ form-data@~2.3.1:
mime-types "^2.1.12"
forwarded@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.1.tgz#8a4e30c640b05395399a3549c730257728048961"
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
-fresh@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e"
+fresh@0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
fs-exists-sync@^0.1.0:
version "0.1.0"
@@ -2159,6 +2181,10 @@ get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+get-params@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/get-params/-/get-params-0.1.2.tgz#bae0dfaba588a0c60d7834c0d8dc2ff60eeef2fe"
+
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
@@ -2740,8 +2766,8 @@ inquirer@~3.0.6:
through "^2.3.6"
interpret@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0"
invariant@^2.2.2:
version "2.2.2"
@@ -3005,6 +3031,10 @@ js-yaml@^3.5.1, js-yaml@^3.7.0:
argparse "^1.0.7"
esprima "^4.0.0"
+jsan@^3.1.0, jsan@^3.1.5:
+ version "3.1.9"
+ resolved "https://registry.yarnpkg.com/jsan/-/jsan-3.1.9.tgz#2705676c1058f0a7d9ac266ad036a5769cfa7c96"
+
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -3142,6 +3172,10 @@ liftoff@^2.1.0:
rechoir "^0.6.2"
resolve "^1.1.7"
+linked-list@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/linked-list/-/linked-list-0.1.0.tgz#798b0ff97d1b92a4fd08480f55aea4e9d49d37bf"
+
load-json-file@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -3168,6 +3202,10 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
+lodash-es@^4.2.1:
+ version "4.17.4"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
+
lodash._baseassign@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
@@ -3306,7 +3344,7 @@ lodash.values@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347"
-lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.8.0, lodash@~4.17.4:
+lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.8.0, lodash@~4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@@ -3330,7 +3368,7 @@ lokijs@^1.4.3:
version "1.5.0"
resolved "https://registry.yarnpkg.com/lokijs/-/lokijs-1.5.0.tgz#99e403d6a89e47e11ed0c5d499fb55a0603d5efc"
-loose-envify@^1.0.0:
+loose-envify@^1.0.0, loose-envify@^1.1.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
@@ -3454,8 +3492,8 @@ mime@1.3.4:
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
mime@^1.2.11, mime@^1.3.4:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.0.tgz#69e9e0db51d44f2a3b56e48b7817d7d137f1a343"
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
mimic-fn@^1.0.0:
version "1.1.0"
@@ -3594,8 +3632,8 @@ mute-stream@0.0.7:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
mz@^2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/mz/-/mz-2.6.0.tgz#c8b8521d958df0a4f2768025db69c719ee4ef1ce"
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
dependencies:
any-promise "^1.0.0"
object-assign "^4.0.1"
@@ -3818,7 +3856,7 @@ os-timesync@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/os-timesync/-/os-timesync-1.0.7.tgz#fc7ea7e6de1fc88742880cd08ff284327678e20d"
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1:
+os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -3906,7 +3944,7 @@ parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
-parseurl@~1.3.1:
+parseurl@~1.3.1, parseurl@~1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
@@ -4133,7 +4171,7 @@ query-string@^2.4.0:
dependencies:
strict-uri-encode "^1.0.0"
-querystring@0.2.0:
+querystring@0.2.0, querystring@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
@@ -4254,9 +4292,29 @@ redent@^1.0.0:
indent-string "^2.1.0"
strip-indent "^1.0.1"
+redux-devtools-extension@^2.13.2:
+ version "2.13.2"
+ resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.2.tgz#e0f9a8e8dfca7c17be92c7124958a3b94eb2911d"
+
+redux-devtools-instrument@^1.3.3:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/redux-devtools-instrument/-/redux-devtools-instrument-1.8.2.tgz#5e91cfe402e790dae3fd2f0d235f7b7d84b09ffe"
+ dependencies:
+ lodash "^4.2.0"
+ symbol-observable "^1.0.2"
+
+redux@^3.7.2:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
+ dependencies:
+ lodash "^4.2.1"
+ lodash-es "^4.2.1"
+ loose-envify "^1.1.0"
+ symbol-observable "^1.0.3"
+
regenerate@^1.2.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
regenerator-runtime@^0.10.0:
version "0.10.5"
@@ -4303,6 +4361,33 @@ regjsparser@^0.1.4:
dependencies:
jsesc "~0.5.0"
+remote-redux-devtools@^0.5.12:
+ version "0.5.12"
+ resolved "https://registry.yarnpkg.com/remote-redux-devtools/-/remote-redux-devtools-0.5.12.tgz#42cb95dfa9e54c1d9671317c5e7bba41e68caec2"
+ dependencies:
+ jsan "^3.1.5"
+ querystring "^0.2.0"
+ redux-devtools-instrument "^1.3.3"
+ remotedev-utils "^0.1.1"
+ rn-host-detect "^1.0.1"
+ socketcluster-client "^5.3.1"
+
+remotedev-serialize@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/remotedev-serialize/-/remotedev-serialize-0.1.0.tgz#074768e98cb7aa806f45994eeb0c8af95120ee32"
+ dependencies:
+ jsan "^3.1.0"
+
+remotedev-utils@^0.1.1:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/remotedev-utils/-/remotedev-utils-0.1.4.tgz#643700819a943678073c75eb185e81d96620b348"
+ dependencies:
+ get-params "^0.1.2"
+ jsan "^3.1.5"
+ lodash "^4.0.0"
+ remotedev-serialize "^0.1.0"
+ shortid "^2.2.6"
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -4325,34 +4410,7 @@ replace-ext@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
-request@^2.45.0, request@^2.55.0, request@^2.79.0, request@~2.81.0:
- version "2.81.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~4.2.1"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- oauth-sign "~0.8.1"
- performance-now "^0.2.0"
- qs "~6.4.0"
- safe-buffer "^5.0.1"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "^0.6.0"
- uuid "^3.0.0"
-
-request@^2.81.0:
+request@^2.45.0, request@^2.55.0, request@^2.79.0, request@^2.81.0:
version "2.82.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.82.0.tgz#2ba8a92cd7ac45660ea2b10a53ae67cd247516ea"
dependencies:
@@ -4379,6 +4437,33 @@ request@^2.81.0:
tunnel-agent "^0.6.0"
uuid "^3.1.0"
+request@~2.81.0:
+ version "2.81.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
+ dependencies:
+ aws-sign2 "~0.6.0"
+ aws4 "^1.2.1"
+ caseless "~0.12.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.0"
+ forever-agent "~0.6.1"
+ form-data "~2.1.1"
+ har-validator "~4.2.1"
+ hawk "~3.1.3"
+ http-signature "~1.1.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.7"
+ oauth-sign "~0.8.1"
+ performance-now "^0.2.0"
+ qs "~6.4.0"
+ safe-buffer "^5.0.1"
+ stringstream "~0.0.4"
+ tough-cookie "~2.3.0"
+ tunnel-agent "^0.6.0"
+ uuid "^3.0.0"
+
require-dir@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/require-dir/-/require-dir-0.3.2.tgz#c1d5c75e9fbffde9f2e6b33e383db4f594b5a6a9"
@@ -4464,6 +4549,10 @@ rlp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.0.0.tgz#9db384ff4b89a8f61563d92395d8625b18f3afb0"
+rn-host-detect@^1.0.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/rn-host-detect/-/rn-host-detect-1.1.3.tgz#242d76e2fa485c48d751416e65b7cce596969e91"
+
run-async@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
@@ -4509,6 +4598,26 @@ sax@>=0.6.0:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+sc-channel@~1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/sc-channel/-/sc-channel-1.0.6.tgz#b38bd47a993e78290fbc53467867f6b2a0a08639"
+ dependencies:
+ sc-emitter "1.x.x"
+
+sc-emitter@1.x.x, sc-emitter@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/sc-emitter/-/sc-emitter-1.1.0.tgz#ef119d4222f4c64f887b486964ef11116cdd0e75"
+ dependencies:
+ component-emitter "1.2.0"
+
+sc-errors@~1.3.0:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/sc-errors/-/sc-errors-1.3.3.tgz#c00bc4c766a970cc8d5937d08cd58e931d7dae05"
+
+sc-formatter@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/sc-formatter/-/sc-formatter-3.0.0.tgz#c91b1fe56c260abd5a6a2e6af98c724bc7998a38"
+
secp256k1@^3.0.1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.3.0.tgz#50ec9b201ba401403dd13ccbf21d31eeb3ff43cf"
@@ -4547,17 +4656,17 @@ semver@^4.1.0:
version "4.3.6"
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
-send@0.15.4:
- version "0.15.4"
- resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9"
+send@0.15.6:
+ version "0.15.6"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.15.6.tgz#20f23a9c925b762ab82705fe2f9db252ace47e34"
dependencies:
- debug "2.6.8"
+ debug "2.6.9"
depd "~1.1.1"
destroy "~1.0.4"
encodeurl "~1.0.1"
escape-html "~1.0.3"
- etag "~1.8.0"
- fresh "0.5.0"
+ etag "~1.8.1"
+ fresh "0.5.2"
http-errors "~1.6.2"
mime "1.3.4"
ms "2.0.0"
@@ -4569,14 +4678,14 @@ sequencify@~0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c"
-serve-static@1.12.4:
- version "1.12.4"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961"
+serve-static@1.12.6:
+ version "1.12.6"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.6.tgz#b973773f63449934da54e5beba5e31d9f4211577"
dependencies:
encodeurl "~1.0.1"
escape-html "~1.0.3"
- parseurl "~1.3.1"
- send "0.15.4"
+ parseurl "~1.3.2"
+ send "0.15.6"
servify@^0.1.12:
version "0.1.12"
@@ -4601,10 +4710,11 @@ setprototypeof@1.0.3:
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
sha.js@^2.4.0, sha.js@^2.4.8:
- version "2.4.8"
- resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f"
+ version "2.4.9"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d"
dependencies:
inherits "^2.0.1"
+ safe-buffer "^5.0.1"
sha3@^1.1.0:
version "1.2.0"
@@ -4624,6 +4734,10 @@ shelljs@^0.7.5, shelljs@^0.7.7:
interpret "^1.0.0"
rechoir "^0.6.2"
+shortid@^2.2.6:
+ version "2.2.8"
+ resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131"
+
sigmund@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
@@ -4676,9 +4790,23 @@ sntp@2.x.x:
dependencies:
hoek "4.x.x"
+socketcluster-client@^5.3.1:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/socketcluster-client/-/socketcluster-client-5.5.2.tgz#9d4369e0e722ff7e55e5422c2d44f5afe1aff128"
+ dependencies:
+ base-64 "0.1.0"
+ clone "2.1.1"
+ linked-list "0.1.0"
+ querystring "0.2.0"
+ sc-channel "~1.0.6"
+ sc-emitter "~1.1.0"
+ sc-errors "~1.3.0"
+ sc-formatter "~3.0.0"
+ ws "3.0.0"
+
solc@^0.4.15:
- version "0.4.16"
- resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.16.tgz#809a5b1257c7c200e11a841b377eaec274698539"
+ version "0.4.17"
+ resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.17.tgz#75f93da6bc190becb89f6663076ab943ff95cd2f"
dependencies:
fs-extra "^0.30.0"
memorystream "^0.3.1"
@@ -4927,6 +5055,10 @@ swarm-js@^0.1.21:
tar.gz "^1.0.5"
xhr-request-promise "^0.1.2"
+symbol-observable@^1.0.2, symbol-observable@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
+
table@^3.7.8:
version "3.8.3"
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
@@ -5065,23 +5197,17 @@ tmp@0.0.29:
dependencies:
os-tmpdir "~1.0.1"
-tmp@^0.0.31:
- version "0.0.31"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7"
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
dependencies:
- os-tmpdir "~1.0.1"
+ os-tmpdir "~1.0.2"
to-fast-properties@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
-tough-cookie@~2.3.0:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
- dependencies:
- punycode "^1.4.1"
-
-tough-cookie@~2.3.2:
+tough-cookie@~2.3.0, tough-cookie@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
dependencies:
@@ -5153,8 +5279,8 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
typescript@^2.2.2:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.2.tgz#038a95f7d9bbb420b1bf35ba31d4c5c1dd3ffe34"
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d"
ultron@~1.1.0:
version "1.1.0"
@@ -5299,8 +5425,8 @@ validator@~7.0.0:
resolved "https://registry.yarnpkg.com/validator/-/validator-7.0.0.tgz#c74deb8063512fac35547938e6f0b1504a282fd2"
vary@^1, vary@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37"
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
verror@1.10.0:
version "1.10.0"
@@ -5452,10 +5578,18 @@ write@^0.2.1:
dependencies:
mkdirp "^0.5.1"
+ws@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-3.0.0.tgz#98ddb00056c8390cb751e7788788497f99103b6c"
+ dependencies:
+ safe-buffer "~5.0.1"
+ ultron "~1.1.0"
+
ws@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-3.1.0.tgz#8afafecdeab46d572e5397ee880739367aa2f41c"
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-3.2.0.tgz#d5d3d6b11aff71e73f808f40cc69d52bb6d4a185"
dependencies:
+ async-limiter "~1.0.0"
safe-buffer "~5.1.0"
ultron "~1.1.0"
From c1f28c85a8515fc16d2ba71d40daeb33a7a6007e Mon Sep 17 00:00:00 2001
From: Marc Garreau
Date: Fri, 15 Sep 2017 18:41:21 -0600
Subject: [PATCH 004/150] Introduces init script
---
main.js | 858 ++++++++++++++++---------------
modules/core/rootReducer.js | 2 +
modules/core/settings/reducer.js | 61 +++
modules/core/store.js | 12 +-
modules/core/ui/actions.js | 4 -
modules/core/ui/reducer.js | 43 +-
modules/menuItems.js | 1 +
modules/windows.js | 2 +-
package.json | 4 +-
yarn.lock | 8 +-
10 files changed, 554 insertions(+), 441 deletions(-)
create mode 100644 modules/core/settings/reducer.js
diff --git a/main.js b/main.js
index 2ada9cc58..2e14bdc0a 100644
--- a/main.js
+++ b/main.js
@@ -14,527 +14,565 @@ const windowStateKeeper = require('electron-window-state');
import configureReduxStore from './modules/core/store';
-import { createSplashWindow, quitApp } from './modules/core/ui/actions';
-
+import { quitApp } from './modules/core/ui/actions';
Q.config({
cancellation: true,
});
-
// logging setup
const log = logger.create('main');
+init();
-Settings.init();
+async function init() {
+ global.store = await configureReduxStore();
-if (Settings.cli.version) {
- log.info(Settings.appVersion);
+ Settings.init();
+ store.dispatch({ type: 'SETTINGS::INIT_FINISH' });
- process.exit(0);
-}
+ if (Settings.cli.version) {
+ log.info(Settings.appVersion);
-if (Settings.cli.ignoreGpuBlacklist) {
- app.commandLine.appendSwitch('ignore-gpu-blacklist', 'true');
-}
+ process.exit(0);
+ }
+ store.dispatch({ type: 'SETTINGS_APP_VERSION::SET', payload: { appVersion: Settings.appVersion } });
-if (Settings.inAutoTestMode) {
- log.info('AUTOMATED TESTING');
-}
+ if (Settings.cli.ignoreGpuBlacklist) {
+ app.commandLine.appendSwitch('ignore-gpu-blacklist', 'true');
+ store.dispatch({ type: 'SETTINGS_GPU_BLACKLIST::SET' });
+ }
-log.info(`Running in production mode: ${Settings.inProductionMode}`);
+ if (Settings.inAutoTestMode) {
+ log.info('AUTOMATED TESTING');
+ store.dispatch({ type: 'SETTINGS_AUTO_TEST_MODE::SET' });
+ }
-if (Settings.rpcMode === 'http') {
- log.warn('Connecting to a node via HTTP instead of ipcMain. This is less secure!!!!'.toUpperCase());
-}
+ log.info(`Running in production mode: ${Settings.inProductionMode}`);
+ store.dispatch({ type: 'SETTINGS_PRODUCTION_MODE::SET', payload: { productionMode: Settings.inProductionMode } });
-// db
-const db = global.db = require('./modules/db');
+ if (Settings.rpcMode === 'http') {
+ log.warn('Connecting to a node via HTTP instead of ipcMain. This is less secure!!!!'.toUpperCase());
+ }
+ store.dispatch({ type: 'SETTINGS_RPC_MODE::SET', payload: { rpcMode: Settings.rpcMode } });
+ // db
+ const db = global.db = require('./modules/db');
-require('./modules/ipcCommunicator.js');
-const appMenu = require('./modules/menuItems');
-const ipcProviderBackend = require('./modules/ipc/ipcProviderBackend.js');
-const ethereumNode = require('./modules/ethereumNode.js');
-const swarmNode = require('./modules/swarmNode.js');
-const nodeSync = require('./modules/nodeSync.js');
-global.webviews = [];
+ require('./modules/ipcCommunicator.js');
+ const appMenu = require('./modules/menuItems');
+ const ipcProviderBackend = require('./modules/ipc/ipcProviderBackend.js');
+ const ethereumNode = require('./modules/ethereumNode.js');
+ const swarmNode = require('./modules/swarmNode.js');
+ const nodeSync = require('./modules/nodeSync.js');
-global.mining = false;
+ global.webviews = [];
-global.icon = `${__dirname}/icons/${Settings.uiMode}/icon.png`;
-global.mode = Settings.uiMode;
-global.dirname = __dirname;
+ global.mining = false;
+ store.dispatch({ type: 'SETTINGS_MINING::SET', payload: { mining: false } });
-global.i18n = i18n;
+ global.icon = `${__dirname}/icons/${Settings.uiMode}/icon.png`;
+ global.mode = Settings.uiMode;
+ store.dispatch({ type: 'SETTINGS_UI_MODE::SET', payload: { uiMode: Settings.uiMode } });
-// INTERFACE PATHS
-// - WALLET
-if (Settings.uiMode === 'wallet') {
- log.info('Starting in Wallet mode');
+ global.dirname = __dirname;
+ store.dispatch({ type: 'SETTINGS_DIRNAME::SET', payload: { dirname: __dirname } });
- global.interfaceAppUrl = (Settings.inProductionMode)
- ? `file://${__dirname}/interface/wallet/index.html`
- : 'http://localhost:3050';
- global.interfacePopupsUrl = (Settings.inProductionMode)
- ? `file://${__dirname}/interface/index.html`
- : 'http://localhost:3000';
+ global.i18n = i18n;
+
+ // INTERFACE PATHS
+ // - WALLET
+ if (Settings.uiMode === 'wallet') {
+ log.info('Starting in Wallet mode');
-// - MIST
-} else {
- log.info('Starting in Mist mode');
+ global.interfaceAppUrl = (Settings.inProductionMode)
+ ? `file://${__dirname}/interface/wallet/index.html`
+ : 'http://localhost:3050';
+ global.interfacePopupsUrl = (Settings.inProductionMode)
+ ? `file://${__dirname}/interface/index.html`
+ : 'http://localhost:3000';
- let url = (Settings.inProductionMode)
- ? `file://${__dirname}/interface/index.html`
- : 'http://localhost:3000';
+ // - MIST
+ } else {
+ log.info('Starting in Mist mode');
- if (Settings.cli.resetTabs) {
- url += '?reset-tabs=true';
- }
+ let url = (Settings.inProductionMode)
+ ? `file://${__dirname}/interface/index.html`
+ : 'http://localhost:3000';
- global.interfaceAppUrl = global.interfacePopupsUrl = url;
-}
+ if (Settings.cli.resetTabs) {
+ url += '?reset-tabs=true';
+ }
+ global.interfaceAppUrl = global.interfacePopupsUrl = url;
+ }
-// prevent crashed and close gracefully
-process.on('uncaughtException', (error) => {
- log.error('UNCAUGHT EXCEPTION', error);
- store.dispatch(quitApp());
-});
+ // prevent crashes and close gracefully
+ process.on('uncaughtException', (error) => {
+ log.error('UNCAUGHT EXCEPTION', error);
+ store.dispatch(quitApp());
+ });
-// Quit when all windows are closed.
-app.on('window-all-closed', () => {
- store.dispatch(quitApp());
-});
-// Listen to custom protocole incoming messages, needs registering of URL schemes
-app.on('open-url', (e, url) => {
- log.info('Open URL', url);
-});
+ // Quit when all windows are closed.
+ app.on('window-all-closed', () => {
+ store.dispatch(quitApp());
+ });
+
+ // Listen to custom protocol incoming messages, needs registering of URL schemes
+ app.on('open-url', (e, url) => {
+ log.info('Open URL', url);
+ });
-let killedSocketsAndNodes = false;
+ let killedSocketsAndNodes = false;
-app.on('before-quit', (event) => {
- if (!killedSocketsAndNodes) {
- log.info('Defer quitting until sockets and node are shut down');
+ app.on('before-quit', async (event) => {
+ if (!killedSocketsAndNodes) {
+ log.info('Defer quitting until sockets and node are shut down');
- event.preventDefault();
+ event.preventDefault();
- // sockets manager
- Sockets.destroyAll()
- .catch(() => {
+ // sockets manager
+ try {
+ await Sockets.destroyAll();
+ store.dispatch({ type: 'SOCKETS::DESTROY_ALL' });
+ } catch (e) {
log.error('Error shutting down sockets');
- });
+ }
- // delay quit, so the sockets can close
- setTimeout(async () => {
- await ethereumNode.stop()
+ // delay quit, so the sockets can close
+ setTimeout(async () => {
+ await ethereumNode.stop();
+ store.dispatch({ type: 'ETH_NODE::STOP' });
- killedSocketsAndNodes = true;
- await db.close();
+ killedSocketsAndNodes = true;
+ await db.close();
+ store.dispatch({ type: 'DB::CLOSE' });
- store.dispatch(quitApp());
- }, 500);
- } else {
- log.info('About to quit...');
- }
-});
+ store.dispatch(quitApp());
+ }, 500);
+ } else {
+ log.info('About to quit...');
+ }
+ });
-let mainWindow;
-let splashWindow;
-let onReady;
-let startMainWindow;
+ let mainWindow;
+ let splashWindow;
+ let onReady;
+ let startMainWindow;
-// This method will be called when Electron has done everything
-// initialization and ready for creating browser windows.
-app.on('ready', async () => {
- global.store = await configureReduxStore();
-
- // if using HTTP RPC then inform user
- if (Settings.rpcMode === 'http') {
- dialog.showErrorBox('Insecure RPC connection', `
-WARNING: You are connecting to an Ethereum node via: ${Settings.rpcHttpPath}
+ // This method will be called when Electron has done everything
+ // initialization and ready for creating browser windows.
+ app.on('ready', async () => {
+ // if using HTTP RPC then inform user
+ if (Settings.rpcMode === 'http') {
+ dialog.showErrorBox('Insecure RPC connection', `
+ WARNING: You are connecting to an Ethereum node via: ${Settings.rpcHttpPath}
-This is less secure than using local IPC - your passwords will be sent over the wire in plaintext.
+ This is less secure than using local IPC - your passwords will be sent over the wire in plaintext.
-Only do this if you have secured your HTTP connection or you know what you are doing.
-`);
- }
+ Only do this if you have secured your HTTP connection or you know what you are doing.
+ `);
+ }
- // initialise the db
- global.db.init().then(onReady).catch((err) => {
- log.error(err);
- store.dispatch(quitApp());
+ // initialise the db
+ try {
+ await global.db.init();
+ store.dispatch({ type: 'DB::INIT' });
+ onReady();
+ } catch (e) {
+ log.error(e);
+ store.dispatch(quitApp());
+ }
});
-});
-// Allows the Swarm protocol to behave like http
-protocol.registerStandardSchemes(['bzz']);
+ // Allows the Swarm protocol to behave like http
+ protocol.registerStandardSchemes(['bzz']);
-onReady = () => {
- global.config = db.getCollection('SYS_config');
+ onReady = () => {
+ global.config = db.getCollection('SYS_config');
- // setup DB sync to backend
- dbSync.backendSyncInit();
+ // setup DB sync to backend
+ dbSync.backendSyncInit();
+ store.dispatch({ type: 'DB::SYNC_TO_BACKEND' });
- // Initialise window mgr
- Windows.init();
+ // Initialise window mgr
+ Windows.init();
+ store.dispatch({ type: 'WINDOWS::INIT_FINISH' });
- // Enable the Swarm protocol
- protocol.registerHttpProtocol('bzz', (request, callback) => {
- const redirectPath = `${Settings.swarmURL}/${request.url.replace('bzz:/', 'bzz://')}`;
- callback({ method: request.method, referrer: request.referrer, url: redirectPath });
- }, (error) => {
- if (error) {
- log.error(error);
- }
- });
-
- // check for update
- if (!Settings.inAutoTestMode) UpdateChecker.run();
+ // Enable the Swarm protocol
+ protocol.registerHttpProtocol('bzz', (request, callback) => {
+ const redirectPath = `${Settings.swarmURL}/${request.url.replace('bzz:/', 'bzz://')}`;
+ callback({ method: request.method, referrer: request.referrer, url: redirectPath });
+ store.dispatch({ type: 'PROTOCOL::REGISTER', payload: { protocol: 'bzz' } });
+ }, (error) => {
+ if (error) {
+ log.error(error);
+ }
+ });
- // initialize the web3 IPC provider backend
- ipcProviderBackend.init();
+ // check for update
+ if (!Settings.inAutoTestMode) UpdateChecker.run();
+ store.dispatch({ type: 'UPDATE_CHECKER::RUN' });
- // instantiate custom protocols
- // require('./customProtocols.js');
+ // initialize the web3 IPC provider backend
+ ipcProviderBackend.init();
+ store.dispatch({ type: 'IPC_PROVIDER_BACKEND::INIT' });
- // change to user language now that global.config object is ready
- i18n.changeLanguage(Settings.language);
+ // instantiate custom protocols
+ // require('./customProtocols.js');
- // add menu already here, so we have copy and past functionality
- appMenu();
+ // change to user language now that global.config object is ready
+ i18n.changeLanguage(Settings.language);
+ store.dispatch({ type: 'SETTINGS_I18N::SET', payload: { i18n: Settings.language } });
- // Create the browser window.
+ // add menu already here, so we have copy and paste functionality
+ appMenu();
- const defaultWindow = windowStateKeeper({
- defaultWidth: 1024 + 208,
- defaultHeight: 720
- });
+ // Create the browser window.
- // MIST
- if (Settings.uiMode === 'mist') {
- mainWindow = Windows.create('main', {
- primary: true,
- electronOptions: {
- width: Math.max(defaultWindow.width, 500),
- height: Math.max(defaultWindow.height, 440),
- x: defaultWindow.x,
- y: defaultWindow.y,
- webPreferences: {
- nodeIntegration: true, /* necessary for webviews;
- require will be removed through preloader */
- preload: `${__dirname}/modules/preloader/mistUI.js`,
- 'overlay-fullscreen-video': true,
- 'overlay-scrollbars': true,
- experimentalFeatures: true,
- },
- },
+ const defaultWindow = windowStateKeeper({
+ defaultWidth: 1024 + 208,
+ defaultHeight: 720
});
- // WALLET
- } else {
- mainWindow = Windows.create('main', {
- primary: true,
- electronOptions: {
- width: Math.max(defaultWindow.width, 500),
- height: Math.max(defaultWindow.height, 440),
- x: defaultWindow.x,
- y: defaultWindow.y,
- webPreferences: {
- preload: `${__dirname}/modules/preloader/walletMain.js`,
- 'overlay-fullscreen-video': true,
- 'overlay-scrollbars': true,
+ store.dispatch({ type: 'MAIN_WINDOW::CREATE_START' });
+
+ // MIST
+ if (Settings.uiMode === 'mist') {
+ mainWindow = Windows.create('main', {
+ primary: true,
+ electronOptions: {
+ width: Math.max(defaultWindow.width, 500),
+ height: Math.max(defaultWindow.height, 440),
+ x: defaultWindow.x,
+ y: defaultWindow.y,
+ webPreferences: {
+ nodeIntegration: true, /* necessary for webviews;
+ require will be removed through preloader */
+ preload: `${__dirname}/modules/preloader/mistUI.js`,
+ 'overlay-fullscreen-video': true,
+ 'overlay-scrollbars': true,
+ experimentalFeatures: true,
+ },
},
- },
- });
- }
-
- // Delegating events to save window bounds on windowStateKeeper
- defaultWindow.manage(mainWindow.window);
-
- if (!Settings.inAutoTestMode) {
-
- // TODO: SPLASH_WINDOW::CREATE
- store.dispatch(createSplashWindow(Settings.uiMode));
-
- splashWindow = Windows.create('splash', {
- primary: true,
- url: `${global.interfacePopupsUrl}#splashScreen_${Settings.uiMode}`,
- show: true,
- electronOptions: {
- width: 400,
- height: 230,
- resizable: false,
- backgroundColor: '#F6F6F6',
- useContentSize: true,
- frame: false,
- webPreferences: {
- preload: `${__dirname}/modules/preloader/splashScreen.js`,
+ });
+ store.dispatch({ type: 'MAIN_WINDOW::CREATE_SUCCESS' });
+
+ // WALLET
+ } else {
+ mainWindow = Windows.create('main', {
+ primary: true,
+ electronOptions: {
+ width: Math.max(defaultWindow.width, 500),
+ height: Math.max(defaultWindow.height, 440),
+ x: defaultWindow.x,
+ y: defaultWindow.y,
+ webPreferences: {
+ preload: `${__dirname}/modules/preloader/walletMain.js`,
+ 'overlay-fullscreen-video': true,
+ 'overlay-scrollbars': true,
+ },
},
- },
- });
- }
-
- // check time sync
- // var ntpClient = require('ntp-client');
- // ntpClient.getNetworkTime("pool.ntp.org", 123, function(err, date) {
- timesync.checkEnabled((err, enabled) => {
- if (err) {
- log.error('Couldn\'t get time from NTP time sync server.', err);
- return;
+ });
+ store.dispatch({ type: 'MAIN_WINDOW::CREATE_SUCCESS' });
}
- if (!enabled) {
- dialog.showMessageBox({
- type: 'warning',
- buttons: ['OK'],
- message: global.i18n.t('mist.errors.timeSync.title'),
- detail: `${global.i18n.t('mist.errors.timeSync.description')}\n\n${global.i18n.t(`mist.errors.timeSync.${process.platform}`)}`,
- }, () => {
+ // Delegating events to save window bounds on windowStateKeeper
+ defaultWindow.manage(mainWindow.window);
+
+ if (!Settings.inAutoTestMode) {
+ store.dispatch({ type: 'SPLASH_WINDOW::CREATE_START' });
+
+ splashWindow = Windows.create('splash', {
+ primary: true,
+ url: `${global.interfacePopupsUrl}#splashScreen_${Settings.uiMode}`,
+ show: true,
+ electronOptions: {
+ width: 400,
+ height: 230,
+ resizable: false,
+ backgroundColor: '#F6F6F6',
+ useContentSize: true,
+ frame: false,
+ webPreferences: {
+ preload: `${__dirname}/modules/preloader/splashScreen.js`,
+ },
+ },
});
- }
- });
+ store.dispatch({ type: 'SPLASH_WINDOW::CREATE_SUCCESS' });
+ }
- const kickStart = () => {
- // client binary stuff
- ClientBinaryManager.on('status', (status, data) => {
- Windows.broadcast('uiAction_clientBinaryStatus', status, data);
- });
+ // check time sync
+ // var ntpClient = require('ntp-client');
+ // ntpClient.getNetworkTime("pool.ntp.org", 123, function(err, date) {
+ timesync.checkEnabled((err, enabled) => {
+ if (err) {
+ log.error('Couldn\'t get time from NTP time sync server.', err);
+ return;
+ }
- // node connection stuff
- ethereumNode.on('nodeConnectionTimeout', () => {
- Windows.broadcast('uiAction_nodeStatus', 'connectionTimeout');
+ if (!enabled) {
+ dialog.showMessageBox({
+ type: 'warning',
+ buttons: ['OK'],
+ message: global.i18n.t('mist.errors.timeSync.title'),
+ detail: `${global.i18n.t('mist.errors.timeSync.description')}\n\n${global.i18n.t(`mist.errors.timeSync.${process.platform}`)}`,
+ }, () => {
+ });
+ }
});
- ethereumNode.on('nodeLog', (data) => {
- Windows.broadcast('uiAction_nodeLogText', data.replace(/^.*[0-9]]/, ''));
- });
- // state change
- ethereumNode.on('state', (state, stateAsText) => {
- Windows.broadcast('uiAction_nodeStatus', stateAsText,
- ethereumNode.STATES.ERROR === state ? ethereumNode.lastError : null
- );
- });
+ const kickStart = () => {
+ // client binary stuff
+ ClientBinaryManager.on('status', (status, data) => {
+ Windows.broadcast('uiAction_clientBinaryStatus', status, data);
+ });
- // starting swarm
- swarmNode.on('starting', () => {
- Windows.broadcast('uiAction_swarmStatus', 'starting');
- });
+ // node connection stuff
+ ethereumNode.on('nodeConnectionTimeout', () => {
+ Windows.broadcast('uiAction_nodeStatus', 'connectionTimeout');
+ });
- // swarm download progress
- swarmNode.on('downloadProgress', (progress) => {
- Windows.broadcast('uiAction_swarmStatus', 'downloadProgress', progress);
- });
+ ethereumNode.on('nodeLog', (data) => {
+ Windows.broadcast('uiAction_nodeLogText', data.replace(/^.*[0-9]]/, ''));
+ });
- // started swarm
- swarmNode.on('started', (isLocal) => {
- Windows.broadcast('uiAction_swarmStatus', 'started', isLocal);
- });
+ // state change
+ ethereumNode.on('state', (state, stateAsText) => {
+ Windows.broadcast('uiAction_nodeStatus', stateAsText,
+ ethereumNode.STATES.ERROR === state ? ethereumNode.lastError : null
+ );
+ });
+ // starting swarm
+ swarmNode.on('starting', () => {
+ Windows.broadcast('uiAction_swarmStatus', 'starting');
+ store.dispatch({ type: 'SWARM::INIT_START' });
+ });
- // capture sync results
- const syncResultPromise = new Q((resolve, reject) => {
- nodeSync.on('nodeSyncing', (result) => {
- Windows.broadcast('uiAction_nodeSyncStatus', 'inProgress', result);
+ // swarm download progress
+ swarmNode.on('downloadProgress', (progress) => {
+ Windows.broadcast('uiAction_swarmStatus', 'downloadProgress', progress);
});
- nodeSync.on('stopped', () => {
- Windows.broadcast('uiAction_nodeSyncStatus', 'stopped');
+ // started swarm
+ swarmNode.on('started', (isLocal) => {
+ Windows.broadcast('uiAction_swarmStatus', 'started', isLocal);
+ store.dispatch({ type: 'SWARM::INIT_FINISH' });
});
- nodeSync.on('error', (err) => {
- log.error('Error syncing node', err);
- reject(err);
- });
+ // capture sync results
+ const syncResultPromise = new Q((resolve, reject) => {
+ nodeSync.on('nodeSyncing', (result) => {
+ Windows.broadcast('uiAction_nodeSyncStatus', 'inProgress', result);
+ });
- nodeSync.on('finished', () => {
- nodeSync.removeAllListeners('error');
- nodeSync.removeAllListeners('finished');
+ nodeSync.on('stopped', () => {
+ Windows.broadcast('uiAction_nodeSyncStatus', 'stopped');
+ });
- resolve();
- });
- });
+ nodeSync.on('error', (err) => {
+ log.error('Error syncing node', err);
- // check legacy chain
- // CHECK for legacy chain (FORK RELATED)
- Q.try(() => {
- // open the legacy chain message
- if ((Settings.loadUserData('daoFork') || '').trim() === 'false') {
- dialog.showMessageBox({
- type: 'warning',
- buttons: ['OK'],
- message: global.i18n.t('mist.errors.legacyChain.title'),
- detail: global.i18n.t('mist.errors.legacyChain.description')
- }, () => {
- shell.openExternal('https://github.com/ethereum/mist/releases');
- store.dispatch(quitApp());
+ reject(err);
});
- throw new Error('Cant start client due to legacy non-Fork setting.');
- }
- })
- .then(() => {
- return ClientBinaryManager.init();
- })
- .then(() => {
- return ethereumNode.init();
- })
- .then(() => {
- // Wallet shouldn't start Swarm
- if (Settings.uiMode === 'wallet') {
- return Promise.resolve();
- }
- return swarmNode.init();
- })
- .then(function sanityCheck() {
- if (!ethereumNode.isIpcConnected) {
- throw new Error('Either the node didn\'t start or IPC socket failed to connect.');
- }
+ nodeSync.on('finished', () => {
+ nodeSync.removeAllListeners('error');
+ nodeSync.removeAllListeners('finished');
- /* At this point Geth is running and the socket is connected. */
- log.info('Connected via IPC to node.');
-
- // update menu, to show node switching possibilities
- appMenu();
- })
- .then(function getAccounts() {
- return ethereumNode.send('eth_accounts', []);
- })
- .then(function onboarding(resultData) {
-
- if (ethereumNode.isGeth && (resultData.result === null || (_.isArray(resultData.result) && resultData.result.length === 0))) {
- log.info('No accounts setup yet, lets do onboarding first.');
-
- return new Q((resolve, reject) => {
- const onboardingWindow = Windows.createPopup('onboardingScreen', {
- primary: true,
- electronOptions: {
- width: 576,
- height: 442,
- },
- });
+ resolve();
+ });
+ });
- onboardingWindow.on('closed', () => {
+ // check legacy chain
+ // CHECK for legacy chain (FORK RELATED)
+ Q.try(() => {
+ // open the legacy chain message
+ if ((Settings.loadUserData('daoFork') || '').trim() === 'false') {
+ dialog.showMessageBox({
+ type: 'warning',
+ buttons: ['OK'],
+ message: global.i18n.t('mist.errors.legacyChain.title'),
+ detail: global.i18n.t('mist.errors.legacyChain.description')
+ }, () => {
+ shell.openExternal('https://github.com/ethereum/mist/releases');
store.dispatch(quitApp());
});
- // change network types (mainnet, testnet)
- ipcMain.on('onBoarding_changeNet', (e, testnet) => {
- const newType = ethereumNode.type;
- const newNetwork = testnet ? 'rinkeby' : 'main';
-
- log.debug('Onboarding change network', newType, newNetwork);
-
- ethereumNode.restart(newType, newNetwork)
- .then(function nodeRestarted() {
- appMenu();
- })
- .catch((err) => {
- log.error('Error restarting node', err);
-
- reject(err);
- });
+ throw new Error('Cant start client due to legacy non-Fork setting.');
+ }
+ })
+ .then(() => {
+ return ClientBinaryManager.init();
+ })
+ .then(() => {
+ return ethereumNode.init();
+ })
+ .then(() => {
+ // Wallet shouldn't start Swarm
+ if (Settings.uiMode === 'wallet') {
+ return Promise.resolve();
+ }
+ return swarmNode.init();
+ })
+ .then(function sanityCheck() {
+ if (!ethereumNode.isIpcConnected) {
+ throw new Error('Either the node didn\'t start or IPC socket failed to connect.');
+ }
+
+ /* At this point Geth is running and the socket is connected. */
+ log.info('Connected via IPC to node.');
+
+ // update menu, to show node switching possibilities
+ appMenu();
+ })
+ .then(function getAccounts() {
+ return ethereumNode.send('eth_accounts', []);
+ })
+ .then(function onboarding(resultData) {
+
+ if (ethereumNode.isGeth && (resultData.result === null || (_.isArray(resultData.result) && resultData.result.length === 0))) {
+ log.info('No accounts setup yet, lets do onboarding first.');
+
+ return new Q((resolve, reject) => {
+ store.dispatch({ type: 'ONBOARDING_WINDOW::CREATE_START' });
+ const onboardingWindow = Windows.createPopup('onboardingScreen', {
+ primary: true,
+ electronOptions: {
+ width: 576,
+ height: 442,
+ },
+ });
+ store.dispatch({ type: 'ONBOARDING_WINDOW::CREATE_SUCCESS' });
+
+ onboardingWindow.on('closed', () => {
+ store.dispatch({ type: 'ONBOARDING_WINDOW::CLOSE' });
+ store.dispatch(quitApp());
+ });
+
+ // change network types (mainnet, testnet)
+ ipcMain.on('onBoarding_changeNet', (e, testnet) => {
+ const newType = ethereumNode.type;
+ const newNetwork = testnet ? 'rinkeby' : 'main';
+
+ log.debug('Onboarding change network', newType, newNetwork);
+
+ ethereumNode.restart(newType, newNetwork)
+ .then(function nodeRestarted() {
+ appMenu();
+ })
+ .catch((err) => {
+ log.error('Error restarting node', err);
+
+ reject(err);
+ });
+ });
+
+ // launch app
+ ipcMain.on('onBoarding_launchApp', () => {
+ // prevent that it closes the app
+ onboardingWindow.removeAllListeners('closed');
+ onboardingWindow.close();
+ store.dispatch({ type: 'ONBOARDING_WINDOW::CLOSE' });
+
+ ipcMain.removeAllListeners('onBoarding_changeNet');
+ ipcMain.removeAllListeners('onBoarding_launchApp');
+
+ resolve();
+ });
+
+ if (splashWindow) {
+ splashWindow.hide();
+ }
});
+ }
+
+ return;
+ })
+ .then(function doSync() {
+ // we're going to do the sync - so show splash
+ if (splashWindow) {
+ splashWindow.show();
+ }
+
+ if (!Settings.inAutoTestMode) {
+ return syncResultPromise;
+ }
+
+ return;
+ })
+ .then(function allDone() {
+ startMainWindow();
+ })
+ .catch((err) => {
+ log.error('Error starting up node and/or syncing', err);
+ }); /* socket connected to geth */
+ }; /* kick start */
- // launch app
- ipcMain.on('onBoarding_launchApp', () => {
- // prevent that it closes the app
- onboardingWindow.removeAllListeners('closed');
- onboardingWindow.close();
+ if (splashWindow) {
+ splashWindow.on('ready', kickStart);
+ } else {
+ kickStart();
+ }
+ }; /* onReady() */
- ipcMain.removeAllListeners('onBoarding_changeNet');
- ipcMain.removeAllListeners('onBoarding_launchApp');
- resolve();
- });
+ /**
+ Start the main window and all its processes
- if (splashWindow) {
- splashWindow.hide();
- }
- });
- }
+ @method startMainWindow
+ */
+ startMainWindow = () => {
+ log.info(`Loading Interface at ${global.interfaceAppUrl}`);
- return;
- })
- .then(function doSync() {
- // we're going to do the sync - so show splash
+ mainWindow.on('ready', () => {
if (splashWindow) {
- splashWindow.show();
+ splashWindow.close();
+ store.dispatch({ type: 'SPLASH_WINDOW::CLOSE' });
}
- if (!Settings.inAutoTestMode) {
- return syncResultPromise;
- }
-
- return;
- })
- .then(function allDone() {
- startMainWindow();
- })
- .catch((err) => {
- log.error('Error starting up node and/or syncing', err);
- }); /* socket connected to geth */
- }; /* kick start */
-
- if (splashWindow) {
- splashWindow.on('ready', kickStart);
- } else {
- kickStart();
- }
-}; /* onReady() */
-
-
-/**
-Start the main window and all its processes
-
-@method startMainWindow
-*/
-startMainWindow = () => {
- log.info(`Loading Interface at ${global.interfaceAppUrl}`);
+ mainWindow.show();
+ store.dispatch({ type: 'MAIN_WINDOW::SHOW' });
+ });
- mainWindow.on('ready', () => {
- if (splashWindow) {
- splashWindow.close();
- }
+ mainWindow.load(global.interfaceAppUrl);
- mainWindow.show();
- });
+ // close app, when the main window is closed
+ mainWindow.on('closed', () => {
+ store.dispatch(quitApp());
+ });
- mainWindow.load(global.interfaceAppUrl);
+ // observe Tabs for changes and refresh menu
+ const Tabs = global.db.getCollection('UI_tabs');
- // close app, when the main window is closed
- mainWindow.on('closed', () => {
- store.dispatch(quitApp());
- });
+ const sortedTabs = Tabs.addDynamicView('sorted_tabs');
+ sortedTabs.applySimpleSort('position', false);
- // observe Tabs for changes and refresh menu
- const Tabs = global.db.getCollection('UI_tabs');
+ const refreshMenu = () => {
+ clearTimeout(global._refreshMenuFromTabsTimer);
- const sortedTabs = Tabs.addDynamicView('sorted_tabs');
- sortedTabs.applySimpleSort('position', false);
+ global._refreshMenuFromTabsTimer = setTimeout(() => {
+ log.debug('Refresh menu with tabs');
- const refreshMenu = () => {
- clearTimeout(global._refreshMenuFromTabsTimer);
+ global.webviews = sortedTabs.data();
- global._refreshMenuFromTabsTimer = setTimeout(() => {
- log.debug('Refresh menu with tabs');
+ appMenu(global.webviews);
+ store.dispatch({ type: 'MENU::REFRESH' });
+ }, 1000);
+ };
- global.webviews = sortedTabs.data();
-
- appMenu(global.webviews);
- }, 1000);
+ Tabs.on('insert', refreshMenu);
+ Tabs.on('update', refreshMenu);
+ Tabs.on('delete', refreshMenu);
};
-
- Tabs.on('insert', refreshMenu);
- Tabs.on('update', refreshMenu);
- Tabs.on('delete', refreshMenu);
-};
+}
diff --git a/modules/core/rootReducer.js b/modules/core/rootReducer.js
index 19d89e757..7d7ad8a61 100644
--- a/modules/core/rootReducer.js
+++ b/modules/core/rootReducer.js
@@ -1,6 +1,8 @@
import { combineReducers } from 'redux';
+import settings from './settings/reducer';
import ui from './ui/reducer';
export default combineReducers({
+ settings,
ui,
});
diff --git a/modules/core/settings/reducer.js b/modules/core/settings/reducer.js
new file mode 100644
index 000000000..e747d6184
--- /dev/null
+++ b/modules/core/settings/reducer.js
@@ -0,0 +1,61 @@
+const initialState = {
+ appVersion: '',
+ autoTestMode: false,
+ dbInit: false,
+ dbSync: false,
+ dirname: '',
+ gpuBlacklist: false,
+ i18n: '',
+ ipcProviderBackendInit: false,
+ mining: false,
+ productionMode: null,
+ protocols: [],
+ rpcMode: '',
+ settingsInit: false,
+ swarmInit: false,
+ uiMode: '',
+ updateCheckerRan: false,
+};
+
+const settings = (state = initialState, action) => {
+ switch (action.type) {
+ case 'DB::INIT':
+ return Object.assign({}, state, { dbInit: true });
+ case 'DB::SYNC_TO_BACKEND':
+ return Object.assign({}, state, { dbSync: true });
+ case 'PROTOCOL::REGISTER':
+ return Object.assign({}, state, {
+ protocols: state.protocols.concat(action.payload.protocol)
+ });
+ case 'SETTINGS::INIT_FINISH':
+ return Object.assign({}, state, { settingsInit: true });
+ case 'SETTINGS_APP_VERSION::SET':
+ return Object.assign({}, state, { appVersion: action.payload.appVersion });
+ case 'SETTINGS_GPU_BLACKLIST::SET':
+ return Object.assign({}, state, { gpuBlacklist: true });
+ case 'SETTINGS_AUTO_TEST_MODE::SET':
+ return Object.assign({}, state, { autoTestMode: true });
+ case 'SETTINGS_PRODUCTION_MODE::SET':
+ return Object.assign({}, state, { productionMode: action.payload.productionMode });
+ case 'SETTINGS_RPC_MODE::SET':
+ return Object.assign({}, state, { rpcMode: action.payload.rpcMode });
+ case 'SETTINGS_MINING::SET':
+ return Object.assign({}, state, { mining: action.payload.mining });
+ case 'SETTINGS_UI_MODE::SET':
+ return Object.assign({}, state, { uiMode: action.payload.uiMode });
+ case 'SETTINGS_DIRNAME::SET':
+ return Object.assign({}, state, { dirname: action.payload.dirname });
+ case 'SETTINGS_I18N::SET':
+ return Object.assign({}, state, { i18n: action.payload.i18n });
+ case 'SWARM::INIT_FINISH':
+ return Object.assign({}, state, { swarmInit: true });
+ case 'UPDATE_CHECKER::FINISH':
+ return Object.assign({}, state, { updateCheckerRan: true });
+ case 'IPC_PROVIDER_BACKEND::FINISH':
+ return Object.assign({}, state, { ipcProviderBackendInit: true });
+ default:
+ return state;
+ }
+}
+
+export default settings;
diff --git a/modules/core/store.js b/modules/core/store.js
index 1ddc5e469..fe6032185 100644
--- a/modules/core/store.js
+++ b/modules/core/store.js
@@ -1,10 +1,14 @@
-import { createStore } from 'redux';
+import { createStore, applyMiddleware } from 'redux';
import { app } from 'electron';
-import devToolsEnhancer from 'remote-redux-devtools';
+import { composeWithDevTools } from 'remote-redux-devtools';
import rootReducer from './rootReducer';
+import thunk from 'redux-thunk';
-export default async function configureReduxStore() {
- const store = createStore(rootReducer, devToolsEnhancer());
+export default function configureReduxStore() {
+ const store = createStore(
+ rootReducer,
+ composeWithDevTools(applyMiddleware(thunk))
+ );
store.subscribe(() => {
const state = store.getState();
diff --git a/modules/core/ui/actions.js b/modules/core/ui/actions.js
index b128d0c01..c208335d8 100644
--- a/modules/core/ui/actions.js
+++ b/modules/core/ui/actions.js
@@ -1,7 +1,3 @@
-export function createSplashWindow(uiMode) {
- return { type: 'SPLASH_WINDOW::CREATE', payload: { uiMode } };
-}
-
export function quitApp() {
return { type: 'APP::QUIT' };
}
diff --git a/modules/core/ui/reducer.js b/modules/core/ui/reducer.js
index 821defd98..f47c42ccc 100644
--- a/modules/core/ui/reducer.js
+++ b/modules/core/ui/reducer.js
@@ -1,29 +1,40 @@
const initialState = {
appQuit: false,
+ mainWindowCreated: false,
+ mainWindowVisible: false,
+ onboardingWindowCreated: false,
+ onboardingWindowVisible: false,
splashWindowCreated: false,
splashWindowVisible: false,
- uiMode: '',
+ windowsInit: false,
};
const ui = (state = initialState, action) => {
switch (action.type) {
- case 'SPLASH_WINDOW::CREATE':
- return Object.assign({}, state, {
- created: true,
- uiMode: action.payload.uiMode
- });
+ case 'APP::QUIT':
+ return Object.assign({}, state, { appQuit: true });
+ case 'MAIN_WINDOW::CLOSE':
+ return Object.assign({}, state, { mainWindowVisible: false });
+ case 'MAIN_WINDOW::CREATE_SUCCESS':
+ return Object.assign({}, state, { mainWindowCreated: true });
+ case 'MAIN_WINDOW::SHOW':
+ return Object.assign({}, state, { mainWindowVisible: true });
+ case 'MAIN_WINDOW::HIDE':
+ return Object.assign({}, state, { mainWindowVisible: false });
+ case 'ONBOARDING_WINDOW::CLOSE':
+ return Object.assign({}, state, { onboardingWindowVisible: false });
+ case 'ONBOARDING_WINDOW::CREATE_SUCCESS':
+ return Object.assign({}, state, { onboardingWindowCreated: true, onboardingWindowVisible: true });
+ case 'SPLASH_WINDOW::CLOSE':
+ return Object.assign({}, state, { splashWindowVisible: false });
+ case 'SPLASH_WINDOW::CREATE_SUCCESS':
+ return Object.assign({}, state, { splashWindowCreated: true });
case 'SPLASH_WINDOW::SHOW':
- return Object.assign({}, state, {
- splashWindowVisible: true
- });
+ return Object.assign({}, state, { splashWindowVisible: true });
case 'SPLASH_WINDOW::HIDE':
- return Object.assign({}, state, {
- splashWindowVisible: true
- });
- case 'APP::QUIT':
- return Object.assign({}, state, {
- appQuit: true
- });
+ return Object.assign({}, state, { splashWindowVisible: false });
+ case 'WINDOWS::INIT_FINISH':
+ return Object.assign({}, state, { windowsInit: true });
default:
return state;
}
diff --git a/modules/menuItems.js b/modules/menuItems.js
index 56d21738c..4d8b573e4 100644
--- a/modules/menuItems.js
+++ b/modules/menuItems.js
@@ -316,6 +316,7 @@ let menuTempl = function (webviews) {
browserWindow.webContents.executeJavaScript(
`TAPi18n.setLanguage("${langCode}");`
);
+ store.dispatch({ type: 'SETTINGS_I18N::SET', payload: { i18n: langCode } });
// set Accept_Language header
const session = browserWindow.webContents.session;
diff --git a/modules/windows.js b/modules/windows.js
index 2670b6a50..e44d410a9 100644
--- a/modules/windows.js
+++ b/modules/windows.js
@@ -1,4 +1,3 @@
-const _ = global._;
const { app, BrowserWindow, ipcMain: ipc } = require('electron');
const Settings = require('./settings');
const log = require('./utils/logger').create('Windows');
@@ -220,6 +219,7 @@ class Windows {
create(type, options, callback) {
+ log.info(`Creating window: ${type}`);
options = options || {};
const existing = this.getByType(type);
diff --git a/package.json b/package.json
index 987b75e3a..0a62282fd 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,8 @@
"oboe": "^2.1.3",
"os-timesync": "^1.0.7",
"redux": "^3.7.2",
+ "redux-thunk": "^2.2.0",
+ "remote-redux-devtools": "^0.5.12",
"semver": "^5.1.0",
"solc": "^0.4.15",
"swarm-js": "^0.1.21",
@@ -67,8 +69,6 @@
"json-structure-diff": "^0.0.2",
"minimist": "^1.2.0",
"mocha": "^3.2.0",
- "redux-devtools-extension": "^2.13.2",
- "remote-redux-devtools": "^0.5.12",
"require-dir": "^0.3.2",
"run-sequence": "^1.2.1",
"semver-compare": "^1.0.0",
diff --git a/yarn.lock b/yarn.lock
index 6523c2b40..07b84fde1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4292,10 +4292,6 @@ redent@^1.0.0:
indent-string "^2.1.0"
strip-indent "^1.0.1"
-redux-devtools-extension@^2.13.2:
- version "2.13.2"
- resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.2.tgz#e0f9a8e8dfca7c17be92c7124958a3b94eb2911d"
-
redux-devtools-instrument@^1.3.3:
version "1.8.2"
resolved "https://registry.yarnpkg.com/redux-devtools-instrument/-/redux-devtools-instrument-1.8.2.tgz#5e91cfe402e790dae3fd2f0d235f7b7d84b09ffe"
@@ -4303,6 +4299,10 @@ redux-devtools-instrument@^1.3.3:
lodash "^4.2.0"
symbol-observable "^1.0.2"
+redux-thunk@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.2.0.tgz#e615a16e16b47a19a515766133d1e3e99b7852e5"
+
redux@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
From 1475ddf15647177b395fb6fe729de802225946cd Mon Sep 17 00:00:00 2001
From: Marc Garreau
Date: Tue, 3 Oct 2017 11:25:00 -0600
Subject: [PATCH 005/150] Redux electron store (#3082)
* Introduces Redux store
* Introduces cient-side Redux store
* Refacators initial i18n language setting
* Fully refactors i18n Redux workflow
* Stores CLI flags in Redux
* Refactors some setup into Settings init
* Adds settings reducer tests
* tests settings actions creators
* Generalizes build sync actions
---
interface/client/actions.js | 12 +
interface/client/appStart.js | 6 +-
main.js | 59 +-
modules/core/settings/actions.js | 90 +
modules/core/settings/reducer.js | 32 +-
modules/core/store.js | 9 +-
modules/ipcCommunicator.js | 15 +-
modules/menuItems.js | 31 +-
modules/preloader/mistUI.js | 16 +
modules/preloader/splashScreen.js | 2 +-
modules/settings.js | 33 +-
package.json | 6 +-
tests/unit/core/settings/actions.test.js | 96 +
tests/unit/core/settings/reducer.test.js | 63 +
yarn.lock | 5768 ----------------------
15 files changed, 352 insertions(+), 5886 deletions(-)
create mode 100644 interface/client/actions.js
create mode 100644 modules/core/settings/actions.js
create mode 100644 tests/unit/core/settings/actions.test.js
create mode 100644 tests/unit/core/settings/reducer.test.js
delete mode 100644 yarn.lock
diff --git a/interface/client/actions.js b/interface/client/actions.js
new file mode 100644
index 000000000..7f100cb24
--- /dev/null
+++ b/interface/client/actions.js
@@ -0,0 +1,12 @@
+exports.getLanguage = function getLanguage() {
+ return function (dispatch) {
+ dispatch({ type: '[CLIENT]:GET_LANGUAGE:START' });
+ try {
+ const lang = ipc.sendSync('backendAction_getLanguage');
+ TAPi18n.setLanguage(lang);
+ dispatch({ type: '[CLIENT]:GET_LANGUAGE:SUCCESS', payload: { i18n: lang } });
+ } catch (error) {
+ dispatch({ type: '[CLIENT]:GET_LANGUAGE:FAILURE', error });
+ }
+ }
+}
diff --git a/interface/client/appStart.js b/interface/client/appStart.js
index 459fc08c3..2236d1533 100644
--- a/interface/client/appStart.js
+++ b/interface/client/appStart.js
@@ -1,3 +1,5 @@
+const { getLanguage } = require('./actions.js');
+
/**
The init function of Mist
@@ -65,9 +67,7 @@ Meteor.startup(function () {
mistInit();
}
- console.debug('Setting language');
-
- TAPi18n.setLanguage(ipc.sendSync('backendAction_getLanguage'));
+ store.dispatch(getLanguage());
// change moment and numeral language, when language changes
Tracker.autorun(function () {
diff --git a/main.js b/main.js
index 2e14bdc0a..03dd11a61 100644
--- a/main.js
+++ b/main.js
@@ -11,17 +11,16 @@ const UpdateChecker = require('./modules/updateChecker');
const Settings = require('./modules/settings');
const Q = require('bluebird');
const windowStateKeeper = require('electron-window-state');
-
+const log = logger.create('main');
import configureReduxStore from './modules/core/store';
import { quitApp } from './modules/core/ui/actions';
+import { setLanguageOnMain } from './modules/core/settings/actions';
Q.config({
cancellation: true,
});
-// logging setup
-const log = logger.create('main');
init();
@@ -29,37 +28,9 @@ async function init() {
global.store = await configureReduxStore();
Settings.init();
- store.dispatch({ type: 'SETTINGS::INIT_FINISH' });
-
- if (Settings.cli.version) {
- log.info(Settings.appVersion);
-
- process.exit(0);
- }
- store.dispatch({ type: 'SETTINGS_APP_VERSION::SET', payload: { appVersion: Settings.appVersion } });
-
- if (Settings.cli.ignoreGpuBlacklist) {
- app.commandLine.appendSwitch('ignore-gpu-blacklist', 'true');
- store.dispatch({ type: 'SETTINGS_GPU_BLACKLIST::SET' });
- }
-
- if (Settings.inAutoTestMode) {
- log.info('AUTOMATED TESTING');
- store.dispatch({ type: 'SETTINGS_AUTO_TEST_MODE::SET' });
- }
-
- log.info(`Running in production mode: ${Settings.inProductionMode}`);
- store.dispatch({ type: 'SETTINGS_PRODUCTION_MODE::SET', payload: { productionMode: Settings.inProductionMode } });
- if (Settings.rpcMode === 'http') {
- log.warn('Connecting to a node via HTTP instead of ipcMain. This is less secure!!!!'.toUpperCase());
- }
- store.dispatch({ type: 'SETTINGS_RPC_MODE::SET', payload: { rpcMode: Settings.rpcMode } });
-
- // db
const db = global.db = require('./modules/db');
-
require('./modules/ipcCommunicator.js');
const appMenu = require('./modules/menuItems');
const ipcProviderBackend = require('./modules/ipc/ipcProviderBackend.js');
@@ -67,24 +38,17 @@ async function init() {
const swarmNode = require('./modules/swarmNode.js');
const nodeSync = require('./modules/nodeSync.js');
+ // Define global vars; The preloader makes some globals available to the client.
global.webviews = [];
-
global.mining = false;
- store.dispatch({ type: 'SETTINGS_MINING::SET', payload: { mining: false } });
-
- global.icon = `${__dirname}/icons/${Settings.uiMode}/icon.png`;
-
- global.mode = Settings.uiMode;
- store.dispatch({ type: 'SETTINGS_UI_MODE::SET', payload: { uiMode: Settings.uiMode } });
-
+ global.mode = store.getState().settings.uiMode;
+ global.icon = `${__dirname}/icons/${global.mode}/icon.png`;
global.dirname = __dirname;
- store.dispatch({ type: 'SETTINGS_DIRNAME::SET', payload: { dirname: __dirname } });
-
global.i18n = i18n;
// INTERFACE PATHS
// - WALLET
- if (Settings.uiMode === 'wallet') {
+ if (global.mode === 'wallet') {
log.info('Starting in Wallet mode');
global.interfaceAppUrl = (Settings.inProductionMode)
@@ -109,14 +73,12 @@ async function init() {
global.interfaceAppUrl = global.interfacePopupsUrl = url;
}
-
// prevent crashes and close gracefully
process.on('uncaughtException', (error) => {
log.error('UNCAUGHT EXCEPTION', error);
store.dispatch(quitApp());
});
-
// Quit when all windows are closed.
app.on('window-all-closed', () => {
store.dispatch(quitApp());
@@ -228,8 +190,7 @@ async function init() {
// require('./customProtocols.js');
// change to user language now that global.config object is ready
- i18n.changeLanguage(Settings.language);
- store.dispatch({ type: 'SETTINGS_I18N::SET', payload: { i18n: Settings.language } });
+ store.dispatch(setLanguageOnMain(Settings.language));
// add menu already here, so we have copy and paste functionality
appMenu();
@@ -244,7 +205,7 @@ async function init() {
store.dispatch({ type: 'MAIN_WINDOW::CREATE_START' });
// MIST
- if (Settings.uiMode === 'mist') {
+ if (global.mode === 'mist') {
mainWindow = Windows.create('main', {
primary: true,
electronOptions: {
@@ -291,7 +252,7 @@ async function init() {
splashWindow = Windows.create('splash', {
primary: true,
- url: `${global.interfacePopupsUrl}#splashScreen_${Settings.uiMode}`,
+ url: `${global.interfacePopupsUrl}#splashScreen_${global.mode}`,
show: true,
electronOptions: {
width: 400,
@@ -420,7 +381,7 @@ async function init() {
})
.then(() => {
// Wallet shouldn't start Swarm
- if (Settings.uiMode === 'wallet') {
+ if (global.mode === 'wallet') {
return Promise.resolve();
}
return swarmNode.init();
diff --git a/modules/core/settings/actions.js b/modules/core/settings/actions.js
new file mode 100644
index 000000000..4746d1baa
--- /dev/null
+++ b/modules/core/settings/actions.js
@@ -0,0 +1,90 @@
+export function syncFlags(argv) {
+ return { type: '[MAIN]:CLI_FLAGS:SYNC', payload: { cliFlags: argv } };
+}
+
+export function syncBuildConfig(key, value) {
+ return {
+ type: '[MAIN]:BUILD_CONFIG:SYNC',
+ payload: { [key]: value }
+ };
+}
+
+export function setLanguage(lang, browserWindow) {
+ return dispatch => {
+ dispatch({ type: '[MAIN]:SET_LANGUAGE:START' });
+ dispatch(setLanguageOnMain(lang));
+ dispatch(setLanguageOnClient(lang, browserWindow));
+ dispatch(setAcceptLanguageHeader(lang, browserWindow));
+ dispatch(resetMenu(lang));
+ dispatch({ type: '[MAIN]:SET_LANGUAGE:FINISH' });
+ }
+}
+
+export function setLanguageOnMain(lang) {
+ return dispatch => {
+ dispatch({ type: '[MAIN]:SET_LANGUAGE_ON_MAIN:START' });
+ try {
+ i18n.changeLanguage(lang.substr(0, 5));
+ dispatch({ type: '[MAIN]:SET_LANGUAGE_ON_MAIN:SUCCESS', payload: { i18n: lang } });
+ } catch (error) {
+ dispatch({ type: '[MAIN]:SET_LANGUAGE_ON_MAIN:FAILURE', error });
+ }
+ }
+}
+
+export function setLanguageOnClient(lang, browserWindow) {
+ return dispatch => {
+ dispatch({ type: '[MAIN]:SET_LANGUAGE_ON_CLIENT:START' });
+ try {
+ browserWindow.webContents.executeJavaScript(
+ `TAPi18n.setLanguage("${lang}");`
+ );
+ dispatch({ type: '[MAIN]:SET_LANGUAGE_ON_CLIENT:SUCCESS', payload: { i18n: lang } });
+ } catch (error) {
+ dispatch({ type: '[MAIN]:SET_LANGUAGE_ON_CLIENT:FAILURE', error });
+ }
+ }
+}
+
+export function setAcceptLanguageHeader(lang, browserWindow) {
+ return dispatch => {
+ dispatch({ type: '[MAIN]:SET_ACCEPT_LANGUAGE_HEADER:START' });
+ try {
+ const session = browserWindow.webContents.session;
+ session.setUserAgent(session.getUserAgent(), lang);
+ dispatch({ type: '[MAIN]:SET_ACCEPT_LANGUAGE_HEADER:SUCCESS' });
+ } catch (error) {
+ dispatch({ type: '[MAIN]:SET_ACCEPT_LANGUAGE_HEADER:FAILURE', error });
+ }
+ }
+}
+
+export function resetMenu(lang) {
+ return dispatch => {
+ dispatch({ type: '[MAIN]:RESET_MENU:START' });
+ try {
+ const Settings = require('../../settings');
+ Settings.language = lang;
+
+ const appMenu = require('../../menuItems');
+ appMenu(global.webviews);
+
+ dispatch({ type: '[MAIN]:RESET_MENU:SUCCESS' });
+ } catch (error) {
+ dispatch({ type: '[MAIN]:RESET_MENU:FAILURE', error });
+ }
+ }
+}
+
+export function getLanguage(event) {
+ return (dispatch, getState) => {
+ dispatch({ type: '[MAIN]:GET_LANGUAGE:START' });
+ try {
+ const i18n = getState().settings.i18n;
+ event.returnValue = i18n;
+ dispatch({ type: '[MAIN]:GET_LANGUAGE:SUCCESS', payload: { i18n } });
+ } catch (error) {
+ dispatch({ type: '[MAIN]:GET_LANGUAGE:FAILURE', error });
+ }
+ }
+}
diff --git a/modules/core/settings/reducer.js b/modules/core/settings/reducer.js
index e747d6184..ddc12da03 100644
--- a/modules/core/settings/reducer.js
+++ b/modules/core/settings/reducer.js
@@ -1,20 +1,19 @@
-const initialState = {
+export const initialState = {
appVersion: '',
autoTestMode: false,
dbInit: false,
dbSync: false,
- dirname: '',
- gpuBlacklist: false,
+ ignoreGpuBlacklist: false,
i18n: '',
ipcProviderBackendInit: false,
mining: false,
productionMode: null,
protocols: [],
rpcMode: '',
- settingsInit: false,
swarmInit: false,
uiMode: '',
updateCheckerRan: false,
+ cliFlags: {}
};
const settings = (state = initialState, action) => {
@@ -27,25 +26,18 @@ const settings = (state = initialState, action) => {
return Object.assign({}, state, {
protocols: state.protocols.concat(action.payload.protocol)
});
- case 'SETTINGS::INIT_FINISH':
- return Object.assign({}, state, { settingsInit: true });
- case 'SETTINGS_APP_VERSION::SET':
- return Object.assign({}, state, { appVersion: action.payload.appVersion });
- case 'SETTINGS_GPU_BLACKLIST::SET':
- return Object.assign({}, state, { gpuBlacklist: true });
- case 'SETTINGS_AUTO_TEST_MODE::SET':
+ case '[MAIN]:BUILD_CONFIG:SYNC':
+ const key = Object.keys(action.payload)[0];
+ return Object.assign({}, state, { [key]: action.payload[key] });
+ case '[MAIN]:IGNORE_GPU_BLACKLIST:SET':
+ return Object.assign({}, state, { ignoreGpuBlacklist: true });
+ case '[MAIN]:TEST_MODE:SET':
return Object.assign({}, state, { autoTestMode: true });
- case 'SETTINGS_PRODUCTION_MODE::SET':
- return Object.assign({}, state, { productionMode: action.payload.productionMode });
- case 'SETTINGS_RPC_MODE::SET':
- return Object.assign({}, state, { rpcMode: action.payload.rpcMode });
case 'SETTINGS_MINING::SET':
return Object.assign({}, state, { mining: action.payload.mining });
- case 'SETTINGS_UI_MODE::SET':
- return Object.assign({}, state, { uiMode: action.payload.uiMode });
- case 'SETTINGS_DIRNAME::SET':
- return Object.assign({}, state, { dirname: action.payload.dirname });
- case 'SETTINGS_I18N::SET':
+ case '[MAIN]:CLI_FLAGS:SYNC':
+ return Object.assign({}, state, { cliFlags: action.payload.cliFlags });
+ case '[MAIN]:SET_LANGUAGE_ON_MAIN:SUCCESS':
return Object.assign({}, state, { i18n: action.payload.i18n });
case 'SWARM::INIT_FINISH':
return Object.assign({}, state, { swarmInit: true });
diff --git a/modules/core/store.js b/modules/core/store.js
index fe6032185..2df2bf83f 100644
--- a/modules/core/store.js
+++ b/modules/core/store.js
@@ -1,13 +1,16 @@
import { createStore, applyMiddleware } from 'redux';
-import { app } from 'electron';
+import { electronEnhancer } from 'redux-electron-store';
import { composeWithDevTools } from 'remote-redux-devtools';
-import rootReducer from './rootReducer';
import thunk from 'redux-thunk';
+import { app } from 'electron';
+import rootReducer from './rootReducer';
export default function configureReduxStore() {
const store = createStore(
rootReducer,
- composeWithDevTools(applyMiddleware(thunk))
+ composeWithDevTools(applyMiddleware(thunk), electronEnhancer({
+ dispatchProxy: a => store.dispatch(a)
+ }))
);
store.subscribe(() => {
diff --git a/modules/ipcCommunicator.js b/modules/ipcCommunicator.js
index 915520489..3a6892fed 100644
--- a/modules/ipcCommunicator.js
+++ b/modules/ipcCommunicator.js
@@ -14,6 +14,8 @@ const Settings = require('./settings');
const ethereumNode = require('./ethereumNode.js');
const keyfileRecognizer = require('ethereum-keyfile-recognizer');
+import { getLanguage } from './core/settings/actions';
+
const log = logger.create('ipcCommunicator');
require('./abi.js');
@@ -90,18 +92,7 @@ ipc.on('backendAction_windowMessageToOwner', (e, error, value) => {
}
});
-ipc.on('backendAction_setLanguage', (e) => {
- global.i18n.changeLanguage(Settings.language.substr(0, 5), (err) => {
- if (!err) {
- log.info('Backend language set to: ', global.i18n.language);
- appMenu(global.webviews);
- }
- });
-});
-
-ipc.on('backendAction_getLanguage', (e) => {
- e.returnValue = Settings.language;
-});
+ipc.on('backendAction_getLanguage', (e) => { store.dispatch(getLanguage(e)); });
ipc.on('backendAction_stopWebviewNavigation', (e, id) => {
console.log('webcontent ID', id);
diff --git a/modules/menuItems.js b/modules/menuItems.js
index 4d8b573e4..3ebd5e826 100644
--- a/modules/menuItems.js
+++ b/modules/menuItems.js
@@ -9,6 +9,8 @@ const ethereumNode = require('./ethereumNode.js');
const swarmNode = require('./swarmNode.js');
const ClientBinaryManager = require('./clientBinaryManager');
+import { setLanguage } from './core/settings/actions';
+
// Make easier to return values for specific systems
const switchForSystem = function (options) {
@@ -310,33 +312,8 @@ let menuTempl = function (webviews) {
});
// LANGUAGE (VIEW)
- const switchLang = langCode => function (menuItem, browserWindow) {
- try {
- // update i18next instance in browserWindow (Mist meteor interface)
- browserWindow.webContents.executeJavaScript(
- `TAPi18n.setLanguage("${langCode}");`
- );
- store.dispatch({ type: 'SETTINGS_I18N::SET', payload: { i18n: langCode } });
-
- // set Accept_Language header
- const session = browserWindow.webContents.session;
- session.setUserAgent(session.getUserAgent(), langCode);
-
- // set navigator.language (dev console only)
- // browserWindow.webContents.executeJavaScript(
- // `Object.defineProperty(navigator, 'language, {
- // get() { return ${langCode}; }
- // });`
- // );
-
- // reload browserWindow to apply language change
- // browserWindow.webContents.reload();
- } catch (err) {
- log.error(err);
- } finally {
- Settings.language = langCode;
- ipc.emit('backendAction_setLanguage');
- }
+ const switchLang = langCode => (menuItem, browserWindow) => {
+ store.dispatch(setLanguage(langCode, browserWindow));
};
const currentLanguage = Settings.language;
diff --git a/modules/preloader/mistUI.js b/modules/preloader/mistUI.js
index e44e297b0..ee2a1ae89 100644
--- a/modules/preloader/mistUI.js
+++ b/modules/preloader/mistUI.js
@@ -2,6 +2,22 @@
@module preloader MistUI
*/
+// Create the client-side Redux store. This store's only purpose
+// is to receive actions and keep them in sync with the main store.
+const { createStore, compose, applyMiddleware } = require('redux');
+const { electronEnhancer } = require('redux-electron-store');
+const thunk = require('redux-thunk').default;
+
+window.store = createStore(
+ () => {},
+ compose(
+ applyMiddleware(thunk),
+ electronEnhancer({
+ dispatchProxy: a => store.dispatch(a)
+ })
+ )
+);
+
require('./include/common')('mist');
require('./include/web3CurrentProvider.js');
const { ipcRenderer, remote, webFrame } = require('electron'); // eslint-disable-line import/newline-after-import
diff --git a/modules/preloader/splashScreen.js b/modules/preloader/splashScreen.js
index 1eda72307..98308dfbb 100644
--- a/modules/preloader/splashScreen.js
+++ b/modules/preloader/splashScreen.js
@@ -7,7 +7,7 @@ require('./include/openExternal.js');
require('./include/setBasePath')('interface');
// set appmenu language
-ipcRenderer.send('backendAction_setLanguage');
+ipcRenderer.send('backendAction_getLanguage');
// disable pinch zoom
webFrame.setZoomLevelLimits(1, 1);
diff --git a/modules/settings.js b/modules/settings.js
index b09f77afa..e96886d04 100644
--- a/modules/settings.js
+++ b/modules/settings.js
@@ -6,6 +6,7 @@ const packageJson = require('../package.json');
const _ = require('./utils/underscore');
const lodash = require('lodash');
+import { syncBuildConfig, syncFlags } from './core/settings/actions';
// try loading in config file
const defaultConfig = {
@@ -166,12 +167,40 @@ if (argv.nodeOptions && argv.nodeOptions.syncmode) {
class Settings {
init() {
logger.setup(argv);
-
this._log = logger.create('Settings');
+ store.dispatch(syncFlags(argv));
+
+ // If -v flag provided, log the Mist version and exit
+ if (argv.version) {
+ this._log.info(`Mist v${this.appVersion}`);
+ process.exit(0);
+ }
+
+ // Some Linux installations require this setting:
+ if (argv.ignoreGpuBlacklist) {
+ app.commandLine.appendSwitch('ignore-gpu-blacklist', 'true');
+ store.dispatch({ type: '[MAIN]:IGNORE_GPU_BLACKLIST:SET' });
+ }
+
+ if (this.inAutoTestMode) {
+ this._log.info('AUTOMATED TESTING');
+ store.dispatch({ type: '[MAIN]:TEST_MODE:SET' });
+ }
+
+ this._log.info(`Running in production mode: ${this.inProductionMode}`);
+
+ if (this.rpcMode === 'http') {
+ this._log.warn('Connecting to a node via HTTP instead of ipcMain. This is less secure!!!!'.toUpperCase());
+ }
+
+ store.dispatch(syncBuildConfig('appVersion', packageJson.version));
+ store.dispatch(syncBuildConfig('rpcMode', this.rpcMode));
+ store.dispatch(syncBuildConfig('productionMode', this.inProductionMode));
+ store.dispatch(syncBuildConfig('uiMode', this.uiMode));
}
get userDataPath() {
- // Application Aupport/Mist
+ // Application Support/Mist
return app.getPath('userData');
}
diff --git a/package.json b/package.json
index 0a62282fd..03a8c505b 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,9 @@
"postinstall": "cd interface && yarn",
"dev:electron": "electron -r babel-register main.js",
"dev:meteor": "cd interface && meteor --no-release-check",
- "dev:tools": "open http://remotedev.io/local/"
+ "dev:tools": "open http://remotedev.io/local/",
+ "test:unit": "mocha --compilers babel-register tests/unit/**/* --watch",
+ "test:unit:once": "mocha --compilers babel-register tests/unit/**/*"
},
"main": "main.js",
"dependencies": {
@@ -35,6 +37,7 @@
"oboe": "^2.1.3",
"os-timesync": "^1.0.7",
"redux": "^3.7.2",
+ "redux-electron-store": "^0.4.1",
"redux-thunk": "^2.2.0",
"remote-redux-devtools": "^0.5.12",
"semver": "^5.1.0",
@@ -69,6 +72,7 @@
"json-structure-diff": "^0.0.2",
"minimist": "^1.2.0",
"mocha": "^3.2.0",
+ "redux-mock-store": "^1.3.0",
"require-dir": "^0.3.2",
"run-sequence": "^1.2.1",
"semver-compare": "^1.0.0",
diff --git a/tests/unit/core/settings/actions.test.js b/tests/unit/core/settings/actions.test.js
new file mode 100644
index 000000000..754cb1292
--- /dev/null
+++ b/tests/unit/core/settings/actions.test.js
@@ -0,0 +1,96 @@
+import { assert } from 'chai';
+import configureMockStore from 'redux-mock-store';
+import thunk from 'redux-thunk';
+import { initialState } from '../../../../modules/core/settings/reducer';
+import rootReducer from '../../../../modules/core/rootReducer';
+import {
+ getLanguage,
+ resetMenu,
+ setAcceptLanguageHeader,
+ setLanguage,
+ setLanguageOnClient,
+ setLanguageOnMain,
+ syncBuildConfig,
+ syncFlags,
+} from '../../../../modules/core/settings/actions';
+
+describe('settings actions:', () => {
+ describe('synchronous action creators', () => {
+ it('should handle #syncFlags', () => {
+ const argv = { mode: 'mist', rpcMode: 'ipc', productionMode: true };
+ const action = {
+ type: '[MAIN]:CLI_FLAGS:SYNC',
+ payload: { cliFlags: argv }
+ };
+
+ assert.deepEqual(syncFlags(argv), action);
+ });
+
+ it('should handle #syncBuildConfig', () => {
+ const appVersion = '1.0.0';
+ const action = {
+ type: '[MAIN]:BUILD_CONFIG:SYNC',
+ payload: { appVersion }
+ };
+
+ assert.deepEqual(syncBuildConfig('appVersion', appVersion), action);
+ });
+ });
+
+ describe('asynchronous action creators', () => {
+ const middlewares = [thunk];
+ const initMockStore = configureMockStore(middlewares);
+ const store = initMockStore({ settings: initialState });
+
+ afterEach(() => store.clearActions());
+
+ it('should handle #setLanguage', async () => {
+ await store.dispatch(setLanguage('en', {}));
+ const actions = store.getActions();
+
+ assert.equal(actions.length, 10);
+ assert.equal(actions[0].type, '[MAIN]:SET_LANGUAGE:START');
+ assert.equal(actions.slice(-1)[0].type, '[MAIN]:SET_LANGUAGE:FINISH');
+ });
+
+ it('should handle #setLanguageOnMain', async () => {
+ await store.dispatch(setLanguageOnMain('en'));
+ const actions = store.getActions();
+
+ assert.equal(actions.length, 2);
+ assert.equal(actions[0].type, '[MAIN]:SET_LANGUAGE_ON_MAIN:START');
+ });
+
+ it('should handle #setLanguageOnClient', async () => {
+ await store.dispatch(setLanguageOnClient('en', {}));
+ const actions = store.getActions();
+
+ assert.equal(actions.length, 2);
+ assert.equal(actions[0].type, '[MAIN]:SET_LANGUAGE_ON_CLIENT:START');
+ });
+
+ it('should handle #setAcceptLanguageHeader', async () => {
+ await store.dispatch(setAcceptLanguageHeader('en', {}));
+ const actions = store.getActions();
+
+ assert.equal(actions.length, 2);
+ assert.equal(actions[0].type, '[MAIN]:SET_ACCEPT_LANGUAGE_HEADER:START');
+ });
+
+ it('should handle #resetMenu', async () => {
+ await store.dispatch(resetMenu('en'));
+ const actions = store.getActions();
+
+ assert.equal(actions.length, 2);
+ assert.equal(actions[0].type, '[MAIN]:RESET_MENU:START');
+ });
+
+ it('should handle #getLanguage', async () => {
+ await store.dispatch(getLanguage({}));
+ const actions = store.getActions();
+
+ assert.equal(actions.length, 2);
+ assert.equal(actions[0].type, '[MAIN]:GET_LANGUAGE:START');
+ });
+ });
+});
diff --git a/tests/unit/core/settings/reducer.test.js b/tests/unit/core/settings/reducer.test.js
new file mode 100644
index 000000000..7ed05c83c
--- /dev/null
+++ b/tests/unit/core/settings/reducer.test.js
@@ -0,0 +1,63 @@
+import { assert } from 'chai';
+import reducer, { initialState } from '../../../../modules/core/settings/reducer';
+
+describe('the settings reducer', () => {
+ it('should return a default initial state', () => {
+ assert.deepEqual(reducer(undefined, {}), initialState);
+ });
+
+ it('should handle the "[MAIN]:BUILD_CONFIG:SYNC" action', () => {
+ const action = {
+ type: '[MAIN]:BUILD_CONFIG:SYNC',
+ payload: { appVersion: '1.0.0' }
+ };
+ const expectedState = Object.assign({}, initialState, {
+ appVersion: '1.0.0',
+ });
+
+ assert.deepEqual(reducer(initialState, action), expectedState);
+ });
+
+ it('should handle the "[MAIN]:IGNORE_GPU_BLACKLIST:SET" action', () => {
+ const action = { type: '[MAIN]:IGNORE_GPU_BLACKLIST:SET' };
+ const expectedState = Object.assign({}, initialState, {
+ ignoreGpuBlacklist: true
+ });
+
+ assert.deepEqual(reducer(initialState, action), expectedState);
+ });
+
+ it('should handle the "[MAIN]:CLI_FLAGS:SYNC" action', () => {
+ const action = {
+ type: '[MAIN]:CLI_FLAGS:SYNC',
+ payload: {
+ cliFlags: {
+ mode: 'mist',
+ syncmode: 'light',
+ swarmurl: 'http://localhost:8585'
+ }
+ }
+ };
+ const expectedState = Object.assign({}, initialState, {
+ cliFlags: {
+ mode: 'mist',
+ syncmode: 'light',
+ swarmurl: 'http://localhost:8585'
+ }
+ });
+
+ assert.deepEqual(reducer(initialState, action), expectedState);
+ });
+
+ it('should handle the "[MAIN]:SET_LANGUAGE_ON_MAIN:SUCCESS" action', () => {
+ const action = {
+ type: '[MAIN]:SET_LANGUAGE_ON_MAIN:SUCCESS',
+ payload: { i18n: 'de' }
+ };
+ const expectedState = Object.assign({}, initialState, {
+ i18n: 'de'
+ });
+
+ assert.deepEqual(reducer(initialState, action), expectedState);
+ });
+});
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index 07b84fde1..000000000
--- a/yarn.lock
+++ /dev/null
@@ -1,5768 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"7zip-bin-linux@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/7zip-bin-linux/-/7zip-bin-linux-1.1.0.tgz#2ca309fd6a2102e18bd81e3a5d91b39db9adab71"
-
-"7zip-bin-mac@^1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz#3e68778bbf0926adc68159427074505d47555c02"
-
-"7zip-bin-win@^2.1.1":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.1.1.tgz#8acfc28bb34e53a9476b46ae85a97418e6035c20"
-
-"7zip-bin@^2.0.4":
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.2.4.tgz#5d0a7da759258b7fa59121fddcec7cb65938a85c"
- optionalDependencies:
- "7zip-bin-linux" "^1.1.0"
- "7zip-bin-mac" "^1.0.1"
- "7zip-bin-win" "^2.1.1"
-
-"@types/node@^7.0.18":
- version "7.0.43"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c"
-
-accepts@~1.3.3:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f"
- dependencies:
- mime-types "~2.1.16"
- negotiator "0.6.1"
-
-acorn-jsx@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
- dependencies:
- acorn "^3.0.4"
-
-acorn@^3.0.4:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
-
-acorn@^5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7"
-
-ajv-keywords@^1.0.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
-
-ajv@^4.7.0, ajv@^4.9.1:
- version "4.11.8"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
- dependencies:
- co "^4.6.0"
- json-stable-stringify "^1.0.1"
-
-ajv@^5.1.0:
- version "5.2.3"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2"
- dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
- json-schema-traverse "^0.3.0"
- json-stable-stringify "^1.0.1"
-
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-
-ansi-align@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba"
- dependencies:
- string-width "^1.0.1"
-
-ansi-escapes@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-
-ansi-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-
-ansi-styles@^3.1.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
- dependencies:
- color-convert "^1.9.0"
-
-any-promise@^1.0.0, any-promise@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
-
-aproba@^1.0.3:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
-
-archiver-utils@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174"
- dependencies:
- glob "^7.0.0"
- graceful-fs "^4.1.0"
- lazystream "^1.0.0"
- lodash "^4.8.0"
- normalize-path "^2.0.0"
- readable-stream "^2.0.0"
-
-archiver@~1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22"
- dependencies:
- archiver-utils "^1.3.0"
- async "^2.0.0"
- buffer-crc32 "^0.2.1"
- glob "^7.0.0"
- lodash "^4.8.0"
- readable-stream "^2.0.0"
- tar-stream "^1.5.0"
- walkdir "^0.0.11"
- zip-stream "^1.1.0"
-
-archy@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
-
-are-we-there-yet@~1.1.2:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
- dependencies:
- delegates "^1.0.0"
- readable-stream "^2.0.6"
-
-argparse@^1.0.7:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
- dependencies:
- sprintf-js "~1.0.2"
-
-arr-diff@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
- dependencies:
- arr-flatten "^1.0.1"
-
-arr-flatten@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
-
-array-differ@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031"
-
-array-each@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f"
-
-array-find-index@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1"
-
-array-flatten@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
-
-array-slice@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.0.0.tgz#e73034f00dcc1f40876008fd20feae77bd4b7c2f"
-
-array-union@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
- dependencies:
- array-uniq "^1.0.1"
-
-array-uniq@^1.0.1, array-uniq@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-
-array-unique@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
-
-arrify@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
-
-asar-electron-builder@^0.13.5:
- version "0.13.5"
- resolved "https://registry.yarnpkg.com/asar-electron-builder/-/asar-electron-builder-0.13.5.tgz#4ccd4d11fd7c9d3b3cffc782fde3deed9ef91af6"
- dependencies:
- chromium-pickle-js "^0.2.0"
- commander "^2.9.0"
- cuint "^0.2.1"
- minimatch "^3.0.2"
- mkdirp "^0.5.1"
-
-asn1@~0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-
-assert-plus@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
-
-assertion-error@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
-
-async-limiter@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
-
-async@>=0.1.0, async@^2.0.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
- dependencies:
- lodash "^4.14.0"
-
-async@^0.9.0:
- version "0.9.2"
- resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
-
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
-
-atob@~1.1.0:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773"
-
-aws-sign2@~0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
-
-aws-sign2@~0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-
-aws4@^1.2.1, aws4@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
-
-babel-code-frame@^6.16.0, babel-code-frame@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
- dependencies:
- chalk "^1.1.3"
- esutils "^2.0.2"
- js-tokens "^3.0.2"
-
-babel-core@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8"
- dependencies:
- 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.0"
- debug "^2.6.8"
- json5 "^0.5.1"
- lodash "^4.17.4"
- minimatch "^3.0.4"
- path-is-absolute "^1.0.1"
- private "^0.1.7"
- slash "^1.0.0"
- source-map "^0.5.6"
-
-babel-generator@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5"
- dependencies:
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- detect-indent "^4.0.0"
- jsesc "^1.3.0"
- lodash "^4.17.4"
- source-map "^0.5.6"
- trim-right "^1.0.1"
-
-babel-helper-call-delegate@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d"
- dependencies:
- babel-helper-hoist-variables "^6.24.1"
- babel-runtime "^6.22.0"
- babel-traverse "^6.24.1"
- babel-types "^6.24.1"
-
-babel-helper-function-name@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9"
- dependencies:
- 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@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-hoist-variables@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-helper-regex@^6.24.1:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72"
- dependencies:
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- lodash "^4.17.4"
-
-babel-helper-remap-async-to-generator@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b"
- dependencies:
- 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-helpers@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2"
- dependencies:
- babel-runtime "^6.22.0"
- babel-template "^6.24.1"
-
-babel-messages@^6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-syntax-async-functions@^6.1.4, babel-plugin-syntax-async-functions@^6.8.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95"
-
-babel-plugin-syntax-async-generators@^6.1.4:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a"
-
-babel-plugin-transform-async-to-generator@^6.1.4:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761"
- dependencies:
- 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-destructuring@^6.0.2:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-modules-commonjs@^6.0.12:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a"
- dependencies:
- 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-parameters@^6.0.2:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b"
- dependencies:
- 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-spread@^6.1.4:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1"
- dependencies:
- babel-runtime "^6.22.0"
-
-babel-plugin-transform-es2015-sticky-regex@^6.0.2:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc"
- dependencies:
- babel-helper-regex "^6.24.1"
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-plugin-transform-es2015-unicode-regex@^6.0.2:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9"
- dependencies:
- babel-helper-regex "^6.24.1"
- babel-runtime "^6.22.0"
- regexpu-core "^2.0.0"
-
-babel-plugin-transform-strict-mode@^6.24.1:
- version "6.24.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758"
- dependencies:
- babel-runtime "^6.22.0"
- babel-types "^6.24.1"
-
-babel-preset-es2016-node5@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/babel-preset-es2016-node5/-/babel-preset-es2016-node5-1.1.2.tgz#5ec43d2d8bf41d5315804740cc38f0ddeab26986"
- dependencies:
- babel-plugin-syntax-async-functions "^6.1.4"
- babel-plugin-syntax-async-generators "^6.1.4"
- babel-plugin-transform-async-to-generator "^6.1.4"
- babel-plugin-transform-es2015-destructuring "^6.0.2"
- babel-plugin-transform-es2015-modules-commonjs "^6.0.12"
- babel-plugin-transform-es2015-parameters "^6.0.2"
- babel-plugin-transform-es2015-spread "^6.1.4"
- babel-plugin-transform-es2015-sticky-regex "^6.0.2"
- babel-plugin-transform-es2015-unicode-regex "^6.0.2"
-
-babel-register@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071"
- dependencies:
- 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"
-
-babel-runtime@^6.22.0, babel-runtime@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.11.0"
-
-babel-runtime@~6.23.0:
- version "6.23.0"
- resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
- dependencies:
- core-js "^2.4.0"
- regenerator-runtime "^0.10.0"
-
-babel-template@^6.24.1, babel-template@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
- dependencies:
- babel-runtime "^6.26.0"
- babel-traverse "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- lodash "^4.17.4"
-
-babel-traverse@^6.24.1, babel-traverse@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
- dependencies:
- babel-code-frame "^6.26.0"
- babel-messages "^6.23.0"
- babel-runtime "^6.26.0"
- babel-types "^6.26.0"
- babylon "^6.18.0"
- debug "^2.6.8"
- globals "^9.18.0"
- invariant "^2.2.2"
- lodash "^4.17.4"
-
-babel-types@^6.24.1, babel-types@^6.26.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
- dependencies:
- babel-runtime "^6.26.0"
- esutils "^2.0.2"
- lodash "^4.17.4"
- to-fast-properties "^1.0.3"
-
-babylon@^6.18.0:
- version "6.18.0"
- resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
-
-balanced-match@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-
-base-64@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
-
-base64-js@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
-
-base64-js@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
-
-base64-js@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
-
-bcrypt-pbkdf@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
- dependencies:
- tweetnacl "^0.14.3"
-
-beeper@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809"
-
-bignumber.js@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz#db6f14067c140bd46624815a7916c92d9b6c24b1"
-
-"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2":
- version "2.0.7"
- resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2"
-
-binary@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79"
- dependencies:
- buffers "~0.1.1"
- chainsaw "~0.1.0"
-
-bindings@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
-
-bip66@^1.1.3:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22"
- dependencies:
- safe-buffer "^5.0.1"
-
-bl@^1.0.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
- dependencies:
- readable-stream "^2.0.5"
-
-block-stream@*:
- version "0.0.9"
- resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
- dependencies:
- inherits "~2.0.0"
-
-bluebird-lst-c@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/bluebird-lst-c/-/bluebird-lst-c-1.0.6.tgz#81f881d13f9df700f67d577f13480bc32d84bba9"
- dependencies:
- bluebird "^3.4.7"
-
-bluebird@^2.9.34:
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1"
-
-bluebird@^3.3.4, bluebird@^3.4.7, bluebird@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
-
-bn.js@^4.10.0, bn.js@^4.11.3, bn.js@^4.11.6, bn.js@^4.4.0, bn.js@^4.8.0:
- version "4.11.8"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
-
-body-parser@^1.16.0:
- version "1.18.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
- dependencies:
- bytes "3.0.0"
- content-type "~1.0.4"
- debug "2.6.9"
- depd "~1.1.1"
- http-errors "~1.6.2"
- iconv-lite "0.4.19"
- on-finished "~2.3.0"
- qs "6.5.1"
- raw-body "2.3.2"
- type-is "~1.6.15"
-
-boom@2.x.x:
- version "2.10.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
- dependencies:
- hoek "2.x.x"
-
-boom@4.x.x:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
- dependencies:
- hoek "4.x.x"
-
-boom@5.x.x:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
- dependencies:
- hoek "4.x.x"
-
-boxen@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6"
- dependencies:
- ansi-align "^1.1.0"
- camelcase "^2.1.0"
- chalk "^1.1.1"
- cli-boxes "^1.0.0"
- filled-array "^1.0.0"
- object-assign "^4.0.1"
- repeating "^2.0.0"
- string-width "^1.0.1"
- widest-line "^1.0.0"
-
-brace-expansion@^1.0.0, brace-expansion@^1.1.7:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-braces@^1.8.2:
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
- dependencies:
- expand-range "^1.8.1"
- preserve "^0.2.0"
- repeat-element "^1.1.2"
-
-brorand@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
-
-browser-stdout@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
-
-browserify-aes@^1.0.6:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309"
- dependencies:
- buffer-xor "^1.0.3"
- cipher-base "^1.0.0"
- create-hash "^1.1.0"
- evp_bytestokey "^1.0.3"
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-browserify-sha3@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.1.tgz#3ff34a3006ef15c0fb3567e541b91a2340123d11"
- dependencies:
- js-sha3 "^0.3.1"
-
-buffer-crc32@^0.2.1, buffer-crc32@~0.2.3:
- version "0.2.13"
- resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
-
-buffer-to-arraybuffer@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.2.tgz#d0d80564dc31866a1976515487b3ab620db7c849"
- dependencies:
- tape "^3.0.3"
-
-buffer-xor@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
-
-buffer@^3.0.1:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
- dependencies:
- base64-js "0.0.8"
- ieee754 "^1.1.4"
- isarray "^1.0.0"
-
-buffer@^5.0.5:
- version "5.0.7"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.7.tgz#570a290b625cf2603290c1149223d27ccf04db97"
- dependencies:
- base64-js "^1.0.2"
- ieee754 "^1.1.4"
-
-buffered-spawn@^3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/buffered-spawn/-/buffered-spawn-3.3.2.tgz#97b9846c4e446aa23320b4a94c5209edd32dacbb"
- dependencies:
- cross-spawn "^4.0.0"
-
-buffers@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
-
-builtin-modules@^1.0.0, builtin-modules@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-
-bytes@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
-
-caller-path@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
- dependencies:
- callsites "^0.2.0"
-
-callsites@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
-
-camelcase-keys@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
- dependencies:
- camelcase "^2.0.0"
- map-obj "^1.0.0"
-
-camelcase@^2.0.0, camelcase@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
-
-camelcase@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
-
-capture-stack-trace@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d"
-
-caseless@~0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-
-chai-as-promised@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6"
- dependencies:
- check-error "^1.0.2"
-
-chai-string@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.4.0.tgz#359140c051d36a4e4b1a5fc6b910152f438a8d49"
-
-chai@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
- dependencies:
- assertion-error "^1.0.1"
- deep-eql "^0.1.3"
- type-detect "^1.0.0"
-
-chainsaw@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98"
- dependencies:
- traverse ">=0.3.0 <0.4"
-
-chalk@*:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
- dependencies:
- ansi-styles "^3.1.0"
- escape-string-regexp "^1.0.5"
- supports-color "^4.0.0"
-
-chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-check-error@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
-
-chownr@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181"
-
-chromium-pickle-js@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205"
-
-ci-info@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a"
-
-cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-circular-json@^0.3.1:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
-
-cli-boxes@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
-
-cli-cursor@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
- dependencies:
- restore-cursor "^1.0.1"
-
-cli-cursor@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
- dependencies:
- restore-cursor "^2.0.0"
-
-cli-width@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
-
-cliui@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
- wrap-ansi "^2.0.0"
-
-clone-stats@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
-
-clone@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
-
-clone@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"
-
-clone@^1.0.0, clone@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149"
-
-co-mocha@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/co-mocha/-/co-mocha-1.2.0.tgz#d9be35a2a2d16f4b1b0e83f6973401ca4b6660af"
- dependencies:
- co "^4.0.0"
- is-generator "^1.0.1"
-
-co@^4.0.0, co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-
-color-convert@^1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
- dependencies:
- color-name "^1.1.1"
-
-color-convert@~0.5.0:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd"
-
-color-name@^1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
-
-combined-stream@^1.0.5, combined-stream@~1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
- dependencies:
- delayed-stream "~1.0.0"
-
-commander@2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
- dependencies:
- graceful-readlink ">= 1.0.0"
-
-commander@^2.8.1, commander@^2.9.0:
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
-
-commander@~2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
- dependencies:
- graceful-readlink ">= 1.0.0"
-
-compare-version@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080"
-
-component-emitter@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe"
-
-compress-commons@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.0.tgz#58587092ef20d37cb58baf000112c9278ff73b9f"
- dependencies:
- buffer-crc32 "^0.2.1"
- crc32-stream "^2.0.0"
- normalize-path "^2.0.0"
- readable-stream "^2.0.0"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-concat-stream@1.6.0, concat-stream@^1.5.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
- dependencies:
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
-configstore@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1"
- dependencies:
- dot-prop "^3.0.0"
- graceful-fs "^4.1.2"
- mkdirp "^0.5.0"
- object-assign "^4.0.1"
- os-tmpdir "^1.0.0"
- osenv "^0.1.0"
- uuid "^2.0.1"
- write-file-atomic "^1.1.2"
- xdg-basedir "^2.0.0"
-
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
-
-contains-path@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
-
-content-disposition@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
-
-content-type@~1.0.2, content-type@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
-
-convert-source-map@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
-
-cookie-signature@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
-
-cookie@0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
-
-core-js@^2.4.0, core-js@^2.5.0:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b"
-
-core-util-is@1.0.2, core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-
-cors@^2.8.1:
- version "2.8.4"
- resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686"
- dependencies:
- object-assign "^4"
- vary "^1"
-
-crc32-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4"
- dependencies:
- crc "^3.4.4"
- readable-stream "^2.0.0"
-
-crc@^3.4.4:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/crc/-/crc-3.5.0.tgz#98b8ba7d489665ba3979f59b21381374101a1964"
-
-create-error-class@^3.0.0, create-error-class@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6"
- dependencies:
- capture-stack-trace "^1.0.0"
-
-create-hash@^1.1.0, create-hash@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
- dependencies:
- cipher-base "^1.0.1"
- inherits "^2.0.1"
- ripemd160 "^2.0.0"
- sha.js "^2.4.0"
-
-create-hmac@^1.1.4:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06"
- dependencies:
- cipher-base "^1.0.3"
- create-hash "^1.1.0"
- inherits "^2.0.1"
- ripemd160 "^2.0.0"
- safe-buffer "^5.0.1"
- sha.js "^2.4.8"
-
-cross-spawn@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
- dependencies:
- lru-cache "^4.0.1"
- which "^1.2.9"
-
-cryptiles@2.x.x:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
- dependencies:
- boom "2.x.x"
-
-cryptiles@3.x.x:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
- dependencies:
- boom "5.x.x"
-
-crypto-js@^3.1.4:
- version "3.1.8"
- resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5"
-
-css-parse@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4"
- dependencies:
- css "^2.0.0"
-
-css-value@~0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea"
-
-css@^2.0.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc"
- dependencies:
- inherits "^2.0.1"
- source-map "^0.1.38"
- source-map-resolve "^0.3.0"
- urix "^0.1.0"
-
-cuint@^0.2.1, cuint@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
-
-currently-unhandled@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
- dependencies:
- array-find-index "^1.0.1"
-
-d@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
- dependencies:
- es5-ext "^0.10.9"
-
-dashdash@^1.12.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
- dependencies:
- assert-plus "^1.0.0"
-
-date-format@^0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/date-format/-/date-format-0.0.0.tgz#09206863ab070eb459acea5542cbd856b11966b3"
-
-dateformat@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
-
-debug@2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
- dependencies:
- ms "0.7.1"
-
-debug@2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
- dependencies:
- ms "0.7.2"
-
-debug@2.6.8:
- version "2.6.8"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
- dependencies:
- ms "2.0.0"
-
-debug@2.6.9, debug@^2.1.1, debug@^2.1.3, debug@^2.2.0, debug@^2.6.0, debug@^2.6.8:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- dependencies:
- ms "2.0.0"
-
-debug@^0.7.2:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39"
-
-decamelize@^1.1.1, decamelize@^1.1.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-
-decompress-response@^3.2.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
- dependencies:
- mimic-response "^1.0.0"
-
-decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
- dependencies:
- file-type "^5.2.0"
- is-stream "^1.1.0"
- tar-stream "^1.5.2"
-
-decompress-tarbz2@^4.0.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b"
- dependencies:
- 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"
-
-decompress-targz@^4.0.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee"
- dependencies:
- decompress-tar "^4.1.1"
- file-type "^5.2.0"
- is-stream "^1.1.0"
-
-decompress-unzip@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69"
- dependencies:
- file-type "^3.8.0"
- get-stream "^2.2.0"
- pify "^2.3.0"
- yauzl "^2.4.2"
-
-decompress@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d"
- dependencies:
- 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"
-
-deep-eql@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
- dependencies:
- type-detect "0.1.1"
-
-deep-equal@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
-
-deep-equal@~0.2.0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.2.2.tgz#84b745896f34c684e98f2ce0e42abaf43bba017d"
-
-deep-extend@~0.4.0:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
-
-deep-is@~0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-
-deepmerge@~1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.3.2.tgz#1663691629d4dbfe364fa12a2a4f0aa86aa3a050"
-
-defaults@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
- dependencies:
- clone "^1.0.2"
-
-defined@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/defined/-/defined-0.0.0.tgz#f35eea7d705e933baf13b2f03b3f83d921403b3e"
-
-del@^2.0.2, del@^2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
- dependencies:
- globby "^5.0.0"
- is-path-cwd "^1.0.0"
- is-path-in-cwd "^1.0.0"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- rimraf "^2.2.8"
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-
-delegates@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-
-depd@1.1.1, depd@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
-
-deprecated@^0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19"
-
-destroy@~1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
-
-detect-file@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63"
- dependencies:
- fs-exists-sync "^0.1.0"
-
-detect-indent@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
- dependencies:
- repeating "^2.0.0"
-
-dev-null@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/dev-null/-/dev-null-0.1.1.tgz#5a205ce3c2b2ef77b6238d6ba179eb74c6a0e818"
-
-diff@3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
-
-doctrine@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
- dependencies:
- esutils "^2.0.2"
- isarray "^1.0.0"
-
-doctrine@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
- dependencies:
- esutils "^2.0.2"
- isarray "^1.0.0"
-
-dom-walk@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
-
-dot-prop@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177"
- dependencies:
- is-obj "^1.0.0"
-
-drbg.js@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b"
- dependencies:
- browserify-aes "^1.0.6"
- create-hash "^1.1.2"
- create-hmac "^1.1.4"
-
-duplexer2@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db"
- dependencies:
- readable-stream "~1.1.9"
-
-duplexer2@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1"
- dependencies:
- readable-stream "^2.0.2"
-
-duplexer3@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
-
-ecc-jsbn@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
- dependencies:
- jsbn "~0.1.0"
-
-ecstatic@^2.1.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-2.2.1.tgz#b5087fad439dd9dd49d31e18131454817fe87769"
- dependencies:
- he "^1.1.1"
- mime "^1.2.11"
- minimist "^1.1.0"
- url-join "^2.0.2"
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-
-ejs@~2.5.6:
- version "2.5.7"
- resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
-
-electron-builder-core@11.2.1:
- version "11.2.1"
- resolved "https://registry.yarnpkg.com/electron-builder-core/-/electron-builder-core-11.2.1.tgz#1dca8c1a1cee8b51750b7708a04913aeffacf8a8"
-
-electron-builder-http@12.3.0, electron-builder-http@~12.3.0:
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-12.3.0.tgz#5a75e3683e4c1a8ef093f353d3298342c875d2c0"
- dependencies:
- debug "2.6.0"
- fs-extra-p "^3.1.0"
-
-electron-builder-util@12.3.0:
- version "12.3.0"
- resolved "https://registry.yarnpkg.com/electron-builder-util/-/electron-builder-util-12.3.0.tgz#50c54d1c8c415a0cb1d2722edaa836312535d59d"
- dependencies:
- "7zip-bin" "^2.0.4"
- bluebird-lst-c "^1.0.6"
- chalk "^1.1.3"
- debug "2.6.0"
- electron-builder-http "~12.3.0"
- fs-extra-p "^3.1.0"
- is-ci "^1.0.10"
- node-emoji "^1.5.1"
- source-map-support "^0.4.11"
- stat-mode "^0.2.2"
-
-electron-builder@^12.2.2:
- version "12.3.1"
- resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-12.3.1.tgz#db82b8c1830e6a121a98046bc8d26c315b4890a2"
- dependencies:
- "7zip-bin" "^2.0.4"
- asar-electron-builder "^0.13.5"
- bluebird-lst-c "^1.0.6"
- chalk "^1.1.3"
- chromium-pickle-js "^0.2.0"
- cuint "^0.2.2"
- electron-builder-core "11.2.1"
- electron-builder-http "12.3.0"
- electron-builder-util "12.3.0"
- electron-download-tf "3.2.0"
- electron-macos-sign "~1.5.0"
- fs-extra-p "^3.1.0"
- hosted-git-info "^2.1.5"
- ini "^1.3.4"
- is-ci "^1.0.10"
- isbinaryfile "^3.0.2"
- js-yaml "^3.7.0"
- mime "^1.3.4"
- minimatch "^3.0.3"
- normalize-package-data "^2.3.5"
- parse-color "^1.0.0"
- plist "^2.0.1"
- progress "^1.1.8"
- sanitize-filename "^1.6.1"
- semver "^5.3.0"
- tunnel-agent "^0.4.3"
- update-notifier "^1.0.3"
- uuid-1345 "^0.99.6"
- yargs "^6.6.0"
-
-electron-chromedriver@~1.7.1:
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/electron-chromedriver/-/electron-chromedriver-1.7.1.tgz#008c97976007aa4eb18491ee095e94d17ee47610"
- dependencies:
- electron-download "^4.1.0"
- extract-zip "^1.6.5"
-
-electron-download-tf@3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/electron-download-tf/-/electron-download-tf-3.2.0.tgz#690443d2e7d068f000358f86b9d504303711ad10"
- dependencies:
- debug "^2.6.0"
- fs-extra "^2.0.0"
- minimist "^1.2.0"
- nugget "^2.0.1"
- path-exists "^3.0.0"
- rc "^1.1.6"
- semver "^5.3.0"
- sumchecker "^2.0.1"
-
-electron-download@^3.0.1:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8"
- dependencies:
- debug "^2.2.0"
- fs-extra "^0.30.0"
- home-path "^1.0.1"
- minimist "^1.2.0"
- nugget "^2.0.0"
- path-exists "^2.1.0"
- rc "^1.1.2"
- semver "^5.3.0"
- sumchecker "^1.2.0"
-
-electron-download@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-4.1.0.tgz#bf932c746f2f87ffcc09d1dd472f2ff6b9187845"
- dependencies:
- debug "^2.2.0"
- env-paths "^1.0.0"
- fs-extra "^2.0.0"
- minimist "^1.2.0"
- nugget "^2.0.0"
- path-exists "^3.0.0"
- rc "^1.1.2"
- semver "^5.3.0"
- sumchecker "^2.0.1"
-
-electron-macos-sign@~1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/electron-macos-sign/-/electron-macos-sign-1.5.0.tgz#fe3a8acb755b5f568f1fe144e9e66cee44019448"
- dependencies:
- bluebird "^3.4.7"
- compare-version "^0.1.2"
- debug "^2.6.0"
- isbinaryfile "^3.0.2"
- plist "^2.0.1"
-
-electron-window-state@^4.0.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz#6b34fdc31b38514dfec8b7c8f7b5d4addb67632d"
- dependencies:
- deep-equal "^1.0.1"
- jsonfile "^2.2.3"
- mkdirp "^0.5.1"
-
-electron@1.7.8:
- version "1.7.8"
- resolved "https://registry.yarnpkg.com/electron/-/electron-1.7.8.tgz#27b791a6895171a7d52991b99442cdbd10a3539d"
- dependencies:
- "@types/node" "^7.0.18"
- electron-download "^3.0.1"
- extract-zip "^1.0.3"
-
-elliptic@^6.2.3, elliptic@^6.4.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
- dependencies:
- 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"
-
-encodeurl@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
-
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
- dependencies:
- once "^1.4.0"
-
-end-of-stream@~0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf"
- dependencies:
- once "~1.3.0"
-
-env-paths@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
-
-error-ex@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
- dependencies:
- is-arrayish "^0.2.1"
-
-es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
- version "0.10.30"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.30.tgz#7141a16836697dbabfaaaeee41495ce29f52c939"
- dependencies:
- es6-iterator "2"
- es6-symbol "~3.1"
-
-es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512"
- dependencies:
- d "1"
- es5-ext "^0.10.14"
- es6-symbol "^3.1"
-
-es6-map@^0.1.3:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-set "~0.1.5"
- es6-symbol "~3.1.1"
- event-emitter "~0.3.5"
-
-es6-promise@^4.0.5:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
-
-es6-set@~0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-symbol "3.1.1"
- event-emitter "~0.3.5"
-
-es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-es6-weak-map@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
- dependencies:
- d "1"
- es5-ext "^0.10.14"
- es6-iterator "^2.0.1"
- es6-symbol "^3.1.1"
-
-escape-html@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-escope@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
- dependencies:
- es6-map "^0.1.3"
- es6-weak-map "^2.0.1"
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
-eslint-config-airbnb-base@^11.0.1:
- version "11.3.2"
- resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz#8703b11abe3c88ac7ec2b745b7fdf52e00ae680a"
- dependencies:
- eslint-restricted-globals "^0.1.1"
-
-eslint-import-resolver-node@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz#4422574cde66a9a7b099938ee4d508a199e0e3cc"
- dependencies:
- debug "^2.6.8"
- resolve "^1.2.0"
-
-eslint-module-utils@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449"
- dependencies:
- debug "^2.6.8"
- pkg-dir "^1.0.0"
-
-eslint-plugin-import@^2.2.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.7.0.tgz#21de33380b9efb55f5ef6d2e210ec0e07e7fa69f"
- dependencies:
- builtin-modules "^1.1.1"
- contains-path "^0.1.0"
- debug "^2.6.8"
- doctrine "1.5.0"
- eslint-import-resolver-node "^0.3.1"
- eslint-module-utils "^2.1.1"
- has "^1.0.1"
- lodash.cond "^4.3.0"
- minimatch "^3.0.3"
- read-pkg-up "^2.0.0"
-
-eslint-restricted-globals@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
-
-eslint@^3.14.1:
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
- dependencies:
- babel-code-frame "^6.16.0"
- chalk "^1.1.3"
- concat-stream "^1.5.2"
- debug "^2.1.1"
- doctrine "^2.0.0"
- escope "^3.6.0"
- espree "^3.4.0"
- esquery "^1.0.0"
- estraverse "^4.2.0"
- esutils "^2.0.2"
- file-entry-cache "^2.0.0"
- glob "^7.0.3"
- globals "^9.14.0"
- ignore "^3.2.0"
- imurmurhash "^0.1.4"
- inquirer "^0.12.0"
- is-my-json-valid "^2.10.0"
- is-resolvable "^1.0.0"
- js-yaml "^3.5.1"
- json-stable-stringify "^1.0.0"
- levn "^0.3.0"
- lodash "^4.0.0"
- mkdirp "^0.5.0"
- natural-compare "^1.4.0"
- optionator "^0.8.2"
- path-is-inside "^1.0.1"
- pluralize "^1.2.1"
- progress "^1.1.8"
- require-uncached "^1.0.2"
- shelljs "^0.7.5"
- strip-bom "^3.0.0"
- strip-json-comments "~2.0.1"
- table "^3.7.8"
- text-table "~0.2.0"
- user-home "^2.0.0"
-
-espree@^3.4.0:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e"
- dependencies:
- acorn "^5.1.1"
- acorn-jsx "^3.0.0"
-
-esprima@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
-
-esquery@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
- dependencies:
- estraverse "^4.0.0"
-
-esrecurse@^4.1.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
- dependencies:
- estraverse "^4.1.0"
- object-assign "^4.0.1"
-
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-
-esutils@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-
-etag@~1.8.0, etag@~1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
-
-eth-lib@^0.1.26:
- version "0.1.27"
- resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.27.tgz#f0b0fd144f865d2d6bf8257a40004f2e75ca1dd6"
- dependencies:
- 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"
-
-ethereum-client-binaries@^1.6.1:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/ethereum-client-binaries/-/ethereum-client-binaries-1.6.2.tgz#7fa65f655f870643ef5e202ee9901e4179d3a13d"
- dependencies:
- buffered-spawn "^3.3.2"
- got "^6.5.0"
- lodash.get "^4.4.2"
- lodash.isempty "^4.4.0"
- lodash.values "^4.3.0"
- mkdirp "^0.5.1"
- node-unzip-2 "^0.2.1"
- tmp "0.0.29"
-
-ethereum-keyfile-recognizer@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/ethereum-keyfile-recognizer/-/ethereum-keyfile-recognizer-1.0.2.tgz#c0315f91c77e076621e9f6b5f8099fd370f7a11d"
- dependencies:
- json-structure-diff "0.0.2"
- underscore "^1.8.3"
-
-ethereumjs-abi@^0.6.3:
- version "0.6.4"
- resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.4.tgz#9ba1bb056492d00c27279f6eccd4d58275912c1a"
- dependencies:
- bn.js "^4.10.0"
- ethereumjs-util "^4.3.0"
-
-ethereumjs-util@^4.3.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6"
- dependencies:
- bn.js "^4.8.0"
- create-hash "^1.1.2"
- keccakjs "^0.2.0"
- rlp "^2.0.0"
- secp256k1 "^3.0.1"
-
-event-emitter@~0.3.5:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-evp_bytestokey@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
- dependencies:
- md5.js "^1.3.4"
- safe-buffer "^5.1.1"
-
-exit-hook@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
-
-expand-brackets@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
- dependencies:
- is-posix-bracket "^0.1.0"
-
-expand-range@^1.8.1:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
- dependencies:
- fill-range "^2.1.0"
-
-expand-template@^1.0.2:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.1.0.tgz#e09efba977bf98f9ee0ed25abd0c692e02aec3fc"
-
-expand-tilde@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449"
- dependencies:
- os-homedir "^1.0.1"
-
-expand-tilde@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
- dependencies:
- homedir-polyfill "^1.0.1"
-
-express@^4.14.0, express@^4.15.3:
- version "4.15.5"
- resolved "https://registry.yarnpkg.com/express/-/express-4.15.5.tgz#670235ca9598890a5ae8170b83db722b842ed927"
- dependencies:
- accepts "~1.3.3"
- array-flatten "1.1.1"
- content-disposition "0.5.2"
- content-type "~1.0.2"
- cookie "0.3.1"
- cookie-signature "1.0.6"
- debug "2.6.9"
- depd "~1.1.1"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- etag "~1.8.0"
- finalhandler "~1.0.6"
- fresh "0.5.2"
- merge-descriptors "1.0.1"
- methods "~1.1.2"
- on-finished "~2.3.0"
- parseurl "~1.3.1"
- path-to-regexp "0.1.7"
- proxy-addr "~1.1.5"
- qs "6.5.0"
- range-parser "~1.2.0"
- send "0.15.6"
- serve-static "1.12.6"
- setprototypeof "1.0.3"
- statuses "~1.3.1"
- type-is "~1.6.15"
- utils-merge "1.0.0"
- vary "~1.1.1"
-
-extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
-
-external-editor@^2.0.1:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc"
- dependencies:
- iconv-lite "^0.4.17"
- jschardet "^1.4.2"
- tmp "^0.0.33"
-
-extglob@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
- dependencies:
- is-extglob "^1.0.0"
-
-extract-zip@^1.0.3, extract-zip@^1.6.5:
- version "1.6.5"
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.5.tgz#99a06735b6ea20ea9b705d779acffcc87cff0440"
- dependencies:
- concat-stream "1.6.0"
- debug "2.2.0"
- mkdirp "0.5.0"
- yauzl "2.4.1"
-
-extsprintf@1.3.0, extsprintf@^1.2.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
-
-fancy-log@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
- dependencies:
- chalk "^1.1.1"
- time-stamp "^1.0.0"
-
-fast-deep-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
-
-fast-levenshtein@~2.0.4:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-
-fd-slicer@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
- dependencies:
- pend "~1.2.0"
-
-figures@^1.3.5:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- dependencies:
- escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
-
-figures@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
- dependencies:
- escape-string-regexp "^1.0.5"
-
-file-entry-cache@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
- dependencies:
- flat-cache "^1.2.1"
- object-assign "^4.0.1"
-
-file-type@^3.8.0:
- version "3.9.0"
- resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
-
-file-type@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6"
-
-file-type@^6.1.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919"
-
-filename-regex@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
-
-fill-range@^2.1.0:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
- dependencies:
- is-number "^2.1.0"
- isobject "^2.0.0"
- randomatic "^1.1.3"
- repeat-element "^1.1.2"
- repeat-string "^1.5.2"
-
-filled-array@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84"
-
-finalhandler@~1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f"
- dependencies:
- debug "2.6.9"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- parseurl "~1.3.2"
- statuses "~1.3.1"
- unpipe "~1.0.0"
-
-find-index@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4"
-
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
-find-up@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- dependencies:
- locate-path "^2.0.0"
-
-findup-sync@^0.4.2:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
- dependencies:
- detect-file "^0.1.0"
- is-glob "^2.0.1"
- micromatch "^2.3.7"
- resolve-dir "^0.1.0"
-
-fined@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476"
- dependencies:
- 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"
-
-first-chunk-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e"
-
-flagged-respawn@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5"
-
-flat-cache@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
- dependencies:
- circular-json "^0.3.1"
- del "^2.0.2"
- graceful-fs "^4.1.2"
- write "^0.2.1"
-
-for-each@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4"
- dependencies:
- is-function "~1.0.0"
-
-for-in@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
-
-for-own@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
- dependencies:
- for-in "^1.0.1"
-
-for-own@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b"
- dependencies:
- for-in "^1.0.1"
-
-forever-agent@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-
-form-data@~2.1.1:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
-form-data@~2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
-forwarded@~0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
-
-fresh@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
-
-fs-exists-sync@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
-
-fs-extra-p@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-3.1.0.tgz#eddf7bb8d9385d79014decb21f45b1d0c57900d3"
- dependencies:
- bluebird-lst-c "^1.0.6"
- fs-extra "^2.0.0"
-
-fs-extra@^0.30.0:
- version "0.30.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0"
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
- klaw "^1.0.0"
- path-is-absolute "^1.0.0"
- rimraf "^2.2.8"
-
-fs-extra@^2.0.0, fs-extra@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35"
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
-
-fs-promise@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/fs-promise/-/fs-promise-2.0.3.tgz#f64e4f854bcf689aa8bddcba268916db3db46854"
- dependencies:
- any-promise "^1.3.0"
- fs-extra "^2.0.0"
- mz "^2.6.0"
- thenify-all "^1.6.0"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-fstream@^1.0.2, fstream@^1.0.8:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171"
- dependencies:
- graceful-fs "^4.1.2"
- inherits "~2.0.0"
- mkdirp ">=0.5 0"
- rimraf "2"
-
-fstream@~0.1.21:
- version "0.1.31"
- resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988"
- dependencies:
- graceful-fs "~3.0.2"
- inherits "~2.0.0"
- mkdirp "0.5"
- rimraf "2"
-
-function-bind@^1.0.2:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-
-gauge@~2.7.3:
- version "2.7.4"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
- dependencies:
- 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"
-
-gaze@^0.5.1:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f"
- dependencies:
- globule "~0.1.0"
-
-gaze@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105"
- dependencies:
- globule "^1.0.0"
-
-generate-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- dependencies:
- is-property "^1.0.0"
-
-genomatic@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/genomatic/-/genomatic-1.0.0.tgz#6884edca1e4652adff3baa89356728308aa9aa0f"
-
-get-caller-file@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
-
-get-params@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/get-params/-/get-params-0.1.2.tgz#bae0dfaba588a0c60d7834c0d8dc2ff60eeef2fe"
-
-get-stdin@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
-
-get-stream@^2.2.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
- dependencies:
- object-assign "^4.0.1"
- pinkie-promise "^2.0.0"
-
-get-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
-
-geth-private@^1.3.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/geth-private/-/geth-private-1.7.0.tgz#326eae709fe12cf3545d0bcda7a3fa2c43adc7c8"
- dependencies:
- bluebird "^3.3.4"
- chalk "^1.1.3"
- shelljs "^0.6.0"
- tmp "0.0.28"
- which "^1.2.4"
- yargs "^4.3.2"
-
-getpass@^0.1.1:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
- dependencies:
- assert-plus "^1.0.0"
-
-gh-release-assets@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/gh-release-assets/-/gh-release-assets-1.1.1.tgz#1cb91c8d2d58cee76661cd54fd9c2639e4a7401a"
- dependencies:
- async "^0.9.0"
- mime "^1.3.4"
- progress-stream "^2.0.0"
- request "^2.55.0"
- util-extend "^1.0.1"
-
-github-from-package@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
-
-glob-base@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
- dependencies:
- glob-parent "^2.0.0"
- is-glob "^2.0.0"
-
-glob-parent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
- dependencies:
- is-glob "^2.0.0"
-
-glob-stream@^3.1.5:
- version "3.1.18"
- resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b"
- dependencies:
- glob "^4.3.1"
- glob2base "^0.0.12"
- minimatch "^2.0.1"
- ordered-read-streams "^0.1.0"
- through2 "^0.6.1"
- unique-stream "^1.0.0"
-
-glob-watcher@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b"
- dependencies:
- gaze "^0.5.1"
-
-glob2base@^0.0.12:
- version "0.0.12"
- resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56"
- dependencies:
- find-index "^0.1.1"
-
-glob@7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^4.3.1:
- version "4.5.3"
- resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f"
- dependencies:
- inflight "^1.0.4"
- inherits "2"
- minimatch "^2.0.1"
- once "^1.3.0"
-
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@~7.1.1:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
- dependencies:
- 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"
-
-glob@~3.1.21:
- version "3.1.21"
- resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd"
- dependencies:
- graceful-fs "~1.2.0"
- inherits "1"
- minimatch "~0.2.11"
-
-glob@~3.2.9:
- version "3.2.11"
- resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d"
- dependencies:
- inherits "2"
- minimatch "0.3"
-
-global-modules@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
- dependencies:
- global-prefix "^0.1.4"
- is-windows "^0.2.0"
-
-global-prefix@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f"
- dependencies:
- homedir-polyfill "^1.0.0"
- ini "^1.3.4"
- is-windows "^0.2.0"
- which "^1.2.12"
-
-global@~4.3.0:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
- dependencies:
- min-document "^2.19.0"
- process "~0.5.1"
-
-globals@^9.14.0, globals@^9.18.0:
- version "9.18.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
-
-globby@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
- dependencies:
- array-union "^1.0.1"
- arrify "^1.0.0"
- glob "^7.0.3"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-globule@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09"
- dependencies:
- glob "~7.1.1"
- lodash "~4.17.4"
- minimatch "~3.0.2"
-
-globule@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5"
- dependencies:
- glob "~3.1.21"
- lodash "~1.0.1"
- minimatch "~0.2.11"
-
-glogg@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5"
- dependencies:
- sparkles "^1.0.0"
-
-got@^5.0.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35"
- dependencies:
- create-error-class "^3.0.1"
- duplexer2 "^0.1.4"
- is-redirect "^1.0.0"
- is-retry-allowed "^1.0.0"
- is-stream "^1.0.0"
- lowercase-keys "^1.0.0"
- node-status-codes "^1.0.0"
- object-assign "^4.0.1"
- parse-json "^2.1.0"
- pinkie-promise "^2.0.0"
- read-all-stream "^3.0.0"
- readable-stream "^2.0.5"
- timed-out "^3.0.0"
- unzip-response "^1.0.2"
- url-parse-lax "^1.0.0"
-
-got@^6.5.0, got@^6.7.1:
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0"
- dependencies:
- create-error-class "^3.0.0"
- duplexer3 "^0.1.4"
- get-stream "^3.0.0"
- is-redirect "^1.0.0"
- is-retry-allowed "^1.0.0"
- is-stream "^1.0.0"
- lowercase-keys "^1.0.0"
- safe-buffer "^5.0.1"
- timed-out "^4.0.0"
- unzip-response "^2.0.1"
- url-parse-lax "^1.0.0"
-
-got@^7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a"
- dependencies:
- 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"
-
-graceful-fs@^3.0.0, graceful-fs@~3.0.2:
- version "3.0.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
- dependencies:
- natives "^1.1.0"
-
-graceful-fs@^4.1.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-
-graceful-fs@~1.2.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364"
-
-"graceful-readlink@>= 1.0.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
-
-growl@1.9.2:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
-
-gulp-babel@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-7.0.0.tgz#7b93c975159f7a0553e4263b4a55100ccc239b28"
- dependencies:
- gulp-util "^3.0.0"
- replace-ext "0.0.1"
- through2 "^2.0.0"
- vinyl-sourcemaps-apply "^0.2.0"
-
-gulp-spawn-mocha@^3.3.0:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/gulp-spawn-mocha/-/gulp-spawn-mocha-3.3.1.tgz#a830221b55503a2fceba196fcfac08c6df3a01b0"
- dependencies:
- gulp-util "~3.0.7"
- lodash "^4.11.1"
- through "~2.3.4"
-
-gulp-util@*, gulp-util@^3.0.0, gulp-util@~3.0.7:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f"
- dependencies:
- array-differ "^1.0.0"
- array-uniq "^1.0.2"
- beeper "^1.0.0"
- chalk "^1.0.0"
- dateformat "^2.0.0"
- fancy-log "^1.1.0"
- gulplog "^1.0.0"
- has-gulplog "^0.1.0"
- lodash._reescape "^3.0.0"
- lodash._reevaluate "^3.0.0"
- lodash._reinterpolate "^3.0.0"
- lodash.template "^3.0.0"
- minimist "^1.1.0"
- multipipe "^0.1.2"
- object-assign "^3.0.0"
- replace-ext "0.0.1"
- through2 "^2.0.0"
- vinyl "^0.5.0"
-
-gulp@^3.9.0:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4"
- dependencies:
- archy "^1.0.0"
- chalk "^1.0.0"
- deprecated "^0.0.1"
- gulp-util "^3.0.0"
- interpret "^1.0.0"
- liftoff "^2.1.0"
- minimist "^1.1.0"
- orchestrator "^0.3.0"
- pretty-hrtime "^1.0.0"
- semver "^4.1.0"
- tildify "^1.0.0"
- v8flags "^2.0.2"
- vinyl-fs "^0.3.0"
-
-gulplog@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5"
- dependencies:
- glogg "^1.0.0"
-
-har-schema@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
-
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-
-har-validator@~4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
- dependencies:
- ajv "^4.9.1"
- har-schema "^1.0.5"
-
-har-validator@~5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
- dependencies:
- ajv "^5.1.0"
- har-schema "^2.0.0"
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- dependencies:
- ansi-regex "^2.0.0"
-
-has-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-
-has-flag@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
-
-has-gulplog@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
- dependencies:
- sparkles "^1.0.0"
-
-has-symbol-support-x@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz#66ec2e377e0c7d7ccedb07a3a84d77510ff1bc4c"
-
-has-to-string-tag-x@^1.2.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d"
- dependencies:
- has-symbol-support-x "^1.4.1"
-
-has-unicode@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
-
-has@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
- dependencies:
- function-bind "^1.0.2"
-
-hash-base@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
- dependencies:
- inherits "^2.0.1"
-
-hash-base@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-hash.js@^1.0.0, hash.js@^1.0.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846"
- dependencies:
- inherits "^2.0.3"
- minimalistic-assert "^1.0.0"
-
-hawk@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
- dependencies:
- boom "2.x.x"
- cryptiles "2.x.x"
- hoek "2.x.x"
- sntp "1.x.x"
-
-hawk@~6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
- dependencies:
- boom "4.x.x"
- cryptiles "3.x.x"
- hoek "4.x.x"
- sntp "2.x.x"
-
-he@1.1.1, he@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
-
-hmac-drbg@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
- dependencies:
- hash.js "^1.0.3"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.1"
-
-hoek@2.x.x:
- version "2.16.3"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
-
-hoek@4.x.x:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
-
-home-or-tmp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8"
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.1"
-
-home-path@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.5.tgz#788b29815b12d53bacf575648476e6f9041d133f"
-
-homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
- dependencies:
- parse-passwd "^1.0.0"
-
-hosted-git-info@^2.1.4, hosted-git-info@^2.1.5:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
-
-http-errors@1.6.2, http-errors@~1.6.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
- dependencies:
- depd "1.1.1"
- inherits "2.0.3"
- setprototypeof "1.0.3"
- statuses ">= 1.3.1 < 2"
-
-http-https@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b"
-
-http-signature@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
- dependencies:
- assert-plus "^0.2.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
- dependencies:
- assert-plus "^1.0.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-i18next@^7.1.3:
- version "7.2.3"
- resolved "https://registry.yarnpkg.com/i18next/-/i18next-7.2.3.tgz#a6c220ac1c8240ff1078aa9bc997fd449e052dc7"
-
-iconv-lite@0.4.19, iconv-lite@^0.4.17:
- version "0.4.19"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
-
-ieee754@^1.1.4:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
-
-ignore@^3.2.0:
- version "3.3.5"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-
-indent-string@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
- dependencies:
- repeating "^2.0.0"
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b"
-
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-ini@^1.3.4, ini@~1.3.0:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
-
-inquirer@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
- dependencies:
- ansi-escapes "^1.1.0"
- ansi-regex "^2.0.0"
- chalk "^1.0.0"
- cli-cursor "^1.0.1"
- cli-width "^2.0.0"
- figures "^1.3.5"
- lodash "^4.3.0"
- readline2 "^1.0.1"
- run-async "^0.1.0"
- rx-lite "^3.1.2"
- string-width "^1.0.1"
- strip-ansi "^3.0.0"
- through "^2.3.6"
-
-inquirer@~3.0.6:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347"
- dependencies:
- ansi-escapes "^1.1.0"
- chalk "^1.0.0"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
- external-editor "^2.0.1"
- figures "^2.0.0"
- lodash "^4.3.0"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rx "^4.1.0"
- string-width "^2.0.0"
- strip-ansi "^3.0.0"
- through "^2.3.6"
-
-interpret@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.4.tgz#820cdd588b868ffb191a809506d6c9c8f212b1b0"
-
-invariant@^2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
- dependencies:
- loose-envify "^1.0.0"
-
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
-
-ipaddr.js@1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0"
-
-is-absolute@^0.2.3:
- version "0.2.6"
- resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb"
- dependencies:
- is-relative "^0.2.1"
- is-windows "^0.2.0"
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
-
-is-buffer@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
-
-is-builtin-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
- dependencies:
- builtin-modules "^1.0.0"
-
-is-ci@^1.0.10:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e"
- dependencies:
- ci-info "^1.0.0"
-
-is-dotfile@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
-
-is-equal-shallow@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
- dependencies:
- is-primitive "^2.0.0"
-
-is-extendable@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
-
-is-extglob@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
-
-is-finite@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-
-is-function@^1.0.1, is-function@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
-
-is-generator@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-generator/-/is-generator-1.0.3.tgz#c14c21057ed36e328db80347966c693f886389f3"
-
-is-glob@^2.0.0, is-glob@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
- dependencies:
- is-extglob "^1.0.0"
-
-is-my-json-valid@^2.10.0:
- version "2.16.1"
- resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11"
- dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
-
-is-natural-number@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
-
-is-npm@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
-
-is-number@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
- dependencies:
- kind-of "^3.0.2"
-
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- dependencies:
- kind-of "^3.0.2"
-
-is-obj@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
-
-is-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
-
-is-path-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
-
-is-path-in-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
- dependencies:
- is-path-inside "^1.0.0"
-
-is-path-inside@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
- dependencies:
- path-is-inside "^1.0.1"
-
-is-plain-obj@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
-
-is-plain-object@^2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
- dependencies:
- isobject "^3.0.1"
-
-is-posix-bracket@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
-
-is-primitive@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
-
-is-promise@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
-
-is-property@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
-
-is-redirect@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
-
-is-relative@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5"
- dependencies:
- is-unc-path "^0.1.1"
-
-is-resolvable@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
- dependencies:
- tryit "^1.0.1"
-
-is-retry-allowed@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
-
-is-stream@^1.0.0, is-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-
-is-typedarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-
-is-unc-path@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9"
- dependencies:
- unc-path-regex "^0.1.0"
-
-is-utf8@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
-
-is-windows@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
-
-isarray@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
-
-isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
-isbinaryfile@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-
-isobject@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
- dependencies:
- isarray "1.0.0"
-
-isobject@^3.0.0, isobject@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
-
-isstream@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-
-isurl@^1.0.0-alpha5:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67"
- dependencies:
- has-to-string-tag-x "^1.2.0"
- is-object "^1.0.1"
-
-js-sha3@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.3.1.tgz#86122802142f0828502a0d1dee1d95e253bb0243"
-
-js-tokens@^3.0.0, js-tokens@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
-
-js-yaml@^3.5.1, js-yaml@^3.7.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-jsan@^3.1.0, jsan@^3.1.5:
- version "3.1.9"
- resolved "https://registry.yarnpkg.com/jsan/-/jsan-3.1.9.tgz#2705676c1058f0a7d9ac266ad036a5769cfa7c96"
-
-jsbn@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-
-jschardet@^1.4.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9"
-
-jsesc@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
-
-jsesc@~0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
-
-json-schema-traverse@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
-
-json-schema@0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-
-json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
- dependencies:
- jsonify "~0.0.0"
-
-json-stringify-safe@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-
-json-structure-diff@0.0.2, json-structure-diff@^0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/json-structure-diff/-/json-structure-diff-0.0.2.tgz#838277f5c0a9562981b9a2af86fe5e90c131b0b3"
-
-json3@3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
-
-json5@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
-
-jsonfile@^2.1.0, jsonfile@^2.2.3:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-jsonify@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
-
-jsonpointer@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
-
-jsprim@^1.2.2:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
- dependencies:
- assert-plus "1.0.0"
- extsprintf "1.3.0"
- json-schema "0.2.3"
- verror "1.10.0"
-
-keccakjs@^0.2.0, keccakjs@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.1.tgz#1d633af907ef305bbf9f2fa616d56c44561dfa4d"
- dependencies:
- browserify-sha3 "^0.0.1"
- sha3 "^1.1.0"
-
-kind-of@^3.0.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- dependencies:
- is-buffer "^1.1.5"
-
-klaw@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
- optionalDependencies:
- graceful-fs "^4.1.9"
-
-latest-version@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b"
- dependencies:
- package-json "^2.0.0"
-
-lazy-req@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac"
-
-lazystream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
- dependencies:
- readable-stream "^2.0.5"
-
-lcid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- dependencies:
- invert-kv "^1.0.0"
-
-levn@^0.3.0, levn@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
- dependencies:
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
-
-liftoff@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385"
- dependencies:
- extend "^3.0.0"
- findup-sync "^0.4.2"
- fined "^1.0.1"
- flagged-respawn "^0.3.2"
- lodash.isplainobject "^4.0.4"
- lodash.isstring "^4.0.1"
- lodash.mapvalues "^4.4.0"
- rechoir "^0.6.2"
- resolve "^1.1.7"
-
-linked-list@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/linked-list/-/linked-list-0.1.0.tgz#798b0ff97d1b92a4fd08480f55aea4e9d49d37bf"
-
-load-json-file@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- strip-bom "^2.0.0"
-
-load-json-file@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- strip-bom "^3.0.0"
-
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
-
-lodash-es@^4.2.1:
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
-
-lodash._baseassign@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
- dependencies:
- lodash._basecopy "^3.0.0"
- lodash.keys "^3.0.0"
-
-lodash._basecopy@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
-
-lodash._basecreate@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
-
-lodash._basetostring@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5"
-
-lodash._basevalues@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7"
-
-lodash._getnative@^3.0.0:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-
-lodash._isiterateecall@^3.0.0:
- version "3.0.9"
- resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
-
-lodash._reescape@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a"
-
-lodash._reevaluate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed"
-
-lodash._reinterpolate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
-
-lodash._root@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692"
-
-lodash.assign@^4.0.3, lodash.assign@^4.0.6:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7"
-
-lodash.cond@^4.3.0:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
-
-lodash.create@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
- dependencies:
- lodash._baseassign "^3.0.0"
- lodash._basecreate "^3.0.0"
- lodash._isiterateecall "^3.0.0"
-
-lodash.escape@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698"
- dependencies:
- lodash._root "^3.0.0"
-
-lodash.get@^4.4.2:
- version "4.4.2"
- resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
-
-lodash.isarguments@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
-
-lodash.isarray@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-
-lodash.isempty@^4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e"
-
-lodash.isplainobject@^4.0.4:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
-
-lodash.isstring@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451"
-
-lodash.keys@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
- dependencies:
- lodash._getnative "^3.0.0"
- lodash.isarguments "^3.0.0"
- lodash.isarray "^3.0.0"
-
-lodash.mapvalues@^4.4.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
-
-lodash.restparam@^3.0.0:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805"
-
-lodash.template@^3.0.0:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f"
- dependencies:
- lodash._basecopy "^3.0.0"
- lodash._basetostring "^3.0.0"
- lodash._basevalues "^3.0.0"
- lodash._isiterateecall "^3.0.0"
- lodash._reinterpolate "^3.0.0"
- lodash.escape "^3.0.0"
- lodash.keys "^3.0.0"
- lodash.restparam "^3.0.0"
- lodash.templatesettings "^3.0.0"
-
-lodash.templatesettings@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5"
- dependencies:
- lodash._reinterpolate "^3.0.0"
- lodash.escape "^3.0.0"
-
-lodash.toarray@^4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561"
-
-lodash.values@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347"
-
-lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.8.0, lodash@~4.17.4:
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
-
-lodash@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551"
-
-log-rotate@^0.2.7:
- version "0.2.7"
- resolved "https://registry.yarnpkg.com/log-rotate/-/log-rotate-0.2.7.tgz#aadb64259eea49e5668842342c864d0b142e8c2d"
-
-log4js@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/log4js/-/log4js-1.1.1.tgz#c21d29c7604089e4f255833e7f94b3461de1ff43"
- dependencies:
- debug "^2.2.0"
- semver "^5.3.0"
- streamroller "^0.4.0"
-
-lokijs@^1.4.3:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/lokijs/-/lokijs-1.5.0.tgz#99e403d6a89e47e11ed0c5d499fb55a0603d5efc"
-
-loose-envify@^1.0.0, loose-envify@^1.1.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
- dependencies:
- js-tokens "^3.0.0"
-
-loud-rejection@^1.0.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
- dependencies:
- currently-unhandled "^0.4.1"
- signal-exit "^3.0.0"
-
-lowercase-keys@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
-
-lru-cache@2:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952"
-
-lru-cache@^4.0.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55"
- dependencies:
- pseudomap "^1.0.2"
- yallist "^2.1.2"
-
-macaddress@^0.2.7:
- version "0.2.8"
- resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
-
-make-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978"
- dependencies:
- pify "^2.3.0"
-
-map-cache@^0.2.0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
-
-map-obj@^1.0.0, map-obj@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
-
-match-stream@~0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf"
- dependencies:
- buffers "~0.1.1"
- readable-stream "~1.0.0"
-
-md5.js@^1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d"
- dependencies:
- hash-base "^3.0.0"
- inherits "^2.0.1"
-
-media-typer@0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
-
-memorystream@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2"
-
-meow@^3.1.0:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
- dependencies:
- camelcase-keys "^2.0.0"
- decamelize "^1.1.2"
- loud-rejection "^1.0.0"
- map-obj "^1.0.1"
- minimist "^1.1.3"
- normalize-package-data "^2.3.4"
- object-assign "^4.0.1"
- read-pkg-up "^1.0.1"
- redent "^1.0.0"
- trim-newlines "^1.0.0"
-
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
-
-methods@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-
-micromatch@^2.3.7:
- version "2.3.11"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
- dependencies:
- arr-diff "^2.0.0"
- array-unique "^0.2.1"
- braces "^1.8.2"
- expand-brackets "^0.1.4"
- extglob "^0.3.1"
- filename-regex "^2.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.1"
- kind-of "^3.0.2"
- normalize-path "^2.0.1"
- object.omit "^2.0.0"
- parse-glob "^3.0.4"
- regex-cache "^0.4.2"
-
-mime-db@~1.30.0:
- version "1.30.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
-
-mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7:
- version "2.1.17"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
- dependencies:
- mime-db "~1.30.0"
-
-mime@1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
-
-mime@^1.2.11, mime@^1.3.4:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
-
-mimic-fn@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
-
-mimic-response@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e"
-
-min-document@^2.19.0:
- version "2.19.0"
- resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
- dependencies:
- dom-walk "^0.1.0"
-
-minimalistic-assert@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
-
-minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-
-minimatch@0.3:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd"
- dependencies:
- lru-cache "2"
- sigmund "~1.0.0"
-
-minimatch@^2.0.1:
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
- dependencies:
- brace-expansion "^1.0.0"
-
-minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- dependencies:
- brace-expansion "^1.1.7"
-
-minimatch@~0.2.11:
- version "0.2.14"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a"
- dependencies:
- lru-cache "2"
- sigmund "~1.0.0"
-
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
-minimist@~0.0.1:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
-
-minimongo-standalone@^1.1.0-3:
- version "1.1.0-3"
- resolved "https://registry.yarnpkg.com/minimongo-standalone/-/minimongo-standalone-1.1.0-3.tgz#cfdb3d0136811bab7fb92f6c13e0c74bd64dd5bd"
- dependencies:
- async ">=0.1.0"
- underscore ">=1.0.0"
-
-mkdirp-promise@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1"
- dependencies:
- mkdirp "*"
-
-mkdirp@*, mkdirp@0.5, mkdirp@0.5.1, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- dependencies:
- minimist "0.0.8"
-
-mkdirp@0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12"
- dependencies:
- minimist "0.0.8"
-
-mocha@^3.2.0:
- version "3.5.3"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
- dependencies:
- browser-stdout "1.3.0"
- commander "2.9.0"
- debug "2.6.8"
- diff "3.2.0"
- escape-string-regexp "1.0.5"
- glob "7.1.1"
- growl "1.9.2"
- he "1.1.1"
- json3 "3.3.2"
- lodash.create "3.1.1"
- mkdirp "0.5.1"
- supports-color "3.1.2"
-
-mock-fs@^4.1.0:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.4.1.tgz#f285fa025b42a4031faf75b66f632b21e7056683"
-
-mout@^0.11.0:
- version "0.11.1"
- resolved "https://registry.yarnpkg.com/mout/-/mout-0.11.1.tgz#ba3611df5f0e5b1ffbfd01166b8f02d1f5fa2b99"
-
-ms@0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-
-ms@0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-
-multipipe@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b"
- dependencies:
- duplexer2 "0.0.2"
-
-mute-stream@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
-
-mute-stream@0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
-
-mz@^2.6.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
- dependencies:
- any-promise "^1.0.0"
- object-assign "^4.0.1"
- thenify-all "^1.0.0"
-
-nan@^2.0.5, nan@^2.2.1:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46"
-
-nano-json-stream-parser@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f"
-
-natives@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31"
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
-
-negotiator@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
-
-node-abi@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.1.1.tgz#c9cda256ec8aa99bcab2f6446db38af143338b2a"
-
-node-emoji@^1.5.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.8.1.tgz#6eec6bfb07421e2148c75c6bba72421f8530a826"
- dependencies:
- lodash.toarray "^4.4.0"
-
-node-status-codes@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f"
-
-node-unzip-2@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/node-unzip-2/-/node-unzip-2-0.2.1.tgz#8e4a0e5a68f7b03d33b8dc52b83a93d1d003cdd8"
- dependencies:
- binary "~0.3.0"
- fstream "~0.1.21"
- match-stream "~0.0.2"
- pullstream "~0.4.0"
- readable-stream "~1.0.0"
- setimmediate "~1.0.1"
-
-noop-logger@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
-
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
- dependencies:
- hosted-git-info "^2.1.4"
- is-builtin-module "^1.0.0"
- semver "2 || 3 || 4 || 5"
- validate-npm-package-license "^3.0.1"
-
-normalize-path@^2.0.0, normalize-path@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
- dependencies:
- remove-trailing-separator "^1.0.1"
-
-npm-install-package@~2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/npm-install-package/-/npm-install-package-2.1.0.tgz#d7efe3cfcd7ab00614b896ea53119dc9ab259125"
-
-npmlog@^4.0.1:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
- dependencies:
- are-we-there-yet "~1.1.2"
- console-control-strings "~1.1.0"
- gauge "~2.7.3"
- set-blocking "~2.0.0"
-
-nugget@^2.0.0, nugget@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0"
- dependencies:
- debug "^2.1.3"
- minimist "^1.1.0"
- pretty-bytes "^1.0.2"
- progress-stream "^1.1.0"
- request "^2.45.0"
- single-line-log "^1.1.2"
- throttleit "0.0.2"
-
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-
-numeral@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/numeral/-/numeral-2.0.6.tgz#4ad080936d443c2561aed9f2197efffe25f4e506"
-
-oauth-sign@~0.8.1, oauth-sign@~0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
-
-object-assign@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
-
-object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-
-object-inspect@~0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-0.4.0.tgz#f5157c116c1455b243b06ee97703392c5ad89fec"
-
-object-keys@~0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336"
-
-object.defaults@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf"
- dependencies:
- array-each "^1.0.1"
- array-slice "^1.0.0"
- for-own "^1.0.0"
- isobject "^3.0.0"
-
-object.omit@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
- dependencies:
- for-own "^0.1.4"
- is-extendable "^0.1.1"
-
-object.pick@^1.2.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
- dependencies:
- isobject "^3.0.1"
-
-oboe@^2.1.3:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.3.tgz#2b4865dbd46be81225713f4e9bfe4bcf4f680a4f"
- dependencies:
- http-https "^1.0.0"
-
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
- dependencies:
- ee-first "1.1.1"
-
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- dependencies:
- wrappy "1"
-
-once@~1.3.0:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20"
- dependencies:
- wrappy "1"
-
-onetime@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
-
-onetime@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
- dependencies:
- mimic-fn "^1.0.0"
-
-optimist@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
-optionator@^0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
- dependencies:
- deep-is "~0.1.3"
- fast-levenshtein "~2.0.4"
- levn "~0.3.0"
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
- wordwrap "~1.0.0"
-
-orchestrator@^0.3.0:
- version "0.3.8"
- resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e"
- dependencies:
- end-of-stream "~0.1.5"
- sequencify "~0.0.7"
- stream-consume "~0.1.0"
-
-ordered-read-streams@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126"
-
-os-homedir@^1.0.0, os-homedir@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-
-os-locale@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
- dependencies:
- lcid "^1.0.0"
-
-os-timesync@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/os-timesync/-/os-timesync-1.0.7.tgz#fc7ea7e6de1fc88742880cd08ff284327678e20d"
-
-os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-
-osenv@^0.1.0:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.0"
-
-"over@>= 0.0.5 < 1":
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708"
-
-p-cancelable@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
-
-p-finally@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
-
-p-limit@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
-
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- dependencies:
- p-limit "^1.1.0"
-
-p-timeout@^1.1.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.0.tgz#9820f99434c5817868b4f34809ee5291660d5b6c"
- dependencies:
- p-finally "^1.0.0"
-
-package-json@^2.0.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb"
- dependencies:
- got "^5.0.0"
- registry-auth-token "^3.0.1"
- registry-url "^3.0.3"
- semver "^5.1.0"
-
-parse-color@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619"
- dependencies:
- color-convert "~0.5.0"
-
-parse-filepath@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73"
- dependencies:
- is-absolute "^0.2.3"
- map-cache "^0.2.0"
- path-root "^0.1.1"
-
-parse-glob@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
- dependencies:
- glob-base "^0.3.0"
- is-dotfile "^1.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.0"
-
-parse-headers@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536"
- dependencies:
- for-each "^0.3.2"
- trim "0.0.1"
-
-parse-json@^2.1.0, parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- dependencies:
- error-ex "^1.2.0"
-
-parse-passwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
-
-parseurl@~1.3.1, parseurl@~1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
-
-path-exists@^2.0.0, path-exists@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- dependencies:
- pinkie-promise "^2.0.0"
-
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
-
-path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-path-is-inside@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-
-path-parse@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
-
-path-root-regex@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d"
-
-path-root@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7"
- dependencies:
- path-root-regex "^0.1.0"
-
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
-
-path-type@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
- dependencies:
- graceful-fs "^4.1.2"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-path-type@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
- dependencies:
- pify "^2.0.0"
-
-pend@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
-
-performance-now@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
-
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-
-pify@^2.0.0, pify@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-
-pkg-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
- dependencies:
- find-up "^1.0.0"
-
-plist@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/plist/-/plist-2.1.0.tgz#57ccdb7a0821df21831217a3cad54e3e146a1025"
- dependencies:
- base64-js "1.2.0"
- xmlbuilder "8.2.2"
- xmldom "0.1.x"
-
-pluralize@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
-
-prebuild-install@^2.0.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.2.2.tgz#dd47c4d61f3754fb17bbf601759e5922e16e0671"
- dependencies:
- expand-template "^1.0.2"
- github-from-package "0.0.0"
- minimist "^1.2.0"
- mkdirp "^0.5.1"
- node-abi "^2.0.0"
- noop-logger "^0.1.1"
- npmlog "^4.0.1"
- os-homedir "^1.0.1"
- pump "^1.0.1"
- rc "^1.1.6"
- simple-get "^1.4.2"
- tar-fs "^1.13.0"
- tunnel-agent "^0.6.0"
- xtend "4.0.1"
-
-prelude-ls@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-
-prepend-http@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
-
-preserve@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
-
-pretty-bytes@^1.0.2:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84"
- dependencies:
- get-stdin "^4.0.1"
- meow "^3.1.0"
-
-pretty-hrtime@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
-
-private@^0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1"
-
-process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
-process@~0.5.1:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
-
-progress-stream@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77"
- dependencies:
- speedometer "~0.1.2"
- through2 "~0.2.3"
-
-progress-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-2.0.0.tgz#fac63a0b3d11deacbb0969abcc93b214bce19ed5"
- dependencies:
- speedometer "~1.0.0"
- through2 "~2.0.3"
-
-progress@^1.1.8:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
-
-proxy-addr@~1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918"
- dependencies:
- forwarded "~0.1.0"
- ipaddr.js "1.4.0"
-
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
-
-pullstream@~0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314"
- dependencies:
- over ">= 0.0.5 < 1"
- readable-stream "~1.0.31"
- setimmediate ">= 1.0.2 < 2"
- slice-stream ">= 1.0.0 < 2"
-
-pump@^1.0.0, pump@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51"
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
-punycode@1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-
-punycode@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-
-q@~1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
-
-qs@6.5.0:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49"
-
-qs@6.5.1, qs@~6.5.1:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
-
-qs@~6.4.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
-
-query-string@^2.4.0:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-2.4.2.tgz#7db0666420804baa92ae9f268962855a76143dfb"
- dependencies:
- strict-uri-encode "^1.0.0"
-
-querystring@0.2.0, querystring@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-
-randomatic@^1.1.3:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
- dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
-
-range-parser@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
-
-raw-body@2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89"
- dependencies:
- bytes "3.0.0"
- http-errors "1.6.2"
- iconv-lite "0.4.19"
- unpipe "1.0.0"
-
-rc@^1.0.1, rc@^1.1.2, rc@^1.1.6:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
- dependencies:
- deep-extend "~0.4.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
-read-all-stream@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa"
- dependencies:
- pinkie-promise "^2.0.0"
- readable-stream "^2.0.0"
-
-read-pkg-up@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
- dependencies:
- find-up "^1.0.0"
- read-pkg "^1.0.0"
-
-read-pkg-up@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
- dependencies:
- find-up "^2.0.0"
- read-pkg "^2.0.0"
-
-read-pkg@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
- dependencies:
- load-json-file "^1.0.0"
- normalize-package-data "^2.3.2"
- path-type "^1.0.0"
-
-read-pkg@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
- dependencies:
- load-json-file "^2.0.0"
- normalize-package-data "^2.3.2"
- path-type "^2.0.0"
-
-"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.0, readable-stream@~1.0.31:
- version "1.0.34"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-readable-stream@^1.1.7, readable-stream@~1.1.9:
- version "1.1.14"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "0.0.1"
- string_decoder "~0.10.x"
-
-readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- safe-buffer "~5.1.1"
- string_decoder "~1.0.3"
- util-deprecate "~1.0.1"
-
-readline2@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- mute-stream "0.0.5"
-
-rechoir@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
- dependencies:
- resolve "^1.1.6"
-
-redent@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde"
- dependencies:
- indent-string "^2.1.0"
- strip-indent "^1.0.1"
-
-redux-devtools-instrument@^1.3.3:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/redux-devtools-instrument/-/redux-devtools-instrument-1.8.2.tgz#5e91cfe402e790dae3fd2f0d235f7b7d84b09ffe"
- dependencies:
- lodash "^4.2.0"
- symbol-observable "^1.0.2"
-
-redux-thunk@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.2.0.tgz#e615a16e16b47a19a515766133d1e3e99b7852e5"
-
-redux@^3.7.2:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
- dependencies:
- lodash "^4.2.1"
- lodash-es "^4.2.1"
- loose-envify "^1.1.0"
- symbol-observable "^1.0.3"
-
-regenerate@^1.2.1:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f"
-
-regenerator-runtime@^0.10.0:
- version "0.10.5"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
-
-regenerator-runtime@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
-
-regex-cache@^0.4.2:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
- dependencies:
- is-equal-shallow "^0.1.3"
-
-regexpu-core@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240"
- dependencies:
- regenerate "^1.2.1"
- regjsgen "^0.2.0"
- regjsparser "^0.1.4"
-
-registry-auth-token@^3.0.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006"
- dependencies:
- rc "^1.1.6"
- safe-buffer "^5.0.1"
-
-registry-url@^3.0.3:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
- dependencies:
- rc "^1.0.1"
-
-regjsgen@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
-
-regjsparser@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c"
- dependencies:
- jsesc "~0.5.0"
-
-remote-redux-devtools@^0.5.12:
- version "0.5.12"
- resolved "https://registry.yarnpkg.com/remote-redux-devtools/-/remote-redux-devtools-0.5.12.tgz#42cb95dfa9e54c1d9671317c5e7bba41e68caec2"
- dependencies:
- jsan "^3.1.5"
- querystring "^0.2.0"
- redux-devtools-instrument "^1.3.3"
- remotedev-utils "^0.1.1"
- rn-host-detect "^1.0.1"
- socketcluster-client "^5.3.1"
-
-remotedev-serialize@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/remotedev-serialize/-/remotedev-serialize-0.1.0.tgz#074768e98cb7aa806f45994eeb0c8af95120ee32"
- dependencies:
- jsan "^3.1.0"
-
-remotedev-utils@^0.1.1:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/remotedev-utils/-/remotedev-utils-0.1.4.tgz#643700819a943678073c75eb185e81d96620b348"
- dependencies:
- get-params "^0.1.2"
- jsan "^3.1.5"
- lodash "^4.0.0"
- remotedev-serialize "^0.1.0"
- shortid "^2.2.6"
-
-remove-trailing-separator@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
-
-repeat-element@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
-
-repeat-string@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-
-repeating@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
- dependencies:
- is-finite "^1.0.0"
-
-replace-ext@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
-
-request@^2.45.0, request@^2.55.0, request@^2.79.0, request@^2.81.0:
- version "2.82.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.82.0.tgz#2ba8a92cd7ac45660ea2b10a53ae67cd247516ea"
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.6.0"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.1"
- forever-agent "~0.6.1"
- form-data "~2.3.1"
- har-validator "~5.0.3"
- hawk "~6.0.2"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.17"
- oauth-sign "~0.8.2"
- performance-now "^2.1.0"
- qs "~6.5.1"
- safe-buffer "^5.1.1"
- stringstream "~0.0.5"
- tough-cookie "~2.3.2"
- tunnel-agent "^0.6.0"
- uuid "^3.1.0"
-
-request@~2.81.0:
- version "2.81.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
- dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~4.2.1"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- oauth-sign "~0.8.1"
- performance-now "^0.2.0"
- qs "~6.4.0"
- safe-buffer "^5.0.1"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "^0.6.0"
- uuid "^3.0.0"
-
-require-dir@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/require-dir/-/require-dir-0.3.2.tgz#c1d5c75e9fbffde9f2e6b33e383db4f594b5a6a9"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
-
-require-from-string@^1.1.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418"
-
-require-main-filename@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
-
-require-uncached@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
- dependencies:
- caller-path "^0.1.0"
- resolve-from "^1.0.0"
-
-resolve-dir@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
- dependencies:
- expand-tilde "^1.2.2"
- global-modules "^0.2.3"
-
-resolve-from@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
-
-resolve-url@~0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
-
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
- dependencies:
- path-parse "^1.0.5"
-
-restore-cursor@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
- dependencies:
- exit-hook "^1.0.0"
- onetime "^1.0.0"
-
-restore-cursor@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
- dependencies:
- onetime "^2.0.0"
- signal-exit "^3.0.2"
-
-resumer@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759"
- dependencies:
- through "~2.3.4"
-
-rgb2hex@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.1.0.tgz#ccd55f860ae0c5c4ea37504b958e442d8d12325b"
-
-rimraf@2, rimraf@^2.2.8:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
- dependencies:
- glob "^7.0.5"
-
-ripemd160@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
- dependencies:
- hash-base "^2.0.0"
- inherits "^2.0.1"
-
-rlp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.0.0.tgz#9db384ff4b89a8f61563d92395d8625b18f3afb0"
-
-rn-host-detect@^1.0.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/rn-host-detect/-/rn-host-detect-1.1.3.tgz#242d76e2fa485c48d751416e65b7cce596969e91"
-
-run-async@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
- dependencies:
- once "^1.3.0"
-
-run-async@^2.2.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
- dependencies:
- is-promise "^2.1.0"
-
-run-sequence@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-1.2.2.tgz#5095a0bebe98733b0140bd08dd80ec030ddacdeb"
- dependencies:
- chalk "*"
- gulp-util "*"
-
-rx-lite@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
-
-rx@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
-
-safe-buffer@~5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
-
-sanitize-filename@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a"
- dependencies:
- truncate-utf8-bytes "^1.0.0"
-
-sax@>=0.6.0:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-
-sc-channel@~1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/sc-channel/-/sc-channel-1.0.6.tgz#b38bd47a993e78290fbc53467867f6b2a0a08639"
- dependencies:
- sc-emitter "1.x.x"
-
-sc-emitter@1.x.x, sc-emitter@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/sc-emitter/-/sc-emitter-1.1.0.tgz#ef119d4222f4c64f887b486964ef11116cdd0e75"
- dependencies:
- component-emitter "1.2.0"
-
-sc-errors@~1.3.0:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/sc-errors/-/sc-errors-1.3.3.tgz#c00bc4c766a970cc8d5937d08cd58e931d7dae05"
-
-sc-formatter@~3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/sc-formatter/-/sc-formatter-3.0.0.tgz#c91b1fe56c260abd5a6a2e6af98c724bc7998a38"
-
-secp256k1@^3.0.1:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.3.0.tgz#50ec9b201ba401403dd13ccbf21d31eeb3ff43cf"
- dependencies:
- bindings "^1.2.1"
- bip66 "^1.1.3"
- bn.js "^4.11.3"
- create-hash "^1.1.2"
- drbg.js "^1.0.1"
- elliptic "^6.2.3"
- nan "^2.2.1"
- prebuild-install "^2.0.0"
- safe-buffer "^5.1.0"
-
-seek-bzip@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
- dependencies:
- commander "~2.8.1"
-
-semver-compare@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
-
-semver-diff@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36"
- dependencies:
- semver "^5.0.3"
-
-"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
-
-semver@^4.1.0:
- version "4.3.6"
- resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
-
-send@0.15.6:
- version "0.15.6"
- resolved "https://registry.yarnpkg.com/send/-/send-0.15.6.tgz#20f23a9c925b762ab82705fe2f9db252ace47e34"
- dependencies:
- debug "2.6.9"
- depd "~1.1.1"
- destroy "~1.0.4"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "~1.6.2"
- mime "1.3.4"
- ms "2.0.0"
- on-finished "~2.3.0"
- range-parser "~1.2.0"
- statuses "~1.3.1"
-
-sequencify@~0.0.7:
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c"
-
-serve-static@1.12.6:
- version "1.12.6"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.6.tgz#b973773f63449934da54e5beba5e31d9f4211577"
- dependencies:
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- parseurl "~1.3.2"
- send "0.15.6"
-
-servify@^0.1.12:
- version "0.1.12"
- resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95"
- dependencies:
- body-parser "^1.16.0"
- cors "^2.8.1"
- express "^4.14.0"
- request "^2.79.0"
- xhr "^2.3.3"
-
-set-blocking@^2.0.0, set-blocking@~2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-
-"setimmediate@>= 1.0.2 < 2", setimmediate@^1.0.5, setimmediate@~1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-
-setprototypeof@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
-
-sha.js@^2.4.0, sha.js@^2.4.8:
- version "2.4.9"
- resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d"
- dependencies:
- inherits "^2.0.1"
- safe-buffer "^5.0.1"
-
-sha3@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.0.tgz#6989f1b70a498705876a373e2c62ace96aa9399a"
- dependencies:
- nan "^2.0.5"
-
-shelljs@^0.6.0:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8"
-
-shelljs@^0.7.5, shelljs@^0.7.7:
- version "0.7.8"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
- dependencies:
- glob "^7.0.0"
- interpret "^1.0.0"
- rechoir "^0.6.2"
-
-shortid@^2.2.6:
- version "2.2.8"
- resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131"
-
-sigmund@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
-
-signal-exit@^3.0.0, signal-exit@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-
-simple-get@^1.4.2, simple-get@^1.4.3:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-1.4.3.tgz#e9755eda407e96da40c5e5158c9ea37b33becbeb"
- dependencies:
- once "^1.3.1"
- unzip-response "^1.0.0"
- xtend "^4.0.0"
-
-single-line-log@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364"
- dependencies:
- string-width "^1.0.1"
-
-slash@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
-
-slice-ansi@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
-
-"slice-stream@>= 1.0.0 < 2":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0"
- dependencies:
- readable-stream "~1.0.31"
-
-slide@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
-
-sntp@1.x.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
- dependencies:
- hoek "2.x.x"
-
-sntp@2.x.x:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b"
- dependencies:
- hoek "4.x.x"
-
-socketcluster-client@^5.3.1:
- version "5.5.2"
- resolved "https://registry.yarnpkg.com/socketcluster-client/-/socketcluster-client-5.5.2.tgz#9d4369e0e722ff7e55e5422c2d44f5afe1aff128"
- dependencies:
- base-64 "0.1.0"
- clone "2.1.1"
- linked-list "0.1.0"
- querystring "0.2.0"
- sc-channel "~1.0.6"
- sc-emitter "~1.1.0"
- sc-errors "~1.3.0"
- sc-formatter "~3.0.0"
- ws "3.0.0"
-
-solc@^0.4.15:
- version "0.4.17"
- resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.17.tgz#75f93da6bc190becb89f6663076ab943ff95cd2f"
- dependencies:
- fs-extra "^0.30.0"
- memorystream "^0.3.1"
- require-from-string "^1.1.0"
- semver "^5.3.0"
- yargs "^4.7.1"
-
-source-map-resolve@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761"
- dependencies:
- atob "~1.1.0"
- resolve-url "~0.2.1"
- source-map-url "~0.3.0"
- urix "~0.1.0"
-
-source-map-support@^0.4.11, source-map-support@^0.4.15:
- version "0.4.18"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
- dependencies:
- source-map "^0.5.6"
-
-source-map-url@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9"
-
-source-map@^0.1.38:
- version "0.1.43"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
- dependencies:
- amdefine ">=0.0.4"
-
-source-map@^0.5.1, source-map@^0.5.6:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-
-sparkles@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
-
-spdx-correct@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
- dependencies:
- spdx-license-ids "^1.0.2"
-
-spdx-expression-parse@~1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
-
-spdx-license-ids@^1.0.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
-
-spectron@3.7.2:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/spectron/-/spectron-3.7.2.tgz#86f41306a9b70ed6ee1500f7f7d3adc389afb446"
- dependencies:
- dev-null "^0.1.1"
- electron-chromedriver "~1.7.1"
- request "^2.81.0"
- split "^1.0.0"
- webdriverio "^4.8.0"
-
-speedometer@~0.1.2:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d"
-
-speedometer@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-1.0.0.tgz#cd671cb06752c22bca3370e2f334440be4fc62e2"
-
-split@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
- dependencies:
- through "2"
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-
-sshpk@^1.7.0:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
- dependencies:
- asn1 "~0.2.3"
- assert-plus "^1.0.0"
- dashdash "^1.12.0"
- getpass "^0.1.1"
- optionalDependencies:
- bcrypt-pbkdf "^1.0.0"
- ecc-jsbn "~0.1.1"
- jsbn "~0.1.0"
- tweetnacl "~0.14.0"
-
-stat-mode@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502"
-
-"statuses@>= 1.3.1 < 2", statuses@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
-
-stream-consume@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f"
-
-streamroller@^0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.4.1.tgz#d435bd5974373abd9bd9068359513085106cc05f"
- dependencies:
- date-format "^0.0.0"
- debug "^0.7.2"
- mkdirp "^0.5.1"
- readable-stream "^1.1.7"
-
-strict-uri-encode@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
-
-string-width@^1.0.1, string-width@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-string-width@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^4.0.0"
-
-string_decoder@~0.10.x:
- version "0.10.31"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
-
-string_decoder@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
- dependencies:
- safe-buffer "~5.1.0"
-
-stringstream@~0.0.4, stringstream@~0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
-
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
- dependencies:
- ansi-regex "^3.0.0"
-
-strip-bom@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794"
- dependencies:
- first-chunk-stream "^1.0.0"
- is-utf8 "^0.2.0"
-
-strip-bom@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
- dependencies:
- is-utf8 "^0.2.0"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
-
-strip-dirs@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.0.0.tgz#610cdb2928200da0004f41dcb90fc95cd919a0b6"
- dependencies:
- is-natural-number "^4.0.1"
-
-strip-indent@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
- dependencies:
- get-stdin "^4.0.1"
-
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
-
-sumchecker@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d"
- dependencies:
- debug "^2.2.0"
- es6-promise "^4.0.5"
-
-sumchecker@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e"
- dependencies:
- debug "^2.2.0"
-
-supports-color@3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
- dependencies:
- has-flag "^1.0.0"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-
-supports-color@^4.0.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
- dependencies:
- has-flag "^2.0.0"
-
-supports-color@~3.2.3:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
- dependencies:
- has-flag "^1.0.0"
-
-swarm-js@^0.1.21:
- version "0.1.36"
- resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.36.tgz#9271be5004fa28900020bcc9a0f7cf23cc50b1a0"
- dependencies:
- 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"
-
-symbol-observable@^1.0.2, symbol-observable@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
-
-table@^3.7.8:
- version "3.8.3"
- resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
- dependencies:
- ajv "^4.7.0"
- ajv-keywords "^1.0.0"
- chalk "^1.1.1"
- lodash "^4.0.0"
- slice-ansi "0.0.4"
- string-width "^2.0.0"
-
-tape@^3.0.3:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/tape/-/tape-3.6.1.tgz#4893dd53e280a5f58c0ceb30c2c0ebb3bcd51e1f"
- dependencies:
- deep-equal "~0.2.0"
- defined "~0.0.0"
- glob "~3.2.9"
- inherits "~2.0.1"
- object-inspect "~0.4.0"
- resumer "~0.0.0"
- through "~2.3.4"
-
-tar-fs@^1.13.0:
- version "1.15.3"
- resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.15.3.tgz#eccf935e941493d8151028e636e51ce4c3ca7f20"
- dependencies:
- chownr "^1.0.1"
- mkdirp "^0.5.1"
- pump "^1.0.0"
- tar-stream "^1.1.2"
-
-tar-stream@^1.1.2, tar-stream@^1.5.0, tar-stream@^1.5.2:
- version "1.5.4"
- resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016"
- dependencies:
- bl "^1.0.0"
- end-of-stream "^1.0.0"
- readable-stream "^2.0.0"
- xtend "^4.0.0"
-
-tar.gz@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/tar.gz/-/tar.gz-1.0.5.tgz#e1ada7e45ef2241b4b1ee58123c8f40b5d3c1bc4"
- dependencies:
- bluebird "^2.9.34"
- commander "^2.8.1"
- fstream "^1.0.8"
- mout "^0.11.0"
- tar "^2.1.1"
-
-tar@^2.1.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
- dependencies:
- block-stream "*"
- fstream "^1.0.2"
- inherits "2"
-
-text-table@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-
-thenify-all@^1.0.0, thenify-all@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
- dependencies:
- thenify ">= 3.1.0 < 4"
-
-"thenify@>= 3.1.0 < 4":
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839"
- dependencies:
- any-promise "^1.0.0"
-
-throttleit@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf"
-
-through2@^0.6.1:
- version "0.6.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
- dependencies:
- readable-stream ">=1.0.33-1 <1.1.0-0"
- xtend ">=4.0.0 <4.1.0-0"
-
-through2@^2.0.0, through2@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
- dependencies:
- readable-stream "^2.1.5"
- xtend "~4.0.1"
-
-through2@~0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f"
- dependencies:
- readable-stream "~1.1.9"
- xtend "~2.1.1"
-
-through@2, through@^2.3.6, through@~2.3.4:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-
-tildify@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a"
- dependencies:
- os-homedir "^1.0.0"
-
-time-stamp@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
-
-timed-out@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a"
-
-timed-out@^3.0.0:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217"
-
-timed-out@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
-
-tmp@0.0.28:
- version "0.0.28"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120"
- dependencies:
- os-tmpdir "~1.0.1"
-
-tmp@0.0.29:
- version "0.0.29"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0"
- dependencies:
- os-tmpdir "~1.0.1"
-
-tmp@^0.0.33:
- version "0.0.33"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
- dependencies:
- os-tmpdir "~1.0.2"
-
-to-fast-properties@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
-
-tough-cookie@~2.3.0, tough-cookie@~2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
- dependencies:
- punycode "^1.4.1"
-
-"traverse@>=0.3.0 <0.4":
- version "0.3.9"
- resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
-
-trim-newlines@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
-
-trim-right@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
-
-trim@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd"
-
-truncate-utf8-bytes@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
- dependencies:
- utf8-byte-length "^1.0.1"
-
-tryit@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
-
-tunnel-agent@^0.4.3:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
-
-tunnel-agent@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
- dependencies:
- safe-buffer "^5.0.1"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
- version "0.14.5"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-
-type-check@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
- dependencies:
- prelude-ls "~1.1.2"
-
-type-detect@0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
-
-type-detect@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
-
-type-is@~1.6.15:
- version "1.6.15"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410"
- dependencies:
- media-typer "0.3.0"
- mime-types "~2.1.15"
-
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-
-typescript@^2.2.2:
- version "2.5.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d"
-
-ultron@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.0.tgz#b07a2e6a541a815fc6a34ccd4533baec307ca864"
-
-unbzip2-stream@^1.0.9:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
- dependencies:
- buffer "^3.0.1"
- through "^2.3.6"
-
-unc-path-regex@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
-
-underscore-deep-extend@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/underscore-deep-extend/-/underscore-deep-extend-1.1.5.tgz#962ba1f8b3bb2e2afd182ed86f2e5275543c52bd"
-
-underscore@>=1.0.0, underscore@^1.8.3:
- version "1.8.3"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022"
-
-unique-stream@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b"
-
-unpipe@1.0.0, unpipe@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
-
-unzip-response@^1.0.0, unzip-response@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe"
-
-unzip-response@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97"
-
-update-notifier@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a"
- dependencies:
- boxen "^0.6.0"
- chalk "^1.0.0"
- configstore "^2.0.0"
- is-npm "^1.0.0"
- latest-version "^2.0.0"
- lazy-req "^1.1.0"
- semver-diff "^2.0.0"
- xdg-basedir "^2.0.0"
-
-urix@^0.1.0, urix@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
-
-url-join@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.2.tgz#c072756967ad24b8b59e5741551caac78f50b8b7"
-
-url-parse-lax@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
- dependencies:
- prepend-http "^1.0.1"
-
-url-set-query@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339"
-
-url-to-options@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
-
-url@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
- dependencies:
- punycode "1.3.2"
- querystring "0.2.0"
-
-user-home@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
-
-user-home@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
- dependencies:
- os-homedir "^1.0.0"
-
-utf8-byte-length@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
-
-utf8@^2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96"
-
-util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-
-util-extend@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f"
-
-utils-merge@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8"
-
-uuid-1345@^0.99.6:
- version "0.99.6"
- resolved "https://registry.yarnpkg.com/uuid-1345/-/uuid-1345-0.99.6.tgz#b1270ae015a7721c7adec6c46ec169c6098aed40"
- dependencies:
- macaddress "^0.2.7"
-
-uuid@^2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
-
-uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
-
-v8flags@^2.0.2:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4"
- dependencies:
- user-home "^1.1.1"
-
-validate-npm-package-license@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
- dependencies:
- spdx-correct "~1.0.0"
- spdx-expression-parse "~1.0.0"
-
-validator@~7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/validator/-/validator-7.0.0.tgz#c74deb8063512fac35547938e6f0b1504a282fd2"
-
-vary@^1, vary@~1.1.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
-
-verror@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
- dependencies:
- assert-plus "^1.0.0"
- core-util-is "1.0.2"
- extsprintf "^1.2.0"
-
-vinyl-fs@^0.3.0:
- version "0.3.14"
- resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6"
- dependencies:
- defaults "^1.0.0"
- glob-stream "^3.1.5"
- glob-watcher "^0.0.6"
- graceful-fs "^3.0.0"
- mkdirp "^0.5.0"
- strip-bom "^1.0.0"
- through2 "^0.6.1"
- vinyl "^0.4.0"
-
-vinyl-sourcemaps-apply@^0.2.0:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705"
- dependencies:
- source-map "^0.5.1"
-
-vinyl@^0.4.0:
- version "0.4.6"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847"
- dependencies:
- clone "^0.2.0"
- clone-stats "^0.0.1"
-
-vinyl@^0.5.0:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde"
- dependencies:
- clone "^1.0.0"
- clone-stats "^0.0.1"
- replace-ext "0.0.1"
-
-walkdir@^0.0.11:
- version "0.0.11"
- resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532"
-
-wdio-dot-reporter@~0.0.8:
- version "0.0.9"
- resolved "https://registry.yarnpkg.com/wdio-dot-reporter/-/wdio-dot-reporter-0.0.9.tgz#929b2adafd49d6b0534fda068e87319b47e38fe5"
-
-web3@^0.18.4:
- version "0.18.4"
- resolved "https://registry.yarnpkg.com/web3/-/web3-0.18.4.tgz#81ec1784145491f2eaa8955b31c06049e07c5e7d"
- dependencies:
- bignumber.js "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2"
- crypto-js "^3.1.4"
- utf8 "^2.1.1"
- xhr2 "*"
- xmlhttprequest "*"
-
-webdriverio@^4.8.0:
- version "4.8.0"
- resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-4.8.0.tgz#d52929b749080f89967f6e1614051cbc8172d132"
- dependencies:
- archiver "~1.3.0"
- babel-runtime "~6.23.0"
- css-parse "~2.0.0"
- css-value "~0.0.1"
- deepmerge "~1.3.2"
- ejs "~2.5.6"
- gaze "~1.1.2"
- glob "~7.1.1"
- inquirer "~3.0.6"
- json-stringify-safe "~5.0.1"
- mkdirp "~0.5.1"
- npm-install-package "~2.1.0"
- optimist "~0.6.1"
- q "~1.5.0"
- request "~2.81.0"
- rgb2hex "~0.1.0"
- safe-buffer "~5.0.1"
- supports-color "~3.2.3"
- url "~0.11.0"
- validator "~7.0.0"
- wdio-dot-reporter "~0.0.8"
- wgxpath "~1.0.0"
-
-wgxpath@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wgxpath/-/wgxpath-1.0.0.tgz#eef8a4b9d558cc495ad3a9a2b751597ecd9af690"
-
-which-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
-
-which@^1.2.12, which@^1.2.4, which@^1.2.9:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
- dependencies:
- isexe "^2.0.0"
-
-wide-align@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710"
- dependencies:
- string-width "^1.0.2"
-
-widest-line@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c"
- dependencies:
- string-width "^1.0.1"
-
-window-size@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
-wordwrap@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
-wrap-ansi@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
- dependencies:
- string-width "^1.0.1"
- strip-ansi "^3.0.1"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-
-write-file-atomic@^1.1.2:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
- dependencies:
- graceful-fs "^4.1.11"
- imurmurhash "^0.1.4"
- slide "^1.1.5"
-
-write@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
- dependencies:
- mkdirp "^0.5.1"
-
-ws@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-3.0.0.tgz#98ddb00056c8390cb751e7788788497f99103b6c"
- dependencies:
- safe-buffer "~5.0.1"
- ultron "~1.1.0"
-
-ws@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-3.2.0.tgz#d5d3d6b11aff71e73f808f40cc69d52bb6d4a185"
- dependencies:
- async-limiter "~1.0.0"
- safe-buffer "~5.1.0"
- ultron "~1.1.0"
-
-xdg-basedir@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2"
- dependencies:
- os-homedir "^1.0.0"
-
-xhr-request-promise@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz#343c44d1ee7726b8648069682d0f840c83b4261d"
- dependencies:
- xhr-request "^1.0.1"
-
-xhr-request@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.0.1.tgz#83f08a4b20beec67a8c1c728e8102f4c9eecbdda"
- dependencies:
- buffer-to-arraybuffer "0.0.2"
- object-assign "^3.0.0"
- query-string "^2.4.0"
- simple-get "^1.4.3"
- timed-out "^2.0.0"
- url-set-query "^1.0.0"
- xhr "^2.0.4"
-
-xhr2@*:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f"
-
-xhr@^2.0.4, xhr@^2.3.3:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.4.0.tgz#e16e66a45f869861eeefab416d5eff722dc40993"
- dependencies:
- global "~4.3.0"
- is-function "^1.0.1"
- parse-headers "^2.0.0"
- xtend "^4.0.0"
-
-xml2js@^0.4.17:
- version "0.4.19"
- resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
- dependencies:
- sax ">=0.6.0"
- xmlbuilder "~9.0.1"
-
-xmlbuilder@8.2.2:
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773"
-
-xmlbuilder@~9.0.1:
- version "9.0.4"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f"
-
-xmldom@0.1.x:
- version "0.1.27"
- resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
-
-xmlhttprequest@*:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
-
-xtend@4.0.1, "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
-
-xtend@~2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b"
- dependencies:
- object-keys "~0.4.0"
-
-y18n@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
-
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
-
-yargs-parser@^2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4"
- dependencies:
- camelcase "^3.0.0"
- lodash.assign "^4.0.6"
-
-yargs-parser@^4.2.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
- dependencies:
- camelcase "^3.0.0"
-
-yargs-parser@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a"
- dependencies:
- camelcase "^3.0.0"
-
-yargs@^4.3.2, yargs@^4.7.1:
- version "4.8.1"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0"
- dependencies:
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- lodash.assign "^4.0.3"
- 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.1"
- which-module "^1.0.0"
- window-size "^0.2.0"
- y18n "^3.2.1"
- yargs-parser "^2.4.1"
-
-yargs@^6.6.0:
- version "6.6.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
- dependencies:
- camelcase "^3.0.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^1.4.0"
- read-pkg-up "^1.0.1"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^1.0.2"
- which-module "^1.0.0"
- y18n "^3.2.1"
- yargs-parser "^4.2.0"
-
-yargs@^7.0.2:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"
- dependencies:
- camelcase "^3.0.0"
- cliui "^3.2.0"
- decamelize "^1.1.1"
- get-caller-file "^1.0.1"
- os-locale "^1.4.0"
- read-pkg-up "^1.0.1"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^1.0.2"
- which-module "^1.0.0"
- y18n "^3.2.1"
- yargs-parser "^5.0.0"
-
-yauzl@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
- dependencies:
- fd-slicer "~1.0.1"
-
-yauzl@^2.4.2:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2"
- dependencies:
- buffer-crc32 "~0.2.3"
- fd-slicer "~1.0.1"
-
-zip-stream@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.2.0.tgz#a8bc45f4c1b49699c6b90198baacaacdbcd4ba04"
- dependencies:
- archiver-utils "^1.3.0"
- compress-commons "^1.2.0"
- lodash "^4.8.0"
- readable-stream "^2.0.0"
From 7b6b9370023aaf225ce91d43ddbba78586db462a Mon Sep 17 00:00:00 2001
From: Marc Garreau
Date: Thu, 5 Oct 2017 11:40:11 -0600
Subject: [PATCH 006/150] Refactors window logic/state into module
---
.../client/templates/popupWindows/about.html | 2 +-
main.js | 83 +-------
modules/clientBinaryManager.js | 13 +-
modules/core/ui/reducer.js | 27 ++-
modules/ipc/methods/eth_sendTransaction.js | 11 +-
modules/ipcCommunicator.js | 20 +-
modules/menuItems.js | 40 +---
modules/updateChecker.js | 11 +-
modules/windows.js | 189 +++++++++++++++---
tests/unit/core/ui/reducer.test.js | 20 ++
10 files changed, 219 insertions(+), 197 deletions(-)
create mode 100644 tests/unit/core/ui/reducer.test.js
diff --git a/interface/client/templates/popupWindows/about.html b/interface/client/templates/popupWindows/about.html
index a8618e4ec..e93a70ae8 100644
--- a/interface/client/templates/popupWindows/about.html
+++ b/interface/client/templates/popupWindows/about.html
@@ -10,7 +10,7 @@ {{appName}}
License {{mist.license}}
GitHub github.com/ethereum/mist
- Copyright 2016 Ethereum Foundation
+ Copyright 2017 Ethereum Foundation
\ No newline at end of file
diff --git a/main.js b/main.js
index 14d94a305..0caa765b3 100644
--- a/main.js
+++ b/main.js
@@ -165,7 +165,6 @@ async function init() {
// Initialise window mgr
Windows.init();
- store.dispatch({ type: 'WINDOWS::INIT_FINISH' });
// Enable the Swarm protocol
protocol.registerHttpProtocol('bzz', (request, callback) => {
@@ -195,78 +194,16 @@ async function init() {
// add menu already here, so we have copy and paste functionality
appMenu();
- // Create the browser window.
-
- const defaultWindow = windowStateKeeper({
- defaultWidth: 1024 + 208,
- defaultHeight: 720
- });
+ global.defaultWindow = windowStateKeeper({ defaultWidth: 1024 + 208, defaultHeight: 720 });
- store.dispatch({ type: 'MAIN_WINDOW::CREATE_START' });
-
- // MIST
- if (global.mode === 'mist') {
- mainWindow = Windows.create('main', {
- primary: true,
- electronOptions: {
- width: Math.max(defaultWindow.width, 500),
- height: Math.max(defaultWindow.height, 440),
- x: defaultWindow.x,
- y: defaultWindow.y,
- webPreferences: {
- nodeIntegration: true, /* necessary for webviews;
- require will be removed through preloader */
- preload: `${__dirname}/modules/preloader/mistUI.js`,
- 'overlay-fullscreen-video': true,
- 'overlay-scrollbars': true,
- experimentalFeatures: true,
- },
- },
- });
- store.dispatch({ type: 'MAIN_WINDOW::CREATE_SUCCESS' });
-
- // WALLET
- } else {
- mainWindow = Windows.create('main', {
- primary: true,
- electronOptions: {
- width: Math.max(defaultWindow.width, 500),
- height: Math.max(defaultWindow.height, 440),
- x: defaultWindow.x,
- y: defaultWindow.y,
- webPreferences: {
- preload: `${__dirname}/modules/preloader/walletMain.js`,
- 'overlay-fullscreen-video': true,
- 'overlay-scrollbars': true,
- },
- },
- });
- store.dispatch({ type: 'MAIN_WINDOW::CREATE_SUCCESS' });
- }
+ // Create the browser window.
+ mainWindow = Windows.create('main');
// Delegating events to save window bounds on windowStateKeeper
- defaultWindow.manage(mainWindow.window);
+ global.defaultWindow.manage(mainWindow.window);
if (!Settings.inAutoTestMode) {
- store.dispatch({ type: 'SPLASH_WINDOW::CREATE_START' });
-
- splashWindow = Windows.create('splash', {
- primary: true,
- url: `${global.interfacePopupsUrl}#splashScreen_${global.mode}`,
- show: true,
- electronOptions: {
- width: 400,
- height: 230,
- resizable: false,
- backgroundColor: '#F6F6F6',
- useContentSize: true,
- frame: false,
- webPreferences: {
- preload: `${__dirname}/modules/preloader/splashScreen.js`,
- },
- },
- });
- store.dispatch({ type: 'SPLASH_WINDOW::CREATE_SUCCESS' });
+ splashWindow = Windows.create('splash');
}
// Checks time sync
@@ -405,15 +342,7 @@ async function init() {
log.info('No accounts setup yet, lets do onboarding first.');
return new Q((resolve, reject) => {
- store.dispatch({ type: 'ONBOARDING_WINDOW::CREATE_START' });
- const onboardingWindow = Windows.createPopup('onboardingScreen', {
- primary: true,
- electronOptions: {
- width: 576,
- height: 442,
- },
- });
- store.dispatch({ type: 'ONBOARDING_WINDOW::CREATE_SUCCESS' });
+ const onboardingWindow = Windows.createPopup('onboardingScreen');
onboardingWindow.on('closed', () => {
store.dispatch({ type: 'ONBOARDING_WINDOW::CLOSE' });
diff --git a/modules/clientBinaryManager.js b/modules/clientBinaryManager.js
index a741423f8..c3c535483 100644
--- a/modules/clientBinaryManager.js
+++ b/modules/clientBinaryManager.js
@@ -128,16 +128,7 @@ class Manager extends EventEmitter {
log.debug('New client binaries config found, asking user if they wish to update...');
- const wnd = Windows.createPopup('clientUpdateAvailable', _.extend({
- useWeb3: false,
- electronOptions: {
- width: 600,
- height: 340,
- alwaysOnTop: false,
- resizable: false,
- maximizable: false,
- },
- }, {
+ const wnd = Windows.createPopup('clientUpdateAvailable', {
sendData: {
uiAction_sendData: {
name: nodeType,
@@ -147,7 +138,7 @@ class Manager extends EventEmitter {
restart,
},
},
- }), (update) => {
+ }, (update) => {
// update
if (update === 'update') {
this._writeLocalConfig(latestConfig);
diff --git a/modules/core/ui/reducer.js b/modules/core/ui/reducer.js
index f47c42ccc..18275a5b3 100644
--- a/modules/core/ui/reducer.js
+++ b/modules/core/ui/reducer.js
@@ -1,11 +1,20 @@
-const initialState = {
+export const initialState = {
+ aboutWindowCreated: false,
appQuit: false,
+ clientUpdateAvailableWindowCreated: false,
+ connectAccountWindowCreated: false,
+ importAccountWindowCreated: false,
+ loadingWindowCreated: false,
mainWindowCreated: false,
mainWindowVisible: false,
- onboardingWindowCreated: false,
- onboardingWindowVisible: false,
+ onboardingScreenWindowCreated: false,
+ onboardingScreenWindowVisible: false,
+ remixWindowCreated: false,
+ requestAccountWindowCreated: false,
+ sendTransactionConfirmationWindowCreated: false,
splashWindowCreated: false,
splashWindowVisible: false,
+ updateAvailableWindowCreated: false,
windowsInit: false,
};
@@ -15,25 +24,21 @@ const ui = (state = initialState, action) => {
return Object.assign({}, state, { appQuit: true });
case 'MAIN_WINDOW::CLOSE':
return Object.assign({}, state, { mainWindowVisible: false });
- case 'MAIN_WINDOW::CREATE_SUCCESS':
- return Object.assign({}, state, { mainWindowCreated: true });
+ case '[MAIN]:WINDOW:CREATE_FINISH':
+ return Object.assign({}, state, { [`${action.payload.type}WindowCreated`]: true });
case 'MAIN_WINDOW::SHOW':
return Object.assign({}, state, { mainWindowVisible: true });
case 'MAIN_WINDOW::HIDE':
return Object.assign({}, state, { mainWindowVisible: false });
case 'ONBOARDING_WINDOW::CLOSE':
- return Object.assign({}, state, { onboardingWindowVisible: false });
- case 'ONBOARDING_WINDOW::CREATE_SUCCESS':
- return Object.assign({}, state, { onboardingWindowCreated: true, onboardingWindowVisible: true });
+ return Object.assign({}, state, { onboardingScreenWindowVisible: false });
case 'SPLASH_WINDOW::CLOSE':
return Object.assign({}, state, { splashWindowVisible: false });
- case 'SPLASH_WINDOW::CREATE_SUCCESS':
- return Object.assign({}, state, { splashWindowCreated: true });
case 'SPLASH_WINDOW::SHOW':
return Object.assign({}, state, { splashWindowVisible: true });
case 'SPLASH_WINDOW::HIDE':
return Object.assign({}, state, { splashWindowVisible: false });
- case 'WINDOWS::INIT_FINISH':
+ case '[MAIN]:WINDOWS:INIT_FINISH':
return Object.assign({}, state, { windowsInit: true });
default:
return state;
diff --git a/modules/ipc/methods/eth_sendTransaction.js b/modules/ipc/methods/eth_sendTransaction.js
index 9904cfc5c..11baf5c67 100644
--- a/modules/ipc/methods/eth_sendTransaction.js
+++ b/modules/ipc/methods/eth_sendTransaction.js
@@ -54,16 +54,7 @@ module.exports = class extends BaseProcessor {
}
const modalWindow = Windows.createPopup('sendTransactionConfirmation', {
- sendData: {
- uiAction_sendData: payload.params[0],
- },
- electronOptions: {
- width: 580,
- height: 550,
- alwaysOnTop: true,
- enableLargerThanScreen: false,
- resizable: true
- },
+ sendData: { uiAction_sendData: payload.params[0] }
});
BlurOverlay.enable();
diff --git a/modules/ipcCommunicator.js b/modules/ipcCommunicator.js
index 3a6892fed..72ba18a38 100644
--- a/modules/ipcCommunicator.js
+++ b/modules/ipcCommunicator.js
@@ -219,14 +219,7 @@ ipc.on('backendAction_importWalletFile', (e, path, pw) => {
const createAccountPopup = (e) => {
- Windows.createPopup('requestAccount', {
- ownerId: e.sender.id,
- electronOptions: {
- width: 400,
- height: 230,
- alwaysOnTop: true,
- },
- });
+ Windows.createPopup('requestAccount', { ownerId: e.sender.id });
};
// MIST API
@@ -236,16 +229,7 @@ ipc.on('mistAPI_requestAccount', (e) => {
if (global.mode === 'wallet') {
createAccountPopup(e);
} else { // Mist
- Windows.createPopup('connectAccount', {
- ownerId: e.sender.id,
- electronOptions: {
- width: 460,
- height: 520,
- maximizable: false,
- minimizable: false,
- alwaysOnTop: true,
- },
- });
+ Windows.createPopup('connectAccount', { ownerId: e.sender.id });
}
});
diff --git a/modules/menuItems.js b/modules/menuItems.js
index 3ebd5e826..696295fc2 100644
--- a/modules/menuItems.js
+++ b/modules/menuItems.js
@@ -96,13 +96,7 @@ let menuTempl = function (webviews) {
{
label: i18n.t('mist.applicationMenu.app.about', { app: Settings.appName }),
click() {
- Windows.createPopup('about', {
- electronOptions: {
- width: 420,
- height: 230,
- alwaysOnTop: true,
- },
- });
+ Windows.createPopup('about');
},
},
{
@@ -172,11 +166,7 @@ let menuTempl = function (webviews) {
label: i18n.t('mist.applicationMenu.file.newAccount'),
accelerator: 'CommandOrControl+N',
click() {
- Windows.createPopup('requestAccount', {
- electronOptions: {
- width: 420, height: 230, alwaysOnTop: true,
- },
- });
+ Windows.createPopup('requestAccount');
},
},
{
@@ -184,11 +174,7 @@ let menuTempl = function (webviews) {
accelerator: 'CommandOrControl+I',
enabled: ethereumNode.isMainNetwork,
click() {
- Windows.createPopup('importAccount', {
- electronOptions: {
- width: 600, height: 370, alwaysOnTop: true,
- },
- });
+ Windows.createPopup('importAccount');
},
},
{
@@ -415,17 +401,7 @@ let menuTempl = function (webviews) {
label: i18n.t('mist.applicationMenu.develop.openRemix'),
enabled: true,
click() {
- Windows.createPopup('remix', {
- url: 'https://remix.ethereum.org',
- electronOptions: {
- width: 1024,
- height: 720,
- center: true,
- frame: true,
- resizable: true,
- titleBarStyle: 'default',
- }
- });
+ Windows.createPopup('remix');
},
});
}
@@ -610,13 +586,7 @@ let menuTempl = function (webviews) {
{
label: i18n.t('mist.applicationMenu.app.about', { app: Settings.appName }),
click() {
- Windows.createPopup('about', {
- electronOptions: {
- width: 420,
- height: 230,
- alwaysOnTop: true,
- },
- });
+ Windows.createPopup('about');
},
},
{
diff --git a/modules/updateChecker.js b/modules/updateChecker.js
index f150a6003..95b6918b3 100644
--- a/modules/updateChecker.js
+++ b/modules/updateChecker.js
@@ -65,16 +65,7 @@ const check = exports.check = () => {
function showWindow(options) {
log.debug('Show update checker window');
- return Windows.createPopup('updateAvailable', _.extend({
- useWeb3: false,
- electronOptions: {
- width: 580,
- height: 250,
- alwaysOnTop: true,
- resizable: false,
- maximizable: false,
- },
- }, options));
+ return Windows.createPopup('updateAvailable', options);
}
diff --git a/modules/windows.js b/modules/windows.js
index e44d410a9..a6532166b 100644
--- a/modules/windows.js
+++ b/modules/windows.js
@@ -177,22 +177,7 @@ class Windows {
init() {
log.info('Creating commonly-used windows');
- this.loading = this.create('loading', {
- show: false,
- url: `${global.interfacePopupsUrl}#loadingWindow`,
- electronOptions: {
- title: '',
- alwaysOnTop: true,
- resizable: false,
- width: 100,
- height: 80,
- center: true,
- frame: false,
- useContentSize: true,
- titleBarStyle: '', // hidden-inset: more space
- skipTaskbar: true,
- },
- });
+ this.loading = this.create('loading');
this.loading.on('show', () => {
this.loading.window.center();
@@ -215,12 +200,15 @@ class Windows {
wnd.id = id;
}
});
+
+ store.dispatch({ type: '[MAIN]:WINDOWS:INIT_FINISH' });
}
- create(type, options, callback) {
- log.info(`Creating window: ${type}`);
- options = options || {};
+ create(type, opts, callback) {
+ global.store.dispatch({ type: '[MAIN]:WINDOW:CREATE_START', payload: { type } });
+
+ const options = _.deepExtend(this.getDefaultOptionsForType(type), opts || {});
const existing = this.getByType(type);
@@ -241,14 +229,167 @@ class Windows {
wnd.callback = callback;
}
+ global.store.dispatch({ type: '[MAIN]:WINDOW:CREATE_FINISH', payload: { type } });
+
return wnd;
}
- createPopup(type, options, callback) {
- options = options || {};
+ getDefaultOptionsForType(type) {
+ const mainWebPreferences = {
+ mist: {
+ nodeIntegration: true, /* necessary for webviews;
+ require will be removed through preloader */
+ preload: `${__dirname}/preloader/mistUI.js`,
+ 'overlay-fullscreen-video': true,
+ 'overlay-scrollbars': true,
+ experimentalFeatures: true,
+ },
+ wallet: {
+ preload: `${__dirname}/preloader/walletMain.js`,
+ 'overlay-fullscreen-video': true,
+ 'overlay-scrollbars': true,
+ }
+ }
- let opts = {
+ switch (type) {
+ case 'main':
+ return {
+ primary: true,
+ electronOptions: {
+ width: Math.max(global.defaultWindow.width, 500),
+ height: Math.max(global.defaultWindow.height, 440),
+ x: global.defaultWindow.x,
+ y: global.defaultWindow.y,
+ webPreferences: mainWebPreferences[global.mode],
+ },
+ }
+ case 'splash':
+ return {
+ primary: true,
+ url: `${global.interfacePopupsUrl}#splashScreen_${global.mode}`,
+ show: true,
+ electronOptions: {
+ width: 400,
+ height: 230,
+ resizable: false,
+ backgroundColor: '#F6F6F6',
+ useContentSize: true,
+ frame: false,
+ webPreferences: {
+ preload: `${__dirname}/preloader/splashScreen.js`,
+ },
+ },
+ }
+ case 'loading':
+ return {
+ show: false,
+ url: `${global.interfacePopupsUrl}#loadingWindow`,
+ electronOptions: {
+ title: '',
+ alwaysOnTop: true,
+ resizable: false,
+ width: 100,
+ height: 80,
+ center: true,
+ frame: false,
+ useContentSize: true,
+ titleBarStyle: '', // hidden-inset: more space
+ skipTaskbar: true,
+ },
+ }
+ case 'onboardingScreen':
+ return {
+ primary: true,
+ electronOptions: {
+ width: 576,
+ height: 442,
+ },
+ }
+ case 'about':
+ return {
+ electronOptions: {
+ width: 420,
+ height: 230,
+ alwaysOnTop: true,
+ },
+ }
+ case 'remix':
+ return {
+ url: 'https://remix.ethereum.org',
+ electronOptions: {
+ width: 1024,
+ height: 720,
+ center: true,
+ frame: true,
+ resizable: true,
+ titleBarStyle: 'default',
+ }
+ }
+ case 'importAccount':
+ return {
+ electronOptions: {
+ width: 600,
+ height: 370,
+ alwaysOnTop: true,
+ },
+ }
+ case 'requestAccount':
+ return {
+ electronOptions: {
+ width: 420,
+ height: 230,
+ alwaysOnTop: true,
+ },
+ }
+ case 'connectAccount':
+ return {
+ electronOptions: {
+ width: 460,
+ height: 520,
+ maximizable: false,
+ minimizable: false,
+ alwaysOnTop: true,
+ },
+ }
+ case 'sendTransactionConfirmation':
+ return {
+ electronOptions: {
+ width: 580,
+ height: 550,
+ alwaysOnTop: true,
+ enableLargerThanScreen: false,
+ resizable: true
+ },
+ }
+ case 'updateAvailable':
+ return {
+ useWeb3: false,
+ electronOptions: {
+ width: 580,
+ height: 250,
+ alwaysOnTop: true,
+ resizable: false,
+ maximizable: false,
+ },
+ }
+ case 'clientUpdateAvailable':
+ return {
+ useWeb3: false,
+ electronOptions: {
+ width: 600,
+ height: 340,
+ alwaysOnTop: false,
+ resizable: false,
+ maximizable: false,
+ },
+ }
+ }
+ }
+
+
+ createPopup(type, options, callback) {
+ const defaultPopupOpts = {
url: `${global.interfacePopupsUrl}#${type}`,
show: true,
ownerId: null,
@@ -268,6 +409,8 @@ class Windows {
}
};
+ let opts = _.deepExtend(defaultPopupOpts, this.getDefaultOptionsForType(type), options || {});
+
// always show on top of main window
const parent = _.find(this._windows, (w) => {
return w.type === 'main';
@@ -278,8 +421,6 @@ class Windows {
}
- opts = _.deepExtend(opts, options);
-
// mark it as a pop-up window
opts.isPopup = true;
diff --git a/tests/unit/core/ui/reducer.test.js b/tests/unit/core/ui/reducer.test.js
new file mode 100644
index 000000000..77e0419a2
--- /dev/null
+++ b/tests/unit/core/ui/reducer.test.js
@@ -0,0 +1,20 @@
+import { assert } from 'chai';
+import reducer, { initialState } from '../../../../modules/core/ui/reducer';
+
+describe('the ui reducer', () => {
+ it('should return a default initial state', () => {
+ assert.deepEqual(reducer(undefined, {}), initialState);
+ });
+
+ it('should handle the "[MAIN]:WINDOW:CREATE_FINISH" action', () => {
+ const action = {
+ type: '[MAIN]:WINDOW:CREATE_FINISH',
+ payload: { type: 'about' }
+ };
+ const expectedState = Object.assign({}, initialState, {
+ aboutWindowCreated: true,
+ });
+
+ assert.deepEqual(reducer(initialState, action), expectedState);
+ });
+});
From 51444e1ca121d01bc05933d8c805312b0850883e Mon Sep 17 00:00:00 2001
From: Marc Garreau
Date: Mon, 16 Oct 2017 13:51:56 -0600
Subject: [PATCH 007/150] Removes premature optimization
---
main.js | 718 ++++++++++++++++++++++++++++----------------------------
1 file changed, 357 insertions(+), 361 deletions(-)
diff --git a/main.js b/main.js
index 0caa765b3..1639d9f06 100644
--- a/main.js
+++ b/main.js
@@ -22,446 +22,442 @@ Q.config({
});
-init();
-
-async function init() {
- global.store = await configureReduxStore();
-
- Settings.init();
-
- const db = global.db = require('./modules/db');
-
- require('./modules/ipcCommunicator.js');
- const appMenu = require('./modules/menuItems');
- const ipcProviderBackend = require('./modules/ipc/ipcProviderBackend.js');
- const ethereumNode = require('./modules/ethereumNode.js');
- const swarmNode = require('./modules/swarmNode.js');
- const nodeSync = require('./modules/nodeSync.js');
-
- // Define global vars; The preloader makes some globals available to the client.
- global.webviews = [];
- global.mining = false;
- global.mode = store.getState().settings.uiMode;
- global.icon = `${__dirname}/icons/${global.mode}/icon.png`;
- global.dirname = __dirname;
- global.i18n = i18n;
-
- // INTERFACE PATHS
- // - WALLET
- if (global.mode === 'wallet') {
- log.info('Starting in Wallet mode');
-
- global.interfaceAppUrl = (Settings.inProductionMode)
- ? `file://${__dirname}/interface/wallet/index.html`
- : 'http://localhost:3050';
- global.interfacePopupsUrl = (Settings.inProductionMode)
- ? `file://${__dirname}/interface/index.html`
- : 'http://localhost:3000';
-
- // - MIST
- } else {
- log.info('Starting in Mist mode');
+global.store = configureReduxStore();
+
+Settings.init();
+
+const db = global.db = require('./modules/db');
+
+require('./modules/ipcCommunicator.js');
+const appMenu = require('./modules/menuItems');
+const ipcProviderBackend = require('./modules/ipc/ipcProviderBackend.js');
+const ethereumNode = require('./modules/ethereumNode.js');
+const swarmNode = require('./modules/swarmNode.js');
+const nodeSync = require('./modules/nodeSync.js');
+
+// Define global vars; The preloader makes some globals available to the client.
+global.webviews = [];
+global.mining = false;
+global.mode = store.getState().settings.uiMode;
+global.icon = `${__dirname}/icons/${global.mode}/icon.png`;
+global.dirname = __dirname;
+global.i18n = i18n;
+
+// INTERFACE PATHS
+// - WALLET
+if (global.mode === 'wallet') {
+ log.info('Starting in Wallet mode');
+
+ global.interfaceAppUrl = (Settings.inProductionMode)
+ ? `file://${__dirname}/interface/wallet/index.html`
+ : 'http://localhost:3050';
+ global.interfacePopupsUrl = (Settings.inProductionMode)
+ ? `file://${__dirname}/interface/index.html`
+ : 'http://localhost:3000';
+
+// - MIST
+} else {
+ log.info('Starting in Mist mode');
+
+ let url = (Settings.inProductionMode)
+ ? `file://${__dirname}/interface/index.html`
+ : 'http://localhost:3000';
+
+ if (Settings.cli.resetTabs) {
+ url += '?reset-tabs=true';
+ }
+
+ global.interfaceAppUrl = global.interfacePopupsUrl = url;
+}
+
+// prevent crashes and close gracefully
+process.on('uncaughtException', (error) => {
+ log.error('UNCAUGHT EXCEPTION', error);
+ store.dispatch(quitApp());
+});
+
+// Quit when all windows are closed.
+app.on('window-all-closed', () => {
+ store.dispatch(quitApp());
+});
+
+// Listen to custom protocol incoming messages, needs registering of URL schemes
+app.on('open-url', (e, url) => {
+ log.info('Open URL', url);
+});
+
+
+let killedSocketsAndNodes = false;
- let url = (Settings.inProductionMode)
- ? `file://${__dirname}/interface/index.html`
- : 'http://localhost:3000';
+app.on('before-quit', async (event) => {
+ if (!killedSocketsAndNodes) {
+ log.info('Defer quitting until sockets and node are shut down');
- if (Settings.cli.resetTabs) {
- url += '?reset-tabs=true';
+ event.preventDefault();
+
+ // sockets manager
+ try {
+ await Sockets.destroyAll();
+ store.dispatch({ type: 'SOCKETS::DESTROY_ALL' });
+ } catch (e) {
+ log.error('Error shutting down sockets');
}
- global.interfaceAppUrl = global.interfacePopupsUrl = url;
+ // delay quit, so the sockets can close
+ setTimeout(async () => {
+ await ethereumNode.stop();
+ store.dispatch({ type: 'ETH_NODE::STOP' });
+
+ killedSocketsAndNodes = true;
+ await db.close();
+ store.dispatch({ type: 'DB::CLOSE' });
+
+ store.dispatch(quitApp());
+ }, 500);
+ } else {
+ log.info('About to quit...');
}
+});
- // prevent crashes and close gracefully
- process.on('uncaughtException', (error) => {
- log.error('UNCAUGHT EXCEPTION', error);
- store.dispatch(quitApp());
- });
- // Quit when all windows are closed.
- app.on('window-all-closed', () => {
- store.dispatch(quitApp());
- });
+let mainWindow;
+let splashWindow;
+let onReady;
+let startMainWindow;
- // Listen to custom protocol incoming messages, needs registering of URL schemes
- app.on('open-url', (e, url) => {
- log.info('Open URL', url);
- });
+// This method will be called when Electron has done everything
+// initialization and ready for creating browser windows.
+app.on('ready', async () => {
+ // if using HTTP RPC then inform user
+ if (Settings.rpcMode === 'http') {
+ dialog.showErrorBox('Insecure RPC connection', `
+WARNING: You are connecting to an Ethereum node via: ${Settings.rpcHttpPath}
+This is less secure than using local IPC - your passwords will be sent over the wire in plaintext.
- let killedSocketsAndNodes = false;
+Only do this if you have secured your HTTP connection or you know what you are doing.
+`);
+ }
- app.on('before-quit', async (event) => {
- if (!killedSocketsAndNodes) {
- log.info('Defer quitting until sockets and node are shut down');
+ // initialise the db
+ try {
+ await global.db.init();
+ store.dispatch({ type: 'DB::INIT' });
+ onReady();
+ } catch (e) {
+ log.error(e);
+ store.dispatch(quitApp());
+ }
+});
- event.preventDefault();
+// Allows the Swarm protocol to behave like http
+protocol.registerStandardSchemes(['bzz']);
- // sockets manager
- try {
- await Sockets.destroyAll();
- store.dispatch({ type: 'SOCKETS::DESTROY_ALL' });
- } catch (e) {
- log.error('Error shutting down sockets');
- }
+onReady = () => {
+ global.config = db.getCollection('SYS_config');
- // delay quit, so the sockets can close
- setTimeout(async () => {
- await ethereumNode.stop();
- store.dispatch({ type: 'ETH_NODE::STOP' });
+ // setup DB sync to backend
+ dbSync.backendSyncInit();
+ store.dispatch({ type: 'DB::SYNC_TO_BACKEND' });
- killedSocketsAndNodes = true;
- await db.close();
- store.dispatch({ type: 'DB::CLOSE' });
+ // Initialise window mgr
+ Windows.init();
- store.dispatch(quitApp());
- }, 500);
- } else {
- log.info('About to quit...');
+ // Enable the Swarm protocol
+ protocol.registerHttpProtocol('bzz', (request, callback) => {
+ const redirectPath = `${Settings.swarmURL}/${request.url.replace('bzz:/', 'bzz://')}`;
+ callback({ method: request.method, referrer: request.referrer, url: redirectPath });
+ store.dispatch({ type: 'PROTOCOL::REGISTER', payload: { protocol: 'bzz' } });
+ }, (error) => {
+ if (error) {
+ log.error(error);
}
});
+ // check for update
+ if (!Settings.inAutoTestMode) UpdateChecker.run();
+ store.dispatch({ type: 'UPDATE_CHECKER::RUN' });
- let mainWindow;
- let splashWindow;
- let onReady;
- let startMainWindow;
+ // initialize the web3 IPC provider backend
+ ipcProviderBackend.init();
+ store.dispatch({ type: 'IPC_PROVIDER_BACKEND::INIT' });
- // This method will be called when Electron has done everything
- // initialization and ready for creating browser windows.
- app.on('ready', async () => {
- // if using HTTP RPC then inform user
- if (Settings.rpcMode === 'http') {
- dialog.showErrorBox('Insecure RPC connection', `
- WARNING: You are connecting to an Ethereum node via: ${Settings.rpcHttpPath}
+ // instantiate custom protocols
+ // require('./customProtocols.js');
- This is less secure than using local IPC - your passwords will be sent over the wire in plaintext.
+ // change to user language now that global.config object is ready
+ store.dispatch(setLanguageOnMain(Settings.language));
- Only do this if you have secured your HTTP connection or you know what you are doing.
- `);
- }
+ // add menu already here, so we have copy and paste functionality
+ appMenu();
- // initialise the db
- try {
- await global.db.init();
- store.dispatch({ type: 'DB::INIT' });
- onReady();
- } catch (e) {
- log.error(e);
- store.dispatch(quitApp());
- }
- });
+ global.defaultWindow = windowStateKeeper({ defaultWidth: 1024 + 208, defaultHeight: 720 });
- // Allows the Swarm protocol to behave like http
- protocol.registerStandardSchemes(['bzz']);
+ // Create the browser window.
+ mainWindow = Windows.create('main');
- onReady = () => {
- global.config = db.getCollection('SYS_config');
+ // Delegating events to save window bounds on windowStateKeeper
+ global.defaultWindow.manage(mainWindow.window);
- // setup DB sync to backend
- dbSync.backendSyncInit();
- store.dispatch({ type: 'DB::SYNC_TO_BACKEND' });
+ if (!Settings.inAutoTestMode) {
+ splashWindow = Windows.create('splash');
+ }
- // Initialise window mgr
- Windows.init();
+ // Checks time sync
+ if (!Settings.skiptimesynccheck) {
+ timesync.checkEnabled((err, enabled) => {
+ if (err) {
+ log.error('Couldn\'t infer if computer automatically syncs time.', err);
+ return;
+ }
- // Enable the Swarm protocol
- protocol.registerHttpProtocol('bzz', (request, callback) => {
- const redirectPath = `${Settings.swarmURL}/${request.url.replace('bzz:/', 'bzz://')}`;
- callback({ method: request.method, referrer: request.referrer, url: redirectPath });
- store.dispatch({ type: 'PROTOCOL::REGISTER', payload: { protocol: 'bzz' } });
- }, (error) => {
- if (error) {
- log.error(error);
+ if (!enabled) {
+ dialog.showMessageBox({
+ type: 'warning',
+ buttons: ['OK'],
+ message: global.i18n.t('mist.errors.timeSync.title'),
+ detail: `${global.i18n.t('mist.errors.timeSync.description')}\n\n${global.i18n.t(`mist.errors.timeSync.${process.platform}`)}`,
+ }, () => {
+ });
}
});
+ }
- // check for update
- if (!Settings.inAutoTestMode) UpdateChecker.run();
- store.dispatch({ type: 'UPDATE_CHECKER::RUN' });
-
- // initialize the web3 IPC provider backend
- ipcProviderBackend.init();
- store.dispatch({ type: 'IPC_PROVIDER_BACKEND::INIT' });
-
- // instantiate custom protocols
- // require('./customProtocols.js');
-
- // change to user language now that global.config object is ready
- store.dispatch(setLanguageOnMain(Settings.language));
- // add menu already here, so we have copy and paste functionality
- appMenu();
+ const kickStart = () => {
+ // client binary stuff
+ ClientBinaryManager.on('status', (status, data) => {
+ Windows.broadcast('uiAction_clientBinaryStatus', status, data);
+ });
- global.defaultWindow = windowStateKeeper({ defaultWidth: 1024 + 208, defaultHeight: 720 });
+ // node connection stuff
+ ethereumNode.on('nodeConnectionTimeout', () => {
+ Windows.broadcast('uiAction_nodeStatus', 'connectionTimeout');
+ });
- // Create the browser window.
- mainWindow = Windows.create('main');
+ ethereumNode.on('nodeLog', (data) => {
+ Windows.broadcast('uiAction_nodeLogText', data.replace(/^.*[0-9]]/, ''));
+ });
- // Delegating events to save window bounds on windowStateKeeper
- global.defaultWindow.manage(mainWindow.window);
+ // state change
+ ethereumNode.on('state', (state, stateAsText) => {
+ Windows.broadcast('uiAction_nodeStatus', stateAsText,
+ ethereumNode.STATES.ERROR === state ? ethereumNode.lastError : null
+ );
+ });
- if (!Settings.inAutoTestMode) {
- splashWindow = Windows.create('splash');
- }
+ // starting swarm
+ swarmNode.on('starting', () => {
+ Windows.broadcast('uiAction_swarmStatus', 'starting');
+ store.dispatch({ type: 'SWARM::INIT_START' });
+ });
- // Checks time sync
- if (!Settings.skiptimesynccheck) {
- timesync.checkEnabled((err, enabled) => {
- if (err) {
- log.error('Couldn\'t infer if computer automatically syncs time.', err);
- return;
- }
-
- if (!enabled) {
- dialog.showMessageBox({
- type: 'warning',
- buttons: ['OK'],
- message: global.i18n.t('mist.errors.timeSync.title'),
- detail: `${global.i18n.t('mist.errors.timeSync.description')}\n\n${global.i18n.t(`mist.errors.timeSync.${process.platform}`)}`,
- }, () => {
- });
- }
- });
- }
+ // swarm download progress
+ swarmNode.on('downloadProgress', (progress) => {
+ Windows.broadcast('uiAction_swarmStatus', 'downloadProgress', progress);
+ });
+ // started swarm
+ swarmNode.on('started', (isLocal) => {
+ Windows.broadcast('uiAction_swarmStatus', 'started', isLocal);
+ store.dispatch({ type: 'SWARM::INIT_FINISH' });
+ });
- const kickStart = () => {
- // client binary stuff
- ClientBinaryManager.on('status', (status, data) => {
- Windows.broadcast('uiAction_clientBinaryStatus', status, data);
- });
- // node connection stuff
- ethereumNode.on('nodeConnectionTimeout', () => {
- Windows.broadcast('uiAction_nodeStatus', 'connectionTimeout');
+ // capture sync results
+ const syncResultPromise = new Q((resolve, reject) => {
+ nodeSync.on('nodeSyncing', (result) => {
+ Windows.broadcast('uiAction_nodeSyncStatus', 'inProgress', result);
});
- ethereumNode.on('nodeLog', (data) => {
- Windows.broadcast('uiAction_nodeLogText', data.replace(/^.*[0-9]]/, ''));
+ nodeSync.on('stopped', () => {
+ Windows.broadcast('uiAction_nodeSyncStatus', 'stopped');
});
- // state change
- ethereumNode.on('state', (state, stateAsText) => {
- Windows.broadcast('uiAction_nodeStatus', stateAsText,
- ethereumNode.STATES.ERROR === state ? ethereumNode.lastError : null
- );
- });
+ nodeSync.on('error', (err) => {
+ log.error('Error syncing node', err);
- // starting swarm
- swarmNode.on('starting', () => {
- Windows.broadcast('uiAction_swarmStatus', 'starting');
- store.dispatch({ type: 'SWARM::INIT_START' });
+ reject(err);
});
- // swarm download progress
- swarmNode.on('downloadProgress', (progress) => {
- Windows.broadcast('uiAction_swarmStatus', 'downloadProgress', progress);
- });
+ nodeSync.on('finished', () => {
+ nodeSync.removeAllListeners('error');
+ nodeSync.removeAllListeners('finished');
- // started swarm
- swarmNode.on('started', (isLocal) => {
- Windows.broadcast('uiAction_swarmStatus', 'started', isLocal);
- store.dispatch({ type: 'SWARM::INIT_FINISH' });
+ resolve();
});
+ });
-
- // capture sync results
- const syncResultPromise = new Q((resolve, reject) => {
- nodeSync.on('nodeSyncing', (result) => {
- Windows.broadcast('uiAction_nodeSyncStatus', 'inProgress', result);
+ // check legacy chain
+ // CHECK for legacy chain (FORK RELATED)
+ Q.try(() => {
+ // open the legacy chain message
+ if ((Settings.loadUserData('daoFork') || '').trim() === 'false') {
+ dialog.showMessageBox({
+ type: 'warning',
+ buttons: ['OK'],
+ message: global.i18n.t('mist.errors.legacyChain.title'),
+ detail: global.i18n.t('mist.errors.legacyChain.description')
+ }, () => {
+ shell.openExternal('https://github.com/ethereum/mist/releases');
+ store.dispatch(quitApp());
});
- nodeSync.on('stopped', () => {
- Windows.broadcast('uiAction_nodeSyncStatus', 'stopped');
- });
+ throw new Error('Cant start client due to legacy non-Fork setting.');
+ }
+ })
+ .then(() => {
+ return ClientBinaryManager.init();
+ })
+ .then(() => {
+ return ethereumNode.init();
+ })
+ .then(() => {
+ // Wallet shouldn't start Swarm
+ if (global.mode === 'wallet') {
+ return Promise.resolve();
+ }
+ return swarmNode.init();
+ })
+ .then(function sanityCheck() {
+ if (!ethereumNode.isIpcConnected) {
+ throw new Error('Either the node didn\'t start or IPC socket failed to connect.');
+ }
- nodeSync.on('error', (err) => {
- log.error('Error syncing node', err);
+ /* At this point Geth is running and the socket is connected. */
+ log.info('Connected via IPC to node.');
- reject(err);
- });
+ // update menu, to show node switching possibilities
+ appMenu();
+ })
+ .then(function getAccounts() {
+ return ethereumNode.send('eth_accounts', []);
+ })
+ .then(function onboarding(resultData) {
- nodeSync.on('finished', () => {
- nodeSync.removeAllListeners('error');
- nodeSync.removeAllListeners('finished');
+ if (ethereumNode.isGeth && (resultData.result === null || (_.isArray(resultData.result) && resultData.result.length === 0))) {
+ log.info('No accounts setup yet, lets do onboarding first.');
- resolve();
- });
- });
+ return new Q((resolve, reject) => {
+ const onboardingWindow = Windows.createPopup('onboardingScreen');
- // check legacy chain
- // CHECK for legacy chain (FORK RELATED)
- Q.try(() => {
- // open the legacy chain message
- if ((Settings.loadUserData('daoFork') || '').trim() === 'false') {
- dialog.showMessageBox({
- type: 'warning',
- buttons: ['OK'],
- message: global.i18n.t('mist.errors.legacyChain.title'),
- detail: global.i18n.t('mist.errors.legacyChain.description')
- }, () => {
- shell.openExternal('https://github.com/ethereum/mist/releases');
+ onboardingWindow.on('closed', () => {
+ store.dispatch({ type: 'ONBOARDING_WINDOW::CLOSE' });
store.dispatch(quitApp());
});
- throw new Error('Cant start client due to legacy non-Fork setting.');
- }
- })
- .then(() => {
- return ClientBinaryManager.init();
- })
- .then(() => {
- return ethereumNode.init();
- })
- .then(() => {
- // Wallet shouldn't start Swarm
- if (global.mode === 'wallet') {
- return Promise.resolve();
- }
- return swarmNode.init();
- })
- .then(function sanityCheck() {
- if (!ethereumNode.isIpcConnected) {
- throw new Error('Either the node didn\'t start or IPC socket failed to connect.');
- }
-
- /* At this point Geth is running and the socket is connected. */
- log.info('Connected via IPC to node.');
-
- // update menu, to show node switching possibilities
- appMenu();
- })
- .then(function getAccounts() {
- return ethereumNode.send('eth_accounts', []);
- })
- .then(function onboarding(resultData) {
-
- if (ethereumNode.isGeth && (resultData.result === null || (_.isArray(resultData.result) && resultData.result.length === 0))) {
- log.info('No accounts setup yet, lets do onboarding first.');
-
- return new Q((resolve, reject) => {
- const onboardingWindow = Windows.createPopup('onboardingScreen');
-
- onboardingWindow.on('closed', () => {
- store.dispatch({ type: 'ONBOARDING_WINDOW::CLOSE' });
- store.dispatch(quitApp());
- });
-
- // change network types (mainnet, testnet)
- ipcMain.on('onBoarding_changeNet', (e, testnet) => {
- const newType = ethereumNode.type;
- const newNetwork = testnet ? 'rinkeby' : 'main';
-
- log.debug('Onboarding change network', newType, newNetwork);
-
- ethereumNode.restart(newType, newNetwork)
- .then(function nodeRestarted() {
- appMenu();
- })
- .catch((err) => {
- log.error('Error restarting node', err);
-
- reject(err);
- });
- });
-
- // launch app
- ipcMain.on('onBoarding_launchApp', () => {
- // prevent that it closes the app
- onboardingWindow.removeAllListeners('closed');
- onboardingWindow.close();
- store.dispatch({ type: 'ONBOARDING_WINDOW::CLOSE' });
-
- ipcMain.removeAllListeners('onBoarding_changeNet');
- ipcMain.removeAllListeners('onBoarding_launchApp');
-
- resolve();
- });
-
- if (splashWindow) {
- splashWindow.hide();
- }
- });
- }
+ // change network types (mainnet, testnet)
+ ipcMain.on('onBoarding_changeNet', (e, testnet) => {
+ const newType = ethereumNode.type;
+ const newNetwork = testnet ? 'rinkeby' : 'main';
- return;
- })
- .then(function doSync() {
- // we're going to do the sync - so show splash
- if (splashWindow) {
- splashWindow.show();
- }
+ log.debug('Onboarding change network', newType, newNetwork);
- if (!Settings.inAutoTestMode) {
- return syncResultPromise;
- }
+ ethereumNode.restart(newType, newNetwork)
+ .then(function nodeRestarted() {
+ appMenu();
+ })
+ .catch((err) => {
+ log.error('Error restarting node', err);
- return;
- })
- .then(function allDone() {
- startMainWindow();
- })
- .catch((err) => {
- log.error('Error starting up node and/or syncing', err);
- }); /* socket connected to geth */
- }; /* kick start */
+ reject(err);
+ });
+ });
- if (splashWindow) {
- splashWindow.on('ready', kickStart);
- } else {
- kickStart();
- }
- }; /* onReady() */
+ // launch app
+ ipcMain.on('onBoarding_launchApp', () => {
+ // prevent that it closes the app
+ onboardingWindow.removeAllListeners('closed');
+ onboardingWindow.close();
+ store.dispatch({ type: 'ONBOARDING_WINDOW::CLOSE' });
+ ipcMain.removeAllListeners('onBoarding_changeNet');
+ ipcMain.removeAllListeners('onBoarding_launchApp');
- /**
- Start the main window and all its processes
+ resolve();
+ });
- @method startMainWindow
- */
- startMainWindow = () => {
- log.info(`Loading Interface at ${global.interfaceAppUrl}`);
+ if (splashWindow) {
+ splashWindow.hide();
+ }
+ });
+ }
- mainWindow.on('ready', () => {
+ return;
+ })
+ .then(function doSync() {
+ // we're going to do the sync - so show splash
if (splashWindow) {
- splashWindow.close();
- store.dispatch({ type: 'SPLASH_WINDOW::CLOSE' });
+ splashWindow.show();
}
- mainWindow.show();
- store.dispatch({ type: 'MAIN_WINDOW::SHOW' });
- });
+ if (!Settings.inAutoTestMode) {
+ return syncResultPromise;
+ }
- mainWindow.load(global.interfaceAppUrl);
+ return;
+ })
+ .then(function allDone() {
+ startMainWindow();
+ })
+ .catch((err) => {
+ log.error('Error starting up node and/or syncing', err);
+ }); /* socket connected to geth */
+ }; /* kick start */
+
+ if (splashWindow) {
+ splashWindow.on('ready', kickStart);
+ } else {
+ kickStart();
+ }
+}; /* onReady() */
- // close app, when the main window is closed
- mainWindow.on('closed', () => {
- store.dispatch(quitApp());
- });
- // observe Tabs for changes and refresh menu
- const Tabs = global.db.getCollection('UI_tabs');
+/**
+Start the main window and all its processes
- const sortedTabs = Tabs.addDynamicView('sorted_tabs');
- sortedTabs.applySimpleSort('position', false);
+@method startMainWindow
+*/
+startMainWindow = () => {
+ log.info(`Loading Interface at ${global.interfaceAppUrl}`);
- const refreshMenu = () => {
- clearTimeout(global._refreshMenuFromTabsTimer);
+ mainWindow.on('ready', () => {
+ if (splashWindow) {
+ splashWindow.close();
+ store.dispatch({ type: 'SPLASH_WINDOW::CLOSE' });
+ }
+
+ mainWindow.show();
+ store.dispatch({ type: 'MAIN_WINDOW::SHOW' });
+ });
- global._refreshMenuFromTabsTimer = setTimeout(() => {
- log.debug('Refresh menu with tabs');
+ mainWindow.load(global.interfaceAppUrl);
+
+ // close app, when the main window is closed
+ mainWindow.on('closed', () => {
+ store.dispatch(quitApp());
+ });
- global.webviews = sortedTabs.data();
+ // observe Tabs for changes and refresh menu
+ const Tabs = global.db.getCollection('UI_tabs');
- appMenu(global.webviews);
- store.dispatch({ type: 'MENU::REFRESH' });
- }, 1000);
- };
+ const sortedTabs = Tabs.addDynamicView('sorted_tabs');
+ sortedTabs.applySimpleSort('position', false);
- Tabs.on('insert', refreshMenu);
- Tabs.on('update', refreshMenu);
- Tabs.on('delete', refreshMenu);
+ const refreshMenu = () => {
+ clearTimeout(global._refreshMenuFromTabsTimer);
+
+ global._refreshMenuFromTabsTimer = setTimeout(() => {
+ log.debug('Refresh menu with tabs');
+
+ global.webviews = sortedTabs.data();
+
+ appMenu(global.webviews);
+ store.dispatch({ type: 'MENU::REFRESH' });
+ }, 1000);
};
-}
+
+ Tabs.on('insert', refreshMenu);
+ Tabs.on('update', refreshMenu);
+ Tabs.on('delete', refreshMenu);
+};
From 8ace13ebac7d53f8fc2e969a49a6daa761709184 Mon Sep 17 00:00:00 2001
From: WJ Cloud
Date: Mon, 23 Oct 2017 19:49:20 +0900
Subject: [PATCH 008/150] Fix encoding error(KOR)
---
scripts/zipdll.nsh | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/scripts/zipdll.nsh b/scripts/zipdll.nsh
index 32e8b7c88..9571f2801 100755
--- a/scripts/zipdll.nsh
+++ b/scripts/zipdll.nsh
@@ -288,20 +288,20 @@
!ifdef "LANG_KOREAN"
strcmp $LANGUAGE ${LANG_KOREAN} 0 +10
- Push " ¿À·ù : %s"
- Push "ÈÀÏ ¼Ó¼ºÀ» ¾ò¾î¿Ã ¼ö ¾ø½À´Ï´Ù."
- Push "¿À·ù: ÈÀÏ ¼Ó¼ºÀ» ¾ò¾î¿Ã ¼ö ¾ø½À´Ï´Ù."
- Push "%sÀ»(¸¦) Ç® ¼ö ¾ø½À´Ï´Ù."
- Push " ¿À·ù: %sÀ»(¸¦) Ç® ¼ö ¾ø½À´Ï´Ù."
+ Push " 오류 : %s"
+ Push "파일 속성을 얻어올 수 없습니다."
+ Push "오류: 파일 속성을 얻어올 수 없습니다."
+ Push "%s을(를) 풀 수 없습니다."
+ Push " 오류: %s을(를) 풀 수 없습니다."
!ifdef FILE_
- Push " Ç®±â : %s"
- Push " %d°³ÀÇ ÆÄÀÏ°ú Æú´õ¸¦ Ǫ´Â Áß"
- Push "%sÀÇ ³»¿ëÀ» %s¿¡ Ǫ´Â Áß"
+ Push " 풀기 : %s"
+ Push " %d개의 파일과 폴더를 푸는 중"
+ Push "%s의 내용을 %s에 푸는 중"
!else
- Push "ÁöÁ¤µÈ ÆÄÀÏÀÌ ¾ÐÃà ÆÄÀÏ ¾È¿¡ ¾ø½À´Ï´Ù."
- Push "¿À·ù: ÁöÁ¤µÈ ÆÄÀÏÀÌ ¾ÐÃà ÆÄÀÏ ¾È¿¡ ¾ø½À´Ï´Ù."
- Push "%s ÆÄÀÏÀ» %s¿¡¼ %s·Î Ǫ´Â Áß"
+ Push "지정된 파일이 압축 파일 안에 없습니다."
+ Push "오류: 지정된 파일이 압축 파일 안에 없습니다."
+ Push "%s 파일을 %s에서 %s로 푸는 중"
!endif
Push "/TRANSLATE"
From 43c28f4041de6c8924226728c2336f0baa7730d1 Mon Sep 17 00:00:00 2001
From: WJ Cloud
Date: Mon, 23 Oct 2017 20:40:36 +0900
Subject: [PATCH 009/150] Update zipdll.nsh
---
scripts/zipdll.nsh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/scripts/zipdll.nsh b/scripts/zipdll.nsh
index 9571f2801..f35cdbd91 100755
--- a/scripts/zipdll.nsh
+++ b/scripts/zipdll.nsh
@@ -287,7 +287,9 @@
!endif
!ifdef "LANG_KOREAN"
+
strcmp $LANGUAGE ${LANG_KOREAN} 0 +10
+
Push " 오류 : %s"
Push "파일 속성을 얻어올 수 없습니다."
Push "오류: 파일 속성을 얻어올 수 없습니다."
From 3d1433f7fd5a4e993f9f4e678c02ccc166b4a3f7 Mon Sep 17 00:00:00 2001
From: Marc Garreau
Date: Thu, 26 Oct 2017 17:03:36 -0600
Subject: [PATCH 010/150] Refactors app quit through Redux
---
modules/core/store.js | 10 +---------
modules/core/ui/actions.js | 12 +++++++++++-
modules/core/ui/reducer.js | 2 +-
tests/unit/core/settings/actions.test.js | 1 -
tests/unit/core/ui/actions.test.js | 23 +++++++++++++++++++++++
tests/unit/core/ui/reducer.test.js | 9 +++++++++
6 files changed, 45 insertions(+), 12 deletions(-)
create mode 100644 tests/unit/core/ui/actions.test.js
diff --git a/modules/core/store.js b/modules/core/store.js
index 2df2bf83f..9e4baa5f5 100644
--- a/modules/core/store.js
+++ b/modules/core/store.js
@@ -6,18 +6,10 @@ import { app } from 'electron';
import rootReducer from './rootReducer';
export default function configureReduxStore() {
- const store = createStore(
+ return createStore(
rootReducer,
composeWithDevTools(applyMiddleware(thunk), electronEnhancer({
dispatchProxy: a => store.dispatch(a)
}))
);
-
- store.subscribe(() => {
- const state = store.getState();
-
- if (state.ui.appQuit) return app.quit();
- });
-
- return store;
}
diff --git a/modules/core/ui/actions.js b/modules/core/ui/actions.js
index c208335d8..38ef8fcb6 100644
--- a/modules/core/ui/actions.js
+++ b/modules/core/ui/actions.js
@@ -1,3 +1,13 @@
+import { app } from 'electron';
+
export function quitApp() {
- return { type: 'APP::QUIT' };
+ return dispatch => {
+ dispatch({ type: '[MAIN]:APP_QUIT:START' });
+ try {
+ app.quit();
+ dispatch({ type: '[MAIN]:APP_QUIT:SUCCESS' });
+ } catch (error) {
+ dispatch({ type: '[MAIN]:APP_QUIT:FAILURE', error });
+ }
+ }
}
diff --git a/modules/core/ui/reducer.js b/modules/core/ui/reducer.js
index 18275a5b3..d918dc356 100644
--- a/modules/core/ui/reducer.js
+++ b/modules/core/ui/reducer.js
@@ -20,7 +20,7 @@ export const initialState = {
const ui = (state = initialState, action) => {
switch (action.type) {
- case 'APP::QUIT':
+ case '[MAIN]:APP_QUIT:SUCCESS':
return Object.assign({}, state, { appQuit: true });
case 'MAIN_WINDOW::CLOSE':
return Object.assign({}, state, { mainWindowVisible: false });
diff --git a/tests/unit/core/settings/actions.test.js b/tests/unit/core/settings/actions.test.js
index 754cb1292..1e4df4fee 100644
--- a/tests/unit/core/settings/actions.test.js
+++ b/tests/unit/core/settings/actions.test.js
@@ -2,7 +2,6 @@ import { assert } from 'chai';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { initialState } from '../../../../modules/core/settings/reducer';
-import rootReducer from '../../../../modules/core/rootReducer';
import {
getLanguage,
resetMenu,
diff --git a/tests/unit/core/ui/actions.test.js b/tests/unit/core/ui/actions.test.js
new file mode 100644
index 000000000..3d05837bc
--- /dev/null
+++ b/tests/unit/core/ui/actions.test.js
@@ -0,0 +1,23 @@
+import { assert } from 'chai';
+import configureMockStore from 'redux-mock-store';
+import thunk from 'redux-thunk';
+import { initialState } from '../../../../modules/core/ui/reducer';
+import { quitApp } from '../../../../modules/core/ui/actions';
+
+describe('ui actions:', () => {
+ describe('asynchronous action creators', () => {
+ const middlewares = [thunk];
+ const initMockStore = configureMockStore(middlewares);
+ const store = initMockStore({ ui: initialState });
+
+ afterEach(() => store.clearActions());
+
+ it('should handle #quitApp', async () => {
+ await store.dispatch(quitApp());
+ const actions = store.getActions();
+
+ assert.equal(actions.length, 2);
+ assert.equal(actions[0].type, '[MAIN]:APP_QUIT:START');
+ });
+ });
+});
diff --git a/tests/unit/core/ui/reducer.test.js b/tests/unit/core/ui/reducer.test.js
index 77e0419a2..6337f2078 100644
--- a/tests/unit/core/ui/reducer.test.js
+++ b/tests/unit/core/ui/reducer.test.js
@@ -17,4 +17,13 @@ describe('the ui reducer', () => {
assert.deepEqual(reducer(initialState, action), expectedState);
});
+
+ it('should handle the "[MAIN]:APP_QUIT:SUCCESS" action', () => {
+ const action = { type: '[MAIN]:APP_QUIT:SUCCESS' };
+ const expectedState = Object.assign({}, initialState, {
+ appQuit: true
+ });
+
+ assert.deepEqual(reducer(initialState, action), expectedState);
+ });
});
From 0ef3395fec2880fb8146acd190f297800f6585d4 Mon Sep 17 00:00:00 2001
From: Marc Garreau
Date: Fri, 10 Nov 2017 16:22:25 -0500
Subject: [PATCH 011/150] Standardizes language
---
main.js | 26 +++---
modules/core/settings/reducer.js | 15 ++--
package.json | 1 +
yarn.lock | 144 ++++++++++++++++++++++++++++++-
4 files changed, 162 insertions(+), 24 deletions(-)
diff --git a/main.js b/main.js
index 1639d9f06..ec8eb2f69 100644
--- a/main.js
+++ b/main.js
@@ -98,7 +98,7 @@ app.on('before-quit', async (event) => {
// sockets manager
try {
await Sockets.destroyAll();
- store.dispatch({ type: 'SOCKETS::DESTROY_ALL' });
+ store.dispatch({ type: '[MAIN]:SOCKETS:DESTROY' });
} catch (e) {
log.error('Error shutting down sockets');
}
@@ -106,11 +106,11 @@ app.on('before-quit', async (event) => {
// delay quit, so the sockets can close
setTimeout(async () => {
await ethereumNode.stop();
- store.dispatch({ type: 'ETH_NODE::STOP' });
+ store.dispatch({ type: '[MAIN]:ETH_NODE:STOP' });
killedSocketsAndNodes = true;
await db.close();
- store.dispatch({ type: 'DB::CLOSE' });
+ store.dispatch({ type: '[MAIN]:DB:CLOSE' });
store.dispatch(quitApp());
}, 500);
@@ -142,7 +142,7 @@ Only do this if you have secured your HTTP connection or you know what you are d
// initialise the db
try {
await global.db.init();
- store.dispatch({ type: 'DB::INIT' });
+ store.dispatch({ type: '[MAIN]:DB:INIT' });
onReady();
} catch (e) {
log.error(e);
@@ -158,7 +158,7 @@ onReady = () => {
// setup DB sync to backend
dbSync.backendSyncInit();
- store.dispatch({ type: 'DB::SYNC_TO_BACKEND' });
+ store.dispatch({ type: '[MAIN]:DB:SYNC_TO_BACKEND' });
// Initialise window mgr
Windows.init();
@@ -167,7 +167,7 @@ onReady = () => {
protocol.registerHttpProtocol('bzz', (request, callback) => {
const redirectPath = `${Settings.swarmURL}/${request.url.replace('bzz:/', 'bzz://')}`;
callback({ method: request.method, referrer: request.referrer, url: redirectPath });
- store.dispatch({ type: 'PROTOCOL::REGISTER', payload: { protocol: 'bzz' } });
+ store.dispatch({ type: '[MAIN]:PROTOCOL:REGISTER', payload: { protocol: 'bzz' } });
}, (error) => {
if (error) {
log.error(error);
@@ -175,12 +175,14 @@ onReady = () => {
});
// check for update
- if (!Settings.inAutoTestMode) UpdateChecker.run();
- store.dispatch({ type: 'UPDATE_CHECKER::RUN' });
+ if (!Settings.inAutoTestMode) {
+ UpdateChecker.run();
+ store.dispatch({ type: '[MAIN]:UPDATE_CHECKER:FINISHED' });
+ }
// initialize the web3 IPC provider backend
ipcProviderBackend.init();
- store.dispatch({ type: 'IPC_PROVIDER_BACKEND::INIT' });
+ store.dispatch({ type: '[MAIN]:IPC_PROVIDER_BACKEND:INIT' });
// instantiate custom protocols
// require('./customProtocols.js');
@@ -249,7 +251,7 @@ onReady = () => {
// starting swarm
swarmNode.on('starting', () => {
Windows.broadcast('uiAction_swarmStatus', 'starting');
- store.dispatch({ type: 'SWARM::INIT_START' });
+ store.dispatch({ type: '[MAIN]:SWARM:INIT_START' });
});
// swarm download progress
@@ -260,7 +262,7 @@ onReady = () => {
// started swarm
swarmNode.on('started', (isLocal) => {
Windows.broadcast('uiAction_swarmStatus', 'started', isLocal);
- store.dispatch({ type: 'SWARM::INIT_FINISH' });
+ store.dispatch({ type: '[MAIN]:SWARM:INIT_FINISH' });
});
@@ -453,7 +455,7 @@ startMainWindow = () => {
global.webviews = sortedTabs.data();
appMenu(global.webviews);
- store.dispatch({ type: 'MENU::REFRESH' });
+ store.dispatch({ type: '[MAIN]:MENU:REFRESH' });
}, 1000);
};
diff --git a/modules/core/settings/reducer.js b/modules/core/settings/reducer.js
index ddc12da03..3fec145ce 100644
--- a/modules/core/settings/reducer.js
+++ b/modules/core/settings/reducer.js
@@ -6,7 +6,6 @@ export const initialState = {
ignoreGpuBlacklist: false,
i18n: '',
ipcProviderBackendInit: false,
- mining: false,
productionMode: null,
protocols: [],
rpcMode: '',
@@ -18,11 +17,11 @@ export const initialState = {
const settings = (state = initialState, action) => {
switch (action.type) {
- case 'DB::INIT':
+ case '[MAIN]:DB:INIT':
return Object.assign({}, state, { dbInit: true });
- case 'DB::SYNC_TO_BACKEND':
+ case '[MAIN]:DB:SYNC_TO_BACKEND':
return Object.assign({}, state, { dbSync: true });
- case 'PROTOCOL::REGISTER':
+ case '[MAIN]:PROTOCOL:REGISTER':
return Object.assign({}, state, {
protocols: state.protocols.concat(action.payload.protocol)
});
@@ -33,17 +32,15 @@ const settings = (state = initialState, action) => {
return Object.assign({}, state, { ignoreGpuBlacklist: true });
case '[MAIN]:TEST_MODE:SET':
return Object.assign({}, state, { autoTestMode: true });
- case 'SETTINGS_MINING::SET':
- return Object.assign({}, state, { mining: action.payload.mining });
case '[MAIN]:CLI_FLAGS:SYNC':
return Object.assign({}, state, { cliFlags: action.payload.cliFlags });
case '[MAIN]:SET_LANGUAGE_ON_MAIN:SUCCESS':
return Object.assign({}, state, { i18n: action.payload.i18n });
- case 'SWARM::INIT_FINISH':
+ case '[MAIN]:SWARM:INIT_FINISH':
return Object.assign({}, state, { swarmInit: true });
- case 'UPDATE_CHECKER::FINISH':
+ case '[MAIN]:UPDATE_CHECKER:FINISH':
return Object.assign({}, state, { updateCheckerRan: true });
- case 'IPC_PROVIDER_BACKEND::FINISH':
+ case '[MAIN]:IPC_PROVIDER_BACKEND:FINISH':
return Object.assign({}, state, { ipcProviderBackendInit: true });
default:
return state;
diff --git a/package.json b/package.json
index 1462f37b2..3d720265e 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
"dev:electron": "electron -r babel-register main.js",
"dev:meteor": "cd interface && meteor --no-release-check",
"dev:tools": "open http://remotedev.io/local/",
+ "test:basic": "gulp test --test=basic",
"test:unit": "mocha --compilers babel-register tests/unit/**/* --watch",
"test:unit:once": "mocha --compilers babel-register tests/unit/**/*"
},
diff --git a/yarn.lock b/yarn.lock
index 67cf1416b..1b7ec022e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -514,6 +514,10 @@ balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+base-64@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb"
+
base64-js@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
@@ -859,6 +863,10 @@ clone-stats@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
+clone@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb"
+
clone@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f"
@@ -922,6 +930,10 @@ compare-version@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080"
+component-emitter@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe"
+
compress-commons@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.0.tgz#58587092ef20d37cb58baf000112c9278ff73b9f"
@@ -2159,6 +2171,10 @@ get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+get-params@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/get-params/-/get-params-0.1.2.tgz#bae0dfaba588a0c60d7834c0d8dc2ff60eeef2fe"
+
get-stdin@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
@@ -3005,6 +3021,10 @@ js-yaml@^3.5.1, js-yaml@^3.7.0:
argparse "^1.0.7"
esprima "^4.0.0"
+jsan@^3.1.0, jsan@^3.1.5:
+ version "3.1.9"
+ resolved "https://registry.yarnpkg.com/jsan/-/jsan-3.1.9.tgz#2705676c1058f0a7d9ac266ad036a5769cfa7c96"
+
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -3142,6 +3162,10 @@ liftoff@^2.1.0:
rechoir "^0.6.2"
resolve "^1.1.7"
+linked-list@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/linked-list/-/linked-list-0.1.0.tgz#798b0ff97d1b92a4fd08480f55aea4e9d49d37bf"
+
load-json-file@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -3168,6 +3192,10 @@ locate-path@^2.0.0:
p-locate "^2.0.0"
path-exists "^3.0.0"
+lodash-es@^4.2.1:
+ version "4.17.4"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
+
lodash._baseassign@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
@@ -3306,7 +3334,7 @@ lodash.values@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347"
-lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.8.0, lodash@~4.17.4:
+lodash@^4.0.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.8.0, lodash@~4.17.4:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
@@ -3330,7 +3358,7 @@ lokijs@^1.4.3:
version "1.5.0"
resolved "https://registry.yarnpkg.com/lokijs/-/lokijs-1.5.0.tgz#99e403d6a89e47e11ed0c5d499fb55a0603d5efc"
-loose-envify@^1.0.0:
+loose-envify@^1.0.0, loose-envify@^1.1.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
@@ -4133,7 +4161,7 @@ query-string@^2.4.0:
dependencies:
strict-uri-encode "^1.0.0"
-querystring@0.2.0:
+querystring@0.2.0, querystring@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
@@ -4254,6 +4282,36 @@ redent@^1.0.0:
indent-string "^2.1.0"
strip-indent "^1.0.1"
+redux-devtools-instrument@^1.3.3:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/redux-devtools-instrument/-/redux-devtools-instrument-1.8.2.tgz#5e91cfe402e790dae3fd2f0d235f7b7d84b09ffe"
+ dependencies:
+ lodash "^4.2.0"
+ symbol-observable "^1.0.2"
+
+redux-electron-store@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/redux-electron-store/-/redux-electron-store-0.4.1.tgz#b9f92b4299be97b0a5920f03c899a7f9285c3e1c"
+ dependencies:
+ lodash "^4.13.1"
+
+redux-mock-store@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.3.0.tgz#6edfef0d2332f20576381069d6d889a6d0a4451c"
+
+redux-thunk@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.2.0.tgz#e615a16e16b47a19a515766133d1e3e99b7852e5"
+
+redux@^3.7.2:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/redux/-/redux-3.7.2.tgz#06b73123215901d25d065be342eb026bc1c8537b"
+ dependencies:
+ lodash "^4.2.1"
+ lodash-es "^4.2.1"
+ loose-envify "^1.1.0"
+ symbol-observable "^1.0.3"
+
regenerate@^1.2.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
@@ -4303,6 +4361,33 @@ regjsparser@^0.1.4:
dependencies:
jsesc "~0.5.0"
+remote-redux-devtools@^0.5.12:
+ version "0.5.12"
+ resolved "https://registry.yarnpkg.com/remote-redux-devtools/-/remote-redux-devtools-0.5.12.tgz#42cb95dfa9e54c1d9671317c5e7bba41e68caec2"
+ dependencies:
+ jsan "^3.1.5"
+ querystring "^0.2.0"
+ redux-devtools-instrument "^1.3.3"
+ remotedev-utils "^0.1.1"
+ rn-host-detect "^1.0.1"
+ socketcluster-client "^5.3.1"
+
+remotedev-serialize@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/remotedev-serialize/-/remotedev-serialize-0.1.0.tgz#074768e98cb7aa806f45994eeb0c8af95120ee32"
+ dependencies:
+ jsan "^3.1.0"
+
+remotedev-utils@^0.1.1:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/remotedev-utils/-/remotedev-utils-0.1.4.tgz#643700819a943678073c75eb185e81d96620b348"
+ dependencies:
+ get-params "^0.1.2"
+ jsan "^3.1.5"
+ lodash "^4.0.0"
+ remotedev-serialize "^0.1.0"
+ shortid "^2.2.6"
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -4464,6 +4549,10 @@ rlp@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.0.0.tgz#9db384ff4b89a8f61563d92395d8625b18f3afb0"
+rn-host-detect@^1.0.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/rn-host-detect/-/rn-host-detect-1.1.3.tgz#242d76e2fa485c48d751416e65b7cce596969e91"
+
run-async@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
@@ -4509,6 +4598,26 @@ sax@>=0.6.0:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+sc-channel@~1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/sc-channel/-/sc-channel-1.0.6.tgz#b38bd47a993e78290fbc53467867f6b2a0a08639"
+ dependencies:
+ sc-emitter "1.x.x"
+
+sc-emitter@1.x.x, sc-emitter@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/sc-emitter/-/sc-emitter-1.1.0.tgz#ef119d4222f4c64f887b486964ef11116cdd0e75"
+ dependencies:
+ component-emitter "1.2.0"
+
+sc-errors@~1.3.0:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/sc-errors/-/sc-errors-1.3.3.tgz#c00bc4c766a970cc8d5937d08cd58e931d7dae05"
+
+sc-formatter@~3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/sc-formatter/-/sc-formatter-3.0.1.tgz#c8b3fec0eea51b883dbc22ddfeacb46cd0e8db6c"
+
secp256k1@^3.0.1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.3.0.tgz#50ec9b201ba401403dd13ccbf21d31eeb3ff43cf"
@@ -4624,6 +4733,10 @@ shelljs@^0.7.5, shelljs@^0.7.7:
interpret "^1.0.0"
rechoir "^0.6.2"
+shortid@^2.2.6:
+ version "2.2.8"
+ resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131"
+
sigmund@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
@@ -4676,6 +4789,20 @@ sntp@2.x.x:
dependencies:
hoek "4.x.x"
+socketcluster-client@^5.3.1:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/socketcluster-client/-/socketcluster-client-5.5.2.tgz#9d4369e0e722ff7e55e5422c2d44f5afe1aff128"
+ dependencies:
+ base-64 "0.1.0"
+ clone "2.1.1"
+ linked-list "0.1.0"
+ querystring "0.2.0"
+ sc-channel "~1.0.6"
+ sc-emitter "~1.1.0"
+ sc-errors "~1.3.0"
+ sc-formatter "~3.0.0"
+ ws "3.0.0"
+
solc@^0.4.15:
version "0.4.16"
resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.16.tgz#809a5b1257c7c200e11a841b377eaec274698539"
@@ -4927,6 +5054,10 @@ swarm-js@^0.1.21:
tar.gz "^1.0.5"
xhr-request-promise "^0.1.2"
+symbol-observable@^1.0.2, symbol-observable@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
+
table@^3.7.8:
version "3.8.3"
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
@@ -5452,6 +5583,13 @@ write@^0.2.1:
dependencies:
mkdirp "^0.5.1"
+ws@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-3.0.0.tgz#98ddb00056c8390cb751e7788788497f99103b6c"
+ dependencies:
+ safe-buffer "~5.0.1"
+ ultron "~1.1.0"
+
ws@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.1.0.tgz#8afafecdeab46d572e5397ee880739367aa2f41c"
From 7a1c23595fe65a42f5c80e0eb54dfbacf98081b8 Mon Sep 17 00:00:00 2001
From: Marc Garreau
Date: Wed, 18 Oct 2017 00:08:59 -0600
Subject: [PATCH 012/150] Introduces a reusable window
---
interface/client/templates/index.html | 1 +
interface/client/templates/index.js | 11 +-
.../templates/popupWindows/generic.html | 4 +
.../client/templates/popupWindows/generic.js | 17 ++
modules/ipc/methods/eth_sendTransaction.js | 5 +-
modules/ipcCommunicator.js | 7 +-
modules/preloader/mistUI.js | 6 +-
modules/windows.js | 163 ++++++++++++++++++
8 files changed, 203 insertions(+), 11 deletions(-)
create mode 100644 interface/client/templates/popupWindows/generic.html
create mode 100644 interface/client/templates/popupWindows/generic.js
diff --git a/interface/client/templates/index.html b/interface/client/templates/index.html
index 8015cb19b..3e65800b1 100644
--- a/interface/client/templates/index.html
+++ b/interface/client/templates/index.html
@@ -12,6 +12,7 @@
{{> GlobalNotifications}}
+