opentok-accelerator-core
Advanced tools
Comparing version 0.0.16 to 0.0.17
@@ -88,8 +88,20 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
return new Promise(function (resolve, reject) { | ||
createPublisher().then(function (publisher) { | ||
state.addPublisher('camera', publisher); | ||
session.publish(publisher); | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
resolve(publisher); | ||
}).catch(function (error) { | ||
var onPublish = function onPublish(publisher) { | ||
return function (error) { | ||
if (error) { | ||
reject(error); | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
} else { | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
state.addPublisher('camera', publisher); | ||
resolve(publisher); | ||
} | ||
}; | ||
}; | ||
var publishToSession = function publishToSession(publisher) { | ||
return session.publish(publisher, onPublish(publisher)); | ||
}; | ||
var handleError = function handleError(error) { | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
@@ -99,3 +111,5 @@ var errorMessage = error.code === 1010 ? 'Check your network connection' : error.message; | ||
reject(error); | ||
}); | ||
}; | ||
createPublisher().then(publishToSession).catch(handleError); | ||
}); | ||
@@ -214,3 +228,8 @@ }; | ||
return new Promise(function (resolve, reject) { | ||
// eslint-disable-line consistent-return | ||
logging.log(logging.logAction.startCall, logging.logVariation.attempt); | ||
/** | ||
* Determine if we're able to join the session based on an existing connection limit | ||
*/ | ||
if (!ableToJoin()) { | ||
@@ -223,3 +242,7 @@ var errorMessage = 'Session has reached its connection limit'; | ||
publish().then(function (publisher) { | ||
/** | ||
* Subscribe to any streams that existed before we start the call from our side. | ||
*/ | ||
var subscribeToInitialStreams = function subscribeToInitialStreams(publisher) { | ||
// Get an array of initial subscription promises | ||
var initialSubscriptions = function initialSubscriptions() { | ||
@@ -240,3 +263,5 @@ if (autoSubscribe) { | ||
}; | ||
Promise.all(initialSubscriptions()).then(function () { | ||
// Handle success | ||
var onSubscribeToAll = function onSubscribeToAll() { | ||
var pubSubData = Object.assign({}, state.getPubSub(), { publisher: publisher }); | ||
@@ -246,6 +271,15 @@ triggerEvent('startCall', pubSubData); | ||
resolve(pubSubData); | ||
}).catch(function (reason) { | ||
return logging.message('Failed to subscribe to all existing streams: ' + reason); | ||
}); | ||
}); | ||
}; | ||
// Handle error | ||
var onError = function onError(reason) { | ||
logging.message('Failed to subscribe to all existing streams: ' + reason); | ||
// We do not reject here in case we still successfully publish to the session | ||
resolve(Object.assign({}, state.getPubSub(), { publisher: publisher })); | ||
}; | ||
Promise.all(initialSubscriptions()).then(onSubscribeToAll).catch(onError); | ||
}; | ||
publish().then(subscribeToInitialStreams).catch(reject); | ||
}); | ||
@@ -252,0 +286,0 @@ }; |
@@ -85,8 +85,20 @@ 'use strict'; | ||
return new Promise(function (resolve, reject) { | ||
createPublisher().then(function (publisher) { | ||
state.addPublisher('camera', publisher); | ||
session.publish(publisher); | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
resolve(publisher); | ||
}).catch(function (error) { | ||
var onPublish = function onPublish(publisher) { | ||
return function (error) { | ||
if (error) { | ||
reject(error); | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
} else { | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
state.addPublisher('camera', publisher); | ||
resolve(publisher); | ||
} | ||
}; | ||
}; | ||
var publishToSession = function publishToSession(publisher) { | ||
return session.publish(publisher, onPublish(publisher)); | ||
}; | ||
var handleError = function handleError(error) { | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
@@ -96,3 +108,5 @@ var errorMessage = error.code === 1010 ? 'Check your network connection' : error.message; | ||
reject(error); | ||
}); | ||
}; | ||
createPublisher().then(publishToSession).catch(handleError); | ||
}); | ||
@@ -211,3 +225,8 @@ }; | ||
return new Promise(function (resolve, reject) { | ||
// eslint-disable-line consistent-return | ||
logging.log(logging.logAction.startCall, logging.logVariation.attempt); | ||
/** | ||
* Determine if we're able to join the session based on an existing connection limit | ||
*/ | ||
if (!ableToJoin()) { | ||
@@ -220,3 +239,7 @@ var errorMessage = 'Session has reached its connection limit'; | ||
publish().then(function (publisher) { | ||
/** | ||
* Subscribe to any streams that existed before we start the call from our side. | ||
*/ | ||
var subscribeToInitialStreams = function subscribeToInitialStreams(publisher) { | ||
// Get an array of initial subscription promises | ||
var initialSubscriptions = function initialSubscriptions() { | ||
@@ -237,3 +260,5 @@ if (autoSubscribe) { | ||
}; | ||
Promise.all(initialSubscriptions()).then(function () { | ||
// Handle success | ||
var onSubscribeToAll = function onSubscribeToAll() { | ||
var pubSubData = Object.assign({}, state.getPubSub(), { publisher: publisher }); | ||
@@ -243,6 +268,15 @@ triggerEvent('startCall', pubSubData); | ||
resolve(pubSubData); | ||
}).catch(function (reason) { | ||
return logging.message('Failed to subscribe to all existing streams: ' + reason); | ||
}); | ||
}); | ||
}; | ||
// Handle error | ||
var onError = function onError(reason) { | ||
logging.message('Failed to subscribe to all existing streams: ' + reason); | ||
// We do not reject here in case we still successfully publish to the session | ||
resolve(Object.assign({}, state.getPubSub(), { publisher: publisher })); | ||
}; | ||
Promise.all(initialSubscriptions()).then(onSubscribeToAll).catch(onError); | ||
}; | ||
publish().then(subscribeToInitialStreams).catch(reject); | ||
}); | ||
@@ -249,0 +283,0 @@ }; |
{ | ||
"name": "opentok-accelerator-core", | ||
"version": "0.0.16", | ||
"version": "0.0.17", | ||
"description": "Opentok Accelerator Core", | ||
@@ -28,11 +28,12 @@ "repository": "https://github.com/opentok/accelerator-core-js", | ||
"browserify": "^13.1.1", | ||
"eslint": "^3.5.0", | ||
"eslint-config-airbnb": "^11.2.0", | ||
"eslint-plugin-import": "^1.15.0", | ||
"eslint-plugin-jsx-a11y": "^2.2.2", | ||
"eslint-plugin-react": "^6.2.2" | ||
"eslint": "^3.14.1", | ||
"eslint-config-airbnb": "^14.0.0", | ||
"eslint-plugin-import": "^2.2.0", | ||
"eslint-plugin-jsx-a11y": "^3.0.2", | ||
"eslint-plugin-react": "^6.9.0" | ||
}, | ||
"dependencies": { | ||
"eslint-plugin-import": "^1.16.0", | ||
"opentok-solutions-logging": "^1.0.7" | ||
} | ||
} |
@@ -85,8 +85,20 @@ 'use strict'; | ||
return new Promise(function (resolve, reject) { | ||
createPublisher().then(function (publisher) { | ||
state.addPublisher('camera', publisher); | ||
session.publish(publisher); | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
resolve(publisher); | ||
}).catch(function (error) { | ||
var onPublish = function onPublish(publisher) { | ||
return function (error) { | ||
if (error) { | ||
reject(error); | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
} else { | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
state.addPublisher('camera', publisher); | ||
resolve(publisher); | ||
} | ||
}; | ||
}; | ||
var publishToSession = function publishToSession(publisher) { | ||
return session.publish(publisher, onPublish(publisher)); | ||
}; | ||
var handleError = function handleError(error) { | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
@@ -96,3 +108,5 @@ var errorMessage = error.code === 1010 ? 'Check your network connection' : error.message; | ||
reject(error); | ||
}); | ||
}; | ||
createPublisher().then(publishToSession).catch(handleError); | ||
}); | ||
@@ -211,3 +225,8 @@ }; | ||
return new Promise(function (resolve, reject) { | ||
// eslint-disable-line consistent-return | ||
logging.log(logging.logAction.startCall, logging.logVariation.attempt); | ||
/** | ||
* Determine if we're able to join the session based on an existing connection limit | ||
*/ | ||
if (!ableToJoin()) { | ||
@@ -220,3 +239,7 @@ var errorMessage = 'Session has reached its connection limit'; | ||
publish().then(function (publisher) { | ||
/** | ||
* Subscribe to any streams that existed before we start the call from our side. | ||
*/ | ||
var subscribeToInitialStreams = function subscribeToInitialStreams(publisher) { | ||
// Get an array of initial subscription promises | ||
var initialSubscriptions = function initialSubscriptions() { | ||
@@ -237,3 +260,5 @@ if (autoSubscribe) { | ||
}; | ||
Promise.all(initialSubscriptions()).then(function () { | ||
// Handle success | ||
var onSubscribeToAll = function onSubscribeToAll() { | ||
var pubSubData = Object.assign({}, state.getPubSub(), { publisher: publisher }); | ||
@@ -243,6 +268,15 @@ triggerEvent('startCall', pubSubData); | ||
resolve(pubSubData); | ||
}).catch(function (reason) { | ||
return logging.message('Failed to subscribe to all existing streams: ' + reason); | ||
}); | ||
}); | ||
}; | ||
// Handle error | ||
var onError = function onError(reason) { | ||
logging.message('Failed to subscribe to all existing streams: ' + reason); | ||
// We do not reject here in case we still successfully publish to the session | ||
resolve(Object.assign({}, state.getPubSub(), { publisher: publisher })); | ||
}; | ||
Promise.all(initialSubscriptions()).then(onSubscribeToAll).catch(onError); | ||
}; | ||
publish().then(subscribeToInitialStreams).catch(reject); | ||
}); | ||
@@ -249,0 +283,0 @@ }; |
@@ -73,15 +73,25 @@ /* global OT */ | ||
new Promise((resolve, reject) => { | ||
createPublisher() | ||
.then((publisher) => { | ||
const onPublish = publisher => (error) => { | ||
if (error) { | ||
reject(error); | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
} else { | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
state.addPublisher('camera', publisher); | ||
session.publish(publisher); | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
resolve(publisher); | ||
}) | ||
.catch((error) => { | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
const errorMessage = error.code === 1010 ? 'Check your network connection' : error.message; | ||
triggerEvent('error', errorMessage); | ||
reject(error); | ||
}); | ||
} | ||
}; | ||
const publishToSession = publisher => session.publish(publisher, onPublish(publisher)); | ||
const handleError = (error) => { | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
const errorMessage = error.code === 1010 ? 'Check your network connection' : error.message; | ||
triggerEvent('error', errorMessage); | ||
reject(error); | ||
}; | ||
createPublisher() | ||
.then(publishToSession) | ||
.catch(handleError); | ||
}); | ||
@@ -191,4 +201,8 @@ | ||
const startCall = () => | ||
new Promise((resolve, reject) => { | ||
new Promise((resolve, reject) => { // eslint-disable-line consistent-return | ||
logging.log(logging.logAction.startCall, logging.logVariation.attempt); | ||
/** | ||
* Determine if we're able to join the session based on an existing connection limit | ||
*/ | ||
if (!ableToJoin()) { | ||
@@ -201,18 +215,38 @@ const errorMessage = 'Session has reached its connection limit'; | ||
/** | ||
* Subscribe to any streams that existed before we start the call from our side. | ||
*/ | ||
const subscribeToInitialStreams = (publisher) => { | ||
// Get an array of initial subscription promises | ||
const initialSubscriptions = () => { | ||
if (autoSubscribe) { | ||
const streams = state.getStreams(); | ||
return Object.keys(streams).map(id => subscribe(streams[id])); | ||
} | ||
return [Promise.resolve()]; | ||
}; | ||
// Handle success | ||
const onSubscribeToAll = () => { | ||
const pubSubData = Object.assign({}, state.getPubSub(), { publisher }); | ||
triggerEvent('startCall', pubSubData); | ||
active = true; | ||
resolve(pubSubData); | ||
}; | ||
// Handle error | ||
const onError = (reason) => { | ||
logging.message(`Failed to subscribe to all existing streams: ${reason}`); | ||
// We do not reject here in case we still successfully publish to the session | ||
resolve(Object.assign({}, state.getPubSub(), { publisher })); | ||
}; | ||
Promise.all(initialSubscriptions()) | ||
.then(onSubscribeToAll) | ||
.catch(onError); | ||
}; | ||
publish() | ||
.then((publisher) => { | ||
const initialSubscriptions = () => { | ||
if (autoSubscribe) { | ||
const streams = state.getStreams(); | ||
return Object.keys(streams).map(id => subscribe(streams[id])); | ||
} | ||
return [Promise.resolve()]; | ||
}; | ||
Promise.all(initialSubscriptions()).then(() => { | ||
const pubSubData = Object.assign({}, state.getPubSub(), { publisher }); | ||
triggerEvent('startCall', pubSubData); | ||
active = true; | ||
resolve(pubSubData); | ||
}).catch(reason => logging.message(`Failed to subscribe to all existing streams: ${reason}`)); | ||
}); | ||
.then(subscribeToInitialStreams) | ||
.catch(reject); | ||
}); | ||
@@ -219,0 +253,0 @@ |
@@ -88,8 +88,20 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
return new Promise(function (resolve, reject) { | ||
createPublisher().then(function (publisher) { | ||
state.addPublisher('camera', publisher); | ||
session.publish(publisher); | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
resolve(publisher); | ||
}).catch(function (error) { | ||
var onPublish = function onPublish(publisher) { | ||
return function (error) { | ||
if (error) { | ||
reject(error); | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
} else { | ||
logging.log(logging.logAction.startCall, logging.logVariation.success); | ||
state.addPublisher('camera', publisher); | ||
resolve(publisher); | ||
} | ||
}; | ||
}; | ||
var publishToSession = function publishToSession(publisher) { | ||
return session.publish(publisher, onPublish(publisher)); | ||
}; | ||
var handleError = function handleError(error) { | ||
logging.log(logging.logAction.startCall, logging.logVariation.fail); | ||
@@ -99,3 +111,5 @@ var errorMessage = error.code === 1010 ? 'Check your network connection' : error.message; | ||
reject(error); | ||
}); | ||
}; | ||
createPublisher().then(publishToSession).catch(handleError); | ||
}); | ||
@@ -214,3 +228,8 @@ }; | ||
return new Promise(function (resolve, reject) { | ||
// eslint-disable-line consistent-return | ||
logging.log(logging.logAction.startCall, logging.logVariation.attempt); | ||
/** | ||
* Determine if we're able to join the session based on an existing connection limit | ||
*/ | ||
if (!ableToJoin()) { | ||
@@ -223,3 +242,7 @@ var errorMessage = 'Session has reached its connection limit'; | ||
publish().then(function (publisher) { | ||
/** | ||
* Subscribe to any streams that existed before we start the call from our side. | ||
*/ | ||
var subscribeToInitialStreams = function subscribeToInitialStreams(publisher) { | ||
// Get an array of initial subscription promises | ||
var initialSubscriptions = function initialSubscriptions() { | ||
@@ -240,3 +263,5 @@ if (autoSubscribe) { | ||
}; | ||
Promise.all(initialSubscriptions()).then(function () { | ||
// Handle success | ||
var onSubscribeToAll = function onSubscribeToAll() { | ||
var pubSubData = Object.assign({}, state.getPubSub(), { publisher: publisher }); | ||
@@ -246,6 +271,15 @@ triggerEvent('startCall', pubSubData); | ||
resolve(pubSubData); | ||
}).catch(function (reason) { | ||
return logging.message('Failed to subscribe to all existing streams: ' + reason); | ||
}); | ||
}); | ||
}; | ||
// Handle error | ||
var onError = function onError(reason) { | ||
logging.message('Failed to subscribe to all existing streams: ' + reason); | ||
// We do not reject here in case we still successfully publish to the session | ||
resolve(Object.assign({}, state.getPubSub(), { publisher: publisher })); | ||
}; | ||
Promise.all(initialSubscriptions()).then(onSubscribeToAll).catch(onError); | ||
}; | ||
publish().then(subscribeToInitialStreams).catch(reject); | ||
}); | ||
@@ -252,0 +286,0 @@ }; |
445351
10458
2
+ Addedeslint-plugin-import@^1.16.0
+ Addedacorn@3.3.05.7.4(transitive)
+ Addedacorn-jsx@3.0.1(transitive)
+ Addedajv@4.11.8(transitive)
+ Addedajv-keywords@1.5.1(transitive)
+ Addedansi-escapes@1.4.0(transitive)
+ Addedansi-regex@2.1.13.0.1(transitive)
+ Addedansi-styles@2.2.1(transitive)
+ Addedargparse@1.0.10(transitive)
+ Addedbabel-code-frame@6.26.0(transitive)
+ Addedbalanced-match@1.0.2(transitive)
+ Addedbrace-expansion@1.1.11(transitive)
+ Addedbuffer-from@1.1.2(transitive)
+ Addedbuiltin-modules@1.1.1(transitive)
+ Addedcall-bind@1.0.8(transitive)
+ Addedcall-bind-apply-helpers@1.0.1(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addedcaller-path@0.1.0(transitive)
+ Addedcallsites@0.2.0(transitive)
+ Addedchalk@1.1.3(transitive)
+ Addedcircular-json@0.3.3(transitive)
+ Addedcli-cursor@1.0.2(transitive)
+ Addedcli-width@2.2.1(transitive)
+ Addedco@4.6.0(transitive)
+ Addedcode-point-at@1.1.0(transitive)
+ Addedconcat-map@0.0.1(transitive)
+ Addedconcat-stream@1.6.2(transitive)
+ Addedcontains-path@0.1.0(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addedd@1.0.2(transitive)
+ Addeddebug@2.6.9(transitive)
+ Addeddeep-is@0.1.4(transitive)
+ Addeddefine-data-property@1.1.4(transitive)
+ Addeddoctrine@1.3.02.1.0(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.1.1(transitive)
+ Addedes5-ext@0.10.64(transitive)
+ Addedes6-iterator@2.0.3(transitive)
+ Addedes6-map@0.1.5(transitive)
+ Addedes6-set@0.1.6(transitive)
+ Addedes6-symbol@3.1.4(transitive)
+ Addedes6-weak-map@2.0.3(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedescope@3.6.0(transitive)
+ Addedeslint@3.19.0(transitive)
+ Addedeslint-import-resolver-node@0.2.3(transitive)
+ Addedeslint-plugin-import@1.16.0(transitive)
+ Addedesniff@2.0.1(transitive)
+ Addedespree@3.5.4(transitive)
+ Addedesprima@4.0.1(transitive)
+ Addedesquery@1.6.0(transitive)
+ Addedesrecurse@4.3.0(transitive)
+ Addedestraverse@4.3.05.3.0(transitive)
+ Addedesutils@2.0.3(transitive)
+ Addedevent-emitter@0.3.5(transitive)
+ Addedexit-hook@1.1.1(transitive)
+ Addedext@1.7.0(transitive)
+ Addedfast-levenshtein@2.0.6(transitive)
+ Addedfigures@1.7.0(transitive)
+ Addedfile-entry-cache@2.0.0(transitive)
+ Addedfind-up@1.1.2(transitive)
+ Addedflat-cache@1.3.4(transitive)
+ Addedfs.realpath@1.0.0(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedgenerate-function@2.3.1(transitive)
+ Addedgenerate-object-property@1.2.0(transitive)
+ Addedget-intrinsic@1.2.7(transitive)
+ Addedget-proto@1.0.1(transitive)
+ Addedglob@7.2.3(transitive)
+ Addedglobals@9.18.0(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhas@1.0.4(transitive)
+ Addedhas-ansi@2.0.0(transitive)
+ Addedhas-property-descriptors@1.0.2(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedignore@3.3.10(transitive)
+ Addedimurmurhash@0.1.4(transitive)
+ Addedinflight@1.0.6(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedinquirer@0.12.0(transitive)
+ Addedinterpret@1.4.0(transitive)
+ Addedis-core-module@2.16.1(transitive)
+ Addedis-fullwidth-code-point@1.0.02.0.0(transitive)
+ Addedis-my-ip-valid@1.0.1(transitive)
+ Addedis-my-json-valid@2.20.6(transitive)
+ Addedis-property@1.0.2(transitive)
+ Addedis-resolvable@1.1.0(transitive)
+ Addedisarray@1.0.02.0.5(transitive)
+ Addedjs-tokens@3.0.2(transitive)
+ Addedjs-yaml@3.14.1(transitive)
+ Addedjson-stable-stringify@1.2.1(transitive)
+ Addedjsonify@0.0.1(transitive)
+ Addedjsonpointer@5.0.1(transitive)
+ Addedlevn@0.3.0(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedlodash.cond@4.5.2(transitive)
+ Addedlodash.endswith@4.2.1(transitive)
+ Addedlodash.find@4.6.0(transitive)
+ Addedlodash.findindex@4.6.0(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedminimatch@3.1.2(transitive)
+ Addedminimist@1.2.8(transitive)
+ Addedmkdirp@0.5.6(transitive)
+ Addedms@2.0.0(transitive)
+ Addedmute-stream@0.0.5(transitive)
+ Addednatural-compare@1.4.0(transitive)
+ Addednext-tick@1.1.0(transitive)
+ Addednumber-is-nan@1.0.1(transitive)
+ Addedobject-assign@4.1.1(transitive)
+ Addedobject-keys@1.1.1(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedonetime@1.1.0(transitive)
+ Addedoptionator@0.8.3(transitive)
+ Addedos-homedir@1.0.2(transitive)
+ Addedpath-exists@2.1.0(transitive)
+ Addedpath-is-absolute@1.0.1(transitive)
+ Addedpath-is-inside@1.0.2(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpinkie@2.0.4(transitive)
+ Addedpinkie-promise@2.0.1(transitive)
+ Addedpkg-dir@1.0.0(transitive)
+ Addedpkg-up@1.0.0(transitive)
+ Addedpluralize@1.2.1(transitive)
+ Addedprelude-ls@1.1.2(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedprogress@1.1.8(transitive)
+ Addedreadable-stream@2.3.8(transitive)
+ Addedreadline2@1.0.1(transitive)
+ Addedrechoir@0.6.2(transitive)
+ Addedrequire-uncached@1.0.3(transitive)
+ Addedresolve@1.22.10(transitive)
+ Addedresolve-from@1.0.1(transitive)
+ Addedrestore-cursor@1.0.1(transitive)
+ Addedrimraf@2.6.3(transitive)
+ Addedrun-async@0.1.0(transitive)
+ Addedrx-lite@3.1.2(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedset-function-length@1.2.2(transitive)
+ Addedshelljs@0.7.8(transitive)
+ Addedslice-ansi@0.0.4(transitive)
+ Addedsprintf-js@1.0.3(transitive)
+ Addedstring-width@1.0.22.1.1(transitive)
+ Addedstring_decoder@1.1.1(transitive)
+ Addedstrip-ansi@3.0.14.0.0(transitive)
+ Addedstrip-bom@3.0.0(transitive)
+ Addedstrip-json-comments@2.0.1(transitive)
+ Addedsupports-color@2.0.0(transitive)
+ Addedsupports-preserve-symlinks-flag@1.0.0(transitive)
+ Addedtable@3.8.3(transitive)
+ Addedtext-table@0.2.0(transitive)
+ Addedthrough@2.3.8(transitive)
+ Addedtype@2.7.3(transitive)
+ Addedtype-check@0.3.2(transitive)
+ Addedtypedarray@0.0.6(transitive)
+ Addeduser-home@2.0.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedword-wrap@1.2.5(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedwrite@0.2.1(transitive)
+ Addedxtend@4.0.2(transitive)