diff --git a/interface/client/lib/ethereum/1_web3js_init.js b/interface/client/lib/ethereum/1_web3js_init.js
index 15f612e52..3be307bfd 100644
--- a/interface/client/lib/ethereum/1_web3js_init.js
+++ b/interface/client/lib/ethereum/1_web3js_init.js
@@ -2,12 +2,6 @@
if(typeof web3 !== 'undefined') {
console.info('Web3 already initialized, re-using provider.');
- // add web3 backwards compatibility
- if(!web3.currentProvider.sendAsync) {
- web3.currentProvider.sendAsync = web3.currentProvider.send;
- web3.currentProvider.send = web3.currentProvider.sendSync;
- }
-
web3 = new Web3(web3.currentProvider);
} else {
console.info('Web3 not yet initialized, doing so now with HttpProvider.');
diff --git a/modules/ipc/dechunker.js b/modules/ipc/dechunker.js
deleted file mode 100644
index 3bf74b22c..000000000
--- a/modules/ipc/dechunker.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
-The dechunker module gets IPC buffers and tries to decode them.
-
-@module dechunker
-*/
-
-const _ = require('underscore');
-
-
-/**
-The dechunker module gets IPC buffers and tries to decode them.
-
-@method dechunker
-*/
-module.exports = class Dechunker {
- constructor() {
- this.lastChunk = null;
- this.lastChunkTimeout = null;
- }
-
- dechunk(data, callback) {
- data = data.toString();
-
- // DE-CHUNKER
- const dechunkedData = data
- .replace(/\][\n\r]?/g, ']') // ]
- .replace(/\}[\n\r]?/g, '}') // }
- .replace(/\}[\n\r]?\{/g, '}|--|{') // }{
- .replace(/\}\][\n\r]?\[\{/g, '}]|--|[{') // }][{
- .replace(/\}[\n\r]?\[\{/g, '}|--|[{') // }[{
- .replace(/\}\][\n\r]?\{/g, '}]|--|{') // }]{
- .split('|--|');
-
-
- // if it couldn't be split, return error
- if (!_.isArray(dechunkedData)) {
- return callback(`Couldn't split data: ${data}`);
- }
-
- return _.each(dechunkedData, (data) => {
- // prepend the last chunk
- if (this.lastChunk) {
- data = this.lastChunk + data;
- }
-
- let result = data;
-
- try {
- result = JSON.parse(result);
- } catch (e) {
- this.lastChunk = data;
-
- // start timeout to cancel all requests
- clearTimeout(this.lastChunkTimeout);
- this.lastChunkTimeout = setTimeout(() => {
- callback(`Couldn't decode data: ${data}`);
- }, 1000 * 15);
-
- return;
- }
-
- // cancel timeout and set chunk to null
- clearTimeout(this.lastChunkTimeout);
- this.lastChunkTimeout = null;
- this.lastChunk = null;
-
- callback(null, result);
- });
- }
-};
diff --git a/modules/preloader/browser.js b/modules/preloader/browser.js
index 1ba237466..86e1a3f75 100644
--- a/modules/preloader/browser.js
+++ b/modules/preloader/browser.js
@@ -2,11 +2,9 @@
@module preloader browser
*/
require('./include/common')('browser');
+require('./include/ethereumProvider.js');
const { ipcRenderer } = require('electron');
const mist = require('./include/mistAPI.js');
-const BigNumber = require('bignumber.js');
-const ipcProviderWrapper = require('../ipc/ipcProviderWrapper.js');
-const Web3 = require('web3');
require('./include/getFavicon.js');
require('./include/getMetaTags.js');
require('./include/setBasePath')('interface');
@@ -28,9 +26,7 @@ process.on('loaded', function () {
window.mist = mist();
-window.BigNumber = BigNumber;
-window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper));
// prevent overwriting the Dapps Web3
delete global.Web3;
-delete window.Web3;
+delete window.Web3;
\ No newline at end of file
diff --git a/modules/preloader/include/ethereumProvider.js b/modules/preloader/include/ethereumProvider.js
new file mode 100644
index 000000000..b41c02dd7
--- /dev/null
+++ b/modules/preloader/include/ethereumProvider.js
@@ -0,0 +1,23 @@
+/**
+Sets the ethereum provider, as well as "web3" for backwards compatibility.
+
+@module ethereumProvider
+*/
+const Web3 = require('web3');
+const BigNumber = require('bignumber.js');
+const ipcProviderWrapper = require('../../ipc/ipcProviderWrapper.js');
+const LegacyWeb3IpcProvider = require('./legacyWeb3IpcProvider.js');
+
+
+// SET ETHEREUM PROVIDER
+window.ethereumProvider = new Web3.providers.IpcProvider('', ipcProviderWrapper);
+
+
+// LEGACY
+window.BigNumber = BigNumber;
+window.web3 = {
+ currentProvider: new LegacyWeb3IpcProvider('', ipcProviderWrapper)
+};
+
+// for now still add this too: WILL BE REMOVED with web3 1.0
+window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper));
\ No newline at end of file
diff --git a/modules/preloader/include/legacyWeb3IpcProvider.js b/modules/preloader/include/legacyWeb3IpcProvider.js
new file mode 100644
index 000000000..aced1fc2d
--- /dev/null
+++ b/modules/preloader/include/legacyWeb3IpcProvider.js
@@ -0,0 +1,214 @@
+/*
+ This file is part of web3.js.
+
+ web3.js is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ web3.js is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with web3.js. If not, see .
+*/
+/** @file ipcprovider.js
+ * @authors:
+ * Fabian Vogelsteller
+ * @date 2015
+ */
+
+"use strict";
+
+var _ = require('underscore');
+var errors = {
+ InvalidConnection: function (host){
+ return new Error('CONNECTION ERROR: Couldn\'t connect to node '+ host +'.');
+ },
+ InvalidResponse: function (result){
+ var message = !!result && !!result.error && !!result.error.message ? result.error.message : 'Invalid JSON RPC response: ' + JSON.stringify(result);
+ return new Error(message);
+ }
+};
+
+
+var IpcProvider = function (path, net) {
+ var _this = this;
+ this.responseCallbacks = {};
+ this.path = path;
+
+ this.connection = net.connect({path: this.path});
+
+ this.connection.on('error', function(e){
+ console.error('IPC Connection Error', e);
+ _this._timeout();
+ });
+
+ this.connection.on('end', function(){
+ _this._timeout();
+ });
+
+
+ // LISTEN FOR CONNECTION RESPONSES
+ this.connection.on('data', function(data) {
+ /*jshint maxcomplexity: 6 */
+
+ _this._parseResponse(data.toString()).forEach(function(result){
+
+ var id = null;
+
+ // get the id which matches the returned id
+ if(_.isArray(result)) {
+ result.forEach(function(load){
+ if(_this.responseCallbacks[load.id])
+ id = load.id;
+ });
+ } else {
+ id = result.id;
+ }
+
+ // fire the callback
+ if(_this.responseCallbacks[id]) {
+ _this.responseCallbacks[id](null, result);
+ delete _this.responseCallbacks[id];
+ }
+ });
+ });
+};
+
+/**
+Will parse the response and make an array out of it.
+
+@method _parseResponse
+@param {String} data
+*/
+IpcProvider.prototype._parseResponse = function(data) {
+ var _this = this,
+ returnValues = [];
+
+ // DE-CHUNKER
+ var dechunkedData = data
+ .replace(/\}[\n\r]?\{/g,'}|--|{') // }{
+ .replace(/\}\][\n\r]?\[\{/g,'}]|--|[{') // }][{
+ .replace(/\}[\n\r]?\[\{/g,'}|--|[{') // }[{
+ .replace(/\}\][\n\r]?\{/g,'}]|--|{') // }]{
+ .split('|--|');
+
+ dechunkedData.forEach(function(data){
+
+ // prepend the last chunk
+ if(_this.lastChunk)
+ data = _this.lastChunk + data;
+
+ var result = null;
+
+ try {
+ result = JSON.parse(data);
+
+ } catch(e) {
+
+ _this.lastChunk = data;
+
+ // start timeout to cancel all requests
+ clearTimeout(_this.lastChunkTimeout);
+ _this.lastChunkTimeout = setTimeout(function(){
+ _this._timeout();
+ throw errors.InvalidResponse(data);
+ }, 1000 * 15);
+
+ return;
+ }
+
+ // cancel timeout and set chunk to null
+ clearTimeout(_this.lastChunkTimeout);
+ _this.lastChunk = null;
+
+ if(result)
+ returnValues.push(result);
+ });
+
+ return returnValues;
+};
+
+
+/**
+Get the adds a callback to the responseCallbacks object,
+which will be called if a response matching the response Id will arrive.
+
+@method _addResponseCallback
+*/
+IpcProvider.prototype._addResponseCallback = function(payload, callback) {
+ var id = payload.id || payload[0].id;
+ var method = payload.method || payload[0].method;
+
+ this.responseCallbacks[id] = callback;
+ this.responseCallbacks[id].method = method;
+};
+
+/**
+Timeout all requests when the end/error event is fired
+
+@method _timeout
+*/
+IpcProvider.prototype._timeout = function() {
+ for(var key in this.responseCallbacks) {
+ if(this.responseCallbacks.hasOwnProperty(key)){
+ this.responseCallbacks[key](errors.InvalidConnection('on IPC'));
+ delete this.responseCallbacks[key];
+ }
+ }
+};
+
+
+/**
+Check if the current connection is still valid.
+
+@method isConnected
+*/
+IpcProvider.prototype.isConnected = function() {
+ var _this = this;
+
+ // try reconnect, when connection is gone
+ if(!_this.connection.writable)
+ _this.connection.connect({path: _this.path});
+
+ return !!this.connection.writable;
+};
+
+IpcProvider.prototype.send = function (payload) {
+
+ if(this.connection.writeSync) {
+ var result;
+
+ // try reconnect, when connection is gone
+ if(!this.connection.writable)
+ this.connection.connect({path: this.path});
+
+ var data = this.connection.writeSync(JSON.stringify(payload));
+
+ try {
+ result = JSON.parse(data);
+ } catch(e) {
+ throw errors.InvalidResponse(data);
+ }
+
+ return result;
+
+ } else {
+ throw new Error('You tried to send "'+ payload.method +'" synchronously. Synchronous requests are not supported by the IPC provider.');
+ }
+};
+
+IpcProvider.prototype.sendAsync = function (payload, callback) {
+ // try reconnect, when connection is gone
+ if(!this.connection.writable)
+ this.connection.connect({path: this.path});
+
+
+ this.connection.write(JSON.stringify(payload));
+ this._addResponseCallback(payload, callback);
+};
+
+module.exports = IpcProvider;
diff --git a/modules/preloader/mistUI.js b/modules/preloader/mistUI.js
index a42f50508..707357386 100644
--- a/modules/preloader/mistUI.js
+++ b/modules/preloader/mistUI.js
@@ -3,23 +3,17 @@
*/
require('./include/common')('mist');
+require('./include/ethereumProvider.js');
const { ipcRenderer, remote, webFrame } = require('electron'); // eslint-disable-line import/newline-after-import
const { Menu, MenuItem } = remote;
const dbSync = require('../dbSync.js');
const i18n = require('../i18n.js');
const mist = require('./include/mistAPI.js');
-const BigNumber = require('bignumber.js');
-const Web3 = require('web3');
-const ipcProviderWrapper = require('../ipc/ipcProviderWrapper.js');
const web3Admin = require('../web3Admin.js');
require('./include/setBasePath')('interface');
-// make variables globally accessable
-window.BigNumber = BigNumber;
-window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper));
-
// add admin later
setTimeout(() => {
web3Admin.extend(window.web3);
diff --git a/modules/preloader/popupWindows.js b/modules/preloader/popupWindows.js
index 238b0ef28..4f049e473 100644
--- a/modules/preloader/popupWindows.js
+++ b/modules/preloader/popupWindows.js
@@ -3,20 +3,17 @@
*/
require('./popupWindowsNoWeb3.js');
-
-const ipcProviderWrapper = require('../ipc/ipcProviderWrapper.js');
-const BigNumber = require('bignumber.js');
+require('./include/ethereumProvider.js');
const Q = require('bluebird');
-const Web3 = require('web3');
const web3Admin = require('../web3Admin.js');
const https = require('https');
require('./include/openPopup.js');
+
+web3Admin.extend(window.web3);
+
// make variables globally accessable
-window.BigNumber = BigNumber;
window.Q = Q;
window.https = https;
-window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper));
-web3Admin.extend(window.web3);
diff --git a/modules/preloader/splashScreen.js b/modules/preloader/splashScreen.js
index 2ecdbf567..d1f7df23e 100644
--- a/modules/preloader/splashScreen.js
+++ b/modules/preloader/splashScreen.js
@@ -1,8 +1,7 @@
require('./include/common')('splashscreen');
+require('./include/ethereumProvider.js');
const mist = require('./include/mistAPI.js');
const { ipcRenderer, remote, webFrame } = require('electron');
-const ipcProviderWrapper = require('../ipc/ipcProviderWrapper.js');
-const Web3 = require('web3');
require('./include/openExternal.js');
require('./include/setBasePath')('interface');
@@ -18,4 +17,3 @@ window.ipc = ipcRenderer;
window.mist = mist();
window.mistMode = remote.getGlobal('mode');
window.dirname = remote.getGlobal('dirname');
-window.web3 = new Web3(new Web3.providers.IpcProvider('', ipcProviderWrapper));
diff --git a/modules/settings.js b/modules/settings.js
index 6f81ff7ec..0d9f1e4d3 100644
--- a/modules/settings.js
+++ b/modules/settings.js
@@ -207,7 +207,14 @@ class Settings {
}
get rpcMode() {
- return (argv.rpc && argv.rpc.indexOf('.ipc') < 0) ? 'http' : 'ipc';
+ if (argv.rpc && argv.rpc.indexOf('http') === 0)
+ return 'http';
+ if (argv.rpc && argv.rpc.indexOf('ws:') === 0) {
+ this._log.warn('Websockets are not yet supported by Mist, using default IPC connection');
+ argv.rpc = null;
+ return 'ipc';
+ } else
+ return 'ipc';
}
get rpcConnectConfig() {
diff --git a/modules/sockets/base.js b/modules/sockets/base.js
index 72d02b49a..9f90910e6 100644
--- a/modules/sockets/base.js
+++ b/modules/sockets/base.js
@@ -104,6 +104,17 @@ class Socket extends EventEmitter {
});
}
+ resume() {
+ this._socket.resume.apply(this, arguments);
+ }
+
+ pause() {
+ this._socket.pause.apply(this, arguments);
+ }
+
+ pipe() {
+ this._socket.pipe.apply(this, arguments);
+ }
/**
* Disconnect from socket.
diff --git a/modules/sockets/web3Base.js b/modules/sockets/web3Base.js
index cfa6b6086..9b2dd9978 100644
--- a/modules/sockets/web3Base.js
+++ b/modules/sockets/web3Base.js
@@ -1,6 +1,6 @@
const _ = global._;
const Q = require('bluebird');
-const Dechunker = require('../ipc/dechunker.js');
+const oboe = require('oboe');
const SocketBase = require('./base');
const Socket = SocketBase.Socket;
@@ -10,11 +10,9 @@ module.exports = class Web3Socket extends Socket {
constructor(socketMgr, id) {
super(socketMgr, id);
- this.dechunker = new Dechunker();
-
this._sendRequests = {};
- this.on('data', _.bind(this._handleSocketResponse, this));
+ this._handleSocketResponse();
}
@@ -98,64 +96,66 @@ module.exports = class Web3Socket extends Socket {
/**
* Handle responses from Geth.
*/
- _handleSocketResponse(data) {
- this.dechunker.dechunk(data, (err, result) => {
- this._log.trace('Dechunked response', result);
+ _handleSocketResponse() {
+ oboe(this)
+ .done((result) => {
+ this._log.trace('JSON response', result);
try {
- if (err) {
- this._log.error('Socket response error', err);
-
- _.each(this._sendRequests, (req) => {
- req.reject(err);
- });
-
- this._sendRequests = {};
- } else {
- const isBatch = _.isArray(result);
+
+ const isBatch = _.isArray(result);
- const firstItem = isBatch ? result[0] : result;
+ const firstItem = isBatch ? result[0] : result;
- const req = firstItem.id ? this._sendRequests[firstItem.id] : null;
+ const req = firstItem.id ? this._sendRequests[firstItem.id] : null;
- if (req) {
- this._log.trace(
- isBatch ? 'Batch response' : 'Response',
- firstItem.id, result
- );
+ if (req) {
+ this._log.trace(
+ isBatch ? 'Batch response' : 'Response',
+ firstItem.id, result
+ );
- // if we don't want full JSON result, send just the result
- if (!_.get(req, 'options.fullResult')) {
- if (isBatch) {
- result = _.map(result, r => r.result);
- } else {
- result = result.result;
- }
+ // if we don't want full JSON result, send just the result
+ if (!_.get(req, 'options.fullResult')) {
+ if (isBatch) {
+ result = _.map(result, r => r.result);
} else {
- // restore original ids
- if (isBatch) {
- req.origId.forEach((id, idx) => {
- if (result[idx]) {
- result[idx].id = id;
- }
- });
- } else {
- result.id = req.origId;
- }
+ result = result.result;
}
-
- req.resolve({
- isBatch,
- result,
- });
} else {
- // not a response to a request so pass it on as a notification
- this.emit('data-notification', result);
+ // restore original ids
+ if (isBatch) {
+ req.origId.forEach((id, idx) => {
+ if (result[idx]) {
+ result[idx].id = id;
+ }
+ });
+ } else {
+ result.id = req.origId;
+ }
}
+
+ req.resolve({
+ isBatch,
+ result,
+ });
+ } else {
+ // not a response to a request so pass it on as a notification
+ this.emit('data-notification', result);
}
+
} catch (err) {
this._log.error('Error handling socket response', err);
}
+ })
+ .fail((err) => {
+ this._log.error('Socket response error', err);
+
+ _.each(this._sendRequests, (req) => {
+ req.reject(err);
+ });
+
+ this._sendRequests = {};
});
}
};
diff --git a/package.json b/package.json
index 82edbe599..c89456414 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"lokijs": "^1.4.2",
"minimongo-standalone": "^1.1.0-3",
"numeral": "^2.0.4",
+ "oboe": "^2.1.3",
"os-timesync": "^1.0.7",
"semver": "^5.1.0",
"solc": "^0.4.8",
diff --git a/yarn.lock b/yarn.lock
index a43fdbbc8..49e1e4676 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.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/7zip-bin-linux/-/7zip-bin-linux-1.0.3.tgz#66724d7bb7526381574393888f62566ed537151c"
@@ -175,14 +177,14 @@ 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, async@>=0.1.0:
- version "0.9.2"
- resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
-
-async@^1.4.0, async@^1.5.0, async@1.x:
+async@1.x, async@^1.4.0, async@^1.5.0:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+async@>=0.1.0, async@^0.9.0:
+ version "0.9.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
+
async@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/async/-/async-2.0.1.tgz#b709cc0280a9c36f09f4536be823c838a9049e25"
@@ -552,7 +554,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:
@@ -581,17 +583,17 @@ 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.4.6, concat-stream@^1.4.7:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266"
+concat-stream@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611"
dependencies:
inherits "~2.0.1"
readable-stream "~2.0.0"
typedarray "~0.0.5"
-concat-stream@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611"
+concat-stream@^1.4.6, concat-stream@^1.4.7:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266"
dependencies:
inherits "~2.0.1"
readable-stream "~2.0.0"
@@ -729,17 +731,17 @@ dateformat@^1.0.11:
get-stdin "^4.0.1"
meow "^3.3.0"
-debug@^0.7.2, debug@0.7.4:
+debug@0.7.4, 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.2.0, debug@2.2.0:
+debug@2.2.0, debug@^2.1.1, 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.1.3, debug@^2.3.2, debug@^2.6.0, debug@2.6.0:
+debug@2.6.0, debug@^2.1.3, debug@^2.3.2, debug@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
dependencies:
@@ -871,7 +873,7 @@ diff@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf"
-doctrine@^1.2.2, doctrine@1.5.0:
+doctrine@1.5.0, doctrine@^1.2.2:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
dependencies:
@@ -892,18 +894,18 @@ drbg.js@^1.0.1:
create-hash "^1.1.2"
create-hmac "^1.1.4"
-duplexer2@^0.1.4, duplexer2@~0.1.0:
- 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, duplexer2@~0.1.0:
+ 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"
@@ -940,7 +942,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.1.0, electron-builder-http@12.1.0:
+electron-builder-http@12.1.0, electron-builder-http@~12.1.0:
version "12.1.0"
resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-12.1.0.tgz#4469498f36a5c7af74a94c637b4d874ca1300b7e"
dependencies:
@@ -1071,6 +1073,12 @@ elliptic@^6.2.3:
hash.js "^1.0.0"
inherits "^2.0.1"
+end-of-stream@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e"
+ dependencies:
+ once "~1.3.0"
+
end-of-stream@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07"
@@ -1083,12 +1091,6 @@ end-of-stream@~0.1.5:
dependencies:
once "~1.3.0"
-end-of-stream@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e"
- dependencies:
- once "~1.3.0"
-
error-ex@^1.2.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9"
@@ -1135,7 +1137,7 @@ es6-set@~0.1.3:
es6-symbol "3"
event-emitter "~0.3.4"
-es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3:
+es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa"
dependencies:
@@ -1151,7 +1153,7 @@ es6-weak-map@^2.0.1:
es6-iterator "2"
es6-symbol "3"
-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"
@@ -1255,7 +1257,7 @@ espree@^3.3.1:
acorn "^4.0.1"
acorn-jsx "^3.0.0"
-esprima@^2.6.0, esprima@^2.7.1, esprima@2.7.x:
+esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
@@ -1685,6 +1687,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.0.5, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95"
+ 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"
@@ -1704,17 +1723,6 @@ glob@^5.0.15, glob@^5.0.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@7.0.5:
- version "7.0.5"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.5.tgz#b4202a69099bbb4d292a7c1b95b6682b67ebdc95"
- 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@~3.1.21:
version "3.1.21"
resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd"
@@ -1723,12 +1731,6 @@ glob@~3.1.21:
inherits "1"
minimatch "~0.2.11"
-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"
@@ -1976,6 +1978,10 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.1.5:
version "2.1.5"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b"
+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"
@@ -2009,14 +2015,14 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, 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.0, inherits@~2.0.1:
+ 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"
@@ -2278,14 +2284,14 @@ is-zip@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325"
-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"
@@ -2337,7 +2343,7 @@ js-tokens@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5"
-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.7.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80"
dependencies:
@@ -2653,6 +2659,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.0.2"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e"
@@ -2660,10 +2670,6 @@ lru-cache@^4.0.1:
pseudomap "^1.0.1"
yallist "^2.0.0"
-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"
@@ -2740,15 +2746,15 @@ mime@^1.2.11, mime@^1.3.4:
version "1.3.4"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
-minimatch@^2.0.1:
- version "2.0.10"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7"
+"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
dependencies:
brace-expansion "^1.0.0"
-minimatch@^3.0.2, minimatch@^3.0.3, "minimatch@2 || 3":
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
+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"
@@ -2759,6 +2765,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"
@@ -2767,10 +2777,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"
@@ -2778,7 +2784,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, 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:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
@@ -2941,7 +2947,13 @@ object.omit@^2.0.0:
for-own "^0.1.4"
is-extendable "^0.1.1"
-once@^1.3.0, once@1.x:
+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"
+
+once@1.x, once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
dependencies:
@@ -3198,14 +3210,14 @@ pullstream@~0.4.0:
setimmediate ">= 1.0.2 < 2"
slice-stream ">= 1.0.0 < 2"
-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.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
@@ -3256,6 +3268,15 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.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"
@@ -3277,15 +3298,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable
string_decoder "~0.10.x"
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"
-
readable-stream@~2.0.0, readable-stream@~2.0.5:
version "2.0.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e"
@@ -3359,9 +3371,9 @@ 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.65.0:
- version "2.75.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93"
+request@2.74.0:
+ version "2.74.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab"
dependencies:
aws-sign2 "~0.6.0"
aws4 "^1.2.1"
@@ -3370,7 +3382,7 @@ request@^2.45.0, request@^2.55.0, request@^2.65.0:
combined-stream "~1.0.5"
extend "~3.0.0"
forever-agent "~0.6.1"
- form-data "~2.0.0"
+ form-data "~1.0.0-rc4"
har-validator "~2.0.6"
hawk "~3.1.3"
http-signature "~1.1.0"
@@ -3385,9 +3397,9 @@ request@^2.45.0, request@^2.55.0, request@^2.65.0:
tough-cookie "~2.3.0"
tunnel-agent "~0.4.1"
-request@2.74.0:
- version "2.74.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab"
+request@^2.45.0, request@^2.55.0, request@^2.65.0:
+ version "2.75.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.75.0.tgz#d2b8268a286da13eaa5d01adf5d18cc90f657d93"
dependencies:
aws-sign2 "~0.6.0"
aws4 "^1.2.1"
@@ -3396,7 +3408,7 @@ request@2.74.0:
combined-stream "~1.0.5"
extend "~3.0.0"
forever-agent "~0.6.1"
- form-data "~1.0.0-rc4"
+ form-data "~2.0.0"
har-validator "~2.0.6"
hawk "~3.1.3"
http-signature "~1.1.0"
@@ -3445,7 +3457,7 @@ 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.1.x:
+resolve@1.1.x, resolve@^1.1.6, resolve@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
@@ -3466,7 +3478,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.5.4"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04"
dependencies:
@@ -3550,14 +3562,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"
@@ -3770,10 +3782,6 @@ streamroller@^0.2.1:
debug "^0.7.2"
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-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"
@@ -3793,6 +3801,10 @@ 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"
+
stringstream@~0.0.4:
version "0.0.5"
resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
@@ -3865,16 +3877,16 @@ sumchecker@^1.2.0:
debug "^2.2.0"
es6-promise "^3.2.1"
-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@^3.1.0, supports-color@^3.1.2, supports-color@3.1.2:
+supports-color@3.1.2, supports-color@^3.1.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"
+
table@^3.7.8:
version "3.8.3"
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
@@ -3903,10 +3915,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-filter@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec"
@@ -3935,6 +3943,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"
@@ -3953,18 +3965,18 @@ 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.29, 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.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, 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"
+
to-absolute-glob@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f"
@@ -4009,14 +4021,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.5:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
@@ -4046,7 +4058,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"
@@ -4296,13 +4308,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"
@@ -4312,10 +4328,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.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.0.0.tgz#7d30f8f873f9a5bbc3a64dabc8d177e071ae426f"
@@ -4357,16 +4369,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"
@@ -4375,7 +4387,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.0:
+"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
@@ -4452,7 +4464,7 @@ yargs@~3.10.0:
decamelize "^1.0.0"
window-size "0.1.0"
-yauzl@^2.2.1, yauzl@2.4.1:
+yauzl@2.4.1, yauzl@^2.2.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
dependencies:
@@ -4466,4 +4478,3 @@ zip-stream@^1.0.0:
compress-commons "^1.1.0"
lodash "^4.8.0"
readable-stream "^2.0.0"
-